diff --git a/404.html b/404.html index fe03a487..c2c5c509 100644 --- a/404.html +++ b/404.html @@ -29,8 +29,8 @@ BigInt64Array = function() { } } - - + + diff --git a/advancement/index.html b/advancement/index.html index 25cc53b1..cf11d9c9 100644 --- a/advancement/index.html +++ b/advancement/index.html @@ -29,8 +29,8 @@ BigInt64Array = function() { } } - - + + diff --git a/assets/blockstate/index.html b/assets/blockstate/index.html index 734ef4cd..b0aa73e7 100644 --- a/assets/blockstate/index.html +++ b/assets/blockstate/index.html @@ -29,8 +29,8 @@ BigInt64Array = function() { } } - - + + diff --git a/assets/en.20a098e7.js b/assets/en.20a098e7.js deleted file mode 100644 index 932a13d1..00000000 --- a/assets/en.20a098e7.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.fallback":"Fallback","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.rules":"Rules","block_state_provider.rules.entry":"Rule","block_state_provider.rules.entry.if_true":"If true","block_state_provider.rules.entry.then":"Then","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.replaceable":"Replaceable","carver.config.y":"Y","carver.config.yScale":"Y scale","carver.type":"Type","cat_texture.textures/entity/cat/tabby.png":"Tabby","cat_texture.textures/entity/cat/black.png":"Black","cat_texture.textures/entity/cat/red.png":"Red","cat_texture.textures/entity/cat/siamese.png":"Siamese","cat_texture.textures/entity/cat/british_shorthair.png":"British","cat_texture.textures/entity/cat/calico.png":"Calico","cat_texture.textures/entity/cat/persian.png":"Persian","cat_texture.textures/entity/cat/ragdoll.png":"Ragdoll","cat_texture.textures/entity/cat/white.png":"White","cat_texture.textures/entity/cat/jellie.png":"Jellie","cat_texture.textures/entity/cat/all_black.png":"All black","cat_variant.tabby":"Tabby","cat_variant.black":"Black","cat_variant.red":"Red","cat_variant.siamese":"Siamese","cat_variant.british":"British","cat_variant.calico":"Calico","cat_variant.persian":"Persian","cat_variant.ragdoll":"Ragdoll","cat_variant.white":"White","cat_variant.jellie":"Jellie","cat_variant.all_black":"All black","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.allay_drop_item_on_block.item":"Item","criterion.allay_drop_item_on_block.block":"Block","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.kill_mob_near_sculk_catalyst.entity":"Entity","criterion.kill_mob_near_sculk_catalyst.killing_blow":"Killing blow","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.thrown_item_picked_up_by_player.entity":"Thrower entity","criterion.thrown_item_picked_up_by_player.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","decoration_step.raw_generation":"Raw generation","decoration_step.lakes":"Lakes","decoration_step.local_modifications":"Local modifications","decoration_step.underground_structures":"Underground structures","decoration_step.strongholds":"Strongholds","decoration_step.underground_ores":"Underground ores","decoration_step.underground_decoration":"Underground decoration","decoration_step.fluid_springs":"Fluid springs","decoration_step.vegetal_decoration":"Vegetal decoration","decoration_step.top_layer_modification":"Top layer modification","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.xz_factor":"XZ factor","density_function.y_factor":"Y factor","density_function.smear_scale_multiplier":"Smear scale multiplier","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":"Thirdperson righthand","display_position.thirdperson_lefthand":"Thirdperson 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.catType":"Cat type","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.flags.is_baby":"Baby","entity.flags.is_on_fire":"On fire","entity.flags.is_sneaking":"Sneaking","entity.flags.is_sprinting":"Sprinting","entity.flags.is_swimming":"Swimming","entity.lightning_bolt":"Lightning bolt","entity.lightning_bolt.blocks_set_on_fire":"Blocks set on fire","entity.lightning_bolt.entity_struck":"Entity struck","entity.location":"Location","entity.nbt":"NBT","entity.passenger":"Passenger","entity.player":"Player","entity.stepping_on":"Stepping on","entity.targeted_entity":"Targeted entity","entity.team":"Team","entity.type":"Entity type","entity.type_specific":"Type specific","entity.type_specific.type":"Type","entity.type_specific.any":"Any","entity.type_specific.cat":"Cat","entity.type_specific.fishing_hook":"Fishing hook","entity.type_specific.frog":"Frog","entity.type_specific.lightning":"Lightning","entity.type_specific.player":"Player","entity.type_specific.slime":"Slime","entity.type_specific.cat.variant":"Variant","entity.type_specific.fishing_hook.in_open_water":"In open water","entity.type_specific.frog.variant":"Variant","entity.type_specific.lightning.blocks_set_on_fire":"Blocks set on fire","entity.type_specific.lightning.entity_struck":"Entity struck","entity.type_specific.slime.size":"Size","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.state_provider":"State provider","feature.disk.target":"Target","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.can_origin_replace":"Can origin replace","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.multiface_growth.can_be_placed_on":"Can be placed on","feature.multiface_growth.can_be_placed_on.entry":"Block state","feature.multiface_growth.can_place_on_ceiling":"Can place on ceiling","feature.multiface_growth.can_place_on_floor":"Can place on floor","feature.multiface_growth.can_place_on_wall":"Can place on wall","feature.multiface_growth.chance_of_spreading":"Chance of spreading","feature.multiface_growth.search_range":"Search range","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.sculk_patch.charge_count":"Charge count","feature.sculk_patch.amount_per_charge":"Amount per charge","feature.sculk_patch.spread_attempts":"Spread attempts","feature.sculk_patch.growth_rounds":"Growth rounds","feature.sculk_patch.spread_rounds ":"Spread rounds","feature.sculk_patch.extra_rare_growths":"Extra rare growths","feature.sculk_patch.catalyst_chance":"Catalyst chance","feature.surface_disk.can_origin_replace":"Can origin replace","feature.surface_disk.half_height":"Half height","feature.surface_disk.radius":"Radius","feature.surface_disk.state":"State","feature.surface_disk.targets":"Targets","feature.surface_disk.targets.entry":"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.root_placer":"Root placer","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","foliage_placer.foliage_height":"Foliage height","foliage_placer.leaf_placement_attempts":"Leaf placement attempts","frog_variant.cold":"Cold","frog_variant.temperate":"Temperate","frog_variant.warm":"Warm","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.structure_overrides":"Structure overrides","generator.settings.structure_overrides.entry":"Structure set","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.distribution":"Distribution","height_provider.distribution.entry.weight":"Weight","height_provider.distribution.entry.data":"Data","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","height_provider.type.weighted_list":"Weighted list","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":"Structure feature","location.structure":"Structure","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.spawn_target":"Spawn Target","noise_settings.spawn_target.entry.temperature":"Temperature","noise_settings.spawn_target.entry.humidity":"Humidity","noise_settings.spawn_target.entry.continentalness":"Continentalness","noise_settings.spawn_target.entry.erosion":"Erosion","noise_settings.spawn_target.entry.weirdness":"Weirdness","noise_settings.spawn_target.entry.depth":"Depth","noise_settings.spawn_target.entry.offset":"Offset","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.ridges":"Ridges","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","player.stats.looking_at":"Looking at","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.block_rot.rottable_blocks":"Rottable blocks","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","root_placer.root_provider":"Root provider","root_placer.trunk_offset_y":"Trunk offset Y","root_placer.above_root_placement":"Above root placement","root_placer.above_root_placement.above_root_placement_chance":"Chance","root_placer.above_root_placement.above_root_provider":"Above root provider","root_placer.mangrove_root_placer.mangrove_root_placement":"Mangrove root placement","root_placer.mangrove_root_placer.mangrove_root_placement.can_grow_through":"Can grow through","root_placer.mangrove_root_placer.mangrove_root_placement.muddy_roots_in":"Muddy roots in","root_placer.mangrove_root_placer.mangrove_root_placement.muddy_roots_provider":"Muddy roots provider","root_placer.mangrove_root_placer.mangrove_root_placement.max_root_width":"Max root width","root_placer.mangrove_root_placer.mangrove_root_placement.max_root_length":"Max root length","root_placer.mangrove_root_placer.mangrove_root_placement.random_skew_chance":"Random skew chance","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.shipwreck.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.biomes.entry":"Biome","structure_feature.adapt_noise":"Adapt noise","structure_feature.adapt_noise.help":"Whether it should add extra terrain below the structure.","structure_feature.terrain_adaptation":"Terrain adaptation","structure_feature.spawn_overrides":"Spawn overrides","structure_feature.spawn_overrides.bounding_box":"Bounding box","structure_feature.spawn_overrides.bounding_box.piece":"Piece","structure_feature.spawn_overrides.bounding_box.full":"Full","structure_feature.spawn_overrides.spawns":"Spawns","structure_feature.spawn_overrides.spawns.entry":"Spawn","structure_feature.spawn_overrides.spawns.entry.type":"Type","structure_feature.spawn_overrides.spawns.entry.weight":"Weight","structure_feature.spawn_overrides.spawns.entry.minCount":"Min count","structure_feature.spawn_overrides.spawns.entry.maxCount":"Max count","structure_feature.ruined_portal.setups":"Setups","structure_feature.ruined_portal.setups.entry":"Setup","structure_feature.ruined_portal.setups.entry.placement":"Placement","structure_feature.ruined_portal.setups.entry.air_pocket_probability":"Air pocket probability","structure_feature.ruined_portal.setups.entry.mossiness":"Mossiness","structure_feature.ruined_portal.setups.entry.overgrown":"Overgrown","structure_feature.ruined_portal.setups.entry.vines":"Vines","structure_feature.ruined_portal.setups.entry.can_be_cold":"Can be cold","structure_feature.ruined_portal.setups.entry.replace_with_blackstone":"Replace with blackstone","structure_feature.ruined_portal.setups.entry.weight":"Weight","structure_feature.jigsaw.start_pool":"Start pool","structure_feature.jigsaw.size":"Size","structure_feature.jigsaw.start_height":"Start height","structure_feature.jigsaw.project_start_to_heightmap":"Project start to heightmap","structure_feature.jigsaw.max_distance_from_center":"Max distance from center","structure_feature.jigsaw.use_expansion_hack":"Use expansion hack","structure_feature.mineshaft.mineshaft_type":"Mineshaft type","structure_feature.nether_fossil.height":"Height","structure_feature.step":"Generation step","structure_placement.type":"Type","structure_placement.salt":"Salt","structure_placement.locate_offset":"Locate offset","structure_placement.exclusion_zone":"Exclusion zone","structure_placement.exclusion_zone.other_set":"Other set","structure_placement.exclusion_zone.chunk_count":"Chunk count","structure_placement.frequency":"Frequency","structure_placement.frequency_reduction_method":"Frequency reduction method","structure_placement.frequency_reduction_method.default":"Default","structure_placement.frequency_reduction_method.legacy_type_1":"Legacy 1","structure_placement.frequency_reduction_method.legacy_type_2":"Legacy 2","structure_placement.frequency_reduction_method.legacy_type_3":"Legacy 3","structure_placement.concentric_rings.distance":"Distance","structure_placement.concentric_rings.spread":"Spread","structure_placement.concentric_rings.count":"Count","structure_placement.concentric_rings.preferred_biomes":"Preferred biomes","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.string":"Reference","structure_set.object":"Inline","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.attached_to_leaves.probability":"Probability","tree_decorator.attached_to_leaves.exclusion_radius_xz":"Exclusion radius XZ","tree_decorator.attached_to_leaves.exclusion_radius_y":"Exclusion radius Y","tree_decorator.attached_to_leaves.required_empty_blocks":"Probability","tree_decorator.attached_to_leaves.block_provider":"Block provider","tree_decorator.attached_to_leaves.directions":"Directions","tree_decorator.attached_to_leaves.directions.entry":"Direction","tree_decorator.alter_ground.provider":"Block provider","tree_decorator.beehive.probability":"Probability","tree_decorator.cocoa.probability":"Probability","tree_decorator.leave_vine.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.upwards_branching_trunk_placer.can_grow_through":"Can grow through","trunk_placer.upwards_branching_trunk_placer.extra_branch_steps":"Extra branch steps","trunk_placer.upwards_branching_trunk_placer.extra_branch_length":"Extra branch length","trunk_placer.upwards_branching_trunk_placer.place_branch_per_log_probability":"Place branch per log probability","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_preset.dimensions":"Dimensions","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.spline":"Spline","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.multiface_growth":"Multiface growth","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.sculk_patch":"Sculk patch","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.random_spread_foliage_placer":"Random spread","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/root_placer_type.mangrove_root_placer":"Mangrove","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.attached_to_leaves":"Attached to leaves","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","worldgen/trunk_placer_type.upwards_branching_trunk_placer":"Upwards branching"}');export default e; -//# sourceMappingURL=en.20a098e7.js.map diff --git a/assets/en.20a098e7.js.map b/assets/en.20a098e7.js.map deleted file mode 100644 index c2044d7a..00000000 --- a/assets/en.20a098e7.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"en.20a098e7.js","sources":[],"sourcesContent":[],"names":[],"mappings":""} \ No newline at end of file diff --git a/assets/en.4ab98cb7.js b/assets/en.4ab98cb7.js new file mode 100644 index 00000000..1949bd7e --- /dev/null +++ b/assets/en.4ab98cb7.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.fallback":"Fallback","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.rules":"Rules","block_state_provider.rules.entry":"Rule","block_state_provider.rules.entry.if_true":"If true","block_state_provider.rules.entry.then":"Then","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.replaceable":"Replaceable","carver.config.y":"Y","carver.config.yScale":"Y scale","carver.type":"Type","cat_texture.textures/entity/cat/tabby.png":"Tabby","cat_texture.textures/entity/cat/black.png":"Black","cat_texture.textures/entity/cat/red.png":"Red","cat_texture.textures/entity/cat/siamese.png":"Siamese","cat_texture.textures/entity/cat/british_shorthair.png":"British","cat_texture.textures/entity/cat/calico.png":"Calico","cat_texture.textures/entity/cat/persian.png":"Persian","cat_texture.textures/entity/cat/ragdoll.png":"Ragdoll","cat_texture.textures/entity/cat/white.png":"White","cat_texture.textures/entity/cat/jellie.png":"Jellie","cat_texture.textures/entity/cat/all_black.png":"All black","cat_variant.tabby":"Tabby","cat_variant.black":"Black","cat_variant.red":"Red","cat_variant.siamese":"Siamese","cat_variant.british":"British","cat_variant.calico":"Calico","cat_variant.persian":"Persian","cat_variant.ragdoll":"Ragdoll","cat_variant.white":"White","cat_variant.jellie":"Jellie","cat_variant.all_black":"All black","cave_surface.ceiling":"Ceiling","cave_surface.floor":"Floor","chat_type.chat":"Chat","chat_type.chat.decoration":"Decoration","chat_type.overlay":"Overlay","chat_type.overlay.help":"Displays on the actionbar","chat_type.overlay.decoration":"Decoration","chat_type.narration":"Narration","chat_type.narration.decoration":"Decoration","chat_type.narration.priority":"Priority","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.allay_drop_item_on_block.item":"Item","criterion.allay_drop_item_on_block.block":"Block","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.kill_mob_near_sculk_catalyst.entity":"Entity","criterion.kill_mob_near_sculk_catalyst.killing_blow":"Killing blow","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.thrown_item_picked_up_by_player.entity":"Thrower entity","criterion.thrown_item_picked_up_by_player.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","decoration_step.raw_generation":"Raw generation","decoration_step.lakes":"Lakes","decoration_step.local_modifications":"Local modifications","decoration_step.underground_structures":"Underground structures","decoration_step.strongholds":"Strongholds","decoration_step.underground_ores":"Underground ores","decoration_step.underground_decoration":"Underground decoration","decoration_step.fluid_springs":"Fluid springs","decoration_step.vegetal_decoration":"Vegetal decoration","decoration_step.top_layer_modification":"Top layer modification","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.xz_factor":"XZ factor","density_function.y_factor":"Y factor","density_function.smear_scale_multiplier":"Smear scale multiplier","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":"Thirdperson righthand","display_position.thirdperson_lefthand":"Thirdperson 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.catType":"Cat type","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.flags.is_baby":"Baby","entity.flags.is_on_fire":"On fire","entity.flags.is_sneaking":"Sneaking","entity.flags.is_sprinting":"Sprinting","entity.flags.is_swimming":"Swimming","entity.lightning_bolt":"Lightning bolt","entity.lightning_bolt.blocks_set_on_fire":"Blocks set on fire","entity.lightning_bolt.entity_struck":"Entity struck","entity.location":"Location","entity.nbt":"NBT","entity.passenger":"Passenger","entity.player":"Player","entity.stepping_on":"Stepping on","entity.targeted_entity":"Targeted entity","entity.team":"Team","entity.type":"Entity type","entity.type_specific":"Type specific","entity.type_specific.type":"Type","entity.type_specific.any":"Any","entity.type_specific.cat":"Cat","entity.type_specific.fishing_hook":"Fishing hook","entity.type_specific.frog":"Frog","entity.type_specific.lightning":"Lightning","entity.type_specific.player":"Player","entity.type_specific.slime":"Slime","entity.type_specific.cat.variant":"Variant","entity.type_specific.fishing_hook.in_open_water":"In open water","entity.type_specific.frog.variant":"Variant","entity.type_specific.lightning.blocks_set_on_fire":"Blocks set on fire","entity.type_specific.lightning.entity_struck":"Entity struck","entity.type_specific.slime.size":"Size","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.state_provider":"State provider","feature.disk.target":"Target","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.can_origin_replace":"Can origin replace","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.multiface_growth.can_be_placed_on":"Can be placed on","feature.multiface_growth.can_be_placed_on.entry":"Block state","feature.multiface_growth.can_place_on_ceiling":"Can place on ceiling","feature.multiface_growth.can_place_on_floor":"Can place on floor","feature.multiface_growth.can_place_on_wall":"Can place on wall","feature.multiface_growth.chance_of_spreading":"Chance of spreading","feature.multiface_growth.search_range":"Search range","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.sculk_patch.charge_count":"Charge count","feature.sculk_patch.amount_per_charge":"Amount per charge","feature.sculk_patch.spread_attempts":"Spread attempts","feature.sculk_patch.growth_rounds":"Growth rounds","feature.sculk_patch.spread_rounds ":"Spread rounds","feature.sculk_patch.extra_rare_growths":"Extra rare growths","feature.sculk_patch.catalyst_chance":"Catalyst chance","feature.surface_disk.can_origin_replace":"Can origin replace","feature.surface_disk.half_height":"Half height","feature.surface_disk.radius":"Radius","feature.surface_disk.state":"State","feature.surface_disk.targets":"Targets","feature.surface_disk.targets.entry":"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.root_placer":"Root placer","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","foliage_placer.foliage_height":"Foliage height","foliage_placer.leaf_placement_attempts":"Leaf placement attempts","frog_variant.cold":"Cold","frog_variant.temperate":"Temperate","frog_variant.warm":"Warm","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_instrument.options":"Instruments","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.structure_overrides":"Structure overrides","generator.settings.structure_overrides.entry":"Structure set","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.distribution":"Distribution","height_provider.distribution.entry.weight":"Weight","height_provider.distribution.entry.data":"Data","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","height_provider.type.weighted_list":"Weighted list","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":"Structure feature","location.structure":"Structure","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_instrument":"Set instrument","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.spawn_target":"Spawn Target","noise_settings.spawn_target.entry.temperature":"Temperature","noise_settings.spawn_target.entry.humidity":"Humidity","noise_settings.spawn_target.entry.continentalness":"Continentalness","noise_settings.spawn_target.entry.erosion":"Erosion","noise_settings.spawn_target.entry.weirdness":"Weirdness","noise_settings.spawn_target.entry.depth":"Depth","noise_settings.spawn_target.entry.offset":"Offset","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.ridges":"Ridges","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","player.stats.looking_at":"Looking at","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.block_rot.rottable_blocks":"Rottable blocks","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","root_placer.root_provider":"Root provider","root_placer.trunk_offset_y":"Trunk offset Y","root_placer.above_root_placement":"Above root placement","root_placer.above_root_placement.above_root_placement_chance":"Chance","root_placer.above_root_placement.above_root_provider":"Above root provider","root_placer.mangrove_root_placer.mangrove_root_placement":"Mangrove root placement","root_placer.mangrove_root_placer.mangrove_root_placement.can_grow_through":"Can grow through","root_placer.mangrove_root_placer.mangrove_root_placement.muddy_roots_in":"Muddy roots in","root_placer.mangrove_root_placer.mangrove_root_placement.muddy_roots_provider":"Muddy roots provider","root_placer.mangrove_root_placer.mangrove_root_placement.max_root_width":"Max root width","root_placer.mangrove_root_placer.mangrove_root_placement.max_root_length":"Max root length","root_placer.mangrove_root_placer.mangrove_root_placement.random_skew_chance":"Random skew chance","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.shipwreck.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.biomes.entry":"Biome","structure_feature.adapt_noise":"Adapt noise","structure_feature.adapt_noise.help":"Whether it should add extra terrain below the structure.","structure_feature.terrain_adaptation":"Terrain adaptation","structure_feature.spawn_overrides":"Spawn overrides","structure_feature.spawn_overrides.bounding_box":"Bounding box","structure_feature.spawn_overrides.bounding_box.piece":"Piece","structure_feature.spawn_overrides.bounding_box.full":"Full","structure_feature.spawn_overrides.spawns":"Spawns","structure_feature.spawn_overrides.spawns.entry":"Spawn","structure_feature.spawn_overrides.spawns.entry.type":"Type","structure_feature.spawn_overrides.spawns.entry.weight":"Weight","structure_feature.spawn_overrides.spawns.entry.minCount":"Min count","structure_feature.spawn_overrides.spawns.entry.maxCount":"Max count","structure_feature.ruined_portal.setups":"Setups","structure_feature.ruined_portal.setups.entry":"Setup","structure_feature.ruined_portal.setups.entry.placement":"Placement","structure_feature.ruined_portal.setups.entry.air_pocket_probability":"Air pocket probability","structure_feature.ruined_portal.setups.entry.mossiness":"Mossiness","structure_feature.ruined_portal.setups.entry.overgrown":"Overgrown","structure_feature.ruined_portal.setups.entry.vines":"Vines","structure_feature.ruined_portal.setups.entry.can_be_cold":"Can be cold","structure_feature.ruined_portal.setups.entry.replace_with_blackstone":"Replace with blackstone","structure_feature.ruined_portal.setups.entry.weight":"Weight","structure_feature.jigsaw.start_pool":"Start pool","structure_feature.jigsaw.size":"Size","structure_feature.jigsaw.start_height":"Start height","structure_feature.jigsaw.start_jigsaw_name":"Start jigsaw name","structure_feature.jigsaw.project_start_to_heightmap":"Project start to heightmap","structure_feature.jigsaw.max_distance_from_center":"Max distance from center","structure_feature.jigsaw.use_expansion_hack":"Use expansion hack","structure_feature.mineshaft.mineshaft_type":"Mineshaft type","structure_feature.nether_fossil.height":"Height","structure_feature.step":"Generation step","structure_placement.type":"Type","structure_placement.salt":"Salt","structure_placement.locate_offset":"Locate offset","structure_placement.exclusion_zone":"Exclusion zone","structure_placement.exclusion_zone.other_set":"Other set","structure_placement.exclusion_zone.chunk_count":"Chunk count","structure_placement.frequency":"Frequency","structure_placement.frequency_reduction_method":"Frequency reduction method","structure_placement.frequency_reduction_method.default":"Default","structure_placement.frequency_reduction_method.legacy_type_1":"Legacy 1","structure_placement.frequency_reduction_method.legacy_type_2":"Legacy 2","structure_placement.frequency_reduction_method.legacy_type_3":"Legacy 3","structure_placement.concentric_rings.distance":"Distance","structure_placement.concentric_rings.spread":"Spread","structure_placement.concentric_rings.count":"Count","structure_placement.concentric_rings.preferred_biomes":"Preferred biomes","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.string":"Reference","structure_set.object":"Inline","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","text_decoration.translation_key":"Translation key","text_decoration.parameters":"Parameters","text_decoration.style":"Style","texture.alias":"Alias","texture.reference":"Reference","tree_decorator.attached_to_leaves.probability":"Probability","tree_decorator.attached_to_leaves.exclusion_radius_xz":"Exclusion radius XZ","tree_decorator.attached_to_leaves.exclusion_radius_y":"Exclusion radius Y","tree_decorator.attached_to_leaves.required_empty_blocks":"Probability","tree_decorator.attached_to_leaves.block_provider":"Block provider","tree_decorator.attached_to_leaves.directions":"Directions","tree_decorator.attached_to_leaves.directions.entry":"Direction","tree_decorator.alter_ground.provider":"Block provider","tree_decorator.beehive.probability":"Probability","tree_decorator.cocoa.probability":"Probability","tree_decorator.leave_vine.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.upwards_branching_trunk_placer.can_grow_through":"Can grow through","trunk_placer.upwards_branching_trunk_placer.extra_branch_steps":"Extra branch steps","trunk_placer.upwards_branching_trunk_placer.extra_branch_length":"Extra branch length","trunk_placer.upwards_branching_trunk_placer.place_branch_per_log_probability":"Place branch per log probability","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_preset.dimensions":"Dimensions","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.spline":"Spline","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.multiface_growth":"Multiface growth","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.sculk_patch":"Sculk patch","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.random_spread_foliage_placer":"Random spread","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/root_placer_type.mangrove_root_placer":"Mangrove","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.attached_to_leaves":"Attached to leaves","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","worldgen/trunk_placer_type.upwards_branching_trunk_placer":"Upwards branching"}');export default e; +//# sourceMappingURL=en.4ab98cb7.js.map diff --git a/assets/en.4ab98cb7.js.map b/assets/en.4ab98cb7.js.map new file mode 100644 index 00000000..b5136c67 --- /dev/null +++ b/assets/en.4ab98cb7.js.map @@ -0,0 +1 @@ +{"version":3,"file":"en.4ab98cb7.js","sources":[],"sourcesContent":[],"names":[],"mappings":""} \ No newline at end of file diff --git a/assets/index.182fe7ed.js b/assets/index.182fe7ed.js new file mode 100644 index 00000000..01c0d64a --- /dev/null +++ b/assets/index.182fe7ed.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,s=(t,n,o)=>n in t?e(t,n,{enumerable:!0,configurable:!0,writable:!0,value:o}):t[n]=o,i=(e,t)=>{for(var n in t||(t={}))r.call(t,n)&&s(e,n,t[n]);if(o)for(var n of o(t))a.call(t,n)&&s(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 p,b as m,s as f,c as v,d as g,e as w,f as _,j as y,h as b,i as x,k,m as C,n as M,o as A,q as I,A as z,F as $,p as j,t as E,u as S,C as O,v as L,I as P,w as D,x as V,z as N,B as T,_ as B,X as H,D as F,E as R,G as J,H as W,J as U,K as G,L as Y,M as q,N as K,O as Z,P as X,Q,R as ee,Z as te,S as ne,T as oe,U as re,V as ae,W as se,Y as ie,$ as le,a0 as ce,a1 as de,a2 as ue,a3 as he}from"./vendor.6465e0ff.js";var pe;function me({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 fe({icon:e,label:t,active:n,class:o,tooltip:r,tooltipLoc:a,onClick:s}){return d("div",{class:`btn${n?" active":""}${o?` ${o}`:""}${r?` tooltipped tip-${null!=a?a:"sw"}`:""}${n?" tip-shown":""}`,onClick:s,"aria-label":r},e&&Je[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.setPrefersColorScheme=function(e){r(7,e)},e.generatorEvent=function(e,t){o(n,e,t)}}(pe||(pe={}));var ve=JSON.parse('{"languages":[{"code":"de","name":"Deutsch"},{"code":"en","name":"English"},{"code":"es","name":"Español"},{"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","ref":"1.18.2"},{"id":"1.19","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":"text_component","url":"text-component","schema":"text_component"},{"id":"chat_type","url":"chat-type","schema":"chat_type","minVersion":"1.19"},{"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","maxVersion":"1.18.2"},{"id":"worldgen/structure","url":"worldgen/structure","category":"worldgen","schema":"structure","minVersion":"1.19"},{"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":"worldgen/world_preset","url":"worldgen/world-preset","category":"worldgen","schema":"world_preset","minVersion":"1.19"},{"id":"worldgen/flat_level_generator_preset","url":"worldgen/flat-world-preset","category":"worldgen","schema":"flat_level_generator_preset","minVersion":"1.19"},{"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 ge(e){return"object"==typeof e&&null!==e}const we=e=>("0"+e.toString(16)).substr(-2);function _e(e=12){var t=new Uint8Array(e/2);return window.crypto.getRandomValues(t),Array.from(t,we).join("")}function ye(){return BigInt(Math.floor(Math.random()*Number.MAX_SAFE_INTEGER))}function be(e){const t=Math.floor(4294967296*Math.random())-2147483648,n=e.get(new h.Path(["dimensions"]));e.set(new h.Path(["seed"]),t,!0),ge(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(["placement","salt"]),Math.abs(t),!0),e.set(new h.Path(["generator","seed"]),t,!0),e.set(new h.Path(["generator","biome_source","seed"]),t)}function xe(e){let t=0;for(let n=0;n=0&&(e=e.slice(0,t)),ke(e)}function Me(e){const t=Ce(e).replace(/^\//,"").replace(/\/$/,"");return ve.generators.find((e=>e.url===t))}function Ae(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 Ie(e,t){const n=p(),o=Ae(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).replaceAll("%2F","/")}`));m(`${t?ke(t):Ce(n)}${0===r.length?"":`?${r.join("&")}`}`,!0)}function ze(e){const t=Math.abs(xe(e));return[t%256,(t>>8)%256,(t>>16)%256]}function $e(e){return e*e}function je(e,t,n){return Math.max(e,Math.min(t,n))}function Ee(e,t,n){return n<0?e:n>1?t:Se(n,e,t)}function Se(e,t,n){return t+e*(n-t)}function Oe(e){return e instanceof Error?e.message:`${e}`}const Le=u();function Pe(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 p=i&&_e();return d("div",{class:`btn btn-input ${n?"large-input":""} ${o?"larger-input":""}`,onClick:e=>e.stopPropagation()},e&&Je[e],t&&d("span",null,t),d("input",{ref:h,type:"text",value:a,onChange:u,placeholder:s,list:p}),i&&d("datalist",{id:p},i.map((e=>d("option",{value:e})))))}function Ne({cooldown:e,invert:t,initial:n}={}){const[o,r]=v(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 Te({size:e,draw:t,onDrag:n,onHover:o,onLeave:r},a){const s=f(null),i=f(),l=f(),d=f([0,0]),u=f(!1);c((()=>{const e=e=>{i.current=[e.offsetX,e.offsetY]},t=e=>{if(void 0===i.current){const t=e.offsetX/s.current.clientWidth,n=e.offsetY/s.current.clientHeight;return void(null==o||o(t,n))}if(!n)return;const t=e.offsetX-i.current[0],r=e.offsetY-i.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]/s.current.clientWidth,t=d.current[1]/s.current.clientHeight;d.current=[0,0],await(null==n?void 0:n(e,t)),u.current=!1})))),i.current=[e.offsetX,e.offsetY]},a=()=>{i.current=void 0},c=()=>{null==r||r()};return s.current.addEventListener("mousedown",e),s.current.addEventListener("mousemove",t),s.current.addEventListener("mouseleave",c),document.body.addEventListener("mouseup",a),()=>{var n,o,r;null==(n=s.current)||n.removeEventListener("mousedown",e),null==(o=s.current)||o.removeEventListener("mousemove",t),null==(r=s.current)||r.removeEventListener("mouseleave",c),document.body.removeEventListener("mouseup",a)}}),[...null!=a?a:[],s.current]);const h=f(),p=f(0);return h.current=async()=>{const n=s.current.getContext("2d"),o=e();s.current.width=o[0],s.current.height=o[1];const r=n.getImageData(0,0,o[0],o[1]),a=p.current+=1;try{await t(r)}catch(i){throw i}a===p.current&&n.putImageData(r,0,0)},{canvas:s,redraw:h.current}}function Be(){const[e,t]=v(!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 He(e){const[t,n]=v(matchMedia(e).matches),o=e=>{n(e.matches)};return c((()=>{const t=matchMedia(e);return t.addEventListener("change",o),()=>{t.removeEventListener("change",o)}}),[e]),t}function Fe(e,t,n){const o={invalidated(){e&&t(e)}};c((()=>(null==e||e.addListener(o),()=>{null==e||e.removeListener(o)})),[e,...null!=n?n:[]])}function Re(e){const{icon:t,label:n,relative:o,tooltip:r,tooltipLoc:a,children:s}=e,[c,u]=Be();return d("div",i({class:"btn-menu"+(!1===o?" no-relative":"")},e),d(fe,l(i({},{icon:t,label:n,tooltip:r,tooltipLoc:a}),{onClick:u})),c&&d("div",{class:"btn-group"},s))}const Je={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 We({error:e,onDismiss:t}){const[n,o]=v(!1),[r,a]=v(void 0);c((()=>{if(e instanceof Error){const t=e.stack.split("\n").map((e=>e.replace(/^(\s+)at (?:async )?(https?:.*)/,"$1at ($2)")));a(t.join("\n")),g.exports.mapStackTrace(t.join("\n"),(e=>{const t=e.map((e=>e.replace(/..\/..\/src\//,"src/"))).join("\n");a(t)}))}}),[e]);const s=w((()=>{let t="https://github.com/misode/misode.github.io/issues/new";return e instanceof Error?(t+=`?title=${encodeURIComponent(`${e.name}: ${e.message}`)}`,r&&(t+=`&body=${encodeURIComponent(`\`\`\`\n${e.name}: ${e.message}\n${r}\n\`\`\`\n`)}`)):t+=`?title=${encodeURIComponent(e.toString())}`,t}),[e,r]);return d("div",{class:"error"},t&&d("div",{class:"error-dismiss",onClick:t},Je.x),d("h3",null,e instanceof Error?e.message:e,r&&d("span",{onClick:()=>o(!n)},Je.info)),r&&n&&d("pre",null,r),d("p",null,"If you think this is a bug, you can report it ",d("a",{href:s,target:"_blank"},"on GitHub")))}function Ue({label:e,value:t,onChange:n}){const o=_e();return d("label",{class:"checkbox"},d("input",{id:o,type:"checkbox",checked:t,onClick:()=>n(!t)}),e)}function Ge(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",i(i({},e),{type:t,onChange:o,onKeyDown:r}))};return o.displayName=e,o}const Ye=Ge("TextInput","text",(e=>e)),qe=Ge("NumberInput","number",(e=>Number(e))),Ke=Ge("RangeInput","range",(e=>Number(e)));function Ze({values:e,onSelect:t,searchPlaceholder:n,noResults:o}){const[r,a]=v(""),s=w((()=>{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(_,null,d(Ve,{icon:"search",large:!0,value:r,onChange:a,doSelect:1,placeholder:null!=n?n:"Search"}),d("div",{class:"result-list"},s.map((e=>d(fe,{key:e,label:e,onClick:()=>null==t?void 0:t(e)}))),0===s.length&&d(fe,{label:null!=o?o:"No results"})))}const Xe="https://raw.githubusercontent.com/misode/technical-changes/main";let Qe=null;async function et(){if(!Qe){const e=await(await fetch(`${Xe}/index.json`)).json();Qe=(await Promise.all(e.map(((e,t)=>async function(e,t){const n=await(await fetch(`${Xe}/${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(`${Xe}/${e.id}/${t.id}.md`)).text()).map((r=>i({version:t,group:e,order:1e3*n+o},r)))}(e,tt(n),t,o))))).flat()}(tt(e),t))))).flat().map((e=>l(i({},e),{tags:[e.group.id,...e.tags]})))}return Qe}function tt(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}:ge(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 nt="https://raw.githubusercontent.com/misode/mcmeta";function ot(e,t){return`${nt}/${e.dynamic?t:`${e.ref}-${t}`}`}async function rt(e){e.dynamic&&("22w18a"!==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: ${Oe(t)}`)}}((e=>e.startsWith(`${nt}/summary/`)||e.startsWith(`${nt}/data/`)||e.startsWith(`${nt}/assets/`)||e.startsWith(`${nt}/registries/`))),localStorage.setItem("cached_latest_version","22w18a")),e.ref="22w18a")}async function at(e,t){console.debug(`[fetchRegistries] ${e.id}`);try{const n=await lt(`${ot(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:",Oe(n))}}async function st(e,t){console.debug(`[fetchBlockStateMap] ${e.id}`);try{const n=await lt(`${ot(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:",Oe(n))}}async function it(e,t,n){console.debug(`[fetchPreset] ${e} ${t} ${n}`);const o=ve.versions.find((t=>t.id===e));try{const e=["blockstates","models"].includes(t)?"assets":"data",r=`${ot(o,e)}/${e}/minecraft/${t}/${n}.json`;return(await fetch(r)).json()}catch(r){throw new Error(`Error occurred while fetching ${t} preset ${n}: ${Oe(r)}`)}}async function lt(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: ${Oe(n)}`),console.debug(`[getData] fetching data ${e}`);const o=await fetch(e);return t(await o.json())}}const ct=["1.15","1.16","1.17","1.18","1.18.2","1.19"],dt={},ut={},ht={1.15:y,1.16:b,1.17:x,1.18:k,"1.18.2":C,1.19:M};let pt,mt,ft;async function vt(e){return dt[e]||(dt[e]=(async()=>{try{const t=ht[e].getCollections(),n={};await async function(e,t,n){const o=ve.versions.find((t=>t.id===e));o?(await rt(o),await Promise.all([at(o,t),st(o,n)])):console.error(`[fetchData] Unknown version ${o} in ${JSON.stringify(ve.versions)}`)}(e,t,n);const o=ht[e].getSchemas(t);return dt[e]={collections:t,schemas:o,blockStates:n},dt[e]}catch(t){throw new Error(`Cannot get version "${e}": ${Oe(t)}`)}})()),dt[e]}function gt(e,t,n){const o=ve.versions.findIndex((t=>t.id===e)),r=t?ve.versions.findIndex((e=>e.id===t)):0,a=n?ve.versions.findIndex((e=>e.id===n)):ve.versions.length-1;return r<=o&&o<=a}const wt=new Map;async function _t(e){var t;try{const n=await yt(`/snippets/${e}`);return l(i({},n),{data:JSON.parse(null!=(t=A.decompressFromBase64(n.data))?t:"{}")})}catch(n){throw n instanceof Error&&(n.message=`Error loading shared content: ${n.message}`),n}}async function yt(e,t){var n,o,r;const a=await fetch("https://z15g7can.directus.app/items"+e,t?{method:"post",headers:{"Content-Type":"application/json"},body:t}:void 0),s=await a.json();if(s.data)return s.data;throw new Error(null!=(r=null==(o=null==(n=s.errors)?void 0:n[0])?void 0:o.message)?r:"Unknown error")}let bt;const xt={},kt=function(e,t){if(!t)return e();if(void 0===bt){const e=document.createElement("link").relList;bt=e&&e.supports&&e.supports("modulepreload")?"modulepreload":"preload"}return Promise.all(t.map((e=>{if(e in xt)return;xt[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":bt,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 Ct,Mt,At=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","changelog.no_results":"No changes","chat_type":"Chat Type","collapse":"Collapse","collapse_all":"Hold %0% to collapse all","configure_layers":"Configure layers","copy":"Copy","copy_share":"Copy share link","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","highlighting":"Highlighting","loading":"Loading...","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","restore_backup":"Restore last backup","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","title.versions":"Versions 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","text_component":"Text Component","undo":"Undo","versions.search":"Search versions","versions.no_results":"No results","versions.all":"All versions","versions.previous":"Previous","versions.next":"Next","versions.released":"Released","versions.release_target":"Release target","versions.data_version":"Data version","versions.protocol_version":"Protocol version","versions.pack_format":"Pack format","versions.data_pack_format":"Data pack format","versions.resource_pack_format":"Resource pack format","versions.technical_changes":"Technical changes","versions.discussion":"Discussion","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":"Structure","worldgen/structure_set":"Structure Set","worldgen/configured_surface_builder":"Surface Builder","worldgen/template_pool":"Template Pool","worldgen/world_preset":"World Preset","worldgen/flat_level_generator_preset":"Flat World Preset","zoom_in":"Zoom in","zoom_out":"Zoom out"}'),It=Object.freeze({__proto__:null,[Symbol.toStringTag]:"Module",default:At});(Mt=Ct||(Ct={})).ID_LANGUAGE="language",Mt.ID_THEME="theme",Mt.ID_VERSION="schema_version",Mt.ID_INDENT="indentation",Mt.ID_FORMAT="output_format",Mt.ID_HIGHLIGHTING="output_highlighting",Mt.ID_SOUNDS_VERSION="minecraft_sounds_version",Mt.ID_PROJECTS="misode_projects",Mt.ID_BACKUPS="misode_generator_backups",Mt.getLanguage=function(){var e;return null!=(e=localStorage.getItem(Mt.ID_LANGUAGE))?e:"en"},Mt.getTheme=function(){var e;return null!=(e=localStorage.getItem(Mt.ID_THEME))?e:"dark"},Mt.getVersion=function(){const e=localStorage.getItem(Mt.ID_VERSION);return e&&ct.includes(e)?e:"1.18.2"},Mt.getIndent=function(){var e;return null!=(e=localStorage.getItem(Mt.ID_INDENT))?e:"2_spaces"},Mt.getFormat=function(){var e;return null!=(e=localStorage.getItem(Mt.ID_FORMAT))?e:"json"},Mt.getHighlighting=function(){return"false"!==localStorage.getItem(Mt.ID_HIGHLIGHTING)},Mt.getSoundsVersion=function(){var e;return null!=(e=localStorage.getItem(Mt.ID_SOUNDS_VERSION))?e:"latest"},Mt.getProjects=function(){const e=localStorage.getItem(Mt.ID_PROJECTS);return e?JSON.parse(e):[Lt]},Mt.getBackup=function(e){var t;return JSON.parse(null!=(t=localStorage.getItem(Mt.ID_BACKUPS))?t:"{}")[e]},Mt.setLanguage=function(e){e&&localStorage.setItem(Mt.ID_LANGUAGE,e)},Mt.setTheme=function(e){e&&localStorage.setItem(Mt.ID_THEME,e)},Mt.setVersion=function(e){e&&localStorage.setItem(Mt.ID_VERSION,e)},Mt.setIndent=function(e){e&&localStorage.setItem(Mt.ID_INDENT,e)},Mt.setFormat=function(e){e&&localStorage.setItem(Mt.ID_FORMAT,e)},Mt.setHighlighting=function(e){void 0!==e&&localStorage.setItem(Mt.ID_HIGHLIGHTING,e.toString())},Mt.setSoundsVersion=function(e){e&&localStorage.setItem(Mt.ID_SOUNDS_VERSION,e)},Mt.setProjects=function(e){e&&localStorage.setItem(Mt.ID_PROJECTS,JSON.stringify(e))},Mt.setBackup=function(e,t){var n;const o=JSON.parse(null!=(n=localStorage.getItem(Mt.ID_BACKUPS))?n:"{}");void 0===t?delete o[e]:o[e]=t,localStorage.setItem(Mt.ID_BACKUPS,JSON.stringify(o))};const zt=I({lang:"none",locale:e=>e,changeLanguage:()=>{}}),$t={fallback:At};function jt(e,t,...n){var o,r,a,s,i;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!=(i=null!=(s=null!=(a=null==(o=$t[e])?void 0:o[t])?a:null==(r=$t.en)?void 0:r[t])?s:$t.fallback[t])?i:t,n)}async function Et(e){if($t[e])return;const t=ve.languages.find((t=>t.code===e));if(!t)return;const n=await function(e){switch(e){case"../../locales/de.json":return kt((()=>import("./de.a269acce.js")),void 0);case"../../locales/en.json":return kt((()=>Promise.resolve().then((function(){return It}))),void 0);case"../../locales/es.json":return kt((()=>import("./es.833a9774.js")),void 0);case"../../locales/fr.json":return kt((()=>import("./fr.f5531eea.js")),void 0);case"../../locales/it.json":return kt((()=>import("./it.fd9a8268.js")),void 0);case"../../locales/ja.json":return kt((()=>import("./ja.167de97b.js")),void 0);case"../../locales/pl.json":return kt((()=>import("./pl.3a9fb38c.js")),void 0);case"../../locales/pt.json":return kt((()=>import("./pt.1a04bd2d.js")),void 0);case"../../locales/ru.json":return kt((()=>import("./ru.578070fe.js")),void 0);case"../../locales/sk.json":return kt((()=>import("./sk.96bbf351.js")),void 0);case"../../locales/zh-cn.json":return kt((()=>import("./zh-cn.e3c47b68.js")),void 0);case"../../locales/zh-tw.json":return kt((()=>import("./zh-tw.42e9d37d.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 kt((()=>import("./cs.967a01eb.js")),void 0);case"../../../node_modules/@mcschema/locales/src/de.json":return kt((()=>import("./de.8e2383d8.js")),void 0);case"../../../node_modules/@mcschema/locales/src/en.json":return kt((()=>import("./en.4ab98cb7.js")),void 0);case"../../../node_modules/@mcschema/locales/src/es.json":return kt((()=>import("./es.6b3597bc.js")),void 0);case"../../../node_modules/@mcschema/locales/src/fr.json":return kt((()=>import("./fr.e316b1e2.js")),void 0);case"../../../node_modules/@mcschema/locales/src/it.json":return kt((()=>import("./it.7ff123cd.js")),void 0);case"../../../node_modules/@mcschema/locales/src/ja.json":return kt((()=>import("./ja.3170354d.js")),void 0);case"../../../node_modules/@mcschema/locales/src/pl.json":return kt((()=>import("./pl.ae1f6791.js")),void 0);case"../../../node_modules/@mcschema/locales/src/pt.json":return kt((()=>import("./pt.31e14993.js")),void 0);case"../../../node_modules/@mcschema/locales/src/ru.json":return kt((()=>import("./ru.1298edc9.js")),void 0);case"../../../node_modules/@mcschema/locales/src/sk.json":return kt((()=>import("./sk.d4265232.js")),void 0);case"../../../node_modules/@mcschema/locales/src/zh-cn.json":return kt((()=>import("./zh-cn.4129665a.js")),void 0);case"../../../node_modules/@mcschema/locales/src/zh-tw.json":return kt((()=>import("./zh-tw.bdc36a24.js")),void 0);default:return Promise.reject(new Error("Unknown variable dynamic import: "+e))}}(`../../../node_modules/@mcschema/locales/src/${e}.json`);$t[e]=i(i({},n.default),o.default)}function St(){return $(zt)}function Ot({children:e}){const[t,n]=v("none"),o=z(((e,...n)=>jt(t,e,...n)),[t]),r=z((async e=>{await Et(e),pe.setLanguage(e),Ct.setLanguage(e),n(e)}),[]);c((()=>{(async()=>{const e=Ct.getLanguage();await Promise.all([Et("en"),..."en"!==e?[Et(e)]:[]]),n(e)})()}),[]);const a={lang:t,locale:o,changeLanguage:r};return d(zt.Provider,{value:a},e)}const Lt={name:"Drafts",namespace:"draft",files:[]},Pt=I({project:Lt,changeProject:()=>{},updateProject:()=>{},updateFile:()=>!1,openFile:()=>{},closeFile:()=>{}});function Dt(){return $(Pt)}function Vt({children:e}){const[t,n]=v(Ct.getProjects()),[o,r]=v(Lt.name),a=w((()=>{var e;return null!=(e=t.find((e=>e.name===o)))?e:Lt}),[t,o]),[s,c]=v(void 0),u=w((()=>{if(s)return a.files.find((e=>e.type===s[0]&&e.id===s[1]))}),[a,s]),h=z((e=>{Ct.setProjects(e),n(e)}),[]),p=z((e=>{h(t.map((t=>t.name===o?i(i({},t),e):t)))}),[t,o]),f=z(((e,t,n)=>{var o;if(n.id){const r=n.id.includes(":")?n.id:`${a.namespace}:${n.id}`,s=a.files.some((t=>t.type===e&&t.id===r));if(t){if((null==u?void 0:u.id)===t&&t!==r&&s)return!1;p({files:a.files.map((o=>o.type===e&&o.id===t?l(i(i({},o),n),{id:r}):o))}),(null==u?void 0:u.id)===t&&c([e,r])}else{if(s)return!1;p({files:[...a.files,{type:e,id:r,data:null!=(o=n.data)?o:{}}]}),c([e,r])}}else p({files:a.files.filter((n=>n.type!==e||n.id!==t))});return!0}),[p,a,u]),g=z(((e,t)=>{const n=ve.generators.find((t=>t.id===e||t.path===e));if(!n)throw new Error(`Cannot find generator of type ${e}`);c([n.id,t]),m(ke(n.url))}),[]),_=z((()=>{c(void 0)}),[]),y={project:a,file:u,changeProject:r,updateProject:p,updateFile:f,openFile:g,closeFile:_};return d(Pt.Provider,{value:y},e)}function Nt(e){var t;const[n,o]=e.id.includes(":")?e.id.split(":"):["minecraft",e.id],r=ve.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 Tt=I({theme:"dark",actualTheme:"dark",changeTheme:()=>{}});function Bt(){return $(Tt)}function Ht({children:e}){const[t,n]=v(Ct.getTheme()),o=He("(prefers-color-scheme: light)"),r=He("(prefers-color-scheme: dark)");c((()=>{document.documentElement.setAttribute("data-theme",t)}),[t]);const a=z((e=>{pe.setTheme(e),Ct.setTheme(e),n(e)}),[]);c((()=>{pe.setPrefersColorScheme(o?"light":r?"dark":"none")}),[o,r]);const s={theme:t,actualTheme:"light"===t||"dark"!==t&&o?"light":"dark",changeTheme:a};return d(Tt.Provider,{value:s},e)}const Ft=I({title:"",changeTitle:()=>{}});function Rt(e,t){const n=$(Ft);return c((()=>{e&&n.changeTitle(e,t)}),[e,t]),n}function Jt({children:e}){const{locale:t}=St(),[n,o]=v(t("title.home")),r={title:n,changeTitle:z(((e,t)=>{null!=t||(t=ve.versions.map((e=>e.id)));const n=t.slice(t.length-3);document.title=`${e} Minecraft ${n.join(", ")}`,o(e)}),[])};return d(Ft.Provider,{value:r},e)}const Wt=I({version:"1.18.2",changeVersion:()=>{}});function Ut(){return $(Wt)}function Gt({children:e}){const[t,n]=v(Ct.getVersion()),o=Ae(p()).get("version");c((()=>{ct.includes(o)&&t!==o&&n(o)}),[t,o]);const r=z(((e,t=!0)=>{Ae(p()).has("version")&&Ie({version:e}),t&&(pe.setVersion(e),Ct.setVersion(e)),n(e)}),[]),a={version:t,changeVersion:r};return d(Wt.Provider,{value:a},e)}let Yt=!1;const qt={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 Kt,Zt;async function Xt(e,t){const n=[e,t.octaves,`${t.seed}`,t.version];return Pe(n,Kt)||(Kt=Le(n),Zt=await async function(e,t){var n,o,r,a,s;switch(null==(n=null==e?void 0:e.type)?void 0:n.replace(/^minecraft:/,"")){case"fixed":return new V(O.parse(e.biome));case"checkerboard":const n=(null!=(o=e.scale)?o:2)+2,i=null!=(a=null==(r=e.biomes)?void 0:r.length)?a:0;return{getBiome(t,o,r){var a;const s=(((t>>n)+(r>>n))%i+i)%i;return O.parse(null==(a=e.biomes)?void 0:a[s].node)}};case"multi_noise":switch(null==(s=e.preset)?void 0:s.replace(/^minecraft:/,"")){case"nether":e=gt(t.version,"1.18")?nn:tn;break;case"overworld":e=gt(t.version,"1.18")?await async function(){return(await it("1.18","dimension","overworld")).generator.biome_source}():e}if(e=h.DataModel.unwrapLists(e),gt(t.version,"1.18")){await async function(){Yt||(await N(T),Yt=!0,console.debug(`Loaded deepslate-rs from "${T}"`))}();const n=new De,o=e=>"number"==typeof e?[e,e]:e,[r,a,s,i,l,c,d,u,h,p,m,f,v,g]=[[],[],[],[],[],[],[],[],[],[],[],[],[],[]];for(const t of e.biomes){const{temperature:e,humidity:w,continentalness:_,erosion:y,weirdness:b,depth:x,offset:k}=t.parameters;r.push(o(e)[0]),a.push(o(e)[1]),s.push(o(w)[0]),i.push(o(w)[1]),l.push(o(_)[0]),c.push(o(_)[1]),d.push(o(y)[0]),u.push(o(y)[1]),h.push(o(b)[0]),p.push(o(b)[1]),m.push(o(x)[0]),f.push(o(x)[1]),v.push(k),g.push(n.getOrPut(t.biome,Math.floor(2147483647*Math.random())))}const w=j(new Float64Array(r),new Float64Array(a),new Float64Array(s),new Float64Array(i),new Float64Array(l),new Float64Array(c),new Float64Array(d),new Float64Array(u),new Float64Array(h),new Float64Array(p),new Float64Array(m),new Float64Array(f),new Float64Array(v),new Int32Array(g)),_=E(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=S(w,_,e,e+1,1,t,t+1,1,o,o+1,1);return O.parse(null!=(r=n.getA(a[0]))?r:"unknown")},getBiomes:(e,t,o,r,a,s,i,l,c)=>[...S(w,_,e,t,o,r,a,s,i,l,c)].map((e=>{var t;return O.parse(null!=(t=n.getA(e))?t:"unknown")})),getClimate(e,t,n){const o=L(_,e,e+1,1,t,t+1,1,n,n+1,1),[r,a,s,i,l]=o.slice(0,5);return{temperature:r,humidity:a,continentalness:s,erosion:i,weirdness:l}},getClimates(e,t,n,o,r,a,s,i,l){const c=L(_,e,t,n,o,r,a,s,i,l),d=[];for(let u=0;u{var r;const a=e[`${n}_noise`];return a.firstOctave=je(null!=(r=a.firstOctave)?r:-7,-100,-1),new P(new D(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 s=1/0,i="";for(const{biome:n,parameters:l}of e.biomes){const e=$e(l.altitude-a[0])+$e(l.temperature-a[1])+$e(l.humidity-a[2])+$e(l.weirdness-a[3])+$e(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(sn(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 je(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(je(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 s=0;s=n.size[0]||s[1]>=n.size[1]||s[2]>=n.size[2])continue;const e=s[2]*(4*t.width)+4*s[0],o=i{hn(t,null==e?void 0:e.decorator,n).forEach((t=>un(t,null==e?void 0:e.feature,n)))},random_boolean_selector:(e,t,n)=>{un(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 un(t,a.feature,n);un(t,null==e?void 0:e.default,n)},simple_random_selector:(e,t,n)=>{var o,r,a;un(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)}},mn={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),s=Math.max(0,Math.ceil((a+(null!=(o=e.noise_offset)?o:0))*e.noise_to_count_ratio));return new Array(s).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,on[je(0,63,r)]),4*Math.floor(o%4)+1+n.nextInt(3)+t[2]]})),decorated:(e,t,n)=>hn(t,null==e?void 0:e.outer,n).flatMap((t=>hn(t,null==e?void 0:e.inner,n))),depth_average:(e,t,n)=>{var o,r,a,s;return ln(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!=(s=null==e?void 0:e.baseline)?s: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)=>ln(t,Math.max(n.seaLevel,on[je(0,63,t[0])])),heightmap_spread_double:(e,t,n)=>{const o=Math.max(n.seaLevel,on[je(0,63,t[0])]);return ln(t,n.nextInt(2*o))},heightmap_world_surface:(e,t,n)=>ln(t,Math.max(n.seaLevel,on[je(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 ln(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 ln(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,s;return ln(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!=(s=null==e?void 0:e.bottom_offset)?s:0)))},spread_32_above:(e,t,n)=>ln(t,n.nextInt(t[1]+32)),top_solid_heightmap:(e,t)=>ln(t,on[je(0,63,t[0])]),magma:(e,t,n)=>ln(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=on[je(0,63,t[0])],a=r+(null!=(n=null==e?void 0:e.min_inclusive)?n:-1/0),s=r+(null!=(o=null==e?void 0:e.max_inclusive)?o:1/0);return t[1]s?[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 fn(e,t,n){var o;let r=[e];for(const a of t){vn[sn(null!=(o=null==a?void 0:a.type)?o:"nope")]&&(r=r.flatMap((e=>vn[sn(a.type)](a,e,n))))}for(const a of r)n.placements.push([a,0])}const vn={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)=>ln(t,function(e,t){var n,o,r,a;if(!ge(e))throw new Error("Invalid height provider");if("string"!=typeof e.type)return cn(e);switch(sn(e.type)){case"constant":return cn(e.value);case"uniform":{const n=cn(e.min_inclusive),o=cn(e.max_inclusive);return n+t.nextInt(o-n+1)}case"biased_to_bottom":{const r=cn(e.min_inclusive),a=cn(e.max_inclusive),s=t.nextInt(a-r-(null!=(n=e.inner)?n:1)+1);return r+t.nextInt(s+(null!=(o=e.inner)?o:1))}case"very_biased_to_bottom":{const n=cn(e.min_inclusive),o=cn(e.max_inclusive),a=null!=(r=e.inner)?r:1,s=n+a+t.nextInt(o-n-a+1),i=n+t.nextInt(s-n);return n+t.nextInt(i-n+a)}case"trapezoid":{const n=cn(e.min_inclusive),o=cn(e.max_inclusive),r=null!=(a=e.plateau)?a:0;if(r>=o-n)return n+t.nextInt(o-n+1);const s=(o-n-r)/2,i=o-n-s;return n+t.nextInt(i+1)+t.nextInt(s+1)}default:throw new Error(`Invalid height provider ${e.type}`)}}(e,n)),heightmap:({},e,t)=>ln(e,Math.max(t.seaLevel,on[je(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),s=r.biomeInfoNoise.sample(o[0]/a,0,o[2]/a),i=Math.max(0,Math.ceil((s+(null!=n?n:0))*e));return new Array(i).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 gn{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 D(e);this.minLimitPerlinNoise=new B(t,-15,[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]),this.maxLimitPerlinNoise=new B(t,-15,[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]),this.mainPerlinNoise=new B(t,-7,[1,1,1,1,1,1,1,1]),this.depthNoise=new B(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]=(s=n,i=o,l=r[h],c=r[h+1],d=a[h],u=a[h+1],Se(i,Se(s,l,c),Se(s,d,u)))}var s,i,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,s=r/this.settings.sampling.y_factor,i=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,s);const c=((1-2*l/this.chunkCountY+i)*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=Ee(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=Ee(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,s){let i=0,l=0,c=0,d=1;for(let u=0;u<16;u+=1){const h=B.wrap(e*o*d),p=B.wrap(t*r*d),m=B.wrap(n*o*d),f=r*d,v=this.minLimitPerlinNoise.getOctaveNoise(u);v&&(i+=v.sample(h,p,m,f,t*f)/d);const g=this.maxLimitPerlinNoise.getOctaveNoise(u);if(g&&(l+=g.sample(h,p,m,f,t*f)/d),u<8){const o=this.mainPerlinNoise.getOctaveNoise(u);o&&(c+=o.sample(B.wrap(e*a*d),B.wrap(t*s*d),B.wrap(n*a*d),s*d,t*s*d)/d)}d/=2}return Ee(i/512,l/512,(c/10+1)/2)}}const wn={"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 _n,yn,bn=[];const xn=new Map;async function kn(e,t,n){var o,r,a;if(gt(n.version,"1.18")){gt(n.version,"1.18.2")&&await An(n.version);const{settings:r,generator:a}=function(e,t){const n=K.fromJson(h.DataModel.unwrapLists(e)),o=[e,`${t.seed}`,t.biome];if(!Pe(o,_n))if(_n=Le(o),bn=[],gt(t.version,"1.18.2")){const e=new V(O.create("unknown"));yn=new Z(t.seed,e,n)}else{const e=new te("unknown");yn=new X(t.seed,e,n)}return{settings:n,generator:yn}}(e,n),s=new zn(-n.offset,n.width,r.noise.minY,r.noise.height);s.generate(a,n.biome);const i=t.data;for(let e=0;easync function(e,t,n,o){const r=await async function(e,t){console.debug(`[fetchAllPresets] ${e} ${t}`);const n=ve.versions.find((t=>t.id===e));await rt(n);try{const e=await lt(`${ot(n,"registries")}/${t}/data.min.json`);return new Map(await Promise.all(e.map((async e=>[e,await lt(`${ot(n,"data")}/data/minecraft/${t}/${e}.json`)]))))}catch(o){throw new Error(`Error occurred while fetching all ${t} presets: ${Oe(o)}`)}}(e,n),a=new Y(O.create(n));for(const[s,i]of r.entries())a.register(O.parse(s),o.fromJson(i));t.register(a.key,a)}(e,n,t,o)))),xn.set(e,n)),q.DENSITY_FUNCTION.clear().assign(n.getOrThrow(O.create("worldgen/density_function"))),q.NOISE.clear().assign(n.getOrThrow(O.create("worldgen/noise")))}function In(e,t){return e[t]>0?0:e[t+1]>0?150:255}class zn{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,s=bn.find((e=>e.pos[0]===a));return s?(this.done[r]=!0,s):new Q(n,o,H.create(a,0))}))}generate(e,t){this.chunks.forEach(((n,o)=>{this.done[o]||(e.fill(n,!0),e.buildSurface(n,t),this.done[o]=!0,bn.push(n))}))}getBlockState(e){const t=(e[0]>>4)-(this.minX>>4);return this.chunks[t].getBlockState(e)}}const $n=["biomes","temperature","humidity","continentalness","erosion","weirdness"],jn=({model:e,data:t,shown:n,version:o})=>{var r,a;const{locale:s}=St(),[l]=v(ye()),[u,p]=v(2),[m,g]=v(void 0),[y,b]=v(new Set(["biomes"])),x=f([0,0]),k=f(1),C=f(void 0),M=BigInt(null!=(r=e.get(new h.Path(["generator","seed"])))?r:l),A=w((()=>{if(n)return function(e){"string"!=typeof e&&(e=e.legacy_random_source?"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"])))}),[n]),I=n?function(e,t){return JSON.stringify([e,t])}(t,A):"",z=null==(a=t.type)?void 0:a.replace(/^minecraft:/,""),{canvas:$,redraw:j}=Te({size:()=>[200/k.current,200/k.current],async draw(e){const n={octaves:A,biomeColors:{},layers:y,offset:x.current,scale:u,seed:M,res:k.current,version:o};await async function(e,t,n){var o,r,a;const{biomeSource:s}=await Xt(e,n),i=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],p=[c*n.scale,(200+c)*n.scale,n.res*n.scale],m=n.layers.has("biomes")?null==(o=s.getBiomes)?void 0:o.call(s,...h,64,65,1,...p):void 0,f=[...n.layers].filter((e=>"biomes"!==e)),v=0===f.length||null==(r=s.getClimates)?void 0:r.call(s,...h,64,65,1,...p);for(let g=0;g<200;g+=n.res)for(let e=0;e<200;e+=n.res){const t=e*d+g*u,o=g/n.res*200/n.res+e/n.res,r=(g+l)*n.scale,h=(e+c)*n.scale;let p=[50,50,50];if(n.layers.has("biomes"))p=Qt((null!=(a=null==m?void 0:m[o])?a:s.getBiome(r,64,h)).toString(),n.biomeColors);else if(v&&f[0]){const e=v[o][f[0]],[t,n]=qt[f[0]],r=(e-t)/(n-t)*256;p=[r,r,r]}i[t]=p[0],i[t+1]=p[1],i[t+2]=p[2],i[t+3]=255}}(t,e,n),4===k.current&&(clearTimeout(C.current),C.current=setTimeout((()=>{k.current=1,j()}),150))},async onDrag(e,t){x.current[0]=x.current[0]+200*e,x.current[1]=x.current[1]+200*t,clearTimeout(C.current),k.current="multi_noise"===z?4:1,j()},async onHover(e,n){const r={octaves:A,biomeColors:{},layers:y,offset:x.current,scale:u,seed:l,res:1,version:o},a=await async function(e,t,n,o){var r;const{biomeSource:a}=await Xt(e,o),[s,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 i({biome:a.getBiome(s,64,l).toString()},null==(r=a.getClimate)?void 0:r.call(a,s,64,l))}(t,Math.floor(200*e),Math.floor(200*n),r);g(a)},onLeave(){g(void 0)}},[I,u,l,y]);c((()=>{n&&(k.current="multi_noise"===z?4:1,j())}),[I,u,l,y,n]);const E=e=>{x.current[0]=x.current[0]*u/e,x.current[1]=x.current[1]*u/e,p(e)};return d(_,null,d("div",{class:"controls preview-controls"},m&&d(fe,{label:m.biome,class:"no-pointer"}),"multi_noise"===z&&d(Re,{icon:"stack",tooltip:s("configure_layers")},$n.map((e=>{const t=y.has(e);return d(fe,{label:s(`layer.${e}`),active:t,tooltip:s(t?"enabled":"disabled"),onClick:t=>{b(new Set([e])),t.stopPropagation()}})}))),("multi_noise"===z||"checkerboard"===z)&&d(_,null,d(fe,{icon:"dash",tooltip:s("zoom_out"),onClick:()=>E(1.5*u)}),d(fe,{icon:"plus",tooltip:s("zoom_in"),onClick:()=>E(u/1.5)})),"multi_noise"===z&&d(fe,{icon:"sync",tooltip:s("generate_new_seed"),onClick:()=>be(e)})),void 0!==(null==m?void 0:m.temperature)&&d("div",{class:"controls secondary-controls"},d(fe,{class:"no-pointer",label:Object.entries(m).filter((([e])=>"biome"!==e)).map((([e,t])=>`${e[0].toUpperCase()}: ${t.toFixed(2)}`)).join(" ")})),d("canvas",{ref:$,width:"200",height:"200"}))};const En=({data:e,version:t,shown:n})=>{const{locale:o}=St(),[r,a]=v(4),[s,i]=v(ye()),{canvas:l,redraw:u}=Te({size:()=>[16*r,16*r],async draw(n){an(e,n,{seed:s,version:t,size:[16*r,128,16*r]})}}),h=JSON.stringify(e);return c((()=>{n&&u()}),[h,r,s,n]),d(_,null,d("div",{class:"controls preview-controls"},d(fe,{icon:"dash",tooltip:o("zoom_out"),onClick:()=>a(Math.min(16,r+1))}),d(fe,{icon:"plus",tooltip:o("zoom_in"),onClick:()=>a(Math.max(1,r-1))}),d(fe,{icon:"sync",tooltip:o("generate_new_seed"),onClick:()=>i(ye())})),d("canvas",{ref:l,width:"64",height:"64"}))},Sn=({data:e,shown:t,version:n})=>{var o,r;const{locale:a}=St(),[s,i]=v(ye()),[l,u]=v(!1),[h,p]=v(void 0),m=f(0),g=f(void 0),w=JSON.stringify([e]),y=null!=(r=null==(o=null==e?void 0:e.noise)?void 0:o.height)?r:256,{canvas:b,redraw:x}=Te({size:()=>[y,y],async draw(t){const o={offset:m.current,width:t.width,seed:s,version:n};await Cn(e,t,o)},async onDrag(e){m.current+=e*y,x()},async onHover(t,n){var o,r;const a=Math.floor(t*y-m.current),s=y-Math.max(1,Math.ceil(n*y))+(null!=(r=null==(o=null==e?void 0:e.noise)?void 0:o.min_y)?r:0);p(`X=${a} Y=${s}`)},onLeave(){p(void 0)}},[w,s]);return c((()=>{g.current&&clearInterval(g.current),t&&(x(),l&&(g.current=setInterval((()=>{m.current-=8,x()}),100)))}),[w,s,t,l]),d(_,null,d("div",{class:"controls preview-controls"},h&&d(fe,{label:h,class:"no-pointer"}),d(Re,{icon:"gear",tooltip:a("terrain_settings")},d(fe,{icon:l?"square_fill":"square",label:a("preview.auto_scroll"),onClick:()=>u(!l)})),d(fe,{icon:"sync",tooltip:a("generate_new_seed"),onClick:()=>i(ye())})),d("canvas",{ref:b,width:y,height:y}))},On=({data:e,shown:t,version:n})=>{const{locale:o}=St(),[r,a]=v(ye()),[s,i]=v(2),l=f([0,0]),u=JSON.stringify([e]),{canvas:p,redraw:m}=Te({size:()=>[256,256],async draw(t){const o={offset:l.current,scale:s,seed:r,version:n};!function(e,t,n){const o=new D(n.seed),r=ee.fromJson(h.DataModel.unwrapLists(e)),a=new P(o,r),s=-n.offset[0]-100,i=-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+s)*n.scale,r=(e+i)*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,m()}},[u,s,r]);c((()=>{t&&m()}),[u,s,r,t]);const g=e=>{l.current[0]=l.current[0]*s/e,l.current[1]=l.current[1]*s/e,i(e)};return d(_,null,d("div",{class:"controls preview-controls"},d(fe,{icon:"dash",tooltip:o("zoom_out"),onClick:()=>g(1.5*s)}),d(fe,{icon:"plus",tooltip:o("zoom_in"),onClick:()=>g(s/1.5)}),d(fe,{icon:"sync",tooltip:o("generate_new_seed"),onClick:()=>a(ye())})),d("canvas",{ref:p,width:"256",height:"256"}))},Ln=({data:e,shown:t,version:n})=>{var o,r;const{locale:a}=St(),[s,i]=v(ye()),[l,u]=v("minecraft:plains"),[h,p]=v(.2),[m,g]=v(.1),[y,b]=v(!1),[x,k]=v(void 0),C=f(0),M=f(void 0),A=JSON.stringify([e,h,m]),I=null!=(r=null==(o=null==e?void 0:e.noise)?void 0:o.height)?r:256,{canvas:z,redraw:$}=Te({size:()=>[I,I],async draw(t){const o={biome:l,biomeDepth:m,biomeScale:h,offset:C.current,width:t.width,seed:s,version:n};await kn(e,t,o)},async onDrag(e){C.current+=e*I,$()},async onHover(t,n){var o,r;const a=Math.floor(t*I-C.current),s=I-Math.max(1,Math.ceil(n*I))+(null!=(r=null==(o=null==e?void 0:e.noise)?void 0:o.min_y)?r:0),i=function(e,t){const n=bn.find((t=>H.minBlockX(t.pos)<=e&&H.maxBlockX(t.pos)>=e));if(n)return n.getBlockState(F.create(e,t,0))}(a,s);k(i?`Y=${s} (${i.getName().path})`:`Y=${s}`)},onLeave(){k(void 0)}},[A,s]);c((()=>{M.current&&clearInterval(M.current),t&&(async()=>{try{await $(),y&&(M.current=setInterval((()=>{C.current-=8,$()}),100))}catch(e){throw e}})()}),[A,s,t,l,h,m,y]);const j=w((()=>{var e;return null!=(e=null==ft?void 0:ft.get("worldgen/biome"))?e:[]}),[n]);return d(_,null,d("div",{class:"controls preview-controls"},x&&d(fe,{label:x,class:"no-pointer"}),d(Re,{icon:"gear",tooltip:a("terrain_settings")},gt(n,void 0,"1.17")?d(_,null,d(Ve,{label:a("preview.scale"),value:`${h}`,onChange:e=>p(Number(e))}),d(Ve,{label:a("preview.depth"),value:`${m}`,onChange:e=>g(Number(e))})):d(Ve,{label:a("preview.biome"),value:l,onChange:u,dataList:j,larger:!0}),d(fe,{icon:y?"square_fill":"square",label:a("preview.auto_scroll"),onClick:()=>b(!y)})),d(fe,{icon:"sync",tooltip:a("generate_new_seed"),onClick:()=>i(ye())})),d("canvas",{ref:z,width:I,height:I}))},Pn=["dimension","worldgen/density_function","worldgen/noise","worldgen/noise_settings","worldgen/configured_feature","worldgen/placed_feature"];function Dn({model:e,version:t,id:n,shown:o}){var r;const[,a]=v(0);if(Fe(e,(()=>{a((e=>e+1))})),!e)return d(_,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(jn,i({},{model:e,version:t,shown:o,data:n}))}if("worldgen/density_function"===n){const n=e.get(new h.Path([]));if(n)return d(Sn,i({},{model:e,version:t,shown:o,data:n}))}if("worldgen/noise"===n){const n=e.get(new h.Path([]));if(n)return d(On,i({},{model:e,version:t,shown:o,data:n}))}if("worldgen/noise_settings"===n){const n=e.get(new h.Path([]));if(n)return d(Ln,i({},{model:e,version:t,shown:o,data:n}))}if("worldgen/placed_feature"===n||"worldgen/configured_feature"===n&>(t,"1.16","1.17")){const n=e.get(new h.Path([]));if(n)return d(En,i({},{model:e,version:t,shown:o,data:n}))}return d(_,null)}function Vn(e,t){return e.schema.hook(Nn,new h.ModelPath(e),e.data,{blockStates:t})}const Nn={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,s;if(void 0===o)return;const i="block_state_map"===(null==(a=t.validation)?void 0:a.validator)?null==(s=r.blockStates)?void 0:s[h.relativePath(n,t.validation.params.id).get()]:null,l={};Object.keys(o).forEach((t=>{var a;i&&!Object.keys(null!=(a=i.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 s=a[e].hook(this,t.push(e),n[e],o);null!=s&&(r[e]=s)}));for(const s of Object.getOwnPropertySymbols(n))r[s]=n[s];return r}},Tn={"2_spaces":2,"4_spaces":4,tabs:"\t",minified:void 0},Bn={json:{parse:oe.parse,stringify:(e,t)=>oe.stringify(e,null,t)+"\n"},yaml:{parse:re.load,stringify:(e,t)=>re.dump(e,{flowLevel:void 0===t?0:-1,indent:"string"==typeof t?4:t})}};function Hn({name:e,model:t,blockStates:n,doCopy:o,doDownload:r,doImport:a,copySuccess:s,onError:i}){const{locale:l}=St(),[u,p]=v(Ct.getIndent()),[m,g]=v(Ct.getFormat()),[w,y]=v(Ct.getHighlighting()),b=f(null),x=f(),k=f(),C=f(),M=f(),A=z(((e,t)=>{const n=Vn(e,t);return Bn[m].stringify(n,Tn[u])}),[u,m]);c((()=>{x.current=()=>{if(t&&n)try{const e=A(t,n);M.current.setValue(e)}catch(e){e instanceof Error?(e.message=`Error getting JSON output: ${e.message}`,i(e)):i(`Error getting JSON output: ${Oe(e)}`),console.error(e),M.current.setValue("")}},k.current=()=>{const e=M.current.getValue();if(0!==e.length)try{const n=Bn[m].parse(e);null==t||t.reset(h.DataModel.wrapLists(n),!1)}catch(n){n instanceof Error?(n.message=`Error importing: ${n.message}`,i(n)):i(`Error importing: ${Oe(n)}`),console.error(n)}}}),[t,n,u,m,w]),c((()=>{if(w){const e=ne.edit("editor");e.setOptions({fontSize:14,showFoldWidgets:!1,highlightSelectedWord:!1}),e.$blockScrolling=1/0,e.on("blur",(e=>k.current(e))),e.getSession().setMode("ace/mode/json"),M.current={getValue:()=>e.getSession().getValue(),setValue(t){e.getSession().setValue(t)},configure(t,n){e.setOption("useSoftTabs","tabs"!==t),e.setOption("tabSize","tabs"===t?4:Tn[t]),e.getSession().setMode(`ace/mode/${n}`)},select(){e.selectAll()}}}else M.current={getValue:()=>C.current.value,setValue(e){C.current.value=e},configure(){},select(){}}}),[w]),Fe(t,(()=>{x.current()})),c((()=>{t&&x.current()}),[t]),c((()=>{M.current.configure(u,m),x.current()}),[u,m,w]),c((()=>{o&&t&&n&&navigator.clipboard.writeText(A(t,n)).then((()=>{s()}))}),[o]),c((()=>{if(r&&t&&n&&b.current){const o=encodeURIComponent(A(t,n));b.current.setAttribute("href",`data:text/json;charset=utf-8,${o}`),b.current.setAttribute("download",`${e}.${m}`),b.current.click()}}),[r]),c((()=>{a&&M.current&&(M.current.setValue(""),M.current.select())}),[a]);return d(_,null,d("div",{class:"controls source-controls"},d(Re,{icon:"gear",tooltip:l("output_settings"),"data-cy":"source-controls"},Object.entries(Tn).map((([e])=>d(fe,{label:l(`indentation.${e}`),active:u===e,onClick:()=>{return t=e,Ct.setIndent(t),void p(t);var t}}))),d("hr",null),Object.keys(Bn).map((e=>d(fe,{label:l(`format.${e}`),active:m===e,onClick:()=>{return t=e,Ct.setFormat(t),void g(t);var t}}))),d("hr",null),d(fe,{icon:w?"square_fill":"square",label:l("highlighting"),onClick:()=>{return e=!w,Ct.setHighlighting(e),void y(e);var e}}))),w?d("pre",{id:"editor",class:"source"}):d("textarea",{ref:C,class:"source",spellcheck:!1,autocorrect:"off",onBlur:k.current}),d("a",{ref:b,style:"display: none;"}))}class Fn 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 Rn=["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","root_placer.type","entity.type_specific.cat.variant","entity.type_specific.frog.variant"],Jn=["number_provider.type","score_provider.type","nbt_provider.type","int_provider.type","float_provider.type","height_provider.type"],Wn=["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"],Un=["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","density_function.type","root_placer.type","entity.type_specific.type"],Gn=["function.set_nbt.tag","advancement.display.icon.nbt","text_component_object.nbt","entity.nbt","block.nbt","item.nbt"],Yn=["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"],qn=["noise_settings.surface_rule","noise_settings.noise.terrain_shaper"],Kn=["density_function.argument","density_function.argument1","density_function.argument2","density_function.input","density_function.when_in_range","density_function.when_out_of_range"],Zn=new h.DataModel(h.MapNode(h.StringNode(),h.StringNode()),{historyMax:0});function Xn({model:e,lang:t,version:n,blockStates:o}){var r;const a=new h.ModelPath(e),[s,i,l]=e.schema.hook(Qn,a,Le(e.data),t,n,o,{});return(null==(r=null==i?void 0:i.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"},s,i),d("div",{class:"node-body"},l)):l}const Qn={base:()=>[null,null,null],boolean:(e,t,n,o,r,a,s)=>[null,d(no,i({},l(i({},e),{path:t,value:n,lang:o,version:r,states:a,ctx:s}))),null],choice({choices:e,config:t,switchNode:n},o,r,a,s,i,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,[p,m,f]=c.node.hook(this,u,r,a,s,i,l);if(1===e.length)return[p,m,f];const v=(null==t?void 0:t.choiceContext)?new h.Path([],[t.choiceContext]):(null==t?void 0:t.context)?new h.Path([],[t.context]):o,g=d("select",{value:c.type,onChange:n=>(n=>{var a;const s=null!=(a=e.find((e=>e.type===n)))?a:c,i=s.node.default(),l=s.change?s.change(h.DataModel.unwrapLists(r)):"feature"===t.choiceContext&&"minecraft:decorated"===(null==i?void 0:i.type)?i.config.feature:i;o.model.set(o,h.DataModel.wrapLists(l))})(n.target.value)},e.map((e=>d("option",{value:e.type},lo(a,v.contextPush(e.type))))));return[p,d(_,null,g,m),f]},list({children:e,config:t},n,o,r,a,s,c){const{expand:u,collapse:p,isToggled:m}=to(),[f,g]=v(50),w=n.getContext().join(".");if(Yn.includes(w)){return[d(_,null,[...Array(t.maxLength)].map(((e,t)=>d(co,{lang:r,path:n.modelPush(t)}))),d("div",{class:"fixed-list"})),d(_,null,[...Array(t.maxLength)].map(((t,i)=>{var l;return e.hook(this,n.modelPush(i),null==(l=null==o?void 0:o[i])?void 0:l.node,r,a,s,c)[1]}))),null]}return[null,d("button",{class:"add tooltipped tip-se","aria-label":jt(r,"add_top"),onClick:()=>{Array.isArray(o)||(o=[]);const t=h.DataModel.wrapLists(e.default());n.model.set(n,[{node:t,id:_e()},...o])}},Je.plus_circle),d(_,null,o&&Array.isArray(o)&&o.map((({node:t,id:h},v)=>{if(v===f)return d("div",{class:"node node-header"},d("label",null,jt(r,"entries_hidden",""+(o.length-f))),d("button",{onClick:()=>g(Math.min(f+50,o.length))},jt(r,"entries_hidden.more","50")),d("button",{onClick:()=>g(o.length)},jt(r,"entries_hidden.all")));if(v>f)return null;const w=n.push(v).contextPush("entry"),_="object"===e.type(w),y=m(h);if(_&&(!1===y||void 0===y&&o.length>20))return d("div",{class:"node node-header","data-category":e.category(w)},d(co,{lang:r,path:w,nested:!0}),d("button",{class:"toggle tooltipped tip-se","aria-label":`${jt(r,"expand")}\n${jt(r,"expand_all","Ctrl")}`,onClick:u(h)},Je.chevron_right),d("label",null,lo(r,w,`${v}`)),d(eo,{key:h,path:w,value:t,schema:e}));return d(ao,l(i({key:h,path:w,schema:e,value:t},{lang:r,version:a,states:s,actions:[{icon:"duplicate",label:"duplicate",onSelect:()=>{const e=[...n.get()];e.splice(v,0,{id:_e(),node:Le(t)}),n.model.set(n,e)}}]}),{ctx:l(i({},c),{index:(0===v?1:0)+(v===o.length-1?2:0)})}),_&&d("button",{class:"toggle tooltipped tip-se","aria-label":`${jt(r,"collapse")}\n${jt(r,"collapse_all","Ctrl")}`,onClick:p(h)},Je.chevron_down),d("button",{class:"remove tooltipped tip-se","aria-label":jt(r,"remove"),onClick:()=>w.set(void 0)},Je.trashcan),o.length>1&&d("div",{class:"node-move"},d("button",{class:"move tooltipped tip-se","aria-label":jt(r,"move_up"),onClick:()=>{const e=[...n.get()];[e[v-1],e[v]]=[e[v],e[v-1]],n.model.set(n,e)},disabled:0===v},Je.chevron_up),d("button",{class:"move tooltipped tip-se","aria-label":jt(r,"move_down"),onClick:()=>{const e=[...n.get()];[e[v+1],e[v]]=[e[v],e[v+1]],n.model.set(n,e)},disabled:v===o.length-1},Je.chevron_down)))})),o&&o.length>0&&o.length<=f&&d("div",{class:"node node-header"},d("button",{class:"add tooltipped tip-se","aria-label":jt(r,"add_bottom"),onClick:()=>{Array.isArray(o)||(o=[]);const t=h.DataModel.wrapLists(e.default());n.model.set(n,[...o,{node:t,id:_e()}])}},Je.plus_circle)))]},map({children:e,keys:t,config:n},o,r,a,s,c,u){var p,m,f,v,g;const{expand:w,collapse:y,isToggled:b}=to(),x=new h.ModelPath(Zn,new h.Path([io(o.toString())])),k="block_state_map"===(null==(p=n.validation)?void 0:p.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!=(m=k.properties)?m:{})}):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!=(v=k.properties)?v:{}).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,s,c,u)}return[null,d(_,null,C.hook(this,x,null!=(g=x.get())?g:"",a,s,c,u)[1],d("button",{class:"add tooltipped tip-se","aria-label":jt(a,"add"),onClick:()=>{const t=x.get();o.model.set(o.push(t),h.DataModel.wrapLists(e.default()))}},Je.plus_circle)),d(_,null,"object"==typeof r&&Object.entries(r).map((([t,n])=>{var p,m,f,v;const g=o.modelPush(t),_="object"===e.type(g),x=b(t);if(_&&(!1===x||void 0===x&&r.length>20))return d("div",{class:"node node-header","data-category":e.category(g)},d(co,{lang:a,path:g,nested:!0}),d("button",{class:"toggle tooltipped tip-se","aria-label":`${jt(a,"expand")}\n${jt(a,"expand_all","Ctrl")}`,onClick:w(t)},Je.chevron_right),d("label",null,t),d(eo,{key:t,path:g,value:n,schema:e}));const C=k?h.StringNode(null,{enum:null!=(m=null==(p=k.properties)?void 0:p[t])?m:[]}):e;(null==(f=null==k?void 0:k.properties)?void 0:f[t])&&"string"==typeof n&&!(null==(v=k.properties)?void 0:v[t].includes(n))&&o.model.errors.add(g,"error.invalid_enum_option",n);return d(ao,l(i({key:t,schema:C,path:g,value:n},{lang:a,version:s,states:c,ctx:u}),{label:t}),_&&d("button",{class:"toggle tooltipped tip-se","aria-label":`${jt(a,"collapse")}\n${jt(a,"collapse_all","Ctrl")}`,onClick:y(t)},Je.chevron_down),d("button",{class:"remove tooltipped tip-se","aria-label":jt(a,"remove"),onClick:()=>g.set(void 0)},Je.trashcan))})))]},number:(e,t,n,o,r,a,s)=>[null,d(oo,i({},l(i({},e),{path:t,value:n,lang:o,version:r,states:a,ctx:s}))),null],object({node:e,config:t,getActiveFields:n,getChildModelPath:o},r,a,s,c,u,p){var m;const{expand:f,collapse:v,isToggled:g}=to();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:/,""))&&ge(null==t?void 0:t.config)}(t.context,a)){const{wrapper:e,fields:t}=function(e,t,n){const o=[],r=po(n,o),a={type:e.type,config:h.ObjectNode({decorators:h.ListNode(pt),feature:mt},{context:"feature.decorated"})},s=h.ObjectNode(a,{context:"feature"}),i=new h.Path(["config","feature"]),l=new h.Path(["config","decorators"]),c=t.getModel(),d=new Fn(s,(e=>{if(e.startsWith(i))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 po(c.data,e),e}return c.get(d.map(e))}),((e,t,n)=>{if(e.startsWith(i)){const o=[];po(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(i);return c.set(new h.Path,mo(e,t),n)}if("number"==typeof o){if(3===e.modelArr.length&&void 0===t){const e=d.get(i),t=[];po(c.data,t),t.splice(o,1);const r=mo(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 w=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":jt(s,"expand"),onClick:t},Je.plus_circle)}else{const e=()=>r.set(void 0);y=d("button",{class:"collapse open tooltipped tip-se","aria-label":jt(s,"remove"),onClick:e},Je.trashcan)}const b=r.getContext().join(".");if(Kn.includes(b)||qn.includes(b)){const e=g(""),t=qn.includes(b)?e:!e;if(w=d(_,null,d("button",{class:"toggle tooltipped tip-se","aria-label":jt(s,t?"collapse":"expand"),onClick:e?v(""):f("")},t?Je.chevron_down:Je.chevron_right)),!t)return[w,y,null]}const x="object"==typeof a&&null!==a&&(null==(m=e.default())?void 0:m.pools)?l(i({},p),{loot:null==a?void 0:a.type}):p,k=d(_,null,"object"==typeof a&&null!==a&&!(e.optional()&&void 0===a)&&Object.entries(n(r)).filter((([e,t])=>t.enabled(r))).map((([e,t])=>{const n=o(r,e),l=n.getContext().join(".");if(Jn.includes(l))return null;const[h,p,m]=t.hook(this,n,a[e],s,c,u,x),f="object"===t.type(n)&&Wn.includes(l),v=Un.includes(l);return f||v?(w=d(_,null,w,d(co,{lang:s,path:n}),d(uo,{lang:s,path:n}),h),y=d(_,null,y,p),f?m:null):d(ao,i({key:e,schema:t,path:n,value:a[e]},{lang:s,version:c,states:u,ctx:x}))})));return[w,y,k]},string:(e,t,n,o,r,a,s)=>[null,d(ro,i({},l(i({},e),{path:t,value:n,lang:o,version:r,states:a,ctx:s}))),null]};function eo({path:e,value:t}){var n,o,r,a,s;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!=(s=null==(r=null==t?void 0:t.name)?void 0:r.replace(/^minecraft:/,""))?s:null==(a=null==t?void 0:t.type)?void 0:a.replace(/^minecraft:/,""))}for(const i of Object.values(null!=t?t:{}))if("string"==typeof i)return d("label",null,i.replace(/^minecraft:/,""));return null}function to(){const[e,t]=v(new Map),[n,o]=v(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 no({path:e,node:t,value:n,lang:o}){const r=o=>{e.model.set(e,t.optional()&&n===o?void 0:o)};return d(_,null,d("button",{class:!1===n?"selected":"",onClick:()=>r(!1)},jt(o,"false")),d("button",{class:!0===n?"selected":"",onClick:()=>r(!0)},jt(o,"true")))}function oo({path:e,config:t,integer:n,value:o,lang:r}){var a;const s=t=>{const o=t.target.value,r=n?parseInt(o):parseFloat(o);e.model.set(e,r)};return d(_,null,d("input",{type:"text",value:null!=o?o:"",onBlur:s,onKeyDown:e=>{"Enter"===e.key&&s(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","structure_placement.salt"].includes(e.getContext().join("."))&&d("button",{onClick:()=>be(e.model),class:"tooltipped tip-se","aria-label":jt(r,"generate_new_seed")},Je.sync))}function ro({path:e,getValues:t,config:n,node:o,value:r,lang:a,version:s,states:i}){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(),p=e.getContext().join("."),m=so(n)||"resource"!==(null==n?void 0:n.validator)||"string"!=typeof n.params.pool?void 0:n.params.pool;if(Gn.includes(p))return d("textarea",{value:null!=r?r:"",onBlur:c});if(so(n)&&!n.additional||Rn.includes(p)){let t=new h.Path([]);return so(n)&&"string"==typeof n.enum?t=t.contextPush(n.enum):m?t=t.contextPush(m):so(n)&&(t=e),d("select",{value:null!=r?r:"",onChange:c},o.optional()&&d("option",{value:""},jt(a,"unset")),u.map((e=>d("option",{value:e},lo(a,t.contextPush(e.replace(/^minecraft:/,"")))))))}if(so(n)||"block_state_key"!==(null==n?void 0:n.validator)){const e=_e(),t=m?(e=>ve.generators.find((t=>t.id===e.replace(/^\$/,""))))(m):void 0;return d(_,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=${s}&preset=${r.replace(/^minecraft:/,"")}`,class:"tooltipped tip-se","aria-label":jt(a,"follow_reference")},Je.link_external))}{const t=null==i?void 0:i[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 ao=ae((function({label:e,schema:t,path:n,value:o,lang:r,version:a,states:s,ctx:c,actions:u,children:h}){var p;const m=t.type(n),f=t.category(n),v=n.getContext().join("."),[g,w]=Be(),_=l(i({},c),{depth:(null!=(p=c.depth)?p:0)+1});delete _.index;const[y,b,x]=t.hook(Qn,n,o,r,a,s,_);return d("div",{class:`node ${m}-node`,"data-category":f},d("div",{class:"node-header",onContextMenu:e=>{e.preventDefault(),w()}},d(co,{lang:r,path:n}),d(uo,{lang:r,path:n}),h,y,d("label",null,null!=e?e:lo(r,n,`${n.last()}`),g&&d("div",{class:"node-menu"},null==u?void 0:u.map((e=>{var t;return d("div",{key:e.label,class:"menu-item"},d(fe,{icon:e.icon,tooltip:jt(r,e.label),tooltipLoc:"se",onClick:()=>e.onSelect()}),d("span",null,null!=(t=e.description)?t:jt(r,e.label)))})),d("div",{class:"menu-item"},d(fe,{icon:"clippy",tooltip:jt(r,"copy_context"),tooltipLoc:"se",onClick:()=>navigator.clipboard.writeText(v)}),d("span",null,v)))),b),x&&d("div",{class:"node-body"},x))}),((e,t)=>e.schema===t.schema&&e.lang===t.lang&&e.path.equals(t.path)&&Pe(e.ctx,t.ctx)&&Pe(e.value,t.value)));function so(e){return!!(null==e?void 0:e.enum)}function io(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=jt(e,r[0].error,...null!=(o=r[0].params)?o:[]);return ho("node-error","issue_opened",a)}function uo({lang:e,path:t}){const n=t.contextPush("help").getContext().join("."),o=jt(e,n);return o===n?null:ho("node-help","info",o)}const ho=(e,t,n)=>{const[o,r]=Be();return d("div",{class:`node-icon ${e}${o?" show":""}`,onClick:r},Je[t],d("span",{class:"icon-popup"},n))};function po(e,t){var n,o;return"decorated"!==(null==(n=null==e?void 0:e.type)?void 0:n.replace(/^minecraft:/,""))?e:ge(null==e?void 0:e.config)?(t.push({id:t.length,node:e.config.decorator}),po(null!=(o=e.config.feature)?o:"",t)):e}function mo(e,t){return 0===t.length?e:{type:"minecraft:decorated",config:{decorator:t.shift().node,feature:mo(e,t)}}}function fo({version:e,model:t,blockStates:n,onError:o}){const{lang:r}=St();if(!t||!n||"none"===r)return d(_,null);const[a]=se((e=>{o(`Error rendering the tree: ${e.message}`),console.error(e)}));if(a)return d(_,null);const[,s]=v(0);return Fe(t,(()=>{s((e=>e+1))})),d("div",{class:"tree","data-cy":"tree"},d(Xn,i({},{model:t,lang:r,version:e,blockStates:n})))}function vo({term:e}){const{actualTheme:t}=Bt(),n="light"===t?"-burn":"",o=`https://${location.host}/assets/giscus${n}.css`;return d(ie,{repo:"misode/misode.github.io",repoId:"MDEwOlJlcG9zaXRvcnkxOTIyNTQyMzA=",category:"Site",categoryId:"DIC_kwDOC3WRFs4COB8r",mapping:e?"specific":"pathname",term:e,reactionsEnabled:"1",emitMetadata:"0",inputPosition:"top",theme:o,lang:"en"})}const go={system:"device_desktop",dark:"moon",light:"sun"};function wo(){const{lang:e,locale:t,changeLanguage:n}=St(),{theme:o,changeTheme:r}=Bt(),{version:a}=Ut(),{title:s}=Rt(),i=Me(p());return d("header",null,d("div",{class:"title"},d(le,{class:"home-link",href:"/","aria-label":t("home"),"data-cy":"home-link"},_o.home),d("h1",null,s),i&&d(Re,{icon:"chevron_down",tooltip:t("switch_generator"),"data-cy":"generator-switcher"},ve.generators.filter((e=>e.category===(null==i?void 0:i.category)&>(a,e.minVersion))).map((e=>d(fe,{label:t(e.id),active:e.id===i.id,onClick:()=>m(ke(e.url))}))))),d("nav",null,d("ul",null,d("li",{"data-cy":"language-switcher"},d(Re,{icon:"globe",tooltip:t("language")},ve.languages.map((({code:t,name:o})=>d(fe,{label:o,active:t===e,onClick:()=>n(t)}))))),d("li",{"data-cy":"theme-switcher"},d(Re,{icon:go[o],tooltip:t("theme")},Object.entries(go).map((([e,n])=>d(fe,{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")},Je.mark_github)))))}const _o={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 yo({sounds:e,sound:t,delay:n,pitch:o,volume:r,onEdit:a,onDelete:s,delayedPlay:i}){const{locale:l}=St(),{version:u}=Ut(),[h,p]=v(!0),[m,g]=v(!1),[w,_]=v(!1),y=f([]),b=`playsound minecraft:${t} master @s ~ ~ ~ ${r} ${o}`;c((()=>{var n,a,s;const i=e[t];_(0===(null!=(a=null==(n=null==i?void 0:i.sounds)?void 0:n.length)?a:0)),y.current.forEach((e=>e.stop())),y.current=(null!=(s=null==i?void 0:i.sounds)?s:[]).map((e=>{const t="string"==typeof e?e:e.name,n=(a=u,s=t,`${ot(ve.versions.find((e=>e.id===a)),"assets")}/assets/minecraft/sounds/${s}.ogg`);var a,s;const i=new ce.Howl({src:[n],format:["ogg"],volume:r,rate:o});i.on("end",(()=>{g(!1)}));const l=()=>{h&&y.current.every((e=>"loaded"===e.state()))&&p(!1)};return"loaded"===i.state()?setTimeout((()=>l())):i.on("load",(()=>{l()})),i})),p(!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(),g(!0)},k=()=>{y.current.forEach((e=>e.stop()))};c((()=>{i&&setTimeout((()=>x()),50*n)}),[i]),c((()=>()=>k()),[]);const[C,M]=v(!1),A=f(void 0);return d("div",{class:`sound-config${h?" loading":m?" playing":""}${w?" invalid":""}`},d(fe,{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(Ye,{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(qe,{class:"btn btn-input delay",min:0,value:n,onChange:e=>a({delay:e})}),d("label",{class:"pitch-label"},l("sounds.pitch"),": "),d(Ke,{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(Ke,{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(fe,{class:"copy"+(C?" active":""),icon:C?"check":"terminal",label:l("copy"),tooltip:l(C?"copied":"sounds.copy_command"),onClick:()=>{navigator.clipboard.writeText(b),M(!0),void 0!==A.current&&clearTimeout(A.current),A.current=setTimeout((()=>{M(!1)}),2e3)}}),d(fe,{class:"remove",icon:"trashcan",tooltip:l("sounds.remove_sound"),onClick:()=>{s(),k()}}))}function bo({title:e,desc:t,link:n,icon:o,children:r}){const a=d(_,null,d("div",{class:"tool-head"},o&&_o[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 xo({entries:e,onSelect:t,indent:n}){const o=w((()=>{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=w((()=>e.filter((e=>!e.includes("/")))),e),[a,s]=v(new Set);return d("div",{class:"tree-view",style:`--indent: ${null!=n?n:0};`},o.map((([e,o])=>d("div",null,d(ko,{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 s(new Set(a));var t}}),!a.has(e)&&d(xo,{entries:o,onSelect:n=>t(`${e}/${n}`),indent:(null!=n?n:0)+1})))),r.map((e=>d(ko,{icon:"file",key:e,label:e,onClick:()=>t(e)}))))}function ko({icon:e,label:t,onClick:n}){return d("div",{class:"entry",onClick:n},Je[e],t)}function Co({change:e,activeTags:t,toggleTag:n}){return d("div",{class:"changelog-entry"},d("div",{class:"changelog-version"},d(Mo,i({},e.version)),d(Mo,i({},e.group))),d("div",{class:"changelog-tags"},e.tags.map((e=>d(Ao,{label:e,onClick:n?()=>n(e):void 0,active:null==t?void 0:t.includes(e)})))),d("div",{class:"changelog-content",dangerouslySetInnerHTML:{__html:de(e.content)}}))}function Mo({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 Ao({label:e,active:t,onClick:n}){const o="breaking"===e?5:xe(e)%360;return d("div",{class:`changelog-tag${t?" active":""}${n?" clickable":""}`,style:`--tint: ${o}`,onClick:n},"breaking"===e&&Je.alert,e)}function Io({changes:e,defaultOrder:t}){const{locale:n}=St(),[o,r]=v(""),[a,s]=v([]),i=e=>{a.includes(e)?s(a.filter((t=>t!==e))):s([...a,e])},l=w((()=>{const t=o.split(" ").map((e=>e.trim().toLowerCase())).filter((e=>e.length>0));return 0===t.length&&0===a.length?e:null==e?void 0:e.filter((e=>{if(!a.every((t=>e.tags.includes(t))))return!1;const n=e.tags.join(" ")+" "+e.content.toLowerCase();return t.every((e=>e.startsWith("!")?1===e.length||!n.includes(e.slice(1)):n.includes(e)))}))}),[e,o,a]),[c,u]=v("desc"===t),h=w((()=>null==l?void 0:l.sort(((e,t)=>c?t.order-e.order:e.order-t.order))),[l,c]);return d(_,null,d("div",{class:"changelog-query"},d(Ye,{class:"btn btn-input changelog-search",list:"sound-list",placeholder:n("changelog.search"),value:o,onChange:r}),d(fe,{icon:c?"sort_desc":"sort_asc",label:c?"Newest first":"Oldest first",onClick:()=>u(!c)})),a.length>0&&d("div",{class:"changelog-tags"},a.map((e=>d(Ao,{label:e,onClick:()=>s(a.filter((t=>t!==e)))})))),d("div",{class:"changelog-list"},void 0===h?d("span",null,n("loading")):0===h.length?d("span",null,n("changelog.no_results")):h.map((e=>d(Co,{change:e,activeTags:a,toggleTag:i})))))}function zo({version:e}){const{locale:t}=St(),[n,o]=v("changelog"),[r,a]=v(void 0);c((()=>{et().then((e=>a(e.map((e=>l(i({},e),{tags:e.tags.filter((t=>t!==e.group.id))})))))).catch((e=>console.error(e)))}),[]);const s=w((()=>null==r?void 0:r.filter((t=>t.version.id===e.id||t.group.id===e.id))),[e.id,r]);return d(_,null,d("div",{class:"version-detail"},d("h2",null,e.name),d("div",{class:"version-info"},d(So,{label:t("versions.released"),value:$o(e)}),d(So,{label:t("versions.release_target"),value:e.release_target,link:e.id!==e.release_target?`/versions/?id=${e.release_target}`:void 0}),d(So,{label:t("versions.data_version"),value:e.data_version}),d(So,{label:t("versions.protocol_version"),value:e.protocol_version}),d(So,{label:t("versions.data_pack_format"),value:e.data_pack_version}),d(So,{label:t("versions.resource_pack_format"),value:e.resource_pack_version})),d("div",{class:"version-tabs"},d("span",{class:"changelog"===n?"selected":"",onClick:()=>o("changelog")},t("versions.technical_changes")),d("span",{class:"discussion"===n?"selected":"",onClick:()=>o("discussion")},t("versions.discussion"))),d("div",{class:"version-tab"},"changelog"===n&&d(Io,{changes:s,defaultOrder:"asc"}),"discussion"===n&&d(vo,{term:`version/${e.id}`}))))}function $o(e){return new Date(e.release_time).toLocaleDateString(void 0,{day:"numeric",month:"short",year:"numeric"})}function jo({version:e,link:t}){const{locale:n}=St();return d("a",{class:"version-entry",href:t},d("span",{class:"version-id"},e.id),d(So,{label:n("versions.released"),value:$o(e),compact:!0}),d(So,{label:n("versions.data_version"),value:e.data_version,optional:!0}),d(So,{label:n("versions.pack_format"),value:e.data_pack_version,optional:!0}))}function Eo({versions:e,link:t}){const{locale:n}=St(),[o,r]=v(!0),[a,s]=v(""),i=w((()=>e.filter((e=>!("snapshot"===e.type&&!o)&&e.id.includes(a)))),[e,o,a]);return d(_,null,d("div",{class:"versions-controls"},d(Ye,{class:"btn btn-input version-search",list:"sound-list",placeholder:n("versions.search"),value:a,onChange:s}),d(Ue,{label:"Include snapshots",value:o,onChange:r})),d("div",{class:"version-list"},i.map((e=>d(jo,{version:e,link:null==t?void 0:t(e.id)}))),0===i.length&&d("span",null,n("versions.no_results"))))}function So({label:e,value:t,link:n,compact:o,optional:r}){return d("div",{class:"version-metadata"+(r?" version-metadata-hide":"")},d("span",{class:o?"version-metadata-hide":void 0},e,": "),d("span",{class:"version-metadata-value"},t),n&&d("a",{href:n,class:"version-metadata-link"},Je.link_external))}function Oo({category:e}){const{locale:t}=St();return Rt(t("title.generator_category",t(e))),d("main",null,d("div",{class:"category"},ve.generators.filter((t=>t.category===e)).map((e=>d(bo,{title:t(e.id),link:ke(e.url)})))))}function Lo({}){const{locale:e}=St(),[t,n]=v(null);Rt(e("title.changelog"));const[o,r]=v([]);return c((()=>{et().then((e=>r(e))).catch((e=>{console.error(e),n(e)}))}),[]),d("main",null,d(me,{type:"text",id:"changelog"}),t&&d(We,{error:t,onDismiss:()=>n(null)}),d("div",{class:"changelog"},d(Io,{changes:o,defaultOrder:"desc"})))}function Po({}){var e;const{locale:t}=St(),{version:n,changeVersion:o}=Ut(),{project:r,file:a,updateFile:s,openFile:u,closeFile:f}=Dt(),[g,y]=v(null),[b,x]=se();if(b)return b.message=`Something went wrong rendering the generator: ${b.message}`,d("main",null,d(We,{error:b,onDismiss:x}));const k=Me(p());if(!k)return d("main",null,d(We,{error:`Cannot find generator "${p()}"`}));const C=ve.versions.filter((e=>gt(e.id,k.minVersion,k.maxVersion))).map((e=>e.id));Rt(t("title.generator",t(k.id)),C),gt(n,k.minVersion)||y(`The minimum version for this generator is ${k.minVersion}`),gt(n,void 0,k.maxVersion)||y(`This generator is not available in versions above ${k.maxVersion}`);const M=Ae(p()),I=M.get("preset"),z=M.get("share");c((()=>{E&&I?Y(I).then((e=>{E.reset(h.DataModel.wrapLists(e),!1),Ie({version:n,preset:I,share:void 0})})):E&&z&&_t(z).then((e=>$(E,e)))}),[I,z]);const $=(e,t)=>{if(t.version&&t.version!==n&&o(t.version,!1),t.type&&t.type!==k.id){const e=ve.generators.find((e=>e.id===t.type));e&&m(`${ke(e.url)}?share=${t.id}`)}t.show_preview&&!ge&&(we(!0),oe(!1)),e.reset(h.DataModel.wrapLists(t.data),!1)},j=w((()=>Ct.getBackup(k.id)),[k.id]),[E,S]=v(null),[O,L]=v(null);c((()=>{y(null),S(null),async function(e){return(await vt(e)).blockStates}(n).then((e=>L(e))),async function(e,t){var n;if(!ut[t]||ut[t].version!==e){const r=await vt(e);pt=h.Reference(r.schemas,"configured_decorator"),mt=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=ve.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});ut[t]?o.reset(ut[t].model.data,!1):(o.validate(!0),o.history=[JSON.stringify(o.data)]),ut[t]={model:o,version:e}}catch(o){const n=new Error(`Cannot get generator "${t}" for version "${e}": ${Oe(o)}`);throw o instanceof Error&&(n.stack=o.stack),n}}return ut[t].model}(n,k.id).then((async e=>{if(pe.setGenerator(k.id),I){const t=await Y(I);e.reset(h.DataModel.wrapLists(t),!1)}else if(z){const t=await _t(z);$(e,t)}S(e)})).catch((e=>{console.error(e),y(e)}))}),[n,k.id]);const[P,D]=v(!1);Fe(E,(()=>{Ie({version:void 0,preset:void 0,share:void 0}),Ct.setBackup(k.id,h.DataModel.unwrapLists(null==E?void 0:E.data)),y(null),D(!0)}),[k.id]);const[V,N]=v(""),[T,B]=Ne(),[H,F]=Ne(),R=()=>{if(V!==(null==a?void 0:a.id)&&V&&E&&O){const e=Vn(E,O);s(k.id,null==a?void 0:a.id,{id:V,data:e})?B():(F(),a&&N(null==a?void 0:a.id))}else a&&N(null==a?void 0:a.id)};c((()=>{a&&N(a.id)}),[a]),c((()=>{var e;E&&(N(null!=(e=null==a?void 0:a.id)?e:""),a&&k.id===a.type&&E.reset(h.DataModel.wrapLists(a.data)),D(!1))}),[a,E]);const J=e=>{e.ctrlKey&&"z"===e.key?(pe.generatorEvent("undo","Hotkey"),null==E||E.undo()):e.ctrlKey&&"y"===e.key&&(pe.generatorEvent("redo","Hotkey"),null==E||E.redo())},W=e=>{if(e.ctrlKey&&"s"===e.key&&(e.preventDefault(),E&&O&&a)){pe.generatorEvent("save","Hotkey");const e=Vn(E,O);s(k.id,null==a?void 0:a.id,{id:null==a?void 0:a.id,data:e}),D(!1),B()}};c((()=>(document.addEventListener("keyup",J),document.addEventListener("keydown",W),()=>{document.removeEventListener("keyup",J),document.removeEventListener("keydown",W)})),[E,O,a]);const[U,G]=v([]);c((()=>{(async function(e){const t=await vt(e);return ft=t.collections,t.collections})(n).then((e=>{G(e.get(k.id).map((e=>e.slice(10))))})).catch((e=>{console.error(e),y(e)}))}),[n,k.id]);const Y=async e=>{var t,o,r;try{const a=await it(n,null!=(t=k.path)?t:k.id,e),s=null==E?void 0:E.get(new h.Path(["generator","seed"]));return void 0!==(null==(o=null==a?void 0:a.generator)?void 0:o.seed)&&void 0!==s&&(a.generator.seed=s,void 0!==(null==(r=a.generator.biome_source)?void 0:r.seed)&&(a.generator.biome_source.seed=s)),a}catch(a){y(a instanceof Error?a:Oe(a))}},[q,K]=v(void 0),[Z,X]=v(!1),[Q,ee]=Ne({cooldown:3e3}),te=()=>{navigator.clipboard.writeText(null!=q?q:""),ee()};c((()=>{Q||(K(void 0),X(!1))}),[Q]);const[ne,oe]=v(window.innerWidth>820),[re,ae]=v(0),[ie,le]=v(0),[ce,de]=v(0),[ue,he]=Ne(),[ge,we]=v(!1),_e=Pn.includes(k.id)&&!("worldgen/configured_feature"===k.id&>(n,"1.18"));ge&&!_e&&we(!1);let ye=2;_e&&(ye+=1),ne&&(ye+=2);return d(_,null,d("main",{class:ge?"has-preview":""},d(me,{id:"data-pack-generator",type:"text"}),d("div",{class:"controls"},d("div",{class:`project-controls ${a&&"has-file"}`},d("div",{class:"btn-row"},d(Re,{icon:"repo",label:r.name,relative:!1},d(fe,{icon:"arrow_left",label:t("project.go_to"),onClick:()=>m("/project")}),a&&d(fe,{icon:"file",label:t("project.new_file"),onClick:f}),void 0!==j&&d(fe,{icon:"history",label:t("restore_backup"),onClick:()=>{void 0!==j&&(null==E||E.reset(h.DataModel.wrapLists(j),!1))}}),d(Ze,{searchPlaceholder:t("Drafts"===r.name?"project.search_drafts":"project.search"),noResults:t("project.no_files"),values:r.files.filter((e=>e.type===k.id)).map((e=>e.id)),onSelect:e=>u(k.id,e)})),d(Ye,{class:"btn btn-input",placeholder:t("project.unsaved_file"),value:V,onChange:N,onEnter:R,onBlur:R}),a&&d(fe,{icon:"trashcan",tooltip:t("project.delete_file"),onClick:()=>{a&&s(k.id,a.id,{})}})),P?d("div",{class:"status-icon"},Je.dot_fill):T?d("div",{class:"status-icon active"},Je.check):H&&d("div",{class:"status-icon danger"},Je.x)),d("div",{class:"generator-controls"},d(fe,{icon:"upload",label:t("import"),onClick:()=>{pe.generatorEvent("import"),oe(!0),de(ce+1)}}),d(Re,{icon:"archive",label:t("presets"),relative:!1},d(Ze,{searchPlaceholder:t("search"),noResults:t("no_presets"),values:U,onSelect:e=>{pe.generatorEvent("load-preset",e),Ie({version:n,preset:e,share:void 0})}})),d(Re,{icon:"tag",label:n,tooltip:t("switch_version"),"data-cy":"version-switcher"},C.reverse().map((e=>d(fe,{label:e,active:e===n,onClick:()=>{return t=e,Ie({share:void 0}),void o(t);var t}})))),d(Re,{icon:"kebab_horizontal",tooltip:t("more")},d(fe,{icon:"history",label:t("reset"),onClick:()=>{pe.generatorEvent("reset"),null==E||E.reset(h.DataModel.wrapLists(E.schema.default()),!0)}}),d(fe,{icon:"arrow_left",label:t("undo"),onClick:e=>{e.stopPropagation(),pe.generatorEvent("undo","Menu"),null==E||E.undo()}}),d(fe,{icon:"arrow_right",label:t("redo"),onClick:e=>{e.stopPropagation(),pe.generatorEvent("redo","Menu"),null==E||E.redo()}})))),g&&d(We,{error:g,onDismiss:()=>y(null)}),d(fo,l(i({},{model:E,version:n,blockStates:O}),{onError:y}))),d("div",{class:"popup-actions",style:`--offset: -${8+50*ye}px;`},d("div",{class:`popup-action action-preview${_e?" shown":""} tooltipped tip-nw`,"aria-label":t(ge?"hide_preview":"show_preview"),onClick:()=>{pe.generatorEvent("toggle-preview",ge?"hidden":"visible"),we(!ge),!ge&&ne&&oe(!1)}},ge?Je.x_circle:Je.play),d("div",{class:"popup-action action-share shown tooltipped tip-nw","aria-label":t("share"),onClick:()=>{if(Z)X(!1);else if(I)K(`${location.protocol}//${location.host}/${k.url}/?version=${n}&preset=${I}`),X(!0),te();else if(E&&O){const e=Vn(E,O);Pe(e,E.schema.default())?(K(`${location.protocol}//${location.host}/${k.url}/?version=${n}`),X(!0)):async function(e,t,n,o){try{const r=A.compressToBase64(JSON.stringify(n)),a=btoa(JSON.stringify(n));console.log("Compression rate",a.length/r.length);const s=JSON.stringify({data:r,type:e,version:t,show_preview:o});let i=wt.get(s);if(!i){const e=await yt("/snippets",s);wt.set(s,e.id),i=e.id}const l=ve.generators.find((t=>t.id===e));return`${location.protocol}//${location.host}/${l.url}/?share=${i}`}catch(r){throw r instanceof Error&&(r.message=`Error creating share link: ${r.message}`),r}}(k.id,n,e,ge).then((e=>{K(e),X(!0)})).catch((e=>{e instanceof Error&&y(e)}))}}},Je.link),d("div",{class:`popup-action action-download${ne?" shown":""} tooltipped tip-nw`,"aria-label":t("download"),onClick:()=>{pe.generatorEvent("download"),le(ie+1)}},Je.download),d("div",{class:`popup-action action-copy${ne?" shown":""}${ue?" active":""} tooltipped tip-nw`,"aria-label":t(ue?"copied":"copy"),onClick:()=>{pe.generatorEvent("copy"),ae(re+1)}},ue?Je.check:Je.clippy),d("div",{class:"popup-action action-code shown tooltipped tip-nw","aria-label":t(ne?"hide_output":"show_output"),onClick:()=>{pe.generatorEvent("toggle-output",ne?"hidden":"visible"),oe(!ne),ae(0),le(0),de(0)}},ne?Je.chevron_right:Je.code)),d("div",{class:"popup-preview"+(ge?" shown":"")},d(Dn,l(i({},{model:E,version:n,id:k.id}),{shown:ge,onError:y}))),d("div",{class:"popup-source"+(ne?" shown":"")},d(Hn,l(i({},{model:E,blockStates:O,doCopy:re,doDownload:ie,doImport:ce}),{name:null!=(e=k.schema)?e:"data",copySuccess:he,onError:y}))),d("div",{class:"popup-share"+(Z?" shown":"")},d(Ye,{value:q,readonly:!0}),d(fe,{icon:Q?"check":"clippy",onClick:te,tooltip:t(Q?"copied":"copy_share"),tooltipLoc:"nw",active:Q,showTooltip:Q})))}function Do({}){const{locale:e}=St();return Rt(e("title.home")),d("main",null,d("div",{class:"home"},d(bo,{title:"Data packs"},ve.generators.filter((e=>!e.category)).map((t=>d(bo,{title:e(t.id),link:ke(t.url)}))),d(bo,{title:e("worldgen"),link:"/worldgen/"})),d(bo,{title:"Resource packs"},ve.generators.filter((e=>"assets"===e.category)).map((t=>d(bo,{title:e(t.id),link:ke(t.url)})))),d(bo,{title:"Report Inspector",icon:"report",link:"https://misode.github.io/report/",desc:"Analyse your performance reports"}),d(bo,{title:"Minecraft Sounds",icon:"sounds",link:"/sounds/",desc:"Browse through and mix all the vanilla sounds"}),d(bo,{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(bo,{title:"Technical Changelog",link:"/changelog/"}),d(bo,{title:"Minecraft Versions",link:"/versions/"}),d(vo,null)))}function Vo({}){const{locale:e}=St(),{project:t,openFile:n}=Dt();Rt(e("title.project",t.name));const o=w((()=>t.files.map(Nt)),t.files);return d("main",null,d(me,{id:"data-pack-project",type:"text"}),d("div",{class:"project"},d("h2",null,t.name),d("div",{class:"file-view"},d(xo,{entries:o,onSelect:e=>{const[,t,o,...r]=e.split("/");n(o,`${t}:${r}`)}}))))}function No({}){const{locale:e}=St(),{version:t,changeVersion:n}=Ut(),[o,r]=v(null);Rt(e("title.sounds"));const[a,s]=v({}),u=Object.keys(null!=a?a:{});c((()=>{(async function(e){const t=ve.versions.find((t=>t.id===e));await rt(t);try{const e=`${ot(t,"summary")}/sounds/data.min.json`;return await lt(e)}catch(n){throw new Error(`Error occurred while fetching sounds for ${t}: ${Oe(n)}`)}})(t).then(s).catch((e=>{console.error(e),r(e)}))}),[t]);const[h,p]=v(""),[m,g]=v([]),w=()=>{g([{id:_e(),sound:h,delay:0,pitch:1,volume:1},...m])},y=e=>()=>{g(m.filter((t=>t.id!==e)))},[b,x]=v(0),k=f(null);return d("main",null,o&&d(We,{error:o,onDismiss:()=>r(null)}),u.length>0&&d(_,null,d("div",{class:"controls sounds-controls"},d("div",{class:"sound-search-group"},d(Ye,{class:"btn btn-input sound-search",list:"sound-list",placeholder:e("sounds.search"),value:h,onChange:p,onEnter:w}),d(fe,{icon:"plus",tooltip:e("sounds.add_sound"),class:"add-sound",onClick:w})),m.length>1&&d(fe,{icon:"play",label:e("sounds.play_all"),class:"play-all-sounds",onClick:()=>{x(b+1)}}),d("div",{class:"spacer"}),d(fe,{icon:"download",label:e("download"),tooltip:e("sounds.download_function"),class:"download-sounds",onClick:()=>{const e=m.some((e=>e.delay>0)),t=m.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(Re,{icon:"tag",label:t},ve.versions.reverse().map((e=>d(fe,{label:e.id,active:e.id===t,onClick:()=>n(e.id)}))))),d("div",{class:"sounds"},m.map((e=>{return d(yo,l(i(i({key:e.id},e),{sounds:a,delayedPlay:b}),{onEdit:(t=e.id,e=>{g(m.map((n=>n.id===t?i(i({},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 To({}){const{locale:e}=St(),[t,n]=v(null);Rt(e("title.versions"));const[o,r]=v([]);c((()=>{(async function(){const e=ve.versions[ve.versions.length-1];await rt(e);try{return lt(`${ot(e,"summary")}/versions/data.min.json`)}catch(t){throw new Error(`Error occured while fetching versions: ${Oe(t)}`)}})().then((e=>r(e))).catch((e=>{console.error(e),n(e)}))}),[]);const a=Ae(p()).get("id"),s=o.find((e=>e.id===a));Rt(s?s.name:"Versions Explorer",s?[]:void 0);const l=s&&Bo(o,s,-1),u=s&&Bo(o,s,1);return d("main",null,d(me,{type:"text",id:"versions"}),t&&d(We,{error:t,onDismiss:()=>n(null)}),d("div",{class:"versions"},a?d(_,null,d("div",{class:"version-navigation"},d("a",{class:"btn btn-link",href:"/versions/"},Je.three_bars,e("versions.all")),d("a",i({class:"btn btn-link"},u?{href:`/versions/?id=${u.id}`}:{disabled:!0}),Je.arrow_left,e("versions.previous")),d("a",i({class:"btn btn-link"},l?{href:`/versions/?id=${l.id}`}:{disabled:!0}),e("versions.next"),Je.arrow_right)),s?d(zo,{version:s}):d("div",{class:"version-detail"},d("h2",null,a),d("div",{class:"version-info"},d("p",null,"This version does not exist. Only versions since 1.14 are tracked, or it may be too recent.")))):d(Eo,{versions:o,link:e=>`/versions/?id=${e}`})))}function Bo(e,t,n){const o=e.findIndex((e=>e.id===t.id))+n;if(!(o<0||o>=e.length))return e[o]}function Ho(){return d(_,null,d(wo,null),d(ue,{onChange:e=>{setTimeout((()=>pe.pageview(ke(e.url))))}},d(Do,{path:"/"}),d(Oo,{path:"/worldgen",category:"worldgen"}),d(Oo,{path:"/assets",category:"assets"}),d(No,{path:"/sounds"}),d(Lo,{path:"/changelog"}),d(To,{path:"/versions"}),d(Vo,{path:"/project"}),d(Po,{default:!0})))}function Fo(){return d(Ot,null,d(Ht,null,d(Gt,null,d(Jt,null,d(Vt,null,d(Ho,null))))))}he(d(Fo,null),document.body); +//# sourceMappingURL=index.182fe7ed.js.map diff --git a/assets/index.5e882d57.js.map b/assets/index.182fe7ed.js.map similarity index 99% rename from assets/index.5e882d57.js.map rename to assets/index.182fe7ed.js.map index f35e3dfa..50d550df 100644 --- a/assets/index.5e882d57.js.map +++ b/assets/index.182fe7ed.js.map @@ -1 +1 @@ -{"version":3,"file":"index.5e882d57.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/useMediaQuery.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/Checkbox.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","../../src/app/services/Sharing.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/DensityFunctionPreview.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/Giscus.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/components/versions/ChangelogEntry.tsx","../../src/app/components/versions/ChangelogTag.tsx","../../src/app/components/versions/ChangelogList.tsx","../../src/app/components/versions/VersionDetail.tsx","../../src/app/components/versions/VersionEntry.tsx","../../src/app/components/versions/VersionList.tsx","../../src/app/components/versions/VersionMetaData.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/pages/Versions.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\tconst DIM_PREFERS_COLOR_SCHEME = 7\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 setPrefersColorScheme(colorScheme: string) {\n\t\tdimension(DIM_PREFERS_COLOR_SCHEME, colorScheme)\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\tshowTooltip?: boolean,\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 (isObject(dimensions)) {\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(['placement', 'salt']), Math.abs(seed), true)\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).replaceAll('%2F', '/')}`)\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\ttry {\n\t\t\tawait draw(img)\n\t\t} catch (e) {\n\t\t\tthrow e\n\t\t}\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 { useEffect, useState } from 'preact/hooks'\n\nexport function useMediaQuery(query: string): boolean {\n\tconst [prefers, setPrefers] = useState(matchMedia(query).matches)\n\n\tconst onChange = (e: MediaQueryListEvent) => {\n\t\tsetPrefers(e.matches)\n\t}\n\n\tuseEffect(() => {\n\t\tconst mediaQuery = matchMedia(query)\n\t\tmediaQuery.addEventListener('change', onChange)\n\t\treturn () => {\n\t\t\tmediaQuery.removeEventListener('change', onChange)\n\t\t}\n\t}, [query])\n\n\treturn prefers\n}\n","import type { DataModel } from '@mcschema/core'\nimport type { Inputs } from 'preact/hooks'\nimport { useEffect } from 'preact/hooks'\n\nexport function useModel(model: DataModel | undefined | null, invalidated: (model: DataModel) => unknown, inputs?: Inputs) {\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, ...inputs ?? []])\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 { useEffect, useMemo, useState } from 'preact/hooks'\nimport { mapStackTrace } from 'sourcemapped-stacktrace'\nimport { Octicon } from './Octicon'\n\ntype ErrorPanelProps = {\n\terror: string | Error,\n\tonDismiss?: () => unknown,\n}\nexport function ErrorPanel({ error, onDismiss }: ErrorPanelProps) {\n\tconst [stackVisible, setStackVisible] = useState(false)\n\tconst [stack, setStack] = useState(undefined)\n\n\tuseEffect(() => {\n\t\tif (error instanceof Error) {\n\t\t\tconst stack = error.stack!.split('\\n').map(line => {\n\t\t\t\treturn line.replace(/^(\\s+)at (?:async )?(https?:.*)/, '$1at ($2)')\n\t\t\t})\n\t\t\tsetStack(stack.join('\\n'))\n\t\t\tmapStackTrace(stack.join('\\n'), (mapped) => {\n\t\t\t\tconst mappedStack = mapped.map(line => {\n\t\t\t\t\treturn line.replace(/..\\/..\\/src\\//, 'src/')\n\t\t\t\t}).join('\\n')\n\t\t\t\tsetStack(mappedStack)\n\t\t\t})\n\t\t}\n\t}, [error])\n\n\tconst url = useMemo(() => {\n\t\tlet url ='https://github.com/misode/misode.github.io/issues/new'\n\t\tif (error instanceof Error) {\n\t\t\turl += `?title=${encodeURIComponent(`${error.name}: ${error.message}`)}`\n\t\t\tif (stack) {\n\t\t\t\turl += `&body=${encodeURIComponent(`\\`\\`\\`\\n${error.name}: ${error.message}\\n${stack}\\n\\`\\`\\`\\n`)}`\n\t\t\t}\n\t\t} else {\n\t\t\turl += `?title=${encodeURIComponent(error.toString())}`\n\t\t}\n\t\treturn url\n\t}, [error, stack])\n\n\treturn
\n\t\t{onDismiss &&
{Octicon.x}
}\n\t\t

\n\t\t\t{error instanceof Error ? error.message : error}\n\t\t\t{stack && setStackVisible(!stackVisible)}>\n\t\t\t\t{Octicon.info}\n\t\t\t}\n\t\t

\n\t\t{stack && stackVisible &&
{stack}
}\n\t\t

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

\n\t
\n}\n","import { hexId } from '../../Utils'\n\ninterface Props {\n\tlabel: string,\n\tvalue: boolean,\n\tonChange: (value: boolean) => unknown,\n}\nexport function Checkbox({ label, value, onChange }: Props) {\n\tconst id = hexId()\n\treturn \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 Change = {\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: Change[] | 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' | 'registries'\n\nfunction mcmeta(version: { dynamic: true } | { dynamic?: false, ref?: string}, type: McmetaTypes) {\n\treturn `${mcmetaUrl}/${version.dynamic ? type : `${version.ref}-${type}`}`\n}\n\nasync function validateCache(version: Version) {\n\tif (version.dynamic) {\n\t\tif (localStorage.getItem(CACHE_LATEST_VERSION) !== latestVersion) {\n\t\t\tawait deleteMatching(url => url.startsWith(`${mcmetaUrl}/summary/`) || url.startsWith(`${mcmetaUrl}/data/`) || url.startsWith(`${mcmetaUrl}/assets/`) || url.startsWith(`${mcmetaUrl}/registries/`))\n\t\t\tlocalStorage.setItem(CACHE_LATEST_VERSION, latestVersion)\n\t\t}\n\t\tversion.ref = latestVersion\n\t}\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\tawait validateCache(version)\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 async function fetchAllPresets(versionId: VersionId, registry: string) {\n\tconsole.debug(`[fetchAllPresets] ${versionId} ${registry}`)\n\tconst version = config.versions.find(v => v.id === versionId)!\n\tawait validateCache(version)\n\ttry {\n\t\tconst entries = await getData(`${mcmeta(version, 'registries')}/${registry}/data.min.json`)\n\t\treturn new Map(await Promise.all(\n\t\t\tentries.map(async (e: string) =>\n\t\t\t\t[e, await getData(`${mcmeta(version, 'data')}/data/minecraft/${registry}/${e}.json`)])\n\t\t))\n\t} catch (e) {\n\t\tthrow new Error(`Error occurred while fetching all ${registry} presets: ${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\tawait validateCache(version)\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\nexport type VersionMeta = {\n\tid: string,\n\tname: string,\n\trelease_target: string,\n\ttype: 'snapshot' | 'release',\n\tstable: boolean,\n\tdata_version: number,\n\tprotocol_version: number,\n\tdata_pack_version: number,\n\tresource_pack_version: number,\n\tbuild_time: string,\n\trelease_time: string,\n\tsha1: string,\n}\nexport async function fetchVersions(): Promise {\n\tconst version = config.versions[config.versions.length - 1]\n\tawait validateCache(version)\n\ttry {\n\t\treturn getData(`${mcmeta(version, 'summary')}/versions/data.min.json`)\n\t} catch (e) {\n\t\tthrow new Error(`Error occured while fetching versions: ${message(e)}`)\n\t}\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 * as java19 from '@mcschema/java-1.19'\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', '1.19'] 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\t1.19: java19,\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","import lz from 'lz-string'\nimport config from '../../config.json'\nimport type { VersionId } from './Schemas'\n\nconst API_PREFIX = 'https://z15g7can.directus.app/items'\nexport const SHARE_KEY = 'share'\n\nconst ShareCache = new Map()\n\nexport async function shareSnippet(type: string, version: VersionId, jsonData: any, show_preview: boolean) {\n\ttry {\n\t\tconst data = lz.compressToBase64(JSON.stringify(jsonData))\n\t\tconst raw = btoa(JSON.stringify(jsonData))\n\t\tconsole.log('Compression rate', raw.length / data.length)\n\t\tconst body = JSON.stringify({ data, type, version, show_preview })\n\t\tlet id = ShareCache.get(body)\n\t\tif (!id) {\n\t\t\tconst snippet = await fetchApi('/snippets', body)\n\t\t\tShareCache.set(body, snippet.id)\n\t\t\tid = snippet.id as string\n\t\t}\n\t\tconst gen = config.generators.find(g => g.id === type)!\n\t\treturn `${location.protocol}//${location.host}/${gen.url}/?${SHARE_KEY}=${id}`\n\t} catch (e) {\n\t\tif (e instanceof Error) {\n\t\t\te.message = `Error creating share link: ${e.message}`\n\t\t}\n\t\tthrow e\n\t}\n}\n\nexport async function getSnippet(id: string) {\n\ttry {\n\t\tconst snippet = await fetchApi(`/snippets/${id}`)\n\t\treturn {\n\t\t\t...snippet,\n\t\t\tdata: JSON.parse(lz.decompressFromBase64(snippet.data) ?? '{}'),\n\t\t}\n\t} catch (e) {\n\t\tif (e instanceof Error) {\n\t\t\te.message = `Error loading shared content: ${e.message}`\n\t\t}\n\t\tthrow e\n\t}\n}\n\nasync function fetchApi(url: string, body?: string) {\n\tconst res = await fetch(API_PREFIX + url, body ? {\n\t\tmethod: 'post',\n\t\theaders: { 'Content-Type': 'application/json' },\n\t\tbody,\n\t} : undefined)\n\tconst data = await res.json()\n\tif (data.data) {\n\t\treturn data.data\n\t}\n\tthrow new Error(data.errors?.[0]?.message ?? 'Unknown error')\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_HIGHLIGHTING = 'output_highlighting'\n\texport const ID_SOUNDS_VERSION = 'minecraft_sounds_version'\n\texport const ID_PROJECTS = 'misode_projects'\n\texport const ID_BACKUPS = 'misode_generator_backups'\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.2'\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 getHighlighting() {\n\t\treturn localStorage.getItem(ID_HIGHLIGHTING) !== 'false'\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 getBackup(id: string): object | undefined {\n\t\tconst backups = JSON.parse(localStorage.getItem(ID_BACKUPS) ?? '{}')\n\t\treturn backups[id]\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 setHighlighting(highlighting: boolean | undefined) {\n\t\tif (highlighting !== undefined) localStorage.setItem(ID_HIGHLIGHTING, highlighting.toString())\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\texport function setBackup(id: string, data: object | undefined) {\n\t\tconst backups = JSON.parse(localStorage.getItem(ID_BACKUPS) ?? '{}')\n\t\tif (data === undefined) {\n\t\t\tdelete backups[id]\n\t\t} else {\n\t\t\tbackups[id] = data\n\t\t}\n\t\tlocalStorage.setItem(ID_BACKUPS, JSON.stringify(backups))\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 { useMediaQuery } from '../hooks'\nimport { Store } from '../Store'\n\ninterface Theme {\n\ttheme: string,\n\tactualTheme: 'light' | 'dark',\n\tchangeTheme: (theme: string) => unknown,\n}\nconst Theme = createContext({\n\ttheme: 'dark',\n\tactualTheme: '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\tconst prefersLight = useMediaQuery('(prefers-color-scheme: light)')\n\tconst prefersDark = useMediaQuery('(prefers-color-scheme: dark)')\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\tuseEffect(() => {\n\t\tAnalytics.setPrefersColorScheme(prefersLight ? 'light' : prefersDark ? 'dark' : 'none')\n\t}, [prefersLight, prefersDark])\n\n\tconst value: Theme = {\n\t\ttheme,\n\t\tactualTheme: theme === 'light' || (theme !== 'dark' && prefersLight) ? 'light' : 'dark',\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, store?: boolean) => unknown,\n}\nconst Version = createContext<Version>({\n\tversion: '1.18.2',\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, store = true) => {\n\t\tif (getSearchParams(getCurrentUrl()).has(VERSION_PARAM)) {\n\t\t\tsetSeachParams({ version })\n\t\t}\n\t\tif (store) {\n\t\t\tAnalytics.setVersion(version)\n\t\t\tStore.setVersion(version)\n\t\t}\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, Identifier, LegacyRandom, NormalNoise } 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 { checkVersion, 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\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): Identifier\n\tgetBiomes?(xFrom: number, xTo: number, xStep: number, yFrom: number, yTo: number, yStep: number, zFrom: number, zTo: number, zStep: number): Identifier[]\n\tgetClimate?(x: number, y: number, z: number): {[k: string]: number}\n\tgetClimates?(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?.(...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.toString(), 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).toString(),\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.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(Identifier.parse(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 Identifier.parse(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 = checkVersion(options.version, '1.18') ? NetherPreset18 : NetherPreset\n\t\t\t\t\tbreak\n\t\t\t\tcase 'overworld':\n\t\t\t\t\tstate = checkVersion(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 (checkVersion(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 Identifier.parse(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 => Identifier.parse(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(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\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})\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(Identifier.create('unknown'))\n\t\t\t\t}\n\t\t\t\treturn {\n\t\t\t\t\tgetBiome(x: number, _y: number, z: number): Identifier {\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 Identifier.parse(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, clampedMap, DensityFunction, FixedBiome, Identifier, NoiseChunkGenerator, NoiseGeneratorSettings, NoiseParameters, NoiseRouter, NoiseSettings, Registry, WorldgenRegistries, XoroshiroRandom } from 'deepslate'\nimport * as deepslate18 from 'deepslate-1.18'\nimport type { VersionId } from '../services'\nimport { checkVersion, fetchAllPresets } 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[] = []\nconst registryCache = new Map<VersionId, Registry<Registry<any>>>()\n\nexport async function noiseSettings(state: any, img: ImageData, options: NoiseSettingsOptions) {\n\tif (checkVersion(options.version, '1.18')) {\n\t\tif (checkVersion(options.version, '1.18.2')) {\n\t\t\tawait initRegistries(options.version)\n\t\t}\n\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)\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().toString()] ?? [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\nexport async function densityFunction(state: any, img: ImageData, options: NoiseSettingsOptions) {\n\tconst { fn, settings } = await createDensityFunction(state, options)\n\n\tconst arr = Array(options.width * settings.height)\n\tlet min = Infinity\n\tlet max = -Infinity\n\tfor (let x = 0; x < options.width; x += 1) {\n\t\tfor (let y = 0; y < settings.height; y += 1) {\n\t\t\tconst i = x + (settings.height-y-1) * options.width\n\t\t\tconst density = fn.compute(DensityFunction.context(x - options.offset, y, 0))\n\t\t\tmin = Math.min(min, density)\n\t\t\tmax = Math.max(max, density)\n\t\t\tarr[i] = density\n\t\t}\n\t}\n\n\tconst data = img.data\n\tfor (let i = 0; i < options.width * settings.height; i += 1) {\n\t\tconst color = Math.floor(clampedMap(arr[i], min, max, 0, 256))\n\t\tdata[4 * i] = color\n\t\tdata[4 * i + 1] = color\n\t\tdata[4 * i + 2] = color\n\t\tdata[4 * i + 3] = 255\n\t}\n}\n\nasync function createDensityFunction(state: any, options: NoiseSettingsOptions) {\n\tawait initRegistries(options.version)\n\n\tconst random = XoroshiroRandom.create(options.seed).forkPositional()\n\tconst settings = NoiseSettings.fromJson({\n\t\tmin_y: -64,\n\t\theight: 384,\n\t\tsize_horizontal: 1,\n\t\tsize_vertical: 2,\n\t\tsampling: { xz_scale: 1, y_scale: 1, xz_factor: 80, y_factor: 160 },\n\t\tbottom_slide: { target: 0.1171875, size: 3, offset: 0 },\n\t\ttop_slide: { target: -0.078125, size: 2, offset: 8 },\n\t\tterrain_shaper: { offset: 0.044, factor: 4, jaggedness: 0 },\n\t})\n\tconst originalFn = DensityFunction.fromJson(state)\n\tconst fn = originalFn.mapAll(new NoiseRouter.Visitor(random, settings))\n\n\treturn {\n\t\tfn,\n\t\tsettings,\n\t}\n}\n\nconst Registries: [string, { fromJson(obj: unknown): any}][] = [\n\t['worldgen/noise', NoiseParameters],\n\t['worldgen/density_function', DensityFunction],\n]\n\nasync function initRegistries(version: VersionId) {\n\tconst rootRegistries = registryCache.get(version) ?? new Registry(new Identifier('misode', 'temp'))\n\tif (!registryCache.has(version)) {\n\t\tawait Promise.all(Registries.map(([id, c]) => fetchRegistry(version, rootRegistries, id, c)))\n\t\tregistryCache.set(version, rootRegistries)\n\t}\n\tWorldgenRegistries.DENSITY_FUNCTION.clear().assign(rootRegistries.getOrThrow(Identifier.create('worldgen/density_function')))\n\tWorldgenRegistries.NOISE.clear().assign(rootRegistries.getOrThrow(Identifier.create('worldgen/noise')))\n}\n\nasync function fetchRegistry<T extends { fromJson(obj: unknown): T }>(version: VersionId, root: Registry<Registry<unknown>>, id: string, clazz: T) {\n\tconst entries = await fetchAllPresets(version, id)\n\tconst registry = new Registry<typeof clazz>(Identifier.create(id))\n\tfor (const [key, value] of entries.entries()) {\n\t\tregistry.register(Identifier.parse(key), clazz.fromJson(value))\n\t}\n\troot.register(registry.key, registry)\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\tif (checkVersion(options.version, '1.18.2')) {\n\t\t\tconst biomeSource = new FixedBiome(Identifier.create('unknown'))\n\t\t\tgeneratorCache = new NoiseChunkGenerator(options.seed, biomeSource, settings)\n\t\t} else {\n\t\t\tconst biomeSource = new deepslate18.FixedBiome('unknown')\n\t\t\tgeneratorCache = new deepslate18.NoiseChunkGenerator(options.seed, biomeSource, settings as any) as any\n\t\t}\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, true)\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 { Path } from '@mcschema/core'\nimport type { NoiseParameters } from 'deepslate'\nimport { useEffect, useMemo, 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, randomSeed } from '../../Utils'\n\nconst LAYERS = ['biomes', 'temperature', 'humidity', 'continentalness', 'erosion', 'weirdness'] as const\n\nexport const BiomeSourcePreview = ({ model, data, shown, version }: PreviewProps) => {\n\tconst { locale } = useLocale()\n\tconst [configuredSeed] = useState(randomSeed())\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'])) ?? configuredSeed)\n\tconst octaves = useMemo(() => {\n\t\tif (!shown) return undefined\n\t\treturn getOctaves(model.get(new Path(['generator', 'settings'])))\n\t}, [shown])\n\tconst state = shown ? calculateState(data, octaves!) : ''\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: octaves!, 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: octaves!, biomeColors: {}, layers, offset: offset.current, scale, seed: configuredSeed, 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, configuredSeed, 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, configuredSeed, 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 !== undefined && <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>) {\n\treturn JSON.stringify([data, octaves])\n}\n\nexport function getOctaves(obj: any): Record<string, NoiseParameters> {\n\tif (typeof obj !== 'string') {\n\t\tobj = obj.legacy_random_source ? '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","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, BtnMenu } from '..'\nimport { useLocale } from '../../contexts'\nimport { useCanvas } from '../../hooks'\nimport { densityFunction } from '../../previews'\nimport { randomSeed } from '../../Utils'\n\nexport const DensityFunctionPreview = ({ data, shown, version }: PreviewProps) => {\n\tconst { locale } = useLocale()\n\tconst [seed, setSeed] = useState(randomSeed())\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])\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 = { offset: offset.current, width: img.width, seed, version }\n\t\t\tawait densityFunction(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\tsetFocused(`X=${worldX} 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, autoScroll])\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<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 { 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\tawait noiseSettings(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().path})` : `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\t(async () => {\n\t\t\t\ttry {\n\t\t\t\t\tawait redraw()\n\t\t\t\t\tif (autoScroll) {\n\t\t\t\t\t\tscrollInterval.current = setInterval(() => {\n\t\t\t\t\t\t\toffset.current -= 8\n\t\t\t\t\t\t\tredraw()\n\t\t\t\t\t\t}, 100) as any\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {\n\t\t\t\t\tthrow e\n\t\t\t\t}\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, DensityFunctionPreview, NoisePreview, NoiseSettingsPreview } from '../previews'\n\nexport const HasPreview = ['dimension', 'worldgen/density_function', '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/density_function') {\n\t\tconst data = model.get(new Path([]))\n\t\tif (data) return <DensityFunctionPreview {...{ 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\ninterface Editor {\n\tgetValue(): string\n\tsetValue(value: string): void\n\tconfigure(indent: string, format: string): void\n\tselect(): void\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 | Error) => 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 [highlighting, setHighlighting] = useState(Store.getHighlighting())\n\tconst download = useRef<HTMLAnchorElement>(null)\n\tconst retransform = useRef<Function>()\n\tconst onImport = useRef<(e: any) => any>()\n\n\tconst textarea = useRef<HTMLTextAreaElement>()\n\tconst editor = useRef<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.setValue(output)\n\t\t\t} catch (e) {\n\t\t\t\tif (e instanceof Error) {\n\t\t\t\t\te.message = `Error getting JSON output: ${e.message}`\n\t\t\t\t\tonError(e)\n\t\t\t\t} else {\n\t\t\t\t\tonError(`Error getting JSON output: ${message(e)}`)\n\t\t\t\t}\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\tif (e instanceof Error) {\n\t\t\t\t\te.message = `Error importing: ${e.message}`\n\t\t\t\t\tonError(e)\n\t\t\t\t} else {\n\t\t\t\t\tonError(`Error importing: ${message(e)}`)\n\t\t\t\t}\n\t\t\t\tconsole.error(e)\n\t\t\t}\n\t\t}\n\t}, [model, blockStates, indent, format, highlighting])\n\n\tuseEffect(() => {\n\t\tif (highlighting) {\n\t\t\tconst braceEditor = brace.edit('editor')\n\t\t\tbraceEditor.setOptions({\n\t\t\t\tfontSize: 14,\n\t\t\t\tshowFoldWidgets: false,\n\t\t\t\thighlightSelectedWord: false,\n\t\t\t})\n\t\t\tbraceEditor.$blockScrolling = Infinity\n\t\t\tbraceEditor.on('blur', e => onImport.current(e))\n\t\t\tbraceEditor.getSession().setMode('ace/mode/json')\n\n\t\t\teditor.current = {\n\t\t\t\tgetValue() {\n\t\t\t\t\treturn braceEditor.getSession().getValue()\n\t\t\t\t},\n\t\t\t\tsetValue(value) {\n\t\t\t\t\tbraceEditor.getSession().setValue(value)\n\t\t\t\t},\n\t\t\t\tconfigure(indent, format) {\n\t\t\t\t\tbraceEditor.setOption('useSoftTabs', indent !== 'tabs')\n\t\t\t\t\tbraceEditor.setOption('tabSize', indent === 'tabs' ? 4 : INDENT[indent])\n\t\t\t\t\tbraceEditor.getSession().setMode(`ace/mode/${format}`)\n\t\t\t\t},\n\t\t\t\tselect() {\n\t\t\t\t\tbraceEditor.selectAll()\n\t\t\t\t},\n\t\t\t}\n\t\t} else {\n\t\t\teditor.current = {\n\t\t\t\tgetValue() {\n\t\t\t\t\treturn textarea.current.value\n\t\t\t\t},\n\t\t\t\tsetValue(value: string) {\n\t\t\t\t\ttextarea.current.value = value\n\t\t\t\t},\n\t\t\t\tconfigure() {},\n\t\t\t\tselect() {},\n\t\t\t}\n\t\t}\n\t}, [highlighting])\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.configure(indent, format)\n\t\tretransform.current()\n\t}, [indent, format, highlighting])\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.select()\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\tconst changeHighlighting = (value: boolean) => {\n\t\tStore.setHighlighting(value)\n\t\tsetHighlighting(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\t<hr />\n\t\t\t\t<Btn icon={highlighting ? 'square_fill' : 'square'} label={locale('highlighting')}\n\t\t\t\t\tonClick={() => changeHighlighting(!highlighting)} />\n\t\t\t</BtnMenu>\n\t\t</div>\n\t\t{highlighting\n\t\t\t? <pre id=\"editor\" class=\"source\"></pre>\n\t\t\t: <textarea ref={textarea} class=\"source\" spellcheck={false} autocorrect=\"off\" onBlur={onImport.current}></textarea>}\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', 'root_placer.type', 'entity.type_specific.cat.variant', 'entity.type_specific.frog.variant']\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', 'density_function.type', 'root_placer.type', 'entity.type_specific.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']\nconst collapsableFields = ['density_function.argument', 'density_function.argument1', 'density_function.argument2', 'density_function.input', 'density_function.when_in_range', 'density_function.when_out_of_range']\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 (collapsableFields.includes(context) || collapsedFields.includes(context)) {\n\t\t\tconst toggled = isToggled('')\n\t\t\tconst expanded = collapsedFields.includes(context) ? toggled : !toggled\n\t\t\tprefix = <>\n\t\t\t\t<button class=\"toggle tooltipped tip-se\" aria-label={localize(lang, expanded ? 'collapse' : 'expand')} onClick={toggled ? collapse('') : expand('')}>{expanded ? Octicon.chevron_down : Octicon.chevron_right}</button>\n\t\t\t</>\n\t\t\tif (!expanded) {\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\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', 'structure_placement.salt'].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 { Giscus as GiscusReact } from '@giscus/react'\nimport { useTheme } from '../contexts'\n\ninterface Props {\n\tterm?: string,\n}\nexport function Giscus({ term }: Props) {\n\tconst { actualTheme } = useTheme()\n\tconst themeSuffix = actualTheme === 'light' ? '-burn' : ''\n\tconst themeUrl = (import.meta as any).env.DEV\n\t\t? `http://localhost:3000/src/styles/giscus${themeSuffix}.css`\n\t\t: `https://${location.host}/assets/giscus${themeSuffix}.css`\n\n\treturn <GiscusReact\n\t\trepo=\"misode/misode.github.io\"\n\t\trepoId=\"MDEwOlJlcG9zaXRvcnkxOTIyNTQyMzA=\"\n\t\tcategory=\"Site\"\n\t\tcategoryId=\"DIC_kwDOC3WRFs4COB8r\"\n\t\tmapping={term ? 'specific' : 'pathname'}\n\t\tterm={term}\n\t\treactionsEnabled=\"1\"\n\t\temitMetadata=\"0\"\n\t\tinputPosition=\"top\"\n\t\ttheme={themeUrl}\n\t\tlang=\"en\" />\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 { marked } from 'marked'\nimport { ChangelogTag } from '.'\nimport type { Change, ChangelogVersion } from '../../services'\n\ntype Props = {\n\tchange: Change,\n\tactiveTags?: string[],\n\ttoggleTag?: (tag: string) => unknown,\n}\nexport function ChangelogEntry({ change, activeTags, toggleTag }: Props) {\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 => <ChangelogTag label={tag} onClick={toggleTag ? () => toggleTag(tag) : undefined} 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","import { Octicon } from '..'\nimport { hashString } from '../../Utils'\n\ntype TagProps = {\n\tlabel: string,\n\tactive?: boolean,\n\tonClick?: () => unknown,\n}\nexport function ChangelogTag({ 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 { useMemo, useState } from 'preact/hooks'\nimport { Btn, TextInput } from '..'\nimport { useLocale } from '../../contexts'\nimport type { Change } from '../../services'\nimport { ChangelogEntry } from './ChangelogEntry'\nimport { ChangelogTag } from './ChangelogTag'\n\ninterface Props {\n\tchanges: Change[] | undefined,\n\tdefaultOrder: 'asc' | 'desc',\n}\nexport function ChangelogList({ changes, defaultOrder }: Props) {\n\tconst { locale } = useLocale()\n\t\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 changes\n\t\treturn changes?.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}, [changes, search, tags])\n\n\tconst [sort, setSort] = useState(defaultOrder === 'desc')\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 <>\n\t\t<div class=\"changelog-query\">\n\t\t\t<TextInput class=\"btn btn-input changelog-search\" list=\"sound-list\" placeholder={locale('changelog.search')}\n\t\t\t\tvalue={search} onChange={setSearch} />\n\t\t\t<Btn icon={sort ? 'sort_desc' : 'sort_asc'} label={sort ? 'Newest first' : 'Oldest first'} onClick={() => setSort(!sort)} />\n\t\t</div>\n\t\t{tags.length > 0 && <div class=\"changelog-tags\">\n\t\t\t{tags.map(tag => <ChangelogTag label={tag} onClick={() => setTags(tags.filter(t => t !== tag))} />)}\n\t\t</div>}\n\t\t<div class=\"changelog-list\">\n\t\t\t{sortedChangelogs === undefined\n\t\t\t\t? <span>{locale('loading')}</span>\n\t\t\t\t: sortedChangelogs.length === 0\n\t\t\t\t\t? <span>{locale('changelog.no_results')}</span>\n\t\t\t\t\t:\tsortedChangelogs.map(change =>\n\t\t\t\t\t\t<ChangelogEntry change={change} activeTags={tags} toggleTag={toggleTag} />)}\n\t\t</div>\n\t</>\n}\n","import { useEffect, useMemo, useState } from 'preact/hooks'\nimport { VersionMetaData } from '.'\nimport { useLocale } from '../../contexts'\nimport type { Change, VersionMeta } from '../../services'\nimport { getChangelogs } from '../../services'\nimport { Giscus } from '../Giscus'\nimport { ChangelogList } from './ChangelogList'\n\ntype Tab = 'changelog' | 'discussion' \n\ninterface Props {\n\tversion: VersionMeta\n}\nexport function VersionDetail({ version }: Props) {\n\tconst { locale } = useLocale()\n\n\tconst [tab, setTab] = useState<Tab>('changelog')\n\n\tconst [changelogs, setChangelogs] = useState<Change[] | undefined>(undefined)\n\tuseEffect(() => {\n\t\tgetChangelogs()\n\t\t\t.then(changelogs => setChangelogs(\n\t\t\t\tchangelogs.map(c => ({ ...c, tags: c.tags.filter(t => t !== c.group.id) }))\n\t\t\t))\n\t\t\t.catch(e => console.error(e))\n\t}, [])\n\n\tconst filteredChangelogs = useMemo(() =>\n\t\tchangelogs?.filter(c => c.version.id === version.id || c.group.id === version.id),\n\t[version.id, changelogs])\n\n\treturn <>\n\t\t<div class=\"version-detail\">\n\t\t\t<h2>{version.name}</h2>\n\t\t\t<div class=\"version-info\">\n\t\t\t\t<VersionMetaData label={locale('versions.released')} value={releaseDate(version)} />\n\t\t\t\t<VersionMetaData label={locale('versions.release_target')} value={version.release_target} link={version.id !== version.release_target ? `/versions/?id=${version.release_target}` : undefined} />\n\t\t\t\t<VersionMetaData label={locale('versions.data_version')} value={version.data_version} />\n\t\t\t\t<VersionMetaData label={locale('versions.protocol_version')} value={version.protocol_version} />\n\t\t\t\t<VersionMetaData label={locale('versions.data_pack_format')} value={version.data_pack_version} />\n\t\t\t\t<VersionMetaData label={locale('versions.resource_pack_format')} value={version.resource_pack_version} />\n\t\t\t</div>\n\t\t\t<div class=\"version-tabs\">\n\t\t\t\t<span class={tab === 'changelog' ? 'selected' : ''} onClick={() => setTab('changelog')}>{locale('versions.technical_changes')}</span>\n\t\t\t\t<span class={tab === 'discussion' ? 'selected' : ''} onClick={() => setTab('discussion')}>{locale('versions.discussion')}</span>\n\t\t\t</div>\n\t\t\t<div class=\"version-tab\">\n\t\t\t\t{tab === 'changelog' && <ChangelogList changes={filteredChangelogs} defaultOrder=\"asc\" />}\n\t\t\t\t{tab === 'discussion' && <Giscus term={`version/${version.id}`} />}\n\t\t\t</div>\n\t\t</div>\n\t</>\n}\n\nexport function releaseDate(version: VersionMeta) {\n\treturn new Date(version.release_time).toLocaleDateString(undefined, { day: 'numeric', month: 'short', year: 'numeric' })\n}\n","import { releaseDate, VersionMetaData } from '.'\nimport { useLocale } from '../../contexts'\nimport type { VersionMeta } from '../../services'\n\ninterface Props {\n\tversion: VersionMeta,\n\tlink?: string,\n}\nexport function VersionEntry({ version, link }: Props) {\n\tconst { locale } = useLocale()\n\n\treturn <a class=\"version-entry\" href={link}>\n\t\t<span class=\"version-id\">{version.id}</span>\n\t\t<VersionMetaData label={locale('versions.released')} value={releaseDate(version)} compact />\n\t\t<VersionMetaData label={locale('versions.data_version')} value={version.data_version} optional />\n\t\t<VersionMetaData label={locale('versions.pack_format')} value={version.data_pack_version} optional />\n\t</a>\n}\n","import { useMemo, useState } from 'preact/hooks'\nimport { Checkbox, TextInput } from '..'\nimport { useLocale } from '../../contexts'\nimport type { VersionMeta } from '../../services'\nimport { VersionEntry } from './VersionEntry'\n\ninterface Props {\n\tversions: VersionMeta[]\n\tlink?: (id: string) => string\n}\nexport function VersionList({ versions, link }: Props) {\n\tconst { locale } = useLocale()\n\t\n\tconst [snapshots, setSnapshots] = useState(true)\n\tconst [search, setSearch] = useState('')\n\n\tconst filteredVersions = useMemo(() => versions.filter(v => {\n\t\tif (v.type === 'snapshot' && !snapshots) return false\n\t\treturn v.id.includes(search)\n\t}), [versions, snapshots, search])\n\n\n\treturn <>\n\t\t<div class=\"versions-controls\">\n\t\t\t<TextInput class=\"btn btn-input version-search\" list=\"sound-list\" placeholder={locale('versions.search')}\n\t\t\t\tvalue={search} onChange={setSearch} />\n\t\t\t<Checkbox label=\"Include snapshots\" value={snapshots} onChange={setSnapshots} />\n\t\t</div>\n\t\t<div class=\"version-list\">\n\t\t\t{filteredVersions.map(v => <VersionEntry version={v} link={link?.(v.id)} />)}\n\t\t\t{filteredVersions.length === 0 && <span>\n\t\t\t\t{locale('versions.no_results')}\n\t\t\t</span>}\n\t\t</div>\n\t</>\n}\n","import { Octicon } from '..'\n\ninterface Props {\n\tlabel: string,\n\tvalue: string | number,\n\tlink?: string,\n\tcompact?: boolean,\n\toptional?: boolean,\n}\nexport function VersionMetaData({ label, value, link, compact, optional }: Props) {\n\treturn <div class={`version-metadata${optional ? ' version-metadata-hide' : ''}`}>\n\t\t<span class={compact ? 'version-metadata-hide' : undefined}>{label}: </span>\n\t\t<span class=\"version-metadata-value\">{value}</span>\n\t\t{link && <a href={link} class=\"version-metadata-link\">{Octicon.link_external}</a>}\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 { useEffect, useState } from 'preact/hooks'\nimport { Ad, ChangelogList, ErrorPanel } from '../components'\nimport { useLocale, useTitle } from '../contexts'\nimport type { Change } from '../services'\nimport { getChangelogs } from '../services'\n\ninterface Props {\n\tpath?: string,\n}\nexport function Changelog({}: Props) {\n\tconst { locale } = useLocale()\n\tconst [error, setError] = useState<Error | null>(null)\n\tuseTitle(locale('title.changelog'))\n\n\tconst [changelogs, setChangelogs] = useState<Change[]>([])\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\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\">\n\t\t\t<ChangelogList changes={changelogs} defaultOrder=\"desc\" />\n\t\t</div>\n\t</main>\n}\n","import { DataModel, Path } from '@mcschema/core'\nimport { getCurrentUrl, route } from 'preact-router'\nimport { useEffect, useErrorBoundary, useMemo, 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, getSnippet, shareSnippet, SHARE_KEY } from '../services'\nimport { Store } from '../Store'\nimport { cleanUrl, deepEqual, 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<Error | string | null>(null)\n\tconst [errorBoundary, errorRetry] = useErrorBoundary()\n\tif (errorBoundary) {\n\t\terrorBoundary.message = `Something went wrong rendering the generator: ${errorBoundary.message}`\n\t\treturn <main><ErrorPanel error={errorBoundary} 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\tconst sharedSnippetId = searchParams.get(SHARE_KEY)\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, [SHARE_KEY]: undefined })\n\t\t\t})\n\t\t} else if (model && sharedSnippetId) {\n\t\t\tgetSnippet(sharedSnippetId).then(s => loadSnippet(model, s))\n\t\t}\n\t}, [currentPreset, sharedSnippetId])\n\n\tconst loadSnippet = (model: DataModel, snippet: any) => {\n\t\tif (snippet.version && snippet.version !== version) {\n\t\t\tchangeVersion(snippet.version, false)\n\t\t}\n\t\tif (snippet.type && snippet.type !== gen.id) {\n\t\t\tconst snippetGen = config.generators.find(g => g.id === snippet.type)\n\t\t\tif (snippetGen) {\n\t\t\t\troute(`${cleanUrl(snippetGen.url)}?${SHARE_KEY}=${snippet.id}`)\n\t\t\t}\n\t\t}\n\t\tif (snippet.show_preview && !previewShown) {\n\t\t\tsetPreviewShown(true)\n\t\t\tsetSourceShown(false)\n\t\t}\n\t\tmodel.reset(DataModel.wrapLists(snippet.data), false)\n\t}\n\n\tconst backup = useMemo(() => Store.getBackup(gen.id), [gen.id])\n\n\tconst loadBackup = () => {\n\t\tif (backup !== undefined) {\n\t\t\tmodel?.reset(DataModel.wrapLists(backup), false)\n\t\t}\n\t}\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} else if (sharedSnippetId) {\n\t\t\t\t\tconst snippet = await getSnippet(sharedSnippetId)\n\t\t\t\t\tloadSnippet(m, snippet)\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(e) })\n\t}, [version, gen.id])\n\n\tconst [dirty, setDirty] = useState(false)\n\tuseModel(model, () => {\n\t\tsetSeachParams({ version: undefined, preset: undefined, [SHARE_KEY]: undefined })\n\t\tStore.setBackup(gen.id, DataModel.unwrapLists(model?.data))\n\t\tsetError(null)\n\t\tsetDirty(true)\n\t}, [gen.id])\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) })\n\t}, [version, gen.id])\n\n\tconst selectPreset = (id: string) => {\n\t\tAnalytics.generatorEvent('load-preset', id)\n\t\tsetSeachParams({ version, preset: id, [SHARE_KEY]: undefined })\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(e instanceof Error ? e : message(e))\n\t\t}\n\t}\n\n\tconst selectVersion = (version: VersionId) => {\n\t\tsetSeachParams({ [SHARE_KEY]: undefined })\n\t\tchangeVersion(version)\n\t}\n\n\tconst [shareUrl, setShareUrl] = useState<string | undefined>(undefined)\n\tconst [shareShown, setShareShown] = useState(false)\n\tconst [shareCopyActive, shareCopySuccess] = useActiveTimeout({ cooldown: 3000 })\n\tconst share = () => {\n\t\tif (shareShown) {\n\t\t\tsetShareShown(false)\n\t\t\treturn\n\t\t}\n\t\tif (currentPreset) {\n\t\t\tsetShareUrl(`${location.protocol}//${location.host}/${gen.url}/?version=${version}&preset=${currentPreset}`)\n\t\t\tsetShareShown(true)\n\t\t\tcopySharedId()\n\t\t} else if (model && blockStates) {\n\t\t\tconst output = getOutput(model, blockStates)\n\t\t\tif (deepEqual(output, model.schema.default())) {\n\t\t\t\tsetShareUrl(`${location.protocol}//${location.host}/${gen.url}/?version=${version}`)\n\t\t\t\tsetShareShown(true)\n\t\t\t} else {\n\t\t\t\tshareSnippet(gen.id, version, output, previewShown)\n\t\t\t\t\t.then(url => {\n\t\t\t\t\t\tsetShareUrl(url)\n\t\t\t\t\t\tsetShareShown(true)\n\t\t\t\t\t})\n\t\t\t\t\t.catch(e => {\n\t\t\t\t\t\tif (e instanceof Error) {\n\t\t\t\t\t\t\tsetError(e)\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t}\n\t\t}\n\t}\n\tconst copySharedId = () => {\n\t\tnavigator.clipboard.writeText(shareUrl ?? '')\n\t\tshareCopySuccess()\n\t}\n\tuseEffect(() => {\n\t\tif (!shareCopyActive) {\n\t\t\tsetShareUrl(undefined)\n\t\t\tsetShareShown(false)\n\t\t}\n\t}, [shareCopyActive])\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 = 2\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{backup !== undefined && <Btn icon=\"history\" label={locale('restore_backup')} onClick={loadBackup} />}\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={() => selectVersion(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-share shown tooltipped tip-nw'} aria-label={locale('share')} onClick={share}>\n\t\t\t\t{Octicon.link}\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\t<div class={`popup-share${shareShown ? ' shown' : ''}`}>\n\t\t\t<TextInput value={shareUrl} readonly />\n\t\t\t<Btn icon={shareCopyActive ? 'check' : 'clippy'} onClick={copySharedId} tooltip={locale(shareCopyActive ? 'copied' : 'copy_share')} tooltipLoc=\"nw\" active={shareCopyActive} showTooltip={shareCopyActive} />\n\t\t</div>\n\t</>\n}\n","import config from '../../config.json'\nimport { Giscus, 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\t<ToolCard title=\"Minecraft Versions\" link=\"/versions/\" />\n\t\t\t<Giscus />\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 { 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 } 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<Error | 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(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{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 { getCurrentUrl } from 'preact-router'\nimport { useEffect, useState } from 'preact/hooks'\nimport { Ad, ErrorPanel, Octicon, VersionDetail, VersionList } from '../components'\nimport { useLocale, useTitle } from '../contexts'\nimport type { VersionMeta } from '../services'\nimport { fetchVersions } from '../services'\nimport { getSearchParams } from '../Utils'\n\ninterface Props {\n\tpath?: string,\n}\nexport function Versions({}: Props) {\n\tconst { locale } = useLocale()\n\tconst [error, setError] = useState<Error | null>(null)\n\tuseTitle(locale('title.versions'))\n\n\tconst [versions, setVersions] = useState<VersionMeta[]>([])\n\tuseEffect(() => {\n\t\tfetchVersions()\n\t\t\t.then(versions => setVersions(versions))\n\t\t\t.catch(e => { console.error(e); setError(e) })\n\t}, [])\n\n\tconst selectedId = getSearchParams(getCurrentUrl()).get('id')\n\tconst selected = versions.find(v => v.id === selectedId)\n\n\tuseTitle(selected ? selected.name : 'Versions Explorer', selected ? [] : undefined)\n\n\tconst nextVersion = selected && getOffsetVersion(versions, selected, -1)\n\tconst previousVersion = selected && getOffsetVersion(versions, selected, 1)\n\n\treturn <main>\n\t\t<Ad type=\"text\" id=\"versions\" />\n\t\t{error && <ErrorPanel error={error} onDismiss={() => setError(null)} />}\n\t\t<div class=\"versions\">\n\t\t\t{selectedId ? <>\n\t\t\t\t<div class=\"version-navigation\">\n\t\t\t\t\t<a class=\"btn btn-link\" href=\"/versions/\">\n\t\t\t\t\t\t{Octicon.three_bars}\n\t\t\t\t\t\t{locale('versions.all')}\n\t\t\t\t\t</a>\n\t\t\t\t\t<a class=\"btn btn-link\" {...previousVersion ? {href: `/versions/?id=${previousVersion.id}`} : {disabled: true}}>\n\t\t\t\t\t\t{Octicon.arrow_left}\n\t\t\t\t\t\t{locale('versions.previous')}\n\t\t\t\t\t</a>\n\t\t\t\t\t<a class=\"btn btn-link\" {...nextVersion ? {href: `/versions/?id=${nextVersion.id}`} : {disabled: true}}>\n\t\t\t\t\t\t{locale('versions.next')}\n\t\t\t\t\t\t{Octicon.arrow_right}\n\t\t\t\t\t</a>\n\t\t\t\t</div>\n\t\t\t\t{selected ? <VersionDetail version={selected} />\n\t\t\t\t\t: <div class=\"version-detail\">\n\t\t\t\t\t\t<h2>{selectedId}</h2>\n\t\t\t\t\t\t<div class=\"version-info\">\n\t\t\t\t\t\t\t<p>This version does not exist. Only versions since 1.14 are tracked, or it may be too recent.</p>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>}\n\t\t\t</> : <VersionList versions={versions} link={id => `/versions/?id=${id}`} />}\n\t\t</div>\n\t</main>\n}\n\nfunction getOffsetVersion(versions: VersionMeta[], current: VersionMeta, offset: number) {\n\tconst currentIndex = versions.findIndex(v => v.id === current.id)\n\tconst offsetIndex = currentIndex + offset\n\tif (offsetIndex < 0 || offsetIndex >= versions.length) {\n\t\treturn undefined\n\t}\n\treturn versions[offsetIndex]\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, Versions } 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<Versions path=\"/versions\" />\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","setPrefersColorScheme","colorScheme","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","isObject","keys","forEach","abs","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","hashString","a2","b2","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","query","prefers","setPrefers","matchMedia","matches","mediaQuery","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","stackVisible","setStackVisible","setStack","stack2","line","mapped","mappedStack","useMemo","url2","name","href","checked","component","evt","fn","onKeyDown","onEnter","displayName","TextInput","BaseInput","v","NumberInput","RangeInput","values","onSelect","searchPlaceholder","noResults","setSearch","results","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","localStorage","removeItem","caches","mcmetaUrl","dynamic","getItem","cache","open","debug","promises","request","push","warn","deleteMatching","startsWith","setItem","data","getData","mcmeta","register","properties","default","versionId","registry","versions","cacheResponse","ok","fetchResponse","responseData","put","Response","JSON","stringify","VersionIds","Versions","Models","versionGetter","1.15","java15","1.16","java16","1.17","java17","1.18","java18","1.18.2","java182","1.19","java19","CachedDecorator","CachedFeature","CachedCollections","collections","getCollections","blockStates","collectionTarget","blockStateTarget","validateCache","fetchRegistries","fetchBlockStateMap","fetchData","schemas","getSchemas","minVersionId","maxVersionId","findIndex","minVersion","maxVersion","ShareCache","snippet","fetchApi","parse","decompressFromBase64","res","method","headers","Content-Type","errors","scriptRel","seen","__vitePreload","baseModule","deps","relList","document","createElement","supports","dep","isCss","endsWith","cssSelector","querySelector","rel","as","crossOrigin","head","appendChild","rej","then","Store","Store2","getLanguage","getTheme","getVersion","getIndent","getFormat","getHighlighting","getSoundsVersion","getProjects","projects","DRAFT_PROJECT","getBackup","setIndent","indent","setFormat","format","setHighlighting","highlighting","setSoundsVersion","setProjects","setBackup","backups","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","actualTheme","changeTheme","prefersLight","useMediaQuery","prefersDark","documentElement","setAttribute","theme2","Title","title","changeTitle","context","useLocale","setTitle","title2","titleVersions","Version","changeVersion","targetVersion","version2","store","has","ready","LAYERS","temperature","humidity","continentalness","erosion","weirdness","offset","factor","jaggedness","cacheState","biomeSourceCache","state","options","newState","octaves","FixedBiome","Identifier","biome","shift","scale","numBiomes","biomes","_y","z","node","preset","checkVersion","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","result","noise","config2","clamp","NormalNoise","LegacyRandom","n","n2","sample","minDist","Infinity","minBiome","dist","altitude","create","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","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","registryCache","initRegistries","NoiseGeneratorSettings","fromJson","NoiseChunkGenerator","deepslate18.FixedBiome","deepslate18.NoiseChunkGenerator","getCached","LevelSlice","minY","generate","generator2","data2","state2","getBlockState","getName","OldNoiseChunkGenerator","reset","row","iterateNoiseColumn","reverse","getColor","XoroshiroRandom","forkPositional","NoiseSettings","min_y","terrain_shaper","originalFn","DensityFunction","mapAll","NoiseRouter","Visitor","createDensityFunction","density","compute","clampedMap","Registries","NoiseParameters","rootRegistries","Registry","root","fetchAllPresets","fetchRegistry","DENSITY_FUNCTION","clear","assign","getOrThrow","NOISE","minX","done","chunks","cached","Chunk","ChunkPos","Z","forcedBiome","chunk","buildSurface","chunkIndex","BiomeSourcePreview","shown","configuredSeed","randomSeed","setScale","focused","setFocused","layers","setLayers","Set","refineTimeout","legacy_random_source","getOctaves","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","DensityFunctionPreview","autoScroll","setAutoScroll","scrollInterval","densityFunction","worldY","setInterval","NoisePreview","NoiseSettingsPreview","setBiome","setBiomeScale","setBiomeDepth","noiseSettings","block","minBlockX","maxBlockX","BlockPos","getNoiseBlock","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","textarea","editor","getSerializedOutput","model2","blockStates2","getOutput","output","setValue","getValue","wrapLists","braceEditor","brace","edit","setOptions","fontSize","showFoldWidgets","highlightSelectedWord","$blockScrolling","on","getSession","setMode","indent2","format2","setOption","selectAll","configure","clipboard","writeText","click","data-cy","changeIndent","changeFormat","changeHighlighting","spellcheck","autocorrect","onBlur","style","mapper","getter","setter","silent","selectRegistries","hiddenFields","flattenedFields","inlineFields","nbtFields","fixedLists","collapsedFields","collapsableFields","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","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","expanded","newCtx","pools","loot","child","context2","cPrefix","cSuffix","cBody","isFlattened","isInlined","HelpPopup","string","StringSuffix","toggleState","setToggleState","toggleAll","setToggleAll","ctrlKey","integer","parsed","parseFloat","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","term","useTheme","themeSuffix","themeUrl","location","host","GiscusReact","repoId","categoryId","mapping","reactionsEnabled","emitMetadata","inputPosition","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","step","desc","roots","groups","leaves","hidden","setHidden","entries2","TreeViewEntry","TreeView","activeTags","toggleTag","ArticleLink","ChangelogTag","dangerouslySetInnerHTML","__html","marked","changes","defaultOrder","setTags","filteredChangelogs","q2","toLowerCase","sort","setSort","sortedChangelogs","ChangelogEntry","tab","setTab","changelogs","setChangelogs","changelogs2","catch","console","VersionMetaData","releaseDate","release_target","data_version","protocol_version","data_pack_version","resource_pack_version","ChangelogList","Giscus","Date","release_time","toLocaleDateString","day","month","year","compact","snapshots","setSnapshots","filteredVersions","Checkbox","VersionEntry","ToolCard","setError","Ad","ErrorPanel","useProject","errorBoundary","errorRetry","allowedVersions","currentPreset","sharedSnippetId","loadSnippet","snippetGen","show_preview","previewShown","backup","setModel","setBlockStates","versionData","Reference","ChoiceNode","schemaName","validate","err","m","loadPreset","getSnippet","dirty","setDirty","fileRename","setFileRename","fileSaved","doSave","useActiveTimeout","fileError","doFileError","doFileRename","onKeyUp","undo","redo","presets","setPresets","shareUrl","setShareUrl","shareShown","setShareShown","shareCopyActive","shareCopySuccess","copySharedId","sourceShown","setSourceShown","innerWidth","setCopy","setDownload","setImport","setPreviewShown","hasPreview","actionsShown","SearchList","selectVersion","Tree","protocol","jsonData","lz","compressToBase64","raw","btoa","PreviewPanel","SourcePanel","readonly","showTooltip","getFilePath","setSounds","soundKeys","configs","setConfigs","addConfig","deleteConfig","setDelayedPlay","hasDelay","SoundConfig","setVersions","versions2","selectedId","selected","nextVersion","getOffsetVersion","previousVersion","VersionDetail","VersionList","offsetIndex","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 +{"version":3,"file":"index.182fe7ed.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/useMediaQuery.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/Checkbox.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","../../src/app/services/Sharing.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/DensityFunctionPreview.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/Giscus.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/components/versions/ChangelogEntry.tsx","../../src/app/components/versions/ChangelogTag.tsx","../../src/app/components/versions/ChangelogList.tsx","../../src/app/components/versions/VersionDetail.tsx","../../src/app/components/versions/VersionEntry.tsx","../../src/app/components/versions/VersionList.tsx","../../src/app/components/versions/VersionMetaData.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/pages/Versions.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\tconst DIM_PREFERS_COLOR_SCHEME = 7\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 setPrefersColorScheme(colorScheme: string) {\n\t\tdimension(DIM_PREFERS_COLOR_SCHEME, colorScheme)\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\tshowTooltip?: boolean,\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'}` : ''}${active ? ' tip-shown' : ''}`} 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 (isObject(dimensions)) {\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(['placement', 'salt']), Math.abs(seed), true)\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).replaceAll('%2F', '/')}`)\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\ttry {\n\t\t\tawait draw(img)\n\t\t} catch (e) {\n\t\t\tthrow e\n\t\t}\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 { useEffect, useState } from 'preact/hooks'\n\nexport function useMediaQuery(query: string): boolean {\n\tconst [prefers, setPrefers] = useState(matchMedia(query).matches)\n\n\tconst onChange = (e: MediaQueryListEvent) => {\n\t\tsetPrefers(e.matches)\n\t}\n\n\tuseEffect(() => {\n\t\tconst mediaQuery = matchMedia(query)\n\t\tmediaQuery.addEventListener('change', onChange)\n\t\treturn () => {\n\t\t\tmediaQuery.removeEventListener('change', onChange)\n\t\t}\n\t}, [query])\n\n\treturn prefers\n}\n","import type { DataModel } from '@mcschema/core'\nimport type { Inputs } from 'preact/hooks'\nimport { useEffect } from 'preact/hooks'\n\nexport function useModel(model: DataModel | undefined | null, invalidated: (model: DataModel) => unknown, inputs?: Inputs) {\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, ...inputs ?? []])\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 { useEffect, useMemo, useState } from 'preact/hooks'\nimport { mapStackTrace } from 'sourcemapped-stacktrace'\nimport { Octicon } from './Octicon'\n\ntype ErrorPanelProps = {\n\terror: string | Error,\n\tonDismiss?: () => unknown,\n}\nexport function ErrorPanel({ error, onDismiss }: ErrorPanelProps) {\n\tconst [stackVisible, setStackVisible] = useState(false)\n\tconst [stack, setStack] = useState<string | undefined>(undefined)\n\n\tuseEffect(() => {\n\t\tif (error instanceof Error) {\n\t\t\tconst stack = error.stack!.split('\\n').map(line => {\n\t\t\t\treturn line.replace(/^(\\s+)at (?:async )?(https?:.*)/, '$1at ($2)')\n\t\t\t})\n\t\t\tsetStack(stack.join('\\n'))\n\t\t\tmapStackTrace(stack.join('\\n'), (mapped) => {\n\t\t\t\tconst mappedStack = mapped.map(line => {\n\t\t\t\t\treturn line.replace(/..\\/..\\/src\\//, 'src/')\n\t\t\t\t}).join('\\n')\n\t\t\t\tsetStack(mappedStack)\n\t\t\t})\n\t\t}\n\t}, [error])\n\n\tconst url = useMemo(() => {\n\t\tlet url ='https://github.com/misode/misode.github.io/issues/new'\n\t\tif (error instanceof Error) {\n\t\t\turl += `?title=${encodeURIComponent(`${error.name}: ${error.message}`)}`\n\t\t\tif (stack) {\n\t\t\t\turl += `&body=${encodeURIComponent(`\\`\\`\\`\\n${error.name}: ${error.message}\\n${stack}\\n\\`\\`\\`\\n`)}`\n\t\t\t}\n\t\t} else {\n\t\t\turl += `?title=${encodeURIComponent(error.toString())}`\n\t\t}\n\t\treturn url\n\t}, [error, stack])\n\n\treturn <div class=\"error\">\n\t\t{onDismiss && <div class=\"error-dismiss\" onClick={onDismiss}>{Octicon.x}</div>}\n\t\t<h3>\n\t\t\t{error instanceof Error ? error.message : error}\n\t\t\t{stack && <span onClick={() => setStackVisible(!stackVisible)}>\n\t\t\t\t{Octicon.info}\n\t\t\t</span>}\n\t\t</h3>\n\t\t{stack && stackVisible && <pre>{stack}</pre>}\n\t\t<p>If you think this is a bug, you can report it <a href={url} target=\"_blank\">on GitHub</a></p>\n\t</div>\n}\n","import { hexId } from '../../Utils'\n\ninterface Props {\n\tlabel: string,\n\tvalue: boolean,\n\tonChange: (value: boolean) => unknown,\n}\nexport function Checkbox({ label, value, onChange }: Props) {\n\tconst id = hexId()\n\treturn <label class=\"checkbox\">\n\t\t<input id={id} type=\"checkbox\" checked={value} onClick={() => onChange(!value)} />\n\t\t{label}\n\t</label>\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 Change = {\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: Change[] | Promise<Change[]> | 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>(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' | 'registries'\n\nfunction mcmeta(version: { dynamic: true } | { dynamic?: false, ref?: string}, type: McmetaTypes) {\n\treturn `${mcmetaUrl}/${version.dynamic ? type : `${version.ref}-${type}`}`\n}\n\nasync function validateCache(version: Version) {\n\tif (version.dynamic) {\n\t\tif (localStorage.getItem(CACHE_LATEST_VERSION) !== latestVersion) {\n\t\t\tawait deleteMatching(url => url.startsWith(`${mcmetaUrl}/summary/`) || url.startsWith(`${mcmetaUrl}/data/`) || url.startsWith(`${mcmetaUrl}/assets/`) || url.startsWith(`${mcmetaUrl}/registries/`))\n\t\t\tlocalStorage.setItem(CACHE_LATEST_VERSION, latestVersion)\n\t\t}\n\t\tversion.ref = latestVersion\n\t}\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\tawait validateCache(version)\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 async function fetchAllPresets(versionId: VersionId, registry: string) {\n\tconsole.debug(`[fetchAllPresets] ${versionId} ${registry}`)\n\tconst version = config.versions.find(v => v.id === versionId)!\n\tawait validateCache(version)\n\ttry {\n\t\tconst entries = await getData(`${mcmeta(version, 'registries')}/${registry}/data.min.json`)\n\t\treturn new Map<string, unknown>(await Promise.all(\n\t\t\tentries.map(async (e: string) =>\n\t\t\t\t[e, await getData(`${mcmeta(version, 'data')}/data/minecraft/${registry}/${e}.json`)])\n\t\t))\n\t} catch (e) {\n\t\tthrow new Error(`Error occurred while fetching all ${registry} presets: ${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\tawait validateCache(version)\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\nexport type VersionMeta = {\n\tid: string,\n\tname: string,\n\trelease_target: string,\n\ttype: 'snapshot' | 'release',\n\tstable: boolean,\n\tdata_version: number,\n\tprotocol_version: number,\n\tdata_pack_version: number,\n\tresource_pack_version: number,\n\tbuild_time: string,\n\trelease_time: string,\n\tsha1: string,\n}\nexport async function fetchVersions(): Promise<VersionMeta[]> {\n\tconst version = config.versions[config.versions.length - 1]\n\tawait validateCache(version)\n\ttry {\n\t\treturn getData(`${mcmeta(version, 'summary')}/versions/data.min.json`)\n\t} catch (e) {\n\t\tthrow new Error(`Error occured while fetching versions: ${message(e)}`)\n\t}\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 java182 from '@mcschema/java-1.18.2'\nimport * as java19 from '@mcschema/java-1.19'\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', '1.19'] 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\t'1.18.2': java182,\n\t1.19: java19,\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","import lz from 'lz-string'\nimport config from '../../config.json'\nimport type { VersionId } from './Schemas'\n\nconst API_PREFIX = 'https://z15g7can.directus.app/items'\nexport const SHARE_KEY = 'share'\n\nconst ShareCache = new Map<string, string>()\n\nexport async function shareSnippet(type: string, version: VersionId, jsonData: any, show_preview: boolean) {\n\ttry {\n\t\tconst data = lz.compressToBase64(JSON.stringify(jsonData))\n\t\tconst raw = btoa(JSON.stringify(jsonData))\n\t\tconsole.log('Compression rate', raw.length / data.length)\n\t\tconst body = JSON.stringify({ data, type, version, show_preview })\n\t\tlet id = ShareCache.get(body)\n\t\tif (!id) {\n\t\t\tconst snippet = await fetchApi('/snippets', body)\n\t\t\tShareCache.set(body, snippet.id)\n\t\t\tid = snippet.id as string\n\t\t}\n\t\tconst gen = config.generators.find(g => g.id === type)!\n\t\treturn `${location.protocol}//${location.host}/${gen.url}/?${SHARE_KEY}=${id}`\n\t} catch (e) {\n\t\tif (e instanceof Error) {\n\t\t\te.message = `Error creating share link: ${e.message}`\n\t\t}\n\t\tthrow e\n\t}\n}\n\nexport async function getSnippet(id: string) {\n\ttry {\n\t\tconst snippet = await fetchApi(`/snippets/${id}`)\n\t\treturn {\n\t\t\t...snippet,\n\t\t\tdata: JSON.parse(lz.decompressFromBase64(snippet.data) ?? '{}'),\n\t\t}\n\t} catch (e) {\n\t\tif (e instanceof Error) {\n\t\t\te.message = `Error loading shared content: ${e.message}`\n\t\t}\n\t\tthrow e\n\t}\n}\n\nasync function fetchApi(url: string, body?: string) {\n\tconst res = await fetch(API_PREFIX + url, body ? {\n\t\tmethod: 'post',\n\t\theaders: { 'Content-Type': 'application/json' },\n\t\tbody,\n\t} : undefined)\n\tconst data = await res.json()\n\tif (data.data) {\n\t\treturn data.data\n\t}\n\tthrow new Error(data.errors?.[0]?.message ?? 'Unknown error')\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_HIGHLIGHTING = 'output_highlighting'\n\texport const ID_SOUNDS_VERSION = 'minecraft_sounds_version'\n\texport const ID_PROJECTS = 'misode_projects'\n\texport const ID_BACKUPS = 'misode_generator_backups'\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.2'\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 getHighlighting() {\n\t\treturn localStorage.getItem(ID_HIGHLIGHTING) !== 'false'\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 getBackup(id: string): object | undefined {\n\t\tconst backups = JSON.parse(localStorage.getItem(ID_BACKUPS) ?? '{}')\n\t\treturn backups[id]\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 setHighlighting(highlighting: boolean | undefined) {\n\t\tif (highlighting !== undefined) localStorage.setItem(ID_HIGHLIGHTING, highlighting.toString())\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\texport function setBackup(id: string, data: object | undefined) {\n\t\tconst backups = JSON.parse(localStorage.getItem(ID_BACKUPS) ?? '{}')\n\t\tif (data === undefined) {\n\t\t\tdelete backups[id]\n\t\t} else {\n\t\t\tbackups[id] = data\n\t\t}\n\t\tlocalStorage.setItem(ID_BACKUPS, JSON.stringify(backups))\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 { useMediaQuery } from '../hooks'\nimport { Store } from '../Store'\n\ninterface Theme {\n\ttheme: string,\n\tactualTheme: 'light' | 'dark',\n\tchangeTheme: (theme: string) => unknown,\n}\nconst Theme = createContext<Theme>({\n\ttheme: 'dark',\n\tactualTheme: '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\tconst prefersLight = useMediaQuery('(prefers-color-scheme: light)')\n\tconst prefersDark = useMediaQuery('(prefers-color-scheme: dark)')\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\tuseEffect(() => {\n\t\tAnalytics.setPrefersColorScheme(prefersLight ? 'light' : prefersDark ? 'dark' : 'none')\n\t}, [prefersLight, prefersDark])\n\n\tconst value: Theme = {\n\t\ttheme,\n\t\tactualTheme: theme === 'light' || (theme !== 'dark' && prefersLight) ? 'light' : 'dark',\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, store?: boolean) => unknown,\n}\nconst Version = createContext<Version>({\n\tversion: '1.18.2',\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, store = true) => {\n\t\tif (getSearchParams(getCurrentUrl()).has(VERSION_PARAM)) {\n\t\t\tsetSeachParams({ version })\n\t\t}\n\t\tif (store) {\n\t\t\tAnalytics.setVersion(version)\n\t\t\tStore.setVersion(version)\n\t\t}\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, Identifier, LegacyRandom, NormalNoise } 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 { checkVersion, 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\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): Identifier\n\tgetBiomes?(xFrom: number, xTo: number, xStep: number, yFrom: number, yTo: number, yStep: number, zFrom: number, zTo: number, zStep: number): Identifier[]\n\tgetClimate?(x: number, y: number, z: number): {[k: string]: number}\n\tgetClimates?(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?.(...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.toString(), 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).toString(),\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.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(Identifier.parse(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 Identifier.parse(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 = checkVersion(options.version, '1.18') ? NetherPreset18 : NetherPreset\n\t\t\t\t\tbreak\n\t\t\t\tcase 'overworld':\n\t\t\t\t\tstate = checkVersion(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 (checkVersion(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 Identifier.parse(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 => Identifier.parse(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(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\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})\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(Identifier.create('unknown'))\n\t\t\t\t}\n\t\t\t\treturn {\n\t\t\t\t\tgetBiome(x: number, _y: number, z: number): Identifier {\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 Identifier.parse(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, clampedMap, DensityFunction, FixedBiome, Identifier, NoiseChunkGenerator, NoiseGeneratorSettings, NoiseParameters, NoiseRouter, NoiseSettings, Registry, WorldgenRegistries, XoroshiroRandom } from 'deepslate'\nimport * as deepslate18 from 'deepslate-1.18'\nimport type { VersionId } from '../services'\nimport { checkVersion, fetchAllPresets } 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[] = []\nconst registryCache = new Map<VersionId, Registry<Registry<any>>>()\n\nexport async function noiseSettings(state: any, img: ImageData, options: NoiseSettingsOptions) {\n\tif (checkVersion(options.version, '1.18')) {\n\t\tif (checkVersion(options.version, '1.18.2')) {\n\t\t\tawait initRegistries(options.version)\n\t\t}\n\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)\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().toString()] ?? [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\nexport async function densityFunction(state: any, img: ImageData, options: NoiseSettingsOptions) {\n\tconst { fn, settings } = await createDensityFunction(state, options)\n\n\tconst arr = Array(options.width * settings.height)\n\tlet min = Infinity\n\tlet max = -Infinity\n\tfor (let x = 0; x < options.width; x += 1) {\n\t\tfor (let y = 0; y < settings.height; y += 1) {\n\t\t\tconst i = x + (settings.height-y-1) * options.width\n\t\t\tconst density = fn.compute(DensityFunction.context(x - options.offset, y, 0))\n\t\t\tmin = Math.min(min, density)\n\t\t\tmax = Math.max(max, density)\n\t\t\tarr[i] = density\n\t\t}\n\t}\n\n\tconst data = img.data\n\tfor (let i = 0; i < options.width * settings.height; i += 1) {\n\t\tconst color = Math.floor(clampedMap(arr[i], min, max, 0, 256))\n\t\tdata[4 * i] = color\n\t\tdata[4 * i + 1] = color\n\t\tdata[4 * i + 2] = color\n\t\tdata[4 * i + 3] = 255\n\t}\n}\n\nasync function createDensityFunction(state: any, options: NoiseSettingsOptions) {\n\tawait initRegistries(options.version)\n\n\tconst random = XoroshiroRandom.create(options.seed).forkPositional()\n\tconst settings = NoiseSettings.fromJson({\n\t\tmin_y: -64,\n\t\theight: 384,\n\t\tsize_horizontal: 1,\n\t\tsize_vertical: 2,\n\t\tsampling: { xz_scale: 1, y_scale: 1, xz_factor: 80, y_factor: 160 },\n\t\tbottom_slide: { target: 0.1171875, size: 3, offset: 0 },\n\t\ttop_slide: { target: -0.078125, size: 2, offset: 8 },\n\t\tterrain_shaper: { offset: 0.044, factor: 4, jaggedness: 0 },\n\t})\n\tconst originalFn = DensityFunction.fromJson(state)\n\tconst fn = originalFn.mapAll(new NoiseRouter.Visitor(random, settings))\n\n\treturn {\n\t\tfn,\n\t\tsettings,\n\t}\n}\n\nconst Registries: [string, { fromJson(obj: unknown): any}][] = [\n\t['worldgen/noise', NoiseParameters],\n\t['worldgen/density_function', DensityFunction],\n]\n\nasync function initRegistries(version: VersionId) {\n\tconst rootRegistries = registryCache.get(version) ?? new Registry(new Identifier('misode', 'temp'))\n\tif (!registryCache.has(version)) {\n\t\tawait Promise.all(Registries.map(([id, c]) => fetchRegistry(version, rootRegistries, id, c)))\n\t\tregistryCache.set(version, rootRegistries)\n\t}\n\tWorldgenRegistries.DENSITY_FUNCTION.clear().assign(rootRegistries.getOrThrow(Identifier.create('worldgen/density_function')))\n\tWorldgenRegistries.NOISE.clear().assign(rootRegistries.getOrThrow(Identifier.create('worldgen/noise')))\n}\n\nasync function fetchRegistry<T extends { fromJson(obj: unknown): T }>(version: VersionId, root: Registry<Registry<unknown>>, id: string, clazz: T) {\n\tconst entries = await fetchAllPresets(version, id)\n\tconst registry = new Registry<typeof clazz>(Identifier.create(id))\n\tfor (const [key, value] of entries.entries()) {\n\t\tregistry.register(Identifier.parse(key), clazz.fromJson(value))\n\t}\n\troot.register(registry.key, registry)\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\tif (checkVersion(options.version, '1.18.2')) {\n\t\t\tconst biomeSource = new FixedBiome(Identifier.create('unknown'))\n\t\t\tgeneratorCache = new NoiseChunkGenerator(options.seed, biomeSource, settings)\n\t\t} else {\n\t\t\tconst biomeSource = new deepslate18.FixedBiome('unknown')\n\t\t\tgeneratorCache = new deepslate18.NoiseChunkGenerator(options.seed, biomeSource, settings as any) as any\n\t\t}\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, true)\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 { Path } from '@mcschema/core'\nimport type { NoiseParameters } from 'deepslate'\nimport { useEffect, useMemo, 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, randomSeed } from '../../Utils'\n\nconst LAYERS = ['biomes', 'temperature', 'humidity', 'continentalness', 'erosion', 'weirdness'] as const\n\nexport const BiomeSourcePreview = ({ model, data, shown, version }: PreviewProps) => {\n\tconst { locale } = useLocale()\n\tconst [configuredSeed] = useState(randomSeed())\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'])) ?? configuredSeed)\n\tconst octaves = useMemo(() => {\n\t\tif (!shown) return undefined\n\t\treturn getOctaves(model.get(new Path(['generator', 'settings'])))\n\t}, [shown])\n\tconst state = shown ? calculateState(data, octaves!) : ''\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: octaves!, 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: octaves!, biomeColors: {}, layers, offset: offset.current, scale, seed: configuredSeed, 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, configuredSeed, 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, configuredSeed, 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 !== undefined && <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>) {\n\treturn JSON.stringify([data, octaves])\n}\n\nexport function getOctaves(obj: any): Record<string, NoiseParameters> {\n\tif (typeof obj !== 'string') {\n\t\tobj = obj.legacy_random_source ? '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","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, BtnMenu } from '..'\nimport { useLocale } from '../../contexts'\nimport { useCanvas } from '../../hooks'\nimport { densityFunction } from '../../previews'\nimport { randomSeed } from '../../Utils'\n\nexport const DensityFunctionPreview = ({ data, shown, version }: PreviewProps) => {\n\tconst { locale } = useLocale()\n\tconst [seed, setSeed] = useState(randomSeed())\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])\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 = { offset: offset.current, width: img.width, seed, version }\n\t\t\tawait densityFunction(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\tsetFocused(`X=${worldX} 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, autoScroll])\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<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 { 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\tawait noiseSettings(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().path})` : `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\t(async () => {\n\t\t\t\ttry {\n\t\t\t\t\tawait redraw()\n\t\t\t\t\tif (autoScroll) {\n\t\t\t\t\t\tscrollInterval.current = setInterval(() => {\n\t\t\t\t\t\t\toffset.current -= 8\n\t\t\t\t\t\t\tredraw()\n\t\t\t\t\t\t}, 100) as any\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {\n\t\t\t\t\tthrow e\n\t\t\t\t}\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, DensityFunctionPreview, NoisePreview, NoiseSettingsPreview } from '../previews'\n\nexport const HasPreview = ['dimension', 'worldgen/density_function', '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/density_function') {\n\t\tconst data = model.get(new Path([]))\n\t\tif (data) return <DensityFunctionPreview {...{ 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\ninterface Editor {\n\tgetValue(): string\n\tsetValue(value: string): void\n\tconfigure(indent: string, format: string): void\n\tselect(): void\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 | Error) => 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 [highlighting, setHighlighting] = useState(Store.getHighlighting())\n\tconst download = useRef<HTMLAnchorElement>(null)\n\tconst retransform = useRef<Function>()\n\tconst onImport = useRef<(e: any) => any>()\n\n\tconst textarea = useRef<HTMLTextAreaElement>()\n\tconst editor = useRef<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.setValue(output)\n\t\t\t} catch (e) {\n\t\t\t\tif (e instanceof Error) {\n\t\t\t\t\te.message = `Error getting JSON output: ${e.message}`\n\t\t\t\t\tonError(e)\n\t\t\t\t} else {\n\t\t\t\t\tonError(`Error getting JSON output: ${message(e)}`)\n\t\t\t\t}\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\tif (e instanceof Error) {\n\t\t\t\t\te.message = `Error importing: ${e.message}`\n\t\t\t\t\tonError(e)\n\t\t\t\t} else {\n\t\t\t\t\tonError(`Error importing: ${message(e)}`)\n\t\t\t\t}\n\t\t\t\tconsole.error(e)\n\t\t\t}\n\t\t}\n\t}, [model, blockStates, indent, format, highlighting])\n\n\tuseEffect(() => {\n\t\tif (highlighting) {\n\t\t\tconst braceEditor = brace.edit('editor')\n\t\t\tbraceEditor.setOptions({\n\t\t\t\tfontSize: 14,\n\t\t\t\tshowFoldWidgets: false,\n\t\t\t\thighlightSelectedWord: false,\n\t\t\t})\n\t\t\tbraceEditor.$blockScrolling = Infinity\n\t\t\tbraceEditor.on('blur', e => onImport.current(e))\n\t\t\tbraceEditor.getSession().setMode('ace/mode/json')\n\n\t\t\teditor.current = {\n\t\t\t\tgetValue() {\n\t\t\t\t\treturn braceEditor.getSession().getValue()\n\t\t\t\t},\n\t\t\t\tsetValue(value) {\n\t\t\t\t\tbraceEditor.getSession().setValue(value)\n\t\t\t\t},\n\t\t\t\tconfigure(indent, format) {\n\t\t\t\t\tbraceEditor.setOption('useSoftTabs', indent !== 'tabs')\n\t\t\t\t\tbraceEditor.setOption('tabSize', indent === 'tabs' ? 4 : INDENT[indent])\n\t\t\t\t\tbraceEditor.getSession().setMode(`ace/mode/${format}`)\n\t\t\t\t},\n\t\t\t\tselect() {\n\t\t\t\t\tbraceEditor.selectAll()\n\t\t\t\t},\n\t\t\t}\n\t\t} else {\n\t\t\teditor.current = {\n\t\t\t\tgetValue() {\n\t\t\t\t\treturn textarea.current.value\n\t\t\t\t},\n\t\t\t\tsetValue(value: string) {\n\t\t\t\t\ttextarea.current.value = value\n\t\t\t\t},\n\t\t\t\tconfigure() {},\n\t\t\t\tselect() {},\n\t\t\t}\n\t\t}\n\t}, [highlighting])\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.configure(indent, format)\n\t\tretransform.current()\n\t}, [indent, format, highlighting])\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.select()\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\tconst changeHighlighting = (value: boolean) => {\n\t\tStore.setHighlighting(value)\n\t\tsetHighlighting(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\t<hr />\n\t\t\t\t<Btn icon={highlighting ? 'square_fill' : 'square'} label={locale('highlighting')}\n\t\t\t\t\tonClick={() => changeHighlighting(!highlighting)} />\n\t\t\t</BtnMenu>\n\t\t</div>\n\t\t{highlighting\n\t\t\t? <pre id=\"editor\" class=\"source\"></pre>\n\t\t\t: <textarea ref={textarea} class=\"source\" spellcheck={false} autocorrect=\"off\" onBlur={onImport.current}></textarea>}\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', 'root_placer.type', 'entity.type_specific.cat.variant', 'entity.type_specific.frog.variant']\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', 'density_function.type', 'root_placer.type', 'entity.type_specific.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']\nconst collapsableFields = ['density_function.argument', 'density_function.argument1', 'density_function.argument2', 'density_function.input', 'density_function.when_in_range', 'density_function.when_out_of_range']\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 (collapsableFields.includes(context) || collapsedFields.includes(context)) {\n\t\t\tconst toggled = isToggled('')\n\t\t\tconst expanded = collapsedFields.includes(context) ? toggled : !toggled\n\t\t\tprefix = <>\n\t\t\t\t<button class=\"toggle tooltipped tip-se\" aria-label={localize(lang, expanded ? 'collapse' : 'expand')} onClick={toggled ? collapse('') : expand('')}>{expanded ? Octicon.chevron_down : Octicon.chevron_right}</button>\n\t\t\t</>\n\t\t\tif (!expanded) {\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\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', 'structure_placement.salt'].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 { Giscus as GiscusReact } from '@giscus/react'\nimport { useTheme } from '../contexts'\n\ninterface Props {\n\tterm?: string,\n}\nexport function Giscus({ term }: Props) {\n\tconst { actualTheme } = useTheme()\n\tconst themeSuffix = actualTheme === 'light' ? '-burn' : ''\n\tconst themeUrl = (import.meta as any).env.DEV\n\t\t? `http://localhost:3000/src/styles/giscus${themeSuffix}.css`\n\t\t: `https://${location.host}/assets/giscus${themeSuffix}.css`\n\n\treturn <GiscusReact\n\t\trepo=\"misode/misode.github.io\"\n\t\trepoId=\"MDEwOlJlcG9zaXRvcnkxOTIyNTQyMzA=\"\n\t\tcategory=\"Site\"\n\t\tcategoryId=\"DIC_kwDOC3WRFs4COB8r\"\n\t\tmapping={term ? 'specific' : 'pathname'}\n\t\tterm={term}\n\t\treactionsEnabled=\"1\"\n\t\temitMetadata=\"0\"\n\t\tinputPosition=\"top\"\n\t\ttheme={themeUrl}\n\t\tlang=\"en\" />\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 { marked } from 'marked'\nimport { ChangelogTag } from '.'\nimport type { Change, ChangelogVersion } from '../../services'\n\ntype Props = {\n\tchange: Change,\n\tactiveTags?: string[],\n\ttoggleTag?: (tag: string) => unknown,\n}\nexport function ChangelogEntry({ change, activeTags, toggleTag }: Props) {\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 => <ChangelogTag label={tag} onClick={toggleTag ? () => toggleTag(tag) : undefined} 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","import { Octicon } from '..'\nimport { hashString } from '../../Utils'\n\ntype TagProps = {\n\tlabel: string,\n\tactive?: boolean,\n\tonClick?: () => unknown,\n}\nexport function ChangelogTag({ 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 { useMemo, useState } from 'preact/hooks'\nimport { Btn, TextInput } from '..'\nimport { useLocale } from '../../contexts'\nimport type { Change } from '../../services'\nimport { ChangelogEntry } from './ChangelogEntry'\nimport { ChangelogTag } from './ChangelogTag'\n\ninterface Props {\n\tchanges: Change[] | undefined,\n\tdefaultOrder: 'asc' | 'desc',\n}\nexport function ChangelogList({ changes, defaultOrder }: Props) {\n\tconst { locale } = useLocale()\n\t\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 changes\n\t\treturn changes?.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}, [changes, search, tags])\n\n\tconst [sort, setSort] = useState(defaultOrder === 'desc')\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 <>\n\t\t<div class=\"changelog-query\">\n\t\t\t<TextInput class=\"btn btn-input changelog-search\" list=\"sound-list\" placeholder={locale('changelog.search')}\n\t\t\t\tvalue={search} onChange={setSearch} />\n\t\t\t<Btn icon={sort ? 'sort_desc' : 'sort_asc'} label={sort ? 'Newest first' : 'Oldest first'} onClick={() => setSort(!sort)} />\n\t\t</div>\n\t\t{tags.length > 0 && <div class=\"changelog-tags\">\n\t\t\t{tags.map(tag => <ChangelogTag label={tag} onClick={() => setTags(tags.filter(t => t !== tag))} />)}\n\t\t</div>}\n\t\t<div class=\"changelog-list\">\n\t\t\t{sortedChangelogs === undefined\n\t\t\t\t? <span>{locale('loading')}</span>\n\t\t\t\t: sortedChangelogs.length === 0\n\t\t\t\t\t? <span>{locale('changelog.no_results')}</span>\n\t\t\t\t\t:\tsortedChangelogs.map(change =>\n\t\t\t\t\t\t<ChangelogEntry change={change} activeTags={tags} toggleTag={toggleTag} />)}\n\t\t</div>\n\t</>\n}\n","import { useEffect, useMemo, useState } from 'preact/hooks'\nimport { VersionMetaData } from '.'\nimport { useLocale } from '../../contexts'\nimport type { Change, VersionMeta } from '../../services'\nimport { getChangelogs } from '../../services'\nimport { Giscus } from '../Giscus'\nimport { ChangelogList } from './ChangelogList'\n\ntype Tab = 'changelog' | 'discussion' \n\ninterface Props {\n\tversion: VersionMeta\n}\nexport function VersionDetail({ version }: Props) {\n\tconst { locale } = useLocale()\n\n\tconst [tab, setTab] = useState<Tab>('changelog')\n\n\tconst [changelogs, setChangelogs] = useState<Change[] | undefined>(undefined)\n\tuseEffect(() => {\n\t\tgetChangelogs()\n\t\t\t.then(changelogs => setChangelogs(\n\t\t\t\tchangelogs.map(c => ({ ...c, tags: c.tags.filter(t => t !== c.group.id) }))\n\t\t\t))\n\t\t\t.catch(e => console.error(e))\n\t}, [])\n\n\tconst filteredChangelogs = useMemo(() =>\n\t\tchangelogs?.filter(c => c.version.id === version.id || c.group.id === version.id),\n\t[version.id, changelogs])\n\n\treturn <>\n\t\t<div class=\"version-detail\">\n\t\t\t<h2>{version.name}</h2>\n\t\t\t<div class=\"version-info\">\n\t\t\t\t<VersionMetaData label={locale('versions.released')} value={releaseDate(version)} />\n\t\t\t\t<VersionMetaData label={locale('versions.release_target')} value={version.release_target} link={version.id !== version.release_target ? `/versions/?id=${version.release_target}` : undefined} />\n\t\t\t\t<VersionMetaData label={locale('versions.data_version')} value={version.data_version} />\n\t\t\t\t<VersionMetaData label={locale('versions.protocol_version')} value={version.protocol_version} />\n\t\t\t\t<VersionMetaData label={locale('versions.data_pack_format')} value={version.data_pack_version} />\n\t\t\t\t<VersionMetaData label={locale('versions.resource_pack_format')} value={version.resource_pack_version} />\n\t\t\t</div>\n\t\t\t<div class=\"version-tabs\">\n\t\t\t\t<span class={tab === 'changelog' ? 'selected' : ''} onClick={() => setTab('changelog')}>{locale('versions.technical_changes')}</span>\n\t\t\t\t<span class={tab === 'discussion' ? 'selected' : ''} onClick={() => setTab('discussion')}>{locale('versions.discussion')}</span>\n\t\t\t</div>\n\t\t\t<div class=\"version-tab\">\n\t\t\t\t{tab === 'changelog' && <ChangelogList changes={filteredChangelogs} defaultOrder=\"asc\" />}\n\t\t\t\t{tab === 'discussion' && <Giscus term={`version/${version.id}`} />}\n\t\t\t</div>\n\t\t</div>\n\t</>\n}\n\nexport function releaseDate(version: VersionMeta) {\n\treturn new Date(version.release_time).toLocaleDateString(undefined, { day: 'numeric', month: 'short', year: 'numeric' })\n}\n","import { releaseDate, VersionMetaData } from '.'\nimport { useLocale } from '../../contexts'\nimport type { VersionMeta } from '../../services'\n\ninterface Props {\n\tversion: VersionMeta,\n\tlink?: string,\n}\nexport function VersionEntry({ version, link }: Props) {\n\tconst { locale } = useLocale()\n\n\treturn <a class=\"version-entry\" href={link}>\n\t\t<span class=\"version-id\">{version.id}</span>\n\t\t<VersionMetaData label={locale('versions.released')} value={releaseDate(version)} compact />\n\t\t<VersionMetaData label={locale('versions.data_version')} value={version.data_version} optional />\n\t\t<VersionMetaData label={locale('versions.pack_format')} value={version.data_pack_version} optional />\n\t</a>\n}\n","import { useMemo, useState } from 'preact/hooks'\nimport { Checkbox, TextInput } from '..'\nimport { useLocale } from '../../contexts'\nimport type { VersionMeta } from '../../services'\nimport { VersionEntry } from './VersionEntry'\n\ninterface Props {\n\tversions: VersionMeta[]\n\tlink?: (id: string) => string\n}\nexport function VersionList({ versions, link }: Props) {\n\tconst { locale } = useLocale()\n\t\n\tconst [snapshots, setSnapshots] = useState(true)\n\tconst [search, setSearch] = useState('')\n\n\tconst filteredVersions = useMemo(() => versions.filter(v => {\n\t\tif (v.type === 'snapshot' && !snapshots) return false\n\t\treturn v.id.includes(search)\n\t}), [versions, snapshots, search])\n\n\n\treturn <>\n\t\t<div class=\"versions-controls\">\n\t\t\t<TextInput class=\"btn btn-input version-search\" list=\"sound-list\" placeholder={locale('versions.search')}\n\t\t\t\tvalue={search} onChange={setSearch} />\n\t\t\t<Checkbox label=\"Include snapshots\" value={snapshots} onChange={setSnapshots} />\n\t\t</div>\n\t\t<div class=\"version-list\">\n\t\t\t{filteredVersions.map(v => <VersionEntry version={v} link={link?.(v.id)} />)}\n\t\t\t{filteredVersions.length === 0 && <span>\n\t\t\t\t{locale('versions.no_results')}\n\t\t\t</span>}\n\t\t</div>\n\t</>\n}\n","import { Octicon } from '..'\n\ninterface Props {\n\tlabel: string,\n\tvalue: string | number,\n\tlink?: string,\n\tcompact?: boolean,\n\toptional?: boolean,\n}\nexport function VersionMetaData({ label, value, link, compact, optional }: Props) {\n\treturn <div class={`version-metadata${optional ? ' version-metadata-hide' : ''}`}>\n\t\t<span class={compact ? 'version-metadata-hide' : undefined}>{label}: </span>\n\t\t<span class=\"version-metadata-value\">{value}</span>\n\t\t{link && <a href={link} class=\"version-metadata-link\">{Octicon.link_external}</a>}\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 { useEffect, useState } from 'preact/hooks'\nimport { Ad, ChangelogList, ErrorPanel } from '../components'\nimport { useLocale, useTitle } from '../contexts'\nimport type { Change } from '../services'\nimport { getChangelogs } from '../services'\n\ninterface Props {\n\tpath?: string,\n}\nexport function Changelog({}: Props) {\n\tconst { locale } = useLocale()\n\tconst [error, setError] = useState<Error | null>(null)\n\tuseTitle(locale('title.changelog'))\n\n\tconst [changelogs, setChangelogs] = useState<Change[]>([])\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\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\">\n\t\t\t<ChangelogList changes={changelogs} defaultOrder=\"desc\" />\n\t\t</div>\n\t</main>\n}\n","import { DataModel, Path } from '@mcschema/core'\nimport { getCurrentUrl, route } from 'preact-router'\nimport { useEffect, useErrorBoundary, useMemo, 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, getSnippet, shareSnippet, SHARE_KEY } from '../services'\nimport { Store } from '../Store'\nimport { cleanUrl, deepEqual, 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<Error | string | null>(null)\n\tconst [errorBoundary, errorRetry] = useErrorBoundary()\n\tif (errorBoundary) {\n\t\terrorBoundary.message = `Something went wrong rendering the generator: ${errorBoundary.message}`\n\t\treturn <main><ErrorPanel error={errorBoundary} 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\tconst sharedSnippetId = searchParams.get(SHARE_KEY)\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, [SHARE_KEY]: undefined })\n\t\t\t})\n\t\t} else if (model && sharedSnippetId) {\n\t\t\tgetSnippet(sharedSnippetId).then(s => loadSnippet(model, s))\n\t\t}\n\t}, [currentPreset, sharedSnippetId])\n\n\tconst loadSnippet = (model: DataModel, snippet: any) => {\n\t\tif (snippet.version && snippet.version !== version) {\n\t\t\tchangeVersion(snippet.version, false)\n\t\t}\n\t\tif (snippet.type && snippet.type !== gen.id) {\n\t\t\tconst snippetGen = config.generators.find(g => g.id === snippet.type)\n\t\t\tif (snippetGen) {\n\t\t\t\troute(`${cleanUrl(snippetGen.url)}?${SHARE_KEY}=${snippet.id}`)\n\t\t\t}\n\t\t}\n\t\tif (snippet.show_preview && !previewShown) {\n\t\t\tsetPreviewShown(true)\n\t\t\tsetSourceShown(false)\n\t\t}\n\t\tmodel.reset(DataModel.wrapLists(snippet.data), false)\n\t}\n\n\tconst backup = useMemo(() => Store.getBackup(gen.id), [gen.id])\n\n\tconst loadBackup = () => {\n\t\tif (backup !== undefined) {\n\t\t\tmodel?.reset(DataModel.wrapLists(backup), false)\n\t\t}\n\t}\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} else if (sharedSnippetId) {\n\t\t\t\t\tconst snippet = await getSnippet(sharedSnippetId)\n\t\t\t\t\tloadSnippet(m, snippet)\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(e) })\n\t}, [version, gen.id])\n\n\tconst [dirty, setDirty] = useState(false)\n\tuseModel(model, () => {\n\t\tsetSeachParams({ version: undefined, preset: undefined, [SHARE_KEY]: undefined })\n\t\tStore.setBackup(gen.id, DataModel.unwrapLists(model?.data))\n\t\tsetError(null)\n\t\tsetDirty(true)\n\t}, [gen.id])\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) })\n\t}, [version, gen.id])\n\n\tconst selectPreset = (id: string) => {\n\t\tAnalytics.generatorEvent('load-preset', id)\n\t\tsetSeachParams({ version, preset: id, [SHARE_KEY]: undefined })\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(e instanceof Error ? e : message(e))\n\t\t}\n\t}\n\n\tconst selectVersion = (version: VersionId) => {\n\t\tsetSeachParams({ [SHARE_KEY]: undefined })\n\t\tchangeVersion(version)\n\t}\n\n\tconst [shareUrl, setShareUrl] = useState<string | undefined>(undefined)\n\tconst [shareShown, setShareShown] = useState(false)\n\tconst [shareCopyActive, shareCopySuccess] = useActiveTimeout({ cooldown: 3000 })\n\tconst share = () => {\n\t\tif (shareShown) {\n\t\t\tsetShareShown(false)\n\t\t\treturn\n\t\t}\n\t\tif (currentPreset) {\n\t\t\tsetShareUrl(`${location.protocol}//${location.host}/${gen.url}/?version=${version}&preset=${currentPreset}`)\n\t\t\tsetShareShown(true)\n\t\t\tcopySharedId()\n\t\t} else if (model && blockStates) {\n\t\t\tconst output = getOutput(model, blockStates)\n\t\t\tif (deepEqual(output, model.schema.default())) {\n\t\t\t\tsetShareUrl(`${location.protocol}//${location.host}/${gen.url}/?version=${version}`)\n\t\t\t\tsetShareShown(true)\n\t\t\t} else {\n\t\t\t\tshareSnippet(gen.id, version, output, previewShown)\n\t\t\t\t\t.then(url => {\n\t\t\t\t\t\tsetShareUrl(url)\n\t\t\t\t\t\tsetShareShown(true)\n\t\t\t\t\t})\n\t\t\t\t\t.catch(e => {\n\t\t\t\t\t\tif (e instanceof Error) {\n\t\t\t\t\t\t\tsetError(e)\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t}\n\t\t}\n\t}\n\tconst copySharedId = () => {\n\t\tnavigator.clipboard.writeText(shareUrl ?? '')\n\t\tshareCopySuccess()\n\t}\n\tuseEffect(() => {\n\t\tif (!shareCopyActive) {\n\t\t\tsetShareUrl(undefined)\n\t\t\tsetShareShown(false)\n\t\t}\n\t}, [shareCopyActive])\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 = 2\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{backup !== undefined && <Btn icon=\"history\" label={locale('restore_backup')} onClick={loadBackup} />}\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={() => selectVersion(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-share shown tooltipped tip-nw'} aria-label={locale('share')} onClick={share}>\n\t\t\t\t{Octicon.link}\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\t<div class={`popup-share${shareShown ? ' shown' : ''}`}>\n\t\t\t<TextInput value={shareUrl} readonly />\n\t\t\t<Btn icon={shareCopyActive ? 'check' : 'clippy'} onClick={copySharedId} tooltip={locale(shareCopyActive ? 'copied' : 'copy_share')} tooltipLoc=\"nw\" active={shareCopyActive} showTooltip={shareCopyActive} />\n\t\t</div>\n\t</>\n}\n","import config from '../../config.json'\nimport { Giscus, 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\t<ToolCard title=\"Minecraft Versions\" link=\"/versions/\" />\n\t\t\t<Giscus />\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 { 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 } 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<Error | 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(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{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 { getCurrentUrl } from 'preact-router'\nimport { useEffect, useState } from 'preact/hooks'\nimport { Ad, ErrorPanel, Octicon, VersionDetail, VersionList } from '../components'\nimport { useLocale, useTitle } from '../contexts'\nimport type { VersionMeta } from '../services'\nimport { fetchVersions } from '../services'\nimport { getSearchParams } from '../Utils'\n\ninterface Props {\n\tpath?: string,\n}\nexport function Versions({}: Props) {\n\tconst { locale } = useLocale()\n\tconst [error, setError] = useState<Error | null>(null)\n\tuseTitle(locale('title.versions'))\n\n\tconst [versions, setVersions] = useState<VersionMeta[]>([])\n\tuseEffect(() => {\n\t\tfetchVersions()\n\t\t\t.then(versions => setVersions(versions))\n\t\t\t.catch(e => { console.error(e); setError(e) })\n\t}, [])\n\n\tconst selectedId = getSearchParams(getCurrentUrl()).get('id')\n\tconst selected = versions.find(v => v.id === selectedId)\n\n\tuseTitle(selected ? selected.name : 'Versions Explorer', selected ? [] : undefined)\n\n\tconst nextVersion = selected && getOffsetVersion(versions, selected, -1)\n\tconst previousVersion = selected && getOffsetVersion(versions, selected, 1)\n\n\treturn <main>\n\t\t<Ad type=\"text\" id=\"versions\" />\n\t\t{error && <ErrorPanel error={error} onDismiss={() => setError(null)} />}\n\t\t<div class=\"versions\">\n\t\t\t{selectedId ? <>\n\t\t\t\t<div class=\"version-navigation\">\n\t\t\t\t\t<a class=\"btn btn-link\" href=\"/versions/\">\n\t\t\t\t\t\t{Octicon.three_bars}\n\t\t\t\t\t\t{locale('versions.all')}\n\t\t\t\t\t</a>\n\t\t\t\t\t<a class=\"btn btn-link\" {...previousVersion ? {href: `/versions/?id=${previousVersion.id}`} : {disabled: true}}>\n\t\t\t\t\t\t{Octicon.arrow_left}\n\t\t\t\t\t\t{locale('versions.previous')}\n\t\t\t\t\t</a>\n\t\t\t\t\t<a class=\"btn btn-link\" {...nextVersion ? {href: `/versions/?id=${nextVersion.id}`} : {disabled: true}}>\n\t\t\t\t\t\t{locale('versions.next')}\n\t\t\t\t\t\t{Octicon.arrow_right}\n\t\t\t\t\t</a>\n\t\t\t\t</div>\n\t\t\t\t{selected ? <VersionDetail version={selected} />\n\t\t\t\t\t: <div class=\"version-detail\">\n\t\t\t\t\t\t<h2>{selectedId}</h2>\n\t\t\t\t\t\t<div class=\"version-info\">\n\t\t\t\t\t\t\t<p>This version does not exist. Only versions since 1.14 are tracked, or it may be too recent.</p>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>}\n\t\t\t</> : <VersionList versions={versions} link={id => `/versions/?id=${id}`} />}\n\t\t</div>\n\t</main>\n}\n\nfunction getOffsetVersion(versions: VersionMeta[], current: VersionMeta, offset: number) {\n\tconst currentIndex = versions.findIndex(v => v.id === current.id)\n\tconst offsetIndex = currentIndex + offset\n\tif (offsetIndex < 0 || offsetIndex >= versions.length) {\n\t\treturn undefined\n\t}\n\treturn versions[offsetIndex]\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, Versions } 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<Versions path=\"/versions\" />\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","setPrefersColorScheme","colorScheme","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","isObject","keys","forEach","abs","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","hashString","a2","b2","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","query","prefers","setPrefers","matchMedia","matches","mediaQuery","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","stackVisible","setStackVisible","setStack","stack2","line","mapped","mappedStack","useMemo","url2","name","href","checked","component","evt","fn","onKeyDown","onEnter","displayName","TextInput","BaseInput","v","NumberInput","RangeInput","values","onSelect","searchPlaceholder","noResults","setSearch","results","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","localStorage","removeItem","caches","mcmetaUrl","dynamic","getItem","cache","open","debug","promises","request","push","warn","deleteMatching","startsWith","setItem","data","getData","mcmeta","register","properties","default","versionId","registry","versions","cacheResponse","ok","fetchResponse","responseData","put","Response","JSON","stringify","VersionIds","Versions","Models","versionGetter","1.15","java15","1.16","java16","1.17","java17","1.18","java18","1.18.2","java182","1.19","java19","CachedDecorator","CachedFeature","CachedCollections","collections","getCollections","blockStates","collectionTarget","blockStateTarget","validateCache","fetchRegistries","fetchBlockStateMap","fetchData","schemas","getSchemas","minVersionId","maxVersionId","findIndex","minVersion","maxVersion","ShareCache","snippet","fetchApi","parse","decompressFromBase64","res","method","headers","Content-Type","errors","scriptRel","seen","__vitePreload","baseModule","deps","relList","document","createElement","supports","dep","isCss","endsWith","cssSelector","querySelector","rel","as","crossOrigin","head","appendChild","rej","then","Store","Store2","getLanguage","getTheme","getVersion","getIndent","getFormat","getHighlighting","getSoundsVersion","getProjects","projects","DRAFT_PROJECT","getBackup","setIndent","indent","setFormat","format","setHighlighting","highlighting","setSoundsVersion","setProjects","setBackup","backups","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","actualTheme","changeTheme","prefersLight","useMediaQuery","prefersDark","documentElement","setAttribute","theme2","Title","title","changeTitle","context","useLocale","setTitle","title2","titleVersions","Version","changeVersion","targetVersion","version2","store","has","ready","LAYERS","temperature","humidity","continentalness","erosion","weirdness","offset","factor","jaggedness","cacheState","biomeSourceCache","state","options","newState","octaves","FixedBiome","Identifier","biome","shift","scale","numBiomes","biomes","_y","z","node","preset","checkVersion","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","result","noise","config2","clamp","NormalNoise","LegacyRandom","n","n2","sample","minDist","Infinity","minBiome","dist","altitude","create","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","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","registryCache","initRegistries","NoiseGeneratorSettings","fromJson","NoiseChunkGenerator","deepslate18.FixedBiome","deepslate18.NoiseChunkGenerator","getCached","LevelSlice","minY","generate","generator2","data2","state2","getBlockState","getName","OldNoiseChunkGenerator","reset","row","iterateNoiseColumn","reverse","getColor","XoroshiroRandom","forkPositional","NoiseSettings","min_y","terrain_shaper","originalFn","DensityFunction","mapAll","NoiseRouter","Visitor","createDensityFunction","density","compute","clampedMap","Registries","NoiseParameters","rootRegistries","Registry","root","fetchAllPresets","fetchRegistry","DENSITY_FUNCTION","clear","assign","getOrThrow","NOISE","minX","done","chunks","cached","Chunk","ChunkPos","Z","forcedBiome","chunk","buildSurface","chunkIndex","BiomeSourcePreview","shown","configuredSeed","randomSeed","setScale","focused","setFocused","layers","setLayers","Set","refineTimeout","legacy_random_source","getOctaves","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","DensityFunctionPreview","autoScroll","setAutoScroll","scrollInterval","densityFunction","worldY","setInterval","NoisePreview","NoiseSettingsPreview","setBiome","setBiomeScale","setBiomeDepth","noiseSettings","block","minBlockX","maxBlockX","BlockPos","getNoiseBlock","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","textarea","editor","getSerializedOutput","model2","blockStates2","getOutput","output","setValue","getValue","wrapLists","braceEditor","brace","edit","setOptions","fontSize","showFoldWidgets","highlightSelectedWord","$blockScrolling","on","getSession","setMode","indent2","format2","setOption","selectAll","configure","clipboard","writeText","click","data-cy","changeIndent","changeFormat","changeHighlighting","spellcheck","autocorrect","onBlur","style","mapper","getter","setter","silent","selectRegistries","hiddenFields","flattenedFields","inlineFields","nbtFields","fixedLists","collapsedFields","collapsableFields","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","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","expanded","newCtx","pools","loot","child","context2","cPrefix","cSuffix","cBody","isFlattened","isInlined","HelpPopup","string","StringSuffix","toggleState","setToggleState","toggleAll","setToggleAll","ctrlKey","integer","parsed","parseFloat","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","term","useTheme","themeSuffix","themeUrl","location","host","GiscusReact","repoId","categoryId","mapping","reactionsEnabled","emitMetadata","inputPosition","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","step","desc","roots","groups","leaves","hidden","setHidden","entries2","TreeViewEntry","TreeView","activeTags","toggleTag","ArticleLink","ChangelogTag","dangerouslySetInnerHTML","__html","marked","changes","defaultOrder","setTags","filteredChangelogs","q2","toLowerCase","sort","setSort","sortedChangelogs","ChangelogEntry","tab","setTab","changelogs","setChangelogs","changelogs2","catch","console","VersionMetaData","releaseDate","release_target","data_version","protocol_version","data_pack_version","resource_pack_version","ChangelogList","Giscus","Date","release_time","toLocaleDateString","day","month","year","compact","snapshots","setSnapshots","filteredVersions","Checkbox","VersionEntry","ToolCard","setError","Ad","ErrorPanel","useProject","errorBoundary","errorRetry","allowedVersions","currentPreset","sharedSnippetId","loadSnippet","snippetGen","show_preview","previewShown","backup","setModel","setBlockStates","versionData","Reference","ChoiceNode","schemaName","validate","err","m","loadPreset","getSnippet","dirty","setDirty","fileRename","setFileRename","fileSaved","doSave","useActiveTimeout","fileError","doFileError","doFileRename","onKeyUp","undo","redo","presets","setPresets","shareUrl","setShareUrl","shareShown","setShareShown","shareCopyActive","shareCopySuccess","copySharedId","sourceShown","setSourceShown","innerWidth","setCopy","setDownload","setImport","setPreviewShown","hasPreview","actionsShown","SearchList","selectVersion","Tree","protocol","jsonData","lz","compressToBase64","raw","btoa","PreviewPanel","SourcePanel","readonly","showTooltip","getFilePath","setSounds","soundKeys","configs","setConfigs","addConfig","deleteConfig","setDelayedPlay","hasDelay","SoundConfig","setVersions","versions2","selectedId","selected","nextVersion","getOffsetVersion","previousVersion","VersionDetail","VersionList","offsetIndex","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.5e882d57.js b/assets/index.5e882d57.js deleted file mode 100644 index 3f2571f4..00000000 --- a/assets/index.5e882d57.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,s=(t,n,o)=>n in t?e(t,n,{enumerable:!0,configurable:!0,writable:!0,value:o}):t[n]=o,i=(e,t)=>{for(var n in t||(t={}))r.call(t,n)&&s(e,n,t[n]);if(o)for(var n of o(t))a.call(t,n)&&s(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 p,b as m,s as f,c as v,d as g,e as w,f as _,j as y,h as b,i as x,k,m as C,n as M,o as A,q as I,A as z,F as $,p as j,t as E,u as S,C as O,v as L,I as P,w as D,x as V,z as N,B as T,_ as B,X as H,D as F,E as R,G as J,H as W,J as U,K as G,L as Y,M as q,N as K,O as Z,P as X,Q,R as ee,Z as te,S as ne,T as oe,U as re,V as ae,W as se,Y as ie,$ as le,a0 as ce,a1 as de,a2 as ue,a3 as he}from"./vendor.273f4765.js";var pe;function me({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 fe({icon:e,label:t,active:n,class:o,tooltip:r,tooltipLoc:a,onClick:s}){return d("div",{class:`btn${n?" active":""}${o?` ${o}`:""}${r?` tooltipped tip-${null!=a?a:"sw"}`:""}${n?" tip-shown":""}`,onClick:s,"aria-label":r},e&&Je[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.setPrefersColorScheme=function(e){r(7,e)},e.generatorEvent=function(e,t){o(n,e,t)}}(pe||(pe={}));var ve=JSON.parse('{"languages":[{"code":"de","name":"Deutsch"},{"code":"en","name":"English"},{"code":"es","name":"Español"},{"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","ref":"1.18.2"},{"id":"1.19","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":"text_component","url":"text-component","schema":"text_component"},{"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","maxVersion":"1.18.2"},{"id":"worldgen/structure","url":"worldgen/structure","category":"worldgen","schema":"structure","minVersion":"1.19"},{"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":"worldgen/world_preset","url":"worldgen/world-preset","category":"worldgen","schema":"world_preset","minVersion":"1.19"},{"id":"worldgen/flat_level_generator_preset","url":"worldgen/flat-world-preset","category":"worldgen","schema":"flat_level_generator_preset","minVersion":"1.19"},{"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 ge(e){return"object"==typeof e&&null!==e}const we=e=>("0"+e.toString(16)).substr(-2);function _e(e=12){var t=new Uint8Array(e/2);return window.crypto.getRandomValues(t),Array.from(t,we).join("")}function ye(){return BigInt(Math.floor(Math.random()*Number.MAX_SAFE_INTEGER))}function be(e){const t=Math.floor(4294967296*Math.random())-2147483648,n=e.get(new h.Path(["dimensions"]));e.set(new h.Path(["seed"]),t,!0),ge(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(["placement","salt"]),Math.abs(t),!0),e.set(new h.Path(["generator","seed"]),t,!0),e.set(new h.Path(["generator","biome_source","seed"]),t)}function xe(e){let t=0;for(let n=0;n<e.length;n++)t=Math.imul(31,t)+e.charCodeAt(n)|0;return t}function ke(e){return`/${e}/`.replaceAll("//","/")}function Ce(e){const t=e.indexOf("?");return t>=0&&(e=e.slice(0,t)),ke(e)}function Me(e){const t=Ce(e).replace(/^\//,"").replace(/\/$/,"");return ve.generators.find((e=>e.url===t))}function Ae(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 Ie(e,t){const n=p(),o=Ae(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).replaceAll("%2F","/")}`));m(`${t?ke(t):Ce(n)}${0===r.length?"":`?${r.join("&")}`}`,!0)}function ze(e){const t=Math.abs(xe(e));return[t%256,(t>>8)%256,(t>>16)%256]}function $e(e){return e*e}function je(e,t,n){return Math.max(e,Math.min(t,n))}function Ee(e,t,n){return n<0?e:n>1?t:Se(n,e,t)}function Se(e,t,n){return t+e*(n-t)}function Oe(e){return e instanceof Error?e.message:`${e}`}const Le=u();function Pe(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(!Pe(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(!Pe(e[n],t[n]))return!1}return!0}return e!=e&&t!=t}class De{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 Ve({icon:e,label:t,large:n,larger:o,doSelect:r,value:a,placeholder:s,dataList:i,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 p=i&&_e();return d("div",{class:`btn btn-input ${n?"large-input":""} ${o?"larger-input":""}`,onClick:e=>e.stopPropagation()},e&&Je[e],t&&d("span",null,t),d("input",{ref:h,type:"text",value:a,onChange:u,placeholder:s,list:p}),i&&d("datalist",{id:p},i.map((e=>d("option",{value:e})))))}function Ne({cooldown:e,invert:t,initial:n}={}){const[o,r]=v(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 Te({size:e,draw:t,onDrag:n,onHover:o,onLeave:r},a){const s=f(null),i=f(),l=f(),d=f([0,0]),u=f(!1);c((()=>{const e=e=>{i.current=[e.offsetX,e.offsetY]},t=e=>{if(void 0===i.current){const t=e.offsetX/s.current.clientWidth,n=e.offsetY/s.current.clientHeight;return void(null==o||o(t,n))}if(!n)return;const t=e.offsetX-i.current[0],r=e.offsetY-i.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]/s.current.clientWidth,t=d.current[1]/s.current.clientHeight;d.current=[0,0],await(null==n?void 0:n(e,t)),u.current=!1})))),i.current=[e.offsetX,e.offsetY]},a=()=>{i.current=void 0},c=()=>{null==r||r()};return s.current.addEventListener("mousedown",e),s.current.addEventListener("mousemove",t),s.current.addEventListener("mouseleave",c),document.body.addEventListener("mouseup",a),()=>{var n,o,r;null==(n=s.current)||n.removeEventListener("mousedown",e),null==(o=s.current)||o.removeEventListener("mousemove",t),null==(r=s.current)||r.removeEventListener("mouseleave",c),document.body.removeEventListener("mouseup",a)}}),[...null!=a?a:[],s.current]);const h=f(),p=f(0);return h.current=async()=>{const n=s.current.getContext("2d"),o=e();s.current.width=o[0],s.current.height=o[1];const r=n.getImageData(0,0,o[0],o[1]),a=p.current+=1;try{await t(r)}catch(i){throw i}a===p.current&&n.putImageData(r,0,0)},{canvas:s,redraw:h.current}}function Be(){const[e,t]=v(!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 He(e){const[t,n]=v(matchMedia(e).matches),o=e=>{n(e.matches)};return c((()=>{const t=matchMedia(e);return t.addEventListener("change",o),()=>{t.removeEventListener("change",o)}}),[e]),t}function Fe(e,t,n){const o={invalidated(){e&&t(e)}};c((()=>(null==e||e.addListener(o),()=>{null==e||e.removeListener(o)})),[e,...null!=n?n:[]])}function Re(e){const{icon:t,label:n,relative:o,tooltip:r,tooltipLoc:a,children:s}=e,[c,u]=Be();return d("div",i({class:"btn-menu"+(!1===o?" no-relative":"")},e),d(fe,l(i({},{icon:t,label:n,tooltip:r,tooltipLoc:a}),{onClick:u})),c&&d("div",{class:"btn-group"},s))}const Je={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 We({error:e,onDismiss:t}){const[n,o]=v(!1),[r,a]=v(void 0);c((()=>{if(e instanceof Error){const t=e.stack.split("\n").map((e=>e.replace(/^(\s+)at (?:async )?(https?:.*)/,"$1at ($2)")));a(t.join("\n")),g.exports.mapStackTrace(t.join("\n"),(e=>{const t=e.map((e=>e.replace(/..\/..\/src\//,"src/"))).join("\n");a(t)}))}}),[e]);const s=w((()=>{let t="https://github.com/misode/misode.github.io/issues/new";return e instanceof Error?(t+=`?title=${encodeURIComponent(`${e.name}: ${e.message}`)}`,r&&(t+=`&body=${encodeURIComponent(`\`\`\`\n${e.name}: ${e.message}\n${r}\n\`\`\`\n`)}`)):t+=`?title=${encodeURIComponent(e.toString())}`,t}),[e,r]);return d("div",{class:"error"},t&&d("div",{class:"error-dismiss",onClick:t},Je.x),d("h3",null,e instanceof Error?e.message:e,r&&d("span",{onClick:()=>o(!n)},Je.info)),r&&n&&d("pre",null,r),d("p",null,"If you think this is a bug, you can report it ",d("a",{href:s,target:"_blank"},"on GitHub")))}function Ue({label:e,value:t,onChange:n}){const o=_e();return d("label",{class:"checkbox"},d("input",{id:o,type:"checkbox",checked:t,onClick:()=>n(!t)}),e)}function Ge(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",i(i({},e),{type:t,onChange:o,onKeyDown:r}))};return o.displayName=e,o}const Ye=Ge("TextInput","text",(e=>e)),qe=Ge("NumberInput","number",(e=>Number(e))),Ke=Ge("RangeInput","range",(e=>Number(e)));function Ze({values:e,onSelect:t,searchPlaceholder:n,noResults:o}){const[r,a]=v(""),s=w((()=>{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(_,null,d(Ve,{icon:"search",large:!0,value:r,onChange:a,doSelect:1,placeholder:null!=n?n:"Search"}),d("div",{class:"result-list"},s.map((e=>d(fe,{key:e,label:e,onClick:()=>null==t?void 0:t(e)}))),0===s.length&&d(fe,{label:null!=o?o:"No results"})))}const Xe="https://raw.githubusercontent.com/misode/technical-changes/main";let Qe=null;async function et(){if(!Qe){const e=await(await fetch(`${Xe}/index.json`)).json();Qe=(await Promise.all(e.map(((e,t)=>async function(e,t){const n=await(await fetch(`${Xe}/${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(`${Xe}/${e.id}/${t.id}.md`)).text()).map((r=>i({version:t,group:e,order:1e3*n+o},r)))}(e,tt(n),t,o))))).flat()}(tt(e),t))))).flat().map((e=>l(i({},e),{tags:[e.group.id,...e.tags]})))}return Qe}function tt(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}:ge(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 nt="https://raw.githubusercontent.com/misode/mcmeta";function ot(e,t){return`${nt}/${e.dynamic?t:`${e.ref}-${t}`}`}async function rt(e){e.dynamic&&("22w17a"!==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: ${Oe(t)}`)}}((e=>e.startsWith(`${nt}/summary/`)||e.startsWith(`${nt}/data/`)||e.startsWith(`${nt}/assets/`)||e.startsWith(`${nt}/registries/`))),localStorage.setItem("cached_latest_version","22w17a")),e.ref="22w17a")}async function at(e,t){console.debug(`[fetchRegistries] ${e.id}`);try{const n=await lt(`${ot(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:",Oe(n))}}async function st(e,t){console.debug(`[fetchBlockStateMap] ${e.id}`);try{const n=await lt(`${ot(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:",Oe(n))}}async function it(e,t,n){console.debug(`[fetchPreset] ${e} ${t} ${n}`);const o=ve.versions.find((t=>t.id===e));try{const e=["blockstates","models"].includes(t)?"assets":"data",r=`${ot(o,e)}/${e}/minecraft/${t}/${n}.json`;return(await fetch(r)).json()}catch(r){throw new Error(`Error occurred while fetching ${t} preset ${n}: ${Oe(r)}`)}}async function lt(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: ${Oe(n)}`),console.debug(`[getData] fetching data ${e}`);const o=await fetch(e);return t(await o.json())}}const ct=["1.15","1.16","1.17","1.18","1.18.2","1.19"],dt={},ut={},ht={1.15:y,1.16:b,1.17:x,1.18:k,"1.18.2":C,1.19:M};let pt,mt,ft;async function vt(e){return dt[e]||(dt[e]=(async()=>{try{const t=ht[e].getCollections(),n={};await async function(e,t,n){const o=ve.versions.find((t=>t.id===e));o?(await rt(o),await Promise.all([at(o,t),st(o,n)])):console.error(`[fetchData] Unknown version ${o} in ${JSON.stringify(ve.versions)}`)}(e,t,n);const o=ht[e].getSchemas(t);return dt[e]={collections:t,schemas:o,blockStates:n},dt[e]}catch(t){throw new Error(`Cannot get version "${e}": ${Oe(t)}`)}})()),dt[e]}function gt(e,t,n){const o=ve.versions.findIndex((t=>t.id===e)),r=t?ve.versions.findIndex((e=>e.id===t)):0,a=n?ve.versions.findIndex((e=>e.id===n)):ve.versions.length-1;return r<=o&&o<=a}const wt=new Map;async function _t(e){var t;try{const n=await yt(`/snippets/${e}`);return l(i({},n),{data:JSON.parse(null!=(t=A.decompressFromBase64(n.data))?t:"{}")})}catch(n){throw n instanceof Error&&(n.message=`Error loading shared content: ${n.message}`),n}}async function yt(e,t){var n,o,r;const a=await fetch("https://z15g7can.directus.app/items"+e,t?{method:"post",headers:{"Content-Type":"application/json"},body:t}:void 0),s=await a.json();if(s.data)return s.data;throw new Error(null!=(r=null==(o=null==(n=s.errors)?void 0:n[0])?void 0:o.message)?r:"Unknown error")}let bt;const xt={},kt=function(e,t){if(!t)return e();if(void 0===bt){const e=document.createElement("link").relList;bt=e&&e.supports&&e.supports("modulepreload")?"modulepreload":"preload"}return Promise.all(t.map((e=>{if(e in xt)return;xt[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":bt,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 Ct,Mt,At=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","changelog.no_results":"No changes","collapse":"Collapse","collapse_all":"Hold %0% to collapse all","configure_layers":"Configure layers","copy":"Copy","copy_share":"Copy share link","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","highlighting":"Highlighting","loading":"Loading...","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","restore_backup":"Restore last backup","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","title.versions":"Versions 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","text_component":"Text Component","undo":"Undo","versions.search":"Search versions","versions.no_results":"No results","versions.all":"All versions","versions.previous":"Previous","versions.next":"Next","versions.released":"Released","versions.release_target":"Release target","versions.data_version":"Data version","versions.protocol_version":"Protocol version","versions.pack_format":"Pack format","versions.data_pack_format":"Data pack format","versions.resource_pack_format":"Resource pack format","versions.technical_changes":"Technical changes","versions.discussion":"Discussion","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":"Structure","worldgen/structure_set":"Structure Set","worldgen/configured_surface_builder":"Surface Builder","worldgen/template_pool":"Template Pool","worldgen/world_preset":"World Preset","worldgen/flat_level_generator_preset":"Flat World Preset","zoom_in":"Zoom in","zoom_out":"Zoom out"}'),It=Object.freeze({__proto__:null,[Symbol.toStringTag]:"Module",default:At});(Mt=Ct||(Ct={})).ID_LANGUAGE="language",Mt.ID_THEME="theme",Mt.ID_VERSION="schema_version",Mt.ID_INDENT="indentation",Mt.ID_FORMAT="output_format",Mt.ID_HIGHLIGHTING="output_highlighting",Mt.ID_SOUNDS_VERSION="minecraft_sounds_version",Mt.ID_PROJECTS="misode_projects",Mt.ID_BACKUPS="misode_generator_backups",Mt.getLanguage=function(){var e;return null!=(e=localStorage.getItem(Mt.ID_LANGUAGE))?e:"en"},Mt.getTheme=function(){var e;return null!=(e=localStorage.getItem(Mt.ID_THEME))?e:"dark"},Mt.getVersion=function(){const e=localStorage.getItem(Mt.ID_VERSION);return e&&ct.includes(e)?e:"1.18.2"},Mt.getIndent=function(){var e;return null!=(e=localStorage.getItem(Mt.ID_INDENT))?e:"2_spaces"},Mt.getFormat=function(){var e;return null!=(e=localStorage.getItem(Mt.ID_FORMAT))?e:"json"},Mt.getHighlighting=function(){return"false"!==localStorage.getItem(Mt.ID_HIGHLIGHTING)},Mt.getSoundsVersion=function(){var e;return null!=(e=localStorage.getItem(Mt.ID_SOUNDS_VERSION))?e:"latest"},Mt.getProjects=function(){const e=localStorage.getItem(Mt.ID_PROJECTS);return e?JSON.parse(e):[Lt]},Mt.getBackup=function(e){var t;return JSON.parse(null!=(t=localStorage.getItem(Mt.ID_BACKUPS))?t:"{}")[e]},Mt.setLanguage=function(e){e&&localStorage.setItem(Mt.ID_LANGUAGE,e)},Mt.setTheme=function(e){e&&localStorage.setItem(Mt.ID_THEME,e)},Mt.setVersion=function(e){e&&localStorage.setItem(Mt.ID_VERSION,e)},Mt.setIndent=function(e){e&&localStorage.setItem(Mt.ID_INDENT,e)},Mt.setFormat=function(e){e&&localStorage.setItem(Mt.ID_FORMAT,e)},Mt.setHighlighting=function(e){void 0!==e&&localStorage.setItem(Mt.ID_HIGHLIGHTING,e.toString())},Mt.setSoundsVersion=function(e){e&&localStorage.setItem(Mt.ID_SOUNDS_VERSION,e)},Mt.setProjects=function(e){e&&localStorage.setItem(Mt.ID_PROJECTS,JSON.stringify(e))},Mt.setBackup=function(e,t){var n;const o=JSON.parse(null!=(n=localStorage.getItem(Mt.ID_BACKUPS))?n:"{}");void 0===t?delete o[e]:o[e]=t,localStorage.setItem(Mt.ID_BACKUPS,JSON.stringify(o))};const zt=I({lang:"none",locale:e=>e,changeLanguage:()=>{}}),$t={fallback:At};function jt(e,t,...n){var o,r,a,s,i;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!=(i=null!=(s=null!=(a=null==(o=$t[e])?void 0:o[t])?a:null==(r=$t.en)?void 0:r[t])?s:$t.fallback[t])?i:t,n)}async function Et(e){if($t[e])return;const t=ve.languages.find((t=>t.code===e));if(!t)return;const n=await function(e){switch(e){case"../../locales/de.json":return kt((()=>import("./de.a269acce.js")),void 0);case"../../locales/en.json":return kt((()=>Promise.resolve().then((function(){return It}))),void 0);case"../../locales/es.json":return kt((()=>import("./es.833a9774.js")),void 0);case"../../locales/fr.json":return kt((()=>import("./fr.f5531eea.js")),void 0);case"../../locales/it.json":return kt((()=>import("./it.fd9a8268.js")),void 0);case"../../locales/ja.json":return kt((()=>import("./ja.167de97b.js")),void 0);case"../../locales/pl.json":return kt((()=>import("./pl.3a9fb38c.js")),void 0);case"../../locales/pt.json":return kt((()=>import("./pt.1a04bd2d.js")),void 0);case"../../locales/ru.json":return kt((()=>import("./ru.578070fe.js")),void 0);case"../../locales/sk.json":return kt((()=>import("./sk.96bbf351.js")),void 0);case"../../locales/zh-cn.json":return kt((()=>import("./zh-cn.e3c47b68.js")),void 0);case"../../locales/zh-tw.json":return kt((()=>import("./zh-tw.42e9d37d.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 kt((()=>import("./cs.967a01eb.js")),void 0);case"../../../node_modules/@mcschema/locales/src/de.json":return kt((()=>import("./de.8e2383d8.js")),void 0);case"../../../node_modules/@mcschema/locales/src/en.json":return kt((()=>import("./en.20a098e7.js")),void 0);case"../../../node_modules/@mcschema/locales/src/es.json":return kt((()=>import("./es.6b3597bc.js")),void 0);case"../../../node_modules/@mcschema/locales/src/fr.json":return kt((()=>import("./fr.e316b1e2.js")),void 0);case"../../../node_modules/@mcschema/locales/src/it.json":return kt((()=>import("./it.7ff123cd.js")),void 0);case"../../../node_modules/@mcschema/locales/src/ja.json":return kt((()=>import("./ja.3170354d.js")),void 0);case"../../../node_modules/@mcschema/locales/src/pl.json":return kt((()=>import("./pl.ae1f6791.js")),void 0);case"../../../node_modules/@mcschema/locales/src/pt.json":return kt((()=>import("./pt.31e14993.js")),void 0);case"../../../node_modules/@mcschema/locales/src/ru.json":return kt((()=>import("./ru.1298edc9.js")),void 0);case"../../../node_modules/@mcschema/locales/src/sk.json":return kt((()=>import("./sk.d4265232.js")),void 0);case"../../../node_modules/@mcschema/locales/src/zh-cn.json":return kt((()=>import("./zh-cn.4129665a.js")),void 0);case"../../../node_modules/@mcschema/locales/src/zh-tw.json":return kt((()=>import("./zh-tw.bdc36a24.js")),void 0);default:return Promise.reject(new Error("Unknown variable dynamic import: "+e))}}(`../../../node_modules/@mcschema/locales/src/${e}.json`);$t[e]=i(i({},n.default),o.default)}function St(){return $(zt)}function Ot({children:e}){const[t,n]=v("none"),o=z(((e,...n)=>jt(t,e,...n)),[t]),r=z((async e=>{await Et(e),pe.setLanguage(e),Ct.setLanguage(e),n(e)}),[]);c((()=>{(async()=>{const e=Ct.getLanguage();await Promise.all([Et("en"),..."en"!==e?[Et(e)]:[]]),n(e)})()}),[]);const a={lang:t,locale:o,changeLanguage:r};return d(zt.Provider,{value:a},e)}const Lt={name:"Drafts",namespace:"draft",files:[]},Pt=I({project:Lt,changeProject:()=>{},updateProject:()=>{},updateFile:()=>!1,openFile:()=>{},closeFile:()=>{}});function Dt(){return $(Pt)}function Vt({children:e}){const[t,n]=v(Ct.getProjects()),[o,r]=v(Lt.name),a=w((()=>{var e;return null!=(e=t.find((e=>e.name===o)))?e:Lt}),[t,o]),[s,c]=v(void 0),u=w((()=>{if(s)return a.files.find((e=>e.type===s[0]&&e.id===s[1]))}),[a,s]),h=z((e=>{Ct.setProjects(e),n(e)}),[]),p=z((e=>{h(t.map((t=>t.name===o?i(i({},t),e):t)))}),[t,o]),f=z(((e,t,n)=>{var o;if(n.id){const r=n.id.includes(":")?n.id:`${a.namespace}:${n.id}`,s=a.files.some((t=>t.type===e&&t.id===r));if(t){if((null==u?void 0:u.id)===t&&t!==r&&s)return!1;p({files:a.files.map((o=>o.type===e&&o.id===t?l(i(i({},o),n),{id:r}):o))}),(null==u?void 0:u.id)===t&&c([e,r])}else{if(s)return!1;p({files:[...a.files,{type:e,id:r,data:null!=(o=n.data)?o:{}}]}),c([e,r])}}else p({files:a.files.filter((n=>n.type!==e||n.id!==t))});return!0}),[p,a,u]),g=z(((e,t)=>{const n=ve.generators.find((t=>t.id===e||t.path===e));if(!n)throw new Error(`Cannot find generator of type ${e}`);c([n.id,t]),m(ke(n.url))}),[]),_=z((()=>{c(void 0)}),[]),y={project:a,file:u,changeProject:r,updateProject:p,updateFile:f,openFile:g,closeFile:_};return d(Pt.Provider,{value:y},e)}function Nt(e){var t;const[n,o]=e.id.includes(":")?e.id.split(":"):["minecraft",e.id],r=ve.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 Tt=I({theme:"dark",actualTheme:"dark",changeTheme:()=>{}});function Bt(){return $(Tt)}function Ht({children:e}){const[t,n]=v(Ct.getTheme()),o=He("(prefers-color-scheme: light)"),r=He("(prefers-color-scheme: dark)");c((()=>{document.documentElement.setAttribute("data-theme",t)}),[t]);const a=z((e=>{pe.setTheme(e),Ct.setTheme(e),n(e)}),[]);c((()=>{pe.setPrefersColorScheme(o?"light":r?"dark":"none")}),[o,r]);const s={theme:t,actualTheme:"light"===t||"dark"!==t&&o?"light":"dark",changeTheme:a};return d(Tt.Provider,{value:s},e)}const Ft=I({title:"",changeTitle:()=>{}});function Rt(e,t){const n=$(Ft);return c((()=>{e&&n.changeTitle(e,t)}),[e,t]),n}function Jt({children:e}){const{locale:t}=St(),[n,o]=v(t("title.home")),r={title:n,changeTitle:z(((e,t)=>{null!=t||(t=ve.versions.map((e=>e.id)));const n=t.slice(t.length-3);document.title=`${e} Minecraft ${n.join(", ")}`,o(e)}),[])};return d(Ft.Provider,{value:r},e)}const Wt=I({version:"1.18.2",changeVersion:()=>{}});function Ut(){return $(Wt)}function Gt({children:e}){const[t,n]=v(Ct.getVersion()),o=Ae(p()).get("version");c((()=>{ct.includes(o)&&t!==o&&n(o)}),[t,o]);const r=z(((e,t=!0)=>{Ae(p()).has("version")&&Ie({version:e}),t&&(pe.setVersion(e),Ct.setVersion(e)),n(e)}),[]),a={version:t,changeVersion:r};return d(Wt.Provider,{value:a},e)}let Yt=!1;const qt={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 Kt,Zt;async function Xt(e,t){const n=[e,t.octaves,`${t.seed}`,t.version];return Pe(n,Kt)||(Kt=Le(n),Zt=await async function(e,t){var n,o,r,a,s;switch(null==(n=null==e?void 0:e.type)?void 0:n.replace(/^minecraft:/,"")){case"fixed":return new V(O.parse(e.biome));case"checkerboard":const n=(null!=(o=e.scale)?o:2)+2,i=null!=(a=null==(r=e.biomes)?void 0:r.length)?a:0;return{getBiome(t,o,r){var a;const s=(((t>>n)+(r>>n))%i+i)%i;return O.parse(null==(a=e.biomes)?void 0:a[s].node)}};case"multi_noise":switch(null==(s=e.preset)?void 0:s.replace(/^minecraft:/,"")){case"nether":e=gt(t.version,"1.18")?nn:tn;break;case"overworld":e=gt(t.version,"1.18")?await async function(){return(await it("1.18","dimension","overworld")).generator.biome_source}():e}if(e=h.DataModel.unwrapLists(e),gt(t.version,"1.18")){await async function(){Yt||(await N(T),Yt=!0,console.debug(`Loaded deepslate-rs from "${T}"`))}();const n=new De,o=e=>"number"==typeof e?[e,e]:e,[r,a,s,i,l,c,d,u,h,p,m,f,v,g]=[[],[],[],[],[],[],[],[],[],[],[],[],[],[]];for(const t of e.biomes){const{temperature:e,humidity:w,continentalness:_,erosion:y,weirdness:b,depth:x,offset:k}=t.parameters;r.push(o(e)[0]),a.push(o(e)[1]),s.push(o(w)[0]),i.push(o(w)[1]),l.push(o(_)[0]),c.push(o(_)[1]),d.push(o(y)[0]),u.push(o(y)[1]),h.push(o(b)[0]),p.push(o(b)[1]),m.push(o(x)[0]),f.push(o(x)[1]),v.push(k),g.push(n.getOrPut(t.biome,Math.floor(2147483647*Math.random())))}const w=j(new Float64Array(r),new Float64Array(a),new Float64Array(s),new Float64Array(i),new Float64Array(l),new Float64Array(c),new Float64Array(d),new Float64Array(u),new Float64Array(h),new Float64Array(p),new Float64Array(m),new Float64Array(f),new Float64Array(v),new Int32Array(g)),_=E(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=S(w,_,e,e+1,1,t,t+1,1,o,o+1,1);return O.parse(null!=(r=n.getA(a[0]))?r:"unknown")},getBiomes:(e,t,o,r,a,s,i,l,c)=>[...S(w,_,e,t,o,r,a,s,i,l,c)].map((e=>{var t;return O.parse(null!=(t=n.getA(e))?t:"unknown")})),getClimate(e,t,n){const o=L(_,e,e+1,1,t,t+1,1,n,n+1,1),[r,a,s,i,l]=o.slice(0,5);return{temperature:r,humidity:a,continentalness:s,erosion:i,weirdness:l}},getClimates(e,t,n,o,r,a,s,i,l){const c=L(_,e,t,n,o,r,a,s,i,l),d=[];for(let u=0;u<c.length;u+=7){const[e,t,n,o,r]=c.slice(u,u+5);d.push({temperature:e,humidity:t,continentalness:n,erosion:o,weirdness:r})}return d}}}{const n=["altitude","temperature","humidity","weirdness"].map(((n,o)=>{var r;const a=e[`${n}_noise`];return a.firstOctave=je(null!=(r=a.firstOctave)?r:-7,-100,-1),new P(new D(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 s=1/0,i="";for(const{biome:n,parameters:l}of e.biomes){const e=$e(l.altitude-a[0])+$e(l.temperature-a[1])+$e(l.humidity-a[2])+$e(l.weirdness-a[3])+$e(l.offset);e<s&&(s=e,i=n)}return O.parse(i)}}:new V(O.create("unknown"))}}throw new Error("Unknown biome source")}(e,t)),{biomeSource:Zt}}function Qt(e,t){var n;if(!e)return[128,128,128];const o=null!=(n=t[e])?n:en[e];return void 0===o?ze(e):o}const en={"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]},tn={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}}]},nn={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 on=[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],rn=[[255,77,54],[59,118,255],[91,207,25],[217,32,245],[255,209,41],[52,204,209]];function an(e,t,n){const o=new D(n.seed),r={placements:[],features:[],random:o,biomeInfoNoise:new B(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(sn(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 je(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(je(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 s=0;s<n.size[0]/16;s+=1)for(let t=0;t<n.size[2]/16;t+=1)gt(n.version,void 0,"1.17")?un([16*s,0,16*t],h.DataModel.unwrapLists(e),r):fn([16*s,0,16*t],h.DataModel.unwrapLists(e.placement),r);const a=t.data;t.data.fill(255);for(const[s,i]of r.placements){if(s[0]<0||s[1]<0||s[2]<0||s[0]>=n.size[0]||s[1]>=n.size[1]||s[2]>=n.size[2])continue;const e=s[2]*(4*t.width)+4*s[0],o=i<rn.length?rn[i]:ze(r.features[i]);a[e]=je(50,205,o[0]),a[e+1]=je(50,205,o[1]),a[e+2]=je(50,205,o[2]),a[e+3]=255}for(let s=0;s<n.size[0];s+=1)for(let e=0;e<n.size[2];e+=1){if((Math.floor(s/16)+Math.floor(e/16))%2==0)continue;const n=e*(4*t.width)+4*s;for(let e=0;e<3;e+=1)a[n+e]=.85*a[n+e]}}function sn(e){return e.startsWith("minecraft:")?e.slice(10):e}function ln(e,t){return[[e[0],t,e[2]]]}function cn(e,t){if(!ge(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 dn(e,t){const n=t.features.indexOf(e);return-1!=n?n:(t.features.push(e),t.features.length-1)}function un(e,t,n){var o;if("string"==typeof t)return void n.placements.push([e,dn(t,n)]);const r=sn(null!=(o=null==t?void 0:t.type)?o:"no_op"),a=pn[r];a?a(t.config,e,n):n.placements.push([e,dn(JSON.stringify(t),n)])}function hn(e,t,n){var o;const r=sn(null!=(o=null==t?void 0:t.type)?o:"nope"),a=mn[r];return a?a(null==t?void 0:t.config,e,n):[e]}const pn={decorated:(e,t,n)=>{hn(t,null==e?void 0:e.decorator,n).forEach((t=>un(t,null==e?void 0:e.feature,n)))},random_boolean_selector:(e,t,n)=>{un(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 un(t,a.feature,n);un(t,null==e?void 0:e.default,n)},simple_random_selector:(e,t,n)=>{var o,r,a;un(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)}},mn={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),s=Math.max(0,Math.ceil((a+(null!=(o=e.noise_offset)?o:0))*e.noise_to_count_ratio));return new Array(s).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,on[je(0,63,r)]),4*Math.floor(o%4)+1+n.nextInt(3)+t[2]]})),decorated:(e,t,n)=>hn(t,null==e?void 0:e.outer,n).flatMap((t=>hn(t,null==e?void 0:e.inner,n))),depth_average:(e,t,n)=>{var o,r,a,s;return ln(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!=(s=null==e?void 0:e.baseline)?s: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)=>ln(t,Math.max(n.seaLevel,on[je(0,63,t[0])])),heightmap_spread_double:(e,t,n)=>{const o=Math.max(n.seaLevel,on[je(0,63,t[0])]);return ln(t,n.nextInt(2*o))},heightmap_world_surface:(e,t,n)=>ln(t,Math.max(n.seaLevel,on[je(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 ln(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 ln(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,s;return ln(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!=(s=null==e?void 0:e.bottom_offset)?s:0)))},spread_32_above:(e,t,n)=>ln(t,n.nextInt(t[1]+32)),top_solid_heightmap:(e,t)=>ln(t,on[je(0,63,t[0])]),magma:(e,t,n)=>ln(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=on[je(0,63,t[0])],a=r+(null!=(n=null==e?void 0:e.min_inclusive)?n:-1/0),s=r+(null!=(o=null==e?void 0:e.max_inclusive)?o:1/0);return t[1]<a||t[1]>s?[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 fn(e,t,n){var o;let r=[e];for(const a of t){vn[sn(null!=(o=null==a?void 0:a.type)?o:"nope")]&&(r=r.flatMap((e=>vn[sn(a.type)](a,e,n))))}for(const a of r)n.placements.push([a,0])}const vn={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)=>ln(t,function(e,t){var n,o,r,a;if(!ge(e))throw new Error("Invalid height provider");if("string"!=typeof e.type)return cn(e);switch(sn(e.type)){case"constant":return cn(e.value);case"uniform":{const n=cn(e.min_inclusive),o=cn(e.max_inclusive);return n+t.nextInt(o-n+1)}case"biased_to_bottom":{const r=cn(e.min_inclusive),a=cn(e.max_inclusive),s=t.nextInt(a-r-(null!=(n=e.inner)?n:1)+1);return r+t.nextInt(s+(null!=(o=e.inner)?o:1))}case"very_biased_to_bottom":{const n=cn(e.min_inclusive),o=cn(e.max_inclusive),a=null!=(r=e.inner)?r:1,s=n+a+t.nextInt(o-n-a+1),i=n+t.nextInt(s-n);return n+t.nextInt(i-n+a)}case"trapezoid":{const n=cn(e.min_inclusive),o=cn(e.max_inclusive),r=null!=(a=e.plateau)?a:0;if(r>=o-n)return n+t.nextInt(o-n+1);const s=(o-n-r)/2,i=o-n-s;return n+t.nextInt(i+1)+t.nextInt(s+1)}default:throw new Error(`Invalid height provider ${e.type}`)}}(e,n)),heightmap:({},e,t)=>ln(e,Math.max(t.seaLevel,on[je(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),s=r.biomeInfoNoise.sample(o[0]/a,0,o[2]/a),i=Math.max(0,Math.ceil((s+(null!=n?n:0))*e));return new Array(i).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 gn{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 D(e);this.minLimitPerlinNoise=new B(t,-15,[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]),this.maxLimitPerlinNoise=new B(t,-15,[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]),this.mainPerlinNoise=new B(t,-7,[1,1,1,1,1,1,1,1]),this.depthNoise=new B(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]=(s=n,i=o,l=r[h],c=r[h+1],d=a[h],u=a[h+1],Se(i,Se(s,l,c),Se(s,d,u)))}var s,i,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,s=r/this.settings.sampling.y_factor,i=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,s);const c=((1-2*l/this.chunkCountY+i)*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=Ee(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=Ee(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,s){let i=0,l=0,c=0,d=1;for(let u=0;u<16;u+=1){const h=B.wrap(e*o*d),p=B.wrap(t*r*d),m=B.wrap(n*o*d),f=r*d,v=this.minLimitPerlinNoise.getOctaveNoise(u);v&&(i+=v.sample(h,p,m,f,t*f)/d);const g=this.maxLimitPerlinNoise.getOctaveNoise(u);if(g&&(l+=g.sample(h,p,m,f,t*f)/d),u<8){const o=this.mainPerlinNoise.getOctaveNoise(u);o&&(c+=o.sample(B.wrap(e*a*d),B.wrap(t*s*d),B.wrap(n*a*d),s*d,t*s*d)/d)}d/=2}return Ee(i/512,l/512,(c/10+1)/2)}}const wn={"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 _n,yn,bn=[];const xn=new Map;async function kn(e,t,n){var o,r,a;if(gt(n.version,"1.18")){gt(n.version,"1.18.2")&&await An(n.version);const{settings:r,generator:a}=function(e,t){const n=K.fromJson(h.DataModel.unwrapLists(e)),o=[e,`${t.seed}`,t.biome];if(!Pe(o,_n))if(_n=Le(o),bn=[],gt(t.version,"1.18.2")){const e=new V(O.create("unknown"));yn=new Z(t.seed,e,n)}else{const e=new te("unknown");yn=new X(t.seed,e,n)}return{settings:n,generator:yn}}(e,n),s=new zn(-n.offset,n.width,r.noise.minY,r.noise.height);s.generate(a,n.biome);const i=t.data;for(let e=0;e<n.width;e+=1)for(let a=0;a<r.noise.height;a+=1){const l=4*e+4*(r.noise.height-a-1)*t.width,c=s.getBlockState([e-n.offset,a+r.noise.minY,0]),d=null!=(o=wn[c.getName().toString()])?o:[0,0,0];i[l]=d[0],i[l+1]=d[1],i[l+2]=d[2],i[l+3]=255}return}const s=new gn(n.seed);s.reset(e.noise,null!=(r=n.biomeDepth)?r:0,null!=(a=n.biomeScale)?a:0,n.offset,n.width);const i=t.data,l=4*t.width;for(let c=0;c<n.width;c+=1){const t=s.iterateNoiseColumn(c-n.offset).reverse();for(let n=0;n<e.noise.height;n+=1){const e=n*l+4*c,o=In(t,n);i[e]=o,i[e+1]=o,i[e+2]=o,i[e+3]=255}}}async function Cn(e,t,n){const{fn:o,settings:r}=await async function(e,t){await An(t.version);const n=W.create(t.seed).forkPositional(),o=U.fromJson({min_y:-64,height:384,size_horizontal:1,size_vertical:2,sampling:{xz_scale:1,y_scale:1,xz_factor:80,y_factor:160},bottom_slide:{target:.1171875,size:3,offset:0},top_slide:{target:-.078125,size:2,offset:8},terrain_shaper:{offset:.044,factor:4,jaggedness:0}}),r=R.fromJson(e);return{fn:r.mapAll(new G.Visitor(n,o)),settings:o}}(e,n),a=Array(n.width*r.height);let s=1/0,i=-1/0;for(let c=0;c<n.width;c+=1)for(let e=0;e<r.height;e+=1){const t=c+(r.height-e-1)*n.width,l=o.compute(R.context(c-n.offset,e,0));s=Math.min(s,l),i=Math.max(i,l),a[t]=l}const l=t.data;for(let c=0;c<n.width*r.height;c+=1){const e=Math.floor(J(a[c],s,i,0,256));l[4*c]=e,l[4*c+1]=e,l[4*c+2]=e,l[4*c+3]=255}}const Mn=[["worldgen/noise",ee],["worldgen/density_function",R]];async function An(e){var t;const n=null!=(t=xn.get(e))?t:new Y(new O("misode","temp"));xn.has(e)||(await Promise.all(Mn.map((([t,o])=>async function(e,t,n,o){const r=await async function(e,t){console.debug(`[fetchAllPresets] ${e} ${t}`);const n=ve.versions.find((t=>t.id===e));await rt(n);try{const e=await lt(`${ot(n,"registries")}/${t}/data.min.json`);return new Map(await Promise.all(e.map((async e=>[e,await lt(`${ot(n,"data")}/data/minecraft/${t}/${e}.json`)]))))}catch(o){throw new Error(`Error occurred while fetching all ${t} presets: ${Oe(o)}`)}}(e,n),a=new Y(O.create(n));for(const[s,i]of r.entries())a.register(O.parse(s),o.fromJson(i));t.register(a.key,a)}(e,n,t,o)))),xn.set(e,n)),q.DENSITY_FUNCTION.clear().assign(n.getOrThrow(O.create("worldgen/density_function"))),q.NOISE.clear().assign(n.getOrThrow(O.create("worldgen/noise")))}function In(e,t){return e[t]>0?0:e[t+1]>0?150:255}class zn{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,s=bn.find((e=>e.pos[0]===a));return s?(this.done[r]=!0,s):new Q(n,o,H.create(a,0))}))}generate(e,t){this.chunks.forEach(((n,o)=>{this.done[o]||(e.fill(n,!0),e.buildSurface(n,t),this.done[o]=!0,bn.push(n))}))}getBlockState(e){const t=(e[0]>>4)-(this.minX>>4);return this.chunks[t].getBlockState(e)}}const $n=["biomes","temperature","humidity","continentalness","erosion","weirdness"],jn=({model:e,data:t,shown:n,version:o})=>{var r,a;const{locale:s}=St(),[l]=v(ye()),[u,p]=v(2),[m,g]=v(void 0),[y,b]=v(new Set(["biomes"])),x=f([0,0]),k=f(1),C=f(void 0),M=BigInt(null!=(r=e.get(new h.Path(["generator","seed"])))?r:l),A=w((()=>{if(n)return function(e){"string"!=typeof e&&(e=e.legacy_random_source?"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"])))}),[n]),I=n?function(e,t){return JSON.stringify([e,t])}(t,A):"",z=null==(a=t.type)?void 0:a.replace(/^minecraft:/,""),{canvas:$,redraw:j}=Te({size:()=>[200/k.current,200/k.current],async draw(e){const n={octaves:A,biomeColors:{},layers:y,offset:x.current,scale:u,seed:M,res:k.current,version:o};await async function(e,t,n){var o,r,a;const{biomeSource:s}=await Xt(e,n),i=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],p=[c*n.scale,(200+c)*n.scale,n.res*n.scale],m=n.layers.has("biomes")?null==(o=s.getBiomes)?void 0:o.call(s,...h,64,65,1,...p):void 0,f=[...n.layers].filter((e=>"biomes"!==e)),v=0===f.length||null==(r=s.getClimates)?void 0:r.call(s,...h,64,65,1,...p);for(let g=0;g<200;g+=n.res)for(let e=0;e<200;e+=n.res){const t=e*d+g*u,o=g/n.res*200/n.res+e/n.res,r=(g+l)*n.scale,h=(e+c)*n.scale;let p=[50,50,50];if(n.layers.has("biomes"))p=Qt((null!=(a=null==m?void 0:m[o])?a:s.getBiome(r,64,h)).toString(),n.biomeColors);else if(v&&f[0]){const e=v[o][f[0]],[t,n]=qt[f[0]],r=(e-t)/(n-t)*256;p=[r,r,r]}i[t]=p[0],i[t+1]=p[1],i[t+2]=p[2],i[t+3]=255}}(t,e,n),4===k.current&&(clearTimeout(C.current),C.current=setTimeout((()=>{k.current=1,j()}),150))},async onDrag(e,t){x.current[0]=x.current[0]+200*e,x.current[1]=x.current[1]+200*t,clearTimeout(C.current),k.current="multi_noise"===z?4:1,j()},async onHover(e,n){const r={octaves:A,biomeColors:{},layers:y,offset:x.current,scale:u,seed:l,res:1,version:o},a=await async function(e,t,n,o){var r;const{biomeSource:a}=await Xt(e,o),[s,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 i({biome:a.getBiome(s,64,l).toString()},null==(r=a.getClimate)?void 0:r.call(a,s,64,l))}(t,Math.floor(200*e),Math.floor(200*n),r);g(a)},onLeave(){g(void 0)}},[I,u,l,y]);c((()=>{n&&(k.current="multi_noise"===z?4:1,j())}),[I,u,l,y,n]);const E=e=>{x.current[0]=x.current[0]*u/e,x.current[1]=x.current[1]*u/e,p(e)};return d(_,null,d("div",{class:"controls preview-controls"},m&&d(fe,{label:m.biome,class:"no-pointer"}),"multi_noise"===z&&d(Re,{icon:"stack",tooltip:s("configure_layers")},$n.map((e=>{const t=y.has(e);return d(fe,{label:s(`layer.${e}`),active:t,tooltip:s(t?"enabled":"disabled"),onClick:t=>{b(new Set([e])),t.stopPropagation()}})}))),("multi_noise"===z||"checkerboard"===z)&&d(_,null,d(fe,{icon:"dash",tooltip:s("zoom_out"),onClick:()=>E(1.5*u)}),d(fe,{icon:"plus",tooltip:s("zoom_in"),onClick:()=>E(u/1.5)})),"multi_noise"===z&&d(fe,{icon:"sync",tooltip:s("generate_new_seed"),onClick:()=>be(e)})),void 0!==(null==m?void 0:m.temperature)&&d("div",{class:"controls secondary-controls"},d(fe,{class:"no-pointer",label:Object.entries(m).filter((([e])=>"biome"!==e)).map((([e,t])=>`${e[0].toUpperCase()}: ${t.toFixed(2)}`)).join(" ")})),d("canvas",{ref:$,width:"200",height:"200"}))};const En=({data:e,version:t,shown:n})=>{const{locale:o}=St(),[r,a]=v(4),[s,i]=v(ye()),{canvas:l,redraw:u}=Te({size:()=>[16*r,16*r],async draw(n){an(e,n,{seed:s,version:t,size:[16*r,128,16*r]})}}),h=JSON.stringify(e);return c((()=>{n&&u()}),[h,r,s,n]),d(_,null,d("div",{class:"controls preview-controls"},d(fe,{icon:"dash",tooltip:o("zoom_out"),onClick:()=>a(Math.min(16,r+1))}),d(fe,{icon:"plus",tooltip:o("zoom_in"),onClick:()=>a(Math.max(1,r-1))}),d(fe,{icon:"sync",tooltip:o("generate_new_seed"),onClick:()=>i(ye())})),d("canvas",{ref:l,width:"64",height:"64"}))},Sn=({data:e,shown:t,version:n})=>{var o,r;const{locale:a}=St(),[s,i]=v(ye()),[l,u]=v(!1),[h,p]=v(void 0),m=f(0),g=f(void 0),w=JSON.stringify([e]),y=null!=(r=null==(o=null==e?void 0:e.noise)?void 0:o.height)?r:256,{canvas:b,redraw:x}=Te({size:()=>[y,y],async draw(t){const o={offset:m.current,width:t.width,seed:s,version:n};await Cn(e,t,o)},async onDrag(e){m.current+=e*y,x()},async onHover(t,n){var o,r;const a=Math.floor(t*y-m.current),s=y-Math.max(1,Math.ceil(n*y))+(null!=(r=null==(o=null==e?void 0:e.noise)?void 0:o.min_y)?r:0);p(`X=${a} Y=${s}`)},onLeave(){p(void 0)}},[w,s]);return c((()=>{g.current&&clearInterval(g.current),t&&(x(),l&&(g.current=setInterval((()=>{m.current-=8,x()}),100)))}),[w,s,t,l]),d(_,null,d("div",{class:"controls preview-controls"},h&&d(fe,{label:h,class:"no-pointer"}),d(Re,{icon:"gear",tooltip:a("terrain_settings")},d(fe,{icon:l?"square_fill":"square",label:a("preview.auto_scroll"),onClick:()=>u(!l)})),d(fe,{icon:"sync",tooltip:a("generate_new_seed"),onClick:()=>i(ye())})),d("canvas",{ref:b,width:y,height:y}))},On=({data:e,shown:t,version:n})=>{const{locale:o}=St(),[r,a]=v(ye()),[s,i]=v(2),l=f([0,0]),u=JSON.stringify([e]),{canvas:p,redraw:m}=Te({size:()=>[256,256],async draw(t){const o={offset:l.current,scale:s,seed:r,version:n};!function(e,t,n){const o=new D(n.seed),r=ee.fromJson(h.DataModel.unwrapLists(e)),a=new P(o,r),s=-n.offset[0]-100,i=-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+s)*n.scale,r=(e+i)*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,m()}},[u,s,r]);c((()=>{t&&m()}),[u,s,r,t]);const g=e=>{l.current[0]=l.current[0]*s/e,l.current[1]=l.current[1]*s/e,i(e)};return d(_,null,d("div",{class:"controls preview-controls"},d(fe,{icon:"dash",tooltip:o("zoom_out"),onClick:()=>g(1.5*s)}),d(fe,{icon:"plus",tooltip:o("zoom_in"),onClick:()=>g(s/1.5)}),d(fe,{icon:"sync",tooltip:o("generate_new_seed"),onClick:()=>a(ye())})),d("canvas",{ref:p,width:"256",height:"256"}))},Ln=({data:e,shown:t,version:n})=>{var o,r;const{locale:a}=St(),[s,i]=v(ye()),[l,u]=v("minecraft:plains"),[h,p]=v(.2),[m,g]=v(.1),[y,b]=v(!1),[x,k]=v(void 0),C=f(0),M=f(void 0),A=JSON.stringify([e,h,m]),I=null!=(r=null==(o=null==e?void 0:e.noise)?void 0:o.height)?r:256,{canvas:z,redraw:$}=Te({size:()=>[I,I],async draw(t){const o={biome:l,biomeDepth:m,biomeScale:h,offset:C.current,width:t.width,seed:s,version:n};await kn(e,t,o)},async onDrag(e){C.current+=e*I,$()},async onHover(t,n){var o,r;const a=Math.floor(t*I-C.current),s=I-Math.max(1,Math.ceil(n*I))+(null!=(r=null==(o=null==e?void 0:e.noise)?void 0:o.min_y)?r:0),i=function(e,t){const n=bn.find((t=>H.minBlockX(t.pos)<=e&&H.maxBlockX(t.pos)>=e));if(n)return n.getBlockState(F.create(e,t,0))}(a,s);k(i?`Y=${s} (${i.getName().path})`:`Y=${s}`)},onLeave(){k(void 0)}},[A,s]);c((()=>{M.current&&clearInterval(M.current),t&&(async()=>{try{await $(),y&&(M.current=setInterval((()=>{C.current-=8,$()}),100))}catch(e){throw e}})()}),[A,s,t,l,h,m,y]);const j=w((()=>{var e;return null!=(e=null==ft?void 0:ft.get("worldgen/biome"))?e:[]}),[n]);return d(_,null,d("div",{class:"controls preview-controls"},x&&d(fe,{label:x,class:"no-pointer"}),d(Re,{icon:"gear",tooltip:a("terrain_settings")},gt(n,void 0,"1.17")?d(_,null,d(Ve,{label:a("preview.scale"),value:`${h}`,onChange:e=>p(Number(e))}),d(Ve,{label:a("preview.depth"),value:`${m}`,onChange:e=>g(Number(e))})):d(Ve,{label:a("preview.biome"),value:l,onChange:u,dataList:j,larger:!0}),d(fe,{icon:y?"square_fill":"square",label:a("preview.auto_scroll"),onClick:()=>b(!y)})),d(fe,{icon:"sync",tooltip:a("generate_new_seed"),onClick:()=>i(ye())})),d("canvas",{ref:z,width:I,height:I}))},Pn=["dimension","worldgen/density_function","worldgen/noise","worldgen/noise_settings","worldgen/configured_feature","worldgen/placed_feature"];function Dn({model:e,version:t,id:n,shown:o}){var r;const[,a]=v(0);if(Fe(e,(()=>{a((e=>e+1))})),!e)return d(_,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(jn,i({},{model:e,version:t,shown:o,data:n}))}if("worldgen/density_function"===n){const n=e.get(new h.Path([]));if(n)return d(Sn,i({},{model:e,version:t,shown:o,data:n}))}if("worldgen/noise"===n){const n=e.get(new h.Path([]));if(n)return d(On,i({},{model:e,version:t,shown:o,data:n}))}if("worldgen/noise_settings"===n){const n=e.get(new h.Path([]));if(n)return d(Ln,i({},{model:e,version:t,shown:o,data:n}))}if("worldgen/placed_feature"===n||"worldgen/configured_feature"===n&>(t,"1.16","1.17")){const n=e.get(new h.Path([]));if(n)return d(En,i({},{model:e,version:t,shown:o,data:n}))}return d(_,null)}function Vn(e,t){return e.schema.hook(Nn,new h.ModelPath(e),e.data,{blockStates:t})}const Nn={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,s;if(void 0===o)return;const i="block_state_map"===(null==(a=t.validation)?void 0:a.validator)?null==(s=r.blockStates)?void 0:s[h.relativePath(n,t.validation.params.id).get()]:null,l={};Object.keys(o).forEach((t=>{var a;i&&!Object.keys(null!=(a=i.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 s=a[e].hook(this,t.push(e),n[e],o);null!=s&&(r[e]=s)}));for(const s of Object.getOwnPropertySymbols(n))r[s]=n[s];return r}},Tn={"2_spaces":2,"4_spaces":4,tabs:"\t",minified:void 0},Bn={json:{parse:oe.parse,stringify:(e,t)=>oe.stringify(e,null,t)+"\n"},yaml:{parse:re.load,stringify:(e,t)=>re.dump(e,{flowLevel:void 0===t?0:-1,indent:"string"==typeof t?4:t})}};function Hn({name:e,model:t,blockStates:n,doCopy:o,doDownload:r,doImport:a,copySuccess:s,onError:i}){const{locale:l}=St(),[u,p]=v(Ct.getIndent()),[m,g]=v(Ct.getFormat()),[w,y]=v(Ct.getHighlighting()),b=f(null),x=f(),k=f(),C=f(),M=f(),A=z(((e,t)=>{const n=Vn(e,t);return Bn[m].stringify(n,Tn[u])}),[u,m]);c((()=>{x.current=()=>{if(t&&n)try{const e=A(t,n);M.current.setValue(e)}catch(e){e instanceof Error?(e.message=`Error getting JSON output: ${e.message}`,i(e)):i(`Error getting JSON output: ${Oe(e)}`),console.error(e),M.current.setValue("")}},k.current=()=>{const e=M.current.getValue();if(0!==e.length)try{const n=Bn[m].parse(e);null==t||t.reset(h.DataModel.wrapLists(n),!1)}catch(n){n instanceof Error?(n.message=`Error importing: ${n.message}`,i(n)):i(`Error importing: ${Oe(n)}`),console.error(n)}}}),[t,n,u,m,w]),c((()=>{if(w){const e=ne.edit("editor");e.setOptions({fontSize:14,showFoldWidgets:!1,highlightSelectedWord:!1}),e.$blockScrolling=1/0,e.on("blur",(e=>k.current(e))),e.getSession().setMode("ace/mode/json"),M.current={getValue:()=>e.getSession().getValue(),setValue(t){e.getSession().setValue(t)},configure(t,n){e.setOption("useSoftTabs","tabs"!==t),e.setOption("tabSize","tabs"===t?4:Tn[t]),e.getSession().setMode(`ace/mode/${n}`)},select(){e.selectAll()}}}else M.current={getValue:()=>C.current.value,setValue(e){C.current.value=e},configure(){},select(){}}}),[w]),Fe(t,(()=>{x.current()})),c((()=>{t&&x.current()}),[t]),c((()=>{M.current.configure(u,m),x.current()}),[u,m,w]),c((()=>{o&&t&&n&&navigator.clipboard.writeText(A(t,n)).then((()=>{s()}))}),[o]),c((()=>{if(r&&t&&n&&b.current){const o=encodeURIComponent(A(t,n));b.current.setAttribute("href",`data:text/json;charset=utf-8,${o}`),b.current.setAttribute("download",`${e}.${m}`),b.current.click()}}),[r]),c((()=>{a&&M.current&&(M.current.setValue(""),M.current.select())}),[a]);return d(_,null,d("div",{class:"controls source-controls"},d(Re,{icon:"gear",tooltip:l("output_settings"),"data-cy":"source-controls"},Object.entries(Tn).map((([e])=>d(fe,{label:l(`indentation.${e}`),active:u===e,onClick:()=>{return t=e,Ct.setIndent(t),void p(t);var t}}))),d("hr",null),Object.keys(Bn).map((e=>d(fe,{label:l(`format.${e}`),active:m===e,onClick:()=>{return t=e,Ct.setFormat(t),void g(t);var t}}))),d("hr",null),d(fe,{icon:w?"square_fill":"square",label:l("highlighting"),onClick:()=>{return e=!w,Ct.setHighlighting(e),void y(e);var e}}))),w?d("pre",{id:"editor",class:"source"}):d("textarea",{ref:C,class:"source",spellcheck:!1,autocorrect:"off",onBlur:k.current}),d("a",{ref:b,style:"display: none;"}))}class Fn 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 Rn=["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","root_placer.type","entity.type_specific.cat.variant","entity.type_specific.frog.variant"],Jn=["number_provider.type","score_provider.type","nbt_provider.type","int_provider.type","float_provider.type","height_provider.type"],Wn=["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"],Un=["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","density_function.type","root_placer.type","entity.type_specific.type"],Gn=["function.set_nbt.tag","advancement.display.icon.nbt","text_component_object.nbt","entity.nbt","block.nbt","item.nbt"],Yn=["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"],qn=["noise_settings.surface_rule","noise_settings.noise.terrain_shaper"],Kn=["density_function.argument","density_function.argument1","density_function.argument2","density_function.input","density_function.when_in_range","density_function.when_out_of_range"],Zn=new h.DataModel(h.MapNode(h.StringNode(),h.StringNode()),{historyMax:0});function Xn({model:e,lang:t,version:n,blockStates:o}){var r;const a=new h.ModelPath(e),[s,i,l]=e.schema.hook(Qn,a,Le(e.data),t,n,o,{});return(null==(r=null==i?void 0:i.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"},s,i),d("div",{class:"node-body"},l)):l}const Qn={base:()=>[null,null,null],boolean:(e,t,n,o,r,a,s)=>[null,d(no,i({},l(i({},e),{path:t,value:n,lang:o,version:r,states:a,ctx:s}))),null],choice({choices:e,config:t,switchNode:n},o,r,a,s,i,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,[p,m,f]=c.node.hook(this,u,r,a,s,i,l);if(1===e.length)return[p,m,f];const v=(null==t?void 0:t.choiceContext)?new h.Path([],[t.choiceContext]):(null==t?void 0:t.context)?new h.Path([],[t.context]):o,g=d("select",{value:c.type,onChange:n=>(n=>{var a;const s=null!=(a=e.find((e=>e.type===n)))?a:c,i=s.node.default(),l=s.change?s.change(h.DataModel.unwrapLists(r)):"feature"===t.choiceContext&&"minecraft:decorated"===(null==i?void 0:i.type)?i.config.feature:i;o.model.set(o,h.DataModel.wrapLists(l))})(n.target.value)},e.map((e=>d("option",{value:e.type},lo(a,v.contextPush(e.type))))));return[p,d(_,null,g,m),f]},list({children:e,config:t},n,o,r,a,s,c){const{expand:u,collapse:p,isToggled:m}=to(),[f,g]=v(50),w=n.getContext().join(".");if(Yn.includes(w)){return[d(_,null,[...Array(t.maxLength)].map(((e,t)=>d(co,{lang:r,path:n.modelPush(t)}))),d("div",{class:"fixed-list"})),d(_,null,[...Array(t.maxLength)].map(((t,i)=>{var l;return e.hook(this,n.modelPush(i),null==(l=null==o?void 0:o[i])?void 0:l.node,r,a,s,c)[1]}))),null]}return[null,d("button",{class:"add tooltipped tip-se","aria-label":jt(r,"add_top"),onClick:()=>{Array.isArray(o)||(o=[]);const t=h.DataModel.wrapLists(e.default());n.model.set(n,[{node:t,id:_e()},...o])}},Je.plus_circle),d(_,null,o&&Array.isArray(o)&&o.map((({node:t,id:h},v)=>{if(v===f)return d("div",{class:"node node-header"},d("label",null,jt(r,"entries_hidden",""+(o.length-f))),d("button",{onClick:()=>g(Math.min(f+50,o.length))},jt(r,"entries_hidden.more","50")),d("button",{onClick:()=>g(o.length)},jt(r,"entries_hidden.all")));if(v>f)return null;const w=n.push(v).contextPush("entry"),_="object"===e.type(w),y=m(h);if(_&&(!1===y||void 0===y&&o.length>20))return d("div",{class:"node node-header","data-category":e.category(w)},d(co,{lang:r,path:w,nested:!0}),d("button",{class:"toggle tooltipped tip-se","aria-label":`${jt(r,"expand")}\n${jt(r,"expand_all","Ctrl")}`,onClick:u(h)},Je.chevron_right),d("label",null,lo(r,w,`${v}`)),d(eo,{key:h,path:w,value:t,schema:e}));return d(ao,l(i({key:h,path:w,schema:e,value:t},{lang:r,version:a,states:s,actions:[{icon:"duplicate",label:"duplicate",onSelect:()=>{const e=[...n.get()];e.splice(v,0,{id:_e(),node:Le(t)}),n.model.set(n,e)}}]}),{ctx:l(i({},c),{index:(0===v?1:0)+(v===o.length-1?2:0)})}),_&&d("button",{class:"toggle tooltipped tip-se","aria-label":`${jt(r,"collapse")}\n${jt(r,"collapse_all","Ctrl")}`,onClick:p(h)},Je.chevron_down),d("button",{class:"remove tooltipped tip-se","aria-label":jt(r,"remove"),onClick:()=>w.set(void 0)},Je.trashcan),o.length>1&&d("div",{class:"node-move"},d("button",{class:"move tooltipped tip-se","aria-label":jt(r,"move_up"),onClick:()=>{const e=[...n.get()];[e[v-1],e[v]]=[e[v],e[v-1]],n.model.set(n,e)},disabled:0===v},Je.chevron_up),d("button",{class:"move tooltipped tip-se","aria-label":jt(r,"move_down"),onClick:()=>{const e=[...n.get()];[e[v+1],e[v]]=[e[v],e[v+1]],n.model.set(n,e)},disabled:v===o.length-1},Je.chevron_down)))})),o&&o.length>0&&o.length<=f&&d("div",{class:"node node-header"},d("button",{class:"add tooltipped tip-se","aria-label":jt(r,"add_bottom"),onClick:()=>{Array.isArray(o)||(o=[]);const t=h.DataModel.wrapLists(e.default());n.model.set(n,[...o,{node:t,id:_e()}])}},Je.plus_circle)))]},map({children:e,keys:t,config:n},o,r,a,s,c,u){var p,m,f,v,g;const{expand:w,collapse:y,isToggled:b}=to(),x=new h.ModelPath(Zn,new h.Path([io(o.toString())])),k="block_state_map"===(null==(p=n.validation)?void 0:p.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!=(m=k.properties)?m:{})}):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!=(v=k.properties)?v:{}).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,s,c,u)}return[null,d(_,null,C.hook(this,x,null!=(g=x.get())?g:"",a,s,c,u)[1],d("button",{class:"add tooltipped tip-se","aria-label":jt(a,"add"),onClick:()=>{const t=x.get();o.model.set(o.push(t),h.DataModel.wrapLists(e.default()))}},Je.plus_circle)),d(_,null,"object"==typeof r&&Object.entries(r).map((([t,n])=>{var p,m,f,v;const g=o.modelPush(t),_="object"===e.type(g),x=b(t);if(_&&(!1===x||void 0===x&&r.length>20))return d("div",{class:"node node-header","data-category":e.category(g)},d(co,{lang:a,path:g,nested:!0}),d("button",{class:"toggle tooltipped tip-se","aria-label":`${jt(a,"expand")}\n${jt(a,"expand_all","Ctrl")}`,onClick:w(t)},Je.chevron_right),d("label",null,t),d(eo,{key:t,path:g,value:n,schema:e}));const C=k?h.StringNode(null,{enum:null!=(m=null==(p=k.properties)?void 0:p[t])?m:[]}):e;(null==(f=null==k?void 0:k.properties)?void 0:f[t])&&"string"==typeof n&&!(null==(v=k.properties)?void 0:v[t].includes(n))&&o.model.errors.add(g,"error.invalid_enum_option",n);return d(ao,l(i({key:t,schema:C,path:g,value:n},{lang:a,version:s,states:c,ctx:u}),{label:t}),_&&d("button",{class:"toggle tooltipped tip-se","aria-label":`${jt(a,"collapse")}\n${jt(a,"collapse_all","Ctrl")}`,onClick:y(t)},Je.chevron_down),d("button",{class:"remove tooltipped tip-se","aria-label":jt(a,"remove"),onClick:()=>g.set(void 0)},Je.trashcan))})))]},number:(e,t,n,o,r,a,s)=>[null,d(oo,i({},l(i({},e),{path:t,value:n,lang:o,version:r,states:a,ctx:s}))),null],object({node:e,config:t,getActiveFields:n,getChildModelPath:o},r,a,s,c,u,p){var m;const{expand:f,collapse:v,isToggled:g}=to();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:/,""))&&ge(null==t?void 0:t.config)}(t.context,a)){const{wrapper:e,fields:t}=function(e,t,n){const o=[],r=po(n,o),a={type:e.type,config:h.ObjectNode({decorators:h.ListNode(pt),feature:mt},{context:"feature.decorated"})},s=h.ObjectNode(a,{context:"feature"}),i=new h.Path(["config","feature"]),l=new h.Path(["config","decorators"]),c=t.getModel(),d=new Fn(s,(e=>{if(e.startsWith(i))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 po(c.data,e),e}return c.get(d.map(e))}),((e,t,n)=>{if(e.startsWith(i)){const o=[];po(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(i);return c.set(new h.Path,mo(e,t),n)}if("number"==typeof o){if(3===e.modelArr.length&&void 0===t){const e=d.get(i),t=[];po(c.data,t),t.splice(o,1);const r=mo(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 w=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":jt(s,"expand"),onClick:t},Je.plus_circle)}else{const e=()=>r.set(void 0);y=d("button",{class:"collapse open tooltipped tip-se","aria-label":jt(s,"remove"),onClick:e},Je.trashcan)}const b=r.getContext().join(".");if(Kn.includes(b)||qn.includes(b)){const e=g(""),t=qn.includes(b)?e:!e;if(w=d(_,null,d("button",{class:"toggle tooltipped tip-se","aria-label":jt(s,t?"collapse":"expand"),onClick:e?v(""):f("")},t?Je.chevron_down:Je.chevron_right)),!t)return[w,y,null]}const x="object"==typeof a&&null!==a&&(null==(m=e.default())?void 0:m.pools)?l(i({},p),{loot:null==a?void 0:a.type}):p,k=d(_,null,"object"==typeof a&&null!==a&&!(e.optional()&&void 0===a)&&Object.entries(n(r)).filter((([e,t])=>t.enabled(r))).map((([e,t])=>{const n=o(r,e),l=n.getContext().join(".");if(Jn.includes(l))return null;const[h,p,m]=t.hook(this,n,a[e],s,c,u,x),f="object"===t.type(n)&&Wn.includes(l),v=Un.includes(l);return f||v?(w=d(_,null,w,d(co,{lang:s,path:n}),d(uo,{lang:s,path:n}),h),y=d(_,null,y,p),f?m:null):d(ao,i({key:e,schema:t,path:n,value:a[e]},{lang:s,version:c,states:u,ctx:x}))})));return[w,y,k]},string:(e,t,n,o,r,a,s)=>[null,d(ro,i({},l(i({},e),{path:t,value:n,lang:o,version:r,states:a,ctx:s}))),null]};function eo({path:e,value:t}){var n,o,r,a,s;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!=(s=null==(r=null==t?void 0:t.name)?void 0:r.replace(/^minecraft:/,""))?s:null==(a=null==t?void 0:t.type)?void 0:a.replace(/^minecraft:/,""))}for(const i of Object.values(null!=t?t:{}))if("string"==typeof i)return d("label",null,i.replace(/^minecraft:/,""));return null}function to(){const[e,t]=v(new Map),[n,o]=v(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 no({path:e,node:t,value:n,lang:o}){const r=o=>{e.model.set(e,t.optional()&&n===o?void 0:o)};return d(_,null,d("button",{class:!1===n?"selected":"",onClick:()=>r(!1)},jt(o,"false")),d("button",{class:!0===n?"selected":"",onClick:()=>r(!0)},jt(o,"true")))}function oo({path:e,config:t,integer:n,value:o,lang:r}){var a;const s=t=>{const o=t.target.value,r=n?parseInt(o):parseFloat(o);e.model.set(e,r)};return d(_,null,d("input",{type:"text",value:null!=o?o:"",onBlur:s,onKeyDown:e=>{"Enter"===e.key&&s(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","structure_placement.salt"].includes(e.getContext().join("."))&&d("button",{onClick:()=>be(e.model),class:"tooltipped tip-se","aria-label":jt(r,"generate_new_seed")},Je.sync))}function ro({path:e,getValues:t,config:n,node:o,value:r,lang:a,version:s,states:i}){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(),p=e.getContext().join("."),m=so(n)||"resource"!==(null==n?void 0:n.validator)||"string"!=typeof n.params.pool?void 0:n.params.pool;if(Gn.includes(p))return d("textarea",{value:null!=r?r:"",onBlur:c});if(so(n)&&!n.additional||Rn.includes(p)){let t=new h.Path([]);return so(n)&&"string"==typeof n.enum?t=t.contextPush(n.enum):m?t=t.contextPush(m):so(n)&&(t=e),d("select",{value:null!=r?r:"",onChange:c},o.optional()&&d("option",{value:""},jt(a,"unset")),u.map((e=>d("option",{value:e},lo(a,t.contextPush(e.replace(/^minecraft:/,"")))))))}if(so(n)||"block_state_key"!==(null==n?void 0:n.validator)){const e=_e(),t=m?(e=>ve.generators.find((t=>t.id===e.replace(/^\$/,""))))(m):void 0;return d(_,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=${s}&preset=${r.replace(/^minecraft:/,"")}`,class:"tooltipped tip-se","aria-label":jt(a,"follow_reference")},Je.link_external))}{const t=null==i?void 0:i[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 ao=ae((function({label:e,schema:t,path:n,value:o,lang:r,version:a,states:s,ctx:c,actions:u,children:h}){var p;const m=t.type(n),f=t.category(n),v=n.getContext().join("."),[g,w]=Be(),_=l(i({},c),{depth:(null!=(p=c.depth)?p:0)+1});delete _.index;const[y,b,x]=t.hook(Qn,n,o,r,a,s,_);return d("div",{class:`node ${m}-node`,"data-category":f},d("div",{class:"node-header",onContextMenu:e=>{e.preventDefault(),w()}},d(co,{lang:r,path:n}),d(uo,{lang:r,path:n}),h,y,d("label",null,null!=e?e:lo(r,n,`${n.last()}`),g&&d("div",{class:"node-menu"},null==u?void 0:u.map((e=>{var t;return d("div",{key:e.label,class:"menu-item"},d(fe,{icon:e.icon,tooltip:jt(r,e.label),tooltipLoc:"se",onClick:()=>e.onSelect()}),d("span",null,null!=(t=e.description)?t:jt(r,e.label)))})),d("div",{class:"menu-item"},d(fe,{icon:"clippy",tooltip:jt(r,"copy_context"),tooltipLoc:"se",onClick:()=>navigator.clipboard.writeText(v)}),d("span",null,v)))),b),x&&d("div",{class:"node-body"},x))}),((e,t)=>e.schema===t.schema&&e.lang===t.lang&&e.path.equals(t.path)&&Pe(e.ctx,t.ctx)&&Pe(e.value,t.value)));function so(e){return!!(null==e?void 0:e.enum)}function io(e){var t,n=0;for(t=0;t<e.length;t++)n=(n<<5)-n+e.charCodeAt(t),n|=0;return n}function lo(e,t,...n){const o=t.getContext();for(let r=0;r<o.length;r+=1){const t=o.slice(r).join("."),a=jt(e,t,...n);if(t!==a)return a}return o[o.length-1]}function co({lang:e,path:t,nested:n}){var o;t.model instanceof Fn&&(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=jt(e,r[0].error,...null!=(o=r[0].params)?o:[]);return ho("node-error","issue_opened",a)}function uo({lang:e,path:t}){const n=t.contextPush("help").getContext().join("."),o=jt(e,n);return o===n?null:ho("node-help","info",o)}const ho=(e,t,n)=>{const[o,r]=Be();return d("div",{class:`node-icon ${e}${o?" show":""}`,onClick:r},Je[t],d("span",{class:"icon-popup"},n))};function po(e,t){var n,o;return"decorated"!==(null==(n=null==e?void 0:e.type)?void 0:n.replace(/^minecraft:/,""))?e:ge(null==e?void 0:e.config)?(t.push({id:t.length,node:e.config.decorator}),po(null!=(o=e.config.feature)?o:"",t)):e}function mo(e,t){return 0===t.length?e:{type:"minecraft:decorated",config:{decorator:t.shift().node,feature:mo(e,t)}}}function fo({version:e,model:t,blockStates:n,onError:o}){const{lang:r}=St();if(!t||!n||"none"===r)return d(_,null);const[a]=se((e=>{o(`Error rendering the tree: ${e.message}`),console.error(e)}));if(a)return d(_,null);const[,s]=v(0);return Fe(t,(()=>{s((e=>e+1))})),d("div",{class:"tree","data-cy":"tree"},d(Xn,i({},{model:t,lang:r,version:e,blockStates:n})))}function vo({term:e}){const{actualTheme:t}=Bt(),n="light"===t?"-burn":"",o=`https://${location.host}/assets/giscus${n}.css`;return d(ie,{repo:"misode/misode.github.io",repoId:"MDEwOlJlcG9zaXRvcnkxOTIyNTQyMzA=",category:"Site",categoryId:"DIC_kwDOC3WRFs4COB8r",mapping:e?"specific":"pathname",term:e,reactionsEnabled:"1",emitMetadata:"0",inputPosition:"top",theme:o,lang:"en"})}const go={system:"device_desktop",dark:"moon",light:"sun"};function wo(){const{lang:e,locale:t,changeLanguage:n}=St(),{theme:o,changeTheme:r}=Bt(),{version:a}=Ut(),{title:s}=Rt(),i=Me(p());return d("header",null,d("div",{class:"title"},d(le,{class:"home-link",href:"/","aria-label":t("home"),"data-cy":"home-link"},_o.home),d("h1",null,s),i&&d(Re,{icon:"chevron_down",tooltip:t("switch_generator"),"data-cy":"generator-switcher"},ve.generators.filter((e=>e.category===(null==i?void 0:i.category)&>(a,e.minVersion))).map((e=>d(fe,{label:t(e.id),active:e.id===i.id,onClick:()=>m(ke(e.url))}))))),d("nav",null,d("ul",null,d("li",{"data-cy":"language-switcher"},d(Re,{icon:"globe",tooltip:t("language")},ve.languages.map((({code:t,name:o})=>d(fe,{label:o,active:t===e,onClick:()=>n(t)}))))),d("li",{"data-cy":"theme-switcher"},d(Re,{icon:go[o],tooltip:t("theme")},Object.entries(go).map((([e,n])=>d(fe,{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")},Je.mark_github)))))}const _o={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 yo({sounds:e,sound:t,delay:n,pitch:o,volume:r,onEdit:a,onDelete:s,delayedPlay:i}){const{locale:l}=St(),{version:u}=Ut(),[h,p]=v(!0),[m,g]=v(!1),[w,_]=v(!1),y=f([]),b=`playsound minecraft:${t} master @s ~ ~ ~ ${r} ${o}`;c((()=>{var n,a,s;const i=e[t];_(0===(null!=(a=null==(n=null==i?void 0:i.sounds)?void 0:n.length)?a:0)),y.current.forEach((e=>e.stop())),y.current=(null!=(s=null==i?void 0:i.sounds)?s:[]).map((e=>{const t="string"==typeof e?e:e.name,n=(a=u,s=t,`${ot(ve.versions.find((e=>e.id===a)),"assets")}/assets/minecraft/sounds/${s}.ogg`);var a,s;const i=new ce.Howl({src:[n],format:["ogg"],volume:r,rate:o});i.on("end",(()=>{g(!1)}));const l=()=>{h&&y.current.every((e=>"loaded"===e.state()))&&p(!1)};return"loaded"===i.state()?setTimeout((()=>l())):i.on("load",(()=>{l()})),i})),p(!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(),g(!0)},k=()=>{y.current.forEach((e=>e.stop()))};c((()=>{i&&setTimeout((()=>x()),50*n)}),[i]),c((()=>()=>k()),[]);const[C,M]=v(!1),A=f(void 0);return d("div",{class:`sound-config${h?" loading":m?" playing":""}${w?" invalid":""}`},d(fe,{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(Ye,{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(qe,{class:"btn btn-input delay",min:0,value:n,onChange:e=>a({delay:e})}),d("label",{class:"pitch-label"},l("sounds.pitch"),": "),d(Ke,{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(Ke,{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(fe,{class:"copy"+(C?" active":""),icon:C?"check":"terminal",label:l("copy"),tooltip:l(C?"copied":"sounds.copy_command"),onClick:()=>{navigator.clipboard.writeText(b),M(!0),void 0!==A.current&&clearTimeout(A.current),A.current=setTimeout((()=>{M(!1)}),2e3)}}),d(fe,{class:"remove",icon:"trashcan",tooltip:l("sounds.remove_sound"),onClick:()=>{s(),k()}}))}function bo({title:e,desc:t,link:n,icon:o,children:r}){const a=d(_,null,d("div",{class:"tool-head"},o&&_o[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 xo({entries:e,onSelect:t,indent:n}){const o=w((()=>{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=w((()=>e.filter((e=>!e.includes("/")))),e),[a,s]=v(new Set);return d("div",{class:"tree-view",style:`--indent: ${null!=n?n:0};`},o.map((([e,o])=>d("div",null,d(ko,{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 s(new Set(a));var t}}),!a.has(e)&&d(xo,{entries:o,onSelect:n=>t(`${e}/${n}`),indent:(null!=n?n:0)+1})))),r.map((e=>d(ko,{icon:"file",key:e,label:e,onClick:()=>t(e)}))))}function ko({icon:e,label:t,onClick:n}){return d("div",{class:"entry",onClick:n},Je[e],t)}function Co({change:e,activeTags:t,toggleTag:n}){return d("div",{class:"changelog-entry"},d("div",{class:"changelog-version"},d(Mo,i({},e.version)),d(Mo,i({},e.group))),d("div",{class:"changelog-tags"},e.tags.map((e=>d(Ao,{label:e,onClick:n?()=>n(e):void 0,active:null==t?void 0:t.includes(e)})))),d("div",{class:"changelog-content",dangerouslySetInnerHTML:{__html:de(e.content)}}))}function Mo({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 Ao({label:e,active:t,onClick:n}){const o="breaking"===e?5:xe(e)%360;return d("div",{class:`changelog-tag${t?" active":""}${n?" clickable":""}`,style:`--tint: ${o}`,onClick:n},"breaking"===e&&Je.alert,e)}function Io({changes:e,defaultOrder:t}){const{locale:n}=St(),[o,r]=v(""),[a,s]=v([]),i=e=>{a.includes(e)?s(a.filter((t=>t!==e))):s([...a,e])},l=w((()=>{const t=o.split(" ").map((e=>e.trim().toLowerCase())).filter((e=>e.length>0));return 0===t.length&&0===a.length?e:null==e?void 0:e.filter((e=>{if(!a.every((t=>e.tags.includes(t))))return!1;const n=e.tags.join(" ")+" "+e.content.toLowerCase();return t.every((e=>e.startsWith("!")?1===e.length||!n.includes(e.slice(1)):n.includes(e)))}))}),[e,o,a]),[c,u]=v("desc"===t),h=w((()=>null==l?void 0:l.sort(((e,t)=>c?t.order-e.order:e.order-t.order))),[l,c]);return d(_,null,d("div",{class:"changelog-query"},d(Ye,{class:"btn btn-input changelog-search",list:"sound-list",placeholder:n("changelog.search"),value:o,onChange:r}),d(fe,{icon:c?"sort_desc":"sort_asc",label:c?"Newest first":"Oldest first",onClick:()=>u(!c)})),a.length>0&&d("div",{class:"changelog-tags"},a.map((e=>d(Ao,{label:e,onClick:()=>s(a.filter((t=>t!==e)))})))),d("div",{class:"changelog-list"},void 0===h?d("span",null,n("loading")):0===h.length?d("span",null,n("changelog.no_results")):h.map((e=>d(Co,{change:e,activeTags:a,toggleTag:i})))))}function zo({version:e}){const{locale:t}=St(),[n,o]=v("changelog"),[r,a]=v(void 0);c((()=>{et().then((e=>a(e.map((e=>l(i({},e),{tags:e.tags.filter((t=>t!==e.group.id))})))))).catch((e=>console.error(e)))}),[]);const s=w((()=>null==r?void 0:r.filter((t=>t.version.id===e.id||t.group.id===e.id))),[e.id,r]);return d(_,null,d("div",{class:"version-detail"},d("h2",null,e.name),d("div",{class:"version-info"},d(So,{label:t("versions.released"),value:$o(e)}),d(So,{label:t("versions.release_target"),value:e.release_target,link:e.id!==e.release_target?`/versions/?id=${e.release_target}`:void 0}),d(So,{label:t("versions.data_version"),value:e.data_version}),d(So,{label:t("versions.protocol_version"),value:e.protocol_version}),d(So,{label:t("versions.data_pack_format"),value:e.data_pack_version}),d(So,{label:t("versions.resource_pack_format"),value:e.resource_pack_version})),d("div",{class:"version-tabs"},d("span",{class:"changelog"===n?"selected":"",onClick:()=>o("changelog")},t("versions.technical_changes")),d("span",{class:"discussion"===n?"selected":"",onClick:()=>o("discussion")},t("versions.discussion"))),d("div",{class:"version-tab"},"changelog"===n&&d(Io,{changes:s,defaultOrder:"asc"}),"discussion"===n&&d(vo,{term:`version/${e.id}`}))))}function $o(e){return new Date(e.release_time).toLocaleDateString(void 0,{day:"numeric",month:"short",year:"numeric"})}function jo({version:e,link:t}){const{locale:n}=St();return d("a",{class:"version-entry",href:t},d("span",{class:"version-id"},e.id),d(So,{label:n("versions.released"),value:$o(e),compact:!0}),d(So,{label:n("versions.data_version"),value:e.data_version,optional:!0}),d(So,{label:n("versions.pack_format"),value:e.data_pack_version,optional:!0}))}function Eo({versions:e,link:t}){const{locale:n}=St(),[o,r]=v(!0),[a,s]=v(""),i=w((()=>e.filter((e=>!("snapshot"===e.type&&!o)&&e.id.includes(a)))),[e,o,a]);return d(_,null,d("div",{class:"versions-controls"},d(Ye,{class:"btn btn-input version-search",list:"sound-list",placeholder:n("versions.search"),value:a,onChange:s}),d(Ue,{label:"Include snapshots",value:o,onChange:r})),d("div",{class:"version-list"},i.map((e=>d(jo,{version:e,link:null==t?void 0:t(e.id)}))),0===i.length&&d("span",null,n("versions.no_results"))))}function So({label:e,value:t,link:n,compact:o,optional:r}){return d("div",{class:"version-metadata"+(r?" version-metadata-hide":"")},d("span",{class:o?"version-metadata-hide":void 0},e,": "),d("span",{class:"version-metadata-value"},t),n&&d("a",{href:n,class:"version-metadata-link"},Je.link_external))}function Oo({category:e}){const{locale:t}=St();return Rt(t("title.generator_category",t(e))),d("main",null,d("div",{class:"category"},ve.generators.filter((t=>t.category===e)).map((e=>d(bo,{title:t(e.id),link:ke(e.url)})))))}function Lo({}){const{locale:e}=St(),[t,n]=v(null);Rt(e("title.changelog"));const[o,r]=v([]);return c((()=>{et().then((e=>r(e))).catch((e=>{console.error(e),n(e)}))}),[]),d("main",null,d(me,{type:"text",id:"changelog"}),t&&d(We,{error:t,onDismiss:()=>n(null)}),d("div",{class:"changelog"},d(Io,{changes:o,defaultOrder:"desc"})))}function Po({}){var e;const{locale:t}=St(),{version:n,changeVersion:o}=Ut(),{project:r,file:a,updateFile:s,openFile:u,closeFile:f}=Dt(),[g,y]=v(null),[b,x]=se();if(b)return b.message=`Something went wrong rendering the generator: ${b.message}`,d("main",null,d(We,{error:b,onDismiss:x}));const k=Me(p());if(!k)return d("main",null,d(We,{error:`Cannot find generator "${p()}"`}));const C=ve.versions.filter((e=>gt(e.id,k.minVersion,k.maxVersion))).map((e=>e.id));Rt(t("title.generator",t(k.id)),C),gt(n,k.minVersion)||y(`The minimum version for this generator is ${k.minVersion}`),gt(n,void 0,k.maxVersion)||y(`This generator is not available in versions above ${k.maxVersion}`);const M=Ae(p()),I=M.get("preset"),z=M.get("share");c((()=>{E&&I?Y(I).then((e=>{E.reset(h.DataModel.wrapLists(e),!1),Ie({version:n,preset:I,share:void 0})})):E&&z&&_t(z).then((e=>$(E,e)))}),[I,z]);const $=(e,t)=>{if(t.version&&t.version!==n&&o(t.version,!1),t.type&&t.type!==k.id){const e=ve.generators.find((e=>e.id===t.type));e&&m(`${ke(e.url)}?share=${t.id}`)}t.show_preview&&!ge&&(we(!0),oe(!1)),e.reset(h.DataModel.wrapLists(t.data),!1)},j=w((()=>Ct.getBackup(k.id)),[k.id]),[E,S]=v(null),[O,L]=v(null);c((()=>{y(null),S(null),async function(e){return(await vt(e)).blockStates}(n).then((e=>L(e))),async function(e,t){var n;if(!ut[t]||ut[t].version!==e){const r=await vt(e);pt=h.Reference(r.schemas,"configured_decorator"),mt=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=ve.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});ut[t]?o.reset(ut[t].model.data,!1):(o.validate(!0),o.history=[JSON.stringify(o.data)]),ut[t]={model:o,version:e}}catch(o){const n=new Error(`Cannot get generator "${t}" for version "${e}": ${Oe(o)}`);throw o instanceof Error&&(n.stack=o.stack),n}}return ut[t].model}(n,k.id).then((async e=>{if(pe.setGenerator(k.id),I){const t=await Y(I);e.reset(h.DataModel.wrapLists(t),!1)}else if(z){const t=await _t(z);$(e,t)}S(e)})).catch((e=>{console.error(e),y(e)}))}),[n,k.id]);const[P,D]=v(!1);Fe(E,(()=>{Ie({version:void 0,preset:void 0,share:void 0}),Ct.setBackup(k.id,h.DataModel.unwrapLists(null==E?void 0:E.data)),y(null),D(!0)}),[k.id]);const[V,N]=v(""),[T,B]=Ne(),[H,F]=Ne(),R=()=>{if(V!==(null==a?void 0:a.id)&&V&&E&&O){const e=Vn(E,O);s(k.id,null==a?void 0:a.id,{id:V,data:e})?B():(F(),a&&N(null==a?void 0:a.id))}else a&&N(null==a?void 0:a.id)};c((()=>{a&&N(a.id)}),[a]),c((()=>{var e;E&&(N(null!=(e=null==a?void 0:a.id)?e:""),a&&k.id===a.type&&E.reset(h.DataModel.wrapLists(a.data)),D(!1))}),[a,E]);const J=e=>{e.ctrlKey&&"z"===e.key?(pe.generatorEvent("undo","Hotkey"),null==E||E.undo()):e.ctrlKey&&"y"===e.key&&(pe.generatorEvent("redo","Hotkey"),null==E||E.redo())},W=e=>{if(e.ctrlKey&&"s"===e.key&&(e.preventDefault(),E&&O&&a)){pe.generatorEvent("save","Hotkey");const e=Vn(E,O);s(k.id,null==a?void 0:a.id,{id:null==a?void 0:a.id,data:e}),D(!1),B()}};c((()=>(document.addEventListener("keyup",J),document.addEventListener("keydown",W),()=>{document.removeEventListener("keyup",J),document.removeEventListener("keydown",W)})),[E,O,a]);const[U,G]=v([]);c((()=>{(async function(e){const t=await vt(e);return ft=t.collections,t.collections})(n).then((e=>{G(e.get(k.id).map((e=>e.slice(10))))})).catch((e=>{console.error(e),y(e)}))}),[n,k.id]);const Y=async e=>{var t,o,r;try{const a=await it(n,null!=(t=k.path)?t:k.id,e),s=null==E?void 0:E.get(new h.Path(["generator","seed"]));return void 0!==(null==(o=null==a?void 0:a.generator)?void 0:o.seed)&&void 0!==s&&(a.generator.seed=s,void 0!==(null==(r=a.generator.biome_source)?void 0:r.seed)&&(a.generator.biome_source.seed=s)),a}catch(a){y(a instanceof Error?a:Oe(a))}},[q,K]=v(void 0),[Z,X]=v(!1),[Q,ee]=Ne({cooldown:3e3}),te=()=>{navigator.clipboard.writeText(null!=q?q:""),ee()};c((()=>{Q||(K(void 0),X(!1))}),[Q]);const[ne,oe]=v(window.innerWidth>820),[re,ae]=v(0),[ie,le]=v(0),[ce,de]=v(0),[ue,he]=Ne(),[ge,we]=v(!1),_e=Pn.includes(k.id)&&!("worldgen/configured_feature"===k.id&>(n,"1.18"));ge&&!_e&&we(!1);let ye=2;_e&&(ye+=1),ne&&(ye+=2);return d(_,null,d("main",{class:ge?"has-preview":""},d(me,{id:"data-pack-generator",type:"text"}),d("div",{class:"controls"},d("div",{class:`project-controls ${a&&"has-file"}`},d("div",{class:"btn-row"},d(Re,{icon:"repo",label:r.name,relative:!1},d(fe,{icon:"arrow_left",label:t("project.go_to"),onClick:()=>m("/project")}),a&&d(fe,{icon:"file",label:t("project.new_file"),onClick:f}),void 0!==j&&d(fe,{icon:"history",label:t("restore_backup"),onClick:()=>{void 0!==j&&(null==E||E.reset(h.DataModel.wrapLists(j),!1))}}),d(Ze,{searchPlaceholder:t("Drafts"===r.name?"project.search_drafts":"project.search"),noResults:t("project.no_files"),values:r.files.filter((e=>e.type===k.id)).map((e=>e.id)),onSelect:e=>u(k.id,e)})),d(Ye,{class:"btn btn-input",placeholder:t("project.unsaved_file"),value:V,onChange:N,onEnter:R,onBlur:R}),a&&d(fe,{icon:"trashcan",tooltip:t("project.delete_file"),onClick:()=>{a&&s(k.id,a.id,{})}})),P?d("div",{class:"status-icon"},Je.dot_fill):T?d("div",{class:"status-icon active"},Je.check):H&&d("div",{class:"status-icon danger"},Je.x)),d("div",{class:"generator-controls"},d(fe,{icon:"upload",label:t("import"),onClick:()=>{pe.generatorEvent("import"),oe(!0),de(ce+1)}}),d(Re,{icon:"archive",label:t("presets"),relative:!1},d(Ze,{searchPlaceholder:t("search"),noResults:t("no_presets"),values:U,onSelect:e=>{pe.generatorEvent("load-preset",e),Ie({version:n,preset:e,share:void 0})}})),d(Re,{icon:"tag",label:n,tooltip:t("switch_version"),"data-cy":"version-switcher"},C.reverse().map((e=>d(fe,{label:e,active:e===n,onClick:()=>{return t=e,Ie({share:void 0}),void o(t);var t}})))),d(Re,{icon:"kebab_horizontal",tooltip:t("more")},d(fe,{icon:"history",label:t("reset"),onClick:()=>{pe.generatorEvent("reset"),null==E||E.reset(h.DataModel.wrapLists(E.schema.default()),!0)}}),d(fe,{icon:"arrow_left",label:t("undo"),onClick:e=>{e.stopPropagation(),pe.generatorEvent("undo","Menu"),null==E||E.undo()}}),d(fe,{icon:"arrow_right",label:t("redo"),onClick:e=>{e.stopPropagation(),pe.generatorEvent("redo","Menu"),null==E||E.redo()}})))),g&&d(We,{error:g,onDismiss:()=>y(null)}),d(fo,l(i({},{model:E,version:n,blockStates:O}),{onError:y}))),d("div",{class:"popup-actions",style:`--offset: -${8+50*ye}px;`},d("div",{class:`popup-action action-preview${_e?" shown":""} tooltipped tip-nw`,"aria-label":t(ge?"hide_preview":"show_preview"),onClick:()=>{pe.generatorEvent("toggle-preview",ge?"hidden":"visible"),we(!ge),!ge&&ne&&oe(!1)}},ge?Je.x_circle:Je.play),d("div",{class:"popup-action action-share shown tooltipped tip-nw","aria-label":t("share"),onClick:()=>{if(Z)X(!1);else if(I)K(`${location.protocol}//${location.host}/${k.url}/?version=${n}&preset=${I}`),X(!0),te();else if(E&&O){const e=Vn(E,O);Pe(e,E.schema.default())?(K(`${location.protocol}//${location.host}/${k.url}/?version=${n}`),X(!0)):async function(e,t,n,o){try{const r=A.compressToBase64(JSON.stringify(n)),a=btoa(JSON.stringify(n));console.log("Compression rate",a.length/r.length);const s=JSON.stringify({data:r,type:e,version:t,show_preview:o});let i=wt.get(s);if(!i){const e=await yt("/snippets",s);wt.set(s,e.id),i=e.id}const l=ve.generators.find((t=>t.id===e));return`${location.protocol}//${location.host}/${l.url}/?share=${i}`}catch(r){throw r instanceof Error&&(r.message=`Error creating share link: ${r.message}`),r}}(k.id,n,e,ge).then((e=>{K(e),X(!0)})).catch((e=>{e instanceof Error&&y(e)}))}}},Je.link),d("div",{class:`popup-action action-download${ne?" shown":""} tooltipped tip-nw`,"aria-label":t("download"),onClick:()=>{pe.generatorEvent("download"),le(ie+1)}},Je.download),d("div",{class:`popup-action action-copy${ne?" shown":""}${ue?" active":""} tooltipped tip-nw`,"aria-label":t(ue?"copied":"copy"),onClick:()=>{pe.generatorEvent("copy"),ae(re+1)}},ue?Je.check:Je.clippy),d("div",{class:"popup-action action-code shown tooltipped tip-nw","aria-label":t(ne?"hide_output":"show_output"),onClick:()=>{pe.generatorEvent("toggle-output",ne?"hidden":"visible"),oe(!ne),ae(0),le(0),de(0)}},ne?Je.chevron_right:Je.code)),d("div",{class:"popup-preview"+(ge?" shown":"")},d(Dn,l(i({},{model:E,version:n,id:k.id}),{shown:ge,onError:y}))),d("div",{class:"popup-source"+(ne?" shown":"")},d(Hn,l(i({},{model:E,blockStates:O,doCopy:re,doDownload:ie,doImport:ce}),{name:null!=(e=k.schema)?e:"data",copySuccess:he,onError:y}))),d("div",{class:"popup-share"+(Z?" shown":"")},d(Ye,{value:q,readonly:!0}),d(fe,{icon:Q?"check":"clippy",onClick:te,tooltip:t(Q?"copied":"copy_share"),tooltipLoc:"nw",active:Q,showTooltip:Q})))}function Do({}){const{locale:e}=St();return Rt(e("title.home")),d("main",null,d("div",{class:"home"},d(bo,{title:"Data packs"},ve.generators.filter((e=>!e.category)).map((t=>d(bo,{title:e(t.id),link:ke(t.url)}))),d(bo,{title:e("worldgen"),link:"/worldgen/"})),d(bo,{title:"Resource packs"},ve.generators.filter((e=>"assets"===e.category)).map((t=>d(bo,{title:e(t.id),link:ke(t.url)})))),d(bo,{title:"Report Inspector",icon:"report",link:"https://misode.github.io/report/",desc:"Analyse your performance reports"}),d(bo,{title:"Minecraft Sounds",icon:"sounds",link:"/sounds/",desc:"Browse through and mix all the vanilla sounds"}),d(bo,{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(bo,{title:"Technical Changelog",link:"/changelog/"}),d(bo,{title:"Minecraft Versions",link:"/versions/"}),d(vo,null)))}function Vo({}){const{locale:e}=St(),{project:t,openFile:n}=Dt();Rt(e("title.project",t.name));const o=w((()=>t.files.map(Nt)),t.files);return d("main",null,d(me,{id:"data-pack-project",type:"text"}),d("div",{class:"project"},d("h2",null,t.name),d("div",{class:"file-view"},d(xo,{entries:o,onSelect:e=>{const[,t,o,...r]=e.split("/");n(o,`${t}:${r}`)}}))))}function No({}){const{locale:e}=St(),{version:t,changeVersion:n}=Ut(),[o,r]=v(null);Rt(e("title.sounds"));const[a,s]=v({}),u=Object.keys(null!=a?a:{});c((()=>{(async function(e){const t=ve.versions.find((t=>t.id===e));await rt(t);try{const e=`${ot(t,"summary")}/sounds/data.min.json`;return await lt(e)}catch(n){throw new Error(`Error occurred while fetching sounds for ${t}: ${Oe(n)}`)}})(t).then(s).catch((e=>{console.error(e),r(e)}))}),[t]);const[h,p]=v(""),[m,g]=v([]),w=()=>{g([{id:_e(),sound:h,delay:0,pitch:1,volume:1},...m])},y=e=>()=>{g(m.filter((t=>t.id!==e)))},[b,x]=v(0),k=f(null);return d("main",null,o&&d(We,{error:o,onDismiss:()=>r(null)}),u.length>0&&d(_,null,d("div",{class:"controls sounds-controls"},d("div",{class:"sound-search-group"},d(Ye,{class:"btn btn-input sound-search",list:"sound-list",placeholder:e("sounds.search"),value:h,onChange:p,onEnter:w}),d(fe,{icon:"plus",tooltip:e("sounds.add_sound"),class:"add-sound",onClick:w})),m.length>1&&d(fe,{icon:"play",label:e("sounds.play_all"),class:"play-all-sounds",onClick:()=>{x(b+1)}}),d("div",{class:"spacer"}),d(fe,{icon:"download",label:e("download"),tooltip:e("sounds.download_function"),class:"download-sounds",onClick:()=>{const e=m.some((e=>e.delay>0)),t=m.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(Re,{icon:"tag",label:t},ve.versions.reverse().map((e=>d(fe,{label:e.id,active:e.id===t,onClick:()=>n(e.id)}))))),d("div",{class:"sounds"},m.map((e=>{return d(yo,l(i(i({key:e.id},e),{sounds:a,delayedPlay:b}),{onEdit:(t=e.id,e=>{g(m.map((n=>n.id===t?i(i({},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 To({}){const{locale:e}=St(),[t,n]=v(null);Rt(e("title.versions"));const[o,r]=v([]);c((()=>{(async function(){const e=ve.versions[ve.versions.length-1];await rt(e);try{return lt(`${ot(e,"summary")}/versions/data.min.json`)}catch(t){throw new Error(`Error occured while fetching versions: ${Oe(t)}`)}})().then((e=>r(e))).catch((e=>{console.error(e),n(e)}))}),[]);const a=Ae(p()).get("id"),s=o.find((e=>e.id===a));Rt(s?s.name:"Versions Explorer",s?[]:void 0);const l=s&&Bo(o,s,-1),u=s&&Bo(o,s,1);return d("main",null,d(me,{type:"text",id:"versions"}),t&&d(We,{error:t,onDismiss:()=>n(null)}),d("div",{class:"versions"},a?d(_,null,d("div",{class:"version-navigation"},d("a",{class:"btn btn-link",href:"/versions/"},Je.three_bars,e("versions.all")),d("a",i({class:"btn btn-link"},u?{href:`/versions/?id=${u.id}`}:{disabled:!0}),Je.arrow_left,e("versions.previous")),d("a",i({class:"btn btn-link"},l?{href:`/versions/?id=${l.id}`}:{disabled:!0}),e("versions.next"),Je.arrow_right)),s?d(zo,{version:s}):d("div",{class:"version-detail"},d("h2",null,a),d("div",{class:"version-info"},d("p",null,"This version does not exist. Only versions since 1.14 are tracked, or it may be too recent.")))):d(Eo,{versions:o,link:e=>`/versions/?id=${e}`})))}function Bo(e,t,n){const o=e.findIndex((e=>e.id===t.id))+n;if(!(o<0||o>=e.length))return e[o]}function Ho(){return d(_,null,d(wo,null),d(ue,{onChange:e=>{setTimeout((()=>pe.pageview(ke(e.url))))}},d(Do,{path:"/"}),d(Oo,{path:"/worldgen",category:"worldgen"}),d(Oo,{path:"/assets",category:"assets"}),d(No,{path:"/sounds"}),d(Lo,{path:"/changelog"}),d(To,{path:"/versions"}),d(Vo,{path:"/project"}),d(Po,{default:!0})))}function Fo(){return d(Ot,null,d(Ht,null,d(Gt,null,d(Jt,null,d(Vt,null,d(Ho,null))))))}he(d(Fo,null),document.body); -//# sourceMappingURL=index.5e882d57.js.map diff --git a/assets/index.html b/assets/index.html index 75598240..7b25d1a2 100644 --- a/assets/index.html +++ b/assets/index.html @@ -29,8 +29,8 @@ BigInt64Array = function() { } } </script> -<script type="module" crossorigin src="/assets/index.5e882d57.js"></script> - <link rel="modulepreload" href="/assets/vendor.273f4765.js"> +<script type="module" crossorigin src="/assets/index.182fe7ed.js"></script> + <link rel="modulepreload" href="/assets/vendor.6465e0ff.js"> <link rel="stylesheet" href="/assets/index.2396f736.css"> </head> <body> diff --git a/assets/model/index.html b/assets/model/index.html index 786fc3a0..53cd4bcb 100644 --- a/assets/model/index.html +++ b/assets/model/index.html @@ -29,8 +29,8 @@ BigInt64Array = function() { } } </script> -<script type="module" crossorigin src="/assets/index.5e882d57.js"></script> - <link rel="modulepreload" href="/assets/vendor.273f4765.js"> +<script type="module" crossorigin src="/assets/index.182fe7ed.js"></script> + <link rel="modulepreload" href="/assets/vendor.6465e0ff.js"> <link rel="stylesheet" href="/assets/index.2396f736.css"> </head> <body> diff --git a/assets/vendor.273f4765.js.map b/assets/vendor.273f4765.js.map deleted file mode 100644 index 2aa10aaf..00000000 --- a/assets/vendor.273f4765.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"vendor.273f4765.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/index.js","../../node_modules/@mcschema/core/lib/ValidationOption.js","../../node_modules/rfdc/index.js","../../node_modules/sourcemapped-stacktrace/dist/sourcemapped-stacktrace.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/@mcschema/java-1.19/lib/Collections.js","../../node_modules/@mcschema/java-1.19/lib/schemas/Advancement.js","../../node_modules/@mcschema/java-1.19/lib/schemas/assets/Model.js","../../node_modules/@mcschema/java-1.19/lib/schemas/assets/BlockDefinition.js","../../node_modules/@mcschema/java-1.19/lib/schemas/assets/index.js","../../node_modules/@mcschema/java-1.19/lib/schemas/Common.js","../../node_modules/@mcschema/java-1.19/lib/schemas/Condition.js","../../node_modules/@mcschema/java-1.19/lib/schemas/Dimension.js","../../node_modules/@mcschema/java-1.19/lib/schemas/DimensionType.js","../../node_modules/@mcschema/java-1.19/lib/schemas/ItemModifier.js","../../node_modules/@mcschema/java-1.19/lib/LootContext.js","../../node_modules/@mcschema/java-1.19/lib/schemas/LootTable.js","../../node_modules/@mcschema/java-1.19/lib/schemas/PackMcmeta.js","../../node_modules/@mcschema/java-1.19/lib/schemas/Predicates.js","../../node_modules/@mcschema/java-1.19/lib/schemas/Recipe.js","../../node_modules/@mcschema/java-1.19/lib/schemas/Tags.js","../../node_modules/@mcschema/java-1.19/lib/schemas/TextComponent.js","../../node_modules/@mcschema/java-1.19/lib/schemas/worldgen/Biome.js","../../node_modules/@mcschema/java-1.19/lib/schemas/worldgen/Carver.js","../../node_modules/@mcschema/java-1.19/lib/schemas/worldgen/Decorator.js","../../node_modules/@mcschema/java-1.19/lib/schemas/worldgen/DensityFunction.js","../../node_modules/@mcschema/java-1.19/lib/schemas/worldgen/ProcessorList.js","../../node_modules/@mcschema/java-1.19/lib/schemas/worldgen/Feature.js","../../node_modules/@mcschema/java-1.19/lib/schemas/worldgen/NoiseSettings.js","../../node_modules/@mcschema/java-1.19/lib/schemas/worldgen/Structure.js","../../node_modules/@mcschema/java-1.19/lib/schemas/worldgen/StructureSet.js","../../node_modules/@mcschema/java-1.19/lib/schemas/worldgen/SurfaceRule.js","../../node_modules/@mcschema/java-1.19/lib/schemas/worldgen/TemplatePool.js","../../node_modules/@mcschema/java-1.19/lib/schemas/worldgen/WorldPreset.js","../../node_modules/@mcschema/java-1.19/lib/schemas/worldgen/index.js","../../node_modules/@mcschema/java-1.19/lib/schemas/WorldSettings.js","../../node_modules/@mcschema/java-1.19/lib/schemas/index.js","../../node_modules/@mcschema/java-1.19/lib/index.js","../../node_modules/lz-string/libs/lz-string.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/deepslate-1.18/dist/deepslate.esm.js","../../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/@giscus/react/dist/index.es.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;o<arguments.length;o++)u.push(r[o]);if(null!=u&&(f.children=u),\"function\"==typeof n&&null!=n.defaultProps)for(o in n.defaultProps)void 0===f[o]&&(f[o]=n.defaultProps[o]);return v(n,f,i,t,null)}function v(l,u,i,t,o){var r={type:l,props:u,key:i,ref:t,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:null==o?++n.__v:o};return null!=n.vnode&&n.vnode(r),r}function h(){return{current:null}}function y(n){return n.children}function p(n,l){this.props=n,this.context=l}function d(n,l){if(null==l)return n.__?d(n.__,n.__.__k.indexOf(n)+1):null;for(var u;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e)return u.__e;return\"function\"==typeof n.type?d(n):null}function _(n){var l,u;if(null!=(n=n.__)&&null!=n.__c){for(n.__e=n.__c.base=null,l=0;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e){n.__e=n.__c.base=u.__e;break}return _(n)}}function k(l){(!l.__d&&(l.__d=!0)&&u.push(l)&&!b.__r++||t!==n.debounceRendering)&&((t=n.debounceRendering)||i)(b)}function b(){for(var n;b.__r=u.length;)n=u.sort(function(n,l){return n.__v.__b-l.__v.__b}),u=[],n.some(function(n){var l,u,i,t,o,r;n.__d&&(o=(t=(l=n).__v).__e,(r=l.__P)&&(u=[],(i=c({},t)).__v=t.__v+1,I(r,t,i,l.__n,void 0!==r.ownerSVGElement,null!=t.__h?[o]:null,u,null==o?d(t):o,t.__h),T(u,t),t.__e!=o&&_(t)))})}function m(n,l,u,i,t,o,e,c,s,a){var h,p,_,k,b,m,w,A=i&&i.__k||f,P=A.length;for(u.__k=[],h=0;h<l.length;h++)if(null!=(k=u.__k[h]=null==(k=l[h])||\"boolean\"==typeof k?null:\"string\"==typeof k||\"number\"==typeof k||\"bigint\"==typeof k?v(null,k,null,null,k):Array.isArray(k)?v(y,{children:k},null,null,null):k.__b>0?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;p<P;p++){if((_=A[p])&&k.key==_.key&&k.type===_.type){A[p]=void 0;break}_=null}I(n,k,_=_||r,t,o,e,c,s,a),b=k.__e,(p=k.ref)&&_.ref!=p&&(w||(w=[]),_.ref&&w.push(_.ref,null,k),w.push(p,k.__c||b,k)),null!=b?(null==m&&(m=b),\"function\"==typeof k.type&&null!=k.__k&&k.__k===_.__k?k.__d=s=g(k,s,n):s=x(n,k,_,A,b,s),a||\"option\"!==u.type?\"function\"==typeof u.type&&(u.__d=s):n.value=\"\"):s&&_.__e==s&&s.parentNode!=n&&(s=d(_))}for(u.__e=m,h=P;h--;)null!=A[h]&&(\"function\"==typeof u.type&&null!=A[h].__e&&A[h].__e==u.__d&&(u.__d=d(i,h+1)),L(A[h],A[h]));if(w)for(h=0;h<w.length;h++)z(w[h],w[++h],w[++h])}function g(n,l,u){var i,t;for(i=0;i<n.__k.length;i++)(t=n.__k[i])&&(t.__=n,l=\"function\"==typeof t.type?g(t,l,u):x(u,t,t,n.__k,t.__e,l));return l}function w(n,l){return l=l||[],null==n||\"boolean\"==typeof n||(Array.isArray(n)?n.some(function(n){w(n,l)}):l.push(n)),l}function x(n,l,u,i,t,o){var r,f,e;if(void 0!==l.__d)r=l.__d,l.__d=void 0;else if(null==u||t!=o||null==t.parentNode)n:if(null==o||o.parentNode!==n)n.appendChild(t),r=null;else{for(f=o,e=0;(f=f.nextSibling)&&e<i.length;e+=2)if(f==t)break n;n.insertBefore(t,o),r=o}return void 0!==r?r:t.nextSibling}function A(n,l,u,i,t){var o;for(o in u)\"children\"===o||\"key\"===o||o in l||C(n,o,null,u[o],i);for(o in l)t&&\"function\"!=typeof l[o]||\"children\"===o||\"key\"===o||\"value\"===o||\"checked\"===o||u[o]===l[o]||C(n,o,l[o],u[o],i)}function P(n,l,u){\"-\"===l[0]?n.setProperty(l,u):n[l]=null==u?\"\":\"number\"!=typeof u||e.test(l)?u:u+\"px\"}function C(n,l,u,i,t){var o;n:if(\"style\"===l)if(\"string\"==typeof u)n.style.cssText=u;else{if(\"string\"==typeof i&&(n.style.cssText=i=\"\"),i)for(l in i)u&&l in u||P(n.style,l,\"\");if(u)for(l in u)i&&u[l]===i[l]||P(n.style,l,u[l])}else if(\"o\"===l[0]&&\"n\"===l[1])o=l!==(l=l.replace(/Capture$/,\"\")),l=l.toLowerCase()in n?l.toLowerCase().slice(2):l.slice(2),n.l||(n.l={}),n.l[l+o]=u,u?i||n.addEventListener(l,o?H:$,o):n.removeEventListener(l,o?H:$,o);else if(\"dangerouslySetInnerHTML\"!==l){if(t)l=l.replace(/xlink[H:h]/,\"h\").replace(/sName$/,\"s\");else if(\"href\"!==l&&\"list\"!==l&&\"form\"!==l&&\"tabIndex\"!==l&&\"download\"!==l&&l in n)try{n[l]=null==u?\"\":u;break n}catch(n){}\"function\"==typeof u||(null!=u&&(!1!==u||\"a\"===l[0]&&\"r\"===l[1])?n.setAttribute(l,u):n.removeAttribute(l))}}function $(l){this.l[l.type+!1](n.event?n.event(l):l)}function H(l){this.l[l.type+!0](n.event?n.event(l):l)}function I(l,u,i,t,o,r,f,e,s){var a,v,h,d,_,k,b,g,w,x,A,P=u.type;if(void 0!==u.constructor)return null;null!=i.__h&&(s=i.__h,e=u.__e=i.__e,u.__h=null,r=[e]),(a=n.__b)&&a(u);try{n:if(\"function\"==typeof P){if(g=u.props,w=(a=P.contextType)&&t[a.__c],x=a?w?w.props.value:a.__:t,i.__c?b=(v=u.__c=i.__c).__=v.__E:(\"prototype\"in P&&P.prototype.render?u.__c=v=new P(g,x):(u.__c=v=new p(g,x),v.constructor=P,v.render=M),w&&w.sub(v),v.props=g,v.state||(v.state={}),v.context=x,v.__n=t,h=v.__d=!0,v.__h=[]),null==v.__s&&(v.__s=v.state),null!=P.getDerivedStateFromProps&&(v.__s==v.state&&(v.__s=c({},v.__s)),c(v.__s,P.getDerivedStateFromProps(g,v.__s))),d=v.props,_=v.state,h)null==P.getDerivedStateFromProps&&null!=v.componentWillMount&&v.componentWillMount(),null!=v.componentDidMount&&v.__h.push(v.componentDidMount);else{if(null==P.getDerivedStateFromProps&&g!==d&&null!=v.componentWillReceiveProps&&v.componentWillReceiveProps(g,x),!v.__e&&null!=v.shouldComponentUpdate&&!1===v.shouldComponentUpdate(g,v.__s,x)||u.__v===i.__v){v.props=g,v.state=v.__s,u.__v!==i.__v&&(v.__d=!1),v.__v=u,u.__e=i.__e,u.__k=i.__k,u.__k.forEach(function(n){n&&(n.__=u)}),v.__h.length&&f.push(v);break n}null!=v.componentWillUpdate&&v.componentWillUpdate(g,v.__s,x),null!=v.componentDidUpdate&&v.__h.push(function(){v.componentDidUpdate(d,_,k)})}v.context=x,v.props=g,v.state=v.__s,(a=n.__r)&&a(u),v.__d=!1,v.__v=u,v.__P=l,a=v.render(v.props,v.state,v.context),v.state=v.__s,null!=v.getChildContext&&(t=c(c({},t),v.getChildContext())),h||null==v.getSnapshotBeforeUpdate||(k=v.getSnapshotBeforeUpdate(d,_)),A=null!=a&&a.type===y&&null==a.key?a.props.children:a,m(l,Array.isArray(A)?A:[A],u,i,t,o,r,f,e,s),v.base=u.__e,u.__h=null,v.__h.length&&f.push(v),b&&(v.__E=v.__=null),v.__e=!1}else null==r&&u.__v===i.__v?(u.__k=i.__k,u.__e=i.__e):u.__e=j(i.__e,u,i,t,o,r,f,s);(a=n.diffed)&&a(u)}catch(l){u.__v=null,(s||null!=r)&&(u.__e=e,u.__h=!!s,r[r.indexOf(e)]=null),n.__e(l,u,i)}}function T(l,u){n.__c&&n.__c(u,l),l.some(function(u){try{l=u.__h,u.__h=[],l.some(function(n){n.call(u)})}catch(l){n.__e(l,u.__v)}})}function j(n,l,u,i,t,o,e,c){var a,v,h,y,p=u.props,d=l.props,_=l.type,k=0;if(\"svg\"===_&&(t=!0),null!=o)for(;k<o.length;k++)if((a=o[k])&&(a===n||(_?a.localName==_:3==a.nodeType))){n=a,o[k]=null;break}if(null==n){if(null===_)return document.createTextNode(d);n=t?document.createElementNS(\"http://www.w3.org/2000/svg\",_):document.createElement(_,d.is&&d),o=null,c=!1}if(null===_)p===d||c&&n.data===d||(n.data=d);else{if(o=o&&f.slice.call(n.childNodes),v=(p=u.props||r).dangerouslySetInnerHTML,h=d.dangerouslySetInnerHTML,!c){if(null!=o)for(p={},y=0;y<n.attributes.length;y++)p[n.attributes[y].name]=n.attributes[y].value;(h||v)&&(h&&(v&&h.__html==v.__html||h.__html===n.innerHTML)||(n.innerHTML=h&&h.__html||\"\"))}if(A(n,d,p,t,c),h)l.__k=[];else if(k=l.props.children,m(n,Array.isArray(k)?k:[k],l,u,i,t&&\"foreignObject\"!==_,o,e,n.firstChild,c),null!=o)for(k=o.length;k--;)null!=o[k]&&s(o[k]);c||(\"value\"in d&&void 0!==(k=d.value)&&(k!==n.value||\"progress\"===_&&!k)&&C(n,\"value\",k,p.value,!1),\"checked\"in d&&void 0!==(k=d.checked)&&k!==n.checked&&C(n,\"checked\",k,p.checked,!1))}return n}function z(l,u,i){try{\"function\"==typeof l?l(u):l.current=u}catch(l){n.__e(l,i)}}function L(l,u,i){var t,o,r;if(n.unmount&&n.unmount(l),(t=l.ref)&&(t.current&&t.current!==l.__e||z(t,null,u)),i||\"function\"==typeof l.type||(i=null!=(o=l.__e)),l.__e=l.__d=void 0,null!=(t=l.__c)){if(t.componentWillUnmount)try{t.componentWillUnmount()}catch(l){n.__e(l,u)}t.base=t.__P=null}if(t=l.__k)for(r=0;r<t.length;r++)t[r]&&L(t[r],u,i);null!=o&&s(o)}function M(n,l,u){return this.constructor(n,u)}function N(l,u,i){var t,o,e;n.__&&n.__(l,u),o=(t=\"function\"==typeof i)?null:i&&i.__k||u.__k,e=[],I(u,l=(!t&&i||u).__k=a(y,null,[l]),o||r,r,void 0!==u.ownerSVGElement,!t&&i?[i]:o?null:u.firstChild?f.slice.call(u.childNodes):null,e,!t&&i?i:o?o.__e:u.firstChild,t),T(e,l)}function O(n,l){N(n,l,O)}function S(n,l,u){var i,t,o,r=arguments,f=c({},n.props);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;o<arguments.length;o++)u.push(r[o]);return null!=u&&(f.children=u),v(n.type,f,i||n.key,t||n.ref,null)}function q(n,l){var u={__c:l=\"__cC\"+o++,__:n,Consumer:function(n,l){return n.children(l)},Provider:function(n){var u,i;return this.getChildContext||(u=[],(i={})[l]=this,this.getChildContext=function(){return i},this.shouldComponentUpdate=function(n){this.props.value!==n.value&&u.some(k)},this.sub=function(n){u.push(n);var l=n.componentWillUnmount;n.componentWillUnmount=function(){u.splice(u.indexOf(n),1),l&&l.call(n)}}),n.children}};return u.Provider.__=u.Consumer.contextType=u}n={__e:function(n,l){for(var u,i,t;l=l.__;)if((u=l.__c)&&!u.__)try{if((i=u.constructor)&&null!=i.getDerivedStateFromError&&(u.setState(i.getDerivedStateFromError(n)),t=u.__d),null!=u.componentDidCatch&&(u.componentDidCatch(n),t=u.__d),t)return u.__E=u}catch(l){n=l}throw n},__v:0},l=function(n){return null!=n&&void 0===n.constructor},p.prototype.setState=function(n,l){var u;u=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=c({},this.state),\"function\"==typeof n&&(n=n(c({},u),this.props)),n&&c(u,n),null!=n&&this.__v&&(l&&this.__h.push(l),k(this))},p.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),k(this))},p.prototype.render=y,u=[],i=\"function\"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,b.__r=0,o=0;export{N as render,O as hydrate,a as createElement,a as h,y as Fragment,h as createRef,l as isValidElement,p as Component,S as cloneElement,q as createContext,w as toChildArray,n as options};\n//# sourceMappingURL=preact.module.js.map\n","import { Component, cloneElement, createElement, toChildArray } from 'preact';\n\nvar EMPTY$1 = {};\n\nfunction assign(obj, props) {\n\t// eslint-disable-next-line guard-for-in\n\tfor (var i in props) {\n\t\tobj[i] = props[i];\n\t}\n\treturn obj;\n}\n\nfunction exec(url, route, opts) {\n\tvar reg = /(?:\\?([^#]*))?(#.*)?$/,\n\t\tc = url.match(reg),\n\t\tmatches = {},\n\t\tret;\n\tif (c && c[1]) {\n\t\tvar p = c[1].split('&');\n\t\tfor (var i=0; i<p.length; i++) {\n\t\t\tvar r = p[i].split('=');\n\t\t\tmatches[decodeURIComponent(r[0])] = decodeURIComponent(r.slice(1).join('='));\n\t\t}\n\t}\n\turl = segmentize(url.replace(reg, ''));\n\troute = segmentize(route || '');\n\tvar max = Math.max(url.length, route.length);\n\tfor (var i$1=0; i$1<max; i$1++) {\n\t\tif (route[i$1] && route[i$1].charAt(0)===':') {\n\t\t\tvar param = route[i$1].replace(/(^:|[+*?]+$)/g, ''),\n\t\t\t\tflags = (route[i$1].match(/[+*?]+$/) || EMPTY$1)[0] || '',\n\t\t\t\tplus = ~flags.indexOf('+'),\n\t\t\t\tstar = ~flags.indexOf('*'),\n\t\t\t\tval = url[i$1] || '';\n\t\t\tif (!val && !star && (flags.indexOf('?')<0 || plus)) {\n\t\t\t\tret = false;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tmatches[param] = decodeURIComponent(val);\n\t\t\tif (plus || star) {\n\t\t\t\tmatches[param] = url.slice(i$1).map(decodeURIComponent).join('/');\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\telse if (route[i$1]!==url[i$1]) {\n\t\t\tret = false;\n\t\t\tbreak;\n\t\t}\n\t}\n\tif (opts.default!==true && ret===false) { return false; }\n\treturn matches;\n}\n\nfunction pathRankSort(a, b) {\n\treturn (\n\t\t(a.rank < b.rank) ? 1 :\n\t\t\t(a.rank > 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<ROUTERS.length; i++) {\n\t\tif (ROUTERS[i].routeTo(url)===true) {\n\t\t\tdidRoute = true;\n\t\t}\n\t}\n\tfor (var i$1=subscribers.length; i$1--; ) {\n\t\tsubscribers[i$1](url);\n\t}\n\treturn didRoute;\n}\n\n\nfunction routeFromLink(node) {\n\t// only valid elements\n\tif (!node || !node.getAttribute) { return; }\n\n\tvar href = node.getAttribute('href'),\n\t\ttarget = node.getAttribute('target');\n\n\t// ignore links with targets and non-path URLs\n\tif (!href || !href.match(/^\\//g) || (target && !target.match(/^_?self$/i))) { return; }\n\n\t// attempt to route, if no match simply cede control to browser\n\treturn route(href);\n}\n\n\nfunction handleLinkClick(e) {\n\tif (e.ctrlKey || e.metaKey || e.altKey || e.shiftKey || e.button!==0) { return; }\n\trouteFromLink(e.currentTarget || e.target || this);\n\treturn prevent(e);\n}\n\n\nfunction prevent(e) {\n\tif (e) {\n\t\tif (e.stopImmediatePropagation) { e.stopImmediatePropagation(); }\n\t\tif (e.stopPropagation) { e.stopPropagation(); }\n\t\te.preventDefault();\n\t}\n\treturn false;\n}\n\n\nfunction delegateLinkHandler(e) {\n\t// ignore events the browser takes care of already:\n\tif (e.ctrlKey || e.metaKey || e.altKey || e.shiftKey || e.button!==0) { return; }\n\n\tvar t = e.target;\n\tdo {\n\t\tif (String(t.nodeName).toUpperCase()==='A' && t.getAttribute('href')) {\n\t\t\tif (t.hasAttribute('native')) { return; }\n\t\t\t// if link is handled by the router, prevent browser defaults\n\t\t\tif (routeFromLink(t)) {\n\t\t\t\treturn prevent(e);\n\t\t\t}\n\t\t}\n\t} while ((t=t.parentNode));\n}\n\n\nvar eventListenersInitialized = false;\n\nfunction initEventListeners() {\n\tif (eventListenersInitialized) { return; }\n\n\tif (typeof addEventListener==='function') {\n\t\tif (!customHistory) {\n\t\t\taddEventListener('popstate', function () {\n\t\t\t\trouteTo(getCurrentUrl());\n\t\t\t});\n\t\t}\n\t\taddEventListener('click', delegateLinkHandler);\n\t}\n\teventListenersInitialized = true;\n}\n\n\nvar Router = (function (Component$$1) {\n\tfunction Router(props) {\n\t\tComponent$$1.call(this, props);\n\t\tif (props.history) {\n\t\t\tcustomHistory = props.history;\n\t\t}\n\n\t\tthis.state = {\n\t\t\turl: props.url || getCurrentUrl()\n\t\t};\n\n\t\tinitEventListeners();\n\t}\n\n\tif ( Component$$1 ) Router.__proto__ = Component$$1;\n\tRouter.prototype = Object.create( Component$$1 && Component$$1.prototype );\n\tRouter.prototype.constructor = Router;\n\n\tRouter.prototype.shouldComponentUpdate = function shouldComponentUpdate (props) {\n\t\tif (props.static!==true) { return true; }\n\t\treturn props.url!==this.props.url || props.onChange!==this.props.onChange;\n\t};\n\n\t/** Check if the given URL can be matched against any children */\n\tRouter.prototype.canRoute = function canRoute (url) {\n\t\tvar children = toChildArray(this.props.children);\n\t\treturn this.getMatchingChildren(children, url, false).length > 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: (0, 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: (0, 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: (0, 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\nconst Mod = (node, mods) => ({\r\n ...node, ...(typeof mods === 'function' ? mods(node) : mods)\r\n});\r\nexports.Mod = Mod;\r\nconst Has = (key, node) => (0, exports.Mod)(node, {\r\n enabled: (p) => p.push(key).get() !== undefined\r\n});\r\nexports.Has = Has;\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\nconst 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\nexports.BooleanNode = BooleanNode;\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\nconst 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\nexports.ListNode = ListNode;\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\nconst 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\nexports.SwitchNode = SwitchNode;\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\nconst 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 = (0, 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\nexports.ChoiceNode = ChoiceNode;\r\nconst XOrList = (x) => ((node, config) => {\r\n return (0, 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: (0, 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\nconst ObjectOrPreset = (presetNode, objectNode, presets) => {\r\n return (0, 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\nexports.ObjectOrPreset = ObjectOrPreset;\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\nconst 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\nexports.MapNode = MapNode;\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\nconst 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.NumberNode = NumberNode;\r\nconst NumberEnum = ({ integer, values }) => (0, __1.Mod)((0, 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\nexports.NumberEnum = NumberEnum;\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\nconst 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 = (0, 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 ? (0, 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 = (0, 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\nexports.ObjectNode = ObjectNode;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Reference = void 0;\r\nconst 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\nexports.Reference = Reference;\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 return !!(value === null || value === void 0 ? void 0 : value.enum);\r\n};\r\nconst isValidator = (value) => {\r\n return !!(value === null || value === void 0 ? void 0 : value.validator);\r\n};\r\n/**\r\n * Simple string node with one text field\r\n */\r\nconst 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\nexports.StringNode = StringNode;\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\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\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\" && !Object.prototype.hasOwnProperty.call(exports, 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\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\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","(function webpackUniversalModuleDefinition(root, factory) {\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\telse if(typeof exports === 'object')\n\t\texports[\"sourceMappedStackTrace\"] = factory();\n\telse\n\t\troot[\"sourceMappedStackTrace\"] = 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/******/ \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\tvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*\n\t * sourcemapped-stacktrace.js\n\t * created by James Salter <iteration@gmail.com> (2014)\n\t *\n\t * https://github.com/novocaine/sourcemapped-stacktrace\n\t *\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\n\t/*global define */\n\n\t// note we only include source-map-consumer, not the whole source-map library,\n\t// which includes gear for generating source maps that we don't need\n\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(1)], __WEBPACK_AMD_DEFINE_RESULT__ = function(source_map_consumer) {\n\n\t var global_mapForUri = {};\n\n\t /**\n\t * Re-map entries in a stacktrace using sourcemaps if available.\n\t *\n\t * @param {str} stack - The stacktrace from the browser.\n\t * @param {function} done - Callback invoked with the transformed stacktrace\n\t * (an Array of Strings) passed as the first\n\t * argument\n\t * @param {Object} [opts] - Optional options object.\n\t * @param {Function} [opts.filter] - Filter function applied to each stackTrace line.\n\t * Lines which do not pass the filter won't be processesd.\n\t * @param {boolean} [opts.cacheGlobally] - Whether to cache sourcemaps globally across multiple calls.\n\t * @param {boolean} [opts.sync] - Whether to use synchronous ajax to load the sourcemaps.\n\t * @param {string} [opts.traceFormat] - If `error.stack` is formatted according to chrome or\n\t * Firefox's style. Can be either `\"chrome\"`, `\"firefox\"`\n\t * or `undefined` (default). If `undefined`, this library\n\t * will guess based on `navigator.userAgent`.\n\t */\n\t var mapStackTrace = function(stack, done, opts) {\n\t var lines;\n\t var line;\n\t var mapForUri = {};\n\t var rows = {};\n\t var fields;\n\t var uri;\n\t var expected_fields;\n\t var regex;\n\t var skip_lines;\n\n\t var fetcher = new Fetcher(opts);\n\n\t var traceFormat = opts && opts.traceFormat;\n\t if (traceFormat !== \"chrome\" && traceFormat !== \"firefox\") {\n\t if (traceFormat) {\n\t throw new Error(\"unknown traceFormat \\\"\" + traceFormat + \"\\\" :(\");\n\t } else if (isChromeOrEdge() || isIE11Plus()) {\n\t traceFormat = \"chrome\";\n\t } else if (isFirefox() || isSafari()) {\n\t traceFormat = \"firefox\";\n\t } else {\n\t throw new Error(\"unknown browser :(\");\n\t }\n\t }\n\n\t if (traceFormat === \"chrome\") {\n\t regex = /^ +at.+\\((.*):([0-9]+):([0-9]+)/;\n\t expected_fields = 4;\n\t // (skip first line containing exception message)\n\t skip_lines = 1;\n\t } else {\n\t regex = /@(.*):([0-9]+):([0-9]+)/;\n\t expected_fields = 4;\n\t skip_lines = 0;\n\t }\n\n\t lines = stack.split(\"\\n\").slice(skip_lines);\n\n\t for (var i=0; i < lines.length; i++) {\n\t line = lines[i];\n\t if ( opts && opts.filter && !opts.filter(line) ) continue;\n\t \n\t fields = line.match(regex);\n\t if (fields && fields.length === expected_fields) {\n\t rows[i] = fields;\n\t uri = fields[1];\n\t if (!uri.match(/<anonymous>/)) {\n\t fetcher.fetchScript(uri);\n\t }\n\t }\n\t }\n\n\t fetcher.sem.whenReady(function() {\n\t var result = processSourceMaps(lines, rows, fetcher.mapForUri, traceFormat);\n\t done(result);\n\t });\n\t };\n\n\t var isChromeOrEdge = function() {\n\t return navigator.userAgent.toLowerCase().indexOf('chrome') > -1;\n\t };\n\n\t var isFirefox = function() {\n\t return navigator.userAgent.toLowerCase().indexOf('firefox') > -1;\n\t }; \n\n\t var isSafari = function() {\n\t return navigator.userAgent.toLowerCase().indexOf('safari') > -1;\n\t };\n\t\t\t\n\t var isIE11Plus = function() {\n\t \treturn document.documentMode && document.documentMode >= 11;\n\t };\n\n\n\t var Semaphore = function() {\n\t this.count = 0;\n\t this.pending = [];\n\t };\n\n\t Semaphore.prototype.incr = function() {\n\t this.count++;\n\t };\n\n\t Semaphore.prototype.decr = function() {\n\t this.count--;\n\t this.flush();\n\t };\n\n\t Semaphore.prototype.whenReady = function(fn) {\n\t this.pending.push(fn);\n\t this.flush();\n\t };\n\n\t Semaphore.prototype.flush = function() {\n\t if (this.count === 0) {\n\t this.pending.forEach(function(fn) { fn(); });\n\t this.pending = [];\n\t }\n\t };\n\n\n\t var Fetcher = function(opts) {\n\t this.sem = new Semaphore();\n\t this.sync = opts && opts.sync;\n\t this.mapForUri = opts && opts.cacheGlobally ? global_mapForUri : {};\n\t };\n\n\t Fetcher.prototype.ajax = function(uri, callback) {\n\t var xhr = createXMLHTTPObject();\n\t var that = this;\n\t xhr.onreadystatechange = function() {\n\t if (xhr.readyState == 4) {\n\t callback.call(that, xhr, uri);\n\t }\n\t };\n\t xhr.open(\"GET\", uri, !this.sync);\n\t xhr.send();\n\t }\n\n\t Fetcher.prototype.fetchScript = function(uri) {\n\t if (!(uri in this.mapForUri)) {\n\t this.sem.incr();\n\t this.mapForUri[uri] = null;\n\t } else {\n\t return;\n\t }\n\n\t this.ajax(uri, this.onScriptLoad);\n\t };\n\n\t var absUrlRegex = new RegExp('^(?:[a-z]+:)?//', 'i');\n\n\t Fetcher.prototype.onScriptLoad = function(xhr, uri) {\n\t if (xhr.status === 200 || (uri.slice(0, 7) === \"file://\" && xhr.status === 0)) {\n\t // find .map in file.\n\t //\n\t // attempt to find it at the very end of the file, but tolerate trailing\n\t // whitespace inserted by some packers.\n\t var match = xhr.responseText.match(\"//# [s]ourceMappingURL=(.*)[\\\\s]*$\", \"m\");\n\t if (match && match.length === 2) {\n\t // get the map\n\t var mapUri = match[1];\n\n\t var embeddedSourceMap = mapUri.match(\"data:application/json;(charset=[^;]+;)?base64,(.*)\");\n\n\t if (embeddedSourceMap && embeddedSourceMap[2]) {\n\t this.mapForUri[uri] = new source_map_consumer.SourceMapConsumer(atob(embeddedSourceMap[2]));\n\t this.sem.decr();\n\t } else {\n\t if (!absUrlRegex.test(mapUri)) {\n\t // relative url; according to sourcemaps spec is 'source origin'\n\t var origin;\n\t var lastSlash = uri.lastIndexOf('/');\n\t if (lastSlash !== -1) {\n\t origin = uri.slice(0, lastSlash + 1);\n\t mapUri = origin + mapUri;\n\t // note if lastSlash === -1, actual script uri has no slash\n\t // somehow, so no way to use it as a prefix... we give up and try\n\t // as absolute\n\t }\n\t }\n\n\t this.ajax(mapUri, function(xhr) {\n\t if (xhr.status === 200 || (mapUri.slice(0, 7) === \"file://\" && xhr.status === 0)) {\n\t this.mapForUri[uri] = new source_map_consumer.SourceMapConsumer(xhr.responseText);\n\t }\n\t this.sem.decr();\n\t });\n\t }\n\t } else {\n\t // no map\n\t this.sem.decr();\n\t }\n\t } else {\n\t // HTTP error fetching uri of the script\n\t this.sem.decr();\n\t }\n\t };\n\n\t var processSourceMaps = function(lines, rows, mapForUri, traceFormat) {\n\t var result = [];\n\t var map;\n\t var origName = traceFormat === \"chrome\" ? origNameChrome : origNameFirefox;\n\t for (var i=0; i < lines.length; i++) {\n\t var row = rows[i];\n\t if (row) {\n\t var uri = row[1];\n\t var line = parseInt(row[2], 10);\n\t var column = parseInt(row[3], 10);\n\t map = mapForUri[uri];\n\n\t if (map) {\n\t // we think we have a map for that uri. call source-map library\n\t var origPos = map.originalPositionFor(\n\t { line: line, column: column });\n\t result.push(formatOriginalPosition(origPos.source,\n\t origPos.line, origPos.column, origPos.name || origName(lines[i])));\n\t } else {\n\t // we can't find a map for that url, but we parsed the row.\n\t // reformat unchanged line for consistency with the sourcemapped\n\t // lines.\n\t result.push(formatOriginalPosition(uri, line, column, origName(lines[i])));\n\t }\n\t } else {\n\t // we weren't able to parse the row, push back what we were given\n\t result.push(lines[i]);\n\t }\n\t }\n\n\t return result;\n\t };\n\n\t function origNameChrome(origLine) {\n\t var match = / +at +([^ ]*).*/.exec(origLine);\n\t return match && match[1];\n\t }\n\n\t function origNameFirefox(origLine) {\n\t var match = /([^@]*)@.*/.exec(origLine);\n\t return match && match[1];\n\t }\n\n\t var formatOriginalPosition = function(source, line, column, name) {\n\t // mimic chrome's format\n\t return \" at \" + (name ? name : \"(unknown)\") +\n\t \" (\" + source + \":\" + line + \":\" + column + \")\";\n\t };\n\n\t // xmlhttprequest boilerplate\n\t var XMLHttpFactories = [\n\t\tfunction () {return new XMLHttpRequest();},\n\t\tfunction () {return new ActiveXObject(\"Msxml2.XMLHTTP\");},\n\t\tfunction () {return new ActiveXObject(\"Msxml3.XMLHTTP\");},\n\t\tfunction () {return new ActiveXObject(\"Microsoft.XMLHTTP\");}\n\t ];\n\n\t function createXMLHTTPObject() {\n\t var xmlhttp = false;\n\t for (var i=0;i<XMLHttpFactories.length;i++) {\n\t try {\n\t xmlhttp = XMLHttpFactories[i]();\n\t }\n\t catch (e) {\n\t continue;\n\t }\n\t break;\n\t }\n\t return xmlhttp;\n\t }\n\n\t return {\n\t mapStackTrace: mapStackTrace\n\t }\n\t}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\n\tvar util = __webpack_require__(2);\n\tvar binarySearch = __webpack_require__(3);\n\tvar ArraySet = __webpack_require__(4).ArraySet;\n\tvar base64VLQ = __webpack_require__(5);\n\tvar quickSort = __webpack_require__(7).quickSort;\n\n\tfunction SourceMapConsumer(aSourceMap) {\n\t var sourceMap = aSourceMap;\n\t if (typeof aSourceMap === 'string') {\n\t sourceMap = JSON.parse(aSourceMap.replace(/^\\)\\]\\}'/, ''));\n\t }\n\n\t return sourceMap.sections != null\n\t ? new IndexedSourceMapConsumer(sourceMap)\n\t : new BasicSourceMapConsumer(sourceMap);\n\t}\n\n\tSourceMapConsumer.fromSourceMap = function(aSourceMap) {\n\t return BasicSourceMapConsumer.fromSourceMap(aSourceMap);\n\t}\n\n\t/**\n\t * The version of the source mapping spec that we are consuming.\n\t */\n\tSourceMapConsumer.prototype._version = 3;\n\n\t// `__generatedMappings` and `__originalMappings` are arrays that hold the\n\t// parsed mapping coordinates from the source map's \"mappings\" attribute. They\n\t// are lazily instantiated, accessed via the `_generatedMappings` and\n\t// `_originalMappings` getters respectively, and we only parse the mappings\n\t// and create these arrays once queried for a source location. We jump through\n\t// these hoops because there can be many thousands of mappings, and parsing\n\t// them is expensive, so we only want to do it if we must.\n\t//\n\t// Each object in the arrays is of the form:\n\t//\n\t// {\n\t// generatedLine: The line number in the generated code,\n\t// generatedColumn: The column number in the generated code,\n\t// source: The path to the original source file that generated this\n\t// chunk of code,\n\t// originalLine: The line number in the original source that\n\t// corresponds to this chunk of generated code,\n\t// originalColumn: The column number in the original source that\n\t// corresponds to this chunk of generated code,\n\t// name: The name of the original symbol which generated this chunk of\n\t// code.\n\t// }\n\t//\n\t// All properties except for `generatedLine` and `generatedColumn` can be\n\t// `null`.\n\t//\n\t// `_generatedMappings` is ordered by the generated positions.\n\t//\n\t// `_originalMappings` is ordered by the original positions.\n\n\tSourceMapConsumer.prototype.__generatedMappings = null;\n\tObject.defineProperty(SourceMapConsumer.prototype, '_generatedMappings', {\n\t get: function () {\n\t if (!this.__generatedMappings) {\n\t this._parseMappings(this._mappings, this.sourceRoot);\n\t }\n\n\t return this.__generatedMappings;\n\t }\n\t});\n\n\tSourceMapConsumer.prototype.__originalMappings = null;\n\tObject.defineProperty(SourceMapConsumer.prototype, '_originalMappings', {\n\t get: function () {\n\t if (!this.__originalMappings) {\n\t this._parseMappings(this._mappings, this.sourceRoot);\n\t }\n\n\t return this.__originalMappings;\n\t }\n\t});\n\n\tSourceMapConsumer.prototype._charIsMappingSeparator =\n\t function SourceMapConsumer_charIsMappingSeparator(aStr, index) {\n\t var c = aStr.charAt(index);\n\t return c === \";\" || c === \",\";\n\t };\n\n\t/**\n\t * Parse the mappings in a string in to a data structure which we can easily\n\t * query (the ordered arrays in the `this.__generatedMappings` and\n\t * `this.__originalMappings` properties).\n\t */\n\tSourceMapConsumer.prototype._parseMappings =\n\t function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n\t throw new Error(\"Subclasses must implement _parseMappings\");\n\t };\n\n\tSourceMapConsumer.GENERATED_ORDER = 1;\n\tSourceMapConsumer.ORIGINAL_ORDER = 2;\n\n\tSourceMapConsumer.GREATEST_LOWER_BOUND = 1;\n\tSourceMapConsumer.LEAST_UPPER_BOUND = 2;\n\n\t/**\n\t * Iterate over each mapping between an original source/line/column and a\n\t * generated line/column in this source map.\n\t *\n\t * @param Function aCallback\n\t * The function that is called with each mapping.\n\t * @param Object aContext\n\t * Optional. If specified, this object will be the value of `this` every\n\t * time that `aCallback` is called.\n\t * @param aOrder\n\t * Either `SourceMapConsumer.GENERATED_ORDER` or\n\t * `SourceMapConsumer.ORIGINAL_ORDER`. Specifies whether you want to\n\t * iterate over the mappings sorted by the generated file's line/column\n\t * order or the original's source/line/column order, respectively. Defaults to\n\t * `SourceMapConsumer.GENERATED_ORDER`.\n\t */\n\tSourceMapConsumer.prototype.eachMapping =\n\t function SourceMapConsumer_eachMapping(aCallback, aContext, aOrder) {\n\t var context = aContext || null;\n\t var order = aOrder || SourceMapConsumer.GENERATED_ORDER;\n\n\t var mappings;\n\t switch (order) {\n\t case SourceMapConsumer.GENERATED_ORDER:\n\t mappings = this._generatedMappings;\n\t break;\n\t case SourceMapConsumer.ORIGINAL_ORDER:\n\t mappings = this._originalMappings;\n\t break;\n\t default:\n\t throw new Error(\"Unknown order of iteration.\");\n\t }\n\n\t var sourceRoot = this.sourceRoot;\n\t mappings.map(function (mapping) {\n\t var source = mapping.source === null ? null : this._sources.at(mapping.source);\n\t if (source != null && sourceRoot != null) {\n\t source = util.join(sourceRoot, source);\n\t }\n\t return {\n\t source: source,\n\t generatedLine: mapping.generatedLine,\n\t generatedColumn: mapping.generatedColumn,\n\t originalLine: mapping.originalLine,\n\t originalColumn: mapping.originalColumn,\n\t name: mapping.name === null ? null : this._names.at(mapping.name)\n\t };\n\t }, this).forEach(aCallback, context);\n\t };\n\n\t/**\n\t * Returns all generated line and column information for the original source,\n\t * line, and column provided. If no column is provided, returns all mappings\n\t * corresponding to a either the line we are searching for or the next\n\t * closest line that has any mappings. Otherwise, returns all mappings\n\t * corresponding to the given line and either the column we are searching for\n\t * or the next closest column that has any offsets.\n\t *\n\t * The only argument is an object with the following properties:\n\t *\n\t * - source: The filename of the original source.\n\t * - line: The line number in the original source.\n\t * - column: Optional. the column number in the original source.\n\t *\n\t * and an array of objects is returned, each with the following properties:\n\t *\n\t * - line: The line number in the generated source, or null.\n\t * - column: The column number in the generated source, or null.\n\t */\n\tSourceMapConsumer.prototype.allGeneratedPositionsFor =\n\t function SourceMapConsumer_allGeneratedPositionsFor(aArgs) {\n\t var line = util.getArg(aArgs, 'line');\n\n\t // When there is no exact match, BasicSourceMapConsumer.prototype._findMapping\n\t // returns the index of the closest mapping less than the needle. By\n\t // setting needle.originalColumn to 0, we thus find the last mapping for\n\t // the given line, provided such a mapping exists.\n\t var needle = {\n\t source: util.getArg(aArgs, 'source'),\n\t originalLine: line,\n\t originalColumn: util.getArg(aArgs, 'column', 0)\n\t };\n\n\t if (this.sourceRoot != null) {\n\t needle.source = util.relative(this.sourceRoot, needle.source);\n\t }\n\t if (!this._sources.has(needle.source)) {\n\t return [];\n\t }\n\t needle.source = this._sources.indexOf(needle.source);\n\n\t var mappings = [];\n\n\t var index = this._findMapping(needle,\n\t this._originalMappings,\n\t \"originalLine\",\n\t \"originalColumn\",\n\t util.compareByOriginalPositions,\n\t binarySearch.LEAST_UPPER_BOUND);\n\t if (index >= 0) {\n\t var mapping = this._originalMappings[index];\n\n\t if (aArgs.column === undefined) {\n\t var originalLine = mapping.originalLine;\n\n\t // Iterate until either we run out of mappings, or we run into\n\t // a mapping for a different line than the one we found. Since\n\t // mappings are sorted, this is guaranteed to find all mappings for\n\t // the line we found.\n\t while (mapping && mapping.originalLine === originalLine) {\n\t mappings.push({\n\t line: util.getArg(mapping, 'generatedLine', null),\n\t column: util.getArg(mapping, 'generatedColumn', null),\n\t lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n\t });\n\n\t mapping = this._originalMappings[++index];\n\t }\n\t } else {\n\t var originalColumn = mapping.originalColumn;\n\n\t // Iterate until either we run out of mappings, or we run into\n\t // a mapping for a different line than the one we were searching for.\n\t // Since mappings are sorted, this is guaranteed to find all mappings for\n\t // the line we are searching for.\n\t while (mapping &&\n\t mapping.originalLine === line &&\n\t mapping.originalColumn == originalColumn) {\n\t mappings.push({\n\t line: util.getArg(mapping, 'generatedLine', null),\n\t column: util.getArg(mapping, 'generatedColumn', null),\n\t lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n\t });\n\n\t mapping = this._originalMappings[++index];\n\t }\n\t }\n\t }\n\n\t return mappings;\n\t };\n\n\texports.SourceMapConsumer = SourceMapConsumer;\n\n\t/**\n\t * A BasicSourceMapConsumer instance represents a parsed source map which we can\n\t * query for information about the original file positions by giving it a file\n\t * position in the generated source.\n\t *\n\t * The only parameter is the raw source map (either as a JSON string, or\n\t * already parsed to an object). According to the spec, source maps have the\n\t * following attributes:\n\t *\n\t * - version: Which version of the source map spec this map is following.\n\t * - sources: An array of URLs to the original source files.\n\t * - names: An array of identifiers which can be referrenced by individual mappings.\n\t * - sourceRoot: Optional. The URL root from which all sources are relative.\n\t * - sourcesContent: Optional. An array of contents of the original source files.\n\t * - mappings: A string of base64 VLQs which contain the actual mappings.\n\t * - file: Optional. The generated file this source map is associated with.\n\t *\n\t * Here is an example source map, taken from the source map spec[0]:\n\t *\n\t * {\n\t * version : 3,\n\t * file: \"out.js\",\n\t * sourceRoot : \"\",\n\t * sources: [\"foo.js\", \"bar.js\"],\n\t * names: [\"src\", \"maps\", \"are\", \"fun\"],\n\t * mappings: \"AA,AB;;ABCDE;\"\n\t * }\n\t *\n\t * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit?pli=1#\n\t */\n\tfunction BasicSourceMapConsumer(aSourceMap) {\n\t var sourceMap = aSourceMap;\n\t if (typeof aSourceMap === 'string') {\n\t sourceMap = JSON.parse(aSourceMap.replace(/^\\)\\]\\}'/, ''));\n\t }\n\n\t var version = util.getArg(sourceMap, 'version');\n\t var sources = util.getArg(sourceMap, 'sources');\n\t // Sass 3.3 leaves out the 'names' array, so we deviate from the spec (which\n\t // requires the array) to play nice here.\n\t var names = util.getArg(sourceMap, 'names', []);\n\t var sourceRoot = util.getArg(sourceMap, 'sourceRoot', null);\n\t var sourcesContent = util.getArg(sourceMap, 'sourcesContent', null);\n\t var mappings = util.getArg(sourceMap, 'mappings');\n\t var file = util.getArg(sourceMap, 'file', null);\n\n\t // Once again, Sass deviates from the spec and supplies the version as a\n\t // string rather than a number, so we use loose equality checking here.\n\t if (version != this._version) {\n\t throw new Error('Unsupported version: ' + version);\n\t }\n\n\t sources = sources\n\t .map(String)\n\t // Some source maps produce relative source paths like \"./foo.js\" instead of\n\t // \"foo.js\". Normalize these first so that future comparisons will succeed.\n\t // See bugzil.la/1090768.\n\t .map(util.normalize)\n\t // Always ensure that absolute sources are internally stored relative to\n\t // the source root, if the source root is absolute. Not doing this would\n\t // be particularly problematic when the source root is a prefix of the\n\t // source (valid, but why??). See github issue #199 and bugzil.la/1188982.\n\t .map(function (source) {\n\t return sourceRoot && util.isAbsolute(sourceRoot) && util.isAbsolute(source)\n\t ? util.relative(sourceRoot, source)\n\t : source;\n\t });\n\n\t // Pass `true` below to allow duplicate names and sources. While source maps\n\t // are intended to be compressed and deduplicated, the TypeScript compiler\n\t // sometimes generates source maps with duplicates in them. See Github issue\n\t // #72 and bugzil.la/889492.\n\t this._names = ArraySet.fromArray(names.map(String), true);\n\t this._sources = ArraySet.fromArray(sources, true);\n\n\t this.sourceRoot = sourceRoot;\n\t this.sourcesContent = sourcesContent;\n\t this._mappings = mappings;\n\t this.file = file;\n\t}\n\n\tBasicSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);\n\tBasicSourceMapConsumer.prototype.consumer = SourceMapConsumer;\n\n\t/**\n\t * Create a BasicSourceMapConsumer from a SourceMapGenerator.\n\t *\n\t * @param SourceMapGenerator aSourceMap\n\t * The source map that will be consumed.\n\t * @returns BasicSourceMapConsumer\n\t */\n\tBasicSourceMapConsumer.fromSourceMap =\n\t function SourceMapConsumer_fromSourceMap(aSourceMap) {\n\t var smc = Object.create(BasicSourceMapConsumer.prototype);\n\n\t var names = smc._names = ArraySet.fromArray(aSourceMap._names.toArray(), true);\n\t var sources = smc._sources = ArraySet.fromArray(aSourceMap._sources.toArray(), true);\n\t smc.sourceRoot = aSourceMap._sourceRoot;\n\t smc.sourcesContent = aSourceMap._generateSourcesContent(smc._sources.toArray(),\n\t smc.sourceRoot);\n\t smc.file = aSourceMap._file;\n\n\t // Because we are modifying the entries (by converting string sources and\n\t // names to indices into the sources and names ArraySets), we have to make\n\t // a copy of the entry or else bad things happen. Shared mutable state\n\t // strikes again! See github issue #191.\n\n\t var generatedMappings = aSourceMap._mappings.toArray().slice();\n\t var destGeneratedMappings = smc.__generatedMappings = [];\n\t var destOriginalMappings = smc.__originalMappings = [];\n\n\t for (var i = 0, length = generatedMappings.length; i < length; i++) {\n\t var srcMapping = generatedMappings[i];\n\t var destMapping = new Mapping;\n\t destMapping.generatedLine = srcMapping.generatedLine;\n\t destMapping.generatedColumn = srcMapping.generatedColumn;\n\n\t if (srcMapping.source) {\n\t destMapping.source = sources.indexOf(srcMapping.source);\n\t destMapping.originalLine = srcMapping.originalLine;\n\t destMapping.originalColumn = srcMapping.originalColumn;\n\n\t if (srcMapping.name) {\n\t destMapping.name = names.indexOf(srcMapping.name);\n\t }\n\n\t destOriginalMappings.push(destMapping);\n\t }\n\n\t destGeneratedMappings.push(destMapping);\n\t }\n\n\t quickSort(smc.__originalMappings, util.compareByOriginalPositions);\n\n\t return smc;\n\t };\n\n\t/**\n\t * The version of the source mapping spec that we are consuming.\n\t */\n\tBasicSourceMapConsumer.prototype._version = 3;\n\n\t/**\n\t * The list of original sources.\n\t */\n\tObject.defineProperty(BasicSourceMapConsumer.prototype, 'sources', {\n\t get: function () {\n\t return this._sources.toArray().map(function (s) {\n\t return this.sourceRoot != null ? util.join(this.sourceRoot, s) : s;\n\t }, this);\n\t }\n\t});\n\n\t/**\n\t * Provide the JIT with a nice shape / hidden class.\n\t */\n\tfunction Mapping() {\n\t this.generatedLine = 0;\n\t this.generatedColumn = 0;\n\t this.source = null;\n\t this.originalLine = null;\n\t this.originalColumn = null;\n\t this.name = null;\n\t}\n\n\t/**\n\t * Parse the mappings in a string in to a data structure which we can easily\n\t * query (the ordered arrays in the `this.__generatedMappings` and\n\t * `this.__originalMappings` properties).\n\t */\n\tBasicSourceMapConsumer.prototype._parseMappings =\n\t function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n\t var generatedLine = 1;\n\t var previousGeneratedColumn = 0;\n\t var previousOriginalLine = 0;\n\t var previousOriginalColumn = 0;\n\t var previousSource = 0;\n\t var previousName = 0;\n\t var length = aStr.length;\n\t var index = 0;\n\t var cachedSegments = {};\n\t var temp = {};\n\t var originalMappings = [];\n\t var generatedMappings = [];\n\t var mapping, str, segment, end, value;\n\n\t while (index < length) {\n\t if (aStr.charAt(index) === ';') {\n\t generatedLine++;\n\t index++;\n\t previousGeneratedColumn = 0;\n\t }\n\t else if (aStr.charAt(index) === ',') {\n\t index++;\n\t }\n\t else {\n\t mapping = new Mapping();\n\t mapping.generatedLine = generatedLine;\n\n\t // Because each offset is encoded relative to the previous one,\n\t // many segments often have the same encoding. We can exploit this\n\t // fact by caching the parsed variable length fields of each segment,\n\t // allowing us to avoid a second parse if we encounter the same\n\t // segment again.\n\t for (end = index; end < length; end++) {\n\t if (this._charIsMappingSeparator(aStr, end)) {\n\t break;\n\t }\n\t }\n\t str = aStr.slice(index, end);\n\n\t segment = cachedSegments[str];\n\t if (segment) {\n\t index += str.length;\n\t } else {\n\t segment = [];\n\t while (index < end) {\n\t base64VLQ.decode(aStr, index, temp);\n\t value = temp.value;\n\t index = temp.rest;\n\t segment.push(value);\n\t }\n\n\t if (segment.length === 2) {\n\t throw new Error('Found a source, but no line and column');\n\t }\n\n\t if (segment.length === 3) {\n\t throw new Error('Found a source and line, but no column');\n\t }\n\n\t cachedSegments[str] = segment;\n\t }\n\n\t // Generated column.\n\t mapping.generatedColumn = previousGeneratedColumn + segment[0];\n\t previousGeneratedColumn = mapping.generatedColumn;\n\n\t if (segment.length > 1) {\n\t // Original source.\n\t mapping.source = previousSource + segment[1];\n\t previousSource += segment[1];\n\n\t // Original line.\n\t mapping.originalLine = previousOriginalLine + segment[2];\n\t previousOriginalLine = mapping.originalLine;\n\t // Lines are stored 0-based\n\t mapping.originalLine += 1;\n\n\t // Original column.\n\t mapping.originalColumn = previousOriginalColumn + segment[3];\n\t previousOriginalColumn = mapping.originalColumn;\n\n\t if (segment.length > 4) {\n\t // Original name.\n\t mapping.name = previousName + segment[4];\n\t previousName += segment[4];\n\t }\n\t }\n\n\t generatedMappings.push(mapping);\n\t if (typeof mapping.originalLine === 'number') {\n\t originalMappings.push(mapping);\n\t }\n\t }\n\t }\n\n\t quickSort(generatedMappings, util.compareByGeneratedPositionsDeflated);\n\t this.__generatedMappings = generatedMappings;\n\n\t quickSort(originalMappings, util.compareByOriginalPositions);\n\t this.__originalMappings = originalMappings;\n\t };\n\n\t/**\n\t * Find the mapping that best matches the hypothetical \"needle\" mapping that\n\t * we are searching for in the given \"haystack\" of mappings.\n\t */\n\tBasicSourceMapConsumer.prototype._findMapping =\n\t function SourceMapConsumer_findMapping(aNeedle, aMappings, aLineName,\n\t aColumnName, aComparator, aBias) {\n\t // To return the position we are searching for, we must first find the\n\t // mapping for the given position and then return the opposite position it\n\t // points to. Because the mappings are sorted, we can use binary search to\n\t // find the best mapping.\n\n\t if (aNeedle[aLineName] <= 0) {\n\t throw new TypeError('Line must be greater than or equal to 1, got '\n\t + aNeedle[aLineName]);\n\t }\n\t if (aNeedle[aColumnName] < 0) {\n\t throw new TypeError('Column must be greater than or equal to 0, got '\n\t + aNeedle[aColumnName]);\n\t }\n\n\t return binarySearch.search(aNeedle, aMappings, aComparator, aBias);\n\t };\n\n\t/**\n\t * Compute the last column for each generated mapping. The last column is\n\t * inclusive.\n\t */\n\tBasicSourceMapConsumer.prototype.computeColumnSpans =\n\t function SourceMapConsumer_computeColumnSpans() {\n\t for (var index = 0; index < this._generatedMappings.length; ++index) {\n\t var mapping = this._generatedMappings[index];\n\n\t // Mappings do not contain a field for the last generated columnt. We\n\t // can come up with an optimistic estimate, however, by assuming that\n\t // mappings are contiguous (i.e. given two consecutive mappings, the\n\t // first mapping ends where the second one starts).\n\t if (index + 1 < this._generatedMappings.length) {\n\t var nextMapping = this._generatedMappings[index + 1];\n\n\t if (mapping.generatedLine === nextMapping.generatedLine) {\n\t mapping.lastGeneratedColumn = nextMapping.generatedColumn - 1;\n\t continue;\n\t }\n\t }\n\n\t // The last mapping for each line spans the entire line.\n\t mapping.lastGeneratedColumn = Infinity;\n\t }\n\t };\n\n\t/**\n\t * Returns the original source, line, and column information for the generated\n\t * source's line and column positions provided. The only argument is an object\n\t * with the following properties:\n\t *\n\t * - line: The line number in the generated source.\n\t * - column: The column number in the generated source.\n\t * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or\n\t * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the\n\t * closest element that is smaller than or greater than the one we are\n\t * searching for, respectively, if the exact element cannot be found.\n\t * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.\n\t *\n\t * and an object is returned with the following properties:\n\t *\n\t * - source: The original source file, or null.\n\t * - line: The line number in the original source, or null.\n\t * - column: The column number in the original source, or null.\n\t * - name: The original identifier, or null.\n\t */\n\tBasicSourceMapConsumer.prototype.originalPositionFor =\n\t function SourceMapConsumer_originalPositionFor(aArgs) {\n\t var needle = {\n\t generatedLine: util.getArg(aArgs, 'line'),\n\t generatedColumn: util.getArg(aArgs, 'column')\n\t };\n\n\t var index = this._findMapping(\n\t needle,\n\t this._generatedMappings,\n\t \"generatedLine\",\n\t \"generatedColumn\",\n\t util.compareByGeneratedPositionsDeflated,\n\t util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)\n\t );\n\n\t if (index >= 0) {\n\t var mapping = this._generatedMappings[index];\n\n\t if (mapping.generatedLine === needle.generatedLine) {\n\t var source = util.getArg(mapping, 'source', null);\n\t if (source !== null) {\n\t source = this._sources.at(source);\n\t if (this.sourceRoot != null) {\n\t source = util.join(this.sourceRoot, source);\n\t }\n\t }\n\t var name = util.getArg(mapping, 'name', null);\n\t if (name !== null) {\n\t name = this._names.at(name);\n\t }\n\t return {\n\t source: source,\n\t line: util.getArg(mapping, 'originalLine', null),\n\t column: util.getArg(mapping, 'originalColumn', null),\n\t name: name\n\t };\n\t }\n\t }\n\n\t return {\n\t source: null,\n\t line: null,\n\t column: null,\n\t name: null\n\t };\n\t };\n\n\t/**\n\t * Return true if we have the source content for every source in the source\n\t * map, false otherwise.\n\t */\n\tBasicSourceMapConsumer.prototype.hasContentsOfAllSources =\n\t function BasicSourceMapConsumer_hasContentsOfAllSources() {\n\t if (!this.sourcesContent) {\n\t return false;\n\t }\n\t return this.sourcesContent.length >= this._sources.size() &&\n\t !this.sourcesContent.some(function (sc) { return sc == null; });\n\t };\n\n\t/**\n\t * Returns the original source content. The only argument is the url of the\n\t * original source file. Returns null if no original source content is\n\t * available.\n\t */\n\tBasicSourceMapConsumer.prototype.sourceContentFor =\n\t function SourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {\n\t if (!this.sourcesContent) {\n\t return null;\n\t }\n\n\t if (this.sourceRoot != null) {\n\t aSource = util.relative(this.sourceRoot, aSource);\n\t }\n\n\t if (this._sources.has(aSource)) {\n\t return this.sourcesContent[this._sources.indexOf(aSource)];\n\t }\n\n\t var url;\n\t if (this.sourceRoot != null\n\t && (url = util.urlParse(this.sourceRoot))) {\n\t // XXX: file:// URIs and absolute paths lead to unexpected behavior for\n\t // many users. We can help them out when they expect file:// URIs to\n\t // behave like it would if they were running a local HTTP server. See\n\t // https://bugzilla.mozilla.org/show_bug.cgi?id=885597.\n\t var fileUriAbsPath = aSource.replace(/^file:\\/\\//, \"\");\n\t if (url.scheme == \"file\"\n\t && this._sources.has(fileUriAbsPath)) {\n\t return this.sourcesContent[this._sources.indexOf(fileUriAbsPath)]\n\t }\n\n\t if ((!url.path || url.path == \"/\")\n\t && this._sources.has(\"/\" + aSource)) {\n\t return this.sourcesContent[this._sources.indexOf(\"/\" + aSource)];\n\t }\n\t }\n\n\t // This function is used recursively from\n\t // IndexedSourceMapConsumer.prototype.sourceContentFor. In that case, we\n\t // don't want to throw if we can't find the source - we just want to\n\t // return null, so we provide a flag to exit gracefully.\n\t if (nullOnMissing) {\n\t return null;\n\t }\n\t else {\n\t throw new Error('\"' + aSource + '\" is not in the SourceMap.');\n\t }\n\t };\n\n\t/**\n\t * Returns the generated line and column information for the original source,\n\t * line, and column positions provided. The only argument is an object with\n\t * the following properties:\n\t *\n\t * - source: The filename of the original source.\n\t * - line: The line number in the original source.\n\t * - column: The column number in the original source.\n\t * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or\n\t * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the\n\t * closest element that is smaller than or greater than the one we are\n\t * searching for, respectively, if the exact element cannot be found.\n\t * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.\n\t *\n\t * and an object is returned with the following properties:\n\t *\n\t * - line: The line number in the generated source, or null.\n\t * - column: The column number in the generated source, or null.\n\t */\n\tBasicSourceMapConsumer.prototype.generatedPositionFor =\n\t function SourceMapConsumer_generatedPositionFor(aArgs) {\n\t var source = util.getArg(aArgs, 'source');\n\t if (this.sourceRoot != null) {\n\t source = util.relative(this.sourceRoot, source);\n\t }\n\t if (!this._sources.has(source)) {\n\t return {\n\t line: null,\n\t column: null,\n\t lastColumn: null\n\t };\n\t }\n\t source = this._sources.indexOf(source);\n\n\t var needle = {\n\t source: source,\n\t originalLine: util.getArg(aArgs, 'line'),\n\t originalColumn: util.getArg(aArgs, 'column')\n\t };\n\n\t var index = this._findMapping(\n\t needle,\n\t this._originalMappings,\n\t \"originalLine\",\n\t \"originalColumn\",\n\t util.compareByOriginalPositions,\n\t util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)\n\t );\n\n\t if (index >= 0) {\n\t var mapping = this._originalMappings[index];\n\n\t if (mapping.source === needle.source) {\n\t return {\n\t line: util.getArg(mapping, 'generatedLine', null),\n\t column: util.getArg(mapping, 'generatedColumn', null),\n\t lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n\t };\n\t }\n\t }\n\n\t return {\n\t line: null,\n\t column: null,\n\t lastColumn: null\n\t };\n\t };\n\n\texports.BasicSourceMapConsumer = BasicSourceMapConsumer;\n\n\t/**\n\t * An IndexedSourceMapConsumer instance represents a parsed source map which\n\t * we can query for information. It differs from BasicSourceMapConsumer in\n\t * that it takes \"indexed\" source maps (i.e. ones with a \"sections\" field) as\n\t * input.\n\t *\n\t * The only parameter is a raw source map (either as a JSON string, or already\n\t * parsed to an object). According to the spec for indexed source maps, they\n\t * have the following attributes:\n\t *\n\t * - version: Which version of the source map spec this map is following.\n\t * - file: Optional. The generated file this source map is associated with.\n\t * - sections: A list of section definitions.\n\t *\n\t * Each value under the \"sections\" field has two fields:\n\t * - offset: The offset into the original specified at which this section\n\t * begins to apply, defined as an object with a \"line\" and \"column\"\n\t * field.\n\t * - map: A source map definition. This source map could also be indexed,\n\t * but doesn't have to be.\n\t *\n\t * Instead of the \"map\" field, it's also possible to have a \"url\" field\n\t * specifying a URL to retrieve a source map from, but that's currently\n\t * unsupported.\n\t *\n\t * Here's an example source map, taken from the source map spec[0], but\n\t * modified to omit a section which uses the \"url\" field.\n\t *\n\t * {\n\t * version : 3,\n\t * file: \"app.js\",\n\t * sections: [{\n\t * offset: {line:100, column:10},\n\t * map: {\n\t * version : 3,\n\t * file: \"section.js\",\n\t * sources: [\"foo.js\", \"bar.js\"],\n\t * names: [\"src\", \"maps\", \"are\", \"fun\"],\n\t * mappings: \"AAAA,E;;ABCDE;\"\n\t * }\n\t * }],\n\t * }\n\t *\n\t * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit#heading=h.535es3xeprgt\n\t */\n\tfunction IndexedSourceMapConsumer(aSourceMap) {\n\t var sourceMap = aSourceMap;\n\t if (typeof aSourceMap === 'string') {\n\t sourceMap = JSON.parse(aSourceMap.replace(/^\\)\\]\\}'/, ''));\n\t }\n\n\t var version = util.getArg(sourceMap, 'version');\n\t var sections = util.getArg(sourceMap, 'sections');\n\n\t if (version != this._version) {\n\t throw new Error('Unsupported version: ' + version);\n\t }\n\n\t this._sources = new ArraySet();\n\t this._names = new ArraySet();\n\n\t var lastOffset = {\n\t line: -1,\n\t column: 0\n\t };\n\t this._sections = sections.map(function (s) {\n\t if (s.url) {\n\t // The url field will require support for asynchronicity.\n\t // See https://github.com/mozilla/source-map/issues/16\n\t throw new Error('Support for url field in sections not implemented.');\n\t }\n\t var offset = util.getArg(s, 'offset');\n\t var offsetLine = util.getArg(offset, 'line');\n\t var offsetColumn = util.getArg(offset, 'column');\n\n\t if (offsetLine < lastOffset.line ||\n\t (offsetLine === lastOffset.line && offsetColumn < lastOffset.column)) {\n\t throw new Error('Section offsets must be ordered and non-overlapping.');\n\t }\n\t lastOffset = offset;\n\n\t return {\n\t generatedOffset: {\n\t // The offset fields are 0-based, but we use 1-based indices when\n\t // encoding/decoding from VLQ.\n\t generatedLine: offsetLine + 1,\n\t generatedColumn: offsetColumn + 1\n\t },\n\t consumer: new SourceMapConsumer(util.getArg(s, 'map'))\n\t }\n\t });\n\t}\n\n\tIndexedSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);\n\tIndexedSourceMapConsumer.prototype.constructor = SourceMapConsumer;\n\n\t/**\n\t * The version of the source mapping spec that we are consuming.\n\t */\n\tIndexedSourceMapConsumer.prototype._version = 3;\n\n\t/**\n\t * The list of original sources.\n\t */\n\tObject.defineProperty(IndexedSourceMapConsumer.prototype, 'sources', {\n\t get: function () {\n\t var sources = [];\n\t for (var i = 0; i < this._sections.length; i++) {\n\t for (var j = 0; j < this._sections[i].consumer.sources.length; j++) {\n\t sources.push(this._sections[i].consumer.sources[j]);\n\t }\n\t }\n\t return sources;\n\t }\n\t});\n\n\t/**\n\t * Returns the original source, line, and column information for the generated\n\t * source's line and column positions provided. The only argument is an object\n\t * with the following properties:\n\t *\n\t * - line: The line number in the generated source.\n\t * - column: The column number in the generated source.\n\t *\n\t * and an object is returned with the following properties:\n\t *\n\t * - source: The original source file, or null.\n\t * - line: The line number in the original source, or null.\n\t * - column: The column number in the original source, or null.\n\t * - name: The original identifier, or null.\n\t */\n\tIndexedSourceMapConsumer.prototype.originalPositionFor =\n\t function IndexedSourceMapConsumer_originalPositionFor(aArgs) {\n\t var needle = {\n\t generatedLine: util.getArg(aArgs, 'line'),\n\t generatedColumn: util.getArg(aArgs, 'column')\n\t };\n\n\t // Find the section containing the generated position we're trying to map\n\t // to an original position.\n\t var sectionIndex = binarySearch.search(needle, this._sections,\n\t function(needle, section) {\n\t var cmp = needle.generatedLine - section.generatedOffset.generatedLine;\n\t if (cmp) {\n\t return cmp;\n\t }\n\n\t return (needle.generatedColumn -\n\t section.generatedOffset.generatedColumn);\n\t });\n\t var section = this._sections[sectionIndex];\n\n\t if (!section) {\n\t return {\n\t source: null,\n\t line: null,\n\t column: null,\n\t name: null\n\t };\n\t }\n\n\t return section.consumer.originalPositionFor({\n\t line: needle.generatedLine -\n\t (section.generatedOffset.generatedLine - 1),\n\t column: needle.generatedColumn -\n\t (section.generatedOffset.generatedLine === needle.generatedLine\n\t ? section.generatedOffset.generatedColumn - 1\n\t : 0),\n\t bias: aArgs.bias\n\t });\n\t };\n\n\t/**\n\t * Return true if we have the source content for every source in the source\n\t * map, false otherwise.\n\t */\n\tIndexedSourceMapConsumer.prototype.hasContentsOfAllSources =\n\t function IndexedSourceMapConsumer_hasContentsOfAllSources() {\n\t return this._sections.every(function (s) {\n\t return s.consumer.hasContentsOfAllSources();\n\t });\n\t };\n\n\t/**\n\t * Returns the original source content. The only argument is the url of the\n\t * original source file. Returns null if no original source content is\n\t * available.\n\t */\n\tIndexedSourceMapConsumer.prototype.sourceContentFor =\n\t function IndexedSourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {\n\t for (var i = 0; i < this._sections.length; i++) {\n\t var section = this._sections[i];\n\n\t var content = section.consumer.sourceContentFor(aSource, true);\n\t if (content) {\n\t return content;\n\t }\n\t }\n\t if (nullOnMissing) {\n\t return null;\n\t }\n\t else {\n\t throw new Error('\"' + aSource + '\" is not in the SourceMap.');\n\t }\n\t };\n\n\t/**\n\t * Returns the generated line and column information for the original source,\n\t * line, and column positions provided. The only argument is an object with\n\t * the following properties:\n\t *\n\t * - source: The filename of the original source.\n\t * - line: The line number in the original source.\n\t * - column: The column number in the original source.\n\t *\n\t * and an object is returned with the following properties:\n\t *\n\t * - line: The line number in the generated source, or null.\n\t * - column: The column number in the generated source, or null.\n\t */\n\tIndexedSourceMapConsumer.prototype.generatedPositionFor =\n\t function IndexedSourceMapConsumer_generatedPositionFor(aArgs) {\n\t for (var i = 0; i < this._sections.length; i++) {\n\t var section = this._sections[i];\n\n\t // Only consider this section if the requested source is in the list of\n\t // sources of the consumer.\n\t if (section.consumer.sources.indexOf(util.getArg(aArgs, 'source')) === -1) {\n\t continue;\n\t }\n\t var generatedPosition = section.consumer.generatedPositionFor(aArgs);\n\t if (generatedPosition) {\n\t var ret = {\n\t line: generatedPosition.line +\n\t (section.generatedOffset.generatedLine - 1),\n\t column: generatedPosition.column +\n\t (section.generatedOffset.generatedLine === generatedPosition.line\n\t ? section.generatedOffset.generatedColumn - 1\n\t : 0)\n\t };\n\t return ret;\n\t }\n\t }\n\n\t return {\n\t line: null,\n\t column: null\n\t };\n\t };\n\n\t/**\n\t * Parse the mappings in a string in to a data structure which we can easily\n\t * query (the ordered arrays in the `this.__generatedMappings` and\n\t * `this.__originalMappings` properties).\n\t */\n\tIndexedSourceMapConsumer.prototype._parseMappings =\n\t function IndexedSourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n\t this.__generatedMappings = [];\n\t this.__originalMappings = [];\n\t for (var i = 0; i < this._sections.length; i++) {\n\t var section = this._sections[i];\n\t var sectionMappings = section.consumer._generatedMappings;\n\t for (var j = 0; j < sectionMappings.length; j++) {\n\t var mapping = sectionMappings[j];\n\n\t var source = section.consumer._sources.at(mapping.source);\n\t if (section.consumer.sourceRoot !== null) {\n\t source = util.join(section.consumer.sourceRoot, source);\n\t }\n\t this._sources.add(source);\n\t source = this._sources.indexOf(source);\n\n\t var name = section.consumer._names.at(mapping.name);\n\t this._names.add(name);\n\t name = this._names.indexOf(name);\n\n\t // The mappings coming from the consumer for the section have\n\t // generated positions relative to the start of the section, so we\n\t // need to offset them to be relative to the start of the concatenated\n\t // generated file.\n\t var adjustedMapping = {\n\t source: source,\n\t generatedLine: mapping.generatedLine +\n\t (section.generatedOffset.generatedLine - 1),\n\t generatedColumn: mapping.generatedColumn +\n\t (section.generatedOffset.generatedLine === mapping.generatedLine\n\t ? section.generatedOffset.generatedColumn - 1\n\t : 0),\n\t originalLine: mapping.originalLine,\n\t originalColumn: mapping.originalColumn,\n\t name: name\n\t };\n\n\t this.__generatedMappings.push(adjustedMapping);\n\t if (typeof adjustedMapping.originalLine === 'number') {\n\t this.__originalMappings.push(adjustedMapping);\n\t }\n\t }\n\t }\n\n\t quickSort(this.__generatedMappings, util.compareByGeneratedPositionsDeflated);\n\t quickSort(this.__originalMappings, util.compareByOriginalPositions);\n\t };\n\n\texports.IndexedSourceMapConsumer = IndexedSourceMapConsumer;\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\n\t/**\n\t * This is a helper function for getting values from parameter/options\n\t * objects.\n\t *\n\t * @param args The object we are extracting values from\n\t * @param name The name of the property we are getting.\n\t * @param defaultValue An optional value to return if the property is missing\n\t * from the object. If this is not specified and the property is missing, an\n\t * error will be thrown.\n\t */\n\tfunction getArg(aArgs, aName, aDefaultValue) {\n\t if (aName in aArgs) {\n\t return aArgs[aName];\n\t } else if (arguments.length === 3) {\n\t return aDefaultValue;\n\t } else {\n\t throw new Error('\"' + aName + '\" is a required argument.');\n\t }\n\t}\n\texports.getArg = getArg;\n\n\tvar urlRegexp = /^(?:([\\w+\\-.]+):)?\\/\\/(?:(\\w+:\\w+)@)?([\\w.]*)(?::(\\d+))?(\\S*)$/;\n\tvar dataUrlRegexp = /^data:.+\\,.+$/;\n\n\tfunction urlParse(aUrl) {\n\t var match = aUrl.match(urlRegexp);\n\t if (!match) {\n\t return null;\n\t }\n\t return {\n\t scheme: match[1],\n\t auth: match[2],\n\t host: match[3],\n\t port: match[4],\n\t path: match[5]\n\t };\n\t}\n\texports.urlParse = urlParse;\n\n\tfunction urlGenerate(aParsedUrl) {\n\t var url = '';\n\t if (aParsedUrl.scheme) {\n\t url += aParsedUrl.scheme + ':';\n\t }\n\t url += '//';\n\t if (aParsedUrl.auth) {\n\t url += aParsedUrl.auth + '@';\n\t }\n\t if (aParsedUrl.host) {\n\t url += aParsedUrl.host;\n\t }\n\t if (aParsedUrl.port) {\n\t url += \":\" + aParsedUrl.port\n\t }\n\t if (aParsedUrl.path) {\n\t url += aParsedUrl.path;\n\t }\n\t return url;\n\t}\n\texports.urlGenerate = urlGenerate;\n\n\t/**\n\t * Normalizes a path, or the path portion of a URL:\n\t *\n\t * - Replaces consecutive slashes with one slash.\n\t * - Removes unnecessary '.' parts.\n\t * - Removes unnecessary '<dir>/..' parts.\n\t *\n\t * Based on code in the Node.js 'path' core module.\n\t *\n\t * @param aPath The path or url to normalize.\n\t */\n\tfunction normalize(aPath) {\n\t var path = aPath;\n\t var url = urlParse(aPath);\n\t if (url) {\n\t if (!url.path) {\n\t return aPath;\n\t }\n\t path = url.path;\n\t }\n\t var isAbsolute = exports.isAbsolute(path);\n\n\t var parts = path.split(/\\/+/);\n\t for (var part, up = 0, i = parts.length - 1; i >= 0; i--) {\n\t part = parts[i];\n\t if (part === '.') {\n\t parts.splice(i, 1);\n\t } else if (part === '..') {\n\t up++;\n\t } else if (up > 0) {\n\t if (part === '') {\n\t // The first part is blank if the path is absolute. Trying to go\n\t // above the root is a no-op. Therefore we can remove all '..' parts\n\t // directly after the root.\n\t parts.splice(i + 1, up);\n\t up = 0;\n\t } else {\n\t parts.splice(i, 2);\n\t up--;\n\t }\n\t }\n\t }\n\t path = parts.join('/');\n\n\t if (path === '') {\n\t path = isAbsolute ? '/' : '.';\n\t }\n\n\t if (url) {\n\t url.path = path;\n\t return urlGenerate(url);\n\t }\n\t return path;\n\t}\n\texports.normalize = normalize;\n\n\t/**\n\t * Joins two paths/URLs.\n\t *\n\t * @param aRoot The root path or URL.\n\t * @param aPath The path or URL to be joined with the root.\n\t *\n\t * - If aPath is a URL or a data URI, aPath is returned, unless aPath is a\n\t * scheme-relative URL: Then the scheme of aRoot, if any, is prepended\n\t * first.\n\t * - Otherwise aPath is a path. If aRoot is a URL, then its path portion\n\t * is updated with the result and aRoot is returned. Otherwise the result\n\t * is returned.\n\t * - If aPath is absolute, the result is aPath.\n\t * - Otherwise the two paths are joined with a slash.\n\t * - Joining for example 'http://' and 'www.example.com' is also supported.\n\t */\n\tfunction join(aRoot, aPath) {\n\t if (aRoot === \"\") {\n\t aRoot = \".\";\n\t }\n\t if (aPath === \"\") {\n\t aPath = \".\";\n\t }\n\t var aPathUrl = urlParse(aPath);\n\t var aRootUrl = urlParse(aRoot);\n\t if (aRootUrl) {\n\t aRoot = aRootUrl.path || '/';\n\t }\n\n\t // `join(foo, '//www.example.org')`\n\t if (aPathUrl && !aPathUrl.scheme) {\n\t if (aRootUrl) {\n\t aPathUrl.scheme = aRootUrl.scheme;\n\t }\n\t return urlGenerate(aPathUrl);\n\t }\n\n\t if (aPathUrl || aPath.match(dataUrlRegexp)) {\n\t return aPath;\n\t }\n\n\t // `join('http://', 'www.example.com')`\n\t if (aRootUrl && !aRootUrl.host && !aRootUrl.path) {\n\t aRootUrl.host = aPath;\n\t return urlGenerate(aRootUrl);\n\t }\n\n\t var joined = aPath.charAt(0) === '/'\n\t ? aPath\n\t : normalize(aRoot.replace(/\\/+$/, '') + '/' + aPath);\n\n\t if (aRootUrl) {\n\t aRootUrl.path = joined;\n\t return urlGenerate(aRootUrl);\n\t }\n\t return joined;\n\t}\n\texports.join = join;\n\n\texports.isAbsolute = function (aPath) {\n\t return aPath.charAt(0) === '/' || !!aPath.match(urlRegexp);\n\t};\n\n\t/**\n\t * Make a path relative to a URL or another path.\n\t *\n\t * @param aRoot The root path or URL.\n\t * @param aPath The path or URL to be made relative to aRoot.\n\t */\n\tfunction relative(aRoot, aPath) {\n\t if (aRoot === \"\") {\n\t aRoot = \".\";\n\t }\n\n\t aRoot = aRoot.replace(/\\/$/, '');\n\n\t // It is possible for the path to be above the root. In this case, simply\n\t // checking whether the root is a prefix of the path won't work. Instead, we\n\t // need to remove components from the root one by one, until either we find\n\t // a prefix that fits, or we run out of components to remove.\n\t var level = 0;\n\t while (aPath.indexOf(aRoot + '/') !== 0) {\n\t var index = aRoot.lastIndexOf(\"/\");\n\t if (index < 0) {\n\t return aPath;\n\t }\n\n\t // If the only part of the root that is left is the scheme (i.e. http://,\n\t // file:///, etc.), one or more slashes (/), or simply nothing at all, we\n\t // have exhausted all components, so the path is not relative to the root.\n\t aRoot = aRoot.slice(0, index);\n\t if (aRoot.match(/^([^\\/]+:\\/)?\\/*$/)) {\n\t return aPath;\n\t }\n\n\t ++level;\n\t }\n\n\t // Make sure we add a \"../\" for each component we removed from the root.\n\t return Array(level + 1).join(\"../\") + aPath.substr(aRoot.length + 1);\n\t}\n\texports.relative = relative;\n\n\tvar supportsNullProto = (function () {\n\t var obj = Object.create(null);\n\t return !('__proto__' in obj);\n\t}());\n\n\tfunction identity (s) {\n\t return s;\n\t}\n\n\t/**\n\t * Because behavior goes wacky when you set `__proto__` on objects, we\n\t * have to prefix all the strings in our set with an arbitrary character.\n\t *\n\t * See https://github.com/mozilla/source-map/pull/31 and\n\t * https://github.com/mozilla/source-map/issues/30\n\t *\n\t * @param String aStr\n\t */\n\tfunction toSetString(aStr) {\n\t if (isProtoString(aStr)) {\n\t return '$' + aStr;\n\t }\n\n\t return aStr;\n\t}\n\texports.toSetString = supportsNullProto ? identity : toSetString;\n\n\tfunction fromSetString(aStr) {\n\t if (isProtoString(aStr)) {\n\t return aStr.slice(1);\n\t }\n\n\t return aStr;\n\t}\n\texports.fromSetString = supportsNullProto ? identity : fromSetString;\n\n\tfunction isProtoString(s) {\n\t if (!s) {\n\t return false;\n\t }\n\n\t var length = s.length;\n\n\t if (length < 9 /* \"__proto__\".length */) {\n\t return false;\n\t }\n\n\t if (s.charCodeAt(length - 1) !== 95 /* '_' */ ||\n\t s.charCodeAt(length - 2) !== 95 /* '_' */ ||\n\t s.charCodeAt(length - 3) !== 111 /* 'o' */ ||\n\t s.charCodeAt(length - 4) !== 116 /* 't' */ ||\n\t s.charCodeAt(length - 5) !== 111 /* 'o' */ ||\n\t s.charCodeAt(length - 6) !== 114 /* 'r' */ ||\n\t s.charCodeAt(length - 7) !== 112 /* 'p' */ ||\n\t s.charCodeAt(length - 8) !== 95 /* '_' */ ||\n\t s.charCodeAt(length - 9) !== 95 /* '_' */) {\n\t return false;\n\t }\n\n\t for (var i = length - 10; i >= 0; i--) {\n\t if (s.charCodeAt(i) !== 36 /* '$' */) {\n\t return false;\n\t }\n\t }\n\n\t return true;\n\t}\n\n\t/**\n\t * Comparator between two mappings where the original positions are compared.\n\t *\n\t * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n\t * mappings with the same original source/line/column, but different generated\n\t * line and column the same. Useful when searching for a mapping with a\n\t * stubbed out mapping.\n\t */\n\tfunction compareByOriginalPositions(mappingA, mappingB, onlyCompareOriginal) {\n\t var cmp = mappingA.source - mappingB.source;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.originalLine - mappingB.originalLine;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.originalColumn - mappingB.originalColumn;\n\t if (cmp !== 0 || onlyCompareOriginal) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.generatedLine - mappingB.generatedLine;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t return mappingA.name - mappingB.name;\n\t}\n\texports.compareByOriginalPositions = compareByOriginalPositions;\n\n\t/**\n\t * Comparator between two mappings with deflated source and name indices where\n\t * the generated positions are compared.\n\t *\n\t * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n\t * mappings with the same generated line and column, but different\n\t * source/name/original line and column the same. Useful when searching for a\n\t * mapping with a stubbed out mapping.\n\t */\n\tfunction compareByGeneratedPositionsDeflated(mappingA, mappingB, onlyCompareGenerated) {\n\t var cmp = mappingA.generatedLine - mappingB.generatedLine;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n\t if (cmp !== 0 || onlyCompareGenerated) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.source - mappingB.source;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.originalLine - mappingB.originalLine;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.originalColumn - mappingB.originalColumn;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t return mappingA.name - mappingB.name;\n\t}\n\texports.compareByGeneratedPositionsDeflated = compareByGeneratedPositionsDeflated;\n\n\tfunction strcmp(aStr1, aStr2) {\n\t if (aStr1 === aStr2) {\n\t return 0;\n\t }\n\n\t if (aStr1 > aStr2) {\n\t return 1;\n\t }\n\n\t return -1;\n\t}\n\n\t/**\n\t * Comparator between two mappings with inflated source and name strings where\n\t * the generated positions are compared.\n\t */\n\tfunction compareByGeneratedPositionsInflated(mappingA, mappingB) {\n\t var cmp = mappingA.generatedLine - mappingB.generatedLine;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = strcmp(mappingA.source, mappingB.source);\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.originalLine - mappingB.originalLine;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.originalColumn - mappingB.originalColumn;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t return strcmp(mappingA.name, mappingB.name);\n\t}\n\texports.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflated;\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\n\texports.GREATEST_LOWER_BOUND = 1;\n\texports.LEAST_UPPER_BOUND = 2;\n\n\t/**\n\t * Recursive implementation of binary search.\n\t *\n\t * @param aLow Indices here and lower do not contain the needle.\n\t * @param aHigh Indices here and higher do not contain the needle.\n\t * @param aNeedle The element being searched for.\n\t * @param aHaystack The non-empty array being searched.\n\t * @param aCompare Function which takes two elements and returns -1, 0, or 1.\n\t * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n\t * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the\n\t * closest element that is smaller than or greater than the one we are\n\t * searching for, respectively, if the exact element cannot be found.\n\t */\n\tfunction recursiveSearch(aLow, aHigh, aNeedle, aHaystack, aCompare, aBias) {\n\t // This function terminates when one of the following is true:\n\t //\n\t // 1. We find the exact element we are looking for.\n\t //\n\t // 2. We did not find the exact element, but we can return the index of\n\t // the next-closest element.\n\t //\n\t // 3. We did not find the exact element, and there is no next-closest\n\t // element than the one we are searching for, so we return -1.\n\t var mid = Math.floor((aHigh - aLow) / 2) + aLow;\n\t var cmp = aCompare(aNeedle, aHaystack[mid], true);\n\t if (cmp === 0) {\n\t // Found the element we are looking for.\n\t return mid;\n\t }\n\t else if (cmp > 0) {\n\t // Our needle is greater than aHaystack[mid].\n\t if (aHigh - mid > 1) {\n\t // The element is in the upper half.\n\t return recursiveSearch(mid, aHigh, aNeedle, aHaystack, aCompare, aBias);\n\t }\n\n\t // The exact needle element was not found in this haystack. Determine if\n\t // we are in termination case (3) or (2) and return the appropriate thing.\n\t if (aBias == exports.LEAST_UPPER_BOUND) {\n\t return aHigh < aHaystack.length ? aHigh : -1;\n\t } else {\n\t return mid;\n\t }\n\t }\n\t else {\n\t // Our needle is less than aHaystack[mid].\n\t if (mid - aLow > 1) {\n\t // The element is in the lower half.\n\t return recursiveSearch(aLow, mid, aNeedle, aHaystack, aCompare, aBias);\n\t }\n\n\t // we are in termination case (3) or (2) and return the appropriate thing.\n\t if (aBias == exports.LEAST_UPPER_BOUND) {\n\t return mid;\n\t } else {\n\t return aLow < 0 ? -1 : aLow;\n\t }\n\t }\n\t}\n\n\t/**\n\t * This is an implementation of binary search which will always try and return\n\t * the index of the closest element if there is no exact hit. This is because\n\t * mappings between original and generated line/col pairs are single points,\n\t * and there is an implicit region between each of them, so a miss just means\n\t * that you aren't on the very start of a region.\n\t *\n\t * @param aNeedle The element you are looking for.\n\t * @param aHaystack The array that is being searched.\n\t * @param aCompare A function which takes the needle and an element in the\n\t * array and returns -1, 0, or 1 depending on whether the needle is less\n\t * than, equal to, or greater than the element, respectively.\n\t * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n\t * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the\n\t * closest element that is smaller than or greater than the one we are\n\t * searching for, respectively, if the exact element cannot be found.\n\t * Defaults to 'binarySearch.GREATEST_LOWER_BOUND'.\n\t */\n\texports.search = function search(aNeedle, aHaystack, aCompare, aBias) {\n\t if (aHaystack.length === 0) {\n\t return -1;\n\t }\n\n\t var index = recursiveSearch(-1, aHaystack.length, aNeedle, aHaystack,\n\t aCompare, aBias || exports.GREATEST_LOWER_BOUND);\n\t if (index < 0) {\n\t return -1;\n\t }\n\n\t // We have found either the exact element, or the next-closest element than\n\t // the one we are searching for. However, there may be more than one such\n\t // element. Make sure we always return the smallest of these.\n\t while (index - 1 >= 0) {\n\t if (aCompare(aHaystack[index], aHaystack[index - 1], true) !== 0) {\n\t break;\n\t }\n\t --index;\n\t }\n\n\t return index;\n\t};\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\n\tvar util = __webpack_require__(2);\n\tvar has = Object.prototype.hasOwnProperty;\n\n\t/**\n\t * A data structure which is a combination of an array and a set. Adding a new\n\t * member is O(1), testing for membership is O(1), and finding the index of an\n\t * element is O(1). Removing elements from the set is not supported. Only\n\t * strings are supported for membership.\n\t */\n\tfunction ArraySet() {\n\t this._array = [];\n\t this._set = Object.create(null);\n\t}\n\n\t/**\n\t * Static method for creating ArraySet instances from an existing array.\n\t */\n\tArraySet.fromArray = function ArraySet_fromArray(aArray, aAllowDuplicates) {\n\t var set = new ArraySet();\n\t for (var i = 0, len = aArray.length; i < len; i++) {\n\t set.add(aArray[i], aAllowDuplicates);\n\t }\n\t return set;\n\t};\n\n\t/**\n\t * Return how many unique items are in this ArraySet. If duplicates have been\n\t * added, than those do not count towards the size.\n\t *\n\t * @returns Number\n\t */\n\tArraySet.prototype.size = function ArraySet_size() {\n\t return Object.getOwnPropertyNames(this._set).length;\n\t};\n\n\t/**\n\t * Add the given string to this set.\n\t *\n\t * @param String aStr\n\t */\n\tArraySet.prototype.add = function ArraySet_add(aStr, aAllowDuplicates) {\n\t var sStr = util.toSetString(aStr);\n\t var isDuplicate = has.call(this._set, sStr);\n\t var idx = this._array.length;\n\t if (!isDuplicate || aAllowDuplicates) {\n\t this._array.push(aStr);\n\t }\n\t if (!isDuplicate) {\n\t this._set[sStr] = idx;\n\t }\n\t};\n\n\t/**\n\t * Is the given string a member of this set?\n\t *\n\t * @param String aStr\n\t */\n\tArraySet.prototype.has = function ArraySet_has(aStr) {\n\t var sStr = util.toSetString(aStr);\n\t return has.call(this._set, sStr);\n\t};\n\n\t/**\n\t * What is the index of the given string in the array?\n\t *\n\t * @param String aStr\n\t */\n\tArraySet.prototype.indexOf = function ArraySet_indexOf(aStr) {\n\t var sStr = util.toSetString(aStr);\n\t if (has.call(this._set, sStr)) {\n\t return this._set[sStr];\n\t }\n\t throw new Error('\"' + aStr + '\" is not in the set.');\n\t};\n\n\t/**\n\t * What is the element at the given index?\n\t *\n\t * @param Number aIdx\n\t */\n\tArraySet.prototype.at = function ArraySet_at(aIdx) {\n\t if (aIdx >= 0 && aIdx < this._array.length) {\n\t return this._array[aIdx];\n\t }\n\t throw new Error('No element indexed by ' + aIdx);\n\t};\n\n\t/**\n\t * Returns the array representation of this set (which has the proper indices\n\t * indicated by indexOf). Note that this is a copy of the internal array used\n\t * for storing the members so that no one can mess with internal state.\n\t */\n\tArraySet.prototype.toArray = function ArraySet_toArray() {\n\t return this._array.slice();\n\t};\n\n\texports.ArraySet = ArraySet;\n\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t *\n\t * Based on the Base 64 VLQ implementation in Closure Compiler:\n\t * https://code.google.com/p/closure-compiler/source/browse/trunk/src/com/google/debugging/sourcemap/Base64VLQ.java\n\t *\n\t * Copyright 2011 The Closure Compiler Authors. All rights reserved.\n\t * Redistribution and use in source and binary forms, with or without\n\t * modification, are permitted provided that the following conditions are\n\t * met:\n\t *\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\n\t * copyright notice, this list of conditions and the following\n\t * disclaimer in the documentation and/or other materials provided\n\t * with the distribution.\n\t * * Neither the name of Google Inc. nor the names of its\n\t * contributors may be used to endorse or promote products derived\n\t * from this software without specific prior written permission.\n\t *\n\t * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\t * \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n\t * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n\t * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n\t * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n\t * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n\t * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n\t * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n\t * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n\t * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n\t * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\t */\n\n\tvar base64 = __webpack_require__(6);\n\n\t// A single base 64 digit can contain 6 bits of data. For the base 64 variable\n\t// length quantities we use in the source map spec, the first bit is the sign,\n\t// the next four bits are the actual value, and the 6th bit is the\n\t// continuation bit. The continuation bit tells us whether there are more\n\t// digits in this value following this digit.\n\t//\n\t// Continuation\n\t// | Sign\n\t// | |\n\t// V V\n\t// 101011\n\n\tvar VLQ_BASE_SHIFT = 5;\n\n\t// binary: 100000\n\tvar VLQ_BASE = 1 << VLQ_BASE_SHIFT;\n\n\t// binary: 011111\n\tvar VLQ_BASE_MASK = VLQ_BASE - 1;\n\n\t// binary: 100000\n\tvar VLQ_CONTINUATION_BIT = VLQ_BASE;\n\n\t/**\n\t * Converts from a two-complement value to a value where the sign bit is\n\t * placed in the least significant bit. For example, as decimals:\n\t * 1 becomes 2 (10 binary), -1 becomes 3 (11 binary)\n\t * 2 becomes 4 (100 binary), -2 becomes 5 (101 binary)\n\t */\n\tfunction toVLQSigned(aValue) {\n\t return aValue < 0\n\t ? ((-aValue) << 1) + 1\n\t : (aValue << 1) + 0;\n\t}\n\n\t/**\n\t * Converts to a two-complement value from a value where the sign bit is\n\t * placed in the least significant bit. For example, as decimals:\n\t * 2 (10 binary) becomes 1, 3 (11 binary) becomes -1\n\t * 4 (100 binary) becomes 2, 5 (101 binary) becomes -2\n\t */\n\tfunction fromVLQSigned(aValue) {\n\t var isNegative = (aValue & 1) === 1;\n\t var shifted = aValue >> 1;\n\t return isNegative\n\t ? -shifted\n\t : shifted;\n\t}\n\n\t/**\n\t * Returns the base 64 VLQ encoded value.\n\t */\n\texports.encode = function base64VLQ_encode(aValue) {\n\t var encoded = \"\";\n\t var digit;\n\n\t var vlq = toVLQSigned(aValue);\n\n\t do {\n\t digit = vlq & VLQ_BASE_MASK;\n\t vlq >>>= VLQ_BASE_SHIFT;\n\t if (vlq > 0) {\n\t // There are still more digits in this value, so we must make sure the\n\t // continuation bit is marked.\n\t digit |= VLQ_CONTINUATION_BIT;\n\t }\n\t encoded += base64.encode(digit);\n\t } while (vlq > 0);\n\n\t return encoded;\n\t};\n\n\t/**\n\t * Decodes the next base 64 VLQ value from the given string and returns the\n\t * value and the rest of the string via the out parameter.\n\t */\n\texports.decode = function base64VLQ_decode(aStr, aIndex, aOutParam) {\n\t var strLen = aStr.length;\n\t var result = 0;\n\t var shift = 0;\n\t var continuation, digit;\n\n\t do {\n\t if (aIndex >= strLen) {\n\t throw new Error(\"Expected more digits in base 64 VLQ value.\");\n\t }\n\n\t digit = base64.decode(aStr.charCodeAt(aIndex++));\n\t if (digit === -1) {\n\t throw new Error(\"Invalid base64 digit: \" + aStr.charAt(aIndex - 1));\n\t }\n\n\t continuation = !!(digit & VLQ_CONTINUATION_BIT);\n\t digit &= VLQ_BASE_MASK;\n\t result = result + (digit << shift);\n\t shift += VLQ_BASE_SHIFT;\n\t } while (continuation);\n\n\t aOutParam.value = fromVLQSigned(result);\n\t aOutParam.rest = aIndex;\n\t};\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\n\tvar intToCharMap = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split('');\n\n\t/**\n\t * Encode an integer in the range of 0 to 63 to a single base 64 digit.\n\t */\n\texports.encode = function (number) {\n\t if (0 <= number && number < intToCharMap.length) {\n\t return intToCharMap[number];\n\t }\n\t throw new TypeError(\"Must be between 0 and 63: \" + number);\n\t};\n\n\t/**\n\t * Decode a single base 64 character code digit to an integer. Returns -1 on\n\t * failure.\n\t */\n\texports.decode = function (charCode) {\n\t var bigA = 65; // 'A'\n\t var bigZ = 90; // 'Z'\n\n\t var littleA = 97; // 'a'\n\t var littleZ = 122; // 'z'\n\n\t var zero = 48; // '0'\n\t var nine = 57; // '9'\n\n\t var plus = 43; // '+'\n\t var slash = 47; // '/'\n\n\t var littleOffset = 26;\n\t var numberOffset = 52;\n\n\t // 0 - 25: ABCDEFGHIJKLMNOPQRSTUVWXYZ\n\t if (bigA <= charCode && charCode <= bigZ) {\n\t return (charCode - bigA);\n\t }\n\n\t // 26 - 51: abcdefghijklmnopqrstuvwxyz\n\t if (littleA <= charCode && charCode <= littleZ) {\n\t return (charCode - littleA + littleOffset);\n\t }\n\n\t // 52 - 61: 0123456789\n\t if (zero <= charCode && charCode <= nine) {\n\t return (charCode - zero + numberOffset);\n\t }\n\n\t // 62: +\n\t if (charCode == plus) {\n\t return 62;\n\t }\n\n\t // 63: /\n\t if (charCode == slash) {\n\t return 63;\n\t }\n\n\t // Invalid base64 digit.\n\t return -1;\n\t};\n\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\n\t// It turns out that some (most?) JavaScript engines don't self-host\n\t// `Array.prototype.sort`. This makes sense because C++ will likely remain\n\t// faster than JS when doing raw CPU-intensive sorting. However, when using a\n\t// custom comparator function, calling back and forth between the VM's C++ and\n\t// JIT'd JS is rather slow *and* loses JIT type information, resulting in\n\t// worse generated code for the comparator function than would be optimal. In\n\t// fact, when sorting with a comparator, these costs outweigh the benefits of\n\t// sorting in C++. By using our own JS-implemented Quick Sort (below), we get\n\t// a ~3500ms mean speed-up in `bench/bench.html`.\n\n\t/**\n\t * Swap the elements indexed by `x` and `y` in the array `ary`.\n\t *\n\t * @param {Array} ary\n\t * The array.\n\t * @param {Number} x\n\t * The index of the first item.\n\t * @param {Number} y\n\t * The index of the second item.\n\t */\n\tfunction swap(ary, x, y) {\n\t var temp = ary[x];\n\t ary[x] = ary[y];\n\t ary[y] = temp;\n\t}\n\n\t/**\n\t * Returns a random integer within the range `low .. high` inclusive.\n\t *\n\t * @param {Number} low\n\t * The lower bound on the range.\n\t * @param {Number} high\n\t * The upper bound on the range.\n\t */\n\tfunction randomIntInRange(low, high) {\n\t return Math.round(low + (Math.random() * (high - low)));\n\t}\n\n\t/**\n\t * The Quick Sort algorithm.\n\t *\n\t * @param {Array} ary\n\t * An array to sort.\n\t * @param {function} comparator\n\t * Function to use to compare two items.\n\t * @param {Number} p\n\t * Start index of the array\n\t * @param {Number} r\n\t * End index of the array\n\t */\n\tfunction doQuickSort(ary, comparator, p, r) {\n\t // If our lower bound is less than our upper bound, we (1) partition the\n\t // array into two pieces and (2) recurse on each half. If it is not, this is\n\t // the empty array and our base case.\n\n\t if (p < r) {\n\t // (1) Partitioning.\n\t //\n\t // The partitioning chooses a pivot between `p` and `r` and moves all\n\t // elements that are less than or equal to the pivot to the before it, and\n\t // all the elements that are greater than it after it. The effect is that\n\t // once partition is done, the pivot is in the exact place it will be when\n\t // the array is put in sorted order, and it will not need to be moved\n\t // again. This runs in O(n) time.\n\n\t // Always choose a random pivot so that an input array which is reverse\n\t // sorted does not cause O(n^2) running time.\n\t var pivotIndex = randomIntInRange(p, r);\n\t var i = p - 1;\n\n\t swap(ary, pivotIndex, r);\n\t var pivot = ary[r];\n\n\t // Immediately after `j` is incremented in this loop, the following hold\n\t // true:\n\t //\n\t // * Every element in `ary[p .. i]` is less than or equal to the pivot.\n\t //\n\t // * Every element in `ary[i+1 .. j-1]` is greater than the pivot.\n\t for (var j = p; j < r; j++) {\n\t if (comparator(ary[j], pivot) <= 0) {\n\t i += 1;\n\t swap(ary, i, j);\n\t }\n\t }\n\n\t swap(ary, i + 1, j);\n\t var q = i + 1;\n\n\t // (2) Recurse on each half.\n\n\t doQuickSort(ary, comparator, p, q - 1);\n\t doQuickSort(ary, comparator, q + 1, r);\n\t }\n\t}\n\n\t/**\n\t * Sort the given array in-place with the given comparator function.\n\t *\n\t * @param {Array} ary\n\t * An array to sort.\n\t * @param {function} comparator\n\t * Function to use to compare two items.\n\t */\n\texports.quickSort = function (ary, comparator) {\n\t doQuickSort(ary, comparator, 0, ary.length - 1);\n\t};\n\n\n/***/ })\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 collections.register('cat_texture', [\r\n 'textures/entity/cat/tabby.png',\r\n 'textures/entity/cat/black.png',\r\n 'textures/entity/cat/red.png',\r\n 'textures/entity/cat/siamese.png',\r\n 'textures/entity/cat/british_shorthair.png',\r\n 'textures/entity/cat/calico.png',\r\n 'textures/entity/cat/persian.png',\r\n 'textures/entity/cat/ragdoll.png',\r\n 'textures/entity/cat/white.png',\r\n 'textures/entity/cat/jellie.png',\r\n 'textures/entity/cat/all_black.png'\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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n Properties: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'fluid' } }),\r\n Properties: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ListNode)((0, core_1.NumberNode)({ integer: true })), {\r\n default: () => [0, 0, 0]\r\n }));\r\n exports.Range = (config) => (0, core_1.ChoiceNode)([\r\n ...((config === null || config === void 0 ? void 0 : config.forceRange) ? [] : [{\r\n type: 'number',\r\n node: (0, 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: (0, core_1.ObjectNode)({\r\n min: (config === null || config === void 0 ? void 0 : config.bounds) ? (0, core_1.NumberNode)(config) : (0, core_1.Opt)((0, core_1.NumberNode)(config)),\r\n max: (config === null || config === void 0 ? void 0 : config.bounds) ? (0, core_1.NumberNode)(config) : (0, core_1.Opt)((0, 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: (0, core_1.ObjectNode)({\r\n type: StringNode({ enum: ['minecraft:binomial'] }),\r\n n: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n p: (0, 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: (0, 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: (0, 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: (0, core_1.MapNode)(StringNode({ validator: 'objective' }), (0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:location_check': {\r\n offsetX: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n offsetY: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n offsetZ: (0, core_1.Opt)((0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_chance_with_looting': {\r\n chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n looting_multiplier: (0, 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: (0, core_1.ListNode)((0, core_1.NumberNode)({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:time_check': {\r\n value: (0, exports.Range)(),\r\n period: (0, core_1.Opt)((0, core_1.NumberNode)())\r\n },\r\n 'minecraft:weather_check': {\r\n raining: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n thundering: (0, core_1.Opt)((0, 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 = (0, 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: (0, core_1.NumberNode)(),\r\n change: v => (typeof v === 'string') ? parseInt(v) : 0\r\n },\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)({\r\n min: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n max: (0, core_1.Opt)((0, 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: (0, core_1.BooleanNode)(),\r\n change: v => v === 'true' || v === 1\r\n }\r\n ]);\r\n schemas.register('item_predicate', (0, core_1.ObjectNode)({\r\n item: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$tag/item' } })),\r\n count: (0, core_1.Opt)((0, Common_1.Range)()),\r\n durability: (0, core_1.Opt)((0, Common_1.Range)()),\r\n potion: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'potion' } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } })),\r\n enchantments: (0, core_1.Opt)((0, core_1.ListNode)(Reference('enchantment_predicate')))\r\n }, { context: 'item' }));\r\n schemas.register('enchantment_predicate', (0, core_1.ObjectNode)({\r\n enchantment: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })),\r\n levels: (0, core_1.Opt)((0, Common_1.Range)())\r\n }, { context: 'enchantment' }));\r\n schemas.register('block_predicate', (0, core_1.ObjectNode)({\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n tag: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$tag/block' } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block', id: ['pop', { push: 'block' }] } } })),\r\n state: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n fluid: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'fluid' } })),\r\n tag: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$tag/fluid' } })),\r\n state: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), StateChoice))\r\n }, { context: 'fluid' }));\r\n exports.LocationFields = {\r\n position: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n x: (0, core_1.Opt)((0, Common_1.Range)()),\r\n y: (0, core_1.Opt)((0, Common_1.Range)()),\r\n z: (0, core_1.Opt)((0, Common_1.Range)())\r\n })),\r\n biome: (0, core_1.Opt)(StringNode({ enum: 'biome' })),\r\n feature: (0, core_1.Opt)(StringNode({ enum: 'structure_feature' })),\r\n dimension: (0, core_1.Opt)(StringNode({ enum: 'dimension' })),\r\n light: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n light: (0, core_1.Opt)((0, Common_1.Range)({ integer: true, min: 0, max: 15 }))\r\n })),\r\n block: (0, core_1.Opt)(Reference('block_predicate')),\r\n fluid: (0, core_1.Opt)(Reference('fluid_predicate'))\r\n };\r\n schemas.register('location_predicate', (0, core_1.ObjectNode)(exports.LocationFields, { context: 'location' }));\r\n schemas.register('statistic_predicate', (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'stat_type' } }),\r\n stat: StringNode(),\r\n value: (0, 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', (0, core_1.ObjectNode)({\r\n gamemode: (0, core_1.Opt)(StringNode({ enum: 'gamemode' })),\r\n level: (0, core_1.Opt)((0, Common_1.Range)()),\r\n advancements: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: '$advancement' } }), (0, core_1.ChoiceNode)([\r\n { type: 'boolean', node: (0, core_1.BooleanNode)(), change: _ => true },\r\n {\r\n type: 'object', node: (0, core_1.MapNode)(StringNode(), (0, core_1.BooleanNode)())\r\n }\r\n ]))),\r\n recipes: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: '$recipe' } }), (0, core_1.BooleanNode)())),\r\n stats: (0, core_1.Opt)((0, core_1.ListNode)(Reference('statistic_predicate')))\r\n }, { context: 'player' }));\r\n schemas.register('status_effect_predicate', (0, core_1.ObjectNode)({\r\n amplifier: (0, core_1.Opt)((0, Common_1.Range)()),\r\n duration: (0, core_1.Opt)((0, Common_1.Range)()),\r\n ambient: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n visible: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n }, { context: 'status_effect' }));\r\n schemas.register('distance_predicate', (0, core_1.ObjectNode)({\r\n x: (0, core_1.Opt)((0, Common_1.Range)()),\r\n y: (0, core_1.Opt)((0, Common_1.Range)()),\r\n z: (0, core_1.Opt)((0, Common_1.Range)()),\r\n absolute: (0, core_1.Opt)((0, Common_1.Range)()),\r\n horizontal: (0, core_1.Opt)((0, Common_1.Range)())\r\n }, { context: 'distance' }));\r\n schemas.register('entity_predicate', (0, core_1.ObjectNode)({\r\n type: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'entity_type', allowTag: true } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:entity', id: ['pop', { push: 'type' }] } } })),\r\n team: (0, core_1.Opt)(StringNode({ validator: 'team' })),\r\n location: (0, core_1.Opt)(Reference('location_predicate')),\r\n distance: (0, core_1.Opt)(Reference('distance_predicate')),\r\n flags: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n is_on_fire: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_sneaking: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_sprinting: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_swimming: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_baby: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n })),\r\n equipment: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ enum: 'slot' }), Reference('item_predicate'))),\r\n player: (0, core_1.Opt)(Reference('player_predicate')),\r\n catType: (0, core_1.Opt)(StringNode({ enum: 'cat_texture' })),\r\n effects: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n is_explosion: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_fire: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_magic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_projectile: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_lightning: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_armor: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_invulnerability: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_magic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n source_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n direct_entity: (0, core_1.Opt)(Reference('entity_predicate'))\r\n }, { context: 'damage_source' }));\r\n schemas.register('damage_predicate', (0, core_1.ObjectNode)({\r\n dealt: (0, core_1.Opt)((0, Common_1.Range)()),\r\n taken: (0, core_1.Opt)((0, Common_1.Range)()),\r\n blocked: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n source_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n type: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n display: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n icon: (0, core_1.ObjectNode)({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n nbt: (0, 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: (0, core_1.Opt)(StringNode()),\r\n frame: (0, core_1.Opt)(StringNode({ enum: ['task', 'challenge', 'goal'] })),\r\n show_toast: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n announce_to_chat: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n hidden: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$advancement' } })),\r\n criteria: (0, core_1.MapNode)(StringNode(), Reference('advancement_criteria')),\r\n requirements: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ListNode)(StringNode() // TODO: add validation\r\n ))),\r\n rewards: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n function: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$function' } })),\r\n loot: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$loot_table' } }))),\r\n recipes: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$recipe' } }))),\r\n experience: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n trigger: StringNode({ validator: 'resource', params: { pool: collections.get('advancement_trigger') } }),\r\n conditions: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n num_bees_inside: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:bred_animals': {\r\n parent: (0, core_1.Opt)(Reference('entity_predicate')),\r\n partner: (0, core_1.Opt)(Reference('entity_predicate')),\r\n child: (0, core_1.Opt)(Reference('entity_predicate'))\r\n },\r\n 'minecraft:brewed_potion': {\r\n potion: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'potion' } }))\r\n },\r\n 'minecraft:changed_dimension': {\r\n from: (0, core_1.Opt)(StringNode({ enum: 'dimension' })),\r\n to: (0, core_1.Opt)(StringNode({ enum: 'dimension' }))\r\n },\r\n 'minecraft:channeled_lightning': {\r\n victims: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.Opt)(Reference('entity_predicate'))))\r\n },\r\n 'minecraft:construct_beacon': {\r\n level: (0, core_1.Opt)((0, Common_1.Range)())\r\n },\r\n 'minecraft:consume_item': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:cured_zombie_villager': {\r\n villager: (0, core_1.Opt)(Reference('entity_predicate')),\r\n zombie: (0, core_1.Opt)(Reference('entity_predicate'))\r\n },\r\n 'minecraft:effects_changed': {\r\n effects: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), Reference('status_effect_predicate')))\r\n },\r\n 'minecraft:enter_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, Common_1.Range)()),\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:entity_hurt_player': {\r\n damage: (0, core_1.Opt)(Reference('damage_predicate'))\r\n },\r\n 'minecraft:entity_killed_player': {\r\n entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n killing_blow: (0, core_1.Opt)(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:filled_bucket': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:fishing_rod_hooked': {\r\n entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n item: (0, 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: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n empty: (0, core_1.Opt)((0, Common_1.Range)()),\r\n occupied: (0, core_1.Opt)((0, Common_1.Range)()),\r\n full: (0, core_1.Opt)((0, Common_1.Range)())\r\n })),\r\n items: (0, core_1.Opt)((0, core_1.ListNode)(Reference('item_predicate')))\r\n },\r\n 'minecraft:item_durability_changed': {\r\n delta: (0, core_1.Opt)((0, Common_1.Range)()),\r\n durability: (0, core_1.Opt)((0, Common_1.Range)()),\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:killed_by_crossbow': {\r\n unique_entity_types: (0, core_1.Opt)((0, Common_1.Range)()),\r\n victims: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.Opt)(Reference('entity_predicate'))))\r\n },\r\n 'minecraft:levitation': {\r\n distance: (0, core_1.Opt)((0, Common_1.Range)()),\r\n duration: (0, core_1.Opt)((0, Common_1.Range)())\r\n },\r\n 'minecraft:location': Predicates_1.LocationFields,\r\n 'minecraft:nether_travel': {\r\n distance: (0, core_1.Opt)((0, Common_1.Range)()),\r\n entered: (0, core_1.Opt)(Reference('location_predicate')),\r\n exited: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:placed_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })),\r\n item: (0, core_1.Opt)(Reference('item_predicate')),\r\n location: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:player_hurt_entity': {\r\n damage: (0, core_1.Opt)(Reference('damage_predicate')),\r\n entity: (0, core_1.Opt)(Reference('entity_predicate'))\r\n },\r\n 'minecraft:player_killed_entity': {\r\n entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n killing_blow: (0, 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: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n tag: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$tag/block' } }))\r\n })),\r\n item: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:shot_crossbow': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:summoned_entity': {\r\n entity: (0, core_1.Opt)(Reference('entity_predicate'))\r\n },\r\n 'minecraft:tame_animal': {\r\n entity: (0, core_1.Opt)(Reference('entity_predicate'))\r\n },\r\n 'minecraft:used_ender_eye': {\r\n distance: (0, core_1.Opt)((0, Common_1.Range)())\r\n },\r\n 'minecraft:used_totem': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:villager_trade': {\r\n villager: (0, core_1.Opt)(Reference('entity_predicate')),\r\n item: (0, 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) => (0, core_1.ListNode)((0, core_1.NumberNode)({ min, max }), { minLength: length, maxLength: length });\r\n const Texture = (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n parent: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$model' } })),\r\n ambientocclusion: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n gui_light: (0, core_1.Opt)(StringNode({ enum: 'gui_light' })),\r\n textures: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), Texture)),\r\n elements: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n from: Vec(3, -16, 32),\r\n to: Vec(3, -16, 32),\r\n rotation: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n origin: Vec(3),\r\n axis: StringNode({ enum: 'axis' }),\r\n angle: (0, core_1.NumberEnum)({ values: [-45, -22.5, 0, 22.5, 45] }),\r\n rescale: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n })),\r\n shade: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n faces: (0, core_1.MapNode)(StringNode({ enum: 'direction' }), (0, core_1.ObjectNode)({\r\n texture: Texture,\r\n uv: (0, core_1.Opt)(Vec(4)),\r\n cullface: (0, core_1.Opt)(StringNode({ enum: 'direction' })),\r\n rotation: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n tintindex: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n }))\r\n }, { context: 'model_element' }))),\r\n display: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ enum: 'display_position' }), (0, 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: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n predicate: (0, core_1.MapNode)(StringNode({ enum: 'item_model_predicates' }), (0, 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', (0, core_1.Mod)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'variants',\r\n match: (v) => v.variants !== undefined,\r\n node: (0, core_1.ObjectNode)({\r\n variants: (0, 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: (0, core_1.ObjectNode)({\r\n multipart: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n when: (0, 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: (0, core_1.Opt)((0, core_1.NumberEnum)({ integer: true, values: [0, 90, 180, 270] })),\r\n y: (0, core_1.Opt)((0, core_1.NumberEnum)({ integer: true, values: [0, 90, 180, 270] })),\r\n uvlock: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n };\r\n schemas.register('model_variant', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n node: (0, 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: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n ...VariantChildren,\r\n weight: (0, core_1.Opt)((0, 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', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n priority: -1,\r\n match: () => true,\r\n node: (0, 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: (0, core_1.ObjectNode)({\r\n OR: (0, 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 (0, BlockDefinition_1.initBlockDefinitionSchemas)(schemas, collections);\r\n (0, 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', (0, core_1.ObjectOrList)(Reference('condition'), { choiceContext: 'condition' }));\r\n schemas.register('condition', (0, core_1.Mod)((0, 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: (0, core_1.Opt)((0, core_1.ListNode)(Reference('loot_condition')))\r\n };\r\n const functionsAndConditions = {\r\n functions: (0, core_1.Opt)((0, 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 (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: (0, core_1.Opt)(StringNode({ validator: \"resource\", params: { pool: collections.get('loot_context_type') } })),\r\n pools: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n rolls: (0, Common_1.Range)({ allowBinomial: true, integer: true }),\r\n bonus_rolls: (0, core_1.Opt)((0, Common_1.Range)({ integer: true })),\r\n entries: (0, 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: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'loot_pool_entry_type' } }),\r\n weight: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true, min: 1 }), weightMod)),\r\n quality: (0, core_1.Opt)((0, core_1.Mod)((0, 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: (0, 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: (0, 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: (0, 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: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, 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: (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n bonusMultiplier: (0, core_1.Mod)((0, core_1.NumberNode)(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:uniform_bonus_count'\r\n }),\r\n extra: (0, core_1.Mod)((0, core_1.NumberNode)(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n }),\r\n probability: (0, core_1.Mod)((0, 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: (0, core_1.ListNode)((0, 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: (0, core_1.ListNode)(StringNode({ validator: 'block_state_key', params: { id: ['pop', 'pop', { push: 'block' }] } }))\r\n },\r\n 'minecraft:enchant_randomly': {\r\n enchantments: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })))\r\n },\r\n 'minecraft:enchant_with_levels': {\r\n levels: (0, Common_1.Range)({ allowBinomial: true }),\r\n treasure: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:exploration_map': {\r\n destination: (0, core_1.Opt)(StringNode({ enum: 'structure_feature' })),\r\n decoration: (0, core_1.Opt)(StringNode({ enum: 'map_decoration' })),\r\n zoom: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n search_radius: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n skip_existing_chunks: (0, core_1.Opt)((0, 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: (0, Common_1.Range)({ bounds: true })\r\n },\r\n 'minecraft:looting_enchant': {\r\n count: (0, Common_1.Range)({ bounds: true }),\r\n limit: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:set_attributes': {\r\n modifiers: (0, core_1.ListNode)(Reference('attribute_modifier'))\r\n },\r\n 'minecraft:set_contents': {\r\n entries: (0, core_1.ListNode)(Reference('loot_entry'))\r\n },\r\n 'minecraft:set_count': {\r\n count: (0, Common_1.Range)({ allowBinomial: true })\r\n },\r\n 'minecraft:set_damage': {\r\n damage: (0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:set_lore': {\r\n entity: (0, core_1.Opt)(entitySourceSwtichNode),\r\n lore: (0, core_1.ListNode)(Reference('text_component')),\r\n replace: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_name': {\r\n entity: (0, core_1.Opt)(entitySourceSwtichNode),\r\n name: (0, 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: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }),\r\n duration: (0, 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', (0, core_1.Mod)((0, 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: (0, core_1.MapNode)(StringNode({ validator: 'objective' }), (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n attribute: StringNode({ validator: 'resource', params: { pool: 'attribute' } }),\r\n name: StringNode(),\r\n amount: (0, Common_1.Range)({ bounds: true }),\r\n operation: StringNode({ enum: ['addition', 'multiply_base', 'multiply_total'] }),\r\n slot: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n pack: (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n pack_format: (0, core_1.Mod)((0, core_1.NumberNode)({ integer: true, min: 5, max: 5 }), { default: () => 5 }),\r\n description: (0, 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', (0, core_1.Mod)((0, 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: (0, core_1.Opt)(StringNode({ enum: 'recipe_group', additional: true })),\r\n pattern: (0, core_1.ListNode)(StringNode()),\r\n key: (0, 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: (0, core_1.Opt)(StringNode()),\r\n ingredients: (0, core_1.ListNode)(Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:smelting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 200 }))\r\n },\r\n 'minecraft:blasting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:smoking': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:campfire_cooking': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:stonecutting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:smithing': {\r\n group: (0, 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', (0, core_1.Mod)((0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n item: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.Opt)((0, core_1.Mod)((0, 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) => (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n replace: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n values: (0, core_1.ListNode)((0, 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: (0, core_1.ObjectNode)({\r\n id: StringNode({ validator: 'resource', params: { pool: type, allowTag: true, allowUnknown: true } }),\r\n required: (0, 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', (0, core_1.Mod)((0, 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: (0, 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: (0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n italic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n underlined: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n strikethrough: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n obfuscated: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n insertion: (0, core_1.Opt)(StringNode()),\r\n clickEvent: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(Reference('text_component'))\r\n },\r\n 'show_item': {\r\n value: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { module: 'util::InventoryItem' } }))\r\n },\r\n 'show_entity': {\r\n value: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n name: (0, core_1.Opt)(StringNode()),\r\n type: (0, core_1.Opt)(StringNode()),\r\n id: (0, core_1.Opt)(StringNode())\r\n }))\r\n }\r\n }\r\n })),\r\n extra: (0, core_1.Opt)(Reference('text_component_list'))\r\n };\r\n schemas.register('text_component_object', (0, core_1.Mod)((0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n translate: StringNode(),\r\n with: (0, 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: (0, core_1.ObjectNode)({\r\n score: (0, 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: (0, 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: (0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n nbt: StringNode({ validator: 'nbt_path' }),\r\n block: (0, core_1.Opt)(StringNode({ validator: 'vector', params: { dimension: 3, isInteger: true } })),\r\n entity: (0, core_1.Opt)(StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } })),\r\n storage: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$storage' } })),\r\n interpret: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, 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 (0, Common_1.initCommonSchemas)(schemas, collections);\r\n (0, Predicates_1.initPredicatesSchemas)(schemas, collections);\r\n (0, Advancement_1.initAdvancementSchemas)(schemas, collections);\r\n (0, assets_1.initAssetsSchemas)(schemas, collections);\r\n (0, Condition_1.initConditionSchemas)(schemas, collections);\r\n (0, LootTable_1.initLootTableSchemas)(schemas, collections);\r\n (0, PackMcmeta_1.initPackMcmetaSchemas)(schemas, collections);\r\n (0, Recipe_1.initRecipeSchemas)(schemas, collections);\r\n (0, Tags_1.initTagsSchemas)(schemas, collections);\r\n (0, 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 var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\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.prototype.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 = exports.lootContext = 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 (0, 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 (0, 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 collections.register('cat_texture', [\r\n 'textures/entity/cat/tabby.png',\r\n 'textures/entity/cat/black.png',\r\n 'textures/entity/cat/red.png',\r\n 'textures/entity/cat/siamese.png',\r\n 'textures/entity/cat/british_shorthair.png',\r\n 'textures/entity/cat/calico.png',\r\n 'textures/entity/cat/persian.png',\r\n 'textures/entity/cat/ragdoll.png',\r\n 'textures/entity/cat/white.png',\r\n 'textures/entity/cat/jellie.png',\r\n 'textures/entity/cat/all_black.png'\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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n Properties: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'fluid' } }),\r\n Properties: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ListNode)((0, core_1.NumberNode)({ integer: true }), { minLength: 3, maxLength: 3 }), {\r\n default: () => [0, 0, 0]\r\n }));\r\n exports.Range = (config) => (0, core_1.ChoiceNode)([\r\n ...((config === null || config === void 0 ? void 0 : config.forceRange) ? [] : [{\r\n type: 'number',\r\n node: (0, 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: (0, core_1.ObjectNode)({\r\n min: (config === null || config === void 0 ? void 0 : config.bounds) ? (0, core_1.NumberNode)(config) : (0, core_1.Opt)((0, core_1.NumberNode)(config)),\r\n max: (config === null || config === void 0 ? void 0 : config.bounds) ? (0, core_1.NumberNode)(config) : (0, core_1.Opt)((0, 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: (0, core_1.ObjectNode)({\r\n type: StringNode({ enum: ['minecraft:binomial'] }),\r\n n: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n p: (0, 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) => (0, core_1.ChoiceNode)([\r\n {\r\n type: 'number',\r\n node: (0, 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: (0, core_1.ObjectNode)({\r\n base: (0, 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: (0, 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: (0, 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: (0, 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: (0, core_1.MapNode)(StringNode({ validator: 'objective' }), (0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:location_check': {\r\n offsetX: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n offsetY: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n offsetZ: (0, core_1.Opt)((0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_chance_with_looting': {\r\n chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n looting_multiplier: (0, 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: (0, core_1.ListNode)((0, core_1.NumberNode)({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:time_check': {\r\n value: (0, exports.Range)(),\r\n period: (0, core_1.Opt)((0, core_1.NumberNode)())\r\n },\r\n 'minecraft:weather_check': {\r\n raining: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n thundering: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n }\r\n };\r\n exports.DimensionTypePresets = (node) => (0, 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) => (0, 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 = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n node: (0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n display: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n icon: (0, core_1.ObjectNode)({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n nbt: (0, 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: (0, core_1.Opt)(StringNode()),\r\n frame: (0, core_1.Opt)(StringNode({ enum: ['task', 'challenge', 'goal'] })),\r\n show_toast: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n announce_to_chat: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n hidden: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$advancement' } })),\r\n criteria: (0, core_1.MapNode)(StringNode(), Reference('advancement_criteria')),\r\n requirements: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ListNode)(StringNode() // TODO: add validation\r\n ))),\r\n rewards: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n function: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$function' } })),\r\n loot: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$loot_table' } }))),\r\n recipes: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$recipe' } }))),\r\n experience: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n trigger: StringNode({ validator: 'resource', params: { pool: collections.get('advancement_trigger') } }),\r\n conditions: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n player: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n num_bees_inside: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n item: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'potion' } }))\r\n },\r\n 'minecraft:changed_dimension': {\r\n from: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n to: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$dimension' } }))\r\n },\r\n 'minecraft:channeled_lightning': {\r\n victims: (0, core_1.Opt)((0, core_1.ListNode)(EntityPredicate))\r\n },\r\n 'minecraft:construct_beacon': {\r\n level: (0, core_1.Opt)((0, Common_1.Range)())\r\n },\r\n 'minecraft:consume_item': {\r\n item: (0, 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: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), Reference('status_effect_predicate')))\r\n },\r\n 'minecraft:enter_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, Common_1.Range)()),\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:entity_hurt_player': {\r\n damage: (0, core_1.Opt)(Reference('damage_predicate'))\r\n },\r\n 'minecraft:entity_killed_player': {\r\n entity: EntityPredicate,\r\n killing_blow: (0, core_1.Opt)(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:filled_bucket': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:fishing_rod_hooked': {\r\n entity: EntityPredicate,\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:hero_of_the_village': {\r\n location: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:inventory_changed': {\r\n slots: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n empty: (0, core_1.Opt)((0, Common_1.Range)()),\r\n occupied: (0, core_1.Opt)((0, Common_1.Range)()),\r\n full: (0, core_1.Opt)((0, Common_1.Range)())\r\n })),\r\n items: (0, core_1.Opt)((0, core_1.ListNode)(Reference('item_predicate')))\r\n },\r\n 'minecraft:item_durability_changed': {\r\n delta: (0, core_1.Opt)((0, Common_1.Range)()),\r\n durability: (0, core_1.Opt)((0, Common_1.Range)()),\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:item_used_on_block': {\r\n item: (0, core_1.Opt)(Reference('item_predicate')),\r\n location: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:killed_by_crossbow': {\r\n unique_entity_types: (0, core_1.Opt)((0, Common_1.Range)()),\r\n victims: (0, core_1.Opt)((0, core_1.ListNode)(EntityPredicate))\r\n },\r\n 'minecraft:levitation': {\r\n distance: (0, core_1.Opt)((0, Common_1.Range)()),\r\n duration: (0, core_1.Opt)((0, Common_1.Range)())\r\n },\r\n 'minecraft:location': {\r\n location: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:nether_travel': {\r\n distance: (0, core_1.Opt)((0, Common_1.Range)()),\r\n entered: (0, core_1.Opt)(Reference('location_predicate')),\r\n exited: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:placed_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })),\r\n item: (0, core_1.Opt)(Reference('item_predicate')),\r\n location: (0, 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: (0, core_1.Opt)(Reference('damage_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_interacted_with_entity': {\r\n item: (0, 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: (0, 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: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:slide_down_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:shot_crossbow': {\r\n item: (0, 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: (0, core_1.Opt)((0, Common_1.Range)({ integer: true }))\r\n },\r\n 'minecraft:thrown_item_picked_up_by_entity': {\r\n entity: EntityPredicate,\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:used_ender_eye': {\r\n distance: (0, core_1.Opt)((0, Common_1.Range)())\r\n },\r\n 'minecraft:used_totem': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:villager_trade': {\r\n villager: EntityPredicate,\r\n item: (0, 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) => (0, core_1.ListNode)((0, core_1.NumberNode)({ min, max }), { minLength: length, maxLength: length });\r\n const Texture = (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n parent: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$model' } })),\r\n ambientocclusion: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n gui_light: (0, core_1.Opt)(StringNode({ enum: 'gui_light' })),\r\n textures: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), Texture)),\r\n elements: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n from: Vec(3, -16, 32),\r\n to: Vec(3, -16, 32),\r\n rotation: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n origin: Vec(3),\r\n axis: StringNode({ enum: 'axis' }),\r\n angle: (0, core_1.NumberEnum)({ values: [-45, -22.5, 0, 22.5, 45] }),\r\n rescale: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n })),\r\n shade: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n faces: (0, core_1.MapNode)(StringNode({ enum: 'direction' }), (0, core_1.ObjectNode)({\r\n texture: Texture,\r\n uv: (0, core_1.Opt)(Vec(4)),\r\n cullface: (0, core_1.Opt)(StringNode({ enum: 'direction' })),\r\n rotation: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n tintindex: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n }))\r\n }, { context: 'model_element' }))),\r\n display: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ enum: 'display_position' }), (0, 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: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n predicate: (0, core_1.MapNode)(StringNode({ enum: 'item_model_predicates' }), (0, 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', (0, core_1.Mod)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'variants',\r\n match: (v) => v.variants !== undefined,\r\n node: (0, core_1.ObjectNode)({\r\n variants: (0, 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: (0, core_1.ObjectNode)({\r\n multipart: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n when: (0, 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: (0, core_1.Opt)((0, core_1.NumberEnum)({ integer: true, values: [0, 90, 180, 270] })),\r\n y: (0, core_1.Opt)((0, core_1.NumberEnum)({ integer: true, values: [0, 90, 180, 270] })),\r\n uvlock: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n };\r\n schemas.register('model_variant', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n node: (0, 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: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n ...VariantChildren,\r\n weight: (0, core_1.Opt)((0, 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', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n priority: -1,\r\n match: () => true,\r\n node: (0, 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: (0, core_1.ObjectNode)({\r\n OR: (0, 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 (0, BlockDefinition_1.initBlockDefinitionSchemas)(schemas, collections);\r\n (0, 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', (0, core_1.ObjectOrList)(Reference('condition'), { choiceContext: 'condition' }));\r\n schemas.register('condition', (0, core_1.Mod)((0, 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) => (0, core_1.Mod)(node, {\r\n enabled: path => path.push('preset').get() === undefined\r\n });\r\n schemas.register('dimension', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: (0, Common_1.DimensionTypePresets)(Reference('dimension_type')),\r\n generator: (0, 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: (0, core_1.NumberNode)({ integer: true }),\r\n settings: (0, Common_1.NoiseSettingsPresets)(Reference('noise_settings')),\r\n biome_source: (0, 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: (0, core_1.NumberNode)({ integer: true }),\r\n preset: (0, 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((0, core_1.Mod)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 62 })),\r\n biomes: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }))\r\n },\r\n 'minecraft:the_end': {\r\n seed: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:vanilla_layered': {\r\n seed: (0, core_1.NumberNode)({ integer: true }),\r\n large_biomes: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n legacy_biome_init_layer: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n }\r\n }\r\n }, { category: 'predicate', disableSwitchContext: true })\r\n },\r\n 'minecraft:flat': {\r\n settings: (0, core_1.ObjectNode)({\r\n biome: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n lakes: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n features: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n layers: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }),\r\n parameters: (0, core_1.ObjectNode)({\r\n altitude: (0, core_1.NumberNode)(),\r\n temperature: (0, core_1.NumberNode)(),\r\n humidity: (0, core_1.NumberNode)(),\r\n weirdness: (0, core_1.NumberNode)(),\r\n offset: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n firstOctave: (0, core_1.NumberNode)({ integer: true }),\r\n amplitudes: (0, core_1.ListNode)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n name: (0, 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: (0, core_1.BooleanNode)(),\r\n natural: (0, core_1.BooleanNode)(),\r\n piglin_safe: (0, core_1.BooleanNode)(),\r\n respawn_anchor_works: (0, core_1.BooleanNode)(),\r\n bed_works: (0, core_1.BooleanNode)(),\r\n has_raids: (0, core_1.BooleanNode)(),\r\n has_skylight: (0, core_1.BooleanNode)(),\r\n has_ceiling: (0, core_1.BooleanNode)(),\r\n coordinate_scale: (0, core_1.NumberNode)({ min: 0.00001, max: 30000000 }),\r\n ambient_light: (0, core_1.NumberNode)(),\r\n fixed_time: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n logical_height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 256 }),\r\n effects: (0, 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: (0, core_1.Opt)((0, core_1.ListNode)(Reference('loot_condition')))\r\n };\r\n const functionsAndConditions = {\r\n functions: (0, core_1.Opt)((0, 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 (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: (0, core_1.Opt)(StringNode({ validator: \"resource\", params: { pool: collections.get('loot_context_type') } })),\r\n pools: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n rolls: (0, Common_1.Range)({ allowBinomial: true, integer: true }),\r\n bonus_rolls: (0, core_1.Opt)((0, Common_1.Range)({ integer: true })),\r\n entries: (0, 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: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'loot_pool_entry_type' } }),\r\n weight: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true, min: 1 }), weightMod)),\r\n quality: (0, core_1.Opt)((0, core_1.Mod)((0, 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: (0, 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: (0, 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: (0, 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: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, 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: (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n bonusMultiplier: (0, core_1.Mod)((0, core_1.NumberNode)(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:uniform_bonus_count'\r\n }),\r\n extra: (0, core_1.Mod)((0, core_1.NumberNode)(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n }),\r\n probability: (0, core_1.Mod)((0, 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: (0, core_1.ListNode)((0, 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: (0, core_1.ListNode)(StringNode({ validator: 'block_state_key', params: { id: ['pop', 'pop', { push: 'block' }] } }))\r\n },\r\n 'minecraft:enchant_randomly': {\r\n enchantments: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })))\r\n },\r\n 'minecraft:enchant_with_levels': {\r\n levels: (0, Common_1.Range)({ allowBinomial: true }),\r\n treasure: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:exploration_map': {\r\n destination: (0, core_1.Opt)(StringNode({ enum: 'map_feature' })),\r\n decoration: (0, core_1.Opt)(StringNode({ enum: 'map_decoration' })),\r\n zoom: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n search_radius: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n skip_existing_chunks: (0, core_1.Opt)((0, 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: (0, Common_1.Range)({ bounds: true })\r\n },\r\n 'minecraft:looting_enchant': {\r\n count: (0, Common_1.Range)({ bounds: true }),\r\n limit: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:set_attributes': {\r\n modifiers: (0, core_1.ListNode)(Reference('attribute_modifier'))\r\n },\r\n 'minecraft:set_contents': {\r\n entries: (0, core_1.ListNode)(Reference('loot_entry'))\r\n },\r\n 'minecraft:set_count': {\r\n count: (0, Common_1.Range)({ allowBinomial: true })\r\n },\r\n 'minecraft:set_damage': {\r\n damage: (0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:set_lore': {\r\n entity: (0, core_1.Opt)(entitySourceSwtichNode),\r\n lore: (0, core_1.ListNode)(Reference('text_component')),\r\n replace: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_name': {\r\n entity: (0, core_1.Opt)(entitySourceSwtichNode),\r\n name: (0, 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: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }),\r\n duration: (0, 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', (0, core_1.Mod)((0, 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: (0, core_1.MapNode)(StringNode({ validator: 'objective' }), (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n attribute: StringNode({ validator: 'resource', params: { pool: 'attribute' } }),\r\n name: StringNode(),\r\n amount: (0, Common_1.Range)({ bounds: true }),\r\n operation: StringNode({ enum: ['addition', 'multiply_base', 'multiply_total'] }),\r\n slot: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n pack: (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n pack_format: (0, core_1.Mod)((0, core_1.NumberNode)({ integer: true, min: 6, max: 6 }), { default: () => 6 }),\r\n description: (0, 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 = (0, 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: (0, core_1.NumberNode)(),\r\n change: v => (typeof v === 'string') ? parseInt(v) : 0\r\n },\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)({\r\n min: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n max: (0, core_1.Opt)((0, 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: (0, core_1.BooleanNode)(),\r\n change: v => v === 'true' || v === 1\r\n }\r\n ]);\r\n schemas.register('item_predicate', (0, core_1.ObjectNode)({\r\n item: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$tag/item' } })),\r\n count: (0, core_1.Opt)((0, Common_1.Range)()),\r\n durability: (0, core_1.Opt)((0, Common_1.Range)()),\r\n potion: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'potion' } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } })),\r\n enchantments: (0, core_1.Opt)((0, core_1.ListNode)(Reference('enchantment_predicate')))\r\n }, { context: 'item' }));\r\n schemas.register('enchantment_predicate', (0, core_1.ObjectNode)({\r\n enchantment: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })),\r\n levels: (0, core_1.Opt)((0, Common_1.Range)())\r\n }, { context: 'enchantment' }));\r\n schemas.register('block_predicate', (0, core_1.ObjectNode)({\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n tag: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$tag/block' } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block', id: ['pop', { push: 'block' }] } } })),\r\n state: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n fluid: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'fluid' } })),\r\n tag: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$tag/fluid' } })),\r\n state: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), StateChoice))\r\n }, { context: 'fluid' }));\r\n schemas.register('location_predicate', (0, core_1.ObjectNode)({\r\n position: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n x: (0, core_1.Opt)((0, Common_1.Range)()),\r\n y: (0, core_1.Opt)((0, Common_1.Range)()),\r\n z: (0, core_1.Opt)((0, Common_1.Range)())\r\n })),\r\n biome: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n feature: (0, core_1.Opt)(StringNode({ enum: collections.get('worldgen/structure_feature').map(v => v.slice(10)) })),\r\n dimension: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n light: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n light: (0, core_1.Opt)((0, Common_1.Range)({ integer: true, min: 0, max: 15 }))\r\n })),\r\n smokey: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n block: (0, core_1.Opt)(Reference('block_predicate')),\r\n fluid: (0, core_1.Opt)(Reference('fluid_predicate'))\r\n }, { context: 'location' }));\r\n schemas.register('statistic_predicate', (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'stat_type' } }),\r\n stat: StringNode(),\r\n value: (0, 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', (0, core_1.ObjectNode)({\r\n gamemode: (0, core_1.Opt)(StringNode({ enum: 'gamemode' })),\r\n level: (0, core_1.Opt)((0, Common_1.Range)()),\r\n advancements: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: '$advancement' } }), (0, core_1.ChoiceNode)([\r\n { type: 'boolean', node: (0, core_1.BooleanNode)(), change: _ => true },\r\n {\r\n type: 'object', node: (0, core_1.MapNode)(StringNode(), (0, core_1.BooleanNode)())\r\n }\r\n ]))),\r\n recipes: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: '$recipe' } }), (0, core_1.BooleanNode)())),\r\n stats: (0, core_1.Opt)((0, core_1.ListNode)(Reference('statistic_predicate')))\r\n }, { context: 'player' }));\r\n schemas.register('status_effect_predicate', (0, core_1.ObjectNode)({\r\n amplifier: (0, core_1.Opt)((0, Common_1.Range)()),\r\n duration: (0, core_1.Opt)((0, Common_1.Range)()),\r\n ambient: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n visible: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n }, { context: 'status_effect' }));\r\n schemas.register('distance_predicate', (0, core_1.ObjectNode)({\r\n x: (0, core_1.Opt)((0, Common_1.Range)()),\r\n y: (0, core_1.Opt)((0, Common_1.Range)()),\r\n z: (0, core_1.Opt)((0, Common_1.Range)()),\r\n absolute: (0, core_1.Opt)((0, Common_1.Range)()),\r\n horizontal: (0, core_1.Opt)((0, Common_1.Range)())\r\n }, { context: 'distance' }));\r\n schemas.register('entity_predicate', (0, core_1.ObjectNode)({\r\n type: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'entity_type', allowTag: true } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:entity', id: ['pop', { push: 'type' }] } } })),\r\n team: (0, core_1.Opt)(StringNode({ validator: 'team' })),\r\n location: (0, core_1.Opt)(Reference('location_predicate')),\r\n distance: (0, core_1.Opt)(Reference('distance_predicate')),\r\n flags: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n is_on_fire: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_sneaking: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_sprinting: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_swimming: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_baby: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n })),\r\n equipment: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ enum: 'slot' }), Reference('item_predicate'))),\r\n vehicle: (0, core_1.Opt)(Reference('entity_predicate')),\r\n targeted_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n player: (0, core_1.Opt)(Reference('player_predicate')),\r\n fishing_hook: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n in_open_water: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n })),\r\n catType: (0, core_1.Opt)(StringNode({ enum: 'cat_texture' })),\r\n effects: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n is_explosion: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_fire: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_magic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_projectile: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_lightning: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_armor: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_invulnerability: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_magic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n source_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n direct_entity: (0, core_1.Opt)(Reference('entity_predicate'))\r\n }, { context: 'damage_source' }));\r\n schemas.register('damage_predicate', (0, core_1.ObjectNode)({\r\n dealt: (0, core_1.Opt)((0, Common_1.Range)()),\r\n taken: (0, core_1.Opt)((0, Common_1.Range)()),\r\n blocked: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n source_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n type: (0, 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', (0, core_1.Mod)((0, 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: (0, core_1.Opt)(StringNode({ enum: 'recipe_group', additional: true })),\r\n pattern: (0, core_1.ListNode)(StringNode()),\r\n key: (0, 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: (0, core_1.Opt)(StringNode()),\r\n ingredients: (0, core_1.ListNode)(Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:smelting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 200 }))\r\n },\r\n 'minecraft:blasting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:smoking': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:campfire_cooking': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:stonecutting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:smithing': {\r\n group: (0, 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', (0, core_1.Mod)((0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n item: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.Opt)((0, core_1.Mod)((0, 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) => (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n replace: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n values: (0, core_1.ListNode)((0, 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: (0, core_1.ObjectNode)({\r\n id: StringNode({ validator: 'resource', params: { pool: type, allowTag: true, allowUnknown: true } }),\r\n required: (0, 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', (0, core_1.Mod)((0, 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: (0, 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: (0, 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: (0, core_1.Opt)(StringNode()) /* TODO */,\r\n font: (0, core_1.Opt)(StringNode()),\r\n bold: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n italic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n underlined: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n strikethrough: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n obfuscated: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n insertion: (0, core_1.Opt)(StringNode()),\r\n clickEvent: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(Reference('text_component')),\r\n contents: (0, core_1.Opt)(Reference('text_component'))\r\n },\r\n 'show_item': {\r\n value: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { module: 'util::InventoryItem' } })),\r\n contents: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n id: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n tag: (0, 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: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n name: (0, core_1.Opt)(StringNode()),\r\n type: (0, core_1.Opt)(StringNode()),\r\n id: (0, core_1.Opt)(StringNode())\r\n })),\r\n contents: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n name: (0, 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: (0, core_1.Opt)(Reference('text_component_list'))\r\n };\r\n schemas.register('text_component_object', (0, core_1.Mod)((0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n translate: StringNode(),\r\n with: (0, 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: (0, core_1.ObjectNode)({\r\n score: (0, 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: (0, 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: (0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n nbt: StringNode({ validator: 'nbt_path' }),\r\n block: (0, core_1.Opt)(StringNode({ validator: 'vector', params: { dimension: 3, isInteger: true } })),\r\n entity: (0, core_1.Opt)(StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } })),\r\n storage: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$storage' } })),\r\n interpret: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n surface_builder: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_surface_builder' } }),\r\n depth: (0, core_1.NumberNode)(),\r\n scale: (0, core_1.NumberNode)(),\r\n temperature: (0, core_1.NumberNode)(),\r\n downfall: (0, core_1.NumberNode)(),\r\n precipitation: StringNode({ enum: ['none', 'rain', 'snow'] }),\r\n temperature_modifier: (0, core_1.Opt)(StringNode({ enum: ['none', 'frozen'] })),\r\n category: StringNode({ enum: 'biome_category' }),\r\n player_spawn_friendly: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n creature_spawn_probability: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n effects: (0, core_1.ObjectNode)({\r\n sky_color: (0, core_1.NumberNode)({ color: true }),\r\n fog_color: (0, core_1.NumberNode)({ color: true }),\r\n water_color: (0, core_1.NumberNode)({ color: true }),\r\n water_fog_color: (0, core_1.NumberNode)({ color: true }),\r\n grass_color: (0, core_1.Opt)((0, core_1.NumberNode)({ color: true })),\r\n foliage_color: (0, core_1.Opt)((0, core_1.NumberNode)({ color: true })),\r\n grass_color_modifier: (0, core_1.Opt)(StringNode({ enum: ['none', 'dark_forest', 'swamp'] })),\r\n ambient_sound: (0, core_1.Opt)(StringNode()),\r\n mood_sound: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n sound: StringNode(),\r\n tick_delay: (0, core_1.NumberNode)({ integer: true }),\r\n block_search_extent: (0, core_1.NumberNode)({ integer: true }),\r\n offset: (0, core_1.NumberNode)()\r\n })),\r\n additions_sound: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n sound: StringNode(),\r\n tick_chance: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n })),\r\n music: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n sound: StringNode(),\r\n min_delay: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n max_delay: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n replace_current_music: (0, core_1.BooleanNode)()\r\n })),\r\n particle: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n options: (0, core_1.ObjectNode)({\r\n type: StringNode()\r\n }),\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n }))\r\n }),\r\n starts: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_structure_feature' } })),\r\n spawners: (0, 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 ] }), (0, core_1.Mod)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n weight: (0, core_1.NumberNode)({ integer: true }),\r\n minCount: (0, core_1.NumberNode)({ integer: true }),\r\n maxCount: (0, 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: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'entity_type' } }), (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n energy_budget: (0, core_1.NumberNode)(),\r\n charge: (0, 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: (0, core_1.MapNode)(StringNode({ enum: ['air', 'liquid'] }), (0, core_1.Mod)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_carver' } })), {\r\n default: () => ['minecraft:cave']\r\n })),\r\n features: (0, core_1.ListNode)((0, core_1.Mod)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/carver' } }),\r\n config: (0, core_1.ObjectNode)({\r\n probability: (0, 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: (0, core_1.NumberNode)({ integer: true }),\r\n bottom_offset: (0, core_1.NumberNode)({ integer: true }),\r\n top_offset: (0, core_1.NumberNode)({ integer: true })\r\n };\r\n const ChanceConfig = {\r\n chance: (0, core_1.NumberNode)({ integer: true, min: 0 })\r\n };\r\n const CountConfig = {\r\n count: (0, Common_1.UniformInt)({ min: -10, max: 128, maxSpread: 128 })\r\n };\r\n schemas.register('configured_decorator', (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/decorator' } }),\r\n config: (0, 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: (0, 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: (0, core_1.NumberNode)({ integer: true }),\r\n extra_count: (0, core_1.NumberNode)({ integer: true }),\r\n extra_chance: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:count_multilayer': CountConfig,\r\n 'minecraft:count_noise': {\r\n noise_level: (0, core_1.NumberNode)(),\r\n below_noise: (0, core_1.NumberNode)({ integer: true }),\r\n above_noise: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:count_noise_biased': {\r\n noise_to_count_ratio: (0, core_1.NumberNode)({ integer: true }),\r\n noise_factor: (0, core_1.NumberNode)(),\r\n noise_offset: (0, core_1.Opt)((0, 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: (0, core_1.NumberNode)({ integer: true }),\r\n spread: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n processors: (0, 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', (0, core_1.Mod)((0, 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: (0, core_1.NumberNode)()\r\n },\r\n 'minecraft:block_ignore': {\r\n blocks: (0, core_1.ListNode)(Reference('block_state'))\r\n },\r\n 'minecraft:block_rot': {\r\n integrity: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:gravity': {\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n offset: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:rule': {\r\n rules: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n position_predicate: (0, 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: (0, 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: (0, core_1.NumberNode)({ min: 0, max: 255, integer: true }),\r\n max_dist: (0, core_1.NumberNode)({ min: 0, max: 255, integer: true }),\r\n min_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n max_chance: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n };\r\n schemas.register('pos_rule_test', (0, 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', (0, 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: (0, 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: (0, 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: (0, core_1.BooleanNode)(),\r\n project: (0, core_1.BooleanNode)(),\r\n need_water: (0, core_1.BooleanNode)(),\r\n xspread: (0, core_1.NumberNode)({ integer: true }),\r\n yspread: (0, core_1.NumberNode)({ integer: true }),\r\n zspread: (0, core_1.NumberNode)({ integer: true }),\r\n tries: (0, core_1.NumberNode)({ integer: true }),\r\n state_provider: Reference('block_state_provider'),\r\n block_placer: Reference('block_placer'),\r\n whitelist: (0, core_1.ListNode)(Reference('block_state')),\r\n blacklist: (0, core_1.ListNode)(Reference('block_state'))\r\n };\r\n const DiskConfig = {\r\n state: Reference('block_state'),\r\n radius: (0, Common_1.UniformInt)({ min: 0, max: 4, maxSpread: 4 }),\r\n half_height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4 }),\r\n targets: (0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n };\r\n const OreConfig = {\r\n state: Reference('block_state'),\r\n size: (0, core_1.NumberNode)({ integer: true, min: 0, max: 64 }),\r\n target: Reference('rule_test')\r\n };\r\n const CountConfig = {\r\n count: (0, Common_1.UniformInt)({ min: -10, max: 128, maxSpread: 128 })\r\n };\r\n const Feature = (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature' } }),\r\n config: (0, core_1.ObjectNode)({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bamboo': {\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:basalt_columns': {\r\n reach: (0, Common_1.UniformInt)({ min: 0, max: 2, maxSpread: 1 }),\r\n height: (0, 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: (0, Common_1.UniformInt)({ min: 0, max: 8, maxSpread: 8 }),\r\n rim_size: (0, 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: (0, core_1.BooleanNode)(),\r\n exit: (0, core_1.Opt)(Reference('block_pos'))\r\n },\r\n 'minecraft:end_spike': {\r\n crystal_invulnerable: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n crystal_beam_target: (0, core_1.Opt)(Reference('block_pos')),\r\n spikes: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n centerX: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n centerZ: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n radius: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n height: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n guarded: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n }))\r\n },\r\n 'minecraft:fill_layer': {\r\n state: Reference('block_state'),\r\n height: (0, 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: (0, core_1.Opt)((0, 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: (0, 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: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n chance: (0, 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: (0, 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: (0, core_1.ListNode)(Reference('block_state')),\r\n place_in: (0, core_1.ListNode)(Reference('block_state')),\r\n place_under: (0, core_1.ListNode)(Reference('block_state'))\r\n },\r\n 'minecraft:simple_random_selector': {\r\n features: (0, core_1.ListNode)(Feature)\r\n },\r\n 'minecraft:spring_feature': {\r\n state: Reference('fluid_state'),\r\n rock_count: (0, core_1.NumberNode)({ integer: true }),\r\n hole_count: (0, core_1.NumberNode)({ integer: true }),\r\n requires_block_below: (0, core_1.BooleanNode)(),\r\n valid_blocks: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:tree': {\r\n max_water_depth: (0, core_1.NumberNode)({ integer: true }),\r\n ignore_vines: (0, 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: (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/trunk_placer_type' } }),\r\n base_height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 32 }),\r\n height_rand_a: (0, core_1.NumberNode)({ integer: true, min: 0, max: 24 }),\r\n height_rand_b: (0, core_1.NumberNode)({ integer: true, min: 0, max: 24 })\r\n }, { context: 'trunk_placer' }),\r\n foliage_placer: (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/foliage_placer_type' } }),\r\n radius: (0, Common_1.UniformInt)({ min: 0, max: 8, maxSpread: 8 }),\r\n offset: (0, 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: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:bush_foliage_placer': {\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:fancy_foliage_placer': {\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:jungle_foliage_placer': {\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:mega_pine_foliage_placer': {\r\n crown_height: (0, Common_1.UniformInt)({ min: 0, max: 16, maxSpread: 8 })\r\n },\r\n 'minecraft:pine_foliage_placer': {\r\n height: (0, Common_1.UniformInt)({ min: 0, max: 16, maxSpread: 8 })\r\n },\r\n 'minecraft:spruce_foliage_placer': {\r\n trunk_height: (0, Common_1.UniformInt)({ min: 0, max: 16, maxSpread: 8 })\r\n }\r\n }\r\n }, { context: 'foliage_placer', disableSwitchContext: true }),\r\n decorators: (0, core_1.ListNode)((0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:cocoa': {\r\n probability: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature_size_type' } }),\r\n min_clipped_height: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 81 })),\r\n lower_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })),\r\n upper_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 }))\r\n },\r\n 'minecraft:three_layers_feature_size': {\r\n limit: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 80 })),\r\n upper_limit: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 80 })),\r\n lower_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })),\r\n middle_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })),\r\n upper_size: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, 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: (0, core_1.ListNode)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n weight: (0, 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', (0, core_1.Mod)((0, 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: (0, core_1.NumberNode)({ integer: true }),\r\n extra_size: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n name: (0, 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: (0, core_1.NumberNode)({ integer: true }),\r\n bedrock_floor_position: (0, core_1.NumberNode)({ integer: true }),\r\n sea_level: (0, core_1.NumberNode)({ integer: true }),\r\n disable_mob_generation: (0, core_1.BooleanNode)(),\r\n default_block: Reference('block_state'),\r\n default_fluid: Reference('block_state'),\r\n noise: (0, core_1.ObjectNode)({\r\n height: (0, core_1.NumberNode)({ integer: true }),\r\n density_factor: (0, core_1.NumberNode)(),\r\n density_offset: (0, core_1.NumberNode)(),\r\n size_horizontal: (0, core_1.NumberNode)({ integer: true }),\r\n size_vertical: (0, core_1.NumberNode)({ integer: true }),\r\n simplex_surface_noise: (0, core_1.BooleanNode)(),\r\n random_density_offset: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n island_noise_override: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n amplified: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n sampling: (0, core_1.ObjectNode)({\r\n xz_scale: (0, core_1.NumberNode)(),\r\n y_scale: (0, core_1.NumberNode)(),\r\n xz_factor: (0, core_1.NumberNode)(),\r\n y_factor: (0, core_1.NumberNode)()\r\n }),\r\n bottom_slide: (0, core_1.ObjectNode)({\r\n target: (0, core_1.NumberNode)({ integer: true }),\r\n size: (0, core_1.NumberNode)({ integer: true }),\r\n offset: (0, core_1.NumberNode)({ integer: true })\r\n }),\r\n top_slide: (0, core_1.ObjectNode)({\r\n target: (0, core_1.NumberNode)({ integer: true }),\r\n size: (0, core_1.NumberNode)({ integer: true }),\r\n offset: (0, 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', (0, core_1.ObjectNode)({\r\n stronghold: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n distance: (0, core_1.NumberNode)({ integer: true, min: 0, max: 1023 }),\r\n spread: (0, core_1.NumberNode)({ integer: true, min: 0, max: 1023 }),\r\n count: (0, core_1.NumberNode)({ integer: true, min: 1, max: 4095 })\r\n })),\r\n structures: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }), (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n spacing: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4096 }),\r\n separation: (0, core_1.Mod)((0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n height: (0, 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: (0, core_1.NumberNode)({ integer: true })\r\n };\r\n schemas.register('configured_structure_feature', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }),\r\n config: (0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:mineshaft': {\r\n type: StringNode({ enum: ['normal', 'mesa'] }),\r\n probability: (0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n cluster_probability: (0, 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: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/surface_builder' } }),\r\n config: (0, 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 = (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n name: StringNode(),\r\n fallback: StringNode(),\r\n elements: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n weight: (0, 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', (0, core_1.Mod)((0, 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: (0, 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 (0, Biome_1.initBiomeSchemas)(schemas, collections);\r\n (0, Carver_1.initCarverSchemas)(schemas, collections);\r\n (0, Decorator_1.initDecoratorSchemas)(schemas, collections);\r\n (0, Feature_1.initFeatureSchemas)(schemas, collections);\r\n (0, NoiseSettings_1.initNoiseSettingsSchemas)(schemas, collections);\r\n (0, ProcessorList_1.initProcessorListSchemas)(schemas, collections);\r\n (0, StructureFeature_1.initStructureFeatureSchemas)(schemas, collections);\r\n (0, SurfaceBuilder_1.initSurfaceBuilderSchemas)(schemas, collections);\r\n (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n generate_features: (0, core_1.BooleanNode)(),\r\n bonus_chest: (0, core_1.BooleanNode)(),\r\n seed: (0, core_1.NumberNode)({ integer: true }),\r\n dimensions: (0, 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 (0, Common_1.initCommonSchemas)(schemas, collections);\r\n (0, Advancement_1.initAdvancementSchemas)(schemas, collections);\r\n (0, assets_1.initAssetsSchemas)(schemas, collections);\r\n (0, Condition_1.initConditionSchemas)(schemas, collections);\r\n (0, DimensionType_1.initDimensionTypeSchemas)(schemas, collections);\r\n (0, Dimension_1.initDimensionSchemas)(schemas, collections);\r\n (0, LootTable_1.initLootTableSchemas)(schemas, collections);\r\n (0, PackMcmeta_1.initPackMcmetaSchemas)(schemas, collections);\r\n (0, Predicates_1.initPredicatesSchemas)(schemas, collections);\r\n (0, Recipe_1.initRecipeSchemas)(schemas, collections);\r\n (0, Tags_1.initTagsSchemas)(schemas, collections);\r\n (0, TextComponent_1.initTextComponentSchemas)(schemas, collections);\r\n (0, worldgen_1.initWorldgenSchemas)(schemas, collections);\r\n (0, 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 var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\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.prototype.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 = exports.lootContext = 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 (0, 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 (0, 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 collections.register('cat_texture', [\r\n 'textures/entity/cat/tabby.png',\r\n 'textures/entity/cat/black.png',\r\n 'textures/entity/cat/red.png',\r\n 'textures/entity/cat/siamese.png',\r\n 'textures/entity/cat/british_shorthair.png',\r\n 'textures/entity/cat/calico.png',\r\n 'textures/entity/cat/persian.png',\r\n 'textures/entity/cat/ragdoll.png',\r\n 'textures/entity/cat/white.png',\r\n 'textures/entity/cat/jellie.png',\r\n 'textures/entity/cat/all_black.png'\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 = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n node: (0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n display: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n icon: (0, core_1.ObjectNode)({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n nbt: (0, 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: (0, core_1.Opt)(StringNode()),\r\n frame: (0, core_1.Opt)(StringNode({ enum: ['task', 'challenge', 'goal'] })),\r\n show_toast: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n announce_to_chat: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n hidden: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$advancement' } })),\r\n criteria: (0, core_1.MapNode)(StringNode(), Reference('advancement_criteria')),\r\n requirements: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ListNode)(StringNode() // TODO: add validation\r\n ))),\r\n rewards: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n function: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$function' } })),\r\n loot: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$loot_table' } }))),\r\n recipes: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$recipe' } }))),\r\n experience: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n trigger: StringNode({ validator: 'resource', params: { pool: collections.get('advancement_trigger') } }),\r\n conditions: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n player: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n num_bees_inside: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n item: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'potion' } }))\r\n },\r\n 'minecraft:changed_dimension': {\r\n from: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n to: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$dimension' } }))\r\n },\r\n 'minecraft:channeled_lightning': {\r\n victims: (0, core_1.Opt)((0, 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: (0, 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: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), (0, core_1.ObjectNode)({\r\n amplifier: Reference('int_bounds'),\r\n duration: Reference('int_bounds')\r\n }))),\r\n source: (0, core_1.Opt)(EntityPredicate)\r\n },\r\n 'minecraft:enter_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:entity_hurt_player': {\r\n damage: (0, core_1.Opt)(Reference('damage_predicate'))\r\n },\r\n 'minecraft:entity_killed_player': {\r\n entity: EntityPredicate,\r\n killing_blow: (0, core_1.Opt)(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:filled_bucket': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:fishing_rod_hooked': {\r\n entity: EntityPredicate,\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:hero_of_the_village': {\r\n location: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:inventory_changed': {\r\n slots: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:item_used_on_block': {\r\n item: (0, core_1.Opt)(Reference('item_predicate')),\r\n location: (0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:nether_travel': {\r\n distance: Reference('distance_predicate'),\r\n entered: (0, core_1.Opt)(Reference('location_predicate')),\r\n exited: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:placed_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })),\r\n item: (0, core_1.Opt)(Reference('item_predicate')),\r\n location: (0, 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: (0, core_1.Opt)(Reference('damage_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_interacted_with_entity': {\r\n item: (0, 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: (0, 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: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:slide_down_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:shot_crossbow': {\r\n item: (0, 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: EntityPredicate,\r\n item: (0, 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: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:using_item': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:villager_trade': {\r\n villager: EntityPredicate,\r\n item: (0, 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) => (0, core_1.ListNode)((0, core_1.NumberNode)({ min, max }), { minLength: length, maxLength: length });\r\n const Texture = (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n parent: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$model' } })),\r\n ambientocclusion: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n gui_light: (0, core_1.Opt)(StringNode({ enum: 'gui_light' })),\r\n textures: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), Texture)),\r\n elements: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n from: Vec(3, -16, 32),\r\n to: Vec(3, -16, 32),\r\n rotation: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n origin: Vec(3),\r\n axis: StringNode({ enum: 'axis' }),\r\n angle: (0, core_1.NumberEnum)({ values: [-45, -22.5, 0, 22.5, 45] }),\r\n rescale: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n })),\r\n shade: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n faces: (0, core_1.MapNode)(StringNode({ enum: 'direction' }), (0, core_1.ObjectNode)({\r\n texture: Texture,\r\n uv: (0, core_1.Opt)(Vec(4)),\r\n cullface: (0, core_1.Opt)(StringNode({ enum: 'direction' })),\r\n rotation: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n tintindex: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n }))\r\n }, { context: 'model_element' }))),\r\n display: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ enum: 'display_position' }), (0, 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: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n predicate: (0, core_1.MapNode)(StringNode({ enum: 'item_model_predicates' }), (0, 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', (0, core_1.Mod)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'variants',\r\n match: (v) => v.variants !== undefined,\r\n node: (0, core_1.ObjectNode)({\r\n variants: (0, 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: (0, core_1.ObjectNode)({\r\n multipart: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n when: (0, 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: (0, core_1.Opt)((0, core_1.NumberEnum)({ integer: true, values: [0, 90, 180, 270] })),\r\n y: (0, core_1.Opt)((0, core_1.NumberEnum)({ integer: true, values: [0, 90, 180, 270] })),\r\n uvlock: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n };\r\n schemas.register('model_variant', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n node: (0, 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: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n ...VariantChildren,\r\n weight: (0, core_1.Opt)((0, 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', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n priority: -1,\r\n match: () => true,\r\n node: (0, 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: (0, core_1.ObjectNode)({\r\n OR: (0, 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 (0, BlockDefinition_1.initBlockDefinitionSchemas)(schemas, collections);\r\n (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n Properties: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'fluid' } }),\r\n Properties: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ListNode)((0, core_1.NumberNode)({ integer: true }), { minLength: 3, maxLength: 3 }), {\r\n default: () => [0, 0, 0]\r\n }));\r\n const Bounds = (integer) => (0, core_1.Opt)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'number',\r\n node: (0, 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: (0, core_1.ObjectNode)({\r\n min: (0, core_1.Opt)((0, core_1.NumberNode)({ integer })),\r\n max: (0, core_1.Opt)((0, 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', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)({\r\n min: (0, core_1.Opt)(Reference('number_provider')),\r\n max: (0, core_1.Opt)(Reference('number_provider'))\r\n })\r\n },\r\n {\r\n type: 'number',\r\n node: (0, 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] = (0, 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 = (0, core_1.ObjectNode)({\r\n type: (0, core_1.Mod)((0, 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 (0, 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: (0, 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: (0, core_1.Opt)((0, 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: (0, 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: (0, 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: (0, core_1.NumberNode)(config)\r\n },\r\n 'minecraft:uniform': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)(config),\r\n max_exclusive: (0, core_1.NumberNode)(config)\r\n })\r\n },\r\n 'minecraft:clamped_normal': {\r\n value: (0, core_1.ObjectNode)({\r\n min: (0, core_1.NumberNode)(),\r\n max: (0, core_1.NumberNode)(),\r\n mean: (0, core_1.NumberNode)(),\r\n deviation: (0, core_1.NumberNode)()\r\n })\r\n },\r\n 'minecraft:trapezoid': {\r\n value: (0, core_1.ObjectNode)({\r\n min: (0, core_1.NumberNode)(),\r\n max: (0, core_1.NumberNode)(),\r\n plateau: (0, core_1.NumberNode)()\r\n })\r\n }\r\n });\r\n schemas.register('float_provider', (0, 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: (0, core_1.NumberNode)({ integer: true, ...config })\r\n },\r\n 'minecraft:uniform': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:biased_to_bottom': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:clamped': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n source: Reference('int_provider')\r\n })\r\n }\r\n });\r\n schemas.register('int_provider', (0, exports.IntProvider)());\r\n schemas.register('vertical_anchor', (0, 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: (0, core_1.ObjectNode)({\r\n [t]: (0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, 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: (0, 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: (0, 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: (0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:location_check': {\r\n offsetX: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n offsetY: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n offsetZ: (0, core_1.Opt)((0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_chance_with_looting': {\r\n chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n looting_multiplier: (0, 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: (0, core_1.ListNode)((0, core_1.NumberNode)({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:time_check': {\r\n value: Reference('int_range'),\r\n period: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n thundering: (0, core_1.Opt)((0, 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: (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n bonusMultiplier: (0, core_1.Mod)((0, core_1.NumberNode)(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:uniform_bonus_count'\r\n }),\r\n extra: (0, core_1.Mod)((0, core_1.NumberNode)(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n }),\r\n probability: (0, core_1.Mod)((0, 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: (0, core_1.ListNode)((0, 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: (0, core_1.ListNode)(StringNode({ validator: 'block_state_key', params: { id: ['pop', 'pop', { push: 'block' }] } }))\r\n },\r\n 'minecraft:enchant_randomly': {\r\n enchantments: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:exploration_map': {\r\n destination: (0, core_1.Opt)(StringNode({ enum: 'map_feature' })),\r\n decoration: (0, core_1.Opt)(StringNode({ enum: 'map_decoration' })),\r\n zoom: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n search_radius: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n skip_existing_chunks: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:set_attributes': {\r\n modifiers: (0, core_1.ListNode)(Reference('attribute_modifier'))\r\n },\r\n 'minecraft:set_banner_pattern': {\r\n patterns: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n pattern: StringNode({ enum: 'banner_pattern' }),\r\n color: StringNode({ enum: 'dye_color' })\r\n })),\r\n append: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_contents': {\r\n entries: (0, core_1.ListNode)(Reference('loot_entry'))\r\n },\r\n 'minecraft:set_count': {\r\n count: Reference('number_provider'),\r\n add: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_damage': {\r\n damage: Reference('number_provider'),\r\n add: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_enchantments': {\r\n enchantments: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'enchantment' } }), Reference('number_provider')),\r\n add: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_loot_table': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n seed: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:set_lore': {\r\n entity: (0, core_1.Opt)(entitySourceNode),\r\n lore: (0, core_1.ListNode)(Reference('text_component')),\r\n replace: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_name': {\r\n entity: (0, core_1.Opt)(entitySourceNode),\r\n name: (0, 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: (0, core_1.Opt)((0, core_1.ListNode)((0, 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) => (0, 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) => (0, 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', (0, core_1.ObjectOrList)(Reference('condition'), { choiceContext: 'condition' }));\r\n schemas.register('condition', (0, core_1.Mod)((0, 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]: (0, 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) => (0, core_1.Mod)(node, {\r\n enabled: path => path.push('preset').get() === undefined\r\n });\r\n schemas.register('dimension', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: (0, Common_1.DimensionTypePresets)(Reference('dimension_type')),\r\n generator: (0, 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: (0, core_1.NumberNode)({ integer: true }),\r\n settings: (0, Common_1.NoiseSettingsPresets)(Reference('noise_settings')),\r\n biome_source: (0, 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: (0, core_1.NumberNode)({ integer: true }),\r\n preset: (0, 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((0, core_1.Mod)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 62 })),\r\n biomes: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }))\r\n },\r\n 'minecraft:the_end': {\r\n seed: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:vanilla_layered': {\r\n seed: (0, core_1.NumberNode)({ integer: true }),\r\n large_biomes: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n legacy_biome_init_layer: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n }\r\n }\r\n }, { category: 'predicate', disableSwitchContext: true })\r\n },\r\n 'minecraft:flat': {\r\n settings: (0, core_1.ObjectNode)({\r\n biome: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n lakes: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n features: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n layers: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }),\r\n parameters: (0, core_1.ObjectNode)({\r\n altitude: (0, core_1.NumberNode)(),\r\n temperature: (0, core_1.NumberNode)(),\r\n humidity: (0, core_1.NumberNode)(),\r\n weirdness: (0, core_1.NumberNode)(),\r\n offset: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n firstOctave: (0, core_1.NumberNode)({ integer: true }),\r\n amplitudes: (0, core_1.ListNode)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n name: (0, 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: (0, core_1.BooleanNode)(),\r\n natural: (0, core_1.BooleanNode)(),\r\n piglin_safe: (0, core_1.BooleanNode)(),\r\n respawn_anchor_works: (0, core_1.BooleanNode)(),\r\n bed_works: (0, core_1.BooleanNode)(),\r\n has_raids: (0, core_1.BooleanNode)(),\r\n has_skylight: (0, core_1.BooleanNode)(),\r\n has_ceiling: (0, core_1.BooleanNode)(),\r\n coordinate_scale: (0, core_1.NumberNode)({ min: 0.00001, max: 30000000 }),\r\n ambient_light: (0, core_1.NumberNode)(),\r\n fixed_time: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n logical_height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4096 }),\r\n effects: (0, 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: (0, core_1.NumberNode)({ integer: true, min: -2048, max: 2047 }),\r\n height: (0, 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', (0, core_1.ObjectOrList)(Reference('function'), { choiceContext: 'function' }));\r\n const conditions = {\r\n conditions: (0, core_1.Opt)((0, core_1.ListNode)(Reference('condition')))\r\n };\r\n schemas.register('function', (0, core_1.Mod)((0, 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]: (0, 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: (0, core_1.Opt)((0, core_1.ListNode)(Reference('loot_condition')))\r\n };\r\n const functionsAndConditions = {\r\n functions: (0, core_1.Opt)((0, 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 (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: (0, core_1.Opt)(StringNode({ validator: \"resource\", params: { pool: collections.get('loot_context_type') } })),\r\n pools: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n rolls: Reference('number_provider'),\r\n bonus_rolls: (0, core_1.Opt)(Reference('number_provider')),\r\n entries: (0, 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: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'loot_pool_entry_type' } }),\r\n weight: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true, min: 1 }), weightMod)),\r\n quality: (0, core_1.Opt)((0, core_1.Mod)((0, 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: (0, 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: (0, 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: (0, 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: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n function: functionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'function' }],\r\n [core_1.Case]: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n condition: conditionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: (0, 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', (0, core_1.Mod)((0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n pack: (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n pack_format: (0, core_1.Mod)((0, 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: (0, 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 = (0, 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: (0, core_1.NumberNode)(),\r\n change: v => (typeof v === 'string') ? parseInt(v) : 0\r\n },\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)({\r\n min: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n max: (0, core_1.Opt)((0, 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: (0, core_1.BooleanNode)(),\r\n change: v => v === 'true' || v === 1\r\n }\r\n ]);\r\n schemas.register('item_predicate', (0, core_1.ObjectNode)({\r\n items: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'item' } }))),\r\n tag: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'potion' } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } })),\r\n enchantments: (0, core_1.Opt)((0, core_1.ListNode)(Reference('enchantment_predicate')))\r\n }, { context: 'item' }));\r\n schemas.register('enchantment_predicate', (0, core_1.ObjectNode)({\r\n enchantment: (0, 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', (0, core_1.ObjectNode)({\r\n blocks: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'block' } }))),\r\n tag: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$tag/block' } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block', id: ['pop', { push: 'block' }] } } })),\r\n state: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n fluid: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'fluid' } })),\r\n tag: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$tag/fluid' } })),\r\n state: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), StateChoice))\r\n }, { context: 'fluid' }));\r\n schemas.register('location_predicate', (0, core_1.ObjectNode)({\r\n position: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n feature: (0, core_1.Opt)(StringNode({ enum: collections.get('worldgen/structure_feature').map(v => v.slice(10)) })),\r\n dimension: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n light: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n light: Reference('int_bounds')\r\n })),\r\n smokey: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n block: (0, core_1.Opt)(Reference('block_predicate')),\r\n fluid: (0, core_1.Opt)(Reference('fluid_predicate'))\r\n }, { context: 'location' }));\r\n schemas.register('statistic_predicate', (0, 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', (0, core_1.ObjectNode)({\r\n gamemode: (0, core_1.Opt)(StringNode({ enum: 'gamemode' })),\r\n level: Reference('int_bounds'),\r\n advancements: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: '$advancement' } }), (0, core_1.ChoiceNode)([\r\n { type: 'boolean', node: (0, core_1.BooleanNode)(), change: _ => true },\r\n {\r\n type: 'object', node: (0, core_1.MapNode)(StringNode(), (0, core_1.BooleanNode)())\r\n }\r\n ]))),\r\n recipes: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: '$recipe' } }), (0, core_1.BooleanNode)())),\r\n stats: (0, core_1.Opt)((0, core_1.ListNode)(Reference('statistic_predicate'))),\r\n looking_at: (0, core_1.Opt)(Reference('entity_predicate'))\r\n }, { context: 'player' }));\r\n schemas.register('status_effect_predicate', (0, core_1.ObjectNode)({\r\n amplifier: Reference('int_bounds'),\r\n duration: Reference('int_bounds'),\r\n ambient: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n visible: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n }, { context: 'status_effect' }));\r\n schemas.register('distance_predicate', (0, 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', (0, core_1.ObjectNode)({\r\n type: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'entity_type', allowTag: true } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:entity', id: ['pop', { push: 'type' }] } } })),\r\n team: (0, core_1.Opt)(StringNode({ validator: 'team' })),\r\n location: (0, core_1.Opt)(Reference('location_predicate')),\r\n stepping_on: (0, core_1.Opt)(Reference('location_predicate')),\r\n distance: (0, core_1.Opt)(Reference('distance_predicate')),\r\n flags: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n is_on_fire: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_sneaking: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_sprinting: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_swimming: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_baby: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n })),\r\n equipment: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ enum: 'slot' }), Reference('item_predicate'))),\r\n vehicle: (0, core_1.Opt)(Reference('entity_predicate')),\r\n passenger: (0, core_1.Opt)(Reference('entity_predicate')),\r\n targeted_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n player: (0, core_1.Opt)(Reference('player_predicate')),\r\n lightning_bolt: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n blocks_set_on_fire: (0, core_1.Opt)(Reference('int_bounds')),\r\n entity_struck: (0, core_1.Opt)(Reference('entity_predicate'))\r\n })),\r\n fishing_hook: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n in_open_water: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n })),\r\n catType: (0, core_1.Opt)(StringNode({ enum: 'cat_texture' })),\r\n effects: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n is_explosion: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_fire: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_magic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_projectile: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_lightning: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_armor: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_invulnerability: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_magic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n source_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n direct_entity: (0, core_1.Opt)(Reference('entity_predicate'))\r\n }, { context: 'damage_source' }));\r\n schemas.register('damage_predicate', (0, core_1.ObjectNode)({\r\n dealt: Reference('float_bounds'),\r\n taken: Reference('float_bounds'),\r\n blocked: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n source_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n type: (0, 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', (0, core_1.Mod)((0, 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: (0, core_1.Opt)(StringNode({ enum: 'recipe_group', additional: true })),\r\n pattern: (0, core_1.ListNode)(StringNode()),\r\n key: (0, 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: (0, core_1.Opt)(StringNode()),\r\n ingredients: (0, core_1.ListNode)(Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:smelting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 200 }))\r\n },\r\n 'minecraft:blasting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:smoking': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:campfire_cooking': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:stonecutting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:smithing': {\r\n group: (0, 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', (0, core_1.Mod)((0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n item: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.Opt)((0, core_1.Mod)((0, 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) => (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n replace: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n values: (0, core_1.ListNode)((0, 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: (0, core_1.ObjectNode)({\r\n id: StringNode({ validator: 'resource', params: { pool: type, allowTag: true, allowUnknown: true } }),\r\n required: (0, 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', (0, core_1.Mod)((0, 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: (0, 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: (0, 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: (0, core_1.Opt)(StringNode()) /* TODO */,\r\n font: (0, core_1.Opt)(StringNode()),\r\n bold: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n italic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n underlined: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n strikethrough: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n obfuscated: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n insertion: (0, core_1.Opt)(StringNode()),\r\n clickEvent: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(Reference('text_component')),\r\n contents: (0, core_1.Opt)(Reference('text_component'))\r\n },\r\n 'show_item': {\r\n value: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { module: 'util::InventoryItem' } })),\r\n contents: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n id: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n tag: (0, 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: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n name: (0, core_1.Opt)(StringNode()),\r\n type: (0, core_1.Opt)(StringNode()),\r\n id: (0, core_1.Opt)(StringNode())\r\n })),\r\n contents: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n name: (0, 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: (0, core_1.Opt)(Reference('text_component_list'))\r\n };\r\n schemas.register('text_component_object', (0, core_1.Mod)((0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n translate: StringNode(),\r\n with: (0, 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: (0, core_1.ObjectNode)({\r\n score: (0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n selector: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } }),\r\n separator: (0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n nbt: StringNode({ validator: 'nbt_path' }),\r\n block: (0, core_1.Opt)(StringNode({ validator: 'vector', params: { dimension: 3, isInteger: true } })),\r\n entity: (0, core_1.Opt)(StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } })),\r\n storage: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$storage' } })),\r\n interpret: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n separator: (0, 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', (0, core_1.Mod)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n surface_builder: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_surface_builder' } }),\r\n depth: (0, core_1.NumberNode)(),\r\n scale: (0, core_1.NumberNode)(),\r\n temperature: (0, core_1.NumberNode)(),\r\n downfall: (0, core_1.NumberNode)(),\r\n precipitation: StringNode({ enum: ['none', 'rain', 'snow'] }),\r\n temperature_modifier: (0, core_1.Opt)(StringNode({ enum: ['none', 'frozen'] })),\r\n category: StringNode({ enum: 'biome_category' }),\r\n player_spawn_friendly: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n creature_spawn_probability: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n effects: (0, core_1.ObjectNode)({\r\n sky_color: (0, core_1.NumberNode)({ color: true }),\r\n fog_color: (0, core_1.NumberNode)({ color: true }),\r\n water_color: (0, core_1.NumberNode)({ color: true }),\r\n water_fog_color: (0, core_1.NumberNode)({ color: true }),\r\n grass_color: (0, core_1.Opt)((0, core_1.NumberNode)({ color: true })),\r\n foliage_color: (0, core_1.Opt)((0, core_1.NumberNode)({ color: true })),\r\n grass_color_modifier: (0, core_1.Opt)(StringNode({ enum: ['none', 'dark_forest', 'swamp'] })),\r\n ambient_sound: (0, core_1.Opt)(StringNode()),\r\n mood_sound: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n sound: StringNode(),\r\n tick_delay: (0, core_1.NumberNode)({ integer: true }),\r\n block_search_extent: (0, core_1.NumberNode)({ integer: true }),\r\n offset: (0, core_1.NumberNode)()\r\n })),\r\n additions_sound: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n sound: StringNode(),\r\n tick_chance: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n })),\r\n music: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n sound: StringNode(),\r\n min_delay: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n max_delay: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n replace_current_music: (0, core_1.BooleanNode)()\r\n })),\r\n particle: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n options: (0, core_1.ObjectNode)({\r\n type: StringNode()\r\n }),\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n }))\r\n }),\r\n starts: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_structure_feature' } })),\r\n spawners: (0, 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 ] }), (0, core_1.Mod)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n weight: (0, core_1.NumberNode)({ integer: true }),\r\n minCount: (0, core_1.NumberNode)({ integer: true }),\r\n maxCount: (0, 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: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'entity_type' } }), (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n energy_budget: (0, core_1.NumberNode)(),\r\n charge: (0, 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: (0, core_1.MapNode)(StringNode({ enum: ['air', 'liquid'] }), (0, core_1.Mod)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_carver' } })), {\r\n default: () => ['minecraft:cave']\r\n })),\r\n features: (0, core_1.ListNode)((0, core_1.Mod)((0, 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: (0, Common_1.FloatProvider)(),\r\n shape: (0, core_1.ObjectNode)({\r\n distance_factor: (0, Common_1.FloatProvider)(),\r\n thickness: (0, Common_1.FloatProvider)(),\r\n width_smoothness: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n horizontal_radius_factor: (0, Common_1.FloatProvider)(),\r\n vertical_radius_default_factor: (0, core_1.NumberNode)(),\r\n vertical_radius_center_factor: (0, core_1.NumberNode)()\r\n })\r\n };\r\n const CaveConfig = {\r\n horizontal_radius_multiplier: (0, Common_1.FloatProvider)(),\r\n vertical_radius_multiplier: (0, Common_1.FloatProvider)(),\r\n floor_level: (0, Common_1.FloatProvider)({ min: -1, max: 1 }),\r\n };\r\n schemas.register('configured_carver', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/carver' } }),\r\n config: (0, core_1.ObjectNode)({\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n y: Reference('height_provider'),\r\n yScale: (0, Common_1.FloatProvider)(),\r\n lava_level: Reference('vertical_anchor'),\r\n aquifers_enabled: (0, core_1.BooleanNode)(),\r\n debug_settings: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n debug_mode: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n air_state: (0, core_1.Opt)(Reference('block_state')),\r\n water_state: (0, core_1.Opt)(Reference('block_state')),\r\n lava_state: (0, core_1.Opt)(Reference('block_state')),\r\n barrier_state: (0, 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: (0, Common_1.IntProvider)({ min: 0, max: 256 })\r\n };\r\n schemas.register('configured_decorator', (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/decorator' } }),\r\n config: (0, 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: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:chance': {\r\n chance: (0, core_1.NumberNode)({ integer: true, min: 0 })\r\n },\r\n 'minecraft:count': CountConfig,\r\n 'minecraft:count_extra': {\r\n count: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n extra_count: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n extra_chance: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:count_multilayer': CountConfig,\r\n 'minecraft:count_noise': {\r\n noise_level: (0, core_1.NumberNode)(),\r\n below_noise: (0, core_1.NumberNode)({ integer: true }),\r\n above_noise: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:count_noise_biased': {\r\n noise_to_count_ratio: (0, core_1.NumberNode)({ integer: true }),\r\n noise_factor: (0, core_1.NumberNode)(),\r\n noise_offset: (0, core_1.Opt)((0, 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: (0, 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: (0, 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 = (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n processors: (0, 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', (0, core_1.Mod)((0, 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: (0, core_1.NumberNode)()\r\n },\r\n 'minecraft:block_ignore': {\r\n blocks: (0, core_1.ListNode)(Reference('block_state'))\r\n },\r\n 'minecraft:block_rot': {\r\n integrity: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:gravity': {\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n offset: (0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n position_predicate: (0, 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: (0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 255, integer: true })),\r\n max_dist: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 255, integer: true })),\r\n min_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n max_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 }))\r\n };\r\n schemas.register('pos_rule_test', (0, 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', (0, 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: (0, 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: (0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n project: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n need_water: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n xspread: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0 })),\r\n yspread: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0 })),\r\n zspread: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0 })),\r\n tries: (0, core_1.Opt)((0, 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: (0, core_1.ListNode)(Reference('block_state')),\r\n blacklist: (0, core_1.ListNode)(Reference('block_state'))\r\n };\r\n const DiskConfig = {\r\n state: Reference('block_state'),\r\n radius: (0, Common_1.IntProvider)({ min: 0, max: 8 }),\r\n half_height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4 }),\r\n targets: (0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n };\r\n const TargetBlockState = (0, core_1.ObjectNode)({\r\n target: Reference('rule_test'),\r\n state: Reference('block_state')\r\n });\r\n const OreConfig = {\r\n size: (0, core_1.NumberNode)({ integer: true, min: 0, max: 64 }),\r\n discard_chance_on_air_exposure: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n targets: (0, core_1.ListNode)(TargetBlockState)\r\n };\r\n const Feature = (0, 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: (0, Common_1.IntProvider)({ min: 1, max: 128 }),\r\n vertical_range: (0, core_1.NumberNode)({ integer: true, min: 1, max: 256 }),\r\n extra_bottom_block_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n extra_edge_column_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n vegetation_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n xz_radius: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature' } }),\r\n config: (0, core_1.ObjectNode)({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bamboo': {\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:basalt_columns': {\r\n reach: (0, Common_1.IntProvider)({ min: 0, max: 3 }),\r\n height: (0, 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: (0, Common_1.IntProvider)({ min: 0, max: 16 }),\r\n rim_size: (0, 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: (0, core_1.NumberNode)({ integer: true, min: 1, max: 512 }),\r\n height: (0, Common_1.IntProvider)({ min: 0, max: 128 }),\r\n radius: (0, Common_1.IntProvider)({ min: 0, max: 128 }),\r\n max_stalagmite_stalactite_height_diff: (0, core_1.NumberNode)({ integer: true, min: 0, max: 64 }),\r\n height_deviation: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n dripstone_block_layer_thickness: (0, Common_1.IntProvider)({ min: 0, max: 128 }),\r\n density: (0, Common_1.FloatProvider)({ min: 0, max: 2 }),\r\n wetness: (0, Common_1.FloatProvider)({ min: 0, max: 2 }),\r\n chance_of_dripstone_column_at_max_distance_from_center: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n max_distance_from_edge_affecting_chance_of_dripstone_column: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n max_distance_from_center_affecting_height_bias: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 })\r\n },\r\n 'minecraft:end_gateway': {\r\n exact: (0, core_1.BooleanNode)(),\r\n exit: (0, core_1.Opt)(Reference('block_pos'))\r\n },\r\n 'minecraft:end_spike': {\r\n crystal_invulnerable: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n crystal_beam_target: (0, core_1.Opt)(Reference('block_pos')),\r\n spikes: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n centerX: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n centerZ: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n radius: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n height: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n guarded: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n }))\r\n },\r\n 'minecraft:fill_layer': {\r\n state: Reference('block_state'),\r\n height: (0, 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: (0, core_1.NumberNode)({ integer: true, min: 0, max: 7 }),\r\n fossil_structures: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$structure' } })),\r\n overlay_structures: (0, 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: (0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n filling: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n inner_layer: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n middle_layer: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n outer_layer: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n }),\r\n crack: (0, core_1.ObjectNode)({\r\n generate_crack_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n base_crack_size: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 5 })),\r\n crack_point_offset: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 10 })),\r\n }),\r\n noise_multiplier: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n use_potential_placements_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n use_alternate_layer0_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n placements_require_layer0_alternate: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n outer_wall_distance: (0, core_1.Opt)((0, Common_1.IntProvider)({ min: 1, max: 20 })),\r\n distribution_points: (0, core_1.Opt)((0, Common_1.IntProvider)({ min: 1, max: 20 })),\r\n point_offset: (0, core_1.Opt)((0, Common_1.IntProvider)({ min: 0, max: 10 })),\r\n min_gen_offset: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n max_gen_offset: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n invalid_blocks_threshold: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:glow_lichen': {\r\n search_range: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 1, max: 64, integer: true })),\r\n chance_of_spreading: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n can_place_on_floor: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n can_place_on_ceiling: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n can_place_on_wall: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n can_be_placed_on: (0, 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: (0, core_1.BooleanNode)(),\r\n height_distribution: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n weight: (0, core_1.NumberNode)({ integer: true }),\r\n data: (0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 1, max: 512 })),\r\n column_radius: (0, Common_1.IntProvider)({ min: 0, max: 60 }),\r\n height_scale: (0, Common_1.FloatProvider)({ min: 0, max: 20 }),\r\n max_column_radius_to_cave_height_ratio: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n stalactite_bluntness: (0, Common_1.FloatProvider)({ min: 0.1, max: 10 }),\r\n stalagmite_bluntness: (0, Common_1.FloatProvider)({ min: 0.1, max: 10 }),\r\n wind_speed: (0, Common_1.FloatProvider)({ min: 0, max: 2 }),\r\n min_radius_for_wind: (0, core_1.NumberNode)({ integer: true, min: 0, max: 100 }),\r\n min_bluntness_for_wind: (0, 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: (0, 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: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n chance: (0, 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: (0, core_1.ListNode)(TargetBlockState)\r\n },\r\n 'minecraft:root_system': {\r\n required_vertical_space_for_tree: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n root_radius: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n root_placement_attempts: (0, core_1.NumberNode)({ integer: true, min: 1, max: 256 }),\r\n root_column_max_height: (0, core_1.NumberNode)({ integer: true, min: 1, max: 4096 }),\r\n hanging_root_radius: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n hanging_roots_vertical_span: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 }),\r\n hanging_root_placement_attempts: (0, core_1.NumberNode)({ integer: true, min: 0, max: 256 }),\r\n allowed_vertical_water_for_tree: (0, 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: (0, Common_1.IntProvider)({ min: 0, max: 256 })\r\n },\r\n 'minecraft:seagrass': {\r\n probability: (0, 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: (0, core_1.Opt)((0, core_1.ListNode)(Reference('block_state'))),\r\n place_in: (0, core_1.Opt)((0, core_1.ListNode)(Reference('block_state'))),\r\n place_under: (0, core_1.Opt)((0, core_1.ListNode)(Reference('block_state')))\r\n },\r\n 'minecraft:simple_random_selector': {\r\n features: (0, core_1.ListNode)(Feature)\r\n },\r\n 'minecraft:small_dripstone': {\r\n max_placements: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 100 })),\r\n empty_space_search_radius: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 20 })),\r\n max_offset_from_origin: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 20 })),\r\n chance_of_taller_dripstone: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:spring_feature': {\r\n state: Reference('fluid_state'),\r\n rock_count: (0, core_1.NumberNode)({ integer: true }),\r\n hole_count: (0, core_1.NumberNode)({ integer: true }),\r\n requires_block_below: (0, core_1.BooleanNode)(),\r\n valid_blocks: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:tree': {\r\n ignore_vines: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n force_dirt: (0, core_1.Opt)((0, 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: (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/trunk_placer_type' } }),\r\n base_height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 32 }),\r\n height_rand_a: (0, core_1.NumberNode)({ integer: true, min: 0, max: 24 }),\r\n height_rand_b: (0, 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: (0, Common_1.IntProvider)({ min: 1, max: 64 }),\r\n min_height_for_leaves: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 1 }))\r\n }\r\n }\r\n }, { context: 'trunk_placer' }),\r\n foliage_placer: (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/foliage_placer_type' } }),\r\n radius: (0, Common_1.IntProvider)({ min: 0, max: 16 }),\r\n offset: (0, 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: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:bush_foliage_placer': {\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:fancy_foliage_placer': {\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:jungle_foliage_placer': {\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:mega_pine_foliage_placer': {\r\n crown_height: (0, Common_1.IntProvider)({ min: 0, max: 24 })\r\n },\r\n 'minecraft:pine_foliage_placer': {\r\n height: (0, Common_1.IntProvider)({ min: 0, max: 24 })\r\n },\r\n 'minecraft:random_spread_foliage_placer': {\r\n foliage_height: (0, Common_1.IntProvider)({ min: 1, max: 512 }),\r\n leaf_placement_attempts: (0, core_1.NumberNode)({ integer: true, min: 0, max: 256 })\r\n },\r\n 'minecraft:spruce_foliage_placer': {\r\n trunk_height: (0, Common_1.IntProvider)({ min: 0, max: 24 })\r\n }\r\n }\r\n }, { context: 'foliage_placer', disableSwitchContext: true }),\r\n decorators: (0, core_1.ListNode)((0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:cocoa': {\r\n probability: (0, 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: (0, core_1.NumberNode)({ integer: true, min: 0, max: 512 }),\r\n placement_radius_around_floor: (0, core_1.NumberNode)({ integer: true, min: 0, max: 64 }),\r\n placement_probability_per_valid_position: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature_size_type' } }),\r\n min_clipped_height: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 81 })),\r\n lower_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })),\r\n upper_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 }))\r\n },\r\n 'minecraft:three_layers_feature_size': {\r\n limit: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 80 })),\r\n upper_limit: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 80 })),\r\n lower_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })),\r\n middle_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })),\r\n upper_size: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, 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: (0, 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: (0, core_1.ListNode)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n weight: (0, 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', (0, core_1.Mod)((0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n name: (0, 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: (0, core_1.NumberNode)({ integer: true }),\r\n bedrock_floor_position: (0, core_1.NumberNode)({ integer: true }),\r\n sea_level: (0, core_1.NumberNode)({ integer: true }),\r\n min_surface_level: (0, core_1.NumberNode)({ integer: true }),\r\n disable_mob_generation: (0, core_1.BooleanNode)(),\r\n noise_caves_enabled: (0, core_1.BooleanNode)(),\r\n noodle_caves_enabled: (0, core_1.BooleanNode)(),\r\n aquifers_enabled: (0, core_1.BooleanNode)(),\r\n deepslate_enabled: (0, core_1.BooleanNode)(),\r\n ore_veins_enabled: (0, core_1.BooleanNode)(),\r\n default_block: Reference('block_state'),\r\n default_fluid: Reference('block_state'),\r\n noise: (0, core_1.ObjectNode)({\r\n min_y: (0, core_1.NumberNode)({ integer: true, min: -2048, max: 2047 }),\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4096 }),\r\n density_factor: (0, core_1.NumberNode)(),\r\n density_offset: (0, core_1.NumberNode)(),\r\n size_horizontal: (0, core_1.NumberNode)({ integer: true }),\r\n size_vertical: (0, core_1.NumberNode)({ integer: true }),\r\n simplex_surface_noise: (0, core_1.BooleanNode)(),\r\n random_density_offset: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n island_noise_override: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n amplified: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n sampling: (0, core_1.ObjectNode)({\r\n xz_scale: (0, core_1.NumberNode)(),\r\n y_scale: (0, core_1.NumberNode)(),\r\n xz_factor: (0, core_1.NumberNode)(),\r\n y_factor: (0, core_1.NumberNode)()\r\n }),\r\n bottom_slide: (0, core_1.ObjectNode)({\r\n target: (0, core_1.NumberNode)({ integer: true }),\r\n size: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n offset: (0, core_1.NumberNode)({ integer: true })\r\n }),\r\n top_slide: (0, core_1.ObjectNode)({\r\n target: (0, core_1.NumberNode)({ integer: true }),\r\n size: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n offset: (0, 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', (0, core_1.ObjectNode)({\r\n stronghold: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n distance: (0, core_1.NumberNode)({ integer: true, min: 0, max: 1023 }),\r\n spread: (0, core_1.NumberNode)({ integer: true, min: 0, max: 1023 }),\r\n count: (0, core_1.NumberNode)({ integer: true, min: 1, max: 4095 })\r\n })),\r\n structures: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }), (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n spacing: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4096 }),\r\n separation: (0, core_1.Mod)((0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n height: (0, 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: (0, core_1.NumberNode)({ integer: true })\r\n };\r\n schemas.register('configured_structure_feature', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }),\r\n config: (0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:mineshaft': {\r\n type: StringNode({ enum: ['normal', 'mesa'] }),\r\n probability: (0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n cluster_probability: (0, 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: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/surface_builder' } }),\r\n config: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n name: StringNode(),\r\n fallback: StringNode(),\r\n elements: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n weight: (0, 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', (0, core_1.Mod)((0, 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: (0, 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 (0, ProcessorList_1.initProcessorListSchemas)(schemas, collections);\r\n (0, Biome_1.initBiomeSchemas)(schemas, collections);\r\n (0, Carver_1.initCarverSchemas)(schemas, collections);\r\n (0, Decorator_1.initDecoratorSchemas)(schemas, collections);\r\n (0, Feature_1.initFeatureSchemas)(schemas, collections);\r\n (0, NoiseSettings_1.initNoiseSettingsSchemas)(schemas, collections);\r\n (0, StructureFeature_1.initStructureFeatureSchemas)(schemas, collections);\r\n (0, SurfaceBuilder_1.initSurfaceBuilderSchemas)(schemas, collections);\r\n (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n generate_features: (0, core_1.BooleanNode)(),\r\n bonus_chest: (0, core_1.BooleanNode)(),\r\n seed: (0, core_1.NumberNode)({ integer: true }),\r\n dimensions: (0, 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 (0, Common_1.initCommonSchemas)(schemas, collections);\r\n (0, Advancement_1.initAdvancementSchemas)(schemas, collections);\r\n (0, assets_1.initAssetsSchemas)(schemas, collections);\r\n (0, Condition_1.initConditionSchemas)(schemas, collections);\r\n (0, DimensionType_1.initDimensionTypeSchemas)(schemas, collections);\r\n (0, Dimension_1.initDimensionSchemas)(schemas, collections);\r\n (0, ItemModifier_1.initItemModifierSchemas)(schemas, collections);\r\n (0, LootTable_1.initLootTableSchemas)(schemas, collections);\r\n (0, PackMcmeta_1.initPackMcmetaSchemas)(schemas, collections);\r\n (0, Predicates_1.initPredicatesSchemas)(schemas, collections);\r\n (0, Recipe_1.initRecipeSchemas)(schemas, collections);\r\n (0, Tags_1.initTagsSchemas)(schemas, collections);\r\n (0, TextComponent_1.initTextComponentSchemas)(schemas, collections);\r\n (0, worldgen_1.initWorldgenSchemas)(schemas, collections);\r\n (0, 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 var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\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.prototype.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 = exports.lootContext = 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 (0, 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 (0, 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('cat_texture', [\r\n 'textures/entity/cat/tabby.png',\r\n 'textures/entity/cat/black.png',\r\n 'textures/entity/cat/red.png',\r\n 'textures/entity/cat/siamese.png',\r\n 'textures/entity/cat/british_shorthair.png',\r\n 'textures/entity/cat/calico.png',\r\n 'textures/entity/cat/persian.png',\r\n 'textures/entity/cat/ragdoll.png',\r\n 'textures/entity/cat/white.png',\r\n 'textures/entity/cat/jellie.png',\r\n 'textures/entity/cat/all_black.png'\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 = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n node: (0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n display: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n icon: (0, core_1.ObjectNode)({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n nbt: (0, 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: (0, core_1.Opt)(StringNode()),\r\n frame: (0, core_1.Opt)(StringNode({ enum: ['task', 'challenge', 'goal'] })),\r\n show_toast: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n announce_to_chat: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n hidden: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$advancement' } })),\r\n criteria: (0, core_1.MapNode)(StringNode(), Reference('advancement_criteria')),\r\n requirements: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ListNode)(StringNode() // TODO: add validation\r\n ))),\r\n rewards: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n function: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$function' } })),\r\n loot: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$loot_table' } }))),\r\n recipes: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$recipe' } }))),\r\n experience: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n trigger: StringNode({ validator: 'resource', params: { pool: collections.get('advancement_trigger') } }),\r\n conditions: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n player: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n num_bees_inside: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n item: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'potion' } }))\r\n },\r\n 'minecraft:changed_dimension': {\r\n from: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n to: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$dimension' } }))\r\n },\r\n 'minecraft:channeled_lightning': {\r\n victims: (0, core_1.Opt)((0, 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: (0, 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: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), (0, core_1.ObjectNode)({\r\n amplifier: Reference('int_bounds'),\r\n duration: Reference('int_bounds')\r\n }))),\r\n source: (0, core_1.Opt)(EntityPredicate)\r\n },\r\n 'minecraft:enter_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:entity_hurt_player': {\r\n damage: (0, core_1.Opt)(Reference('damage_predicate'))\r\n },\r\n 'minecraft:entity_killed_player': {\r\n entity: EntityPredicate,\r\n killing_blow: (0, core_1.Opt)(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:fall_from_height': {\r\n start_position: (0, core_1.Opt)(Reference('location_predicate')),\r\n distance: (0, core_1.Opt)(Reference('distance_predicate'))\r\n },\r\n 'minecraft:filled_bucket': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:fishing_rod_hooked': {\r\n entity: EntityPredicate,\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:hero_of_the_village': {\r\n location: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:inventory_changed': {\r\n slots: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:item_used_on_block': {\r\n item: (0, core_1.Opt)(Reference('item_predicate')),\r\n location: (0, 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: (0, core_1.Opt)((0, core_1.ListNode)(EntityPredicate))\r\n },\r\n 'minecraft:levitation': {\r\n distance: (0, 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: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:nether_travel': {\r\n start_position: (0, core_1.Opt)(Reference('location_predicate')),\r\n distance: (0, core_1.Opt)(Reference('distance_predicate')),\r\n },\r\n 'minecraft:placed_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })),\r\n item: (0, core_1.Opt)(Reference('item_predicate')),\r\n location: (0, 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: (0, core_1.Opt)(Reference('damage_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_interacted_with_entity': {\r\n item: (0, 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: (0, 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: (0, core_1.Opt)(Reference('location_predicate')),\r\n distance: (0, core_1.Opt)(Reference('distance_predicate'))\r\n },\r\n 'minecraft:slept_in_bed': {\r\n location: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:slide_down_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:shot_crossbow': {\r\n item: (0, 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: EntityPredicate,\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:used_ender_eye': {\r\n distance: (0, core_1.Opt)(Reference('float_bounds'))\r\n },\r\n 'minecraft:used_totem': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:using_item': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:villager_trade': {\r\n villager: EntityPredicate,\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:voluntary_exile': {\r\n location: (0, 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) => (0, core_1.ListNode)((0, core_1.NumberNode)({ min, max }), { minLength: length, maxLength: length });\r\n const Texture = (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n parent: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$model' } })),\r\n ambientocclusion: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n gui_light: (0, core_1.Opt)(StringNode({ enum: 'gui_light' })),\r\n textures: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), Texture)),\r\n elements: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n from: Vec(3, -16, 32),\r\n to: Vec(3, -16, 32),\r\n rotation: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n origin: Vec(3),\r\n axis: StringNode({ enum: 'axis' }),\r\n angle: (0, core_1.NumberEnum)({ values: [-45, -22.5, 0, 22.5, 45] }),\r\n rescale: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n })),\r\n shade: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n faces: (0, core_1.MapNode)(StringNode({ enum: 'direction' }), (0, core_1.ObjectNode)({\r\n texture: Texture,\r\n uv: (0, core_1.Opt)(Vec(4)),\r\n cullface: (0, core_1.Opt)(StringNode({ enum: 'direction' })),\r\n rotation: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n tintindex: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n }))\r\n }, { context: 'model_element' }))),\r\n display: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ enum: 'display_position' }), (0, 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: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n predicate: (0, core_1.MapNode)(StringNode({ enum: 'item_model_predicates' }), (0, 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', (0, core_1.Mod)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'variants',\r\n match: (v) => v.variants !== undefined,\r\n node: (0, core_1.ObjectNode)({\r\n variants: (0, 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: (0, core_1.ObjectNode)({\r\n multipart: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n when: (0, 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: (0, core_1.Opt)((0, core_1.NumberEnum)({ integer: true, values: [0, 90, 180, 270] })),\r\n y: (0, core_1.Opt)((0, core_1.NumberEnum)({ integer: true, values: [0, 90, 180, 270] })),\r\n uvlock: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n };\r\n schemas.register('model_variant', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n node: (0, 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: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n ...VariantChildren,\r\n weight: (0, core_1.Opt)((0, 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', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n priority: -1,\r\n match: () => true,\r\n node: (0, 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: (0, core_1.ObjectNode)({\r\n OR: (0, 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 (0, BlockDefinition_1.initBlockDefinitionSchemas)(schemas, collections);\r\n (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n Properties: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'fluid' } }),\r\n Properties: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ListNode)((0, core_1.NumberNode)({ integer: true }), { minLength: 3, maxLength: 3 }), {\r\n default: () => [0, 0, 0]\r\n }));\r\n const Bounds = (integer) => (0, core_1.Opt)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'number',\r\n node: (0, 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: (0, core_1.ObjectNode)({\r\n min: (0, core_1.Opt)((0, core_1.NumberNode)({ integer })),\r\n max: (0, core_1.Opt)((0, 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', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)({\r\n min: (0, core_1.Opt)(Reference('number_provider')),\r\n max: (0, core_1.Opt)(Reference('number_provider'))\r\n })\r\n },\r\n {\r\n type: 'number',\r\n node: (0, 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] = (0, 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 = (0, core_1.ObjectNode)({\r\n type: (0, core_1.Mod)((0, 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 (0, 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: (0, 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: (0, core_1.Opt)((0, 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: (0, 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: (0, 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: (0, core_1.NumberNode)(config)\r\n },\r\n 'minecraft:uniform': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)(config),\r\n max_exclusive: (0, core_1.NumberNode)(config)\r\n })\r\n },\r\n 'minecraft:clamped_normal': {\r\n value: (0, core_1.ObjectNode)({\r\n min: (0, core_1.NumberNode)(),\r\n max: (0, core_1.NumberNode)(),\r\n mean: (0, core_1.NumberNode)(),\r\n deviation: (0, core_1.NumberNode)()\r\n })\r\n },\r\n 'minecraft:trapezoid': {\r\n value: (0, core_1.ObjectNode)({\r\n min: (0, core_1.NumberNode)(),\r\n max: (0, core_1.NumberNode)(),\r\n plateau: (0, core_1.NumberNode)()\r\n })\r\n }\r\n });\r\n schemas.register('float_provider', (0, 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: (0, core_1.NumberNode)({ integer: true, ...config })\r\n },\r\n 'minecraft:uniform': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:biased_to_bottom': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:clamped': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n source: Reference('int_provider')\r\n })\r\n },\r\n 'minecraft:clamped_normal': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n mean: (0, core_1.NumberNode)(),\r\n deviation: (0, core_1.NumberNode)()\r\n })\r\n },\r\n 'minecraft:weighted_list': {\r\n distribution: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n weight: (0, core_1.NumberNode)({ integer: true }),\r\n data: Reference('int_provider'),\r\n }))\r\n }\r\n });\r\n schemas.register('int_provider', (0, exports.IntProvider)());\r\n schemas.register('vertical_anchor', (0, 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: (0, core_1.ObjectNode)({\r\n [t]: (0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:weighted_list': {\r\n distribution: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n weight: (0, core_1.NumberNode)({ integer: true }),\r\n data: Reference('height_provider'),\r\n }))\r\n }\r\n }));\r\n exports.InclusiveRange = (config) => (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)(config),\r\n max_inclusive: (0, core_1.NumberNode)(config)\r\n }, { context: 'range' });\r\n schemas.register('noise_parameters', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n firstOctave: (0, core_1.NumberNode)({ integer: true }),\r\n amplitudes: (0, core_1.ListNode)((0, 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: (0, 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: (0, 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: (0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:location_check': {\r\n offsetX: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n offsetY: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n offsetZ: (0, core_1.Opt)((0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_chance_with_looting': {\r\n chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n looting_multiplier: (0, 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: (0, core_1.ListNode)((0, core_1.NumberNode)({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:time_check': {\r\n value: Reference('int_range'),\r\n period: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n thundering: (0, core_1.Opt)((0, 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: (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n bonusMultiplier: (0, core_1.Mod)((0, core_1.NumberNode)(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:uniform_bonus_count'\r\n }),\r\n extra: (0, core_1.Mod)((0, core_1.NumberNode)(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n }),\r\n probability: (0, core_1.Mod)((0, 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: (0, core_1.ListNode)((0, 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: (0, core_1.ListNode)(StringNode({ validator: 'block_state_key', params: { id: ['pop', 'pop', { push: 'block' }] } }))\r\n },\r\n 'minecraft:enchant_randomly': {\r\n enchantments: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:exploration_map': {\r\n destination: (0, core_1.Opt)(StringNode({ enum: 'map_feature' })),\r\n decoration: (0, core_1.Opt)(StringNode({ enum: 'map_decoration' })),\r\n zoom: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n search_radius: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n skip_existing_chunks: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:set_attributes': {\r\n modifiers: (0, core_1.ListNode)(Reference('attribute_modifier'))\r\n },\r\n 'minecraft:set_banner_pattern': {\r\n patterns: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n pattern: StringNode({ enum: 'banner_pattern' }),\r\n color: StringNode({ enum: 'dye_color' })\r\n })),\r\n append: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_contents': {\r\n type: StringNode({ validator: 'resource', params: { pool: 'block_entity_type' } }),\r\n entries: (0, core_1.ListNode)(Reference('loot_entry'))\r\n },\r\n 'minecraft:set_count': {\r\n count: Reference('number_provider'),\r\n add: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_damage': {\r\n damage: Reference('number_provider'),\r\n add: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_enchantments': {\r\n enchantments: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'enchantment' } }), Reference('number_provider')),\r\n add: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:set_lore': {\r\n entity: (0, core_1.Opt)(entitySourceNode),\r\n lore: (0, core_1.ListNode)(Reference('text_component')),\r\n replace: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_name': {\r\n entity: (0, core_1.Opt)(entitySourceNode),\r\n name: (0, 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: (0, core_1.Opt)((0, core_1.ListNode)((0, 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) => (0, 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) => (0, 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', (0, core_1.ObjectOrList)(Reference('condition'), { choiceContext: 'condition' }));\r\n schemas.register('condition', (0, core_1.Mod)((0, 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]: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: (0, Common_1.DimensionTypePresets)(Reference('dimension_type')),\r\n generator: (0, 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: (0, core_1.NumberNode)({ integer: true }),\r\n settings: (0, Common_1.NoiseSettingsPresets)(Reference('noise_settings')),\r\n biome_source: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: ['minecraft:overworld', 'minecraft:nether'] } })),\r\n biomes: (0, core_1.Mod)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 62 })),\r\n biomes: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }))\r\n },\r\n 'minecraft:the_end': {\r\n seed: (0, core_1.NumberNode)({ integer: true })\r\n }\r\n }\r\n }, { category: 'predicate', disableSwitchContext: true })\r\n },\r\n 'minecraft:flat': {\r\n settings: (0, core_1.ObjectNode)({\r\n biome: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n lakes: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n features: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n layers: (0, 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 = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'number',\r\n node: (0, 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: (0, core_1.ListNode)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }),\r\n parameters: (0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n ultrawarm: (0, core_1.BooleanNode)(),\r\n natural: (0, core_1.BooleanNode)(),\r\n piglin_safe: (0, core_1.BooleanNode)(),\r\n respawn_anchor_works: (0, core_1.BooleanNode)(),\r\n bed_works: (0, core_1.BooleanNode)(),\r\n has_raids: (0, core_1.BooleanNode)(),\r\n has_skylight: (0, core_1.BooleanNode)(),\r\n has_ceiling: (0, core_1.BooleanNode)(),\r\n coordinate_scale: (0, core_1.NumberNode)({ min: 0.00001, max: 30000000 }),\r\n ambient_light: (0, core_1.NumberNode)(),\r\n fixed_time: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n logical_height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4096 }),\r\n effects: (0, 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: (0, core_1.NumberNode)({ integer: true, min: -2048, max: 2047 }),\r\n height: (0, 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', (0, core_1.ObjectOrList)(Reference('function'), { choiceContext: 'function' }));\r\n const conditions = {\r\n conditions: (0, core_1.Opt)((0, core_1.ListNode)(Reference('condition')))\r\n };\r\n schemas.register('function', (0, core_1.Mod)((0, 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]: (0, 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: (0, core_1.Opt)((0, core_1.ListNode)(Reference('loot_condition')))\r\n };\r\n const functionsAndConditions = {\r\n functions: (0, core_1.Opt)((0, 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 (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: (0, core_1.Opt)(StringNode({ validator: \"resource\", params: { pool: collections.get('loot_context_type') } })),\r\n pools: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n rolls: Reference('number_provider'),\r\n bonus_rolls: (0, core_1.Opt)(Reference('number_provider')),\r\n entries: (0, 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: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'loot_pool_entry_type' } }),\r\n weight: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true, min: 1 }), weightMod)),\r\n quality: (0, core_1.Opt)((0, core_1.Mod)((0, 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: (0, 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: (0, 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: (0, 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: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n function: functionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'function' }],\r\n [core_1.Case]: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n condition: conditionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: (0, 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', (0, core_1.Mod)((0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n pack: (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n pack_format: (0, core_1.Mod)((0, 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: (0, 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 = (0, 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: (0, core_1.NumberNode)(),\r\n change: v => (typeof v === 'string') ? parseInt(v) : 0\r\n },\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)({\r\n min: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n max: (0, core_1.Opt)((0, 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: (0, core_1.BooleanNode)(),\r\n change: v => v === 'true' || v === 1\r\n }\r\n ]);\r\n schemas.register('item_predicate', (0, core_1.ObjectNode)({\r\n items: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'item' } }))),\r\n tag: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'potion' } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } })),\r\n enchantments: (0, core_1.Opt)((0, core_1.ListNode)(Reference('enchantment_predicate')))\r\n }, { context: 'item' }));\r\n schemas.register('enchantment_predicate', (0, core_1.ObjectNode)({\r\n enchantment: (0, 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', (0, core_1.ObjectNode)({\r\n blocks: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'block' } }))),\r\n tag: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$tag/block' } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block', id: ['pop', { push: 'block' }] } } })),\r\n state: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n fluid: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'fluid' } })),\r\n tag: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$tag/fluid' } })),\r\n state: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), StateChoice))\r\n }, { context: 'fluid' }));\r\n schemas.register('location_predicate', (0, core_1.ObjectNode)({\r\n position: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n feature: (0, core_1.Opt)(StringNode({ enum: collections.get('worldgen/structure_feature').map(v => v.slice(10)) })),\r\n dimension: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n light: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n light: Reference('int_bounds')\r\n })),\r\n smokey: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n block: (0, core_1.Opt)(Reference('block_predicate')),\r\n fluid: (0, core_1.Opt)(Reference('fluid_predicate'))\r\n }, { context: 'location' }));\r\n schemas.register('statistic_predicate', (0, 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', (0, core_1.ObjectNode)({\r\n gamemode: (0, core_1.Opt)(StringNode({ enum: 'gamemode' })),\r\n level: Reference('int_bounds'),\r\n advancements: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: '$advancement' } }), (0, core_1.ChoiceNode)([\r\n { type: 'boolean', node: (0, core_1.BooleanNode)(), change: _ => true },\r\n {\r\n type: 'object', node: (0, core_1.MapNode)(StringNode(), (0, core_1.BooleanNode)())\r\n }\r\n ]))),\r\n recipes: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: '$recipe' } }), (0, core_1.BooleanNode)())),\r\n stats: (0, core_1.Opt)((0, core_1.ListNode)(Reference('statistic_predicate'))),\r\n looking_at: (0, core_1.Opt)(Reference('entity_predicate'))\r\n }, { context: 'player' }));\r\n schemas.register('status_effect_predicate', (0, core_1.ObjectNode)({\r\n amplifier: Reference('int_bounds'),\r\n duration: Reference('int_bounds'),\r\n ambient: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n visible: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n }, { context: 'status_effect' }));\r\n schemas.register('distance_predicate', (0, 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', (0, core_1.ObjectNode)({\r\n type: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'entity_type', allowTag: true } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:entity', id: ['pop', { push: 'type' }] } } })),\r\n team: (0, core_1.Opt)(StringNode({ validator: 'team' })),\r\n location: (0, core_1.Opt)(Reference('location_predicate')),\r\n stepping_on: (0, core_1.Opt)(Reference('location_predicate')),\r\n distance: (0, core_1.Opt)(Reference('distance_predicate')),\r\n flags: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n is_on_fire: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_sneaking: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_sprinting: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_swimming: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_baby: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n })),\r\n equipment: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ enum: 'slot' }), Reference('item_predicate'))),\r\n vehicle: (0, core_1.Opt)(Reference('entity_predicate')),\r\n passenger: (0, core_1.Opt)(Reference('entity_predicate')),\r\n targeted_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n player: (0, core_1.Opt)(Reference('player_predicate')),\r\n lightning_bolt: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n blocks_set_on_fire: (0, core_1.Opt)(Reference('int_bounds')),\r\n entity_struck: (0, core_1.Opt)(Reference('entity_predicate'))\r\n })),\r\n fishing_hook: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n in_open_water: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n })),\r\n catType: (0, core_1.Opt)(StringNode({ enum: 'cat_texture' })),\r\n effects: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n is_explosion: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_fire: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_magic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_projectile: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_lightning: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_armor: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_invulnerability: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_magic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n source_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n direct_entity: (0, core_1.Opt)(Reference('entity_predicate'))\r\n }, { context: 'damage_source' }));\r\n schemas.register('damage_predicate', (0, core_1.ObjectNode)({\r\n dealt: Reference('float_bounds'),\r\n taken: Reference('float_bounds'),\r\n blocked: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n source_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n type: (0, 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', (0, core_1.Mod)((0, 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: (0, core_1.Opt)(StringNode({ enum: 'recipe_group', additional: true })),\r\n pattern: (0, core_1.ListNode)(StringNode()),\r\n key: (0, 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: (0, core_1.Opt)(StringNode()),\r\n ingredients: (0, core_1.ListNode)(Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:smelting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 200 }))\r\n },\r\n 'minecraft:blasting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:smoking': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:campfire_cooking': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:stonecutting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:smithing': {\r\n group: (0, 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', (0, core_1.Mod)((0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n item: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.Opt)((0, core_1.Mod)((0, 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) => (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n replace: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n values: (0, core_1.ListNode)((0, 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: (0, core_1.ObjectNode)({\r\n id: StringNode({ validator: 'resource', params: { pool: type, allowTag: true, allowUnknown: true } }),\r\n required: (0, 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', (0, core_1.Mod)((0, 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: (0, 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: (0, 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: (0, core_1.Opt)(StringNode()) /* TODO */,\r\n font: (0, core_1.Opt)(StringNode()),\r\n bold: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n italic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n underlined: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n strikethrough: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n obfuscated: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n insertion: (0, core_1.Opt)(StringNode()),\r\n clickEvent: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(Reference('text_component')),\r\n contents: (0, core_1.Opt)(Reference('text_component'))\r\n },\r\n 'show_item': {\r\n value: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { module: 'util::InventoryItem' } })),\r\n contents: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n id: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n tag: (0, 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: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n name: (0, core_1.Opt)(StringNode()),\r\n type: (0, core_1.Opt)(StringNode()),\r\n id: (0, core_1.Opt)(StringNode())\r\n })),\r\n contents: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n name: (0, 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: (0, core_1.Opt)(Reference('text_component_list'))\r\n };\r\n schemas.register('text_component_object', (0, core_1.Mod)((0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n translate: StringNode(),\r\n with: (0, 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: (0, core_1.ObjectNode)({\r\n score: (0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n selector: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } }),\r\n separator: (0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n nbt: StringNode({ validator: 'nbt_path' }),\r\n block: (0, core_1.Opt)(StringNode({ validator: 'vector', params: { dimension: 3, isInteger: true } })),\r\n entity: (0, core_1.Opt)(StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } })),\r\n storage: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$storage' } })),\r\n interpret: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n separator: (0, 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', (0, core_1.Mod)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n temperature: (0, core_1.NumberNode)(),\r\n downfall: (0, core_1.NumberNode)(),\r\n precipitation: StringNode({ enum: ['none', 'rain', 'snow'] }),\r\n temperature_modifier: (0, core_1.Opt)(StringNode({ enum: ['none', 'frozen'] })),\r\n category: StringNode({ enum: 'biome_category' }),\r\n creature_spawn_probability: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n effects: (0, core_1.ObjectNode)({\r\n sky_color: (0, core_1.NumberNode)({ color: true }),\r\n fog_color: (0, core_1.NumberNode)({ color: true }),\r\n water_color: (0, core_1.NumberNode)({ color: true }),\r\n water_fog_color: (0, core_1.NumberNode)({ color: true }),\r\n grass_color: (0, core_1.Opt)((0, core_1.NumberNode)({ color: true })),\r\n foliage_color: (0, core_1.Opt)((0, core_1.NumberNode)({ color: true })),\r\n grass_color_modifier: (0, core_1.Opt)(StringNode({ enum: ['none', 'dark_forest', 'swamp'] })),\r\n ambient_sound: (0, core_1.Opt)(StringNode()),\r\n mood_sound: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n sound: StringNode(),\r\n tick_delay: (0, core_1.NumberNode)({ integer: true }),\r\n block_search_extent: (0, core_1.NumberNode)({ integer: true }),\r\n offset: (0, core_1.NumberNode)()\r\n })),\r\n additions_sound: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n sound: StringNode(),\r\n tick_chance: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n })),\r\n music: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n sound: StringNode(),\r\n min_delay: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n max_delay: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n replace_current_music: (0, core_1.BooleanNode)()\r\n })),\r\n particle: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n options: (0, core_1.ObjectNode)({\r\n type: StringNode()\r\n }),\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n }))\r\n }),\r\n spawners: (0, 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 ] }), (0, core_1.Mod)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n weight: (0, core_1.NumberNode)({ integer: true }),\r\n minCount: (0, core_1.NumberNode)({ integer: true }),\r\n maxCount: (0, 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: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'entity_type' } }), (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n energy_budget: (0, core_1.NumberNode)(),\r\n charge: (0, 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: (0, core_1.MapNode)(StringNode({ enum: ['air', 'liquid'] }), (0, core_1.Mod)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_carver' } })), {\r\n default: () => ['minecraft:cave']\r\n })),\r\n features: (0, core_1.ListNode)((0, core_1.Mod)((0, 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: (0, Common_1.FloatProvider)(),\r\n shape: (0, core_1.ObjectNode)({\r\n distance_factor: (0, Common_1.FloatProvider)(),\r\n thickness: (0, Common_1.FloatProvider)(),\r\n width_smoothness: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n horizontal_radius_factor: (0, Common_1.FloatProvider)(),\r\n vertical_radius_default_factor: (0, core_1.NumberNode)(),\r\n vertical_radius_center_factor: (0, core_1.NumberNode)()\r\n })\r\n };\r\n const CaveConfig = {\r\n horizontal_radius_multiplier: (0, Common_1.FloatProvider)(),\r\n vertical_radius_multiplier: (0, Common_1.FloatProvider)(),\r\n floor_level: (0, Common_1.FloatProvider)({ min: -1, max: 1 }),\r\n };\r\n schemas.register('configured_carver', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/carver' } }),\r\n config: (0, core_1.ObjectNode)({\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n y: Reference('height_provider'),\r\n yScale: (0, Common_1.FloatProvider)(),\r\n lava_level: Reference('vertical_anchor'),\r\n debug_settings: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n debug_mode: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n air_state: (0, core_1.Opt)(Reference('block_state')),\r\n water_state: (0, core_1.Opt)(Reference('block_state')),\r\n lava_state: (0, core_1.Opt)(Reference('block_state')),\r\n barrier_state: (0, 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', (0, 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: (0, core_1.NumberNode)({ integer: true, min: 0 })\r\n },\r\n 'minecraft:count': {\r\n count: (0, Common_1.IntProvider)({ min: 0, max: 256 })\r\n },\r\n 'minecraft:count_on_every_layer': {\r\n count: (0, Common_1.IntProvider)({ min: 0, max: 256 })\r\n },\r\n 'minecraft:noise_threshold_count': {\r\n noise_level: (0, core_1.NumberNode)(),\r\n below_noise: (0, core_1.NumberNode)({ integer: true }),\r\n above_noise: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:noise_based_count': {\r\n noise_to_count_ratio: (0, core_1.NumberNode)({ integer: true }),\r\n noise_factor: (0, core_1.NumberNode)(),\r\n noise_offset: (0, core_1.Opt)((0, core_1.NumberNode)())\r\n },\r\n 'minecraft:environment_scan': {\r\n direction_of_search: StringNode({ enum: ['up', 'down'] }),\r\n max_steps: (0, core_1.NumberNode)({ integer: true, min: 1, max: 32 }),\r\n target_condition: Reference('block_predicate_worldgen'),\r\n allowed_search_condition: (0, 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: (0, Common_1.IntProvider)({ min: -16, max: 16 }),\r\n y_spread: (0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n max_inclusive: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:surface_water_depth_filter': {\r\n max_water_depth: (0, 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 = (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n processors: (0, 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', (0, core_1.Mod)((0, 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: (0, core_1.NumberNode)()\r\n },\r\n 'minecraft:block_ignore': {\r\n blocks: (0, core_1.ListNode)(Reference('block_state'))\r\n },\r\n 'minecraft:block_rot': {\r\n integrity: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:gravity': {\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n offset: (0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n position_predicate: (0, 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: (0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 255, integer: true })),\r\n max_dist: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 255, integer: true })),\r\n min_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n max_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 }))\r\n };\r\n schemas.register('pos_rule_test', (0, 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', (0, 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: (0, 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: (0, 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 = (0, 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 = (0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 1 })),\r\n xz_spread: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0 })),\r\n y_spread: (0, core_1.Opt)((0, 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: (0, Common_1.IntProvider)({ min: 0, max: 8 }),\r\n half_height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4 }),\r\n targets: (0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n };\r\n const TargetBlockState = (0, core_1.ObjectNode)({\r\n target: Reference('rule_test'),\r\n state: Reference('block_state')\r\n });\r\n const OreConfig = {\r\n size: (0, core_1.NumberNode)({ integer: true, min: 0, max: 64 }),\r\n discard_chance_on_air_exposure: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n targets: (0, core_1.ListNode)(TargetBlockState)\r\n };\r\n const VegetationPatchConfig = {\r\n surface: StringNode({ enum: 'cave_surface' }),\r\n depth: (0, Common_1.IntProvider)({ min: 1, max: 128 }),\r\n vertical_range: (0, core_1.NumberNode)({ integer: true, min: 1, max: 256 }),\r\n extra_bottom_block_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n extra_edge_column_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n vegetation_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n xz_radius: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature' } }),\r\n config: (0, core_1.ObjectNode)({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bamboo': {\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:basalt_columns': {\r\n reach: (0, Common_1.IntProvider)({ min: 0, max: 3 }),\r\n height: (0, 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: (0, core_1.BooleanNode)(),\r\n layers: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n height: (0, 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: (0, Common_1.IntProvider)({ min: 0, max: 16 }),\r\n rim_size: (0, 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: (0, core_1.NumberNode)({ integer: true, min: 1, max: 512 }),\r\n height: (0, Common_1.IntProvider)({ min: 0, max: 128 }),\r\n radius: (0, Common_1.IntProvider)({ min: 0, max: 128 }),\r\n max_stalagmite_stalactite_height_diff: (0, core_1.NumberNode)({ integer: true, min: 0, max: 64 }),\r\n height_deviation: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n dripstone_block_layer_thickness: (0, Common_1.IntProvider)({ min: 0, max: 128 }),\r\n density: (0, Common_1.FloatProvider)({ min: 0, max: 2 }),\r\n wetness: (0, Common_1.FloatProvider)({ min: 0, max: 2 }),\r\n chance_of_dripstone_column_at_max_distance_from_center: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n max_distance_from_edge_affecting_chance_of_dripstone_column: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n max_distance_from_center_affecting_height_bias: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 })\r\n },\r\n 'minecraft:end_gateway': {\r\n exact: (0, core_1.BooleanNode)(),\r\n exit: (0, core_1.Opt)(Reference('block_pos'))\r\n },\r\n 'minecraft:end_spike': {\r\n crystal_invulnerable: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n crystal_beam_target: (0, core_1.Opt)(Reference('block_pos')),\r\n spikes: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n centerX: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n centerZ: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n radius: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n height: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n guarded: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n }))\r\n },\r\n 'minecraft:fill_layer': {\r\n state: Reference('block_state'),\r\n height: (0, 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: (0, core_1.NumberNode)({ integer: true, min: 0, max: 7 }),\r\n fossil_structures: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$structure' } })),\r\n overlay_structures: (0, 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: (0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n filling: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n inner_layer: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n middle_layer: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n outer_layer: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n }),\r\n crack: (0, core_1.ObjectNode)({\r\n generate_crack_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n base_crack_size: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 5 })),\r\n crack_point_offset: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 10 })),\r\n }),\r\n noise_multiplier: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n use_potential_placements_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n use_alternate_layer0_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n placements_require_layer0_alternate: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n outer_wall_distance: (0, core_1.Opt)((0, Common_1.IntProvider)({ min: 1, max: 20 })),\r\n distribution_points: (0, core_1.Opt)((0, Common_1.IntProvider)({ min: 1, max: 20 })),\r\n point_offset: (0, core_1.Opt)((0, Common_1.IntProvider)({ min: 0, max: 10 })),\r\n min_gen_offset: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n max_gen_offset: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n invalid_blocks_threshold: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:glow_lichen': {\r\n search_range: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 1, max: 64, integer: true })),\r\n chance_of_spreading: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n can_place_on_floor: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n can_place_on_ceiling: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n can_place_on_wall: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n can_be_placed_on: (0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 1, max: 512 })),\r\n column_radius: (0, Common_1.IntProvider)({ min: 0, max: 60 }),\r\n height_scale: (0, Common_1.FloatProvider)({ min: 0, max: 20 }),\r\n max_column_radius_to_cave_height_ratio: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n stalactite_bluntness: (0, Common_1.FloatProvider)({ min: 0.1, max: 10 }),\r\n stalagmite_bluntness: (0, Common_1.FloatProvider)({ min: 0.1, max: 10 }),\r\n wind_speed: (0, Common_1.FloatProvider)({ min: 0, max: 2 }),\r\n min_radius_for_wind: (0, core_1.NumberNode)({ integer: true, min: 0, max: 100 }),\r\n min_bluntness_for_wind: (0, 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: (0, core_1.NumberNode)({ integer: true, min: 1 }),\r\n spread_height: (0, 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: (0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n chance_of_directional_spread: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n chance_of_spread_radius2: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n chance_of_spread_radius3: (0, core_1.Opt)((0, 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: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n chance: (0, 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: (0, core_1.ListNode)(TargetBlockState)\r\n },\r\n 'minecraft:root_system': {\r\n required_vertical_space_for_tree: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n root_radius: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n root_placement_attempts: (0, core_1.NumberNode)({ integer: true, min: 1, max: 256 }),\r\n root_column_max_height: (0, core_1.NumberNode)({ integer: true, min: 1, max: 4096 }),\r\n hanging_root_radius: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n hanging_roots_vertical_span: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 }),\r\n hanging_root_placement_attempts: (0, core_1.NumberNode)({ integer: true, min: 0, max: 256 }),\r\n allowed_vertical_water_for_tree: (0, 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: (0, Common_1.IntProvider)({ min: 0, max: 256 })\r\n },\r\n 'minecraft:seagrass': {\r\n probability: (0, 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: (0, core_1.ListNode)(PlacedFeature)\r\n },\r\n 'minecraft:spring_feature': {\r\n state: Reference('fluid_state'),\r\n rock_count: (0, core_1.NumberNode)({ integer: true }),\r\n hole_count: (0, core_1.NumberNode)({ integer: true }),\r\n requires_block_below: (0, core_1.BooleanNode)(),\r\n valid_blocks: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:tree': {\r\n ignore_vines: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n force_dirt: (0, core_1.Opt)((0, 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: (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/trunk_placer_type' } }),\r\n base_height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 32 }),\r\n height_rand_a: (0, core_1.NumberNode)({ integer: true, min: 0, max: 24 }),\r\n height_rand_b: (0, 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: (0, Common_1.IntProvider)({ min: 1, max: 64 }),\r\n min_height_for_leaves: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 1 }))\r\n }\r\n }\r\n }, { context: 'trunk_placer' }),\r\n foliage_placer: (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/foliage_placer_type' } }),\r\n radius: (0, Common_1.IntProvider)({ min: 0, max: 16 }),\r\n offset: (0, 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: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:bush_foliage_placer': {\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:fancy_foliage_placer': {\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:jungle_foliage_placer': {\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:mega_pine_foliage_placer': {\r\n crown_height: (0, Common_1.IntProvider)({ min: 0, max: 24 })\r\n },\r\n 'minecraft:pine_foliage_placer': {\r\n height: (0, Common_1.IntProvider)({ min: 0, max: 24 })\r\n },\r\n 'minecraft:random_spread_foliage_placer': {\r\n foliage_height: (0, Common_1.IntProvider)({ min: 1, max: 512 }),\r\n leaf_placement_attempts: (0, core_1.NumberNode)({ integer: true, min: 0, max: 256 })\r\n },\r\n 'minecraft:spruce_foliage_placer': {\r\n trunk_height: (0, Common_1.IntProvider)({ min: 0, max: 24 })\r\n }\r\n }\r\n }, { context: 'foliage_placer', disableSwitchContext: true }),\r\n decorators: (0, core_1.ListNode)((0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:cocoa': {\r\n probability: (0, 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: (0, core_1.NumberNode)({ integer: true, min: 1 }),\r\n spread_height: (0, core_1.NumberNode)({ integer: true, min: 1 }),\r\n max_height: (0, core_1.NumberNode)({ integer: true, min: 1 }),\r\n },\r\n 'minecraft:underwater_magma': {\r\n floor_search_range: (0, core_1.NumberNode)({ integer: true, min: 0, max: 512 }),\r\n placement_radius_around_floor: (0, core_1.NumberNode)({ integer: true, min: 0, max: 64 }),\r\n placement_probability_per_valid_position: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n feature: ConfiguredFeature,\r\n placement: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature_size_type' } }),\r\n min_clipped_height: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 81 })),\r\n lower_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })),\r\n upper_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 }))\r\n },\r\n 'minecraft:three_layers_feature_size': {\r\n limit: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 80 })),\r\n upper_limit: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 80 })),\r\n lower_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })),\r\n middle_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })),\r\n upper_size: (0, core_1.Opt)((0, 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: (0, core_1.NumberNode)({ integer: true }),\r\n noise: Reference('noise_parameters'),\r\n scale: (0, core_1.Mod)((0, core_1.NumberNode)({ min: Number.MIN_VALUE }), { default: () => 1 })\r\n };\r\n schemas.register('block_state_provider', (0, core_1.Mod)((0, 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: (0, Common_1.InclusiveRange)({ integer: true, min: 1, max: 64 }),\r\n slow_noise: Reference('noise_parameters'),\r\n slow_scale: (0, core_1.Mod)((0, core_1.NumberNode)({ min: Number.MIN_VALUE }), { default: () => 1 }),\r\n states: (0, core_1.ListNode)(Reference('block_state'))\r\n },\r\n 'minecraft:noise_threshold_provider': {\r\n ...NoiseProvider,\r\n threshold: (0, core_1.NumberNode)({ min: -1, max: 1 }),\r\n high_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n default_state: Reference('block_state'),\r\n low_states: (0, core_1.ListNode)(Reference('block_state')),\r\n high_states: (0, core_1.ListNode)(Reference('block_state'))\r\n },\r\n 'minecraft:noise_provider': {\r\n ...NoiseProvider,\r\n states: (0, core_1.ListNode)(Reference('block_state'))\r\n },\r\n 'minecraft:randomized_int_state_provider': {\r\n property: StringNode(),\r\n values: (0, 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: (0, core_1.ListNode)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n weight: (0, 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: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.NumberNode)({ integer: true, min: -16, max: 16 }), { minLength: 3, maxLength: 3 }))\r\n };\r\n schemas.register('block_predicate_worldgen', (0, core_1.Mod)((0, 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: (0, core_1.ListNode)(Reference('block_predicate_worldgen'))\r\n },\r\n 'minecraft:any_of': {\r\n predicates: (0, 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: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:matching_fluids': {\r\n ...Offset,\r\n fluids: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n sea_level: (0, core_1.NumberNode)({ integer: true }),\r\n disable_mob_generation: (0, core_1.BooleanNode)(),\r\n noise_caves_enabled: (0, core_1.BooleanNode)(),\r\n noodle_caves_enabled: (0, core_1.BooleanNode)(),\r\n aquifers_enabled: (0, core_1.BooleanNode)(),\r\n ore_veins_enabled: (0, core_1.BooleanNode)(),\r\n legacy_random_source: (0, core_1.BooleanNode)(),\r\n default_block: Reference('block_state'),\r\n default_fluid: Reference('block_state'),\r\n noise: (0, core_1.ObjectNode)({\r\n min_y: (0, core_1.NumberNode)({ integer: true, min: -2048, max: 2047 }),\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4096 }),\r\n size_horizontal: (0, core_1.NumberNode)({ integer: true }),\r\n size_vertical: (0, core_1.NumberNode)({ integer: true }),\r\n island_noise_override: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n amplified: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n large_biomes: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n sampling: (0, core_1.ObjectNode)({\r\n xz_scale: (0, core_1.NumberNode)(),\r\n y_scale: (0, core_1.NumberNode)(),\r\n xz_factor: (0, core_1.NumberNode)(),\r\n y_factor: (0, 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', (0, core_1.ObjectNode)({\r\n target: (0, core_1.NumberNode)(),\r\n size: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n offset: (0, core_1.NumberNode)({ integer: true })\r\n }));\r\n schemas.register('generator_structures', (0, core_1.ObjectNode)({\r\n stronghold: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n distance: (0, core_1.NumberNode)({ integer: true, min: 0, max: 1023 }),\r\n spread: (0, core_1.NumberNode)({ integer: true, min: 0, max: 1023 }),\r\n count: (0, core_1.NumberNode)({ integer: true, min: 1, max: 4095 })\r\n })),\r\n structures: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }), (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n spacing: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4096 }),\r\n separation: (0, core_1.Mod)((0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n height: (0, 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', (0, core_1.Mod)((0, 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', (0, core_1.Mod)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'number',\r\n node: (0, core_1.NumberNode)()\r\n },\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)({\r\n coordinate: (0, core_1.Mod)(StringNode({ enum: ['continents', 'erosion', 'weirdness', 'ridges'] }), { default: () => 'continents' }),\r\n points: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n location: (0, core_1.NumberNode)(),\r\n derivative: (0, 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: (0, core_1.NumberNode)({ integer: true })\r\n };\r\n schemas.register('configured_structure_feature', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }),\r\n config: (0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:mineshaft': {\r\n type: StringNode({ enum: ['normal', 'mesa'] }),\r\n probability: (0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n cluster_probability: (0, 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: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, 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: (0, 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', (0, core_1.Mod)((0, 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: (0, 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: (0, core_1.NumberNode)(),\r\n max_threshold: (0, 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: (0, core_1.NumberNode)({ integer: true }),\r\n surface_type: StringNode({ enum: 'cave_surface' }),\r\n add_surface_depth: (0, core_1.BooleanNode)(),\r\n add_surface_secondary_depth: (0, 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: (0, core_1.NumberNode)({ integer: true }),\r\n surface_depth_multiplier: (0, core_1.NumberNode)({ integer: true, min: -20, max: 20 }),\r\n add_stone_depth: (0, core_1.BooleanNode)()\r\n },\r\n 'minecraft:y_above': {\r\n anchor: Reference('vertical_anchor'),\r\n surface_depth_multiplier: (0, core_1.NumberNode)({ integer: true, min: -20, max: 20 }),\r\n add_stone_depth: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n name: StringNode(),\r\n fallback: StringNode(),\r\n elements: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n weight: (0, 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', (0, core_1.Mod)((0, 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: (0, 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 (0, ProcessorList_1.initProcessorListSchemas)(schemas, collections);\r\n (0, Biome_1.initBiomeSchemas)(schemas, collections);\r\n (0, Carver_1.initCarverSchemas)(schemas, collections);\r\n (0, Decorator_1.initDecoratorSchemas)(schemas, collections);\r\n (0, Feature_1.initFeatureSchemas)(schemas, collections);\r\n (0, NoiseSettings_1.initNoiseSettingsSchemas)(schemas, collections);\r\n (0, StructureFeature_1.initStructureFeatureSchemas)(schemas, collections);\r\n (0, SurfaceRule_1.initSurfaceRuleSchemas)(schemas, collections);\r\n (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n generate_features: (0, core_1.BooleanNode)(),\r\n bonus_chest: (0, core_1.BooleanNode)(),\r\n seed: (0, core_1.NumberNode)({ integer: true }),\r\n dimensions: (0, 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 (0, Common_1.initCommonSchemas)(schemas, collections);\r\n (0, Advancement_1.initAdvancementSchemas)(schemas, collections);\r\n (0, assets_1.initAssetsSchemas)(schemas, collections);\r\n (0, Condition_1.initConditionSchemas)(schemas, collections);\r\n (0, DimensionType_1.initDimensionTypeSchemas)(schemas, collections);\r\n (0, Dimension_1.initDimensionSchemas)(schemas, collections);\r\n (0, ItemModifier_1.initItemModifierSchemas)(schemas, collections);\r\n (0, LootTable_1.initLootTableSchemas)(schemas, collections);\r\n (0, PackMcmeta_1.initPackMcmetaSchemas)(schemas, collections);\r\n (0, Predicates_1.initPredicatesSchemas)(schemas, collections);\r\n (0, Recipe_1.initRecipeSchemas)(schemas, collections);\r\n (0, Tags_1.initTagsSchemas)(schemas, collections);\r\n (0, TextComponent_1.initTextComponentSchemas)(schemas, collections);\r\n (0, worldgen_1.initWorldgenSchemas)(schemas, collections);\r\n (0, 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 var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\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.prototype.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 = exports.lootContext = 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 (0, 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 (0, 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 collections.register('cat_texture', [\r\n 'textures/entity/cat/tabby.png',\r\n 'textures/entity/cat/black.png',\r\n 'textures/entity/cat/red.png',\r\n 'textures/entity/cat/siamese.png',\r\n 'textures/entity/cat/british_shorthair.png',\r\n 'textures/entity/cat/calico.png',\r\n 'textures/entity/cat/persian.png',\r\n 'textures/entity/cat/ragdoll.png',\r\n 'textures/entity/cat/white.png',\r\n 'textures/entity/cat/jellie.png',\r\n 'textures/entity/cat/all_black.png'\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 = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n node: (0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n display: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n icon: (0, core_1.ObjectNode)({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n nbt: (0, 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: (0, core_1.Opt)(StringNode()),\r\n frame: (0, core_1.Opt)(StringNode({ enum: ['task', 'challenge', 'goal'] })),\r\n show_toast: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n announce_to_chat: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n hidden: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$advancement' } })),\r\n criteria: (0, core_1.MapNode)(StringNode(), Reference('advancement_criteria')),\r\n requirements: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ListNode)(StringNode() // TODO: add validation\r\n ))),\r\n rewards: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n function: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$function' } })),\r\n loot: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$loot_table' } }))),\r\n recipes: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$recipe' } }))),\r\n experience: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n trigger: StringNode({ validator: 'resource', params: { pool: collections.get('advancement_trigger') } }),\r\n conditions: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n player: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n num_bees_inside: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n item: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'potion' } }))\r\n },\r\n 'minecraft:changed_dimension': {\r\n from: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n to: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$dimension' } }))\r\n },\r\n 'minecraft:channeled_lightning': {\r\n victims: (0, core_1.Opt)((0, 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: (0, 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: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), (0, core_1.ObjectNode)({\r\n amplifier: Reference('int_bounds'),\r\n duration: Reference('int_bounds')\r\n }))),\r\n source: (0, core_1.Opt)(EntityPredicate)\r\n },\r\n 'minecraft:enter_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:entity_hurt_player': {\r\n damage: (0, core_1.Opt)(Reference('damage_predicate'))\r\n },\r\n 'minecraft:entity_killed_player': {\r\n entity: EntityPredicate,\r\n killing_blow: (0, core_1.Opt)(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:fall_from_height': {\r\n start_position: (0, core_1.Opt)(Reference('location_predicate')),\r\n distance: (0, core_1.Opt)(Reference('distance_predicate'))\r\n },\r\n 'minecraft:filled_bucket': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:fishing_rod_hooked': {\r\n entity: EntityPredicate,\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:hero_of_the_village': {\r\n location: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:inventory_changed': {\r\n slots: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:item_used_on_block': {\r\n item: (0, core_1.Opt)(Reference('item_predicate')),\r\n location: (0, 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: (0, core_1.Opt)((0, core_1.ListNode)(EntityPredicate))\r\n },\r\n 'minecraft:levitation': {\r\n distance: (0, 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: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:nether_travel': {\r\n start_position: (0, core_1.Opt)(Reference('location_predicate')),\r\n distance: (0, core_1.Opt)(Reference('distance_predicate')),\r\n },\r\n 'minecraft:placed_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })),\r\n item: (0, core_1.Opt)(Reference('item_predicate')),\r\n location: (0, 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: (0, core_1.Opt)(Reference('damage_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_interacted_with_entity': {\r\n item: (0, 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: (0, 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: (0, core_1.Opt)(Reference('location_predicate')),\r\n distance: (0, core_1.Opt)(Reference('distance_predicate'))\r\n },\r\n 'minecraft:slept_in_bed': {\r\n location: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:slide_down_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:shot_crossbow': {\r\n item: (0, 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: EntityPredicate,\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:used_ender_eye': {\r\n distance: (0, core_1.Opt)(Reference('float_bounds'))\r\n },\r\n 'minecraft:used_totem': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:using_item': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:villager_trade': {\r\n villager: EntityPredicate,\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:voluntary_exile': {\r\n location: (0, 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) => (0, core_1.ListNode)((0, core_1.NumberNode)({ min, max }), { minLength: length, maxLength: length });\r\n const Texture = (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n parent: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$model' } })),\r\n ambientocclusion: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n gui_light: (0, core_1.Opt)(StringNode({ enum: 'gui_light' })),\r\n textures: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), Texture)),\r\n elements: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n from: Vec(3, -16, 32),\r\n to: Vec(3, -16, 32),\r\n rotation: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n origin: Vec(3),\r\n axis: StringNode({ enum: 'axis' }),\r\n angle: (0, core_1.NumberEnum)({ values: [-45, -22.5, 0, 22.5, 45] }),\r\n rescale: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n })),\r\n shade: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n faces: (0, core_1.MapNode)(StringNode({ enum: 'direction' }), (0, core_1.ObjectNode)({\r\n texture: Texture,\r\n uv: (0, core_1.Opt)(Vec(4)),\r\n cullface: (0, core_1.Opt)(StringNode({ enum: 'direction' })),\r\n rotation: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n tintindex: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n }))\r\n }, { context: 'model_element' }))),\r\n display: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ enum: 'display_position' }), (0, 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: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n predicate: (0, core_1.MapNode)(StringNode({ enum: 'item_model_predicates' }), (0, 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', (0, core_1.Mod)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'variants',\r\n match: (v) => v.variants !== undefined,\r\n node: (0, core_1.ObjectNode)({\r\n variants: (0, 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: (0, core_1.ObjectNode)({\r\n multipart: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n when: (0, 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: (0, core_1.Opt)((0, core_1.NumberEnum)({ integer: true, values: [0, 90, 180, 270] })),\r\n y: (0, core_1.Opt)((0, core_1.NumberEnum)({ integer: true, values: [0, 90, 180, 270] })),\r\n uvlock: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n };\r\n schemas.register('model_variant', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n node: (0, 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: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n ...VariantChildren,\r\n weight: (0, core_1.Opt)((0, 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', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n priority: -1,\r\n match: () => true,\r\n node: (0, 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: (0, core_1.ObjectNode)({\r\n OR: (0, 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 (0, BlockDefinition_1.initBlockDefinitionSchemas)(schemas, collections);\r\n (0, 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 sea_level: 63,\r\n ore_veins_enabled: true,\r\n disable_mob_generation: false,\r\n aquifers_enabled: true,\r\n legacy_random_source: 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: -64,\r\n height: 384,\r\n size_horizontal: 1,\r\n size_vertical: 2,\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 noise_router: {\r\n barrier: 0,\r\n fluid_level_floodedness: 0,\r\n fluid_level_spread: 0,\r\n lava: 0,\r\n temperature: 0,\r\n vegetation: 0,\r\n continents: 0,\r\n erosion: 0,\r\n depth: 0,\r\n ridges: 0,\r\n initial_density_without_jaggedness: 0,\r\n final_density: {\r\n type: 'minecraft:interpolated',\r\n argument: 'minecraft:overworld/base_3d_noise'\r\n },\r\n vein_toggle: 0,\r\n vein_ridged: 0,\r\n vein_gap: 0,\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n Properties: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'fluid' } }),\r\n Properties: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ListNode)((0, core_1.NumberNode)({ integer: true }), { minLength: 3, maxLength: 3 }), {\r\n default: () => [0, 0, 0]\r\n }));\r\n const Bounds = (integer) => (0, core_1.Opt)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'number',\r\n node: (0, 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: (0, core_1.ObjectNode)({\r\n min: (0, core_1.Opt)((0, core_1.NumberNode)({ integer })),\r\n max: (0, core_1.Opt)((0, 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', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)({\r\n min: (0, core_1.Opt)(Reference('number_provider')),\r\n max: (0, core_1.Opt)(Reference('number_provider'))\r\n })\r\n },\r\n {\r\n type: 'number',\r\n node: (0, 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] = (0, 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 = (0, core_1.ObjectNode)({\r\n type: (0, core_1.Mod)((0, 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 (0, 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: (0, 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: (0, core_1.Opt)((0, 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: (0, 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: (0, 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: (0, core_1.NumberNode)(config)\r\n },\r\n 'minecraft:uniform': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)(config),\r\n max_exclusive: (0, core_1.NumberNode)(config)\r\n })\r\n },\r\n 'minecraft:clamped_normal': {\r\n value: (0, core_1.ObjectNode)({\r\n min: (0, core_1.NumberNode)(),\r\n max: (0, core_1.NumberNode)(),\r\n mean: (0, core_1.NumberNode)(),\r\n deviation: (0, core_1.NumberNode)()\r\n })\r\n },\r\n 'minecraft:trapezoid': {\r\n value: (0, core_1.ObjectNode)({\r\n min: (0, core_1.NumberNode)(),\r\n max: (0, core_1.NumberNode)(),\r\n plateau: (0, core_1.NumberNode)()\r\n })\r\n }\r\n });\r\n schemas.register('float_provider', (0, 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: (0, core_1.NumberNode)({ integer: true, ...config })\r\n },\r\n 'minecraft:uniform': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:biased_to_bottom': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:clamped': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n source: Reference('int_provider')\r\n })\r\n },\r\n 'minecraft:clamped_normal': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n mean: (0, core_1.NumberNode)(),\r\n deviation: (0, core_1.NumberNode)()\r\n })\r\n },\r\n 'minecraft:weighted_list': {\r\n distribution: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n weight: (0, core_1.NumberNode)({ integer: true }),\r\n data: Reference('int_provider'),\r\n }))\r\n }\r\n });\r\n schemas.register('int_provider', (0, exports.IntProvider)());\r\n schemas.register('vertical_anchor', (0, 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: (0, core_1.ObjectNode)({\r\n [t]: (0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:weighted_list': {\r\n distribution: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n weight: (0, core_1.NumberNode)({ integer: true }),\r\n data: Reference('int_provider'),\r\n }))\r\n }\r\n }));\r\n exports.InclusiveRange = (config) => (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)(config),\r\n max_inclusive: (0, core_1.NumberNode)(config)\r\n }, { context: 'range' });\r\n schemas.register('noise_parameters', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n firstOctave: (0, core_1.NumberNode)({ integer: true }),\r\n amplitudes: (0, core_1.ListNode)((0, 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) => (0, 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: (0, core_1.ListNode)(config.inlineSchema\r\n ? (0, 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: (0, 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: (0, 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: (0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:location_check': {\r\n offsetX: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n offsetY: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n offsetZ: (0, core_1.Opt)((0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_chance_with_looting': {\r\n chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n looting_multiplier: (0, 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: (0, core_1.ListNode)((0, core_1.NumberNode)({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:time_check': {\r\n value: Reference('int_range'),\r\n period: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n thundering: (0, core_1.Opt)((0, 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: (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n bonusMultiplier: (0, core_1.Mod)((0, core_1.NumberNode)(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:uniform_bonus_count'\r\n }),\r\n extra: (0, core_1.Mod)((0, core_1.NumberNode)(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n }),\r\n probability: (0, core_1.Mod)((0, 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: (0, core_1.ListNode)((0, 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: (0, core_1.ListNode)(StringNode({ validator: 'block_state_key', params: { id: ['pop', 'pop', { push: 'block' }] } }))\r\n },\r\n 'minecraft:enchant_randomly': {\r\n enchantments: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:exploration_map': {\r\n destination: (0, core_1.Opt)((0, exports.Tag)({ resource: '$worldgen/configured_structure_feature' })),\r\n decoration: (0, core_1.Opt)(StringNode({ enum: 'map_decoration' })),\r\n zoom: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n search_radius: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n skip_existing_chunks: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:set_attributes': {\r\n modifiers: (0, core_1.ListNode)(Reference('attribute_modifier'))\r\n },\r\n 'minecraft:set_banner_pattern': {\r\n patterns: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n pattern: StringNode({ enum: 'banner_pattern' }),\r\n color: StringNode({ enum: 'dye_color' })\r\n })),\r\n append: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_contents': {\r\n type: StringNode({ validator: 'resource', params: { pool: 'block_entity_type' } }),\r\n entries: (0, core_1.ListNode)(Reference('loot_entry'))\r\n },\r\n 'minecraft:set_count': {\r\n count: Reference('number_provider'),\r\n add: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_damage': {\r\n damage: Reference('number_provider'),\r\n add: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_enchantments': {\r\n enchantments: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'enchantment' } }), Reference('number_provider')),\r\n add: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:set_lore': {\r\n entity: (0, core_1.Opt)(entitySourceNode),\r\n lore: (0, core_1.ListNode)(Reference('text_component')),\r\n replace: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_name': {\r\n entity: (0, core_1.Opt)(entitySourceNode),\r\n name: (0, 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: (0, core_1.Opt)((0, core_1.ListNode)((0, 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) => (0, 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) => (0, core_1.ObjectOrPreset)(StringNode({ validator: 'resource', params: { pool: '$worldgen/noise_settings' } }), node, {\r\n 'minecraft:overworld': exports.DefaultNoiseSettings,\r\n 'minecraft:nether': {\r\n sea_level: 32,\r\n ore_veins_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n legacy_random_source: true,\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 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 noise_router: {\r\n barrier: 0,\r\n fluid_level_floodedness: 0,\r\n fluid_level_spread: 0,\r\n lava: 0,\r\n temperature: 0,\r\n vegetation: 0,\r\n continents: 0,\r\n erosion: 0,\r\n depth: 0,\r\n ridges: 0,\r\n initial_density_without_jaggedness: 0,\r\n final_density: {\r\n type: 'minecraft:interpolated',\r\n argument: 'minecraft:overworld/base_3d_noise'\r\n },\r\n vein_toggle: 0,\r\n vein_ridged: 0,\r\n vein_gap: 0,\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n }\r\n },\r\n 'minecraft:end': {\r\n sea_level: 0,\r\n ore_veins_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n legacy_random_source: true,\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 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 noise_router: {\r\n barrier: 0,\r\n fluid_level_floodedness: 0,\r\n fluid_level_spread: 0,\r\n lava: 0,\r\n temperature: 0,\r\n vegetation: 0,\r\n continents: 0,\r\n erosion: 0,\r\n depth: 0,\r\n ridges: 0,\r\n initial_density_without_jaggedness: 0,\r\n final_density: {\r\n type: 'minecraft:interpolated',\r\n argument: 'minecraft:overworld/base_3d_noise'\r\n },\r\n vein_toggle: 0,\r\n vein_ridged: 0,\r\n vein_gap: 0,\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n }\r\n },\r\n 'minecraft:amplified': {\r\n sea_level: 63,\r\n ore_veins_enabled: true,\r\n disable_mob_generation: false,\r\n aquifers_enabled: true,\r\n legacy_random_source: 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: -64,\r\n height: 384,\r\n size_horizontal: 1,\r\n size_vertical: 2,\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 noise_router: {\r\n barrier: 0,\r\n fluid_level_floodedness: 0,\r\n fluid_level_spread: 0,\r\n lava: 0,\r\n temperature: 0,\r\n vegetation: 0,\r\n continents: 0,\r\n erosion: 0,\r\n depth: 0,\r\n ridges: 0,\r\n initial_density_without_jaggedness: 0,\r\n final_density: {\r\n type: 'minecraft:interpolated',\r\n argument: 'minecraft:overworld/base_3d_noise'\r\n },\r\n vein_toggle: 0,\r\n vein_ridged: 0,\r\n vein_gap: 0,\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n },\r\n },\r\n 'minecraft:caves': {\r\n sea_level: 32,\r\n ore_veins_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n legacy_random_source: 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: 0,\r\n height: 128,\r\n size_horizontal: 1,\r\n size_vertical: 2,\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 noise_router: {\r\n barrier: 0,\r\n fluid_level_floodedness: 0,\r\n fluid_level_spread: 0,\r\n lava: 0,\r\n temperature: 0,\r\n vegetation: 0,\r\n continents: 0,\r\n erosion: 0,\r\n depth: 0,\r\n ridges: 0,\r\n initial_density_without_jaggedness: 0,\r\n final_density: {\r\n type: 'minecraft:interpolated',\r\n argument: 'minecraft:overworld/base_3d_noise'\r\n },\r\n vein_toggle: 0,\r\n vein_ridged: 0,\r\n vein_gap: 0,\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n }\r\n },\r\n 'minecraft:floating_islands': {\r\n sea_level: 0,\r\n ore_veins_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n legacy_random_source: 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: 0,\r\n height: 128,\r\n size_horizontal: 2,\r\n size_vertical: 1,\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 noise_router: {\r\n barrier: 0,\r\n fluid_level_floodedness: 0,\r\n fluid_level_spread: 0,\r\n lava: 0,\r\n temperature: 0,\r\n vegetation: 0,\r\n continents: 0,\r\n erosion: 0,\r\n depth: 0,\r\n ridges: 0,\r\n initial_density_without_jaggedness: 0,\r\n final_density: {\r\n type: 'minecraft:interpolated',\r\n argument: 'minecraft:overworld/base_3d_noise'\r\n },\r\n vein_toggle: 0,\r\n vein_ridged: 0,\r\n vein_gap: 0,\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\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', (0, core_1.ObjectOrList)(Reference('condition'), { choiceContext: 'condition' }));\r\n schemas.register('condition', (0, core_1.Mod)((0, 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]: (0, 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 StructureSet = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'string',\r\n priority: 1,\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/structure_set' } }),\r\n change: () => undefined\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('structure_set'),\r\n change: () => ({})\r\n }\r\n ], { choiceContext: 'structure_set' });\r\n schemas.register('dimension', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: (0, Common_1.DimensionTypePresets)(Reference('dimension_type')),\r\n generator: (0, 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: (0, core_1.NumberNode)({ integer: true }),\r\n settings: (0, Common_1.NoiseSettingsPresets)(Reference('noise_settings')),\r\n biome_source: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: ['minecraft:overworld', 'minecraft:nether'] } })),\r\n biomes: (0, core_1.Mod)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 62 })),\r\n biomes: (0, Common_1.Tag)({ resource: '$worldgen/biome' })\r\n },\r\n 'minecraft:the_end': {\r\n seed: (0, core_1.NumberNode)({ integer: true })\r\n }\r\n }\r\n }, { category: 'predicate', disableSwitchContext: true })\r\n },\r\n 'minecraft:flat': {\r\n settings: (0, core_1.ObjectNode)({\r\n biome: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n lakes: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n features: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n layers: (0, core_1.ListNode)(Reference('generator_layer')),\r\n structure_overrides: (0, core_1.ListNode)(StructureSet)\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 = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'number',\r\n node: (0, 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: (0, core_1.ListNode)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }),\r\n parameters: (0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n ultrawarm: (0, core_1.BooleanNode)(),\r\n natural: (0, core_1.BooleanNode)(),\r\n piglin_safe: (0, core_1.BooleanNode)(),\r\n respawn_anchor_works: (0, core_1.BooleanNode)(),\r\n bed_works: (0, core_1.BooleanNode)(),\r\n has_raids: (0, core_1.BooleanNode)(),\r\n has_skylight: (0, core_1.BooleanNode)(),\r\n has_ceiling: (0, core_1.BooleanNode)(),\r\n coordinate_scale: (0, core_1.NumberNode)({ min: 0.00001, max: 30000000 }),\r\n ambient_light: (0, core_1.NumberNode)(),\r\n fixed_time: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n logical_height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4064 }),\r\n effects: (0, 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: (0, core_1.NumberNode)({ integer: true, min: -2032, max: 2031 }),\r\n height: (0, 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', (0, core_1.ObjectOrList)(Reference('function'), { choiceContext: 'function' }));\r\n const conditions = {\r\n conditions: (0, core_1.Opt)((0, core_1.ListNode)(Reference('condition')))\r\n };\r\n schemas.register('function', (0, core_1.Mod)((0, 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]: (0, 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: (0, core_1.Opt)((0, core_1.ListNode)(Reference('loot_condition')))\r\n };\r\n const functionsAndConditions = {\r\n functions: (0, core_1.Opt)((0, 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 (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: (0, core_1.Opt)(StringNode({ validator: \"resource\", params: { pool: collections.get('loot_context_type') } })),\r\n pools: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n rolls: Reference('number_provider'),\r\n bonus_rolls: (0, core_1.Opt)(Reference('number_provider')),\r\n entries: (0, 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: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'loot_pool_entry_type' } }),\r\n weight: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true, min: 1 }), weightMod)),\r\n quality: (0, core_1.Opt)((0, core_1.Mod)((0, 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: (0, 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: (0, 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: (0, 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: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n function: functionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'function' }],\r\n [core_1.Case]: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n condition: conditionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: (0, 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', (0, core_1.Mod)((0, 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: (0, 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 = 9;\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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n pack: (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n pack_format: (0, core_1.Mod)((0, 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: (0, 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 = (0, 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: (0, core_1.NumberNode)(),\r\n change: v => (typeof v === 'string') ? parseInt(v) : 0\r\n },\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)({\r\n min: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n max: (0, core_1.Opt)((0, 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: (0, core_1.BooleanNode)(),\r\n change: v => v === 'true' || v === 1\r\n }\r\n ]);\r\n schemas.register('item_predicate', (0, core_1.ObjectNode)({\r\n items: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'item' } }))),\r\n tag: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'potion' } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } })),\r\n enchantments: (0, core_1.Opt)((0, core_1.ListNode)(Reference('enchantment_predicate')))\r\n }, { context: 'item' }));\r\n schemas.register('enchantment_predicate', (0, core_1.ObjectNode)({\r\n enchantment: (0, 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', (0, core_1.ObjectNode)({\r\n blocks: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'block' } }))),\r\n tag: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$tag/block' } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block', id: ['pop', { push: 'block' }] } } })),\r\n state: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n fluid: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'fluid' } })),\r\n tag: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$tag/fluid' } })),\r\n state: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), StateChoice))\r\n }, { context: 'fluid' }));\r\n schemas.register('location_predicate', (0, core_1.ObjectNode)({\r\n position: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n feature: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_structure_feature' } })),\r\n dimension: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n light: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n light: Reference('int_bounds')\r\n })),\r\n smokey: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n block: (0, core_1.Opt)(Reference('block_predicate')),\r\n fluid: (0, core_1.Opt)(Reference('fluid_predicate'))\r\n }, { context: 'location' }));\r\n schemas.register('statistic_predicate', (0, 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', (0, core_1.ObjectNode)({\r\n gamemode: (0, core_1.Opt)(StringNode({ enum: 'gamemode' })),\r\n level: Reference('int_bounds'),\r\n advancements: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: '$advancement' } }), (0, core_1.ChoiceNode)([\r\n { type: 'boolean', node: (0, core_1.BooleanNode)(), change: _ => true },\r\n {\r\n type: 'object', node: (0, core_1.MapNode)(StringNode(), (0, core_1.BooleanNode)())\r\n }\r\n ]))),\r\n recipes: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: '$recipe' } }), (0, core_1.BooleanNode)())),\r\n stats: (0, core_1.Opt)((0, core_1.ListNode)(Reference('statistic_predicate'))),\r\n looking_at: (0, core_1.Opt)(Reference('entity_predicate'))\r\n }, { context: 'player' }));\r\n schemas.register('status_effect_predicate', (0, core_1.ObjectNode)({\r\n amplifier: Reference('int_bounds'),\r\n duration: Reference('int_bounds'),\r\n ambient: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n visible: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n }, { context: 'status_effect' }));\r\n schemas.register('distance_predicate', (0, 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', (0, core_1.ObjectNode)({\r\n type: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'entity_type', allowTag: true } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:entity', id: ['pop', { push: 'type' }] } } })),\r\n team: (0, core_1.Opt)(StringNode({ validator: 'team' })),\r\n location: (0, core_1.Opt)(Reference('location_predicate')),\r\n stepping_on: (0, core_1.Opt)(Reference('location_predicate')),\r\n distance: (0, core_1.Opt)(Reference('distance_predicate')),\r\n flags: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n is_on_fire: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_sneaking: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_sprinting: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_swimming: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_baby: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n })),\r\n equipment: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ enum: 'slot' }), Reference('item_predicate'))),\r\n player: (0, core_1.Opt)(Reference('player_predicate')),\r\n vehicle: (0, core_1.Opt)(Reference('entity_predicate')),\r\n passenger: (0, core_1.Opt)(Reference('entity_predicate')),\r\n targeted_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n lightning_bolt: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n blocks_set_on_fire: (0, core_1.Opt)(Reference('int_bounds')),\r\n entity_struck: (0, core_1.Opt)(Reference('entity_predicate'))\r\n })),\r\n fishing_hook: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n in_open_water: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n })),\r\n catType: (0, core_1.Opt)(StringNode({ enum: 'cat_texture' })),\r\n effects: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n is_explosion: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_fire: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_magic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_projectile: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_lightning: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_armor: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_invulnerability: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_magic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n source_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n direct_entity: (0, core_1.Opt)(Reference('entity_predicate'))\r\n }, { context: 'damage_source' }));\r\n schemas.register('damage_predicate', (0, core_1.ObjectNode)({\r\n dealt: Reference('float_bounds'),\r\n taken: Reference('float_bounds'),\r\n blocked: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n source_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n type: (0, 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', (0, core_1.Mod)((0, 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: (0, core_1.Opt)(StringNode({ enum: 'recipe_group', additional: true })),\r\n pattern: (0, core_1.ListNode)(StringNode()),\r\n key: (0, 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: (0, core_1.Opt)(StringNode()),\r\n ingredients: (0, core_1.ListNode)(Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:smelting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 200 }))\r\n },\r\n 'minecraft:blasting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:smoking': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:campfire_cooking': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:stonecutting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:smithing': {\r\n group: (0, 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', (0, core_1.Mod)((0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n item: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.Opt)((0, core_1.Mod)((0, 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) => (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n replace: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n values: (0, core_1.ListNode)((0, 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: (0, core_1.ObjectNode)({\r\n id: StringNode({ validator: 'resource', params: { pool: type, allowTag: true, allowUnknown: true } }),\r\n required: (0, 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 schemas.register('advancement_tag', TagBase('$advancement'));\r\n schemas.register('dimension_tag', TagBase('$dimension'));\r\n schemas.register('dimension_type_tag', TagBase('$dimension_type'));\r\n schemas.register('function_tag', TagBase('$function'));\r\n schemas.register('item_modifier_tag', TagBase('$item_modifier'));\r\n schemas.register('loot_table_tag', TagBase('$loot_table'));\r\n schemas.register('predicate_tag', TagBase('$predicate'));\r\n schemas.register('recipe_tag', TagBase('$recipe'));\r\n schemas.register('structure_tag', TagBase('$structure'));\r\n schemas.register('biome_tag', TagBase('$worldgen/biome'));\r\n schemas.register('configured_carver_tag', TagBase('$worldgen/configured_carver'));\r\n schemas.register('configured_decorator_tag', TagBase('$worldgen/configured_decorator'));\r\n schemas.register('configured_feature_tag', TagBase('$worldgen/configured_feature'));\r\n schemas.register('configured_structure_feature_tag', TagBase('$worldgen/configured_structure_feature'));\r\n schemas.register('configured_surface_builder_tag', TagBase('$worldgen/configured_surface_builder'));\r\n schemas.register('density_function_tag', TagBase('$worldgen/density_function'));\r\n schemas.register('noise_tag', TagBase('$worldgen/noise'));\r\n schemas.register('noise_settings_tag', TagBase('$worldgen/noise_settings'));\r\n schemas.register('placed_feature_tag', TagBase('$worldgen/placed_feature'));\r\n schemas.register('processor_list_tag', TagBase('$worldgen/processor_list'));\r\n schemas.register('structure_set_tag', TagBase('$worldgen/structure_set'));\r\n schemas.register('template_pool_tag', TagBase('$worldgen/template_pool'));\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', (0, core_1.Mod)((0, 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: (0, 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: (0, 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: (0, core_1.Opt)(StringNode()) /* TODO */,\r\n font: (0, core_1.Opt)(StringNode()),\r\n bold: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n italic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n underlined: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n strikethrough: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n obfuscated: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n insertion: (0, core_1.Opt)(StringNode()),\r\n clickEvent: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(Reference('text_component')),\r\n contents: (0, core_1.Opt)(Reference('text_component'))\r\n },\r\n 'show_item': {\r\n value: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { module: 'util::InventoryItem' } })),\r\n contents: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n id: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n tag: (0, 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: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n name: (0, core_1.Opt)(StringNode()),\r\n type: (0, core_1.Opt)(StringNode()),\r\n id: (0, core_1.Opt)(StringNode())\r\n })),\r\n contents: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n name: (0, 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: (0, core_1.Opt)(Reference('text_component_list'))\r\n };\r\n schemas.register('text_component_object', (0, core_1.Mod)((0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n translate: StringNode(),\r\n with: (0, 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: (0, core_1.ObjectNode)({\r\n score: (0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n selector: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } }),\r\n separator: (0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n nbt: StringNode({ validator: 'nbt_path' }),\r\n block: (0, core_1.Opt)(StringNode({ validator: 'vector', params: { dimension: 3, isInteger: true } })),\r\n entity: (0, core_1.Opt)(StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } })),\r\n storage: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$storage' } })),\r\n interpret: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n separator: (0, 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', (0, core_1.Mod)((0, 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.MobCategorySpawnSettings = 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.MobCategorySpawnSettings = (0, core_1.Mod)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n weight: (0, core_1.NumberNode)({ integer: true }),\r\n minCount: (0, core_1.NumberNode)({ integer: true }),\r\n maxCount: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n temperature: (0, core_1.NumberNode)(),\r\n downfall: (0, core_1.NumberNode)(),\r\n precipitation: StringNode({ enum: ['none', 'rain', 'snow'] }),\r\n temperature_modifier: (0, core_1.Opt)(StringNode({ enum: ['none', 'frozen'] })),\r\n category: StringNode({ enum: 'biome_category' }),\r\n creature_spawn_probability: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n effects: (0, core_1.ObjectNode)({\r\n sky_color: (0, core_1.NumberNode)({ color: true }),\r\n fog_color: (0, core_1.NumberNode)({ color: true }),\r\n water_color: (0, core_1.NumberNode)({ color: true }),\r\n water_fog_color: (0, core_1.NumberNode)({ color: true }),\r\n grass_color: (0, core_1.Opt)((0, core_1.NumberNode)({ color: true })),\r\n foliage_color: (0, core_1.Opt)((0, core_1.NumberNode)({ color: true })),\r\n grass_color_modifier: (0, core_1.Opt)(StringNode({ enum: ['none', 'dark_forest', 'swamp'] })),\r\n ambient_sound: (0, core_1.Opt)(StringNode()),\r\n mood_sound: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n sound: StringNode(),\r\n tick_delay: (0, core_1.NumberNode)({ integer: true }),\r\n block_search_extent: (0, core_1.NumberNode)({ integer: true }),\r\n offset: (0, core_1.NumberNode)()\r\n })),\r\n additions_sound: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n sound: StringNode(),\r\n tick_chance: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n })),\r\n music: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n sound: StringNode(),\r\n min_delay: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n max_delay: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n replace_current_music: (0, core_1.BooleanNode)()\r\n })),\r\n particle: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n options: (0, core_1.ObjectNode)({\r\n type: StringNode()\r\n }),\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n }))\r\n }),\r\n spawners: (0, core_1.MapNode)(StringNode({ enum: 'mob_category' }), exports.MobCategorySpawnSettings),\r\n spawn_costs: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'entity_type' } }), (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n energy_budget: (0, core_1.NumberNode)(),\r\n charge: (0, 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: (0, core_1.MapNode)(StringNode({ enum: ['air', 'liquid'] }), (0, core_1.Mod)((0, Common_1.Tag)({ resource: '$worldgen/configured_carver', inlineSchema: 'configured_carver' }), {\r\n default: () => ['minecraft:cave']\r\n })),\r\n features: (0, core_1.ListNode)((0, core_1.Mod)((0, 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: (0, Common_1.FloatProvider)(),\r\n shape: (0, core_1.ObjectNode)({\r\n distance_factor: (0, Common_1.FloatProvider)(),\r\n thickness: (0, Common_1.FloatProvider)(),\r\n width_smoothness: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n horizontal_radius_factor: (0, Common_1.FloatProvider)(),\r\n vertical_radius_default_factor: (0, core_1.NumberNode)(),\r\n vertical_radius_center_factor: (0, core_1.NumberNode)()\r\n })\r\n };\r\n const CaveConfig = {\r\n horizontal_radius_multiplier: (0, Common_1.FloatProvider)(),\r\n vertical_radius_multiplier: (0, Common_1.FloatProvider)(),\r\n floor_level: (0, Common_1.FloatProvider)({ min: -1, max: 1 }),\r\n };\r\n schemas.register('configured_carver', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/carver' } }),\r\n config: (0, core_1.ObjectNode)({\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n y: Reference('height_provider'),\r\n yScale: (0, Common_1.FloatProvider)(),\r\n lava_level: Reference('vertical_anchor'),\r\n debug_settings: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n debug_mode: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n air_state: (0, core_1.Opt)(Reference('block_state')),\r\n water_state: (0, core_1.Opt)(Reference('block_state')),\r\n lava_state: (0, core_1.Opt)(Reference('block_state')),\r\n barrier_state: (0, 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', (0, 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: (0, core_1.NumberNode)({ integer: true, min: 0 })\r\n },\r\n 'minecraft:count': {\r\n count: (0, Common_1.IntProvider)({ min: 0, max: 256 })\r\n },\r\n 'minecraft:count_on_every_layer': {\r\n count: (0, Common_1.IntProvider)({ min: 0, max: 256 })\r\n },\r\n 'minecraft:noise_threshold_count': {\r\n noise_level: (0, core_1.NumberNode)(),\r\n below_noise: (0, core_1.NumberNode)({ integer: true }),\r\n above_noise: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:noise_based_count': {\r\n noise_to_count_ratio: (0, core_1.NumberNode)({ integer: true }),\r\n noise_factor: (0, core_1.NumberNode)(),\r\n noise_offset: (0, core_1.Opt)((0, core_1.NumberNode)())\r\n },\r\n 'minecraft:environment_scan': {\r\n direction_of_search: StringNode({ enum: ['up', 'down'] }),\r\n max_steps: (0, core_1.NumberNode)({ integer: true, min: 1, max: 32 }),\r\n target_condition: Reference('block_predicate_worldgen'),\r\n allowed_search_condition: (0, 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: (0, Common_1.IntProvider)({ min: -16, max: 16 }),\r\n y_spread: (0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n max_inclusive: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:surface_water_depth_filter': {\r\n max_water_depth: (0, 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 = (0, core_1.Mod)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'number',\r\n node: (0, 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 = (0, 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 = (0, core_1.NumberNode)({ min: -1000000, max: 1000000 });\r\n const YRange = (0, core_1.NumberNode)({ integer: true, min: -2032 * 2, max: 2031 * 2 });\r\n schemas.register('density_function', (0, core_1.Mod)((0, 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:blend_density': {\r\n argument: 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:constant': {\r\n argument: (0, core_1.NumberNode)(),\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: (0, core_1.NumberNode)(),\r\n y_scale: (0, 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: (0, core_1.NumberNode)(),\r\n y_scale: (0, 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:spline': {\r\n spline: Reference('cubic_spline'),\r\n min_value: NoiseRange,\r\n max_value: NoiseRange,\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 }), {\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 }));\r\n schemas.register('cubic_spline', (0, core_1.Mod)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'number',\r\n node: (0, core_1.NumberNode)()\r\n },\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)({\r\n coordinate: exports.DensityFunction,\r\n points: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n location: (0, core_1.NumberNode)(),\r\n derivative: (0, core_1.NumberNode)(),\r\n value: Reference('cubic_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.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 = (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n processors: (0, 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', (0, core_1.Mod)((0, 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: (0, core_1.NumberNode)()\r\n },\r\n 'minecraft:block_ignore': {\r\n blocks: (0, core_1.ListNode)(Reference('block_state'))\r\n },\r\n 'minecraft:block_rot': {\r\n integrity: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:gravity': {\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n offset: (0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n position_predicate: (0, 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: (0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 255, integer: true })),\r\n max_dist: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 255, integer: true })),\r\n min_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n max_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 }))\r\n };\r\n schemas.register('pos_rule_test', (0, 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', (0, 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: (0, 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: (0, 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 = (0, 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 = (0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 1 })),\r\n xz_spread: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0 })),\r\n y_spread: (0, core_1.Opt)((0, 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: (0, Common_1.IntProvider)({ min: 0, max: 8 }),\r\n half_height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4 }),\r\n targets: (0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n };\r\n const TargetBlockState = (0, core_1.ObjectNode)({\r\n target: Reference('rule_test'),\r\n state: Reference('block_state')\r\n });\r\n const OreConfig = {\r\n size: (0, core_1.NumberNode)({ integer: true, min: 0, max: 64 }),\r\n discard_chance_on_air_exposure: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n targets: (0, core_1.ListNode)(TargetBlockState)\r\n };\r\n const VegetationPatchConfig = {\r\n surface: StringNode({ enum: 'cave_surface' }),\r\n depth: (0, Common_1.IntProvider)({ min: 1, max: 128 }),\r\n vertical_range: (0, core_1.NumberNode)({ integer: true, min: 1, max: 256 }),\r\n extra_bottom_block_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n extra_edge_column_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n vegetation_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n xz_radius: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature' } }),\r\n config: (0, core_1.ObjectNode)({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bamboo': {\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:basalt_columns': {\r\n reach: (0, Common_1.IntProvider)({ min: 0, max: 3 }),\r\n height: (0, 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: (0, core_1.BooleanNode)(),\r\n layers: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n height: (0, 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: (0, Common_1.IntProvider)({ min: 0, max: 16 }),\r\n rim_size: (0, 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: (0, core_1.NumberNode)({ integer: true, min: 1, max: 512 }),\r\n height: (0, Common_1.IntProvider)({ min: 0, max: 128 }),\r\n radius: (0, Common_1.IntProvider)({ min: 0, max: 128 }),\r\n max_stalagmite_stalactite_height_diff: (0, core_1.NumberNode)({ integer: true, min: 0, max: 64 }),\r\n height_deviation: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n dripstone_block_layer_thickness: (0, Common_1.IntProvider)({ min: 0, max: 128 }),\r\n density: (0, Common_1.FloatProvider)({ min: 0, max: 2 }),\r\n wetness: (0, Common_1.FloatProvider)({ min: 0, max: 2 }),\r\n chance_of_dripstone_column_at_max_distance_from_center: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n max_distance_from_edge_affecting_chance_of_dripstone_column: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n max_distance_from_center_affecting_height_bias: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 })\r\n },\r\n 'minecraft:end_gateway': {\r\n exact: (0, core_1.BooleanNode)(),\r\n exit: (0, core_1.Opt)(Reference('block_pos'))\r\n },\r\n 'minecraft:end_spike': {\r\n crystal_invulnerable: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n crystal_beam_target: (0, core_1.Opt)(Reference('block_pos')),\r\n spikes: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n centerX: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n centerZ: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n radius: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n height: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n guarded: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n }))\r\n },\r\n 'minecraft:fill_layer': {\r\n state: Reference('block_state'),\r\n height: (0, 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: (0, core_1.NumberNode)({ integer: true, min: 0, max: 7 }),\r\n fossil_structures: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$structure' } })),\r\n overlay_structures: (0, 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: (0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n filling: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n inner_layer: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n middle_layer: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n outer_layer: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n }),\r\n crack: (0, core_1.ObjectNode)({\r\n generate_crack_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n base_crack_size: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 5 })),\r\n crack_point_offset: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 10 })),\r\n }),\r\n noise_multiplier: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n use_potential_placements_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n use_alternate_layer0_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n placements_require_layer0_alternate: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n outer_wall_distance: (0, core_1.Opt)((0, Common_1.IntProvider)({ min: 1, max: 20 })),\r\n distribution_points: (0, core_1.Opt)((0, Common_1.IntProvider)({ min: 1, max: 20 })),\r\n point_offset: (0, core_1.Opt)((0, Common_1.IntProvider)({ min: 0, max: 10 })),\r\n min_gen_offset: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n max_gen_offset: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n invalid_blocks_threshold: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:glow_lichen': {\r\n search_range: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 1, max: 64, integer: true })),\r\n chance_of_spreading: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n can_place_on_floor: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n can_place_on_ceiling: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n can_place_on_wall: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n can_be_placed_on: (0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 1, max: 512 })),\r\n column_radius: (0, Common_1.IntProvider)({ min: 0, max: 60 }),\r\n height_scale: (0, Common_1.FloatProvider)({ min: 0, max: 20 }),\r\n max_column_radius_to_cave_height_ratio: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n stalactite_bluntness: (0, Common_1.FloatProvider)({ min: 0.1, max: 10 }),\r\n stalagmite_bluntness: (0, Common_1.FloatProvider)({ min: 0.1, max: 10 }),\r\n wind_speed: (0, Common_1.FloatProvider)({ min: 0, max: 2 }),\r\n min_radius_for_wind: (0, core_1.NumberNode)({ integer: true, min: 0, max: 100 }),\r\n min_bluntness_for_wind: (0, 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: (0, core_1.NumberNode)({ integer: true, min: 1 }),\r\n spread_height: (0, 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: (0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n chance_of_directional_spread: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n chance_of_spread_radius2: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n chance_of_spread_radius3: (0, core_1.Opt)((0, 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: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n chance: (0, 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: (0, core_1.ListNode)(TargetBlockState)\r\n },\r\n 'minecraft:root_system': {\r\n required_vertical_space_for_tree: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n root_radius: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n root_placement_attempts: (0, core_1.NumberNode)({ integer: true, min: 1, max: 256 }),\r\n root_column_max_height: (0, core_1.NumberNode)({ integer: true, min: 1, max: 4096 }),\r\n hanging_root_radius: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n hanging_roots_vertical_span: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 }),\r\n hanging_root_placement_attempts: (0, core_1.NumberNode)({ integer: true, min: 0, max: 256 }),\r\n allowed_vertical_water_for_tree: (0, 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: (0, Common_1.IntProvider)({ min: 0, max: 256 })\r\n },\r\n 'minecraft:seagrass': {\r\n probability: (0, 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: (0, 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: (0, core_1.NumberNode)({ integer: true }),\r\n hole_count: (0, core_1.NumberNode)({ integer: true }),\r\n requires_block_below: (0, core_1.BooleanNode)(),\r\n valid_blocks: (0, Common_1.Tag)({ resource: 'block' })\r\n },\r\n 'minecraft:tree': {\r\n ignore_vines: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n force_dirt: (0, core_1.Opt)((0, 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: (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/trunk_placer_type' } }),\r\n base_height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 32 }),\r\n height_rand_a: (0, core_1.NumberNode)({ integer: true, min: 0, max: 24 }),\r\n height_rand_b: (0, 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: (0, Common_1.IntProvider)({ min: 1, max: 64 }),\r\n min_height_for_leaves: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 1 }))\r\n }\r\n }\r\n }, { context: 'trunk_placer' }),\r\n foliage_placer: (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/foliage_placer_type' } }),\r\n radius: (0, Common_1.IntProvider)({ min: 0, max: 16 }),\r\n offset: (0, 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: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:bush_foliage_placer': {\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:fancy_foliage_placer': {\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:jungle_foliage_placer': {\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:mega_pine_foliage_placer': {\r\n crown_height: (0, Common_1.IntProvider)({ min: 0, max: 24 })\r\n },\r\n 'minecraft:pine_foliage_placer': {\r\n height: (0, Common_1.IntProvider)({ min: 0, max: 24 })\r\n },\r\n 'minecraft:random_spread_foliage_placer': {\r\n foliage_height: (0, Common_1.IntProvider)({ min: 1, max: 512 }),\r\n leaf_placement_attempts: (0, core_1.NumberNode)({ integer: true, min: 0, max: 256 })\r\n },\r\n 'minecraft:spruce_foliage_placer': {\r\n trunk_height: (0, Common_1.IntProvider)({ min: 0, max: 24 })\r\n }\r\n }\r\n }, { context: 'foliage_placer', disableSwitchContext: true }),\r\n decorators: (0, core_1.ListNode)((0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:cocoa': {\r\n probability: (0, 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: (0, core_1.NumberNode)({ integer: true, min: 1 }),\r\n spread_height: (0, core_1.NumberNode)({ integer: true, min: 1 }),\r\n max_height: (0, core_1.NumberNode)({ integer: true, min: 1 }),\r\n },\r\n 'minecraft:underwater_magma': {\r\n floor_search_range: (0, core_1.NumberNode)({ integer: true, min: 0, max: 512 }),\r\n placement_radius_around_floor: (0, core_1.NumberNode)({ integer: true, min: 0, max: 64 }),\r\n placement_probability_per_valid_position: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n feature: ConfiguredFeature,\r\n placement: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature_size_type' } }),\r\n min_clipped_height: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 81 })),\r\n lower_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })),\r\n upper_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 }))\r\n },\r\n 'minecraft:three_layers_feature_size': {\r\n limit: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 80 })),\r\n upper_limit: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 80 })),\r\n lower_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })),\r\n middle_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })),\r\n upper_size: (0, core_1.Opt)((0, 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: (0, core_1.NumberNode)({ integer: true }),\r\n noise: Reference('noise_parameters'),\r\n scale: (0, core_1.Mod)((0, core_1.NumberNode)({ min: Number.MIN_VALUE }), { default: () => 1 })\r\n };\r\n schemas.register('block_state_provider', (0, core_1.Mod)((0, 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: (0, Common_1.InclusiveRange)({ integer: true, min: 1, max: 64 }),\r\n slow_noise: Reference('noise_parameters'),\r\n slow_scale: (0, core_1.Mod)((0, core_1.NumberNode)({ min: Number.MIN_VALUE }), { default: () => 1 }),\r\n states: (0, core_1.ListNode)(Reference('block_state'))\r\n },\r\n 'minecraft:noise_threshold_provider': {\r\n ...NoiseProvider,\r\n threshold: (0, core_1.NumberNode)({ min: -1, max: 1 }),\r\n high_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n default_state: Reference('block_state'),\r\n low_states: (0, core_1.ListNode)(Reference('block_state')),\r\n high_states: (0, core_1.ListNode)(Reference('block_state'))\r\n },\r\n 'minecraft:noise_provider': {\r\n ...NoiseProvider,\r\n states: (0, core_1.ListNode)(Reference('block_state'))\r\n },\r\n 'minecraft:randomized_int_state_provider': {\r\n property: StringNode(),\r\n values: (0, 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: (0, core_1.ListNode)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n weight: (0, 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: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.NumberNode)({ integer: true, min: -16, max: 16 }), { minLength: 3, maxLength: 3 }))\r\n };\r\n schemas.register('block_predicate_worldgen', (0, core_1.Mod)((0, 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: (0, core_1.ListNode)(Reference('block_predicate_worldgen'))\r\n },\r\n 'minecraft:any_of': {\r\n predicates: (0, 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: (0, Common_1.Tag)({ resource: 'block' })\r\n },\r\n 'minecraft:matching_fluids': {\r\n ...Offset,\r\n fluids: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n sea_level: (0, core_1.NumberNode)({ integer: true }),\r\n disable_mob_generation: (0, core_1.BooleanNode)(),\r\n aquifers_enabled: (0, core_1.BooleanNode)(),\r\n ore_veins_enabled: (0, core_1.BooleanNode)(),\r\n legacy_random_source: (0, core_1.BooleanNode)(),\r\n default_block: Reference('block_state'),\r\n default_fluid: Reference('block_state'),\r\n noise: (0, core_1.ObjectNode)({\r\n min_y: (0, core_1.NumberNode)({ integer: true, min: -2048, max: 2047 }),\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4096 }),\r\n size_horizontal: (0, core_1.NumberNode)({ integer: true }),\r\n size_vertical: (0, core_1.NumberNode)({ integer: true }),\r\n sampling: (0, core_1.ObjectNode)({\r\n xz_scale: (0, core_1.NumberNode)(),\r\n y_scale: (0, core_1.NumberNode)(),\r\n xz_factor: (0, core_1.NumberNode)(),\r\n y_factor: (0, 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: (0, 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 ridges: 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', (0, core_1.ObjectNode)({\r\n target: (0, core_1.NumberNode)(),\r\n size: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n offset: (0, core_1.NumberNode)({ integer: true })\r\n }));\r\n schemas.register('generator_layer', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n height: (0, 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', (0, core_1.Mod)((0, 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', (0, core_1.Mod)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'number',\r\n node: (0, core_1.NumberNode)()\r\n },\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)({\r\n coordinate: (0, core_1.Mod)(StringNode({ enum: ['continents', 'erosion', 'weirdness', 'ridges'] }), { default: () => 'continents' }),\r\n points: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n location: (0, core_1.NumberNode)(),\r\n derivative: (0, 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: (0, core_1.NumberNode)({ integer: true })\r\n };\r\n schemas.register('configured_structure_feature', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }),\r\n biomes: (0, Common_1.Tag)({ resource: '$worldgen/biome' }),\r\n adapt_noise: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n spawn_overrides: (0, core_1.MapNode)(StringNode({ enum: 'mob_category' }), (0, core_1.ObjectNode)({\r\n bounding_box: StringNode({ enum: ['piece', 'full'] }),\r\n spawns: Biome_1.MobCategorySpawnSettings,\r\n })),\r\n config: (0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:mineshaft': {\r\n type: StringNode({ enum: ['normal', 'mesa'] }),\r\n probability: (0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n cluster_probability: (0, 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: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n structures: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n structure: (0, Common_1.Tag)({ resource: '$worldgen/configured_structure_feature' }),\r\n weight: (0, 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', (0, core_1.Mod)((0, 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: (0, core_1.NumberNode)({ integer: true, min: 0, max: 1023 }),\r\n spread: (0, core_1.NumberNode)({ integer: true, min: 0, max: 1023 }),\r\n count: (0, core_1.NumberNode)({ integer: true, min: 1, max: 4095 })\r\n },\r\n 'minecraft:random_spread': {\r\n spread_type: (0, core_1.Opt)(StringNode({ enum: ['linear', 'triangular'] })),\r\n spacing: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4096 }),\r\n separation: (0, core_1.Mod)((0, 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: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n locate_offset: (0, core_1.Opt)((0, core_1.ListNode)((0, 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', (0, core_1.Mod)((0, 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: (0, 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', (0, core_1.Mod)((0, 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: (0, 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: (0, core_1.NumberNode)(),\r\n max_threshold: (0, 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: (0, core_1.NumberNode)({ integer: true }),\r\n surface_type: StringNode({ enum: 'cave_surface' }),\r\n add_surface_depth: (0, core_1.BooleanNode)(),\r\n secondary_depth_range: (0, 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: (0, core_1.NumberNode)({ integer: true }),\r\n surface_depth_multiplier: (0, core_1.NumberNode)({ integer: true, min: -20, max: 20 }),\r\n add_stone_depth: (0, core_1.BooleanNode)()\r\n },\r\n 'minecraft:y_above': {\r\n anchor: Reference('vertical_anchor'),\r\n surface_depth_multiplier: (0, core_1.NumberNode)({ integer: true, min: -20, max: 20 }),\r\n add_stone_depth: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n name: StringNode(),\r\n fallback: StringNode(),\r\n elements: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n weight: (0, 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', (0, core_1.Mod)((0, 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: (0, 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 (0, ProcessorList_1.initProcessorListSchemas)(schemas, collections);\r\n (0, DensityFunction_1.initDensityFunctionSchemas)(schemas, collections);\r\n (0, Biome_1.initBiomeSchemas)(schemas, collections);\r\n (0, Carver_1.initCarverSchemas)(schemas, collections);\r\n (0, Decorator_1.initDecoratorSchemas)(schemas, collections);\r\n (0, Feature_1.initFeatureSchemas)(schemas, collections);\r\n (0, NoiseSettings_1.initNoiseSettingsSchemas)(schemas, collections);\r\n (0, StructureFeature_1.initStructureFeatureSchemas)(schemas, collections);\r\n (0, StructureSet_1.initStructureSetSchemas)(schemas, collections);\r\n (0, SurfaceRule_1.initSurfaceRuleSchemas)(schemas, collections);\r\n (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n generate_features: (0, core_1.BooleanNode)(),\r\n bonus_chest: (0, core_1.BooleanNode)(),\r\n seed: (0, core_1.NumberNode)({ integer: true }),\r\n dimensions: (0, 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 (0, Common_1.initCommonSchemas)(schemas, collections);\r\n (0, Advancement_1.initAdvancementSchemas)(schemas, collections);\r\n (0, assets_1.initAssetsSchemas)(schemas, collections);\r\n (0, Condition_1.initConditionSchemas)(schemas, collections);\r\n (0, DimensionType_1.initDimensionTypeSchemas)(schemas, collections);\r\n (0, Dimension_1.initDimensionSchemas)(schemas, collections);\r\n (0, ItemModifier_1.initItemModifierSchemas)(schemas, collections);\r\n (0, LootTable_1.initLootTableSchemas)(schemas, collections);\r\n (0, PackMcmeta_1.initPackMcmetaSchemas)(schemas, collections);\r\n (0, Predicates_1.initPredicatesSchemas)(schemas, collections);\r\n (0, Recipe_1.initRecipeSchemas)(schemas, collections);\r\n (0, Tags_1.initTagsSchemas)(schemas, collections);\r\n (0, TextComponent_1.initTextComponentSchemas)(schemas, collections);\r\n (0, worldgen_1.initWorldgenSchemas)(schemas, collections);\r\n (0, 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 var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\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.prototype.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 = exports.lootContext = 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 (0, 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 (0, 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:allay_drop_item_on_block',\r\n 'minecraft:avoid_vibration',\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:kill_mob_near_sculk_catalyst',\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:thrown_item_picked_up_by_player',\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('decoration_step', [\r\n 'raw_generation',\r\n 'lakes',\r\n 'local_modifications',\r\n 'underground_structures',\r\n 'surface_structures',\r\n 'strongholds',\r\n 'underground_ores',\r\n 'underground_decoration',\r\n 'fluid_springs',\r\n 'vegetal_decoration',\r\n 'top_layer_modification'\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 = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n node: (0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n display: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n icon: (0, core_1.ObjectNode)({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n nbt: (0, 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: (0, core_1.Opt)(StringNode()),\r\n frame: (0, core_1.Opt)(StringNode({ enum: ['task', 'challenge', 'goal'] })),\r\n show_toast: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n announce_to_chat: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n hidden: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$advancement' } })),\r\n criteria: (0, core_1.MapNode)(StringNode(), Reference('advancement_criteria')),\r\n requirements: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ListNode)(StringNode() // TODO: add validation\r\n ))),\r\n rewards: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n function: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$function' } })),\r\n loot: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$loot_table' } }))),\r\n recipes: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$recipe' } }))),\r\n experience: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n trigger: StringNode({ validator: 'resource', params: { pool: collections.get('advancement_trigger') } }),\r\n conditions: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n player: (0, 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:allay_drop_item_on_block': {\r\n item: (0, core_1.Opt)(Reference('item_predicate')),\r\n location: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:bee_nest_destroyed': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n num_bees_inside: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n item: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'potion' } }))\r\n },\r\n 'minecraft:changed_dimension': {\r\n from: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n to: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$dimension' } }))\r\n },\r\n 'minecraft:channeled_lightning': {\r\n victims: (0, core_1.Opt)((0, 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: (0, 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: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), (0, core_1.ObjectNode)({\r\n amplifier: Reference('int_bounds'),\r\n duration: Reference('int_bounds')\r\n }))),\r\n source: (0, core_1.Opt)(EntityPredicate)\r\n },\r\n 'minecraft:enter_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:entity_hurt_player': {\r\n damage: (0, core_1.Opt)(Reference('damage_predicate'))\r\n },\r\n 'minecraft:entity_killed_player': {\r\n entity: EntityPredicate,\r\n killing_blow: (0, core_1.Opt)(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:fall_from_height': {\r\n start_position: (0, core_1.Opt)(Reference('location_predicate')),\r\n distance: (0, core_1.Opt)(Reference('distance_predicate'))\r\n },\r\n 'minecraft:filled_bucket': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:fishing_rod_hooked': {\r\n entity: EntityPredicate,\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:inventory_changed': {\r\n slots: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:item_used_on_block': {\r\n item: (0, core_1.Opt)(Reference('item_predicate')),\r\n location: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:kill_mob_near_sculk_catalyst': {\r\n entity: EntityPredicate,\r\n killing_blow: (0, core_1.Opt)(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:killed_by_crossbow': {\r\n unique_entity_types: Reference('int_bounds'),\r\n victims: (0, core_1.Opt)((0, core_1.ListNode)(EntityPredicate))\r\n },\r\n 'minecraft:levitation': {\r\n distance: (0, 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:nether_travel': {\r\n start_position: (0, core_1.Opt)(Reference('location_predicate')),\r\n distance: (0, core_1.Opt)(Reference('distance_predicate')),\r\n },\r\n 'minecraft:placed_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })),\r\n item: (0, core_1.Opt)(Reference('item_predicate')),\r\n location: (0, 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: (0, core_1.Opt)(Reference('damage_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_interacted_with_entity': {\r\n item: (0, 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: (0, 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: (0, core_1.Opt)(Reference('location_predicate')),\r\n distance: (0, core_1.Opt)(Reference('distance_predicate'))\r\n },\r\n 'minecraft:slide_down_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:shot_crossbow': {\r\n item: (0, 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: EntityPredicate,\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:thrown_item_picked_up_by_player': {\r\n entity: EntityPredicate,\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:used_ender_eye': {\r\n distance: (0, core_1.Opt)(Reference('float_bounds'))\r\n },\r\n 'minecraft:used_totem': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:using_item': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:villager_trade': {\r\n villager: EntityPredicate,\r\n item: (0, core_1.Opt)(Reference('item_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) => (0, core_1.ListNode)((0, core_1.NumberNode)({ min, max }), { minLength: length, maxLength: length });\r\n const Texture = (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n parent: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$model' } })),\r\n ambientocclusion: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n gui_light: (0, core_1.Opt)(StringNode({ enum: 'gui_light' })),\r\n textures: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), Texture)),\r\n elements: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n from: Vec(3, -16, 32),\r\n to: Vec(3, -16, 32),\r\n rotation: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n origin: Vec(3),\r\n axis: StringNode({ enum: 'axis' }),\r\n angle: (0, core_1.NumberEnum)({ values: [-45, -22.5, 0, 22.5, 45] }),\r\n rescale: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n })),\r\n shade: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n faces: (0, core_1.MapNode)(StringNode({ enum: 'direction' }), (0, core_1.ObjectNode)({\r\n texture: Texture,\r\n uv: (0, core_1.Opt)(Vec(4)),\r\n cullface: (0, core_1.Opt)(StringNode({ enum: 'direction' })),\r\n rotation: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n tintindex: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n }))\r\n }, { context: 'model_element' }))),\r\n display: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ enum: 'display_position' }), (0, 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: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n predicate: (0, core_1.MapNode)(StringNode({ enum: 'item_model_predicates' }), (0, 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', (0, core_1.Mod)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'variants',\r\n match: (v) => v.variants !== undefined,\r\n node: (0, core_1.ObjectNode)({\r\n variants: (0, 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: (0, core_1.ObjectNode)({\r\n multipart: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n when: (0, 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: (0, core_1.Opt)((0, core_1.NumberEnum)({ integer: true, values: [0, 90, 180, 270] })),\r\n y: (0, core_1.Opt)((0, core_1.NumberEnum)({ integer: true, values: [0, 90, 180, 270] })),\r\n uvlock: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n };\r\n schemas.register('model_variant', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n node: (0, 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: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n ...VariantChildren,\r\n weight: (0, core_1.Opt)((0, 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', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n priority: -1,\r\n match: () => true,\r\n node: (0, 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: (0, core_1.ObjectNode)({\r\n OR: (0, 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 (0, BlockDefinition_1.initBlockDefinitionSchemas)(schemas, collections);\r\n (0, 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 sea_level: 63,\r\n ore_veins_enabled: true,\r\n disable_mob_generation: false,\r\n aquifers_enabled: true,\r\n legacy_random_source: 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: -64,\r\n height: 384,\r\n size_horizontal: 1,\r\n size_vertical: 2,\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 noise_router: {\r\n barrier: 0,\r\n fluid_level_floodedness: 0,\r\n fluid_level_spread: 0,\r\n lava: 0,\r\n temperature: 0,\r\n vegetation: 0,\r\n continents: 0,\r\n erosion: 0,\r\n depth: 0,\r\n ridges: 0,\r\n initial_density_without_jaggedness: 0,\r\n final_density: {\r\n type: 'minecraft:interpolated',\r\n argument: 'minecraft:overworld/base_3d_noise'\r\n },\r\n vein_toggle: 0,\r\n vein_ridged: 0,\r\n vein_gap: 0,\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n Properties: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'fluid' } }),\r\n Properties: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ListNode)((0, core_1.NumberNode)({ integer: true }), { minLength: 3, maxLength: 3 }), {\r\n default: () => [0, 0, 0]\r\n }));\r\n const Bounds = (integer) => (0, core_1.Opt)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'number',\r\n node: (0, 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: (0, core_1.ObjectNode)({\r\n min: (0, core_1.Opt)((0, core_1.NumberNode)({ integer })),\r\n max: (0, core_1.Opt)((0, 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', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)({\r\n min: (0, core_1.Opt)(Reference('number_provider')),\r\n max: (0, core_1.Opt)(Reference('number_provider'))\r\n })\r\n },\r\n {\r\n type: 'number',\r\n node: (0, 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] = (0, 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 = (0, core_1.ObjectNode)({\r\n type: (0, core_1.Mod)((0, 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 (0, 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: (0, 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: (0, core_1.Opt)((0, 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: (0, 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: (0, 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: (0, core_1.NumberNode)(config)\r\n },\r\n 'minecraft:uniform': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)(config),\r\n max_exclusive: (0, core_1.NumberNode)(config)\r\n })\r\n },\r\n 'minecraft:clamped_normal': {\r\n value: (0, core_1.ObjectNode)({\r\n min: (0, core_1.NumberNode)(),\r\n max: (0, core_1.NumberNode)(),\r\n mean: (0, core_1.NumberNode)(),\r\n deviation: (0, core_1.NumberNode)()\r\n })\r\n },\r\n 'minecraft:trapezoid': {\r\n value: (0, core_1.ObjectNode)({\r\n min: (0, core_1.NumberNode)(),\r\n max: (0, core_1.NumberNode)(),\r\n plateau: (0, core_1.NumberNode)()\r\n })\r\n }\r\n });\r\n schemas.register('float_provider', (0, 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: (0, core_1.NumberNode)({ integer: true, ...config })\r\n },\r\n 'minecraft:uniform': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:biased_to_bottom': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:clamped': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n source: Reference('int_provider')\r\n })\r\n },\r\n 'minecraft:clamped_normal': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n mean: (0, core_1.NumberNode)(),\r\n deviation: (0, core_1.NumberNode)()\r\n })\r\n },\r\n 'minecraft:weighted_list': {\r\n distribution: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n weight: (0, core_1.NumberNode)({ integer: true }),\r\n data: Reference('int_provider'),\r\n }))\r\n }\r\n });\r\n schemas.register('int_provider', (0, exports.IntProvider)());\r\n schemas.register('vertical_anchor', (0, 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: (0, core_1.ObjectNode)({\r\n [t]: (0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:weighted_list': {\r\n distribution: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n weight: (0, core_1.NumberNode)({ integer: true }),\r\n data: Reference('int_provider'),\r\n }))\r\n }\r\n }));\r\n exports.InclusiveRange = (config) => (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)(config),\r\n max_inclusive: (0, core_1.NumberNode)(config)\r\n }, { context: 'range' });\r\n schemas.register('noise_parameters', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n firstOctave: (0, core_1.NumberNode)({ integer: true }),\r\n amplitudes: (0, core_1.ListNode)((0, 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) => (0, 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: (0, core_1.ListNode)(config.inlineSchema\r\n ? (0, 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: (0, 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: (0, 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: (0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:location_check': {\r\n offsetX: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n offsetY: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n offsetZ: (0, core_1.Opt)((0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_chance_with_looting': {\r\n chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n looting_multiplier: (0, 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: (0, core_1.ListNode)((0, core_1.NumberNode)({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:time_check': {\r\n value: Reference('int_range'),\r\n period: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n thundering: (0, core_1.Opt)((0, 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: (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n bonusMultiplier: (0, core_1.Mod)((0, core_1.NumberNode)(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:uniform_bonus_count'\r\n }),\r\n extra: (0, core_1.Mod)((0, core_1.NumberNode)(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n }),\r\n probability: (0, core_1.Mod)((0, 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: (0, core_1.ListNode)((0, 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: (0, core_1.ListNode)(StringNode({ validator: 'block_state_key', params: { id: ['pop', 'pop', { push: 'block' }] } }))\r\n },\r\n 'minecraft:enchant_randomly': {\r\n enchantments: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:exploration_map': {\r\n destination: (0, core_1.Opt)((0, exports.Tag)({ resource: '$worldgen/structure' })),\r\n decoration: (0, core_1.Opt)(StringNode({ enum: 'map_decoration' })),\r\n zoom: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n search_radius: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n skip_existing_chunks: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:set_attributes': {\r\n modifiers: (0, core_1.ListNode)(Reference('attribute_modifier'))\r\n },\r\n 'minecraft:set_banner_pattern': {\r\n patterns: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n pattern: StringNode({ enum: 'banner_pattern' }),\r\n color: StringNode({ enum: 'dye_color' })\r\n })),\r\n append: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_contents': {\r\n type: StringNode({ validator: 'resource', params: { pool: 'block_entity_type' } }),\r\n entries: (0, core_1.ListNode)(Reference('loot_entry'))\r\n },\r\n 'minecraft:set_count': {\r\n count: Reference('number_provider'),\r\n add: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_damage': {\r\n damage: Reference('number_provider'),\r\n add: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_enchantments': {\r\n enchantments: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'enchantment' } }), Reference('number_provider')),\r\n add: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:set_lore': {\r\n entity: (0, core_1.Opt)(entitySourceNode),\r\n lore: (0, core_1.ListNode)(Reference('text_component')),\r\n replace: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_name': {\r\n entity: (0, core_1.Opt)(entitySourceNode),\r\n name: (0, 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: (0, core_1.Opt)((0, core_1.ListNode)((0, 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) => (0, 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) => (0, core_1.ObjectOrPreset)(StringNode({ validator: 'resource', params: { pool: '$worldgen/noise_settings' } }), node, {\r\n 'minecraft:overworld': exports.DefaultNoiseSettings,\r\n 'minecraft:nether': {\r\n sea_level: 32,\r\n ore_veins_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n legacy_random_source: true,\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 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 noise_router: {\r\n barrier: 0,\r\n fluid_level_floodedness: 0,\r\n fluid_level_spread: 0,\r\n lava: 0,\r\n temperature: 0,\r\n vegetation: 0,\r\n continents: 0,\r\n erosion: 0,\r\n depth: 0,\r\n ridges: 0,\r\n initial_density_without_jaggedness: 0,\r\n final_density: {\r\n type: 'minecraft:interpolated',\r\n argument: 'minecraft:overworld/base_3d_noise'\r\n },\r\n vein_toggle: 0,\r\n vein_ridged: 0,\r\n vein_gap: 0,\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n }\r\n },\r\n 'minecraft:end': {\r\n sea_level: 0,\r\n ore_veins_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n legacy_random_source: true,\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 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 noise_router: {\r\n barrier: 0,\r\n fluid_level_floodedness: 0,\r\n fluid_level_spread: 0,\r\n lava: 0,\r\n temperature: 0,\r\n vegetation: 0,\r\n continents: 0,\r\n erosion: 0,\r\n depth: 0,\r\n ridges: 0,\r\n initial_density_without_jaggedness: 0,\r\n final_density: {\r\n type: 'minecraft:interpolated',\r\n argument: 'minecraft:overworld/base_3d_noise'\r\n },\r\n vein_toggle: 0,\r\n vein_ridged: 0,\r\n vein_gap: 0,\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n }\r\n },\r\n 'minecraft:amplified': {\r\n sea_level: 63,\r\n ore_veins_enabled: true,\r\n disable_mob_generation: false,\r\n aquifers_enabled: true,\r\n legacy_random_source: 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: -64,\r\n height: 384,\r\n size_horizontal: 1,\r\n size_vertical: 2,\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 noise_router: {\r\n barrier: 0,\r\n fluid_level_floodedness: 0,\r\n fluid_level_spread: 0,\r\n lava: 0,\r\n temperature: 0,\r\n vegetation: 0,\r\n continents: 0,\r\n erosion: 0,\r\n depth: 0,\r\n ridges: 0,\r\n initial_density_without_jaggedness: 0,\r\n final_density: {\r\n type: 'minecraft:interpolated',\r\n argument: 'minecraft:overworld/base_3d_noise'\r\n },\r\n vein_toggle: 0,\r\n vein_ridged: 0,\r\n vein_gap: 0,\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n },\r\n },\r\n 'minecraft:caves': {\r\n sea_level: 32,\r\n ore_veins_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n legacy_random_source: 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: 0,\r\n height: 128,\r\n size_horizontal: 1,\r\n size_vertical: 2,\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 noise_router: {\r\n barrier: 0,\r\n fluid_level_floodedness: 0,\r\n fluid_level_spread: 0,\r\n lava: 0,\r\n temperature: 0,\r\n vegetation: 0,\r\n continents: 0,\r\n erosion: 0,\r\n depth: 0,\r\n ridges: 0,\r\n initial_density_without_jaggedness: 0,\r\n final_density: {\r\n type: 'minecraft:interpolated',\r\n argument: 'minecraft:overworld/base_3d_noise'\r\n },\r\n vein_toggle: 0,\r\n vein_ridged: 0,\r\n vein_gap: 0,\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n }\r\n },\r\n 'minecraft:floating_islands': {\r\n sea_level: 0,\r\n ore_veins_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n legacy_random_source: 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: 0,\r\n height: 128,\r\n size_horizontal: 2,\r\n size_vertical: 1,\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 noise_router: {\r\n barrier: 0,\r\n fluid_level_floodedness: 0,\r\n fluid_level_spread: 0,\r\n lava: 0,\r\n temperature: 0,\r\n vegetation: 0,\r\n continents: 0,\r\n erosion: 0,\r\n depth: 0,\r\n ridges: 0,\r\n initial_density_without_jaggedness: 0,\r\n final_density: {\r\n type: 'minecraft:interpolated',\r\n argument: 'minecraft:overworld/base_3d_noise'\r\n },\r\n vein_toggle: 0,\r\n vein_ridged: 0,\r\n vein_gap: 0,\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\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', (0, core_1.ObjectOrList)(Reference('condition'), { choiceContext: 'condition' }));\r\n schemas.register('condition', (0, core_1.Mod)((0, 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]: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: (0, Common_1.DimensionTypePresets)(Reference('dimension_type')),\r\n generator: (0, 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 settings: (0, Common_1.NoiseSettingsPresets)(Reference('noise_settings')),\r\n biome_source: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: ['minecraft:overworld', 'minecraft:nether'] } })),\r\n biomes: (0, core_1.Mod)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 62 })),\r\n biomes: (0, Common_1.Tag)({ resource: '$worldgen/biome' })\r\n },\r\n }\r\n }, { category: 'predicate', disableSwitchContext: true })\r\n },\r\n 'minecraft:flat': {\r\n settings: Reference('flat_generator_settings')\r\n }\r\n }\r\n }, { disableSwitchContext: true })\r\n }, { category: 'pool', context: 'dimension' }), {\r\n default: () => {\r\n return {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n biome_source: {\r\n type: 'minecraft:fixed',\r\n biome: 'minecraft:plains'\r\n },\r\n settings: 'minecraft:overworld'\r\n }\r\n };\r\n }\r\n }));\r\n schemas.register('flat_generator_settings', (0, core_1.ObjectNode)({\r\n biome: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n lakes: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n features: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n layers: (0, core_1.ListNode)(Reference('generator_layer')),\r\n structure_overrides: (0, Common_1.Tag)({ resource: '$worldgen/structure_set', inlineSchema: 'structure_set' })\r\n }));\r\n const ClimateParameter = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'number',\r\n node: (0, 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: (0, core_1.ListNode)((0, 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('parameter_point', (0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n }));\r\n schemas.register('generator_biome', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }),\r\n parameters: Reference('parameter_point'),\r\n }, { context: 'generator_biome' }), {\r\n default: () => ({\r\n biome: 'minecraft:plains',\r\n parameters: {\r\n temperature: 0,\r\n humidity: 0,\r\n continentalness: 0,\r\n erosion: 0,\r\n weirdness: 0,\r\n depth: 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n ultrawarm: (0, core_1.BooleanNode)(),\r\n natural: (0, core_1.BooleanNode)(),\r\n piglin_safe: (0, core_1.BooleanNode)(),\r\n respawn_anchor_works: (0, core_1.BooleanNode)(),\r\n bed_works: (0, core_1.BooleanNode)(),\r\n has_raids: (0, core_1.BooleanNode)(),\r\n has_skylight: (0, core_1.BooleanNode)(),\r\n has_ceiling: (0, core_1.BooleanNode)(),\r\n coordinate_scale: (0, core_1.NumberNode)({ min: 0.00001, max: 30000000 }),\r\n ambient_light: (0, core_1.NumberNode)(),\r\n fixed_time: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n logical_height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4064 }),\r\n effects: (0, 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: (0, core_1.NumberNode)({ integer: true, min: -2032, max: 2031 }),\r\n height: (0, 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', (0, core_1.ObjectOrList)(Reference('function'), { choiceContext: 'function' }));\r\n const conditions = {\r\n conditions: (0, core_1.Opt)((0, core_1.ListNode)(Reference('condition')))\r\n };\r\n schemas.register('function', (0, core_1.Mod)((0, 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]: (0, 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: (0, core_1.Opt)((0, core_1.ListNode)(Reference('loot_condition')))\r\n };\r\n const functionsAndConditions = {\r\n functions: (0, core_1.Opt)((0, 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 (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: (0, core_1.Opt)(StringNode({ validator: \"resource\", params: { pool: collections.get('loot_context_type') } })),\r\n pools: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n rolls: Reference('number_provider'),\r\n bonus_rolls: (0, core_1.Opt)(Reference('number_provider')),\r\n entries: (0, 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: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'loot_pool_entry_type' } }),\r\n weight: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true, min: 1 }), weightMod)),\r\n quality: (0, core_1.Opt)((0, core_1.Mod)((0, 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: (0, 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: (0, 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: (0, 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: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n function: functionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'function' }],\r\n [core_1.Case]: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n condition: conditionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: (0, 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', (0, core_1.Mod)((0, 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: (0, 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 = 10;\r\nfunction initPackMcmetaSchemas(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('pack_mcmeta', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n pack: (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n pack_format: (0, core_1.Mod)((0, 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: Reference('text_component')\r\n }), {\r\n default: () => ({\r\n pack_format: CURRENT_PACK_FORMAT,\r\n description: ''\r\n })\r\n }),\r\n filter: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n block: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n namespace: (0, core_1.Opt)(StringNode({ validator: 'regex_pattern' })),\r\n path: (0, core_1.Opt)(StringNode({ validator: 'regex_pattern' })),\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 = (0, 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: (0, core_1.NumberNode)(),\r\n change: v => (typeof v === 'string') ? parseInt(v) : 0\r\n },\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)({\r\n min: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n max: (0, core_1.Opt)((0, 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: (0, core_1.BooleanNode)(),\r\n change: v => v === 'true' || v === 1\r\n }\r\n ]);\r\n schemas.register('item_predicate', (0, core_1.ObjectNode)({\r\n items: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'item' } }))),\r\n tag: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'potion' } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } })),\r\n enchantments: (0, core_1.Opt)((0, core_1.ListNode)(Reference('enchantment_predicate')))\r\n }, { context: 'item' }));\r\n schemas.register('enchantment_predicate', (0, core_1.ObjectNode)({\r\n enchantment: (0, 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', (0, core_1.ObjectNode)({\r\n blocks: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'block' } }))),\r\n tag: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$tag/block' } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block', id: ['pop', { push: 'block' }] } } })),\r\n state: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n fluid: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'fluid' } })),\r\n tag: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$tag/fluid' } })),\r\n state: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), StateChoice))\r\n }, { context: 'fluid' }));\r\n schemas.register('location_predicate', (0, core_1.ObjectNode)({\r\n position: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n structure: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$worldgen/structure' } })),\r\n dimension: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n light: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n light: Reference('int_bounds')\r\n })),\r\n smokey: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n block: (0, core_1.Opt)(Reference('block_predicate')),\r\n fluid: (0, core_1.Opt)(Reference('fluid_predicate'))\r\n }, { context: 'location' }));\r\n schemas.register('statistic_predicate', (0, 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('status_effect_predicate', (0, core_1.ObjectNode)({\r\n amplifier: Reference('int_bounds'),\r\n duration: Reference('int_bounds'),\r\n ambient: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n visible: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n }, { context: 'status_effect' }));\r\n schemas.register('distance_predicate', (0, 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', (0, core_1.ObjectNode)({\r\n type: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'entity_type', allowTag: true } })),\r\n type_specific: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n type: StringNode({ enum: ['any', 'cat', 'fishing_hook', 'frog', 'lightning', 'player', 'slime'] }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'cat': {\r\n variant: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'cat_variant' } }))\r\n },\r\n 'fishing_hook': {\r\n in_open_water: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'frog': {\r\n variant: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'frog_variant' } }))\r\n },\r\n 'lightning': {\r\n blocks_set_on_fire: (0, core_1.Opt)(Reference('int_bounds')),\r\n entity_struck: (0, core_1.Opt)(Reference('entity_predicate'))\r\n },\r\n 'player': {\r\n gamemode: (0, core_1.Opt)(StringNode({ enum: 'gamemode' })),\r\n level: Reference('int_bounds'),\r\n advancements: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: '$advancement' } }), (0, core_1.ChoiceNode)([\r\n {\r\n type: 'boolean',\r\n node: (0, core_1.BooleanNode)(),\r\n change: () => true\r\n },\r\n {\r\n type: 'object',\r\n node: (0, core_1.MapNode)(StringNode(), (0, core_1.BooleanNode)())\r\n }\r\n ]))),\r\n recipes: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: '$recipe' } }), (0, core_1.BooleanNode)())),\r\n stats: (0, core_1.Opt)((0, core_1.ListNode)(Reference('statistic_predicate'))),\r\n looking_at: (0, core_1.Opt)(Reference('entity_predicate'))\r\n },\r\n 'slime': {\r\n size: Reference('int_bounds')\r\n },\r\n }\r\n })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:entity', id: ['pop', { push: 'type' }] } } })),\r\n team: (0, core_1.Opt)(StringNode({ validator: 'team' })),\r\n location: (0, core_1.Opt)(Reference('location_predicate')),\r\n stepping_on: (0, core_1.Opt)(Reference('location_predicate')),\r\n distance: (0, core_1.Opt)(Reference('distance_predicate')),\r\n flags: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n is_on_fire: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_sneaking: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_sprinting: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_swimming: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_baby: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n })),\r\n equipment: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ enum: 'slot' }), Reference('item_predicate'))),\r\n vehicle: (0, core_1.Opt)(Reference('entity_predicate')),\r\n passenger: (0, core_1.Opt)(Reference('entity_predicate')),\r\n targeted_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n effects: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n is_explosion: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_fire: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_magic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_projectile: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_lightning: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_armor: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_invulnerability: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_magic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n source_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n direct_entity: (0, core_1.Opt)(Reference('entity_predicate'))\r\n }, { context: 'damage_source' }));\r\n schemas.register('damage_predicate', (0, core_1.ObjectNode)({\r\n dealt: Reference('float_bounds'),\r\n taken: Reference('float_bounds'),\r\n blocked: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n source_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n type: (0, 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', (0, core_1.Mod)((0, 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: (0, core_1.Opt)(StringNode({ enum: 'recipe_group', additional: true })),\r\n pattern: (0, core_1.ListNode)(StringNode()),\r\n key: (0, 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: (0, core_1.Opt)(StringNode()),\r\n ingredients: (0, core_1.ListNode)(Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:smelting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 200 }))\r\n },\r\n 'minecraft:blasting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:smoking': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:campfire_cooking': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:stonecutting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:smithing': {\r\n group: (0, 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', (0, core_1.Mod)((0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n item: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.Opt)((0, core_1.Mod)((0, 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) => (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n replace: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n values: (0, core_1.ListNode)((0, 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: (0, core_1.ObjectNode)({\r\n id: StringNode({ validator: 'resource', params: { pool: type, allowTag: true, allowUnknown: true } }),\r\n required: (0, 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 schemas.register('advancement_tag', TagBase('$advancement'));\r\n schemas.register('dimension_tag', TagBase('$dimension'));\r\n schemas.register('dimension_type_tag', TagBase('$dimension_type'));\r\n schemas.register('function_tag', TagBase('$function'));\r\n schemas.register('item_modifier_tag', TagBase('$item_modifier'));\r\n schemas.register('loot_table_tag', TagBase('$loot_table'));\r\n schemas.register('predicate_tag', TagBase('$predicate'));\r\n schemas.register('recipe_tag', TagBase('$recipe'));\r\n schemas.register('structure_tag', TagBase('$structure'));\r\n schemas.register('biome_tag', TagBase('$worldgen/biome'));\r\n schemas.register('configured_carver_tag', TagBase('$worldgen/configured_carver'));\r\n schemas.register('configured_feature_tag', TagBase('$worldgen/configured_feature'));\r\n schemas.register('structure_tag', TagBase('$worldgen/structure'));\r\n schemas.register('configured_surface_builder_tag', TagBase('$worldgen/configured_surface_builder'));\r\n schemas.register('density_function_tag', TagBase('$worldgen/density_function'));\r\n schemas.register('flat_level_generator_preset_tag', TagBase('$worldgen/flat_level_generator_preset'));\r\n schemas.register('noise_tag', TagBase('$worldgen/noise'));\r\n schemas.register('noise_settings_tag', TagBase('$worldgen/noise_settings'));\r\n schemas.register('placed_feature_tag', TagBase('$worldgen/placed_feature'));\r\n schemas.register('processor_list_tag', TagBase('$worldgen/processor_list'));\r\n schemas.register('structure_set_tag', TagBase('$worldgen/structure_set'));\r\n schemas.register('template_pool_tag', TagBase('$worldgen/template_pool'));\r\n schemas.register('world_preset_tag', TagBase('$worldgen/world_preset'));\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', (0, core_1.Mod)((0, 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: (0, 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: (0, 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: (0, core_1.Opt)(StringNode()) /* TODO */,\r\n font: (0, core_1.Opt)(StringNode()),\r\n bold: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n italic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n underlined: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n strikethrough: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n obfuscated: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n insertion: (0, core_1.Opt)(StringNode()),\r\n clickEvent: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(Reference('text_component')),\r\n contents: (0, core_1.Opt)(Reference('text_component'))\r\n },\r\n 'show_item': {\r\n value: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { module: 'util::InventoryItem' } })),\r\n contents: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n id: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n tag: (0, 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: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n name: (0, core_1.Opt)(StringNode()),\r\n type: (0, core_1.Opt)(StringNode()),\r\n id: (0, core_1.Opt)(StringNode())\r\n })),\r\n contents: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n name: (0, 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: (0, core_1.Opt)(Reference('text_component_list'))\r\n };\r\n schemas.register('text_component_object', (0, core_1.Mod)((0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n translate: StringNode(),\r\n with: (0, 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: (0, core_1.ObjectNode)({\r\n score: (0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n selector: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } }),\r\n separator: (0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n nbt: StringNode({ validator: 'nbt_path' }),\r\n block: (0, core_1.Opt)(StringNode({ validator: 'vector', params: { dimension: 3, isInteger: true } })),\r\n entity: (0, core_1.Opt)(StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } })),\r\n storage: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$storage' } })),\r\n interpret: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n separator: (0, 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', (0, core_1.Mod)((0, 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.MobCategorySpawnSettings = 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.MobCategorySpawnSettings = (0, core_1.Mod)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n weight: (0, core_1.NumberNode)({ integer: true }),\r\n minCount: (0, core_1.NumberNode)({ integer: true }),\r\n maxCount: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n temperature: (0, core_1.NumberNode)(),\r\n downfall: (0, core_1.NumberNode)(),\r\n precipitation: StringNode({ enum: ['none', 'rain', 'snow'] }),\r\n temperature_modifier: (0, core_1.Opt)(StringNode({ enum: ['none', 'frozen'] })),\r\n creature_spawn_probability: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n effects: (0, core_1.ObjectNode)({\r\n sky_color: (0, core_1.NumberNode)({ color: true }),\r\n fog_color: (0, core_1.NumberNode)({ color: true }),\r\n water_color: (0, core_1.NumberNode)({ color: true }),\r\n water_fog_color: (0, core_1.NumberNode)({ color: true }),\r\n grass_color: (0, core_1.Opt)((0, core_1.NumberNode)({ color: true })),\r\n foliage_color: (0, core_1.Opt)((0, core_1.NumberNode)({ color: true })),\r\n grass_color_modifier: (0, core_1.Opt)(StringNode({ enum: ['none', 'dark_forest', 'swamp'] })),\r\n ambient_sound: (0, core_1.Opt)(StringNode()),\r\n mood_sound: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n sound: StringNode(),\r\n tick_delay: (0, core_1.NumberNode)({ integer: true }),\r\n block_search_extent: (0, core_1.NumberNode)({ integer: true }),\r\n offset: (0, core_1.NumberNode)()\r\n })),\r\n additions_sound: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n sound: StringNode(),\r\n tick_chance: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n })),\r\n music: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n sound: StringNode(),\r\n min_delay: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n max_delay: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n replace_current_music: (0, core_1.BooleanNode)()\r\n })),\r\n particle: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n options: (0, core_1.ObjectNode)({\r\n type: StringNode()\r\n }),\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n }))\r\n }),\r\n spawners: (0, core_1.MapNode)(StringNode({ enum: 'mob_category' }), exports.MobCategorySpawnSettings),\r\n spawn_costs: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'entity_type' } }), (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n energy_budget: (0, core_1.NumberNode)(),\r\n charge: (0, 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: (0, core_1.MapNode)(StringNode({ enum: ['air', 'liquid'] }), (0, core_1.Mod)((0, Common_1.Tag)({ resource: '$worldgen/configured_carver', inlineSchema: 'configured_carver' }), {\r\n default: () => ['minecraft:cave']\r\n })),\r\n features: (0, core_1.ListNode)((0, core_1.Mod)((0, 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: (0, Common_1.FloatProvider)(),\r\n shape: (0, core_1.ObjectNode)({\r\n distance_factor: (0, Common_1.FloatProvider)(),\r\n thickness: (0, Common_1.FloatProvider)(),\r\n width_smoothness: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n horizontal_radius_factor: (0, Common_1.FloatProvider)(),\r\n vertical_radius_default_factor: (0, core_1.NumberNode)(),\r\n vertical_radius_center_factor: (0, core_1.NumberNode)()\r\n })\r\n };\r\n const CaveConfig = {\r\n horizontal_radius_multiplier: (0, Common_1.FloatProvider)(),\r\n vertical_radius_multiplier: (0, Common_1.FloatProvider)(),\r\n floor_level: (0, Common_1.FloatProvider)({ min: -1, max: 1 }),\r\n };\r\n schemas.register('configured_carver', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/carver' } }),\r\n config: (0, core_1.ObjectNode)({\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n y: Reference('height_provider'),\r\n yScale: (0, Common_1.FloatProvider)(),\r\n lava_level: Reference('vertical_anchor'),\r\n replaceable: (0, Common_1.Tag)({ resource: 'block' }),\r\n debug_settings: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n debug_mode: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n air_state: (0, core_1.Opt)(Reference('block_state')),\r\n water_state: (0, core_1.Opt)(Reference('block_state')),\r\n lava_state: (0, core_1.Opt)(Reference('block_state')),\r\n barrier_state: (0, 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', (0, 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: (0, core_1.NumberNode)({ integer: true, min: 0 })\r\n },\r\n 'minecraft:count': {\r\n count: (0, Common_1.IntProvider)({ min: 0, max: 256 })\r\n },\r\n 'minecraft:count_on_every_layer': {\r\n count: (0, Common_1.IntProvider)({ min: 0, max: 256 })\r\n },\r\n 'minecraft:noise_threshold_count': {\r\n noise_level: (0, core_1.NumberNode)(),\r\n below_noise: (0, core_1.NumberNode)({ integer: true }),\r\n above_noise: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:noise_based_count': {\r\n noise_to_count_ratio: (0, core_1.NumberNode)({ integer: true }),\r\n noise_factor: (0, core_1.NumberNode)(),\r\n noise_offset: (0, core_1.Opt)((0, core_1.NumberNode)())\r\n },\r\n 'minecraft:environment_scan': {\r\n direction_of_search: StringNode({ enum: ['up', 'down'] }),\r\n max_steps: (0, core_1.NumberNode)({ integer: true, min: 1, max: 32 }),\r\n target_condition: Reference('block_predicate_worldgen'),\r\n allowed_search_condition: (0, 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: (0, Common_1.IntProvider)({ min: -16, max: 16 }),\r\n y_spread: (0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n max_inclusive: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:surface_water_depth_filter': {\r\n max_water_depth: (0, 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 = (0, core_1.Mod)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'number',\r\n node: (0, 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 = (0, 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 = (0, core_1.NumberNode)({ min: -1000000, max: 1000000 });\r\n const YRange = (0, core_1.NumberNode)({ integer: true, min: -2032 * 2, max: 2031 * 2 });\r\n schemas.register('density_function', (0, core_1.Mod)((0, 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:blend_density': {\r\n argument: 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:constant': {\r\n argument: (0, core_1.NumberNode)(),\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: (0, core_1.NumberNode)(),\r\n y_scale: (0, core_1.NumberNode)(),\r\n },\r\n 'minecraft:old_blended_noise': {\r\n xz_scale: (0, core_1.NumberNode)(),\r\n y_scale: (0, core_1.NumberNode)(),\r\n xz_factor: (0, core_1.NumberNode)(),\r\n y_factor: (0, core_1.NumberNode)(),\r\n smear_scale_multiplier: (0, core_1.NumberNode)({ min: 1, max: 8 }),\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: (0, core_1.NumberNode)(),\r\n y_scale: (0, 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:spline': {\r\n spline: Reference('cubic_spline'),\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: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 }), {\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 }));\r\n schemas.register('cubic_spline', (0, core_1.Mod)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'number',\r\n node: (0, core_1.NumberNode)()\r\n },\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)({\r\n coordinate: exports.DensityFunction,\r\n points: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n location: (0, core_1.NumberNode)(),\r\n derivative: (0, core_1.NumberNode)(),\r\n value: Reference('cubic_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.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\nconst Common_1 = require(\"../Common\");\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 = (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n processors: (0, 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', (0, core_1.Mod)((0, 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: (0, core_1.NumberNode)()\r\n },\r\n 'minecraft:block_ignore': {\r\n blocks: (0, core_1.ListNode)(Reference('block_state'))\r\n },\r\n 'minecraft:block_rot': {\r\n integrity: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n rottable_blocks: (0, core_1.Opt)((0, Common_1.Tag)({ resource: 'block' }))\r\n },\r\n 'minecraft:gravity': {\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n offset: (0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n position_predicate: (0, 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: (0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 255, integer: true })),\r\n max_dist: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 255, integer: true })),\r\n min_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n max_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 }))\r\n };\r\n schemas.register('pos_rule_test', (0, 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', (0, 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: (0, 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: (0, 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 = (0, 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 = (0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 1 })),\r\n xz_spread: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0 })),\r\n y_spread: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0 })),\r\n feature: PlacedFeature,\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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n };\r\n const TargetBlockState = (0, core_1.ObjectNode)({\r\n target: Reference('rule_test'),\r\n state: Reference('block_state')\r\n });\r\n const OreConfig = {\r\n size: (0, core_1.NumberNode)({ integer: true, min: 0, max: 64 }),\r\n discard_chance_on_air_exposure: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n targets: (0, core_1.ListNode)(TargetBlockState)\r\n };\r\n const VegetationPatchConfig = {\r\n surface: StringNode({ enum: 'cave_surface' }),\r\n depth: (0, Common_1.IntProvider)({ min: 1, max: 128 }),\r\n vertical_range: (0, core_1.NumberNode)({ integer: true, min: 1, max: 256 }),\r\n extra_bottom_block_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n extra_edge_column_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n vegetation_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n xz_radius: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature' } }),\r\n config: (0, core_1.ObjectNode)({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bamboo': {\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:basalt_columns': {\r\n reach: (0, Common_1.IntProvider)({ min: 0, max: 3 }),\r\n height: (0, 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: (0, core_1.BooleanNode)(),\r\n layers: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n height: (0, 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: (0, Common_1.IntProvider)({ min: 0, max: 16 }),\r\n rim_size: (0, Common_1.IntProvider)({ min: 0, max: 16 })\r\n },\r\n 'minecraft:disk': {\r\n state_provider: Reference('rule_based_block_state_provider'),\r\n target: Reference('block_predicate_worldgen'),\r\n radius: (0, Common_1.IntProvider)({ min: 0, max: 8 }),\r\n half_height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4 }),\r\n },\r\n 'minecraft:dripstone_cluster': {\r\n floor_to_ceiling_search_range: (0, core_1.NumberNode)({ integer: true, min: 1, max: 512 }),\r\n height: (0, Common_1.IntProvider)({ min: 0, max: 128 }),\r\n radius: (0, Common_1.IntProvider)({ min: 0, max: 128 }),\r\n max_stalagmite_stalactite_height_diff: (0, core_1.NumberNode)({ integer: true, min: 0, max: 64 }),\r\n height_deviation: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n dripstone_block_layer_thickness: (0, Common_1.IntProvider)({ min: 0, max: 128 }),\r\n density: (0, Common_1.FloatProvider)({ min: 0, max: 2 }),\r\n wetness: (0, Common_1.FloatProvider)({ min: 0, max: 2 }),\r\n chance_of_dripstone_column_at_max_distance_from_center: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n max_distance_from_edge_affecting_chance_of_dripstone_column: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n max_distance_from_center_affecting_height_bias: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 })\r\n },\r\n 'minecraft:end_gateway': {\r\n exact: (0, core_1.BooleanNode)(),\r\n exit: (0, core_1.Opt)(Reference('block_pos'))\r\n },\r\n 'minecraft:end_spike': {\r\n crystal_invulnerable: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n crystal_beam_target: (0, core_1.Opt)(Reference('block_pos')),\r\n spikes: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n centerX: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n centerZ: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n radius: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n height: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n guarded: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n }))\r\n },\r\n 'minecraft:fill_layer': {\r\n state: Reference('block_state'),\r\n height: (0, 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: (0, core_1.NumberNode)({ integer: true, min: 0, max: 7 }),\r\n fossil_structures: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$structure' } })),\r\n overlay_structures: (0, 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: (0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n filling: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n inner_layer: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n middle_layer: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n outer_layer: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n }),\r\n crack: (0, core_1.ObjectNode)({\r\n generate_crack_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n base_crack_size: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 5 })),\r\n crack_point_offset: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 10 })),\r\n }),\r\n noise_multiplier: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n use_potential_placements_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n use_alternate_layer0_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n placements_require_layer0_alternate: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n outer_wall_distance: (0, core_1.Opt)((0, Common_1.IntProvider)({ min: 1, max: 20 })),\r\n distribution_points: (0, core_1.Opt)((0, Common_1.IntProvider)({ min: 1, max: 20 })),\r\n point_offset: (0, core_1.Opt)((0, Common_1.IntProvider)({ min: 0, max: 10 })),\r\n min_gen_offset: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n max_gen_offset: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n invalid_blocks_threshold: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:multiface_growth': {\r\n search_range: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 1, max: 64, integer: true })),\r\n chance_of_spreading: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n can_place_on_floor: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n can_place_on_ceiling: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n can_place_on_wall: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n can_be_placed_on: (0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:huge_red_mushroom': HugeMushroomConfig,\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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 1, max: 512 })),\r\n column_radius: (0, Common_1.IntProvider)({ min: 0, max: 60 }),\r\n height_scale: (0, Common_1.FloatProvider)({ min: 0, max: 20 }),\r\n max_column_radius_to_cave_height_ratio: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n stalactite_bluntness: (0, Common_1.FloatProvider)({ min: 0.1, max: 10 }),\r\n stalagmite_bluntness: (0, Common_1.FloatProvider)({ min: 0.1, max: 10 }),\r\n wind_speed: (0, Common_1.FloatProvider)({ min: 0, max: 2 }),\r\n min_radius_for_wind: (0, core_1.NumberNode)({ integer: true, min: 0, max: 100 }),\r\n min_bluntness_for_wind: (0, 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: (0, core_1.NumberNode)({ integer: true, min: 1 }),\r\n spread_height: (0, 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: (0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n chance_of_directional_spread: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n chance_of_spread_radius2: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n chance_of_spread_radius3: (0, core_1.Opt)((0, 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: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n chance: (0, 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: (0, core_1.ListNode)(TargetBlockState)\r\n },\r\n 'minecraft:root_system': {\r\n required_vertical_space_for_tree: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n root_radius: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n root_placement_attempts: (0, core_1.NumberNode)({ integer: true, min: 1, max: 256 }),\r\n root_column_max_height: (0, core_1.NumberNode)({ integer: true, min: 1, max: 4096 }),\r\n hanging_root_radius: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n hanging_roots_vertical_span: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 }),\r\n hanging_root_placement_attempts: (0, core_1.NumberNode)({ integer: true, min: 0, max: 256 }),\r\n allowed_vertical_water_for_tree: (0, 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:sculk_patch': {\r\n charge_count: (0, core_1.NumberNode)({ integer: true, min: 1, max: 32 }),\r\n amount_per_charge: (0, core_1.NumberNode)({ integer: true, min: 1, max: 500 }),\r\n spread_attempts: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n growth_rounds: (0, core_1.NumberNode)({ integer: true, min: 0, max: 8 }),\r\n spread_rounds: (0, core_1.NumberNode)({ integer: true, min: 0, max: 8 }),\r\n extra_rare_growths: (0, Common_1.IntProvider)(),\r\n catalyst_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n },\r\n 'minecraft:sea_pickle': {\r\n count: (0, Common_1.IntProvider)({ min: 0, max: 256 })\r\n },\r\n 'minecraft:seagrass': {\r\n probability: (0, 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: (0, 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: (0, core_1.NumberNode)({ integer: true }),\r\n hole_count: (0, core_1.NumberNode)({ integer: true }),\r\n requires_block_below: (0, core_1.BooleanNode)(),\r\n valid_blocks: (0, Common_1.Tag)({ resource: 'block' })\r\n },\r\n 'minecraft:tree': {\r\n ignore_vines: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n force_dirt: (0, core_1.Opt)((0, 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 root_placer: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/root_placer_type' } }),\r\n root_provider: Reference('block_state_provider'),\r\n trunk_offset_y: (0, Common_1.IntProvider)(),\r\n above_root_placement: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n above_root_provider: Reference('block_state_provider'),\r\n above_root_placement_chance: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n })),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:mangrove_root_placer': {\r\n mangrove_root_placement: (0, core_1.ObjectNode)({\r\n max_root_width: (0, core_1.NumberNode)({ integer: true, min: 1, max: 12 }),\r\n max_root_length: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n random_skew_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n can_grow_through: (0, Common_1.Tag)({ resource: 'block' }),\r\n muddy_roots_in: (0, Common_1.Tag)({ resource: 'block' }),\r\n muddy_roots_provider: Reference('block_state_provider'),\r\n })\r\n }\r\n }\r\n }, { context: 'root_placer' })),\r\n trunk_placer: (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/trunk_placer_type' } }),\r\n base_height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 32 }),\r\n height_rand_a: (0, core_1.NumberNode)({ integer: true, min: 0, max: 24 }),\r\n height_rand_b: (0, 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: (0, Common_1.IntProvider)({ min: 1, max: 64 }),\r\n min_height_for_leaves: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 1 }))\r\n },\r\n 'minecraft:upwards_branching_trunk_placer': {\r\n extra_branch_steps: (0, Common_1.IntProvider)({ min: 1 }),\r\n extra_branch_length: (0, Common_1.IntProvider)({ min: 0 }),\r\n place_branch_per_log_probability: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n can_grow_through: (0, Common_1.Tag)({ resource: 'block' })\r\n }\r\n }\r\n }, { context: 'trunk_placer' }),\r\n foliage_placer: (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/foliage_placer_type' } }),\r\n radius: (0, Common_1.IntProvider)({ min: 0, max: 16 }),\r\n offset: (0, 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: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:bush_foliage_placer': {\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:fancy_foliage_placer': {\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:jungle_foliage_placer': {\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:mega_pine_foliage_placer': {\r\n crown_height: (0, Common_1.IntProvider)({ min: 0, max: 24 })\r\n },\r\n 'minecraft:pine_foliage_placer': {\r\n height: (0, Common_1.IntProvider)({ min: 0, max: 24 })\r\n },\r\n 'minecraft:random_spread_foliage_placer': {\r\n foliage_height: (0, Common_1.IntProvider)({ min: 1, max: 512 }),\r\n leaf_placement_attempts: (0, core_1.NumberNode)({ integer: true, min: 0, max: 256 })\r\n },\r\n 'minecraft:spruce_foliage_placer': {\r\n trunk_height: (0, Common_1.IntProvider)({ min: 0, max: 24 })\r\n }\r\n }\r\n }, { context: 'foliage_placer', disableSwitchContext: true }),\r\n decorators: (0, core_1.ListNode)((0, 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:attached_to_leaves': {\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n exclusion_radius_xz: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 }),\r\n exclusion_radius_y: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 }),\r\n required_empty_blocks: (0, core_1.NumberNode)({ integer: true, min: 1, max: 16 }),\r\n block_provider: Reference('block_state_provider'),\r\n directions: (0, core_1.ListNode)(StringNode({ enum: 'direction' }))\r\n },\r\n 'minecraft:beehive': {\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:cocoa': {\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:leave_vine': {\r\n probability: (0, 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: (0, core_1.NumberNode)({ integer: true, min: 1 }),\r\n spread_height: (0, core_1.NumberNode)({ integer: true, min: 1 }),\r\n max_height: (0, core_1.NumberNode)({ integer: true, min: 1 }),\r\n },\r\n 'minecraft:underwater_magma': {\r\n floor_search_range: (0, core_1.NumberNode)({ integer: true, min: 0, max: 512 }),\r\n placement_radius_around_floor: (0, core_1.NumberNode)({ integer: true, min: 0, max: 64 }),\r\n placement_probability_per_valid_position: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n feature: ConfiguredFeature,\r\n placement: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature_size_type' } }),\r\n min_clipped_height: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 81 })),\r\n lower_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })),\r\n upper_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 }))\r\n },\r\n 'minecraft:three_layers_feature_size': {\r\n limit: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 80 })),\r\n upper_limit: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 80 })),\r\n lower_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })),\r\n middle_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })),\r\n upper_size: (0, core_1.Opt)((0, 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: (0, core_1.NumberNode)({ integer: true }),\r\n noise: Reference('noise_parameters'),\r\n scale: (0, core_1.Mod)((0, core_1.NumberNode)({ min: Number.MIN_VALUE }), { default: () => 1 })\r\n };\r\n schemas.register('block_state_provider', (0, core_1.Mod)((0, 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: (0, Common_1.InclusiveRange)({ integer: true, min: 1, max: 64 }),\r\n slow_noise: Reference('noise_parameters'),\r\n slow_scale: (0, core_1.Mod)((0, core_1.NumberNode)({ min: Number.MIN_VALUE }), { default: () => 1 }),\r\n states: (0, core_1.ListNode)(Reference('block_state'))\r\n },\r\n 'minecraft:noise_threshold_provider': {\r\n ...NoiseProvider,\r\n threshold: (0, core_1.NumberNode)({ min: -1, max: 1 }),\r\n high_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n default_state: Reference('block_state'),\r\n low_states: (0, core_1.ListNode)(Reference('block_state')),\r\n high_states: (0, core_1.ListNode)(Reference('block_state'))\r\n },\r\n 'minecraft:noise_provider': {\r\n ...NoiseProvider,\r\n states: (0, core_1.ListNode)(Reference('block_state'))\r\n },\r\n 'minecraft:randomized_int_state_provider': {\r\n property: StringNode(),\r\n values: (0, 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: (0, core_1.ListNode)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n weight: (0, 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('rule_based_block_state_provider', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n fallback: Reference('block_state_provider'),\r\n rules: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n if_true: Reference('block_predicate_worldgen'),\r\n then: Reference('block_state_provider')\r\n }))\r\n }, { context: 'block_state_provider' }), {\r\n default: () => ({\r\n fallback: {\r\n type: 'minecraft:simple_state_provider'\r\n }\r\n })\r\n }));\r\n const Offset = {\r\n offset: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.NumberNode)({ integer: true, min: -16, max: 16 }), { minLength: 3, maxLength: 3 }))\r\n };\r\n schemas.register('block_predicate_worldgen', (0, core_1.Mod)((0, 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: (0, core_1.ListNode)(Reference('block_predicate_worldgen'))\r\n },\r\n 'minecraft:any_of': {\r\n predicates: (0, 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: (0, Common_1.Tag)({ resource: 'block' })\r\n },\r\n 'minecraft:matching_fluids': {\r\n ...Offset,\r\n fluids: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n sea_level: (0, core_1.NumberNode)({ integer: true }),\r\n disable_mob_generation: (0, core_1.BooleanNode)(),\r\n aquifers_enabled: (0, core_1.BooleanNode)(),\r\n ore_veins_enabled: (0, core_1.BooleanNode)(),\r\n legacy_random_source: (0, core_1.BooleanNode)(),\r\n default_block: Reference('block_state'),\r\n default_fluid: Reference('block_state'),\r\n noise: (0, core_1.ObjectNode)({\r\n min_y: (0, core_1.NumberNode)({ integer: true, min: -2048, max: 2047 }),\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4096 }),\r\n size_horizontal: (0, core_1.NumberNode)({ integer: true }),\r\n size_vertical: (0, core_1.NumberNode)({ integer: true }),\r\n }),\r\n noise_router: (0, 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 ridges: 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 spawn_target: (0, core_1.ListNode)(Reference('parameter_point')),\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', (0, core_1.ObjectNode)({\r\n target: (0, core_1.NumberNode)(),\r\n size: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n offset: (0, core_1.NumberNode)({ integer: true })\r\n }));\r\n schemas.register('generator_layer', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n height: (0, 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.initStructureSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nconst Biome_1 = require(\"./Biome\");\r\nfunction initStructureSchemas(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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_type' } }),\r\n biomes: (0, Common_1.Tag)({ resource: '$worldgen/biome' }),\r\n step: StringNode({ enum: 'decoration_step' }),\r\n spawn_overrides: (0, core_1.MapNode)(StringNode({ enum: 'mob_category' }), (0, core_1.ObjectNode)({\r\n bounding_box: StringNode({ enum: ['piece', 'full'] }),\r\n spawns: Biome_1.MobCategorySpawnSettings,\r\n })),\r\n terrain_adaptation: (0, core_1.Opt)(StringNode({ enum: ['none', 'beard_thin', 'beard_box', 'bury'] })),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:jigsaw': {\r\n start_pool: StringNode({ validator: 'resource', params: { pool: '$worldgen/template_pool' } }),\r\n size: (0, core_1.NumberNode)({ integer: true }),\r\n start_height: Reference('height_provider'),\r\n project_start_to_heightmap: (0, core_1.Opt)(StringNode({ enum: 'heightmap_type' })),\r\n max_distance_from_center: (0, core_1.NumberNode)({ integer: true, min: 1, max: 128 }),\r\n use_expansion_hack: (0, core_1.BooleanNode)(),\r\n },\r\n 'minecraft:mineshaft': {\r\n mineshaft_type: StringNode({ enum: ['normal', 'mesa'] }),\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: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n cluster_probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:ruined_portal': {\r\n setups: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n placement: StringNode({ enum: ['on_land_surface', 'partly_buried', 'on_ocean_floor', 'in_mountain', 'underground', 'in_nether'] }),\r\n air_pocket_probability: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n mossiness: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n overgrown: (0, core_1.BooleanNode)(),\r\n vines: (0, core_1.BooleanNode)(),\r\n can_be_cold: (0, core_1.BooleanNode)(),\r\n replace_with_blackstone: (0, core_1.BooleanNode)(),\r\n weight: (0, core_1.NumberNode)({ min: 0 })\r\n }))\r\n },\r\n 'minecraft:shipwreck': {\r\n is_beached: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n }\r\n }\r\n }, { context: 'structure_feature' }), {\r\n default: () => ({\r\n type: 'minecraft:jigsaw',\r\n step: 'surface_structures',\r\n size: 6,\r\n })\r\n }));\r\n}\r\nexports.initStructureSchemas = initStructureSchemas;\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 const StructureSet = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/structure_set' } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('structure_set')\r\n }\r\n ], { choiceContext: 'structure_set' });\r\n schemas.register('structure_set', (0, core_1.ObjectNode)({\r\n structures: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n structure: (0, Common_1.Tag)({ resource: '$worldgen/structure' }),\r\n weight: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_placement' } }),\r\n salt: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n frequency_reduction_method: (0, core_1.Opt)(StringNode({ enum: ['default', 'legacy_type_1', 'legacy_type_2', 'legacy_type_3'] })),\r\n frequency: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n exclusion_zone: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n other_set: StructureSet,\r\n chunk_count: (0, core_1.NumberNode)({ integer: true, min: 1, max: 16 })\r\n })),\r\n locate_offset: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.NumberNode)({ integer: true, min: -16, max: 16 }), { minLength: 3, maxLength: 3 })),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:concentric_rings': {\r\n distance: (0, core_1.NumberNode)({ integer: true, min: 0, max: 1023 }),\r\n spread: (0, core_1.NumberNode)({ integer: true, min: 0, max: 1023 }),\r\n count: (0, core_1.NumberNode)({ integer: true, min: 1, max: 4095 }),\r\n preferred_biomes: (0, Common_1.Tag)({ resource: '$worldgen/biome' })\r\n },\r\n 'minecraft:random_spread': {\r\n spread_type: (0, core_1.Opt)(StringNode({ enum: ['linear', 'triangular'] })),\r\n spacing: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4096 }),\r\n separation: (0, core_1.Mod)((0, 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 }\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', (0, core_1.Mod)((0, 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: (0, 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', (0, core_1.Mod)((0, 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: (0, 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: (0, core_1.NumberNode)(),\r\n max_threshold: (0, 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: (0, core_1.NumberNode)({ integer: true }),\r\n surface_type: StringNode({ enum: 'cave_surface' }),\r\n add_surface_depth: (0, core_1.BooleanNode)(),\r\n secondary_depth_range: (0, 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: (0, core_1.NumberNode)({ integer: true }),\r\n surface_depth_multiplier: (0, core_1.NumberNode)({ integer: true, min: -20, max: 20 }),\r\n add_stone_depth: (0, core_1.BooleanNode)()\r\n },\r\n 'minecraft:y_above': {\r\n anchor: Reference('vertical_anchor'),\r\n surface_depth_multiplier: (0, core_1.NumberNode)({ integer: true, min: -20, max: 20 }),\r\n add_stone_depth: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n name: StringNode(),\r\n fallback: StringNode(),\r\n elements: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n weight: (0, 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', (0, core_1.Mod)((0, 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: (0, 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.initWorldPresetSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initWorldPresetSchemas(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('world_preset', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n dimensions: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: '$dimension', isDefinition: true } }), Reference('dimension'))\r\n }, { context: 'world_preset' }), {\r\n default: () => ({\r\n dimensions: {\r\n 'minecraft:overworld': {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\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 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 biome_source: {\r\n type: 'minecraft:the_end',\r\n },\r\n settings: 'minecraft:end',\r\n },\r\n },\r\n }\r\n })\r\n }));\r\n schemas.register('flat_level_generator_preset', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n display: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n settings: Reference('flat_generator_settings'),\r\n }), {\r\n default: () => ({\r\n display: 'minecraft:grass_block',\r\n settings: {\r\n lakes: false,\r\n features: false,\r\n biome: 'minecraft:plains',\r\n structure_overrides: [],\r\n layers: [\r\n {\r\n height: 3,\r\n block: 'minecraft:dirt'\r\n },\r\n {\r\n height: 1,\r\n block: 'minecraft:grass_block'\r\n }\r\n ]\r\n }\r\n })\r\n }));\r\n}\r\nexports.initWorldPresetSchemas = initWorldPresetSchemas;\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 Structure_1 = require(\"./Structure\");\r\nconst StructureSet_1 = require(\"./StructureSet\");\r\nconst SurfaceRule_1 = require(\"./SurfaceRule\");\r\nconst TemplatePool_1 = require(\"./TemplatePool\");\r\nconst WorldPreset_1 = require(\"./WorldPreset\");\r\nfunction initWorldgenSchemas(schemas, collections) {\r\n // `ProcessorList.ts`, `DensityFunction.ts`, and `Biome.ts` have exports. They should be initialized first. \r\n (0, ProcessorList_1.initProcessorListSchemas)(schemas, collections);\r\n (0, DensityFunction_1.initDensityFunctionSchemas)(schemas, collections);\r\n (0, Biome_1.initBiomeSchemas)(schemas, collections);\r\n (0, Carver_1.initCarverSchemas)(schemas, collections);\r\n (0, Decorator_1.initDecoratorSchemas)(schemas, collections);\r\n (0, Feature_1.initFeatureSchemas)(schemas, collections);\r\n (0, NoiseSettings_1.initNoiseSettingsSchemas)(schemas, collections);\r\n (0, Structure_1.initStructureSchemas)(schemas, collections);\r\n (0, StructureSet_1.initStructureSetSchemas)(schemas, collections);\r\n (0, SurfaceRule_1.initSurfaceRuleSchemas)(schemas, collections);\r\n (0, TemplatePool_1.initTemplatePoolSchemas)(schemas, collections);\r\n (0, WorldPreset_1.initWorldPresetSchemas)(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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n generate_features: (0, core_1.BooleanNode)(),\r\n bonus_chest: (0, core_1.BooleanNode)(),\r\n seed: (0, core_1.NumberNode)({ integer: true }),\r\n dimensions: (0, 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 (0, Common_1.initCommonSchemas)(schemas, collections);\r\n (0, Advancement_1.initAdvancementSchemas)(schemas, collections);\r\n (0, assets_1.initAssetsSchemas)(schemas, collections);\r\n (0, Condition_1.initConditionSchemas)(schemas, collections);\r\n (0, DimensionType_1.initDimensionTypeSchemas)(schemas, collections);\r\n (0, Dimension_1.initDimensionSchemas)(schemas, collections);\r\n (0, ItemModifier_1.initItemModifierSchemas)(schemas, collections);\r\n (0, LootTable_1.initLootTableSchemas)(schemas, collections);\r\n (0, PackMcmeta_1.initPackMcmetaSchemas)(schemas, collections);\r\n (0, Predicates_1.initPredicatesSchemas)(schemas, collections);\r\n (0, Recipe_1.initRecipeSchemas)(schemas, collections);\r\n (0, Tags_1.initTagsSchemas)(schemas, collections);\r\n (0, TextComponent_1.initTextComponentSchemas)(schemas, collections);\r\n (0, worldgen_1.initWorldgenSchemas)(schemas, collections);\r\n (0, 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 var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\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.prototype.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 = exports.lootContext = 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 (0, 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 (0, schemas_1.initSchemas)(schemas, collections);\r\n return schemas;\r\n}\r\nexports.getSchemas = getSchemas;\r\n","// Copyright (c) 2013 Pieroxy <pieroxy@pieroxy.net>\n// This work is free. You can redistribute it and/or modify it\n// under the terms of the WTFPL, Version 2\n// For more information see LICENSE.txt or http://www.wtfpl.net/\n//\n// For more information, the home page:\n// http://pieroxy.net/blog/pages/lz-string/testing.html\n//\n// LZ-based compression algorithm, version 1.4.4\nvar LZString = (function() {\n\n// private property\nvar f = String.fromCharCode;\nvar keyStrBase64 = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\nvar keyStrUriSafe = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$\";\nvar baseReverseDic = {};\n\nfunction getBaseValue(alphabet, character) {\n if (!baseReverseDic[alphabet]) {\n baseReverseDic[alphabet] = {};\n for (var i=0 ; i<alphabet.length ; i++) {\n baseReverseDic[alphabet][alphabet.charAt(i)] = i;\n }\n }\n return baseReverseDic[alphabet][character];\n}\n\nvar LZString = {\n compressToBase64 : function (input) {\n if (input == null) return \"\";\n var res = LZString._compress(input, 6, function(a){return keyStrBase64.charAt(a);});\n switch (res.length % 4) { // To produce valid Base64\n default: // When could this happen ?\n case 0 : return res;\n case 1 : return res+\"===\";\n case 2 : return res+\"==\";\n case 3 : return res+\"=\";\n }\n },\n\n decompressFromBase64 : function (input) {\n if (input == null) return \"\";\n if (input == \"\") return null;\n return LZString._decompress(input.length, 32, function(index) { return getBaseValue(keyStrBase64, input.charAt(index)); });\n },\n\n compressToUTF16 : function (input) {\n if (input == null) return \"\";\n return LZString._compress(input, 15, function(a){return f(a+32);}) + \" \";\n },\n\n decompressFromUTF16: function (compressed) {\n if (compressed == null) return \"\";\n if (compressed == \"\") return null;\n return LZString._decompress(compressed.length, 16384, function(index) { return compressed.charCodeAt(index) - 32; });\n },\n\n //compress into uint8array (UCS-2 big endian format)\n compressToUint8Array: function (uncompressed) {\n var compressed = LZString.compress(uncompressed);\n var buf=new Uint8Array(compressed.length*2); // 2 bytes per character\n\n for (var i=0, TotalLen=compressed.length; i<TotalLen; i++) {\n var current_value = compressed.charCodeAt(i);\n buf[i*2] = current_value >>> 8;\n buf[i*2+1] = current_value % 256;\n }\n return buf;\n },\n\n //decompress from uint8array (UCS-2 big endian format)\n decompressFromUint8Array:function (compressed) {\n if (compressed===null || compressed===undefined){\n return LZString.decompress(compressed);\n } else {\n var buf=new Array(compressed.length/2); // 2 bytes per character\n for (var i=0, TotalLen=buf.length; i<TotalLen; i++) {\n buf[i]=compressed[i*2]*256+compressed[i*2+1];\n }\n\n var result = [];\n buf.forEach(function (c) {\n result.push(f(c));\n });\n return LZString.decompress(result.join(''));\n\n }\n\n },\n\n\n //compress into a string that is already URI encoded\n compressToEncodedURIComponent: function (input) {\n if (input == null) return \"\";\n return LZString._compress(input, 6, function(a){return keyStrUriSafe.charAt(a);});\n },\n\n //decompress from an output of compressToEncodedURIComponent\n decompressFromEncodedURIComponent:function (input) {\n if (input == null) return \"\";\n if (input == \"\") return null;\n input = input.replace(/ /g, \"+\");\n return LZString._decompress(input.length, 32, function(index) { return getBaseValue(keyStrUriSafe, input.charAt(index)); });\n },\n\n compress: function (uncompressed) {\n return LZString._compress(uncompressed, 16, function(a){return f(a);});\n },\n _compress: function (uncompressed, bitsPerChar, getCharFromInt) {\n if (uncompressed == null) return \"\";\n var i, value,\n context_dictionary= {},\n context_dictionaryToCreate= {},\n context_c=\"\",\n context_wc=\"\",\n context_w=\"\",\n context_enlargeIn= 2, // Compensate for the first entry which should not count\n context_dictSize= 3,\n context_numBits= 2,\n context_data=[],\n context_data_val=0,\n context_data_position=0,\n ii;\n\n for (ii = 0; ii < uncompressed.length; ii += 1) {\n context_c = uncompressed.charAt(ii);\n if (!Object.prototype.hasOwnProperty.call(context_dictionary,context_c)) {\n context_dictionary[context_c] = context_dictSize++;\n context_dictionaryToCreate[context_c] = true;\n }\n\n context_wc = context_w + context_c;\n if (Object.prototype.hasOwnProperty.call(context_dictionary,context_wc)) {\n context_w = context_wc;\n } else {\n if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate,context_w)) {\n if (context_w.charCodeAt(0)<256) {\n for (i=0 ; i<context_numBits ; i++) {\n context_data_val = (context_data_val << 1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n }\n value = context_w.charCodeAt(0);\n for (i=0 ; i<8 ; i++) {\n context_data_val = (context_data_val << 1) | (value&1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = value >> 1;\n }\n } else {\n value = 1;\n for (i=0 ; i<context_numBits ; i++) {\n context_data_val = (context_data_val << 1) | value;\n if (context_data_position ==bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = 0;\n }\n value = context_w.charCodeAt(0);\n for (i=0 ; i<16 ; i++) {\n context_data_val = (context_data_val << 1) | (value&1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = value >> 1;\n }\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n delete context_dictionaryToCreate[context_w];\n } else {\n value = context_dictionary[context_w];\n for (i=0 ; i<context_numBits ; i++) {\n context_data_val = (context_data_val << 1) | (value&1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = value >> 1;\n }\n\n\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n // Add wc to the dictionary.\n context_dictionary[context_wc] = context_dictSize++;\n context_w = String(context_c);\n }\n }\n\n // Output the code for w.\n if (context_w !== \"\") {\n if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate,context_w)) {\n if (context_w.charCodeAt(0)<256) {\n for (i=0 ; i<context_numBits ; i++) {\n context_data_val = (context_data_val << 1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n }\n value = context_w.charCodeAt(0);\n for (i=0 ; i<8 ; i++) {\n context_data_val = (context_data_val << 1) | (value&1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = value >> 1;\n }\n } else {\n value = 1;\n for (i=0 ; i<context_numBits ; i++) {\n context_data_val = (context_data_val << 1) | value;\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = 0;\n }\n value = context_w.charCodeAt(0);\n for (i=0 ; i<16 ; i++) {\n context_data_val = (context_data_val << 1) | (value&1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = value >> 1;\n }\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n delete context_dictionaryToCreate[context_w];\n } else {\n value = context_dictionary[context_w];\n for (i=0 ; i<context_numBits ; i++) {\n context_data_val = (context_data_val << 1) | (value&1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = value >> 1;\n }\n\n\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n }\n\n // Mark the end of the stream\n value = 2;\n for (i=0 ; i<context_numBits ; i++) {\n context_data_val = (context_data_val << 1) | (value&1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = value >> 1;\n }\n\n // Flush the last char\n while (true) {\n context_data_val = (context_data_val << 1);\n if (context_data_position == bitsPerChar-1) {\n context_data.push(getCharFromInt(context_data_val));\n break;\n }\n else context_data_position++;\n }\n return context_data.join('');\n },\n\n decompress: function (compressed) {\n if (compressed == null) return \"\";\n if (compressed == \"\") return null;\n return LZString._decompress(compressed.length, 32768, function(index) { return compressed.charCodeAt(index); });\n },\n\n _decompress: function (length, resetValue, getNextValue) {\n var dictionary = [],\n next,\n enlargeIn = 4,\n dictSize = 4,\n numBits = 3,\n entry = \"\",\n result = [],\n i,\n w,\n bits, resb, maxpower, power,\n c,\n data = {val:getNextValue(0), position:resetValue, index:1};\n\n for (i = 0; i < 3; i += 1) {\n dictionary[i] = i;\n }\n\n bits = 0;\n maxpower = Math.pow(2,2);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n\n switch (next = bits) {\n case 0:\n bits = 0;\n maxpower = Math.pow(2,8);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n c = f(bits);\n break;\n case 1:\n bits = 0;\n maxpower = Math.pow(2,16);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n c = f(bits);\n break;\n case 2:\n return \"\";\n }\n dictionary[3] = c;\n w = c;\n result.push(c);\n while (true) {\n if (data.index > length) {\n return \"\";\n }\n\n bits = 0;\n maxpower = Math.pow(2,numBits);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n\n switch (c = bits) {\n case 0:\n bits = 0;\n maxpower = Math.pow(2,8);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n\n dictionary[dictSize++] = f(bits);\n c = dictSize-1;\n enlargeIn--;\n break;\n case 1:\n bits = 0;\n maxpower = Math.pow(2,16);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n dictionary[dictSize++] = f(bits);\n c = dictSize-1;\n enlargeIn--;\n break;\n case 2:\n return result.join('');\n }\n\n if (enlargeIn == 0) {\n enlargeIn = Math.pow(2, numBits);\n numBits++;\n }\n\n if (dictionary[c]) {\n entry = dictionary[c];\n } else {\n if (c === dictSize) {\n entry = w + w.charAt(0);\n } else {\n return null;\n }\n }\n result.push(entry);\n\n // Add w+entry[0] to the dictionary.\n dictionary[dictSize++] = w + entry.charAt(0);\n enlargeIn--;\n\n w = entry;\n\n if (enlargeIn == 0) {\n enlargeIn = Math.pow(2, numBits);\n numBits++;\n }\n\n }\n }\n};\n return LZString;\n})();\n\nif (typeof define === 'function' && define.amd) {\n define(function () { return LZString; });\n} else if( typeof module !== 'undefined' && module != null ) {\n module.exports = LZString\n}\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<<MAX_BITS)-1,\n // \"inconsistent bit counts\");\n //Tracev((stderr,\"\\ngen_codes: max_code %d \", max_code));\n\n for (n = 0; n <= max_code; n++) {\n let len = tree[n * 2 + 1]/*.Len*/;\n if (len === 0) { continue; }\n /* Now reverse the bits */\n tree[n * 2]/*.Code*/ = bi_reverse(next_code[len]++, len);\n\n //Tracecv(tree != static_ltree, (stderr,\"\\nn %3d %c l %2d c %4x (%x) \",\n // n, (isgraph(n) ? n : ' '), len, tree[n].Code, next_code[len]-1));\n }\n};\n\n\n/* ===========================================================================\n * Initialize the various 'constant' tables.\n */\nconst tr_static_init = () => {\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 <https://feross.org>\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 s,mat4 as r,glMatrix as i}from\"gl-matrix\";var n,o;(o=n||(n={})).UP=\"up\",o.DOWN=\"down\",o.NORTH=\"north\",o.EAST=\"east\",o.SOUTH=\"south\",o.WEST=\"west\";const a={[n.UP]:[0,1,0],[n.DOWN]:[0,-1,0],[n.NORTH]:[0,0,-1],[n.EAST]:[1,0,0],[n.SOUTH]:[0,0,1],[n.WEST]:[-1,0,0]};var l,u;!function(t){t.ALL=[t.UP,t.DOWN,t.NORTH,t.EAST,t.SOUTH,t.WEST],t.normal=function(t){return a[t]}}(n||(n={})),(u=l||(l={})).create=function(t,e,s){return[t,e,s]},u.ZERO=u.create(0,0,0),u.offset=function(t,e,s,r){return[t[0]+e,t[1]+s,t[2]+r]},u.towards=function(t,e){return u.offset(t,...n.normal(e))},u.equals=function(t,e){return t===e||t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]},u.magnitude=function(t){return t[0]*t[0]+t[1]*t[1]+t[2]*t[2]};const h={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},c=[\"end\",\"byte\",\"short\",\"int\",\"long\",\"float\",\"double\",\"byteArray\",\"string\",\"list\",\"compound\",\"intArray\",\"longArray\"];class f{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 s=this.dataView[t](this.offset,this.littleEndian);return this.offset+=e,s}long(){return[this.int(),this.int()]}byteArray(){const t=this.int(),e=[];for(let s=0;s<t;s++)e.push(this.byte());return e}intArray(){const t=this.int(),e=[];for(let s=0;s<t;s++)e.push(this.int());return e}longArray(){const t=this.int(),e=[];for(let s=0;s<t;s++)e.push(this.long());return e}string(){const t=this.short(),e=this.arrayView.slice(this.offset,this.offset+t);return this.offset+=t,function(t){var e,s=[];for(e=0;e<t.length;e++)0==(128&t[e])?s.push(127&t[e]):e+1<t.length&&192==(224&t[e])&&128==(192&t[e+1])?s.push((31&t[e])<<6|63&t[e+1]):e+2<t.length&&224==(240&t[e])&&128==(192&t[e+1])&&128==(192&t[e+2])?s.push((15&t[e])<<12|(63&t[e+1])<<6|63&t[e+2]):e+3<t.length&&240==(248&t[e])&&128==(192&t[e+1])&&128==(192&t[e+2])&&128==(192&t[e+3])&&s.push((7&t[e])<<18|(63&t[e+1])<<12|(63&t[e+2])<<6|63&t[e+3]);return String.fromCharCode.apply(null,s)}(e)}list(){const t=c[this.byte()],e=this.int(),s=[];for(let r=0;r<e;r++)s.push(this[t]());return{type:t,value:s}}compound(){const t={};for(;;){const e=c[this.byte()];if(\"end\"===e)break;const s=this.string(),r=this[e]();t[s]={type:e,value:r}}return t}}class m{constructor(t=!1){this.byte=this.writeNum.bind(this,\"setInt8\",1),this.short=this.writeNum.bind(this,\"setInt16\",2),this.int=this.writeNum.bind(this,\"setInt32\",4),this.float=this.writeNum.bind(this,\"setFloat32\",4),this.double=this.writeNum.bind(this,\"setFloat64\",8),this.offset=0,this.littleEndian=t,this.buffer=new ArrayBuffer(1024),this.arrayView=new Uint8Array(this.buffer),this.dataView=new DataView(this.buffer)}accommodate(t){const e=this.offset+t;if(this.buffer.byteLength>=e)return;let s=this.buffer.byteLength;for(;s<e;)s*=2;const r=new ArrayBuffer(s),i=new Uint8Array(r);i.set(this.arrayView),this.offset>this.buffer.byteLength&&i.fill(0,this.buffer.byteLength,this.offset),this.buffer=r,this.dataView=new DataView(r),this.arrayView=i}getData(){return this.accommodate(0),this.arrayView.slice(0,this.offset)}end(t){}writeNum(t,e,s){this.accommodate(e),this.dataView[t](this.offset,s,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<t.length;e++)this.int(t[e])}longArray(t){this.int(t.length);for(let e=0;e<t.length;e++)this.long(t[e])}string(t){const e=function(t){var e,s,r=[];for(e=0;e<t.length;e++)(s=t.charCodeAt(e))<128?r.push(s):s<2048?(r.push(192|s>>6),r.push(128|63&s)):s<65536?(r.push(224|s>>12),r.push(128|s>>6&63),r.push(128|63&s)):(r.push(240|s>>18&7),r.push(128|s>>12&63),r.push(128|s>>6&63),r.push(128|63&s));return r}(t);this.short(e.length),this.accommodate(e.length),this.arrayView.set(e,this.offset),this.offset+=e.length}list(t){this.byte(h[t.type]),this.int(t.value.length),t.value;for(let e=0;e<t.value.length;e++)this[t.type](t.value[e])}compound(t){for(const e in t)this.byte(h[t[e].type]),this.string(e),this[t[e].type](t[e].value);this.byte(h.end)}}function d(t,e){const s=new f(t,e);if(s.byte()!==h.compound)throw new Error(\"Top tag should be a compound\");return{name:s.string(),value:s.compound()}}function p(e,s){return d(t.inflate(e),s)}function g(t,e){return 2===(s=new Uint8Array(t.slice(0,2))).length&&31===s[0]&&139===s[1]?{compressed:!0,result:p(t,e)}:{compressed:!1,result:d(t,e)};var s}function v(t){const e=[];for(let s=0;s<32;s+=1)for(let r=0;r<32;r+=1){const i=4*((31&s)+32*(31&r));if(0===t[i+3])continue;const n=(t[i]<<16)+(t[i+1]<<8)+t[i+2],o=(t[i+4096]<<24)+(t[i+4097]<<16)+(t[i+4098]<<8)+t[i+4099],a=4096*n,l=(t[a]<<24)+(t[a+1]<<16)+(t[a+2]<<8)+t[a+3],u=t[a+4],h=t.slice(a+5,a+4+l);e.push({x:s,z:r,timestamp:o,compression:u,data:h})}return e}function w(t,e,s){const r=y(t,e,s);switch(r.compression){case 1:case 2:r.nbt=p(r.data);break;case 3:r.nbt=d(r.data);break;default:throw new Error(`Invalid compression mode ${r.compression}`)}return r}function b(t,e){const s=new m(e);return s.byte(h.compound),s.string(t.name),s.compound(t.value),s.getData()}function x(e,s,r){const i=b(e,s);return t[r?\"deflate\":\"gzip\"](i)}function S(t,e,s){return e?x(t,s):b(t,s)}function _(t){let e=0;for(const s of t)e+=Math.ceil(s.data.length/4096);const s=new Uint8Array(8192+4096*e),r=new DataView(s.buffer);let i=2;for(const e of t){const t=4*((31&e.x)+32*(31&e.z)),n=Math.ceil(e.data.length/4096);r.setInt8(t,i>>16),r.setInt16(t+1,65535&i),r.setInt8(t+3,n),r.setInt32(t+4096,e.timestamp);const o=4096*i;r.setInt32(o,e.data.length+1),r.setInt8(o+4,e.compression),s.set(e.data,o+5),i+=n}return s}function A(t,e,s,r){const i=y(t,e,s);switch(i.compression){case 1:i.data=x(r);break;case 2:i.data=x(r,!1,!0);break;case 3:i.data=b(r);break;default:throw new Error(`Invalid compression mode ${i.compression}`)}return i}function y(t,e,s){const r=t.find((t=>t.x===e&&t.z===s));if(void 0===r)throw new Error(`Cannot find chunk [${e}, ${s}]`);return r}function E(t,e,s){if(!t[e])throw new Error(`Missing ${e} tag`);if(t[e].type!==s)throw new Error(`Expected ${e} to be of type ${s}, but found ${t[e].type}`);return t[e].value}function I(t,e,s,r){const i=E(t,e,\"list\");if(i.type!==s)throw new Error(`Expected ${e} to be a list of ${s}s, but found ${i.type}s`);if(r&&i.value.length!==r)throw new Error(`Expected ${e} to be a list of length ${r}, but found length ${i.value.length}`);return i.value}function N(t,e){try{return t()}catch(t){return e}}var B;function R(t){let e=null;return()=>(null==e&&(e=t()),e)}function T(t,e,s){const r=t.get(e);if(r)return r;const i=s(e);return t.set(e,i),i}!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,s){var r;const i=null!=(r=e(t))?r:{};return Object.fromEntries(Object.entries(i).map((([t,e])=>[t,s(e)])))},t.compose=function(t,e,s){const r=e(t);return r?s(r):void 0},t.readEnum=function(t,e){return\"string\"!=typeof t?e[0]:e.includes(t)?t:e[0]}}(B||(B={}));const M=class{constructor(t,e){if(this.namespace=t,this.path=e,!t.match(/^[a-z0-9._-]+$/))throw new Error(`Non [a-z0-9._-] character in namespace of ${t}:${e}`);if(!e.match(/^[a-z0-9/._-]+$/))throw new Error(`Non [a-z0-9/._-] character in path of ${t}:${e}`)}equals(t){return this===t||this.namespace===t.namespace&&this.path===t.path}toString(){return`${this.namespace}:${this.path}`}static create(t){return new M(this.DEFAULT_NAMESPACE,t)}static parse(t){const e=t.indexOf(this.SEPARATOR);if(e>=0){const s=e>=1?t.substring(0,e):this.DEFAULT_NAMESPACE,r=t.substring(e+1);return new M(s,r)}return new M(this.DEFAULT_NAMESPACE,t)}};let C=M;C.DEFAULT_NAMESPACE=\"minecraft\",C.SEPARATOR=\":\";var O=Object.defineProperty,k=Object.defineProperties,P=Object.getOwnPropertyDescriptors,L=Object.getOwnPropertySymbols,F=Object.prototype.hasOwnProperty,V=Object.prototype.propertyIsEnumerable,D=(t,e,s)=>e in t?O(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s;const U=class{constructor(t,e={}){this.properties=e,this.name=\"string\"==typeof t?C.parse(t):t}getName(){return this.name}getProperties(){return this.properties}getProperty(t){return this.properties[t]}isFluid(){return this.is(U.WATER)||this.is(U.LAVA)}equals(t){return!!this.name.equals(t.name)&&Object.keys(this.properties).every((e=>t.properties[e]===this.properties[e]))}is(t){return this.name.equals(t.name)}toString(){return 0===Object.keys(this.properties).length?this.name.toString():`${this.name.toString()}[${Object.entries(this.properties).map((([t,e])=>t+\"=\"+e)).join(\",\")}]`}static fromNbt(t){const e=C.parse(E(t.value,\"Name\",\"string\")),s=N((()=>E(t.value,\"Properties\",\"compound\")),{}),r=Object.keys(s).reduce(((t,e)=>{return r=((t,e)=>{for(var s in e||(e={}))F.call(e,s)&&D(t,s,e[s]);if(L)for(var s of L(e))V.call(e,s)&&D(t,s,e[s]);return t})({},t),i={[e]:E(s,e,\"string\")},k(r,P(i));var r,i}),{});return new U(e,r)}static fromJson(t){var e,s;const r=null!=(e=B.readObject(t))?e:{},i=C.parse(null!=(s=B.readString(r.Name))?s:U.STONE.name.toString()),n=B.readMap(r.Properties,(t=>{var e;return null!=(e=B.readString(t))?e:\"\"}));return new U(i,n)}};let G=U;G.AIR=new U(C.create(\"air\")),G.STONE=new U(C.create(\"stone\")),G.WATER=new U(C.create(\"water\"),{level:\"0\"}),G.LAVA=new U(C.create(\"lava\"),{level:\"0\"});const z=class{constructor(t){this.minY=t,this.storage=Array(z.SIZE).fill(0),this.palette=[G.AIR]}get minBlockY(){return this.minY<<4}index(t,e,s){return(t<<8)+(e<<4)+s}getBlockState(t,e,s){var r;const i=this.storage[this.index(t,e,s)];return null!=(r=this.palette[i])?r:G.AIR}setBlockState(t,e,s,r){let i=this.palette.findIndex((t=>t.equals(r)));-1===i&&(i=this.palette.length,this.palette.push(r)),this.storage[this.index(t,e,s)]=i}};let Y=z;Y.WIDTH=16,Y.SIZE=z.WIDTH*z.WIDTH*z.WIDTH;class H{constructor(t,e,s){this.minY=t,this.height=e,this.pos=s,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[s,r,i]=t,n=this.sections[this.getSectionIndex(r)];return null!=(e=null==n?void 0:n.getBlockState(15&s,15&r,15&i))?e:G.AIR}setBlockState(t,e){const[s,r,i]=t,n=this.getSectionIndex(r);let o=this.sections[n];if(null===o){if(e.equals(G.AIR))return;o=this.getOrCreateSection(n)}o.setBlockState(15&s,15&r,15&i,e)}getOrCreateSection(t){return null==this.sections[t]&&(this.sections[t]=new Y(this.minSection+t)),this.sections[t]}}var X,j;!function(t){function e(t,e){return BigInt(4294967295&t)|BigInt(4294967295&e)<<BigInt(32)}t.create=function(t,e){return[t,e]},t.fromBlockPos=function(t){return[t[0]>>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)}}(X||(X={})),function(t){function e(t){return{value:()=>t,key:()=>{}}}function s(t,e){return{value:()=>t.getOrThrow(e),key:()=>e}}t.parser=function(t,r){return i=>\"string\"==typeof i?s(t,C.parse(i)):e(r(i))},t.direct=e,t.reference=s}(j||(j={}));const Z=class{constructor(t,e){this.key=t,this.parser=e,this.storage=new Map,this.builtin=new Map}register(t,e,s){return this.storage.set(t.toString(),e),s&&this.builtin.set(t.toString(),e),j.reference(this,t)}keys(){return[...this.storage.keys()].map((t=>C.parse(t)))}get(t){return this.storage.get(t.toString())}getOrThrow(t){const e=this.storage.get(t.toString());if(void 0===e)throw new Error(`Missing key in ${this.key.toString()}: ${t.toString()}`);return e}parse(t){if(!this.parser)throw new Error(`No parser exists for ${this.key.toString()}`);return this.parser(t)}clear(){this.storage.clear();for(const[t,e]of this.builtin.entries())this.storage.set(t,e);return this}assign(t){if(!this.key.equals(t.key))throw new Error(`Cannot assign registry of type ${t.key.toString()} to registry of type ${this.key.toString()}`);for(const e of t.keys())this.storage.set(e.toString(),t.getOrThrow(e));return this}cloneEmpty(){return new Z(this.key,this.parser)}};let q=Z;q.REGISTRY=new Z(C.create(\"root\"));class J{constructor(t,e=[],s=[]){this.size=t,this.palette=e,this.blocks=s,this.blocksMap=[],s.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,s,r){if(!this.isInside(t))throw new Error(`Cannot add block at ${t} outside the structure bounds ${this.size}`);const i=new G(e,s);let n=this.palette.findIndex((t=>t.equals(i)));return-1===n&&(n=this.palette.length,this.palette.push(i)),this.blocks.push({pos:t,state:n,nbt:r}),this.blocksMap[t[0]*this.size[1]*this.size[2]+t[1]*this.size[2]+t[2]]={pos:t,state:n,nbt:r},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]<this.size[0]&&t[1]>=0&&t[1]<this.size[1]&&t[2]>=0&&t[2]<this.size[2]}static fromNbt(t){const e=I(t.value,\"size\",\"int\",3),s=I(t.value,\"palette\",\"compound\").map((t=>G.fromNbt({name:\"\",value:t}))),r=I(t.value,\"blocks\",\"compound\").map((t=>({pos:I(t,\"pos\",\"int\",3),state:E(t,\"state\",\"int\"),nbt:N((()=>E(t,\"nbt\",\"compound\")),void 0)})));return new J(e,s,r)}}function W(t){return t*t}function $(t,e,s){return Math.max(e,Math.min(s,t))}function K(t,e,s){return e+t*(s-e)}function Q(t,e,s,r,i,n){return K(e,K(t,s,r),K(t,i,n))}function tt(t,e,s,r,i,n,o,a,l,u,h){return K(s,Q(t,e,r,i,n,o),Q(t,e,a,l,u,h))}function et(t,e,s){return 0===t?e():1===t?s():e()+t*(s()-e())}function st(t,e,s,r,i,n){return et(e,(()=>et(t,s,r)),(()=>et(t,i,n)))}function rt(t,e,s,r,i,n,o,a,l,u,h){return et(s,(()=>st(t,e,r,i,n,o)),(()=>st(t,e,a,l,u,h)))}function it(t,e,s){return s<0?t:s>1?e:K(s,t,e)}function nt(t,e,s){return(t-e)/(s-e)}function ot(t){return t*t*t*(t*(6*t-15)+10)}function at(t,e,s,r,i){return K(nt(t,e,s),r,i)}function lt(t,e,s,r,i){return it(r,i,nt(t,e,s))}function ut(t,e,s){let r=e-t;for(;r>0;){const e=Math.floor(r/2),i=t+e;s(i)?r=e:(t=i+1,r-=e+1)}return t}function ht(t,e,s){let r=BigInt(3129871*t)^BigInt(s)*BigInt(116129781)^BigInt(e);return r=r*r*BigInt(42317861)+r*BigInt(11),r>>BigInt(16)}function ct(t,e,s,r,i,n,o,a){return BigInt(t)<<BigInt(56)|BigInt(e)<<BigInt(48)|BigInt(s)<<BigInt(40)|BigInt(r)<<BigInt(32)|BigInt(i)<<BigInt(24)|BigInt(n)<<BigInt(16)|BigInt(o)<<BigInt(8)|BigInt(a)}var ft;!function(t){t.fromJson=function t(r,i){var n,o,a,l;if(\"number\"==typeof r)return new e(r);const u=null!=(n=B.readObject(r))?n:{},h=new s(i(u.coordinate)),c=null!=(o=B.readArray(u.points,(t=>{var e;return null!=(e=B.readObject(t))?e:{}})))?o:[];if(0===c.length)return new e(0);for(const e of c){const s=null!=(a=B.readNumber(e.location))?a:0,r=t(e.value,i),n=null!=(l=B.readNumber(e.derivative))?l:0;h.addPoint(s,r,n)}return h};class e{constructor(t){this.value=t}compute(){return this.value}min(){return this.value}max(){return this.value}mapAll(){return this}}t.Constant=e;class s{constructor(t,e=[],s=[],r=[]){this.coordinate=t,this.locations=e,this.values=s,this.derivatives=r}compute(t){const e=this.coordinate.compute(t),s=ut(0,this.locations.length,(t=>e<this.locations[t]))-1,r=this.locations.length-1;if(s<0)return this.values[0].compute(t)+this.derivatives[0]*(e-this.locations[0]);if(s===r)return this.values[r].compute(t)+this.derivatives[r]*(e-this.locations[r]);const i=this.locations[s],n=this.locations[s+1],o=this.derivatives[s],a=this.derivatives[s+1],l=(e-i)/(n-i),u=this.values[s].compute(t),h=this.values[s+1].compute(t),c=o*(n-i)-(h-u),f=-a*(n-i)+(h-u);return K(l,u,h)+l*(1-l)*K(l,c,f)}min(){return Math.min(...this.values.map((t=>t.min())))}max(){return Math.max(...this.values.map((t=>t.max())))}mapAll(t){return new s(t(this.coordinate),this.locations,this.values.map((e=>e.mapAll(t))),this.derivatives)}addPoint(e,s,r=0){return this.locations.push(e),this.values.push(\"number\"==typeof s?new t.Constant(s):s),this.derivatives.push(r),this}}t.MultiPoint=s}(ft||(ft={}));const mt=class{constructor(t){this.seed=BigInt(0),this.setSeed(t)}fork(){return new mt(this.nextLong())}forkPositional(){return new pt(this.nextLong())}setSeed(t){this.seed=t^mt.MULTIPLIER&mt.MODULUS_MASK}advance(){this.seed=this.seed*mt.MULTIPLIER+mt.INCREMENT&mt.MODULUS_MASK}consume(t){for(let e=0;e<t;e+=1)this.advance()}next(t){this.advance();const e=Number(this.seed>>BigInt(mt.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,s;for(;(e=this.next(31))-(s=e%t)+(t-1)<0;);return s}nextLong(){return(BigInt(this.next(32))<<BigInt(32))+BigInt(this.next(32))}nextFloat(){return this.next(24)*mt.FLOAT_MULTIPLIER}nextDouble(){const t=this.next(30);return this.advance(),t*mt.DOUBLE_MULTIPLIER}};let dt=mt;dt.MODULUS_BITS=48,dt.MODULUS_MASK=BigInt(\"281474976710655\"),dt.MULTIPLIER=BigInt(\"25214903917\"),dt.INCREMENT=BigInt(\"11\"),dt.FLOAT_MULTIPLIER=1/Math.pow(2,24),dt.DOUBLE_MULTIPLIER=1/Math.pow(2,30);class pt{constructor(t){this.seed=t}at(t,e,s){const r=ht(t,e,s);return new dt(r^this.seed)}fromHashOf(t){const s=e(t,{asBytes:!0}),r=ct(s[0],s[1],s[2],s[3],s[4],s[5],s[6],s[7]);return new dt(r^this.seed)}seedKey(){return[this.seed,BigInt(0)]}}const gt=class{constructor(t){this.seed=[BigInt(0),BigInt(0)],this.seed=t}static create(t){return new gt(gt.upgradeSeedTo128bit(t))}static mixStafford13(t){return((t=((t=(t^t>>gt.BIGINT_30)*gt.STAFFORD_1>.MAX_ULONG)^t>>gt.BIGINT_27)*gt.STAFFORD_2>.MAX_ULONG)^t>>gt.BIGINT_31)>.MAX_ULONG}static upgradeSeedTo128bit(t){t<0&&(t+=gt.POW2_60);const e=t^gt.SILVER_RATIO_64,s=e+gt.GOLDEN_RATIO_64>.MAX_ULONG;return[gt.mixStafford13(e),gt.mixStafford13(s)]}static rotateLeft(t,e){return t<<e>.MAX_ULONG|t>>gt.BIGINT_64-e}setSeed(t){this.seed=gt.upgradeSeedTo128bit(t)}fork(){return new gt([this.next(),this.next()])}forkPositional(){return new wt(this.next(),this.next())}next(){const t=this.seed[0];let e=this.seed[1];const s=gt.rotateLeft(t+e>.MAX_ULONG,gt.BIGINT_17)+t>.MAX_ULONG;return e^=t,this.seed=[gt.rotateLeft(t,gt.BIGINT_49)^e^e<<gt.BIGINT_21>.MAX_ULONG,gt.rotateLeft(e,gt.BIGINT_28)],s}nextLong(){let t=this.next();return t>gt.POW2_63&&(t-=gt.POW2_60),t}consume(t){let e=this.seed[0],s=this.seed[1];for(let r=0;r<t;r+=1)s^=e,e=gt.rotateLeft(e,gt.BIGINT_49)^s^s<<gt.BIGINT_21,s=gt.rotateLeft(s,gt.BIGINT_28);this.seed=[e,s]}nextBits(t){return this.next()>>BigInt(64-t)}nextInt(t){let e=this.next()>.MAX_UINT;if(t){const s=BigInt(t);let r=e*s,i=r>.MAX_UINT;if(i<s){const t=((~s>.MAX_UINT)+gt.BIGINT_1)%s;for(;i<t;)e=this.next()>.MAX_UINT,r=e*s,i=r>.MAX_UINT}const n=r>>gt.BIGINT_32;return Number(n)}{let t=Number(e);return t>=2147483648&&(t-=4294967296),t}}nextFloat(){return Number(this.nextBits(24))*gt.FLOAT_MULTIPLIER}nextDouble(){return Number(this.nextBits(53))*gt.DOUBLE_MULTIPLIER}parityConfigString(){return\"seedLo: \"+this.seed[0]+\", seedHi: \"+this.seed[1]}};let vt=gt;vt.SILVER_RATIO_64=BigInt(\"7640891576956012809\"),vt.GOLDEN_RATIO_64=BigInt(\"-7046029254386353131\"),vt.FLOAT_MULTIPLIER=1/Math.pow(2,24),vt.DOUBLE_MULTIPLIER=11102230246251565e-32,vt.BIGINT_1=BigInt(1),vt.BIGINT_17=BigInt(17),vt.BIGINT_21=BigInt(21),vt.BIGINT_27=BigInt(27),vt.BIGINT_28=BigInt(28),vt.BIGINT_30=BigInt(30),vt.BIGINT_31=BigInt(31),vt.BIGINT_32=BigInt(32),vt.BIGINT_49=BigInt(49),vt.BIGINT_64=BigInt(64),vt.STAFFORD_1=BigInt(\"-4658895280553007687\"),vt.STAFFORD_2=BigInt(\"-7723592293110705685\"),vt.MAX_ULONG=BigInt(\"0xFFFFFFFFFFFFFFFF\"),vt.POW2_60=BigInt(\"0x10000000000000000\"),vt.POW2_63=BigInt(\"0x8000000000000000\"),vt.MAX_UINT=BigInt(4294967295);class wt{constructor(t,e){this.seedLo=t,this.seedHi=e}at(t,e,s){const r=ht(t,e,s)^this.seedLo;return new vt([r,this.seedHi])}fromHashOf(t){const s=e(t,{asBytes:!0}),r=ct(s[0],s[1],s[2],s[3],s[4],s[5],s[6],s[7]),i=ct(s[8],s[9],s[10],s[11],s[12],s[13],s[14],s[15]);return new vt([r^this.seedLo,i^this.seedHi])}seedKey(){return[this.seedLo,this.seedHi]}}const bt=class{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 s=t.nextInt(256-e),r=this.p[e];this.p[e]=this.p[e+s],this.p[e+s]=r}}sample2D(t,e){let s,r,i;const n=(t+e)*bt.F2,o=Math.floor(t+n),a=t-(o-(s=(o+(r=Math.floor(e+n)))*bt.G2));let l,u;a>(i=e-(r-s))?(l=1,u=0):(l=0,u=1);const h=a-l+bt.G2,c=i-u+bt.G2,f=a-1+2*bt.G2,m=i-1+2*bt.G2,d=255&o,p=255&r,g=this.P(d+this.P(p))%12,v=this.P(d+l+this.P(p+u))%12,w=this.P(d+1+this.P(p+1))%12;return 70*(this.getCornerNoise3D(g,a,i,0,.5)+this.getCornerNoise3D(v,h,c,0,.5)+this.getCornerNoise3D(w,f,m,0,.5))}sample(t,e,s){const r=.3333333333333333*(t+e+s),i=Math.floor(t+r),n=Math.floor(e+r),o=Math.floor(s+r),a=.16666666666666666*(i+n+o),l=t-(i-a),u=e-(n-a),h=s-(o-a);let c,f,m,d,p,g;l>=u?u>=h?(c=1,f=0,m=0,d=1,p=1,g=0):l>=h?(c=1,f=0,m=0,d=1,p=0,g=1):(c=0,f=0,m=1,d=1,p=0,g=1):u<h?(c=0,f=0,m=1,d=0,p=1,g=1):l<h?(c=0,f=1,m=0,d=0,p=1,g=1):(c=0,f=1,m=0,d=1,p=1,g=0);const v=l-c+.16666666666666666,w=u-f+.16666666666666666,b=h-m+.16666666666666666,x=l-d+.3333333333333333,S=u-p+.3333333333333333,_=h-g+.3333333333333333,A=l-.5,y=u-.5,E=h-.5,I=255&i,N=255&n,B=255&o,R=this.P(I+this.P(N+this.P(B)))%12,T=this.P(I+c+this.P(N+f+this.P(B+m)))%12,M=this.P(I+d+this.P(N+p+this.P(B+g)))%12,C=this.P(I+1+this.P(N+1+this.P(B+1)))%12;return 32*(this.getCornerNoise3D(R,l,u,h,.6)+this.getCornerNoise3D(T,v,w,b,.6)+this.getCornerNoise3D(M,x,S,_,.6)+this.getCornerNoise3D(C,A,y,E,.6))}P(t){return this.p[255&t]}getCornerNoise3D(t,e,s,r,i){let n,o=i-e*e-s*s-r*r;return o<0?n=0:(o*=o,n=o*o*bt.gradDot(t,e,s,r)),n}static gradDot(t,e,s,r){const i=bt.GRADIENT[15&t];return i[0]*e+i[1]*s+i[2]*r}};let xt=bt;xt.GRADIENT=[[1,1,0],[-1,1,0],[1,-1,0],[-1,-1,0],[1,0,1],[-1,0,1],[1,0,-1],[-1,0,-1],[0,1,1],[0,-1,1],[0,1,-1],[0,-1,-1],[1,1,0],[0,-1,1],[-1,1,0],[0,-1,-1]],xt.F2=.5*(Math.sqrt(3)-1),xt.G2=(3-Math.sqrt(3))/6;class St{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>127?t-256:t;for(let e=0;e<256;e+=1){const s=t.nextInt(256-e),r=this.p[e];this.p[e]=this.p[e+s],this.p[e+s]=r}}sample(t,e,s,r=0,i=0){const n=t+this.xo,o=e+this.yo,a=s+this.zo,l=Math.floor(n),u=Math.floor(o),h=Math.floor(a),c=n-l,f=o-u,m=a-h;let d=0;if(0!==r){const t=i>=0&&i<f?i:f;d=Math.floor(t/r+1e-7)*r}return this.sampleAndLerp(l,u,h,c,f-d,m,f)}sampleAndLerp(t,e,s,r,i,n,o){const a=this.P(t),l=this.P(t+1),u=this.P(a+e),h=this.P(a+e+1),c=this.P(l+e),f=this.P(l+e+1),m=xt.gradDot(this.P(u+s),r,i,n),d=xt.gradDot(this.P(c+s),r-1,i,n),p=xt.gradDot(this.P(h+s),r,i-1,n),g=xt.gradDot(this.P(f+s),r-1,i-1,n),v=xt.gradDot(this.P(u+s+1),r,i,n-1),w=xt.gradDot(this.P(c+s+1),r-1,i,n-1),b=xt.gradDot(this.P(h+s+1),r,i-1,n-1),x=xt.gradDot(this.P(f+s+1),r-1,i-1,n-1);return tt(ot(r),ot(o),ot(n),m,d,p,g,v,w,b,x)}P(t){return 255&this.p[255&t]}}class _t{constructor(t,e,s){if(t instanceof vt){const r=t.forkPositional();this.noiseLevels=Array(s.length);for(let t=0;t<s.length;t++)if(0!==s[t]){const s=e+t;this.noiseLevels[t]=new St(r.fromHashOf(\"octave_\"+s))}}else{if(1-e<s.length)throw new Error(\"Positive octaves are not allowed when using LegacyRandom\");this.noiseLevels=Array(s.length);for(let r=-e;r>=0;r-=1)r<s.length&&0!==s[r]?this.noiseLevels[r]=new St(t):t.consume(262)}this.amplitudes=s,this.lowestFreqInputFactor=Math.pow(2,e),this.lowestFreqValueFactor=Math.pow(2,s.length-1)/(Math.pow(2,s.length)-1),this.maxValue=this.edgeValue(2)}sample(t,e,s,r=0,i=0,n=!1){let o=0,a=this.lowestFreqInputFactor,l=this.lowestFreqValueFactor;for(let u=0;u<this.noiseLevels.length;u+=1){const h=this.noiseLevels[u];h&&(o+=this.amplitudes[u]*l*h.sample(_t.wrap(t*a),n?-h.yo:_t.wrap(e*a),_t.wrap(s*a),r*a,i*a)),a*=2,l/=2}return o}getOctaveNoise(t){return this.noiseLevels[this.noiseLevels.length-1-t]}edgeValue(t){let e=0,s=this.lowestFreqValueFactor;for(let r=0;r<this.noiseLevels.length;r+=1)this.noiseLevels[r]&&(e+=this.amplitudes[r]*t*s),s/=2;return e}static wrap(t){return t-33554432*Math.floor(t/33554432+.5)}}class At{constructor(t,e,s,r){this.cellWidth=s,this.cellHeight=r,this.minLimitNoise=new _t(t,-15,[1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0]),this.maxLimitNoise=new _t(t,-15,[1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0]),this.mainNoise=new _t(t,-7,[1,1,1,1,1,0,0,0]),this.xzScale=684.412*e.xzScale,this.yScale=684.412*e.yScale,this.xzMainScale=this.xzScale/e.xzFactor,this.yMainScale=this.yScale/e.yFactor,this.maxValue=this.minLimitNoise.edgeValue(this.yScale+2)}sample(t,e,s){let r;t=Math.floor(t/this.cellWidth),e=Math.floor(e/this.cellHeight),s=Math.floor(s/this.cellWidth);let i=0,n=1;for(let o=0;o<8;o+=1){if(r=this.mainNoise.getOctaveNoise(o),r){const o=this.xzMainScale*n,a=this.yMainScale*n,l=_t.wrap(t*o),u=_t.wrap(e*a),h=_t.wrap(s*o);i+=r.sample(l,u,h,a,e*a)/n}n/=2}i=(i/10+1)/2,n=1;let o=0,a=0;for(let l=0;l<16;l+=1){const u=this.xzScale*n,h=this.yScale*n,c=_t.wrap(t*u),f=_t.wrap(e*h),m=_t.wrap(s*u);i<1&&(r=this.minLimitNoise.getOctaveNoise(l))&&(o+=r.sample(c,f,m,h,e*h)/n),i>0&&(r=this.maxLimitNoise.getOctaveNoise(l))&&(a+=r.sample(c,f,m,h,e*h)/n),n/=2}return it(o/512,a/512,i)/128}}var yt;(yt||(yt={})).fromJson=function(t){var e,s,r,i,n;const o=null!=(e=B.readObject(t))?e:{};return{xzScale:null!=(s=B.readNumber(o.xz_scale))?s:1,yScale:null!=(r=B.readNumber(o.y_scale))?r:1,xzFactor:null!=(i=B.readNumber(o.xz_factor))?i:80,yFactor:null!=(n=B.readNumber(o.y_factor))?n:80}};const Et=class{constructor(t,{firstOctave:e,amplitudes:s}){this.first=new _t(t,e,s),this.second=new _t(t,e,s);let r=1/0,i=-1/0;for(let t=0;t<s.length;t+=1)0!==s[t]&&(r=Math.min(r,t),i=Math.max(i,t));const n=.1*(1+1/(i-r+1));this.valueFactor=1/6/n,this.maxValue=(this.first.maxValue+this.second.maxValue)*this.valueFactor}sample(t,e,s){const r=t*Et.INPUT_FACTOR,i=e*Et.INPUT_FACTOR,n=s*Et.INPUT_FACTOR;return(this.first.sample(t,e,s)+this.second.sample(r,i,n))*this.valueFactor}};let It=Et;var Nt,Bt;It.INPUT_FACTOR=1.0181268882175227,(Bt=Nt||(Nt={})).create=function(t,e){return{firstOctave:t,amplitudes:e}},Bt.fromJson=function(t){var e,s,r;const i=null!=(e=B.readObject(t))?e:{};return{firstOctave:null!=(s=B.readInt(i.firstOctave))?s:0,amplitudes:null!=(r=B.readArray(i.amplitudes,(t=>{var e;return null!=(e=B.readNumber(t))?e:0})))?r:[]}};class Rt{constructor(t,e){const s=e[e.length-1],r=-e[0]+s+1,i=new Set(e),n=new xt(t);this.noiseLevels=Array(r),s>=0&&s<r&&i.has(0)&&(this.noiseLevels[s]=n);for(let e=s+1;e<r;e+=1)e>=0&&i.has(s-e)?this.noiseLevels[e]=new xt(t):t.consume(262);if(s>0)throw new Error(\"Positive octaves are not allowed\");this.highestFreqInputFactor=Math.pow(2,s),this.highestFreqValueFactor=1/(Math.pow(2,r)-1)}sample(t,e,s){let r=0,i=this.highestFreqInputFactor,n=this.highestFreqValueFactor;for(let o=0;o<this.noiseLevels.length;o+=1){const a=this.noiseLevels[o];a&&(r+=n*a.sample2D(t*i+(s?a.xo:0),e*i+(s?a.yo:0))),i/=2,n*=2}return r}}const Tt=t=>[(t>>16&255)/256,(t>>8&255)/256,(255&t)/256],Mt=[124/256,189/256,107/256],Ct=Tt(6396257),Ot=Tt(8431445),kt=Tt(4764952),Pt=Tt(4159204),Lt=Tt(8431445),Ft=Tt(2129968),Vt=t=>[t/8,1-t/32,64*t],Dt={large_fern:()=>Mt,tall_grass:()=>Mt,grass_block:()=>Mt,fern:()=>Mt,grass:()=>Mt,potted_fern:()=>Mt,spruce_leaves:()=>Ct,birch_leaves:()=>Ot,oak_leaves:()=>kt,jungle_leaves:()=>kt,acacia_leaves:()=>kt,dark_oak_leaves:()=>kt,vine:()=>kt,water:()=>Pt,bubble_column:()=>Pt,cauldron:()=>Pt,redstone_wire:t=>{var e;return(t=>{const e=t/15;return[.6*e+(e>0?.4:.3),$(e*e*.7-.5,0,1),$(e*e*.6-.7,0,1)]})(parseInt(null!=(e=t.power)?e:\"0\"))},sugar_cane:()=>Mt,attached_melon_stem:()=>Lt,attached_pumpkin_stem:()=>Lt,melon_stem:t=>{var e;return Vt(parseInt(null!=(e=t.age)?e:\"0\"))},pumpkin_stem:t=>{var e;return Vt(parseInt(null!=(e=t.age)?e:\"0\"))},lily_pad:()=>Ft};var Ut;function Gt(...t){let e=0;for(const s of t)e+=s.length;const s=new Float32Array(e);let r=0;for(const e of t)s.set(e,r),r+=e.length;return s}function zt(t,e){const r=s.create();for(let i=0;i<t.length;i+=3)r[0]=t[i],r[1]=t[i+1],r[2]=t[i+2],s.transformMat4(r,r,e),t[i]=r[0],t[i+1]=r[1],t[i+2]=r[2]}(Ut||(Ut={})).rotate=function(t,e,s){let{up:r,down:i,north:n,east:o,south:a,west:l}=t;switch(s){case 90:[n,o,a,l]=[o,a,l,n];break;case 180:[n,o,a,l]=[a,l,n,o];break;case 270:[n,o,a,l]=[l,n,o,a]}switch(e){case 90:[r,n,i,a]=[n,i,a,r];break;case 180:[r,n,i,a]=[i,a,r,n];break;case 270:[r,n,i,a]=[a,r,n,i]}return{up:r,down:i,north:n,east:o,south:a,west:l}};class Yt{constructor(t,e,s){this.id=t,this.variants=e,this.multipart=s,this.variants=e}getModelVariants(t){if(this.variants){const e=Object.keys(this.variants).filter((e=>this.matchesVariant(e,t)));if(0===e.length)return[];const s=this.variants[e[0]];return[Array.isArray(s)?s[0]:s]}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,s,n,o,a){var l,u,h,c;const f=this.getModelVariants(e),m=[],d=[],p=[],g=[];for(const v of f){const f=Ut.rotate(a,null!=(l=v.x)?l:0,null!=(u=v.y)?u:0),w=n.getBlockModel(v.model).getBuffers(t,e,s,o,f);if(v.x||v.y){const t=r.create();r.identity(t),r.translate(t,t,[8,8,8]),r.rotateY(t,t,-i.toRadian(null!=(h=v.y)?h:0)),r.rotateX(t,t,-i.toRadian(null!=(c=v.x)?c:0)),r.translate(t,t,[-8,-8,-8]),zt(w.position,t)}m.push(w.position),d.push(...w.texCoord),p.push(...w.tintColor),g.push(...w.index),o+=w.texCoord.length/2}const v=r.create();r.identity(v),r.scale(v,v,[.0625,.0625,.0625]);const w=Gt(...m);return zt(w,v),{position:w,texCoord:d,tintColor:p,index:g}}matchesVariant(t,e){return t.split(\",\").every((t=>{const[s,r]=t.split(\"=\");return e[s]===r}))}matchesCase(t,e){if(Array.isArray(t.OR))return t.OR.some((t=>this.matchesCase(t,e)));const s=t;return Object.keys(s).every((t=>s[t].split(\"|\").includes(e[t])))}static fromJson(t,e){return new Yt(t,e.variants,e.multipart)}}const Ht={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]},Xt={x:[1,0,0],y:[0,1,0],z:[0,0,1]},jt=1.41421356237,Zt={x:[1,jt,jt],y:[jt,1,jt],z:[jt,jt,1]};class qt{constructor(t,e,s,r){this.id=t,this.parent=e,this.textures=s,this.elements=r,this.flattened=!1}getBuffers(t,e,s,r,i){var n;const o=[],a=[],l=[],u=[];for(const h of null!=(n=this.elements)?n:[]){const n=this.getElementBuffers(t,e,h,r,s,i);o.push(n.position),a.push(...n.texCoord),l.push(...n.tintColor),u.push(...n.index),r+=n.texCoord.length/2}return{position:Gt(...o),texCoord:a,tintColor:l,index:u}}getElementBuffers(t,e,n,o,a,l){var u,h,c,f,m,d,p,g,v,w,b,x;const S=n.from[0],_=n.from[1],A=n.from[2],y=n.to[0],E=n.to[1],I=n.to[2],N=[],B=[],R=[],T=[],M=(s,r,i)=>{var n,l,u,h,c,f,m,d,p,g,v,w,b;const[x,S,_,A]=a.getTextureUV(this.getTexture(s.texture)),y=(_-x)/16,E=(A-S)/16,I=y/16,M=E/16;r[0]=(null!=(l=null==(n=s.uv)?void 0:n[0])?l:r[0])*y+I,r[1]=(null!=(h=null==(u=s.uv)?void 0:u[1])?h:r[1])*E+M,r[2]=(null!=(f=null==(c=s.uv)?void 0:c[2])?f:r[2])*y-I,r[3]=(null!=(d=null==(m=s.uv)?void 0:m[3])?d:r[3])*E-M;const C=Ht[null!=(p=s.rotation)?p:0];B.push(x+r[C[0]],S+r[C[1]],x+r[C[2]],S+r[C[3]],x+r[C[4]],S+r[C[5]],x+r[C[6]],S+r[C[7]]);const O=(null!=(g=s.tintindex)?g:-1)>=0&&null!=(b=null==(w=(v=Dt)[t.path])?void 0:w.call(v,e))?b:[1,1,1];R.push(...O,...O,...O,...O),N.push(...i),T.push(o,o+1,o+2,o,o+2,o+3),o+=4};!(null==(h=null==(u=n.faces)?void 0:u.up)?void 0:h.texture)||n.faces.up.cullface&&l[n.faces.up.cullface]||M(n.faces.up,[S,16-I,y,16-A],[S,E,I,y,E,I,y,E,A,S,E,A]),!(null==(f=null==(c=n.faces)?void 0:c.down)?void 0:f.texture)||n.faces.down.cullface&&l[n.faces.down.cullface]||M(n.faces.down,[16-I,16-y,16-A,16-S],[S,_,A,y,_,A,y,_,I,S,_,I]),!(null==(d=null==(m=n.faces)?void 0:m.south)?void 0:d.texture)||n.faces.south.cullface&&l[n.faces.south.cullface]||M(n.faces.south,[S,16-E,y,16-_],[S,_,I,y,_,I,y,E,I,S,E,I]),!(null==(g=null==(p=n.faces)?void 0:p.north)?void 0:g.texture)||n.faces.north.cullface&&l[n.faces.north.cullface]||M(n.faces.north,[16-y,16-E,16-S,16-_],[y,_,A,S,_,A,S,E,A,y,E,A]),!(null==(w=null==(v=n.faces)?void 0:v.east)?void 0:w.texture)||n.faces.east.cullface&&l[n.faces.east.cullface]||M(n.faces.east,[16-I,16-E,16-A,16-_],[y,_,I,y,_,A,y,E,A,y,E,I]),!(null==(x=null==(b=n.faces)?void 0:b.west)?void 0:x.texture)||n.faces.west.cullface&&l[n.faces.west.cullface]||M(n.faces.west,[A,16-E,I,16-_],[S,_,A,S,_,I,S,E,I,S,E,A]);const C=r.create();if(r.identity(C),n.rotation){const t=s.fromValues(...n.rotation.origin);r.translate(C,C,t),r.rotate(C,C,i.toRadian(n.rotation.angle),Xt[n.rotation.axis]),n.rotation.rescale&&r.scale(C,C,Zt[n.rotation.axis]),s.negate(t,t),r.translate(C,C,t)}const O=new Float32Array(N);return zt(O,C),{position:O,texCoord:B,tintColor:R,index:T}}getTexture(t){for(var e,s;t.startsWith(\"#\");)t=null!=(s=null==(e=this.textures)?void 0:e[t.slice(1)])?s:\"\";return t.startsWith(\"minecraft:\")||(t=\"minecraft:\"+t),t}flatten(t){var e;if(!this.flattened&&this.parent){const s=t.getBlockModel(this.parent);if(!s)return console.warn(`parent ${this.parent} does not exist!`),void(this.flattened=!0);s.flatten(t),this.elements||(this.elements=s.elements),this.textures||(this.textures={}),Object.keys(null!=(e=s.textures)?e:{}).forEach((t=>{this.textures[t]||(this.textures[t]=s.textures[t])})),this.flattened=!0}}static fromJson(t,e){let s=e.parent;return s&&!s.startsWith(\"minecraft:\")&&(s=\"minecraft:\"+s),new qt(t,s,e.textures,e.elements)}}class Jt{constructor(t,e,s){this.gl=t,this.program=this.initShaderProgram(e,s)}getProgram(){return this.program}initShaderProgram(t,e){const s=this.loadShader(this.gl.VERTEX_SHADER,t),r=this.loadShader(this.gl.FRAGMENT_SHADER,e),i=this.gl.createProgram();if(this.gl.attachShader(i,s),this.gl.attachShader(i,r),this.gl.linkProgram(i),!this.gl.getProgramParameter(i,this.gl.LINK_STATUS))throw new Error(`Unable to link shader program: ${this.gl.getProgramInfoLog(i)}`);return i}loadShader(t,e){const s=this.gl.createShader(t);if(this.gl.shaderSource(s,e),this.gl.compileShader(s),!this.gl.getShaderParameter(s,this.gl.COMPILE_STATUS)){const e=new Error(`Compiling ${t===this.gl.VERTEX_SHADER?\"vertex\":\"fragment\"} shader: ${this.gl.getShaderInfoLog(s)}`);throw this.gl.deleteShader(s),e}return s}}function Wt(t,e,s,r,i){const n=new Yt(\"\",{\"\":{model:\"\"}},void 0),o={getBlockModel:()=>i};return i.flatten(o),n.getBuffers(t,{},e,o,s,r)}function $t(t,e,s,r,i,o){const a=i.up?16:[14.2,12.5,10.5,9,7,5.3,3.7,1.9,16,16,16,16,16,16,16,16][s];return Wt(C.create(t),r,e,i,new qt(\"\",\"\",{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:n.UP},down:{texture:\"#still\",tintindex:o,cullface:n.DOWN},north:{texture:\"#flow\",tintindex:o,cullface:n.NORTH},east:{texture:\"#flow\",tintindex:o,cullface:n.EAST},south:{texture:\"#flow\",tintindex:o,cullface:n.SOUTH},west:{texture:\"#flow\",tintindex:o,cullface:n.WEST}}}]))}const Kt={\"minecraft:water\":(t,e,s,r)=>$t(\"water\",t,parseInt(e.level),s,r,0),\"minecraft:lava\":(t,e,s,r)=>$t(\"lava\",t,parseInt(e.level),s,r),\"minecraft:chest\":(t,e,s)=>function(t,e,s,r){return Wt(C.create(\"chest\"),r,t,{},new qt(\"\",\"\",{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,s)},Qt=new Set(Object.keys(Kt));class te{constructor(t,e,s,r){var i,n;this.gl=t,this.structure=e,this.resources=s,this.chunks=[],(null==r?void 0:r.facesPerBuffer)&&console.warn(\"webgl render warning: facesPerBuffer option has been removed in favor of chunkSize\"),this.chunkSize=null!=(i=null==r?void 0:r.chunkSize)?i:16,this.useInvisibleBlockBuffer=null==(n=null==r?void 0:r.useInvisibleBlockBuffer)||n,this.shaderProgram=new Jt(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 Jt(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 Jt(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,s=r.create();return r.perspective(s,t,e,.1,500),s}getChunk(t){const e=2*Math.abs(t[0])+(t[0]<0?1:0),s=2*Math.abs(t[1])+(t[1]<0?1:0),r=2*Math.abs(t[2])+(t[2]<0?1:0);return this.chunks[e]||(this.chunks[e]=[]),this.chunks[e][s]||(this.chunks[e][s]=[]),this.chunks[e][s][r]||(this.chunks[e][s][r]={positions:[],textureCoordinates:[],tintColors:[],blockPositions:[],normals:[],indices:[],indexOffset:0}),this.chunks[e][s][r]}updateStructureBuffers(t){var e;const i=(t,e,i)=>{const n=r.create();r.translate(n,n,e),zt(t.position,n),i.positions.push(t.position),i.textureCoordinates.push(...t.texCoord),i.tintColors.push(...t.tintColor);for(let e=0;e<t.position.length;e+=12){const r=s.fromValues(t.position[e],t.position[e+1],t.position[e+2]),n=s.fromValues(t.position[e+3],t.position[e+4],t.position[e+5]),o=s.fromValues(t.position[e+6],t.position[e+7],t.position[e+8]);s.subtract(n,n,r),s.subtract(o,o,r),s.cross(n,n,o),s.normalize(n,n),i.normals.push(...n,...n,...n,...n)}for(let s=0;s<t.texCoord.length/2;s+=1)i.blockPositions.push(...e);i.indices.push(...t.index),i.indexOffset+=t.texCoord.length/2},o=t=>{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,Gt(...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,Gt(...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 r of this.structure.getBlocks()){const o=r.state.getName(),a=r.state.getProperties(),u=null!=(e=this.resources.getDefaultBlockProperties(o))?e:{};Object.entries(u).forEach((([t,e])=>{a[t]||(a[t]=e)}));const h=[Math.floor(r.pos[0]/this.chunkSize),Math.floor(r.pos[1]/this.chunkSize),Math.floor(r.pos[2]/this.chunkSize)];if(t&&!t.some((t=>s.equals(t,h))))continue;const c=this.getChunk(h);try{const t=this.resources.getBlockDefinition(o),e={up:this.needsCull(r,n.UP),down:this.needsCull(r,n.DOWN),west:this.needsCull(r,n.WEST),east:this.needsCull(r,n.EAST),north:this.needsCull(r,n.NORTH),south:this.needsCull(r,n.SOUTH)};t&&(l=t.getBuffers(o,a,this.resources,this.resources,c.indexOffset,e),i(l,r.pos,c)),Qt.has(o.toString())&&(l=Kt[o.toString()](c.indexOffset,a,this.resources,e),i(l,r.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 s,r;const i=null==(s=this.structure.getBlock(l.towards(t.pos,e)))?void 0:s.state;return!!i&&((null==(r=this.resources.getBlockFlags(i.getName()))?void 0:r.opaque)?!(e===n.UP&&t.state.isFluid()):t.state.isFluid()&&i.isFluid())}getGridBuffers(){const[t,e,s]=this.structure.getSize(),r=[],i=[];r.push(0,0,0,t,0,0),i.push(1,0,0,1,0,0),r.push(0,0,0,0,0,s),i.push(0,0,1,0,0,1),r.push(0,0,0,0,e,0),r.push(t,0,0,t,e,0),r.push(0,0,s,0,e,s),r.push(t,0,s,t,e,s),r.push(0,e,0,0,e,s),r.push(t,e,0,t,e,s),r.push(0,e,0,t,e,0),r.push(0,e,s,t,e,s);for(let e=1;e<=t;e+=1)r.push(e,0,0,e,0,s);for(let e=1;e<=s;e+=1)r.push(0,0,e,t,0,e);for(let e=0;e<8+t+s;e+=1)i.push(.8,.8,.8,.8,.8,.8);return{position:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(r)),color:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(i)),length:r.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=[],s=[];for(let r=0;r<t[0];r+=1)for(let i=0;i<t[1];i+=1)for(let n=0;n<t[2];n+=1){const t=this.structure.getBlock([r,i,n]);void 0!==t&&(null===t?this.addCube(e,s,[1,.25,.25],[r+.4375,i+.4375,n+.4375],[r+.5625,i+.5625,n+.5625]):t.state.is(G.AIR)?this.addCube(e,s,[.5,.5,1],[r+.375,i+.375,n+.375],[r+.625,i+.625,n+.625]):t.state.is(new G(\"cave_air\"))&&this.addCube(e,s,[.5,1,.5],[r+.375,i+.375,n+.375],[r+.625,i+.625,n+.625]))}return{position:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(e)),color:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(s)),length:e.length/3}}addCube(t,e,s,r,i){t.push(r[0],r[1],r[2],r[0],r[1],i[2]),t.push(i[0],r[1],r[2],i[0],r[1],i[2]),t.push(r[0],r[1],r[2],i[0],r[1],r[2]),t.push(r[0],r[1],i[2],i[0],r[1],i[2]),t.push(r[0],r[1],r[2],r[0],i[1],r[2]),t.push(i[0],r[1],r[2],i[0],i[1],r[2]),t.push(r[0],r[1],i[2],r[0],i[1],i[2]),t.push(i[0],r[1],i[2],i[0],i[1],i[2]),t.push(r[0],i[1],r[2],r[0],i[1],i[2]),t.push(i[0],i[1],r[2],i[0],i[1],i[2]),t.push(r[0],i[1],r[2],i[0],i[1],r[2]),t.push(r[0],i[1],i[2],i[0],i[1],i[2]);for(let t=0;t<24;t+=1)e.push(...s)}createBuffer(t,e){const s=this.gl.createBuffer();return this.gl.bindBuffer(t,s),this.gl.bufferData(t,e,this.gl.DYNAMIC_DRAW),s}updateBuffer(t,e,s){this.gl.bindBuffer(e,t),this.gl.bufferData(e,s,this.gl.STATIC_DRAW)}drawGrid(t){this.setShader(this.gridShaderProgram),this.setVertexAttr(\"vertPos\",3,this.gridBuffers.position),this.setVertexAttr(\"vertColor\",3,this.gridBuffers.color),this.setUniform(\"mView\",t),this.setUniform(\"mProj\",this.projMatrix),this.gl.drawArrays(this.gl.LINES,0,this.gridBuffers.length)}drawInvisibleBlocks(t){this.useInvisibleBlockBuffer&&(this.setShader(this.gridShaderProgram),this.setVertexAttr(\"vertPos\",3,this.invisibleBlockBuffers.position),this.setVertexAttr(\"vertColor\",3,this.invisibleBlockBuffers.color),this.setUniform(\"mView\",t),this.setUniform(\"mProj\",this.projMatrix),this.gl.drawArrays(this.gl.LINES,0,this.invisibleBlockBuffers.length))}drawStructure(t){this.setShader(this.shaderProgram),this.gl.activeTexture(this.gl.TEXTURE0),this.gl.bindTexture(this.gl.TEXTURE_2D,this.atlasTexture),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(\"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 s=r.create();r.copy(s,t),r.translate(s,s,e),this.setUniform(\"mView\",s),this.setUniform(\"mProj\",this.projMatrix),this.gl.drawArrays(this.gl.LINES,0,this.outlineBuffers.length)}setViewport(t,e,s,r){this.gl.viewport(t,e,s,r),this.projMatrix=this.getPerspective()}setShader(t){this.gl.useProgram(t),this.activeShader=t}setVertexAttr(t,e,s){const r=this.gl.getAttribLocation(this.activeShader,t);this.gl.bindBuffer(this.gl.ARRAY_BUFFER,s),this.gl.vertexAttribPointer(r,e,this.gl.FLOAT,!1,0,0),this.gl.enableVertexAttribArray(r)}setUniform(t,e){const s=this.gl.getUniformLocation(this.activeShader,t);this.gl.uniformMatrix4fv(s,!1,e)}}var ee=(t,e,s)=>new Promise(((r,i)=>{var n=t=>{try{a(s.next(t))}catch(t){i(t)}},o=t=>{try{a(s.throw(t))}catch(t){i(t)}},a=t=>t.done?r(t.value):Promise.resolve(t.value).then(n,o);a((s=s.apply(t,e)).next())}));class se{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])?e:[0,0,this.part,this.part]}static fromBlobs(t){return ee(this,null,(function*(){const e=Math.sqrt(Object.keys(t).length+1),s=Math.pow(2,Math.ceil(Math.log(e)/Math.log(2))),r=16*s,i=1/s,n=document.createElement(\"canvas\");n.width=r,n.height=r;const o=n.getContext(\"2d\");this.drawInvalidTexture(o);const a={};let l=1;return yield Promise.all(Object.keys(t).map((e=>ee(this,null,(function*(){const r=l%s,n=Math.floor(l/s);l+=1,a[e]=[i*r,i*n,i*r+i,i*n+i];const u=yield createImageBitmap(t[e]);o.drawImage(u,0,0,16,16,16*r,16*n,16,16)}))))),new se(o.getImageData(0,0,r,r),a)}))}static empty(){const t=document.createElement(\"canvas\");t.width=16,t.height=16;const e=t.getContext(\"2d\");return se.drawInvalidTexture(e),new se(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)}}const re=class{constructor(t,e,s){this.offsetSampler=t,this.factorSampler=e,this.jaggednessSampler=s}static extractor(t){return{compute:e=>e[t]}}static fromJson(t){var e;const s=null!=(e=B.readObject(t))?e:{};return new re(ft.fromJson(s.offset,this.EXTRACTOR),ft.fromJson(s.factor,this.EXTRACTOR),ft.fromJson(s.jaggedness,this.EXTRACTOR))}offset(t){return this.offsetSampler.compute(t)+re.GLOBAL_OFFSET}factor(t){return this.factorSampler.compute(t)}jaggedness(t){return this.jaggednessSampler.compute(t)}static point(t,e,s){return{continents:t,erosion:e,weirdness:s,ridges:this.peaksAndValleys(s)}}static peaksAndValleys(t){return 3*-(Math.abs(Math.abs(t)-.6666667)-.33333334)}};let ie=re;var ne,oe,ae,le,ue;ie.GLOBAL_OFFSET=-.50375,ie.EXTRACTOR=t=>{var e;const s=null!=(e=B.readString(t))?e:\"continents\";return re.extractor(s)},ie.CONTINENTS=re.extractor(\"continents\"),ie.EROSION=re.extractor(\"erosion\"),ie.WEIRDNESS=re.extractor(\"weirdness\"),ie.RIDGES=re.extractor(\"ridges\"),function(t){function e(t){return t.ySize<<2}t.fromJson=function(t){var e,s,r,i,n;const o=null!=(e=B.readObject(t))?e:{};return{minY:null!=(s=B.readInt(o.min_y))?s:0,height:null!=(r=B.readInt(o.height))?r:256,xzSize:null!=(i=B.readInt(o.size_horizontal))?i:1,ySize:null!=(n=B.readInt(o.size_vertical))?n:1,sampling:yt.fromJson(o.sampling),topSlide:oe.fromJson(o.top_slide),bottomSlide:oe.fromJson(o.bottom_slide),terrainShaper:ie.fromJson(o.terrain_shaper)}},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))},t.applySlides=function(s,r,i){const n=Math.floor(i/e(s))-t.minCellY(s);return r=oe.apply(s.topSlide,r,t.cellCountY(s)-n),r=oe.apply(s.bottomSlide,r,n)}}(ne||(ne={})),(ae=oe||(oe={})).fromJson=function(t){var e,s,r,i;const n=null!=(e=B.readObject(t))?e:{};return{target:null!=(s=B.readNumber(n.target))?s:0,size:null!=(r=B.readInt(n.size))?r:0,offset:null!=(i=B.readInt(n.offset))?i:0}},ae.apply=function(t,e,s){if(t.size<=0)return e;const r=(s-t.offset)/t.size;return it(t.target,e,r)},function(t){function e(t){const e=new q(C.create(t));return q.REGISTRY.register(e.key,e),e}t.NOISE=e(\"worldgen/noise\"),t.DENSITY_FUNCTION=e(\"worldgen/density_function\")}(le||(le={}));class he{minValue(){return-this.maxValue()}mapAll(t){return t.map(this)}}!function(t){t.context=function(t,e,s){return{x:t,y:e,z:s}};class e extends t{constructor(t){super(),this.input=t}compute(t){return this.transform(t,this.input.compute(t))}}const s=j.parser(le.NOISE,Nt.fromJson);t.fromJson=function t(e,r=t){var l,v,S,N,T,D,U,G,z,Y,H,X,Z,q,J,W,$,K,Q;if(\"string\"==typeof e)return new n(j.reference(le.DENSITY_FUNCTION,C.parse(e)));if(\"number\"==typeof e)return new i(e);const tt=null!=(l=B.readObject(e))?l:{},et=null==(v=B.readString(tt.type))?void 0:v.replace(/^minecraft:/,\"\");switch(et){case\"blend_alpha\":return new o(1,0,1);case\"blend_offset\":case\"beardifier\":return new o(0,-1/0,1/0);case\"old_blended_noise\":return new a;case\"flat_cache\":return new u(r(tt.argument));case\"interpolated\":return new m(r(tt.argument));case\"cache_2d\":return new c(r(tt.argument));case\"cache_once\":return new f(r(tt.argument));case\"cache_all_in_cell\":return new h(r(tt.argument));case\"noise\":return new d(null!=(S=B.readNumber(tt.xz_scale))?S:1,null!=(N=B.readNumber(tt.y_scale))?N:1,s(tt.noise));case\"end_islands\":return new p;case\"weird_scaled_sampler\":return new w(r(tt.input),B.readEnum(tt.rarity_value_mapper,g),s(tt.noise));case\"shifted_noise\":return new b(r(tt.shift_x),r(tt.shift_y),r(tt.shift_z),null!=(T=B.readNumber(tt.xz_scale))?T:1,null!=(D=B.readNumber(tt.y_scale))?D:1,s(tt.noise));case\"range_choice\":return new x(r(tt.input),null!=(U=B.readNumber(tt.min_inclusive))?U:0,null!=(G=B.readNumber(tt.max_exclusive))?G:1,r(tt.when_in_range),r(tt.when_out_of_range));case\"shift_a\":return new _(s(tt.argument));case\"shift_b\":return new A(s(tt.argument));case\"shift\":return new y(s(tt.argument));case\"blend_density\":return new E(r(tt.argument));case\"clamp\":return new I(r(tt.input),null!=(z=B.readNumber(tt.min))?z:0,null!=(Y=B.readNumber(tt.max))?Y:1);case\"abs\":case\"square\":case\"cube\":case\"half_negative\":case\"quarter_negative\":case\"squeeze\":return new R(et,r(tt.argument));case\"slide\":return new M(r(tt.argument));case\"add\":case\"mul\":case\"min\":case\"max\":return new k(B.readEnum(et,O),r(tt.argument1),r(tt.argument2));case\"spline\":return new P(ft.fromJson(tt.spline,r),null!=(H=B.readNumber(tt.min_value))?H:0,null!=(X=B.readNumber(tt.max_value))?X:1);case\"terrain_shaper_spline\":return new F(r(tt.continentalness),r(tt.erosion),r(tt.weirdness),B.readEnum(tt.spline,L),null!=(Z=B.readNumber(tt.min_value))?Z:0,null!=(q=B.readNumber(tt.max_value))?q:1);case\"constant\":return new i(null!=(J=B.readNumber(tt.argument))?J:0);case\"y_clamped_gradient\":return new V(null!=(W=B.readInt(tt.from_y))?W:-4064,null!=($=B.readInt(tt.to_y))?$:4062,null!=(K=B.readNumber(tt.from_value))?K:-4064,null!=(Q=B.readNumber(tt.to_value))?Q:4062)}return i.ZERO};const r=class extends t{constructor(t){super(),this.value=t}compute(){return this.value}minValue(){return this.value}maxValue(){return this.value}};let i=r;i.ZERO=new r(0),i.ONE=new r(1),t.Constant=i;class n extends t{constructor(t){super(),this.holder=t}compute(t){return this.holder.value().compute(t)}minValue(){return this.holder.value().minValue()}maxValue(){return this.holder.value().maxValue()}}t.HolderHolder=n;class o extends t.Constant{constructor(t,e,s){super(t),this.min=e,this.max=s}minValue(){return this.min}maxValue(){return this.max}}t.ConstantMinMax=o;class a extends t{constructor(t){super(),this.blendedNoise=null!=t?t:new At(vt.create(BigInt(0)),{xzScale:1,yScale:1,xzFactor:80,yFactor:160},4,8)}compute(t){return this.blendedNoise.sample(t.x,t.y,t.z)}maxValue(){return this.blendedNoise.maxValue}}t.OldBlendedNoise=a;class l extends t{constructor(t){super(),this.wrapped=t}minValue(){return this.wrapped.minValue()}maxValue(){return this.wrapped.maxValue()}}class u extends l{constructor(t){super(t),this.lastValue=0}compute(e){const s=e.x>>2,r=e.z>>2;return this.lastQuartX===s&&this.lastQuartZ===r||(this.lastValue=this.wrapped.compute(t.context(s<<2,0,r<<2)),this.lastQuartX=s,this.lastQuartZ=r),this.lastValue}mapAll(t){return t.map(new u(this.wrapped.mapAll(t)))}}t.FlatCache=u;class h extends l{constructor(t){super(t)}compute(t){return this.wrapped.compute(t)}mapAll(t){return t.map(new h(this.wrapped.mapAll(t)))}}t.CacheAllInCell=h;class c extends l{constructor(t){super(t),this.lastValue=0}compute(t){const e=t.x,s=t.z;return this.lastBlockX===e&&this.lastBlockZ===s||(this.lastValue=this.wrapped.compute(t),this.lastBlockX=e,this.lastBlockZ=s),this.lastValue}mapAll(t){return t.map(new c(this.wrapped.mapAll(t)))}}t.Cache2D=c;class f extends l{constructor(t){super(t),this.lastValue=0}compute(t){const e=t.x,s=t.y,r=t.z;return this.lastBlockX===e&&this.lastBlockY===s&&this.lastBlockZ===r||(this.lastValue=this.wrapped.compute(t),this.lastBlockX=e,this.lastBlockY=s,this.lastBlockZ=r),this.lastValue}mapAll(t){return t.map(new f(this.wrapped.mapAll(t)))}}t.CacheOnce=f;class m extends l{constructor(t,e=4,s=4){super(t),this.cellWidth=e,this.cellHeight=s,this.values=new Map}compute({x:t,y:e,z:s}){const r=this.cellWidth,i=this.cellHeight,n=(t%r+r)%r/r,o=(e%i+i)%i/i,a=(s%r+r)%r/r,l=Math.floor(t/r)*r,u=Math.floor(e/i)*i,h=Math.floor(s/r)*r;return rt(n,o,a,(()=>this.computeCorner(l,u,h)),(()=>this.computeCorner(l+r,u,h)),(()=>this.computeCorner(l,u+i,h)),(()=>this.computeCorner(l+r,u+i,h)),(()=>this.computeCorner(l,u,h+r)),(()=>this.computeCorner(l+r,u,h+r)),(()=>this.computeCorner(l,u+i,h+r)),(()=>this.computeCorner(l+r,u+i,h+r)))}computeCorner(e,s,r){return T(this.values,`${e} ${s} ${r}`,(()=>this.wrapped.compute(t.context(e,s,r))))}mapAll(t){return t.map(new m(this.wrapped.mapAll(t)))}withCellSize(t,e){return new m(this.wrapped,t,e)}}t.Interpolated=m;class d extends t{constructor(t,e,s,r){super(),this.xzScale=t,this.yScale=e,this.noiseData=s,this.noise=r}compute(t){var e,s;return null!=(s=null==(e=this.noise)?void 0:e.sample(t.x*this.xzScale,t.y*this.yScale,t.z*this.xzScale))?s:0}maxValue(){var t,e;return null!=(e=null==(t=this.noise)?void 0:t.maxValue)?e:2}}t.Noise=d;class p extends t{compute(){return 0}minValue(){return-.84375}maxValue(){return.5625}}const g=[\"type_1\",\"type_2\"],v=class extends e{constructor(t,e,s,r){super(t),this.rarityValueMapper=e,this.noiseData=s,this.noise=r,this.mapper=v.ValueMapper[this.rarityValueMapper]}transform(t,e){if(!this.noise)return 0;const s=this.mapper(e);return s*Math.abs(this.noise.sample(t.x/s,t.y/s,t.z/s))}mapAll(t){return t.map(new v(this.input.mapAll(t),this.rarityValueMapper,this.noiseData,this.noise))}minValue(){return 0}maxValue(){return\"type_1\"===this.rarityValueMapper?2:3}static rarityValueMapper1(t){return t<-.5?.75:t<0?1:t<.5?1.5:2}static rarityValueMapper2(t){return t<-.75?.5:t<-.5?.75:t<.5?1:t<.75?2:3}};let w=v;w.ValueMapper={type_1:v.rarityValueMapper1,type_2:v.rarityValueMapper2},t.WeirdScaledSampler=w;class b extends d{constructor(t,e,s,r,i,n,o){super(r,i,n,o),this.shiftX=t,this.shiftY=e,this.shiftZ=s}compute(t){var e,s;const r=t.x*this.xzScale+this.shiftX.compute(t),i=t.y*this.yScale+this.shiftY.compute(t),n=t.z*this.xzScale+this.shiftZ.compute(t);return null!=(s=null==(e=this.noise)?void 0:e.sample(r,i,n))?s:0}mapAll(t){return t.map(new b(this.shiftX.mapAll(t),this.shiftY.mapAll(t),this.shiftZ.mapAll(t),this.xzScale,this.yScale,this.noiseData,this.noise))}}t.ShiftedNoise=b;class x extends t{constructor(t,e,s,r,i){super(),this.input=t,this.minInclusive=e,this.maxExclusive=s,this.whenInRange=r,this.whenOutOfRange=i}compute(t){const e=this.input.compute(t);return this.minInclusive<=e&&e<this.maxExclusive?this.whenInRange.compute(t):this.whenOutOfRange.compute(t)}mapAll(t){return t.map(new x(this.input.mapAll(t),this.minInclusive,this.maxExclusive,this.whenInRange.mapAll(t),this.whenOutOfRange.mapAll(t)))}minValue(){return Math.min(this.whenInRange.minValue(),this.whenOutOfRange.minValue())}maxValue(){return Math.max(this.whenInRange.maxValue(),this.whenOutOfRange.maxValue())}}t.RangeChoice=x;class S extends t{constructor(t,e){super(),this.noiseData=t,this.offsetNoise=e}compute(t){var e,s;return null!=(s=null==(e=this.offsetNoise)?void 0:e.sample(.25*t.x,.25*t.y,.25*t.z))?s:0}maxValue(){var t,e;return 4*(null!=(e=null==(t=this.offsetNoise)?void 0:t.maxValue)?e:2)}}t.ShiftNoise=S;class _ extends S{constructor(t,e){super(t,e)}compute(e){return super.compute(t.context(e.x,0,e.z))}withNewNoise(t){return new _(this.noiseData,t)}}t.ShiftA=_;class A extends S{constructor(t,e){super(t,e)}compute(e){return super.compute(t.context(e.z,e.x,0))}withNewNoise(t){return new A(this.noiseData,t)}}t.ShiftB=A;class y extends S{constructor(t,e){super(t,e)}withNewNoise(t){return new y(this.noiseData,t)}}t.Shift=y;class E extends e{constructor(t){super(t)}transform(t,e){return e}mapAll(t){return t.map(new E(this.input.mapAll(t)))}minValue(){return-1/0}maxValue(){return 1/0}}t.BlendDensity=E;class I extends e{constructor(t,e,s){super(t),this.min=e,this.max=s}transform(t,e){return $(e,this.min,this.max)}mapAll(t){return t.map(new I(this.input.mapAll(t),this.min,this.max))}minValue(){return this.min}maxValue(){return this.max}}t.Clamp=I;const N=class extends e{constructor(t,e,s,r){super(e),this.type=t,this.min=s,this.max=r,this.transformer=N.MappedTypes[this.type]}transform(t,e){return this.transformer(e)}mapAll(t){return t.map(new N(this.type,this.input.mapAll(t)))}minValue(){var t;return null!=(t=this.min)?t:-1/0}maxValue(){var t;return null!=(t=this.max)?t:1/0}withMinMax(){const t=this.input.minValue();let e=this.transformer(t),s=this.transformer(this.input.maxValue());return\"abs\"!==this.type&&\"square\"!==this.type||(s=Math.max(e,s),e=Math.max(0,t)),new N(this.type,this.input,e,s)}};let R=N;R.MappedTypes={abs:t=>Math.abs(t),square:t=>t*t,cube:t=>t*t*t,half_negative:t=>t>0?t:.5*t,quarter_negative:t=>t>0?t:.25*t,squeeze:t=>{const e=$(t,-1,1);return e/2-e*e*e/24}},t.Mapped=R;class M extends e{constructor(t,e){super(t),this.settings=e}transform(t,e){return this.settings?ne.applySlides(this.settings,e,t.y):e}mapAll(t){return t.map(new M(this.input.mapAll(t),this.settings))}minValue(){return this.settings?Math.min(this.input.minValue(),this.settings.bottomSlide.target,this.settings.topSlide.target):this.input.minValue()}maxValue(){return this.settings?Math.max(this.input.maxValue(),this.settings.bottomSlide.target,this.settings.topSlide.target):this.input.maxValue()}}t.Slide=M;const O=[\"add\",\"mul\",\"min\",\"max\"];class k extends t{constructor(t,e,s,r,i){super(),this.type=t,this.argument1=e,this.argument2=s,this.min=r,this.max=i}compute(t){const e=this.argument1.compute(t);switch(this.type){case\"add\":return e+this.argument2.compute(t);case\"mul\":return 0===e?0:e*this.argument2.compute(t);case\"min\":return e<this.argument2.minValue()?e:Math.min(e,this.argument2.compute(t));case\"max\":return e>this.argument2.maxValue()?e:Math.max(e,this.argument2.compute(t))}}mapAll(t){return t.map(new k(this.type,this.argument1.mapAll(t),this.argument2.mapAll(t)))}minValue(){var t;return null!=(t=this.min)?t:-1/0}maxValue(){var t;return null!=(t=this.max)?t:1/0}withMinMax(){const t=this.argument1.minValue(),e=this.argument2.minValue(),s=this.argument1.maxValue(),r=this.argument2.maxValue();let i,n;switch(\"min\"!==this.type&&\"max\"!==this.type||!(t>=r||e>=s)||console.warn(`Creating a ${this.type} function between two non-overlapping inputs`),this.type){case\"add\":i=t+e,n=s+r;break;case\"mul\":i=t>0&&e>0?t*e||0:s<0&&r<0?s*r||0:Math.min(t*r||0,e*s||0),n=t>0&&e>0?s*r||0:s<0&&r<0?t*e||0:Math.max(t*e||0,s*r||0);break;case\"min\":i=Math.min(t,e),n=Math.min(s,r);break;case\"max\":i=Math.max(t,e),n=Math.max(s,r)}return new k(this.type,this.argument1,this.argument2,i,n)}}t.Ap2=k;class P extends t{constructor(t,e,s){super(),this.spline=t,this.min=e,this.max=s}compute(t){return $(this.spline.compute(t),this.min,this.max)}mapAll(e){return e.map(new P(this.spline.mapAll((s=>s instanceof t?s.mapAll(e):s)),this.min,this.max))}minValue(){return this.min}maxValue(){return this.max}}t.Spline=P;const L=[\"offset\",\"factor\",\"jaggedness\"];class F extends t{constructor(t,e,s,r,i,n,o){super(),this.continentalness=t,this.erosion=e,this.weirdness=s,this.spline=r,this.min=i,this.max=n,this.shaper=o}compute(t){if(!this.shaper)return 0;const e=ie.point(this.continentalness.compute(t),this.erosion.compute(t),this.weirdness.compute(t));return $(this.shaper[this.spline](e),this.min,this.max)}mapAll(t){return t.map(new F(this.continentalness.mapAll(t),this.erosion.mapAll(t),this.weirdness.mapAll(t),this.spline,this.min,this.max,this.shaper))}minValue(){return this.min}maxValue(){return this.max}}t.TerrainShaperSpline=F;class V extends t{constructor(t,e,s,r){super(),this.fromY=t,this.toY=e,this.fromValue=s,this.toValue=r}compute(t){return lt(t.y,this.fromY,this.toY,this.fromValue,this.toValue)}minValue(){return Math.min(this.fromValue,this.toValue)}maxValue(){return Math.max(this.fromValue,this.toValue)}}t.YClampedGradient=V}(he||(he={}));class ce{constructor(t,e){this.level=t,this.type=e}at(t){return t<this.level?this.type:G.AIR}}(ue||(ue={})).createDisabled=function(t){return{compute({x:e,y:s,z:r},i){if(!(i>0))return t(e,s,r).at(s)}}};const fe=class{constructor(t,e,s,r,i,n,o,a,u,h){this.noiseChunk=t,this.barrierNoise=s,this.fluidLevelFloodednessNoise=r,this.fluidLevelSpreadNoise=i,this.lavaNoise=n,this.random=o,this.globalFluidPicker=h,this.minGridX=this.gridX(X.minBlockX(e))-1,this.gridSizeX=this.gridX(X.maxBlockX(e))+1-this.minGridX+1,this.minGridY=this.gridY(a)-1,this.minGridZ=this.gridZ(X.minBlockZ(e))-1,this.gridSizeZ=this.gridZ(X.maxBlockZ(e))+1-this.minGridZ+1;const c=this.gridY(a+u)+1-this.minGridY+1;this.gridSize=this.gridSizeX*c*this.gridSizeZ,this.aquiferCache=Array(this.gridSize).fill(void 0),this.aquiferLocationCache=Array(this.gridSize).fill(l.ZERO)}compute({x:t,y:e,z:s},r){if(r<=0){if(this.globalFluidPicker(t,e,s).at(e).is(G.LAVA))return G.LAVA;{const i=this.gridX(t-5),n=this.gridY(e+1),o=this.gridZ(s-5);let a=Number.MAX_SAFE_INTEGER,u=Number.MAX_SAFE_INTEGER,h=Number.MAX_SAFE_INTEGER,c=l.ZERO,f=l.ZERO,m=l.ZERO;for(let t=0;t<=1;t+=1)for(let e=-1;e<=1;e+=1)for(let s=0;s<=1;s+=1){const r=this.getLocation(i+t,n+e,o+s),d=l.magnitude(r);a>=d?(m=f,f=c,c=r,h=u,u=a,a=d):u>=d?(m=f,f=r,h=u,u=d):h>=d&&(m=r,h=d)}const d=this.getStatus(c),p=this.getStatus(f),g=this.getStatus(m),v=fe.similarity(a,u),w=fe.similarity(a,h),b=fe.similarity(u,h);let x;if(d.at(e).is(G.WATER)&&this.globalFluidPicker(t,e-1,s).at(e-1).is(G.LAVA))x=1;else if(v>-1){const r=R((()=>this.barrierNoise.compute(he.context(t,.5*e,s)))),i=this.calculatePressure(e,d,p,r),n=this.calculatePressure(e,d,g,r),o=this.calculatePressure(e,p,g,r),a=Math.max(i,n*Math.max(0,w),o*Math.max(b));x=Math.max(0,2*Math.max(0,v)*a)}else x=0;if(r+x<=0)return d.at(e)}}}static similarity(t,e){return 1-Math.abs(e-t)/25}calculatePressure(t,e,s,r){const i=e.at(t),n=s.at(t);if(i.is(G.LAVA)&&n.is(G.WATER)||i.is(G.WATER)&&n.is(G.LAVA))return 1;const o=Math.abs(e.level-s.level);if(0===o)return 0;const a=t+.5-(e.level+s.level)/2,l=o/2-Math.abs(a),u=a>0?l>0?l/1.5:l/2.5:l>-3?(l+3)/3:(l+3)/10;return u<-2||u>2?u:u+r()}getStatus(t){const[e,s,r]=t,i=this.getIndex(this.gridX(e),this.gridY(s),this.gridZ(r)),n=this.aquiferCache[i];if(void 0!==n)return n;const o=this.computeStatus(e,s,r);return this.aquiferCache[i]=o,o}computeStatus(t,e,s){const r=this.globalFluidPicker(t,e,s);let i=Number.MAX_SAFE_INTEGER,n=!1;for(const[o,a]of fe.SURFACE_SAMPLING){const l=t+(a<<4),u=s+(a<<4),h=this.noiseChunk.getPreliminarySurfaceLevel(l,u);i=Math.min(i,h);const c=0===o&&0===a;if(c&&e-12>h+8)return r;if(c||e+12>h+8){const t=this.globalFluidPicker(l,h+8,u);if(!t.at(h+8).is(G.AIR)){if(c)return t;n=!0}}}const o=n?lt(i+8-e,0,64,1,0):0,a=$(this.fluidLevelFloodednessNoise.compute(he.context(t,.67*e,s)),-1,1);if(a>at(o,1,0,-.3,.8))return r;if(a<=at(o,1,0,-.8,.4))return new ce(Number.MIN_SAFE_INTEGER,r.type);const l=Math.floor(e/40),u=this.fluidLevelSpreadNoise.compute(he.context(Math.floor(t/16),l,Math.floor(s/16))),h=40*l+20+3*Math.floor(u/3),c=Math.min(i,h),f=this.getFluidType(t,e,s,r.type,h);return new ce(c,f)}getFluidType(t,e,s,r,i){if(i<=-10){const r=this.lavaNoise.compute(he.context(Math.floor(t/64),Math.floor(e/40),Math.floor(s/64)));if(Math.abs(r)>.3)return G.LAVA}return r}getLocation(t,e,s){const r=this.getIndex(t,e,s),i=this.aquiferLocationCache[r];if(l.equals(i,l.ZERO))return i;const n=this.random.at(t,e,s),o=l.create(t*fe.X_SPACING+n.nextInt(10),e*fe.Y_SPACING+n.nextInt(9),s*fe.Z_SPACING+n.nextInt(10));return this.aquiferLocationCache[r]=o,o}getIndex(t,e,s){const r=t-this.minGridX,i=e-this.minGridY,n=s-this.minGridZ,o=(i*this.gridSizeZ+n)*this.gridSizeX+r;if(o<0||o>=this.gridSize)throw new Error(`Invalid aquifer index at ${t} ${e} ${s}: 0 <= ${o} < ${this.gridSize}`);return o}gridX(t){return Math.floor(t/fe.X_SPACING)}gridY(t){return Math.floor(t/fe.Y_SPACING)}gridZ(t){return Math.floor(t/fe.Z_SPACING)}};let me=fe;var de,pe;me.X_SPACING=16,me.Y_SPACING=12,me.Z_SPACING=16,me.SURFACE_SAMPLING=[[-2,-1],[-1,-1],[0,-1],[1,-1],[-3,0],[-2,0],[-1,0],[0,0],[1,0],[-2,1],[-1,1],[0,1],[1,1]],function(t){function e(t,e){return\"number\"==typeof t?new s(t,null!=e?e:t):t}t.target=function(t,e,s,r,n,o){return new i(t,e,s,r,n,o)},t.parameters=function(t,s,i,n,o,a,l){return new r(e(t),e(s),e(i),e(n),e(o),e(a),l)},t.param=e;class s{constructor(t,e){this.min=t,this.max=e}distance(t){const e=(\"number\"==typeof t?t:t.min)-this.max,s=this.min-(\"number\"==typeof t?t:t.max);return e>0?e:Math.max(s,0)}union(t){return new s(Math.min(this.min,t.min),Math.max(this.max,t.max))}static fromJson(t){var e;if(\"number\"==typeof t)return new s(t,t);const[r,i]=null!=(e=B.readArray(t,(t=>B.readNumber(t))))?e:[];return new s(null!=r?r:0,null!=i?i:0)}}t.Param=s;class r{constructor(t,e,s,r,i,n,o){this.temperature=t,this.humidity=e,this.continentalness=s,this.erosion=r,this.depth=i,this.weirdness=n,this.offset=o}fittness(t){return W(this.temperature.distance(t.temperature))+W(this.humidity.distance(t.humidity))+W(this.continentalness.distance(t.continentalness))+W(this.erosion.distance(t.erosion))+W(this.depth.distance(t.depth))+W(this.weirdness.distance(t.weirdness))+W(this.offset-t.offset)}space(){return[this.temperature,this.humidity,this.continentalness,this.erosion,this.depth,this.weirdness,new s(this.offset,this.offset)]}static fromJson(t){var e,i;const n=null!=(e=B.readObject(t))?e:{};return new r(s.fromJson(n.temperature),s.fromJson(n.humidity),s.fromJson(n.continentalness),s.fromJson(n.erosion),s.fromJson(n.depth),s.fromJson(n.weirdness),null!=(i=B.readInt(n.offset))?i:0)}}t.ParamPoint=r;class i{constructor(t,e,s,r,i,n){this.temperature=t,this.humidity=e,this.continentalness=s,this.erosion=r,this.depth=i,this.weirdness=n}get offset(){return 0}toArray(){return[this.temperature,this.humidity,this.continentalness,this.erosion,this.depth,this.weirdness,this.offset]}}t.TargetPoint=i;t.Parameters=class{constructor(t){this.things=t,this.index=new o(t)}find(t){return this.index.search(t,((t,e)=>t.distance(e)))}};t.Sampler=class{constructor(t,e,s,r,i,n){this.temperature=t,this.humidity=e,this.continentalness=s,this.erosion=r,this.depth=i,this.weirdness=n}static fromRouter(e){return new t.Sampler(e.temperature,e.vegetation,e.continents,e.erosion,e.depth,e.ridges)}sample(e,s,r){const i=he.context(e<<2,s<<2,r<<2);return t.target(this.temperature.compute(i),this.humidity.compute(i),this.continentalness.compute(i),this.erosion.compute(i),this.depth.compute(i),this.weirdness.compute(i))}};const n=class{constructor(t){this.root=n.build(t.map((([t,e])=>new u(t,e))))}static build(t){if(1===t.length)return t[0];if(t.length<=n.CHILDREN_PER_NODE){const e=t.map((t=>{let e=0;for(let s=0;s<7;s+=1){const r=t.space[s];e+=Math.abs((r.min+r.max)/2)}return{key:e,node:t}})).sort(((t,e)=>t.key-e.key)).map((({node:t})=>t));return new l(e)}let e=1/0,s=-1,r=[];for(let i=0;i<7;++i){t=n.sort(t,i,!1),r=n.bucketize(t);let o=0;for(const t of r)o+=n.area(t.space);e>o&&(e=o,s=i)}return t=n.sort(t,s,!1),r=n.bucketize(t),r=n.sort(r,s,!0),new l(r.map((t=>n.build(t.children))))}static sort(t,e,s){return t.map((t=>{const r=t.space[e],i=(r.min+r.max)/2;return{key:s?Math.abs(i):i,node:t}})).sort(((t,e)=>t.key-e.key)).map((({node:t})=>t))}static bucketize(t){const e=[];let s=[];const r=Math.pow(10,Math.floor(Math.log(t.length-.01)/Math.log(10)));for(const i of t)s.push(i),s.length<r||(e.push(new l(s)),s=[]);return 0!==s.length&&e.push(new l(s)),e}static area(t){let e=0;for(const s of t)e+=Math.abs(s.max-s.min);return e}search(t,e){return this.root.search(t.toArray(),e).thing()}};let o=n;o.CHILDREN_PER_NODE=10,t.RTree=o;class a{constructor(t){this.space=t}distance(t){let e=0;for(let s=0;s<7;s+=1)e+=W(this.space[s].distance(t[s]));return e}}t.RNode=a;class l extends a{constructor(t){super(l.buildSpace(t)),this.children=t}static buildSpace(t){let e=[...Array(7)].map((()=>new s(1/0,-1/0)));for(const s of t)e=[...Array(7)].map(((t,r)=>e[r].union(s.space[r])));return e}search(t,e){let s=1/0,r=null;for(const i of this.children){const n=e(i,t);if(s<=n)continue;const o=i.search(t,e),a=i==o?n:e(o,t);s<=a||(s=a,r=o)}return r}}t.RSubTree=l;class u extends a{constructor(t,e){super(t.space()),this.thing=e}search(){return this}}t.RLeaf=u}(de||(de={}));class ge{constructor(t){this.biome=t}getBiome(){return this.biome}static fromJson(t){var e,s;const r=null!=(e=B.readObject(t))?e:{},i=C.parse(null!=(s=B.readString(r.biome))?s:\"minecraft:the_void\");return new ge(i)}}class ve{constructor(t){this.parameters=t}getBiome(t,e,s,r){const i=r.sample(t,e,s);return this.parameters.find(i)}static fromJson(t){var e,s;const r=null!=(e=B.readObject(t))?e:{},i=(null!=(s=B.readArray(r.biomes,(t=>{var e,s,r;return s=null!=(e=B.readObject(t))?e:{},{biome:C.parse(null!=(r=B.readString(s.biome))?r:\"minecraft:the_void\"),parameters:de.ParamPoint.fromJson(s.parameters)}})))?s:[]).map((t=>[t.parameters,()=>t.biome]));return new ve(new de.Parameters(i))}}!function(t){function e(t,e,s){return le.NOISE.register(C.create(t),Nt.create(e,s))}t.TEMPERATURE=e(\"temperature\",-10,[1.5,0,1,0,0,0]),t.VEGETATION=e(\"vegetation\",-8,[1,1,0,0,0,0]),t.CONTINENTALNESS=e(\"continentalness\",-9,[1,1,2,2,2,1,1,1,1]),t.EROSION=e(\"erosion\",-9,[1,1,0,1,1]),t.TEMPERATURE_LARGE=e(\"temperature_large\",-12,[1.5,0,1,0,0,0]),t.VEGETATION_LARGE=e(\"vegetation_large\",-10,[1,1,0,0,0,0]),t.CONTINENTALNESS_LARGE=e(\"continentalness_large\",-11,[1,1,2,2,2,1,1,1,1]),t.EROSION_LARGE=e(\"erosion_large\",-11,[1,1,0,1,1]),t.RIDGE=e(\"ridge\",-7,[1,2,1,0,0,0]),t.SHIFT=e(\"offset\",-3,[1,1,1,0]),t.AQUIFER_BARRIER=e(\"aquifer_barrier\",-3,[1]),t.AQUIFER_FLUID_LEVEL_FLOODEDNESS=e(\"aquifer_fluid_level_floodedness\",-7,[1]),t.AQUIFER_FLUID_LEVEL_SPREAD=e(\"aquifer_fluid_level_spread\",-5,[1]),t.AQUIFER_LAVA=e(\"aquifer_lava\",-1,[1]),t.PILLAR=e(\"pillar\",-7,[1,1]),t.PILLAR_RARENESS=e(\"pillar_rareness\",-8,[1]),t.PILLAR_THICKNESS=e(\"pillar_thickness\",-8,[1]),t.SPAGHETTI_2D=e(\"spaghetti_2d\",-8,[1]),t.SPAGHETTI_2D_ELEVATION=e(\"spaghetti_2d_elevation\",-8,[1]),t.SPAGHETTI_2D_MODULATOR=e(\"spaghetti_2d_modulator\",-8,[1]),t.SPAGHETTI_2D_THICKNESS=e(\"spaghetti_2d_thickness\",-8,[1]),t.SPAGHETTI_3D_1=e(\"spaghetti_3d_1\",-8,[1]),t.SPAGHETTI_3D_2=e(\"spaghetti_3d_2\",-8,[1]),t.SPAGHETTI_3D_RARITY=e(\"spaghetti_3d_rarity\",-8,[1]),t.SPAGHETTI_3D_THICKNESS=e(\"spaghetti_3d_thickness\",-8,[1]),t.SPAGHETTI_ROUGHNESS=e(\"spaghetti_roughness\",-8,[1]),t.SPAGHETTI_ROUGHNESS_MODULATOR=e(\"spaghetti_roughness_modulator\",-8,[1]),t.CAVE_ENTRANCE=e(\"cave_entrance\",-7,[.4,.5,1]),t.CAVE_LAYER=e(\"cave_layer\",-8,[1]),t.CAVE_CHEESE=e(\"cave_cheese\",-8,[.5,1,2,1,2,1,0,2,0]),t.NOODLE=e(\"noodle\",-8,[1]),t.NOODLE_THICKNESS=e(\"noodle_thickness\",-8,[1]),t.NOODLE_RIDGE_A=e(\"noodle_ridge_a\",-7,[1]),t.NOODLE_RIDGE_B=e(\"noodle_ridge_b\",-7,[1]),t.JAGGED=e(\"jagged\",-16,[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]),t.SURFACE=e(\"surface\",-6,[1,1,1]),t.SURFACE_SECONDARY=e(\"surface_secondary\",-6,[1,1,0,1]);const s=new Map;t.instantiate=function(t,e){var r;const i=null==(r=e.key())?void 0:r.toString();if(!i)throw new Error(\"Cannot instantiate noise from direct holder\");const n=t.seedKey(),o=s.get(i);if(o&&o[0]===n[0]&&o[1]===n[1])return o[2];const a=new It(t.fromHashOf(i),e.value());return s.set(i,[n[0],n[1],a]),a}}(pe||(pe={}));var we,be,xe,Se,_e,Ae,ye,Ee=Object.defineProperty,Ie=Object.defineProperties,Ne=Object.getOwnPropertyDescriptors,Be=Object.getOwnPropertySymbols,Re=Object.prototype.hasOwnProperty,Te=Object.prototype.propertyIsEnumerable,Me=(t,e,s)=>e in t?Ee(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s,Ce=(t,e)=>{for(var s in e||(e={}))Re.call(e,s)&&Me(t,s,e[s]);if(Be)for(var s of Be(e))Te.call(e,s)&&Me(t,s,e[s]);return t};!function(t){const e=t=>j.parser(le.DENSITY_FUNCTION,he.fromJson)(t).value();t.fromJson=function(t){var s;const r=null!=(s=B.readObject(t))?s:{};return{barrier:e(r.barrier),fluidLevelFloodedness:e(r.fluid_level_floodedness),fluidLevelSpread:e(r.fluid_level_spread),lava:e(r.lava),temperature:e(r.temperature),vegetation:e(r.vegetation),continents:e(r.continents),erosion:e(r.erosion),depth:e(r.depth),ridges:e(r.ridges),initialDensityWithoutJaggedness:e(r.initial_density_without_jaggedness),finalDensity:e(r.final_density),veinToggle:e(r.vein_toggle),veinRidged:e(r.vein_ridged),veinGap:e(r.vein_gap)}},t.create=function(t){return Ce({barrier:he.Constant.ZERO,fluidLevelFloodedness:he.Constant.ZERO,fluidLevelSpread:he.Constant.ZERO,lava:he.Constant.ZERO,temperature:he.Constant.ZERO,vegetation:he.Constant.ZERO,continents:he.Constant.ZERO,erosion:he.Constant.ZERO,depth:he.Constant.ZERO,ridges:he.Constant.ZERO,initialDensityWithoutJaggedness:he.Constant.ZERO,finalDensity:he.Constant.ZERO,veinToggle:he.Constant.ZERO,veinRidged:he.Constant.ZERO,veinGap:he.Constant.ZERO},t)},t.withSettings=function(t,e,r,i=!1){const n=(i?new dt(r):vt.create(r)).forkPositional(),o=new s(n,e);return a=Ce({},o.mapAll(t)),l={aquiferPositionalRandomFactory:n.fromHashOf(C.create(\"aquifer\").toString()).forkPositional(),oreVeinsPositionalRandomFactory:n.fromHashOf(C.create(\"ore\").toString()).forkPositional()},Ie(a,Ne(l));var a,l};class s{constructor(t,e){this.random=t,this.settings=e,this.mapped=new Map}map(t){if(t instanceof he.HolderHolder){const e=t.holder.key();if(void 0!==e&&this.mapped.has(e.toString()))return this.mapped.get(e.toString());{const s=t.holder.value().mapAll(this);return void 0!==e&&this.mapped.set(e.toString(),s),s}}if(t instanceof he.Interpolated)return t.withCellSize(ne.cellWidth(this.settings),ne.cellHeight(this.settings));if(t instanceof he.Noise)return new he.Noise(t.xzScale,t.yScale,t.noiseData,pe.instantiate(this.random,t.noiseData));if(t instanceof he.ShiftNoise)return t.withNewNoise(pe.instantiate(this.random,t.noiseData));if(t instanceof he.ShiftedNoise){const e=pe.instantiate(this.random,t.noiseData);return new he.ShiftedNoise(t.shiftX,t.shiftY,t.shiftZ,t.xzScale,t.yScale,t.noiseData,e)}return t instanceof he.WeirdScaledSampler?new he.WeirdScaledSampler(t.input,t.rarityValueMapper,t.noiseData,pe.instantiate(this.random,t.noiseData)):t instanceof he.OldBlendedNoise?new he.OldBlendedNoise(new At(this.random.fromHashOf(C.create(\"terrain\").toString()),this.settings.sampling,ne.cellWidth(this.settings),ne.cellHeight(this.settings))):t instanceof he.Mapped||t instanceof he.Ap2?t.withMinMax():t instanceof he.TerrainShaperSpline?new he.TerrainShaperSpline(t.continentalness,t.erosion,t.weirdness,t.spline,t.min,t.max,this.settings.terrainShaper):t instanceof he.Slide?new he.Slide(t.input,this.settings):t}mapAll(t){return{barrier:t.barrier.mapAll(this),fluidLevelFloodedness:t.fluidLevelFloodedness.mapAll(this),fluidLevelSpread:t.fluidLevelSpread.mapAll(this),lava:t.lava.mapAll(this),temperature:t.temperature.mapAll(this),vegetation:t.vegetation.mapAll(this),continents:t.continents.mapAll(this),erosion:t.erosion.mapAll(this),depth:t.depth.mapAll(this),ridges:t.ridges.mapAll(this),initialDensityWithoutJaggedness:t.initialDensityWithoutJaggedness.mapAll(this),finalDensity:t.finalDensity.mapAll(this),veinToggle:t.veinToggle.mapAll(this),veinRidged:t.veinRidged.mapAll(this),veinGap:t.veinGap.mapAll(this)}}}t.Visitor=s,t.computePreliminarySurfaceLevelScanning=function(t,e,s,r){const i=ne.minCellY(t)+ne.cellCountY(t),n=ne.minCellY(t),o=ne.cellHeight(t);for(let a=i;a>=n;a-=1){const i=a*o,n=$(e.compute(he.context(s,i,r)),-64,64);if(ne.applySlides(t,n,i)>=.390625)return i}return Number.MAX_SAFE_INTEGER}}(we||(we={}));class Oe{constructor(t,e,s,r,i,n,o,a,l){this.cellCountXZ=t,this.cellCountY=e,this.cellNoiseMinY=s,this.router=r,this.minX=i,this.minZ=n,this.settings=o,this.preliminarySurfaceLevel=new Map,this.cellWidth=ne.cellWidth(o),this.cellHeight=ne.cellHeight(o),this.firstCellX=Math.floor(i/this.cellWidth),this.firstCellZ=Math.floor(n/this.cellWidth),this.firstNoiseX=i>>2,this.firstNoiseZ=n>>2,this.noiseSizeXZ=t*this.cellWidth>>2,this.aquifer=ue.createDisabled(l);const u=this.router.finalDensity;this.materialRule=be.fromList([t=>this.aquifer.compute(t,u.compute(t))]),this.initialDensityWithoutJaggedness=this.router.initialDensityWithoutJaggedness}getFinalState(t,e,s){return this.materialRule({x:t,y:e,z:s})}getPreliminarySurfaceLevel(t,e){return T(this.preliminarySurfaceLevel,X.asLong(t,e),(()=>we.computePreliminarySurfaceLevelScanning(this.settings,this.initialDensityWithoutJaggedness,t<<2,e<<2)))}getAquifer(){return this.aquifer}}(be||(be={})).fromList=function(t){return e=>{for(const s of t){const t=s(e);if(t)return t}}},(xe||(xe={})).fromJson=function(t){var e,s,r,i;const n=null!=(e=B.readObject(t))?e:{};return void 0!==n.absolute?(o=null!=(s=B.readNumber(n.absolute))?s:0,()=>o):void 0!==n.above_bottom?function(t){return e=>e.minY+t}(null!=(r=B.readNumber(n.above_bottom))?r:0):void 0!==n.below_top?function(t){return e=>e.maxY-t}(null!=(i=B.readNumber(n.below_top))?i:0):()=>0;var o},(Se||(Se={})).create=function(t,e){return{minY:t,height:e,maxY:t+e-1}};class ke{constructor(t,e,s){this.rule=t,this.defaultBlock=e,this.random=vt.create(s).forkPositional(),this.surfaceNoise=pe.instantiate(this.random,pe.SURFACE),this.surfaceSecondaryNoise=pe.instantiate(this.random,pe.SURFACE_SECONDARY),this.positionalRandoms=new Map}buildSurface(t,e,s,r){const i=X.minBlockX(t.pos),n=X.minBlockZ(t.pos),o=new Pe(this,t,e,s,r),a=this.rule(o);for(let e=0;e<16;e+=1){const s=i+e;for(let e=0;e<1;e+=1){const r=n+e;o.updateXZ(s,r);let i=0,u=Number.MIN_SAFE_INTEGER,h=Number.MAX_SAFE_INTEGER;for(let e=t.maxY;e>=t.minY;e-=1){const n=l.create(s,e,r),c=t.getBlockState(n);if(c.equals(G.AIR)){i=0,u=Number.MIN_SAFE_INTEGER;continue}if(c.isFluid()){u===Number.MIN_SAFE_INTEGER&&(u=e+1);continue}if(h>=e){h=Number.MIN_SAFE_INTEGER;for(let i=e-1;i>=t.minY;i-=1){const e=t.getBlockState(l.create(s,i,r));if(e.equals(G.AIR)||e.isFluid()){h=i+1;break}}}i+=1;const f=e-h+1;if(!c.equals(this.defaultBlock))continue;o.updateY(i,f,u,e);const m=a(s,e,r);m&&t.setBlockState(n,m)}}}}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 T(this.positionalRandoms,t,(()=>this.random.fromHashOf(t)))}}class Pe{constructor(t,e,s,r,i){this.system=t,this.chunk=e,this.noiseChunk=s,this.context=r,this.getBiome=i,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=R((()=>this.system.getSurfaceSecondary(t,e))),this.minSurfaceLevel=R((()=>this.calculateMinSurfaceLevel(t,e)))}updateY(t,e,s,r){this.blockY=r,this.stoneDepthAbove=t,this.stoneDepthBelow=e,this.waterHeight=s,this.biome=R((()=>this.getBiome(l.create(this.blockX,this.blockY,this.blockZ))))}calculateMinSurfaceLevel(t,e){const s=t>>4,r=e>>4,i=this.noiseChunk.getPreliminarySurfaceLevel(s<<4,r<<4),n=this.noiseChunk.getPreliminarySurfaceLevel(s+1<<4,r<<4),o=this.noiseChunk.getPreliminarySurfaceLevel(s<<4,r+1<<4),a=this.noiseChunk.getPreliminarySurfaceLevel(s+1<<4,r+1<<4);return Math.floor(Q((15&t)/16,(15&e)/16,i,n,o,a))+this.surfaceDepth-8}}!function(t){function e(t){return()=>()=>t}function s(t){return e=>{const s=t.map((t=>t(e)));return(t,e,r)=>{for(const i of s){const s=i(t,e,r);if(s)return s}}}}function r(t,e){return s=>(r,i,n)=>{if(t(s))return e(s)(r,i,n)}}t.NOOP=()=>()=>{},t.fromJson=function(i){var n,o,a;const l=null!=(n=B.readObject(i))?n:{};switch(null==(o=B.readString(l.type))?void 0:o.replace(/^minecraft:/,\"\")){case\"block\":return e(G.fromJson(l.result_state));case\"sequence\":return s(null!=(a=B.readArray(l.sequence,t.fromJson))?a:[]);case\"condition\":return r(Ae.fromJson(l.if_true),t.fromJson(l.then_run))}return t.NOOP},t.block=e,t.sequence=s,t.condition=r}(_e||(_e={})),function(t){function e(){return t=>t.blockY>=t.minSurfaceLevel()}function s(t){const e=new Set(t);return t=>e.has(t.biome())}function r(t){return e=>!t(e)}function i(t,e,s,r){return i=>{const n=r?i.stoneDepthBelow:i.stoneDepthAbove,o=e?i.surfaceDepth:0,a=0===s?0:at(i.surfaceSecondary(),-1,1,0,s);return n<=1+t+o+a}}function n(t,e,s){return r=>{const i=e(r.context),n=s(r.context);if(r.blockY<=i)return!0;if(r.blockY>=n)return!1;const o=r.system.getRandom(t),a=at(r.blockY,i,n,1,0);return o.nextFloat()<a}}function o(t,e,s){return r=>{if(r.waterHeight===Number.MIN_SAFE_INTEGER)return!0;const i=s?r.stoneDepthAbove:0;return r.blockY+i>=r.waterHeight+t+r.surfaceDepth*e}}function a(t,e,s){return r=>{const i=s?r.stoneDepthAbove:0;return r.blockY+i>=t(r.context)+r.surfaceDepth*e}}t.FALSE=()=>!1,t.TRUE=()=>!0,t.fromJson=function(e){var l,u,h,c,f,m,d,p,g,v,w,b;const x=null!=(l=B.readObject(e))?l:{};switch(null==(u=B.readString(x.type))?void 0:u.replace(/^minecraft:/,\"\")){case\"above_preliminary_surface\":return t=>t.blockY>=t.minSurfaceLevel();case\"biome\":return s(null!=(h=B.readArray(x.biome_is,(t=>{var e;return null!=(e=B.readString(t))?e:\"\"})))?h:[]);case\"not\":return r(t.fromJson(x.invert));case\"stone_depth\":return i(null!=(c=B.readInt(x.offset))?c:0,null!=(f=B.readBoolean(x.add_surface_depth))&&f,null!=(m=B.readInt(x.secondary_depth_range))?m:0,\"ceiling\"===B.readString(x.surface_type));case\"vertical_gradient\":return n(null!=(d=B.readString(x.random_name))?d:\"\",xe.fromJson(x.true_at_and_below),xe.fromJson(x.false_at_and_above));case\"water\":return o(null!=(p=B.readInt(x.offset))?p:0,null!=(g=B.readInt(x.surface_depth_multiplier))?g:0,null!=(v=B.readBoolean(x.add_surface_depth))&&v);case\"y_above\":return a(xe.fromJson(x.anchor),null!=(w=B.readInt(x.surface_depth_multiplier))?w:0,null!=(b=B.readBoolean(x.add_surface_depth))&&b)}return t.FALSE},t.abovePreliminarySurface=e,t.biome=s,t.not=r,t.stoneDepth=i,t.verticalGradient=n,t.water=o,t.yAbove=a}(Ae||(Ae={}));class Le{constructor(t,e,s){this.biomeSource=e,this.settings=s,this.router=we.withSettings(s.noiseRouter,s.noise,t,s.legacyRandomSource),this.noiseChunkCache=new Map,this.surfaceSystem=new ke(s.surfaceRule,s.defaultBlock,t);const r=new ce(-54,G.LAVA),i=new ce(s.seaLevel,s.defaultFluid);this.globalFluidPicker=(t,e,n)=>e<Math.min(-54,s.seaLevel)?r:i}fill(t,e=!1){var s;const r=Math.max(t.minY,this.settings.noise.minY),i=Math.min(t.maxY,this.settings.noise.minY+this.settings.noise.height),n=ne.cellWidth(this.settings.noise),o=ne.cellHeight(this.settings.noise),a=Math.floor(16/n),l=Math.floor(r/o),u=Math.floor((i-r)/o),h=X.minBlockX(t.pos),c=X.minBlockZ(t.pos),f=this.getNoiseChunk(t);for(let r=0;r<a;r+=1)for(let i=0;i<(e?1:a);i+=1){let a=t.getOrCreateSection(t.sectionsCount-1);for(let m=u-1;m>=0;m-=1)for(let u=o-1;u>=0;u-=1){const d=(l+m)*o+u,p=15&d,g=t.getSectionIndex(d);t.getSectionIndex(a.minBlockY)!==g&&(a=t.getOrCreateSection(g));for(let t=0;t<n;t+=1){const o=h+r*n+t,l=15&o;for(let t=0;t<(e?1:n);t+=1){const e=c+i*n+t,r=15&e,u=null!=(s=f.getFinalState(o,d,e))?s:this.settings.defaultBlock;a.setBlockState(l,p,r,u)}}}}}buildSurface(t,e=\"minecraft:plains\"){const s=this.getNoiseChunk(t),r=Se.create(this.settings.noise.minY,this.settings.noise.height);this.surfaceSystem.buildSurface(t,s,r,(()=>e))}getNoiseChunk(t){return T(this.noiseChunkCache,X.toLong(t.pos),(()=>{const e=Math.max(t.minY,this.settings.noise.minY),s=Math.min(t.maxY,this.settings.noise.minY+this.settings.noise.height),r=ne.cellWidth(this.settings.noise),i=ne.cellHeight(this.settings.noise),n=Math.floor(16/r),o=Math.floor(e/i),a=Math.floor((s-e)/i),l=X.minBlockX(t.pos),u=X.minBlockZ(t.pos);return new Oe(n,a,o,this.router,l,u,this.settings.noise,this.settings.aquifersEnabled,this.globalFluidPicker)}))}}(ye||(ye={})).fromJson=function(t){var e,s,r,i,n,o;const a=null!=(e=B.readObject(t))?e:{};return{surfaceRule:_e.fromJson(a.surface_rule),noise:ne.fromJson(a.noise),defaultBlock:G.fromJson(a.default_block),defaultFluid:G.fromJson(a.default_fluid),noiseRouter:we.fromJson(a.noise_router),seaLevel:null!=(s=B.readInt(a.sea_level))?s:0,disableMobGeneration:null!=(r=B.readBoolean(a.disable_mob_generation))&&r,aquifersEnabled:null!=(i=B.readBoolean(a.aquifers_enabled))&&i,oreVeinsEnabled:null!=(n=B.readBoolean(a.ore_veins_enabled))&&n,legacyRandomSource:null!=(o=B.readBoolean(a.legacy_random_source))&&o}};export{ue as Aquifer,At as BlendedNoise,Dt as BlockColors,Yt as BlockDefinition,qt as BlockModel,l as BlockPos,G as BlockState,H as Chunk,X as ChunkPos,Y as ChunkSection,de as Climate,ft as CubicSpline,he as DensityFunction,n as Direction,ge as FixedBiome,ce as FluidStatus,j as Holder,C as Identifier,St as ImprovedNoise,pt as LegacyPositionalRandom,dt as LegacyRandom,be as MaterialRule,ve as MultiNoise,f as NbtReader,m as NbtWriter,me as NoiseAquifer,Oe as NoiseChunk,Le as NoiseChunkGenerator,ye as NoiseGeneratorSettings,Nt as NoiseParameters,we as NoiseRouter,yt as NoiseSamplingSettings,ne as NoiseSettings,oe as NoiseSlideSettings,pe as Noises,It as NormalNoise,_t as PerlinNoise,Rt as PerlinSimplexNoise,q as Registry,xt as SimplexNoise,J as Structure,te as StructureRenderer,Ae as SurfaceCondition,Pe as SurfaceContext,_e as SurfaceRule,ke as SurfaceSystem,ie as TerrainShaper,se as TextureAtlas,xe as VerticalAnchor,Se as WorldgenContext,le as WorldgenRegistries,wt as XoroshiroPositionalRandom,vt as XoroshiroRandom,ut as binarySearch,$ as clamp,it as clampedLerp,lt as clampedMap,I as getListTag,N as getOptional,ht as getSeed,E as getTag,nt as inverseLerp,et as lazyLerp,st as lazyLerp2,rt as lazyLerp3,K as lerp,Q as lerp2,tt as lerp3,ct as longfromBytes,at as map,g as read,w as readChunk,p as readCompressed,v as readRegion,d as readUncompressed,ot as smoothstep,W as square,c as tagNames,h as tagTypes,S as write,A as writeChunk,x as writeCompressed,_ as writeRegion,b 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__\"","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<t;i++)e.push(this.byte());return e}intArray(){const t=this.int(),e=[];for(let i=0;i<t;i++)e.push(this.int());return e}longArray(){const t=this.int(),e=[];for(let i=0;i<t;i++)e.push(this.long());return e}string(){const t=this.short(),e=this.arrayView.slice(this.offset,this.offset+t);return this.offset+=t,function(t){var e,i=[];for(e=0;e<t.length;e++)0==(128&t[e])?i.push(127&t[e]):e+1<t.length&&192==(224&t[e])&&128==(192&t[e+1])?i.push((31&t[e])<<6|63&t[e+1]):e+2<t.length&&224==(240&t[e])&&128==(192&t[e+1])&&128==(192&t[e+2])?i.push((15&t[e])<<12|(63&t[e+1])<<6|63&t[e+2]):e+3<t.length&&240==(248&t[e])&&128==(192&t[e+1])&&128==(192&t[e+2])&&128==(192&t[e+3])&&i.push((7&t[e])<<18|(63&t[e+1])<<12|(63&t[e+2])<<6|63&t[e+3]);return String.fromCharCode.apply(null,i)}(e)}list(){const t=h[this.byte()],e=this.int(),i=[];for(let s=0;s<e;s++)i.push(this[t]());return{type:t,value:i}}compound(){const t={};for(;;){const e=h[this.byte()];if(\"end\"===e)break;const i=this.string(),s=this[e]();t[i]={type:e,value:s}}return t}}class c{constructor(t=!1){this.byte=this.writeNum.bind(this,\"setInt8\",1),this.short=this.writeNum.bind(this,\"setInt16\",2),this.int=this.writeNum.bind(this,\"setInt32\",4),this.float=this.writeNum.bind(this,\"setFloat32\",4),this.double=this.writeNum.bind(this,\"setFloat64\",8),this.offset=0,this.littleEndian=t,this.buffer=new ArrayBuffer(1024),this.arrayView=new Uint8Array(this.buffer),this.dataView=new DataView(this.buffer)}accommodate(t){const e=this.offset+t;if(this.buffer.byteLength>=e)return;let i=this.buffer.byteLength;for(;i<e;)i*=2;const s=new ArrayBuffer(i),n=new Uint8Array(s);n.set(this.arrayView),this.offset>this.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<t.length;e++)this.int(t[e])}longArray(t){this.int(t.length);for(let e=0;e<t.length;e++)this.long(t[e])}string(t){const e=function(t){var e,i,s=[];for(e=0;e<t.length;e++)(i=t.charCodeAt(e))<128?s.push(i):i<2048?(s.push(192|i>>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<t.value.length;e++)this[t.type](t.value[e])}compound(t){for(const e in t)this.byte(l[t[e].type]),this.string(e),this[t[e].type](t[e].value);this.byte(l.end)}}function d(t,e){const i=new u(t,e);if(i.byte()!==l.compound)throw new Error(\"Top tag should be a compound\");return{name:i.string(),value:i.compound()}}function f(e,i){return d(t.inflate(e),i)}function g(t,e){return 2===(i=new Uint8Array(t.slice(0,2))).length&&31===i[0]&&139===i[1]?{compressed:!0,result:f(t,e)}:{compressed:!1,result:d(t,e)};var i}function p(t){const e=[];for(let i=0;i<32;i+=1)for(let s=0;s<32;s+=1){const n=4*((31&i)+32*(31&s));if(0===t[n+3])continue;const r=(t[n]<<16)+(t[n+1]<<8)+t[n+2],o=(t[n+4096]<<24)+(t[n+4097]<<16)+(t[n+4098]<<8)+t[n+4099],a=4096*r,l=(t[a]<<24)+(t[a+1]<<16)+(t[a+2]<<8)+t[a+3],h=t[a+4],u=t.slice(a+5,a+4+l);e.push({x:i,z:s,timestamp:o,compression:h,data:u})}return e}function m(t,e,i){const s=w(t,e,i);switch(s.compression){case 1:case 2:s.nbt=f(s.data);break;case 3:s.nbt=d(s.data);break;default:throw new Error(`Invalid compression mode ${s.compression}`)}return s}function v(t,e){const i=new c(e);return i.byte(l.compound),i.string(t.name),i.compound(t.value),i.getData()}function b(e,i,s){const n=v(e,i);return t[s?\"deflate\":\"gzip\"](n)}function S(t,e,i){return e?b(t,i):v(t,i)}function E(t){let e=0;for(const i of t)e+=Math.ceil(i.data.length/4096);const i=new Uint8Array(8192+4096*e),s=new DataView(i.buffer);let n=2;for(const e of t){const t=4*((31&e.x)+32*(31&e.z)),r=Math.ceil(e.data.length/4096);s.setInt8(t,n>>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)<<BigInt(32)}t.create=function(t,e){return[t,e]},t.fromBlockPos=function(t){return[t[0]>>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]<this.size[0]&&t[1]>=0&&t[1]<this.size[1]&&t[2]>=0&&t[2]<this.size[2]}static fromNbt(t){const e=N(t.value,\"size\",\"int\",3),i=N(t.value,\"palette\",\"compound\").map((t=>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(56)|BigInt(e)<<BigInt(48)|BigInt(i)<<BigInt(40)|BigInt(s)<<BigInt(32)|BigInt(n)<<BigInt(24)|BigInt(r)<<BigInt(16)|BigInt(o)<<BigInt(8)|BigInt(a)}class q{constructor(t){this.seed=BigInt(0),this.setSeed(t)}fork(){return new q(this.nextLong())}forkPositional(){return new $(this.seed)}setSeed(t){this.seed=t^q.MULTIPLIER&q.MODULUS_MASK}advance(){this.seed=this.seed*q.MULTIPLIER+q.INCREMENT&q.MODULUS_MASK}consume(t){for(let e=0;e<t;e+=1)this.advance()}next(t){this.advance();const e=Number(this.seed>>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(32))+BigInt(this.next(32))}nextFloat(){return this.next(24)*q.FLOAT_MULTIPLIER}nextDouble(){const t=this.next(30);return this.advance(),t*q.DOUBLE_MULTIPLIER}}q.MODULUS_BITS=48,q.MODULUS_MASK=BigInt(\"281474976710655\"),q.MULTIPLIER=BigInt(\"25214903917\"),q.INCREMENT=BigInt(\"11\"),q.FLOAT_MULTIPLIER=1/Math.pow(2,24),q.DOUBLE_MULTIPLIER=1/Math.pow(2,30);class ${constructor(t){this.seed=t}at(t,e,i){const s=Z(t,e,i);return new q(s^this.seed)}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]);return new q(s^this.seed)}}class K{constructor(t){this.seed=[BigInt(0),BigInt(0)],this.seed=t}static create(t){return new K(K.upgradeSeedTo128bit(t))}static mixStafford13(t){return((t=((t=(t^t>>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<<e&BigInt(\"0xFFFFFFFFFFFFFFFF\")|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(21)&BigInt(\"0xFFFFFFFFFFFFFFFF\"),K.rotateLeft(e,BigInt(28))],i}nextLong(){let t=this.next();return t>BigInt(\"0x8000000000000000\")&&(t-=BigInt(\"0x10000000000000000\")),t}consume(t){let e=this.seed[0],i=this.seed[1];for(let s=0;s<t;s+=1)i^=e,e=K.rotateLeft(e,BigInt(49))^i^i<<BigInt(21),i=K.rotateLeft(i,BigInt(28));this.seed=[e,i]}nextBits(t){return this.next()>>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<i){const t=((~i&BigInt(4294967295))+BigInt(1))%i;for(;n<t;)e=this.next()&BigInt(4294967295),s=e*i,n=s&BigInt(4294967295)}const r=s>>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):h<u?(c=0,d=0,f=1,g=0,p=1,m=1):l<u?(c=0,d=1,f=0,g=0,p=1,m=1):(c=0,d=1,f=0,g=1,p=1,m=0);const v=l-c+.16666666666666666,b=h-d+.16666666666666666,S=u-f+.16666666666666666,E=l-g+.3333333333333333,I=h-p+.3333333333333333,w=u-m+.3333333333333333,A=l-.5,N=h-.5,F=u-.5,_=255&n,y=255&r,P=255&o,R=this.P(_+this.P(y+this.P(P)))%12,B=this.P(_+c+this.P(y+d+this.P(P+f)))%12,x=this.P(_+g+this.P(y+p+this.P(P+m)))%12,T=this.P(_+1+this.P(y+1+this.P(P+1)))%12;return 32*(this.getCornerNoise3D(R,l,h,u,.6)+this.getCornerNoise3D(B,v,b,S,.6)+this.getCornerNoise3D(x,E,I,w,.6)+this.getCornerNoise3D(T,A,N,F,.6))}P(t){return this.p[255&t]}getCornerNoise3D(t,e,i,s,n){let r,o=n-e*e-i*i-s*s;return o<0?r=0:(o*=o,r=o*o*tt.gradDot(t,e,i,s)),r}static gradDot(t,e,i,s){const n=tt.GRADIENT[15&t];return n[0]*e+n[1]*i+n[2]*s}}tt.GRADIENT=[[1,1,0],[-1,1,0],[1,-1,0],[-1,-1,0],[1,0,1],[-1,0,1],[1,0,-1],[-1,0,-1],[0,1,1],[0,-1,1],[0,1,-1],[0,-1,-1],[1,1,0],[0,-1,1],[-1,1,0],[0,-1,-1]],tt.F2=.5*(Math.sqrt(3)-1),tt.G2=(3-Math.sqrt(3))/6;class et{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>127?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<d?n:d;g=Math.floor(t/s+1e-7)*s}return this.sampleAndLerp(l,h,u,c,d-g,f,d)}sampleAndLerp(t,e,i,s,n,r,o){const a=this.P(t),l=this.P(t+1),h=this.P(a+e),u=this.P(a+e+1),c=this.P(l+e),d=this.P(l+e+1),f=tt.gradDot(this.P(h+i),s,n,r),g=tt.gradDot(this.P(c+i),s-1,n,r),p=tt.gradDot(this.P(u+i),s,n-1,r),m=tt.gradDot(this.P(d+i),s-1,n-1,r),v=tt.gradDot(this.P(h+i+1),s,n,r-1),b=tt.gradDot(this.P(c+i+1),s-1,n,r-1),S=tt.gradDot(this.P(u+i+1),s,n-1,r-1),E=tt.gradDot(this.P(d+i+1),s-1,n-1,r-1);return G(z(s),z(o),z(r),f,g,p,m,v,b,S,E)}P(t){return 255&this.p[255&t]}}class it{constructor(t,e,i){if(t instanceof K){const s=t.forkPositional();this.noiseLevels=Array(i.length);for(let t=0;t<i.length;t++)if(0!==i[t]){const i=e+t;this.noiseLevels[t]=new et(s.fromHashOf(\"octave_\"+i))}}else{if(1-e<i.length)throw new Error(\"Positive octaves are not allowed when using LegacyRandom\");this.noiseLevels=Array(i.length);for(let s=-e;s>=0;s-=1)s<i.length&&0!==i[s]?this.noiseLevels[s]=new et(t):t.consume(262)}this.amplitudes=i,this.lowestFreqInputFactor=Math.pow(2,e),this.lowestFreqValueFactor=Math.pow(2,i.length-1)/(Math.pow(2,i.length)-1)}sample(t,e,i,s=0,n=0,r=!1){let o=0,a=this.lowestFreqInputFactor,l=this.lowestFreqValueFactor;for(let h=0;h<this.noiseLevels.length;h+=1){const u=this.noiseLevels[h];u&&(o+=this.amplitudes[h]*l*u.sample(it.wrap(t*a),r?-u.yo:it.wrap(e*a),it.wrap(i*a),s*a,n*a)),a*=2,l/=2}return o}getOctaveNoise(t){return this.noiseLevels[this.noiseLevels.length-1-t]}static wrap(t){return t-33554432*Math.floor(t/33554432+.5)}}class st{constructor(t,e,i,s){this.cellWidth=i,this.cellHeight=s,this.minLimitNoise=new it(t,-15,[1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0]),this.maxLimitNoise=new it(t,-15,[1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0]),this.mainNoise=new it(t,-7,[1,1,1,1,1,0,0,0]),this.xzScale=684.412*e.xzScale,this.yScale=684.412*e.yScale,this.xzMainScale=this.xzScale/e.xzFactor,this.yMainScale=this.yScale/e.yFactor}sample(t,e,i){let s;t=Math.floor(t/this.cellWidth),e=Math.floor(e/this.cellHeight),i=Math.floor(i/this.cellWidth);let n=0,r=1;for(let o=0;o<8;o+=1){if(s=this.mainNoise.getOctaveNoise(o),s){const o=this.xzMainScale*r,a=this.yMainScale*r,l=it.wrap(t*o),h=it.wrap(e*a),u=it.wrap(i*o);n+=s.sample(l,h,u,a,e*a)/r}r/=2}n=(n/10+1)/2,r=1;let o=0,a=0;for(let l=0;l<16;l+=1){const h=this.xzScale*r,u=this.yScale*r,c=it.wrap(t*h),d=it.wrap(e*u),f=it.wrap(i*h);n<1&&(s=this.minLimitNoise.getOctaveNoise(l))&&(o+=s.sample(c,d,f,u,e*u)/r),n>0&&(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<i.length;t+=1)0!==i[t]&&(s=Math.min(s,t),n=Math.max(n,t));const r=.1*(1+1/(n-s+1));this.valueFactor=1/6/r}sample(t,e,i){const s=t*nt.INPUT_FACTOR,n=e*nt.INPUT_FACTOR,r=i*nt.INPUT_FACTOR;return(this.first.sample(t,e,i)+this.second.sample(s,n,r))*this.valueFactor}}nt.INPUT_FACTOR=1.0181268882175227,function(t){t.create=function(t,e){return{firstOctave:t,amplitudes:e}},t.fromJson=function(t){var e,i,s;const n=null!==(e=_.readObject(t))&&void 0!==e?e:{};return{firstOctave:null!==(i=_.readInt(n.firstOctave))&&void 0!==i?i:0,amplitudes:null!==(s=_.readArray(n.amplitudes,(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<s&&n.has(0)&&(this.noiseLevels[i]=r);for(let e=i+1;e<s;e+=1)e>=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<this.noiseLevels.length;o+=1){const a=this.noiseLevels[o];a&&(s+=r*a.sample2D(t*n+(i?a.xo:0),e*n+(i?a.yo:0))),n/=2,r*=2}return s}}!function(t){t.fromJson=function(e,i){var s,n,r,o;if(\"number\"==typeof e)return new ot(e);const a=null!==(s=_.readObject(e))&&void 0!==s?s:{},l=new at(i(a.coordinate)),h=null!==(n=_.readArray(a.points,(t=>{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<this.locations[t]))-1,s=this.locations.length-1;if(i<0)return this.values[0].apply(t)+this.derivatives[0]*(e-this.locations[0]);if(i===s)return this.values[s].apply(t)+this.derivatives[s]*(e-this.locations[s]);const n=this.locations[i],r=this.locations[i+1],o=this.derivatives[i],a=this.derivatives[i+1],l=(e-n)/(r-n),h=this.values[i].apply(t),u=this.values[i+1].apply(t),c=o*(r-n)-(u-h),d=-a*(r-n)+(u-h);return U(l,h,u)+l*(1-l)*U(l,c,d)}addPoint(t,e,i=0){return this.locations.push(t),this.values.push(\"number\"==typeof e?new ot(e):e),this.derivatives.push(i),this}toJson(){return{coordinate:this.coordinate.toJson(),points:this.locations.map(((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;n<t.length;n+=3)s[0]=t[n],s[1]=t[n+1],s[2]=t[n+2],i.transformMat4(s,s,e),t[n]=s[0],t[n+1]=s[1],t[n+2]=s[2]}!function(t){t.rotate=function(t,e,i){let{up:s,down:n,north:r,east:o,south:a,west:l}=t;switch(i){case 90:[r,o,a,l]=[o,a,l,r];break;case 180:[r,o,a,l]=[a,l,r,o];break;case 270:[r,o,a,l]=[l,r,o,a]}switch(e){case 90:[s,r,n,a]=[r,n,a,s];break;case 180:[s,r,n,a]=[n,a,s,r];break;case 270:[s,r,n,a]=[a,s,r,n]}return{up:s,down:n,north:r,east:o,south:a,west:l}}}(bt||(bt={}));class It{constructor(t,e,i){this.id=t,this.variants=e,this.multipart=i,this.variants=e}getModelVariants(t){if(this.variants){const e=Object.keys(this.variants).filter((e=>this.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.position.length;e+=12){const s=i.fromValues(t.position[e],t.position[e+1],t.position[e+2]),r=i.fromValues(t.position[e+3],t.position[e+4],t.position[e+5]),o=i.fromValues(t.position[e+6],t.position[e+7],t.position[e+8]);i.subtract(r,r,s),i.subtract(o,o,s),i.cross(r,r,o),i.normalize(r,r),n.normals.push(...r,...r,...r,...r)}for(let i=0;i<t.texCoord.length/2;i+=1)n.blockPositions.push(...e);n.indices.push(...t.index),n.indexOffset+=t.texCoord.length/2},o=t=>{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[0];s+=1)for(let n=0;n<t[1];n+=1)for(let r=0;r<t[2];r+=1){const t=this.structure.getBlock([s,n,r]);void 0!==t&&(null===t?this.addCube(e,i,[1,.25,.25],[s+.4375,n+.4375,r+.4375],[s+.5625,n+.5625,r+.5625]):\"minecraft:air\"===t.state.getName()?this.addCube(e,i,[.5,.5,1],[s+.375,n+.375,r+.375],[s+.625,n+.625,r+.625]):\"minecraft:cave_air\"===t.state.getName()&&this.addCube(e,i,[.5,1,.5],[s+.375,n+.375,r+.375],[s+.625,n+.625,r+.625]))}return{position:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(e)),color:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(i)),length:e.length/3}}addCube(t,e,i,s,n){t.push(s[0],s[1],s[2],s[0],s[1],n[2]),t.push(n[0],s[1],s[2],n[0],s[1],n[2]),t.push(s[0],s[1],s[2],n[0],s[1],s[2]),t.push(s[0],s[1],n[2],n[0],s[1],n[2]),t.push(s[0],s[1],s[2],s[0],n[1],s[2]),t.push(n[0],s[1],s[2],n[0],n[1],s[2]),t.push(s[0],s[1],n[2],s[0],n[1],n[2]),t.push(n[0],s[1],n[2],n[0],n[1],n[2]),t.push(s[0],n[1],s[2],s[0],n[1],n[2]),t.push(n[0],n[1],s[2],n[0],n[1],n[2]),t.push(s[0],n[1],s[2],n[0],n[1],s[2]),t.push(s[0],n[1],n[2],n[0],n[1],n[2]);for(let t=0;t<24;t+=1)e.push(...i)}createBuffer(t,e){const i=this.gl.createBuffer();return this.gl.bindBuffer(t,i),this.gl.bufferData(t,e,this.gl.DYNAMIC_DRAW),i}updateBuffer(t,e,i){this.gl.bindBuffer(e,t),this.gl.bufferData(e,i,this.gl.STATIC_DRAW)}drawGrid(t){this.setShader(this.gridShaderProgram),this.setVertexAttr(\"vertPos\",3,this.gridBuffers.position),this.setVertexAttr(\"vertColor\",3,this.gridBuffers.color),this.setUniform(\"mView\",t),this.setUniform(\"mProj\",this.projMatrix),this.gl.drawArrays(this.gl.LINES,0,this.gridBuffers.length)}drawInvisibleBlocks(t){this.useInvisibleBlockBuffer&&(this.setShader(this.gridShaderProgram),this.setVertexAttr(\"vertPos\",3,this.invisibleBlockBuffers.position),this.setVertexAttr(\"vertColor\",3,this.invisibleBlockBuffers.color),this.setUniform(\"mView\",t),this.setUniform(\"mProj\",this.projMatrix),this.gl.drawArrays(this.gl.LINES,0,this.invisibleBlockBuffers.length))}drawStructure(t){this.setShader(this.shaderProgram),this.gl.activeTexture(this.gl.TEXTURE0),this.gl.bindTexture(this.gl.TEXTURE_2D,this.atlasTexture),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(\"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.length<s||(e.push(new a(i)),i=[]);return 0!==i.length&&e.push(new a(i)),e}static area(t){let e=0;for(const i of t)e+=Math.abs(i.max-i.min);return e}search(t,e){return this.root.search(t.toArray(),e).thing()}}r.CHILDREN_PER_NODE=10,t.RTree=r;class o{constructor(t){this.space=t}distance(t){let e=0;for(let i=0;i<7;i+=1)e+=O(this.space[i].distance(t[i]));return e}}t.RNode=o;class a extends o{constructor(t){super(a.buildSpace(t)),this.children=t}static buildSpace(t){let e=[...Array(7)].map((()=>new 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(-.65<r&&r<1){const e=this.mountainContinentalness(-.65,t,-.7),o=this.mountainContinentalness(-.75,t,-.7),a=this.calculateSlope(s,o,-1,-.75);i.addPoint(-1,s,a),i.addPoint(-.75,o),i.addPoint(-.65,e);const l=this.mountainContinentalness(r,t,-.7),h=this.calculateSlope(l,n,r,1);i.addPoint(r-.01,l),i.addPoint(r,l,h),i.addPoint(1,n,h)}else{const t=this.calculateSlope(s,n,-1,1);e?(i.addPoint(-1,Math.max(.2,s)),i.addPoint(0,U(.5,s,n),t)):i.addPoint(-1,s,t),i.addPoint(1,n,t)}return i}static mountainContinentalness(t,e,i){const s=.46082947*(t+1.17)*(1-.5*(1-e))-.5*(1-e);return t<i?Math.max(s,-.2222):Math.max(s,0)}static calculateMountainRidgeZeroContinentalnessPoint(t){return.5*(1-t)/(.46082947*(1-.5*(1-t)))-1.17}static calculateSlope(t,e,i,s){return(e-t)/(s-i)}static ridgeSpline(t,e,i,s,n,r){const o=Math.max(.5*(e-t),r),a=5*(i-e);return new at(this.RIDGES).addPoint(-1,t,o).addPoint(-.4,e,Math.min(o,a)).addPoint(0,i,a).addPoint(.4,s,2*(s-i)).addPoint(1,n,.7*(n-s))}static buildErosionJaggednessSpline(t,e,i,s){const n=this.buildRidgeJaggednessSpline(t,i),r=this.buildRidgeJaggednessSpline(e,s);return new at(this.EROSION).addPoint(-1,n).addPoint(-.78,r).addPoint(-.5775,r).addPoint(-.375,0)}static buildRidgeJaggednessSpline(t,e){const i=qt.peaksAndValleys(.4),s=(i+qt.peaksAndValleys(.56666666))/2;return new at(this.RIDGES).addPoint(i,0).addPoint(s,e>0?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<e+1;s+=1)i[s]=Array(t+1);return i}initializeForFirstCellX(){this.fillSlice(this.slice0,this.chunk.firstCellX)}advanceCellX(t){this.fillSlice(this.slice1,this.chunk.firstCellX+t+1)}fillSlice(t,e){const i=Ot.cellWidth(this.chunk.settings.noise),s=Ot.cellHeight(this.chunk.settings.noise),n=e*i;for(let e=0;e<this.chunk.cellCountXZ+1;e+=1){const r=(this.chunk.firstCellZ+e)*i;for(let i=0;i<this.chunk.cellCountY+1;i+=1){const o=(this.chunk.cellCountNoiseMinY+i)*s;t[e][i]=this.filler(n,o,r)}}}selectCellYZ(t,e){this.noise000=this.slice0[e][t],this.noise001=this.slice0[e+1][t],this.noise100=this.slice1[e][t],this.noise101=this.slice1[e+1][t],this.noise010=this.slice0[e][t+1],this.noise011=this.slice0[e+1][t+1],this.noise110=this.slice1[e][t+1],this.noise111=this.slice1[e+1][t+1]}updateForY(t){this.valueXZ00=U(t,this.noise000,this.noise010),this.valueXZ10=U(t,this.noise100,this.noise110),this.valueXZ01=U(t,this.noise001,this.noise011),this.valueXZ11=U(t,this.noise101,this.noise111)}updateForX(t){this.valueZ0=U(t,this.valueXZ00,this.valueXZ10),this.valueZ1=U(t,this.valueXZ01,this.valueXZ11)}updateForZ(t){this.value=U(t,this.valueZ0,this.valueZ1)}sample(){return this.value}swapSlices(){[this.slice0,this.slice1]=[this.slice1,this.slice0]}}class Kt{constructor(t,e,i,s,n,r,o,a){this.cellCountXZ=t,this.cellCountY=e,this.cellCountNoiseMinY=i,this.sampler=s,this.settings=a;const l=Ot.cellWidth(a.noise);this.firstCellX=Math.floor(n/l),this.firstCellZ=Math.floor(r/l),this.firstNoiseX=n>>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&&i<n&&s<n?this.noiseData[i][s].terrainInfo:this.sampler.noiseData(t,e).terrainInfo;return this.sampler.getPreliminarySurfaceLevel(t<<2,e<<2,r)}))}createNoiseInterpolator(t){const e=new $t(this,t);return this.interpolators.push(e),e.sample.bind(e)}initializeForFirstCellX(){this.interpolators.forEach((t=>t.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||o<e?s:t.sample(r*n,o*n,a*n);return t=>t.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()<a}}function o(t,e,i){return s=>{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<o;i+=1){c.advanceCellX(i);for(let s=0;s<o;s+=1){let o=t.getOrCreateSection(t.sectionsCount-1);for(let d=l-1;d>=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;t<n;t+=1){const r=h+i*n+t,a=15&r,l=t/n;c.updateForX(l);for(let t=0;t<n;t+=1){const i=u+s*n+t,l=15&i,h=t/n;c.updateForZ(h);let d=null!==(e=this.materialRule(c,r,f,i))&&void 0!==e?e:this.settings.defaultBlock;if(d.equals(x.AIR)){if(!(f<this.settings.seaLevel))continue;d=this.settings.defaultFluid}o.setBlockState(a,g,l,d)}}}}}c.swapSlices()}}buildSurface(t,e=\"minecraft:plains\"){const i=this.getNoiseChunk(t),s=Vt.create(this.settings.noise.minY,this.settings.noise.height);this.surfaceSystem.buildSurface(t,i,s,(()=>e))}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","/* ***** 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<l; i++) {\n if (array[i] && typeof array[i] == \"object\")\n copy[i] = this.copyObject(array[i]);\n else \n copy[i] = array[i];\n }\n return copy;\n};\n\nexports.deepCopy = function deepCopy(obj) {\n if (typeof obj !== \"object\" || !obj)\n return obj;\n var copy;\n if (Array.isArray(obj)) {\n copy = [];\n for (var key = 0; key < obj.length; key++) {\n copy[key] = deepCopy(obj[key]);\n }\n return copy;\n }\n if (Object.prototype.toString.call(obj) !== \"[object Object]\")\n return obj;\n \n copy = {};\n for (var key in obj)\n copy[key] = deepCopy(obj[key]);\n return copy;\n};\n\nexports.arrayToMap = function(arr) {\n var map = {};\n for (var i=0; i<arr.length; i++) {\n map[arr[i]] = 1;\n }\n return map;\n\n};\n\nexports.createMap = function(props) {\n var map = Object.create(null);\n for (var i in props) {\n map[i] = props[i];\n }\n return map;\n};\nexports.arrayRemove = function(array, value) {\n for (var i = 0; i <= array.length; i++) {\n if (value === array[i]) {\n array.splice(i, 1);\n }\n }\n};\n\nexports.escapeRegExp = function(str) {\n return str.replace(/([.*+?^${}()|[\\]\\/\\\\])/g, '\\\\$1');\n};\n\nexports.escapeHTML = function(str) {\n return str.replace(/&/g, \"&\").replace(/\"/g, \""\").replace(/'/g, \"'\").replace(/</g, \"<\");\n};\n\nexports.getMatchOffsets = function(string, regExp) {\n var matches = [];\n\n string.replace(regExp, function(str) {\n matches.push({\n offset: arguments[arguments.length-2],\n length: str.length\n });\n });\n\n return matches;\n};\nexports.deferredCall = function(fcn) {\n var timer = null;\n var callback = function() {\n timer = null;\n fcn();\n };\n\n var deferred = function(timeout) {\n deferred.cancel();\n timer = setTimeout(callback, timeout || 0);\n return deferred;\n };\n\n deferred.schedule = deferred;\n\n deferred.call = function() {\n this.cancel();\n fcn();\n return deferred;\n };\n\n deferred.cancel = function() {\n clearTimeout(timer);\n timer = null;\n return deferred;\n };\n \n deferred.isPending = function() {\n return timer;\n };\n\n return deferred;\n};\n\n\nexports.delayedCall = function(fcn, defaultTimeout) {\n var timer = null;\n var callback = function() {\n timer = null;\n fcn();\n };\n\n var _self = function(timeout) {\n if (timer == null)\n timer = setTimeout(callback, timeout || defaultTimeout);\n };\n\n _self.delay = function(timeout) {\n timer && clearTimeout(timer);\n timer = setTimeout(callback, timeout || defaultTimeout);\n };\n _self.schedule = _self;\n\n _self.call = function() {\n this.cancel();\n fcn();\n };\n\n _self.cancel = function() {\n timer && clearTimeout(timer);\n timer = null;\n };\n\n _self.isPending = function() {\n return timer;\n };\n\n return _self;\n};\n});\n\nace.define(\"ace/keyboard/textinput_ios\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/keys\"], 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 KEYS = acequire(\"../lib/keys\");\nvar MODS = KEYS.KEY_MODS;\nvar BROKEN_SETDATA = useragent.isChrome < 18;\nvar USE_IE_MIME_TYPE = useragent.isIE;\n\nvar TextInput = function(parentNode, host) {\n var self = this;\n var text = dom.createElement(\"textarea\");\n text.className = useragent.isIOS ? \"ace_text-input ace_text-input-ios\" : \"ace_text-input\";\n\n if (useragent.isTouchPad)\n text.setAttribute(\"x-palm-disable-auto-cap\", true);\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 = \"\\n aaaa a\\n\";\n\n var copied = false;\n var cut = 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 text.style.position = \"fixed\";\n text.focus();\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 selectionStart = 0;\n selectionEnd = isEmpty ? 0 : text.value.length - 1;\n } else {\n var selectionStart = 4;\n var selectionEnd = 5;\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 (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 (text.selectionStart === 4 && text.selectionEnd === 5) {\n return;\n }\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.substr(0) && text.selectionStart === 4) {\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 if (!copied) {\n if (data.substring(0, 9) == PLACEHOLDER && data.length > 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(\"<br/>\");\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<listeners.length; i++) {\n listeners[i](e, this);\n if (e.propagationStopped)\n break;\n }\n \n if (defaultHandler && !e.defaultPrevented)\n return defaultHandler(e, this);\n};\n\n\nEventEmitter._signal = function(eventName, e) {\n var listeners = (this._eventRegistry || {})[eventName];\n if (!listeners)\n return;\n listeners = listeners.slice();\n for (var i=0; i<listeners.length; i++)\n listeners[i](e, this);\n};\n\nEventEmitter.once = function(eventName, callback) {\n var _self = this;\n callback && this.addEventListener(eventName, function newCallback() {\n _self.removeEventListener(eventName, newCallback);\n callback.apply(null, arguments);\n });\n};\n\n\nEventEmitter.setDefaultHandler = function(eventName, callback) {\n var handlers = this._defaultHandlers;\n if (!handlers)\n handlers = this._defaultHandlers = {_disabled_: {}};\n \n if (handlers[eventName]) {\n var old = handlers[eventName];\n var disabled = handlers._disabled_[eventName];\n if (!disabled)\n handlers._disabled_[eventName] = disabled = [];\n disabled.push(old);\n var i = disabled.indexOf(callback);\n if (i != -1) \n disabled.splice(i, 1);\n }\n handlers[eventName] = callback;\n};\nEventEmitter.removeDefaultHandler = function(eventName, callback) {\n var handlers = this._defaultHandlers;\n if (!handlers)\n return;\n var disabled = handlers._disabled_[eventName];\n \n if (handlers[eventName] == callback) {\n var old = handlers[eventName];\n if (disabled)\n this.setDefaultHandler(eventName, disabled.pop());\n } else if (disabled) {\n var i = disabled.indexOf(callback);\n if (i != -1)\n disabled.splice(i, 1);\n }\n};\n\nEventEmitter.on =\nEventEmitter.addEventListener = function(eventName, callback, capturing) {\n this._eventRegistry = this._eventRegistry || {};\n\n var listeners = this._eventRegistry[eventName];\n if (!listeners)\n listeners = this._eventRegistry[eventName] = [];\n\n if (listeners.indexOf(callback) == -1)\n listeners[capturing ? \"unshift\" : \"push\"](callback);\n return callback;\n};\n\nEventEmitter.off =\nEventEmitter.removeListener =\nEventEmitter.removeEventListener = function(eventName, callback) {\n this._eventRegistry = this._eventRegistry || {};\n\n var listeners = this._eventRegistry[eventName];\n if (!listeners)\n return;\n\n var index = listeners.indexOf(callback);\n if (index !== -1)\n listeners.splice(index, 1);\n};\n\nEventEmitter.removeAllListeners = function(eventName) {\n if (this._eventRegistry) this._eventRegistry[eventName] = [];\n};\n\nexports.EventEmitter = EventEmitter;\n\n});\n\nace.define(\"ace/lib/app_config\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"], function(acequire, exports, module) {\n\"no use strict\";\n\nvar oop = acequire(\"./oop\");\nvar EventEmitter = acequire(\"./event_emitter\").EventEmitter;\n\nvar optionsProvider = {\n setOptions: function(optList) {\n Object.keys(optList).forEach(function(key) {\n this.setOption(key, optList[key]);\n }, this);\n },\n getOptions: function(optionNames) {\n var result = {};\n if (!optionNames) {\n optionNames = Object.keys(this.$options);\n } else if (!Array.isArray(optionNames)) {\n result = optionNames;\n optionNames = Object.keys(result);\n }\n optionNames.forEach(function(key) {\n result[key] = this.getOption(key);\n }, this);\n return result;\n },\n setOption: function(name, value) {\n if (this[\"$\" + name] === value)\n return;\n var opt = this.$options[name];\n if (!opt) {\n return warn('misspelled option \"' + name + '\"');\n }\n if (opt.forwardTo)\n return this[opt.forwardTo] && this[opt.forwardTo].setOption(name, value);\n\n if (!opt.handlesSet)\n this[\"$\" + name] = value;\n if (opt && opt.set)\n opt.set.call(this, value);\n },\n getOption: function(name) {\n var opt = this.$options[name];\n if (!opt) {\n return warn('misspelled option \"' + name + '\"');\n }\n if (opt.forwardTo)\n return this[opt.forwardTo] && this[opt.forwardTo].getOption(name);\n return opt && opt.get ? opt.get.call(this) : this[\"$\" + name];\n }\n};\n\nfunction warn(message) {\n if (typeof console != \"undefined\" && console.warn)\n console.warn.apply(console, arguments);\n}\n\nfunction reportError(msg, data) {\n var e = new Error(msg);\n e.data = data;\n if (typeof console == \"object\" && console.error)\n console.error(e);\n setTimeout(function() { throw e; });\n}\n\nvar AppConfig = function() {\n this.$defaultOptions = {};\n};\n\n(function() {\n oop.implement(this, EventEmitter);\n this.defineOptions = function(obj, path, options) {\n if (!obj.$options)\n this.$defaultOptions[path] = obj.$options = {};\n\n Object.keys(options).forEach(function(key) {\n var opt = options[key];\n if (typeof opt == \"string\")\n opt = {forwardTo: opt};\n\n opt.name || (opt.name = key);\n obj.$options[opt.name] = opt;\n if (\"initialValue\" in opt)\n obj[\"$\" + opt.name] = opt.initialValue;\n });\n oop.implement(obj, optionsProvider);\n\n return this;\n };\n\n this.resetOptions = function(obj) {\n Object.keys(obj.$options).forEach(function(key) {\n var opt = obj.$options[key];\n if (\"value\" in opt)\n obj.setOption(key, opt.value);\n });\n };\n\n this.setDefaultValue = function(path, name, value) {\n var opts = this.$defaultOptions[path] || (this.$defaultOptions[path] = {});\n if (opts[name]) {\n if (opts.forwardTo)\n this.setDefaultValue(opts.forwardTo, name, value);\n else\n opts[name].value = value;\n }\n };\n\n this.setDefaultValues = function(path, optionHash) {\n Object.keys(optionHash).forEach(function(key) {\n this.setDefaultValue(path, key, optionHash[key]);\n }, this);\n };\n \n this.warn = warn;\n this.reportError = reportError;\n \n}).call(AppConfig.prototype);\n\nexports.AppConfig = AppConfig;\n\n});\n\nace.define(\"ace/config\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/lib/oop\",\"ace/lib/net\",\"ace/lib/app_config\"], function(acequire, exports, module) {\n\"no use strict\";\n\nvar lang = acequire(\"./lib/lang\");\nvar oop = acequire(\"./lib/oop\");\nvar net = acequire(\"./lib/net\");\nvar AppConfig = acequire(\"./lib/app_config\").AppConfig;\n\nmodule.exports = exports = new AppConfig();\n\nvar global = (function() {\n return this || typeof window != \"undefined\" && window;\n})();\n\nvar options = {\n packaged: false,\n workerPath: null,\n modePath: null,\n themePath: null,\n basePath: \"\",\n suffix: \".js\",\n $moduleUrls: {}\n};\n\nexports.get = function(key) {\n if (!options.hasOwnProperty(key))\n throw new Error(\"Unknown config key: \" + key);\n\n return options[key];\n};\n\nexports.set = function(key, value) {\n if (!options.hasOwnProperty(key))\n throw new Error(\"Unknown config key: \" + key);\n\n options[key] = value;\n};\n\nexports.all = function() {\n return lang.copyObject(options);\n};\nexports.moduleUrl = function(name, component) {\n if (options.$moduleUrls[name])\n return options.$moduleUrls[name];\n\n var parts = name.split(\"/\");\n component = component || parts[parts.length - 2] || \"\";\n var sep = component == \"snippets\" ? \"/\" : \"-\";\n var base = parts[parts.length - 1];\n if (component == \"worker\" && sep == \"-\") {\n var re = new RegExp(\"^\" + component + \"[\\\\-_]|[\\\\-_]\" + component + \"$\", \"g\");\n base = base.replace(re, \"\");\n }\n\n if ((!base || base == component) && parts.length > 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<scripts.length; i++) {\n var script = scripts[i];\n\n var src = script.src || script.getAttribute(\"src\");\n if (!src)\n continue;\n\n var attributes = script.attributes;\n for (var j=0, l=attributes.length; j < l; j++) {\n var attr = attributes[j];\n if (attr.name.indexOf(\"data-ace-\") === 0) {\n scriptOptions[deHyphenate(attr.name.replace(/^data-ace-/, \"\"))] = attr.value;\n }\n }\n\n var m = src.match(/^(.*)\\/ace(\\-\\w+)?\\.js(\\?|$)/);\n if (m)\n scriptUrl = m[1];\n }\n\n if (scriptUrl) {\n scriptOptions.base = scriptOptions.base || scriptUrl;\n scriptOptions.packaged = true;\n }\n\n scriptOptions.basePath = scriptOptions.base;\n scriptOptions.workerPath = scriptOptions.workerPath || scriptOptions.base;\n scriptOptions.modePath = scriptOptions.modePath || scriptOptions.base;\n scriptOptions.themePath = scriptOptions.themePath || scriptOptions.base;\n delete scriptOptions.base;\n\n for (var key in scriptOptions)\n if (typeof scriptOptions[key] !== \"undefined\")\n exports.set(key, scriptOptions[key]);\n}\n\nexports.init = init;\n\nfunction deHyphenate(str) {\n return str.replace(/-(.)/g, function(m, m1) { return m1.toUpperCase(); });\n}\n\n});\n\nace.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(acequire, exports, module) {\n\"use strict\";\n\nvar event = acequire(\"../lib/event\");\nvar useragent = acequire(\"../lib/useragent\");\nvar DefaultHandlers = acequire(\"./default_handlers\").DefaultHandlers;\nvar DefaultGutterHandler = acequire(\"./default_gutter_handler\").GutterHandler;\nvar MouseEvent = acequire(\"./mouse_event\").MouseEvent;\nvar DragdropHandler = acequire(\"./dragdrop_handler\").DragdropHandler;\nvar config = acequire(\"../config\");\n\nvar MouseHandler = function(editor) {\n var _self = this;\n this.editor = editor;\n\n new DefaultHandlers(this);\n new DefaultGutterHandler(this);\n new DragdropHandler(this);\n\n var focusEditor = function(e) {\n var windowBlurred = !document.hasFocus || !document.hasFocus()\n || !editor.isFocused() && document.activeElement == (editor.textInput && editor.textInput.getElement());\n if (windowBlurred)\n window.focus();\n editor.focus();\n };\n\n var mouseTarget = editor.renderer.getMouseEventTarget();\n event.addListener(mouseTarget, \"click\", this.onMouseEvent.bind(this, \"click\"));\n event.addListener(mouseTarget, \"mousemove\", this.onMouseMove.bind(this, \"mousemove\"));\n event.addMultiMouseDownListener([\n mouseTarget,\n editor.renderer.scrollBarV && editor.renderer.scrollBarV.inner,\n editor.renderer.scrollBarH && editor.renderer.scrollBarH.inner,\n editor.textInput && editor.textInput.getElement()\n ].filter(Boolean), [400, 300, 250], this, \"onMouseEvent\");\n event.addMouseWheelListener(editor.container, this.onMouseWheel.bind(this, \"mousewheel\"));\n event.addTouchMoveListener(editor.container, this.onTouchMove.bind(this, \"touchmove\"));\n\n var gutterEl = editor.renderer.$gutter;\n event.addListener(gutterEl, \"mousedown\", this.onMouseEvent.bind(this, \"guttermousedown\"));\n event.addListener(gutterEl, \"click\", this.onMouseEvent.bind(this, \"gutterclick\"));\n event.addListener(gutterEl, \"dblclick\", this.onMouseEvent.bind(this, \"gutterdblclick\"));\n event.addListener(gutterEl, \"mousemove\", this.onMouseEvent.bind(this, \"guttermousemove\"));\n\n event.addListener(mouseTarget, \"mousedown\", focusEditor);\n event.addListener(gutterEl, \"mousedown\", focusEditor);\n if (useragent.isIE && editor.renderer.scrollBarV) {\n event.addListener(editor.renderer.scrollBarV.element, \"mousedown\", focusEditor);\n event.addListener(editor.renderer.scrollBarH.element, \"mousedown\", focusEditor);\n }\n\n editor.on(\"mousemove\", function(e){\n if (_self.state || _self.$dragDelay || !_self.$dragEnabled)\n return;\n\n var character = editor.renderer.screenToTextCoordinates(e.x, e.y);\n var range = editor.session.selection.getRange();\n var renderer = editor.renderer;\n\n if (!range.isEmpty() && range.insideStart(character.row, character.column)) {\n renderer.setCursorStyle(\"default\");\n } else {\n renderer.setCursorStyle(\"\");\n }\n });\n};\n\n(function() {\n this.onMouseEvent = function(name, e) {\n this.editor._emit(name, new MouseEvent(e, this.editor));\n };\n\n this.onMouseMove = function(name, e) {\n var listeners = this.editor._eventRegistry && this.editor._eventRegistry.mousemove;\n if (!listeners || !listeners.length)\n return;\n\n this.editor._emit(name, new MouseEvent(e, this.editor));\n };\n\n this.onMouseWheel = function(name, e) {\n var mouseEvent = new MouseEvent(e, this.editor);\n mouseEvent.speed = this.$scrollSpeed * 2;\n mouseEvent.wheelX = e.wheelX;\n mouseEvent.wheelY = e.wheelY;\n\n this.editor._emit(name, mouseEvent);\n };\n \n this.onTouchMove = function (name, e) {\n var mouseEvent = new MouseEvent(e, this.editor);\n mouseEvent.speed = 1;//this.$scrollSpeed * 2;\n mouseEvent.wheelX = e.wheelX;\n mouseEvent.wheelY = e.wheelY;\n this.editor._emit(name, mouseEvent);\n };\n\n this.setState = function(state) {\n this.state = state;\n };\n\n this.captureMouse = function(ev, mouseMoveHandler) {\n this.x = ev.x;\n this.y = ev.y;\n\n this.isMousePressed = true;\n var renderer = this.editor.renderer;\n if (renderer.$keepTextAreaAtCursor)\n renderer.$keepTextAreaAtCursor = null;\n\n var self = this;\n var onMouseMove = function(e) {\n if (!e) return;\n if (useragent.isWebKit && !e.which && self.releaseMouse)\n return self.releaseMouse();\n\n self.x = e.clientX;\n self.y = e.clientY;\n mouseMoveHandler && mouseMoveHandler(e);\n self.mouseEvent = new MouseEvent(e, self.editor);\n self.$mouseMoved = true;\n };\n\n var onCaptureEnd = function(e) {\n clearInterval(timerId);\n onCaptureInterval();\n self[self.state + \"End\"] && self[self.state + \"End\"](e);\n self.state = \"\";\n if (renderer.$keepTextAreaAtCursor == null) {\n renderer.$keepTextAreaAtCursor = true;\n renderer.$moveTextAreaToCursor();\n }\n self.isMousePressed = false;\n self.$onCaptureMouseMove = self.releaseMouse = null;\n e && self.onMouseEvent(\"mouseup\", e);\n };\n\n var onCaptureInterval = function() {\n self[self.state] && self[self.state]();\n self.$mouseMoved = false;\n };\n\n if (useragent.isOldIE && ev.domEvent.type == \"dblclick\") {\n return setTimeout(function() {onCaptureEnd(ev);});\n }\n\n self.$onCaptureMouseMove = onMouseMove;\n self.releaseMouse = event.capture(this.editor.container, onMouseMove, onCaptureEnd);\n var timerId = setInterval(onCaptureInterval, 20);\n };\n this.releaseMouse = null;\n this.cancelContextMenu = function() {\n var stop = function(e) {\n if (e && e.domEvent && e.domEvent.type != \"contextmenu\")\n return;\n this.editor.off(\"nativecontextmenu\", stop);\n if (e && e.domEvent)\n event.stopEvent(e.domEvent);\n }.bind(this);\n setTimeout(stop, 10);\n this.editor.on(\"nativecontextmenu\", stop);\n };\n}).call(MouseHandler.prototype);\n\nconfig.defineOptions(MouseHandler.prototype, \"mouseHandler\", {\n scrollSpeed: {initialValue: 2},\n dragDelay: {initialValue: (useragent.isMac ? 150 : 0)},\n dragEnabled: {initialValue: true},\n focusTimout: {initialValue: 0},\n tooltipFollowsMouse: {initialValue: true}\n});\n\n\nexports.MouseHandler = MouseHandler;\n});\n\nace.define(\"ace/mouse/fold_handler\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\n\nfunction FoldHandler(editor) {\n\n editor.on(\"click\", function(e) {\n var position = e.getDocumentPosition();\n var session = editor.session;\n var fold = session.getFoldAt(position.row, position.column, 1);\n if (fold) {\n if (e.getAccelKey())\n session.removeFold(fold);\n else\n session.expandFold(fold);\n\n e.stop();\n }\n });\n\n editor.on(\"gutterclick\", function(e) {\n var gutterRegion = editor.renderer.$gutterLayer.getRegion(e);\n\n if (gutterRegion == \"foldWidgets\") {\n var row = e.getDocumentPosition().row;\n var session = editor.session;\n if (session.foldWidgets && session.foldWidgets[row])\n editor.session.onFoldWidgetClick(row, e);\n if (!editor.isFocused())\n editor.focus();\n e.stop();\n }\n });\n\n editor.on(\"gutterdblclick\", function(e) {\n var gutterRegion = editor.renderer.$gutterLayer.getRegion(e);\n\n if (gutterRegion == \"foldWidgets\") {\n var row = e.getDocumentPosition().row;\n var session = editor.session;\n var data = session.getParentFoldRangeData(row, true);\n var range = data.range || data.firstRange;\n\n if (range) {\n row = range.start.row;\n var fold = session.getFoldAt(row, session.getLine(row).length, 1);\n\n if (fold) {\n session.removeFold(fold);\n } else {\n session.addFold(\"...\", range);\n editor.renderer.scrollCursorIntoView({row: range.start.row, column: 0});\n }\n }\n e.stop();\n }\n });\n}\n\nexports.FoldHandler = FoldHandler;\n\n});\n\nace.define(\"ace/keyboard/keybinding\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/lib/event\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar keyUtil = acequire(\"../lib/keys\");\nvar event = acequire(\"../lib/event\");\n\nvar KeyBinding = function(editor) {\n this.$editor = editor;\n this.$data = {editor: editor};\n this.$handlers = [];\n this.setDefaultHandler(editor.commands);\n};\n\n(function() {\n this.setDefaultHandler = function(kb) {\n this.removeKeyboardHandler(this.$defaultHandler);\n this.$defaultHandler = kb;\n this.addKeyboardHandler(kb, 0);\n };\n\n this.setKeyboardHandler = function(kb) {\n var h = this.$handlers;\n if (h[h.length - 1] == kb)\n return;\n\n while (h[h.length - 1] && h[h.length - 1] != this.$defaultHandler)\n this.removeKeyboardHandler(h[h.length - 1]);\n\n this.addKeyboardHandler(kb, 1);\n };\n\n this.addKeyboardHandler = function(kb, pos) {\n if (!kb)\n return;\n if (typeof kb == \"function\" && !kb.handleKeyboard)\n kb.handleKeyboard = kb;\n var i = this.$handlers.indexOf(kb);\n if (i != -1)\n this.$handlers.splice(i, 1);\n\n if (pos == undefined)\n this.$handlers.push(kb);\n else\n this.$handlers.splice(pos, 0, kb);\n\n if (i == -1 && kb.attach)\n kb.attach(this.$editor);\n };\n\n this.removeKeyboardHandler = function(kb) {\n var i = this.$handlers.indexOf(kb);\n if (i == -1)\n return false;\n this.$handlers.splice(i, 1);\n kb.detach && kb.detach(this.$editor);\n return true;\n };\n\n this.getKeyboardHandler = function() {\n return this.$handlers[this.$handlers.length - 1];\n };\n \n this.getStatusText = function() {\n var data = this.$data;\n var editor = data.editor;\n return this.$handlers.map(function(h) {\n return h.getStatusText && h.getStatusText(editor, data) || \"\";\n }).filter(Boolean).join(\" \");\n };\n\n this.$callKeyboardHandlers = function(hashId, keyString, keyCode, e) {\n var toExecute;\n var success = false;\n var commands = this.$editor.commands;\n\n for (var i = this.$handlers.length; i--;) {\n toExecute = this.$handlers[i].handleKeyboard(\n this.$data, hashId, keyString, keyCode, e\n );\n if (!toExecute || !toExecute.command)\n continue;\n if (toExecute.command == \"null\") {\n success = true;\n } else {\n success = commands.exec(toExecute.command, this.$editor, toExecute.args, e);\n }\n if (success && e && hashId != -1 && \n toExecute.passEvent != true && toExecute.command.passEvent != true\n ) {\n event.stopEvent(e);\n }\n if (success)\n break;\n }\n \n if (!success && hashId == -1) {\n toExecute = {command: \"insertstring\"};\n success = commands.exec(\"insertstring\", this.$editor, keyString);\n }\n \n if (success && this.$editor._signal)\n this.$editor._signal(\"keyboardActivity\", toExecute);\n \n return success;\n };\n\n this.onCommandKey = function(e, hashId, keyCode) {\n var keyString = keyUtil.keyCodeToString(keyCode);\n this.$callKeyboardHandlers(hashId, keyString, keyCode, e);\n };\n\n this.onTextInput = function(text) {\n this.$callKeyboardHandlers(-1, text);\n };\n\n}).call(KeyBinding.prototype);\n\nexports.KeyBinding = KeyBinding;\n});\n\nace.define(\"ace/lib/bidiutil\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar ArabicAlefBetIntervalsBegine = ['\\u0621', '\\u0641'];\nvar ArabicAlefBetIntervalsEnd = ['\\u063A', '\\u064a'];\nvar dir = 0, hiLevel = 0;\nvar lastArabic = false, hasUBAT_AL = false, hasUBAT_B = false, hasUBAT_S = false, hasBlockSep = false, hasSegSep = false;\n\nvar impTab_LTR = [\t[\t0,\t\t3,\t\t0,\t\t1,\t\t0,\t\t0,\t\t0\t],\t[\t0,\t\t3,\t\t0,\t\t1,\t\t2,\t\t2,\t\t0\t],\t[\t0,\t\t3,\t\t0,\t\t0x11,\t\t2,\t\t0,\t\t1\t],\t[\t0,\t\t3,\t\t5,\t\t5,\t\t4,\t\t1,\t\t0\t],\t[\t0,\t\t3,\t\t0x15,\t\t0x15,\t\t4,\t\t0,\t\t1\t],\t[\t0,\t\t3,\t\t5,\t\t5,\t\t4,\t\t2,\t\t0\t]\n];\n\nvar impTab_RTL = [\t[\t2,\t\t0,\t\t1,\t\t1,\t\t0,\t\t1,\t\t0\t],\t[\t2,\t\t0,\t\t1,\t\t1,\t\t0,\t\t2,\t\t0\t],\t[\t2,\t\t0,\t\t2,\t\t1,\t\t3,\t\t2,\t\t0\t],\t[\t2,\t\t0,\t\t2,\t\t0x21,\t\t3,\t\t1,\t\t1\t]\n];\n\nvar LTR = 0, RTL = 1;\n\nvar L = 0;\nvar R = 1;\nvar EN = 2;\nvar AN = 3;\nvar ON = 4;\nvar B = 5;\nvar S = 6;\nvar AL = 7;\nvar WS = 8;\nvar CS = 9;\nvar ES = 10;\nvar ET = 11;\nvar NSM = 12;\nvar LRE = 13;\nvar RLE = 14;\nvar PDF = 15;\nvar LRO = 16;\nvar RLO = 17;\nvar BN = 18;\n\nvar UnicodeTBL00 = [\nBN,BN,BN,BN,BN,BN,BN,BN,BN,S,B,S,WS,B,BN,BN,\nBN,BN,BN,BN,BN,BN,BN,BN,BN,BN,BN,BN,B,B,B,S,\nWS,ON,ON,ET,ET,ET,ON,ON,ON,ON,ON,ES,CS,ES,CS,CS,\nEN,EN,EN,EN,EN,EN,EN,EN,EN,EN,CS,ON,ON,ON,ON,ON,\nON,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,\nL,L,L,L,L,L,L,L,L,L,L,ON,ON,ON,ON,ON,\nON,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,\nL,L,L,L,L,L,L,L,L,L,L,ON,ON,ON,ON,BN,\nBN,BN,BN,BN,BN,B,BN,BN,BN,BN,BN,BN,BN,BN,BN,BN,\nBN,BN,BN,BN,BN,BN,BN,BN,BN,BN,BN,BN,BN,BN,BN,BN,\nCS,ON,ET,ET,ET,ET,ON,ON,ON,ON,L,ON,ON,BN,ON,ON,\nET,ET,EN,EN,ON,L,ON,ON,ON,EN,L,ON,ON,ON,ON,ON\n];\n\nvar UnicodeTBL20 = [\nWS,WS,WS,WS,WS,WS,WS,WS,WS,WS,WS,BN,BN,BN,L,R\t,\nON,ON,ON,ON,ON,ON,ON,ON,ON,ON,ON,ON,ON,ON,ON,ON,\nON,ON,ON,ON,ON,ON,ON,ON,WS,B,LRE,RLE,PDF,LRO,RLO,CS,\nET,ET,ET,ET,ET,ON,ON,ON,ON,ON,ON,ON,ON,ON,ON,ON,\nON,ON,ON,ON,CS,ON,ON,ON,ON,ON,ON,ON,ON,ON,ON,ON,\nON,ON,ON,ON,ON,ON,ON,ON,ON,ON,ON,ON,ON,ON,ON,WS\n];\n\nfunction _computeLevels(chars, levels, len, charTypes) {\n\tvar impTab = dir ? impTab_RTL : impTab_LTR\n\t\t, prevState = null, newClass = null, newLevel = null, newState = 0\n\t\t, action = null, cond = null, condPos = -1, i = null, ix = null, classes = [];\n\n\tif (!charTypes) {\n\t\tfor (i = 0, charTypes = []; i < len; i++) {\n\t\t\tcharTypes[i] = _getCharacterType(chars[i]);\n\t\t}\n\t}\n\thiLevel = dir;\n\tlastArabic = false;\n\thasUBAT_AL = false;\n\thasUBAT_B = false;\n\thasUBAT_S = false;\n\tfor (ix = 0; ix < len; ix++){\n\t\tprevState = newState;\n\t\tclasses[ix] = newClass = _getCharClass(chars, charTypes, classes, ix);\n\t\tnewState = impTab[prevState][newClass];\n\t\taction = newState & 0xF0;\n\t\tnewState &= 0x0F;\n\t\tlevels[ix] = newLevel = impTab[newState][5];\n\t\tif (action > 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<deltas.length; i++) {\n this.applyDelta(deltas[i]);\n }\n };\n this.revertDeltas = function(deltas) {\n for (var i=deltas.length-1; 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<rows.length; i++) {\n this.$breakpoints[rows[i]] = \"ace_breakpoint\";\n }\n this._signal(\"changeBreakpoint\", {});\n };\n this.clearBreakpoints = function() {\n this.$breakpoints = [];\n this._signal(\"changeBreakpoint\", {});\n };\n this.setBreakpoint = function(row, className) {\n if (className === undefined)\n className = \"ace_breakpoint\";\n if (className)\n this.$breakpoints[row] = className;\n else\n delete this.$breakpoints[row];\n this._signal(\"changeBreakpoint\", {});\n };\n this.clearBreakpoint = function(row) {\n delete this.$breakpoints[row];\n this._signal(\"changeBreakpoint\", {});\n };\n this.addMarker = function(range, clazz, type, inFront) {\n var id = this.$markerId++;\n\n var marker = {\n range : range,\n type : type || \"line\",\n renderer: typeof type == \"function\" ? type : null,\n clazz : clazz,\n inFront: !!inFront,\n id: id\n };\n\n if (inFront) {\n this.$frontMarkers[id] = marker;\n this._signal(\"changeFrontMarker\");\n } else {\n this.$backMarkers[id] = marker;\n this._signal(\"changeBackMarker\");\n }\n\n return id;\n };\n this.addDynamicMarker = function(marker, inFront) {\n if (!marker.update)\n return;\n var id = this.$markerId++;\n marker.id = id;\n marker.inFront = !!inFront;\n\n if (inFront) {\n this.$frontMarkers[id] = marker;\n this._signal(\"changeFrontMarker\");\n } else {\n this.$backMarkers[id] = marker;\n this._signal(\"changeBackMarker\");\n }\n\n return marker;\n };\n this.removeMarker = function(markerId) {\n var marker = this.$frontMarkers[markerId] || this.$backMarkers[markerId];\n if (!marker)\n return;\n\n var markers = marker.inFront ? this.$frontMarkers : this.$backMarkers;\n if (marker) {\n delete (markers[markerId]);\n this._signal(marker.inFront ? \"changeFrontMarker\" : \"changeBackMarker\");\n }\n };\n this.getMarkers = function(inFront) {\n return inFront ? this.$frontMarkers : this.$backMarkers;\n };\n\n this.highlight = function(re) {\n if (!this.$searchHighlight) {\n var highlight = new SearchHighlight(null, \"ace_selected-word\", \"text\");\n this.$searchHighlight = this.addDynamicMarker(highlight);\n }\n this.$searchHighlight.setRegexp(re);\n };\n this.highlightLines = function(startRow, endRow, clazz, inFront) {\n if (typeof endRow != \"number\") {\n clazz = endRow;\n endRow = startRow;\n }\n if (!clazz)\n clazz = \"ace_step\";\n\n var range = new Range(startRow, 0, endRow, Infinity);\n range.id = this.addMarker(range, clazz, \"fullLine\", inFront);\n return range;\n };\n this.setAnnotations = function(annotations) {\n this.$annotations = annotations;\n this._signal(\"changeAnnotation\", {});\n };\n this.getAnnotations = function() {\n return this.$annotations || [];\n };\n this.clearAnnotations = function() {\n this.setAnnotations([]);\n };\n this.$detectNewLine = function(text) {\n var match = text.match(/^.*?(\\r?\\n)/m);\n if (match) {\n this.$autoNewLine = match[1];\n } else {\n this.$autoNewLine = \"\\n\";\n }\n };\n this.getWordRange = function(row, column) {\n var line = this.getLine(row);\n\n var inToken = false;\n if (column > 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 === '</'){\n depth--;\n }\n }\n \n } while (token && depth >= 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 === '</') {\n depth--;\n }\n }\n } while (prevToken && depth <= 0);\n iterator.stepForward();\n }\n \n if (!token) {\n session.removeMarker(session.$tagHighlight);\n session.$tagHighlight = null;\n return;\n }\n \n var row = iterator.getCurrentTokenRow();\n var column = iterator.getCurrentTokenColumn();\n var range = new Range(row, column, row, column+token.value.length);\n var sbm = session.$backMarkers[session.$tagHighlight];\n if (session.$tagHighlight && sbm != undefined && range.compareRange(sbm.range) !== 0) {\n session.removeMarker(session.$tagHighlight);\n session.$tagHighlight = null;\n }\n \n if (range && !session.$tagHighlight)\n session.$tagHighlight = session.addMarker(range, \"ace_bracket\", \"text\");\n }, 50);\n };\n this.focus = function() {\n var _self = this;\n setTimeout(function() {\n _self.textInput.focus();\n });\n this.textInput.focus();\n };\n this.isFocused = function() {\n return this.textInput.isFocused();\n };\n this.blur = function() {\n this.textInput.blur();\n };\n this.onFocus = function(e) {\n if (this.$isFocused)\n return;\n this.$isFocused = true;\n this.renderer.showCursor();\n this.renderer.visualizeFocus();\n this._emit(\"focus\", e);\n };\n this.onBlur = function(e) {\n if (!this.$isFocused)\n return;\n this.$isFocused = false;\n this.renderer.hideCursor();\n this.renderer.visualizeBlur();\n this._emit(\"blur\", e);\n };\n\n this.$cursorChange = function() {\n this.renderer.updateCursor();\n };\n this.onDocumentChange = function(delta) {\n var wrap = this.session.$useWrapMode;\n var lastRow = (delta.start.row == delta.end.row ? delta.end.row : Infinity);\n this.renderer.updateLines(delta.start.row, lastRow, wrap);\n\n this._signal(\"change\", delta);\n this.$cursorChange();\n this.$updateHighlightActiveLine();\n };\n\n this.onTokenizerUpdate = function(e) {\n var rows = e.data;\n this.renderer.updateLines(rows.first, rows.last);\n };\n\n\n this.onScrollTopChange = function() {\n this.renderer.scrollToY(this.session.getScrollTop());\n };\n\n this.onScrollLeftChange = function() {\n this.renderer.scrollToX(this.session.getScrollLeft());\n };\n this.onCursorChange = function() {\n this.$cursorChange();\n\n if (!this.$blockScrolling) {\n config.warn(\"Automatically scrolling cursor into view after selection change\",\n \"this will be disabled in the next version\",\n \"set editor.$blockScrolling = Infinity to disable this message\"\n );\n this.renderer.scrollCursorIntoView();\n }\n\n this.$highlightBrackets();\n this.$highlightTags();\n this.$updateHighlightActiveLine();\n this._signal(\"changeSelection\");\n };\n\n this.$updateHighlightActiveLine = function() {\n var session = this.getSession();\n\n var highlight;\n if (this.$highlightActiveLine) {\n if ((this.$selectionStyle != \"line\" || !this.selection.isMultiLine()))\n highlight = this.getCursorPosition();\n if (this.renderer.$maxLines && this.session.getLength() === 1 && !(this.renderer.$minLines > 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 === '</') {\n depth[token.value]--;\n }\n \n if (depth[token.value] === -1) {\n matchType = 'tag';\n found = true;\n }\n }\n\n if (!found) {\n prevToken = token;\n token = iterator.stepForward();\n i = 0;\n }\n } while (token && !found);\n if (!matchType)\n return;\n\n var range, pos;\n if (matchType === 'bracket') {\n range = this.session.getBracketRange(cursor);\n if (!range) {\n range = new Range(\n iterator.getCurrentTokenRow(),\n iterator.getCurrentTokenColumn() + i - 1,\n iterator.getCurrentTokenRow(),\n iterator.getCurrentTokenColumn() + i - 1\n );\n pos = range.start;\n if (expand || pos.row === cursor.row && Math.abs(pos.column - cursor.column) < 2)\n range = this.session.getBracketRange(pos);\n }\n }\n else if (matchType === 'tag') {\n if (token && token.type.indexOf('tag-name') !== -1) \n var tag = token.value;\n else\n return;\n\n range = new Range(\n iterator.getCurrentTokenRow(),\n iterator.getCurrentTokenColumn() - 2,\n iterator.getCurrentTokenRow(),\n iterator.getCurrentTokenColumn() - 2\n );\n if (range.compare(cursor.row, cursor.column) === 0) {\n found = false;\n do {\n token = prevToken;\n prevToken = iterator.stepBackward();\n \n if (prevToken) {\n if (prevToken.type.indexOf('tag-close') !== -1) {\n range.setEnd(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 1);\n }\n\n if (token.value === tag && token.type.indexOf('tag-name') !== -1) {\n if (prevToken.value === '<') {\n depth[tag]++;\n }\n else if (prevToken.value === '</') {\n depth[tag]--;\n }\n \n if (depth[tag] === 0)\n found = true;\n }\n }\n } while (prevToken && !found);\n }\n if (token && token.type.indexOf('tag-name')) {\n pos = range.start;\n if (pos.row == cursor.row && Math.abs(pos.column - cursor.column) < 2)\n pos = range.end;\n }\n }\n\n pos = range && range.cursor || pos;\n if (pos) {\n if (select) {\n if (range && expand) {\n this.selection.setRange(range);\n } else if (range && range.isEqual(this.getSelectionRange())) {\n this.clearSelection();\n } else {\n this.selection.selectTo(pos.row, pos.column);\n }\n } else {\n this.selection.moveTo(pos.row, pos.column);\n }\n }\n };\n this.gotoLine = function(lineNumber, column, animate) {\n this.selection.clearSelection();\n this.session.unfold({row: lineNumber - 1, column: column || 0});\n\n this.$blockScrolling += 1;\n this.exitMultiSelectMode && this.exitMultiSelectMode();\n this.moveCursorTo(lineNumber - 1, column || 0);\n this.$blockScrolling -= 1;\n\n if (!this.isRowFullyVisible(lineNumber - 1))\n this.scrollToLine(lineNumber - 1, true, animate);\n };\n this.navigateTo = function(row, column) {\n this.selection.moveTo(row, column);\n };\n this.navigateUp = function(times) {\n if (this.selection.isMultiLine() && !this.selection.isBackwards()) {\n var selectionStart = this.selection.anchor.getPosition();\n return this.moveCursorToPosition(selectionStart);\n }\n this.selection.clearSelection();\n this.selection.moveCursorBy(-times || -1, 0);\n };\n this.navigateDown = function(times) {\n if (this.selection.isMultiLine() && this.selection.isBackwards()) {\n var selectionEnd = this.selection.anchor.getPosition();\n return this.moveCursorToPosition(selectionEnd);\n }\n this.selection.clearSelection();\n this.selection.moveCursorBy(times || 1, 0);\n };\n this.navigateLeft = function(times) {\n if (!this.selection.isEmpty()) {\n var selectionStart = this.getSelectionRange().start;\n this.moveCursorToPosition(selectionStart);\n }\n else {\n times = times || 1;\n while (times--) {\n this.selection.moveCursorLeft();\n }\n }\n this.clearSelection();\n };\n this.navigateRight = function(times) {\n if (!this.selection.isEmpty()) {\n var selectionEnd = this.getSelectionRange().end;\n this.moveCursorToPosition(selectionEnd);\n }\n else {\n times = times || 1;\n while (times--) {\n this.selection.moveCursorRight();\n }\n }\n this.clearSelection();\n };\n this.navigateLineStart = function() {\n this.selection.moveCursorLineStart();\n this.clearSelection();\n };\n this.navigateLineEnd = function() {\n this.selection.moveCursorLineEnd();\n this.clearSelection();\n };\n this.navigateFileEnd = function() {\n this.selection.moveCursorFileEnd();\n this.clearSelection();\n };\n this.navigateFileStart = function() {\n this.selection.moveCursorFileStart();\n this.clearSelection();\n };\n this.navigateWordRight = function() {\n this.selection.moveCursorWordRight();\n this.clearSelection();\n };\n this.navigateWordLeft = function() {\n this.selection.moveCursorWordLeft();\n this.clearSelection();\n };\n this.replace = function(replacement, options) {\n if (options)\n this.$search.set(options);\n\n var range = this.$search.find(this.session);\n var replaced = 0;\n if (!range)\n return replaced;\n\n if (this.$tryReplace(range, replacement)) {\n replaced = 1;\n }\n if (range !== null) {\n this.selection.setSelectionRange(range);\n this.renderer.scrollSelectionIntoView(range.start, range.end);\n }\n\n return replaced;\n };\n this.replaceAll = function(replacement, options) {\n if (options) {\n this.$search.set(options);\n }\n\n var ranges = this.$search.findAll(this.session);\n var replaced = 0;\n if (!ranges.length)\n return replaced;\n\n this.$blockScrolling += 1;\n\n var selection = this.getSelectionRange();\n this.selection.moveTo(0, 0);\n\n for (var i = ranges.length - 1; i >= 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 \"<div class='\", clazz, \" ace_br1 ace_start' style='\",\n \"height:\", height, \"px;\",\n \"right:0;\",\n \"top:\", top, \"px;\",\n \"left:\", left, \"px;\", extraStyle, \"'></div>\"\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 \"<div class='\", clazz, \" ace_br12' style='\",\n \"height:\", height, \"px;\",\n \"width:\", width, \"px;\",\n \"top:\", top, \"px;\",\n \"left:\", padding, \"px;\", extraStyle, \"'></div>\"\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 \"<div class='\", clazz, (radiusClass ? \" ace_br\" + radiusClass : \"\"), \"' style='\",\n \"height:\", height, \"px;\",\n \"right:0;\",\n \"top:\", top, \"px;\",\n \"left:\", padding, \"px;\", extraStyle, \"'></div>\"\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 \"<div class='\", clazz, \"' style='\",\n \"height:\", height, \"px;\",\n \"width:\", width, \"px;\",\n \"top:\", top, \"px;\",\n \"left:\", left, \"px;\", extraStyle || \"\", \"'></div>\"\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 \"<div class='\", clazz, \"' style='\",\n \"height:\", height, \"px;\",\n \"width:\", selection.width + (extraLength || 0), \"px;\",\n \"top:\", top, \"px;\",\n \"left:\", padding + selection.left, \"px;\", extraStyle || \"\", \"'></div>\"\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 \"<div class='\", clazz, \"' style='\",\n \"height:\", height, \"px;\",\n \"top:\", top, \"px;\",\n \"left:0;right:0;\", extraStyle || \"\", \"'></div>\"\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 \"<div class='\", clazz, \"' style='\",\n \"height:\", height, \"px;\",\n \"top:\", top, \"px;\",\n \"left:0;right:0;\", extraStyle || \"\", \"'></div>\"\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(\"<span class='ace_invisible ace_invisible_tab'>\"\n + lang.stringRepeat(this.TAB_CHAR, i)\n + \"</span>\");\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[\" \"] = \"<span class='\" + className + spaceClass + \"'>\" + spaceContent + \"</span>\";\n this.$tabStrings[\"\\t\"] = \"<span class='\" + className + tabClass + \"'>\" + tabContent + \"</span>\";\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(\"<div class='ace_line_group' style='height:\", config.lineHeight*this.session.getRowLength(row), \"px'>\");\n\n this.$renderLine(html, row, false, row == foldStart ? foldLine : false);\n\n if (this.$useLineGroups())\n html.push(\"</div>\"); // 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 ? \"<span class='ace_invisible ace_invisible_space'>\" + lang.stringRepeat(self.SPACE_CHAR, c.length) + \"</span>\"\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 \"<span class='\" + classToUse + \"' style='width:\" +\n (self.config.characterWidth * 2) +\n \"px'>\" + space + \"</span>\";\n } else if (b) {\n return \"<span class='ace_invisible ace_invisible_space ace_invalid'>\" + self.SPACE_CHAR + \"</span>\";\n } else {\n screenColumn += 1;\n return \"<span class='ace_cjk' style='width:\" +\n (self.config.characterWidth * 2) +\n \"px'>\" + c + \"</span>\";\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(\"<span class='\", classes, \"'\", style, \">\", output, \"</span>\");\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(\"</div>\",\n \"<div class='ace_line' style='height:\",\n this.config.lineHeight, \"px'>\"\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 \"<div class='ace_line' style='height:\", \n this.config.lineHeight * (\n this.$useLineGroups() ? 1 :this.session.getRowLength(row)\n ), \"px'>\"\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 \"<span class='ace_invisible ace_invisible_eol'>\",\n row == this.session.getLength() - 1 ? this.EOF_CHAR : this.EOL_CHAR,\n \"</span>\"\n );\n }\n if (!onlyContents)\n stringBuilder.push(\"</div>\");\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(\"<br>\");\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.column<point2.column;return point1.row<point2.row||point1.row==point2.row&&bColIsAfter}function $getTransformedPoint(delta,point,moveIfEqual){var deltaIsInsert=\\\"insert\\\"==delta.action,deltaRowShift=(deltaIsInsert?1:-1)*(delta.end.row-delta.start.row),deltaColShift=(deltaIsInsert?1:-1)*(delta.end.column-delta.start.column),deltaStart=delta.start,deltaEnd=deltaIsInsert?deltaStart:delta.end;return $pointsInOrder(point,deltaStart,moveIfEqual)?{row:point.row,column:point.column}:$pointsInOrder(deltaEnd,point,!moveIfEqual)?{row:point.row+deltaRowShift,column:point.column+(point.row==deltaEnd.row?deltaColShift:0)}:{row:deltaStart.row,column:deltaStart.column}}oop.implement(this,EventEmitter),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.$insertRight=!1,this.onChange=function(delta){if(!(delta.start.row==delta.end.row&&delta.start.row!=this.row||delta.start.row>this.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(/</g,\\\"<\\\")},exports.getMatchOffsets=function(string,regExp){var matches=[];return string.replace(regExp,function(str){matches.push({offset:arguments[arguments.length-2],length:str.length})}),matches},exports.deferredCall=function(fcn){var timer=null,callback=function(){timer=null,fcn()},deferred=function(timeout){return deferred.cancel(),timer=setTimeout(callback,timeout||0),deferred};return deferred.schedule=deferred,deferred.call=function(){return this.cancel(),fcn(),deferred},deferred.cancel=function(){return clearTimeout(timer),timer=null,deferred},deferred.isPending=function(){return timer},deferred},exports.delayedCall=function(fcn,defaultTimeout){var timer=null,callback=function(){timer=null,fcn()},_self=function(timeout){null==timer&&(timer=setTimeout(callback,timeout||defaultTimeout))};return _self.delay=function(timeout){timer&&clearTimeout(timer),timer=setTimeout(callback,timeout||defaultTimeout)},_self.schedule=_self,_self.call=function(){this.cancel(),fcn()},_self.cancel=function(){timer&&clearTimeout(timer),timer=null},_self.isPending=function(){return timer},_self}}),ace.define(\\\"ace/worker/mirror\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\",\\\"ace/range\\\",\\\"ace/document\\\",\\\"ace/lib/lang\\\"],function(acequire,exports){\\\"use strict\\\";acequire(\\\"../range\\\").Range;var Document=acequire(\\\"../document\\\").Document,lang=acequire(\\\"../lib/lang\\\"),Mirror=exports.Mirror=function(sender){this.sender=sender;var doc=this.doc=new Document(\\\"\\\"),deferredUpdate=this.deferredUpdate=lang.delayedCall(this.onUpdate.bind(this)),_self=this;sender.on(\\\"change\\\",function(e){var data=e.data;if(data[0].start)doc.applyDeltas(data);else for(var i=0;data.length>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 <COPYRIGHT HOLDER> 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. <svg:path> 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 {<foo as bar>} ...;\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 <foo> ...;\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; // `<!--`\n\t var comment = this.skipSingleLineComment(4);\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 {\n\t break;\n\t }\n\t }\n\t return comments;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-future-reserved-words\n\t Scanner.prototype.isFutureReservedWord = function (id) {\n\t switch (id) {\n\t case 'enum':\n\t case 'export':\n\t case 'import':\n\t case 'super':\n\t return true;\n\t default:\n\t return false;\n\t }\n\t };\n\t Scanner.prototype.isStrictModeReservedWord = function (id) {\n\t switch (id) {\n\t case 'implements':\n\t case 'interface':\n\t case 'package':\n\t case 'private':\n\t case 'protected':\n\t case 'public':\n\t case 'static':\n\t case 'yield':\n\t case 'let':\n\t return true;\n\t default:\n\t return false;\n\t }\n\t };\n\t Scanner.prototype.isRestrictedWord = function (id) {\n\t return id === 'eval' || id === 'arguments';\n\t };\n\t // https://tc39.github.io/ecma262/#sec-keywords\n\t Scanner.prototype.isKeyword = function (id) {\n\t switch (id.length) {\n\t case 2:\n\t return (id === 'if') || (id === 'in') || (id === 'do');\n\t case 3:\n\t return (id === 'var') || (id === 'for') || (id === 'new') ||\n\t (id === 'try') || (id === 'let');\n\t case 4:\n\t return (id === 'this') || (id === 'else') || (id === 'case') ||\n\t (id === 'void') || (id === 'with') || (id === 'enum');\n\t case 5:\n\t return (id === 'while') || (id === 'break') || (id === 'catch') ||\n\t (id === 'throw') || (id === 'const') || (id === 'yield') ||\n\t (id === 'class') || (id === 'super');\n\t case 6:\n\t return (id === 'return') || (id === 'typeof') || (id === 'delete') ||\n\t (id === 'switch') || (id === 'export') || (id === 'import');\n\t case 7:\n\t return (id === 'default') || (id === 'finally') || (id === 'extends');\n\t case 8:\n\t return (id === 'function') || (id === 'continue') || (id === 'debugger');\n\t case 10:\n\t return (id === 'instanceof');\n\t default:\n\t return false;\n\t }\n\t };\n\t Scanner.prototype.codePointAt = function (i) {\n\t var cp = this.source.charCodeAt(i);\n\t if (cp >= 0xD800 && cp <= 0xDBFF) {\n\t var second = this.source.charCodeAt(i + 1);\n\t if (second >= 0xDC00 && second <= 0xDFFF) {\n\t var first = cp;\n\t cp = (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n\t }\n\t }\n\t return cp;\n\t };\n\t Scanner.prototype.scanHexEscape = function (prefix) {\n\t var len = (prefix === 'u') ? 4 : 2;\n\t var code = 0;\n\t for (var i = 0; i < len; ++i) {\n\t if (!this.eof() && character_1.Character.isHexDigit(this.source.charCodeAt(this.index))) {\n\t code = code * 16 + hexValue(this.source[this.index++]);\n\t }\n\t else {\n\t return null;\n\t }\n\t }\n\t return String.fromCharCode(code);\n\t };\n\t Scanner.prototype.scanUnicodeCodePointEscape = function () {\n\t var ch = this.source[this.index];\n\t var code = 0;\n\t // At least, one hex digit is required.\n\t if (ch === '}') {\n\t this.throwUnexpectedToken();\n\t }\n\t while (!this.eof()) {\n\t ch = this.source[this.index++];\n\t if (!character_1.Character.isHexDigit(ch.charCodeAt(0))) {\n\t break;\n\t }\n\t code = code * 16 + hexValue(ch);\n\t }\n\t if (code > 0x10FFFF || ch !== '}') {\n\t this.throwUnexpectedToken();\n\t }\n\t return character_1.Character.fromCodePoint(code);\n\t };\n\t Scanner.prototype.getIdentifier = function () {\n\t var start = this.index++;\n\t while (!this.eof()) {\n\t var ch = this.source.charCodeAt(this.index);\n\t if (ch === 0x5C) {\n\t // Blackslash (U+005C) marks Unicode escape sequence.\n\t this.index = start;\n\t return this.getComplexIdentifier();\n\t }\n\t else if (ch >= 0xD800 && ch < 0xDFFF) {\n\t // Need to handle surrogate pairs.\n\t this.index = start;\n\t return this.getComplexIdentifier();\n\t }\n\t if (character_1.Character.isIdentifierPart(ch)) {\n\t ++this.index;\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t return this.source.slice(start, this.index);\n\t };\n\t Scanner.prototype.getComplexIdentifier = function () {\n\t var cp = this.codePointAt(this.index);\n\t var id = character_1.Character.fromCodePoint(cp);\n\t this.index += id.length;\n\t // '\\u' (U+005C, U+0075) denotes an escaped character.\n\t var ch;\n\t if (cp === 0x5C) {\n\t if (this.source.charCodeAt(this.index) !== 0x75) {\n\t this.throwUnexpectedToken();\n\t }\n\t ++this.index;\n\t if (this.source[this.index] === '{') {\n\t ++this.index;\n\t ch = this.scanUnicodeCodePointEscape();\n\t }\n\t else {\n\t ch = this.scanHexEscape('u');\n\t if (ch === null || ch === '\\\\' || !character_1.Character.isIdentifierStart(ch.charCodeAt(0))) {\n\t this.throwUnexpectedToken();\n\t }\n\t }\n\t id = ch;\n\t }\n\t while (!this.eof()) {\n\t cp = this.codePointAt(this.index);\n\t if (!character_1.Character.isIdentifierPart(cp)) {\n\t break;\n\t }\n\t ch = character_1.Character.fromCodePoint(cp);\n\t id += ch;\n\t this.index += ch.length;\n\t // '\\u' (U+005C, U+0075) denotes an escaped character.\n\t if (cp === 0x5C) {\n\t id = id.substr(0, id.length - 1);\n\t if (this.source.charCodeAt(this.index) !== 0x75) {\n\t this.throwUnexpectedToken();\n\t }\n\t ++this.index;\n\t if (this.source[this.index] === '{') {\n\t ++this.index;\n\t ch = this.scanUnicodeCodePointEscape();\n\t }\n\t else {\n\t ch = this.scanHexEscape('u');\n\t if (ch === null || ch === '\\\\' || !character_1.Character.isIdentifierPart(ch.charCodeAt(0))) {\n\t this.throwUnexpectedToken();\n\t }\n\t }\n\t id += ch;\n\t }\n\t }\n\t return id;\n\t };\n\t Scanner.prototype.octalToDecimal = function (ch) {\n\t // \\0 is not octal escape sequence\n\t var octal = (ch !== '0');\n\t var code = octalValue(ch);\n\t if (!this.eof() && character_1.Character.isOctalDigit(this.source.charCodeAt(this.index))) {\n\t octal = true;\n\t code = code * 8 + octalValue(this.source[this.index++]);\n\t // 3 digits are only allowed when string starts\n\t // with 0, 1, 2, 3\n\t if ('0123'.indexOf(ch) >= 0 && !this.eof() && character_1.Character.isOctalDigit(this.source.charCodeAt(this.index))) {\n\t code = code * 8 + octalValue(this.source[this.index++]);\n\t }\n\t }\n\t return {\n\t code: code,\n\t octal: octal\n\t };\n\t };\n\t // https://tc39.github.io/ecma262/#sec-names-and-keywords\n\t Scanner.prototype.scanIdentifier = function () {\n\t var type;\n\t var start = this.index;\n\t // Backslash (U+005C) starts an escaped character.\n\t var id = (this.source.charCodeAt(start) === 0x5C) ? this.getComplexIdentifier() : this.getIdentifier();\n\t // There is no keyword or literal with only one character.\n\t // Thus, it must be an identifier.\n\t if (id.length === 1) {\n\t type = 3 /* Identifier */;\n\t }\n\t else if (this.isKeyword(id)) {\n\t type = 4 /* Keyword */;\n\t }\n\t else if (id === 'null') {\n\t type = 5 /* NullLiteral */;\n\t }\n\t else if (id === 'true' || id === 'false') {\n\t type = 1 /* BooleanLiteral */;\n\t }\n\t else {\n\t type = 3 /* Identifier */;\n\t }\n\t if (type !== 3 /* Identifier */ && (start + id.length !== this.index)) {\n\t var restore = this.index;\n\t this.index = start;\n\t this.tolerateUnexpectedToken(messages_1.Messages.InvalidEscapedReservedWord);\n\t this.index = restore;\n\t }\n\t return {\n\t type: type,\n\t value: id,\n\t lineNumber: this.lineNumber,\n\t lineStart: this.lineStart,\n\t start: start,\n\t end: this.index\n\t };\n\t };\n\t // https://tc39.github.io/ecma262/#sec-punctuators\n\t Scanner.prototype.scanPunctuator = function () {\n\t var start = this.index;\n\t // Check for most common single-character punctuators.\n\t var str = this.source[this.index];\n\t switch (str) {\n\t case '(':\n\t case '{':\n\t if (str === '{') {\n\t this.curlyStack.push('{');\n\t }\n\t ++this.index;\n\t break;\n\t case '.':\n\t ++this.index;\n\t if (this.source[this.index] === '.' && this.source[this.index + 1] === '.') {\n\t // Spread operator: ...\n\t this.index += 2;\n\t str = '...';\n\t }\n\t break;\n\t case '}':\n\t ++this.index;\n\t this.curlyStack.pop();\n\t break;\n\t case ')':\n\t case ';':\n\t case ',':\n\t case '[':\n\t case ']':\n\t case ':':\n\t case '?':\n\t case '~':\n\t ++this.index;\n\t break;\n\t default:\n\t // 4-character punctuator.\n\t str = this.source.substr(this.index, 4);\n\t if (str === '>>>=') {\n\t this.index += 4;\n\t }\n\t else {\n\t // 3-character punctuators.\n\t str = str.substr(0, 3);\n\t if (str === '===' || str === '!==' || str === '>>>' ||\n\t str === '<<=' || str === '>>=' || str === '**=') {\n\t this.index += 3;\n\t }\n\t else {\n\t // 2-character punctuators.\n\t str = str.substr(0, 2);\n\t if (str === '&&' || str === '||' || str === '==' || str === '!=' ||\n\t str === '+=' || str === '-=' || str === '*=' || str === '/=' ||\n\t str === '++' || str === '--' || str === '<<' || str === '>>' ||\n\t str === '&=' || str === '|=' || str === '^=' || str === '%=' ||\n\t str === '<=' || str === '>=' || str === '=>' || str === '**') {\n\t this.index += 2;\n\t }\n\t else {\n\t // 1-character punctuators.\n\t str = this.source[this.index];\n\t if ('<>=!+-*%&|^/'.indexOf(str) >= 0) {\n\t ++this.index;\n\t }\n\t }\n\t }\n\t }\n\t }\n\t if (this.index === start) {\n\t this.throwUnexpectedToken();\n\t }\n\t return {\n\t type: 7 /* Punctuator */,\n\t value: str,\n\t lineNumber: this.lineNumber,\n\t lineStart: this.lineStart,\n\t start: start,\n\t end: this.index\n\t };\n\t };\n\t // https://tc39.github.io/ecma262/#sec-literals-numeric-literals\n\t Scanner.prototype.scanHexLiteral = function (start) {\n\t var num = '';\n\t while (!this.eof()) {\n\t if (!character_1.Character.isHexDigit(this.source.charCodeAt(this.index))) {\n\t break;\n\t }\n\t num += this.source[this.index++];\n\t }\n\t if (num.length === 0) {\n\t this.throwUnexpectedToken();\n\t }\n\t if (character_1.Character.isIdentifierStart(this.source.charCodeAt(this.index))) {\n\t this.throwUnexpectedToken();\n\t }\n\t return {\n\t type: 6 /* NumericLiteral */,\n\t value: parseInt('0x' + num, 16),\n\t lineNumber: this.lineNumber,\n\t lineStart: this.lineStart,\n\t start: start,\n\t end: this.index\n\t };\n\t };\n\t Scanner.prototype.scanBinaryLiteral = function (start) {\n\t var num = '';\n\t var ch;\n\t while (!this.eof()) {\n\t ch = this.source[this.index];\n\t if (ch !== '0' && ch !== '1') {\n\t break;\n\t }\n\t num += this.source[this.index++];\n\t }\n\t if (num.length === 0) {\n\t // only 0b or 0B\n\t this.throwUnexpectedToken();\n\t }\n\t if (!this.eof()) {\n\t ch = this.source.charCodeAt(this.index);\n\t /* istanbul ignore else */\n\t if (character_1.Character.isIdentifierStart(ch) || character_1.Character.isDecimalDigit(ch)) {\n\t this.throwUnexpectedToken();\n\t }\n\t }\n\t return {\n\t type: 6 /* NumericLiteral */,\n\t value: parseInt(num, 2),\n\t lineNumber: this.lineNumber,\n\t lineStart: this.lineStart,\n\t start: start,\n\t end: this.index\n\t };\n\t };\n\t Scanner.prototype.scanOctalLiteral = function (prefix, start) {\n\t var num = '';\n\t var octal = false;\n\t if (character_1.Character.isOctalDigit(prefix.charCodeAt(0))) {\n\t octal = true;\n\t num = '0' + this.source[this.index++];\n\t }\n\t else {\n\t ++this.index;\n\t }\n\t while (!this.eof()) {\n\t if (!character_1.Character.isOctalDigit(this.source.charCodeAt(this.index))) {\n\t break;\n\t }\n\t num += this.source[this.index++];\n\t }\n\t if (!octal && num.length === 0) {\n\t // only 0o or 0O\n\t this.throwUnexpectedToken();\n\t }\n\t if (character_1.Character.isIdentifierStart(this.source.charCodeAt(this.index)) || character_1.Character.isDecimalDigit(this.source.charCodeAt(this.index))) {\n\t this.throwUnexpectedToken();\n\t }\n\t return {\n\t type: 6 /* NumericLiteral */,\n\t value: parseInt(num, 8),\n\t octal: octal,\n\t lineNumber: this.lineNumber,\n\t lineStart: this.lineStart,\n\t start: start,\n\t end: this.index\n\t };\n\t };\n\t Scanner.prototype.isImplicitOctalLiteral = function () {\n\t // Implicit octal, unless there is a non-octal digit.\n\t // (Annex B.1.1 on Numeric Literals)\n\t for (var i = this.index + 1; i < this.length; ++i) {\n\t var ch = this.source[i];\n\t if (ch === '8' || ch === '9') {\n\t return false;\n\t }\n\t if (!character_1.Character.isOctalDigit(ch.charCodeAt(0))) {\n\t return true;\n\t }\n\t }\n\t return true;\n\t };\n\t Scanner.prototype.scanNumericLiteral = function () {\n\t var start = this.index;\n\t var ch = this.source[start];\n\t assert_1.assert(character_1.Character.isDecimalDigit(ch.charCodeAt(0)) || (ch === '.'), 'Numeric literal must start with a decimal digit or a decimal point');\n\t var num = '';\n\t if (ch !== '.') {\n\t num = this.source[this.index++];\n\t ch = this.source[this.index];\n\t // Hex number starts with '0x'.\n\t // Octal number starts with '0'.\n\t // Octal number in ES6 starts with '0o'.\n\t // Binary number in ES6 starts with '0b'.\n\t if (num === '0') {\n\t if (ch === 'x' || ch === 'X') {\n\t ++this.index;\n\t return this.scanHexLiteral(start);\n\t }\n\t if (ch === 'b' || ch === 'B') {\n\t ++this.index;\n\t return this.scanBinaryLiteral(start);\n\t }\n\t if (ch === 'o' || ch === 'O') {\n\t return this.scanOctalLiteral(ch, start);\n\t }\n\t if (ch && character_1.Character.isOctalDigit(ch.charCodeAt(0))) {\n\t if (this.isImplicitOctalLiteral()) {\n\t return this.scanOctalLiteral(ch, start);\n\t }\n\t }\n\t }\n\t while (character_1.Character.isDecimalDigit(this.source.charCodeAt(this.index))) {\n\t num += this.source[this.index++];\n\t }\n\t ch = this.source[this.index];\n\t }\n\t if (ch === '.') {\n\t num += this.source[this.index++];\n\t while (character_1.Character.isDecimalDigit(this.source.charCodeAt(this.index))) {\n\t num += this.source[this.index++];\n\t }\n\t ch = this.source[this.index];\n\t }\n\t if (ch === 'e' || ch === 'E') {\n\t num += this.source[this.index++];\n\t ch = this.source[this.index];\n\t if (ch === '+' || ch === '-') {\n\t num += this.source[this.index++];\n\t }\n\t if (character_1.Character.isDecimalDigit(this.source.charCodeAt(this.index))) {\n\t while (character_1.Character.isDecimalDigit(this.source.charCodeAt(this.index))) {\n\t num += this.source[this.index++];\n\t }\n\t }\n\t else {\n\t this.throwUnexpectedToken();\n\t }\n\t }\n\t if (character_1.Character.isIdentifierStart(this.source.charCodeAt(this.index))) {\n\t this.throwUnexpectedToken();\n\t }\n\t return {\n\t type: 6 /* NumericLiteral */,\n\t value: parseFloat(num),\n\t lineNumber: this.lineNumber,\n\t lineStart: this.lineStart,\n\t start: start,\n\t end: this.index\n\t };\n\t };\n\t // https://tc39.github.io/ecma262/#sec-literals-string-literals\n\t Scanner.prototype.scanStringLiteral = function () {\n\t var start = this.index;\n\t var quote = this.source[start];\n\t assert_1.assert((quote === '\\'' || quote === '\"'), 'String literal must starts with a quote');\n\t ++this.index;\n\t var octal = false;\n\t var str = '';\n\t while (!this.eof()) {\n\t var ch = this.source[this.index++];\n\t if (ch === quote) {\n\t quote = '';\n\t break;\n\t }\n\t else if (ch === '\\\\') {\n\t ch = this.source[this.index++];\n\t if (!ch || !character_1.Character.isLineTerminator(ch.charCodeAt(0))) {\n\t switch (ch) {\n\t case 'u':\n\t if (this.source[this.index] === '{') {\n\t ++this.index;\n\t str += this.scanUnicodeCodePointEscape();\n\t }\n\t else {\n\t var unescaped_1 = this.scanHexEscape(ch);\n\t if (unescaped_1 === null) {\n\t this.throwUnexpectedToken();\n\t }\n\t str += unescaped_1;\n\t }\n\t break;\n\t case 'x':\n\t var unescaped = this.scanHexEscape(ch);\n\t if (unescaped === null) {\n\t this.throwUnexpectedToken(messages_1.Messages.InvalidHexEscapeSequence);\n\t }\n\t str += unescaped;\n\t break;\n\t case 'n':\n\t str += '\\n';\n\t break;\n\t case 'r':\n\t str += '\\r';\n\t break;\n\t case 't':\n\t str += '\\t';\n\t break;\n\t case 'b':\n\t str += '\\b';\n\t break;\n\t case 'f':\n\t str += '\\f';\n\t break;\n\t case 'v':\n\t str += '\\x0B';\n\t break;\n\t case '8':\n\t case '9':\n\t str += ch;\n\t this.tolerateUnexpectedToken();\n\t break;\n\t default:\n\t if (ch && character_1.Character.isOctalDigit(ch.charCodeAt(0))) {\n\t var octToDec = this.octalToDecimal(ch);\n\t octal = octToDec.octal || octal;\n\t str += String.fromCharCode(octToDec.code);\n\t }\n\t else {\n\t str += ch;\n\t }\n\t break;\n\t }\n\t }\n\t else {\n\t ++this.lineNumber;\n\t if (ch === '\\r' && this.source[this.index] === '\\n') {\n\t ++this.index;\n\t }\n\t this.lineStart = this.index;\n\t }\n\t }\n\t else if (character_1.Character.isLineTerminator(ch.charCodeAt(0))) {\n\t break;\n\t }\n\t else {\n\t str += ch;\n\t }\n\t }\n\t if (quote !== '') {\n\t this.index = start;\n\t this.throwUnexpectedToken();\n\t }\n\t return {\n\t type: 8 /* StringLiteral */,\n\t value: str,\n\t octal: octal,\n\t lineNumber: this.lineNumber,\n\t lineStart: this.lineStart,\n\t start: start,\n\t end: this.index\n\t };\n\t };\n\t // https://tc39.github.io/ecma262/#sec-template-literal-lexical-components\n\t Scanner.prototype.scanTemplate = function () {\n\t var cooked = '';\n\t var terminated = false;\n\t var start = this.index;\n\t var head = (this.source[start] === '`');\n\t var tail = false;\n\t var rawOffset = 2;\n\t ++this.index;\n\t while (!this.eof()) {\n\t var ch = this.source[this.index++];\n\t if (ch === '`') {\n\t rawOffset = 1;\n\t tail = true;\n\t terminated = true;\n\t break;\n\t }\n\t else if (ch === '$') {\n\t if (this.source[this.index] === '{') {\n\t this.curlyStack.push('${');\n\t ++this.index;\n\t terminated = true;\n\t break;\n\t }\n\t cooked += ch;\n\t }\n\t else if (ch === '\\\\') {\n\t ch = this.source[this.index++];\n\t if (!character_1.Character.isLineTerminator(ch.charCodeAt(0))) {\n\t switch (ch) {\n\t case 'n':\n\t cooked += '\\n';\n\t break;\n\t case 'r':\n\t cooked += '\\r';\n\t break;\n\t case 't':\n\t cooked += '\\t';\n\t break;\n\t case 'u':\n\t if (this.source[this.index] === '{') {\n\t ++this.index;\n\t cooked += this.scanUnicodeCodePointEscape();\n\t }\n\t else {\n\t var restore = this.index;\n\t var unescaped_2 = this.scanHexEscape(ch);\n\t if (unescaped_2 !== null) {\n\t cooked += unescaped_2;\n\t }\n\t else {\n\t this.index = restore;\n\t cooked += ch;\n\t }\n\t }\n\t break;\n\t case 'x':\n\t var unescaped = this.scanHexEscape(ch);\n\t if (unescaped === null) {\n\t this.throwUnexpectedToken(messages_1.Messages.InvalidHexEscapeSequence);\n\t }\n\t cooked += unescaped;\n\t break;\n\t case 'b':\n\t cooked += '\\b';\n\t break;\n\t case 'f':\n\t cooked += '\\f';\n\t break;\n\t case 'v':\n\t cooked += '\\v';\n\t break;\n\t default:\n\t if (ch === '0') {\n\t if (character_1.Character.isDecimalDigit(this.source.charCodeAt(this.index))) {\n\t // Illegal: \\01 \\02 and so on\n\t this.throwUnexpectedToken(messages_1.Messages.TemplateOctalLiteral);\n\t }\n\t cooked += '\\0';\n\t }\n\t else if (character_1.Character.isOctalDigit(ch.charCodeAt(0))) {\n\t // Illegal: \\1 \\2\n\t this.throwUnexpectedToken(messages_1.Messages.TemplateOctalLiteral);\n\t }\n\t else {\n\t cooked += ch;\n\t }\n\t break;\n\t }\n\t }\n\t else {\n\t ++this.lineNumber;\n\t if (ch === '\\r' && this.source[this.index] === '\\n') {\n\t ++this.index;\n\t }\n\t this.lineStart = this.index;\n\t }\n\t }\n\t else if (character_1.Character.isLineTerminator(ch.charCodeAt(0))) {\n\t ++this.lineNumber;\n\t if (ch === '\\r' && this.source[this.index] === '\\n') {\n\t ++this.index;\n\t }\n\t this.lineStart = this.index;\n\t cooked += '\\n';\n\t }\n\t else {\n\t cooked += ch;\n\t }\n\t }\n\t if (!terminated) {\n\t this.throwUnexpectedToken();\n\t }\n\t if (!head) {\n\t this.curlyStack.pop();\n\t }\n\t return {\n\t type: 10 /* Template */,\n\t value: this.source.slice(start + 1, this.index - rawOffset),\n\t cooked: cooked,\n\t head: head,\n\t tail: tail,\n\t lineNumber: this.lineNumber,\n\t lineStart: this.lineStart,\n\t start: start,\n\t end: this.index\n\t };\n\t };\n\t // https://tc39.github.io/ecma262/#sec-literals-regular-expression-literals\n\t Scanner.prototype.testRegExp = function (pattern, flags) {\n\t // The BMP character to use as a replacement for astral symbols when\n\t // translating an ES6 \"u\"-flagged pattern to an ES5-compatible\n\t // approximation.\n\t // Note: replacing with '\\uFFFF' enables false positives in unlikely\n\t // scenarios. For example, `[\\u{1044f}-\\u{10440}]` is an invalid\n\t // pattern that would not be detected by this substitution.\n\t var astralSubstitute = '\\uFFFF';\n\t var tmp = pattern;\n\t var self = this;\n\t if (flags.indexOf('u') >= 0) {\n\t tmp = tmp\n\t .replace(/\\\\u\\{([0-9a-fA-F]+)\\}|\\\\u([a-fA-F0-9]{4})/g, function ($0, $1, $2) {\n\t var codePoint = parseInt($1 || $2, 16);\n\t if (codePoint > 0x10FFFF) {\n\t self.throwUnexpectedToken(messages_1.Messages.InvalidRegExp);\n\t }\n\t if (codePoint <= 0xFFFF) {\n\t return String.fromCharCode(codePoint);\n\t }\n\t return astralSubstitute;\n\t })\n\t .replace(/[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g, astralSubstitute);\n\t }\n\t // First, detect invalid regular expressions.\n\t try {\n\t RegExp(tmp);\n\t }\n\t catch (e) {\n\t this.throwUnexpectedToken(messages_1.Messages.InvalidRegExp);\n\t }\n\t // Return a regular expression object for this pattern-flag pair, or\n\t // `null` in case the current environment doesn't support the flags it\n\t // uses.\n\t try {\n\t return new RegExp(pattern, flags);\n\t }\n\t catch (exception) {\n\t /* istanbul ignore next */\n\t return null;\n\t }\n\t };\n\t Scanner.prototype.scanRegExpBody = function () {\n\t var ch = this.source[this.index];\n\t assert_1.assert(ch === '/', 'Regular expression literal must start with a slash');\n\t var str = this.source[this.index++];\n\t var classMarker = false;\n\t var terminated = false;\n\t while (!this.eof()) {\n\t ch = this.source[this.index++];\n\t str += ch;\n\t if (ch === '\\\\') {\n\t ch = this.source[this.index++];\n\t // https://tc39.github.io/ecma262/#sec-literals-regular-expression-literals\n\t if (character_1.Character.isLineTerminator(ch.charCodeAt(0))) {\n\t this.throwUnexpectedToken(messages_1.Messages.UnterminatedRegExp);\n\t }\n\t str += ch;\n\t }\n\t else if (character_1.Character.isLineTerminator(ch.charCodeAt(0))) {\n\t this.throwUnexpectedToken(messages_1.Messages.UnterminatedRegExp);\n\t }\n\t else if (classMarker) {\n\t if (ch === ']') {\n\t classMarker = false;\n\t }\n\t }\n\t else {\n\t if (ch === '/') {\n\t terminated = true;\n\t break;\n\t }\n\t else if (ch === '[') {\n\t classMarker = true;\n\t }\n\t }\n\t }\n\t if (!terminated) {\n\t this.throwUnexpectedToken(messages_1.Messages.UnterminatedRegExp);\n\t }\n\t // Exclude leading and trailing slash.\n\t return str.substr(1, str.length - 2);\n\t };\n\t Scanner.prototype.scanRegExpFlags = function () {\n\t var str = '';\n\t var flags = '';\n\t while (!this.eof()) {\n\t var ch = this.source[this.index];\n\t if (!character_1.Character.isIdentifierPart(ch.charCodeAt(0))) {\n\t break;\n\t }\n\t ++this.index;\n\t if (ch === '\\\\' && !this.eof()) {\n\t ch = this.source[this.index];\n\t if (ch === 'u') {\n\t ++this.index;\n\t var restore = this.index;\n\t var char = this.scanHexEscape('u');\n\t if (char !== null) {\n\t flags += char;\n\t for (str += '\\\\u'; restore < this.index; ++restore) {\n\t str += this.source[restore];\n\t }\n\t }\n\t else {\n\t this.index = restore;\n\t flags += 'u';\n\t str += '\\\\u';\n\t }\n\t this.tolerateUnexpectedToken();\n\t }\n\t else {\n\t str += '\\\\';\n\t this.tolerateUnexpectedToken();\n\t }\n\t }\n\t else {\n\t flags += ch;\n\t str += ch;\n\t }\n\t }\n\t return flags;\n\t };\n\t Scanner.prototype.scanRegExp = function () {\n\t var start = this.index;\n\t var pattern = this.scanRegExpBody();\n\t var flags = this.scanRegExpFlags();\n\t var value = this.testRegExp(pattern, flags);\n\t return {\n\t type: 9 /* RegularExpression */,\n\t value: '',\n\t pattern: pattern,\n\t flags: flags,\n\t regex: value,\n\t lineNumber: this.lineNumber,\n\t lineStart: this.lineStart,\n\t start: start,\n\t end: this.index\n\t };\n\t };\n\t Scanner.prototype.lex = function () {\n\t if (this.eof()) {\n\t return {\n\t type: 2 /* EOF */,\n\t value: '',\n\t lineNumber: this.lineNumber,\n\t lineStart: this.lineStart,\n\t start: this.index,\n\t end: this.index\n\t };\n\t }\n\t var cp = this.source.charCodeAt(this.index);\n\t if (character_1.Character.isIdentifierStart(cp)) {\n\t return this.scanIdentifier();\n\t }\n\t // Very common: ( and ) and ;\n\t if (cp === 0x28 || cp === 0x29 || cp === 0x3B) {\n\t return this.scanPunctuator();\n\t }\n\t // String literal starts with single quote (U+0027) or double quote (U+0022).\n\t if (cp === 0x27 || cp === 0x22) {\n\t return this.scanStringLiteral();\n\t }\n\t // Dot (.) U+002E can also start a floating-point number, hence the need\n\t // to check the next character.\n\t if (cp === 0x2E) {\n\t if (character_1.Character.isDecimalDigit(this.source.charCodeAt(this.index + 1))) {\n\t return this.scanNumericLiteral();\n\t }\n\t return this.scanPunctuator();\n\t }\n\t if (character_1.Character.isDecimalDigit(cp)) {\n\t return this.scanNumericLiteral();\n\t }\n\t // Template literals start with ` (U+0060) for template head\n\t // or } (U+007D) for template middle or template tail.\n\t if (cp === 0x60 || (cp === 0x7D && this.curlyStack[this.curlyStack.length - 1] === '${')) {\n\t return this.scanTemplate();\n\t }\n\t // Possible identifier start in a surrogate pair.\n\t if (cp >= 0xD800 && cp < 0xDFFF) {\n\t if (character_1.Character.isIdentifierStart(this.codePointAt(this.index))) {\n\t return this.scanIdentifier();\n\t }\n\t }\n\t return this.scanPunctuator();\n\t };\n\t return Scanner;\n\t}());\n\texports.Scanner = Scanner;\n\n\n/***/ },\n/* 13 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\texports.TokenName = {};\n\texports.TokenName[1 /* BooleanLiteral */] = 'Boolean';\n\texports.TokenName[2 /* EOF */] = '<end>';\n\texports.TokenName[3 /* Identifier */] = 'Identifier';\n\texports.TokenName[4 /* Keyword */] = 'Keyword';\n\texports.TokenName[5 /* NullLiteral */] = 'Null';\n\texports.TokenName[6 /* NumericLiteral */] = 'Numeric';\n\texports.TokenName[7 /* Punctuator */] = 'Punctuator';\n\texports.TokenName[8 /* StringLiteral */] = 'String';\n\texports.TokenName[9 /* RegularExpression */] = 'RegularExpression';\n\texports.TokenName[10 /* Template */] = 'Template';\n\n\n/***/ },\n/* 14 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t// Generated by generate-xhtml-entities.js. DO NOT MODIFY!\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\texports.XHTMLEntities = {\n\t quot: '\\u0022',\n\t amp: '\\u0026',\n\t apos: '\\u0027',\n\t gt: '\\u003E',\n\t nbsp: '\\u00A0',\n\t iexcl: '\\u00A1',\n\t cent: '\\u00A2',\n\t pound: '\\u00A3',\n\t curren: '\\u00A4',\n\t yen: '\\u00A5',\n\t brvbar: '\\u00A6',\n\t sect: '\\u00A7',\n\t uml: '\\u00A8',\n\t copy: '\\u00A9',\n\t ordf: '\\u00AA',\n\t laquo: '\\u00AB',\n\t not: '\\u00AC',\n\t shy: '\\u00AD',\n\t reg: '\\u00AE',\n\t macr: '\\u00AF',\n\t deg: '\\u00B0',\n\t plusmn: '\\u00B1',\n\t sup2: '\\u00B2',\n\t sup3: '\\u00B3',\n\t acute: '\\u00B4',\n\t micro: '\\u00B5',\n\t para: '\\u00B6',\n\t middot: '\\u00B7',\n\t cedil: '\\u00B8',\n\t sup1: '\\u00B9',\n\t ordm: '\\u00BA',\n\t raquo: '\\u00BB',\n\t frac14: '\\u00BC',\n\t frac12: '\\u00BD',\n\t frac34: '\\u00BE',\n\t iquest: '\\u00BF',\n\t Agrave: '\\u00C0',\n\t Aacute: '\\u00C1',\n\t Acirc: '\\u00C2',\n\t Atilde: '\\u00C3',\n\t Auml: '\\u00C4',\n\t Aring: '\\u00C5',\n\t AElig: '\\u00C6',\n\t Ccedil: '\\u00C7',\n\t Egrave: '\\u00C8',\n\t Eacute: '\\u00C9',\n\t Ecirc: '\\u00CA',\n\t Euml: '\\u00CB',\n\t Igrave: '\\u00CC',\n\t Iacute: '\\u00CD',\n\t Icirc: '\\u00CE',\n\t Iuml: '\\u00CF',\n\t ETH: '\\u00D0',\n\t Ntilde: '\\u00D1',\n\t Ograve: '\\u00D2',\n\t Oacute: '\\u00D3',\n\t Ocirc: '\\u00D4',\n\t Otilde: '\\u00D5',\n\t Ouml: '\\u00D6',\n\t times: '\\u00D7',\n\t Oslash: '\\u00D8',\n\t Ugrave: '\\u00D9',\n\t Uacute: '\\u00DA',\n\t Ucirc: '\\u00DB',\n\t Uuml: '\\u00DC',\n\t Yacute: '\\u00DD',\n\t THORN: '\\u00DE',\n\t szlig: '\\u00DF',\n\t agrave: '\\u00E0',\n\t aacute: '\\u00E1',\n\t acirc: '\\u00E2',\n\t atilde: '\\u00E3',\n\t auml: '\\u00E4',\n\t aring: '\\u00E5',\n\t aelig: '\\u00E6',\n\t ccedil: '\\u00E7',\n\t egrave: '\\u00E8',\n\t eacute: '\\u00E9',\n\t ecirc: '\\u00EA',\n\t euml: '\\u00EB',\n\t igrave: '\\u00EC',\n\t iacute: '\\u00ED',\n\t icirc: '\\u00EE',\n\t iuml: '\\u00EF',\n\t eth: '\\u00F0',\n\t ntilde: '\\u00F1',\n\t ograve: '\\u00F2',\n\t oacute: '\\u00F3',\n\t ocirc: '\\u00F4',\n\t otilde: '\\u00F5',\n\t ouml: '\\u00F6',\n\t divide: '\\u00F7',\n\t oslash: '\\u00F8',\n\t ugrave: '\\u00F9',\n\t uacute: '\\u00FA',\n\t ucirc: '\\u00FB',\n\t uuml: '\\u00FC',\n\t yacute: '\\u00FD',\n\t thorn: '\\u00FE',\n\t yuml: '\\u00FF',\n\t OElig: '\\u0152',\n\t oelig: '\\u0153',\n\t Scaron: '\\u0160',\n\t scaron: '\\u0161',\n\t Yuml: '\\u0178',\n\t fnof: '\\u0192',\n\t circ: '\\u02C6',\n\t tilde: '\\u02DC',\n\t Alpha: '\\u0391',\n\t Beta: '\\u0392',\n\t Gamma: '\\u0393',\n\t Delta: '\\u0394',\n\t Epsilon: '\\u0395',\n\t Zeta: '\\u0396',\n\t Eta: '\\u0397',\n\t Theta: '\\u0398',\n\t Iota: '\\u0399',\n\t Kappa: '\\u039A',\n\t Lambda: '\\u039B',\n\t Mu: '\\u039C',\n\t Nu: '\\u039D',\n\t Xi: '\\u039E',\n\t Omicron: '\\u039F',\n\t Pi: '\\u03A0',\n\t Rho: '\\u03A1',\n\t Sigma: '\\u03A3',\n\t Tau: '\\u03A4',\n\t Upsilon: '\\u03A5',\n\t Phi: '\\u03A6',\n\t Chi: '\\u03A7',\n\t Psi: '\\u03A8',\n\t Omega: '\\u03A9',\n\t alpha: '\\u03B1',\n\t beta: '\\u03B2',\n\t gamma: '\\u03B3',\n\t delta: '\\u03B4',\n\t epsilon: '\\u03B5',\n\t zeta: '\\u03B6',\n\t eta: '\\u03B7',\n\t theta: '\\u03B8',\n\t iota: '\\u03B9',\n\t kappa: '\\u03BA',\n\t lambda: '\\u03BB',\n\t mu: '\\u03BC',\n\t nu: '\\u03BD',\n\t xi: '\\u03BE',\n\t omicron: '\\u03BF',\n\t pi: '\\u03C0',\n\t rho: '\\u03C1',\n\t sigmaf: '\\u03C2',\n\t sigma: '\\u03C3',\n\t tau: '\\u03C4',\n\t upsilon: '\\u03C5',\n\t phi: '\\u03C6',\n\t chi: '\\u03C7',\n\t psi: '\\u03C8',\n\t omega: '\\u03C9',\n\t thetasym: '\\u03D1',\n\t upsih: '\\u03D2',\n\t piv: '\\u03D6',\n\t ensp: '\\u2002',\n\t emsp: '\\u2003',\n\t thinsp: '\\u2009',\n\t zwnj: '\\u200C',\n\t zwj: '\\u200D',\n\t lrm: '\\u200E',\n\t rlm: '\\u200F',\n\t ndash: '\\u2013',\n\t mdash: '\\u2014',\n\t lsquo: '\\u2018',\n\t rsquo: '\\u2019',\n\t sbquo: '\\u201A',\n\t ldquo: '\\u201C',\n\t rdquo: '\\u201D',\n\t bdquo: '\\u201E',\n\t dagger: '\\u2020',\n\t Dagger: '\\u2021',\n\t bull: '\\u2022',\n\t hellip: '\\u2026',\n\t permil: '\\u2030',\n\t prime: '\\u2032',\n\t Prime: '\\u2033',\n\t lsaquo: '\\u2039',\n\t rsaquo: '\\u203A',\n\t oline: '\\u203E',\n\t frasl: '\\u2044',\n\t euro: '\\u20AC',\n\t image: '\\u2111',\n\t weierp: '\\u2118',\n\t real: '\\u211C',\n\t trade: '\\u2122',\n\t alefsym: '\\u2135',\n\t larr: '\\u2190',\n\t uarr: '\\u2191',\n\t rarr: '\\u2192',\n\t darr: '\\u2193',\n\t harr: '\\u2194',\n\t crarr: '\\u21B5',\n\t lArr: '\\u21D0',\n\t uArr: '\\u21D1',\n\t rArr: '\\u21D2',\n\t dArr: '\\u21D3',\n\t hArr: '\\u21D4',\n\t forall: '\\u2200',\n\t part: '\\u2202',\n\t exist: '\\u2203',\n\t empty: '\\u2205',\n\t nabla: '\\u2207',\n\t isin: '\\u2208',\n\t notin: '\\u2209',\n\t ni: '\\u220B',\n\t prod: '\\u220F',\n\t sum: '\\u2211',\n\t minus: '\\u2212',\n\t lowast: '\\u2217',\n\t radic: '\\u221A',\n\t prop: '\\u221D',\n\t infin: '\\u221E',\n\t ang: '\\u2220',\n\t and: '\\u2227',\n\t or: '\\u2228',\n\t cap: '\\u2229',\n\t cup: '\\u222A',\n\t int: '\\u222B',\n\t there4: '\\u2234',\n\t sim: '\\u223C',\n\t cong: '\\u2245',\n\t asymp: '\\u2248',\n\t ne: '\\u2260',\n\t equiv: '\\u2261',\n\t le: '\\u2264',\n\t ge: '\\u2265',\n\t sub: '\\u2282',\n\t sup: '\\u2283',\n\t nsub: '\\u2284',\n\t sube: '\\u2286',\n\t supe: '\\u2287',\n\t oplus: '\\u2295',\n\t otimes: '\\u2297',\n\t perp: '\\u22A5',\n\t sdot: '\\u22C5',\n\t lceil: '\\u2308',\n\t rceil: '\\u2309',\n\t lfloor: '\\u230A',\n\t rfloor: '\\u230B',\n\t loz: '\\u25CA',\n\t spades: '\\u2660',\n\t clubs: '\\u2663',\n\t hearts: '\\u2665',\n\t diams: '\\u2666',\n\t lang: '\\u27E8',\n\t rang: '\\u27E9'\n\t};\n\n\n/***/ },\n/* 15 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar error_handler_1 = __webpack_require__(10);\n\tvar scanner_1 = __webpack_require__(12);\n\tvar token_1 = __webpack_require__(13);\n\tvar Reader = (function () {\n\t function Reader() {\n\t this.values = [];\n\t this.curly = this.paren = -1;\n\t }\n\t // A function following one of those tokens is an expression.\n\t Reader.prototype.beforeFunctionExpression = function (t) {\n\t return ['(', '{', '[', 'in', 'typeof', 'instanceof', 'new',\n\t 'return', 'case', 'delete', 'throw', 'void',\n\t // assignment operators\n\t '=', '+=', '-=', '*=', '**=', '/=', '%=', '<<=', '>>=', '>>>=',\n\t '&=', '|=', '^=', ',',\n\t // binary/unary operators\n\t '+', '-', '*', '**', '/', '%', '++', '--', '<<', '>>', '>>>', '&',\n\t '|', '^', '!', '~', '&&', '||', '?', ':', '===', '==', '>=',\n\t '<=', '<', '>', '!=', '!=='].indexOf(t) >= 0;\n\t };\n\t // Determine if forward slash (/) is an operator or part of a regular expression\n\t // https://github.com/mozilla/sweet.js/wiki/design\n\t Reader.prototype.isRegexStart = function () {\n\t var previous = this.values[this.values.length - 1];\n\t var regex = (previous !== null);\n\t switch (previous) {\n\t case 'this':\n\t case ']':\n\t regex = false;\n\t break;\n\t case ')':\n\t var keyword = this.values[this.paren - 1];\n\t regex = (keyword === 'if' || keyword === 'while' || keyword === 'for' || keyword === 'with');\n\t break;\n\t case '}':\n\t // Dividing a function by anything makes little sense,\n\t // but we have to check for that.\n\t regex = false;\n\t if (this.values[this.curly - 3] === 'function') {\n\t // Anonymous function, e.g. function(){} /42\n\t var check = this.values[this.curly - 4];\n\t regex = check ? !this.beforeFunctionExpression(check) : false;\n\t }\n\t else if (this.values[this.curly - 4] === 'function') {\n\t // Named function, e.g. function f(){} /42/\n\t var check = this.values[this.curly - 5];\n\t regex = check ? !this.beforeFunctionExpression(check) : true;\n\t }\n\t break;\n\t default:\n\t break;\n\t }\n\t return regex;\n\t };\n\t Reader.prototype.push = function (token) {\n\t if (token.type === 7 /* Punctuator */ || token.type === 4 /* Keyword */) {\n\t if (token.value === '{') {\n\t this.curly = this.values.length;\n\t }\n\t else if (token.value === '(') {\n\t this.paren = this.values.length;\n\t }\n\t this.values.push(token.value);\n\t }\n\t else {\n\t this.values.push(null);\n\t }\n\t };\n\t return Reader;\n\t}());\n\tvar Tokenizer = (function () {\n\t function Tokenizer(code, config) {\n\t this.errorHandler = new error_handler_1.ErrorHandler();\n\t this.errorHandler.tolerant = config ? (typeof config.tolerant === 'boolean' && config.tolerant) : false;\n\t this.scanner = new scanner_1.Scanner(code, this.errorHandler);\n\t this.scanner.trackComment = config ? (typeof config.comment === 'boolean' && config.comment) : false;\n\t this.trackRange = config ? (typeof config.range === 'boolean' && config.range) : false;\n\t this.trackLoc = config ? (typeof config.loc === 'boolean' && config.loc) : false;\n\t this.buffer = [];\n\t this.reader = new Reader();\n\t }\n\t Tokenizer.prototype.errors = function () {\n\t return this.errorHandler.errors;\n\t };\n\t Tokenizer.prototype.getNextToken = function () {\n\t if (this.buffer.length === 0) {\n\t var comments = this.scanner.scanComments();\n\t if (this.scanner.trackComment) {\n\t for (var i = 0; i < comments.length; ++i) {\n\t var e = comments[i];\n\t var value = this.scanner.source.slice(e.slice[0], e.slice[1]);\n\t var comment = {\n\t type: e.multiLine ? 'BlockComment' : 'LineComment',\n\t value: value\n\t };\n\t if (this.trackRange) {\n\t comment.range = e.range;\n\t }\n\t if (this.trackLoc) {\n\t comment.loc = e.loc;\n\t }\n\t this.buffer.push(comment);\n\t }\n\t }\n\t if (!this.scanner.eof()) {\n\t var loc = void 0;\n\t if (this.trackLoc) {\n\t loc = {\n\t start: {\n\t line: this.scanner.lineNumber,\n\t column: this.scanner.index - this.scanner.lineStart\n\t },\n\t end: {}\n\t };\n\t }\n\t var startRegex = (this.scanner.source[this.scanner.index] === '/') && this.reader.isRegexStart();\n\t var token = startRegex ? this.scanner.scanRegExp() : this.scanner.lex();\n\t this.reader.push(token);\n\t var entry = {\n\t type: token_1.TokenName[token.type],\n\t value: this.scanner.source.slice(token.start, token.end)\n\t };\n\t if (this.trackRange) {\n\t entry.range = [token.start, token.end];\n\t }\n\t if (this.trackLoc) {\n\t loc.end = {\n\t line: this.scanner.lineNumber,\n\t column: this.scanner.index - this.scanner.lineStart\n\t };\n\t entry.loc = loc;\n\t }\n\t if (token.type === 9 /* RegularExpression */) {\n\t var pattern = token.pattern;\n\t var flags = token.flags;\n\t entry.regex = { pattern: pattern, flags: flags };\n\t }\n\t this.buffer.push(entry);\n\t }\n\t }\n\t return this.buffer.shift();\n\t };\n\t return Tokenizer;\n\t}());\n\texports.Tokenizer = Tokenizer;\n\n\n/***/ }\n/******/ ])\n});\n;","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\n\nfunction isArray(arg) {\n if (Array.isArray) {\n return Array.isArray(arg);\n }\n return objectToString(arg) === '[object Array]';\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n return (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = require('buffer').Buffer.isBuffer;\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh <https://feross.org>\n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nconst base64 = require('base64-js')\nconst ieee754 = require('ieee754')\nconst customInspectSymbol =\n (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n : null\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nconst K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n typeof console.error === 'function') {\n console.error(\n 'This browser lacks typed array (Uint8Array) support which is required by ' +\n '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n )\n}\n\nfunction typedArraySupport () {\n // Can typed array instances can be augmented?\n try {\n const arr = new Uint8Array(1)\n const proto = { foo: function () { return 42 } }\n Object.setPrototypeOf(proto, Uint8Array.prototype)\n Object.setPrototypeOf(arr, proto)\n return arr.foo() === 42\n } catch (e) {\n return false\n }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.buffer\n }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.byteOffset\n }\n})\n\nfunction createBuffer (length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n }\n // Return an augmented `Uint8Array` instance\n const buf = new Uint8Array(length)\n Object.setPrototypeOf(buf, Buffer.prototype)\n return buf\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new TypeError(\n 'The \"string\" argument must be of type string. Received type number'\n )\n }\n return allocUnsafe(arg)\n }\n return from(arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction from (value, encodingOrOffset, length) {\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value)\n }\n\n if (value == null) {\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n }\n\n if (isInstance(value, ArrayBuffer) ||\n (value && isInstance(value.buffer, ArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof SharedArrayBuffer !== 'undefined' &&\n (isInstance(value, SharedArrayBuffer) ||\n (value && isInstance(value.buffer, SharedArrayBuffer)))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'number') {\n throw new TypeError(\n 'The \"value\" argument must not be of type number. Received type number'\n )\n }\n\n const valueOf = value.valueOf && value.valueOf()\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length)\n }\n\n const b = fromObject(value)\n if (b) return b\n\n if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n typeof value[Symbol.toPrimitive] === 'function') {\n return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length)\n }\n\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype)\nObject.setPrototypeOf(Buffer, Uint8Array)\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be of type number')\n } else if (size < 0) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n}\n\nfunction alloc (size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpreted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(size).fill(fill, encoding)\n : createBuffer(size).fill(fill)\n }\n return createBuffer(size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n assertSize(size)\n return createBuffer(size < 0 ? 0 : checked(size) | 0)\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(size)\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n\n const length = byteLength(string, encoding) | 0\n let buf = createBuffer(length)\n\n const actual = buf.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n buf = buf.slice(0, actual)\n }\n\n return buf\n}\n\nfunction fromArrayLike (array) {\n const length = array.length < 0 ? 0 : checked(array.length) | 0\n const buf = createBuffer(length)\n for (let i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayView (arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n const copy = new Uint8Array(arrayView)\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n }\n return fromArrayLike(arrayView)\n}\n\nfunction fromArrayBuffer (array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\"offset\" is outside of buffer bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\"length\" is outside of buffer bounds')\n }\n\n let buf\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array)\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset)\n } else {\n buf = new Uint8Array(array, byteOffset, length)\n }\n\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(buf, Buffer.prototype)\n\n return buf\n}\n\nfunction fromObject (obj) {\n if (Buffer.isBuffer(obj)) {\n const len = checked(obj.length) | 0\n const buf = createBuffer(len)\n\n if (buf.length === 0) {\n return buf\n }\n\n obj.copy(buf, 0, 0, len)\n return buf\n }\n\n if (obj.length !== undefined) {\n if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n return createBuffer(0)\n }\n return fromArrayLike(obj)\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data)\n }\n}\n\nfunction checked (length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return b != null && b._isBuffer === true &&\n b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n}\n\nBuffer.compare = function compare (a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength)\n if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength)\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError(\n 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n )\n }\n\n if (a === b) return 0\n\n let x = a.length\n let y = b.length\n\n for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n let i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n const buffer = Buffer.allocUnsafe(length)\n let pos = 0\n for (i = 0; i < list.length; ++i) {\n let buf = list[i]\n if (isInstance(buf, Uint8Array)) {\n if (pos + buf.length > buffer.length) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n buf.copy(buffer, pos)\n } else {\n Uint8Array.prototype.set.call(\n buffer,\n buf,\n pos\n )\n }\n } else if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n } else {\n buf.copy(buffer, pos)\n }\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n throw new TypeError(\n 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n 'Received type ' + typeof string\n )\n }\n\n const len = string.length\n const mustMatch = (arguments.length > 2 && arguments[2] === true)\n if (!mustMatch && len === 0) return 0\n\n // Use a for loop to avoid recursion\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n }\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n let loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n const i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n const len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (let i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n const len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (let i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n const len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (let i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n const length = this.length\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.toLocaleString = Buffer.prototype.toString\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n let str = ''\n const max = exports.INSPECT_MAX_BYTES\n str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim()\n if (this.length > max) str += ' ... '\n return '<Buffer ' + str + '>'\n}\nif (customInspectSymbol) {\n Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer.from(target, target.offset, target.byteLength)\n }\n if (!Buffer.isBuffer(target)) {\n throw new TypeError(\n 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n 'Received type ' + (typeof target)\n )\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n let x = thisEnd - thisStart\n let y = end - start\n const len = Math.min(x, y)\n\n const thisCopy = this.slice(thisStart, thisEnd)\n const targetCopy = target.slice(start, end)\n\n for (let i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (numberIsNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n let indexSize = 1\n let arrLength = arr.length\n let valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n let i\n if (dir) {\n let foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n let found = true\n for (let j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n const remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n const strLen = string.length\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n let i\n for (i = 0; i < length; ++i) {\n const parsed = parseInt(string.substr(i * 2, 2), 16)\n if (numberIsNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset >>> 0\n if (isFinite(length)) {\n length = length >>> 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n const remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n case 'latin1':\n case 'binary':\n return asciiWrite(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n const res = []\n\n let i = start\n while (i < end) {\n const firstByte = buf[i]\n let codePoint = null\n let bytesPerSequence = (firstByte > 0xEF)\n ? 4\n : (firstByte > 0xDF)\n ? 3\n : (firstByte > 0xBF)\n ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n let secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nconst MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n const len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n let res = ''\n let i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n const len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n let out = ''\n for (let i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]]\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n const bytes = buf.slice(start, end)\n let res = ''\n // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n for (let i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256))\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n const len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n const newBuf = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(newBuf, Buffer.prototype)\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUintLE =\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUintBE =\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n let val = this[offset + --byteLength]\n let mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUint8 =\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUint16LE =\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUint16BE =\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUint32LE =\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUint32BE =\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const lo = first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24\n\n const hi = this[++offset] +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n last * 2 ** 24\n\n return BigInt(lo) + (BigInt(hi) << BigInt(32))\n})\n\nBuffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const hi = first * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n const lo = this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last\n\n return (BigInt(hi) << BigInt(32)) + BigInt(lo)\n})\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let i = byteLength\n let mul = 1\n let val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = this[offset + 4] +\n this[offset + 5] * 2 ** 8 +\n this[offset + 6] * 2 ** 16 +\n (last << 24) // Overflow\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24)\n})\n\nBuffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = (first << 24) + // Overflow\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last)\n})\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUintLE =\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let mul = 1\n let i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUintBE =\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let i = byteLength - 1\n let mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUint8 =\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeUint16LE =\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeUint16BE =\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeUint32LE =\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeUint32BE =\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nfunction wrtBigUInt64LE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n return offset\n}\n\nfunction wrtBigUInt64BE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset + 7] = lo\n lo = lo >> 8\n buf[offset + 6] = lo\n lo = lo >> 8\n buf[offset + 5] = lo\n lo = lo >> 8\n buf[offset + 4] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset + 3] = hi\n hi = hi >> 8\n buf[offset + 2] = hi\n hi = hi >> 8\n buf[offset + 1] = hi\n hi = hi >> 8\n buf[offset] = hi\n return offset + 8\n}\n\nBuffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = 0\n let mul = 1\n let sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = byteLength - 1\n let mul = 1\n let sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nBuffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n const len = end - start\n\n if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n // Use built-in when available, missing from IE11\n this.copyWithin(targetStart, start, end)\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, end),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n if (val.length === 1) {\n const code = val.charCodeAt(0)\n if ((encoding === 'utf8' && code < 128) ||\n encoding === 'latin1') {\n // Fast path: If `val` fits into a single byte, use that numeric value.\n val = code\n }\n }\n } else if (typeof val === 'number') {\n val = val & 255\n } else if (typeof val === 'boolean') {\n val = Number(val)\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n let i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n const bytes = Buffer.isBuffer(val)\n ? val\n : Buffer.from(val, encoding)\n const len = bytes.length\n if (len === 0) {\n throw new TypeError('The value \"' + val +\n '\" is invalid for argument \"value\"')\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// CUSTOM ERRORS\n// =============\n\n// Simplified versions from Node, changed for Buffer-only usage\nconst errors = {}\nfunction E (sym, getMessage, Base) {\n errors[sym] = class NodeError extends Base {\n constructor () {\n super()\n\n Object.defineProperty(this, 'message', {\n value: getMessage.apply(this, arguments),\n writable: true,\n configurable: true\n })\n\n // Add the error code to the name to include it in the stack trace.\n this.name = `${this.name} [${sym}]`\n // Access the stack to generate the error message including the error code\n // from the name.\n this.stack // eslint-disable-line no-unused-expressions\n // Reset the name to the actual name.\n delete this.name\n }\n\n get code () {\n return sym\n }\n\n set code (value) {\n Object.defineProperty(this, 'code', {\n configurable: true,\n enumerable: true,\n value,\n writable: true\n })\n }\n\n toString () {\n return `${this.name} [${sym}]: ${this.message}`\n }\n }\n}\n\nE('ERR_BUFFER_OUT_OF_BOUNDS',\n function (name) {\n if (name) {\n return `${name} is outside of buffer bounds`\n }\n\n return 'Attempt to access memory outside buffer bounds'\n }, RangeError)\nE('ERR_INVALID_ARG_TYPE',\n function (name, actual) {\n return `The \"${name}\" argument must be of type number. Received type ${typeof actual}`\n }, TypeError)\nE('ERR_OUT_OF_RANGE',\n function (str, range, input) {\n let msg = `The value of \"${str}\" is out of range.`\n let received = input\n if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n received = addNumericalSeparator(String(input))\n } else if (typeof input === 'bigint') {\n received = String(input)\n if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n received = addNumericalSeparator(received)\n }\n received += 'n'\n }\n msg += ` It must be ${range}. Received ${received}`\n return msg\n }, RangeError)\n\nfunction addNumericalSeparator (val) {\n let res = ''\n let i = val.length\n const start = val[0] === '-' ? 1 : 0\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`\n }\n return `${val.slice(0, i)}${res}`\n}\n\n// CHECK FUNCTIONS\n// ===============\n\nfunction checkBounds (buf, offset, byteLength) {\n validateNumber(offset, 'offset')\n if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n boundsError(offset, buf.length - (byteLength + 1))\n }\n}\n\nfunction checkIntBI (value, min, max, buf, offset, byteLength) {\n if (value > max || value < min) {\n const n = typeof min === 'bigint' ? 'n' : ''\n let range\n if (byteLength > 3) {\n if (min === 0 || min === BigInt(0)) {\n range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}`\n } else {\n range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` +\n `${(byteLength + 1) * 8 - 1}${n}`\n }\n } else {\n range = `>= ${min}${n} and <= ${max}${n}`\n }\n throw new errors.ERR_OUT_OF_RANGE('value', range, value)\n }\n checkBounds(buf, offset, byteLength)\n}\n\nfunction validateNumber (value, name) {\n if (typeof value !== 'number') {\n throw new errors.ERR_INVALID_ARG_TYPE(name, 'number', value)\n }\n}\n\nfunction boundsError (value, length, type) {\n if (Math.floor(value) !== value) {\n validateNumber(value, type)\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset', 'an integer', value)\n }\n\n if (length < 0) {\n throw new errors.ERR_BUFFER_OUT_OF_BOUNDS()\n }\n\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset',\n `>= ${type ? 1 : 0} and <= ${length}`,\n value)\n}\n\n// HELPER FUNCTIONS\n// ================\n\nconst INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split('=')[0]\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = str.trim().replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n let codePoint\n const length = string.length\n let leadSurrogate = null\n const bytes = []\n\n for (let i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n let c, hi, lo\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n let i\n for (i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\n// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\nfunction isInstance (obj, type) {\n return obj instanceof type ||\n (obj != null && obj.constructor != null && obj.constructor.name != null &&\n obj.constructor.name === type.name)\n}\nfunction numberIsNaN (obj) {\n // For IE11 support\n return obj !== obj // eslint-disable-line no-self-compare\n}\n\n// Create lookup table for `toString('hex')`\n// See: https://github.com/feross/buffer/issues/219\nconst hexSliceLookupTable = (function () {\n const alphabet = '0123456789abcdef'\n const table = new Array(256)\n for (let i = 0; i < 16; ++i) {\n const i16 = i * 16\n for (let j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j]\n }\n }\n return table\n})()\n\n// Return not function with Error if BigInt not supported\nfunction defineBigIntMethod (fn) {\n return typeof BigInt === 'undefined' ? BufferBigIntNotDefined : fn\n}\n\nfunction BufferBigIntNotDefined () {\n throw new Error('BigInt not supported')\n}\n","/**\n * Default minimum size of a run.\n */\nconst DEFAULT_MIN_MERGE = 32\n\n/**\n * Minimum ordered subsequece required to do galloping.\n */\nconst DEFAULT_MIN_GALLOPING = 7\n\n/**\n * Default tmp storage length. Can increase depending on the size of the\n * smallest run to merge.\n */\nconst DEFAULT_TMP_STORAGE_LENGTH = 256\n\n/**\n * Pre-computed powers of 10 for efficient lexicographic comparison of\n * small integers.\n */\nconst POWERS_OF_TEN = [1e0, 1e1, 1e2, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9]\n\nlet results\n\n/**\n * Estimate the logarithm base 10 of a small integer.\n *\n * @param {number} x - The integer to estimate the logarithm of.\n * @return {number} - The estimated logarithm of the integer.\n */\nconst log10 = x => x < 1e5\n ? x < 1e2\n ? x < 1e1\n ? 0\n : 1\n : x < 1e4\n ? x < 1e3\n ? 2\n : 3\n : 4\n : x < 1e7\n ? x < 1e6\n ? 5\n : 6\n : x < 1e9\n ? x < 1e8\n ? 7\n : 8\n : 9\n\n/**\n * Default alphabetical comparison of items.\n *\n * @param {string|object|number} a - First element to compare.\n * @param {string|object|number} b - Second element to compare.\n * @return {number} - A positive number if a.toString() > b.toString(), a\n * negative number if .toString() < b.toString(), 0 otherwise.\n */\nfunction alphabeticalCompare (a, b) {\n if (a === b) {\n return 0\n }\n\n if (~ ~ a === a && ~ ~ b === b) {\n if (a === 0 || b === 0) {\n return a < b ? - 1 : 1\n }\n\n if (a < 0 || b < 0) {\n if (b >= 0) {\n return - 1\n }\n\n if (a >= 0) {\n return 1\n }\n\n a = - a\n b = - b\n }\n\n const al = log10(a)\n const bl = log10(b)\n\n let t = 0\n\n if (al < bl) {\n a *= POWERS_OF_TEN[bl - al - 1]\n b /= 10\n t = - 1\n } else if (al > bl) {\n b *= POWERS_OF_TEN[al - bl - 1]\n a /= 10\n t = 1\n }\n\n if (a === b) {\n return t\n }\n\n return a < b ? - 1 : 1\n }\n\n const aStr = String(a)\n const bStr = String(b)\n\n if (aStr === bStr) {\n return 0\n }\n\n return aStr < bStr ? - 1 : 1\n}\n\n/**\n * Compute minimum run length for TimSort\n *\n * @param {number} n - The size of the array to sort.\n */\nfunction minRunLength (n) {\n let r = 0\n\n while (n >= DEFAULT_MIN_MERGE) {\n r |= (n & 1)\n n >>= 1\n }\n\n return n + r\n}\n\n/**\n * Counts the length of a monotonically ascending or strictly monotonically\n * descending sequence (run) starting at array[lo] in the range [lo, hi). If\n * the run is descending it is made ascending.\n *\n * @param {array} array - The array to reverse.\n * @param {number} lo - First element in the range (inclusive).\n * @param {number} hi - Last element in the range.\n * @param {function} compare - Item comparison function.\n * @return {number} - The length of the run.\n */\nfunction makeAscendingRun (array, lo, hi, compare) {\n let runHi = lo + 1\n\n if (runHi === hi) {\n return 1\n }\n\n // Descending\n if (compare(array[runHi ++], array[lo]) < 0) {\n while (runHi < hi && compare(array[runHi], array[runHi - 1]) < 0) {\n runHi ++\n }\n\n reverseRun(array, lo, runHi)\n reverseRun(results, lo, runHi)\n // Ascending\n } else {\n while (runHi < hi && compare(array[runHi], array[runHi - 1]) >= 0) {\n runHi ++\n }\n }\n\n return runHi - lo\n}\n\n/**\n * Reverse an array in the range [lo, hi).\n *\n * @param {array} array - The array to reverse.\n * @param {number} lo - First element in the range (inclusive).\n * @param {number} hi - Last element in the range.\n */\nfunction reverseRun (array, lo, hi) {\n hi --\n\n while (lo < hi) {\n const t = array[lo]\n array[lo ++] = array[hi]\n array[hi --] = t\n }\n}\n\n/**\n * Perform the binary sort of the array in the range [lo, hi) where start is\n * the first element possibly out of order.\n *\n * @param {array} array - The array to sort.\n * @param {number} lo - First element in the range (inclusive).\n * @param {number} hi - Last element in the range.\n * @param {number} start - First element possibly out of order.\n * @param {function} compare - Item comparison function.\n */\nfunction binaryInsertionSort (array, lo, hi, start, compare) {\n if (start === lo) {\n start ++\n }\n\n for (; start < hi; start ++) {\n const pivot = array[start]\n const pivotIndex = results[start]\n\n // Ranges of the array where pivot belongs\n let left = lo\n let right = start\n\n /*\n * pivot >= array[i] for i in [lo, left)\n * pivot < array[i] for i in in [right, start)\n */\n while (left < right) {\n const mid = (left + right) >>> 1\n\n if (compare(pivot, array[mid]) < 0) {\n right = mid\n } else {\n left = mid + 1\n }\n }\n\n /*\n * Move elements right to make room for the pivot. If there are elements\n * equal to pivot, left points to the first slot after them: this is also\n * a reason for which TimSort is stable\n */\n let n = start - left\n // Switch is just an optimization for small arrays\n switch (n) {\n case 3:\n array[left + 3] = array[left + 2]\n results[left + 3] = results[left + 2]\n /* falls through */\n case 2:\n array[left + 2] = array[left + 1]\n results[left + 2] = results[left + 1]\n /* falls through */\n case 1:\n array[left + 1] = array[left]\n results[left + 1] = results[left]\n break\n default:\n while (n > 0) {\n array[left + n] = array[left + n - 1]\n results[left + n] = results[left + n - 1]\n n --\n }\n }\n\n array[left] = pivot\n results[left] = pivotIndex\n }\n}\n\n/**\n * Find the position at which to insert a value in a sorted range. If the range\n * contains elements equal to the value the leftmost element index is returned\n * (for stability).\n *\n * @param {number} value - Value to insert.\n * @param {array} array - The array in which to insert value.\n * @param {number} start - First element in the range.\n * @param {number} length - Length of the range.\n * @param {number} hint - The index at which to begin the search.\n * @param {function} compare - Item comparison function.\n * @return {number} - The index where to insert value.\n */\nfunction gallopLeft (value, array, start, length, hint, compare) {\n let lastOffset = 0\n let maxOffset = 0\n let offset = 1\n\n if (compare(value, array[start + hint]) > 0) {\n maxOffset = length - hint\n\n while (\n offset < maxOffset\n && compare(value, array[start + hint + offset]) > 0\n ) {\n lastOffset = offset\n offset = (offset << 1) + 1\n\n if (offset <= 0) {\n offset = maxOffset\n }\n }\n\n if (offset > maxOffset) {\n offset = maxOffset\n }\n\n // Make offsets relative to start\n lastOffset += hint\n offset += hint\n\n // value <= array[start + hint]\n } else {\n maxOffset = hint + 1\n while (\n offset < maxOffset\n && compare(value, array[start + hint - offset]) <= 0\n ) {\n lastOffset = offset\n offset = (offset << 1) + 1\n\n if (offset <= 0) {\n offset = maxOffset\n }\n }\n if (offset > maxOffset) {\n offset = maxOffset\n }\n\n // Make offsets relative to start\n const tmp = lastOffset\n lastOffset = hint - offset\n offset = hint - tmp\n }\n\n /*\n * Now array[start+lastOffset] < value <= array[start+offset], so value\n * belongs somewhere in the range (start + lastOffset, start + offset]. Do a\n * binary search, with invariant array[start + lastOffset - 1] < value <=\n * array[start + offset].\n */\n lastOffset ++\n while (lastOffset < offset) {\n const m = lastOffset + ((offset - lastOffset) >>> 1)\n\n if (compare(value, array[start + m]) > 0) {\n lastOffset = m + 1\n } else {\n offset = m\n }\n }\n return offset\n}\n\n/**\n * Find the position at which to insert a value in a sorted range. If the range\n * contains elements equal to the value the rightmost element index is returned\n * (for stability).\n *\n * @param {number} value - Value to insert.\n * @param {array} array - The array in which to insert value.\n * @param {number} start - First element in the range.\n * @param {number} length - Length of the range.\n * @param {number} hint - The index at which to begin the search.\n * @param {function} compare - Item comparison function.\n * @return {number} - The index where to insert value.\n */\nfunction gallopRight (value, array, start, length, hint, compare) {\n let lastOffset = 0\n let maxOffset = 0\n let offset = 1\n\n if (compare(value, array[start + hint]) < 0) {\n maxOffset = hint + 1\n\n while (\n offset < maxOffset\n && compare(value, array[start + hint - offset]) < 0\n ) {\n lastOffset = offset\n offset = (offset << 1) + 1\n\n if (offset <= 0) {\n offset = maxOffset\n }\n }\n\n if (offset > maxOffset) {\n offset = maxOffset\n }\n\n // Make offsets relative to start\n const tmp = lastOffset\n lastOffset = hint - offset\n offset = hint - tmp\n\n // value >= array[start + hint]\n } else {\n maxOffset = length - hint\n\n while (\n offset < maxOffset\n && compare(value, array[start + hint + offset]) >= 0\n ) {\n lastOffset = offset\n offset = (offset << 1) + 1\n\n if (offset <= 0) {\n offset = maxOffset\n }\n }\n\n if (offset > maxOffset) {\n offset = maxOffset\n }\n\n // Make offsets relative to start\n lastOffset += hint\n offset += hint\n }\n\n /*\n * Now array[start+lastOffset] < value <= array[start+offset], so value\n * belongs somewhere in the range (start + lastOffset, start + offset]. Do a\n * binary search, with invariant array[start + lastOffset - 1] < value <=\n * array[start + offset].\n */\n lastOffset ++\n\n while (lastOffset < offset) {\n const m = lastOffset + ((offset - lastOffset) >>> 1)\n\n if (compare(value, array[start + m]) < 0) {\n offset = m\n } else {\n lastOffset = m + 1\n }\n }\n\n return offset\n}\n\nclass TimSort {\n constructor (array, compare) {\n this.array = array\n this.compare = compare\n\n const {length} = array\n\n this.length = length\n this.minGallop = DEFAULT_MIN_GALLOPING\n\n this.tmpStorageLength = length < 2 * DEFAULT_TMP_STORAGE_LENGTH\n ? length >>> 1\n : DEFAULT_TMP_STORAGE_LENGTH\n\n this.tmp = new Array(this.tmpStorageLength)\n this.tmpIndex = new Array(this.tmpStorageLength)\n\n this.stackLength = length < 120\n ? 5\n : length < 1542\n ? 10\n : length < 119151\n ? 19\n : 40\n\n this.runStart = new Array(this.stackLength)\n this.runLength = new Array(this.stackLength)\n\n this.stackSize = 0\n }\n\n /**\n * Push a new run on TimSort's stack.\n *\n * @param {number} runStart - Start index of the run in the original array.\n * @param {number} runLength - Length of the run;\n */\n pushRun (runStart, runLength) {\n this.runStart[this.stackSize] = runStart\n this.runLength[this.stackSize] = runLength\n this.stackSize += 1\n }\n\n /**\n * Merge runs on TimSort's stack so that the following holds for all i:\n * 1) runLength[i - 3] > runLength[i - 2] + runLength[i - 1]\n * 2) runLength[i - 2] > runLength[i - 1]\n */\n mergeRuns () {\n while (this.stackSize > 1) {\n let n = this.stackSize - 2\n\n if (\n (\n n >= 1\n && this.runLength[n - 1] <= this.runLength[n] + this.runLength[n + 1]\n )\n || (\n n >= 2\n && this.runLength[n - 2] <= this.runLength[n] + this.runLength[n - 1]\n )\n ) {\n if (this.runLength[n - 1] < this.runLength[n + 1]) {\n n --\n }\n } else if (this.runLength[n] > this.runLength[n + 1]) {\n break\n }\n this.mergeAt(n)\n }\n }\n\n /**\n * Merge all runs on TimSort's stack until only one remains.\n */\n forceMergeRuns () {\n while (this.stackSize > 1) {\n let n = this.stackSize - 2\n\n if (n > 0 && this.runLength[n - 1] < this.runLength[n + 1]) {\n n --\n }\n\n this.mergeAt(n)\n }\n }\n\n /**\n * Merge the runs on the stack at positions i and i+1. Must be always be called\n * with i=stackSize-2 or i=stackSize-3 (that is, we merge on top of the stack).\n *\n * @param {number} i - Index of the run to merge in TimSort's stack.\n */\n mergeAt (i) {\n const {compare} = this\n const {array} = this\n\n let start1 = this.runStart[i]\n let length1 = this.runLength[i]\n const start2 = this.runStart[i + 1]\n let length2 = this.runLength[i + 1]\n\n this.runLength[i] = length1 + length2\n\n if (i === this.stackSize - 3) {\n this.runStart[i + 1] = this.runStart[i + 2]\n this.runLength[i + 1] = this.runLength[i + 2]\n }\n\n this.stackSize --\n\n /*\n * Find where the first element in the second run goes in run1. Previous\n * elements in run1 are already in place\n */\n const k = gallopRight(array[start2], array, start1, length1, 0, compare)\n start1 += k\n length1 -= k\n\n if (length1 === 0) {\n return\n }\n\n /*\n * Find where the last element in the first run goes in run2. Next elements\n * in run2 are already in place\n */\n length2 = gallopLeft(\n array[start1 + length1 - 1],\n array,\n start2,\n length2,\n length2 - 1,\n compare\n )\n\n if (length2 === 0) {\n return\n }\n\n /*\n * Merge remaining runs. A tmp array with length = min(length1, length2) is\n * used\n */\n if (length1 <= length2) {\n this.mergeLow(start1, length1, start2, length2)\n } else {\n this.mergeHigh(start1, length1, start2, length2)\n }\n }\n\n /**\n * Merge two adjacent runs in a stable way. The runs must be such that the\n * first element of run1 is bigger than the first element in run2 and the\n * last element of run1 is greater than all the elements in run2.\n * The method should be called when run1.length <= run2.length as it uses\n * TimSort temporary array to store run1. Use mergeHigh if run1.length >\n * run2.length.\n *\n * @param {number} start1 - First element in run1.\n * @param {number} length1 - Length of run1.\n * @param {number} start2 - First element in run2.\n * @param {number} length2 - Length of run2.\n */\n mergeLow (start1, length1, start2, length2) {\n const {compare} = this\n const {array} = this\n const {tmp} = this\n const {tmpIndex} = this\n let i = 0\n\n for (i = 0; i < length1; i ++) {\n tmp[i] = array[start1 + i]\n tmpIndex[i] = results[start1 + i]\n }\n\n let cursor1 = 0\n let cursor2 = start2\n let dest = start1\n\n array[dest] = array[cursor2]\n results[dest] = results[cursor2]\n\n dest ++\n cursor2 ++\n\n if (-- length2 === 0) {\n for (i = 0; i < length1; i ++) {\n array[dest + i] = tmp[cursor1 + i]\n results[dest + i] = tmpIndex[cursor1 + i]\n }\n return\n }\n\n if (length1 === 1) {\n for (i = 0; i < length2; i ++) {\n array[dest + i] = array[cursor2 + i]\n results[dest + i] = results[cursor2 + i]\n }\n array[dest + length2] = tmp[cursor1]\n results[dest + length2] = tmpIndex[cursor1]\n return\n }\n\n let {minGallop} = this\n\n while (true) {\n let count1 = 0\n let count2 = 0\n let exit = false\n\n do {\n if (compare(array[cursor2], tmp[cursor1]) < 0) {\n array[dest] = array[cursor2]\n results[dest] = results[cursor2]\n dest ++\n cursor2 ++\n count2 ++\n count1 = 0\n\n if (-- length2 === 0) {\n exit = true\n break\n }\n } else {\n array[dest] = tmp[cursor1]\n results[dest] = tmpIndex[cursor1]\n dest ++\n cursor1 ++\n count1 ++\n count2 = 0\n if (-- length1 === 1) {\n exit = true\n break\n }\n }\n } while ((count1 | count2) < minGallop)\n\n if (exit) {\n break\n }\n\n do {\n count1 = gallopRight(array[cursor2], tmp, cursor1, length1, 0, compare)\n\n if (count1 !== 0) {\n for (i = 0; i < count1; i ++) {\n array[dest + i] = tmp[cursor1 + i]\n results[dest + i] = tmpIndex[cursor1 + i]\n }\n\n dest += count1\n cursor1 += count1\n length1 -= count1\n if (length1 <= 1) {\n exit = true\n break\n }\n }\n\n array[dest] = array[cursor2]\n results[dest] = results[cursor2]\n\n dest ++\n cursor2 ++\n\n if (-- length2 === 0) {\n exit = true\n break\n }\n\n count2 = gallopLeft(tmp[cursor1], array, cursor2, length2, 0, compare)\n\n if (count2 !== 0) {\n for (i = 0; i < count2; i ++) {\n array[dest + i] = array[cursor2 + i]\n results[dest + i] = results[cursor2 + i]\n }\n\n dest += count2\n cursor2 += count2\n length2 -= count2\n\n if (length2 === 0) {\n exit = true\n break\n }\n }\n array[dest] = tmp[cursor1]\n results[dest] = tmpIndex[cursor1]\n dest ++\n cursor1 ++\n\n if (-- length1 === 1) {\n exit = true\n break\n }\n\n minGallop --\n } while (\n count1 >= DEFAULT_MIN_GALLOPING\n || count2 >= DEFAULT_MIN_GALLOPING\n )\n\n if (exit) {\n break\n }\n\n if (minGallop < 0) {\n minGallop = 0\n }\n\n minGallop += 2\n }\n\n this.minGallop = minGallop\n\n if (minGallop < 1) {\n this.minGallop = 1\n }\n\n if (length1 === 1) {\n for (i = 0; i < length2; i ++) {\n array[dest + i] = array[cursor2 + i]\n results[dest + i] = results[cursor2 + i]\n }\n array[dest + length2] = tmp[cursor1]\n results[dest + length2] = tmpIndex[cursor1]\n } else if (length1 === 0) {\n throw new Error('mergeLow preconditions were not respected')\n } else {\n for (i = 0; i < length1; i ++) {\n array[dest + i] = tmp[cursor1 + i]\n results[dest + i] = tmpIndex[cursor1 + i]\n }\n }\n }\n\n /**\n * Merge two adjacent runs in a stable way. The runs must be such that the\n * first element of run1 is bigger than the first element in run2 and the\n * last element of run1 is greater than all the elements in run2.\n * The method should be called when run1.length > run2.length as it uses\n * TimSort temporary array to store run2. Use mergeLow if run1.length <=\n * run2.length.\n *\n * @param {number} start1 - First element in run1.\n * @param {number} length1 - Length of run1.\n * @param {number} start2 - First element in run2.\n * @param {number} length2 - Length of run2.\n */\n mergeHigh (start1, length1, start2, length2) {\n const {compare} = this\n const {array} = this\n const {tmp} = this\n const {tmpIndex} = this\n let i = 0\n\n for (i = 0; i < length2; i ++) {\n tmp[i] = array[start2 + i]\n tmpIndex[i] = results[start2 + i]\n }\n\n let cursor1 = start1 + length1 - 1\n let cursor2 = length2 - 1\n let dest = start2 + length2 - 1\n let customCursor = 0\n let customDest = 0\n\n array[dest] = array[cursor1]\n results[dest] = results[cursor1]\n\n dest --\n cursor1 --\n\n if (-- length1 === 0) {\n customCursor = dest - (length2 - 1)\n\n for (i = 0; i < length2; i ++) {\n array[customCursor + i] = tmp[i]\n results[customCursor + i] = tmpIndex[i]\n }\n\n return\n }\n\n if (length2 === 1) {\n dest -= length1\n cursor1 -= length1\n customDest = dest + 1\n customCursor = cursor1 + 1\n\n for (i = length1 - 1; i >= 0; i --) {\n array[customDest + i] = array[customCursor + i]\n results[customDest + i] = results[customCursor + i]\n }\n\n array[dest] = tmp[cursor2]\n results[dest] = tmpIndex[cursor2]\n return\n }\n\n let {minGallop} = this\n\n while (true) {\n let count1 = 0\n let count2 = 0\n let exit = false\n\n do {\n if (compare(tmp[cursor2], array[cursor1]) < 0) {\n array[dest] = array[cursor1]\n results[dest] = results[cursor1]\n dest --\n cursor1 --\n count1 ++\n count2 = 0\n if (-- length1 === 0) {\n exit = true\n break\n }\n } else {\n array[dest] = tmp[cursor2]\n results[dest] = tmpIndex[cursor2]\n dest --\n cursor2 --\n count2 ++\n count1 = 0\n if (-- length2 === 1) {\n exit = true\n break\n }\n }\n } while ((count1 | count2) < minGallop)\n\n if (exit) {\n break\n }\n\n do {\n count1 = length1 - gallopRight(\n tmp[cursor2],\n array,\n start1,\n length1,\n length1 - 1,\n compare\n )\n\n if (count1 !== 0) {\n dest -= count1\n cursor1 -= count1\n length1 -= count1\n customDest = dest + 1\n customCursor = cursor1 + 1\n\n for (i = count1 - 1; i >= 0; i --) {\n array[customDest + i] = array[customCursor + i]\n results[customDest + i] = results[customCursor + i]\n }\n\n if (length1 === 0) {\n exit = true\n break\n }\n }\n\n array[dest] = tmp[cursor2]\n results[dest] = tmpIndex[cursor2]\n dest --\n cursor2 --\n\n if (-- length2 === 1) {\n exit = true\n break\n }\n\n count2 = length2 - gallopLeft(\n array[cursor1],\n tmp,\n 0,\n length2,\n length2 - 1,\n compare\n )\n\n if (count2 !== 0) {\n dest -= count2\n cursor2 -= count2\n length2 -= count2\n customDest = dest + 1\n customCursor = cursor2 + 1\n\n for (i = 0; i < count2; i ++) {\n array[customDest + i] = tmp[customCursor + i]\n results[customDest + i] = tmpIndex[customCursor + i]\n }\n\n if (length2 <= 1) {\n exit = true\n break\n }\n }\n\n array[dest] = array[cursor1]\n results[dest] = results[cursor1]\n dest --\n cursor1 --\n\n if (-- length1 === 0) {\n exit = true\n break\n }\n\n minGallop --\n } while (\n count1 >= DEFAULT_MIN_GALLOPING\n || count2 >= DEFAULT_MIN_GALLOPING\n )\n\n if (exit) {\n break\n }\n\n if (minGallop < 0) {\n minGallop = 0\n }\n\n minGallop += 2\n }\n\n this.minGallop = minGallop\n\n if (minGallop < 1) {\n this.minGallop = 1\n }\n\n if (length2 === 1) {\n dest -= length1\n cursor1 -= length1\n customDest = dest + 1\n customCursor = cursor1 + 1\n\n for (i = length1 - 1; i >= 0; i --) {\n array[customDest + i] = array[customCursor + i]\n results[customDest + i] = results[customCursor + i]\n }\n\n array[dest] = tmp[cursor2]\n results[dest] = tmpIndex[cursor2]\n } else if (length2 === 0) {\n throw new Error('mergeHigh preconditions were not respected')\n } else {\n customCursor = dest - (length2 - 1)\n for (i = 0; i < length2; i ++) {\n array[customCursor + i] = tmp[i]\n results[customCursor + i] = tmpIndex[i]\n }\n }\n }\n}\n\n/**\n * Sort an array in the range [lo, hi) using TimSort.\n *\n * @param {array} array - The array to sort.\n * @param {function=} compare - Item comparison function. Default is\n * alphabetical\n * @param {number} lo - First element in the range (inclusive).\n * @param {number} hi - Last element in the range.\n * comparator.\n */\nfunction sort (array, compare, lo, hi) {\n if (!Array.isArray(array)) {\n throw new TypeError(\n `The \"array\" argument must be an array. Received ${array}`\n )\n }\n\n results = []\n\n const {length} = array\n\n let i = 0\n\n while (i < length) {\n results[i] = i ++\n }\n\n /*\n * Handle the case where a comparison function is not provided. We do\n * lexicographic sorting\n */\n if (!compare) {\n compare = alphabeticalCompare\n } else if (typeof compare !== 'function') {\n hi = lo\n lo = compare\n compare = alphabeticalCompare\n }\n\n if (!lo) {\n lo = 0\n }\n if (!hi) {\n hi = length\n }\n\n let remaining = hi - lo\n\n // The array is already sorted\n if (remaining < 2) {\n return results\n }\n\n let runLength = 0\n // On small arrays binary sort can be used directly\n if (remaining < DEFAULT_MIN_MERGE) {\n runLength = makeAscendingRun(array, lo, hi, compare)\n binaryInsertionSort(array, lo, hi, lo + runLength, compare)\n return results\n }\n\n const ts = new TimSort(array, compare)\n\n const minRun = minRunLength(remaining)\n\n do {\n runLength = makeAscendingRun(array, lo, hi, compare)\n if (runLength < minRun) {\n let force = remaining\n if (force > minRun) {\n force = minRun\n }\n\n binaryInsertionSort(array, lo, lo + force, lo + runLength, compare)\n runLength = force\n }\n // Push new run and merge if necessary\n ts.pushRun(lo, runLength)\n ts.mergeRuns()\n\n // Go find next run\n remaining -= runLength\n lo += runLength\n } while (remaining !== 0)\n\n // Force merging of remaining runs\n ts.forceMergeRuns()\n\n return results\n}\n\nmodule.exports = {\n sort\n}\n","'use strict';\nconst hasOwnProp = Object.prototype.hasOwnProperty;\n\nmodule.exports = (object, property) => hasOwnProp.call(object, property);\n","const hasOwnProperty = require('has-own-prop')\nconst {isObject, isArray} = require('core-util-is')\n\n\nconst PREFIX_BEFORE = 'before'\nconst PREFIX_AFTER_PROP = 'after-prop'\nconst PREFIX_AFTER_COLON = 'after-colon'\nconst PREFIX_AFTER_VALUE = 'after-value'\nconst PREFIX_AFTER = 'after'\n\nconst PREFIX_BEFORE_ALL = 'before-all'\nconst PREFIX_AFTER_ALL = 'after-all'\n\nconst BRACKET_OPEN = '['\nconst BRACKET_CLOSE = ']'\nconst CURLY_BRACKET_OPEN = '{'\nconst CURLY_BRACKET_CLOSE = '}'\nconst COMMA = ','\nconst EMPTY = ''\nconst MINUS = '-'\n\nconst SYMBOL_PREFIXES = [\n PREFIX_BEFORE,\n PREFIX_AFTER_PROP,\n PREFIX_AFTER_COLON,\n PREFIX_AFTER_VALUE,\n PREFIX_AFTER\n]\n\nconst NON_PROP_SYMBOL_KEYS = [\n PREFIX_BEFORE,\n PREFIX_BEFORE_ALL,\n PREFIX_AFTER_ALL\n].map(Symbol.for)\n\nconst COLON = ':'\nconst UNDEFINED = undefined\n\n\nconst symbol = (prefix, key) => Symbol.for(prefix + COLON + key)\n\nconst define = (target, key, value) => Object.defineProperty(target, key, {\n value,\n writable: true,\n configurable: true\n})\n\nconst copy_comments_by_kind = (\n target, source, target_key, source_key, prefix, remove_source\n) => {\n const source_prop = symbol(prefix, source_key)\n if (!hasOwnProperty(source, source_prop)) {\n return\n }\n\n const target_prop = target_key === source_key\n ? source_prop\n : symbol(prefix, target_key)\n\n define(target, target_prop, source[source_prop])\n\n if (remove_source) {\n delete source[source_prop]\n }\n}\n\nconst copy_comments = (\n target, source, target_key, source_key, remove_source\n) => {\n SYMBOL_PREFIXES.forEach(prefix => {\n copy_comments_by_kind(\n target, source, target_key, source_key, prefix, remove_source\n )\n })\n}\n\nconst swap_comments = (array, from, to) => {\n if (from === to) {\n return\n }\n\n SYMBOL_PREFIXES.forEach(prefix => {\n const target_prop = symbol(prefix, to)\n if (!hasOwnProperty(array, target_prop)) {\n copy_comments_by_kind(array, array, to, from, prefix, true)\n return\n }\n\n const comments = array[target_prop]\n delete array[target_prop]\n\n copy_comments_by_kind(array, array, to, from, prefix, true)\n define(array, symbol(prefix, from), comments)\n })\n}\n\nconst assign_non_prop_comments = (target, source) => {\n NON_PROP_SYMBOL_KEYS.forEach(key => {\n const comments = source[key]\n\n if (comments) {\n define(target, key, comments)\n }\n })\n}\n\n// Assign keys and comments\nconst assign = (target, source, keys) => {\n keys.forEach(key => {\n if (!hasOwnProperty(source, key)) {\n return\n }\n\n target[key] = source[key]\n copy_comments(target, source, key, key)\n })\n\n return target\n}\n\n\nmodule.exports = {\n SYMBOL_PREFIXES,\n\n PREFIX_BEFORE,\n PREFIX_AFTER_PROP,\n PREFIX_AFTER_COLON,\n PREFIX_AFTER_VALUE,\n PREFIX_AFTER,\n\n PREFIX_BEFORE_ALL,\n PREFIX_AFTER_ALL,\n\n BRACKET_OPEN,\n BRACKET_CLOSE,\n CURLY_BRACKET_OPEN,\n CURLY_BRACKET_CLOSE,\n\n COLON,\n COMMA,\n MINUS,\n EMPTY,\n\n UNDEFINED,\n\n symbol,\n define,\n copy_comments,\n swap_comments,\n assign_non_prop_comments,\n\n assign (target, source, keys) {\n if (!isObject(target)) {\n throw new TypeError('Cannot convert undefined or null to object')\n }\n\n if (!isObject(source)) {\n return target\n }\n\n if (keys === UNDEFINED) {\n keys = Object.keys(source)\n // We assign non-property comments\n // if argument `keys` is not specified\n assign_non_prop_comments(target, source)\n } else if (!isArray(keys)) {\n throw new TypeError('keys must be array or undefined')\n } else if (keys.length === 0) {\n // Or argument `keys` is an empty array\n assign_non_prop_comments(target, source)\n }\n\n return assign(target, source, keys)\n }\n}\n","const {isArray} = require('core-util-is')\nconst {sort} = require('array-timsort')\n\nconst {\n SYMBOL_PREFIXES,\n\n UNDEFINED,\n\n symbol,\n copy_comments,\n swap_comments\n} = require('./common')\n\n\nconst reverse_comments = array => {\n const {length} = array\n let i = 0\n const max = length / 2\n\n for (; i < max; i ++) {\n swap_comments(array, i, length - i - 1)\n }\n}\n\nconst move_comment = (target, source, i, offset, remove) => {\n copy_comments(target, source, i + offset, i, remove)\n}\n\nconst move_comments = (\n // `Array` target array\n target,\n // `Array` source array\n source,\n // `number` start index\n start,\n // `number` number of indexes to move\n count,\n // `number` offset to move\n offset,\n // `boolean` whether should remove the comments from source\n remove\n) => {\n if (offset > 0) {\n let i = count\n // | count | offset |\n // source: -------------\n // target: -------------\n // | remove |\n // => remove === offset\n\n // From [count - 1, 0]\n while (i -- > 0) {\n move_comment(target, source, start + i, offset, remove)\n }\n return\n }\n\n let i = 0\n // | remove | count |\n // -------------\n // -------------\n // | offset |\n\n // From [0, count - 1]\n while (i < count) {\n const ii = i ++\n move_comment(target, source, start + ii, offset, remove)\n }\n}\n\nconst remove_comments = (array, key) => {\n SYMBOL_PREFIXES.forEach(prefix => {\n const prop = symbol(prefix, key)\n delete array[prop]\n })\n}\n\nconst get_mapped = (map, key) => {\n let mapped = key\n\n while (mapped in map) {\n mapped = map[mapped]\n }\n\n return mapped\n}\n\n\nclass CommentArray extends Array {\n // - deleteCount + items.length\n\n // We should avoid `splice(begin, deleteCount, ...items)`,\n // because `splice(0, undefined)` is not equivalent to `splice(0)`,\n // as well as:\n // - slice\n splice (...args) {\n const {length} = this\n const ret = super.splice(...args)\n\n // #16\n // If no element removed, we might still need to move comments,\n // because splice could add new items\n\n // if (!ret.length) {\n // return ret\n // }\n\n // JavaScript syntax is silly\n // eslint-disable-next-line prefer-const\n let [begin, deleteCount, ...items] = args\n\n if (begin < 0) {\n begin += length\n }\n\n if (arguments.length === 1) {\n deleteCount = length - begin\n } else {\n deleteCount = Math.min(length - begin, deleteCount)\n }\n\n const {\n length: item_length\n } = items\n\n // itemsToDelete: -\n // itemsToAdd: +\n // | dc | count |\n // =======-------------============\n // =======++++++============\n // | il |\n const offset = item_length - deleteCount\n const start = begin + deleteCount\n const count = length - start\n\n move_comments(this, this, start, count, offset, true)\n\n return ret\n }\n\n slice (...args) {\n const {length} = this\n const array = super.slice(...args)\n if (!array.length) {\n return new CommentArray()\n }\n\n let [begin, before] = args\n\n // Ref:\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/slice\n if (before === UNDEFINED) {\n before = length\n } else if (before < 0) {\n before += length\n }\n\n if (begin < 0) {\n begin += length\n } else if (begin === UNDEFINED) {\n begin = 0\n }\n\n move_comments(array, this, begin, before - begin, - begin)\n\n return array\n }\n\n unshift (...items) {\n const {length} = this\n const ret = super.unshift(...items)\n const {\n length: items_length\n } = items\n\n if (items_length > 0) {\n move_comments(this, this, 0, length, items_length, true)\n }\n\n return ret\n }\n\n shift () {\n const ret = super.shift()\n const {length} = this\n\n remove_comments(this, 0)\n move_comments(this, this, 1, length, - 1, true)\n\n return ret\n }\n\n reverse () {\n super.reverse()\n\n reverse_comments(this)\n\n return this\n }\n\n pop () {\n const ret = super.pop()\n\n // Removes comments\n remove_comments(this, this.length)\n\n return ret\n }\n\n concat (...items) {\n let {length} = this\n const ret = super.concat(...items)\n\n if (!items.length) {\n return ret\n }\n\n move_comments(ret, this, 0, this.length, 0)\n\n items.forEach(item => {\n const prev = length\n length += isArray(item)\n ? item.length\n : 1\n\n if (!(item instanceof CommentArray)) {\n return\n }\n\n move_comments(ret, item, 0, item.length, prev)\n })\n\n return ret\n }\n\n sort (...args) {\n const result = sort(\n this,\n // Make sure there is no more than one argument\n ...args.slice(0, 1)\n )\n\n // For example,\n // if we sort ['b', 'd', 'c', 'a'],\n // then `result` will be [3, 0, 2, 1], and the array is ['a', 'b', 'c', 'd']\n\n // First, we swap index 0 (b) and index 3 (a), then the array comments are\n // ['a.comments', 'd.comments', 'c.comments', 'b.comments']\n // index 0 is finalized\n // index 3 is actually mapped to original index 0, we present as 0 -> 3\n\n // Then swap index 1 (d) and index 0 (-> 3, b)\n // 1 (index) -> 0 (new index) -> 3 (real_index)\n // ['d.comments', 'b.comments', 'c.comments', 'd.comments']\n // index 1 is finalized\n // index 3 is contains the item of original index 1\n // - we present as 1 -> 3\n // - it is ok that we don't remove mapping 0 -> 3\n\n // Then index 2 should be skipped\n\n // Then swap index 3 (d) and index 1 (-> 3, b), skipped\n\n const map = Object.create(null)\n\n result.forEach((source_index, index) => {\n if (source_index === index) {\n return\n }\n\n const real_source_index = get_mapped(map, source_index)\n\n if (real_source_index === index) {\n return\n }\n\n // The item of index `index` gets the final value\n // delete map[index]\n map[index] = real_source_index\n\n swap_comments(this, index, real_source_index)\n })\n\n return this\n }\n}\n\n\nmodule.exports = {\n CommentArray\n}\n","// JSON formatting\n\nconst esprima = require('esprima')\n\nconst {\n CommentArray,\n} = require('./array')\n\nconst {\n PREFIX_BEFORE,\n PREFIX_AFTER_PROP,\n PREFIX_AFTER_COLON,\n PREFIX_AFTER_VALUE,\n PREFIX_AFTER,\n\n PREFIX_BEFORE_ALL,\n PREFIX_AFTER_ALL,\n\n BRACKET_OPEN,\n BRACKET_CLOSE,\n CURLY_BRACKET_OPEN,\n CURLY_BRACKET_CLOSE,\n\n COLON,\n COMMA,\n MINUS,\n EMPTY,\n\n UNDEFINED,\n\n define,\n assign_non_prop_comments\n} = require('./common')\n\nconst tokenize = code => esprima.tokenize(code, {\n comment: true,\n loc: true\n})\n\nconst previous_hosts = []\nlet comments_host = null\nlet unassigned_comments = null\n\nconst previous_props = []\nlet last_prop\n\nlet remove_comments = false\nlet inline = false\nlet tokens = null\nlet last = null\nlet current = null\nlet index\nlet reviver = null\n\nconst clean = () => {\n previous_props.length =\n previous_hosts.length = 0\n\n last = null\n last_prop = UNDEFINED\n}\n\nconst free = () => {\n clean()\n\n tokens.length = 0\n\n unassigned_comments =\n comments_host =\n tokens =\n last =\n current =\n reviver = null\n}\n\nconst symbolFor = prefix => Symbol.for(\n last_prop !== UNDEFINED\n ? prefix + COLON + last_prop\n : prefix\n)\n\nconst transform = (k, v) => reviver\n ? reviver(k, v)\n : v\n\nconst unexpected = () => {\n const error = new SyntaxError(`Unexpected token ${current.value.slice(0, 1)}`)\n Object.assign(error, current.loc.start)\n\n throw error\n}\n\nconst unexpected_end = () => {\n const error = new SyntaxError('Unexpected end of JSON input')\n Object.assign(error, last\n ? last.loc.end\n // Empty string\n : {\n line: 1,\n column: 0\n })\n\n throw error\n}\n\n// Move the reader to the next\nconst next = () => {\n const new_token = tokens[++ index]\n inline = current\n && new_token\n && current.loc.end.line === new_token.loc.start.line\n || false\n\n last = current\n current = new_token\n}\n\nconst type = () => {\n if (!current) {\n unexpected_end()\n }\n\n return current.type === 'Punctuator'\n ? current.value\n : current.type\n}\n\nconst is = t => type() === t\n\nconst expect = a => {\n if (!is(a)) {\n unexpected()\n }\n}\n\nconst set_comments_host = new_host => {\n previous_hosts.push(comments_host)\n comments_host = new_host\n}\n\nconst restore_comments_host = () => {\n comments_host = previous_hosts.pop()\n}\n\nconst assign_after_comments = () => {\n if (!unassigned_comments) {\n return\n }\n\n const after_comments = []\n\n for (const comment of unassigned_comments) {\n // If the comment is inline, then it is an after-comma comment\n if (comment.inline) {\n after_comments.push(comment)\n // Otherwise, all comments are before:<next-prop> comment\n } else {\n break\n }\n }\n\n const {length} = after_comments\n if (!length) {\n return\n }\n\n if (length === unassigned_comments.length) {\n // If unassigned_comments are all consumed\n unassigned_comments = null\n } else {\n unassigned_comments.splice(0, length)\n }\n\n define(comments_host, symbolFor(PREFIX_AFTER), after_comments)\n}\n\nconst assign_comments = prefix => {\n if (!unassigned_comments) {\n return\n }\n\n define(comments_host, symbolFor(prefix), unassigned_comments)\n\n unassigned_comments = null\n}\n\nconst parse_comments = prefix => {\n const comments = []\n\n while (\n current\n && (\n is('LineComment')\n || is('BlockComment')\n )\n ) {\n const comment = {\n ...current,\n inline\n }\n\n // delete comment.loc\n comments.push(comment)\n\n next()\n }\n\n if (remove_comments) {\n return\n }\n\n if (!comments.length) {\n return\n }\n\n if (prefix) {\n define(comments_host, symbolFor(prefix), comments)\n return\n }\n\n unassigned_comments = comments\n}\n\nconst set_prop = (prop, push) => {\n if (push) {\n previous_props.push(last_prop)\n }\n\n last_prop = prop\n}\n\nconst restore_prop = () => {\n last_prop = previous_props.pop()\n}\n\nconst parse_object = () => {\n const obj = {}\n set_comments_host(obj)\n set_prop(UNDEFINED, true)\n\n let started = false\n let name\n\n parse_comments()\n\n while (!is(CURLY_BRACKET_CLOSE)) {\n if (started) {\n assign_comments(PREFIX_AFTER_VALUE)\n\n // key-value pair delimiter\n expect(COMMA)\n next()\n parse_comments()\n\n assign_after_comments()\n\n // If there is a trailing comma, we might reach the end\n // ```\n // {\n // \"a\": 1,\n // }\n // ```\n if (is(CURLY_BRACKET_CLOSE)) {\n break\n }\n }\n\n started = true\n expect('String')\n name = JSON.parse(current.value)\n\n set_prop(name)\n assign_comments(PREFIX_BEFORE)\n\n next()\n parse_comments(PREFIX_AFTER_PROP)\n\n expect(COLON)\n\n next()\n parse_comments(PREFIX_AFTER_COLON)\n\n obj[name] = transform(name, walk())\n parse_comments()\n }\n\n if (started) {\n // If there are properties,\n // then the unassigned comments are after comments\n assign_comments(PREFIX_AFTER)\n }\n\n // bypass }\n next()\n last_prop = undefined\n\n if (!started) {\n // Otherwise, they are before comments\n assign_comments(PREFIX_BEFORE)\n }\n\n restore_comments_host()\n restore_prop()\n\n return obj\n}\n\nconst parse_array = () => {\n const array = new CommentArray()\n set_comments_host(array)\n set_prop(UNDEFINED, true)\n\n let started = false\n let i = 0\n\n parse_comments()\n\n while (!is(BRACKET_CLOSE)) {\n if (started) {\n assign_comments(PREFIX_AFTER_VALUE)\n expect(COMMA)\n next()\n parse_comments()\n\n assign_after_comments()\n\n if (is(BRACKET_CLOSE)) {\n break\n }\n }\n\n started = true\n\n set_prop(i)\n assign_comments(PREFIX_BEFORE)\n\n array[i] = transform(i, walk())\n i ++\n\n parse_comments()\n }\n\n if (started) {\n assign_comments(PREFIX_AFTER)\n }\n\n next()\n last_prop = undefined\n\n if (!started) {\n assign_comments(PREFIX_BEFORE)\n }\n\n restore_comments_host()\n restore_prop()\n\n return array\n}\n\nfunction walk () {\n let tt = type()\n\n if (tt === CURLY_BRACKET_OPEN) {\n next()\n return parse_object()\n }\n\n if (tt === BRACKET_OPEN) {\n next()\n return parse_array()\n }\n\n let negative = EMPTY\n\n // -1\n if (tt === MINUS) {\n next()\n tt = type()\n negative = MINUS\n }\n\n let v\n\n switch (tt) {\n case 'String':\n case 'Boolean':\n case 'Null':\n case 'Numeric':\n v = current.value\n next()\n return JSON.parse(negative + v)\n default:\n }\n}\n\nconst isObject = subject => Object(subject) === subject\n\nconst parse = (code, rev, no_comments) => {\n // Clean variables in closure\n clean()\n\n tokens = tokenize(code)\n reviver = rev\n remove_comments = no_comments\n\n if (!tokens.length) {\n unexpected_end()\n }\n\n index = - 1\n next()\n\n set_comments_host({})\n\n parse_comments(PREFIX_BEFORE_ALL)\n\n let result = walk()\n\n parse_comments(PREFIX_AFTER_ALL)\n\n if (current) {\n unexpected()\n }\n\n if (!no_comments && result !== null) {\n if (!isObject(result)) {\n // 1 -> new Number(1)\n // true -> new Boolean(1)\n // \"foo\" -> new String(\"foo\")\n\n // eslint-disable-next-line no-new-object\n result = new Object(result)\n }\n\n assign_non_prop_comments(result, comments_host)\n }\n\n restore_comments_host()\n\n // reviver\n result = transform('', result)\n\n free()\n\n return result\n}\n\nmodule.exports = {\n parse,\n tokenize\n}\n","/*!\n * repeat-string <https://github.com/jonschlinkert/repeat-string>\n *\n * Copyright (c) 2014-2015, Jon Schlinkert.\n * Licensed under the MIT License.\n */\n\n'use strict';\n\n/**\n * Results cache\n */\n\nvar res = '';\nvar cache;\n\n/**\n * Expose `repeat`\n */\n\nmodule.exports = repeat;\n\n/**\n * Repeat the given `string` the specified `number`\n * of times.\n *\n * **Example:**\n *\n * ```js\n * var repeat = require('repeat-string');\n * repeat('A', 5);\n * //=> AAAAA\n * ```\n *\n * @param {String} `string` The string to repeat\n * @param {Number} `number` The number of times to repeat the string\n * @return {String} Repeated string\n * @api public\n */\n\nfunction repeat(str, num) {\n if (typeof str !== 'string') {\n throw new TypeError('expected a string');\n }\n\n // cover common, quick use cases\n if (num === 1) return str;\n if (num === 2) return str + str;\n\n var max = str.length * num;\n if (cache !== str || typeof cache === 'undefined') {\n cache = str;\n res = '';\n } else if (res.length >= max) {\n return res.substr(0, max);\n }\n\n while (max > res.length && num > 1) {\n if (num & 1) {\n res += str;\n }\n\n num >>= 1;\n str += str;\n }\n\n res += str;\n res = res.substr(0, max);\n return res;\n}\n","const {\n isArray, isObject, isFunction, isNumber, isString\n} = require('core-util-is')\nconst repeat = require('repeat-string')\n\nconst {\n PREFIX_BEFORE_ALL,\n PREFIX_BEFORE,\n PREFIX_AFTER_PROP,\n PREFIX_AFTER_COLON,\n PREFIX_AFTER_VALUE,\n PREFIX_AFTER,\n PREFIX_AFTER_ALL,\n\n BRACKET_OPEN,\n BRACKET_CLOSE,\n CURLY_BRACKET_OPEN,\n CURLY_BRACKET_CLOSE,\n COLON,\n COMMA,\n EMPTY,\n\n UNDEFINED\n} = require('./common')\n\n// eslint-disable-next-line no-control-regex, no-misleading-character-class\nconst ESCAPABLE = /[\\\\\"\\x00-\\x1f\\x7f-\\x9f\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]/g\n\n// String constants\nconst SPACE = ' '\nconst LF = '\\n'\nconst STR_NULL = 'null'\n\n// Symbol tags\nconst BEFORE = prop => `${PREFIX_BEFORE}:${prop}`\nconst AFTER_PROP = prop => `${PREFIX_AFTER_PROP}:${prop}`\nconst AFTER_COLON = prop => `${PREFIX_AFTER_COLON}:${prop}`\nconst AFTER_VALUE = prop => `${PREFIX_AFTER_VALUE}:${prop}`\nconst AFTER = prop => `${PREFIX_AFTER}:${prop}`\n\n// table of character substitutions\nconst meta = {\n '\\b': '\\\\b',\n '\\t': '\\\\t',\n '\\n': '\\\\n',\n '\\f': '\\\\f',\n '\\r': '\\\\r',\n '\"': '\\\\\"',\n '\\\\': '\\\\\\\\'\n}\n\nconst escape = string => {\n ESCAPABLE.lastIndex = 0\n\n if (!ESCAPABLE.test(string)) {\n return string\n }\n\n return string.replace(ESCAPABLE, a => {\n const c = meta[a]\n return typeof c === 'string'\n ? c\n : a\n })\n}\n\n// Escape no control characters, no quote characters,\n// and no backslash characters,\n// then we can safely slap some quotes around it.\nconst quote = string => `\"${escape(string)}\"`\nconst comment_stringify = (value, line) => line\n ? `//${value}`\n : `/*${value}*/`\n\n// display_block `boolean` whether the\n// WHOLE block of comments is always a block group\nconst process_comments = (host, symbol_tag, deeper_gap, display_block) => {\n const comments = host[Symbol.for(symbol_tag)]\n if (!comments || !comments.length) {\n return EMPTY\n }\n\n let is_line_comment = false\n\n const str = comments.reduce((prev, {\n inline,\n type,\n value\n }) => {\n const delimiter = inline\n ? SPACE\n : LF + deeper_gap\n\n is_line_comment = type === 'LineComment'\n\n return prev + delimiter + comment_stringify(value, is_line_comment)\n }, EMPTY)\n\n\n return display_block\n // line comment should always end with a LF\n || is_line_comment\n ? str + LF + deeper_gap\n : str\n}\n\nlet replacer = null\nlet indent = EMPTY\n\nconst clean = () => {\n replacer = null\n indent = EMPTY\n}\n\nconst join = (one, two, gap) =>\n one\n ? two\n // Symbol.for('before') and Symbol.for('before:prop')\n // might both exist if user mannually add comments to the object\n // and make a mistake.\n // SO, we are not to only trimRight but trim for both sides\n ? one + two.trim() + LF + gap\n : one.trimRight() + LF + gap\n : two\n ? two.trimRight() + LF + gap\n : EMPTY\n\nconst join_content = (inside, value, gap) => {\n const comment = process_comments(value, PREFIX_BEFORE, gap + indent, true)\n\n return join(comment, inside, gap)\n}\n\n// | deeper_gap |\n// | gap | indent |\n// [\n// \"foo\",\n// \"bar\"\n// ]\nconst array_stringify = (value, gap) => {\n const deeper_gap = gap + indent\n\n const {length} = value\n\n // From the item to before close\n let inside = EMPTY\n let after_comma = EMPTY\n\n // Never use Array.prototype.forEach,\n // that we should iterate all items\n for (let i = 0; i < length; i ++) {\n if (i !== 0) {\n inside += COMMA\n }\n\n const before = join(\n after_comma,\n process_comments(value, BEFORE(i), deeper_gap),\n deeper_gap\n )\n\n inside += before || (LF + deeper_gap)\n\n // JSON.stringify([undefined]) => [null]\n inside += stringify(i, value, deeper_gap) || STR_NULL\n\n inside += process_comments(value, AFTER_VALUE(i), deeper_gap)\n\n after_comma = process_comments(value, AFTER(i), deeper_gap)\n }\n\n inside += join(\n after_comma,\n process_comments(value, PREFIX_AFTER, deeper_gap),\n deeper_gap\n )\n\n return BRACKET_OPEN\n + join_content(inside, value, gap)\n + BRACKET_CLOSE\n}\n\n// | deeper_gap |\n// | gap | indent |\n// {\n// \"foo\": 1,\n// \"bar\": 2\n// }\nconst object_stringify = (value, gap) => {\n // Due to a specification blunder in ECMAScript, typeof null is 'object',\n // so watch out for that case.\n if (!value) {\n return 'null'\n }\n\n const deeper_gap = gap + indent\n\n // From the first element to before close\n let inside = EMPTY\n let after_comma = EMPTY\n let first = true\n\n const keys = isArray(replacer)\n ? replacer\n : Object.keys(value)\n\n const iteratee = key => {\n // Stringified value\n const sv = stringify(key, value, deeper_gap)\n\n // If a value is undefined, then the key-value pair should be ignored\n if (sv === UNDEFINED) {\n return\n }\n\n // The treat ment\n if (!first) {\n inside += COMMA\n }\n\n first = false\n\n const before = join(\n after_comma,\n process_comments(value, BEFORE(key), deeper_gap),\n deeper_gap\n )\n\n inside += before || (LF + deeper_gap)\n\n inside += quote(key)\n + process_comments(value, AFTER_PROP(key), deeper_gap)\n + COLON\n + process_comments(value, AFTER_COLON(key), deeper_gap)\n + SPACE\n + sv\n + process_comments(value, AFTER_VALUE(key), deeper_gap)\n\n after_comma = process_comments(value, AFTER(key), deeper_gap)\n }\n\n keys.forEach(iteratee)\n\n // if (after_comma) {\n // inside += COMMA\n // }\n\n inside += join(\n after_comma,\n process_comments(value, PREFIX_AFTER, deeper_gap),\n deeper_gap\n )\n\n return CURLY_BRACKET_OPEN\n + join_content(inside, value, gap)\n + CURLY_BRACKET_CLOSE\n}\n\n// @param {string} key\n// @param {Object} holder\n// @param {function()|Array} replacer\n// @param {string} indent\n// @param {string} gap\nfunction stringify (key, holder, gap) {\n let value = holder[key]\n\n // If the value has a toJSON method, call it to obtain a replacement value.\n if (isObject(value) && isFunction(value.toJSON)) {\n value = value.toJSON(key)\n }\n\n // If we were called with a replacer function, then call the replacer to\n // obtain a replacement value.\n if (isFunction(replacer)) {\n value = replacer.call(holder, key, value)\n }\n\n switch (typeof value) {\n case 'string':\n return quote(value)\n\n case 'number':\n // JSON numbers must be finite. Encode non-finite numbers as null.\n return Number.isFinite(value) ? String(value) : STR_NULL\n\n case 'boolean':\n case 'null':\n\n // If the value is a boolean or null, convert it to a string. Note:\n // typeof null does not produce 'null'. The case is included here in\n // the remote chance that this gets fixed someday.\n return String(value)\n\n // If the type is 'object', we might be dealing with an object or an array or\n // null.\n case 'object':\n return isArray(value)\n ? array_stringify(value, gap)\n : object_stringify(value, gap)\n\n // undefined\n default:\n // JSON.stringify(undefined) === undefined\n // JSON.stringify('foo', () => undefined) === undefined\n }\n}\n\nconst get_indent = space => isString(space)\n // If the space parameter is a string, it will be used as the indent string.\n ? space\n : isNumber(space)\n ? repeat(SPACE, space)\n : EMPTY\n\nconst {toString} = Object.prototype\nconst PRIMITIVE_OBJECT_TYPES = [\n '[object Number]',\n '[object String]',\n '[object Boolean]'\n]\n\nconst is_primitive_object = subject => {\n if (typeof subject !== 'object') {\n return false\n }\n\n const str = toString.call(subject)\n return PRIMITIVE_OBJECT_TYPES.includes(str)\n}\n\n// @param {function()|Array} replacer\n// @param {string|number} space\nmodule.exports = (value, replacer_, space) => {\n // The stringify method takes a value and an optional replacer, and an optional\n // space parameter, and returns a JSON text. The replacer can be a function\n // that can replace values, or an array of strings that will select the keys.\n // A default replacer method can be provided. Use of the space parameter can\n // produce text that is more easily readable.\n\n // If the space parameter is a number, make an indent string containing that\n // many spaces.\n const indent_ = get_indent(space)\n\n if (!indent_) {\n return JSON.stringify(value, replacer_)\n }\n\n // vanilla `JSON.parse` allow invalid replacer\n if (!isFunction(replacer_) && !isArray(replacer_)) {\n replacer_ = null\n }\n\n replacer = replacer_\n indent = indent_\n\n const str = is_primitive_object(value)\n ? JSON.stringify(value)\n : stringify('', {'': value}, EMPTY)\n\n clean()\n\n return isObject(value)\n ? process_comments(value, PREFIX_BEFORE_ALL, EMPTY).trimLeft()\n + str\n + process_comments(value, PREFIX_AFTER_ALL, EMPTY).trimRight()\n : str\n}\n","const {parse, tokenize} = require('./parse')\nconst stringify = require('./stringify')\nconst {CommentArray} = require('./array')\nconst {assign} = require('./common')\n\nmodule.exports = {\n parse,\n stringify,\n tokenize,\n\n CommentArray,\n assign\n}\n","'use strict';\n\n\nfunction isNothing(subject) {\n return (typeof subject === 'undefined') || (subject === null);\n}\n\n\nfunction isObject(subject) {\n return (typeof subject === 'object') && (subject !== null);\n}\n\n\nfunction toArray(sequence) {\n if (Array.isArray(sequence)) return sequence;\n else if (isNothing(sequence)) return [];\n\n return [ sequence ];\n}\n\n\nfunction extend(target, source) {\n var index, length, key, sourceKeys;\n\n if (source) {\n sourceKeys = Object.keys(source);\n\n for (index = 0, length = sourceKeys.length; index < length; index += 1) {\n key = sourceKeys[index];\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\n\nfunction repeat(string, count) {\n var result = '', cycle;\n\n for (cycle = 0; cycle < count; cycle += 1) {\n result += string;\n }\n\n return result;\n}\n\n\nfunction isNegativeZero(number) {\n return (number === 0) && (Number.NEGATIVE_INFINITY === 1 / number);\n}\n\n\nmodule.exports.isNothing = isNothing;\nmodule.exports.isObject = isObject;\nmodule.exports.toArray = toArray;\nmodule.exports.repeat = repeat;\nmodule.exports.isNegativeZero = isNegativeZero;\nmodule.exports.extend = extend;\n","// YAML error class. http://stackoverflow.com/questions/8458984\n//\n'use strict';\n\nfunction YAMLException(reason, mark) {\n // Super constructor\n Error.call(this);\n\n this.name = 'YAMLException';\n this.reason = reason;\n this.mark = mark;\n this.message = (this.reason || '(unknown reason)') + (this.mark ? ' ' + this.mark.toString() : '');\n\n // Include stack trace in error object\n if (Error.captureStackTrace) {\n // Chrome and NodeJS\n Error.captureStackTrace(this, this.constructor);\n } else {\n // FF, IE 10+ and Safari 6+. Fallback for others\n this.stack = (new Error()).stack || '';\n }\n}\n\n\n// Inherit from Error\nYAMLException.prototype = Object.create(Error.prototype);\nYAMLException.prototype.constructor = YAMLException;\n\n\nYAMLException.prototype.toString = function toString(compact) {\n var result = this.name + ': ';\n\n result += this.reason || '(unknown reason)';\n\n if (!compact && this.mark) {\n result += ' ' + this.mark.toString();\n }\n\n return result;\n};\n\n\nmodule.exports = YAMLException;\n","'use strict';\n\n\nvar common = require('./common');\n\n\nfunction Mark(name, buffer, position, line, column) {\n this.name = name;\n this.buffer = buffer;\n this.position = position;\n this.line = line;\n this.column = column;\n}\n\n\nMark.prototype.getSnippet = function getSnippet(indent, maxLength) {\n var head, start, tail, end, snippet;\n\n if (!this.buffer) return null;\n\n indent = indent || 4;\n maxLength = maxLength || 75;\n\n head = '';\n start = this.position;\n\n while (start > 0 && '\\x00\\r\\n\\x85\\u2028\\u2029'.indexOf(this.buffer.charAt(start - 1)) === -1) {\n start -= 1;\n if (this.position - start > (maxLength / 2 - 1)) {\n head = ' ... ';\n start += 5;\n break;\n }\n }\n\n tail = '';\n end = this.position;\n\n while (end < this.buffer.length && '\\x00\\r\\n\\x85\\u2028\\u2029'.indexOf(this.buffer.charAt(end)) === -1) {\n end += 1;\n if (end - this.position > (maxLength / 2 - 1)) {\n tail = ' ... ';\n end -= 5;\n break;\n }\n }\n\n snippet = this.buffer.slice(start, end);\n\n return common.repeat(' ', indent) + head + snippet + tail + '\\n' +\n common.repeat(' ', indent + this.position - start + head.length) + '^';\n};\n\n\nMark.prototype.toString = function toString(compact) {\n var snippet, where = '';\n\n if (this.name) {\n where += 'in \"' + this.name + '\" ';\n }\n\n where += 'at line ' + (this.line + 1) + ', column ' + (this.column + 1);\n\n if (!compact) {\n snippet = this.getSnippet();\n\n if (snippet) {\n where += ':\\n' + snippet;\n }\n }\n\n return where;\n};\n\n\nmodule.exports = Mark;\n","'use strict';\n\nvar YAMLException = require('./exception');\n\nvar TYPE_CONSTRUCTOR_OPTIONS = [\n 'kind',\n 'resolve',\n 'construct',\n 'instanceOf',\n 'predicate',\n 'represent',\n 'defaultStyle',\n 'styleAliases'\n];\n\nvar YAML_NODE_KINDS = [\n 'scalar',\n 'sequence',\n 'mapping'\n];\n\nfunction compileStyleAliases(map) {\n var result = {};\n\n if (map !== null) {\n Object.keys(map).forEach(function (style) {\n map[style].forEach(function (alias) {\n result[String(alias)] = style;\n });\n });\n }\n\n return result;\n}\n\nfunction Type(tag, options) {\n options = options || {};\n\n Object.keys(options).forEach(function (name) {\n if (TYPE_CONSTRUCTOR_OPTIONS.indexOf(name) === -1) {\n throw new YAMLException('Unknown option \"' + name + '\" is met in definition of \"' + tag + '\" YAML type.');\n }\n });\n\n // TODO: Add tag format check.\n this.tag = tag;\n this.kind = options['kind'] || null;\n this.resolve = options['resolve'] || function () { return true; };\n this.construct = options['construct'] || function (data) { return data; };\n this.instanceOf = options['instanceOf'] || null;\n this.predicate = options['predicate'] || null;\n this.represent = options['represent'] || null;\n this.defaultStyle = options['defaultStyle'] || null;\n this.styleAliases = compileStyleAliases(options['styleAliases'] || null);\n\n if (YAML_NODE_KINDS.indexOf(this.kind) === -1) {\n throw new YAMLException('Unknown kind \"' + this.kind + '\" is specified for \"' + tag + '\" YAML type.');\n }\n}\n\nmodule.exports = Type;\n","'use strict';\n\n/*eslint-disable max-len*/\n\nvar common = require('./common');\nvar YAMLException = require('./exception');\nvar Type = require('./type');\n\n\nfunction compileList(schema, name, result) {\n var exclude = [];\n\n schema.include.forEach(function (includedSchema) {\n result = compileList(includedSchema, name, result);\n });\n\n schema[name].forEach(function (currentType) {\n result.forEach(function (previousType, previousIndex) {\n if (previousType.tag === currentType.tag && previousType.kind === currentType.kind) {\n exclude.push(previousIndex);\n }\n });\n\n result.push(currentType);\n });\n\n return result.filter(function (type, index) {\n return exclude.indexOf(index) === -1;\n });\n}\n\n\nfunction compileMap(/* lists... */) {\n var result = {\n scalar: {},\n sequence: {},\n mapping: {},\n fallback: {}\n }, index, length;\n\n function collectType(type) {\n result[type.kind][type.tag] = result['fallback'][type.tag] = type;\n }\n\n for (index = 0, length = arguments.length; index < length; index += 1) {\n arguments[index].forEach(collectType);\n }\n return result;\n}\n\n\nfunction Schema(definition) {\n this.include = definition.include || [];\n this.implicit = definition.implicit || [];\n this.explicit = definition.explicit || [];\n\n this.implicit.forEach(function (type) {\n if (type.loadKind && type.loadKind !== 'scalar') {\n throw new YAMLException('There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.');\n }\n });\n\n this.compiledImplicit = compileList(this, 'implicit', []);\n this.compiledExplicit = compileList(this, 'explicit', []);\n this.compiledTypeMap = compileMap(this.compiledImplicit, this.compiledExplicit);\n}\n\n\nSchema.DEFAULT = null;\n\n\nSchema.create = function createSchema() {\n var schemas, types;\n\n switch (arguments.length) {\n case 1:\n schemas = Schema.DEFAULT;\n types = arguments[0];\n break;\n\n case 2:\n schemas = arguments[0];\n types = arguments[1];\n break;\n\n default:\n throw new YAMLException('Wrong number of arguments for Schema.create function');\n }\n\n schemas = common.toArray(schemas);\n types = common.toArray(types);\n\n if (!schemas.every(function (schema) { return schema instanceof Schema; })) {\n throw new YAMLException('Specified list of super schemas (or a single Schema object) contains a non-Schema object.');\n }\n\n if (!types.every(function (type) { return type instanceof Type; })) {\n throw new YAMLException('Specified list of YAML types (or a single Type object) contains a non-Type object.');\n }\n\n return new Schema({\n include: schemas,\n explicit: types\n });\n};\n\n\nmodule.exports = Schema;\n","// Standard YAML's Failsafe schema.\n// http://www.yaml.org/spec/1.2/spec.html#id2802346\n\n\n'use strict';\n\n\nvar Schema = require('../schema');\n\n\nmodule.exports = new Schema({\n explicit: [\n require('../type/str'),\n require('../type/seq'),\n require('../type/map')\n ]\n});\n","'use strict';\n\nvar Type = require('../type');\n\nmodule.exports = new Type('tag:yaml.org,2002:str', {\n kind: 'scalar',\n construct: function (data) { return data !== null ? data : ''; }\n});\n","'use strict';\n\nvar Type = require('../type');\n\nmodule.exports = new Type('tag:yaml.org,2002:seq', {\n kind: 'sequence',\n construct: function (data) { return data !== null ? data : []; }\n});\n","'use strict';\n\nvar Type = require('../type');\n\nmodule.exports = new Type('tag:yaml.org,2002:map', {\n kind: 'mapping',\n construct: function (data) { return data !== null ? data : {}; }\n});\n","'use strict';\n\nvar Type = require('../type');\n\nfunction resolveYamlNull(data) {\n if (data === null) return true;\n\n var max = data.length;\n\n return (max === 1 && data === '~') ||\n (max === 4 && (data === 'null' || data === 'Null' || data === 'NULL'));\n}\n\nfunction constructYamlNull() {\n return null;\n}\n\nfunction isNull(object) {\n return object === null;\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:null', {\n kind: 'scalar',\n resolve: resolveYamlNull,\n construct: constructYamlNull,\n predicate: isNull,\n represent: {\n canonical: function () { return '~'; },\n lowercase: function () { return 'null'; },\n uppercase: function () { return 'NULL'; },\n camelcase: function () { return 'Null'; }\n },\n defaultStyle: 'lowercase'\n});\n","'use strict';\n\nvar Type = require('../type');\n\nfunction resolveYamlBoolean(data) {\n if (data === null) return false;\n\n var max = data.length;\n\n return (max === 4 && (data === 'true' || data === 'True' || data === 'TRUE')) ||\n (max === 5 && (data === 'false' || data === 'False' || data === 'FALSE'));\n}\n\nfunction constructYamlBoolean(data) {\n return data === 'true' ||\n data === 'True' ||\n data === 'TRUE';\n}\n\nfunction isBoolean(object) {\n return Object.prototype.toString.call(object) === '[object Boolean]';\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:bool', {\n kind: 'scalar',\n resolve: resolveYamlBoolean,\n construct: constructYamlBoolean,\n predicate: isBoolean,\n represent: {\n lowercase: function (object) { return object ? 'true' : 'false'; },\n uppercase: function (object) { return object ? 'TRUE' : 'FALSE'; },\n camelcase: function (object) { return object ? 'True' : 'False'; }\n },\n defaultStyle: 'lowercase'\n});\n","'use strict';\n\nvar common = require('../common');\nvar Type = require('../type');\n\nfunction isHexCode(c) {\n return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) ||\n ((0x41/* A */ <= c) && (c <= 0x46/* F */)) ||\n ((0x61/* a */ <= c) && (c <= 0x66/* f */));\n}\n\nfunction isOctCode(c) {\n return ((0x30/* 0 */ <= c) && (c <= 0x37/* 7 */));\n}\n\nfunction isDecCode(c) {\n return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */));\n}\n\nfunction resolveYamlInteger(data) {\n if (data === null) return false;\n\n var max = data.length,\n index = 0,\n hasDigits = false,\n ch;\n\n if (!max) return false;\n\n ch = data[index];\n\n // sign\n if (ch === '-' || ch === '+') {\n ch = data[++index];\n }\n\n if (ch === '0') {\n // 0\n if (index + 1 === max) return true;\n ch = data[++index];\n\n // base 2, base 8, base 16\n\n if (ch === 'b') {\n // base 2\n index++;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (ch !== '0' && ch !== '1') return false;\n hasDigits = true;\n }\n return hasDigits && ch !== '_';\n }\n\n\n if (ch === 'x') {\n // base 16\n index++;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (!isHexCode(data.charCodeAt(index))) return false;\n hasDigits = true;\n }\n return hasDigits && ch !== '_';\n }\n\n // base 8\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (!isOctCode(data.charCodeAt(index))) return false;\n hasDigits = true;\n }\n return hasDigits && ch !== '_';\n }\n\n // base 10 (except 0) or base 60\n\n // value should not start with `_`;\n if (ch === '_') return false;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (ch === ':') break;\n if (!isDecCode(data.charCodeAt(index))) {\n return false;\n }\n hasDigits = true;\n }\n\n // Should have digits and should not end with `_`\n if (!hasDigits || ch === '_') return false;\n\n // if !base60 - done;\n if (ch !== ':') return true;\n\n // base60 almost not used, no needs to optimize\n return /^(:[0-5]?[0-9])+$/.test(data.slice(index));\n}\n\nfunction constructYamlInteger(data) {\n var value = data, sign = 1, ch, base, digits = [];\n\n if (value.indexOf('_') !== -1) {\n value = value.replace(/_/g, '');\n }\n\n ch = value[0];\n\n if (ch === '-' || ch === '+') {\n if (ch === '-') sign = -1;\n value = value.slice(1);\n ch = value[0];\n }\n\n if (value === '0') return 0;\n\n if (ch === '0') {\n if (value[1] === 'b') return sign * parseInt(value.slice(2), 2);\n if (value[1] === 'x') return sign * parseInt(value, 16);\n return sign * parseInt(value, 8);\n }\n\n if (value.indexOf(':') !== -1) {\n value.split(':').forEach(function (v) {\n digits.unshift(parseInt(v, 10));\n });\n\n value = 0;\n base = 1;\n\n digits.forEach(function (d) {\n value += (d * base);\n base *= 60;\n });\n\n return sign * value;\n\n }\n\n return sign * parseInt(value, 10);\n}\n\nfunction isInteger(object) {\n return (Object.prototype.toString.call(object)) === '[object Number]' &&\n (object % 1 === 0 && !common.isNegativeZero(object));\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:int', {\n kind: 'scalar',\n resolve: resolveYamlInteger,\n construct: constructYamlInteger,\n predicate: isInteger,\n represent: {\n binary: function (obj) { return obj >= 0 ? '0b' + obj.toString(2) : '-0b' + obj.toString(2).slice(1); },\n octal: function (obj) { return obj >= 0 ? '0' + obj.toString(8) : '-0' + obj.toString(8).slice(1); },\n decimal: function (obj) { return obj.toString(10); },\n /* eslint-disable max-len */\n hexadecimal: function (obj) { return obj >= 0 ? '0x' + obj.toString(16).toUpperCase() : '-0x' + obj.toString(16).toUpperCase().slice(1); }\n },\n defaultStyle: 'decimal',\n styleAliases: {\n binary: [ 2, 'bin' ],\n octal: [ 8, 'oct' ],\n decimal: [ 10, 'dec' ],\n hexadecimal: [ 16, 'hex' ]\n }\n});\n","'use strict';\n\nvar common = require('../common');\nvar Type = require('../type');\n\nvar YAML_FLOAT_PATTERN = new RegExp(\n // 2.5e4, 2.5 and integers\n '^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?' +\n // .2e4, .2\n // special case, seems not from spec\n '|\\\\.[0-9_]+(?:[eE][-+]?[0-9]+)?' +\n // 20:59\n '|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\\\.[0-9_]*' +\n // .inf\n '|[-+]?\\\\.(?:inf|Inf|INF)' +\n // .nan\n '|\\\\.(?:nan|NaN|NAN))$');\n\nfunction resolveYamlFloat(data) {\n if (data === null) return false;\n\n if (!YAML_FLOAT_PATTERN.test(data) ||\n // Quick hack to not allow integers end with `_`\n // Probably should update regexp & check speed\n data[data.length - 1] === '_') {\n return false;\n }\n\n return true;\n}\n\nfunction constructYamlFloat(data) {\n var value, sign, base, digits;\n\n value = data.replace(/_/g, '').toLowerCase();\n sign = value[0] === '-' ? -1 : 1;\n digits = [];\n\n if ('+-'.indexOf(value[0]) >= 0) {\n value = value.slice(1);\n }\n\n if (value === '.inf') {\n return (sign === 1) ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY;\n\n } else if (value === '.nan') {\n return NaN;\n\n } else if (value.indexOf(':') >= 0) {\n value.split(':').forEach(function (v) {\n digits.unshift(parseFloat(v, 10));\n });\n\n value = 0.0;\n base = 1;\n\n digits.forEach(function (d) {\n value += d * base;\n base *= 60;\n });\n\n return sign * value;\n\n }\n return sign * parseFloat(value, 10);\n}\n\n\nvar SCIENTIFIC_WITHOUT_DOT = /^[-+]?[0-9]+e/;\n\nfunction representYamlFloat(object, style) {\n var res;\n\n if (isNaN(object)) {\n switch (style) {\n case 'lowercase': return '.nan';\n case 'uppercase': return '.NAN';\n case 'camelcase': return '.NaN';\n }\n } else if (Number.POSITIVE_INFINITY === object) {\n switch (style) {\n case 'lowercase': return '.inf';\n case 'uppercase': return '.INF';\n case 'camelcase': return '.Inf';\n }\n } else if (Number.NEGATIVE_INFINITY === object) {\n switch (style) {\n case 'lowercase': return '-.inf';\n case 'uppercase': return '-.INF';\n case 'camelcase': return '-.Inf';\n }\n } else if (common.isNegativeZero(object)) {\n return '-0.0';\n }\n\n res = object.toString(10);\n\n // JS stringifier can build scientific format without dots: 5e-100,\n // while YAML requres dot: 5.e-100. Fix it with simple hack\n\n return SCIENTIFIC_WITHOUT_DOT.test(res) ? res.replace('e', '.e') : res;\n}\n\nfunction isFloat(object) {\n return (Object.prototype.toString.call(object) === '[object Number]') &&\n (object % 1 !== 0 || common.isNegativeZero(object));\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:float', {\n kind: 'scalar',\n resolve: resolveYamlFloat,\n construct: constructYamlFloat,\n predicate: isFloat,\n represent: representYamlFloat,\n defaultStyle: 'lowercase'\n});\n","// Standard YAML's JSON schema.\n// http://www.yaml.org/spec/1.2/spec.html#id2803231\n//\n// NOTE: JS-YAML does not support schema-specific tag resolution restrictions.\n// So, this schema is not such strict as defined in the YAML specification.\n// It allows numbers in binary notaion, use `Null` and `NULL` as `null`, etc.\n\n\n'use strict';\n\n\nvar Schema = require('../schema');\n\n\nmodule.exports = new Schema({\n include: [\n require('./failsafe')\n ],\n implicit: [\n require('../type/null'),\n require('../type/bool'),\n require('../type/int'),\n require('../type/float')\n ]\n});\n","// Standard YAML's Core schema.\n// http://www.yaml.org/spec/1.2/spec.html#id2804923\n//\n// NOTE: JS-YAML does not support schema-specific tag resolution restrictions.\n// So, Core schema has no distinctions from JSON schema is JS-YAML.\n\n\n'use strict';\n\n\nvar Schema = require('../schema');\n\n\nmodule.exports = new Schema({\n include: [\n require('./json')\n ]\n});\n","'use strict';\n\nvar Type = require('../type');\n\nvar YAML_DATE_REGEXP = new RegExp(\n '^([0-9][0-9][0-9][0-9])' + // [1] year\n '-([0-9][0-9])' + // [2] month\n '-([0-9][0-9])$'); // [3] day\n\nvar YAML_TIMESTAMP_REGEXP = new RegExp(\n '^([0-9][0-9][0-9][0-9])' + // [1] year\n '-([0-9][0-9]?)' + // [2] month\n '-([0-9][0-9]?)' + // [3] day\n '(?:[Tt]|[ \\\\t]+)' + // ...\n '([0-9][0-9]?)' + // [4] hour\n ':([0-9][0-9])' + // [5] minute\n ':([0-9][0-9])' + // [6] second\n '(?:\\\\.([0-9]*))?' + // [7] fraction\n '(?:[ \\\\t]*(Z|([-+])([0-9][0-9]?)' + // [8] tz [9] tz_sign [10] tz_hour\n '(?::([0-9][0-9]))?))?$'); // [11] tz_minute\n\nfunction resolveYamlTimestamp(data) {\n if (data === null) return false;\n if (YAML_DATE_REGEXP.exec(data) !== null) return true;\n if (YAML_TIMESTAMP_REGEXP.exec(data) !== null) return true;\n return false;\n}\n\nfunction constructYamlTimestamp(data) {\n var match, year, month, day, hour, minute, second, fraction = 0,\n delta = null, tz_hour, tz_minute, date;\n\n match = YAML_DATE_REGEXP.exec(data);\n if (match === null) match = YAML_TIMESTAMP_REGEXP.exec(data);\n\n if (match === null) throw new Error('Date resolve error');\n\n // match: [1] year [2] month [3] day\n\n year = +(match[1]);\n month = +(match[2]) - 1; // JS month starts with 0\n day = +(match[3]);\n\n if (!match[4]) { // no hour\n return new Date(Date.UTC(year, month, day));\n }\n\n // match: [4] hour [5] minute [6] second [7] fraction\n\n hour = +(match[4]);\n minute = +(match[5]);\n second = +(match[6]);\n\n if (match[7]) {\n fraction = match[7].slice(0, 3);\n while (fraction.length < 3) { // milli-seconds\n fraction += '0';\n }\n fraction = +fraction;\n }\n\n // match: [8] tz [9] tz_sign [10] tz_hour [11] tz_minute\n\n if (match[9]) {\n tz_hour = +(match[10]);\n tz_minute = +(match[11] || 0);\n delta = (tz_hour * 60 + tz_minute) * 60000; // delta in mili-seconds\n if (match[9] === '-') delta = -delta;\n }\n\n date = new Date(Date.UTC(year, month, day, hour, minute, second, fraction));\n\n if (delta) date.setTime(date.getTime() - delta);\n\n return date;\n}\n\nfunction representYamlTimestamp(object /*, style*/) {\n return object.toISOString();\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:timestamp', {\n kind: 'scalar',\n resolve: resolveYamlTimestamp,\n construct: constructYamlTimestamp,\n instanceOf: Date,\n represent: representYamlTimestamp\n});\n","'use strict';\n\n/*eslint-disable no-bitwise*/\n\nvar NodeBuffer;\n\ntry {\n // A trick for browserified version, to not include `Buffer` shim\n var _require = require;\n NodeBuffer = _require('buffer').Buffer;\n} catch (__) {}\n\nvar Type = require('../type');\n\n\n// [ 64, 65, 66 ] -> [ padding, CR, LF ]\nvar BASE64_MAP = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\\n\\r';\n\n\nfunction resolveYamlBinary(data) {\n if (data === null) return false;\n\n var code, idx, bitlen = 0, max = data.length, map = BASE64_MAP;\n\n // Convert one by one.\n for (idx = 0; idx < max; idx++) {\n code = map.indexOf(data.charAt(idx));\n\n // Skip CR/LF\n if (code > 64) continue;\n\n // Fail on illegal characters\n if (code < 0) return false;\n\n bitlen += 6;\n }\n\n // If there are any bits left, source was corrupted\n return (bitlen % 8) === 0;\n}\n\nfunction constructYamlBinary(data) {\n var idx, tailbits,\n input = data.replace(/[\\r\\n=]/g, ''), // remove CR/LF & padding to simplify scan\n max = input.length,\n map = BASE64_MAP,\n bits = 0,\n result = [];\n\n // Collect by 6*4 bits (3 bytes)\n\n for (idx = 0; idx < max; idx++) {\n if ((idx % 4 === 0) && idx) {\n result.push((bits >> 16) & 0xFF);\n result.push((bits >> 8) & 0xFF);\n result.push(bits & 0xFF);\n }\n\n bits = (bits << 6) | map.indexOf(input.charAt(idx));\n }\n\n // Dump tail\n\n tailbits = (max % 4) * 6;\n\n if (tailbits === 0) {\n result.push((bits >> 16) & 0xFF);\n result.push((bits >> 8) & 0xFF);\n result.push(bits & 0xFF);\n } else if (tailbits === 18) {\n result.push((bits >> 10) & 0xFF);\n result.push((bits >> 2) & 0xFF);\n } else if (tailbits === 12) {\n result.push((bits >> 4) & 0xFF);\n }\n\n // Wrap into Buffer for NodeJS and leave Array for browser\n if (NodeBuffer) {\n // Support node 6.+ Buffer API when available\n return NodeBuffer.from ? NodeBuffer.from(result) : new NodeBuffer(result);\n }\n\n return result;\n}\n\nfunction representYamlBinary(object /*, style*/) {\n var result = '', bits = 0, idx, tail,\n max = object.length,\n map = BASE64_MAP;\n\n // Convert every three bytes to 4 ASCII characters.\n\n for (idx = 0; idx < max; idx++) {\n if ((idx % 3 === 0) && idx) {\n result += map[(bits >> 18) & 0x3F];\n result += map[(bits >> 12) & 0x3F];\n result += map[(bits >> 6) & 0x3F];\n result += map[bits & 0x3F];\n }\n\n bits = (bits << 8) + object[idx];\n }\n\n // Dump tail\n\n tail = max % 3;\n\n if (tail === 0) {\n result += map[(bits >> 18) & 0x3F];\n result += map[(bits >> 12) & 0x3F];\n result += map[(bits >> 6) & 0x3F];\n result += map[bits & 0x3F];\n } else if (tail === 2) {\n result += map[(bits >> 10) & 0x3F];\n result += map[(bits >> 4) & 0x3F];\n result += map[(bits << 2) & 0x3F];\n result += map[64];\n } else if (tail === 1) {\n result += map[(bits >> 2) & 0x3F];\n result += map[(bits << 4) & 0x3F];\n result += map[64];\n result += map[64];\n }\n\n return result;\n}\n\nfunction isBinary(object) {\n return NodeBuffer && NodeBuffer.isBuffer(object);\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:binary', {\n kind: 'scalar',\n resolve: resolveYamlBinary,\n construct: constructYamlBinary,\n predicate: isBinary,\n represent: representYamlBinary\n});\n","'use strict';\n\nvar Type = require('../type');\n\nfunction resolveYamlMerge(data) {\n return data === '<<' || data === null;\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:merge', {\n kind: 'scalar',\n resolve: resolveYamlMerge\n});\n","'use strict';\n\nvar Type = require('../type');\n\nvar _hasOwnProperty = Object.prototype.hasOwnProperty;\nvar _toString = Object.prototype.toString;\n\nfunction resolveYamlOmap(data) {\n if (data === null) return true;\n\n var objectKeys = [], index, length, pair, pairKey, pairHasKey,\n object = data;\n\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n pairHasKey = false;\n\n if (_toString.call(pair) !== '[object Object]') return false;\n\n for (pairKey in pair) {\n if (_hasOwnProperty.call(pair, pairKey)) {\n if (!pairHasKey) pairHasKey = true;\n else return false;\n }\n }\n\n if (!pairHasKey) return false;\n\n if (objectKeys.indexOf(pairKey) === -1) objectKeys.push(pairKey);\n else return false;\n }\n\n return true;\n}\n\nfunction constructYamlOmap(data) {\n return data !== null ? data : [];\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:omap', {\n kind: 'sequence',\n resolve: resolveYamlOmap,\n construct: constructYamlOmap\n});\n","'use strict';\n\nvar Type = require('../type');\n\nvar _toString = Object.prototype.toString;\n\nfunction resolveYamlPairs(data) {\n if (data === null) return true;\n\n var index, length, pair, keys, result,\n object = data;\n\n result = new Array(object.length);\n\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n\n if (_toString.call(pair) !== '[object Object]') return false;\n\n keys = Object.keys(pair);\n\n if (keys.length !== 1) return false;\n\n result[index] = [ keys[0], pair[keys[0]] ];\n }\n\n return true;\n}\n\nfunction constructYamlPairs(data) {\n if (data === null) return [];\n\n var index, length, pair, keys, result,\n object = data;\n\n result = new Array(object.length);\n\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n\n keys = Object.keys(pair);\n\n result[index] = [ keys[0], pair[keys[0]] ];\n }\n\n return result;\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:pairs', {\n kind: 'sequence',\n resolve: resolveYamlPairs,\n construct: constructYamlPairs\n});\n","'use strict';\n\nvar Type = require('../type');\n\nvar _hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction resolveYamlSet(data) {\n if (data === null) return true;\n\n var key, object = data;\n\n for (key in object) {\n if (_hasOwnProperty.call(object, key)) {\n if (object[key] !== null) return false;\n }\n }\n\n return true;\n}\n\nfunction constructYamlSet(data) {\n return data !== null ? data : {};\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:set', {\n kind: 'mapping',\n resolve: resolveYamlSet,\n construct: constructYamlSet\n});\n","// JS-YAML's default schema for `safeLoad` function.\n// It is not described in the YAML specification.\n//\n// This schema is based on standard YAML's Core schema and includes most of\n// extra types described at YAML tag repository. (http://yaml.org/type/)\n\n\n'use strict';\n\n\nvar Schema = require('../schema');\n\n\nmodule.exports = new Schema({\n include: [\n require('./core')\n ],\n implicit: [\n require('../type/timestamp'),\n require('../type/merge')\n ],\n explicit: [\n require('../type/binary'),\n require('../type/omap'),\n require('../type/pairs'),\n require('../type/set')\n ]\n});\n","'use strict';\n\nvar Type = require('../../type');\n\nfunction resolveJavascriptUndefined() {\n return true;\n}\n\nfunction constructJavascriptUndefined() {\n /*eslint-disable no-undefined*/\n return undefined;\n}\n\nfunction representJavascriptUndefined() {\n return '';\n}\n\nfunction isUndefined(object) {\n return typeof object === 'undefined';\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:js/undefined', {\n kind: 'scalar',\n resolve: resolveJavascriptUndefined,\n construct: constructJavascriptUndefined,\n predicate: isUndefined,\n represent: representJavascriptUndefined\n});\n","'use strict';\n\nvar esprima;\n\n// Browserified version does not have esprima\n//\n// 1. For node.js just require module as deps\n// 2. For browser try to require mudule via external AMD system.\n// If not found - try to fallback to window.esprima. If not\n// found too - then fail to parse.\n//\ntry {\n // workaround to exclude package from browserify list.\n var _require = require;\n esprima = _require('esprima');\n} catch (_) {\n /* eslint-disable no-redeclare */\n /* global window */\n if (typeof window !== 'undefined') esprima = window.esprima;\n}\n\nvar Type = require('../../type');\n\nfunction resolveJavascriptFunction(data) {\n if (data === null) return false;\n\n try {\n var source = '(' + data + ')',\n ast = esprima.parse(source, { range: true });\n\n if (ast.type !== 'Program' ||\n ast.body.length !== 1 ||\n ast.body[0].type !== 'ExpressionStatement' ||\n (ast.body[0].expression.type !== 'ArrowFunctionExpression' &&\n ast.body[0].expression.type !== 'FunctionExpression')) {\n return false;\n }\n\n return true;\n } catch (err) {\n return false;\n }\n}\n\nfunction constructJavascriptFunction(data) {\n /*jslint evil:true*/\n\n var source = '(' + data + ')',\n ast = esprima.parse(source, { range: true }),\n params = [],\n body;\n\n if (ast.type !== 'Program' ||\n ast.body.length !== 1 ||\n ast.body[0].type !== 'ExpressionStatement' ||\n (ast.body[0].expression.type !== 'ArrowFunctionExpression' &&\n ast.body[0].expression.type !== 'FunctionExpression')) {\n throw new Error('Failed to resolve function');\n }\n\n ast.body[0].expression.params.forEach(function (param) {\n params.push(param.name);\n });\n\n body = ast.body[0].expression.body.range;\n\n // Esprima's ranges include the first '{' and the last '}' characters on\n // function expressions. So cut them out.\n if (ast.body[0].expression.body.type === 'BlockStatement') {\n /*eslint-disable no-new-func*/\n return new Function(params, source.slice(body[0] + 1, body[1] - 1));\n }\n // ES6 arrow functions can omit the BlockStatement. In that case, just return\n // the body.\n /*eslint-disable no-new-func*/\n return new Function(params, 'return ' + source.slice(body[0], body[1]));\n}\n\nfunction representJavascriptFunction(object /*, style*/) {\n return object.toString();\n}\n\nfunction isFunction(object) {\n return Object.prototype.toString.call(object) === '[object Function]';\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:js/function', {\n kind: 'scalar',\n resolve: resolveJavascriptFunction,\n construct: constructJavascriptFunction,\n predicate: isFunction,\n represent: representJavascriptFunction\n});\n","'use strict';\n\nvar Type = require('../../type');\n\nfunction resolveJavascriptRegExp(data) {\n if (data === null) return false;\n if (data.length === 0) return false;\n\n var regexp = data,\n tail = /\\/([gim]*)$/.exec(data),\n modifiers = '';\n\n // if regexp starts with '/' it can have modifiers and must be properly closed\n // `/foo/gim` - modifiers tail can be maximum 3 chars\n if (regexp[0] === '/') {\n if (tail) modifiers = tail[1];\n\n if (modifiers.length > 3) return false;\n // if expression starts with /, is should be properly terminated\n if (regexp[regexp.length - modifiers.length - 1] !== '/') return false;\n }\n\n return true;\n}\n\nfunction constructJavascriptRegExp(data) {\n var regexp = data,\n tail = /\\/([gim]*)$/.exec(data),\n modifiers = '';\n\n // `/foo/gim` - tail can be maximum 4 chars\n if (regexp[0] === '/') {\n if (tail) modifiers = tail[1];\n regexp = regexp.slice(1, regexp.length - modifiers.length - 1);\n }\n\n return new RegExp(regexp, modifiers);\n}\n\nfunction representJavascriptRegExp(object /*, style*/) {\n var result = '/' + object.source + '/';\n\n if (object.global) result += 'g';\n if (object.multiline) result += 'm';\n if (object.ignoreCase) result += 'i';\n\n return result;\n}\n\nfunction isRegExp(object) {\n return Object.prototype.toString.call(object) === '[object RegExp]';\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:js/regexp', {\n kind: 'scalar',\n resolve: resolveJavascriptRegExp,\n construct: constructJavascriptRegExp,\n predicate: isRegExp,\n represent: representJavascriptRegExp\n});\n","// JS-YAML's default schema for `load` function.\n// It is not described in the YAML specification.\n//\n// This schema is based on JS-YAML's default safe schema and includes\n// JavaScript-specific types: !!js/undefined, !!js/regexp and !!js/function.\n//\n// Also this schema is used as default base schema at `Schema.create` function.\n\n\n'use strict';\n\n\nvar Schema = require('../schema');\n\n\nmodule.exports = Schema.DEFAULT = new Schema({\n include: [\n require('./default_safe')\n ],\n explicit: [\n require('../type/js/undefined'),\n require('../type/js/regexp'),\n require('../type/js/function')\n ]\n});\n","'use strict';\n\n/*eslint-disable max-len,no-use-before-define*/\n\nvar common = require('./common');\nvar YAMLException = require('./exception');\nvar Mark = require('./mark');\nvar DEFAULT_SAFE_SCHEMA = require('./schema/default_safe');\nvar DEFAULT_FULL_SCHEMA = require('./schema/default_full');\n\n\nvar _hasOwnProperty = Object.prototype.hasOwnProperty;\n\n\nvar CONTEXT_FLOW_IN = 1;\nvar CONTEXT_FLOW_OUT = 2;\nvar CONTEXT_BLOCK_IN = 3;\nvar CONTEXT_BLOCK_OUT = 4;\n\n\nvar CHOMPING_CLIP = 1;\nvar CHOMPING_STRIP = 2;\nvar CHOMPING_KEEP = 3;\n\n\nvar PATTERN_NON_PRINTABLE = /[\\x00-\\x08\\x0B\\x0C\\x0E-\\x1F\\x7F-\\x84\\x86-\\x9F\\uFFFE\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/;\nvar PATTERN_NON_ASCII_LINE_BREAKS = /[\\x85\\u2028\\u2029]/;\nvar PATTERN_FLOW_INDICATORS = /[,\\[\\]\\{\\}]/;\nvar PATTERN_TAG_HANDLE = /^(?:!|!!|![a-z\\-]+!)$/i;\nvar PATTERN_TAG_URI = /^(?:!|[^,\\[\\]\\{\\}])(?:%[0-9a-f]{2}|[0-9a-z\\-#;\\/\\?:@&=\\+\\$,_\\.!~\\*'\\(\\)\\[\\]])*$/i;\n\n\nfunction _class(obj) { return Object.prototype.toString.call(obj); }\n\nfunction is_EOL(c) {\n return (c === 0x0A/* LF */) || (c === 0x0D/* CR */);\n}\n\nfunction is_WHITE_SPACE(c) {\n return (c === 0x09/* Tab */) || (c === 0x20/* Space */);\n}\n\nfunction is_WS_OR_EOL(c) {\n return (c === 0x09/* Tab */) ||\n (c === 0x20/* Space */) ||\n (c === 0x0A/* LF */) ||\n (c === 0x0D/* CR */);\n}\n\nfunction is_FLOW_INDICATOR(c) {\n return c === 0x2C/* , */ ||\n c === 0x5B/* [ */ ||\n c === 0x5D/* ] */ ||\n c === 0x7B/* { */ ||\n c === 0x7D/* } */;\n}\n\nfunction fromHexCode(c) {\n var lc;\n\n if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) {\n return c - 0x30;\n }\n\n /*eslint-disable no-bitwise*/\n lc = c | 0x20;\n\n if ((0x61/* a */ <= lc) && (lc <= 0x66/* f */)) {\n return lc - 0x61 + 10;\n }\n\n return -1;\n}\n\nfunction escapedHexLen(c) {\n if (c === 0x78/* x */) { return 2; }\n if (c === 0x75/* u */) { return 4; }\n if (c === 0x55/* U */) { return 8; }\n return 0;\n}\n\nfunction fromDecimalCode(c) {\n if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) {\n return c - 0x30;\n }\n\n return -1;\n}\n\nfunction simpleEscapeSequence(c) {\n /* eslint-disable indent */\n return (c === 0x30/* 0 */) ? '\\x00' :\n (c === 0x61/* a */) ? '\\x07' :\n (c === 0x62/* b */) ? '\\x08' :\n (c === 0x74/* t */) ? '\\x09' :\n (c === 0x09/* Tab */) ? '\\x09' :\n (c === 0x6E/* n */) ? '\\x0A' :\n (c === 0x76/* v */) ? '\\x0B' :\n (c === 0x66/* f */) ? '\\x0C' :\n (c === 0x72/* r */) ? '\\x0D' :\n (c === 0x65/* e */) ? '\\x1B' :\n (c === 0x20/* Space */) ? ' ' :\n (c === 0x22/* \" */) ? '\\x22' :\n (c === 0x2F/* / */) ? '/' :\n (c === 0x5C/* \\ */) ? '\\x5C' :\n (c === 0x4E/* N */) ? '\\x85' :\n (c === 0x5F/* _ */) ? '\\xA0' :\n (c === 0x4C/* L */) ? '\\u2028' :\n (c === 0x50/* P */) ? '\\u2029' : '';\n}\n\nfunction charFromCodepoint(c) {\n if (c <= 0xFFFF) {\n return String.fromCharCode(c);\n }\n // Encode UTF-16 surrogate pair\n // https://en.wikipedia.org/wiki/UTF-16#Code_points_U.2B010000_to_U.2B10FFFF\n return String.fromCharCode(\n ((c - 0x010000) >> 10) + 0xD800,\n ((c - 0x010000) & 0x03FF) + 0xDC00\n );\n}\n\nvar simpleEscapeCheck = new Array(256); // integer, for fast access\nvar simpleEscapeMap = new Array(256);\nfor (var i = 0; i < 256; i++) {\n simpleEscapeCheck[i] = simpleEscapeSequence(i) ? 1 : 0;\n simpleEscapeMap[i] = simpleEscapeSequence(i);\n}\n\n\nfunction State(input, options) {\n this.input = input;\n\n this.filename = options['filename'] || null;\n this.schema = options['schema'] || DEFAULT_FULL_SCHEMA;\n this.onWarning = options['onWarning'] || null;\n this.legacy = options['legacy'] || false;\n this.json = options['json'] || false;\n this.listener = options['listener'] || null;\n\n this.implicitTypes = this.schema.compiledImplicit;\n this.typeMap = this.schema.compiledTypeMap;\n\n this.length = input.length;\n this.position = 0;\n this.line = 0;\n this.lineStart = 0;\n this.lineIndent = 0;\n\n this.documents = [];\n\n /*\n this.version;\n this.checkLineBreaks;\n this.tagMap;\n this.anchorMap;\n this.tag;\n this.anchor;\n this.kind;\n this.result;*/\n\n}\n\n\nfunction generateError(state, message) {\n return new YAMLException(\n message,\n new Mark(state.filename, state.input, state.position, state.line, (state.position - state.lineStart)));\n}\n\nfunction throwError(state, message) {\n throw generateError(state, message);\n}\n\nfunction throwWarning(state, message) {\n if (state.onWarning) {\n state.onWarning.call(null, generateError(state, message));\n }\n}\n\n\nvar directiveHandlers = {\n\n YAML: function handleYamlDirective(state, name, args) {\n\n var match, major, minor;\n\n if (state.version !== null) {\n throwError(state, 'duplication of %YAML directive');\n }\n\n if (args.length !== 1) {\n throwError(state, 'YAML directive accepts exactly one argument');\n }\n\n match = /^([0-9]+)\\.([0-9]+)$/.exec(args[0]);\n\n if (match === null) {\n throwError(state, 'ill-formed argument of the YAML directive');\n }\n\n major = parseInt(match[1], 10);\n minor = parseInt(match[2], 10);\n\n if (major !== 1) {\n throwError(state, 'unacceptable YAML version of the document');\n }\n\n state.version = args[0];\n state.checkLineBreaks = (minor < 2);\n\n if (minor !== 1 && minor !== 2) {\n throwWarning(state, 'unsupported YAML version of the document');\n }\n },\n\n TAG: function handleTagDirective(state, name, args) {\n\n var handle, prefix;\n\n if (args.length !== 2) {\n throwError(state, 'TAG directive accepts exactly two arguments');\n }\n\n handle = args[0];\n prefix = args[1];\n\n if (!PATTERN_TAG_HANDLE.test(handle)) {\n throwError(state, 'ill-formed tag handle (first argument) of the TAG directive');\n }\n\n if (_hasOwnProperty.call(state.tagMap, handle)) {\n throwError(state, 'there is a previously declared suffix for \"' + handle + '\" tag handle');\n }\n\n if (!PATTERN_TAG_URI.test(prefix)) {\n throwError(state, 'ill-formed tag prefix (second argument) of the TAG directive');\n }\n\n state.tagMap[handle] = prefix;\n }\n};\n\n\nfunction captureSegment(state, start, end, checkJson) {\n var _position, _length, _character, _result;\n\n if (start < end) {\n _result = state.input.slice(start, end);\n\n if (checkJson) {\n for (_position = 0, _length = _result.length; _position < _length; _position += 1) {\n _character = _result.charCodeAt(_position);\n if (!(_character === 0x09 ||\n (0x20 <= _character && _character <= 0x10FFFF))) {\n throwError(state, 'expected valid JSON character');\n }\n }\n } else if (PATTERN_NON_PRINTABLE.test(_result)) {\n throwError(state, 'the stream contains non-printable characters');\n }\n\n state.result += _result;\n }\n}\n\nfunction mergeMappings(state, destination, source, overridableKeys) {\n var sourceKeys, key, index, quantity;\n\n if (!common.isObject(source)) {\n throwError(state, 'cannot merge mappings; the provided source object is unacceptable');\n }\n\n sourceKeys = Object.keys(source);\n\n for (index = 0, quantity = sourceKeys.length; index < quantity; index += 1) {\n key = sourceKeys[index];\n\n if (!_hasOwnProperty.call(destination, key)) {\n destination[key] = source[key];\n overridableKeys[key] = true;\n }\n }\n}\n\nfunction storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, startLine, startPos) {\n var index, quantity;\n\n // The output is a plain object here, so keys can only be strings.\n // We need to convert keyNode to a string, but doing so can hang the process\n // (deeply nested arrays that explode exponentially using aliases).\n if (Array.isArray(keyNode)) {\n keyNode = Array.prototype.slice.call(keyNode);\n\n for (index = 0, quantity = keyNode.length; index < quantity; index += 1) {\n if (Array.isArray(keyNode[index])) {\n throwError(state, 'nested arrays are not supported inside keys');\n }\n\n if (typeof keyNode === 'object' && _class(keyNode[index]) === '[object Object]') {\n keyNode[index] = '[object Object]';\n }\n }\n }\n\n // Avoid code execution in load() via toString property\n // (still use its own toString for arrays, timestamps,\n // and whatever user schema extensions happen to have @@toStringTag)\n if (typeof keyNode === 'object' && _class(keyNode) === '[object Object]') {\n keyNode = '[object Object]';\n }\n\n\n keyNode = String(keyNode);\n\n if (_result === null) {\n _result = {};\n }\n\n if (keyTag === 'tag:yaml.org,2002:merge') {\n if (Array.isArray(valueNode)) {\n for (index = 0, quantity = valueNode.length; index < quantity; index += 1) {\n mergeMappings(state, _result, valueNode[index], overridableKeys);\n }\n } else {\n mergeMappings(state, _result, valueNode, overridableKeys);\n }\n } else {\n if (!state.json &&\n !_hasOwnProperty.call(overridableKeys, keyNode) &&\n _hasOwnProperty.call(_result, keyNode)) {\n state.line = startLine || state.line;\n state.position = startPos || state.position;\n throwError(state, 'duplicated mapping key');\n }\n _result[keyNode] = valueNode;\n delete overridableKeys[keyNode];\n }\n\n return _result;\n}\n\nfunction readLineBreak(state) {\n var ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x0A/* LF */) {\n state.position++;\n } else if (ch === 0x0D/* CR */) {\n state.position++;\n if (state.input.charCodeAt(state.position) === 0x0A/* LF */) {\n state.position++;\n }\n } else {\n throwError(state, 'a line break is expected');\n }\n\n state.line += 1;\n state.lineStart = state.position;\n}\n\nfunction skipSeparationSpace(state, allowComments, checkIndent) {\n var lineBreaks = 0,\n ch = state.input.charCodeAt(state.position);\n\n while (ch !== 0) {\n while (is_WHITE_SPACE(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (allowComments && ch === 0x23/* # */) {\n do {\n ch = state.input.charCodeAt(++state.position);\n } while (ch !== 0x0A/* LF */ && ch !== 0x0D/* CR */ && ch !== 0);\n }\n\n if (is_EOL(ch)) {\n readLineBreak(state);\n\n ch = state.input.charCodeAt(state.position);\n lineBreaks++;\n state.lineIndent = 0;\n\n while (ch === 0x20/* Space */) {\n state.lineIndent++;\n ch = state.input.charCodeAt(++state.position);\n }\n } else {\n break;\n }\n }\n\n if (checkIndent !== -1 && lineBreaks !== 0 && state.lineIndent < checkIndent) {\n throwWarning(state, 'deficient indentation');\n }\n\n return lineBreaks;\n}\n\nfunction testDocumentSeparator(state) {\n var _position = state.position,\n ch;\n\n ch = state.input.charCodeAt(_position);\n\n // Condition state.position === state.lineStart is tested\n // in parent on each call, for efficiency. No needs to test here again.\n if ((ch === 0x2D/* - */ || ch === 0x2E/* . */) &&\n ch === state.input.charCodeAt(_position + 1) &&\n ch === state.input.charCodeAt(_position + 2)) {\n\n _position += 3;\n\n ch = state.input.charCodeAt(_position);\n\n if (ch === 0 || is_WS_OR_EOL(ch)) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction writeFoldedLines(state, count) {\n if (count === 1) {\n state.result += ' ';\n } else if (count > 1) {\n state.result += common.repeat('\\n', count - 1);\n }\n}\n\n\nfunction readPlainScalar(state, nodeIndent, withinFlowCollection) {\n var preceding,\n following,\n captureStart,\n captureEnd,\n hasPendingContent,\n _line,\n _lineStart,\n _lineIndent,\n _kind = state.kind,\n _result = state.result,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (is_WS_OR_EOL(ch) ||\n is_FLOW_INDICATOR(ch) ||\n ch === 0x23/* # */ ||\n ch === 0x26/* & */ ||\n ch === 0x2A/* * */ ||\n ch === 0x21/* ! */ ||\n ch === 0x7C/* | */ ||\n ch === 0x3E/* > */ ||\n ch === 0x27/* ' */ ||\n ch === 0x22/* \" */ ||\n ch === 0x25/* % */ ||\n ch === 0x40/* @ */ ||\n ch === 0x60/* ` */) {\n return false;\n }\n\n if (ch === 0x3F/* ? */ || ch === 0x2D/* - */) {\n following = state.input.charCodeAt(state.position + 1);\n\n if (is_WS_OR_EOL(following) ||\n withinFlowCollection && is_FLOW_INDICATOR(following)) {\n return false;\n }\n }\n\n state.kind = 'scalar';\n state.result = '';\n captureStart = captureEnd = state.position;\n hasPendingContent = false;\n\n while (ch !== 0) {\n if (ch === 0x3A/* : */) {\n following = state.input.charCodeAt(state.position + 1);\n\n if (is_WS_OR_EOL(following) ||\n withinFlowCollection && is_FLOW_INDICATOR(following)) {\n break;\n }\n\n } else if (ch === 0x23/* # */) {\n preceding = state.input.charCodeAt(state.position - 1);\n\n if (is_WS_OR_EOL(preceding)) {\n break;\n }\n\n } else if ((state.position === state.lineStart && testDocumentSeparator(state)) ||\n withinFlowCollection && is_FLOW_INDICATOR(ch)) {\n break;\n\n } else if (is_EOL(ch)) {\n _line = state.line;\n _lineStart = state.lineStart;\n _lineIndent = state.lineIndent;\n skipSeparationSpace(state, false, -1);\n\n if (state.lineIndent >= nodeIndent) {\n hasPendingContent = true;\n ch = state.input.charCodeAt(state.position);\n continue;\n } else {\n state.position = captureEnd;\n state.line = _line;\n state.lineStart = _lineStart;\n state.lineIndent = _lineIndent;\n break;\n }\n }\n\n if (hasPendingContent) {\n captureSegment(state, captureStart, captureEnd, false);\n writeFoldedLines(state, state.line - _line);\n captureStart = captureEnd = state.position;\n hasPendingContent = false;\n }\n\n if (!is_WHITE_SPACE(ch)) {\n captureEnd = state.position + 1;\n }\n\n ch = state.input.charCodeAt(++state.position);\n }\n\n captureSegment(state, captureStart, captureEnd, false);\n\n if (state.result) {\n return true;\n }\n\n state.kind = _kind;\n state.result = _result;\n return false;\n}\n\nfunction readSingleQuotedScalar(state, nodeIndent) {\n var ch,\n captureStart, captureEnd;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x27/* ' */) {\n return false;\n }\n\n state.kind = 'scalar';\n state.result = '';\n state.position++;\n captureStart = captureEnd = state.position;\n\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n if (ch === 0x27/* ' */) {\n captureSegment(state, captureStart, state.position, true);\n ch = state.input.charCodeAt(++state.position);\n\n if (ch === 0x27/* ' */) {\n captureStart = state.position;\n state.position++;\n captureEnd = state.position;\n } else {\n return true;\n }\n\n } else if (is_EOL(ch)) {\n captureSegment(state, captureStart, captureEnd, true);\n writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent));\n captureStart = captureEnd = state.position;\n\n } else if (state.position === state.lineStart && testDocumentSeparator(state)) {\n throwError(state, 'unexpected end of the document within a single quoted scalar');\n\n } else {\n state.position++;\n captureEnd = state.position;\n }\n }\n\n throwError(state, 'unexpected end of the stream within a single quoted scalar');\n}\n\nfunction readDoubleQuotedScalar(state, nodeIndent) {\n var captureStart,\n captureEnd,\n hexLength,\n hexResult,\n tmp,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x22/* \" */) {\n return false;\n }\n\n state.kind = 'scalar';\n state.result = '';\n state.position++;\n captureStart = captureEnd = state.position;\n\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n if (ch === 0x22/* \" */) {\n captureSegment(state, captureStart, state.position, true);\n state.position++;\n return true;\n\n } else if (ch === 0x5C/* \\ */) {\n captureSegment(state, captureStart, state.position, true);\n ch = state.input.charCodeAt(++state.position);\n\n if (is_EOL(ch)) {\n skipSeparationSpace(state, false, nodeIndent);\n\n // TODO: rework to inline fn with no type cast?\n } else if (ch < 256 && simpleEscapeCheck[ch]) {\n state.result += simpleEscapeMap[ch];\n state.position++;\n\n } else if ((tmp = escapedHexLen(ch)) > 0) {\n hexLength = tmp;\n hexResult = 0;\n\n for (; hexLength > 0; hexLength--) {\n ch = state.input.charCodeAt(++state.position);\n\n if ((tmp = fromHexCode(ch)) >= 0) {\n hexResult = (hexResult << 4) + tmp;\n\n } else {\n throwError(state, 'expected hexadecimal character');\n }\n }\n\n state.result += charFromCodepoint(hexResult);\n\n state.position++;\n\n } else {\n throwError(state, 'unknown escape sequence');\n }\n\n captureStart = captureEnd = state.position;\n\n } else if (is_EOL(ch)) {\n captureSegment(state, captureStart, captureEnd, true);\n writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent));\n captureStart = captureEnd = state.position;\n\n } else if (state.position === state.lineStart && testDocumentSeparator(state)) {\n throwError(state, 'unexpected end of the document within a double quoted scalar');\n\n } else {\n state.position++;\n captureEnd = state.position;\n }\n }\n\n throwError(state, 'unexpected end of the stream within a double quoted scalar');\n}\n\nfunction readFlowCollection(state, nodeIndent) {\n var readNext = true,\n _line,\n _tag = state.tag,\n _result,\n _anchor = state.anchor,\n following,\n terminator,\n isPair,\n isExplicitPair,\n isMapping,\n overridableKeys = {},\n keyNode,\n keyTag,\n valueNode,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x5B/* [ */) {\n terminator = 0x5D;/* ] */\n isMapping = false;\n _result = [];\n } else if (ch === 0x7B/* { */) {\n terminator = 0x7D;/* } */\n isMapping = true;\n _result = {};\n } else {\n return false;\n }\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n\n ch = state.input.charCodeAt(++state.position);\n\n while (ch !== 0) {\n skipSeparationSpace(state, true, nodeIndent);\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === terminator) {\n state.position++;\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = isMapping ? 'mapping' : 'sequence';\n state.result = _result;\n return true;\n } else if (!readNext) {\n throwError(state, 'missed comma between flow collection entries');\n }\n\n keyTag = keyNode = valueNode = null;\n isPair = isExplicitPair = false;\n\n if (ch === 0x3F/* ? */) {\n following = state.input.charCodeAt(state.position + 1);\n\n if (is_WS_OR_EOL(following)) {\n isPair = isExplicitPair = true;\n state.position++;\n skipSeparationSpace(state, true, nodeIndent);\n }\n }\n\n _line = state.line;\n composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true);\n keyTag = state.tag;\n keyNode = state.result;\n skipSeparationSpace(state, true, nodeIndent);\n\n ch = state.input.charCodeAt(state.position);\n\n if ((isExplicitPair || state.line === _line) && ch === 0x3A/* : */) {\n isPair = true;\n ch = state.input.charCodeAt(++state.position);\n skipSeparationSpace(state, true, nodeIndent);\n composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true);\n valueNode = state.result;\n }\n\n if (isMapping) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode);\n } else if (isPair) {\n _result.push(storeMappingPair(state, null, overridableKeys, keyTag, keyNode, valueNode));\n } else {\n _result.push(keyNode);\n }\n\n skipSeparationSpace(state, true, nodeIndent);\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x2C/* , */) {\n readNext = true;\n ch = state.input.charCodeAt(++state.position);\n } else {\n readNext = false;\n }\n }\n\n throwError(state, 'unexpected end of the stream within a flow collection');\n}\n\nfunction readBlockScalar(state, nodeIndent) {\n var captureStart,\n folding,\n chomping = CHOMPING_CLIP,\n didReadContent = false,\n detectedIndent = false,\n textIndent = nodeIndent,\n emptyLines = 0,\n atMoreIndented = false,\n tmp,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x7C/* | */) {\n folding = false;\n } else if (ch === 0x3E/* > */) {\n folding = true;\n } else {\n return false;\n }\n\n state.kind = 'scalar';\n state.result = '';\n\n while (ch !== 0) {\n ch = state.input.charCodeAt(++state.position);\n\n if (ch === 0x2B/* + */ || ch === 0x2D/* - */) {\n if (CHOMPING_CLIP === chomping) {\n chomping = (ch === 0x2B/* + */) ? CHOMPING_KEEP : CHOMPING_STRIP;\n } else {\n throwError(state, 'repeat of a chomping mode identifier');\n }\n\n } else if ((tmp = fromDecimalCode(ch)) >= 0) {\n if (tmp === 0) {\n throwError(state, 'bad explicit indentation width of a block scalar; it cannot be less than one');\n } else if (!detectedIndent) {\n textIndent = nodeIndent + tmp - 1;\n detectedIndent = true;\n } else {\n throwError(state, 'repeat of an indentation width identifier');\n }\n\n } else {\n break;\n }\n }\n\n if (is_WHITE_SPACE(ch)) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (is_WHITE_SPACE(ch));\n\n if (ch === 0x23/* # */) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (!is_EOL(ch) && (ch !== 0));\n }\n }\n\n while (ch !== 0) {\n readLineBreak(state);\n state.lineIndent = 0;\n\n ch = state.input.charCodeAt(state.position);\n\n while ((!detectedIndent || state.lineIndent < textIndent) &&\n (ch === 0x20/* Space */)) {\n state.lineIndent++;\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (!detectedIndent && state.lineIndent > textIndent) {\n textIndent = state.lineIndent;\n }\n\n if (is_EOL(ch)) {\n emptyLines++;\n continue;\n }\n\n // End of the scalar.\n if (state.lineIndent < textIndent) {\n\n // Perform the chomping.\n if (chomping === CHOMPING_KEEP) {\n state.result += common.repeat('\\n', didReadContent ? 1 + emptyLines : emptyLines);\n } else if (chomping === CHOMPING_CLIP) {\n if (didReadContent) { // i.e. only if the scalar is not empty.\n state.result += '\\n';\n }\n }\n\n // Break this `while` cycle and go to the funciton's epilogue.\n break;\n }\n\n // Folded style: use fancy rules to handle line breaks.\n if (folding) {\n\n // Lines starting with white space characters (more-indented lines) are not folded.\n if (is_WHITE_SPACE(ch)) {\n atMoreIndented = true;\n // except for the first content line (cf. Example 8.1)\n state.result += common.repeat('\\n', didReadContent ? 1 + emptyLines : emptyLines);\n\n // End of more-indented block.\n } else if (atMoreIndented) {\n atMoreIndented = false;\n state.result += common.repeat('\\n', emptyLines + 1);\n\n // Just one line break - perceive as the same line.\n } else if (emptyLines === 0) {\n if (didReadContent) { // i.e. only if we have already read some scalar content.\n state.result += ' ';\n }\n\n // Several line breaks - perceive as different lines.\n } else {\n state.result += common.repeat('\\n', emptyLines);\n }\n\n // Literal style: just add exact number of line breaks between content lines.\n } else {\n // Keep all line breaks except the header line break.\n state.result += common.repeat('\\n', didReadContent ? 1 + emptyLines : emptyLines);\n }\n\n didReadContent = true;\n detectedIndent = true;\n emptyLines = 0;\n captureStart = state.position;\n\n while (!is_EOL(ch) && (ch !== 0)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n captureSegment(state, captureStart, state.position, false);\n }\n\n return true;\n}\n\nfunction readBlockSequence(state, nodeIndent) {\n var _line,\n _tag = state.tag,\n _anchor = state.anchor,\n _result = [],\n following,\n detected = false,\n ch;\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n\n ch = state.input.charCodeAt(state.position);\n\n while (ch !== 0) {\n\n if (ch !== 0x2D/* - */) {\n break;\n }\n\n following = state.input.charCodeAt(state.position + 1);\n\n if (!is_WS_OR_EOL(following)) {\n break;\n }\n\n detected = true;\n state.position++;\n\n if (skipSeparationSpace(state, true, -1)) {\n if (state.lineIndent <= nodeIndent) {\n _result.push(null);\n ch = state.input.charCodeAt(state.position);\n continue;\n }\n }\n\n _line = state.line;\n composeNode(state, nodeIndent, CONTEXT_BLOCK_IN, false, true);\n _result.push(state.result);\n skipSeparationSpace(state, true, -1);\n\n ch = state.input.charCodeAt(state.position);\n\n if ((state.line === _line || state.lineIndent > nodeIndent) && (ch !== 0)) {\n throwError(state, 'bad indentation of a sequence entry');\n } else if (state.lineIndent < nodeIndent) {\n break;\n }\n }\n\n if (detected) {\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = 'sequence';\n state.result = _result;\n return true;\n }\n return false;\n}\n\nfunction readBlockMapping(state, nodeIndent, flowIndent) {\n var following,\n allowCompact,\n _line,\n _pos,\n _tag = state.tag,\n _anchor = state.anchor,\n _result = {},\n overridableKeys = {},\n keyTag = null,\n keyNode = null,\n valueNode = null,\n atExplicitKey = false,\n detected = false,\n ch;\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n\n ch = state.input.charCodeAt(state.position);\n\n while (ch !== 0) {\n following = state.input.charCodeAt(state.position + 1);\n _line = state.line; // Save the current line.\n _pos = state.position;\n\n //\n // Explicit notation case. There are two separate blocks:\n // first for the key (denoted by \"?\") and second for the value (denoted by \":\")\n //\n if ((ch === 0x3F/* ? */ || ch === 0x3A/* : */) && is_WS_OR_EOL(following)) {\n\n if (ch === 0x3F/* ? */) {\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null);\n keyTag = keyNode = valueNode = null;\n }\n\n detected = true;\n atExplicitKey = true;\n allowCompact = true;\n\n } else if (atExplicitKey) {\n // i.e. 0x3A/* : */ === character after the explicit key.\n atExplicitKey = false;\n allowCompact = true;\n\n } else {\n throwError(state, 'incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line');\n }\n\n state.position += 1;\n ch = following;\n\n //\n // Implicit notation case. Flow-style node as the key first, then \":\", and the value.\n //\n } else if (composeNode(state, flowIndent, CONTEXT_FLOW_OUT, false, true)) {\n\n if (state.line === _line) {\n ch = state.input.charCodeAt(state.position);\n\n while (is_WHITE_SPACE(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (ch === 0x3A/* : */) {\n ch = state.input.charCodeAt(++state.position);\n\n if (!is_WS_OR_EOL(ch)) {\n throwError(state, 'a whitespace character is expected after the key-value separator within a block mapping');\n }\n\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null);\n keyTag = keyNode = valueNode = null;\n }\n\n detected = true;\n atExplicitKey = false;\n allowCompact = false;\n keyTag = state.tag;\n keyNode = state.result;\n\n } else if (detected) {\n throwError(state, 'can not read an implicit mapping pair; a colon is missed');\n\n } else {\n state.tag = _tag;\n state.anchor = _anchor;\n return true; // Keep the result of `composeNode`.\n }\n\n } else if (detected) {\n throwError(state, 'can not read a block mapping entry; a multiline key may not be an implicit key');\n\n } else {\n state.tag = _tag;\n state.anchor = _anchor;\n return true; // Keep the result of `composeNode`.\n }\n\n } else {\n break; // Reading is done. Go to the epilogue.\n }\n\n //\n // Common reading code for both explicit and implicit notations.\n //\n if (state.line === _line || state.lineIndent > nodeIndent) {\n if (composeNode(state, nodeIndent, CONTEXT_BLOCK_OUT, true, allowCompact)) {\n if (atExplicitKey) {\n keyNode = state.result;\n } else {\n valueNode = state.result;\n }\n }\n\n if (!atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _line, _pos);\n keyTag = keyNode = valueNode = null;\n }\n\n skipSeparationSpace(state, true, -1);\n ch = state.input.charCodeAt(state.position);\n }\n\n if (state.lineIndent > nodeIndent && (ch !== 0)) {\n throwError(state, 'bad indentation of a mapping entry');\n } else if (state.lineIndent < nodeIndent) {\n break;\n }\n }\n\n //\n // Epilogue.\n //\n\n // Special case: last mapping's node contains only the key in explicit notation.\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null);\n }\n\n // Expose the resulting mapping.\n if (detected) {\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = 'mapping';\n state.result = _result;\n }\n\n return detected;\n}\n\nfunction readTagProperty(state) {\n var _position,\n isVerbatim = false,\n isNamed = false,\n tagHandle,\n tagName,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x21/* ! */) return false;\n\n if (state.tag !== null) {\n throwError(state, 'duplication of a tag property');\n }\n\n ch = state.input.charCodeAt(++state.position);\n\n if (ch === 0x3C/* < */) {\n isVerbatim = true;\n ch = state.input.charCodeAt(++state.position);\n\n } else if (ch === 0x21/* ! */) {\n isNamed = true;\n tagHandle = '!!';\n ch = state.input.charCodeAt(++state.position);\n\n } else {\n tagHandle = '!';\n }\n\n _position = state.position;\n\n if (isVerbatim) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (ch !== 0 && ch !== 0x3E/* > */);\n\n if (state.position < state.length) {\n tagName = state.input.slice(_position, state.position);\n ch = state.input.charCodeAt(++state.position);\n } else {\n throwError(state, 'unexpected end of the stream within a verbatim tag');\n }\n } else {\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n\n if (ch === 0x21/* ! */) {\n if (!isNamed) {\n tagHandle = state.input.slice(_position - 1, state.position + 1);\n\n if (!PATTERN_TAG_HANDLE.test(tagHandle)) {\n throwError(state, 'named tag handle cannot contain such characters');\n }\n\n isNamed = true;\n _position = state.position + 1;\n } else {\n throwError(state, 'tag suffix cannot contain exclamation marks');\n }\n }\n\n ch = state.input.charCodeAt(++state.position);\n }\n\n tagName = state.input.slice(_position, state.position);\n\n if (PATTERN_FLOW_INDICATORS.test(tagName)) {\n throwError(state, 'tag suffix cannot contain flow indicator characters');\n }\n }\n\n if (tagName && !PATTERN_TAG_URI.test(tagName)) {\n throwError(state, 'tag name cannot contain such characters: ' + tagName);\n }\n\n if (isVerbatim) {\n state.tag = tagName;\n\n } else if (_hasOwnProperty.call(state.tagMap, tagHandle)) {\n state.tag = state.tagMap[tagHandle] + tagName;\n\n } else if (tagHandle === '!') {\n state.tag = '!' + tagName;\n\n } else if (tagHandle === '!!') {\n state.tag = 'tag:yaml.org,2002:' + tagName;\n\n } else {\n throwError(state, 'undeclared tag handle \"' + tagHandle + '\"');\n }\n\n return true;\n}\n\nfunction readAnchorProperty(state) {\n var _position,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x26/* & */) return false;\n\n if (state.anchor !== null) {\n throwError(state, 'duplication of an anchor property');\n }\n\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (state.position === _position) {\n throwError(state, 'name of an anchor node must contain at least one character');\n }\n\n state.anchor = state.input.slice(_position, state.position);\n return true;\n}\n\nfunction readAlias(state) {\n var _position, alias,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x2A/* * */) return false;\n\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (state.position === _position) {\n throwError(state, 'name of an alias node must contain at least one character');\n }\n\n alias = state.input.slice(_position, state.position);\n\n if (!_hasOwnProperty.call(state.anchorMap, alias)) {\n throwError(state, 'unidentified alias \"' + alias + '\"');\n }\n\n state.result = state.anchorMap[alias];\n skipSeparationSpace(state, true, -1);\n return true;\n}\n\nfunction composeNode(state, parentIndent, nodeContext, allowToSeek, allowCompact) {\n var allowBlockStyles,\n allowBlockScalars,\n allowBlockCollections,\n indentStatus = 1, // 1: this>parent, 0: this=parent, -1: this<parent\n atNewLine = false,\n hasContent = false,\n typeIndex,\n typeQuantity,\n type,\n flowIndent,\n blockIndent;\n\n if (state.listener !== null) {\n state.listener('open', state);\n }\n\n state.tag = null;\n state.anchor = null;\n state.kind = null;\n state.result = null;\n\n allowBlockStyles = allowBlockScalars = allowBlockCollections =\n CONTEXT_BLOCK_OUT === nodeContext ||\n CONTEXT_BLOCK_IN === nodeContext;\n\n if (allowToSeek) {\n if (skipSeparationSpace(state, true, -1)) {\n atNewLine = true;\n\n if (state.lineIndent > parentIndent) {\n indentStatus = 1;\n } else if (state.lineIndent === parentIndent) {\n indentStatus = 0;\n } else if (state.lineIndent < parentIndent) {\n indentStatus = -1;\n }\n }\n }\n\n if (indentStatus === 1) {\n while (readTagProperty(state) || readAnchorProperty(state)) {\n if (skipSeparationSpace(state, true, -1)) {\n atNewLine = true;\n allowBlockCollections = allowBlockStyles;\n\n if (state.lineIndent > parentIndent) {\n indentStatus = 1;\n } else if (state.lineIndent === parentIndent) {\n indentStatus = 0;\n } else if (state.lineIndent < parentIndent) {\n indentStatus = -1;\n }\n } else {\n allowBlockCollections = false;\n }\n }\n }\n\n if (allowBlockCollections) {\n allowBlockCollections = atNewLine || allowCompact;\n }\n\n if (indentStatus === 1 || CONTEXT_BLOCK_OUT === nodeContext) {\n if (CONTEXT_FLOW_IN === nodeContext || CONTEXT_FLOW_OUT === nodeContext) {\n flowIndent = parentIndent;\n } else {\n flowIndent = parentIndent + 1;\n }\n\n blockIndent = state.position - state.lineStart;\n\n if (indentStatus === 1) {\n if (allowBlockCollections &&\n (readBlockSequence(state, blockIndent) ||\n readBlockMapping(state, blockIndent, flowIndent)) ||\n readFlowCollection(state, flowIndent)) {\n hasContent = true;\n } else {\n if ((allowBlockScalars && readBlockScalar(state, flowIndent)) ||\n readSingleQuotedScalar(state, flowIndent) ||\n readDoubleQuotedScalar(state, flowIndent)) {\n hasContent = true;\n\n } else if (readAlias(state)) {\n hasContent = true;\n\n if (state.tag !== null || state.anchor !== null) {\n throwError(state, 'alias node should not have any properties');\n }\n\n } else if (readPlainScalar(state, flowIndent, CONTEXT_FLOW_IN === nodeContext)) {\n hasContent = true;\n\n if (state.tag === null) {\n state.tag = '?';\n }\n }\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n }\n } else if (indentStatus === 0) {\n // Special case: block sequences are allowed to have same indentation level as the parent.\n // http://www.yaml.org/spec/1.2/spec.html#id2799784\n hasContent = allowBlockCollections && readBlockSequence(state, blockIndent);\n }\n }\n\n if (state.tag !== null && state.tag !== '!') {\n if (state.tag === '?') {\n // Implicit resolving is not allowed for non-scalar types, and '?'\n // non-specific tag is only automatically assigned to plain scalars.\n //\n // We only need to check kind conformity in case user explicitly assigns '?'\n // tag, for example like this: \"!<?> [0]\"\n //\n if (state.result !== null && state.kind !== 'scalar') {\n throwError(state, 'unacceptable node kind for !<?> tag; it should be \"scalar\", not \"' + state.kind + '\"');\n }\n\n for (typeIndex = 0, typeQuantity = state.implicitTypes.length; typeIndex < typeQuantity; typeIndex += 1) {\n type = state.implicitTypes[typeIndex];\n\n if (type.resolve(state.result)) { // `state.result` updated in resolver if matched\n state.result = type.construct(state.result);\n state.tag = type.tag;\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n break;\n }\n }\n } else if (_hasOwnProperty.call(state.typeMap[state.kind || 'fallback'], state.tag)) {\n type = state.typeMap[state.kind || 'fallback'][state.tag];\n\n if (state.result !== null && type.kind !== state.kind) {\n throwError(state, 'unacceptable node kind for !<' + state.tag + '> tag; it should be \"' + type.kind + '\", not \"' + state.kind + '\"');\n }\n\n if (!type.resolve(state.result)) { // `state.result` updated in resolver if matched\n throwError(state, 'cannot resolve a node with !<' + state.tag + '> explicit tag');\n } else {\n state.result = type.construct(state.result);\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n }\n } else {\n throwError(state, 'unknown tag !<' + state.tag + '>');\n }\n }\n\n if (state.listener !== null) {\n state.listener('close', state);\n }\n return state.tag !== null || state.anchor !== null || hasContent;\n}\n\nfunction readDocument(state) {\n var documentStart = state.position,\n _position,\n directiveName,\n directiveArgs,\n hasDirectives = false,\n ch;\n\n state.version = null;\n state.checkLineBreaks = state.legacy;\n state.tagMap = {};\n state.anchorMap = {};\n\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n skipSeparationSpace(state, true, -1);\n\n ch = state.input.charCodeAt(state.position);\n\n if (state.lineIndent > 0 || ch !== 0x25/* % */) {\n break;\n }\n\n hasDirectives = true;\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n directiveName = state.input.slice(_position, state.position);\n directiveArgs = [];\n\n if (directiveName.length < 1) {\n throwError(state, 'directive name must not be less than one character in length');\n }\n\n while (ch !== 0) {\n while (is_WHITE_SPACE(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (ch === 0x23/* # */) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (ch !== 0 && !is_EOL(ch));\n break;\n }\n\n if (is_EOL(ch)) break;\n\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n directiveArgs.push(state.input.slice(_position, state.position));\n }\n\n if (ch !== 0) readLineBreak(state);\n\n if (_hasOwnProperty.call(directiveHandlers, directiveName)) {\n directiveHandlers[directiveName](state, directiveName, directiveArgs);\n } else {\n throwWarning(state, 'unknown document directive \"' + directiveName + '\"');\n }\n }\n\n skipSeparationSpace(state, true, -1);\n\n if (state.lineIndent === 0 &&\n state.input.charCodeAt(state.position) === 0x2D/* - */ &&\n state.input.charCodeAt(state.position + 1) === 0x2D/* - */ &&\n state.input.charCodeAt(state.position + 2) === 0x2D/* - */) {\n state.position += 3;\n skipSeparationSpace(state, true, -1);\n\n } else if (hasDirectives) {\n throwError(state, 'directives end mark is expected');\n }\n\n composeNode(state, state.lineIndent - 1, CONTEXT_BLOCK_OUT, false, true);\n skipSeparationSpace(state, true, -1);\n\n if (state.checkLineBreaks &&\n PATTERN_NON_ASCII_LINE_BREAKS.test(state.input.slice(documentStart, state.position))) {\n throwWarning(state, 'non-ASCII line breaks are interpreted as content');\n }\n\n state.documents.push(state.result);\n\n if (state.position === state.lineStart && testDocumentSeparator(state)) {\n\n if (state.input.charCodeAt(state.position) === 0x2E/* . */) {\n state.position += 3;\n skipSeparationSpace(state, true, -1);\n }\n return;\n }\n\n if (state.position < (state.length - 1)) {\n throwError(state, 'end of the stream or a document separator is expected');\n } else {\n return;\n }\n}\n\n\nfunction loadDocuments(input, options) {\n input = String(input);\n options = options || {};\n\n if (input.length !== 0) {\n\n // Add tailing `\\n` if not exists\n if (input.charCodeAt(input.length - 1) !== 0x0A/* LF */ &&\n input.charCodeAt(input.length - 1) !== 0x0D/* CR */) {\n input += '\\n';\n }\n\n // Strip BOM\n if (input.charCodeAt(0) === 0xFEFF) {\n input = input.slice(1);\n }\n }\n\n var state = new State(input, options);\n\n var nullpos = input.indexOf('\\0');\n\n if (nullpos !== -1) {\n state.position = nullpos;\n throwError(state, 'null byte is not allowed in input');\n }\n\n // Use 0 as string terminator. That significantly simplifies bounds check.\n state.input += '\\0';\n\n while (state.input.charCodeAt(state.position) === 0x20/* Space */) {\n state.lineIndent += 1;\n state.position += 1;\n }\n\n while (state.position < (state.length - 1)) {\n readDocument(state);\n }\n\n return state.documents;\n}\n\n\nfunction loadAll(input, iterator, options) {\n if (iterator !== null && typeof iterator === 'object' && typeof options === 'undefined') {\n options = iterator;\n iterator = null;\n }\n\n var documents = loadDocuments(input, options);\n\n if (typeof iterator !== 'function') {\n return documents;\n }\n\n for (var index = 0, length = documents.length; index < length; index += 1) {\n iterator(documents[index]);\n }\n}\n\n\nfunction load(input, options) {\n var documents = loadDocuments(input, options);\n\n if (documents.length === 0) {\n /*eslint-disable no-undefined*/\n return undefined;\n } else if (documents.length === 1) {\n return documents[0];\n }\n throw new YAMLException('expected a single document in the stream, but found more');\n}\n\n\nfunction safeLoadAll(input, iterator, options) {\n if (typeof iterator === 'object' && iterator !== null && typeof options === 'undefined') {\n options = iterator;\n iterator = null;\n }\n\n return loadAll(input, iterator, common.extend({ schema: DEFAULT_SAFE_SCHEMA }, options));\n}\n\n\nfunction safeLoad(input, options) {\n return load(input, common.extend({ schema: DEFAULT_SAFE_SCHEMA }, options));\n}\n\n\nmodule.exports.loadAll = loadAll;\nmodule.exports.load = load;\nmodule.exports.safeLoadAll = safeLoadAll;\nmodule.exports.safeLoad = safeLoad;\n","'use strict';\n\n/*eslint-disable no-use-before-define*/\n\nvar common = require('./common');\nvar YAMLException = require('./exception');\nvar DEFAULT_FULL_SCHEMA = require('./schema/default_full');\nvar DEFAULT_SAFE_SCHEMA = require('./schema/default_safe');\n\nvar _toString = Object.prototype.toString;\nvar _hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar CHAR_TAB = 0x09; /* Tab */\nvar CHAR_LINE_FEED = 0x0A; /* LF */\nvar CHAR_CARRIAGE_RETURN = 0x0D; /* CR */\nvar CHAR_SPACE = 0x20; /* Space */\nvar CHAR_EXCLAMATION = 0x21; /* ! */\nvar CHAR_DOUBLE_QUOTE = 0x22; /* \" */\nvar CHAR_SHARP = 0x23; /* # */\nvar CHAR_PERCENT = 0x25; /* % */\nvar CHAR_AMPERSAND = 0x26; /* & */\nvar CHAR_SINGLE_QUOTE = 0x27; /* ' */\nvar CHAR_ASTERISK = 0x2A; /* * */\nvar CHAR_COMMA = 0x2C; /* , */\nvar CHAR_MINUS = 0x2D; /* - */\nvar CHAR_COLON = 0x3A; /* : */\nvar CHAR_EQUALS = 0x3D; /* = */\nvar CHAR_GREATER_THAN = 0x3E; /* > */\nvar CHAR_QUESTION = 0x3F; /* ? */\nvar CHAR_COMMERCIAL_AT = 0x40; /* @ */\nvar CHAR_LEFT_SQUARE_BRACKET = 0x5B; /* [ */\nvar CHAR_RIGHT_SQUARE_BRACKET = 0x5D; /* ] */\nvar CHAR_GRAVE_ACCENT = 0x60; /* ` */\nvar CHAR_LEFT_CURLY_BRACKET = 0x7B; /* { */\nvar CHAR_VERTICAL_LINE = 0x7C; /* | */\nvar CHAR_RIGHT_CURLY_BRACKET = 0x7D; /* } */\n\nvar ESCAPE_SEQUENCES = {};\n\nESCAPE_SEQUENCES[0x00] = '\\\\0';\nESCAPE_SEQUENCES[0x07] = '\\\\a';\nESCAPE_SEQUENCES[0x08] = '\\\\b';\nESCAPE_SEQUENCES[0x09] = '\\\\t';\nESCAPE_SEQUENCES[0x0A] = '\\\\n';\nESCAPE_SEQUENCES[0x0B] = '\\\\v';\nESCAPE_SEQUENCES[0x0C] = '\\\\f';\nESCAPE_SEQUENCES[0x0D] = '\\\\r';\nESCAPE_SEQUENCES[0x1B] = '\\\\e';\nESCAPE_SEQUENCES[0x22] = '\\\\\"';\nESCAPE_SEQUENCES[0x5C] = '\\\\\\\\';\nESCAPE_SEQUENCES[0x85] = '\\\\N';\nESCAPE_SEQUENCES[0xA0] = '\\\\_';\nESCAPE_SEQUENCES[0x2028] = '\\\\L';\nESCAPE_SEQUENCES[0x2029] = '\\\\P';\n\nvar DEPRECATED_BOOLEANS_SYNTAX = [\n 'y', 'Y', 'yes', 'Yes', 'YES', 'on', 'On', 'ON',\n 'n', 'N', 'no', 'No', 'NO', 'off', 'Off', 'OFF'\n];\n\nfunction compileStyleMap(schema, map) {\n var result, keys, index, length, tag, style, type;\n\n if (map === null) return {};\n\n result = {};\n keys = Object.keys(map);\n\n for (index = 0, length = keys.length; index < length; index += 1) {\n tag = keys[index];\n style = String(map[tag]);\n\n if (tag.slice(0, 2) === '!!') {\n tag = 'tag:yaml.org,2002:' + tag.slice(2);\n }\n type = schema.compiledTypeMap['fallback'][tag];\n\n if (type && _hasOwnProperty.call(type.styleAliases, style)) {\n style = type.styleAliases[style];\n }\n\n result[tag] = style;\n }\n\n return result;\n}\n\nfunction encodeHex(character) {\n var string, handle, length;\n\n string = character.toString(16).toUpperCase();\n\n if (character <= 0xFF) {\n handle = 'x';\n length = 2;\n } else if (character <= 0xFFFF) {\n handle = 'u';\n length = 4;\n } else if (character <= 0xFFFFFFFF) {\n handle = 'U';\n length = 8;\n } else {\n throw new YAMLException('code point within a string may not be greater than 0xFFFFFFFF');\n }\n\n return '\\\\' + handle + common.repeat('0', length - string.length) + string;\n}\n\nfunction State(options) {\n this.schema = options['schema'] || DEFAULT_FULL_SCHEMA;\n this.indent = Math.max(1, (options['indent'] || 2));\n this.noArrayIndent = options['noArrayIndent'] || false;\n this.skipInvalid = options['skipInvalid'] || false;\n this.flowLevel = (common.isNothing(options['flowLevel']) ? -1 : options['flowLevel']);\n this.styleMap = compileStyleMap(this.schema, options['styles'] || null);\n this.sortKeys = options['sortKeys'] || false;\n this.lineWidth = options['lineWidth'] || 80;\n this.noRefs = options['noRefs'] || false;\n this.noCompatMode = options['noCompatMode'] || false;\n this.condenseFlow = options['condenseFlow'] || false;\n\n this.implicitTypes = this.schema.compiledImplicit;\n this.explicitTypes = this.schema.compiledExplicit;\n\n this.tag = null;\n this.result = '';\n\n this.duplicates = [];\n this.usedDuplicates = null;\n}\n\n// Indents every line in a string. Empty lines (\\n only) are not indented.\nfunction indentString(string, spaces) {\n var ind = common.repeat(' ', spaces),\n position = 0,\n next = -1,\n result = '',\n line,\n length = string.length;\n\n while (position < length) {\n next = string.indexOf('\\n', position);\n if (next === -1) {\n line = string.slice(position);\n position = length;\n } else {\n line = string.slice(position, next + 1);\n position = next + 1;\n }\n\n if (line.length && line !== '\\n') result += ind;\n\n result += line;\n }\n\n return result;\n}\n\nfunction generateNextLine(state, level) {\n return '\\n' + common.repeat(' ', state.indent * level);\n}\n\nfunction testImplicitResolving(state, str) {\n var index, length, type;\n\n for (index = 0, length = state.implicitTypes.length; index < length; index += 1) {\n type = state.implicitTypes[index];\n\n if (type.resolve(str)) {\n return true;\n }\n }\n\n return false;\n}\n\n// [33] s-white ::= s-space | s-tab\nfunction isWhitespace(c) {\n return c === CHAR_SPACE || c === CHAR_TAB;\n}\n\n// Returns true if the character can be printed without escaping.\n// From YAML 1.2: \"any allowed characters known to be non-printable\n// should also be escaped. [However,] This isn’t mandatory\"\n// Derived from nb-char - \\t - #x85 - #xA0 - #x2028 - #x2029.\nfunction isPrintable(c) {\n return (0x00020 <= c && c <= 0x00007E)\n || ((0x000A1 <= c && c <= 0x00D7FF) && c !== 0x2028 && c !== 0x2029)\n || ((0x0E000 <= c && c <= 0x00FFFD) && c !== 0xFEFF /* BOM */)\n || (0x10000 <= c && c <= 0x10FFFF);\n}\n\n// [34] ns-char ::= nb-char - s-white\n// [27] nb-char ::= c-printable - b-char - c-byte-order-mark\n// [26] b-char ::= b-line-feed | b-carriage-return\n// [24] b-line-feed ::= #xA /* LF */\n// [25] b-carriage-return ::= #xD /* CR */\n// [3] c-byte-order-mark ::= #xFEFF\nfunction isNsChar(c) {\n return isPrintable(c) && !isWhitespace(c)\n // byte-order-mark\n && c !== 0xFEFF\n // b-char\n && c !== CHAR_CARRIAGE_RETURN\n && c !== CHAR_LINE_FEED;\n}\n\n// Simplified test for values allowed after the first character in plain style.\nfunction isPlainSafe(c, prev) {\n // Uses a subset of nb-char - c-flow-indicator - \":\" - \"#\"\n // where nb-char ::= c-printable - b-char - c-byte-order-mark.\n return isPrintable(c) && c !== 0xFEFF\n // - c-flow-indicator\n && c !== CHAR_COMMA\n && c !== CHAR_LEFT_SQUARE_BRACKET\n && c !== CHAR_RIGHT_SQUARE_BRACKET\n && c !== CHAR_LEFT_CURLY_BRACKET\n && c !== CHAR_RIGHT_CURLY_BRACKET\n // - \":\" - \"#\"\n // /* An ns-char preceding */ \"#\"\n && c !== CHAR_COLON\n && ((c !== CHAR_SHARP) || (prev && isNsChar(prev)));\n}\n\n// Simplified test for values allowed as the first character in plain style.\nfunction isPlainSafeFirst(c) {\n // Uses a subset of ns-char - c-indicator\n // where ns-char = nb-char - s-white.\n return isPrintable(c) && c !== 0xFEFF\n && !isWhitespace(c) // - s-white\n // - (c-indicator ::=\n // “-” | “?” | “:” | “,” | “[” | “]” | “{” | “}”\n && c !== CHAR_MINUS\n && c !== CHAR_QUESTION\n && c !== CHAR_COLON\n && c !== CHAR_COMMA\n && c !== CHAR_LEFT_SQUARE_BRACKET\n && c !== CHAR_RIGHT_SQUARE_BRACKET\n && c !== CHAR_LEFT_CURLY_BRACKET\n && c !== CHAR_RIGHT_CURLY_BRACKET\n // | “#” | “&” | “*” | “!” | “|” | “=” | “>” | “'” | “\"”\n && c !== CHAR_SHARP\n && c !== CHAR_AMPERSAND\n && c !== CHAR_ASTERISK\n && c !== CHAR_EXCLAMATION\n && c !== CHAR_VERTICAL_LINE\n && c !== CHAR_EQUALS\n && c !== CHAR_GREATER_THAN\n && c !== CHAR_SINGLE_QUOTE\n && c !== CHAR_DOUBLE_QUOTE\n // | “%” | “@” | “`”)\n && c !== CHAR_PERCENT\n && c !== CHAR_COMMERCIAL_AT\n && c !== CHAR_GRAVE_ACCENT;\n}\n\n// Determines whether block indentation indicator is required.\nfunction needIndentIndicator(string) {\n var leadingSpaceRe = /^\\n* /;\n return leadingSpaceRe.test(string);\n}\n\nvar STYLE_PLAIN = 1,\n STYLE_SINGLE = 2,\n STYLE_LITERAL = 3,\n STYLE_FOLDED = 4,\n STYLE_DOUBLE = 5;\n\n// Determines which scalar styles are possible and returns the preferred style.\n// lineWidth = -1 => no limit.\n// Pre-conditions: str.length > 0.\n// Post-conditions:\n// STYLE_PLAIN or STYLE_SINGLE => no \\n are in the string.\n// STYLE_LITERAL => no lines are suitable for folding (or lineWidth is -1).\n// STYLE_FOLDED => a line > lineWidth and can be folded (and lineWidth != -1).\nfunction chooseScalarStyle(string, singleLineOnly, indentPerLevel, lineWidth, testAmbiguousType) {\n var i;\n var char, prev_char;\n var hasLineBreak = false;\n var hasFoldableLine = false; // only checked if shouldTrackWidth\n var shouldTrackWidth = lineWidth !== -1;\n var previousLineBreak = -1; // count the first line correctly\n var plain = isPlainSafeFirst(string.charCodeAt(0))\n && !isWhitespace(string.charCodeAt(string.length - 1));\n\n if (singleLineOnly) {\n // Case: no block styles.\n // Check for disallowed characters to rule out plain and single.\n for (i = 0; i < string.length; i++) {\n char = string.charCodeAt(i);\n if (!isPrintable(char)) {\n return STYLE_DOUBLE;\n }\n prev_char = i > 0 ? string.charCodeAt(i - 1) : null;\n plain = plain && isPlainSafe(char, prev_char);\n }\n } else {\n // Case: block styles permitted.\n for (i = 0; i < string.length; i++) {\n char = string.charCodeAt(i);\n if (char === CHAR_LINE_FEED) {\n hasLineBreak = true;\n // Check if any line can be folded.\n if (shouldTrackWidth) {\n hasFoldableLine = hasFoldableLine ||\n // Foldable line = too long, and not more-indented.\n (i - previousLineBreak - 1 > lineWidth &&\n string[previousLineBreak + 1] !== ' ');\n previousLineBreak = i;\n }\n } else if (!isPrintable(char)) {\n return STYLE_DOUBLE;\n }\n prev_char = i > 0 ? string.charCodeAt(i - 1) : null;\n plain = plain && isPlainSafe(char, prev_char);\n }\n // in case the end is missing a \\n\n hasFoldableLine = hasFoldableLine || (shouldTrackWidth &&\n (i - previousLineBreak - 1 > lineWidth &&\n string[previousLineBreak + 1] !== ' '));\n }\n // Although every style can represent \\n without escaping, prefer block styles\n // for multiline, since they're more readable and they don't add empty lines.\n // Also prefer folding a super-long line.\n if (!hasLineBreak && !hasFoldableLine) {\n // Strings interpretable as another type have to be quoted;\n // e.g. the string 'true' vs. the boolean true.\n return plain && !testAmbiguousType(string)\n ? STYLE_PLAIN : STYLE_SINGLE;\n }\n // Edge case: block indentation indicator can only have one digit.\n if (indentPerLevel > 9 && needIndentIndicator(string)) {\n return STYLE_DOUBLE;\n }\n // At this point we know block styles are valid.\n // Prefer literal style unless we want to fold.\n return hasFoldableLine ? STYLE_FOLDED : STYLE_LITERAL;\n}\n\n// Note: line breaking/folding is implemented for only the folded style.\n// NB. We drop the last trailing newline (if any) of a returned block scalar\n// since the dumper adds its own newline. This always works:\n// • No ending newline => unaffected; already using strip \"-\" chomping.\n// • Ending newline => removed then restored.\n// Importantly, this keeps the \"+\" chomp indicator from gaining an extra line.\nfunction writeScalar(state, string, level, iskey) {\n state.dump = (function () {\n if (string.length === 0) {\n return \"''\";\n }\n if (!state.noCompatMode &&\n DEPRECATED_BOOLEANS_SYNTAX.indexOf(string) !== -1) {\n return \"'\" + string + \"'\";\n }\n\n var indent = state.indent * Math.max(1, level); // no 0-indent scalars\n // As indentation gets deeper, let the width decrease monotonically\n // to the lower bound min(state.lineWidth, 40).\n // Note that this implies\n // state.lineWidth ≤ 40 + state.indent: width is fixed at the lower bound.\n // state.lineWidth > 40 + state.indent: width decreases until the lower bound.\n // This behaves better than a constant minimum width which disallows narrower options,\n // or an indent threshold which causes the width to suddenly increase.\n var lineWidth = state.lineWidth === -1\n ? -1 : Math.max(Math.min(state.lineWidth, 40), state.lineWidth - indent);\n\n // Without knowing if keys are implicit/explicit, assume implicit for safety.\n var singleLineOnly = iskey\n // No block styles in flow mode.\n || (state.flowLevel > -1 && level >= state.flowLevel);\n function testAmbiguity(string) {\n return testImplicitResolving(state, string);\n }\n\n switch (chooseScalarStyle(string, singleLineOnly, state.indent, lineWidth, testAmbiguity)) {\n case STYLE_PLAIN:\n return string;\n case STYLE_SINGLE:\n return \"'\" + string.replace(/'/g, \"''\") + \"'\";\n case STYLE_LITERAL:\n return '|' + blockHeader(string, state.indent)\n + dropEndingNewline(indentString(string, indent));\n case STYLE_FOLDED:\n return '>' + blockHeader(string, state.indent)\n + dropEndingNewline(indentString(foldString(string, lineWidth), indent));\n case STYLE_DOUBLE:\n return '\"' + escapeString(string, lineWidth) + '\"';\n default:\n throw new YAMLException('impossible error: invalid scalar style');\n }\n }());\n}\n\n// Pre-conditions: string is valid for a block scalar, 1 <= indentPerLevel <= 9.\nfunction blockHeader(string, indentPerLevel) {\n var indentIndicator = needIndentIndicator(string) ? String(indentPerLevel) : '';\n\n // note the special case: the string '\\n' counts as a \"trailing\" empty line.\n var clip = string[string.length - 1] === '\\n';\n var keep = clip && (string[string.length - 2] === '\\n' || string === '\\n');\n var chomp = keep ? '+' : (clip ? '' : '-');\n\n return indentIndicator + chomp + '\\n';\n}\n\n// (See the note for writeScalar.)\nfunction dropEndingNewline(string) {\n return string[string.length - 1] === '\\n' ? string.slice(0, -1) : string;\n}\n\n// Note: a long line without a suitable break point will exceed the width limit.\n// Pre-conditions: every char in str isPrintable, str.length > 0, width > 0.\nfunction foldString(string, width) {\n // In folded style, $k$ consecutive newlines output as $k+1$ newlines—\n // unless they're before or after a more-indented line, or at the very\n // beginning or end, in which case $k$ maps to $k$.\n // Therefore, parse each chunk as newline(s) followed by a content line.\n var lineRe = /(\\n+)([^\\n]*)/g;\n\n // first line (possibly an empty line)\n var result = (function () {\n var nextLF = string.indexOf('\\n');\n nextLF = nextLF !== -1 ? nextLF : string.length;\n lineRe.lastIndex = nextLF;\n return foldLine(string.slice(0, nextLF), width);\n }());\n // If we haven't reached the first content line yet, don't add an extra \\n.\n var prevMoreIndented = string[0] === '\\n' || string[0] === ' ';\n var moreIndented;\n\n // rest of the lines\n var match;\n while ((match = lineRe.exec(string))) {\n var prefix = match[1], line = match[2];\n moreIndented = (line[0] === ' ');\n result += prefix\n + (!prevMoreIndented && !moreIndented && line !== ''\n ? '\\n' : '')\n + foldLine(line, width);\n prevMoreIndented = moreIndented;\n }\n\n return result;\n}\n\n// Greedy line breaking.\n// Picks the longest line under the limit each time,\n// otherwise settles for the shortest line over the limit.\n// NB. More-indented lines *cannot* be folded, as that would add an extra \\n.\nfunction foldLine(line, width) {\n if (line === '' || line[0] === ' ') return line;\n\n // Since a more-indented line adds a \\n, breaks can't be followed by a space.\n var breakRe = / [^ ]/g; // note: the match index will always be <= length-2.\n var match;\n // start is an inclusive index. end, curr, and next are exclusive.\n var start = 0, end, curr = 0, next = 0;\n var result = '';\n\n // Invariants: 0 <= start <= length-1.\n // 0 <= curr <= next <= max(0, length-2). curr - start <= width.\n // Inside the loop:\n // A match implies length >= 2, so curr and next are <= length-2.\n while ((match = breakRe.exec(line))) {\n next = match.index;\n // maintain invariant: curr - start <= width\n if (next - start > width) {\n end = (curr > start) ? curr : next; // derive end <= length-2\n result += '\\n' + line.slice(start, end);\n // skip the space that was output as \\n\n start = end + 1; // derive start <= length-1\n }\n curr = next;\n }\n\n // By the invariants, start <= length-1, so there is something left over.\n // It is either the whole string or a part starting from non-whitespace.\n result += '\\n';\n // Insert a break if the remainder is too long and there is a break available.\n if (line.length - start > width && curr > start) {\n result += line.slice(start, curr) + '\\n' + line.slice(curr + 1);\n } else {\n result += line.slice(start);\n }\n\n return result.slice(1); // drop extra \\n joiner\n}\n\n// Escapes a double-quoted string.\nfunction escapeString(string) {\n var result = '';\n var char, nextChar;\n var escapeSeq;\n\n for (var i = 0; i < string.length; i++) {\n char = string.charCodeAt(i);\n // Check for surrogate pairs (reference Unicode 3.0 section \"3.7 Surrogates\").\n if (char >= 0xD800 && char <= 0xDBFF/* high surrogate */) {\n nextChar = string.charCodeAt(i + 1);\n if (nextChar >= 0xDC00 && nextChar <= 0xDFFF/* low surrogate */) {\n // Combine the surrogate pair and store it escaped.\n result += encodeHex((char - 0xD800) * 0x400 + nextChar - 0xDC00 + 0x10000);\n // Advance index one extra since we already used that char here.\n i++; continue;\n }\n }\n escapeSeq = ESCAPE_SEQUENCES[char];\n result += !escapeSeq && isPrintable(char)\n ? string[i]\n : escapeSeq || encodeHex(char);\n }\n\n return result;\n}\n\nfunction writeFlowSequence(state, level, object) {\n var _result = '',\n _tag = state.tag,\n index,\n length;\n\n for (index = 0, length = object.length; index < length; index += 1) {\n // Write only valid elements.\n if (writeNode(state, level, object[index], false, false)) {\n if (index !== 0) _result += ',' + (!state.condenseFlow ? ' ' : '');\n _result += state.dump;\n }\n }\n\n state.tag = _tag;\n state.dump = '[' + _result + ']';\n}\n\nfunction writeBlockSequence(state, level, object, compact) {\n var _result = '',\n _tag = state.tag,\n index,\n length;\n\n for (index = 0, length = object.length; index < length; index += 1) {\n // Write only valid elements.\n if (writeNode(state, level + 1, object[index], true, true)) {\n if (!compact || index !== 0) {\n _result += generateNextLine(state, level);\n }\n\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n _result += '-';\n } else {\n _result += '- ';\n }\n\n _result += state.dump;\n }\n }\n\n state.tag = _tag;\n state.dump = _result || '[]'; // Empty sequence if no valid values.\n}\n\nfunction writeFlowMapping(state, level, object) {\n var _result = '',\n _tag = state.tag,\n objectKeyList = Object.keys(object),\n index,\n length,\n objectKey,\n objectValue,\n pairBuffer;\n\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n\n pairBuffer = '';\n if (index !== 0) pairBuffer += ', ';\n\n if (state.condenseFlow) pairBuffer += '\"';\n\n objectKey = objectKeyList[index];\n objectValue = object[objectKey];\n\n if (!writeNode(state, level, objectKey, false, false)) {\n continue; // Skip this pair because of invalid key;\n }\n\n if (state.dump.length > 1024) pairBuffer += '? ';\n\n pairBuffer += state.dump + (state.condenseFlow ? '\"' : '') + ':' + (state.condenseFlow ? '' : ' ');\n\n if (!writeNode(state, level, objectValue, false, false)) {\n continue; // Skip this pair because of invalid value.\n }\n\n pairBuffer += state.dump;\n\n // Both key and value are valid.\n _result += pairBuffer;\n }\n\n state.tag = _tag;\n state.dump = '{' + _result + '}';\n}\n\nfunction writeBlockMapping(state, level, object, compact) {\n var _result = '',\n _tag = state.tag,\n objectKeyList = Object.keys(object),\n index,\n length,\n objectKey,\n objectValue,\n explicitPair,\n pairBuffer;\n\n // Allow sorting keys so that the output file is deterministic\n if (state.sortKeys === true) {\n // Default sorting\n objectKeyList.sort();\n } else if (typeof state.sortKeys === 'function') {\n // Custom sort function\n objectKeyList.sort(state.sortKeys);\n } else if (state.sortKeys) {\n // Something is wrong\n throw new YAMLException('sortKeys must be a boolean or a function');\n }\n\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n pairBuffer = '';\n\n if (!compact || index !== 0) {\n pairBuffer += generateNextLine(state, level);\n }\n\n objectKey = objectKeyList[index];\n objectValue = object[objectKey];\n\n if (!writeNode(state, level + 1, objectKey, true, true, true)) {\n continue; // Skip this pair because of invalid key.\n }\n\n explicitPair = (state.tag !== null && state.tag !== '?') ||\n (state.dump && state.dump.length > 1024);\n\n if (explicitPair) {\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n pairBuffer += '?';\n } else {\n pairBuffer += '? ';\n }\n }\n\n pairBuffer += state.dump;\n\n if (explicitPair) {\n pairBuffer += generateNextLine(state, level);\n }\n\n if (!writeNode(state, level + 1, objectValue, true, explicitPair)) {\n continue; // Skip this pair because of invalid value.\n }\n\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n pairBuffer += ':';\n } else {\n pairBuffer += ': ';\n }\n\n pairBuffer += state.dump;\n\n // Both key and value are valid.\n _result += pairBuffer;\n }\n\n state.tag = _tag;\n state.dump = _result || '{}'; // Empty mapping if no valid pairs.\n}\n\nfunction detectType(state, object, explicit) {\n var _result, typeList, index, length, type, style;\n\n typeList = explicit ? state.explicitTypes : state.implicitTypes;\n\n for (index = 0, length = typeList.length; index < length; index += 1) {\n type = typeList[index];\n\n if ((type.instanceOf || type.predicate) &&\n (!type.instanceOf || ((typeof object === 'object') && (object instanceof type.instanceOf))) &&\n (!type.predicate || type.predicate(object))) {\n\n state.tag = explicit ? type.tag : '?';\n\n if (type.represent) {\n style = state.styleMap[type.tag] || type.defaultStyle;\n\n if (_toString.call(type.represent) === '[object Function]') {\n _result = type.represent(object, style);\n } else if (_hasOwnProperty.call(type.represent, style)) {\n _result = type.represent[style](object, style);\n } else {\n throw new YAMLException('!<' + type.tag + '> tag resolver accepts not \"' + style + '\" style');\n }\n\n state.dump = _result;\n }\n\n return true;\n }\n }\n\n return false;\n}\n\n// Serializes `object` and writes it to global `result`.\n// Returns true on success, or false on invalid object.\n//\nfunction writeNode(state, level, object, block, compact, iskey) {\n state.tag = null;\n state.dump = object;\n\n if (!detectType(state, object, false)) {\n detectType(state, object, true);\n }\n\n var type = _toString.call(state.dump);\n\n if (block) {\n block = (state.flowLevel < 0 || state.flowLevel > level);\n }\n\n var objectOrArray = type === '[object Object]' || type === '[object Array]',\n duplicateIndex,\n duplicate;\n\n if (objectOrArray) {\n duplicateIndex = state.duplicates.indexOf(object);\n duplicate = duplicateIndex !== -1;\n }\n\n if ((state.tag !== null && state.tag !== '?') || duplicate || (state.indent !== 2 && level > 0)) {\n compact = false;\n }\n\n if (duplicate && state.usedDuplicates[duplicateIndex]) {\n state.dump = '*ref_' + duplicateIndex;\n } else {\n if (objectOrArray && duplicate && !state.usedDuplicates[duplicateIndex]) {\n state.usedDuplicates[duplicateIndex] = true;\n }\n if (type === '[object Object]') {\n if (block && (Object.keys(state.dump).length !== 0)) {\n writeBlockMapping(state, level, state.dump, compact);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + state.dump;\n }\n } else {\n writeFlowMapping(state, level, state.dump);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + ' ' + state.dump;\n }\n }\n } else if (type === '[object Array]') {\n var arrayLevel = (state.noArrayIndent && (level > 0)) ? level - 1 : level;\n if (block && (state.dump.length !== 0)) {\n writeBlockSequence(state, arrayLevel, state.dump, compact);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + state.dump;\n }\n } else {\n writeFlowSequence(state, arrayLevel, state.dump);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + ' ' + state.dump;\n }\n }\n } else if (type === '[object String]') {\n if (state.tag !== '?') {\n writeScalar(state, state.dump, level, iskey);\n }\n } else {\n if (state.skipInvalid) return false;\n throw new YAMLException('unacceptable kind of an object to dump ' + type);\n }\n\n if (state.tag !== null && state.tag !== '?') {\n state.dump = '!<' + state.tag + '> ' + state.dump;\n }\n }\n\n return true;\n}\n\nfunction getDuplicateReferences(object, state) {\n var objects = [],\n duplicatesIndexes = [],\n index,\n length;\n\n inspectNode(object, objects, duplicatesIndexes);\n\n for (index = 0, length = duplicatesIndexes.length; index < length; index += 1) {\n state.duplicates.push(objects[duplicatesIndexes[index]]);\n }\n state.usedDuplicates = new Array(length);\n}\n\nfunction inspectNode(object, objects, duplicatesIndexes) {\n var objectKeyList,\n index,\n length;\n\n if (object !== null && typeof object === 'object') {\n index = objects.indexOf(object);\n if (index !== -1) {\n if (duplicatesIndexes.indexOf(index) === -1) {\n duplicatesIndexes.push(index);\n }\n } else {\n objects.push(object);\n\n if (Array.isArray(object)) {\n for (index = 0, length = object.length; index < length; index += 1) {\n inspectNode(object[index], objects, duplicatesIndexes);\n }\n } else {\n objectKeyList = Object.keys(object);\n\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n inspectNode(object[objectKeyList[index]], objects, duplicatesIndexes);\n }\n }\n }\n }\n}\n\nfunction dump(input, options) {\n options = options || {};\n\n var state = new State(options);\n\n if (!state.noRefs) getDuplicateReferences(input, state);\n\n if (writeNode(state, 0, input, true, true)) return state.dump + '\\n';\n\n return '';\n}\n\nfunction safeDump(input, options) {\n return dump(input, common.extend({ schema: DEFAULT_SAFE_SCHEMA }, options));\n}\n\nmodule.exports.dump = dump;\nmodule.exports.safeDump = safeDump;\n","'use strict';\n\n\nvar loader = require('./js-yaml/loader');\nvar dumper = require('./js-yaml/dumper');\n\n\nfunction deprecated(name) {\n return function () {\n throw new Error('Function ' + name + ' is deprecated and cannot be used.');\n };\n}\n\n\nmodule.exports.Type = require('./js-yaml/type');\nmodule.exports.Schema = require('./js-yaml/schema');\nmodule.exports.FAILSAFE_SCHEMA = require('./js-yaml/schema/failsafe');\nmodule.exports.JSON_SCHEMA = require('./js-yaml/schema/json');\nmodule.exports.CORE_SCHEMA = require('./js-yaml/schema/core');\nmodule.exports.DEFAULT_SAFE_SCHEMA = require('./js-yaml/schema/default_safe');\nmodule.exports.DEFAULT_FULL_SCHEMA = require('./js-yaml/schema/default_full');\nmodule.exports.load = loader.load;\nmodule.exports.loadAll = loader.loadAll;\nmodule.exports.safeLoad = loader.safeLoad;\nmodule.exports.safeLoadAll = loader.safeLoadAll;\nmodule.exports.dump = dumper.dump;\nmodule.exports.safeDump = dumper.safeDump;\nmodule.exports.YAMLException = require('./js-yaml/exception');\n\n// Deprecated schema names from JS-YAML 2.0.x\nmodule.exports.MINIMAL_SCHEMA = require('./js-yaml/schema/failsafe');\nmodule.exports.SAFE_SCHEMA = require('./js-yaml/schema/default_safe');\nmodule.exports.DEFAULT_SCHEMA = require('./js-yaml/schema/default_full');\n\n// Deprecated functions from JS-YAML 1.x.x\nmodule.exports.scan = deprecated('scan');\nmodule.exports.parse = deprecated('parse');\nmodule.exports.compose = deprecated('compose');\nmodule.exports.addConstructor = deprecated('addConstructor');\n","'use strict';\n\n\nvar yaml = require('./lib/js-yaml.js');\n\n\nmodule.exports = yaml;\n","import{useState as n,useReducer as t,useEffect as e,useLayoutEffect as r,useRef as u,useImperativeHandle as o,useMemo as i,useCallback as l,useContext as f,useDebugValue as c}from\"preact/hooks\";export*from\"preact/hooks\";import{Component as a,createElement as s,options as h,toChildArray as p,Fragment as v,render as d,hydrate as m,cloneElement as y,createRef as b,createContext as _}from\"preact\";export{createElement,createContext,createRef,Fragment,Component}from\"preact\";function C(n,t){for(var e in t)n[e]=t[e];return n}function S(n,t){for(var e in n)if(\"__source\"!==e&&!(e in t))return!0;for(var r in t)if(\"__source\"!==r&&n[r]!==t[r])return!0;return!1}function E(n){this.props=n}function g(n,t){function e(n){var e=this.props.ref,r=e==n.ref;return!r&&e&&(e.call?e(null):e.current=null),t?!t(this.props,n)||!r:S(this.props,n)}function r(t){return this.shouldComponentUpdate=e,s(n,t)}return r.displayName=\"Memo(\"+(n.displayName||n.name)+\")\",r.prototype.isReactComponent=!0,r.__f=!0,r}(E.prototype=new a).isPureReactComponent=!0,E.prototype.shouldComponentUpdate=function(n,t){return S(this.props,n)||S(this.state,t)};var w=h.__b;h.__b=function(n){n.type&&n.type.__f&&n.ref&&(n.props.ref=n.ref,n.ref=null),w&&w(n)};var R=\"undefined\"!=typeof Symbol&&Symbol.for&&Symbol.for(\"react.forward_ref\")||3911;function x(n){function t(t,e){var r=C({},t);return delete r.ref,n(r,(e=t.ref||e)&&(\"object\"!=typeof e||\"current\"in e)?e:null)}return t.$$typeof=R,t.render=t,t.prototype.isReactComponent=t.__f=!0,t.displayName=\"ForwardRef(\"+(n.displayName||n.name)+\")\",t}var N=function(n,t){return null==n?null:p(p(n).map(t))},k={map:N,forEach:N,count:function(n){return n?p(n).length:0},only:function(n){var t=p(n);if(1!==t.length)throw\"Children.only\";return t[0]},toArray:p},A=h.__e;h.__e=function(n,t,e){if(n.then)for(var r,u=t;u=u.__;)if((r=u.__c)&&r.__c)return null==t.__e&&(t.__e=e.__e,t.__k=e.__k),r.__c(n,t);A(n,t,e)};var O=h.unmount;function L(){this.__u=0,this.t=null,this.__b=null}function U(n){var t=n.__.__c;return t&&t.__e&&t.__e(n)}function D(n){var t,e,r;function u(u){if(t||(t=n()).then(function(n){e=n.default||n},function(n){r=n}),r)throw r;if(!e)throw t;return s(e,u)}return u.displayName=\"Lazy\",u.__f=!0,u}function F(){this.u=null,this.o=null}h.unmount=function(n){var t=n.__c;t&&t.__R&&t.__R(),t&&!0===n.__h&&(n.type=null),O&&O(n)},(L.prototype=new a).__c=function(n,t){var e=t.__c,r=this;null==r.t&&(r.t=[]),r.t.push(e);var u=U(r.__v),o=!1,i=function(){o||(o=!0,e.__R=null,u?u(l):l())};e.__R=i;var l=function(){if(!--r.__u){if(r.state.__e){var n=r.state.__e;r.__v.__k[0]=function n(t,e,r){return t&&(t.__v=null,t.__k=t.__k&&t.__k.map(function(t){return n(t,e,r)}),t.__c&&t.__c.__P===e&&(t.__e&&r.insertBefore(t.__e,t.__d),t.__c.__e=!0,t.__c.__P=r)),t}(n,n.__c.__P,n.__c.__O)}var t;for(r.setState({__e:r.__b=null});t=r.t.pop();)t.forceUpdate()}},f=!0===t.__h;r.__u++||f||r.setState({__e:r.__b=r.__v.__k[0]}),n.then(i,i)},L.prototype.componentWillUnmount=function(){this.t=[]},L.prototype.render=function(n,t){if(this.__b){if(this.__v.__k){var e=document.createElement(\"div\"),r=this.__v.__k[0].__c;this.__v.__k[0]=function n(t,e,r){return t&&(t.__c&&t.__c.__H&&(t.__c.__H.__.forEach(function(n){\"function\"==typeof n.__c&&n.__c()}),t.__c.__H=null),null!=(t=C({},t)).__c&&(t.__c.__P===r&&(t.__c.__P=e),t.__c=null),t.__k=t.__k&&t.__k.map(function(t){return n(t,e,r)})),t}(this.__b,e,r.__O=r.__P)}this.__b=null}var u=t.__e&&s(v,null,n.fallback);return u&&(u.__h=null),[s(v,null,t.__e?null:n.children),u]};var M=function(n,t,e){if(++e[1]===e[0]&&n.o.delete(t),n.props.revealOrder&&(\"t\"!==n.props.revealOrder[0]||!n.o.size))for(e=n.u;e;){for(;e.length>3;)e.pop()();if(e[1]<e[0])break;n.u=e=e[2]}};function T(n){return this.getChildContext=function(){return n.context},n.children}function j(n){var t=this,e=n.i;t.componentWillUnmount=function(){d(null,t.l),t.l=null,t.i=null},t.i&&t.i!==e&&t.componentWillUnmount(),n.__v?(t.l||(t.i=e,t.l={nodeType:1,parentNode:e,childNodes:[],appendChild:function(n){this.childNodes.push(n),t.i.appendChild(n)},insertBefore:function(n,e){this.childNodes.push(n),t.i.appendChild(n)},removeChild:function(n){this.childNodes.splice(this.childNodes.indexOf(n)>>>1,1),t.i.removeChild(n)}}),d(s(T,{context:t.context},n.__v),t.l)):t.l&&t.componentWillUnmount()}function I(n,t){return s(j,{__v:n,i:t})}(F.prototype=new a).__e=function(n){var t=this,e=U(t.__v),r=t.o.get(n);return r[0]++,function(u){var o=function(){t.props.revealOrder?(r.push(u),M(t,n,r)):u()};e?e(o):o()}},F.prototype.render=function(n){this.u=null,this.o=new Map;var t=p(n.children);n.revealOrder&&\"b\"===n.revealOrder[0]&&t.reverse();for(var e=t.length;e--;)this.o.set(t[e],this.u=[1,0,this.u]);return n.children},F.prototype.componentDidUpdate=F.prototype.componentDidMount=function(){var n=this;this.o.forEach(function(t,e){M(n,e,t)})};var W=\"undefined\"!=typeof Symbol&&Symbol.for&&Symbol.for(\"react.element\")||60103,P=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|fill|flood|font|glyph(?!R)|horiz|marker(?!H|W|U)|overline|paint|stop|strikethrough|stroke|text(?!L)|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,V=function(n){return(\"undefined\"!=typeof Symbol&&\"symbol\"==typeof Symbol()?/fil|che|rad/i:/fil|che|ra/i).test(n)};function z(n,t,e){return null==t.__k&&(t.textContent=\"\"),d(n,t),\"function\"==typeof e&&e(),n?n.__c:null}function B(n,t,e){return m(n,t),\"function\"==typeof e&&e(),n?n.__c:null}a.prototype.isReactComponent={},[\"componentWillMount\",\"componentWillReceiveProps\",\"componentWillUpdate\"].forEach(function(n){Object.defineProperty(a.prototype,n,{configurable:!0,get:function(){return this[\"UNSAFE_\"+n]},set:function(t){Object.defineProperty(this,n,{configurable:!0,writable:!0,value:t})}})});var H=h.event;function Z(){}function Y(){return this.cancelBubble}function $(){return this.defaultPrevented}h.event=function(n){return H&&(n=H(n)),n.persist=Z,n.isPropagationStopped=Y,n.isDefaultPrevented=$,n.nativeEvent=n};var q,G={configurable:!0,get:function(){return this.class}},J=h.vnode;h.vnode=function(n){var t=n.type,e=n.props,r=e;if(\"string\"==typeof t){for(var u in r={},e){var o=e[u];\"value\"===u&&\"defaultValue\"in e&&null==o||(\"defaultValue\"===u&&\"value\"in e&&null==e.value?u=\"value\":\"download\"===u&&!0===o?o=\"\":/ondoubleclick/i.test(u)?u=\"ondblclick\":/^onchange(textarea|input)/i.test(u+t)&&!V(e.type)?u=\"oninput\":/^on(Ani|Tra|Tou|BeforeInp)/.test(u)?u=u.toLowerCase():P.test(u)?u=u.replace(/[A-Z0-9]/,\"-$&\").toLowerCase():null===o&&(o=void 0),r[u]=o)}\"select\"==t&&r.multiple&&Array.isArray(r.value)&&(r.value=p(e.children).forEach(function(n){n.props.selected=-1!=r.value.indexOf(n.props.value)})),\"select\"==t&&null!=r.defaultValue&&(r.value=p(e.children).forEach(function(n){n.props.selected=r.multiple?-1!=r.defaultValue.indexOf(n.props.value):r.defaultValue==n.props.value})),n.props=r}t&&e.class!=e.className&&(G.enumerable=\"className\"in e,null!=e.className&&(r.class=e.className),Object.defineProperty(r,\"className\",G)),n.$$typeof=W,J&&J(n)};var K=h.__r;h.__r=function(n){K&&K(n),q=n.__c};var Q={ReactCurrentDispatcher:{current:{readContext:function(n){return q.__n[n.__c].props.value}}}},X=1,nn=2,tn=3,en=4,rn=5;function un(n,t){return t()}var on=\"object\"==typeof performance&&\"function\"==typeof performance.now?performance.now.bind(performance):function(){return Date.now()},ln=\"16.8.0\";function fn(n){return s.bind(null,n)}function cn(n){return!!n&&n.$$typeof===W}function an(n){return cn(n)?y.apply(null,arguments):n}function sn(n){return!!n.__k&&(d(null,n),!0)}function hn(n){return n&&(n.base||1===n.nodeType&&n)||null}var pn=function(n,t){return n(t)},vn=v;export default{useState:n,useReducer:t,useEffect:e,useLayoutEffect:r,useRef:u,useImperativeHandle:o,useMemo:i,useCallback:l,useContext:f,useDebugValue:c,version:\"16.8.0\",Children:k,render:z,hydrate:B,unmountComponentAtNode:sn,createPortal:I,createElement:s,createContext:_,createFactory:fn,cloneElement:an,createRef:b,Fragment:v,isValidElement:cn,findDOMNode:hn,Component:a,PureComponent:E,memo:g,forwardRef:x,unstable_batchedUpdates:pn,StrictMode:v,Suspense:L,SuspenseList:F,lazy:D,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:Q};export{ln as version,k as Children,z as render,B as hydrate,sn as unmountComponentAtNode,I as createPortal,fn as createFactory,an as cloneElement,cn as isValidElement,hn as findDOMNode,E as PureComponent,g as memo,x as forwardRef,pn as unstable_batchedUpdates,vn as StrictMode,L as Suspense,F as SuspenseList,D as lazy,Q as __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,X as unstable_ImmediatePriority,nn as unstable_UserBlockingPriority,tn as unstable_NormalPriority,en as unstable_LowPriority,rn as unstable_IdlePriority,un as unstable_runWithPriority,on as unstable_now};\n//# sourceMappingURL=compat.module.js.map\n","var e=Object.defineProperty,t=Object.defineProperties,s=Object.getOwnPropertyDescriptors,r=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,o=Object.prototype.propertyIsEnumerable,i=(t,s,r)=>s in t?e(t,s,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[s]=r,c=(e,t)=>{for(var s in t||(t={}))n.call(t,s)&&i(e,s,t[s]);if(r)for(var s of r(t))o.call(t,s)&&i(e,s,t[s]);return e};import a,{useState as l,useEffect as u,useRef as m}from\"react\";const g=\"Please consider reporting this error at https://github.com/laymonage/giscus/issues/new.\";function d(e){return`[giscus] An error occurred. Error message: \"${e}\".`}function p(e){const t=document.querySelector(`meta[property='og:${e}'],meta[name='${e}']`);return t?t.content:\"\"}function f(){const e=document.getElementById(\"giscus-css\")||document.createElement(\"style\");e.id=\"giscus-css\",e.textContent=\"\\n .giscus, .giscus-frame {\\n width: 100%;\\n }\\n .giscus-frame {\\n border: none;\\n color-scheme: normal;\\n }\\n \",document.head.prepend(e)}function h(e){const[r,n]=l(\"\"),o=function({repo:e,repoId:t,category:s=\"\",categoryId:r=\"\",mapping:n,term:o=\"\",theme:i=\"light\",reactionsEnabled:c=\"1\",emitMetadata:a=\"0\",inputPosition:l=\"bottom\",lang:u=\"en\",session:m,origin:g}){const d=new URL(location.href);d.searchParams.delete(\"giscus\");const f=d.toString(),h={origin:g=g||f,session:m,theme:i,reactionsEnabled:c,emitMetadata:a,inputPosition:l,repo:e,repoId:t,category:s,categoryId:r,description:p(\"description\")};switch(n){case\"url\":h.term=f;break;case\"title\":h.term=document.title;break;case\"og:title\":h.term=p(\"title\");break;case\"specific\":h.term=o;break;case\"number\":h.number=o;break;case\"pathname\":default:h.term=location.pathname.length<2?\"index\":location.pathname.substring(1).replace(/\\.\\w+$/,\"\")}return`https://giscus.app/${u}/widget?${new URLSearchParams(h)}`}((i=c({},e),t(i,s({session:r}))));var i;const h=m(null);return u((()=>{const e=location.href,t=new URL(e),s=localStorage.getItem(\"giscus-session\"),r=t.searchParams.get(\"giscus\")||\"\";if(r)return localStorage.setItem(\"giscus-session\",JSON.stringify(r)),n(r),t.searchParams.delete(\"giscus\"),void history.replaceState(void 0,document.title,t.toString());if(s)try{n(JSON.parse(s||\"\")||\"\")}catch(o){n(\"\"),localStorage.removeItem(\"giscus-session\"),console.warn(`${d(null==o?void 0:o.message)} Session has been cleared.`)}}),[]),u(f,[]),u((()=>{const e=function(e,t=null){return function(s){if(\"https://giscus.app\"!==s.origin)return;const{data:r}=s;if(\"object\"!=typeof r||!r.giscus)return;if(t&&r.giscus.resizeHeight&&(t.style.height=`${r.giscus.resizeHeight}px`),!r.giscus.error)return;const n=r.giscus.error;if(n.includes(\"Bad credentials\")||n.includes(\"Invalid state value\")){if(null!==localStorage.getItem(\"giscus-session\"))return localStorage.removeItem(\"giscus-session\"),e(),void console.warn(`${d(n)} Session has been cleared.`);console.error(`${d(n)} No session is stored initially. ${g}`)}n.includes(\"Discussion not found\")?console.warn(`[giscus] ${n}. A new discussion will be created if a comment/reaction is submitted.`):console.error(`${d(n)} ${g}`)}}((()=>n(\"\")),h.current);return window.addEventListener(\"message\",e),()=>window.removeEventListener(\"message\",e)}),[]),a.createElement(\"div\",{className:\"giscus\"},a.createElement(\"iframe\",{className:\"giscus-frame\",title:\"Comments\",scrolling:\"no\",src:o,ref:h}))}function b(e){const[t,s]=l(!1);return u((()=>s(!0)),[]),t?a.createElement(h,c({},e)):null}export{b as Giscus};\n","/**\n * marked - a markdown parser\n * Copyright (c) 2011-2022, Christopher Jeffrey. (MIT Licensed)\n * https://github.com/markedjs/marked\n */\n\n/**\n * DO NOT EDIT THIS FILE\n * The code in this file is generated from files in ./src/\n */\n\nfunction getDefaults() {\n return {\n baseUrl: null,\n breaks: false,\n extensions: null,\n gfm: true,\n headerIds: true,\n headerPrefix: '',\n highlight: null,\n langPrefix: 'language-',\n mangle: true,\n pedantic: false,\n renderer: null,\n sanitize: false,\n sanitizer: null,\n silent: false,\n smartLists: false,\n smartypants: false,\n tokenizer: null,\n walkTokens: null,\n xhtml: false\n };\n}\n\nlet defaults = getDefaults();\n\nfunction changeDefaults(newDefaults) {\n defaults = newDefaults;\n}\n\n/**\n * Helpers\n */\nconst escapeTest = /[&<>\"']/;\nconst escapeReplace = /[&<>\"']/g;\nconst escapeTestNoEncode = /[<>\"']|&(?!#?\\w+;)/;\nconst escapeReplaceNoEncode = /[<>\"']|&(?!#?\\w+;)/g;\nconst escapeReplacements = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": '''\n};\nconst getEscapeReplacement = (ch) => escapeReplacements[ch];\nfunction escape(html, encode) {\n if (encode) {\n if (escapeTest.test(html)) {\n return html.replace(escapeReplace, getEscapeReplacement);\n }\n } else {\n if (escapeTestNoEncode.test(html)) {\n return html.replace(escapeReplaceNoEncode, getEscapeReplacement);\n }\n }\n\n return html;\n}\n\nconst unescapeTest = /&(#(?:\\d+)|(?:#x[0-9A-Fa-f]+)|(?:\\w+));?/ig;\n\nfunction unescape(html) {\n // explicitly match decimal, hex, and named HTML entities\n return html.replace(unescapeTest, (_, n) => {\n n = n.toLowerCase();\n if (n === 'colon') return ':';\n if (n.charAt(0) === '#') {\n return n.charAt(1) === 'x'\n ? String.fromCharCode(parseInt(n.substring(2), 16))\n : String.fromCharCode(+n.substring(1));\n }\n return '';\n });\n}\n\nconst caret = /(^|[^\\[])\\^/g;\nfunction edit(regex, opt) {\n regex = regex.source || regex;\n opt = opt || '';\n const obj = {\n replace: (name, val) => {\n val = val.source || val;\n val = val.replace(caret, '$1');\n regex = regex.replace(name, val);\n return obj;\n },\n getRegex: () => {\n return new RegExp(regex, opt);\n }\n };\n return obj;\n}\n\nconst nonWordAndColonTest = /[^\\w:]/g;\nconst originIndependentUrl = /^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;\nfunction cleanUrl(sanitize, base, href) {\n if (sanitize) {\n let prot;\n try {\n prot = decodeURIComponent(unescape(href))\n .replace(nonWordAndColonTest, '')\n .toLowerCase();\n } catch (e) {\n return null;\n }\n if (prot.indexOf('javascript:') === 0 || prot.indexOf('vbscript:') === 0 || prot.indexOf('data:') === 0) {\n return null;\n }\n }\n if (base && !originIndependentUrl.test(href)) {\n href = resolveUrl(base, href);\n }\n try {\n href = encodeURI(href).replace(/%25/g, '%');\n } catch (e) {\n return null;\n }\n return href;\n}\n\nconst baseUrls = {};\nconst justDomain = /^[^:]+:\\/*[^/]*$/;\nconst protocol = /^([^:]+:)[\\s\\S]*$/;\nconst domain = /^([^:]+:\\/*[^/]*)[\\s\\S]*$/;\n\nfunction resolveUrl(base, href) {\n if (!baseUrls[' ' + base]) {\n // we can ignore everything in base after the last slash of its path component,\n // but we might need to add _that_\n // https://tools.ietf.org/html/rfc3986#section-3\n if (justDomain.test(base)) {\n baseUrls[' ' + base] = base + '/';\n } else {\n baseUrls[' ' + base] = rtrim(base, '/', true);\n }\n }\n base = baseUrls[' ' + base];\n const relativeBase = base.indexOf(':') === -1;\n\n if (href.substring(0, 2) === '//') {\n if (relativeBase) {\n return href;\n }\n return base.replace(protocol, '$1') + href;\n } else if (href.charAt(0) === '/') {\n if (relativeBase) {\n return href;\n }\n return base.replace(domain, '$1') + href;\n } else {\n return base + href;\n }\n}\n\nconst noopTest = { exec: function noopTest() {} };\n\nfunction merge(obj) {\n let i = 1,\n target,\n key;\n\n for (; i < arguments.length; i++) {\n target = arguments[i];\n for (key in target) {\n if (Object.prototype.hasOwnProperty.call(target, key)) {\n obj[key] = target[key];\n }\n }\n }\n\n return obj;\n}\n\nfunction splitCells(tableRow, count) {\n // ensure that every cell-delimiting pipe has a space\n // before it to distinguish it from an escaped pipe\n const row = tableRow.replace(/\\|/g, (match, offset, str) => {\n let escaped = false,\n curr = offset;\n while (--curr >= 0 && str[curr] === '\\\\') escaped = !escaped;\n if (escaped) {\n // odd number of slashes means | is escaped\n // so we leave it alone\n return '|';\n } else {\n // add space before unescaped |\n return ' |';\n }\n }),\n cells = row.split(/ \\|/);\n let i = 0;\n\n // First/last cell in a row cannot be empty if it has no leading/trailing pipe\n if (!cells[0].trim()) { cells.shift(); }\n if (!cells[cells.length - 1].trim()) { cells.pop(); }\n\n if (cells.length > count) {\n cells.splice(count);\n } else {\n while (cells.length < count) cells.push('');\n }\n\n for (; i < cells.length; i++) {\n // leading or trailing whitespace is ignored per the gfm spec\n cells[i] = cells[i].trim().replace(/\\\\\\|/g, '|');\n }\n return cells;\n}\n\n// Remove trailing 'c's. Equivalent to str.replace(/c*$/, '').\n// /c*$/ is vulnerable to REDOS.\n// invert: Remove suffix of non-c chars instead. Default falsey.\nfunction rtrim(str, c, invert) {\n const l = str.length;\n if (l === 0) {\n return '';\n }\n\n // Length of suffix matching the invert condition.\n let suffLen = 0;\n\n // Step left until we fail to match the invert condition.\n while (suffLen < l) {\n const currChar = str.charAt(l - suffLen - 1);\n if (currChar === c && !invert) {\n suffLen++;\n } else if (currChar !== c && invert) {\n suffLen++;\n } else {\n break;\n }\n }\n\n return str.substr(0, l - suffLen);\n}\n\nfunction findClosingBracket(str, b) {\n if (str.indexOf(b[1]) === -1) {\n return -1;\n }\n const l = str.length;\n let level = 0,\n i = 0;\n for (; i < l; i++) {\n if (str[i] === '\\\\') {\n i++;\n } else if (str[i] === b[0]) {\n level++;\n } else if (str[i] === b[1]) {\n level--;\n if (level < 0) {\n return i;\n }\n }\n }\n return -1;\n}\n\nfunction checkSanitizeDeprecation(opt) {\n if (opt && opt.sanitize && !opt.silent) {\n console.warn('marked(): sanitize and sanitizer parameters are deprecated since version 0.7.0, should not be used and will be removed in the future. Read more here: https://marked.js.org/#/USING_ADVANCED.md#options');\n }\n}\n\n// copied from https://stackoverflow.com/a/5450113/806777\nfunction repeatString(pattern, count) {\n if (count < 1) {\n return '';\n }\n let result = '';\n while (count > 1) {\n if (count & 1) {\n result += pattern;\n }\n count >>= 1;\n pattern += pattern;\n }\n return result + pattern;\n}\n\nfunction outputLink(cap, link, raw, lexer) {\n const href = link.href;\n const title = link.title ? escape(link.title) : null;\n const text = cap[1].replace(/\\\\([\\[\\]])/g, '$1');\n\n if (cap[0].charAt(0) !== '!') {\n lexer.state.inLink = true;\n const token = {\n type: 'link',\n raw,\n href,\n title,\n text,\n tokens: lexer.inlineTokens(text, [])\n };\n lexer.state.inLink = false;\n return token;\n } else {\n return {\n type: 'image',\n raw,\n href,\n title,\n text: escape(text)\n };\n }\n}\n\nfunction indentCodeCompensation(raw, text) {\n const matchIndentToCode = raw.match(/^(\\s+)(?:```)/);\n\n if (matchIndentToCode === null) {\n return text;\n }\n\n const indentToCode = matchIndentToCode[1];\n\n return text\n .split('\\n')\n .map(node => {\n const matchIndentInNode = node.match(/^\\s+/);\n if (matchIndentInNode === null) {\n return node;\n }\n\n const [indentInNode] = matchIndentInNode;\n\n if (indentInNode.length >= indentToCode.length) {\n return node.slice(indentToCode.length);\n }\n\n return node;\n })\n .join('\\n');\n}\n\n/**\n * Tokenizer\n */\nclass Tokenizer {\n constructor(options) {\n this.options = options || defaults;\n }\n\n space(src) {\n const cap = this.rules.block.newline.exec(src);\n if (cap && cap[0].length > 0) {\n return {\n type: 'space',\n raw: cap[0]\n };\n }\n }\n\n code(src) {\n const cap = this.rules.block.code.exec(src);\n if (cap) {\n const text = cap[0].replace(/^ {1,4}/gm, '');\n return {\n type: 'code',\n raw: cap[0],\n codeBlockStyle: 'indented',\n text: !this.options.pedantic\n ? rtrim(text, '\\n')\n : text\n };\n }\n }\n\n fences(src) {\n const cap = this.rules.block.fences.exec(src);\n if (cap) {\n const raw = cap[0];\n const text = indentCodeCompensation(raw, cap[3] || '');\n\n return {\n type: 'code',\n raw,\n lang: cap[2] ? cap[2].trim() : cap[2],\n text\n };\n }\n }\n\n heading(src) {\n const cap = this.rules.block.heading.exec(src);\n if (cap) {\n let text = cap[2].trim();\n\n // remove trailing #s\n if (/#$/.test(text)) {\n const trimmed = rtrim(text, '#');\n if (this.options.pedantic) {\n text = trimmed.trim();\n } else if (!trimmed || / $/.test(trimmed)) {\n // CommonMark requires space before trailing #s\n text = trimmed.trim();\n }\n }\n\n const token = {\n type: 'heading',\n raw: cap[0],\n depth: cap[1].length,\n text: text,\n tokens: []\n };\n this.lexer.inline(token.text, token.tokens);\n return token;\n }\n }\n\n hr(src) {\n const cap = this.rules.block.hr.exec(src);\n if (cap) {\n return {\n type: 'hr',\n raw: cap[0]\n };\n }\n }\n\n blockquote(src) {\n const cap = this.rules.block.blockquote.exec(src);\n if (cap) {\n const text = cap[0].replace(/^ *> ?/gm, '');\n\n return {\n type: 'blockquote',\n raw: cap[0],\n tokens: this.lexer.blockTokens(text, []),\n text\n };\n }\n }\n\n list(src) {\n let cap = this.rules.block.list.exec(src);\n if (cap) {\n let raw, istask, ischecked, indent, i, blankLine, endsWithBlankLine,\n line, nextLine, rawLine, itemContents, endEarly;\n\n let bull = cap[1].trim();\n const isordered = bull.length > 1;\n\n const list = {\n type: 'list',\n raw: '',\n ordered: isordered,\n start: isordered ? +bull.slice(0, -1) : '',\n loose: false,\n items: []\n };\n\n bull = isordered ? `\\\\d{1,9}\\\\${bull.slice(-1)}` : `\\\\${bull}`;\n\n if (this.options.pedantic) {\n bull = isordered ? bull : '[*+-]';\n }\n\n // Get next list item\n const itemRegex = new RegExp(`^( {0,3}${bull})((?: [^\\\\n]*)?(?:\\\\n|$))`);\n\n // Check if current bullet point can start a new List Item\n while (src) {\n endEarly = false;\n if (!(cap = itemRegex.exec(src))) {\n break;\n }\n\n if (this.rules.block.hr.test(src)) { // End list if bullet was actually HR (possibly move into itemRegex?)\n break;\n }\n\n raw = cap[0];\n src = src.substring(raw.length);\n\n line = cap[2].split('\\n', 1)[0];\n nextLine = src.split('\\n', 1)[0];\n\n if (this.options.pedantic) {\n indent = 2;\n itemContents = line.trimLeft();\n } else {\n indent = cap[2].search(/[^ ]/); // Find first non-space char\n indent = indent > 4 ? 1 : indent; // Treat indented code blocks (> 4 spaces) as having only 1 indent\n itemContents = line.slice(indent);\n indent += cap[1].length;\n }\n\n blankLine = false;\n\n if (!line && /^ *$/.test(nextLine)) { // Items begin with at most one blank line\n raw += nextLine + '\\n';\n src = src.substring(nextLine.length + 1);\n endEarly = true;\n }\n\n if (!endEarly) {\n const nextBulletRegex = new RegExp(`^ {0,${Math.min(3, indent - 1)}}(?:[*+-]|\\\\d{1,9}[.)])`);\n\n // Check if following lines should be included in List Item\n while (src) {\n rawLine = src.split('\\n', 1)[0];\n line = rawLine;\n\n // Re-align to follow commonmark nesting rules\n if (this.options.pedantic) {\n line = line.replace(/^ {1,4}(?=( {4})*[^ ])/g, ' ');\n }\n\n // End list item if found start of new bullet\n if (nextBulletRegex.test(line)) {\n break;\n }\n\n if (line.search(/[^ ]/) >= indent || !line.trim()) { // Dedent if possible\n itemContents += '\\n' + line.slice(indent);\n } else if (!blankLine) { // Until blank line, item doesn't need indentation\n itemContents += '\\n' + line;\n } else { // Otherwise, improper indentation ends this item\n break;\n }\n\n if (!blankLine && !line.trim()) { // Check if current line is blank\n blankLine = true;\n }\n\n raw += rawLine + '\\n';\n src = src.substring(rawLine.length + 1);\n }\n }\n\n if (!list.loose) {\n // If the previous item ended with a blank line, the list is loose\n if (endsWithBlankLine) {\n list.loose = true;\n } else if (/\\n *\\n *$/.test(raw)) {\n endsWithBlankLine = true;\n }\n }\n\n // Check for task list items\n if (this.options.gfm) {\n istask = /^\\[[ xX]\\] /.exec(itemContents);\n if (istask) {\n ischecked = istask[0] !== '[ ] ';\n itemContents = itemContents.replace(/^\\[[ xX]\\] +/, '');\n }\n }\n\n list.items.push({\n type: 'list_item',\n raw: raw,\n task: !!istask,\n checked: ischecked,\n loose: false,\n text: itemContents\n });\n\n list.raw += raw;\n }\n\n // Do not consume newlines at end of final item. Alternatively, make itemRegex *start* with any newlines to simplify/speed up endsWithBlankLine logic\n list.items[list.items.length - 1].raw = raw.trimRight();\n list.items[list.items.length - 1].text = itemContents.trimRight();\n list.raw = list.raw.trimRight();\n\n const l = list.items.length;\n\n // Item child tokens handled here at end because we needed to have the final item to trim it first\n for (i = 0; i < l; i++) {\n this.lexer.state.top = false;\n list.items[i].tokens = this.lexer.blockTokens(list.items[i].text, []);\n const spacers = list.items[i].tokens.filter(t => t.type === 'space');\n const hasMultipleLineBreaks = spacers.every(t => {\n const chars = t.raw.split('');\n let lineBreaks = 0;\n for (const char of chars) {\n if (char === '\\n') {\n lineBreaks += 1;\n }\n if (lineBreaks > 1) {\n return true;\n }\n }\n\n return false;\n });\n\n if (!list.loose && spacers.length && hasMultipleLineBreaks) {\n // Having a single line break doesn't mean a list is loose. A single line break is terminating the last list item\n list.loose = true;\n list.items[i].loose = true;\n }\n }\n\n return list;\n }\n }\n\n html(src) {\n const cap = this.rules.block.html.exec(src);\n if (cap) {\n const token = {\n type: 'html',\n raw: cap[0],\n pre: !this.options.sanitizer\n && (cap[1] === 'pre' || cap[1] === 'script' || cap[1] === 'style'),\n text: cap[0]\n };\n if (this.options.sanitize) {\n token.type = 'paragraph';\n token.text = this.options.sanitizer ? this.options.sanitizer(cap[0]) : escape(cap[0]);\n token.tokens = [];\n this.lexer.inline(token.text, token.tokens);\n }\n return token;\n }\n }\n\n def(src) {\n const cap = this.rules.block.def.exec(src);\n if (cap) {\n if (cap[3]) cap[3] = cap[3].substring(1, cap[3].length - 1);\n const tag = cap[1].toLowerCase().replace(/\\s+/g, ' ');\n return {\n type: 'def',\n tag,\n raw: cap[0],\n href: cap[2],\n title: cap[3]\n };\n }\n }\n\n table(src) {\n const cap = this.rules.block.table.exec(src);\n if (cap) {\n const item = {\n type: 'table',\n header: splitCells(cap[1]).map(c => { return { text: c }; }),\n align: cap[2].replace(/^ *|\\| *$/g, '').split(/ *\\| */),\n rows: cap[3] ? cap[3].replace(/\\n[ \\t]*$/, '').split('\\n') : []\n };\n\n if (item.header.length === item.align.length) {\n item.raw = cap[0];\n\n let l = item.align.length;\n let i, j, k, row;\n for (i = 0; i < l; i++) {\n if (/^ *-+: *$/.test(item.align[i])) {\n item.align[i] = 'right';\n } else if (/^ *:-+: *$/.test(item.align[i])) {\n item.align[i] = 'center';\n } else if (/^ *:-+ *$/.test(item.align[i])) {\n item.align[i] = 'left';\n } else {\n item.align[i] = null;\n }\n }\n\n l = item.rows.length;\n for (i = 0; i < l; i++) {\n item.rows[i] = splitCells(item.rows[i], item.header.length).map(c => { return { text: c }; });\n }\n\n // parse child tokens inside headers and cells\n\n // header child tokens\n l = item.header.length;\n for (j = 0; j < l; j++) {\n item.header[j].tokens = [];\n this.lexer.inlineTokens(item.header[j].text, item.header[j].tokens);\n }\n\n // cell child tokens\n l = item.rows.length;\n for (j = 0; j < l; j++) {\n row = item.rows[j];\n for (k = 0; k < row.length; k++) {\n row[k].tokens = [];\n this.lexer.inlineTokens(row[k].text, row[k].tokens);\n }\n }\n\n return item;\n }\n }\n }\n\n lheading(src) {\n const cap = this.rules.block.lheading.exec(src);\n if (cap) {\n const token = {\n type: 'heading',\n raw: cap[0],\n depth: cap[2].charAt(0) === '=' ? 1 : 2,\n text: cap[1],\n tokens: []\n };\n this.lexer.inline(token.text, token.tokens);\n return token;\n }\n }\n\n paragraph(src) {\n const cap = this.rules.block.paragraph.exec(src);\n if (cap) {\n const token = {\n type: 'paragraph',\n raw: cap[0],\n text: cap[1].charAt(cap[1].length - 1) === '\\n'\n ? cap[1].slice(0, -1)\n : cap[1],\n tokens: []\n };\n this.lexer.inline(token.text, token.tokens);\n return token;\n }\n }\n\n text(src) {\n const cap = this.rules.block.text.exec(src);\n if (cap) {\n const token = {\n type: 'text',\n raw: cap[0],\n text: cap[0],\n tokens: []\n };\n this.lexer.inline(token.text, token.tokens);\n return token;\n }\n }\n\n escape(src) {\n const cap = this.rules.inline.escape.exec(src);\n if (cap) {\n return {\n type: 'escape',\n raw: cap[0],\n text: escape(cap[1])\n };\n }\n }\n\n tag(src) {\n const cap = this.rules.inline.tag.exec(src);\n if (cap) {\n if (!this.lexer.state.inLink && /^<a /i.test(cap[0])) {\n this.lexer.state.inLink = true;\n } else if (this.lexer.state.inLink && /^<\\/a>/i.test(cap[0])) {\n this.lexer.state.inLink = false;\n }\n if (!this.lexer.state.inRawBlock && /^<(pre|code|kbd|script)(\\s|>)/i.test(cap[0])) {\n this.lexer.state.inRawBlock = true;\n } else if (this.lexer.state.inRawBlock && /^<\\/(pre|code|kbd|script)(\\s|>)/i.test(cap[0])) {\n this.lexer.state.inRawBlock = false;\n }\n\n return {\n type: this.options.sanitize\n ? 'text'\n : 'html',\n raw: cap[0],\n inLink: this.lexer.state.inLink,\n inRawBlock: this.lexer.state.inRawBlock,\n text: this.options.sanitize\n ? (this.options.sanitizer\n ? this.options.sanitizer(cap[0])\n : escape(cap[0]))\n : cap[0]\n };\n }\n }\n\n link(src) {\n const cap = this.rules.inline.link.exec(src);\n if (cap) {\n const trimmedUrl = cap[2].trim();\n if (!this.options.pedantic && /^</.test(trimmedUrl)) {\n // commonmark requires matching angle brackets\n if (!(/>$/.test(trimmedUrl))) {\n return;\n }\n\n // ending angle bracket cannot be escaped\n const rtrimSlash = rtrim(trimmedUrl.slice(0, -1), '\\\\');\n if ((trimmedUrl.length - rtrimSlash.length) % 2 === 0) {\n return;\n }\n } else {\n // find closing parenthesis\n const lastParenIndex = findClosingBracket(cap[2], '()');\n if (lastParenIndex > -1) {\n const start = cap[0].indexOf('!') === 0 ? 5 : 4;\n const linkLen = start + cap[1].length + lastParenIndex;\n cap[2] = cap[2].substring(0, lastParenIndex);\n cap[0] = cap[0].substring(0, linkLen).trim();\n cap[3] = '';\n }\n }\n let href = cap[2];\n let title = '';\n if (this.options.pedantic) {\n // split pedantic href and title\n const link = /^([^'\"]*[^\\s])\\s+(['\"])(.*)\\2/.exec(href);\n\n if (link) {\n href = link[1];\n title = link[3];\n }\n } else {\n title = cap[3] ? cap[3].slice(1, -1) : '';\n }\n\n href = href.trim();\n if (/^</.test(href)) {\n if (this.options.pedantic && !(/>$/.test(trimmedUrl))) {\n // pedantic allows starting angle bracket without ending angle bracket\n href = href.slice(1);\n } else {\n href = href.slice(1, -1);\n }\n }\n return outputLink(cap, {\n href: href ? href.replace(this.rules.inline._escapes, '$1') : href,\n title: title ? title.replace(this.rules.inline._escapes, '$1') : title\n }, cap[0], this.lexer);\n }\n }\n\n reflink(src, links) {\n let cap;\n if ((cap = this.rules.inline.reflink.exec(src))\n || (cap = this.rules.inline.nolink.exec(src))) {\n let link = (cap[2] || cap[1]).replace(/\\s+/g, ' ');\n link = links[link.toLowerCase()];\n if (!link || !link.href) {\n const text = cap[0].charAt(0);\n return {\n type: 'text',\n raw: text,\n text\n };\n }\n return outputLink(cap, link, cap[0], this.lexer);\n }\n }\n\n emStrong(src, maskedSrc, prevChar = '') {\n let match = this.rules.inline.emStrong.lDelim.exec(src);\n if (!match) return;\n\n // _ can't be between two alphanumerics. \\p{L}\\p{N} includes non-english alphabet/numbers as well\n if (match[3] && prevChar.match(/[\\p{L}\\p{N}]/u)) return;\n\n const nextChar = match[1] || match[2] || '';\n\n if (!nextChar || (nextChar && (prevChar === '' || this.rules.inline.punctuation.exec(prevChar)))) {\n const lLength = match[0].length - 1;\n let rDelim, rLength, delimTotal = lLength, midDelimTotal = 0;\n\n const endReg = match[0][0] === '*' ? this.rules.inline.emStrong.rDelimAst : this.rules.inline.emStrong.rDelimUnd;\n endReg.lastIndex = 0;\n\n // Clip maskedSrc to same section of string as src (move to lexer?)\n maskedSrc = maskedSrc.slice(-1 * src.length + lLength);\n\n while ((match = endReg.exec(maskedSrc)) != null) {\n rDelim = match[1] || match[2] || match[3] || match[4] || match[5] || match[6];\n\n if (!rDelim) continue; // skip single * in __abc*abc__\n\n rLength = rDelim.length;\n\n if (match[3] || match[4]) { // found another Left Delim\n delimTotal += rLength;\n continue;\n } else if (match[5] || match[6]) { // either Left or Right Delim\n if (lLength % 3 && !((lLength + rLength) % 3)) {\n midDelimTotal += rLength;\n continue; // CommonMark Emphasis Rules 9-10\n }\n }\n\n delimTotal -= rLength;\n\n if (delimTotal > 0) continue; // Haven't found enough closing delimiters\n\n // Remove extra characters. *a*** -> *a*\n rLength = Math.min(rLength, rLength + delimTotal + midDelimTotal);\n\n // Create `em` if smallest delimiter has odd char count. *a***\n if (Math.min(lLength, rLength) % 2) {\n const text = src.slice(1, lLength + match.index + rLength);\n return {\n type: 'em',\n raw: src.slice(0, lLength + match.index + rLength + 1),\n text,\n tokens: this.lexer.inlineTokens(text, [])\n };\n }\n\n // Create 'strong' if smallest delimiter has even char count. **a***\n const text = src.slice(2, lLength + match.index + rLength - 1);\n return {\n type: 'strong',\n raw: src.slice(0, lLength + match.index + rLength + 1),\n text,\n tokens: this.lexer.inlineTokens(text, [])\n };\n }\n }\n }\n\n codespan(src) {\n const cap = this.rules.inline.code.exec(src);\n if (cap) {\n let text = cap[2].replace(/\\n/g, ' ');\n const hasNonSpaceChars = /[^ ]/.test(text);\n const hasSpaceCharsOnBothEnds = /^ /.test(text) && / $/.test(text);\n if (hasNonSpaceChars && hasSpaceCharsOnBothEnds) {\n text = text.substring(1, text.length - 1);\n }\n text = escape(text, true);\n return {\n type: 'codespan',\n raw: cap[0],\n text\n };\n }\n }\n\n br(src) {\n const cap = this.rules.inline.br.exec(src);\n if (cap) {\n return {\n type: 'br',\n raw: cap[0]\n };\n }\n }\n\n del(src) {\n const cap = this.rules.inline.del.exec(src);\n if (cap) {\n return {\n type: 'del',\n raw: cap[0],\n text: cap[2],\n tokens: this.lexer.inlineTokens(cap[2], [])\n };\n }\n }\n\n autolink(src, mangle) {\n const cap = this.rules.inline.autolink.exec(src);\n if (cap) {\n let text, href;\n if (cap[2] === '@') {\n text = escape(this.options.mangle ? mangle(cap[1]) : cap[1]);\n href = 'mailto:' + text;\n } else {\n text = escape(cap[1]);\n href = text;\n }\n\n return {\n type: 'link',\n raw: cap[0],\n text,\n href,\n tokens: [\n {\n type: 'text',\n raw: text,\n text\n }\n ]\n };\n }\n }\n\n url(src, mangle) {\n let cap;\n if (cap = this.rules.inline.url.exec(src)) {\n let text, href;\n if (cap[2] === '@') {\n text = escape(this.options.mangle ? mangle(cap[0]) : cap[0]);\n href = 'mailto:' + text;\n } else {\n // do extended autolink path validation\n let prevCapZero;\n do {\n prevCapZero = cap[0];\n cap[0] = this.rules.inline._backpedal.exec(cap[0])[0];\n } while (prevCapZero !== cap[0]);\n text = escape(cap[0]);\n if (cap[1] === 'www.') {\n href = 'http://' + text;\n } else {\n href = text;\n }\n }\n return {\n type: 'link',\n raw: cap[0],\n text,\n href,\n tokens: [\n {\n type: 'text',\n raw: text,\n text\n }\n ]\n };\n }\n }\n\n inlineText(src, smartypants) {\n const cap = this.rules.inline.text.exec(src);\n if (cap) {\n let text;\n if (this.lexer.state.inRawBlock) {\n text = this.options.sanitize ? (this.options.sanitizer ? this.options.sanitizer(cap[0]) : escape(cap[0])) : cap[0];\n } else {\n text = escape(this.options.smartypants ? smartypants(cap[0]) : cap[0]);\n }\n return {\n type: 'text',\n raw: cap[0],\n text\n };\n }\n }\n}\n\n/**\n * Block-Level Grammar\n */\nconst block = {\n newline: /^(?: *(?:\\n|$))+/,\n code: /^( {4}[^\\n]+(?:\\n(?: *(?:\\n|$))*)?)+/,\n fences: /^ {0,3}(`{3,}(?=[^`\\n]*\\n)|~{3,})([^\\n]*)\\n(?:|([\\s\\S]*?)\\n)(?: {0,3}\\1[~`]* *(?=\\n|$)|$)/,\n hr: /^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)/,\n heading: /^ {0,3}(#{1,6})(?=\\s|$)(.*)(?:\\n+|$)/,\n blockquote: /^( {0,3}> ?(paragraph|[^\\n]*)(?:\\n|$))+/,\n list: /^( {0,3}bull)( [^\\n]+?)?(?:\\n|$)/,\n html: '^ {0,3}(?:' // optional indentation\n + '<(script|pre|style|textarea)[\\\\s>][\\\\s\\\\S]*?(?:</\\\\1>[^\\\\n]*\\\\n+|$)' // (1)\n + '|comment[^\\\\n]*(\\\\n+|$)' // (2)\n + '|<\\\\?[\\\\s\\\\S]*?(?:\\\\?>\\\\n*|$)' // (3)\n + '|<![A-Z][\\\\s\\\\S]*?(?:>\\\\n*|$)' // (4)\n + '|<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?(?:\\\\]\\\\]>\\\\n*|$)' // (5)\n + '|</?(tag)(?: +|\\\\n|/?>)[\\\\s\\\\S]*?(?:(?:\\\\n *)+\\\\n|$)' // (6)\n + '|<(?!script|pre|style|textarea)([a-z][\\\\w-]*)(?:attribute)*? */?>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n *)+\\\\n|$)' // (7) open tag\n + '|</(?!script|pre|style|textarea)[a-z][\\\\w-]*\\\\s*>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n *)+\\\\n|$)' // (7) closing tag\n + ')',\n def: /^ {0,3}\\[(label)\\]: *(?:\\n *)?<?([^\\s>]+)>?(?:(?: +(?:\\n *)?| *\\n *)(title))? *(?:\\n+|$)/,\n table: noopTest,\n lheading: /^([^\\n]+)\\n {0,3}(=+|-+) *(?:\\n+|$)/,\n // regex template, placeholders will be replaced according to different paragraph\n // interruption rules of commonmark and the original markdown spec:\n _paragraph: /^([^\\n]+(?:\\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\\n)[^\\n]+)*)/,\n text: /^[^\\n]+/\n};\n\nblock._label = /(?!\\s*\\])(?:\\\\.|[^\\[\\]\\\\])+/;\nblock._title = /(?:\"(?:\\\\\"?|[^\"\\\\])*\"|'[^'\\n]*(?:\\n[^'\\n]+)*\\n?'|\\([^()]*\\))/;\nblock.def = edit(block.def)\n .replace('label', block._label)\n .replace('title', block._title)\n .getRegex();\n\nblock.bullet = /(?:[*+-]|\\d{1,9}[.)])/;\nblock.listItemStart = edit(/^( *)(bull) */)\n .replace('bull', block.bullet)\n .getRegex();\n\nblock.list = edit(block.list)\n .replace(/bull/g, block.bullet)\n .replace('hr', '\\\\n+(?=\\\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\\\* *){3,})(?:\\\\n+|$))')\n .replace('def', '\\\\n+(?=' + block.def.source + ')')\n .getRegex();\n\nblock._tag = 'address|article|aside|base|basefont|blockquote|body|caption'\n + '|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption'\n + '|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe'\n + '|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option'\n + '|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr'\n + '|track|ul';\nblock._comment = /<!--(?!-?>)[\\s\\S]*?(?:-->|$)/;\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', '</?(?:tag)(?: +|\\\\n|/?>)|<(?: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', '</?(?:tag)(?: +|\\\\n|/?>)|<(?: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', '</?(?:tag)(?: +|\\\\n|/?>)|<(?: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]+?</\\\\1> *(?:\\\\n{2,}|\\\\s*$)' // closed tag\n + '|<tag(?:\"[^\"]*\"|\\'[^\\']*\\'|\\\\s[^\\'\"/>\\\\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: /^ *\\[([^\\]]+)\\]: *<?([^\\s>]+)>?(?: +([\"(][^\\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 + '|^</[a-zA-Z][\\\\w:-]*\\\\s*>' // self-closing tag\n + '|^<[a-zA-Z][\\\\w-]*(?:attribute)*?\\\\s*/?>' // open tag\n + '|^<\\\\?[\\\\s\\\\S]*?\\\\?>' // processing instruction, e.g. <?php ?>\n + '|^<![a-zA-Z]+\\\\s[\\\\s\\\\S]*?>' // declaration, e.g. <!DOCTYPE html>\n + '|^<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?\\\\]\\\\]>', // 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]*?(?:(?=[\\\\<!\\[`*_]|\\b_|$)|[^ ](?= {2,}\\n)))/,\n punctuation: /^([\\spunctuation])/\n};\n\n// list of punctuation marks from CommonMark spec\n// without * and _ to handle the different emphasis markers * and _\ninline._punctuation = '!\"#$%&\\'()+\\\\-.,/:;<=>?@\\\\[\\\\]`^{|}~';\ninline.punctuation = edit(inline.punctuation).replace(/punctuation/g, inline._punctuation).getRegex();\n\n// sequences em should skip over [title](link), `code`, <html>\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]*?(?:(?=[\\\\<!\\[`*~_]|\\b_|https?:\\/\\/|ftp:\\/\\/|www\\.|$)|[^ ](?= {2,}\\n)|[^a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-](?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@)))/\n});\n\ninline.gfm.url = edit(inline.gfm.url, 'i')\n .replace('email', inline.gfm._extended_email)\n .getRegex();\n/**\n * GFM + Line Breaks Inline Grammar\n */\n\ninline.breaks = merge({}, inline.gfm, {\n br: edit(inline.br).replace('{2,}', '*').getRegex(),\n text: edit(inline.gfm.text)\n .replace('\\\\b_', '\\\\b_| {2,}\\\\n')\n .replace(/\\{2,\\}/g, '*')\n .getRegex()\n});\n\n/**\n * smartypants text replacement\n */\nfunction smartypants(text) {\n return text\n // em-dashes\n .replace(/---/g, '\\u2014')\n // en-dashes\n .replace(/--/g, '\\u2013')\n // opening singles\n .replace(/(^|[-\\u2014/(\\[{\"\\s])'/g, '$1\\u2018')\n // closing singles & apostrophes\n .replace(/'/g, '\\u2019')\n // opening doubles\n .replace(/(^|[-\\u2014/(\\[{\\u2018\\s])\"/g, '$1\\u201c')\n // closing doubles\n .replace(/\"/g, '\\u201d')\n // ellipses\n .replace(/\\.{3}/g, '\\u2026');\n}\n\n/**\n * mangle email addresses\n */\nfunction mangle(text) {\n let out = '',\n i,\n ch;\n\n const l = text.length;\n for (i = 0; i < l; i++) {\n ch = text.charCodeAt(i);\n if (Math.random() > 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 '<pre><code>'\n + (escaped ? code : escape(code, true))\n + '</code></pre>\\n';\n }\n\n return '<pre><code class=\"'\n + this.options.langPrefix\n + escape(lang, true)\n + '\">'\n + (escaped ? code : escape(code, true))\n + '</code></pre>\\n';\n }\n\n blockquote(quote) {\n return '<blockquote>\\n' + quote + '</blockquote>\\n';\n }\n\n html(html) {\n return html;\n }\n\n heading(text, level, raw, slugger) {\n if (this.options.headerIds) {\n return '<h'\n + level\n + ' id=\"'\n + this.options.headerPrefix\n + slugger.slug(raw)\n + '\">'\n + text\n + '</h'\n + level\n + '>\\n';\n }\n // ignore IDs\n return '<h' + level + '>' + text + '</h' + level + '>\\n';\n }\n\n hr() {\n return this.options.xhtml ? '<hr/>\\n' : '<hr>\\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 + '</' + type + '>\\n';\n }\n\n listitem(text) {\n return '<li>' + text + '</li>\\n';\n }\n\n checkbox(checked) {\n return '<input '\n + (checked ? 'checked=\"\" ' : '')\n + 'disabled=\"\" type=\"checkbox\"'\n + (this.options.xhtml ? ' /' : '')\n + '> ';\n }\n\n paragraph(text) {\n return '<p>' + text + '</p>\\n';\n }\n\n table(header, body) {\n if (body) body = '<tbody>' + body + '</tbody>';\n\n return '<table>\\n'\n + '<thead>\\n'\n + header\n + '</thead>\\n'\n + body\n + '</table>\\n';\n }\n\n tablerow(content) {\n return '<tr>\\n' + content + '</tr>\\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 + '</' + type + '>\\n';\n }\n\n // span level renderer\n strong(text) {\n return '<strong>' + text + '</strong>';\n }\n\n em(text) {\n return '<em>' + text + '</em>';\n }\n\n codespan(text) {\n return '<code>' + text + '</code>';\n }\n\n br() {\n return this.options.xhtml ? '<br/>' : '<br>';\n }\n\n del(text) {\n return '<del>' + text + '</del>';\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 = '<a href=\"' + escape(href) + '\"';\n if (title) {\n out += ' title=\"' + title + '\"';\n }\n out += '>' + text + '</a>';\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 = '<img src=\"' + href + '\" alt=\"' + text + '\"';\n if (title) {\n out += ' title=\"' + title + '\"';\n }\n out += this.options.xhtml ? '/>' : '>';\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 '<p>An error occurred:</p><pre>'\n + escape(e.message + '', true)\n + '</pre>';\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 '<p>An error occurred:</p><pre>'\n + escape(e.message + '', true)\n + '</pre>';\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<self._howls.length; i++) {\n if (!self._howls[i]._webAudio) {\n // Get all of the sounds in this Howl group.\n var ids = self._howls[i]._getSoundIds();\n\n // Loop through all sounds and change the volumes.\n for (var j=0; j<ids.length; j++) {\n var sound = self._howls[i]._soundById(ids[j]);\n\n if (sound && sound._node) {\n sound._node.volume = sound._volume * vol;\n }\n }\n }\n }\n\n return self;\n }\n\n return self._volume;\n },\n\n /**\n * Handle muting and unmuting globally.\n * @param {Boolean} muted Is muted or not.\n */\n mute: function(muted) {\n var self = this || Howler;\n\n // If we don't have an AudioContext created yet, run the setup.\n if (!self.ctx) {\n setupAudioContext();\n }\n\n self._muted = muted;\n\n // With Web Audio, we just need to mute the master gain.\n if (self.usingWebAudio) {\n self.masterGain.gain.setValueAtTime(muted ? 0 : self._volume, Howler.ctx.currentTime);\n }\n\n // Loop through and mute all HTML5 Audio nodes.\n for (var i=0; i<self._howls.length; i++) {\n if (!self._howls[i]._webAudio) {\n // Get all of the sounds in this Howl group.\n var ids = self._howls[i]._getSoundIds();\n\n // Loop through all sounds and mark the audio node as muted.\n for (var j=0; j<ids.length; j++) {\n var sound = self._howls[i]._soundById(ids[j]);\n\n if (sound && sound._node) {\n sound._node.muted = (muted) ? true : sound._muted;\n }\n }\n }\n }\n\n return self;\n },\n\n /**\n * Handle stopping all sounds globally.\n */\n stop: function() {\n var self = this || Howler;\n\n // Loop through all Howls and stop them.\n for (var i=0; i<self._howls.length; i++) {\n self._howls[i].stop();\n }\n\n return self;\n },\n\n /**\n * Unload and destroy all currently loaded Howl objects.\n * @return {Howler}\n */\n unload: function() {\n var self = this || Howler;\n\n for (var i=self._howls.length-1; 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<self._howls.length; i++) {\n if (!self._howls[i]._webAudio) {\n // Get all of the sounds in this Howl group.\n var ids = self._howls[i]._getSoundIds();\n\n // Loop through all sounds and unlock the audio nodes.\n for (var j=0; j<ids.length; j++) {\n var sound = self._howls[i]._soundById(ids[j]);\n\n if (sound && sound._node && !sound._node._unlocked) {\n sound._node._unlocked = true;\n sound._node.load();\n }\n }\n }\n }\n\n // Fix Android can not play in suspend state.\n self._autoResume();\n\n // Create an empty buffer.\n var source = self.ctx.createBufferSource();\n source.buffer = self._scratchBuffer;\n source.connect(self.ctx.destination);\n\n // Play the empty buffer.\n if (typeof source.start === 'undefined') {\n source.noteOn(0);\n } else {\n source.start(0);\n }\n\n // Calling resume() on a stack initiated by user gesture is what actually unlocks the audio on Android Chrome >= 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<self._howls.length; i++) {\n self._howls[i]._emit('unlock');\n }\n };\n };\n\n // Setup a touch start listener to attempt an unlock in.\n document.addEventListener('touchstart', unlock, true);\n document.addEventListener('touchend', unlock, true);\n document.addEventListener('click', unlock, true);\n document.addEventListener('keydown', unlock, true);\n\n return self;\n },\n\n /**\n * Get an unlocked HTML5 Audio object from the pool. If none are left,\n * return a new Audio object and throw a warning.\n * @return {Audio} HTML5 Audio object.\n */\n _obtainHtml5Audio: function() {\n var self = this || Howler;\n\n // Return the next object from the pool if one exists.\n if (self._html5AudioPool.length) {\n return self._html5AudioPool.pop();\n }\n\n //.Check if the audio is locked and throw a warning.\n var testPlay = new Audio().play();\n if (testPlay && typeof Promise !== 'undefined' && (testPlay instanceof Promise || typeof testPlay.then === 'function')) {\n testPlay.catch(function() {\n console.warn('HTML5 Audio pool exhausted, returning potentially locked audio object.');\n });\n }\n\n return new Audio();\n },\n\n /**\n * Return an activated HTML5 Audio object to the pool.\n * @return {Howler}\n */\n _releaseHtml5Audio: function(audio) {\n var self = this || Howler;\n\n // Don't add audio to the pool if we don't know if it has been unlocked.\n if (audio._unlocked) {\n self._html5AudioPool.push(audio);\n }\n\n return self;\n },\n\n /**\n * Automatically suspend the Web Audio AudioContext after no sound has played for 30 seconds.\n * This saves processing/energy and fixes various browser-specific bugs with audio getting stuck.\n * @return {Howler}\n */\n _autoSuspend: function() {\n var self = this;\n\n if (!self.autoSuspend || !self.ctx || typeof self.ctx.suspend === 'undefined' || !Howler.usingWebAudio) {\n return;\n }\n\n // Check if any sounds are playing.\n for (var i=0; i<self._howls.length; i++) {\n if (self._howls[i]._webAudio) {\n for (var j=0; j<self._howls[i]._sounds.length; j++) {\n if (!self._howls[i]._sounds[j]._paused) {\n return self;\n }\n }\n }\n }\n\n if (self._suspendTimer) {\n clearTimeout(self._suspendTimer);\n }\n\n // If no sound has played after 30 seconds, suspend the context.\n self._suspendTimer = setTimeout(function() {\n if (!self.autoSuspend) {\n return;\n }\n\n self._suspendTimer = null;\n self.state = 'suspending';\n\n // Handle updating the state of the audio context after suspending.\n var handleSuspension = function() {\n self.state = 'suspended';\n\n if (self._resumeAfterSuspend) {\n delete self._resumeAfterSuspend;\n self._autoResume();\n }\n };\n\n // Either the state gets suspended or it is interrupted.\n // Either way, we need to update the state to suspended.\n self.ctx.suspend().then(handleSuspension, handleSuspension);\n }, 30000);\n\n return self;\n },\n\n /**\n * Automatically resume the Web Audio AudioContext when a new sound is played.\n * @return {Howler}\n */\n _autoResume: function() {\n var self = this;\n\n if (!self.ctx || typeof self.ctx.resume === 'undefined' || !Howler.usingWebAudio) {\n return;\n }\n\n if (self.state === 'running' && self.ctx.state !== 'interrupted' && self._suspendTimer) {\n clearTimeout(self._suspendTimer);\n self._suspendTimer = null;\n } else if (self.state === 'suspended' || self.state === 'running' && self.ctx.state === 'interrupted') {\n self.ctx.resume().then(function() {\n self.state = 'running';\n\n // Emit to all Howls that the audio has resumed.\n for (var i=0; i<self._howls.length; i++) {\n self._howls[i]._emit('resume');\n }\n });\n\n if (self._suspendTimer) {\n clearTimeout(self._suspendTimer);\n self._suspendTimer = null;\n }\n } else if (self.state === 'suspending') {\n self._resumeAfterSuspend = true;\n }\n\n return self;\n }\n };\n\n // Setup the global audio controller.\n var Howler = new HowlerGlobal();\n\n /** Group Methods **/\n /***************************************************************************/\n\n /**\n * Create an audio group controller.\n * @param {Object} o Passed in properties for this group.\n */\n var Howl = function(o) {\n var self = this;\n\n // Throw an error if no source is provided.\n if (!o.src || o.src.length === 0) {\n console.error('An array of source files must be passed with any new Howl.');\n return;\n }\n\n self.init(o);\n };\n Howl.prototype = {\n /**\n * Initialize a new Howl group object.\n * @param {Object} o Passed in properties for this group.\n * @return {Howl}\n */\n init: function(o) {\n var self = this;\n\n // If we don't have an AudioContext created yet, run the setup.\n if (!Howler.ctx) {\n setupAudioContext();\n }\n\n // Setup user-defined default properties.\n self._autoplay = o.autoplay || false;\n self._format = (typeof o.format !== 'string') ? o.format : [o.format];\n self._html5 = o.html5 || false;\n self._muted = o.mute || false;\n self._loop = o.loop || false;\n self._pool = o.pool || 5;\n self._preload = (typeof o.preload === 'boolean' || o.preload === 'metadata') ? o.preload : true;\n self._rate = o.rate || 1;\n self._sprite = o.sprite || {};\n self._src = (typeof o.src !== 'string') ? o.src : [o.src];\n self._volume = o.volume !== undefined ? o.volume : 1;\n self._xhr = {\n method: o.xhr && o.xhr.method ? o.xhr.method : 'GET',\n headers: o.xhr && o.xhr.headers ? o.xhr.headers : null,\n withCredentials: o.xhr && o.xhr.withCredentials ? o.xhr.withCredentials : false,\n };\n\n // Setup all other default properties.\n self._duration = 0;\n self._state = 'unloaded';\n self._sounds = [];\n self._endTimers = {};\n self._queue = [];\n self._playLock = false;\n\n // Setup event listeners.\n self._onend = o.onend ? [{fn: o.onend}] : [];\n self._onfade = o.onfade ? [{fn: o.onfade}] : [];\n self._onload = o.onload ? [{fn: o.onload}] : [];\n self._onloaderror = o.onloaderror ? [{fn: o.onloaderror}] : [];\n self._onplayerror = o.onplayerror ? [{fn: o.onplayerror}] : [];\n self._onpause = o.onpause ? [{fn: o.onpause}] : [];\n self._onplay = o.onplay ? [{fn: o.onplay}] : [];\n self._onstop = o.onstop ? [{fn: o.onstop}] : [];\n self._onmute = o.onmute ? [{fn: o.onmute}] : [];\n self._onvolume = o.onvolume ? [{fn: o.onvolume}] : [];\n self._onrate = o.onrate ? [{fn: o.onrate}] : [];\n self._onseek = o.onseek ? [{fn: o.onseek}] : [];\n self._onunlock = o.onunlock ? [{fn: o.onunlock}] : [];\n self._onresume = [];\n\n // Web Audio or HTML5 Audio?\n self._webAudio = Howler.usingWebAudio && !self._html5;\n\n // Automatically try to enable audio.\n if (typeof Howler.ctx !== 'undefined' && Howler.ctx && Howler.autoUnlock) {\n Howler._unlockAudio();\n }\n\n // Keep track of this Howl group in the global controller.\n Howler._howls.push(self);\n\n // If they selected autoplay, add a play event to the load queue.\n if (self._autoplay) {\n self._queue.push({\n event: 'play',\n action: function() {\n self.play();\n }\n });\n }\n\n // Load the source file unless otherwise specified.\n if (self._preload && self._preload !== 'none') {\n self.load();\n }\n\n return self;\n },\n\n /**\n * Load the audio file.\n * @return {Howler}\n */\n load: function() {\n var self = this;\n var url = null;\n\n // If no audio is available, quit immediately.\n if (Howler.noAudio) {\n self._emit('loaderror', null, 'No audio support.');\n return;\n }\n\n // Make sure our source is in an array.\n if (typeof self._src === 'string') {\n self._src = [self._src];\n }\n\n // Loop through the sources and pick the first one that is compatible.\n for (var i=0; i<self._src.length; i++) {\n var ext, str;\n\n if (self._format && self._format[i]) {\n // If an extension was specified, use that instead.\n ext = self._format[i];\n } else {\n // Make sure the source is a string.\n str = self._src[i];\n if (typeof str !== 'string') {\n self._emit('loaderror', null, 'Non-string found in selected audio sources - ignoring.');\n continue;\n }\n\n // Extract the file extension from the URL or base64 data URI.\n ext = /^data:audio\\/([^;,]+);/i.exec(str);\n if (!ext) {\n ext = /\\.([^.]+)$/.exec(str.split('?', 1)[0]);\n }\n\n if (ext) {\n ext = ext[1].toLowerCase();\n }\n }\n\n // Log a warning if no extension was found.\n if (!ext) {\n console.warn('No file extension was found. Consider using the \"format\" property or specify an extension.');\n }\n\n // Check if this extension is available.\n if (ext && Howler.codecs(ext)) {\n url = self._src[i];\n break;\n }\n }\n\n if (!url) {\n self._emit('loaderror', null, 'No codec support for selected audio sources.');\n return;\n }\n\n self._src = url;\n self._state = 'loading';\n\n // If the hosting page is HTTPS and the source isn't,\n // drop down to HTML5 Audio to avoid Mixed Content errors.\n if (window.location.protocol === 'https:' && url.slice(0, 5) === 'http:') {\n self._html5 = true;\n self._webAudio = false;\n }\n\n // Create a new sound object and add it to the pool.\n new Sound(self);\n\n // Load and decode the audio data for playback.\n if (self._webAudio) {\n loadBuffer(self);\n }\n\n return self;\n },\n\n /**\n * Play a sound or resume previous playback.\n * @param {String/Number} sprite Sprite name for sprite playback or sound id to continue previous.\n * @param {Boolean} internal Internal Use: true prevents event firing.\n * @return {Number} Sound ID.\n */\n play: function(sprite, internal) {\n var self = this;\n var id = null;\n\n // Determine if a sprite, sound id or nothing was passed\n if (typeof sprite === 'number') {\n id = sprite;\n sprite = null;\n } else if (typeof sprite === 'string' && self._state === 'loaded' && !self._sprite[sprite]) {\n // If the passed sprite doesn't exist, do nothing.\n return null;\n } else if (typeof sprite === 'undefined') {\n // Use the default sound sprite (plays the full audio length).\n sprite = '__default';\n\n // Check if there is a single paused sound that isn't ended.\n // If there is, play that sound. If not, continue as usual.\n if (!self._playLock) {\n var num = 0;\n for (var i=0; i<self._sounds.length; i++) {\n if (self._sounds[i]._paused && !self._sounds[i]._ended) {\n num++;\n id = self._sounds[i]._id;\n }\n }\n\n if (num === 1) {\n sprite = null;\n } else {\n id = null;\n }\n }\n }\n\n // Get the selected node, or get one from the pool.\n var sound = id ? self._soundById(id) : self._inactiveSound();\n\n // If the sound doesn't exist, do nothing.\n if (!sound) {\n return null;\n }\n\n // Select the sprite definition.\n if (id && !sprite) {\n sprite = sound._sprite || '__default';\n }\n\n // If the sound hasn't loaded, we must wait to get the audio's duration.\n // We also need to wait to make sure we don't run into race conditions with\n // the order of function calls.\n if (self._state !== 'loaded') {\n // Set the sprite value on this sound.\n sound._sprite = sprite;\n\n // Mark this sound as not ended in case another sound is played before this one loads.\n sound._ended = false;\n\n // Add the sound to the queue to be played on load.\n var soundId = sound._id;\n self._queue.push({\n event: 'play',\n action: function() {\n self.play(soundId);\n }\n });\n\n return soundId;\n }\n\n // Don't play the sound if an id was passed and it is already playing.\n if (id && !sound._paused) {\n // Trigger the play event, in order to keep iterating through queue.\n if (!internal) {\n self._loadQueue('play');\n }\n\n return sound._id;\n }\n\n // Make sure the AudioContext isn't suspended, and resume it if it is.\n if (self._webAudio) {\n Howler._autoResume();\n }\n\n // Determine how long to play for and where to start playing.\n var seek = Math.max(0, sound._seek > 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<ids.length; i++) {\n // Clear the end timer.\n self._clearTimer(ids[i]);\n\n // Get the sound.\n var sound = self._soundById(ids[i]);\n\n if (sound && !sound._paused) {\n // Reset the seek position.\n sound._seek = self.seek(ids[i]);\n sound._rateSeek = 0;\n sound._paused = true;\n\n // Stop currently running fades.\n self._stopFade(ids[i]);\n\n if (sound._node) {\n if (self._webAudio) {\n // Make sure the sound has been created.\n if (!sound._node.bufferSource) {\n continue;\n }\n\n if (typeof sound._node.bufferSource.stop === 'undefined') {\n sound._node.bufferSource.noteOff(0);\n } else {\n sound._node.bufferSource.stop(0);\n }\n\n // Clean up the buffer source.\n self._cleanBuffer(sound._node);\n } else if (!isNaN(sound._node.duration) || sound._node.duration === Infinity) {\n sound._node.pause();\n }\n }\n }\n\n // Fire the pause event, unless `true` is passed as the 2nd argument.\n if (!arguments[1]) {\n self._emit('pause', sound ? sound._id : null);\n }\n }\n\n return self;\n },\n\n /**\n * Stop playback and reset to start.\n * @param {Number} id The sound ID (empty to stop all in group).\n * @param {Boolean} internal Internal Use: true prevents event firing.\n * @return {Howl}\n */\n stop: function(id, internal) {\n var self = this;\n\n // If the sound hasn't loaded, add it to the load queue to stop when capable.\n if (self._state !== 'loaded' || self._playLock) {\n self._queue.push({\n event: 'stop',\n action: function() {\n self.stop(id);\n }\n });\n\n return self;\n }\n\n // If no id is passed, get all ID's to be stopped.\n var ids = self._getSoundIds(id);\n\n for (var i=0; i<ids.length; i++) {\n // Clear the end timer.\n self._clearTimer(ids[i]);\n\n // Get the sound.\n var sound = self._soundById(ids[i]);\n\n if (sound) {\n // Reset the seek position.\n sound._seek = sound._start || 0;\n sound._rateSeek = 0;\n sound._paused = true;\n sound._ended = true;\n\n // Stop currently running fades.\n self._stopFade(ids[i]);\n\n if (sound._node) {\n if (self._webAudio) {\n // Make sure the sound's AudioBufferSourceNode has been created.\n if (sound._node.bufferSource) {\n if (typeof sound._node.bufferSource.stop === 'undefined') {\n sound._node.bufferSource.noteOff(0);\n } else {\n sound._node.bufferSource.stop(0);\n }\n\n // Clean up the buffer source.\n self._cleanBuffer(sound._node);\n }\n } else if (!isNaN(sound._node.duration) || sound._node.duration === Infinity) {\n sound._node.currentTime = sound._start || 0;\n sound._node.pause();\n\n // If this is a live stream, stop download once the audio is stopped.\n if (sound._node.duration === Infinity) {\n self._clearSound(sound._node);\n }\n }\n }\n\n if (!internal) {\n self._emit('stop', sound._id);\n }\n }\n }\n\n return self;\n },\n\n /**\n * Mute/unmute a single sound or all sounds in this Howl group.\n * @param {Boolean} muted Set to true to mute and false to unmute.\n * @param {Number} id The sound ID to update (omit to mute/unmute all).\n * @return {Howl}\n */\n mute: function(muted, id) {\n var self = this;\n\n // If the sound hasn't loaded, add it to the load queue to mute when capable.\n if (self._state !== 'loaded'|| self._playLock) {\n self._queue.push({\n event: 'mute',\n action: function() {\n self.mute(muted, id);\n }\n });\n\n return self;\n }\n\n // If applying mute/unmute to all sounds, update the group's value.\n if (typeof id === 'undefined') {\n if (typeof muted === 'boolean') {\n self._muted = muted;\n } else {\n return self._muted;\n }\n }\n\n // If no id is passed, get all ID's to be muted.\n var ids = self._getSoundIds(id);\n\n for (var i=0; i<ids.length; i++) {\n // Get the sound.\n var sound = self._soundById(ids[i]);\n\n if (sound) {\n sound._muted = muted;\n\n // Cancel active fade and set the volume to the end value.\n if (sound._interval) {\n self._stopFade(sound._id);\n }\n\n if (self._webAudio && sound._node) {\n sound._node.gain.setValueAtTime(muted ? 0 : sound._volume, Howler.ctx.currentTime);\n } else if (sound._node) {\n sound._node.muted = Howler._muted ? true : muted;\n }\n\n self._emit('mute', sound._id);\n }\n }\n\n return self;\n },\n\n /**\n * Get/set the volume of this sound or of the Howl group. This method can optionally take 0, 1 or 2 arguments.\n * volume() -> 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<id.length; i++) {\n // Get the sound.\n sound = self._soundById(id[i]);\n\n if (sound) {\n sound._volume = vol;\n\n // Stop currently running fades.\n if (!args[2]) {\n self._stopFade(id[i]);\n }\n\n if (self._webAudio && sound._node && !sound._muted) {\n sound._node.gain.setValueAtTime(vol, Howler.ctx.currentTime);\n } else if (sound._node && !sound._muted) {\n sound._node.volume = vol * Howler.volume();\n }\n\n self._emit('volume', sound._id);\n }\n }\n } else {\n sound = id ? self._soundById(id) : self._sounds[0];\n return sound ? sound._volume : 0;\n }\n\n return self;\n },\n\n /**\n * Fade a currently playing sound between two volumes (if no id is passed, all sounds will fade).\n * @param {Number} from The value to fade from (0.0 to 1.0).\n * @param {Number} to The volume to fade to (0.0 to 1.0).\n * @param {Number} len Time in milliseconds to fade.\n * @param {Number} id The sound id (omit to fade all sounds).\n * @return {Howl}\n */\n fade: function(from, to, len, id) {\n var self = this;\n\n // If the sound hasn't loaded, add it to the load queue to fade when capable.\n if (self._state !== 'loaded' || self._playLock) {\n self._queue.push({\n event: 'fade',\n action: function() {\n self.fade(from, to, len, id);\n }\n });\n\n return self;\n }\n\n // Make sure the to/from/len values are numbers.\n from = Math.min(Math.max(0, parseFloat(from)), 1);\n to = Math.min(Math.max(0, parseFloat(to)), 1);\n len = parseFloat(len);\n\n // Set the volume to the start position.\n self.volume(from, id);\n\n // Fade the volume of one or all sounds.\n var ids = self._getSoundIds(id);\n for (var i=0; i<ids.length; i++) {\n // Get the sound.\n var sound = self._soundById(ids[i]);\n\n // Create a linear fade or fall back to timeouts with HTML5 Audio.\n if (sound) {\n // Stop the previous fade if no sprite is being used (otherwise, volume handles this).\n if (!id) {\n self._stopFade(ids[i]);\n }\n\n // If we are using Web Audio, let the native methods do the actual fade.\n if (self._webAudio && !sound._muted) {\n var currentTime = Howler.ctx.currentTime;\n var end = currentTime + (len / 1000);\n sound._volume = from;\n sound._node.gain.setValueAtTime(from, currentTime);\n sound._node.gain.linearRampToValueAtTime(to, end);\n }\n\n self._startFadeInterval(sound, from, to, len, ids[i], typeof id === 'undefined');\n }\n }\n\n return self;\n },\n\n /**\n * Starts the internal interval to fade a sound.\n * @param {Object} sound Reference to sound to fade.\n * @param {Number} from The value to fade from (0.0 to 1.0).\n * @param {Number} to The volume to fade to (0.0 to 1.0).\n * @param {Number} len Time in milliseconds to fade.\n * @param {Number} id The sound id to fade.\n * @param {Boolean} isGroup If true, set the volume on the group.\n */\n _startFadeInterval: function(sound, from, to, len, id, isGroup) {\n var self = this;\n var vol = from;\n var diff = to - from;\n var steps = Math.abs(diff / 0.01);\n var stepLen = Math.max(4, (steps > 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<ids.length; i++) {\n sound = self._soundById(ids[i]);\n\n if (sound) {\n sound._loop = loop;\n if (self._webAudio && sound._node && sound._node.bufferSource) {\n sound._node.bufferSource.loop = loop;\n if (loop) {\n sound._node.bufferSource.loopStart = sound._start || 0;\n sound._node.bufferSource.loopEnd = sound._stop;\n\n // If playing, restart playback to ensure looping updates.\n if (self.playing(ids[i])) {\n self.pause(ids[i], true);\n self.play(ids[i], true);\n }\n }\n }\n }\n }\n\n return self;\n },\n\n /**\n * Get/set the playback rate of a sound. This method can optionally take 0, 1 or 2 arguments.\n * rate() -> 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<id.length; i++) {\n // Get the sound.\n sound = self._soundById(id[i]);\n\n if (sound) {\n // Keep track of our position when the rate changed and update the playback\n // start position so we can properly adjust the seek position for time elapsed.\n if (self.playing(id[i])) {\n sound._rateSeek = self.seek(id[i]);\n sound._playStart = self._webAudio ? Howler.ctx.currentTime : sound._playStart;\n }\n sound._rate = rate;\n\n // Change the playback rate.\n if (self._webAudio && sound._node && sound._node.bufferSource) {\n sound._node.bufferSource.playbackRate.setValueAtTime(rate, Howler.ctx.currentTime);\n } else if (sound._node) {\n sound._node.playbackRate = rate;\n }\n\n // Reset the timers.\n var seek = self.seek(id[i]);\n var duration = ((self._sprite[sound._sprite][0] + self._sprite[sound._sprite][1]) / 1000) - seek;\n var timeout = (duration * 1000) / Math.abs(sound._rate);\n\n // Start a new end timer if sound is already playing.\n if (self._endTimers[id[i]] || !sound._paused) {\n self._clearTimer(id[i]);\n self._endTimers[id[i]] = setTimeout(self._ended.bind(self, sound), timeout);\n }\n\n self._emit('rate', sound._id);\n }\n }\n } else {\n sound = self._soundById(id);\n return sound ? sound._rate : self._rate;\n }\n\n return self;\n },\n\n /**\n * Get/set the seek position of a sound. This method can optionally take 0, 1 or 2 arguments.\n * seek() -> 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<self._sounds.length; i++) {\n if (!self._sounds[i]._paused) {\n return true;\n }\n }\n\n return false;\n },\n\n /**\n * Get the duration of this sound. Passing a sound id will return the sprite duration.\n * @param {Number} id The sound id to check. If none is passed, return full source duration.\n * @return {Number} Audio duration in seconds.\n */\n duration: function(id) {\n var self = this;\n var duration = self._duration;\n\n // If we pass an ID, get the sound and return the sprite length.\n var sound = self._soundById(id);\n if (sound) {\n duration = self._sprite[sound._sprite][1] / 1000;\n }\n\n return duration;\n },\n\n /**\n * Returns the current loaded state of this Howl.\n * @return {String} 'unloaded', 'loading', 'loaded'\n */\n state: function() {\n return this._state;\n },\n\n /**\n * Unload and destroy the current Howl object.\n * This will immediately stop all sound instances attached to this group.\n */\n unload: function() {\n var self = this;\n\n // Stop playing any active sounds.\n var sounds = self._sounds;\n for (var i=0; i<sounds.length; i++) {\n // Stop the sound if it is currently playing.\n if (!sounds[i]._paused) {\n self.stop(sounds[i]._id);\n }\n\n // Remove the source or disconnect.\n if (!self._webAudio) {\n // Set the source to 0-second silence to stop any downloading (except in IE).\n self._clearSound(sounds[i]._node);\n\n // Remove any event listeners.\n sounds[i]._node.removeEventListener('error', sounds[i]._errorFn, false);\n sounds[i]._node.removeEventListener(Howler._canPlayEvent, sounds[i]._loadFn, false);\n sounds[i]._node.removeEventListener('ended', sounds[i]._endFn, false);\n\n // Release the Audio object back to the pool.\n Howler._releaseHtml5Audio(sounds[i]._node);\n }\n\n // Empty out all of the nodes.\n delete sounds[i]._node;\n\n // Make sure all timers are cleared out.\n self._clearTimer(sounds[i]._id);\n }\n\n // Remove the references in the global Howler object.\n var index = Howler._howls.indexOf(self);\n if (index >= 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<Howler._howls.length; i++) {\n if (Howler._howls[i]._src === self._src || self._src.indexOf(Howler._howls[i]._src) >= 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<events.length; i++) {\n var isId = (id === events[i].id);\n if (fn === events[i].fn && isId || !fn && isId) {\n events.splice(i, 1);\n break;\n }\n }\n } else if (event) {\n // Clear out all events of this type.\n self['_on' + event] = [];\n } else {\n // Clear out all events of every type.\n var keys = Object.keys(self);\n for (i=0; i<keys.length; i++) {\n if ((keys[i].indexOf('_on') === 0) && Array.isArray(self[keys[i]])) {\n self[keys[i]] = [];\n }\n }\n }\n\n return self;\n },\n\n /**\n * Listen to a custom event and remove it once fired.\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 * @return {Howl}\n */\n once: function(event, fn, id) {\n var self = this;\n\n // Setup the event listener.\n self.on(event, fn, id, 1);\n\n return self;\n },\n\n /**\n * Emit all events of a specific type and pass the sound id.\n * @param {String} event Event name.\n * @param {Number} id Sound ID.\n * @param {Number} msg Message to go with event.\n * @return {Howl}\n */\n _emit: function(event, id, msg) {\n var self = this;\n var events = self['_on' + event];\n\n // Loop through event store and fire all functions.\n for (var i=events.length-1; 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<self._sounds.length; i++) {\n if (id === self._sounds[i]._id) {\n return self._sounds[i];\n }\n }\n\n return null;\n },\n\n /**\n * Return an inactive sound from the pool or create a new one.\n * @return {Sound} Sound playback object.\n */\n _inactiveSound: function() {\n var self = this;\n\n self._drain();\n\n // Find the first inactive node to recycle.\n for (var i=0; i<self._sounds.length; i++) {\n if (self._sounds[i]._ended) {\n return self._sounds[i].reset();\n }\n }\n\n // If no inactive node was found, create a new one.\n return new Sound(self);\n },\n\n /**\n * Drain excess inactive sounds from the pool.\n */\n _drain: function() {\n var self = this;\n var limit = self._pool;\n var cnt = 0;\n var i = 0;\n\n // If there are less sounds than the max pool size, we are done.\n if (self._sounds.length < limit) {\n return;\n }\n\n // Count the number of inactive sounds.\n for (i=0; i<self._sounds.length; i++) {\n if (self._sounds[i]._ended) {\n cnt++;\n }\n }\n\n // Remove excess inactive sounds, going in reverse order.\n for (i=self._sounds.length - 1; 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<self._sounds.length; i++) {\n ids.push(self._sounds[i]._id);\n }\n\n return ids;\n } else {\n return [id];\n }\n },\n\n /**\n * Load the sound back into the buffer source.\n * @param {Sound} sound The sound object to work with.\n * @return {Howl}\n */\n _refreshBuffer: function(sound) {\n var self = this;\n\n // Setup the buffer source for playback.\n sound._node.bufferSource = Howler.ctx.createBufferSource();\n sound._node.bufferSource.buffer = cache[self._src];\n\n // Connect to the correct node.\n if (sound._panner) {\n sound._node.bufferSource.connect(sound._panner);\n } else {\n sound._node.bufferSource.connect(sound._node);\n }\n\n // Setup looping and playback rate.\n sound._node.bufferSource.loop = sound._loop;\n if (sound._loop) {\n sound._node.bufferSource.loopStart = sound._start || 0;\n sound._node.bufferSource.loopEnd = sound._stop || 0;\n }\n sound._node.bufferSource.playbackRate.setValueAtTime(sound._rate, Howler.ctx.currentTime);\n\n return self;\n },\n\n /**\n * Prevent memory leaks by cleaning up the buffer source after playback.\n * @param {Object} node Sound's audio node containing the buffer source.\n * @return {Howl}\n */\n _cleanBuffer: function(node) {\n var self = this;\n var isIOS = Howler._navigator && Howler._navigator.vendor.indexOf('Apple') >= 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<data.length; ++i) {\n dataView[i] = data.charCodeAt(i);\n }\n\n decodeAudioData(dataView.buffer, self);\n } else {\n // Load the buffer from the URL.\n var xhr = new XMLHttpRequest();\n xhr.open(self._xhr.method, url, true);\n xhr.withCredentials = self._xhr.withCredentials;\n xhr.responseType = 'arraybuffer';\n\n // Apply any custom headers to the request.\n if (self._xhr.headers) {\n Object.keys(self._xhr.headers).forEach(function(key) {\n xhr.setRequestHeader(key, self._xhr.headers[key]);\n });\n }\n\n xhr.onload = function() {\n // Make sure we get a successful response back.\n var code = (xhr.status + '')[0];\n if (code !== '0' && code !== '2' && code !== '3') {\n self._emit('loaderror', null, 'Failed loading audio file with status: ' + xhr.status + '.');\n return;\n }\n\n decodeAudioData(xhr.response, self);\n };\n xhr.onerror = function() {\n // If there is an error, switch to HTML5 Audio.\n if (self._webAudio) {\n self._html5 = true;\n self._webAudio = false;\n self._sounds = [];\n delete cache[url];\n self.load();\n }\n };\n safeXhrSend(xhr);\n }\n };\n\n /**\n * Send the XHR request wrapped in a try/catch.\n * @param {Object} xhr XHR to send.\n */\n var safeXhrSend = function(xhr) {\n try {\n xhr.send();\n } catch (e) {\n xhr.onerror();\n }\n };\n\n /**\n * Decode audio data from an array buffer.\n * @param {ArrayBuffer} arraybuffer The audio data.\n * @param {Howl} self\n */\n var decodeAudioData = function(arraybuffer, self) {\n // Fire a load error if something broke.\n var error = function() {\n self._emit('loaderror', null, 'Decoding audio data failed.');\n };\n\n // Load the sound on success.\n var success = function(buffer) {\n if (buffer && self._sounds.length > 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<ids.length; i++) {\n // Get the sound.\n var sound = self._soundById(ids[i]);\n\n if (sound) {\n if (typeof pan === 'number') {\n sound._stereo = pan;\n sound._pos = [pan, 0, 0];\n\n if (sound._node) {\n // If we are falling back, make sure the panningModel is equalpower.\n sound._pannerAttr.panningModel = 'equalpower';\n\n // Check if there is a panner setup and create a new one if not.\n if (!sound._panner || !sound._panner.pan) {\n setupPanner(sound, pannerType);\n }\n\n if (pannerType === 'spatial') {\n if (typeof sound._panner.positionX !== 'undefined') {\n sound._panner.positionX.setValueAtTime(pan, Howler.ctx.currentTime);\n sound._panner.positionY.setValueAtTime(0, Howler.ctx.currentTime);\n sound._panner.positionZ.setValueAtTime(0, Howler.ctx.currentTime);\n } else {\n sound._panner.setPosition(pan, 0, 0);\n }\n } else {\n sound._panner.pan.setValueAtTime(pan, Howler.ctx.currentTime);\n }\n }\n\n self._emit('stereo', sound._id);\n } else {\n return sound._stereo;\n }\n }\n }\n\n return self;\n };\n\n /**\n * Get/set the 3D spatial position of the audio source for this sound or group relative to the global listener.\n * @param {Number} x The x-position of the audio source.\n * @param {Number} y The y-position of the audio source.\n * @param {Number} z The z-position of the audio source.\n * @param {Number} id (optional) The sound ID. If none is passed, all in group will be updated.\n * @return {Howl/Array} Returns self or the current 3D spatial position: [x, y, z].\n */\n Howl.prototype.pos = function(x, y, z, 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 position when capable.\n if (self._state !== 'loaded') {\n self._queue.push({\n event: 'pos',\n action: function() {\n self.pos(x, y, z, id);\n }\n });\n\n return self;\n }\n\n // Set the defaults for optional 'y' & 'z'.\n y = (typeof y !== 'number') ? 0 : y;\n z = (typeof z !== 'number') ? -0.5 : z;\n\n // Setup the group's spatial position if no ID is passed.\n if (typeof id === 'undefined') {\n // Return the group's spatial position if no parameters are passed.\n if (typeof x === 'number') {\n self._pos = [x, y, z];\n } else {\n return self._pos;\n }\n }\n\n // Change the spatial position of one or all sounds in group.\n var ids = self._getSoundIds(id);\n for (var i=0; i<ids.length; i++) {\n // Get the sound.\n var sound = self._soundById(ids[i]);\n\n if (sound) {\n if (typeof x === 'number') {\n sound._pos = [x, y, z];\n\n if (sound._node) {\n // Check if there is a panner setup and create a new one if not.\n if (!sound._panner || sound._panner.pan) {\n setupPanner(sound, 'spatial');\n }\n\n if (typeof sound._panner.positionX !== 'undefined') {\n sound._panner.positionX.setValueAtTime(x, Howler.ctx.currentTime);\n sound._panner.positionY.setValueAtTime(y, Howler.ctx.currentTime);\n sound._panner.positionZ.setValueAtTime(z, Howler.ctx.currentTime);\n } else {\n sound._panner.setPosition(x, y, z);\n }\n }\n\n self._emit('pos', sound._id);\n } else {\n return sound._pos;\n }\n }\n }\n\n return self;\n };\n\n /**\n * Get/set the direction the audio source is pointing in the 3D cartesian coordinate\n * space. Depending on how direction the sound is, based on the `cone` attributes,\n * a sound pointing away from the listener can be quiet or silent.\n * @param {Number} x The x-orientation of the source.\n * @param {Number} y The y-orientation of the source.\n * @param {Number} z The z-orientation of the source.\n * @param {Number} id (optional) The sound ID. If none is passed, all in group will be updated.\n * @return {Howl/Array} Returns self or the current 3D spatial orientation: [x, y, z].\n */\n Howl.prototype.orientation = function(x, y, z, 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 orientation when capable.\n if (self._state !== 'loaded') {\n self._queue.push({\n event: 'orientation',\n action: function() {\n self.orientation(x, y, z, id);\n }\n });\n\n return self;\n }\n\n // Set the defaults for optional 'y' & 'z'.\n y = (typeof y !== 'number') ? self._orientation[1] : y;\n z = (typeof z !== 'number') ? self._orientation[2] : z;\n\n // Setup the group's spatial orientation if no ID is passed.\n if (typeof id === 'undefined') {\n // Return the group's spatial orientation if no parameters are passed.\n if (typeof x === 'number') {\n self._orientation = [x, y, z];\n } else {\n return self._orientation;\n }\n }\n\n // Change the spatial orientation of one or all sounds in group.\n var ids = self._getSoundIds(id);\n for (var i=0; i<ids.length; i++) {\n // Get the sound.\n var sound = self._soundById(ids[i]);\n\n if (sound) {\n if (typeof x === 'number') {\n sound._orientation = [x, y, z];\n\n if (sound._node) {\n // Check if there is a panner setup and create a new one if not.\n if (!sound._panner) {\n // Make sure we have a position to setup the node with.\n if (!sound._pos) {\n sound._pos = self._pos || [0, 0, -0.5];\n }\n\n setupPanner(sound, 'spatial');\n }\n\n if (typeof sound._panner.orientationX !== 'undefined') {\n sound._panner.orientationX.setValueAtTime(x, Howler.ctx.currentTime);\n sound._panner.orientationY.setValueAtTime(y, Howler.ctx.currentTime);\n sound._panner.orientationZ.setValueAtTime(z, Howler.ctx.currentTime);\n } else {\n sound._panner.setOrientation(x, y, z);\n }\n }\n\n self._emit('orientation', sound._id);\n } else {\n return sound._orientation;\n }\n }\n }\n\n return self;\n };\n\n /**\n * Get/set the panner node's attributes for a sound or group of sounds.\n * This method can optionall take 0, 1 or 2 arguments.\n * pannerAttr() -> 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<ids.length; i++) {\n sound = self._soundById(ids[i]);\n\n if (sound) {\n // Merge the new values into the sound.\n var pa = sound._pannerAttr;\n pa = {\n coneInnerAngle: typeof o.coneInnerAngle !== 'undefined' ? o.coneInnerAngle : pa.coneInnerAngle,\n coneOuterAngle: typeof o.coneOuterAngle !== 'undefined' ? o.coneOuterAngle : pa.coneOuterAngle,\n coneOuterGain: typeof o.coneOuterGain !== 'undefined' ? o.coneOuterGain : pa.coneOuterGain,\n distanceModel: typeof o.distanceModel !== 'undefined' ? o.distanceModel : pa.distanceModel,\n maxDistance: typeof o.maxDistance !== 'undefined' ? o.maxDistance : pa.maxDistance,\n refDistance: typeof o.refDistance !== 'undefined' ? o.refDistance : pa.refDistance,\n rolloffFactor: typeof o.rolloffFactor !== 'undefined' ? o.rolloffFactor : pa.rolloffFactor,\n panningModel: typeof o.panningModel !== 'undefined' ? o.panningModel : pa.panningModel\n };\n\n // Update the panner values or create a new panner if none exists.\n var panner = sound._panner;\n if (panner) {\n panner.coneInnerAngle = pa.coneInnerAngle;\n panner.coneOuterAngle = pa.coneOuterAngle;\n panner.coneOuterGain = pa.coneOuterGain;\n panner.distanceModel = pa.distanceModel;\n panner.maxDistance = pa.maxDistance;\n panner.refDistance = pa.refDistance;\n panner.rolloffFactor = pa.rolloffFactor;\n panner.panningModel = pa.panningModel;\n } else {\n // Make sure we have a position to setup the node with.\n if (!sound._pos) {\n sound._pos = self._pos || [0, 0, -0.5];\n }\n\n // Create a new panner node.\n setupPanner(sound, 'spatial');\n }\n }\n }\n\n return self;\n };\n\n /** Single Sound Methods **/\n /***************************************************************************/\n\n /**\n * Add new properties to the core Sound init.\n * @param {Function} _super Core Sound init method.\n * @return {Sound}\n */\n Sound.prototype.init = (function(_super) {\n return function() {\n var self = this;\n var parent = self._parent;\n\n // Setup user-defined default properties.\n self._orientation = parent._orientation;\n self._stereo = parent._stereo;\n self._pos = parent._pos;\n self._pannerAttr = parent._pannerAttr;\n\n // Complete initilization with howler.js core Sound's init function.\n _super.call(this);\n\n // If a stereo or position was specified, set it up.\n if (self._stereo) {\n parent.stereo(self._stereo);\n } else if (self._pos) {\n parent.pos(self._pos[0], self._pos[1], self._pos[2], self._id);\n }\n };\n })(Sound.prototype.init);\n\n /**\n * Override the Sound.reset method to clean up properties from the spatial plugin.\n * @param {Function} _super Sound reset method.\n * @return {Sound}\n */\n Sound.prototype.reset = (function(_super) {\n return function() {\n var self = this;\n var parent = self._parent;\n\n // Reset all spatial plugin properties on this sound.\n self._orientation = parent._orientation;\n self._stereo = parent._stereo;\n self._pos = parent._pos;\n self._pannerAttr = parent._pannerAttr;\n\n // If a stereo or position was specified, set it up.\n if (self._stereo) {\n parent.stereo(self._stereo);\n } else if (self._pos) {\n parent.pos(self._pos[0], self._pos[1], self._pos[2], self._id);\n } else if (self._panner) {\n // Disconnect the panner.\n self._panner.disconnect(0);\n self._panner = undefined;\n parent._refreshBuffer(self);\n }\n\n // Complete resetting of the sound.\n return _super.call(this);\n };\n })(Sound.prototype.reset);\n\n /** Helper Methods **/\n /***************************************************************************/\n\n /**\n * Create a new panner node and save it on the sound.\n * @param {Sound} sound Specific sound to setup panning on.\n * @param {String} type Type of panner to create: 'stereo' or 'spatial'.\n */\n var setupPanner = function(sound, type) {\n type = type || 'spatial';\n\n // Create the new panner node.\n if (type === 'spatial') {\n sound._panner = Howler.ctx.createPanner();\n sound._panner.coneInnerAngle = sound._pannerAttr.coneInnerAngle;\n sound._panner.coneOuterAngle = sound._pannerAttr.coneOuterAngle;\n sound._panner.coneOuterGain = sound._pannerAttr.coneOuterGain;\n sound._panner.distanceModel = sound._pannerAttr.distanceModel;\n sound._panner.maxDistance = sound._pannerAttr.maxDistance;\n sound._panner.refDistance = sound._pannerAttr.refDistance;\n sound._panner.rolloffFactor = sound._pannerAttr.rolloffFactor;\n sound._panner.panningModel = sound._pannerAttr.panningModel;\n\n if (typeof sound._panner.positionX !== 'undefined') {\n sound._panner.positionX.setValueAtTime(sound._pos[0], Howler.ctx.currentTime);\n sound._panner.positionY.setValueAtTime(sound._pos[1], Howler.ctx.currentTime);\n sound._panner.positionZ.setValueAtTime(sound._pos[2], Howler.ctx.currentTime);\n } else {\n sound._panner.setPosition(sound._pos[0], sound._pos[1], sound._pos[2]);\n }\n\n if (typeof sound._panner.orientationX !== 'undefined') {\n sound._panner.orientationX.setValueAtTime(sound._orientation[0], Howler.ctx.currentTime);\n sound._panner.orientationY.setValueAtTime(sound._orientation[1], Howler.ctx.currentTime);\n sound._panner.orientationZ.setValueAtTime(sound._orientation[2], Howler.ctx.currentTime);\n } else {\n sound._panner.setOrientation(sound._orientation[0], sound._orientation[1], sound._orientation[2]);\n }\n } else {\n sound._panner = Howler.ctx.createStereoPanner();\n sound._panner.pan.setValueAtTime(sound._stereo, Howler.ctx.currentTime);\n }\n\n sound._panner.connect(sound._node);\n\n // Update the connections.\n if (!sound._paused) {\n sound._parent.pause(sound._id, true).play(sound._id, true);\n }\n };\n})();\n"],"names":["n","u","i","t","o","r","f","e","n2","l2","u2","parentNode","removeChild","i2","t2","o2","r2","arguments","f2","length","push","children","defaultProps","v","type","props","key","ref","__k","__","__b","__e","__d","__c","__h","constructor","__v","n$2","vnode","this","context","d","indexOf","base","_","b","__r","debounceRendering","sort","n3","some","__P","c","I","__n","ownerSVGElement","T","e2","c2","s2","a2","h2","p2","_2","k2","b2","m2","w2","A2","P2","Array","isArray","y","g","x","value","L","appendChild","nextSibling","insertBefore","setProperty","test","style","cssText","P","replace","toLowerCase","slice","l","addEventListener","H","$","removeEventListener","setAttribute","removeAttribute","event","v2","d2","g2","x2","contextType","__E","prototype","render","p","M","sub","state","__s","getDerivedStateFromProps","componentWillMount","componentDidMount","componentWillReceiveProps","shouldComponentUpdate","forEach","componentWillUpdate","componentDidUpdate","getChildContext","getSnapshotBeforeUpdate","m","y2","localName","nodeType","document","createTextNode","createElementNS","createElement","is","data","call","childNodes","dangerouslySetInnerHTML","attributes","name","__html","innerHTML","C","A","firstChild","s","checked","j","diffed","l3","u3","current","unmount","z","componentWillUnmount","a","O","Consumer","Provider","n4","k","splice","getDerivedStateFromError","setState","componentDidCatch","forceUpdate","Promise","then","bind","resolve","setTimeout","EMPTY$1","obj","url","route2","opts","ret","reg","match","matches","split","decodeURIComponent","join","segmentize","max","Math","i$1","charAt","param","flags","plus","star","val","map","default","rank","index","index2","path","rankSegment","rankChild","segment","customHistory","ROUTERS","subscribers","EMPTY","location","getCurrentLocation","pathname","search","canRoute","type2","history","routeTo","didRoute","node","getAttribute","href","target","route","ctrlKey","metaKey","altKey","shiftKey","button","currentTarget","prevent","stopImmediatePropagation","stopPropagation","preventDefault","String","nodeName","toUpperCase","hasAttribute","routeFromLink","eventListenersInitialized","Router","Component$$1","getCurrentUrl","delegateLinkHandler","__proto__","Object","create","Router2","static","onChange","toChildArray","getMatchingChildren","updating","this$1","unlisten","listen","location2","invoke","filter","prepareVNodeForRanking","pathRankSort","exec","newProps","cloneElement","Boolean","ref$1","active","current2","previous","previousUrl","router","Component","Link","assign","onClick","handleLinkClick","Route","component","__H","w","requestAnimationFrame","t3","cancelAnimationFrame","defineProperty","Path_1","start","relativePath2","reduce","pop","[object Object]","modelArr","contextArr","end","Path","element","modelPush","contextPush","copy","newElement","startsWith","model","ModelPath","other","every","offset","fn2","thisArg","_a","get","set","super","shift","Errors_1","errors","error","params","exact","equals","Symbol","iterator","Errors","str2","utils","escapeString","dec2hex","dec","toString","substr","arr","Uint8Array","crypto","getRandomValues","from","DataModel_1","require$$0","require$$1","utils_1","require$$2","schema2","options","_b","_c","_d","historyMax","verbose","wrapLists","schema","initialData","DataModel","listeners","JSON","stringify","historyIndex","listener","newHistory","silentInvalidate","invalidated","loose","validate","invalidate","silent","getArray","reset","id","hexId","isNaN","last","log","parse","withModel","clear","tempErrors","add","res2","getOwnPropertySymbols","entries","unwrapLists","exports","category","enabled","keep","optional","pathPush","suggest","validationOption","hook","args","canUpdate","update","mods","__spreadValues","Mod","__spreadProps","BooleanNode_1","Node_1","Base","boolean","ListNode_1","config","min","minLength","maxLength","Infinity","between","nextIndex","navigate","parseInt","newObj","_a2","list","SwitchNode_1","cases","activeCase","concat","fallback","sorter","priority","matchedCases","choices","switchNode","SwitchNode","choice","isValid","XOrList","ChoiceNode","change","ListNode","presetNode","objectNode","presets","keys","MapNode_1","validation","__1","DataModel_12","Node_12","integer","color","Number","isInteger","number","values","NumberNode","includes","Path_12","Errors_12","utils_12","require$$3","require$$4","fields","Switch","Case","defaultFields","__restKey","getActiveFields","switchValue","relativePath","getChildModelPath","childKey","caseFields","caseKeys","pathWithContext","getModel","disableSwitchContext","pathElements","activeFields","existingKeys","quoteString","filterPath","filterField","activeKeys","forcedKeys","Set","newValue","object","Reference_1","schemas2","transform","StringNode_1","isEnum","enum","isValidator","validator","collections","getValues","pool","requireTag","registry","allowTag","isDefinition","allowUnknown","additional","string","Hook","Registries","warn","__createBinding2","__exportStar","ValidationOption","__createBinding","k22","desc","getOwnPropertyDescriptor","__esModule","writable","configurable","enumerable","exports2","hasOwnProperty","require$$5","require$$6","require$$7","require$$8","require$$9","require$$10","require$$11","require$$12","require$$13","require$$14","require$$15","rfdc_1","circles","refs","refsNew","proto","Date","cloneArray","cloneProto","Map","o22","cur","ArrayBuffer","isView","copyBuffer","clone","a22","rfdcCircles","Buffer","buffer","byteOffset","modules","installedModules","moduleId","module2","loaded","__webpack_require__","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","source_map_consumer","global_mapForUri","isChromeOrEdge","navigator","userAgent","isFirefox","isSafari","isIE11Plus","documentMode","Semaphore","count","pending","incr","decr","flush","whenReady","Fetcher","sem","sync","mapForUri","cacheGlobally","ajax","uri","callback","xhr","xmlhttp","XMLHttpFactories","createXMLHTTPObject","that","onreadystatechange","readyState","open","send","fetchScript","onScriptLoad","absUrlRegex","RegExp","status","responseText","mapUri","embeddedSourceMap","SourceMapConsumer","atob","origin","lastSlash","lastIndexOf","xhr2","processSourceMaps","lines","rows","traceFormat","map2","result","origName","origNameChrome","origNameFirefox","row","line","column","origPos","originalPositionFor","formatOriginalPosition","source","origLine","XMLHttpRequest","ActiveXObject","mapStackTrace","stack","done","expected_fields","regex","skip_lines","fetcher","Error","apply","util2","binarySearch","ArraySet","base64VLQ","quickSort","aSourceMap","sourceMap","sections","IndexedSourceMapConsumer","BasicSourceMapConsumer","version","getArg","sources","names","sourceRoot","sourcesContent","mappings","file","_version","normalize","isAbsolute","relative","_names","fromArray","_sources","_mappings","generatedLine","generatedColumn","originalLine","originalColumn","lastOffset","_sections","offsetLine","offsetColumn","generatedOffset","consumer","fromSourceMap","__generatedMappings","_parseMappings","__originalMappings","_charIsMappingSeparator","aStr","aSourceRoot","GENERATED_ORDER","ORIGINAL_ORDER","GREATEST_LOWER_BOUND","LEAST_UPPER_BOUND","eachMapping","aCallback","aContext","aOrder","_generatedMappings","_originalMappings","mapping","at","allGeneratedPositionsFor","aArgs","needle","has","_findMapping","compareByOriginalPositions","lastColumn","smc","toArray","_sourceRoot","_generateSourcesContent","_file","generatedMappings","destGeneratedMappings","destOriginalMappings","srcMapping","destMapping","Mapping","previousGeneratedColumn","previousOriginalLine","previousOriginalColumn","previousSource","previousName","cachedSegments","temp","originalMappings","decode","rest","compareByGeneratedPositionsDeflated","aNeedle","aMappings","aLineName","aColumnName","aComparator","aBias","TypeError","computeColumnSpans","nextMapping","lastGeneratedColumn","hasContentsOfAllSources","size","sc","sourceContentFor","aSource","nullOnMissing","urlParse","fileUriAbsPath","scheme","generatedPositionFor","j2","sectionIndex","needle2","section2","cmp","section","bias","content","generatedPosition","sectionMappings","adjustedMapping","aName","aDefaultValue","urlRegexp","dataUrlRegexp","aUrl","auth","host","port","aParsedUrl","aPath","part","parts","up","urlGenerate","aRoot","aPathUrl","aRootUrl","joined","level","supportsNullProto","charCodeAt","aStr1","aStr2","toSetString","identity","isProtoString","fromSetString","mappingA","mappingB","onlyCompareOriginal","onlyCompareGenerated","compareByGeneratedPositionsInflated","strcmp","aLow","aHigh","aHaystack","aCompare","mid","floor","recursiveSearch","_array","_set","aArray","aAllowDuplicates","set2","len","getOwnPropertyNames","sStr","isDuplicate","idx","aIdx","base64","encode","aValue","digit","encoded","vlq","toVLQSigned","VLQ_BASE","aIndex","aOutParam","continuation","shifted","strLen","intToCharMap","charCode","ary","comparator","low","high","round","random","pivot","q2","Collections","register","core_12","StringNode2","StringNode","Reference2","Reference","ObjectNode","Name","Properties","Opt","MapNode","forceRange","bounds","allowBinomial","choiceContext","minecraft:alternative","terms","minecraft:block_state_property","block","properties","minecraft:damage_source_properties","predicate","minecraft:entity_properties","entity","minecraft:entity_scores","scores","Range","minecraft:inverted","term","minecraft:killed_by_player","inverse","BooleanNode","minecraft:location_check","offsetX","offsetY","offsetZ","minecraft:match_tool","minecraft:random_chance","chance","minecraft:random_chance_with_looting","looting_multiplier","minecraft:reference","minecraft:table_bonus","enchantment","chances","minecraft:time_check","period","minecraft:weather_check","raining","thundering","Common_12","StateChoice","item","tag","durability","potion","nbt","enchantments","levels","fluid","position","biome","feature","dimension","light","LocationFields","stat","minecraft:mined","minecraft:crafted","minecraft:used","minecraft:broken","minecraft:picked_up","minecraft:dropped","minecraft:killed","minecraft:killed_by","minecraft:custom","gamemode","advancements","recipes","stats","amplifier","duration","ambient","visible","absolute","horizontal","team","distance","is_on_fire","is_sneaking","is_sprinting","is_swimming","is_baby","equipment","player","catType","effects","is_explosion","is_fire","is_magic","is_projectile","is_lightning","bypasses_armor","bypasses_invulnerability","bypasses_magic","source_entity","direct_entity","dealt","taken","blocked","Advancement","core_1","Common_1","Predicates_1","display","icon","title","description","background","frame","show_toast","announce_to_chat","hidden","parent","criteria","requirements","rewards","function","loot","experience","requirement","trigger","conditions","minecraft:bee_nest_destroyed","num_bees_inside","minecraft:bred_animals","partner","child","minecraft:brewed_potion","minecraft:changed_dimension","to","minecraft:channeled_lightning","victims","minecraft:construct_beacon","minecraft:consume_item","minecraft:cured_zombie_villager","villager","zombie","minecraft:effects_changed","minecraft:enter_block","minecraft:enchanted_item","minecraft:entity_hurt_player","damage","minecraft:entity_killed_player","killing_blow","minecraft:filled_bucket","minecraft:fishing_rod_hooked","minecraft:hero_of_the_village","minecraft:inventory_changed","slots","empty","occupied","full","items","minecraft:item_durability_changed","delta","minecraft:killed_by_crossbow","unique_entity_types","minecraft:levitation","minecraft:location","minecraft:nether_travel","entered","exited","minecraft:placed_block","minecraft:player_hurt_entity","minecraft:player_killed_entity","minecraft:recipe_unlocked","recipe","minecraft:safely_harvest_honey","minecraft:slept_in_bed","minecraft:slide_down_block","minecraft:shot_crossbow","minecraft:summoned_entity","minecraft:tame_animal","minecraft:used_ender_eye","minecraft:used_totem","minecraft:villager_trade","minecraft:voluntary_exile","Model","Vec","Texture","ambientocclusion","gui_light","textures","elements","rotation","axis","angle","NumberEnum","rescale","shade","faces","texture","uv","cullface","tintindex","translation","scale","overrides","layer0","BlockDefinition","variants","multipart","when","VariantChildren","uvlock","weight","OR","assets","Model_1","BlockDefinition_1","initBlockDefinitionSchemas","initModelSchemas","Condition","ObjectOrList","condition","ConditionCases","LootContext","requires","allows","LootTable","LootContext_1","functionsAndConditions","functions","contextMap","collectionID","getNode","getAvailableOptions","providedContext","tableType","LootTableTypes","conditionSwtichNode","compileSwitchNode","LootConditions","functionSwtichNode","LootFunctions","entitySourceSwtichNode","LootEntitySources","copySourceSwtichNode","LootCopySources","pools","rolls","bonus_rolls","weightMod","quality","minecraft:alternatives","minecraft:dynamic","minecraft:group","minecraft:item","minecraft:loot_table","minecraft:sequence","minecraft:tag","expand","minecraft:apply_bonus","formula","parameters","bonusMultiplier","extra","probability","minecraft:copy_name","minecraft:copy_nbt","ops","getter","op","minecraft:copy_state","minecraft:enchant_randomly","minecraft:enchant_with_levels","treasure","minecraft:exploration_map","destination","decoration","zoom","search_radius","skip_existing_chunks","minecraft:fill_player_head","minecraft:limit_count","limit","minecraft:looting_enchant","minecraft:set_attributes","modifiers","minecraft:set_contents","minecraft:set_count","minecraft:set_damage","minecraft:set_loot_table","seed","minecraft:set_lore","lore","minecraft:set_name","minecraft:set_nbt","minecraft:set_stew_effect","attribute","amount","operation","slot","StringOrList","PackMcmeta","pack","pack_format","Recipe","minecraft:crafting_shaped","group","pattern","minecraft:crafting_shapeless","ingredients","minecraft:smelting","ingredient","cookingtime","minecraft:blasting","minecraft:smoking","minecraft:campfire_cooking","minecraft:stonecutting","minecraft:smithing","addition","Tags","TagBase","required","TextComponent","getSimpleString","text","parseFloat","isFinite","CommonFields","bold","italic","underlined","strikethrough","obfuscated","insertion","clickEvent","action","change_page","copy_to_clipboard","open_file","open_url","run_command","leadingSlash","allowPartial","suggest_command","hoverEvent","show_text","show_item","module","show_entity","translate","with","score","isScoreHolder","objective","selector","keybind","storage","interpret","schemas","Advancement_1","assets_1","Condition_1","LootTable_1","PackMcmeta_1","Recipe_1","Tags_1","TextComponent_1","initCommonSchemas","initPredicatesSchemas","initAdvancementSchemas","initAssetsSchemas","initConditionSchemas","initLootTableSchemas","initPackMcmetaSchemas","initRecipeSchemas","initTagsSchemas","initTextComponentSchemas","__setModuleDefault","__importStar","mod","lib","Collections_1","schemas_1","CollectionRegistry","initCollections","getSchemas_1","SchemaRegistry","initSchemas","ultrawarm","natural","piglin_safe","respawn_anchor_works","bed_works","has_raids","has_skylight","has_ceiling","coordinate_scale","ambient_light","logical_height","infiniburn","bedrock_roof_position","bedrock_floor_position","sea_level","disable_mob_generation","noise","density_factor","density_offset","simplex_surface_noise","random_density_offset","size_horizontal","size_vertical","height","sampling","xz_scale","y_scale","xz_factor","y_factor","top_slide","bottom_slide","default_block","default_fluid","spread","maxSpread","ObjectOrPreset","minecraft:overworld","DefaultDimensionType","minecraft:the_nether","shrunk","fixed_time","minecraft:the_end","DefaultNoiseSettings","minecraft:nether","minecraft:end","island_noise_override","minecraft:amplified","amplified","minecraft:caves","minecraft:floating_islands","EntityPredicate","minecraft:item_used_on_block","minecraft:player_generates_container_loot","loot_table","minecraft:player_interacted_with_entity","minecraft:target_hit","projectile","shooter","signal_strength","minecraft:thrown_item_picked_up_by_entity","Dimension","NoPreset","DimensionTypePresets","generator","minecraft:noise","settings","NoiseSettingsPresets","biome_source","minecraft:fixed","minecraft:multi_noise","preset","altitude_noise","temperature_noise","humidity_noise","weirdness_noise","biomes","minecraft:checkerboard","minecraft:vanilla_layered","large_biomes","legacy_biome_init_layer","minecraft:flat","lakes","features","layers","structures","altitude","temperature","humidity","weirdness","firstOctave","amplitudes","DimensionType","Predicates","smokey","vehicle","targeted_entity","fishing_hook","in_open_water","font","contents","Biome","surface_builder","depth","downfall","precipitation","temperature_modifier","player_spawn_friendly","creature_spawn_probability","sky_color","fog_color","water_color","water_fog_color","grass_color","foliage_color","grass_color_modifier","ambient_sound","mood_sound","sound","tick_delay","block_search_extent","additions_sound","tick_chance","music","min_delay","max_delay","replace_current_music","particle","starts","spawners","minCount","maxCount","spawn_costs","energy_budget","charge","carvers","Carver","Decorator","RangeConfig","maximum","bottom_offset","top_offset","ChanceConfig","CountConfig","UniformInt","minecraft:carving_mask","step","minecraft:chance","minecraft:count","minecraft:count_extra","extra_count","extra_chance","minecraft:count_multilayer","minecraft:count_noise","noise_level","below_noise","above_noise","minecraft:count_noise_biased","noise_to_count_ratio","noise_factor","noise_offset","minecraft:decorated","outer","inner","minecraft:depth_average","baseline","minecraft:fire","minecraft:glowstone","minecraft:lava_lake","minecraft:range","minecraft:range_biased","minecraft:range_very_biased","minecraft:water_lake","ProcessorList","processors","processor_type","rules","location_predicate","predicate_type","input_predicate","minecraft:block_age","mossiness","minecraft:block_ignore","blocks","minecraft:block_rot","integrity","minecraft:gravity","heightmap","minecraft:rule","position_predicate","output_state","output_nbt","posTestFields","min_dist","max_dist","min_chance","max_chance","minecraft:axis_aligned_linear_pos","minecraft:linear_pos","minecraft:block_match","minecraft:blockstate_match","block_state","minecraft:random_block_match","minecraft:random_blockstate_match","minecraft:tag_match","Feature","RandomPatchConfig","can_replace","project","need_water","xspread","yspread","zspread","tries","state_provider","block_placer","whitelist","blacklist","DiskConfig","radius","half_height","targets","HugeMushroomConfig","cap_provider","stem_provider","foliage_radius","OreConfig","Feature2","minecraft:bamboo","minecraft:basalt_columns","reach","minecraft:block_pile","decorator","minecraft:delta_feature","rim","rim_size","minecraft:disk","minecraft:emerald_ore","minecraft:end_gateway","exit","minecraft:end_spike","crystal_invulnerable","crystal_beam_target","spikes","centerX","centerZ","guarded","minecraft:fill_layer","minecraft:flower","minecraft:forest_rock","minecraft:huge_brown_mushroom","minecraft:huge_fungus","hat_state","decor_state","stem_state","valid_base_block","planted","minecraft:huge_red_mushroom","minecraft:ice_patch","minecraft:iceberg","minecraft:lake","minecraft:nether_forest_vegetation","minecraft:netherrack_replace_blobs","minecraft:no_bonemeal_flower","minecraft:no_surface_ore","minecraft:ore","minecraft:random_patch","minecraft:random_boolean_selector","feature_false","feature_true","minecraft:random_selector","minecraft:sea_pickle","minecraft:seagrass","minecraft:simple_block","to_place","place_on","place_in","place_under","minecraft:simple_random_selector","minecraft:spring_feature","rock_count","hole_count","requires_block_below","valid_blocks","minecraft:tree","max_water_depth","ignore_vines","minimum_size","trunk_provider","leaves_provider","trunk_placer","base_height","height_rand_a","height_rand_b","foliage_placer","minecraft:blob_foliage_placer","minecraft:bush_foliage_placer","minecraft:fancy_foliage_placer","minecraft:jungle_foliage_placer","minecraft:mega_pine_foliage_placer","crown_height","minecraft:pine_foliage_placer","minecraft:spruce_foliage_placer","trunk_height","decorators","minecraft:alter_ground","provider","minecraft:beehive","minecraft:cocoa","min_clipped_height","minecraft:two_layers_feature_size","lower_size","upper_size","minecraft:three_layers_feature_size","upper_limit","middle_size","minecraft:rotated_block_provider","minecraft:simple_state_provider","minecraft:weighted_state_provider","minecraft:column_placer","min_size","extra_size","NoiseSettings","stronghold","spacing","separation","salt","StructureFeature","templatePoolConfig","start_pool","minecraft:bastion_remnant","minecraft:buried_treasure","minecraft:mineshaft","minecraft:ocean_ruin","biome_temp","large_probability","cluster_probability","minecraft:pillager_outpost","minecraft:ruined_portal","portal_type","minecraft:shipwreck","is_beached","minecraft:village","SurfaceBuilder","top_material","under_material","underwater_material","snowy","TemplatePool","Processors","element_type","projection","minecraft:feature_pool_element","minecraft:legacy_single_pool_element","minecraft:list_pool_element","minecraft:single_pool_element","worldgen","Biome_1","Carver_1","Decorator_1","Feature_1","NoiseSettings_1","ProcessorList_1","StructureFeature_1","SurfaceBuilder_1","TemplatePool_1","initBiomeSchemas","initCarverSchemas","initDecoratorSchemas","initFeatureSchemas","initNoiseSettingsSchemas","initProcessorListSchemas","initStructureFeatureSchemas","initSurfaceBuilderSchemas","initTemplatePoolSchemas","WorldSettings","generate_features","bonus_chest","dimensions","Dimension_1","DimensionType_1","worldgen_1","WorldSettings_1","initDimensionTypeSchemas","initDimensionSchemas","initWorldgenSchemas","initWorldSettingsSchemas","minecraft:lightning_strike","lightning","bystander","minecraft:using_item","min_y","noise_caves_enabled","aquifers_enabled","deepslate_enabled","Bounds","ObjectWithType","directType","directPath","directDefault","objectDefault","defaultCase","minecraft:constant","minecraft:uniform","minecraft:binomial","minecraft:score","minecraft:context","minecraft:storage","min_inclusive","max_exclusive","minecraft:clamped_normal","mean","deviation","minecraft:trapezoid","plateau","FloatProvider","max_inclusive","minecraft:biased_to_bottom","minecraft:clamped","IntProvider","above_bottom","below_top","minecraft:very_biased_to_bottom","entitySourceNode","minecraft:value_check","range","copySourceNode","minecraft:set_banner_pattern","patterns","append","minecraft:set_enchantments","ItemModifier","FunctionCases","conditionIDSwtichNode","functionIDSwtichNode","_p","looking_at","stepping_on","passenger","lightning_bolt","blocks_set_on_fire","entity_struck","separator","CanyonConfig","vertical_rotation","shape","distance_factor","thickness","width_smoothness","horizontal_radius_factor","vertical_radius_default_factor","vertical_radius_center_factor","CaveConfig","horizontal_radius_multiplier","vertical_radius_multiplier","floor_level","yScale","lava_level","debug_settings","debug_mode","air_state","water_state","lava_state","barrier_state","minecraft:canyon","minecraft:cave","minecraft:nether_cave","minecraft:cave_surface","surface","floor_to_ceiling_search_range","minecraft:heightmap","minecraft:heightmap_spread_double","minecraft:water_depth_threshold","minecraft:protected_blocks","TargetBlockState","discard_chance_on_air_exposure","VegetationPatchConfig","vertical_range","extra_bottom_block_chance","extra_edge_column_chance","vegetation_chance","xz_radius","replaceable","ground_state","vegetation_feature","minecraft:decorated_flower","minecraft:dripstone_cluster","max_stalagmite_stalactite_height_diff","height_deviation","dripstone_block_layer_thickness","density","wetness","chance_of_dripstone_column_at_max_distance_from_center","max_distance_from_edge_affecting_chance_of_dripstone_column","max_distance_from_center_affecting_height_bias","minecraft:fossil","max_empty_corners_allowed","fossil_structures","overlay_structures","fossil_processors","overlay_processors","minecraft:geode","filling_provider","inner_layer_provider","alternate_inner_layer_provider","middle_layer_provider","outer_layer_provider","inner_placements","cannot_replace","invalid_blocks","filling","inner_layer","middle_layer","outer_layer","crack","generate_crack_chance","base_crack_size","crack_point_offset","noise_multiplier","use_potential_placements_chance","use_alternate_layer0_chance","placements_require_layer0_alternate","outer_wall_distance","distribution_points","point_offset","min_gen_offset","max_gen_offset","invalid_blocks_threshold","minecraft:glow_lichen","search_range","chance_of_spreading","can_place_on_floor","can_place_on_ceiling","can_place_on_wall","can_be_placed_on","minecraft:growing_plant","direction","allow_water","height_distribution","body_provider","head_provider","minecraft:large_dripstone","column_radius","height_scale","max_column_radius_to_cave_height_ratio","stalactite_bluntness","stalagmite_bluntness","wind_speed","min_radius_for_wind","min_bluntness_for_wind","minecraft:replace_single_block","minecraft:root_system","required_vertical_space_for_tree","root_radius","root_placement_attempts","root_column_max_height","hanging_root_radius","hanging_roots_vertical_span","hanging_root_placement_attempts","allowed_vertical_water_for_tree","root_replaceable","root_state_provider","hanging_root_state_provider","minecraft:scattered_ore","minecraft:small_dripstone","max_placements","empty_space_search_radius","max_offset_from_origin","chance_of_taller_dripstone","force_dirt","dirt_provider","sapling_provider","foliage_provider","minecraft:bending_trunk_placer","bend_length","min_height_for_leaves","minecraft:random_spread_foliage_placer","foliage_height","leaf_placement_attempts","minecraft:underwater_magma","floor_search_range","placement_radius_around_floor","placement_probability_per_valid_position","minecraft:vegetation_patch","minecraft:waterlogged_vegetation_patch","minecraft:randomized_int_state_provider","property","min_surface_level","noodle_caves_enabled","ore_veins_enabled","minecraft:nether_fossil","ItemModifier_1","initItemModifierSchemas","minecraft:fall_from_height","start_position","minecraft:ride_entity_in_lava","DefaultStructureSettings","minecraft:igloo","minecraft:mansion","minecraft:jungle_pyramid","minecraft:stronghold","minecraft:desert_pyramid","minecraft:fortress","minecraft:endcity","minecraft:swamp_hut","minecraft:monument","terrain_shaper","factor","jaggedness","surface_rule","sequence","minecraft:weighted_list","distribution","minecraft:set_potion","ClimateParameter","continentalness","erosion","minecraft:block_predicate_filter","minecraft:rarity_filter","minecraft:count_on_every_layer","minecraft:noise_threshold_count","minecraft:noise_based_count","minecraft:environment_scan","direction_of_search","max_steps","target_condition","allowed_search_condition","minecraft:height_range","minecraft:random_offset","xz_spread","y_spread","minecraft:surface_relative_threshold_filter","minecraft:surface_water_depth_filter","ConfiguredFeature","PlacedFeature","minecraft:block_column","allowed_placement","prioritize_tip","barrier","spread_width","spread_height","minecraft:pointed_dripstone","chance_of_directional_spread","chance_of_spread_radius2","chance_of_spread_radius3","allowed_tree_position","minecraft:twisting_vines","max_height","placement","NoiseProvider","MIN_VALUE","minecraft:dual_noise_provider","variety","InclusiveRange","slow_noise","slow_scale","states","minecraft:noise_threshold_provider","threshold","high_chance","default_state","low_states","high_states","minecraft:noise_provider","Offset","minecraft:all_of","predicates","minecraft:any_of","minecraft:has_sturdy_face","minecraft:inside_world_bounds","minecraft:matching_block_tag","minecraft:matching_blocks","minecraft:matching_fluids","fluids","minecraft:not","minecraft:would_survive","legacy_random_source","coordinate","points","derivative","SurfaceRule","minecraft:block","result_state","minecraft:condition","if_true","then_run","minecraft:biome","biome_is","minecraft:noise_threshold","min_threshold","max_threshold","invert","minecraft:stone_depth","surface_type","add_surface_depth","add_surface_secondary_depth","minecraft:vertical_gradient","random_name","true_at_and_below","false_at_and_above","minecraft:water","surface_depth_multiplier","add_stone_depth","minecraft:y_above","anchor","is_biome","SurfaceRule_1","initSurfaceRuleSchemas","noise_router","fluid_level_floodedness","fluid_level_spread","lava","vegetation","continents","ridges","initial_density_without_jaggedness","final_density","argument","vein_toggle","vein_ridged","vein_gap","resource","inlineSchema","Tag","StructureSet2","structure_overrides","MobCategorySpawnSettings","NoiseParameters","NoiseRange","YRange","minecraft:abs","DensityFunction","minecraft:add","argument1","argument2","minecraft:blend_density","minecraft:cache_2d","minecraft:cache_all_in_cell","minecraft:cache_once","minecraft:clamp","input","minecraft:cube","minecraft:flat_cache","minecraft:half_negative","minecraft:interpolated","minecraft:max","minecraft:min","minecraft:mul","minecraft:quarter_negative","minecraft:range_choice","when_in_range","when_out_of_range","minecraft:shift","minecraft:shift_a","minecraft:shift_b","minecraft:shifted_noise","shift_x","shift_y","shift_z","minecraft:slide","minecraft:spline","spline","min_value","max_value","minecraft:square","minecraft:squeeze","minecraft:terrain_shaper_spline","minecraft:weird_scaled_sampler","rarity_value_mapper","minecraft:y_clamped_gradient","from_y","to_y","from_value","to_value","DensityFunction_1","adapt_noise","spawn_overrides","bounding_box","spawns","StructureSet","structure","minecraft:concentric_rings","minecraft:random_spread","spread_type","locate_offset","secondary_depth_range","StructureSet_1","initDensityFunctionSchemas","initStructureSetSchemas","minecraft:allay_drop_item_on_block","minecraft:kill_mob_near_sculk_catalyst","minecraft:thrown_item_picked_up_by_player","namespace","type_specific","cat","variant","frog","slime","minecraft:old_blended_noise","smear_scale_multiplier","rottable_blocks","minecraft:multiface_growth","minecraft:sculk_patch","charge_count","amount_per_charge","spread_attempts","growth_rounds","spread_rounds","extra_rare_growths","catalyst_chance","root_placer","root_provider","trunk_offset_y","above_root_placement","above_root_provider","above_root_placement_chance","minecraft:mangrove_root_placer","mangrove_root_placement","max_root_width","max_root_length","random_skew_chance","can_grow_through","muddy_roots_in","muddy_roots_provider","minecraft:upwards_branching_trunk_placer","extra_branch_steps","extra_branch_length","place_branch_per_log_probability","minecraft:attached_to_leaves","exclusion_radius_xz","exclusion_radius_y","required_empty_blocks","block_provider","directions","minecraft:leave_vine","spawn_target","Structure","terrain_adaptation","minecraft:jigsaw","start_height","project_start_to_heightmap","max_distance_from_center","use_expansion_hack","mineshaft_type","setups","air_pocket_probability","overgrown","vines","can_be_cold","replace_with_blackstone","frequency_reduction_method","frequency","exclusion_zone","other_set","chunk_count","preferred_biomes","WorldPreset","Structure_1","WorldPreset_1","initStructureSchemas","initWorldPresetSchemas","LZString","fromCharCode","keyStrBase64","keyStrUriSafe","baseReverseDic","alphabet","character","LZString2","compressToBase64","_compress","decompressFromBase64","_decompress","getBaseValue","compressToUTF16","decompressFromUTF16","compressed","compressToUint8Array","uncompressed","compress","buf","TotalLen","current_value","decompressFromUint8Array","decompress","compressToEncodedURIComponent","decompressFromEncodedURIComponent","bitsPerChar","getCharFromInt","ii","context_dictionary","context_dictionaryToCreate","context_c","context_wc","context_w","context_enlargeIn","context_dictSize","context_numBits","context_data","context_data_val","context_data_position","pow","resetValue","getNextValue","bits","resb","maxpower","power","dictionary","enlargeIn","dictSize","numBits","entry","extra_lbits","extra_dbits","extra_blbits","bl_order","static_ltree","zero$1","static_dtree","D_CODES$1","_dist_code","_length_code","MAX_MATCH$1","base_length","base_dist","static_tree","extra_bits","extra_base","elems","max_length","has_stree","static_l_desc","static_d_desc","static_bl_desc","dyn_tree","stat_desc","max_code","d_code","dist","put_short","pending_buf","send_bits","bi_valid","bi_buf","send_code","tree","bi_reverse","code2","gen_codes","bl_count","next_code","MAX_BITS$1","init_block","LITERALS$1","dyn_ltree","dyn_dtree","bl_tree","END_BLOCK","opt_len","static_len","last_lit","bi_windup","smaller","_n2","_m2","pqdownheap","heap","heap_len","compress_block","ltree","dtree","lc","lx","d_buf","l_buf","build_tree","stree","heap_max","xbits","overflow","scan_tree","curlen","prevlen","nextlen","max_count","min_count","REP_3_6","REPZ_3_10","REPZ_11_138","send_tree","static_init_done","_tr_stored_block$1","stored_len","last2","header","window","subarray","trees","_tr_init","LENGTH_CODES$1","L_CODES$1","StaticTreeDesc","l_desc","TreeDesc","d_desc","bl_desc","_tr_stored_block","_tr_flush_block","opt_lenb","static_lenb","max_blindex","strm","data_type","black_mask","detect_data_type","BL_CODES$1","build_bl_tree","strategy","lcodes","dcodes","blcodes","rank2","_tr_tally","lit_bufsize","_tr_align","STATIC_TREES","adler32_1","adler","pos","s1","crcTable","Uint32Array","table","makeTable","crc32_1","crc","messages","2","1","0","-1","-2","-3","-4","-5","-6","constants$2","Z_NO_FLUSH","Z_PARTIAL_FLUSH","Z_SYNC_FLUSH","Z_FULL_FLUSH","Z_FINISH","Z_BLOCK","Z_TREES","Z_OK","Z_STREAM_END","Z_NEED_DICT","Z_ERRNO","Z_STREAM_ERROR","Z_DATA_ERROR","Z_MEM_ERROR","Z_BUF_ERROR","Z_NO_COMPRESSION","Z_BEST_SPEED","Z_BEST_COMPRESSION","Z_DEFAULT_COMPRESSION","Z_FILTERED","Z_HUFFMAN_ONLY","Z_RLE","Z_FIXED","Z_DEFAULT_STRATEGY","Z_BINARY","Z_TEXT","Z_UNKNOWN","Z_DEFLATED","Z_NO_FLUSH$2","Z_FULL_FLUSH$1","Z_FINISH$3","Z_BLOCK$1","Z_OK$3","Z_STREAM_END$3","Z_STREAM_ERROR$2","Z_DATA_ERROR$2","Z_BUF_ERROR$1","Z_DEFAULT_COMPRESSION$1","Z_DEFAULT_STRATEGY$1","Z_DEFLATED$2","err","errorCode","msg","zero","HASH","prev","hash_shift","hash_mask","flush_pending","avail_out","output","pending_out","next_out","total_out","flush_block_only","block_start","strstart","put_byte","putShortMSB","read_buf","avail_in","next_in","wrap","total_in","longest_match","cur_match","chain_length","max_chain_length","scan","best_len","prev_length","nice_match","w_size","MAX_MATCH","_win","wmask","w_mask","strend","scan_end1","scan_end","good_match","lookahead","match_start","fill_window","_w_size","more","window_size","hash_size","head","insert","ins_h","deflate_fast","hash_head","bflush","match_length","max_lazy_match","MIN_MATCH","deflate_slow","max_insert","prev_match","match_available","good_length","max_lazy","nice_length","max_chain","func","configuration_table","Config","max_block_size","pending_buf_size","max_start","gzhead","gzindex","method","last_flush","w_bits","hash_bits","Uint16Array","HEAP_SIZE","MAX_BITS","deflateResetKeep","deflateReset","deflateInit2","windowBits","memLevel","DeflateState","deflate_1$2","deflateInit","deflateSetHeader","deflate","beg","old_flush","hcrc","comment","time","os","level_flags","bstate","deflate_huff","deflate_rle","deflateEnd","deflateSetDictionary","dictLength","tmpDict","avail","next2","deflateInfo","_has","common","chunks","chunk","STR_APPLY_UIA_OK","_utf8len","strings","TextEncoder","c22","m_pos","str_len","buf_len","TextDecoder","out","utf16buf","c_len","buf2binstring","zstream","toString$1","Z_NO_FLUSH$1","Z_FINISH$2","Z_OK$2","Z_STREAM_END$2","Z_DEFLATED$1","chunkSize","opt","raw","gzip","ended","dict","_dict_set","Deflate$1","flush_mode","_flush_mode","onData","onEnd","inffast","_in","_out","dmax","wsize","whave","wnext","s_window","hold","lcode","dcode","lmask","dmask","here","from_source","lencode","distcode","lenbits","distbits","mode","sane","lbase","lext","dbase","dext","inftrees","lens","lens_index","codes","table_index","work","fill","mask","sym","root","curr","drop","left","used","huff","base_index","MAXBITS","offs","here_bits","here_op","here_val","extra_index","Z_FINISH$1","Z_OK$1","Z_STREAM_END$1","Z_NEED_DICT$1","Z_STREAM_ERROR$1","Z_DATA_ERROR$1","Z_MEM_ERROR$1","zswap32","havedict","check","total","wbits","ncode","nlen","ndist","have","next","lendyn","distdyn","back","was","inflateResetKeep","Int32Array","inflateReset","inflateReset2","inflateInit2","InflateState","lenfix","distfix","virgin","fixedtables","updatewindow","src2","inflate_1$2","inflateInit","inflate","put","last_bits","last_op","last_val","hbuf","order","xflags","extra_len","inflateEnd","inflateGetHeader","inflateSetDictionary","dictid","inflateInfo","gzheader","Inflate$1","last_avail_out","next_out_utf8","tail","utf8str","base64map","crypt","rotl","rotr","endian","randomBytes","bytes","bytesToWords","words","wordsToBytes","bytesToHex","hex","hexToBytes","bytesToBase64","triplet","base64ToBytes","imod4","charenc","utf8","stringToBytes","bin","unescape","encodeURIComponent","bytesToString","escape","charenc_1","isBuffer_1","readFloatLE","isBuffer","isSlowBuffer","_isBuffer","isBuffer2","md5","message","encoding","FF","_ff","GG","_gg","HH","_hh","II","_ii","aa","bb","cc","dd","_blocksize","_digestsize","digestbytes","asBytes","asString","UP","DOWN","NORTH","EAST","SOUTH","WEST","B","ALL","normal","ZERO","towards","magnitude","readNumber","readInt","readString","readBoolean","readObject","readArray","e3","t4","readMap","fromEntries","compose","readEnum","DEFAULT_NAMESPACE","SEPARATOR","substring","defineProperties","getOwnPropertyDescriptors","F","V","propertyIsEnumerable","D","U","WATER","LAVA","E","N","r3","e4","s3","STONE","G","AIR","minY","SIZE","palette","findIndex","Y","WIDTH","sectionsCount","maxY","maxSection","minSection","getSectionIndex","getBlockState","getOrCreateSection","setBlockState","X","BigInt","fromBlockPos","fromLong","toLong","asLong","minBlockX","minBlockZ","maxBlockX","maxBlockZ","getOrThrow","parser","direct","reference","Z","builtin","q","K","et","nt","it","ft","REGISTRY","fromJson","addPoint","Constant","locations","derivatives","compute","ut","mapAll","MultiPoint","mt","setSeed","nextLong","pt","MULTIPLIER","MODULUS_MASK","INCREMENT","advance","MODULUS_BITS","FLOAT_MULTIPLIER","DOUBLE_MULTIPLIER","dt","ht","ct","gt","upgradeSeedTo128bit","BIGINT_30","STAFFORD_1","MAX_ULONG","BIGINT_27","STAFFORD_2","BIGINT_31","POW2_60","SILVER_RATIO_64","GOLDEN_RATIO_64","mixStafford13","BIGINT_64","wt","rotateLeft","BIGINT_17","BIGINT_49","BIGINT_21","BIGINT_28","POW2_63","MAX_UINT","BIGINT_1","BIGINT_32","nextBits","vt","seedLo","seedHi","bt","xo","nextDouble","yo","zo","nextInt","F2","G2","getCornerNoise3D","S2","E2","I2","N2","B2","R2","T2","M2","C2","gradDot","GRADIENT","xt","sqrt","sampleAndLerp","Q","tt","ot","forkPositional","noiseLevels","St","fromHashOf","consume","lowestFreqInputFactor","lowestFreqValueFactor","maxValue","edgeValue","sample","_t","cellWidth","cellHeight","minLimitNoise","maxLimitNoise","mainNoise","xzScale","xzMainScale","xzFactor","yMainScale","yFactor","o3","getOctaveNoise","o4","a3","yt","Et","first","second","valueFactor","INPUT_FACTOR","It","Nt","Bt","Ut","rotate","down","north","east","south","west","re","offsetSampler","factorSampler","jaggednessSampler","EXTRACTOR","GLOBAL_OFFSET","peaksAndValleys","abs","ie","ne","oe","ae","le","ue","de","pe","extractor","CONTINENTS","EROSION","WEIRDNESS","RIDGES","ySize","xzSize","topSlide","bottomSlide","terrainShaper","cellCountY","minCellY","applySlides","NOISE","DENSITY_FUNCTION","v3","S3","N3","D2","U2","z2","Y2","H2","X2","Z2","J2","W2","$2","K2","Q2","tt2","et2","O2","L2","V2","ONE","holder","minValue","HolderHolder","ConstantMinMax","blendedNoise","At","OldBlendedNoise","wrapped","lastValue","lastQuartX","lastQuartZ","FlatCache","CacheAllInCell","lastBlockX","lastBlockZ","Cache2D","lastBlockY","CacheOnce","i3","h3","st","rt","computeCorner","Interpolated","noiseData","Noise","rarityValueMapper","mapper","ValueMapper","type_1","rarityValueMapper1","type_2","rarityValueMapper2","WeirdScaledSampler","shiftX","shiftY","shiftZ","ShiftedNoise","minInclusive","maxExclusive","whenInRange","whenOutOfRange","RangeChoice","offsetNoise","ShiftNoise","ShiftA","ShiftB","Shift","BlendDensity","Clamp","transformer","MappedTypes","square","cube","half_negative","quarter_negative","squeeze","Mapped","Slide","console","Ap2","Spline","shaper","point","TerrainShaperSpline","fromY","toY","fromValue","toValue","lt","YClampedGradient","he","createDisabled","Param","W","ParamPoint","TargetPoint","Parameters","things","Sampler","build","CHILDREN_PER_NODE","e5","s4","r4","space","bucketize","area","thing","RTree","RNode","buildSpace","union","RSubTree","RLeaf","ge","TEMPERATURE","VEGETATION","CONTINENTALNESS","TEMPERATURE_LARGE","VEGETATION_LARGE","CONTINENTALNESS_LARGE","EROSION_LARGE","RIDGE","SHIFT","AQUIFER_BARRIER","AQUIFER_FLUID_LEVEL_FLOODEDNESS","AQUIFER_FLUID_LEVEL_SPREAD","AQUIFER_LAVA","PILLAR","PILLAR_RARENESS","PILLAR_THICKNESS","SPAGHETTI_2D","SPAGHETTI_2D_ELEVATION","SPAGHETTI_2D_MODULATOR","SPAGHETTI_2D_THICKNESS","SPAGHETTI_3D_1","SPAGHETTI_3D_2","SPAGHETTI_3D_RARITY","SPAGHETTI_3D_THICKNESS","SPAGHETTI_ROUGHNESS","SPAGHETTI_ROUGHNESS_MODULATOR","CAVE_ENTRANCE","CAVE_LAYER","CAVE_CHEESE","NOODLE","NOODLE_THICKNESS","NOODLE_RIDGE_A","NOODLE_RIDGE_B","JAGGED","SURFACE","SURFACE_SECONDARY","instantiate","seedKey","we","be","xe","Se","_e","Ae","ye","Ee","Ie","Ne","Be","Re","Te","Me","Ce","fluidLevelFloodedness","fluidLevelSpread","initialDensityWithoutJaggedness","finalDensity","veinToggle","veinRidged","veinGap","withSettings","aquiferPositionalRandomFactory","oreVeinsPositionalRandomFactory","mapped","withCellSize","withNewNoise","withMinMax","Visitor","computePreliminarySurfaceLevelScanning","MAX_SAFE_INTEGER","cellCountXZ","cellNoiseMinY","minX","minZ","preliminarySurfaceLevel","firstCellX","firstCellZ","firstNoiseX","firstNoiseZ","noiseSizeXZ","aquifer","materialRule","fromList","rule","defaultBlock","surfaceNoise","surfaceSecondaryNoise","positionalRandoms","Pe","updateXZ","MIN_SAFE_INTEGER","isFluid","i4","e6","updateY","system","noiseChunk","getBiome","blockX","blockY","blockZ","stoneDepthAbove","stoneDepthBelow","surfaceDepth","waterHeight","surfaceSecondary","minSurfaceLevel","getSurfaceDepth","R","getSurfaceSecondary","calculateMinSurfaceLevel","getPreliminarySurfaceLevel","NOOP","getRandom","nextFloat","FALSE","TRUE","abovePreliminarySurface","not","stoneDepth","verticalGradient","water","yAbove","biomeSource","noiseRouter","legacyRandomSource","noiseChunkCache","surfaceSystem","ke","surfaceRule","ce","seaLevel","defaultFluid","globalFluidPicker","getNoiseChunk","minBlockY","u4","getFinalState","buildSurface","Oe","aquifersEnabled","wasm","disableMobGeneration","oreVeinsEnabled","cachedTextDecoder","ignoreBOM","fatal","cachegetUint8Memory0","ptr","memory","u32CvtShim","int64CvtShim","BigInt64Array","cachegetInt32Memory0","cachegetFloat64Memory0","Float64Array","WASM_VECTOR_LEN","arg","malloc","cachegetUint32Memory0","t_min","t_max","h_min","h_max","c_min","c_max","e_min","e_max","w_min","w_max","d_min","d_max","ptr0","passArrayF64ToWasm0","__wbindgen_malloc","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","passArray32ToWasm0","len13","biome_parameters","ParameterList","__wrap","t_first","t_amplitudes","h_first","h_amplitudes","c_first","c_amplitudes","e_first","e_amplitudes","w_first","w_amplitudes","s_first","s_amplitudes","low0","high0","climate_sampler","instance","klass","sampler","x_from","x_to","x_step","y_from","y_to","y_step","z_from","z_to","z_step","retptr","__wbindgen_add_to_stack_pointer","multi_noise","r0","getInt32Memory0","r1","v0","getArrayI32FromWasm0","__wbindgen_free","climate_noise","getFloat64Memory0","getArrayF64FromWasm0","__destroy_into_raw","__wbg_parameterlist_free","__wbg_sampler_free","async","URL","import_meta","imports","wbg","__wbindgen_throw","arg0","arg1","getStringFromWasm0","Request","fetch","Response","WebAssembly","instantiateStreaming","headers","arrayBuffer","Instance","load","__wbindgen_wasm_module","Dt","Mt","Ot","Lt","Yt","Gt","Ht","Vt","zt","jt","Jt","Xt","toJson","Zt","qt","buildErosionOffsetSpline","getErosionFactor","buildErosionJaggednessSpline","buildMountainRidgeSplineWithPoints","ridgeSpline","mountainContinentalness","calculateMountainRidgeZeroContinentalnessPoint","calculateSlope","buildRidgeJaggednessSpline","buildWeirdnessJaggednessSpline","islandNoiseOverride","isAmplified","hasLargeBiomes","filler","noise000","noise001","noise100","noise101","noise010","noise011","noise110","noise111","valueXZ00","valueXZ10","valueXZ01","valueXZ11","valueZ0","valueZ1","slice0","$t","allocateSlice","slice1","fillSlice","cellCountNoiseMinY","interpolators","baseNoise","makeBaseNoiseFiller","noodleCavesEnabled","terrainInfo","initializeForFirstCellX","advanceCellX","selectCellYZ","updateForY","updateForX","updateForZ","swapSlices","isNoiseCavesEnabled","temperatureNoise","humidityNoise","continentalnessNoise","erosionNoise","weirdnessNoise","pillarNoise","pillarRarenessModulator","pillarThicknessModulator","spaghetti2DNoise","spaghetti2DElevationModulator","spaghetti2DRarityModulator","spaghetti2DThicknessModulator","spaghetti3DNoise1","spaghetti3DNoise2","spaghetti3DRarityModulator","spaghetti3DThicknessModulator","spaghettiRoughnessNoise","spaghettiRoughnessModulator","bigEntranceNoise","layerNoise","cheeseNoise","noodleToggleNoise","yLimitedInterpolatable","noodleThicknessNoise","noodleRidgeANoise","noodleRidgeBNoise","jaggedNoise","createNoiseInterpolator","calculateBlendedBaseNoise","getNoiseData","getOffset","getContinentalness","getErosion","getWeirdness","shiftedX","shiftedZ","getTemperature","getHumidity","computeDimensionDensity","J","calculateBaseNoise","sampleJaggedNoise","getBigEntrances","getSpaghettiRoughness","getSpaghetti3D","getLayerizedCaverns","getCheese","getSpaghetti2D","getPillars","applySlide","quantizeSpaghettiRarity2D","sampleWithRarity","quantizeSpaghettiRarity3D","ee","Qt","noiseCavesEnabled","updateNoiseAndGenerateBaseState","te","l4","l5","d3","Kt","bedrockRoofPosition","bedrockFloorPosition","deepslateEnabled","t5","global2","define2","deps","payload","payloads","original","trace","ns","_acequire","parentId","lookup2","dep","acequire","packagedModule","normalizeModule","moduleName","packaged","define","ace","real","compliantExecNpcg","compliantLastIndexIncrement","lastIndex","global","ignoreCase","multiline","extended","sticky","array2","getNativeFlags","_xregexp","captureNames","Function","bound","Empty","defineGetter","defineSetter","lookupGetter","lookupSetter","supportsAccessors","prototypeOfArray","prototypeOfObject","_toString2","owns","__defineGetter__","__defineSetter__","__lookupGetter__","__lookupSetter__","lengthBefore","makeArray","array_splice","deleteCount","removeCount","removed","remove","tailOldPos","tailNewPos","tailCount","lengthAfterRemove","createEmpty","freezeObject","boxedString","splitString","fun","toObject","self2","thisp","reduceRight","sought","toInteger","getPrototypeOf","descriptor","setter","isPrototypeOf","toLocaleString","valueOf","Type2","exception2","definePropertyWorksOnObject","doesDefinePropertyWork","definePropertyWorksOnDom","definePropertyFallback","seal","freeze","preventExtensions","isSealed","isFrozen","isExtensible","returnValue","hasDontEnumBug","dontEnums","dontEnumsLength","keys2","dontEnum","now","getTime","ws","trim","trimBeginRegexp","trimEndRegexp","getDocumentHead","doc","getElementsByTagName","documentElement","hasCssClass","el","className","addCssClass","removeCssClass","classes","toggleCssClass","setCssClass","include","hasCssString","sheets","createStyleSheet","styleSheets","owningElement","importCssString","importCssStylsheet","link","rel","getInnerWidth","computedStyle","clientWidth","getInnerHeight","clientHeight","scrollbarWidth","document2","width","minWidth","body","noScrollbar","offsetWidth","withScrollbar","pageYOffset","getPageScrollTop","getPageScrollLeft","pageXOffset","scrollTop","scrollLeft","getComputedStyle","currentStyle","setInnerHtml","innerHtml","cloneNode","replaceChild","setInnerText","innerText","textContent","getInnerText","getParentWindow","defaultView","parentWindow","inherits","ctor","superCtor","super_","mixin","implement","oop","Keys","MODIFIER_KEYS","16","17","18","224","KEY_MODS","ctrl","alt","option","meta","command","cmd","FUNCTION_KEYS","8","9","13","19","27","32","33","34","35","36","37","38","39","40","44","45","46","96","97","98","99","100","101","102","103","104","105","-13","112","113","114","115","116","117","118","119","120","121","122","123","144","145","PRINTABLE_KEYS","48","49","50","51","52","53","54","55","56","57","59","61","65","66","67","68","69","70","71","72","73","74","75","76","77","78","79","80","81","82","83","84","85","86","87","88","89","90","107","109","110","186","187","188","189","190","191","192","219","220","221","222","111","106","enter","esc","del","keyCodeToString","keyCode","keyString","OS","LINUX","MAC","WINDOWS","getOS","isMac","isLinux","platform","ua","isWin","isIE","appName","isOldIE","isGecko","isMozilla","Controllers","controllers","product","isOldGecko","isOpera","opera","isWebKit","isChrome","isAIR","isIPad","isChromeOS","isIOS","MSStream","useragent","pressedKeys","ts","addListener","elem","attachEvent","wrapper","_wrapper","removeListener","detachEvent","stopEvent","cancelBubble","getButton","4","capture","eventHandler","releaseCaptureHandler","onMouseUp","addTouchMoveListener","startx","starty","touchObj","touches","clientX","clientY","wheelX","wheelY","addMouseWheelListener","wheelDeltaX","wheelDeltaY","wheelDelta","deltaMode","DOM_DELTA_PIXEL","deltaX","deltaY","DOM_DELTA_LINE","DOM_DELTA_PAGE","HORIZONTAL_AXIS","detail","addMultiMouseDownListener","timeouts","callbackName","startX","startY","timer","clicks","eventNames","3","isNewClick","_clicks","onMousedown","onDblclick","getModifierHash","hashId","getModifierState","altGr","keyLocation","timeStamp","defaultPrevented","getModifierString","addCommandKeyListener","lastKeyDownKeyCode","normalizeCommandKeys","lastDefaultPrevented","resetPressedKeys","postMessage","nextTick","win","messageName","nextFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","msRequestAnimationFrame","oRequestAnimationFrame","stringReverse","reverse","stringRepeat","stringTrimLeft","stringTrimRight","copyObject","copyArray","deepCopy","arrayToMap","createMap","arrayRemove","escapeRegExp","escapeHTML","getMatchOffsets","regExp","deferredCall","fcn","deferred","timeout","cancel","schedule","isPending","delayedCall","defaultTimeout","_self","delay","clearTimeout","dom","lang","KEYS","MODS","BROKEN_SETDATA","USE_IE_MIME_TYPE","TextInput","isTouchPad","opacity","PLACEHOLDER","copied","cut","pasted","inComposition","tempStyle","isSelectionEmpty","isFocused","activeElement","onBlur","onFocus","focus","blur","syncSelection","resetSelection","syncValue","isEmpty","inputHandler","selectionStart","selectionEnd","setSelectionRange","selection","setInputHandler","cb","getInputHandler","afterContextMenu","sendText","onPaste","execCommand","onTextInput","onInput","handleClipboardData","forceIEMime","clipboardData","mime","setData","getData","doCopy","isCut","getCopyText","onCut","onCopy","select","onCommandKey","text2","selectAll","closeTimeout","onCompositionUpdate","$readOnly","undo","canUndo","getRange","session","markUndoGroup","setRange","clearSelection","onCompositionEnd","syncComposition","renderer","$keepTextAreaAtCursor","$moveTextAreaToCursor","onCompositionStart","$undoManager","on","getElement","setReadOnly","readOnly","onContextMenu","_emit","domEvent","moveToMouse","bringToFront","rect","container","getBoundingClientRect","top","borderTopWidth","borderLeftWidth","maxTop","bottom","move","onContextMenuClose","textInput","scroller","typingResetTimeout","typing","detectArrowKeys","home","right","TextInputIOS","mouseHandler","$clickSelection","editor","setDefaultHandler","onMouseDown","onDoubleClick","onTripleClick","onQuadClick","onMouseWheel","onTouchMove","selectByLines","extendSelectionBy","selectByWords","cursor","ev","inSelection","getDocumentPosition","mousedownEvent","selectionEmpty","getSelectionRange","$blockScrolling","moveToPosition","$focusTimout","inMultiSelectMode","captureMouse","startSelect","waitForClickSelection","screenToTextCoordinates","getShiftKey","selectToPosition","setCapture","setStyle","comparePoint","orientedRange","calcRangeOrientation","setSelectionAnchor","scrollCursorIntoView","unitName","cmpStart","cmpEnd","selectEnd","selectAllEnd","selectByWordsEnd","selectByLinesEnd","unsetStyle","releaseCapture","focusWait","ax","ay","bx","by","getBracketRange","getWordRange","isMultiLine","contains","getLineRange","getAccelKey","$lastScroll","vx","vy","allowed","prevScroll","dt2","canScroll","isScrollableBy","speed","scrollBy","stop","DefaultHandlers","isOpen","$element","$parentNode","$init","setText","setHtml","html","setPosition","setClassName","show","hide","getHeight","offsetHeight","getWidth","destroy","Tooltip","GutterTooltip","windowWidth","innerWidth","windowHeight","innerHeight","GutterHandler","tooltipTimeout","mouseEvent","tooltipAnnotation","gutter","$gutterLayer","tooltip","_signal","hideTooltip","getRegion","selectTo","srcElement","$tooltipFollowsMouse","isMousePressed","annotation","$annotations","getLength","screenRow","pixelToScreenCoordinates","$pos","documentToScreenRow","$gutter","MouseEvent","$inSelection","propagationStopped","selectionRange","blankImage","src","x3","dragSelectionMarker","timerId","dragCursor","dragOperation","isInternal","autoScrollStartTime","cursorMovedTime","cursorPointOnCaretMoved","mouseTarget","counter","prevCursor","vMovement","hMovement","moveCursorToPosition","calcDistance","lineHeight","layerConfig","characterWidth","editorRect","offsets","nearestXOffset","nearestYOffset","scrollCursor","vScroll","hScroll","toOrientedRange","addMarker","getSelectionStyle","$cursorLayer","setBlinking","setInterval","onDragInterval","onMouseMove","removeMarker","fromOrientedRange","getReadOnly","onDragStart","cancelDrag","draggable","dataTransfer","effectAllowed","setDragImage","clearData","getTextRange","onDragEnd","dropEffect","setCursorStyle","onDragEnter","canAccept","getDropEffect","onDragOver","onMouseMoveTimer","onDragLeave","onDrop","moveText","dropData","types","copyAllowed","copyModifierState","dragWait","getDragDelay","startDrag","dragWaitEnd","dragReadyEnd","cursorStyle","onMouseDrag","dragDrop","$dragEnabled","eventTarget","unselectable","DragdropHandler","loadScript","onload","isAbort","qualifyURL","EventEmitter","_dispatchEvent","eventName","_eventRegistry","_defaultHandlers","defaultHandler","once","newCallback","handlers","_disabled_","old","disabled","removeDefaultHandler","capturing","off","removeAllListeners","optionsProvider","setOptions","optList","setOption","getOptions","optionNames","$options","getOption","forwardTo","handlesSet","AppConfig","$defaultOptions","defineOptions","initialValue","resetOptions","setDefaultValue","setDefaultValues","optionHash","reportError","net","workerPath","modePath","themePath","basePath","suffix","$moduleUrls","scriptOptions","scriptUrl","currentScript","_currentScript","scripts","ownerDocument","script","attr","m1","all","moduleUrl","sep","re2","setModuleUrl","subst","$loading","loadModule","onLoad","moduleType","afterLoad","module3","onLoad2","init","init2","DefaultGutterHandler","MouseHandler","focusEditor","hasFocus","getMouseEventTarget","onMouseEvent","scrollBarV","scrollBarH","gutterEl","$dragDelay","insideStart","mousemove","$scrollSpeed","mouseMoveHandler","which","releaseMouse","$mouseMoved","onCaptureEnd","$onCaptureMouseMove","onCaptureInterval","cancelContextMenu","scrollSpeed","dragDelay","dragEnabled","focusTimout","tooltipFollowsMouse","FoldHandler","fold","getFoldAt","removeFold","expandFold","foldWidgets","onFoldWidgetClick","getParentFoldRangeData","firstRange","getLine","addFold","keyUtil","KeyBinding","$editor","$data","$handlers","commands","kb","removeKeyboardHandler","$defaultHandler","addKeyboardHandler","setKeyboardHandler","handleKeyboard","attach","detach","getKeyboardHandler","getStatusText","$callKeyboardHandlers","toExecute","success","passEvent","dir","hiLevel","lastArabic","hasUBAT_B","hasUBAT_S","impTab_LTR","impTab_RTL","ET","BN","UnicodeTBL00","UnicodeTBL20","lev","lo","hi","tmp","chars","ix","wType","nType","cType","rtlCandidate","ch","uc","EN","ON_R","AN","R_H","DOT","doBidiReorder","textCharTypes","isRtl","logicalFromVisual","bidiLevels","charTypes","impTab","prevState","newClass","newLevel","newState","condPos","_getCharacterType","_getCharClass","hasBidiCharacters","getVisualFromLogicalIdx","logIdx","rowMap","bidiUtil","bidiRE","BidiHandler","bidiMap","currentRow","charWidths","EOL","showInvisibles","isRtlDir","wrapIndent","isLastRow","EOF","seenBidi","isBidiRow","docRow","splitIndex","updateRowLine","updateBidiMap","getDocumentRow","rowCache","$screenRowCache","$getRowCacheIndex","$docRowCache","getSplitIndex","currentIndex","prevIndex","$useWrapMode","splits","$wrapData","indent","isFullWidth","getScreenTabSize","endOfLine","markAsDirty","updateCharacterWidths","fontMetrics","$characterSize","bidiCharWidth","$measureCharWidth","getShowInvisibles","setShowInvisibles","setEolChar","eolChar","setTextDir","getPosLeft","col","visualIdx","getSelections","startCol","endCol","selections","selColMin","selColMax","isSelected","isSelectedPrev","visIdx","offsetToCol","posX","logicalIdx","charWidth","startRow","startColumn","endRow","endColumn","isEqual","compare","compareRange","containsRange","intersects","isEnd","isStart","setStart","setEnd","inside","insideEnd","compareStart","compareEnd","compareInside","clipRows","firstRow","lastRow","fromPoints","extend","collapseRows","toScreenRange","screenPosStart","documentToScreenPosition","screenPosEnd","moveBy","comparePoints","p1","Selection","getDocument","lead","selectionLead","createAnchor","selectionAnchor","$isEmpty","$keepDesiredColumnOnChange","$desiredColumn","getCursor","getPosition","getSelectionAnchor","getSelectionLead","shiftSelection","columns","moveCursorTo","isBackwards","$moveSelection","mover","moveTo","selectUp","moveCursorUp","selectDown","moveCursorDown","selectRight","moveCursorRight","selectLeft","moveCursorLeft","selectLineStart","moveCursorLineStart","selectLineEnd","moveCursorLineEnd","selectFileEnd","moveCursorFileEnd","selectFileStart","moveCursorFileStart","selectWordRight","moveCursorWordRight","selectWordLeft","moveCursorWordLeft","selectWord","selectAWord","getAWordRange","excludeLastChar","rowEnd","rowStart","foldLine2","getFoldLine","selectLine","moveCursorBy","wouldMoveIntoSoftTab","tabSize","isTabStop","getTabSize","getNavigateWithinSoftTabs","firstColumnPosition","screenToDocumentPosition","leadingSpace","getDisplayLine","$useEmacsStyleLineStart","lineEnd","getDocumentLastRowColumnPosition","textEnd","moveCursorLongWordRight","rightOfCursor","nonTokenRe","tokenRe","moveCursorLongWordLeft","getFoldStringAt","leftOfCursor","$shortWordEndIndex","whitespaceRe","moveCursorShortWordRight","moveCursorShortWordLeft","$selectLongWords","screenPos","$bidiHandler","docPos","lineWidgets","keepDesiredColumn","moveCursorToScreen","desiredColumn","getRangeOfMovements","toJSON","rangeCount","ranges","fromJSON","rangeList","toSingleRange","addRange","MAX_TOKEN_COUNT","Tokenizer2","regExps","matchMappings","ruleRegExps","matchTotal","defaultToken","flag","splitterRurles","caseInsensitive","adjustedregex","matchcount","token","groupCount","tokenArray","onMatch","$arrayTokens","$applyToken","removeCapturingGroups","splitRegex","rule2","createSplitterRegexp","$setMaxTokenCount","tokens2","inChClass","lastCapture","parenOpen","parenClose","getLineTokens","startState","currentState","matchAttempts","skipped","consumeLineEnd","merge","unshift","tokens","Tokenizer","TextHighlightRules","$rules","addRules","prefix","nextState","getRules","embedRules","HighlightRules","escapeRules","$embeds","getEmbeds","pushState","popState","normalizeRules","processed","toInsert","stateName","includeName","noEscape","keywordMap","createKeywordMapper","splitChar","keywords","$keywordList","getKeywords","$keywords","Behaviour","$behaviours","addBehaviours","behaviours","inherit","getBehaviours","TokenIterator","initialRow","initialColumn","$session","$row","$rowTokens","getTokens","getTokenAt","$tokenIndex","stepBackward","stepForward","rowCount","getCurrentToken","getCurrentTokenRow","getCurrentTokenColumn","rowTokens","tokenIndex","getCurrentTokenPosition","getCurrentTokenRange","SAFE_INSERT_IN_TOKENS","SAFE_INSERT_BEFORE_TOKENS","contextCache","defaultQuotes","\"","'","initContext","multiSelect","autoInsertedBrackets","autoInsertedRow","autoInsertedLineEnd","maybeInsertedBrackets","maybeInsertedRow","maybeInsertedLineStart","maybeInsertedLineEnd","getWrapped","selected","opening","closing","rowDiff","CstyleBehaviour","getCursorPosition","getWrapBehavioursEnabled","isSaneInsertion","braces","recordAutoInsert","recordMaybeInsert","$findOpeningBracket","isAutoInsertedClosing","popAutoInsertedClosing","isMaybeInsertedClosing","clearMaybeInsertedClosing","openBracePos","findMatchingBracket","next_indent","$getIndent","indent2","getTabString","quotes","$mode","$quotes","lineCommentStart","quote2","leftChar","rightChar","rightToken","pair","stringBefore","stringAfter","wordRe","isWordBefore","isWordAfter","$matchTokenType","iterator2","bracket","packages","codePoint","Ll","Lu","Lm","Lo","Mn","Mc","Nd","Nl","No","Pd","Ps","Pi","Pf","Pc","Po","S","Sm","Sc","Sk","So","Zs","Zl","Zp","Cc","Cf","Co","Cs","Cn","unicode","Mode","$defaultBehaviour","getTokenizer","$tokenizer","$highlightRules","$highlightRuleConfig","blockComment","toggleCommentLines","ignoreBlankLines","shouldRemove","minIndent","insertAtTabStop","regexpStart","getUseSoftTabs","uncomment","shouldInsertSpace","removeInLine","commentWithSpace","insertInLine","testRemove","before","after","spaces","lineCommentEnd","regexpEnd","minEmptyLength","toggleBlockComment","colDiff","initialRange","startRange","endRange","getNextLineIndent","tab","checkOutdent","autoOutdent","createWorker","createModeDelegates","$modes","delegations","scope","functionName","$delegator","transformAction","$behaviour","completionKeywords","ruleItr","aLength","$createKeywordList","getCompletions","word","$id","applyDelta","docLines","doNotValidate","Anchor","$onChange","point1","point2","equalPointsInOrder","bColIsAfter","$clipPositionToDocument","$insertRight","moveIfEqual","deltaIsInsert","deltaRowShift","deltaColShift","deltaStart","deltaEnd","$pointsInOrder","$getTransformedPoint","noClip","Document","textOrLines","$lines","insertMergedLines","setValue","getValue","getAllLines","getNewLineCharacter","$split","$detectNewLine","$autoNewLine","$newLineMode","setNewLineMode","newLineMode","getNewLineMode","isNewLine","getLines","getLinesForRange","insertLines","insertFullLines","removeLines","removeFullLines","insertNewLine","clippedPos","clonePos","$clipPosition","deleteFirstNewLine","deleteLastNewLine","deletedLines","removeNewLine","applyDeltas","deltas","revertDeltas","revertDelta","isInsert","$splitAndapplyLargeDelta","MAX","indexToPosition","newlineLength","positionToIndex","BackgroundTokenizer","tokenizer","running","currentLine","$worker","workerStart","endLine","startLine","processedLines","$tokenizeRow","fireUpdateEvent","setTokenizer","setDocument","scheduleStart","$updateOnChange","getState","SearchHighlight","clazz","setRegexp","MAX_RANGES","cache","markerLayer","drawSingleLineMarker","foldData","folds","setFoldLine","shiftRow","sameRow","foldLine","containsRow","walk","lastEnd","isNewRow","placeholder","getNextFoldTo","kind","addRemoveChars","foldBefore","newFoldLine","FoldLine","foldLineNext","idxToPosition","lastFoldEndColumn","RangeList","pointIndex","excludeEdges","startIndex","endIndex","addList","substractPoint","containsPoint","rangeAtPoint","clipped","removeAll","lineDif","Fold","subFolds","subFold","collapseChildren","addSubFold","afterStart","restoreRange","Folding","side","getFoldsInRange","foldLines","$foldData","foundFolds","getFoldsInRangeList","getAllFolds","lastFold","startFoldLine","getNextFoldLine","getFoldedRowCount","$addFoldLine","added","$clipRangeToDocument","startFold","endFold","removeFolds","$updateWrapData","$updateRowLengthCache","$modified","addFolds","$updating","cloneFolds","foldAll","expandFolds","unfold","expandInner","isRowFolded","startFoldRow","getRowFoldEnd","getRowFoldStart","getFoldDisplayLine","textLine","$cloneFoldData","fd","toggleFold","tryToUnfold","bracketPos","getCommentFoldRange","getFoldWidget","getFoldWidgetRange","$foldStyles","manual","markbegin","markbeginend","$foldStyle","setFoldStyle","$foldMode","$setFolding","foldMode","$updateFoldWidgets","$tokenizerUpdateFoldWidgets","updateFoldWidgets","tokenizerUpdateFoldWidgets","ignoreCurrent","fw","siblings","$toggleFoldWidget","toggleFoldWidget","toggleParent","BracketMatch","chr","charBeforeCursor","$findClosingBracket","$brackets",")","(","]","[","{","}","typeRe","openBracket","valueIndex","closingBracket","valueLength","TextMode","EditSession","$breakpoints","$decorations","$frontMarkers","$backMarkers","$markerId","$undoSelect","$uid","onChangeFold","setMode","bgTokenizer","resetCaches","$resetRowCache","cacheArray","$rowLengthCache","removedFolds","$updateInternalDataOnChange","$fromUndo","ignore","$deltasDoc","$deltasFold","$informUndoManager","$deltas","setUndoManager","getUndoManager","getSelection","undoManager","$syncInformUndoManager","execute","mergeUndoDeltas","$defaultUndoManager","redo","setUseSoftTabs","$useSoftTabs","$indentWithTabs","setTabSize","$tabSize","setNavigateWithinSoftTabs","navigateWithinSoftTabs","$navigateWithinSoftTabs","$overwrite","setOverwrite","overwrite","getOverwrite","toggleOverwrite","addGutterDecoration","removeGutterDecoration","getBreakpoints","setBreakpoints","clearBreakpoints","setBreakpoint","clearBreakpoint","inFront","marker","addDynamicMarker","markerId","markers","getMarkers","highlight","$searchHighlight","highlightLines","setAnnotations","annotations","getAnnotations","clearAnnotations","inToken","wordRange","setUseWorker","useWorker","getUseWorker","$useWorker","onReloadTokenizer","$modeId","$onChangeMode","$isPlaceholder","$stopWorker","$startWorker","attachToSession","wrapMethod","$wrapMethod","foldingRules","terminate","getMode","$scrollTop","setScrollTop","getScrollTop","$scrollLeft","setScrollLeft","getScrollLeft","getScreenWidth","$computeWidth","getLineWidgetMaxWidth","screenWidth","lineWidgetsWidth","lineWidgetWidth","force","$wrapLimit","cache2","longestScreenLine","foldIndex","foldStart","$getStringScreenWidth","undoChanges","dontSelect","lastUndoRange","$getUndoSelection","foldDelta","redoChanges","setUndoSelect","enable","isUndo","delta2","fromRange","toPosition","toRange","collDiff","oldStart","newStart","indentRows","indentString2","outdentRows","rowRange","deleteRange","$moveLines","diff","$clipRowToDocument","MAX_VALUE","moveLinesUp","moveLinesDown","duplicateLines","$clipColumnToRow","$wrapLimitRange","setUseWrapMode","useWrapMode","getUseWrapMode","setWrapLimitRange","adjustWrapLimit","desiredLimit","$printMargin","limits","wrapLimit","$constrainWrapLimit","getWrapLimit","setWrapLimit","getWrapLimitRange","foldLineBefore","wrapData","row2","walkTokens","$getDisplayTokens","PLACEHOLDER_START","PLACEHOLDER_BODY","$computeWrapSplits","displayLength","lastSplit","lastDocSplit","isCode","$wrapAsCode","indentedSoftWrap","$indentedSoftWrap","maxIndent","displayed","indentation","getWrapIndent","minSplit","maxScreenColumn","screenColumn","getRowLength","getRowLineCount","getRowWrapIndent","getScreenLastRowColumn","documentToScreenColumn","getDocumentLastRowColumn","docColumn","getRowSplitData","screenToDocumentRow","screenToDocumentColumn","rowLength","doCache","maxRow","foldStartRow","wrapRow","screenRowOffset","getScreenLength","screenRows","$getWidgetScreenLength","$setFontMetrics","fm","$enableVarChar","getCharacterWidth","$wrap","firstLineNumber","useSoftTabs","Search","find","$matchIterator","sr","er","ec","skipCurrent","findAll","$assembleRegExp","$isMultiLine","prevRange","replacement","preserveCase","$disableFakeMultiline","wholeWord","wordBoundary","addWordBoundary","modifier","caseSensitive","$assembleMultilineRegExp","backwards","forEachInLine","commandKeyBinding","addCommands","$singleCommand","HashHandler","bindKey","isDefault","addCommand","removeCommand","_buildKeyHash","keepCommand","ckb","keyId","cmdGroup","keyPart","chain","keyPart2","binding2","parseKeys","id2","_addCommandToBinding","binding","removeCommands","bindKeys","keyList","findKeyCommand","$keyChain","MultiHashHandler","CommandManager","byName","isAvailable","toggleRecording","$inReplay","recording","macro","$addCommandToMacro","oldMacro","replay","trimMacro","mac","showSettingsMenu","showErrorMarker","scrollIntoView","centerSelection","prompt","gotoLine","multiSelectAction","getAllRanges","findNext","findPrevious","aceCommandGroup","navigateFileStart","navigateUp","times","navigateFileEnd","navigateDown","navigateWordLeft","navigateLineStart","navigateLeft","navigateWordRight","navigateLineEnd","navigateRight","selectPageDown","scrollPageDown","gotoPageDown","selectPageUp","scrollPageUp","gotoPageUp","jumpToMatching","$handlePaste","duplicateSelection","sortLines","modifyNumber","copyLinesUp","copyLinesDown","removeToLineStart","removeToLineEnd","removeWordLeft","removeWordRight","blockOutdent","blockIndent","splitLine","transposeLetters","transposeSelections","firstLineEndCol","selectedCount","insertLine","curLine","newRanges","exitMultiSelectMode","defaultCommands","Editor","getContainerElement","getTextAreaContainer","textarea","$mouseHandler","keyBinding","$search","$historyTracker","$initOperationListeners","_$emitInputEvent","setSession","startOperation","endOperation","$opResetTimer","curOp","docChanged","selectionChanged","prevOp","commadEvent","previousCommand","config2","scrollSelectionIntoView","animateScrolling","$mergeableCommands","$mergeUndoDeltas","mergeableCommands","shouldMerge","mergeNextCommand","sequenceStartTime","keyboardHandler","$keybindingId","handler","oldSession","$onDocumentChange","$onTokenizerUpdate","$onChangeTabSize","$onChangeWrapLimit","$onChangeWrapMode","$onChangeFold","$onChangeFrontMarker","$onChangeBackMarker","$onChangeBreakpoint","$onChangeAnnotation","$onCursorChange","$onScrollTopChange","$onScrollLeftChange","$onSelectionChange","onDocumentChange","onChangeMode","onTokenizerUpdate","onChangeTabSize","onChangeWrapLimit","onChangeWrapMode","onChangeFrontMarker","onChangeBackMarker","onChangeBreakpoint","onChangeAnnotation","onCursorChange","onScrollTopChange","onScrollLeftChange","onSelectionChange","updateFull","oldEditor","getSession","cursorPos","resize","onResize","setTheme","theme","getTheme","getFontSize","setFontSize","$highlightBrackets","$bracketHighlight","$highlightPending","getMatching","$highlightTags","$highlightTagPending","$tagHighlight","prevToken","sbm","$isFocused","showCursor","visualizeFocus","hideCursor","visualizeBlur","$cursorChange","updateCursor","updateLines","$updateHighlightActiveLine","scrollToY","scrollToX","$highlightActiveLine","$selectionStyle","$maxLines","$minLines","$highlightLineMarker","$selectionMarker","$highlightSelectedWord","$getSelectionHighLightRegexp","startOuter","endOuter","lineCols","updateFrontMarkers","updateBackMarkers","updateBreakpoints","updateText","getSelectedText","inVirtualSelectionMode","getBehavioursEnabled","transform2","$mergeNextCommand","lineState","shouldOutdent","lineIndent","setScrollSpeed","getScrollSpeed","setDragDelay","setSelectionStyle","setHighlightActiveLine","shouldHighlight","getHighlightActiveLine","setHighlightGutterLine","getHighlightGutterLine","setHighlightSelectedWord","getHighlightSelectedWord","setAnimatedScroll","shouldAnimate","getAnimatedScroll","setDisplayIndentGuides","getDisplayIndentGuides","setShowPrintMargin","showPrintMargin","getShowPrintMargin","setPrintMarginColumn","getPrintMarginColumn","setBehavioursEnabled","setWrapBehavioursEnabled","setShowFoldWidgets","getShowFoldWidgets","setFadeFoldWidgets","fade","getFadeFoldWidgets","new_range","swap","originalRange","$getSelectedRows","getNumberAt","_numberRx","charRange","nr","fp","decimals","nnr","toFixed","replaceRange","sel","endPoint","moved","totalDiff","rangeIndex","subRows","showComposition","setCompositionText","hideComposition","getFirstVisibleRow","getLastVisibleRow","isRowVisible","isRowFullyVisible","getFirstFullyVisibleRow","getLastFullyVisibleRow","$getVisibleRowCount","getScrollBottomRow","getScrollTopRow","$moveByPage","scrollToRow","scrollToLine","center","animate","alignCursor","getCursorPositionScreen","matchType","bracketType","found","brackets","lineNumber","navigateTo","replaced","$tryReplace","replaceAll","getLastSearchOptions","newRange","preventScroll","revealRange","setAutoScrollEditorIntoView","shouldScroll","$scrollAnchor","scrollAnchor","onChangeSelection","onBeforeRender","onAfterRender","searchBox","$pixelPos","enable2","$resetCursorStyle","$cursorStyle","cursorLayer","setSmoothBlinking","isBlinking","selectionStyle","highlightActiveLine","highlightSelectedWord","behavioursEnabled","wrapBehavioursEnabled","autoScrollEditorIntoView","keybindingId","hScrollBarAlwaysVisible","vScrollBarAlwaysVisible","highlightGutterLine","animatedScroll","printMarginColumn","printMargin","fadeFoldWidgets","showFoldWidgets","showLineNumbers","showGutter","displayIndentGuides","fontSize","fontFamily","maxLines","minLines","scrollPastEnd","fixedWidthGutter","foldStyle","UndoManager","deltaSets_old","fnGetModifiedDelta","deltaSets_new","deltaSet_old","deltaSet_new","delta_old","deltaSets","$doc","hasUndo","dirtyCounter","$undoStack","$redoStack","NaN","undoSelectionRange","redoSelectionRange","$deserializeDeltas","hasRedo","markClean","isClean","$serializeDeltas","cloneDeltaSetsObj","$serializeDelta","$deserializeDelta","Gutter","parentEl","$showFoldWidgets","gutterWidth","$updateAnnotations","$cells","rowInfo","annoText","gutterOffset","breakpoints","decorations","$firstLineNumber","lastLineNumber","gutterRenderer","$renderer","cell","textNode","foldWidget","getText","minHeight","$fixedWidth","padding","$padding","$computePadding","ceil","$showLineNumbers","setShowLineNumbers","getShowLineNumbers","paddingLeft","paddingRight","Marker","setPadding","setMarkers","$getTop","drawFullLineMarker","drawScreenLineMarker","drawTextMarker","drawMultiLineMarker","drawBidiSingleLineMarker","firstRowScreen","stringBuilder","extraStyle","clazzModified","lineRange","range1","radiusClass","extraLength","Text","$updateEolChar","EOF_CHAR","EOL_CHAR_LF","EOL_CHAR_CRLF","EOL_CHAR","TAB_CHAR","SPACE_CHAR","getLineHeight","$fontMetrics","measure","$pollSizeChanges","checkForSizeChanges","$pollSizeChangesTimer","$computeTabString","$tabStrings","tabStr","$indentGuideRe","spaceClass","tabClass","spaceContent","tabContent","scrollLines","lineElements","lineElementsIdx","lineElement","$renderLine","$useLineGroups","oldConfig","lastChild","fragment","$renderLinesFragment","createDocumentFragment","$textToken","rparen","lparen","$renderToken","tabIdx","idx4","classToUse","renderIndentGuide","cols","$renderWrappedLine","onlyContents","splitChars","$renderSimpleLine","$getFoldLineTokens","renderTokens","tokens3","$measureNode","isIE8","Cursor","isVisible","blinkInterval","smoothBlinking","cursors","addCursor","$updateCursors","$updateVisibility","$updateOpacity","visibility","blinking","restartTimer","setBlinkInterval","removeCursor","intervalId","timeoutId","blink","getPixelPosition","onScreen","$selectionMarkers","cursorIndex","pixelPos","drawCursor","$setOverwrite","MAX_SCROLL_H","ScrollBar","classSuffix","setVisible","skipEvent","onScroll","coeff","VScrollBar","scrollHeight","$scrollbarWidth","$minWidth","setHeight","setInnerHeight","setScrollHeight","HScrollBar","setWidth","setInnerWidth","setScrollWidth","ScrollBarV","ScrollBarH","RenderLoop","onRender","changes","CHAR_COUNT","FontMetrics","$setMeasureNodeStyles","$main","$testFractionalRect","isRoot","whiteSpace","$measureSizes","fontWeight","boldSize","charSizes","allowBoldFonts","setPolling","GutterLayer","MarkerLayer","TextLayer","CursorLayer","VirtualRenderer","onGutterResize","$markerBack","textLayer","$textLayer","canvas","$markerFront","$horizScroll","$vScroll","scrollBar","$scrollAnimation","scrollMargin","updateCharacterSize","$size","scrollerHeight","scrollerWidth","$dirty","maxHeight","h","$loop","$renderChanges","CHANGE_FULL","CHANGE_CURSOR","CHANGE_MARKER","CHANGE_GUTTER","CHANGE_SCROLL","CHANGE_LINES","CHANGE_TEXT","CHANGE_SIZE","CHANGE_MARKER_BACK","CHANGE_MARKER_FRONT","CHANGE_H_SCROLL","$allowBoldFonts","$updatePrintMargin","onChangeNewLineMode","$changedLines","updateFontSize","$changes","$updateSizeAsync","resizing","scrollWidth","$updateCachedSize","$extraHeight","oldSize","$showGutter","$computeLayerConfig","availableWidth","$showPrintMargin","$printMarginColumn","$animatedScroll","getShowGutter","setShowGutter","$updateGutterLineHighlight","$gutterLineHighlight","$printMarginEl","containerEl","posTop","posLeft","$composition","setScrollMargin","sm","getHScrollBarAlwaysVisible","$hScrollBarAlwaysVisible","setHScrollBarAlwaysVisible","alwaysVisible","getVScrollBarAlwaysVisible","$vScrollBarAlwaysVisible","setVScrollBarAlwaysVisible","$updateScrollBarV","$scrollPastEnd","$updateScrollBarH","$frozen","unfreeze","st2","marginTop","marginLeft","$highlightGutterLine","$updateLines","$autosize","desiredHeight","$maxPixelHeight","$gutterWidth","hideScrollbars","longestLine","$getLongestLine","horizScroll","hScrollChanged","vScrollBefore","vScrollChanged","firstRowHeight","lineCount","charCount","$viewMargin","topMargin","bottomMargin","alignment","STEPS","$calcSteps","steps","x_min","dx","initialScroll","oldSteps","$timer","clearInterval","scrollTo","canvasPos","textToScreenCoordinates","pageX","pageY","keepTextAreaAtCursor","$themeId","cssClass","$theme","isDark","setMouseCursor","maxPixelHeight","workerUrl","blob","Blob","blobBuilder","BlobBuilder","WebKitBlobBuilder","MozBlobBuilder","getBlob","$workerBlob","blobURL","webkitURL","createObjectURL","Worker","WorkerClient","topLevelNamespaces","classname","importScripts","$sendDeltaQueue","changeListener","onMessage","nameToUrl","toUrl","normalizePath","$normalizePath","tlns","callbackId","callbacks","onmessage","err2","deltaQueue","emit","ex","attachToDocument","UIWorkerClient","messageBuffer","main","emitSync","sender","processNext","setEmitSync","Main","PlaceHolder","others","mainClass","othersClass","$onUpdate","onUpdate","$others","undoStack","$undostack","$undoStackDepth","setup","selectionBefore","showOtherMarkers","othersActive","hideOtherMarkers","updateAnchors","lengthDiff","inMainRange","distanceFromStart","newPos","otherPos","updateMarkers","updateMarker","undosRequired","accel","selectionMode","isMultiSelect","isSamePoint","mouseX","mouseY","screenAnchor","screenCursor","$enableJumpToDef","$blockSelectEnabled","addSelectionMarker","oldRange","removeSelectionMarker","tmpSel","rectSel","onSelectionInterval","newCursor","cursor2","removeSelectionMarkers","rectangularRangeBlock","updateSelectionMarkers","selectMoreLines","selectMore","splitIntoLines","alignCursors","multiSelectCommands","getSelectionMarkers","$blockChangeEvents","$onAddRange","$onRemoveRange","mergeOverlappingRanges","lastRange","$initRangeList","toggleBlockSelection","includeEmptyLines","xBackwards","startOffsetX","endOffsetX","yBackwards","docEnd","$multiselectOnSessionChange","$onMultiSelect","$onSingleSelect","onSessionChange","$checkMultiselectChange","altCursor","altDown","selectionMarkerCount","markerList","$onMultiSelectExec","inVirtualMode","forEachSelection","keepOrder","$byLines","cmdResult","anim","nl","additive","skip","screenLead","toRemove","stopAtFirst","sameRowRanges","maxCol","minSpace","spaceOffsets","spaceOffset","fr","lr","guessRange","$reAlignText","forceLeft","startW","textW","endW","isLeftAligned","isRightAligned","alignLeft","MultiSelect","enableMultiselect","enableBlockSelect","FoldMode","foldingStartMarker","foldingStopMarker","indentationBlock","startLevel","openingBracketBlock","closingBracketBlock","widgetManager","updateOnChange","renderWidgets","measureWidgets","_changedWidgets","$onChangeEditor","updateOnFold","_inDocument","removeLineWidget","$updateRows","noWidgets","$oldWidget","addLineWidget","zIndex","coverGutter","pixelHeight","$fold","onWidgetChanged","w1","getWidgetsAtRow","changedWidgets","fixedWidth","coverLine","fullWidth","LineWidgets","oldWidget","w3","gutterAnno","matched","findAnnotations","arrow","onmousedown","Renderer2","edit","_id","getElementById","env","tagName","oldNode","createEditSession","brace","JsonHighlightRules","MatchingBraceOutdent","BaseFoldMode","commentRegex","singleLineBlockCommentRe","tripleStarBlockCommentRe","startRegionRe","_getFoldWidgetBase","forceMultiline","getCommentRegionBlock","getSectionRange","startIndent","subRange","CStyleFoldMode","$outdent","worker","YamlHighlightRules","mlString","prevIndent","nextIndent","comment_handler_1","jsx_parser_1","parser_1","tokenizer_1","delegate","commentHandler","proxyDelegate","metadata","visit","parserDelegate","collectComment","attachComment","CommentHandler","isModule","sourceType","jsx","JSXParser","Parser","ast","parseModule","parseScript","comments","tolerant","errorHandler","parse2","parsingOptions","tokenize","getNextToken","tolerate","syntax_1","Syntax","leading","trailing","insertInnerComments","BlockStatement","innerComments","findTrailingComments","trailingComments","entry_1","firstComment","findLeadingComments","leadingComments","visitNode","Program","visitComment","loc","CommentHandler2","AssignmentExpression","AssignmentPattern","ArrayExpression","ArrayPattern","ArrowFunctionExpression","AwaitExpression","BinaryExpression","BreakStatement","CallExpression","CatchClause","ClassBody","ClassDeclaration","ClassExpression","ConditionalExpression","ContinueStatement","DoWhileStatement","DebuggerStatement","EmptyStatement","ExportAllDeclaration","ExportDefaultDeclaration","ExportNamedDeclaration","ExportSpecifier","ExpressionStatement","ForStatement","ForOfStatement","ForInStatement","FunctionDeclaration","FunctionExpression","Identifier","IfStatement","ImportDeclaration","ImportDefaultSpecifier","ImportNamespaceSpecifier","ImportSpecifier","Literal","LabeledStatement","LogicalExpression","MemberExpression","MetaProperty","MethodDefinition","NewExpression","ObjectExpression","ObjectPattern","Property","RestElement","ReturnStatement","SequenceExpression","SpreadElement","Super","SwitchCase","SwitchStatement","TaggedTemplateExpression","TemplateElement","TemplateLiteral","ThisExpression","ThrowStatement","TryStatement","UnaryExpression","UpdateExpression","VariableDeclaration","VariableDeclarator","WhileStatement","WithStatement","YieldExpression","extendStatics","__extends","setPrototypeOf","character_1","JSXNode","jsx_syntax_1","Node2","token_1","xhtml_entities_1","elementName","qualifiedName","JSXSyntax","JSXIdentifier","JSXNamespacedName","getQualifiedElementName","JSXMemberExpression","expr","TokenName","_super","JSXParser2","parsePrimaryExpression","parseJSXRoot","startJSX","scanner","startMarker","lineStart","finishJSX","nextToken","reenterJSX","expectJSX","createJSXNode","collectComments","createJSXChildNode","scanXHTMLEntity","valid","terminated","numeric","eof","Character","isDecimalDigit","isHexDigit","XHTMLEntities","lexJSX","cp","n1","isIdentifierStart","isIdentifierPart","lex","nextJSXToken","lastMarker","convertToken","nextJSXText","isLineTerminator","peekJSXToken","saveState","scanComments","restoreState","throwUnexpectedToken","matchJSX","parseJSXIdentifier","finalize","parseJSXElementName","name_1","parseJSXAttributeName","attributeName","identifier","name_2","parseJSXStringLiteralAttribute","getTokenRaw","parseJSXExpressionAttribute","tolerateError","expression","parseAssignmentExpression","JSXExpressionContainer","parseJSXAttributeValue","parseJSXElement","parseJSXNameValueAttribute","JSXAttribute","parseJSXSpreadAttribute","JSXSpreadAttribute","parseJSXAttributes","parseJSXOpeningElement","selfClosing","JSXOpeningElement","parseJSXBoundaryElement","name_3","JSXClosingElement","parseJSXEmptyExpression","JSXEmptyExpression","parseJSXExpressionContainer","parseJSXChildren","JSXText","parseComplexJSXElement","JSXElement","open_1","isStartOfExpression","Regex","NonAsciiIdentifierStart","NonAsciiIdentifierPart","fromCodePoint","isWhiteSpace","isOctalDigit","openingElement","closingElement","operator","AsyncArrowFunctionExpression","AsyncFunctionDeclaration","AsyncFunctionExpression","logical","label","callee","superClass","ComputedMemberExpression","computed","consequent","alternate","Directive","directive","declaration","specifiers","local","exported","each","imported","meta2","isStatic","Module","shorthand","RegexLiteral","Script","expressions","StaticMemberExpression","discriminant","quasi","quasis","block2","finalizer","declarations","assert_1","error_handler_1","messages_1","scanner_1","ArrowParameterPlaceHolder","Parser2","ErrorHandler","Scanner","trackComment","operatorPrecedence",";",",","=","||","&&","|","^","&","==","!=","===","!==","<",">","<=",">=","<<",">>",">>>","+","-","*","/","%","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","scanRegExpBody","classMarker","scanRegExpFlags","char","Scanner2","quot","amp","apos","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","exist","nabla","isin","notin","ni","prod","sum","minus","lowast","radic","prop","infin","ang","and","or","cap","cup","int","there4","sim","cong","asymp","equiv","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","rt2","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","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","i16","BufferBigIntNotDefined","objectToString","POWERS_OF_TEN","results","log10","al","bl","bStr","runHi","pivotIndex","hint","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","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","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","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","only","__u","__R","__O","delete","revealOrder","persist","isPropagationStopped","isDefaultPrevented","nativeEvent","class","multiple","defaultValue","$$typeof","ReactCurrentDispatcher","readContext","performance","useState","useReducer","useEffect","useLayoutEffect","useRef","useImperativeHandle","useMemo","useCallback","useContext","useDebugValue","Children","hydrate","unmountComponentAtNode","createPortal","createContext","createFactory","cn","createRef","Fragment","isValidElement","findDOMNode","PureComponent","memo","forwardRef","unstable_batchedUpdates","StrictMode","Suspense","SuspenseList","lazy","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","querySelector","prepend","repo","repoId","categoryId","reactionsEnabled","emitMetadata","inputPosition","searchParams","URLSearchParams","localStorage","getItem","setItem","replaceState","removeItem","giscus","resizeHeight","scrolling","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","fn","_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","dataView","responseType","setRequestHeader","response","onerror","safeXhrSend","decodeAudioData","arraybuffer","loadSound","setupAudioContext","AudioContext","webkitAudioContext","iOS","appVersion","safari","HowlerGlobal","Howler","Howl","Sound","_orientation","stereo","pan","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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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,Q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,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,sBAEQA,SAAS,cAAe,CAChC,gCACA,gCACA,8BACA,kCACA,4CACA,iCACA,kCACA,kCACA,gCACA,iCACA,iFChhBDlhB,iBAAwB,aAAc,CAAEtM,OAAO,wBAC1BoS,aAAqBA,QAAgBA,uBAA+BA,uBAA+BA,uBAA+BA,uBAA+BA,sBAAyB,QAChNqb,EAAShe,0BACgB,CAC3Bu2B,WAAW,EACXC,SAAS,EACTC,aAAa,EACbC,sBAAsB,EACtBC,WAAW,EACXC,WAAW,EACXC,cAAc,EACdC,aAAa,EACbC,iBAAkB,EAClBC,cAAe,EACfC,eAAgB,IAChBC,WAAY,yDAEe,CAC3BjjC,KAAM,sBACNkjC,0BACAC,uBAAwB,EACxBC,UAAW,GACXC,wBAAwB,EACxBC,MAAO,CACHC,eAAgB,EAChBC,uBACAC,uBAAuB,EACvBC,uBAAuB,EACvBC,gBAAiB,EACjBC,cAAe,EACfC,OAAQ,IACRC,SAAU,CACNC,SAAU,EACVC,QAAS,EACTC,UAAW,GACXC,SAAU,KA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AAO,4BAC5B,qBAC1B,SAAyB8Y,KACT0U,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,aACA,SACA,OACA,OACA,OACA,aACA,OACA,SACA,OACA,QACA,QACA,MACA,YAEQA,SAAS,cAAe,CAChC,gCACA,gCACA,8BACA,kCACA,4CACA,iCACA,kCACA,kCACA,gCACA,iCACA,uDCjlBRxjB,OAAOsC,eAAego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A,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,cAAe,CAChC,gCACA,gCACA,8BACA,kCACA,4CACA,iCACA,kCACA,kCACA,gCACA,iCACA,uDCvXRxjB,OAAOsC,eAAegoB,GAAS,aAAc,CAAEt0B,OAAO,mCACrB,EACjC,MAAMu0B,GAAS9kB,6BACf,SAAgC8I,EAASO,SAC/B8U,EAAY2G,GAAO1G,UAAUtoB,UAAK,EAAWgT,GAC7CmV,EAAa6G,GAAO5G,WAAWpoB,UAAK,EAAWuT,GAC/CowB,KAAsB3U,GAAOpf,YAAY,CAC3C,CACItY,K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rrB,kBAAmBqrB,MAC9BplB,EAAS,MACF,MAAPolB,UAAsBlmC,KAAKkmC,EAAe,YAANlmC,GAAmB2K,OAAOrI,UAAU4Y,eAAejX,KAAKiiC,EAAKlmC,OAAoB8gB,EAAQolB,EAAKlmC,aACnH8gB,EAAQolB,GACpBplB,GAEXnW,OAAOsC,eAAek5B,GAAS,aAAc,CAAExlC,OAAO,IACtD,2DAAoE,EACpE,MAAMu0B,GAAS9kB,GACTg2B,GAAgB/1B,GAChBg2B,GAAY91B,GAClB,sBAAsB01B,GAAa5uB,IAMnC,yBALA,iBACUoC,EAAc,IAAIyb,GAAOoR,4BAC3BF,GAAcG,iBAAiB9sB,GAC5BA,GAsBX+sB,iBALA,SAAoB/sB,SACVP,EAAU,IAAIgc,GAAOuR,wBACvBJ,GAAUK,aAAaxtB,EAASO,GAC7BP,+MCpDXvO,OAAOsC,eAAeihB,GAAS,aAAc,CAAEvtB,OAAO,4BAC5B,qBAC1B,SAAyB8Y,KACT0U,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,YA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GAEXnW,OAAOsC,eAAek5B,GAAS,aAAc,CAAExlC,OAAO,IACtD,2DAAoE,EACpE,MAAMu0B,GAAS9kB,GACTg2B,GAAgB/1B,GAChBg2B,GAAY91B,GAClB,sBAAsB01B,GAAa5uB,IAMnC,yBALA,iBACUoC,EAAc,IAAIyb,GAAOoR,4BAC3BF,GAAcG,iBAAiB9sB,GAC5BA,GAsBX+sB,iBALA,SAAoB/sB,SACVP,EAAU,IAAIgc,GAAOuR,wBACvBJ,GAAUK,aAAaxtB,EAASO,GAC7BP,+MCpDXvO,OAAOsC,eAAeihB,GAAS,aAAc,CAAEvtB,OAAO,4BAC5B,qBAC1B,SAAyB8Y,KACT0U,SAAS,sBAAuB,CACxC,qCACA,4BACA,+BACA,yBACA,0BACA,8BACA,gCACA,6BACA,yBACA,kCACA,4BACA,2BACA,wBACA,+BACA,iCACA,6BACA,0BACA,+BACA,gCACA,uBACA,8BACA,oCACA,+BACA,yCACA,+BACA,uBACA,6BACA,qBACA,0BACA,yBACA,4CACA,+BACA,0CACA,iCACA,4BACA,gCACA,0BACA,yBACA,6BACA,2BACA,4BACA,wBACA,uBACA,iBACA,4CACA,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,kBAAmB,CACpC,iBACA,QACA,sBACA,yBACA,qBACA,cACA,mBACA,yBACA,gBACA,qBACA,6BAEQA,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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"} \ No newline at end of file diff --git a/assets/vendor.273f4765.js b/assets/vendor.6465e0ff.js similarity index 85% rename from assets/vendor.273f4765.js rename to assets/vendor.6465e0ff.js index 81ee9947..5c560b5f 100644 --- a/assets/vendor.273f4765.js +++ b/assets/vendor.6465e0ff.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;o<arguments.length;o++)i.push(a[o]);if(null!=i&&(s.children=i),"function"==typeof e&&null!=e.defaultProps)for(o in e.defaultProps)void 0===s[o]&&(s[o]=e.defaultProps[o]);return x(e,s,n,r,null)}function x(e,t,i,n,r){var o={type:e,props:t,key:i,ref:n,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:null==r?++d.__v:r};return null!=d.vnode&&d.vnode(o),o}function N(e){return e.children}function k(e,t){this.props=e,this.context=t}function A(e,t){if(null==t)return e.__?A(e.__,e.__.__k.indexOf(e)+1):null;for(var i;t<e.__k.length;t++)if(null!=(i=e.__k[t])&&null!=i.__e)return i.__e;return"function"==typeof e.type?A(e):null}function C(e){var t,i;if(null!=(e=e.__)&&null!=e.__c){for(e.__e=e.__c.base=null,t=0;t<e.__k.length;t++)if(null!=(i=e.__k[t])&&null!=i.__e){e.__e=e.__c.base=i.__e;break}return C(e)}}function O(e){(!e.__d&&(e.__d=!0)&&h.push(e)&&!S.__r++||m!==d.debounceRendering)&&((m=d.debounceRendering)||p)(S)}function S(){for(var e;S.__r=h.length;)e=h.sort((function(e,t){return e.__v.__b-t.__v.__b})),h=[],e.some((function(e){var t,i,n,r,o,a;e.__d&&(o=(r=(t=e).__v).__e,(a=t.__P)&&(i=[],(n=v({},r)).__v=r.__v+1,$(a,r,n,t.__n,void 0!==a.ownerSVGElement,null!=r.__h?[o]:null,i,null==o?A(r):o,r.__h),j(i,r),r.__e!=o&&C(r)))}))}function E(e,t,i,n,r,o,a,s,c,l){var u,d,h,p,m,f,b,v=n&&n.__k||_,y=v.length;for(i.__k=[],u=0;u<t.length;u++)if(null!=(p=i.__k[u]=null==(p=t[u])||"boolean"==typeof p?null:"string"==typeof p||"number"==typeof p||"bigint"==typeof p?x(null,p,null,null,p):Array.isArray(p)?x(N,{children:p},null,null,null):p.__b>0?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;d<y;d++){if((h=v[d])&&p.key==h.key&&p.type===h.type){v[d]=void 0;break}h=null}$(e,p,h=h||g,r,o,a,s,c,l),m=p.__e,(d=p.ref)&&h.ref!=d&&(b||(b=[]),h.ref&&b.push(h.ref,null,p),b.push(d,p.__c||m,p)),null!=m?(null==f&&(f=m),"function"==typeof p.type&&null!=p.__k&&p.__k===h.__k?p.__d=c=F(p,c,e):c=B(e,p,h,v,m,c),l||"option"!==i.type?"function"==typeof i.type&&(i.__d=c):e.value=""):c&&h.__e==c&&c.parentNode!=e&&(c=A(h))}for(i.__e=f,u=y;u--;)null!=v[u]&&("function"==typeof i.type&&null!=v[u].__e&&v[u].__e==i.__d&&(i.__d=A(n,u+1)),P(v[u],v[u]));if(b)for(u=0;u<b.length;u++)I(b[u],b[++u],b[++u])}function F(e,t,i){var n,r;for(n=0;n<e.__k.length;n++)(r=e.__k[n])&&(r.__=e,t="function"==typeof r.type?F(r,t,i):B(i,r,r,e.__k,r.__e,t));return t}function D(e,t){return t=t||[],null==e||"boolean"==typeof e||(Array.isArray(e)?e.some((function(e){D(e,t)})):t.push(e)),t}function B(e,t,i,n,r,o){var a,s,c;if(void 0!==t.__d)a=t.__d,t.__d=void 0;else if(null==i||r!=o||null==r.parentNode)e:if(null==o||o.parentNode!==e)e.appendChild(r),a=null;else{for(s=o,c=0;(s=s.nextSibling)&&c<n.length;c+=2)if(s==r)break e;e.insertBefore(r,o),a=o}return void 0!==a?a:r.nextSibling}function L(e,t,i){"-"===t[0]?e.setProperty(t,i):e[t]=null==i?"":"number"!=typeof i||b.test(t)?i:i+"px"}function M(e,t,i,n,r){var o;e:if("style"===t)if("string"==typeof i)e.style.cssText=i;else{if("string"==typeof n&&(e.style.cssText=n=""),n)for(t in n)i&&t in i||L(e.style,t,"");if(i)for(t in i)n&&i[t]===n[t]||L(e.style,t,i[t])}else if("o"===t[0]&&"n"===t[1])o=t!==(t=t.replace(/Capture$/,"")),t=t.toLowerCase()in e?t.toLowerCase().slice(2):t.slice(2),e.l||(e.l={}),e.l[t+o]=i,i?n||e.addEventListener(t,o?R:T,o):e.removeEventListener(t,o?R:T,o);else if("dangerouslySetInnerHTML"!==t){if(r)t=t.replace(/xlink[H:h]/,"h").replace(/sName$/,"s");else if("href"!==t&&"list"!==t&&"form"!==t&&"tabIndex"!==t&&"download"!==t&&t in e)try{e[t]=null==i?"":i;break e}catch(a){}"function"==typeof i||(null!=i&&(!1!==i||"a"===t[0]&&"r"===t[1])?e.setAttribute(t,i):e.removeAttribute(t))}}function T(e){this.l[e.type+!1](d.event?d.event(e):e)}function R(e){this.l[e.type+!0](d.event?d.event(e):e)}function $(e,t,i,n,r,o,a,s,c){var l,u,h,p,m,f,b,w,x,A,C,O=t.type;if(void 0!==t.constructor)return null;null!=i.__h&&(c=i.__h,s=t.__e=i.__e,t.__h=null,o=[s]),(l=d.__b)&&l(t);try{e:if("function"==typeof O){if(w=t.props,x=(l=O.contextType)&&n[l.__c],A=l?x?x.props.value:l.__:n,i.__c?b=(u=t.__c=i.__c).__=u.__E:("prototype"in O&&O.prototype.render?t.__c=u=new O(w,A):(t.__c=u=new k(w,A),u.constructor=O,u.render=z),x&&x.sub(u),u.props=w,u.state||(u.state={}),u.context=A,u.__n=n,h=u.__d=!0,u.__h=[]),null==u.__s&&(u.__s=u.state),null!=O.getDerivedStateFromProps&&(u.__s==u.state&&(u.__s=v({},u.__s)),v(u.__s,O.getDerivedStateFromProps(w,u.__s))),p=u.props,m=u.state,h)null==O.getDerivedStateFromProps&&null!=u.componentWillMount&&u.componentWillMount(),null!=u.componentDidMount&&u.__h.push(u.componentDidMount);else{if(null==O.getDerivedStateFromProps&&w!==p&&null!=u.componentWillReceiveProps&&u.componentWillReceiveProps(w,A),!u.__e&&null!=u.shouldComponentUpdate&&!1===u.shouldComponentUpdate(w,u.__s,A)||t.__v===i.__v){u.props=w,u.state=u.__s,t.__v!==i.__v&&(u.__d=!1),u.__v=t,t.__e=i.__e,t.__k=i.__k,t.__k.forEach((function(e){e&&(e.__=t)})),u.__h.length&&a.push(u);break e}null!=u.componentWillUpdate&&u.componentWillUpdate(w,u.__s,A),null!=u.componentDidUpdate&&u.__h.push((function(){u.componentDidUpdate(p,m,f)}))}u.context=A,u.props=w,u.state=u.__s,(l=d.__r)&&l(t),u.__d=!1,u.__v=t,u.__P=e,l=u.render(u.props,u.state,u.context),u.state=u.__s,null!=u.getChildContext&&(n=v(v({},n),u.getChildContext())),h||null==u.getSnapshotBeforeUpdate||(f=u.getSnapshotBeforeUpdate(p,m)),C=null!=l&&l.type===N&&null==l.key?l.props.children:l,E(e,Array.isArray(C)?C:[C],t,i,n,r,o,a,s,c),u.base=t.__e,t.__h=null,u.__h.length&&a.push(u),b&&(u.__E=u.__=null),u.__e=!1}else null==o&&t.__v===i.__v?(t.__k=i.__k,t.__e=i.__e):t.__e=function(e,t,i,n,r,o,a,s){var c,l,u,d,h=i.props,p=t.props,m=t.type,f=0;if("svg"===m&&(r=!0),null!=o)for(;f<o.length;f++)if((c=o[f])&&(c===e||(m?c.localName==m:3==c.nodeType))){e=c,o[f]=null;break}if(null==e){if(null===m)return document.createTextNode(p);e=r?document.createElementNS("http://www.w3.org/2000/svg",m):document.createElement(m,p.is&&p),o=null,s=!1}if(null===m)h===p||s&&e.data===p||(e.data=p);else{if(o=o&&_.slice.call(e.childNodes),l=(h=i.props||g).dangerouslySetInnerHTML,u=p.dangerouslySetInnerHTML,!s){if(null!=o)for(h={},d=0;d<e.attributes.length;d++)h[e.attributes[d].name]=e.attributes[d].value;(u||l)&&(u&&(l&&u.__html==l.__html||u.__html===e.innerHTML)||(e.innerHTML=u&&u.__html||""))}if(function(e,t,i,n,r){var o;for(o in i)"children"===o||"key"===o||o in t||M(e,o,null,i[o],n);for(o in t)r&&"function"!=typeof t[o]||"children"===o||"key"===o||"value"===o||"checked"===o||i[o]===t[o]||M(e,o,t[o],i[o],n)}(e,p,h,r,s),u)t.__k=[];else if(f=t.props.children,E(e,Array.isArray(f)?f:[f],t,i,n,r&&"foreignObject"!==m,o,a,e.firstChild,s),null!=o)for(f=o.length;f--;)null!=o[f]&&y(o[f]);s||("value"in p&&void 0!==(f=p.value)&&(f!==e.value||"progress"===m&&!f)&&M(e,"value",f,h.value,!1),"checked"in p&&void 0!==(f=p.checked)&&f!==e.checked&&M(e,"checked",f,h.checked,!1))}return e}(i.__e,t,i,n,r,o,a,c);(l=d.diffed)&&l(t)}catch(S){t.__v=null,(c||null!=o)&&(t.__e=s,t.__h=!!c,o[o.indexOf(s)]=null),d.__e(S,t,i)}}function j(e,t){d.__c&&d.__c(t,e),e.some((function(t){try{e=t.__h,t.__h=[],e.some((function(e){e.call(t)}))}catch(i){d.__e(i,t.__v)}}))}function I(e,t,i){try{"function"==typeof e?e(t):e.current=t}catch(n){d.__e(n,i)}}function P(e,t,i){var n,r,o;if(d.unmount&&d.unmount(e),(n=e.ref)&&(n.current&&n.current!==e.__e||I(n,null,t)),i||"function"==typeof e.type||(i=null!=(r=e.__e)),e.__e=e.__d=void 0,null!=(n=e.__c)){if(n.componentWillUnmount)try{n.componentWillUnmount()}catch(a){d.__e(a,t)}n.base=n.__P=null}if(n=e.__k)for(o=0;o<n.length;o++)n[o]&&P(n[o],t,i);null!=r&&y(r)}function z(e,t,i){return this.constructor(e,i)}function U(e,t,i){var n,r,o;d.__&&d.__(e,t),r=(n="function"==typeof i)?null:i&&i.__k||t.__k,o=[],$(t,e=(!n&&i||t).__k=w(N,null,[e]),r||g,g,void 0!==t.ownerSVGElement,!n&&i?[i]:r?null:t.firstChild?_.slice.call(t.childNodes):null,o,!n&&i?i:r?r.__e:t.firstChild,n),j(o,e)}function W(e,t){U(e,t,W)}function H(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<arguments.length;o++)i.push(a[o]);return null!=i&&(s.children=i),x(e.type,s,n||e.key,r||e.ref,null)}function q(e,t){var i={__c:t="__cC"+f++,__:e,Consumer:function(e,t){return e.children(t)},Provider:function(e){var i,n;return this.getChildContext||(i=[],(n={})[t]=this,this.getChildContext=function(){return n},this.shouldComponentUpdate=function(e){this.props.value!==e.value&&i.some(O)},this.sub=function(e){i.push(e);var t=e.componentWillUnmount;e.componentWillUnmount=function(){i.splice(i.indexOf(e),1),t&&t.call(e)}}),e.children}};return i.Provider.__=i.Consumer.contextType=i}d={__e:function(e,t){for(var i,n,r;t=t.__;)if((i=t.__c)&&!i.__)try{if((n=i.constructor)&&null!=n.getDerivedStateFromError&&(i.setState(n.getDerivedStateFromError(e)),r=i.__d),null!=i.componentDidCatch&&(i.componentDidCatch(e),r=i.__d),r)return i.__E=i}catch(o){e=o}throw e},__v:0},k.prototype.setState=function(e,t){var i;i=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=v({},this.state),"function"==typeof e&&(e=e(v({},i),this.props)),e&&v(i,e),null!=e&&this.__v&&(t&&this.__h.push(t),O(this))},k.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),O(this))},k.prototype.render=N,h=[],p="function"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,S.__r=0,f=0;var V={};function G(e,t){for(var i in t)e[i]=t[i];return e}function K(e,t,i){var n,r=/(?:\?([^#]*))?(#.*)?$/,o=e.match(r),a={};if(o&&o[1])for(var s=o[1].split("&"),c=0;c<s.length;c++){var l=s[c].split("=");a[decodeURIComponent(l[0])]=decodeURIComponent(l.slice(1).join("="))}e=Y(e.replace(r,"")),t=Y(t||"");for(var u=Math.max(e.length,t.length),d=0;d<u;d++)if(t[d]&&":"===t[d].charAt(0)){var h=t[d].replace(/(^:|[+*?]+$)/g,""),p=(t[d].match(/[+*?]+$/)||V)[0]||"",m=~p.indexOf("+"),f=~p.indexOf("*"),g=e[d]||"";if(!g&&!f&&(p.indexOf("?")<0||m)){n=!1;break}if(a[h]=decodeURIComponent(g),m||f){a[h]=e.slice(d).map(decodeURIComponent).join("/");break}}else if(t[d]!==e[d]){n=!1;break}return(!0===i.default||!1!==n)&&a}function X(e,t){return e.rank<t.rank?1:e.rank>t.rank?-1:e.index-t.index}function J(e,t){return e.index=t,e.rank=function(e){return e.props.default?0:(t=e.props.path,Y(t).map(Z).join(""));var t}(e),e.props}function Y(e){return e.replace(/(^\/+|\/+$)/g,"").split("/")}function Z(e){return":"==e.charAt(0)?1+"*+?".indexOf(e.charAt(e.length-1))||4:5}var Q=null,ee=[],te=[],ie={};function ne(){var e;return""+((e=Q&&Q.location?Q.location:Q&&Q.getCurrentLocation?Q.getCurrentLocation():"undefined"!=typeof location?location:ie).pathname||"")+(e.search||"")}function re(e,t){return void 0===t&&(t=!1),"string"!=typeof e&&e.url&&(t=e.replace,e=e.url),function(e){for(var t=ee.length;t--;)if(ee[t].canRoute(e))return!0;return!1}(e)&&function(e,t){void 0===t&&(t="push"),Q&&Q[t]?Q[t](e):"undefined"!=typeof history&&history[t+"State"]&&history[t+"State"](null,null,e)}(e,t?"replace":"push"),oe(e)}function oe(e){for(var t=!1,i=0;i<ee.length;i++)!0===ee[i].routeTo(e)&&(t=!0);for(var n=te.length;n--;)te[n](e);return t}function ae(e){if(e&&e.getAttribute){var t=e.getAttribute("href"),i=e.getAttribute("target");if(t&&t.match(/^\//g)&&(!i||i.match(/^_?self$/i)))return re(t)}}function se(e){if(!(e.ctrlKey||e.metaKey||e.altKey||e.shiftKey||0!==e.button))return ae(e.currentTarget||e.target||this),ce(e)}function ce(e){return e&&(e.stopImmediatePropagation&&e.stopImmediatePropagation(),e.stopPropagation&&e.stopPropagation(),e.preventDefault()),!1}function le(e){if(!(e.ctrlKey||e.metaKey||e.altKey||e.shiftKey||0!==e.button)){var t=e.target;do{if("A"===String(t.nodeName).toUpperCase()&&t.getAttribute("href")){if(t.hasAttribute("native"))return;if(ae(t))return ce(e)}}while(t=t.parentNode)}}var ue=!1;var de=function(e){function t(t){e.call(this,t),t.history&&(Q=t.history),this.state={url:t.url||ne()},ue||("function"==typeof addEventListener&&(Q||addEventListener("popstate",(function(){oe(ne())})),addEventListener("click",le)),ue=!0)}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.shouldComponentUpdate=function(e){return!0!==e.static||(e.url!==this.props.url||e.onChange!==this.props.onChange)},t.prototype.canRoute=function(e){var t=D(this.props.children);return this.getMatchingChildren(t,e,!1).length>0},t.prototype.routeTo=function(e){this.setState({url:e});var t=this.canRoute(e);return this.updating||this.forceUpdate(),t},t.prototype.componentWillMount=function(){ee.push(this),this.updating=!0},t.prototype.componentDidMount=function(){var e=this;Q&&(this.unlisten=Q.listen((function(t){e.routeTo(""+(t.pathname||"")+(t.search||""))}))),this.updating=!1},t.prototype.componentWillUnmount=function(){"function"==typeof this.unlisten&&this.unlisten(),ee.splice(ee.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(J).sort(X).map((function(e){var n=K(t,e.props.path,e.props);if(n){if(!1!==i){var r={url:t,matches:n};return G(r,n),delete r.ref,delete r.key,H(e,r)}return e}})).filter(Boolean)},t.prototype.render=function(e,t){var i=e.children,n=e.onChange,r=t.url,o=this.getMatchingChildren(D(i),r,!0),a=o[0]||null,s=this.previousUrl;return r!==s&&(this.previousUrl=r,"function"==typeof n&&n({router:this,url:r,previous:s,active:o,current:a})),a},t}(k),he=function(e){return w("a",G({onClick:se},e))};de.subscribers=te,de.getCurrentUrl=ne,de.route=re,de.Router=de,de.Route=function(e){return w(e.component,e)},de.Link=he,de.exec=K;var pe,me,fe,ge=0,_e=[],be=d.__b,ve=d.__r,ye=d.diffed,we=d.__c,xe=d.unmount;function Ne(e,t){d.__h&&d.__h(me,e,ge||t),ge=0;var i=me.__H||(me.__H={__:[],__h:[]});return e>=i.__.length&&i.__.push({}),i.__[e]}function ke(e){return ge=1,Ae(je,e)}function Ae(e,t,i){var n=Ne(pe++,2);return n.t=e,n.__c||(n.__=[i?i(t):je(void 0,t),function(e){var t=n.t(n.__[0],e);n.__[0]!==t&&(n.__=[t,n.__[1]],n.__c.setState({}))}],n.__c=me),n.__}function Ce(e,t){var i=Ne(pe++,3);!d.__s&&$e(i.__H,t)&&(i.__=e,i.__H=t,me.__H.__h.push(i))}function Oe(e,t){var i=Ne(pe++,4);!d.__s&&$e(i.__H,t)&&(i.__=e,i.__H=t,me.__h.push(i))}function Se(e){return ge=5,Ee((function(){return{current:e}}),[])}function Ee(e,t){var i=Ne(pe++,7);return $e(i.__H,t)&&(i.__=e(),i.__H=t,i.__h=e),i.__}function Fe(e,t){return ge=8,Ee((function(){return e}),t)}function De(e){var t=me.context[e.__c],i=Ne(pe++,9);return i.__c=e,t?(null==i.__&&(i.__=!0,t.sub(me)),t.props.value):e.__}function Be(e){var t=Ne(pe++,10),i=ke();return t.__=e,me.componentDidCatch||(me.componentDidCatch=function(e){t.__&&t.__(e),i[1](e)}),[i[0],function(){i[1](void 0)}]}function Le(){_e.forEach((function(e){if(e.__P)try{e.__H.__h.forEach(Te),e.__H.__h.forEach(Re),e.__H.__h=[]}catch(t){e.__H.__h=[],d.__e(t,e.__v)}})),_e=[]}d.__b=function(e){me=null,be&&be(e)},d.__r=function(e){ve&&ve(e),pe=0;var t=(me=e.__c).__H;t&&(t.__h.forEach(Te),t.__h.forEach(Re),t.__h=[])},d.diffed=function(e){ye&&ye(e);var t=e.__c;t&&t.__H&&t.__H.__h.length&&(1!==_e.push(t)&&fe===d.requestAnimationFrame||((fe=d.requestAnimationFrame)||function(e){var t,i=function(){clearTimeout(n),Me&&cancelAnimationFrame(t),setTimeout(e)},n=setTimeout(i,100);Me&&(t=requestAnimationFrame(i))})(Le)),me=void 0},d.__c=function(e,t){t.some((function(e){try{e.__h.forEach(Te),e.__h=e.__h.filter((function(e){return!e.__||Re(e)}))}catch(i){t.some((function(e){e.__h&&(e.__h=[])})),t=[],d.__e(i,e.__v)}})),we&&we(e,t)},d.unmount=function(e){xe&&xe(e);var t=e.__c;if(t&&t.__H)try{t.__H.__.forEach(Te)}catch(i){d.__e(i,t.__v)}};var Me="function"==typeof requestAnimationFrame;function Te(e){var t=me;"function"==typeof e.__c&&e.__c(),me=t}function Re(e){var t=me;e.__c=e.__(),me=t}function $e(e,t){return!e||e.length!==t.length||t.some((function(t,i){return t!==e[i]}))}function je(e,t){return"function"==typeof t?t(e):t}var Ie="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},Pe={},ze={},Ue={};Object.defineProperty(Ue,"__esModule",{value:!0}),Ue.ModelPath=Ue.Path=Ue.relativePath=void 0,Ue.relativePath=function(e,t){return t.reduce(((e,t)=>"pop"===t?e.pop():e.push(t.push)),e)};class We{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 We(this.modelArr.slice(e,t),this.contextArr)}shift(){return new We(this.modelArr.slice(1),this.contextArr)}pop(){return new We(this.modelArr.slice(0,-1),this.contextArr)}push(e){return this.modelPush(e).contextPush(e)}modelPush(e){return new We([...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 We([...this.modelArr],[...this.contextArr,t])}copy(){return new We([...this.modelArr],[...this.contextArr])}getArray(){return this.modelArr}withModel(e){return new He(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.length<e.modelArr.length)&&e.modelArr.every(((e,t)=>e===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)}}Ue.Path=We;class He extends We{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 He(this.model,super.slice(e,t))}shift(){return new He(this.model,super.shift())}pop(){return new He(this.model,super.pop())}push(e){return this.modelPush(e).contextPush(e)}modelPush(e){return new He(this.model,super.modelPush(e))}contextPush(e){return new He(this.model,super.contextPush(e))}copy(){return new He(this.model,super.copy())}}Ue.ModelPath=He;var qe={};Object.defineProperty(qe,"__esModule",{value:!0}),qe.Errors=void 0;class Ve{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}}qe.Errors=Ve;var Ge={};function Ke(e){return e.replace(/(\\|")/g,"\\$1")}Object.defineProperty(Ge,"__esModule",{value:!0}),Ge.hexId=Ge.quoteString=Ge.escapeString=void 0,Ge.escapeString=Ke,Ge.quoteString=function(e){return`"${Ke(e)}"`};const Xe=e=>("0"+e.toString(16)).substr(-2);Ge.hexId=function(e=12){var t=new Uint8Array(e/2);return window.crypto.getRandomValues(t),Array.from(t,Xe).join("")},Object.defineProperty(ze,"__esModule",{value:!0}),ze.DataModel=void 0;const Je=Ue,Ye=qe,Ze=Ge;class Qe{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?Qe.wrapLists(a):a,this.listeners=[],this.errors=new Ye.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:(0,Ze.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:(0,Ze.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<this.history.length-1&&(this.historyIndex+=1,this.data=JSON.parse(this.history[this.historyIndex]),this.validate(!1),this.silentInvalidate())}validate(e){var t;const i=(new Je.Path).withModel(this);this.errors.clear(),this.data=null!==(t=this.schema.validate(i,this.data,this.errors,{loose:e,wrapLists:this.wrapLists}))&&void 0!==t?t:{}}error(e,t,...i){const n=new Ye.Errors;n.add(e,t,i),this.listeners.forEach((e=>{e.errors&&e.errors(n)}))}static wrapLists(e){if(Array.isArray(e)){const t=e.map((e=>({node:this.wrapLists(e),id:(0,Ze.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}}ze.DataModel=Qe;var et={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.Keep=e.Opt=e.Has=e.Mod=e.Base=void 0,e.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:()=>[]};e.Mod=(e,t)=>s(s({},e),"function"==typeof t?t(e):t);e.Has=(t,i)=>(0,e.Mod)(i,{enabled:e=>void 0!==e.push(t).get()}),e.Opt=function(e){return c(s({},e),{optional:()=>!0})},e.Keep=function(e){return c(s({},e),{keep:()=>!0})}}(et);var tt={};Object.defineProperty(tt,"__esModule",{value:!0}),tt.BooleanNode=void 0;const it=ze,nt=et;tt.BooleanNode=()=>c(s({},nt.Base),{type:()=>"boolean",default:()=>!1,suggest:()=>["false","true"],validate(e,t,i,n){return n.loose&&"boolean"!=typeof t&&(t=n.wrapLists?it.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 rt={},ot={};Object.defineProperty(ot,"__esModule",{value:!0}),ot.ListNode=void 0;const at=ze,st=et;ot.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({},st.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?at.DataModel.wrapLists(this.default()):this.default()),!Array.isArray(i))return n.add(t,"error.expected_list"),i;a&&(i.length<r||i.length>o)?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.length<r?n.add(t,"error.invalid_list_range.smaller",i.length,r):i.length>o&&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 ct={};Object.defineProperty(ct,"__esModule",{value:!0}),ct.SwitchNode=void 0;const lt=et;ct.SwitchNode=e=>c(s({},lt.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=ot,i=ct;e.ChoiceNode=(e,t)=>{const n=(0,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)=>(0,e.ChoiceNode)([{type:i,node:n,change:e=>{var t;return null!==(t=e[0])&&void 0!==t?t:n.default()}},{type:"list",node:(0,t.ListNode)(n),change:e=>e?[e]:[]}],r);e.ObjectOrList=n("object"),e.StringOrList=n("string");e.ObjectOrPreset=(t,i,n)=>(0,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]]}}])}(rt);var ut={};Object.defineProperty(ut,"__esModule",{value:!0}),ut.MapNode=void 0;const dt=et,ht=ze;ut.MapNode=(e,t,i)=>c(s({},dt.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?ht.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 pt={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.NumberEnum=e.NumberNode=void 0;const t=Pe,i=ze,n=et;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&&(t<l||t>u)?n.add(e,"error.invalid_number_range.between",t,l,u):t<l?n.add(e,"error.invalid_number_range.smaller",t,l):t>u&&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})=>(0,t.Mod)((0,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)})))}(pt);var mt={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.ObjectNode=e.Case=e.Switch=void 0;const t=et,i=Ue,a=qe,u=Ge,d=ze;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=(0,i.relativePath)(e,_).get(),n=b[t];return s(s({},v),n)},w=(e,t)=>{var n;const r=_?(0,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=(0,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)}})}}(mt);var ft={};Object.defineProperty(ft,"__esModule",{value:!0}),ft.Reference=void 0;ft.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 gt={};Object.defineProperty(gt,"__esModule",{value:!0}),gt.StringNode=void 0;const _t=et,bt=Ge,vt=ze,yt=e=>!!(null==e?void 0:e.enum),wt=e=>!!(null==e?void 0:e.validator);gt.StringNode=(e,t)=>{const i=()=>{var i,n,r,o;if(yt(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({},_t.Base),{type:()=>"string",default:()=>"",validate(e,n,r,o){if(o.loose&&"string"!=typeof n&&(n=(o.wrapLists?vt.DataModel.wrapLists(this.default()):this.default())||void 0),"string"!=typeof n)return r.add(e,"error.expected_string"),n;if(wt(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(yt(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(bt.quoteString),validationOption:()=>wt(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 xt={};Object.defineProperty(xt,"__esModule",{value:!0});var Nt={};Object.defineProperty(Nt,"__esModule",{value:!0}),Nt.CollectionRegistry=Nt.SchemaRegistry=void 0;Nt.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}};Nt.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 kt,At,Ct,Ot={};Object.defineProperty(Ot,"__esModule",{value:!0}),kt=Pe,At=Ie&&Ie.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i);var r=Object.getOwnPropertyDescriptor(t,i);r&&!("get"in r?!t.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,n,r)}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),Ct=Ie&&Ie.__exportStar||function(e,t){for(var i in e)"default"===i||Object.prototype.hasOwnProperty.call(t,i)||At(t,e,i)},Object.defineProperty(kt,"__esModule",{value:!0}),Ct(ze,kt),Ct(Ue,kt),Ct(qe,kt),Ct(et,kt),Ct(tt,kt),Ct(rt,kt),Ct(ot,kt),Ct(ut,kt),Ct(pt,kt),Ct(mt,kt),Ct(ft,kt),Ct(gt,kt),Ct(ct,kt),Ct(xt,kt),Ct(Nt,kt),Ct(Ot,kt);var St=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]=Et(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]=Et(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<r.length;a++){var s=r[a],c=e[s];if("object"!=typeof c||null===c)o[s]=c;else if(c instanceof Date)o[s]=new Date(c);else if(ArrayBuffer.isView(c))o[s]=Et(c);else{var l=t.indexOf(c);o[s]=-1!==l?i[l]:n(c)}}return o}}(e):e.proto?function e(i){if("object"!=typeof i||null===i)return i;if(i instanceof Date)return new Date(i);if(Array.isArray(i))return t(i,e);if(i instanceof Map)return new Map(t(Array.from(i),e));if(i instanceof Set)return new Set(t(Array.from(i),e));var n={};for(var r in i){var o=i[r];"object"!=typeof o||null===o?n[r]=o:o instanceof Date?n[r]=new Date(o):o instanceof Map?n[r]=new Map(t(Array.from(o),e)):o instanceof Set?n[r]=new Set(t(Array.from(o),e)):ArrayBuffer.isView(o)?n[r]=Et(o):n[r]=e(o)}return n}:function e(i){if("object"!=typeof i||null===i)return i;if(i instanceof Date)return new Date(i);if(Array.isArray(i))return t(i,e);if(i instanceof Map)return new Map(t(Array.from(i),e));if(i instanceof Set)return new Set(t(Array.from(i),e));var n={};for(var r in i)if(!1!==Object.hasOwnProperty.call(i,r)){var o=i[r];"object"!=typeof o||null===o?n[r]=o:o instanceof Date?n[r]=new Date(o):o instanceof Map?n[r]=new Map(t(Array.from(o),e)):o instanceof Set?n[r]=new Set(t(Array.from(o),e)):ArrayBuffer.isView(o)?n[r]=Et(o):n[r]=e(o)}return n};function t(e,t){for(var i=Object.keys(e),n=new Array(i.length),r=0;r<i.length;r++){var o=i[r],a=e[o];"object"!=typeof a||null===a?n[o]=a:a instanceof Date?n[o]=new Date(a):ArrayBuffer.isView(a)?n[o]=Et(a):n[o]=t(a)}return n}};function Et(e){return e instanceof Buffer?Buffer.from(e):new e.constructor(e.buffer.slice(),e.byteOffset,e.length)}var Ft={exports:{}};Ft.exports=function(e){var t={};function i(n){if(t[n])return t[n].exports;var r=t[n]={exports:{},id:n,loaded:!1};return e[n].call(r.exports,r,r.exports,i),r.loaded=!0,r.exports}return i.m=e,i.c=t,i.p="",i(0)}([function(e,t,i){var n,r;n=[i(1)],void 0===(r=function(e){var t={},i=function(){return navigator.userAgent.toLowerCase().indexOf("chrome")>-1},n=function(){return navigator.userAgent.toLowerCase().indexOf("firefox")>-1},r=function(){return navigator.userAgent.toLowerCase().indexOf("safari")>-1},o=function(){return document.documentMode&&document.documentMode>=11},a=function(){this.count=0,this.pending=[]};a.prototype.incr=function(){this.count++},a.prototype.decr=function(){this.count--,this.flush()},a.prototype.whenReady=function(e){this.pending.push(e),this.flush()},a.prototype.flush=function(){0===this.count&&(this.pending.forEach((function(e){e()})),this.pending=[])};var s=function(e){this.sem=new a,this.sync=e&&e.sync,this.mapForUri=e&&e.cacheGlobally?t:{}};s.prototype.ajax=function(e,t){var i=function(){for(var e=!1,t=0;t<p.length;t++){try{e=p[t]()}catch(i){continue}break}return e}(),n=this;i.onreadystatechange=function(){4==i.readyState&&t.call(n,i,e)},i.open("GET",e,!this.sync),i.send()},s.prototype.fetchScript=function(e){e in this.mapForUri||(this.sem.incr(),this.mapForUri[e]=null,this.ajax(e,this.onScriptLoad))};var c=new RegExp("^(?:[a-z]+:)?//","i");s.prototype.onScriptLoad=function(t,i){if(200===t.status||"file://"===i.slice(0,7)&&0===t.status){var n=t.responseText.match("//# [s]ourceMappingURL=(.*)[\\s]*$","m");if(n&&2===n.length){var r=n[1],o=r.match("data:application/json;(charset=[^;]+;)?base64,(.*)");if(o&&o[2])this.mapForUri[i]=new e.SourceMapConsumer(atob(o[2])),this.sem.decr();else{if(!c.test(r)){var a,s=i.lastIndexOf("/");-1!==s&&(a=i.slice(0,s+1),r=a+r)}this.ajax(r,(function(t){(200===t.status||"file://"===r.slice(0,7)&&0===t.status)&&(this.mapForUri[i]=new e.SourceMapConsumer(t.responseText)),this.sem.decr()}))}}else this.sem.decr()}else this.sem.decr()};var l=function(e,t,i,n){for(var r,o=[],a="chrome"===n?u:d,s=0;s<e.length;s++){var c=t[s];if(c){var l=c[1],p=parseInt(c[2],10),m=parseInt(c[3],10);if(r=i[l]){var f=r.originalPositionFor({line:p,column:m});o.push(h(f.source,f.line,f.column,f.name||a(e[s])))}else o.push(h(l,p,m,a(e[s])))}else o.push(e[s])}return o};function u(e){var t=/ +at +([^ ]*).*/.exec(e);return t&&t[1]}function d(e){var t=/([^@]*)@.*/.exec(e);return t&&t[1]}var h=function(e,t,i,n){return" at "+(n||"(unknown)")+" ("+e+":"+t+":"+i+")"},p=[function(){return new XMLHttpRequest},function(){return new ActiveXObject("Msxml2.XMLHTTP")},function(){return new ActiveXObject("Msxml3.XMLHTTP")},function(){return new ActiveXObject("Microsoft.XMLHTTP")}];return{mapStackTrace:function(e,t,a){var c,u,d,h,p,m,f,g={},_=new s(a),b=a&&a.traceFormat;if("chrome"!==b&&"firefox"!==b){if(b)throw new Error('unknown traceFormat "'+b+'" :(');if(i()||o())b="chrome";else{if(!n()&&!r())throw new Error("unknown browser :(");b="firefox"}}"chrome"===b?(m=/^ +at.+\((.*):([0-9]+):([0-9]+)/,p=4,f=1):(m=/@(.*):([0-9]+):([0-9]+)/,p=4,f=0),c=e.split("\n").slice(f);for(var v=0;v<c.length;v++)u=c[v],a&&a.filter&&!a.filter(u)||(d=u.match(m))&&d.length===p&&(g[v]=d,(h=d[1]).match(/<anonymous>/)||_.fetchScript(h));_.sem.whenReady((function(){var e=l(c,g,_.mapForUri,b);t(e)}))}}}.apply(t,n))||(e.exports=r)},function(e,t,i){var n=i(2),r=i(3),o=i(4).ArraySet,a=i(5),s=i(7).quickSort;function c(e){var t=e;return"string"==typeof e&&(t=JSON.parse(e.replace(/^\)\]\}'/,""))),null!=t.sections?new d(t):new l(t)}function l(e){var t=e;"string"==typeof e&&(t=JSON.parse(e.replace(/^\)\]\}'/,"")));var i=n.getArg(t,"version"),r=n.getArg(t,"sources"),a=n.getArg(t,"names",[]),s=n.getArg(t,"sourceRoot",null),c=n.getArg(t,"sourcesContent",null),l=n.getArg(t,"mappings"),u=n.getArg(t,"file",null);if(i!=this._version)throw new Error("Unsupported version: "+i);r=r.map(String).map(n.normalize).map((function(e){return s&&n.isAbsolute(s)&&n.isAbsolute(e)?n.relative(s,e):e})),this._names=o.fromArray(a.map(String),!0),this._sources=o.fromArray(r,!0),this.sourceRoot=s,this.sourcesContent=c,this._mappings=l,this.file=u}function u(){this.generatedLine=0,this.generatedColumn=0,this.source=null,this.originalLine=null,this.originalColumn=null,this.name=null}function d(e){var t=e;"string"==typeof e&&(t=JSON.parse(e.replace(/^\)\]\}'/,"")));var i=n.getArg(t,"version"),r=n.getArg(t,"sections");if(i!=this._version)throw new Error("Unsupported version: "+i);this._sources=new o,this._names=new o;var a={line:-1,column:0};this._sections=r.map((function(e){if(e.url)throw new Error("Support for url field in sections not implemented.");var t=n.getArg(e,"offset"),i=n.getArg(t,"line"),r=n.getArg(t,"column");if(i<a.line||i===a.line&&r<a.column)throw new Error("Section offsets must be ordered and non-overlapping.");return a=t,{generatedOffset:{generatedLine:i+1,generatedColumn:r+1},consumer:new c(n.getArg(e,"map"))}}))}c.fromSourceMap=function(e){return l.fromSourceMap(e)},c.prototype._version=3,c.prototype.__generatedMappings=null,Object.defineProperty(c.prototype,"_generatedMappings",{get:function(){return this.__generatedMappings||this._parseMappings(this._mappings,this.sourceRoot),this.__generatedMappings}}),c.prototype.__originalMappings=null,Object.defineProperty(c.prototype,"_originalMappings",{get:function(){return this.__originalMappings||this._parseMappings(this._mappings,this.sourceRoot),this.__originalMappings}}),c.prototype._charIsMappingSeparator=function(e,t){var i=e.charAt(t);return";"===i||","===i},c.prototype._parseMappings=function(e,t){throw new Error("Subclasses must implement _parseMappings")},c.GENERATED_ORDER=1,c.ORIGINAL_ORDER=2,c.GREATEST_LOWER_BOUND=1,c.LEAST_UPPER_BOUND=2,c.prototype.eachMapping=function(e,t,i){var r,o=t||null;switch(i||c.GENERATED_ORDER){case c.GENERATED_ORDER:r=this._generatedMappings;break;case c.ORIGINAL_ORDER:r=this._originalMappings;break;default:throw new Error("Unknown order of iteration.")}var a=this.sourceRoot;r.map((function(e){var t=null===e.source?null:this._sources.at(e.source);return null!=t&&null!=a&&(t=n.join(a,t)),{source:t,generatedLine:e.generatedLine,generatedColumn:e.generatedColumn,originalLine:e.originalLine,originalColumn:e.originalColumn,name:null===e.name?null:this._names.at(e.name)}}),this).forEach(e,o)},c.prototype.allGeneratedPositionsFor=function(e){var t=n.getArg(e,"line"),i={source:n.getArg(e,"source"),originalLine:t,originalColumn:n.getArg(e,"column",0)};if(null!=this.sourceRoot&&(i.source=n.relative(this.sourceRoot,i.source)),!this._sources.has(i.source))return[];i.source=this._sources.indexOf(i.source);var o=[],a=this._findMapping(i,this._originalMappings,"originalLine","originalColumn",n.compareByOriginalPositions,r.LEAST_UPPER_BOUND);if(a>=0){var s=this._originalMappings[a];if(void 0===e.column)for(var c=s.originalLine;s&&s.originalLine===c;)o.push({line:n.getArg(s,"generatedLine",null),column:n.getArg(s,"generatedColumn",null),lastColumn:n.getArg(s,"lastGeneratedColumn",null)}),s=this._originalMappings[++a];else for(var l=s.originalColumn;s&&s.originalLine===t&&s.originalColumn==l;)o.push({line:n.getArg(s,"generatedLine",null),column:n.getArg(s,"generatedColumn",null),lastColumn:n.getArg(s,"lastGeneratedColumn",null)}),s=this._originalMappings[++a]}return o},t.SourceMapConsumer=c,l.prototype=Object.create(c.prototype),l.prototype.consumer=c,l.fromSourceMap=function(e){var t=Object.create(l.prototype),i=t._names=o.fromArray(e._names.toArray(),!0),r=t._sources=o.fromArray(e._sources.toArray(),!0);t.sourceRoot=e._sourceRoot,t.sourcesContent=e._generateSourcesContent(t._sources.toArray(),t.sourceRoot),t.file=e._file;for(var a=e._mappings.toArray().slice(),c=t.__generatedMappings=[],d=t.__originalMappings=[],h=0,p=a.length;h<p;h++){var m=a[h],f=new u;f.generatedLine=m.generatedLine,f.generatedColumn=m.generatedColumn,m.source&&(f.source=r.indexOf(m.source),f.originalLine=m.originalLine,f.originalColumn=m.originalColumn,m.name&&(f.name=i.indexOf(m.name)),d.push(f)),c.push(f)}return s(t.__originalMappings,n.compareByOriginalPositions),t},l.prototype._version=3,Object.defineProperty(l.prototype,"sources",{get:function(){return this._sources.toArray().map((function(e){return null!=this.sourceRoot?n.join(this.sourceRoot,e):e}),this)}}),l.prototype._parseMappings=function(e,t){for(var i,r,o,c,l,d=1,h=0,p=0,m=0,f=0,g=0,_=e.length,b=0,v={},y={},w=[],x=[];b<_;)if(";"===e.charAt(b))d++,b++,h=0;else if(","===e.charAt(b))b++;else{for((i=new u).generatedLine=d,c=b;c<_&&!this._charIsMappingSeparator(e,c);c++);if(o=v[r=e.slice(b,c)])b+=r.length;else{for(o=[];b<c;)a.decode(e,b,y),l=y.value,b=y.rest,o.push(l);if(2===o.length)throw new Error("Found a source, but no line and column");if(3===o.length)throw new Error("Found a source and line, but no column");v[r]=o}i.generatedColumn=h+o[0],h=i.generatedColumn,o.length>1&&(i.source=f+o[1],f+=o[1],i.originalLine=p+o[2],p=i.originalLine,i.originalLine+=1,i.originalColumn=m+o[3],m=i.originalColumn,o.length>4&&(i.name=g+o[4],g+=o[4])),x.push(i),"number"==typeof i.originalLine&&w.push(i)}s(x,n.compareByGeneratedPositionsDeflated),this.__generatedMappings=x,s(w,n.compareByOriginalPositions),this.__originalMappings=w},l.prototype._findMapping=function(e,t,i,n,o,a){if(e[i]<=0)throw new TypeError("Line must be greater than or equal to 1, got "+e[i]);if(e[n]<0)throw new TypeError("Column must be greater than or equal to 0, got "+e[n]);return r.search(e,t,o,a)},l.prototype.computeColumnSpans=function(){for(var e=0;e<this._generatedMappings.length;++e){var t=this._generatedMappings[e];if(e+1<this._generatedMappings.length){var i=this._generatedMappings[e+1];if(t.generatedLine===i.generatedLine){t.lastGeneratedColumn=i.generatedColumn-1;continue}}t.lastGeneratedColumn=1/0}},l.prototype.originalPositionFor=function(e){var t={generatedLine:n.getArg(e,"line"),generatedColumn:n.getArg(e,"column")},i=this._findMapping(t,this._generatedMappings,"generatedLine","generatedColumn",n.compareByGeneratedPositionsDeflated,n.getArg(e,"bias",c.GREATEST_LOWER_BOUND));if(i>=0){var r=this._generatedMappings[i];if(r.generatedLine===t.generatedLine){var o=n.getArg(r,"source",null);null!==o&&(o=this._sources.at(o),null!=this.sourceRoot&&(o=n.join(this.sourceRoot,o)));var a=n.getArg(r,"name",null);return null!==a&&(a=this._names.at(a)),{source:o,line:n.getArg(r,"originalLine",null),column:n.getArg(r,"originalColumn",null),name:a}}}return{source:null,line:null,column:null,name:null}},l.prototype.hasContentsOfAllSources=function(){return!!this.sourcesContent&&this.sourcesContent.length>=this._sources.size()&&!this.sourcesContent.some((function(e){return null==e}))},l.prototype.sourceContentFor=function(e,t){if(!this.sourcesContent)return null;if(null!=this.sourceRoot&&(e=n.relative(this.sourceRoot,e)),this._sources.has(e))return this.sourcesContent[this._sources.indexOf(e)];var i;if(null!=this.sourceRoot&&(i=n.urlParse(this.sourceRoot))){var r=e.replace(/^file:\/\//,"");if("file"==i.scheme&&this._sources.has(r))return this.sourcesContent[this._sources.indexOf(r)];if((!i.path||"/"==i.path)&&this._sources.has("/"+e))return this.sourcesContent[this._sources.indexOf("/"+e)]}if(t)return null;throw new Error('"'+e+'" is not in the SourceMap.')},l.prototype.generatedPositionFor=function(e){var t=n.getArg(e,"source");if(null!=this.sourceRoot&&(t=n.relative(this.sourceRoot,t)),!this._sources.has(t))return{line:null,column:null,lastColumn:null};var i={source:t=this._sources.indexOf(t),originalLine:n.getArg(e,"line"),originalColumn:n.getArg(e,"column")},r=this._findMapping(i,this._originalMappings,"originalLine","originalColumn",n.compareByOriginalPositions,n.getArg(e,"bias",c.GREATEST_LOWER_BOUND));if(r>=0){var o=this._originalMappings[r];if(o.source===i.source)return{line:n.getArg(o,"generatedLine",null),column:n.getArg(o,"generatedColumn",null),lastColumn:n.getArg(o,"lastGeneratedColumn",null)}}return{line:null,column:null,lastColumn:null}},t.BasicSourceMapConsumer=l,d.prototype=Object.create(c.prototype),d.prototype.constructor=c,d.prototype._version=3,Object.defineProperty(d.prototype,"sources",{get:function(){for(var e=[],t=0;t<this._sections.length;t++)for(var i=0;i<this._sections[t].consumer.sources.length;i++)e.push(this._sections[t].consumer.sources[i]);return e}}),d.prototype.originalPositionFor=function(e){var t={generatedLine:n.getArg(e,"line"),generatedColumn:n.getArg(e,"column")},i=r.search(t,this._sections,(function(e,t){var i=e.generatedLine-t.generatedOffset.generatedLine;return i||e.generatedColumn-t.generatedOffset.generatedColumn})),o=this._sections[i];return o?o.consumer.originalPositionFor({line:t.generatedLine-(o.generatedOffset.generatedLine-1),column:t.generatedColumn-(o.generatedOffset.generatedLine===t.generatedLine?o.generatedOffset.generatedColumn-1:0),bias:e.bias}):{source:null,line:null,column:null,name:null}},d.prototype.hasContentsOfAllSources=function(){return this._sections.every((function(e){return e.consumer.hasContentsOfAllSources()}))},d.prototype.sourceContentFor=function(e,t){for(var i=0;i<this._sections.length;i++){var n=this._sections[i].consumer.sourceContentFor(e,!0);if(n)return n}if(t)return null;throw new Error('"'+e+'" is not in the SourceMap.')},d.prototype.generatedPositionFor=function(e){for(var t=0;t<this._sections.length;t++){var i=this._sections[t];if(-1!==i.consumer.sources.indexOf(n.getArg(e,"source"))){var r=i.consumer.generatedPositionFor(e);if(r)return{line:r.line+(i.generatedOffset.generatedLine-1),column:r.column+(i.generatedOffset.generatedLine===r.line?i.generatedOffset.generatedColumn-1:0)}}}return{line:null,column:null}},d.prototype._parseMappings=function(e,t){this.__generatedMappings=[],this.__originalMappings=[];for(var i=0;i<this._sections.length;i++)for(var r=this._sections[i],o=r.consumer._generatedMappings,a=0;a<o.length;a++){var c=o[a],l=r.consumer._sources.at(c.source);null!==r.consumer.sourceRoot&&(l=n.join(r.consumer.sourceRoot,l)),this._sources.add(l),l=this._sources.indexOf(l);var u=r.consumer._names.at(c.name);this._names.add(u),u=this._names.indexOf(u);var d={source:l,generatedLine:c.generatedLine+(r.generatedOffset.generatedLine-1),generatedColumn:c.generatedColumn+(r.generatedOffset.generatedLine===c.generatedLine?r.generatedOffset.generatedColumn-1:0),originalLine:c.originalLine,originalColumn:c.originalColumn,name:u};this.__generatedMappings.push(d),"number"==typeof d.originalLine&&this.__originalMappings.push(d)}s(this.__generatedMappings,n.compareByGeneratedPositionsDeflated),s(this.__originalMappings,n.compareByOriginalPositions)},t.IndexedSourceMapConsumer=d},function(e,t){t.getArg=function(e,t,i){if(t in e)return e[t];if(3===arguments.length)return i;throw new Error('"'+t+'" is a required argument.')};var i=/^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.]*)(?::(\d+))?(\S*)$/,n=/^data:.+\,.+$/;function r(e){var t=e.match(i);return t?{scheme:t[1],auth:t[2],host:t[3],port:t[4],path:t[5]}:null}function o(e){var t="";return e.scheme&&(t+=e.scheme+":"),t+="//",e.auth&&(t+=e.auth+"@"),e.host&&(t+=e.host),e.port&&(t+=":"+e.port),e.path&&(t+=e.path),t}function a(e){var i=e,n=r(e);if(n){if(!n.path)return e;i=n.path}for(var a,s=t.isAbsolute(i),c=i.split(/\/+/),l=0,u=c.length-1;u>=0;u--)"."===(a=c[u])?c.splice(u,1):".."===a?l++:l>0&&(""===a?(c.splice(u+1,l),l=0):(c.splice(u,2),l--));return""===(i=c.join("/"))&&(i=s?"/":"."),n?(n.path=i,o(n)):i}t.urlParse=r,t.urlGenerate=o,t.normalize=a,t.join=function(e,t){""===e&&(e="."),""===t&&(t=".");var i=r(t),s=r(e);if(s&&(e=s.path||"/"),i&&!i.scheme)return s&&(i.scheme=s.scheme),o(i);if(i||t.match(n))return t;if(s&&!s.host&&!s.path)return s.host=t,o(s);var c="/"===t.charAt(0)?t:a(e.replace(/\/+$/,"")+"/"+t);return s?(s.path=c,o(s)):c},t.isAbsolute=function(e){return"/"===e.charAt(0)||!!e.match(i)},t.relative=function(e,t){""===e&&(e="."),e=e.replace(/\/$/,"");for(var i=0;0!==t.indexOf(e+"/");){var n=e.lastIndexOf("/");if(n<0)return t;if((e=e.slice(0,n)).match(/^([^\/]+:\/)?\/*$/))return t;++i}return Array(i+1).join("../")+t.substr(e.length+1)};var s=!("__proto__"in Object.create(null));function c(e){return e}function l(e){if(!e)return!1;var t=e.length;if(t<9)return!1;if(95!==e.charCodeAt(t-1)||95!==e.charCodeAt(t-2)||111!==e.charCodeAt(t-3)||116!==e.charCodeAt(t-4)||111!==e.charCodeAt(t-5)||114!==e.charCodeAt(t-6)||112!==e.charCodeAt(t-7)||95!==e.charCodeAt(t-8)||95!==e.charCodeAt(t-9))return!1;for(var i=t-10;i>=0;i--)if(36!==e.charCodeAt(i))return!1;return!0}function u(e,t){return e===t?0:e>t?1:-1}t.toSetString=s?c:function(e){return l(e)?"$"+e:e},t.fromSetString=s?c:function(e){return l(e)?e.slice(1):e},t.compareByOriginalPositions=function(e,t,i){var n=e.source-t.source;return 0!==n||0!=(n=e.originalLine-t.originalLine)||0!=(n=e.originalColumn-t.originalColumn)||i||0!=(n=e.generatedColumn-t.generatedColumn)||0!=(n=e.generatedLine-t.generatedLine)?n:e.name-t.name},t.compareByGeneratedPositionsDeflated=function(e,t,i){var n=e.generatedLine-t.generatedLine;return 0!==n||0!=(n=e.generatedColumn-t.generatedColumn)||i||0!=(n=e.source-t.source)||0!=(n=e.originalLine-t.originalLine)||0!=(n=e.originalColumn-t.originalColumn)?n:e.name-t.name},t.compareByGeneratedPositionsInflated=function(e,t){var i=e.generatedLine-t.generatedLine;return 0!==i||0!=(i=e.generatedColumn-t.generatedColumn)||0!==(i=u(e.source,t.source))||0!=(i=e.originalLine-t.originalLine)||0!=(i=e.originalColumn-t.originalColumn)?i:u(e.name,t.name)}},function(e,t){function i(e,n,r,o,a,s){var c=Math.floor((n-e)/2)+e,l=a(r,o[c],!0);return 0===l?c:l>0?n-c>1?i(c,n,r,o,a,s):s==t.LEAST_UPPER_BOUND?n<o.length?n:-1:c:c-e>1?i(e,c,r,o,a,s):s==t.LEAST_UPPER_BOUND?c:e<0?-1:e}t.GREATEST_LOWER_BOUND=1,t.LEAST_UPPER_BOUND=2,t.search=function(e,n,r,o){if(0===n.length)return-1;var a=i(-1,n.length,e,n,r,o||t.GREATEST_LOWER_BOUND);if(a<0)return-1;for(;a-1>=0&&0===r(n[a],n[a-1],!0);)--a;return a}},function(e,t,i){var n=i(2),r=Object.prototype.hasOwnProperty;function o(){this._array=[],this._set=Object.create(null)}o.fromArray=function(e,t){for(var i=new o,n=0,r=e.length;n<r;n++)i.add(e[n],t);return i},o.prototype.size=function(){return Object.getOwnPropertyNames(this._set).length},o.prototype.add=function(e,t){var i=n.toSetString(e),o=r.call(this._set,i),a=this._array.length;o&&!t||this._array.push(e),o||(this._set[i]=a)},o.prototype.has=function(e){var t=n.toSetString(e);return r.call(this._set,t)},o.prototype.indexOf=function(e){var t=n.toSetString(e);if(r.call(this._set,t))return this._set[t];throw new Error('"'+e+'" is not in the set.')},o.prototype.at=function(e){if(e>=0&&e<this._array.length)return this._array[e];throw new Error("No element indexed by "+e)},o.prototype.toArray=function(){return this._array.slice()},t.ArraySet=o},function(e,t,i){var n=i(6);t.encode=function(e){var t,i="",r=function(e){return e<0?1+(-e<<1):0+(e<<1)}(e);do{t=31&r,(r>>>=5)>0&&(t|=32),i+=n.encode(t)}while(r>0);return i},t.decode=function(e,t,i){var r,o,a,s,c=e.length,l=0,u=0;do{if(t>=c)throw new Error("Expected more digits in base 64 VLQ value.");if(-1===(o=n.decode(e.charCodeAt(t++))))throw new Error("Invalid base64 digit: "+e.charAt(t-1));r=!!(32&o),l+=(o&=31)<<u,u+=5}while(r);i.value=(s=(a=l)>>1,1==(1&a)?-s:s),i.rest=t}},function(e,t){var i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");t.encode=function(e){if(0<=e&&e<i.length)return i[e];throw new TypeError("Must be between 0 and 63: "+e)},t.decode=function(e){return 65<=e&&e<=90?e-65:97<=e&&e<=122?e-97+26:48<=e&&e<=57?e-48+52:43==e?62:47==e?63:-1}},function(e,t){function i(e,t,i){var n=e[t];e[t]=e[i],e[i]=n}function n(e,t,r,o){if(r<o){var a=r-1;i(e,(u=r,d=o,Math.round(u+Math.random()*(d-u))),o);for(var s=e[o],c=r;c<o;c++)t(e[c],s)<=0&&i(e,a+=1,c);i(e,a+1,c);var l=a+1;n(e,t,r,l-1),n(e,t,l+1,o)}var u,d}t.quickSort=function(e,t){n(e,t,0,e.length-1)}}]);var Dt={},Bt={};Object.defineProperty(Bt,"__esModule",{value:!0}),Bt.initCollections=void 0,Bt.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:killed_by_crossbow","minecraft:levitation","minecraft:location","minecraft:nether_travel","minecraft:placed_block","minecraft:player_hurt_entity","minecraft:player_killed_entity","minecraft:recipe_unlocked","minecraft:shot_crossbow","minecraft:safely_harvest_honey","minecraft:slept_in_bed","minecraft:slide_down_block","minecraft:summoned_entity","minecraft:tame_animal","minecraft:tick","minecraft:used_ender_eye","minecraft:used_totem","minecraft:villager_trade","minecraft:voluntary_exile"]),e.register("loot_pool_entry_type",["minecraft:empty","minecraft:item","minecraft:tag","minecraft:loot_table","minecraft:alternatives","minecraft:sequence","minecraft:group","minecraft:dynamic"]),e.register("loot_condition_type",["minecraft:alternative","minecraft:inverted","minecraft:reference","minecraft:entity_properties","minecraft:block_state_property","minecraft:match_tool","minecraft:damage_source_properties","minecraft:location_check","minecraft:weather_check","minecraft:time_check","minecraft:entity_scores","minecraft:random_chance","minecraft:random_chance_with_looting","minecraft:table_bonus","minecraft:killed_by_player","minecraft:survives_explosion"]),e.register("loot_function_type",["minecraft:set_count","minecraft:set_damage","minecraft:set_name","minecraft:set_lore","minecraft:set_nbt","minecraft:set_attributes","minecraft:set_contents","minecraft:enchant_randomly","minecraft:enchant_with_levels","minecraft:looting_enchant","minecraft:limit_count","minecraft:furnace_smelt","minecraft:explosion_decay","minecraft:fill_player_head","minecraft:copy_name","minecraft:copy_nbt","minecraft:copy_state","minecraft:apply_bonus","minecraft:exploration_map","minecraft:set_stew_effect"]),e.register("attribute",["generic.maxHealth","generic.followRange","generic.knockbackResistance","generic.movementSpeed","generic.attackDamage","generic.armor","generic.armorToughness","generic.attackSpeed","generic.luck","horse.jumpStrength","generic.attackKnockback","generic.flyingSpeed","zombie.spawnReinforcements"]),e.register("structure_feature",["pillager_outpost","mineshaft","mansion","jungle_pyramid","desert_pyramid","igloo","shipwreck","swamp_hut","stronghold","monument","ocean_ruin","fortress","endcity","buried_treasure","village"]),e.register("dimension",["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("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("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("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("cat_texture",["textures/entity/cat/tabby.png","textures/entity/cat/black.png","textures/entity/cat/red.png","textures/entity/cat/siamese.png","textures/entity/cat/british_shorthair.png","textures/entity/cat/calico.png","textures/entity/cat/persian.png","textures/entity/cat/ragdoll.png","textures/entity/cat/white.png","textures/entity/cat/jellie.png","textures/entity/cat/all_black.png"])};var Lt={},Mt={},Tt={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.initCommonSchemas=e.Range=e.ConditionCases=void 0;const t=Pe;e.initCommonSchemas=function(i,n){const r=t.StringNode.bind(void 0,n),o=t.Reference.bind(void 0,i);i.register("block_state",(0,t.Mod)((0,t.ObjectNode)({Name:r({validator:"resource",params:{pool:"block"}}),Properties:(0,t.Opt)((0,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",(0,t.Mod)((0,t.ObjectNode)({Name:r({validator:"resource",params:{pool:"fluid"}}),Properties:(0,t.Opt)((0,t.MapNode)(r(),r()))},{context:"fluid_state"}),{default:()=>({Name:"minecraft:water",Properties:{level:"0"}})})),i.register("block_pos",(0,t.Mod)((0,t.ListNode)((0,t.NumberNode)({integer:!0})),{default:()=>[0,0,0]})),e.Range=e=>(0,t.ChoiceNode)([...(null==e?void 0:e.forceRange)?[]:[{type:"number",node:(0,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:(0,t.ObjectNode)({min:(null==e?void 0:e.bounds)?(0,t.NumberNode)(e):(0,t.Opt)((0,t.NumberNode)(e)),max:(null==e?void 0:e.bounds)?(0,t.NumberNode)(e):(0,t.Opt)((0,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:(0,t.ObjectNode)({type:r({enum:["minecraft:binomial"]}),n:(0,t.NumberNode)({integer:!0,min:0}),p:(0,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:(0,t.ListNode)(o("condition"))},"minecraft:block_state_property":{block:r({validator:"resource",params:{pool:"block"}}),properties:(0,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:(0,t.MapNode)(r({validator:"objective"}),(0,e.Range)({forceRange:!0,bounds:!0}))},"minecraft:inverted":{term:o("condition")},"minecraft:killed_by_player":{inverse:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:location_check":{offsetX:(0,t.Opt)((0,t.NumberNode)({integer:!0})),offsetY:(0,t.Opt)((0,t.NumberNode)({integer:!0})),offsetZ:(0,t.Opt)((0,t.NumberNode)({integer:!0})),predicate:o("location_predicate")},"minecraft:match_tool":{predicate:o("item_predicate")},"minecraft:random_chance":{chance:(0,t.NumberNode)({min:0,max:1})},"minecraft:random_chance_with_looting":{chance:(0,t.NumberNode)({min:0,max:1}),looting_multiplier:(0,t.NumberNode)()},"minecraft:reference":{name:r({validator:"resource",params:{pool:"$predicate"}})},"minecraft:table_bonus":{enchantment:r({validator:"resource",params:{pool:"enchantment"}}),chances:(0,t.ListNode)((0,t.NumberNode)({min:0,max:1}))},"minecraft:time_check":{value:(0,e.Range)(),period:(0,t.Opt)((0,t.NumberNode)())},"minecraft:weather_check":{raining:(0,t.Opt)((0,t.BooleanNode)()),thundering:(0,t.Opt)((0,t.BooleanNode)())}}}}(Tt);var Rt={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.initPredicatesSchemas=e.LocationFields=void 0;const t=Pe,i=Tt;e.initPredicatesSchemas=function(n,r){const o=t.Reference.bind(void 0,n),a=t.StringNode.bind(void 0,r),s=(0,t.ChoiceNode)([{type:"string",node:a(),change:e=>"boolean"==typeof e||"number"==typeof e?e.toString():""},{type:"number",node:(0,t.NumberNode)(),change:e=>"string"==typeof e?parseInt(e):0},{type:"object",node:(0,t.ObjectNode)({min:(0,t.Opt)((0,t.NumberNode)({integer:!0})),max:(0,t.Opt)((0,t.NumberNode)({integer:!0}))}),change:e=>"number"==typeof e?{min:e,max:e}:{}},{type:"boolean",node:(0,t.BooleanNode)(),change:e=>"true"===e||1===e}]);n.register("item_predicate",(0,t.ObjectNode)({item:(0,t.Opt)(a({validator:"resource",params:{pool:"item"}})),tag:(0,t.Opt)(a({validator:"resource",params:{pool:"$tag/item"}})),count:(0,t.Opt)((0,i.Range)()),durability:(0,t.Opt)((0,i.Range)()),potion:(0,t.Opt)(a({validator:"resource",params:{pool:"potion"}})),nbt:(0,t.Opt)(a({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:(0,t.Opt)((0,t.ListNode)(o("enchantment_predicate")))},{context:"item"})),n.register("enchantment_predicate",(0,t.ObjectNode)({enchantment:(0,t.Opt)(a({validator:"resource",params:{pool:"enchantment"}})),levels:(0,t.Opt)((0,i.Range)())},{context:"enchantment"})),n.register("block_predicate",(0,t.ObjectNode)({block:(0,t.Opt)(a({validator:"resource",params:{pool:"block"}})),tag:(0,t.Opt)(a({validator:"resource",params:{pool:"$tag/block"}})),nbt:(0,t.Opt)(a({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:(0,t.Opt)((0,t.MapNode)(a(),s,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),n.register("fluid_predicate",(0,t.ObjectNode)({fluid:(0,t.Opt)(a({validator:"resource",params:{pool:"fluid"}})),tag:(0,t.Opt)(a({validator:"resource",params:{pool:"$tag/fluid"}})),state:(0,t.Opt)((0,t.MapNode)(a(),s))},{context:"fluid"})),e.LocationFields={position:(0,t.Opt)((0,t.ObjectNode)({x:(0,t.Opt)((0,i.Range)()),y:(0,t.Opt)((0,i.Range)()),z:(0,t.Opt)((0,i.Range)())})),biome:(0,t.Opt)(a({enum:"biome"})),feature:(0,t.Opt)(a({enum:"structure_feature"})),dimension:(0,t.Opt)(a({enum:"dimension"})),light:(0,t.Opt)((0,t.ObjectNode)({light:(0,t.Opt)((0,i.Range)({integer:!0,min:0,max:15}))})),block:(0,t.Opt)(o("block_predicate")),fluid:(0,t.Opt)(o("fluid_predicate"))},n.register("location_predicate",(0,t.ObjectNode)(e.LocationFields,{context:"location"})),n.register("statistic_predicate",(0,t.ObjectNode)({type:a({validator:"resource",params:{pool:"stat_type"}}),stat:a(),value:(0,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",(0,t.ObjectNode)({gamemode:(0,t.Opt)(a({enum:"gamemode"})),level:(0,t.Opt)((0,i.Range)()),advancements:(0,t.Opt)((0,t.MapNode)(a({validator:"resource",params:{pool:"$advancement"}}),(0,t.ChoiceNode)([{type:"boolean",node:(0,t.BooleanNode)(),change:e=>!0},{type:"object",node:(0,t.MapNode)(a(),(0,t.BooleanNode)())}]))),recipes:(0,t.Opt)((0,t.MapNode)(a({validator:"resource",params:{pool:"$recipe"}}),(0,t.BooleanNode)())),stats:(0,t.Opt)((0,t.ListNode)(o("statistic_predicate")))},{context:"player"})),n.register("status_effect_predicate",(0,t.ObjectNode)({amplifier:(0,t.Opt)((0,i.Range)()),duration:(0,t.Opt)((0,i.Range)()),ambient:(0,t.Opt)((0,t.BooleanNode)()),visible:(0,t.Opt)((0,t.BooleanNode)())},{context:"status_effect"})),n.register("distance_predicate",(0,t.ObjectNode)({x:(0,t.Opt)((0,i.Range)()),y:(0,t.Opt)((0,i.Range)()),z:(0,t.Opt)((0,i.Range)()),absolute:(0,t.Opt)((0,i.Range)()),horizontal:(0,t.Opt)((0,i.Range)())},{context:"distance"})),n.register("entity_predicate",(0,t.ObjectNode)({type:(0,t.Opt)(a({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),nbt:(0,t.Opt)(a({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:(0,t.Opt)(a({validator:"team"})),location:(0,t.Opt)(o("location_predicate")),distance:(0,t.Opt)(o("distance_predicate")),flags:(0,t.Opt)((0,t.ObjectNode)({is_on_fire:(0,t.Opt)((0,t.BooleanNode)()),is_sneaking:(0,t.Opt)((0,t.BooleanNode)()),is_sprinting:(0,t.Opt)((0,t.BooleanNode)()),is_swimming:(0,t.Opt)((0,t.BooleanNode)()),is_baby:(0,t.Opt)((0,t.BooleanNode)())})),equipment:(0,t.Opt)((0,t.MapNode)(a({enum:"slot"}),o("item_predicate"))),player:(0,t.Opt)(o("player_predicate")),catType:(0,t.Opt)(a({enum:"cat_texture"})),effects:(0,t.Opt)((0,t.MapNode)(a({validator:"resource",params:{pool:"mob_effect"}}),o("status_effect_predicate")))},{context:"entity"})),n.register("damage_source_predicate",(0,t.ObjectNode)({is_explosion:(0,t.Opt)((0,t.BooleanNode)()),is_fire:(0,t.Opt)((0,t.BooleanNode)()),is_magic:(0,t.Opt)((0,t.BooleanNode)()),is_projectile:(0,t.Opt)((0,t.BooleanNode)()),is_lightning:(0,t.Opt)((0,t.BooleanNode)()),bypasses_armor:(0,t.Opt)((0,t.BooleanNode)()),bypasses_invulnerability:(0,t.Opt)((0,t.BooleanNode)()),bypasses_magic:(0,t.Opt)((0,t.BooleanNode)()),source_entity:(0,t.Opt)(o("entity_predicate")),direct_entity:(0,t.Opt)(o("entity_predicate"))},{context:"damage_source"})),n.register("damage_predicate",(0,t.ObjectNode)({dealt:(0,t.Opt)((0,i.Range)()),taken:(0,t.Opt)((0,i.Range)()),blocked:(0,t.Opt)((0,t.BooleanNode)()),source_entity:(0,t.Opt)(o("entity_predicate")),type:(0,t.Opt)(o("damage_source_predicate"))},{context:"damage"}))}}(Rt),Object.defineProperty(Mt,"__esModule",{value:!0}),Mt.initAdvancementSchemas=void 0;const $t=Pe,jt=Tt,It=Rt;Mt.initAdvancementSchemas=function(e,t){const i=$t.Reference.bind(void 0,e),n=$t.StringNode.bind(void 0,t);e.register("advancement",(0,$t.Mod)((0,$t.ObjectNode)({display:(0,$t.Opt)((0,$t.Mod)((0,$t.ObjectNode)({icon:(0,$t.ObjectNode)({item:n({validator:"resource",params:{pool:"item"}}),nbt:(0,$t.Opt)(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:i("text_component"),description:i("text_component"),background:(0,$t.Opt)(n()),frame:(0,$t.Opt)(n({enum:["task","challenge","goal"]})),show_toast:(0,$t.Opt)((0,$t.BooleanNode)()),announce_to_chat:(0,$t.Opt)((0,$t.BooleanNode)()),hidden:(0,$t.Opt)((0,$t.BooleanNode)())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:(0,$t.Opt)(n({validator:"resource",params:{pool:"$advancement"}})),criteria:(0,$t.MapNode)(n(),i("advancement_criteria")),requirements:(0,$t.Opt)((0,$t.ListNode)((0,$t.ListNode)(n()))),rewards:(0,$t.Opt)((0,$t.ObjectNode)({function:(0,$t.Opt)(n({validator:"resource",params:{pool:"$function"}})),loot:(0,$t.Opt)((0,$t.ListNode)(n({validator:"resource",params:{pool:"$loot_table"}}))),recipes:(0,$t.Opt)((0,$t.ListNode)(n({validator:"resource",params:{pool:"$recipe"}}))),experience:(0,$t.Opt)((0,$t.NumberNode)({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),e.register("advancement_criteria",(0,$t.ObjectNode)({trigger:n({validator:"resource",params:{pool:t.get("advancement_trigger")}}),conditions:(0,$t.Opt)((0,$t.ObjectNode)({[$t.Switch]:["pop",{push:"trigger"}],[$t.Case]:{"minecraft:bee_nest_destroyed":{block:(0,$t.Opt)(n({validator:"resource",params:{pool:"block"}})),num_bees_inside:(0,$t.Opt)((0,$t.NumberNode)({integer:!0})),item:(0,$t.Opt)(i("item_predicate"))},"minecraft:bred_animals":{parent:(0,$t.Opt)(i("entity_predicate")),partner:(0,$t.Opt)(i("entity_predicate")),child:(0,$t.Opt)(i("entity_predicate"))},"minecraft:brewed_potion":{potion:(0,$t.Opt)(n({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:(0,$t.Opt)(n({enum:"dimension"})),to:(0,$t.Opt)(n({enum:"dimension"}))},"minecraft:channeled_lightning":{victims:(0,$t.Opt)((0,$t.ListNode)((0,$t.Opt)(i("entity_predicate"))))},"minecraft:construct_beacon":{level:(0,$t.Opt)((0,jt.Range)())},"minecraft:consume_item":{item:(0,$t.Opt)(i("item_predicate"))},"minecraft:cured_zombie_villager":{villager:(0,$t.Opt)(i("entity_predicate")),zombie:(0,$t.Opt)(i("entity_predicate"))},"minecraft:effects_changed":{effects:(0,$t.Opt)((0,$t.MapNode)(n({validator:"resource",params:{pool:"mob_effect"}}),i("status_effect_predicate")))},"minecraft:enter_block":{block:(0,$t.Opt)(n({validator:"resource",params:{pool:"block"}})),state:(0,$t.Opt)((0,$t.MapNode)(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:(0,$t.Opt)((0,jt.Range)()),item:(0,$t.Opt)(i("item_predicate"))},"minecraft:entity_hurt_player":{damage:(0,$t.Opt)(i("damage_predicate"))},"minecraft:entity_killed_player":{entity:(0,$t.Opt)(i("entity_predicate")),killing_blow:(0,$t.Opt)(i("damage_source_predicate"))},"minecraft:filled_bucket":{item:(0,$t.Opt)(i("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:(0,$t.Opt)(i("entity_predicate")),item:(0,$t.Opt)(i("item_predicate"))},"minecraft:hero_of_the_village":It.LocationFields,"minecraft:inventory_changed":{slots:(0,$t.Opt)((0,$t.ObjectNode)({empty:(0,$t.Opt)((0,jt.Range)()),occupied:(0,$t.Opt)((0,jt.Range)()),full:(0,$t.Opt)((0,jt.Range)())})),items:(0,$t.Opt)((0,$t.ListNode)(i("item_predicate")))},"minecraft:item_durability_changed":{delta:(0,$t.Opt)((0,jt.Range)()),durability:(0,$t.Opt)((0,jt.Range)()),item:(0,$t.Opt)(i("item_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:(0,$t.Opt)((0,jt.Range)()),victims:(0,$t.Opt)((0,$t.ListNode)((0,$t.Opt)(i("entity_predicate"))))},"minecraft:levitation":{distance:(0,$t.Opt)((0,jt.Range)()),duration:(0,$t.Opt)((0,jt.Range)())},"minecraft:location":It.LocationFields,"minecraft:nether_travel":{distance:(0,$t.Opt)((0,jt.Range)()),entered:(0,$t.Opt)(i("location_predicate")),exited:(0,$t.Opt)(i("location_predicate"))},"minecraft:placed_block":{block:(0,$t.Opt)(n({validator:"resource",params:{pool:"block"}})),state:(0,$t.Opt)((0,$t.MapNode)(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:(0,$t.Opt)(i("item_predicate")),location:(0,$t.Opt)(i("location_predicate"))},"minecraft:player_hurt_entity":{damage:(0,$t.Opt)(i("damage_predicate")),entity:(0,$t.Opt)(i("entity_predicate"))},"minecraft:player_killed_entity":{entity:(0,$t.Opt)(i("entity_predicate")),killing_blow:(0,$t.Opt)(i("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:n({validator:"resource",params:{pool:"$recipe"}})},"minecraft:safely_harvest_honey":{block:(0,$t.Opt)((0,$t.ObjectNode)({block:(0,$t.Opt)(n({validator:"resource",params:{pool:"block"}})),tag:(0,$t.Opt)(n({validator:"resource",params:{pool:"$tag/block"}}))})),item:(0,$t.Opt)(i("item_predicate"))},"minecraft:slept_in_bed":It.LocationFields,"minecraft:slide_down_block":{block:(0,$t.Opt)(n({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:(0,$t.Opt)(i("item_predicate"))},"minecraft:summoned_entity":{entity:(0,$t.Opt)(i("entity_predicate"))},"minecraft:tame_animal":{entity:(0,$t.Opt)(i("entity_predicate"))},"minecraft:used_ender_eye":{distance:(0,$t.Opt)((0,jt.Range)())},"minecraft:used_totem":{item:(0,$t.Opt)(i("item_predicate"))},"minecraft:villager_trade":{villager:(0,$t.Opt)(i("entity_predicate")),item:(0,$t.Opt)(i("item_predicate"))},"minecraft:voluntary_exile":It.LocationFields}},{context:"criterion"}))},{category:"predicate",context:"criterion"}))};var Pt={},zt={};Object.defineProperty(zt,"__esModule",{value:!0}),zt.initModelSchemas=void 0;const Ut=Pe;zt.initModelSchemas=function(e,t){Ut.Reference.bind(void 0,e);const i=Ut.StringNode.bind(void 0,t),n=(e,t,i)=>(0,Ut.ListNode)((0,Ut.NumberNode)({min:t,max:i}),{minLength:e,maxLength:e}),r=(0,Ut.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",(0,Ut.Mod)((0,Ut.ObjectNode)({parent:(0,Ut.Opt)(i({validator:"resource",params:{pool:"$model"}})),ambientocclusion:(0,Ut.Opt)((0,Ut.BooleanNode)()),gui_light:(0,Ut.Opt)(i({enum:"gui_light"})),textures:(0,Ut.Opt)((0,Ut.MapNode)(i(),r)),elements:(0,Ut.Opt)((0,Ut.ListNode)((0,Ut.ObjectNode)({from:n(3,-16,32),to:n(3,-16,32),rotation:(0,Ut.Opt)((0,Ut.ObjectNode)({origin:n(3),axis:i({enum:"axis"}),angle:(0,Ut.NumberEnum)({values:[-45,-22.5,0,22.5,45]}),rescale:(0,Ut.Opt)((0,Ut.BooleanNode)())})),shade:(0,Ut.Opt)((0,Ut.BooleanNode)()),faces:(0,Ut.MapNode)(i({enum:"direction"}),(0,Ut.ObjectNode)({texture:r,uv:(0,Ut.Opt)(n(4)),cullface:(0,Ut.Opt)(i({enum:"direction"})),rotation:(0,Ut.Opt)((0,Ut.NumberNode)({integer:!0})),tintindex:(0,Ut.Opt)((0,Ut.NumberNode)({integer:!0}))}))},{context:"model_element"}))),display:(0,Ut.Opt)((0,Ut.MapNode)(i({enum:"display_position"}),(0,Ut.ObjectNode)({rotation:n(3),translation:n(3,-80,80),scale:n(3,-4,4)},{context:"item_transform"}))),overrides:(0,Ut.Opt)((0,Ut.ListNode)((0,Ut.ObjectNode)({predicate:(0,Ut.MapNode)(i({enum:"item_model_predicates"}),(0,Ut.NumberNode)()),model:i({validator:"resource",params:{pool:"$model"}})},{context:"model_override"})))},{context:"model"}),{default:()=>({parent:"minecraft:item/generated",textures:{layer0:"minecraft:item/diamond"}})}))};var Wt={};Object.defineProperty(Wt,"__esModule",{value:!0}),Wt.initBlockDefinitionSchemas=void 0;const Ht=Pe;Wt.initBlockDefinitionSchemas=function(e,t){const i=Ht.Reference.bind(void 0,e),n=Ht.StringNode.bind(void 0,t);e.register("block_definition",(0,Ht.Mod)((0,Ht.ChoiceNode)([{type:"variants",match:e=>void 0!==e.variants,node:(0,Ht.ObjectNode)({variants:(0,Ht.MapNode)(n(),i("model_variant"))}),change:e=>({variants:{"":{}}})},{type:"multipart",match:e=>void 0!==e.multipart,node:(0,Ht.ObjectNode)({multipart:(0,Ht.ListNode)((0,Ht.ObjectNode)({when:(0,Ht.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:(0,Ht.Opt)((0,Ht.NumberEnum)({integer:!0,values:[0,90,180,270]})),y:(0,Ht.Opt)((0,Ht.NumberEnum)({integer:!0,values:[0,90,180,270]})),uvlock:(0,Ht.Opt)((0,Ht.BooleanNode)())};e.register("model_variant",(0,Ht.ChoiceNode)([{type:"object",node:(0,Ht.ObjectNode)(r),change:e=>Array.isArray(e)&&e.length>0?e[0]:{}},{type:"list",node:(0,Ht.ListNode)((0,Ht.ObjectNode)(c(s({},r),{weight:(0,Ht.Opt)((0,Ht.NumberNode)({integer:!0,min:1}))}),{context:"model_variant"})),change:e=>[s({weight:1},e)]}],{context:"model_variant"})),e.register("multipart_condition",(0,Ht.ChoiceNode)([{type:"object",priority:-1,match:()=>!0,node:(0,Ht.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:(0,Ht.ObjectNode)({OR:(0,Ht.ListNode)(i("multipart_condition"))}),change:e=>({OR:[null!=e?e:{}]})}],{context:"multipart_condition"}))},Object.defineProperty(Pt,"__esModule",{value:!0}),Pt.initAssetsSchemas=void 0;const qt=zt,Vt=Wt;Pt.initAssetsSchemas=function(e,t){(0,Vt.initBlockDefinitionSchemas)(e,t),(0,qt.initModelSchemas)(e,t)};var Gt={};Object.defineProperty(Gt,"__esModule",{value:!0}),Gt.initConditionSchemas=void 0;const Kt=Pe,Xt=Tt;Gt.initConditionSchemas=function(e,t){const i=Kt.Reference.bind(void 0,e),n=Kt.StringNode.bind(void 0,t);e.register("predicate",(0,Kt.ObjectOrList)(i("condition"),{choiceContext:"condition"})),e.register("condition",(0,Kt.Mod)((0,Kt.ObjectNode)({condition:n({validator:"resource",params:{pool:"loot_condition_type"}}),[Kt.Switch]:[{push:"condition"}],[Kt.Case]:Xt.ConditionCases},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:entity_properties",entity:"this"})}))};var Jt={},Yt={};Object.defineProperty(Yt,"__esModule",{value:!0}),Yt.LootFunctions=Yt.LootConditions=Yt.LootCopySources=Yt.LootEntitySources=Yt.LootTableTypes=void 0,Yt.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]}]]),Yt.LootEntitySources=new Map([["direct_killer",[3]],["killer",[5]],["killer_player",[5]],["this",[8]]]),Yt.LootCopySources=new Map([["block_entity",[0]],["killer",[5]],["killer_player",[5]],["this",[8]]]),Yt.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",[]]]),Yt.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(Jt,"__esModule",{value:!0}),Jt.initLootTableSchemas=void 0;const Zt=Pe,Qt=Yt,ei=Tt;Jt.initLootTableSchemas=function(e,t){const i=Zt.Reference.bind(void 0,e),n=Zt.StringNode.bind(void 0,t),r={conditions:(0,Zt.Opt)((0,Zt.ListNode)(i("loot_condition")))},o=s({functions:(0,Zt.Opt)((0,Zt.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 Qt.LootTableTypes){const e=[...a,...s];r.push({match:e=>e.getModel().get(new Zt.Path(["type"]))===t,node:n(o(e))})}return r.push({match:e=>!0,node:n(i)}),(0,Zt.SwitchNode)(r)}const l=a(Qt.LootConditions,"loot_condition_type",(e=>n({validator:"resource",params:{pool:e instanceof Array?e:"loot_condition_type"}}))),u=a(Qt.LootFunctions,"loot_function_type",(e=>n({validator:"resource",params:{pool:e instanceof Array?e:"loot_function_type"}}))),d=a(Qt.LootEntitySources,"entity_source",(e=>n({enum:e}))),h=a(Qt.LootCopySources,"copy_source",(e=>n({enum:e})));e.register("loot_table",(0,Zt.Mod)((0,Zt.ObjectNode)({type:(0,Zt.Opt)(n({validator:"resource",params:{pool:t.get("loot_context_type")}})),pools:(0,Zt.Opt)((0,Zt.ListNode)((0,Zt.Mod)((0,Zt.ObjectNode)(s({rolls:(0,ei.Range)({allowBinomial:!0,integer:!0}),bonus_rolls:(0,Zt.Opt)((0,ei.Range)({integer:!0})),entries:(0,Zt.ListNode)(i("loot_entry"))},o),{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:(0,Zt.Opt)((0,Zt.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",(0,Zt.Mod)((0,Zt.ObjectNode)({type:n({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:(0,Zt.Opt)((0,Zt.Mod)((0,Zt.NumberNode)({integer:!0,min:1}),p)),quality:(0,Zt.Opt)((0,Zt.Mod)((0,Zt.NumberNode)({integer:!0}),p)),[Zt.Switch]:[{push:"type"}],[Zt.Case]:{"minecraft:alternatives":s({children:(0,Zt.ListNode)(i("loot_entry"))},o),"minecraft:dynamic":s({name:n()},o),"minecraft:group":s({children:(0,Zt.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:(0,Zt.ListNode)(i("loot_entry"))},o),"minecraft:tag":s({name:n({validator:"resource",params:{pool:"$tag/item"}}),expand:(0,Zt.Opt)((0,Zt.BooleanNode)())},o)}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),e.register("loot_function",(0,Zt.Mod)((0,Zt.ObjectNode)({function:u,[Zt.Switch]:[{push:"function"}],[Zt.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:(0,Zt.Mod)((0,Zt.ObjectNode)({bonusMultiplier:(0,Zt.Mod)((0,Zt.NumberNode)(),{enabled:e=>"minecraft:uniform_bonus_count"===e.pop().push("formula").get()}),extra:(0,Zt.Mod)((0,Zt.NumberNode)(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()}),probability:(0,Zt.Mod)((0,Zt.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:(0,Zt.ListNode)((0,Zt.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:(0,Zt.ListNode)(n({validator:"block_state_key",params:{id:["pop","pop",{push:"block"}]}}))},"minecraft:enchant_randomly":{enchantments:(0,Zt.Opt)((0,Zt.ListNode)(n({validator:"resource",params:{pool:"enchantment"}})))},"minecraft:enchant_with_levels":{levels:(0,ei.Range)({allowBinomial:!0}),treasure:(0,Zt.Opt)((0,Zt.BooleanNode)())},"minecraft:exploration_map":{destination:(0,Zt.Opt)(n({enum:"structure_feature"})),decoration:(0,Zt.Opt)(n({enum:"map_decoration"})),zoom:(0,Zt.Opt)((0,Zt.NumberNode)({integer:!0})),search_radius:(0,Zt.Opt)((0,Zt.NumberNode)({integer:!0})),skip_existing_chunks:(0,Zt.Opt)((0,Zt.BooleanNode)())},"minecraft:fill_player_head":{entity:d},"minecraft:limit_count":{limit:(0,ei.Range)({bounds:!0})},"minecraft:looting_enchant":{count:(0,ei.Range)({bounds:!0}),limit:(0,Zt.Opt)((0,Zt.NumberNode)({integer:!0}))},"minecraft:set_attributes":{modifiers:(0,Zt.ListNode)(i("attribute_modifier"))},"minecraft:set_contents":{entries:(0,Zt.ListNode)(i("loot_entry"))},"minecraft:set_count":{count:(0,ei.Range)({allowBinomial:!0})},"minecraft:set_damage":{damage:(0,ei.Range)({forceRange:!0})},"minecraft:set_loot_table":{name:n({validator:"resource",params:{pool:"$loot_table"}}),seed:(0,Zt.Opt)((0,Zt.NumberNode)({integer:!0}))},"minecraft:set_lore":{entity:(0,Zt.Opt)(d),lore:(0,Zt.ListNode)(i("text_component")),replace:(0,Zt.Opt)((0,Zt.BooleanNode)())},"minecraft:set_name":{entity:(0,Zt.Opt)(d),name:(0,Zt.Opt)(i("text_component"))},"minecraft:set_nbt":{tag:n({validator:"nbt",params:{registry:{category:"minecraft:item"}}})},"minecraft:set_stew_effect":{effects:(0,Zt.Opt)((0,Zt.ListNode)((0,Zt.ObjectNode)({type:n({validator:"resource",params:{pool:"mob_effect"}}),duration:(0,ei.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",(0,Zt.Mod)((0,Zt.ObjectNode)({condition:l,[Zt.Switch]:[{push:"condition"}],[Zt.Case]:c(s({},ei.ConditionCases),{"minecraft:entity_properties":{entity:d,predicate:i("entity_predicate")},"minecraft:entity_scores":{entity:d,scores:(0,Zt.MapNode)(n({validator:"objective"}),(0,ei.Range)({bounds:!0}))}})},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),e.register("attribute_modifier",(0,Zt.Mod)((0,Zt.ObjectNode)({attribute:n({validator:"resource",params:{pool:"attribute"}}),name:n(),amount:(0,ei.Range)({bounds:!0}),operation:n({enum:["addition","multiply_base","multiply_total"]}),slot:(0,Zt.StringOrList)(n({enum:"slot"}))},{context:"attribute_modifier"}),{default:()=>({attribute:"minecraft:generic.max_health",name:"",amount:1,operation:"addition",slot:"mainhand"})}))};var ti={};Object.defineProperty(ti,"__esModule",{value:!0}),ti.initPackMcmetaSchemas=void 0;const ii=Pe;ti.initPackMcmetaSchemas=function(e,t){e.register("pack_mcmeta",(0,ii.Mod)((0,ii.ObjectNode)({pack:(0,ii.Mod)((0,ii.ObjectNode)({pack_format:(0,ii.Mod)((0,ii.NumberNode)({integer:!0,min:5,max:5}),{default:()=>5}),description:(0,ii.Reference)(e,"text_component")}),{default:()=>({pack_format:5,description:""})})}),{default:()=>({pack:{pack_format:5,description:""}})}))};var ni={};Object.defineProperty(ni,"__esModule",{value:!0}),ni.initRecipeSchemas=void 0;const ri=Pe;ni.initRecipeSchemas=function(e,t){const i=ri.Reference.bind(void 0,e),n=ri.StringNode.bind(void 0,t);e.register("recipe",(0,ri.Mod)((0,ri.ObjectNode)({type:n({validator:"resource",params:{pool:"recipe_serializer"}}),[ri.Switch]:[{push:"type"}],[ri.Case]:{"minecraft:crafting_shaped":{group:(0,ri.Opt)(n({enum:"recipe_group",additional:!0})),pattern:(0,ri.ListNode)(n()),key:(0,ri.MapNode)(n(),i("recipe_ingredient")),result:i("recipe_result")},"minecraft:crafting_shapeless":{group:(0,ri.Opt)(n()),ingredients:(0,ri.ListNode)(i("recipe_ingredient")),result:i("recipe_result")},"minecraft:smelting":{group:(0,ri.Opt)(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:(0,ri.Opt)((0,ri.NumberNode)()),cookingtime:(0,ri.Opt)((0,ri.Mod)((0,ri.NumberNode)({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:(0,ri.Opt)(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:(0,ri.Opt)((0,ri.NumberNode)()),cookingtime:(0,ri.Opt)((0,ri.Mod)((0,ri.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:(0,ri.Opt)(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:(0,ri.Opt)((0,ri.NumberNode)()),cookingtime:(0,ri.Opt)((0,ri.Mod)((0,ri.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:(0,ri.Opt)(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:(0,ri.Opt)((0,ri.NumberNode)()),cookingtime:(0,ri.Opt)((0,ri.Mod)((0,ri.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:(0,ri.Opt)(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),count:(0,ri.NumberNode)({integer:!0})},"minecraft:smithing":{group:(0,ri.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",(0,ri.Mod)((0,ri.ChoiceNode)([{type:"object",node:i("recipe_ingredient_object"),change:e=>e[0]},{type:"list",node:(0,ri.ListNode)(i("recipe_ingredient_object")),change:e=>[e]}]),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_ingredient_object",(0,ri.Mod)((0,ri.ObjectNode)({item:(0,ri.Opt)(n({validator:"resource",params:{pool:"item"}})),tag:(0,ri.Opt)(n({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_result",(0,ri.Mod)((0,ri.ObjectNode)({item:n({validator:"resource",params:{pool:"item"}}),count:(0,ri.Opt)((0,ri.Mod)((0,ri.NumberNode)({integer:!0}),{default:()=>1}))}),{default:()=>({item:"minecraft:stone"})}))};var oi={};Object.defineProperty(oi,"__esModule",{value:!0}),oi.initTagsSchemas=void 0;const ai=Pe;oi.initTagsSchemas=function(e,t){const i=ai.StringNode.bind(void 0,t),n=e=>(0,ai.Mod)((0,ai.ObjectNode)({replace:(0,ai.Opt)((0,ai.BooleanNode)()),values:(0,ai.ListNode)((0,ai.ChoiceNode)([{type:"string",node:i({validator:"resource",params:{pool:e,allowTag:!0}}),change:e=>e.id},{type:"object",node:(0,ai.ObjectNode)({id:i({validator:"resource",params:{pool:e,allowTag:!0,allowUnknown:!0}}),required:(0,ai.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 si={};Object.defineProperty(si,"__esModule",{value:!0}),si.initTextComponentSchemas=void 0;const ci=Pe;si.initTextComponentSchemas=function(e,t){const i=ci.Reference.bind(void 0,e),n=ci.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",(0,ci.Mod)((0,ci.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:(0,ci.NumberNode)(),change:e=>{const t=parseFloat(r(e));return isFinite(t)?t:e?1:0}},{type:"boolean",node:(0,ci.BooleanNode)(),change:e=>{const t=r(e);return"true"===t||"false"===t?"true"===t:!!t}}],{context:"text_component"}),{default:()=>({text:""})}));const o={bold:(0,ci.Opt)((0,ci.BooleanNode)()),italic:(0,ci.Opt)((0,ci.BooleanNode)()),underlined:(0,ci.Opt)((0,ci.BooleanNode)()),strikethrough:(0,ci.Opt)((0,ci.BooleanNode)()),obfuscated:(0,ci.Opt)((0,ci.BooleanNode)()),insertion:(0,ci.Opt)(n()),clickEvent:(0,ci.Opt)((0,ci.ObjectNode)({action:n({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[ci.Switch]:[{push:"action"}],[ci.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:(0,ci.Opt)((0,ci.ObjectNode)({action:n({enum:["show_text","show_item","show_entity"]}),[ci.Switch]:[{push:"action"}],[ci.Case]:{show_text:{value:(0,ci.Opt)(i("text_component"))},show_item:{value:(0,ci.Opt)(n({validator:"nbt",params:{module:"util::InventoryItem"}}))},show_entity:{value:(0,ci.Opt)((0,ci.ObjectNode)({name:(0,ci.Opt)(n()),type:(0,ci.Opt)(n()),id:(0,ci.Opt)(n())}))}}})),extra:(0,ci.Opt)(i("text_component_list"))};e.register("text_component_object",(0,ci.Mod)((0,ci.ChoiceNode)([{type:"text",match:e=>"object"==typeof e,change:e=>({text:""}),priority:-1,node:(0,ci.ObjectNode)(s({text:n()},o))},{type:"translation",match:e=>void 0!==(null==e?void 0:e.translate),change:e=>({translate:""}),node:(0,ci.ObjectNode)(s({translate:n(),with:(0,ci.Opt)(i("text_component_list"))},o))},{type:"score",match:e=>void 0!==(null==e?void 0:e.score),change:e=>({score:{}}),node:(0,ci.ObjectNode)(s({score:(0,ci.ObjectNode)({name:n({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:n({validator:"objective"}),value:(0,ci.Opt)(n())})},o))},{type:"selector",match:e=>void 0!==(null==e?void 0:e.selector),change:e=>({selector:""}),node:(0,ci.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:(0,ci.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:(0,ci.ObjectNode)(s({nbt:n({validator:"nbt_path"}),block:(0,ci.Opt)(n({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:(0,ci.Opt)(n({validator:"entity",params:{amount:"multiple",type:"entities"}})),storage:(0,ci.Opt)(n({validator:"resource",params:{pool:"$storage"}})),interpret:(0,ci.Opt)((0,ci.BooleanNode)())},o))}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),e.register("text_component_list",(0,ci.Mod)((0,ci.ListNode)(i("text_component")),{default:()=>[{text:""}]}))},Object.defineProperty(Lt,"__esModule",{value:!0}),Lt.initSchemas=void 0;const li=Mt,ui=Pt,di=Tt,hi=Gt,pi=Jt,mi=ti,fi=Rt,gi=ni,_i=oi,bi=si;Lt.initSchemas=function(e,t){(0,di.initCommonSchemas)(e,t),(0,fi.initPredicatesSchemas)(e,t),(0,li.initAdvancementSchemas)(e,t),(0,ui.initAssetsSchemas)(e,t),(0,hi.initConditionSchemas)(e,t),(0,pi.initLootTableSchemas)(e,t),(0,mi.initPackMcmetaSchemas)(e,t),(0,gi.initRecipeSchemas)(e,t),(0,_i.initTagsSchemas)(e,t),(0,bi.initTextComponentSchemas)(e,t)};var vi=Ie&&Ie.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i);var r=Object.getOwnPropertyDescriptor(t,i);r&&!("get"in r?!t.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,n,r)}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),yi=Ie&&Ie.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),wi=Ie&&Ie.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&vi(t,e,i);return yi(t,e),t};Object.defineProperty(Dt,"__esModule",{value:!0});var xi=Dt.getSchemas=Dt.getCollections=Dt.lootContext=void 0;const Ni=Pe,ki=Bt,Ai=Lt;var Ci=Dt.lootContext=wi(Yt);var Oi=Dt.getCollections=function(){const e=new Ni.CollectionRegistry;return(0,ki.initCollections)(e),e};xi=Dt.getSchemas=function(e){const t=new Ni.SchemaRegistry;return(0,Ai.initSchemas)(t,e),t};var Si=Object.freeze(Object.assign(Object.create(null),Dt,{[Symbol.toStringTag]:"Module",get getSchemas(){return xi},get getCollections(){return Oi},get lootContext(){return Ci},default:Dt})),Ei={},Fi={};Object.defineProperty(Fi,"__esModule",{value:!0}),Fi.initCollections=void 0,Fi.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"]),e.register("cat_texture",["textures/entity/cat/tabby.png","textures/entity/cat/black.png","textures/entity/cat/red.png","textures/entity/cat/siamese.png","textures/entity/cat/british_shorthair.png","textures/entity/cat/calico.png","textures/entity/cat/persian.png","textures/entity/cat/ragdoll.png","textures/entity/cat/white.png","textures/entity/cat/jellie.png","textures/entity/cat/all_black.png"])};var Di={},Bi={},Li={};!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=Pe;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",(0,t.Mod)((0,t.ObjectNode)({Name:r({validator:"resource",params:{pool:"block"}}),Properties:(0,t.Opt)((0,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",(0,t.Mod)((0,t.ObjectNode)({Name:r({validator:"resource",params:{pool:"fluid"}}),Properties:(0,t.Opt)((0,t.MapNode)(r(),r()))},{context:"fluid_state"}),{default:()=>({Name:"minecraft:water",Properties:{level:"0"}})})),i.register("block_pos",(0,t.Mod)((0,t.ListNode)((0,t.NumberNode)({integer:!0}),{minLength:3,maxLength:3}),{default:()=>[0,0,0]})),e.Range=e=>(0,t.ChoiceNode)([...(null==e?void 0:e.forceRange)?[]:[{type:"number",node:(0,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:(0,t.ObjectNode)({min:(null==e?void 0:e.bounds)?(0,t.NumberNode)(e):(0,t.Opt)((0,t.NumberNode)(e)),max:(null==e?void 0:e.bounds)?(0,t.NumberNode)(e):(0,t.Opt)((0,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:(0,t.ObjectNode)({type:r({enum:["minecraft:binomial"]}),n:(0,t.NumberNode)({integer:!0,min:0}),p:(0,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=>(0,t.ChoiceNode)([{type:"number",node:(0,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:(0,t.ObjectNode)({base:(0,t.NumberNode)({integer:!0,min:null==e?void 0:e.min,max:null==e?void 0:e.max}),spread:(0,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:(0,t.ListNode)(o("condition"))},"minecraft:block_state_property":{block:r({validator:"resource",params:{pool:"block"}}),properties:(0,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:(0,t.MapNode)(r({validator:"objective"}),(0,e.Range)({forceRange:!0}))},"minecraft:inverted":{term:o("condition")},"minecraft:killed_by_player":{inverse:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:location_check":{offsetX:(0,t.Opt)((0,t.NumberNode)({integer:!0})),offsetY:(0,t.Opt)((0,t.NumberNode)({integer:!0})),offsetZ:(0,t.Opt)((0,t.NumberNode)({integer:!0})),predicate:o("location_predicate")},"minecraft:match_tool":{predicate:o("item_predicate")},"minecraft:random_chance":{chance:(0,t.NumberNode)({min:0,max:1})},"minecraft:random_chance_with_looting":{chance:(0,t.NumberNode)({min:0,max:1}),looting_multiplier:(0,t.NumberNode)()},"minecraft:reference":{name:r({validator:"resource",params:{pool:"$predicate"}})},"minecraft:table_bonus":{enchantment:r({validator:"resource",params:{pool:"enchantment"}}),chances:(0,t.ListNode)((0,t.NumberNode)({min:0,max:1}))},"minecraft:time_check":{value:(0,e.Range)(),period:(0,t.Opt)((0,t.NumberNode)())},"minecraft:weather_check":{raining:(0,t.Opt)((0,t.BooleanNode)()),thundering:(0,t.Opt)((0,t.BooleanNode)())}},e.DimensionTypePresets=i=>(0,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=>(0,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"}}}})}}(Li),Object.defineProperty(Bi,"__esModule",{value:!0}),Bi.initAdvancementSchemas=void 0;const Mi=Pe,Ti=Li;Bi.initAdvancementSchemas=function(e,t){const i=Mi.Reference.bind(void 0,e),n=Mi.StringNode.bind(void 0,t),r=(0,Mi.ChoiceNode)([{type:"object",node:(0,Mi.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:(0,Mi.ListNode)(i("condition")),change:e=>[{condition:"minecraft:entity_properties",predicate:e}]}],{context:"conditions"});e.register("advancement",(0,Mi.Mod)((0,Mi.ObjectNode)({display:(0,Mi.Opt)((0,Mi.Mod)((0,Mi.ObjectNode)({icon:(0,Mi.ObjectNode)({item:n({validator:"resource",params:{pool:"item"}}),nbt:(0,Mi.Opt)(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:i("text_component"),description:i("text_component"),background:(0,Mi.Opt)(n()),frame:(0,Mi.Opt)(n({enum:["task","challenge","goal"]})),show_toast:(0,Mi.Opt)((0,Mi.BooleanNode)()),announce_to_chat:(0,Mi.Opt)((0,Mi.BooleanNode)()),hidden:(0,Mi.Opt)((0,Mi.BooleanNode)())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:(0,Mi.Opt)(n({validator:"resource",params:{pool:"$advancement"}})),criteria:(0,Mi.MapNode)(n(),i("advancement_criteria")),requirements:(0,Mi.Opt)((0,Mi.ListNode)((0,Mi.ListNode)(n()))),rewards:(0,Mi.Opt)((0,Mi.ObjectNode)({function:(0,Mi.Opt)(n({validator:"resource",params:{pool:"$function"}})),loot:(0,Mi.Opt)((0,Mi.ListNode)(n({validator:"resource",params:{pool:"$loot_table"}}))),recipes:(0,Mi.Opt)((0,Mi.ListNode)(n({validator:"resource",params:{pool:"$recipe"}}))),experience:(0,Mi.Opt)((0,Mi.NumberNode)({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),e.register("advancement_criteria",(0,Mi.ObjectNode)({trigger:n({validator:"resource",params:{pool:t.get("advancement_trigger")}}),conditions:(0,Mi.Opt)((0,Mi.ObjectNode)({player:(0,Mi.Mod)(r,{enabled:e=>"minecraft:impossible"!==e.pop().push("trigger").get()}),[Mi.Switch]:["pop",{push:"trigger"}],[Mi.Case]:{"minecraft:bee_nest_destroyed":{block:(0,Mi.Opt)(n({validator:"resource",params:{pool:"block"}})),num_bees_inside:(0,Mi.Opt)((0,Mi.NumberNode)({integer:!0})),item:(0,Mi.Opt)(i("item_predicate"))},"minecraft:bred_animals":{parent:r,partner:r,child:r},"minecraft:brewed_potion":{potion:(0,Mi.Opt)(n({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:(0,Mi.Opt)(n({validator:"resource",params:{pool:"$dimension"}})),to:(0,Mi.Opt)(n({validator:"resource",params:{pool:"$dimension"}}))},"minecraft:channeled_lightning":{victims:(0,Mi.Opt)((0,Mi.ListNode)(r))},"minecraft:construct_beacon":{level:(0,Mi.Opt)((0,Ti.Range)())},"minecraft:consume_item":{item:(0,Mi.Opt)(i("item_predicate"))},"minecraft:cured_zombie_villager":{villager:r,zombie:r},"minecraft:effects_changed":{effects:(0,Mi.Opt)((0,Mi.MapNode)(n({validator:"resource",params:{pool:"mob_effect"}}),i("status_effect_predicate")))},"minecraft:enter_block":{block:(0,Mi.Opt)(n({validator:"resource",params:{pool:"block"}})),state:(0,Mi.Opt)((0,Mi.MapNode)(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:(0,Mi.Opt)((0,Ti.Range)()),item:(0,Mi.Opt)(i("item_predicate"))},"minecraft:entity_hurt_player":{damage:(0,Mi.Opt)(i("damage_predicate"))},"minecraft:entity_killed_player":{entity:r,killing_blow:(0,Mi.Opt)(i("damage_source_predicate"))},"minecraft:filled_bucket":{item:(0,Mi.Opt)(i("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:r,item:(0,Mi.Opt)(i("item_predicate"))},"minecraft:hero_of_the_village":{location:(0,Mi.Opt)(i("location_predicate"))},"minecraft:inventory_changed":{slots:(0,Mi.Opt)((0,Mi.ObjectNode)({empty:(0,Mi.Opt)((0,Ti.Range)()),occupied:(0,Mi.Opt)((0,Ti.Range)()),full:(0,Mi.Opt)((0,Ti.Range)())})),items:(0,Mi.Opt)((0,Mi.ListNode)(i("item_predicate")))},"minecraft:item_durability_changed":{delta:(0,Mi.Opt)((0,Ti.Range)()),durability:(0,Mi.Opt)((0,Ti.Range)()),item:(0,Mi.Opt)(i("item_predicate"))},"minecraft:item_used_on_block":{item:(0,Mi.Opt)(i("item_predicate")),location:(0,Mi.Opt)(i("location_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:(0,Mi.Opt)((0,Ti.Range)()),victims:(0,Mi.Opt)((0,Mi.ListNode)(r))},"minecraft:levitation":{distance:(0,Mi.Opt)((0,Ti.Range)()),duration:(0,Mi.Opt)((0,Ti.Range)())},"minecraft:location":{location:(0,Mi.Opt)(i("location_predicate"))},"minecraft:nether_travel":{distance:(0,Mi.Opt)((0,Ti.Range)()),entered:(0,Mi.Opt)(i("location_predicate")),exited:(0,Mi.Opt)(i("location_predicate"))},"minecraft:placed_block":{block:(0,Mi.Opt)(n({validator:"resource",params:{pool:"block"}})),state:(0,Mi.Opt)((0,Mi.MapNode)(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:(0,Mi.Opt)(i("item_predicate")),location:(0,Mi.Opt)(i("location_predicate"))},"minecraft:player_generates_container_loot":{loot_table:n({validator:"resource",params:{pool:"$loot_table"}})},"minecraft:player_hurt_entity":{damage:(0,Mi.Opt)(i("damage_predicate")),entity:r},"minecraft:player_interacted_with_entity":{item:(0,Mi.Opt)(i("item_predicate")),entity:r},"minecraft:player_killed_entity":{entity:r,killing_blow:(0,Mi.Opt)(i("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:n({validator:"resource",params:{pool:"$recipe"}})},"minecraft:slept_in_bed":{location:(0,Mi.Opt)(i("location_predicate"))},"minecraft:slide_down_block":{block:(0,Mi.Opt)(n({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:(0,Mi.Opt)(i("item_predicate"))},"minecraft:summoned_entity":{entity:r},"minecraft:tame_animal":{entity:r},"minecraft:target_hit":{projectile:r,shooter:r,signal_strength:(0,Mi.Opt)((0,Ti.Range)({integer:!0}))},"minecraft:thrown_item_picked_up_by_entity":{entity:r,item:(0,Mi.Opt)(i("item_predicate"))},"minecraft:used_ender_eye":{distance:(0,Mi.Opt)((0,Ti.Range)())},"minecraft:used_totem":{item:(0,Mi.Opt)(i("item_predicate"))},"minecraft:villager_trade":{villager:r,item:(0,Mi.Opt)(i("item_predicate"))},"minecraft:voluntary_exile":{location:i("location_predicate")}}},{context:"criterion"}))},{category:"predicate",context:"criterion"}))};var Ri={},$i={};Object.defineProperty($i,"__esModule",{value:!0}),$i.initModelSchemas=void 0;const ji=Pe;$i.initModelSchemas=function(e,t){ji.Reference.bind(void 0,e);const i=ji.StringNode.bind(void 0,t),n=(e,t,i)=>(0,ji.ListNode)((0,ji.NumberNode)({min:t,max:i}),{minLength:e,maxLength:e}),r=(0,ji.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",(0,ji.Mod)((0,ji.ObjectNode)({parent:(0,ji.Opt)(i({validator:"resource",params:{pool:"$model"}})),ambientocclusion:(0,ji.Opt)((0,ji.BooleanNode)()),gui_light:(0,ji.Opt)(i({enum:"gui_light"})),textures:(0,ji.Opt)((0,ji.MapNode)(i(),r)),elements:(0,ji.Opt)((0,ji.ListNode)((0,ji.ObjectNode)({from:n(3,-16,32),to:n(3,-16,32),rotation:(0,ji.Opt)((0,ji.ObjectNode)({origin:n(3),axis:i({enum:"axis"}),angle:(0,ji.NumberEnum)({values:[-45,-22.5,0,22.5,45]}),rescale:(0,ji.Opt)((0,ji.BooleanNode)())})),shade:(0,ji.Opt)((0,ji.BooleanNode)()),faces:(0,ji.MapNode)(i({enum:"direction"}),(0,ji.ObjectNode)({texture:r,uv:(0,ji.Opt)(n(4)),cullface:(0,ji.Opt)(i({enum:"direction"})),rotation:(0,ji.Opt)((0,ji.NumberNode)({integer:!0})),tintindex:(0,ji.Opt)((0,ji.NumberNode)({integer:!0}))}))},{context:"model_element"}))),display:(0,ji.Opt)((0,ji.MapNode)(i({enum:"display_position"}),(0,ji.ObjectNode)({rotation:n(3),translation:n(3,-80,80),scale:n(3,-4,4)},{context:"item_transform"}))),overrides:(0,ji.Opt)((0,ji.ListNode)((0,ji.ObjectNode)({predicate:(0,ji.MapNode)(i({enum:"item_model_predicates"}),(0,ji.NumberNode)()),model:i({validator:"resource",params:{pool:"$model"}})},{context:"model_override"})))},{context:"model"}),{default:()=>({parent:"minecraft:item/generated",textures:{layer0:"minecraft:item/diamond"}})}))};var Ii={};Object.defineProperty(Ii,"__esModule",{value:!0}),Ii.initBlockDefinitionSchemas=void 0;const Pi=Pe;Ii.initBlockDefinitionSchemas=function(e,t){const i=Pi.Reference.bind(void 0,e),n=Pi.StringNode.bind(void 0,t);e.register("block_definition",(0,Pi.Mod)((0,Pi.ChoiceNode)([{type:"variants",match:e=>void 0!==e.variants,node:(0,Pi.ObjectNode)({variants:(0,Pi.MapNode)(n(),i("model_variant"))}),change:e=>({variants:{"":{}}})},{type:"multipart",match:e=>void 0!==e.multipart,node:(0,Pi.ObjectNode)({multipart:(0,Pi.ListNode)((0,Pi.ObjectNode)({when:(0,Pi.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:(0,Pi.Opt)((0,Pi.NumberEnum)({integer:!0,values:[0,90,180,270]})),y:(0,Pi.Opt)((0,Pi.NumberEnum)({integer:!0,values:[0,90,180,270]})),uvlock:(0,Pi.Opt)((0,Pi.BooleanNode)())};e.register("model_variant",(0,Pi.ChoiceNode)([{type:"object",node:(0,Pi.ObjectNode)(r),change:e=>Array.isArray(e)&&e.length>0?e[0]:{}},{type:"list",node:(0,Pi.ListNode)((0,Pi.ObjectNode)(c(s({},r),{weight:(0,Pi.Opt)((0,Pi.NumberNode)({integer:!0,min:1}))}),{context:"model_variant"})),change:e=>[s({weight:1},e)]}],{context:"model_variant"})),e.register("multipart_condition",(0,Pi.ChoiceNode)([{type:"object",priority:-1,match:()=>!0,node:(0,Pi.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:(0,Pi.ObjectNode)({OR:(0,Pi.ListNode)(i("multipart_condition"))}),change:e=>({OR:[null!=e?e:{}]})}],{context:"multipart_condition"}))},Object.defineProperty(Ri,"__esModule",{value:!0}),Ri.initAssetsSchemas=void 0;const zi=$i,Ui=Ii;Ri.initAssetsSchemas=function(e,t){(0,Ui.initBlockDefinitionSchemas)(e,t),(0,zi.initModelSchemas)(e,t)};var Wi={};Object.defineProperty(Wi,"__esModule",{value:!0}),Wi.initConditionSchemas=void 0;const Hi=Pe,qi=Li;Wi.initConditionSchemas=function(e,t){const i=Hi.Reference.bind(void 0,e),n=Hi.StringNode.bind(void 0,t);e.register("predicate",(0,Hi.ObjectOrList)(i("condition"),{choiceContext:"condition"})),e.register("condition",(0,Hi.Mod)((0,Hi.ObjectNode)({condition:n({validator:"resource",params:{pool:"loot_condition_type"}}),[Hi.Switch]:[{push:"condition"}],[Hi.Case]:qi.ConditionCases},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:entity_properties",entity:"this"})}))};var Vi={};Object.defineProperty(Vi,"__esModule",{value:!0}),Vi.initDimensionSchemas=void 0;const Gi=Pe,Ki=Li;Vi.initDimensionSchemas=function(e,t){const i=Gi.Reference.bind(void 0,e),n=Gi.StringNode.bind(void 0,t),r=e=>(0,Gi.Mod)(e,{enabled:e=>void 0===e.push("preset").get()});e.register("dimension",(0,Gi.Mod)((0,Gi.ObjectNode)({type:(0,Ki.DimensionTypePresets)(i("dimension_type")),generator:(0,Gi.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/chunk_generator"}}),[Gi.Switch]:[{push:"type"}],[Gi.Case]:{"minecraft:noise":{seed:(0,Gi.NumberNode)({integer:!0}),settings:(0,Ki.NoiseSettingsPresets)(i("noise_settings")),biome_source:(0,Gi.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/biome_source"}}),[Gi.Switch]:[{push:"type"}],[Gi.Case]:{"minecraft:fixed":{biome:n({validator:"resource",params:{pool:"$worldgen/biome"}})},"minecraft:multi_noise":{seed:(0,Gi.NumberNode)({integer:!0}),preset:(0,Gi.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((0,Gi.Mod)((0,Gi.ListNode)(i("generator_biome")),{default:()=>[{biome:"minecraft:plains"}]}))},"minecraft:checkerboard":{scale:(0,Gi.Opt)((0,Gi.NumberNode)({integer:!0,min:0,max:62})),biomes:(0,Gi.ListNode)(n({validator:"resource",params:{pool:"$worldgen/biome"}}))},"minecraft:the_end":{seed:(0,Gi.NumberNode)({integer:!0})},"minecraft:vanilla_layered":{seed:(0,Gi.NumberNode)({integer:!0}),large_biomes:(0,Gi.Opt)((0,Gi.BooleanNode)()),legacy_biome_init_layer:(0,Gi.Opt)((0,Gi.BooleanNode)())}}},{category:"predicate",disableSwitchContext:!0})},"minecraft:flat":{settings:(0,Gi.ObjectNode)({biome:(0,Gi.Opt)(n({validator:"resource",params:{pool:"$worldgen/biome"}})),lakes:(0,Gi.Opt)((0,Gi.BooleanNode)()),features:(0,Gi.Opt)((0,Gi.BooleanNode)()),layers:(0,Gi.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",(0,Gi.Mod)((0,Gi.ObjectNode)({biome:n({validator:"resource",params:{pool:"$worldgen/biome"}}),parameters:(0,Gi.ObjectNode)({altitude:(0,Gi.NumberNode)(),temperature:(0,Gi.NumberNode)(),humidity:(0,Gi.NumberNode)(),weirdness:(0,Gi.NumberNode)(),offset:(0,Gi.NumberNode)()})},{context:"generator_biome"}),{default:()=>({biome:"minecraft:plains",parameters:{altitude:0,temperature:0,humidity:0,weirdness:0,offset:0}})})),e.register("generator_biome_noise",(0,Gi.Mod)((0,Gi.ObjectNode)({firstOctave:(0,Gi.NumberNode)({integer:!0}),amplitudes:(0,Gi.ListNode)((0,Gi.NumberNode)())},{context:"generator_biome_noise"}),{default:()=>({firstOctave:-7,amplitudes:[1,1]})}))};var Xi={};Object.defineProperty(Xi,"__esModule",{value:!0}),Xi.initDimensionTypeSchemas=void 0;const Ji=Pe,Yi=Li;Xi.initDimensionTypeSchemas=function(e,t){const i=Ji.StringNode.bind(void 0,t);e.register("dimension_type",(0,Ji.Mod)((0,Ji.ObjectNode)({name:(0,Ji.Mod)(i({validator:"resource",params:{pool:"$dimension_type",isDefinition:!0}}),{enabled:e=>e.getArray().length>0}),ultrawarm:(0,Ji.BooleanNode)(),natural:(0,Ji.BooleanNode)(),piglin_safe:(0,Ji.BooleanNode)(),respawn_anchor_works:(0,Ji.BooleanNode)(),bed_works:(0,Ji.BooleanNode)(),has_raids:(0,Ji.BooleanNode)(),has_skylight:(0,Ji.BooleanNode)(),has_ceiling:(0,Ji.BooleanNode)(),coordinate_scale:(0,Ji.NumberNode)({min:1e-5,max:3e7}),ambient_light:(0,Ji.NumberNode)(),fixed_time:(0,Ji.Opt)((0,Ji.NumberNode)({integer:!0})),logical_height:(0,Ji.NumberNode)({integer:!0,min:0,max:256}),effects:(0,Ji.Opt)(i({enum:["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]})),infiniburn:i({validator:"resource",params:{pool:"$tag/block"}})},{context:"dimension_type"}),{default:()=>Yi.DefaultDimensionType}))};var Zi={},Qi={};Object.defineProperty(Qi,"__esModule",{value:!0}),Qi.LootFunctions=Qi.LootConditions=Qi.LootCopySources=Qi.LootEntitySources=Qi.LootTableTypes=void 0,Qi.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]}]]),Qi.LootEntitySources=new Map([["direct_killer",[3]],["killer",[5]],["killer_player",[5]],["this",[8]]]),Qi.LootCopySources=new Map([["block_entity",[0]],["killer",[5]],["killer_player",[5]],["this",[8]]]),Qi.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",[]]]),Qi.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(Zi,"__esModule",{value:!0}),Zi.initLootTableSchemas=void 0;const en=Pe,tn=Qi,nn=Li;Zi.initLootTableSchemas=function(e,t){const i=en.Reference.bind(void 0,e),n=en.StringNode.bind(void 0,t),r={conditions:(0,en.Opt)((0,en.ListNode)(i("loot_condition")))},o=s({functions:(0,en.Opt)((0,en.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 tn.LootTableTypes){const e=[...a,...s];r.push({match:e=>e.getModel().get(new en.Path(["type"]))===t,node:n(o(e))})}return r.push({match:e=>!0,node:n(i)}),(0,en.SwitchNode)(r)}const l=a(tn.LootConditions,"loot_condition_type",(e=>n({validator:"resource",params:{pool:e instanceof Array?e:"loot_condition_type"}}))),u=a(tn.LootFunctions,"loot_function_type",(e=>n({validator:"resource",params:{pool:e instanceof Array?e:"loot_function_type"}}))),d=a(tn.LootEntitySources,"entity_source",(e=>n({enum:e}))),h=a(tn.LootCopySources,"copy_source",(e=>n({enum:e})));e.register("loot_table",(0,en.Mod)((0,en.ObjectNode)({type:(0,en.Opt)(n({validator:"resource",params:{pool:t.get("loot_context_type")}})),pools:(0,en.Opt)((0,en.ListNode)((0,en.Mod)((0,en.ObjectNode)(s({rolls:(0,nn.Range)({allowBinomial:!0,integer:!0}),bonus_rolls:(0,en.Opt)((0,nn.Range)({integer:!0})),entries:(0,en.ListNode)(i("loot_entry"))},o),{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:(0,en.Opt)((0,en.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",(0,en.Mod)((0,en.ObjectNode)({type:n({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:(0,en.Opt)((0,en.Mod)((0,en.NumberNode)({integer:!0,min:1}),p)),quality:(0,en.Opt)((0,en.Mod)((0,en.NumberNode)({integer:!0}),p)),[en.Switch]:[{push:"type"}],[en.Case]:{"minecraft:alternatives":s({children:(0,en.ListNode)(i("loot_entry"))},o),"minecraft:dynamic":s({name:n()},o),"minecraft:group":s({children:(0,en.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:(0,en.ListNode)(i("loot_entry"))},o),"minecraft:tag":s({name:n({validator:"resource",params:{pool:"$tag/item"}}),expand:(0,en.Opt)((0,en.BooleanNode)())},o)}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),e.register("loot_function",(0,en.Mod)((0,en.ObjectNode)({function:u,[en.Switch]:[{push:"function"}],[en.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:(0,en.Mod)((0,en.ObjectNode)({bonusMultiplier:(0,en.Mod)((0,en.NumberNode)(),{enabled:e=>"minecraft:uniform_bonus_count"===e.pop().push("formula").get()}),extra:(0,en.Mod)((0,en.NumberNode)(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()}),probability:(0,en.Mod)((0,en.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:(0,en.ListNode)((0,en.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:(0,en.ListNode)(n({validator:"block_state_key",params:{id:["pop","pop",{push:"block"}]}}))},"minecraft:enchant_randomly":{enchantments:(0,en.Opt)((0,en.ListNode)(n({validator:"resource",params:{pool:"enchantment"}})))},"minecraft:enchant_with_levels":{levels:(0,nn.Range)({allowBinomial:!0}),treasure:(0,en.Opt)((0,en.BooleanNode)())},"minecraft:exploration_map":{destination:(0,en.Opt)(n({enum:"map_feature"})),decoration:(0,en.Opt)(n({enum:"map_decoration"})),zoom:(0,en.Opt)((0,en.NumberNode)({integer:!0})),search_radius:(0,en.Opt)((0,en.NumberNode)({integer:!0})),skip_existing_chunks:(0,en.Opt)((0,en.BooleanNode)())},"minecraft:fill_player_head":{entity:d},"minecraft:limit_count":{limit:(0,nn.Range)({bounds:!0})},"minecraft:looting_enchant":{count:(0,nn.Range)({bounds:!0}),limit:(0,en.Opt)((0,en.NumberNode)({integer:!0}))},"minecraft:set_attributes":{modifiers:(0,en.ListNode)(i("attribute_modifier"))},"minecraft:set_contents":{entries:(0,en.ListNode)(i("loot_entry"))},"minecraft:set_count":{count:(0,nn.Range)({allowBinomial:!0})},"minecraft:set_damage":{damage:(0,nn.Range)({forceRange:!0})},"minecraft:set_loot_table":{name:n({validator:"resource",params:{pool:"$loot_table"}}),seed:(0,en.Opt)((0,en.NumberNode)({integer:!0}))},"minecraft:set_lore":{entity:(0,en.Opt)(d),lore:(0,en.ListNode)(i("text_component")),replace:(0,en.Opt)((0,en.BooleanNode)())},"minecraft:set_name":{entity:(0,en.Opt)(d),name:(0,en.Opt)(i("text_component"))},"minecraft:set_nbt":{tag:n({validator:"nbt",params:{registry:{category:"minecraft:item"}}})},"minecraft:set_stew_effect":{effects:(0,en.Opt)((0,en.ListNode)((0,en.ObjectNode)({type:n({validator:"resource",params:{pool:"mob_effect"}}),duration:(0,nn.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",(0,en.Mod)((0,en.ObjectNode)({condition:l,[en.Switch]:[{push:"condition"}],[en.Case]:c(s({},nn.ConditionCases),{"minecraft:entity_properties":{entity:d,predicate:i("entity_predicate")},"minecraft:entity_scores":{entity:d,scores:(0,en.MapNode)(n({validator:"objective"}),(0,nn.Range)({bounds:!0}))}})},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),e.register("attribute_modifier",(0,en.Mod)((0,en.ObjectNode)({attribute:n({validator:"resource",params:{pool:"attribute"}}),name:n(),amount:(0,nn.Range)({bounds:!0}),operation:n({enum:["addition","multiply_base","multiply_total"]}),slot:(0,en.StringOrList)(n({enum:"slot"}))},{context:"attribute_modifier"}),{default:()=>({attribute:"minecraft:generic.max_health",name:"",amount:1,operation:"addition",slot:"mainhand"})}))};var rn={};Object.defineProperty(rn,"__esModule",{value:!0}),rn.initPackMcmetaSchemas=void 0;const on=Pe;rn.initPackMcmetaSchemas=function(e,t){e.register("pack_mcmeta",(0,on.Mod)((0,on.ObjectNode)({pack:(0,on.Mod)((0,on.ObjectNode)({pack_format:(0,on.Mod)((0,on.NumberNode)({integer:!0,min:6,max:6}),{default:()=>6}),description:(0,on.Reference)(e,"text_component")}),{default:()=>({pack_format:6,description:""})})}),{default:()=>({pack:{pack_format:6,description:""}})}))};var an={};Object.defineProperty(an,"__esModule",{value:!0}),an.initPredicatesSchemas=void 0;const sn=Pe,cn=Li;an.initPredicatesSchemas=function(e,t){const i=sn.Reference.bind(void 0,e),n=sn.StringNode.bind(void 0,t),r=(0,sn.ChoiceNode)([{type:"string",node:n(),change:e=>"boolean"==typeof e||"number"==typeof e?e.toString():""},{type:"number",node:(0,sn.NumberNode)(),change:e=>"string"==typeof e?parseInt(e):0},{type:"object",node:(0,sn.ObjectNode)({min:(0,sn.Opt)((0,sn.NumberNode)({integer:!0})),max:(0,sn.Opt)((0,sn.NumberNode)({integer:!0}))}),change:e=>"number"==typeof e?{min:e,max:e}:{}},{type:"boolean",node:(0,sn.BooleanNode)(),change:e=>"true"===e||1===e}]);e.register("item_predicate",(0,sn.ObjectNode)({item:(0,sn.Opt)(n({validator:"resource",params:{pool:"item"}})),tag:(0,sn.Opt)(n({validator:"resource",params:{pool:"$tag/item"}})),count:(0,sn.Opt)((0,cn.Range)()),durability:(0,sn.Opt)((0,cn.Range)()),potion:(0,sn.Opt)(n({validator:"resource",params:{pool:"potion"}})),nbt:(0,sn.Opt)(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:(0,sn.Opt)((0,sn.ListNode)(i("enchantment_predicate")))},{context:"item"})),e.register("enchantment_predicate",(0,sn.ObjectNode)({enchantment:(0,sn.Opt)(n({validator:"resource",params:{pool:"enchantment"}})),levels:(0,sn.Opt)((0,cn.Range)())},{context:"enchantment"})),e.register("block_predicate",(0,sn.ObjectNode)({block:(0,sn.Opt)(n({validator:"resource",params:{pool:"block"}})),tag:(0,sn.Opt)(n({validator:"resource",params:{pool:"$tag/block"}})),nbt:(0,sn.Opt)(n({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:(0,sn.Opt)((0,sn.MapNode)(n(),r,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),e.register("fluid_predicate",(0,sn.ObjectNode)({fluid:(0,sn.Opt)(n({validator:"resource",params:{pool:"fluid"}})),tag:(0,sn.Opt)(n({validator:"resource",params:{pool:"$tag/fluid"}})),state:(0,sn.Opt)((0,sn.MapNode)(n(),r))},{context:"fluid"})),e.register("location_predicate",(0,sn.ObjectNode)({position:(0,sn.Opt)((0,sn.ObjectNode)({x:(0,sn.Opt)((0,cn.Range)()),y:(0,sn.Opt)((0,cn.Range)()),z:(0,sn.Opt)((0,cn.Range)())})),biome:(0,sn.Opt)(n({validator:"resource",params:{pool:"$worldgen/biome"}})),feature:(0,sn.Opt)(n({enum:t.get("worldgen/structure_feature").map((e=>e.slice(10)))})),dimension:(0,sn.Opt)(n({validator:"resource",params:{pool:"$dimension"}})),light:(0,sn.Opt)((0,sn.ObjectNode)({light:(0,sn.Opt)((0,cn.Range)({integer:!0,min:0,max:15}))})),smokey:(0,sn.Opt)((0,sn.BooleanNode)()),block:(0,sn.Opt)(i("block_predicate")),fluid:(0,sn.Opt)(i("fluid_predicate"))},{context:"location"})),e.register("statistic_predicate",(0,sn.ObjectNode)({type:n({validator:"resource",params:{pool:"stat_type"}}),stat:n(),value:(0,cn.Range)(),[sn.Switch]:[{push:"type"}],[sn.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",(0,sn.ObjectNode)({gamemode:(0,sn.Opt)(n({enum:"gamemode"})),level:(0,sn.Opt)((0,cn.Range)()),advancements:(0,sn.Opt)((0,sn.MapNode)(n({validator:"resource",params:{pool:"$advancement"}}),(0,sn.ChoiceNode)([{type:"boolean",node:(0,sn.BooleanNode)(),change:e=>!0},{type:"object",node:(0,sn.MapNode)(n(),(0,sn.BooleanNode)())}]))),recipes:(0,sn.Opt)((0,sn.MapNode)(n({validator:"resource",params:{pool:"$recipe"}}),(0,sn.BooleanNode)())),stats:(0,sn.Opt)((0,sn.ListNode)(i("statistic_predicate")))},{context:"player"})),e.register("status_effect_predicate",(0,sn.ObjectNode)({amplifier:(0,sn.Opt)((0,cn.Range)()),duration:(0,sn.Opt)((0,cn.Range)()),ambient:(0,sn.Opt)((0,sn.BooleanNode)()),visible:(0,sn.Opt)((0,sn.BooleanNode)())},{context:"status_effect"})),e.register("distance_predicate",(0,sn.ObjectNode)({x:(0,sn.Opt)((0,cn.Range)()),y:(0,sn.Opt)((0,cn.Range)()),z:(0,sn.Opt)((0,cn.Range)()),absolute:(0,sn.Opt)((0,cn.Range)()),horizontal:(0,sn.Opt)((0,cn.Range)())},{context:"distance"})),e.register("entity_predicate",(0,sn.ObjectNode)({type:(0,sn.Opt)(n({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),nbt:(0,sn.Opt)(n({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:(0,sn.Opt)(n({validator:"team"})),location:(0,sn.Opt)(i("location_predicate")),distance:(0,sn.Opt)(i("distance_predicate")),flags:(0,sn.Opt)((0,sn.ObjectNode)({is_on_fire:(0,sn.Opt)((0,sn.BooleanNode)()),is_sneaking:(0,sn.Opt)((0,sn.BooleanNode)()),is_sprinting:(0,sn.Opt)((0,sn.BooleanNode)()),is_swimming:(0,sn.Opt)((0,sn.BooleanNode)()),is_baby:(0,sn.Opt)((0,sn.BooleanNode)())})),equipment:(0,sn.Opt)((0,sn.MapNode)(n({enum:"slot"}),i("item_predicate"))),vehicle:(0,sn.Opt)(i("entity_predicate")),targeted_entity:(0,sn.Opt)(i("entity_predicate")),player:(0,sn.Opt)(i("player_predicate")),fishing_hook:(0,sn.Opt)((0,sn.ObjectNode)({in_open_water:(0,sn.Opt)((0,sn.BooleanNode)())})),catType:(0,sn.Opt)(n({enum:"cat_texture"})),effects:(0,sn.Opt)((0,sn.MapNode)(n({validator:"resource",params:{pool:"mob_effect"}}),i("status_effect_predicate")))},{context:"entity"})),e.register("damage_source_predicate",(0,sn.ObjectNode)({is_explosion:(0,sn.Opt)((0,sn.BooleanNode)()),is_fire:(0,sn.Opt)((0,sn.BooleanNode)()),is_magic:(0,sn.Opt)((0,sn.BooleanNode)()),is_projectile:(0,sn.Opt)((0,sn.BooleanNode)()),is_lightning:(0,sn.Opt)((0,sn.BooleanNode)()),bypasses_armor:(0,sn.Opt)((0,sn.BooleanNode)()),bypasses_invulnerability:(0,sn.Opt)((0,sn.BooleanNode)()),bypasses_magic:(0,sn.Opt)((0,sn.BooleanNode)()),source_entity:(0,sn.Opt)(i("entity_predicate")),direct_entity:(0,sn.Opt)(i("entity_predicate"))},{context:"damage_source"})),e.register("damage_predicate",(0,sn.ObjectNode)({dealt:(0,sn.Opt)((0,cn.Range)()),taken:(0,sn.Opt)((0,cn.Range)()),blocked:(0,sn.Opt)((0,sn.BooleanNode)()),source_entity:(0,sn.Opt)(i("entity_predicate")),type:(0,sn.Opt)(i("damage_source_predicate"))},{context:"damage"}))};var ln={};Object.defineProperty(ln,"__esModule",{value:!0}),ln.initRecipeSchemas=void 0;const un=Pe;ln.initRecipeSchemas=function(e,t){const i=un.Reference.bind(void 0,e),n=un.StringNode.bind(void 0,t);e.register("recipe",(0,un.Mod)((0,un.ObjectNode)({type:n({validator:"resource",params:{pool:"recipe_serializer"}}),[un.Switch]:[{push:"type"}],[un.Case]:{"minecraft:crafting_shaped":{group:(0,un.Opt)(n({enum:"recipe_group",additional:!0})),pattern:(0,un.ListNode)(n()),key:(0,un.MapNode)(n(),i("recipe_ingredient")),result:i("recipe_result")},"minecraft:crafting_shapeless":{group:(0,un.Opt)(n()),ingredients:(0,un.ListNode)(i("recipe_ingredient")),result:i("recipe_result")},"minecraft:smelting":{group:(0,un.Opt)(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:(0,un.Opt)((0,un.NumberNode)()),cookingtime:(0,un.Opt)((0,un.Mod)((0,un.NumberNode)({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:(0,un.Opt)(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:(0,un.Opt)((0,un.NumberNode)()),cookingtime:(0,un.Opt)((0,un.Mod)((0,un.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:(0,un.Opt)(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:(0,un.Opt)((0,un.NumberNode)()),cookingtime:(0,un.Opt)((0,un.Mod)((0,un.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:(0,un.Opt)(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:(0,un.Opt)((0,un.NumberNode)()),cookingtime:(0,un.Opt)((0,un.Mod)((0,un.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:(0,un.Opt)(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),count:(0,un.NumberNode)({integer:!0})},"minecraft:smithing":{group:(0,un.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",(0,un.Mod)((0,un.ChoiceNode)([{type:"object",node:i("recipe_ingredient_object"),change:e=>e[0]},{type:"list",node:(0,un.ListNode)(i("recipe_ingredient_object")),change:e=>[e]}]),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_ingredient_object",(0,un.Mod)((0,un.ObjectNode)({item:(0,un.Opt)(n({validator:"resource",params:{pool:"item"}})),tag:(0,un.Opt)(n({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_result",(0,un.Mod)((0,un.ObjectNode)({item:n({validator:"resource",params:{pool:"item"}}),count:(0,un.Opt)((0,un.Mod)((0,un.NumberNode)({integer:!0}),{default:()=>1}))}),{default:()=>({item:"minecraft:stone"})}))};var dn={};Object.defineProperty(dn,"__esModule",{value:!0}),dn.initTagsSchemas=void 0;const hn=Pe;dn.initTagsSchemas=function(e,t){const i=hn.StringNode.bind(void 0,t),n=e=>(0,hn.Mod)((0,hn.ObjectNode)({replace:(0,hn.Opt)((0,hn.BooleanNode)()),values:(0,hn.ListNode)((0,hn.ChoiceNode)([{type:"string",node:i({validator:"resource",params:{pool:e,allowTag:!0}}),change:e=>e.id},{type:"object",node:(0,hn.ObjectNode)({id:i({validator:"resource",params:{pool:e,allowTag:!0,allowUnknown:!0}}),required:(0,hn.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 pn={};Object.defineProperty(pn,"__esModule",{value:!0}),pn.initTextComponentSchemas=void 0;const mn=Pe;pn.initTextComponentSchemas=function(e,t){const i=mn.Reference.bind(void 0,e),n=mn.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",(0,mn.Mod)((0,mn.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:(0,mn.NumberNode)(),change:e=>{const t=parseFloat(r(e));return isFinite(t)?t:e?1:0}},{type:"boolean",node:(0,mn.BooleanNode)(),change:e=>{const t=r(e);return"true"===t||"false"===t?"true"===t:!!t}}],{context:"text_component"}),{default:()=>({text:""})}));const o={color:(0,mn.Opt)(n()),font:(0,mn.Opt)(n()),bold:(0,mn.Opt)((0,mn.BooleanNode)()),italic:(0,mn.Opt)((0,mn.BooleanNode)()),underlined:(0,mn.Opt)((0,mn.BooleanNode)()),strikethrough:(0,mn.Opt)((0,mn.BooleanNode)()),obfuscated:(0,mn.Opt)((0,mn.BooleanNode)()),insertion:(0,mn.Opt)(n()),clickEvent:(0,mn.Opt)((0,mn.ObjectNode)({action:n({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[mn.Switch]:[{push:"action"}],[mn.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:(0,mn.Opt)((0,mn.ObjectNode)({action:n({enum:["show_text","show_item","show_entity"]}),[mn.Switch]:[{push:"action"}],[mn.Case]:{show_text:{value:(0,mn.Opt)(i("text_component")),contents:(0,mn.Opt)(i("text_component"))},show_item:{value:(0,mn.Opt)(n({validator:"nbt",params:{module:"util::InventoryItem"}})),contents:(0,mn.Opt)((0,mn.ObjectNode)({id:n({validator:"resource",params:{pool:"item"}}),count:(0,mn.Opt)((0,mn.NumberNode)({integer:!0})),tag:(0,mn.Opt)(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"id"}]}}}))}))},show_entity:{value:(0,mn.Opt)((0,mn.ObjectNode)({name:(0,mn.Opt)(n()),type:(0,mn.Opt)(n()),id:(0,mn.Opt)(n())})),contents:(0,mn.Opt)((0,mn.Mod)((0,mn.ObjectNode)({name:(0,mn.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:(0,mn.Opt)(i("text_component_list"))};e.register("text_component_object",(0,mn.Mod)((0,mn.ChoiceNode)([{type:"text",match:e=>"object"==typeof e,change:e=>({text:""}),priority:-1,node:(0,mn.ObjectNode)(s({text:n()},o))},{type:"translation",match:e=>void 0!==(null==e?void 0:e.translate),change:e=>({translate:""}),node:(0,mn.ObjectNode)(s({translate:n(),with:(0,mn.Opt)(i("text_component_list"))},o))},{type:"score",match:e=>void 0!==(null==e?void 0:e.score),change:e=>({score:{}}),node:(0,mn.ObjectNode)(s({score:(0,mn.ObjectNode)({name:n({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:n({validator:"objective"}),value:(0,mn.Opt)(n())})},o))},{type:"selector",match:e=>void 0!==(null==e?void 0:e.selector),change:e=>({selector:""}),node:(0,mn.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:(0,mn.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:(0,mn.ObjectNode)(s({nbt:n({validator:"nbt_path"}),block:(0,mn.Opt)(n({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:(0,mn.Opt)(n({validator:"entity",params:{amount:"multiple",type:"entities"}})),storage:(0,mn.Opt)(n({validator:"resource",params:{pool:"$storage"}})),interpret:(0,mn.Opt)((0,mn.BooleanNode)())},o))}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),e.register("text_component_list",(0,mn.Mod)((0,mn.ListNode)(i("text_component")),{default:()=>[{text:""}]}))};var fn={},gn={};Object.defineProperty(gn,"__esModule",{value:!0}),gn.initBiomeSchemas=void 0;const _n=Pe;gn.initBiomeSchemas=function(e,t){const i=_n.StringNode.bind(void 0,t);e.register("biome",(0,_n.Mod)((0,_n.ObjectNode)({surface_builder:i({validator:"resource",params:{pool:"$worldgen/configured_surface_builder"}}),depth:(0,_n.NumberNode)(),scale:(0,_n.NumberNode)(),temperature:(0,_n.NumberNode)(),downfall:(0,_n.NumberNode)(),precipitation:i({enum:["none","rain","snow"]}),temperature_modifier:(0,_n.Opt)(i({enum:["none","frozen"]})),category:i({enum:"biome_category"}),player_spawn_friendly:(0,_n.Opt)((0,_n.BooleanNode)()),creature_spawn_probability:(0,_n.Opt)((0,_n.NumberNode)({min:0,max:1})),effects:(0,_n.ObjectNode)({sky_color:(0,_n.NumberNode)({color:!0}),fog_color:(0,_n.NumberNode)({color:!0}),water_color:(0,_n.NumberNode)({color:!0}),water_fog_color:(0,_n.NumberNode)({color:!0}),grass_color:(0,_n.Opt)((0,_n.NumberNode)({color:!0})),foliage_color:(0,_n.Opt)((0,_n.NumberNode)({color:!0})),grass_color_modifier:(0,_n.Opt)(i({enum:["none","dark_forest","swamp"]})),ambient_sound:(0,_n.Opt)(i()),mood_sound:(0,_n.Opt)((0,_n.ObjectNode)({sound:i(),tick_delay:(0,_n.NumberNode)({integer:!0}),block_search_extent:(0,_n.NumberNode)({integer:!0}),offset:(0,_n.NumberNode)()})),additions_sound:(0,_n.Opt)((0,_n.ObjectNode)({sound:i(),tick_chance:(0,_n.NumberNode)({min:0,max:1})})),music:(0,_n.Opt)((0,_n.ObjectNode)({sound:i(),min_delay:(0,_n.NumberNode)({integer:!0,min:0}),max_delay:(0,_n.NumberNode)({integer:!0,min:0}),replace_current_music:(0,_n.BooleanNode)()})),particle:(0,_n.Opt)((0,_n.ObjectNode)({options:(0,_n.ObjectNode)({type:i()}),probability:(0,_n.NumberNode)({min:0,max:1})}))}),starts:(0,_n.ListNode)(i({validator:"resource",params:{pool:"$worldgen/configured_structure_feature"}})),spawners:(0,_n.MapNode)(i({enum:["water_ambient","ambient","misc","water_creature","creature","monster"]}),(0,_n.Mod)((0,_n.ListNode)((0,_n.ObjectNode)({type:i({validator:"resource",params:{pool:"entity_type"}}),weight:(0,_n.NumberNode)({integer:!0}),minCount:(0,_n.NumberNode)({integer:!0}),maxCount:(0,_n.NumberNode)({integer:!0})})),{category:()=>"pool",default:()=>[{type:"minecraft:bat",weight:1}]})),spawn_costs:(0,_n.MapNode)(i({validator:"resource",params:{pool:"entity_type"}}),(0,_n.Mod)((0,_n.ObjectNode)({energy_budget:(0,_n.NumberNode)(),charge:(0,_n.NumberNode)()},{category:"function"}),{default:()=>({energy_budget:.12,charge:1})})),carvers:(0,_n.MapNode)(i({enum:["air","liquid"]}),(0,_n.Mod)((0,_n.ListNode)(i({validator:"resource",params:{pool:"$worldgen/configured_carver"}})),{default:()=>["minecraft:cave"]})),features:(0,_n.ListNode)((0,_n.Mod)((0,_n.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 bn={};Object.defineProperty(bn,"__esModule",{value:!0}),bn.initCarverSchemas=void 0;const vn=Pe;bn.initCarverSchemas=function(e,t){const i=vn.StringNode.bind(void 0,t);e.register("configured_carver",(0,vn.Mod)((0,vn.ObjectNode)({type:i({validator:"resource",params:{pool:"worldgen/carver"}}),config:(0,vn.ObjectNode)({probability:(0,vn.NumberNode)({min:0,max:1})})},{context:"carver"}),{default:()=>({type:"minecraft:cave",config:{probability:.1}})}))};var yn={};Object.defineProperty(yn,"__esModule",{value:!0}),yn.initDecoratorSchemas=void 0;const wn=Pe,xn=Li;yn.initDecoratorSchemas=function(e,t){const i=wn.Reference.bind(void 0,e),n=wn.StringNode.bind(void 0,t),r={maximum:(0,wn.NumberNode)({integer:!0}),bottom_offset:(0,wn.NumberNode)({integer:!0}),top_offset:(0,wn.NumberNode)({integer:!0})},o={chance:(0,wn.NumberNode)({integer:!0,min:0})},a={count:(0,xn.UniformInt)({min:-10,max:128,maxSpread:128})};e.register("configured_decorator",(0,wn.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/decorator"}}),config:(0,wn.ObjectNode)({[wn.Switch]:["pop",{push:"type"}],[wn.Case]:{"minecraft:carving_mask":{step:n({enum:"generation_step"}),probability:(0,wn.NumberNode)({min:0,max:1})},"minecraft:chance":o,"minecraft:count":a,"minecraft:count_extra":{count:(0,wn.NumberNode)({integer:!0}),extra_count:(0,wn.NumberNode)({integer:!0}),extra_chance:(0,wn.NumberNode)({min:0,max:1})},"minecraft:count_multilayer":a,"minecraft:count_noise":{noise_level:(0,wn.NumberNode)(),below_noise:(0,wn.NumberNode)({integer:!0}),above_noise:(0,wn.NumberNode)({integer:!0})},"minecraft:count_noise_biased":{noise_to_count_ratio:(0,wn.NumberNode)({integer:!0}),noise_factor:(0,wn.NumberNode)(),noise_offset:(0,wn.Opt)((0,wn.NumberNode)())},"minecraft:decorated":{outer:i("configured_decorator"),inner:i("configured_decorator")},"minecraft:depth_average":{baseline:(0,wn.NumberNode)({integer:!0}),spread:(0,wn.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 Nn={},kn={};Object.defineProperty(kn,"__esModule",{value:!0}),kn.initProcessorListSchemas=void 0;const An=Pe;kn.initProcessorListSchemas=function(e,t){const i=An.Reference.bind(void 0,e),n=An.StringNode.bind(void 0,t);e.register("processor_list",(0,An.Mod)((0,An.ObjectNode)({processors:(0,An.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",(0,An.Mod)((0,An.ObjectNode)({processor_type:n({validator:"resource",params:{pool:"worldgen/structure_processor"}}),[An.Switch]:[{push:"processor_type"}],[An.Case]:{"minecraft:block_age":{mossiness:(0,An.NumberNode)()},"minecraft:block_ignore":{blocks:(0,An.ListNode)(i("block_state"))},"minecraft:block_rot":{integrity:(0,An.NumberNode)({min:0,max:1})},"minecraft:gravity":{heightmap:n({enum:"heightmap_type"}),offset:(0,An.NumberNode)({integer:!0})},"minecraft:rule":{rules:(0,An.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",(0,An.Mod)((0,An.ObjectNode)({position_predicate:(0,An.Opt)(i("pos_rule_test")),location_predicate:i("rule_test"),input_predicate:i("rule_test"),output_state:i("block_state"),output_nbt:(0,An.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:(0,An.NumberNode)({min:0,max:255,integer:!0}),max_dist:(0,An.NumberNode)({min:0,max:255,integer:!0}),min_chance:(0,An.NumberNode)({min:0,max:1}),max_chance:(0,An.NumberNode)({min:0,max:1})};e.register("pos_rule_test",(0,An.ObjectNode)({predicate_type:n({validator:"resource",params:{pool:"pos_rule_test"}}),[An.Switch]:[{push:"predicate_type"}],[An.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",(0,An.ObjectNode)({predicate_type:n({validator:"resource",params:{pool:"rule_test"}}),[An.Switch]:[{push:"predicate_type"}],[An.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:(0,An.NumberNode)({min:0,max:1})},"minecraft:random_blockstate_match":{block_state:i("block_state"),probability:(0,An.NumberNode)({min:0,max:1})},"minecraft:tag_match":{tag:n({validator:"resource",params:{pool:"$tag/block"}})}}},{context:"rule_test",disableSwitchContext:!0}))},Object.defineProperty(Nn,"__esModule",{value:!0}),Nn.initFeatureSchemas=void 0;const Cn=Pe,On=Li;Nn.initFeatureSchemas=function(e,t){const i=Cn.Reference.bind(void 0,e),n=Cn.StringNode.bind(void 0,t),r={can_replace:(0,Cn.BooleanNode)(),project:(0,Cn.BooleanNode)(),need_water:(0,Cn.BooleanNode)(),xspread:(0,Cn.NumberNode)({integer:!0}),yspread:(0,Cn.NumberNode)({integer:!0}),zspread:(0,Cn.NumberNode)({integer:!0}),tries:(0,Cn.NumberNode)({integer:!0}),state_provider:i("block_state_provider"),block_placer:i("block_placer"),whitelist:(0,Cn.ListNode)(i("block_state")),blacklist:(0,Cn.ListNode)(i("block_state"))},o={state:i("block_state"),radius:(0,On.UniformInt)({min:0,max:4,maxSpread:4}),half_height:(0,Cn.NumberNode)({integer:!0,min:0,max:4}),targets:(0,Cn.ListNode)(i("block_state"))},a={cap_provider:i("block_state_provider"),stem_provider:i("block_state_provider"),foliage_radius:(0,Cn.Opt)((0,Cn.NumberNode)({integer:!0}))},s={state:i("block_state"),size:(0,Cn.NumberNode)({integer:!0,min:0,max:64}),target:i("rule_test")},c={count:(0,On.UniformInt)({min:-10,max:128,maxSpread:128})},l=(0,Cn.ChoiceNode)([{type:"string",node:n({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},{type:"object",node:i("configured_feature")}],{choiceContext:"feature"});e.register("configured_feature",(0,Cn.Mod)((0,Cn.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/feature"}}),config:(0,Cn.ObjectNode)({[Cn.Switch]:["pop",{push:"type"}],[Cn.Case]:{"minecraft:bamboo":{probability:(0,Cn.NumberNode)({min:0,max:1})},"minecraft:basalt_columns":{reach:(0,On.UniformInt)({min:0,max:2,maxSpread:1}),height:(0,On.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:(0,On.UniformInt)({min:0,max:8,maxSpread:8}),rim_size:(0,On.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:(0,Cn.BooleanNode)(),exit:(0,Cn.Opt)(i("block_pos"))},"minecraft:end_spike":{crystal_invulnerable:(0,Cn.Opt)((0,Cn.BooleanNode)()),crystal_beam_target:(0,Cn.Opt)(i("block_pos")),spikes:(0,Cn.ListNode)((0,Cn.ObjectNode)({centerX:(0,Cn.Opt)((0,Cn.NumberNode)({integer:!0})),centerZ:(0,Cn.Opt)((0,Cn.NumberNode)({integer:!0})),radius:(0,Cn.Opt)((0,Cn.NumberNode)({integer:!0})),height:(0,Cn.Opt)((0,Cn.NumberNode)({integer:!0})),guarded:(0,Cn.Opt)((0,Cn.BooleanNode)())}))},"minecraft:fill_layer":{state:i("block_state"),height:(0,Cn.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:(0,Cn.Opt)((0,Cn.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:(0,On.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:(0,Cn.ListNode)((0,Cn.ObjectNode)({chance:(0,Cn.NumberNode)({min:0,max:1}),feature:l})),default:l},"minecraft:sea_pickle":c,"minecraft:seagrass":{probability:(0,Cn.NumberNode)({min:0,max:1})},"minecraft:simple_block":{to_place:i("block_state"),place_on:(0,Cn.ListNode)(i("block_state")),place_in:(0,Cn.ListNode)(i("block_state")),place_under:(0,Cn.ListNode)(i("block_state"))},"minecraft:simple_random_selector":{features:(0,Cn.ListNode)(l)},"minecraft:spring_feature":{state:i("fluid_state"),rock_count:(0,Cn.NumberNode)({integer:!0}),hole_count:(0,Cn.NumberNode)({integer:!0}),requires_block_below:(0,Cn.BooleanNode)(),valid_blocks:(0,Cn.ListNode)(n({validator:"resource",params:{pool:"block"}}))},"minecraft:tree":{max_water_depth:(0,Cn.NumberNode)({integer:!0}),ignore_vines:(0,Cn.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:(0,Cn.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/trunk_placer_type"}}),base_height:(0,Cn.NumberNode)({integer:!0,min:0,max:32}),height_rand_a:(0,Cn.NumberNode)({integer:!0,min:0,max:24}),height_rand_b:(0,Cn.NumberNode)({integer:!0,min:0,max:24})},{context:"trunk_placer"}),foliage_placer:(0,Cn.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/foliage_placer_type"}}),radius:(0,On.UniformInt)({min:0,max:8,maxSpread:8}),offset:(0,On.UniformInt)({min:0,max:8,maxSpread:8}),[Cn.Switch]:[{push:"type"}],[Cn.Case]:{"minecraft:blob_foliage_placer":{height:(0,Cn.NumberNode)({integer:!0,min:0,max:16})},"minecraft:bush_foliage_placer":{height:(0,Cn.NumberNode)({integer:!0,min:0,max:16})},"minecraft:fancy_foliage_placer":{height:(0,Cn.NumberNode)({integer:!0,min:0,max:16})},"minecraft:jungle_foliage_placer":{height:(0,Cn.NumberNode)({integer:!0,min:0,max:16})},"minecraft:mega_pine_foliage_placer":{crown_height:(0,On.UniformInt)({min:0,max:16,maxSpread:8})},"minecraft:pine_foliage_placer":{height:(0,On.UniformInt)({min:0,max:16,maxSpread:8})},"minecraft:spruce_foliage_placer":{trunk_height:(0,On.UniformInt)({min:0,max:16,maxSpread:8})}}},{context:"foliage_placer",disableSwitchContext:!0}),decorators:(0,Cn.ListNode)((0,Cn.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/tree_decorator_type"}}),[Cn.Switch]:[{push:"type"}],[Cn.Case]:{"minecraft:alter_ground":{provider:i("block_state_provider")},"minecraft:beehive":{probability:(0,Cn.NumberNode)({min:0,max:1})},"minecraft:cocoa":{probability:(0,Cn.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",(0,Cn.Mod)((0,Cn.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/feature_size_type"}}),min_clipped_height:(0,Cn.Opt)((0,Cn.NumberNode)({min:0,max:80})),[Cn.Switch]:[{push:"type"}],[Cn.Case]:{"minecraft:two_layers_feature_size":{limit:(0,Cn.Opt)((0,Cn.NumberNode)({integer:!0,min:0,max:81})),lower_size:(0,Cn.Opt)((0,Cn.NumberNode)({integer:!0,min:0,max:16})),upper_size:(0,Cn.Opt)((0,Cn.NumberNode)({integer:!0,min:0,max:16}))},"minecraft:three_layers_feature_size":{limit:(0,Cn.Opt)((0,Cn.NumberNode)({integer:!0,min:0,max:80})),upper_limit:(0,Cn.Opt)((0,Cn.NumberNode)({integer:!0,min:0,max:80})),lower_size:(0,Cn.Opt)((0,Cn.NumberNode)({integer:!0,min:0,max:16})),middle_size:(0,Cn.Opt)((0,Cn.NumberNode)({integer:!0,min:0,max:16})),upper_size:(0,Cn.Opt)((0,Cn.NumberNode)({integer:!0,min:0,max:16}))}}},{disableSwitchContext:!0}),{default:()=>({type:"minecraft:two_layers_feature_size"})})),e.register("block_state_provider",(0,Cn.Mod)((0,Cn.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/block_state_provider_type"}}),[Cn.Switch]:[{push:"type"}],[Cn.Case]:{"minecraft:rotated_block_provider":{state:i("block_state")},"minecraft:simple_state_provider":{state:i("block_state")},"minecraft:weighted_state_provider":{entries:(0,Cn.ListNode)((0,Cn.Mod)((0,Cn.ObjectNode)({weight:(0,Cn.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",(0,Cn.Mod)((0,Cn.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/block_placer_type"}}),[Cn.Switch]:[{push:"type"}],[Cn.Case]:{"minecraft:column_placer":{min_size:(0,Cn.NumberNode)({integer:!0}),extra_size:(0,Cn.NumberNode)({integer:!0})}}},{context:"block_placer"}),{default:()=>({type:"minecraft:simple_block_placer"})}))};var Sn={};Object.defineProperty(Sn,"__esModule",{value:!0}),Sn.initNoiseSettingsSchemas=void 0;const En=Pe,Fn=Li;Sn.initNoiseSettingsSchemas=function(e,t){const i=En.Reference.bind(void 0,e),n=En.StringNode.bind(void 0,t);e.register("noise_settings",(0,En.Mod)((0,En.ObjectNode)({name:(0,En.Mod)(n({validator:"resource",params:{pool:"$worldgen/noise_settings",isDefinition:!0}}),{enabled:e=>e.getArray().length>0}),bedrock_roof_position:(0,En.NumberNode)({integer:!0}),bedrock_floor_position:(0,En.NumberNode)({integer:!0}),sea_level:(0,En.NumberNode)({integer:!0}),disable_mob_generation:(0,En.BooleanNode)(),default_block:i("block_state"),default_fluid:i("block_state"),noise:(0,En.ObjectNode)({height:(0,En.NumberNode)({integer:!0}),density_factor:(0,En.NumberNode)(),density_offset:(0,En.NumberNode)(),size_horizontal:(0,En.NumberNode)({integer:!0}),size_vertical:(0,En.NumberNode)({integer:!0}),simplex_surface_noise:(0,En.BooleanNode)(),random_density_offset:(0,En.Opt)((0,En.BooleanNode)()),island_noise_override:(0,En.Opt)((0,En.BooleanNode)()),amplified:(0,En.Opt)((0,En.BooleanNode)()),sampling:(0,En.ObjectNode)({xz_scale:(0,En.NumberNode)(),y_scale:(0,En.NumberNode)(),xz_factor:(0,En.NumberNode)(),y_factor:(0,En.NumberNode)()}),bottom_slide:(0,En.ObjectNode)({target:(0,En.NumberNode)({integer:!0}),size:(0,En.NumberNode)({integer:!0}),offset:(0,En.NumberNode)({integer:!0})}),top_slide:(0,En.ObjectNode)({target:(0,En.NumberNode)({integer:!0}),size:(0,En.NumberNode)({integer:!0}),offset:(0,En.NumberNode)({integer:!0})})}),structures:i("generator_structures")},{context:"noise_settings"}),{default:()=>Fn.DefaultNoiseSettings})),e.register("generator_structures",(0,En.ObjectNode)({stronghold:(0,En.Opt)((0,En.ObjectNode)({distance:(0,En.NumberNode)({integer:!0,min:0,max:1023}),spread:(0,En.NumberNode)({integer:!0,min:0,max:1023}),count:(0,En.NumberNode)({integer:!0,min:1,max:4095})})),structures:(0,En.MapNode)(n({validator:"resource",params:{pool:"worldgen/structure_feature"}}),(0,En.Mod)((0,En.ObjectNode)({spacing:(0,En.NumberNode)({integer:!0,min:0,max:4096}),separation:(0,En.Mod)((0,En.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:(0,En.NumberNode)({integer:!0,min:0})},{context:"generator_structure"}),{default:()=>({spacing:10,separation:5,salt:0})}))})),e.register("generator_layer",(0,En.Mod)((0,En.ObjectNode)({block:n({validator:"resource",params:{pool:"block"}}),height:(0,En.NumberNode)({integer:!0,min:1})}),{default:()=>({block:"minecraft:stone",height:1})}))};var Dn={};Object.defineProperty(Dn,"__esModule",{value:!0}),Dn.initStructureFeatureSchemas=void 0;const Bn=Pe;Dn.initStructureFeatureSchemas=function(e,t){const i=Bn.StringNode.bind(void 0,t),n={start_pool:i({validator:"resource",params:{pool:"$worldgen/template_pool"}}),size:(0,Bn.NumberNode)({integer:!0})};e.register("configured_structure_feature",(0,Bn.Mod)((0,Bn.ObjectNode)({type:i({validator:"resource",params:{pool:"worldgen/structure_feature"}}),config:(0,Bn.ObjectNode)({[Bn.Switch]:["pop",{push:"type"}],[Bn.Case]:{"minecraft:bastion_remnant":n,"minecraft:buried_treasure":{probability:(0,Bn.NumberNode)({min:0,max:1})},"minecraft:mineshaft":{type:i({enum:["normal","mesa"]}),probability:(0,Bn.NumberNode)({min:0,max:1})},"minecraft:ocean_ruin":{biome_temp:i({enum:["cold","warm"]}),large_probability:(0,Bn.NumberNode)({min:0,max:1}),cluster_probability:(0,Bn.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:(0,Bn.Opt)((0,Bn.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 Ln={};Object.defineProperty(Ln,"__esModule",{value:!0}),Ln.initSurfaceBuilderSchemas=void 0;const Mn=Pe;Ln.initSurfaceBuilderSchemas=function(e,t){const i=Mn.StringNode.bind(void 0,t),n=Mn.Reference.bind(void 0,e);e.register("configured_surface_builder",(0,Mn.Mod)((0,Mn.ObjectNode)({type:i({validator:"resource",params:{pool:"worldgen/surface_builder"}}),config:(0,Mn.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 Tn={};Object.defineProperty(Tn,"__esModule",{value:!0}),Tn.initTemplatePoolSchemas=void 0;const Rn=Pe;Tn.initTemplatePoolSchemas=function(e,t){const i=Rn.Reference.bind(void 0,e),n=Rn.StringNode.bind(void 0,t),r=(0,Rn.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",(0,Rn.Mod)((0,Rn.ObjectNode)({name:n(),fallback:n(),elements:(0,Rn.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",(0,Rn.Mod)((0,Rn.ObjectNode)({weight:(0,Rn.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",(0,Rn.Mod)((0,Rn.ObjectNode)({element_type:n({validator:"resource",params:{pool:"worldgen/structure_pool_element"}}),projection:n({enum:["rigid","terrain_matching"]}),[Rn.Switch]:[{push:"element_type"}],[Rn.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:(0,Rn.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(fn,"__esModule",{value:!0}),fn.initWorldgenSchemas=void 0;const $n=gn,jn=bn,In=yn,Pn=Nn,zn=Sn,Un=kn,Wn=Dn,Hn=Ln,qn=Tn;fn.initWorldgenSchemas=function(e,t){(0,$n.initBiomeSchemas)(e,t),(0,jn.initCarverSchemas)(e,t),(0,In.initDecoratorSchemas)(e,t),(0,Pn.initFeatureSchemas)(e,t),(0,zn.initNoiseSettingsSchemas)(e,t),(0,Un.initProcessorListSchemas)(e,t),(0,Wn.initStructureFeatureSchemas)(e,t),(0,Hn.initSurfaceBuilderSchemas)(e,t),(0,qn.initTemplatePoolSchemas)(e,t)};var Vn={};Object.defineProperty(Vn,"__esModule",{value:!0}),Vn.initWorldSettingsSchemas=void 0;const Gn=Pe;Vn.initWorldSettingsSchemas=function(e,t){const i=Gn.Reference.bind(void 0,e),n=Gn.StringNode.bind(void 0,t);e.register("world_settings",(0,Gn.Mod)((0,Gn.ObjectNode)({generate_features:(0,Gn.BooleanNode)(),bonus_chest:(0,Gn.BooleanNode)(),seed:(0,Gn.NumberNode)({integer:!0}),dimensions:(0,Gn.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(Di,"__esModule",{value:!0}),Di.initSchemas=void 0;const Kn=Bi,Xn=Ri,Jn=Li,Yn=Wi,Zn=Vi,Qn=Xi,er=Zi,tr=rn,ir=an,nr=ln,rr=dn,or=pn,ar=fn,sr=Vn;Di.initSchemas=function(e,t){(0,Jn.initCommonSchemas)(e,t),(0,Kn.initAdvancementSchemas)(e,t),(0,Xn.initAssetsSchemas)(e,t),(0,Yn.initConditionSchemas)(e,t),(0,Qn.initDimensionTypeSchemas)(e,t),(0,Zn.initDimensionSchemas)(e,t),(0,er.initLootTableSchemas)(e,t),(0,tr.initPackMcmetaSchemas)(e,t),(0,ir.initPredicatesSchemas)(e,t),(0,nr.initRecipeSchemas)(e,t),(0,rr.initTagsSchemas)(e,t),(0,or.initTextComponentSchemas)(e,t),(0,ar.initWorldgenSchemas)(e,t),(0,sr.initWorldSettingsSchemas)(e,t)};var cr=Ie&&Ie.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i);var r=Object.getOwnPropertyDescriptor(t,i);r&&!("get"in r?!t.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,n,r)}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),lr=Ie&&Ie.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),ur=Ie&&Ie.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&cr(t,e,i);return lr(t,e),t};Object.defineProperty(Ei,"__esModule",{value:!0});var dr=Ei.getSchemas=Ei.getCollections=Ei.lootContext=void 0;const hr=Pe,pr=Fi,mr=Di;var fr=Ei.lootContext=ur(Qi);var gr=Ei.getCollections=function(){const e=new hr.CollectionRegistry;return(0,pr.initCollections)(e),e};dr=Ei.getSchemas=function(e){const t=new hr.SchemaRegistry;return(0,mr.initSchemas)(t,e),t};var _r=Object.freeze(Object.assign(Object.create(null),Ei,{[Symbol.toStringTag]:"Module",get getSchemas(){return dr},get getCollections(){return gr},get lootContext(){return fr},default:Ei})),br={},vr={};Object.defineProperty(vr,"__esModule",{value:!0}),vr.initCollections=void 0,vr.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"]),e.register("cat_texture",["textures/entity/cat/tabby.png","textures/entity/cat/black.png","textures/entity/cat/red.png","textures/entity/cat/siamese.png","textures/entity/cat/british_shorthair.png","textures/entity/cat/calico.png","textures/entity/cat/persian.png","textures/entity/cat/ragdoll.png","textures/entity/cat/white.png","textures/entity/cat/jellie.png","textures/entity/cat/all_black.png"])};var yr={},wr={};Object.defineProperty(wr,"__esModule",{value:!0}),wr.initAdvancementSchemas=void 0;const xr=Pe;wr.initAdvancementSchemas=function(e,t){const i=xr.Reference.bind(void 0,e),n=xr.StringNode.bind(void 0,t),r=(0,xr.ChoiceNode)([{type:"object",node:(0,xr.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:(0,xr.ListNode)(i("condition")),change:e=>[{condition:"minecraft:entity_properties",predicate:e}]}],{context:"conditions"});e.register("advancement",(0,xr.Mod)((0,xr.ObjectNode)({display:(0,xr.Opt)((0,xr.Mod)((0,xr.ObjectNode)({icon:(0,xr.ObjectNode)({item:n({validator:"resource",params:{pool:"item"}}),nbt:(0,xr.Opt)(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:i("text_component"),description:i("text_component"),background:(0,xr.Opt)(n()),frame:(0,xr.Opt)(n({enum:["task","challenge","goal"]})),show_toast:(0,xr.Opt)((0,xr.BooleanNode)()),announce_to_chat:(0,xr.Opt)((0,xr.BooleanNode)()),hidden:(0,xr.Opt)((0,xr.BooleanNode)())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:(0,xr.Opt)(n({validator:"resource",params:{pool:"$advancement"}})),criteria:(0,xr.MapNode)(n(),i("advancement_criteria")),requirements:(0,xr.Opt)((0,xr.ListNode)((0,xr.ListNode)(n()))),rewards:(0,xr.Opt)((0,xr.ObjectNode)({function:(0,xr.Opt)(n({validator:"resource",params:{pool:"$function"}})),loot:(0,xr.Opt)((0,xr.ListNode)(n({validator:"resource",params:{pool:"$loot_table"}}))),recipes:(0,xr.Opt)((0,xr.ListNode)(n({validator:"resource",params:{pool:"$recipe"}}))),experience:(0,xr.Opt)((0,xr.NumberNode)({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),e.register("advancement_criteria",(0,xr.ObjectNode)({trigger:n({validator:"resource",params:{pool:t.get("advancement_trigger")}}),conditions:(0,xr.Opt)((0,xr.ObjectNode)({player:(0,xr.Mod)(r,{enabled:e=>"minecraft:impossible"!==e.pop().push("trigger").get()}),[xr.Switch]:["pop",{push:"trigger"}],[xr.Case]:{"minecraft:bee_nest_destroyed":{block:(0,xr.Opt)(n({validator:"resource",params:{pool:"block"}})),num_bees_inside:(0,xr.Opt)((0,xr.NumberNode)({integer:!0})),item:(0,xr.Opt)(i("item_predicate"))},"minecraft:bred_animals":{parent:r,partner:r,child:r},"minecraft:brewed_potion":{potion:(0,xr.Opt)(n({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:(0,xr.Opt)(n({validator:"resource",params:{pool:"$dimension"}})),to:(0,xr.Opt)(n({validator:"resource",params:{pool:"$dimension"}}))},"minecraft:channeled_lightning":{victims:(0,xr.Opt)((0,xr.ListNode)(r))},"minecraft:construct_beacon":{level:i("int_bounds")},"minecraft:consume_item":{item:(0,xr.Opt)(i("item_predicate"))},"minecraft:cured_zombie_villager":{villager:r,zombie:r},"minecraft:effects_changed":{effects:(0,xr.Opt)((0,xr.MapNode)(n({validator:"resource",params:{pool:"mob_effect"}}),(0,xr.ObjectNode)({amplifier:i("int_bounds"),duration:i("int_bounds")}))),source:(0,xr.Opt)(r)},"minecraft:enter_block":{block:(0,xr.Opt)(n({validator:"resource",params:{pool:"block"}})),state:(0,xr.Opt)((0,xr.MapNode)(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:i("int_bounds"),item:(0,xr.Opt)(i("item_predicate"))},"minecraft:entity_hurt_player":{damage:(0,xr.Opt)(i("damage_predicate"))},"minecraft:entity_killed_player":{entity:r,killing_blow:(0,xr.Opt)(i("damage_source_predicate"))},"minecraft:filled_bucket":{item:(0,xr.Opt)(i("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:r,item:(0,xr.Opt)(i("item_predicate"))},"minecraft:hero_of_the_village":{location:(0,xr.Opt)(i("location_predicate"))},"minecraft:inventory_changed":{slots:(0,xr.Opt)((0,xr.ObjectNode)({empty:i("int_bounds"),occupied:i("int_bounds"),full:i("int_bounds")})),items:(0,xr.Opt)((0,xr.ListNode)(i("item_predicate")))},"minecraft:item_durability_changed":{delta:i("int_bounds"),durability:i("int_bounds"),item:(0,xr.Opt)(i("item_predicate"))},"minecraft:item_used_on_block":{item:(0,xr.Opt)(i("item_predicate")),location:(0,xr.Opt)(i("location_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:i("int_bounds"),victims:(0,xr.Opt)((0,xr.ListNode)(r))},"minecraft:levitation":{distance:i("distance_predicate"),duration:i("int_bounds")},"minecraft:lightning_strike":{lightning:r,bystander:r},"minecraft:location":{location:(0,xr.Opt)(i("location_predicate"))},"minecraft:nether_travel":{distance:i("distance_predicate"),entered:(0,xr.Opt)(i("location_predicate")),exited:(0,xr.Opt)(i("location_predicate"))},"minecraft:placed_block":{block:(0,xr.Opt)(n({validator:"resource",params:{pool:"block"}})),state:(0,xr.Opt)((0,xr.MapNode)(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:(0,xr.Opt)(i("item_predicate")),location:(0,xr.Opt)(i("location_predicate"))},"minecraft:player_generates_container_loot":{loot_table:n({validator:"resource",params:{pool:"$loot_table"}})},"minecraft:player_hurt_entity":{damage:(0,xr.Opt)(i("damage_predicate")),entity:r},"minecraft:player_interacted_with_entity":{item:(0,xr.Opt)(i("item_predicate")),entity:r},"minecraft:player_killed_entity":{entity:r,killing_blow:(0,xr.Opt)(i("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:n({validator:"resource",params:{pool:"$recipe"}})},"minecraft:slept_in_bed":{location:(0,xr.Opt)(i("location_predicate"))},"minecraft:slide_down_block":{block:(0,xr.Opt)(n({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:(0,xr.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:r,item:(0,xr.Opt)(i("item_predicate"))},"minecraft:used_ender_eye":{distance:i("float_bounds")},"minecraft:used_totem":{item:(0,xr.Opt)(i("item_predicate"))},"minecraft:using_item":{item:(0,xr.Opt)(i("item_predicate"))},"minecraft:villager_trade":{villager:r,item:(0,xr.Opt)(i("item_predicate"))},"minecraft:voluntary_exile":{location:i("location_predicate")}}},{context:"criterion"}))},{category:"predicate",context:"criterion"}))};var Nr={},kr={};Object.defineProperty(kr,"__esModule",{value:!0}),kr.initModelSchemas=void 0;const Ar=Pe;kr.initModelSchemas=function(e,t){Ar.Reference.bind(void 0,e);const i=Ar.StringNode.bind(void 0,t),n=(e,t,i)=>(0,Ar.ListNode)((0,Ar.NumberNode)({min:t,max:i}),{minLength:e,maxLength:e}),r=(0,Ar.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",(0,Ar.Mod)((0,Ar.ObjectNode)({parent:(0,Ar.Opt)(i({validator:"resource",params:{pool:"$model"}})),ambientocclusion:(0,Ar.Opt)((0,Ar.BooleanNode)()),gui_light:(0,Ar.Opt)(i({enum:"gui_light"})),textures:(0,Ar.Opt)((0,Ar.MapNode)(i(),r)),elements:(0,Ar.Opt)((0,Ar.ListNode)((0,Ar.ObjectNode)({from:n(3,-16,32),to:n(3,-16,32),rotation:(0,Ar.Opt)((0,Ar.ObjectNode)({origin:n(3),axis:i({enum:"axis"}),angle:(0,Ar.NumberEnum)({values:[-45,-22.5,0,22.5,45]}),rescale:(0,Ar.Opt)((0,Ar.BooleanNode)())})),shade:(0,Ar.Opt)((0,Ar.BooleanNode)()),faces:(0,Ar.MapNode)(i({enum:"direction"}),(0,Ar.ObjectNode)({texture:r,uv:(0,Ar.Opt)(n(4)),cullface:(0,Ar.Opt)(i({enum:"direction"})),rotation:(0,Ar.Opt)((0,Ar.NumberNode)({integer:!0})),tintindex:(0,Ar.Opt)((0,Ar.NumberNode)({integer:!0}))}))},{context:"model_element"}))),display:(0,Ar.Opt)((0,Ar.MapNode)(i({enum:"display_position"}),(0,Ar.ObjectNode)({rotation:n(3),translation:n(3,-80,80),scale:n(3,-4,4)},{context:"item_transform"}))),overrides:(0,Ar.Opt)((0,Ar.ListNode)((0,Ar.ObjectNode)({predicate:(0,Ar.MapNode)(i({enum:"item_model_predicates"}),(0,Ar.NumberNode)()),model:i({validator:"resource",params:{pool:"$model"}})},{context:"model_override"})))},{context:"model"}),{default:()=>({parent:"minecraft:item/generated",textures:{layer0:"minecraft:item/diamond"}})}))};var Cr={};Object.defineProperty(Cr,"__esModule",{value:!0}),Cr.initBlockDefinitionSchemas=void 0;const Or=Pe;Cr.initBlockDefinitionSchemas=function(e,t){const i=Or.Reference.bind(void 0,e),n=Or.StringNode.bind(void 0,t);e.register("block_definition",(0,Or.Mod)((0,Or.ChoiceNode)([{type:"variants",match:e=>void 0!==e.variants,node:(0,Or.ObjectNode)({variants:(0,Or.MapNode)(n(),i("model_variant"))}),change:e=>({variants:{"":{}}})},{type:"multipart",match:e=>void 0!==e.multipart,node:(0,Or.ObjectNode)({multipart:(0,Or.ListNode)((0,Or.ObjectNode)({when:(0,Or.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:(0,Or.Opt)((0,Or.NumberEnum)({integer:!0,values:[0,90,180,270]})),y:(0,Or.Opt)((0,Or.NumberEnum)({integer:!0,values:[0,90,180,270]})),uvlock:(0,Or.Opt)((0,Or.BooleanNode)())};e.register("model_variant",(0,Or.ChoiceNode)([{type:"object",node:(0,Or.ObjectNode)(r),change:e=>Array.isArray(e)&&e.length>0?e[0]:{}},{type:"list",node:(0,Or.ListNode)((0,Or.ObjectNode)(c(s({},r),{weight:(0,Or.Opt)((0,Or.NumberNode)({integer:!0,min:1}))}),{context:"model_variant"})),change:e=>[s({weight:1},e)]}],{context:"model_variant"})),e.register("multipart_condition",(0,Or.ChoiceNode)([{type:"object",priority:-1,match:()=>!0,node:(0,Or.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:(0,Or.ObjectNode)({OR:(0,Or.ListNode)(i("multipart_condition"))}),change:e=>({OR:[null!=e?e:{}]})}],{context:"multipart_condition"}))},Object.defineProperty(Nr,"__esModule",{value:!0}),Nr.initAssetsSchemas=void 0;const Sr=kr,Er=Cr;Nr.initAssetsSchemas=function(e,t){(0,Er.initBlockDefinitionSchemas)(e,t),(0,Sr.initModelSchemas)(e,t)};var Fr={};!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=Pe;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",(0,t.Mod)((0,t.ObjectNode)({Name:r({validator:"resource",params:{pool:"block"}}),Properties:(0,t.Opt)((0,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",(0,t.Mod)((0,t.ObjectNode)({Name:r({validator:"resource",params:{pool:"fluid"}}),Properties:(0,t.Opt)((0,t.MapNode)(r(),r()))},{context:"fluid_state"}),{default:()=>({Name:"minecraft:water",Properties:{level:"0"}})})),i.register("block_pos",(0,t.Mod)((0,t.ListNode)((0,t.NumberNode)({integer:!0}),{minLength:3,maxLength:3}),{default:()=>[0,0,0]}));const a=e=>(0,t.Opt)((0,t.ChoiceNode)([{type:"number",node:(0,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:(0,t.ObjectNode)({min:(0,t.Opt)((0,t.NumberNode)({integer:e})),max:(0,t.Opt)((0,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",(0,t.ChoiceNode)([{type:"object",node:(0,t.ObjectNode)({min:(0,t.Opt)(o("number_provider")),max:(0,t.Opt)(o("number_provider"))})},{type:"number",node:(0,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]=(0,t.Mod)(l[a][e],{enabled:e=>void 0===e.push("type").get()})}));const d=(0,t.ObjectNode)(s({type:(0,t.Mod)((0,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})})})),(0,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:(0,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:(0,t.Opt)((0,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:(0,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:(0,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:(0,t.NumberNode)(e)},"minecraft:uniform":{value:(0,t.ObjectNode)({min_inclusive:(0,t.NumberNode)(e),max_exclusive:(0,t.NumberNode)(e)})},"minecraft:clamped_normal":{value:(0,t.ObjectNode)({min:(0,t.NumberNode)(),max:(0,t.NumberNode)(),mean:(0,t.NumberNode)(),deviation:(0,t.NumberNode)()})},"minecraft:trapezoid":{value:(0,t.ObjectNode)({min:(0,t.NumberNode)(),max:(0,t.NumberNode)(),plateau:(0,t.NumberNode)()})}}),i.register("float_provider",(0,e.FloatProvider)()),e.IntProvider=e=>c("int_provider_type","number","value","minecraft:constant",null,"int_provider",{"minecraft:constant":{value:(0,t.NumberNode)(s({integer:!0},e))},"minecraft:uniform":{value:(0,t.ObjectNode)({min_inclusive:(0,t.NumberNode)(s({integer:!0},e)),max_inclusive:(0,t.NumberNode)(s({integer:!0},e))})},"minecraft:biased_to_bottom":{value:(0,t.ObjectNode)({min_inclusive:(0,t.NumberNode)(s({integer:!0},e)),max_inclusive:(0,t.NumberNode)(s({integer:!0},e))})},"minecraft:clamped":{value:(0,t.ObjectNode)({min_inclusive:(0,t.NumberNode)(s({integer:!0},e)),max_inclusive:(0,t.NumberNode)(s({integer:!0},e)),source:o("int_provider")})}}),i.register("int_provider",(0,e.IntProvider)()),i.register("vertical_anchor",(0,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:(0,t.ObjectNode)({[e]:(0,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:(0,t.Opt)((0,t.NumberNode)({integer:!0,min:1}))},"minecraft:very_biased_to_bottom":{min_inclusive:o("vertical_anchor"),max_inclusive:o("vertical_anchor"),inner:(0,t.Opt)((0,t.NumberNode)({integer:!0,min:1}))},"minecraft:trapezoid":{min_inclusive:o("vertical_anchor"),max_inclusive:o("vertical_anchor"),plateau:(0,t.Opt)((0,t.NumberNode)({integer:!0}))}})),e.ConditionCases=(e=r({enum:"entity_source"}))=>({"minecraft:alternative":{terms:(0,t.ListNode)(o("condition"))},"minecraft:block_state_property":{block:r({validator:"resource",params:{pool:"block"}}),properties:(0,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:(0,t.MapNode)(r({validator:"objective"}),o("int_range"))},"minecraft:inverted":{term:o("condition")},"minecraft:killed_by_player":{inverse:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:location_check":{offsetX:(0,t.Opt)((0,t.NumberNode)({integer:!0})),offsetY:(0,t.Opt)((0,t.NumberNode)({integer:!0})),offsetZ:(0,t.Opt)((0,t.NumberNode)({integer:!0})),predicate:o("location_predicate")},"minecraft:match_tool":{predicate:o("item_predicate")},"minecraft:random_chance":{chance:(0,t.NumberNode)({min:0,max:1})},"minecraft:random_chance_with_looting":{chance:(0,t.NumberNode)({min:0,max:1}),looting_multiplier:(0,t.NumberNode)()},"minecraft:reference":{name:r({validator:"resource",params:{pool:"$predicate"}})},"minecraft:table_bonus":{enchantment:r({validator:"resource",params:{pool:"enchantment"}}),chances:(0,t.ListNode)((0,t.NumberNode)({min:0,max:1}))},"minecraft:time_check":{value:o("int_range"),period:(0,t.Opt)((0,t.NumberNode)({integer:!0}))},"minecraft:value_check":{value:o("number_provider"),range:o("int_range")},"minecraft:weather_check":{raining:(0,t.Opt)((0,t.BooleanNode)()),thundering:(0,t.Opt)((0,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:(0,t.Mod)((0,t.ObjectNode)({bonusMultiplier:(0,t.Mod)((0,t.NumberNode)(),{enabled:e=>"minecraft:uniform_bonus_count"===e.pop().push("formula").get()}),extra:(0,t.Mod)((0,t.NumberNode)(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()}),probability:(0,t.Mod)((0,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:(0,t.ListNode)((0,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:(0,t.ListNode)(r({validator:"block_state_key",params:{id:["pop","pop",{push:"block"}]}}))},"minecraft:enchant_randomly":{enchantments:(0,t.Opt)((0,t.ListNode)(r({validator:"resource",params:{pool:"enchantment"}})))},"minecraft:enchant_with_levels":{levels:o("number_provider"),treasure:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:exploration_map":{destination:(0,t.Opt)(r({enum:"map_feature"})),decoration:(0,t.Opt)(r({enum:"map_decoration"})),zoom:(0,t.Opt)((0,t.NumberNode)({integer:!0})),search_radius:(0,t.Opt)((0,t.NumberNode)({integer:!0})),skip_existing_chunks:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:fill_player_head":{entity:a},"minecraft:limit_count":{limit:o("int_range")},"minecraft:looting_enchant":{count:o("number_provider"),limit:(0,t.Opt)((0,t.NumberNode)({integer:!0}))},"minecraft:set_attributes":{modifiers:(0,t.ListNode)(o("attribute_modifier"))},"minecraft:set_banner_pattern":{patterns:(0,t.ListNode)((0,t.ObjectNode)({pattern:r({enum:"banner_pattern"}),color:r({enum:"dye_color"})})),append:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:set_contents":{entries:(0,t.ListNode)(o("loot_entry"))},"minecraft:set_count":{count:o("number_provider"),add:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:set_damage":{damage:o("number_provider"),add:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:set_enchantments":{enchantments:(0,t.MapNode)(r({validator:"resource",params:{pool:"enchantment"}}),o("number_provider")),add:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:set_loot_table":{name:r({validator:"resource",params:{pool:"$loot_table"}}),seed:(0,t.Opt)((0,t.NumberNode)({integer:!0}))},"minecraft:set_lore":{entity:(0,t.Opt)(a),lore:(0,t.ListNode)(o("text_component")),replace:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:set_name":{entity:(0,t.Opt)(a),name:(0,t.Opt)(o("text_component"))},"minecraft:set_nbt":{tag:r({validator:"nbt",params:{registry:{category:"minecraft:item"}}})},"minecraft:set_stew_effect":{effects:(0,t.Opt)((0,t.ListNode)((0,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=>(0,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=>(0,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"}}}})}}(Fr);var Dr={};Object.defineProperty(Dr,"__esModule",{value:!0}),Dr.initConditionSchemas=void 0;const Br=Pe,Lr=Fr;Dr.initConditionSchemas=function(e,t){const i=Br.Reference.bind(void 0,e),n=Br.StringNode.bind(void 0,t);e.register("predicate",(0,Br.ObjectOrList)(i("condition"),{choiceContext:"condition"})),e.register("condition",(0,Br.Mod)((0,Br.ObjectNode)({condition:n({validator:"resource",params:{pool:"loot_condition_type"}}),[Br.Switch]:[{push:"condition"}],[Br.Case]:(0,Lr.ConditionCases)()},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:entity_properties",entity:"this"})}))};var Mr={};Object.defineProperty(Mr,"__esModule",{value:!0}),Mr.initDimensionSchemas=void 0;const Tr=Pe,Rr=Fr;Mr.initDimensionSchemas=function(e,t){const i=Tr.Reference.bind(void 0,e),n=Tr.StringNode.bind(void 0,t),r=e=>(0,Tr.Mod)(e,{enabled:e=>void 0===e.push("preset").get()});e.register("dimension",(0,Tr.Mod)((0,Tr.ObjectNode)({type:(0,Rr.DimensionTypePresets)(i("dimension_type")),generator:(0,Tr.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/chunk_generator"}}),[Tr.Switch]:[{push:"type"}],[Tr.Case]:{"minecraft:noise":{seed:(0,Tr.NumberNode)({integer:!0}),settings:(0,Rr.NoiseSettingsPresets)(i("noise_settings")),biome_source:(0,Tr.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/biome_source"}}),[Tr.Switch]:[{push:"type"}],[Tr.Case]:{"minecraft:fixed":{biome:n({validator:"resource",params:{pool:"$worldgen/biome"}})},"minecraft:multi_noise":{seed:(0,Tr.NumberNode)({integer:!0}),preset:(0,Tr.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((0,Tr.Mod)((0,Tr.ListNode)(i("generator_biome")),{default:()=>[{biome:"minecraft:plains"}]}))},"minecraft:checkerboard":{scale:(0,Tr.Opt)((0,Tr.NumberNode)({integer:!0,min:0,max:62})),biomes:(0,Tr.ListNode)(n({validator:"resource",params:{pool:"$worldgen/biome"}}))},"minecraft:the_end":{seed:(0,Tr.NumberNode)({integer:!0})},"minecraft:vanilla_layered":{seed:(0,Tr.NumberNode)({integer:!0}),large_biomes:(0,Tr.Opt)((0,Tr.BooleanNode)()),legacy_biome_init_layer:(0,Tr.Opt)((0,Tr.BooleanNode)())}}},{category:"predicate",disableSwitchContext:!0})},"minecraft:flat":{settings:(0,Tr.ObjectNode)({biome:(0,Tr.Opt)(n({validator:"resource",params:{pool:"$worldgen/biome"}})),lakes:(0,Tr.Opt)((0,Tr.BooleanNode)()),features:(0,Tr.Opt)((0,Tr.BooleanNode)()),layers:(0,Tr.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",(0,Tr.Mod)((0,Tr.ObjectNode)({biome:n({validator:"resource",params:{pool:"$worldgen/biome"}}),parameters:(0,Tr.ObjectNode)({altitude:(0,Tr.NumberNode)(),temperature:(0,Tr.NumberNode)(),humidity:(0,Tr.NumberNode)(),weirdness:(0,Tr.NumberNode)(),offset:(0,Tr.NumberNode)()})},{context:"generator_biome"}),{default:()=>({biome:"minecraft:plains",parameters:{altitude:0,temperature:0,humidity:0,weirdness:0,offset:0}})})),e.register("generator_biome_noise",(0,Tr.Mod)((0,Tr.ObjectNode)({firstOctave:(0,Tr.NumberNode)({integer:!0}),amplitudes:(0,Tr.ListNode)((0,Tr.NumberNode)())},{context:"generator_biome_noise"}),{default:()=>({firstOctave:-7,amplitudes:[1,1]})}))};var $r={};Object.defineProperty($r,"__esModule",{value:!0}),$r.initDimensionTypeSchemas=void 0;const jr=Pe,Ir=Fr;$r.initDimensionTypeSchemas=function(e,t){const i=jr.StringNode.bind(void 0,t);e.register("dimension_type",(0,jr.Mod)((0,jr.ObjectNode)({name:(0,jr.Mod)(i({validator:"resource",params:{pool:"$dimension_type",isDefinition:!0}}),{enabled:e=>e.getArray().length>0}),ultrawarm:(0,jr.BooleanNode)(),natural:(0,jr.BooleanNode)(),piglin_safe:(0,jr.BooleanNode)(),respawn_anchor_works:(0,jr.BooleanNode)(),bed_works:(0,jr.BooleanNode)(),has_raids:(0,jr.BooleanNode)(),has_skylight:(0,jr.BooleanNode)(),has_ceiling:(0,jr.BooleanNode)(),coordinate_scale:(0,jr.NumberNode)({min:1e-5,max:3e7}),ambient_light:(0,jr.NumberNode)(),fixed_time:(0,jr.Opt)((0,jr.NumberNode)({integer:!0})),logical_height:(0,jr.NumberNode)({integer:!0,min:0,max:4096}),effects:(0,jr.Opt)(i({enum:["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]})),infiniburn:i({validator:"resource",params:{pool:"$tag/block"}}),min_y:(0,jr.NumberNode)({integer:!0,min:-2048,max:2047}),height:(0,jr.NumberNode)({integer:!0,min:0,max:4096})},{context:"dimension_type"}),(e=>({default:()=>Ir.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 Pr={};Object.defineProperty(Pr,"__esModule",{value:!0}),Pr.initItemModifierSchemas=void 0;const zr=Pe,Ur=Fr;Pr.initItemModifierSchemas=function(e,t){const i=zr.Reference.bind(void 0,e),n=zr.StringNode.bind(void 0,t);e.register("item_modifier",(0,zr.ObjectOrList)(i("function"),{choiceContext:"function"}));const r={conditions:(0,zr.Opt)((0,zr.ListNode)(i("condition")))};e.register("function",(0,zr.Mod)((0,zr.ObjectNode)({function:n({validator:"resource",params:{pool:"loot_function_type"}}),[zr.Switch]:[{push:"function"}],[zr.Case]:(0,Ur.FunctionCases)(r)},{category:"function",context:"function"}),{default:()=>[{function:"minecraft:set_count",count:1}]}))};var Wr={},Hr={};Object.defineProperty(Hr,"__esModule",{value:!0}),Hr.LootFunctions=Hr.LootConditions=Hr.LootCopySources=Hr.LootEntitySources=Hr.LootTableTypes=void 0,Hr.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]}]]),Hr.LootEntitySources=new Map([["direct_killer",[3]],["killer",[5]],["killer_player",[5]],["this",[8]]]),Hr.LootCopySources=new Map([["block_entity",[0]],["killer",[5]],["killer_player",[5]],["this",[8]]]),Hr.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",[]]]),Hr.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(Wr,"__esModule",{value:!0}),Wr.initLootTableSchemas=void 0;const qr=Pe,Vr=Hr,Gr=Fr;Wr.initLootTableSchemas=function(e,t){const i=qr.Reference.bind(void 0,e),n=qr.StringNode.bind(void 0,t),r={conditions:(0,qr.Opt)((0,qr.ListNode)(i("loot_condition")))},o=s({functions:(0,qr.Opt)((0,qr.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 Vr.LootTableTypes){const e=[...a,...s];r.push({match:e=>e.getModel().get(new qr.Path(["type"]))===t,node:n(o(e))})}return r.push({match:e=>!0,node:n(i)}),(0,qr.SwitchNode)(r)}const c=a(Vr.LootConditions,"loot_condition_type",(e=>n({validator:"resource",params:{pool:e instanceof Array?e:"loot_condition_type"}}))),l=a(Vr.LootFunctions,"loot_function_type",(e=>n({validator:"resource",params:{pool:e instanceof Array?e:"loot_function_type"}}))),u=a(Vr.LootEntitySources,"entity_source",(e=>n({enum:e}))),d=a(Vr.LootCopySources,"copy_source",(e=>n({enum:e})));e.register("loot_table",(0,qr.Mod)((0,qr.ObjectNode)({type:(0,qr.Opt)(n({validator:"resource",params:{pool:t.get("loot_context_type")}})),pools:(0,qr.Opt)((0,qr.ListNode)((0,qr.Mod)((0,qr.ObjectNode)(s({rolls:i("number_provider"),bonus_rolls:(0,qr.Opt)(i("number_provider")),entries:(0,qr.ListNode)(i("loot_entry"))},o),{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:(0,qr.Opt)((0,qr.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",(0,qr.Mod)((0,qr.ObjectNode)({type:n({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:(0,qr.Opt)((0,qr.Mod)((0,qr.NumberNode)({integer:!0,min:1}),h)),quality:(0,qr.Opt)((0,qr.Mod)((0,qr.NumberNode)({integer:!0}),h)),[qr.Switch]:[{push:"type"}],[qr.Case]:{"minecraft:alternatives":s({children:(0,qr.ListNode)(i("loot_entry"))},o),"minecraft:dynamic":s({name:n()},o),"minecraft:group":s({children:(0,qr.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:(0,qr.ListNode)(i("loot_entry"))},o),"minecraft:tag":s({name:n({validator:"resource",params:{pool:"$tag/item"}}),expand:(0,qr.Opt)((0,qr.BooleanNode)())},o)}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),e.register("loot_function",(0,qr.Mod)((0,qr.ObjectNode)({function:l,[qr.Switch]:[{push:"function"}],[qr.Case]:(0,Gr.FunctionCases)(r,d,u)},{category:"function",context:"function"}),{default:()=>({function:"minecraft:set_count",count:1})})),e.register("loot_condition",(0,qr.Mod)((0,qr.ObjectNode)({condition:c,[qr.Switch]:[{push:"condition"}],[qr.Case]:(0,Gr.ConditionCases)(u)},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),e.register("attribute_modifier",(0,qr.Mod)((0,qr.ObjectNode)({attribute:n({validator:"resource",params:{pool:"attribute"}}),name:n(),amount:i("number_provider"),operation:n({enum:["addition","multiply_base","multiply_total"]}),slot:(0,qr.StringOrList)(n({enum:"slot"}))},{context:"attribute_modifier"}),{default:()=>({attribute:"minecraft:generic.max_health",name:"",amount:1,operation:"addition",slot:"mainhand"})}))};var Kr={};Object.defineProperty(Kr,"__esModule",{value:!0}),Kr.initPackMcmetaSchemas=void 0;const Xr=Pe;Kr.initPackMcmetaSchemas=function(e,t){e.register("pack_mcmeta",(0,Xr.Mod)((0,Xr.ObjectNode)({pack:(0,Xr.Mod)((0,Xr.ObjectNode)({pack_format:(0,Xr.Mod)((0,Xr.NumberNode)({integer:!0,min:7,max:7}),{default:()=>7,canUpdate:(e,t)=>7!==t,update:()=>[{name:"pack_format",params:[7],newValue:7}]}),description:(0,Xr.Reference)(e,"text_component")}),{default:()=>({pack_format:7,description:""})})}),{default:()=>({pack:{pack_format:7,description:""}})}))};var Jr={};Object.defineProperty(Jr,"__esModule",{value:!0}),Jr.initPredicatesSchemas=void 0;const Yr=Pe;Jr.initPredicatesSchemas=function(e,t){const i=Yr.Reference.bind(void 0,e),n=Yr.StringNode.bind(void 0,t),r=(0,Yr.ChoiceNode)([{type:"string",node:n(),change:e=>"boolean"==typeof e||"number"==typeof e?e.toString():""},{type:"number",node:(0,Yr.NumberNode)(),change:e=>"string"==typeof e?parseInt(e):0},{type:"object",node:(0,Yr.ObjectNode)({min:(0,Yr.Opt)((0,Yr.NumberNode)({integer:!0})),max:(0,Yr.Opt)((0,Yr.NumberNode)({integer:!0}))}),change:e=>"number"==typeof e?{min:e,max:e}:{}},{type:"boolean",node:(0,Yr.BooleanNode)(),change:e=>"true"===e||1===e}]);e.register("item_predicate",(0,Yr.ObjectNode)({items:(0,Yr.Opt)((0,Yr.ListNode)(n({validator:"resource",params:{pool:"item"}}))),tag:(0,Yr.Opt)(n({validator:"resource",params:{pool:"$tag/item"}})),count:i("int_bounds"),durability:i("int_bounds"),potion:(0,Yr.Opt)(n({validator:"resource",params:{pool:"potion"}})),nbt:(0,Yr.Opt)(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:(0,Yr.Opt)((0,Yr.ListNode)(i("enchantment_predicate")))},{context:"item"})),e.register("enchantment_predicate",(0,Yr.ObjectNode)({enchantment:(0,Yr.Opt)(n({validator:"resource",params:{pool:"enchantment"}})),levels:i("int_bounds")},{context:"enchantment"})),e.register("block_predicate",(0,Yr.ObjectNode)({blocks:(0,Yr.Opt)((0,Yr.ListNode)(n({validator:"resource",params:{pool:"block"}}))),tag:(0,Yr.Opt)(n({validator:"resource",params:{pool:"$tag/block"}})),nbt:(0,Yr.Opt)(n({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:(0,Yr.Opt)((0,Yr.MapNode)(n(),r,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),e.register("fluid_predicate",(0,Yr.ObjectNode)({fluid:(0,Yr.Opt)(n({validator:"resource",params:{pool:"fluid"}})),tag:(0,Yr.Opt)(n({validator:"resource",params:{pool:"$tag/fluid"}})),state:(0,Yr.Opt)((0,Yr.MapNode)(n(),r))},{context:"fluid"})),e.register("location_predicate",(0,Yr.ObjectNode)({position:(0,Yr.Opt)((0,Yr.ObjectNode)({x:i("float_bounds"),y:i("float_bounds"),z:i("float_bounds")})),biome:(0,Yr.Opt)(n({validator:"resource",params:{pool:"$worldgen/biome"}})),feature:(0,Yr.Opt)(n({enum:t.get("worldgen/structure_feature").map((e=>e.slice(10)))})),dimension:(0,Yr.Opt)(n({validator:"resource",params:{pool:"$dimension"}})),light:(0,Yr.Opt)((0,Yr.ObjectNode)({light:i("int_bounds")})),smokey:(0,Yr.Opt)((0,Yr.BooleanNode)()),block:(0,Yr.Opt)(i("block_predicate")),fluid:(0,Yr.Opt)(i("fluid_predicate"))},{context:"location"})),e.register("statistic_predicate",(0,Yr.ObjectNode)({type:n({validator:"resource",params:{pool:"stat_type"}}),stat:n(),value:i("int_bounds"),[Yr.Switch]:[{push:"type"}],[Yr.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",(0,Yr.ObjectNode)({gamemode:(0,Yr.Opt)(n({enum:"gamemode"})),level:i("int_bounds"),advancements:(0,Yr.Opt)((0,Yr.MapNode)(n({validator:"resource",params:{pool:"$advancement"}}),(0,Yr.ChoiceNode)([{type:"boolean",node:(0,Yr.BooleanNode)(),change:e=>!0},{type:"object",node:(0,Yr.MapNode)(n(),(0,Yr.BooleanNode)())}]))),recipes:(0,Yr.Opt)((0,Yr.MapNode)(n({validator:"resource",params:{pool:"$recipe"}}),(0,Yr.BooleanNode)())),stats:(0,Yr.Opt)((0,Yr.ListNode)(i("statistic_predicate"))),looking_at:(0,Yr.Opt)(i("entity_predicate"))},{context:"player"})),e.register("status_effect_predicate",(0,Yr.ObjectNode)({amplifier:i("int_bounds"),duration:i("int_bounds"),ambient:(0,Yr.Opt)((0,Yr.BooleanNode)()),visible:(0,Yr.Opt)((0,Yr.BooleanNode)())},{context:"status_effect"})),e.register("distance_predicate",(0,Yr.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",(0,Yr.ObjectNode)({type:(0,Yr.Opt)(n({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),nbt:(0,Yr.Opt)(n({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:(0,Yr.Opt)(n({validator:"team"})),location:(0,Yr.Opt)(i("location_predicate")),stepping_on:(0,Yr.Opt)(i("location_predicate")),distance:(0,Yr.Opt)(i("distance_predicate")),flags:(0,Yr.Opt)((0,Yr.ObjectNode)({is_on_fire:(0,Yr.Opt)((0,Yr.BooleanNode)()),is_sneaking:(0,Yr.Opt)((0,Yr.BooleanNode)()),is_sprinting:(0,Yr.Opt)((0,Yr.BooleanNode)()),is_swimming:(0,Yr.Opt)((0,Yr.BooleanNode)()),is_baby:(0,Yr.Opt)((0,Yr.BooleanNode)())})),equipment:(0,Yr.Opt)((0,Yr.MapNode)(n({enum:"slot"}),i("item_predicate"))),vehicle:(0,Yr.Opt)(i("entity_predicate")),passenger:(0,Yr.Opt)(i("entity_predicate")),targeted_entity:(0,Yr.Opt)(i("entity_predicate")),player:(0,Yr.Opt)(i("player_predicate")),lightning_bolt:(0,Yr.Opt)((0,Yr.ObjectNode)({blocks_set_on_fire:(0,Yr.Opt)(i("int_bounds")),entity_struck:(0,Yr.Opt)(i("entity_predicate"))})),fishing_hook:(0,Yr.Opt)((0,Yr.ObjectNode)({in_open_water:(0,Yr.Opt)((0,Yr.BooleanNode)())})),catType:(0,Yr.Opt)(n({enum:"cat_texture"})),effects:(0,Yr.Opt)((0,Yr.MapNode)(n({validator:"resource",params:{pool:"mob_effect"}}),i("status_effect_predicate")))},{context:"entity"})),e.register("damage_source_predicate",(0,Yr.ObjectNode)({is_explosion:(0,Yr.Opt)((0,Yr.BooleanNode)()),is_fire:(0,Yr.Opt)((0,Yr.BooleanNode)()),is_magic:(0,Yr.Opt)((0,Yr.BooleanNode)()),is_projectile:(0,Yr.Opt)((0,Yr.BooleanNode)()),is_lightning:(0,Yr.Opt)((0,Yr.BooleanNode)()),bypasses_armor:(0,Yr.Opt)((0,Yr.BooleanNode)()),bypasses_invulnerability:(0,Yr.Opt)((0,Yr.BooleanNode)()),bypasses_magic:(0,Yr.Opt)((0,Yr.BooleanNode)()),source_entity:(0,Yr.Opt)(i("entity_predicate")),direct_entity:(0,Yr.Opt)(i("entity_predicate"))},{context:"damage_source"})),e.register("damage_predicate",(0,Yr.ObjectNode)({dealt:i("float_bounds"),taken:i("float_bounds"),blocked:(0,Yr.Opt)((0,Yr.BooleanNode)()),source_entity:(0,Yr.Opt)(i("entity_predicate")),type:(0,Yr.Opt)(i("damage_source_predicate"))},{context:"damage"}))};var Zr={};Object.defineProperty(Zr,"__esModule",{value:!0}),Zr.initRecipeSchemas=void 0;const Qr=Pe;Zr.initRecipeSchemas=function(e,t){const i=Qr.Reference.bind(void 0,e),n=Qr.StringNode.bind(void 0,t);e.register("recipe",(0,Qr.Mod)((0,Qr.ObjectNode)({type:n({validator:"resource",params:{pool:"recipe_serializer"}}),[Qr.Switch]:[{push:"type"}],[Qr.Case]:{"minecraft:crafting_shaped":{group:(0,Qr.Opt)(n({enum:"recipe_group",additional:!0})),pattern:(0,Qr.ListNode)(n()),key:(0,Qr.MapNode)(n(),i("recipe_ingredient")),result:i("recipe_result")},"minecraft:crafting_shapeless":{group:(0,Qr.Opt)(n()),ingredients:(0,Qr.ListNode)(i("recipe_ingredient")),result:i("recipe_result")},"minecraft:smelting":{group:(0,Qr.Opt)(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:(0,Qr.Opt)((0,Qr.NumberNode)()),cookingtime:(0,Qr.Opt)((0,Qr.Mod)((0,Qr.NumberNode)({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:(0,Qr.Opt)(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:(0,Qr.Opt)((0,Qr.NumberNode)()),cookingtime:(0,Qr.Opt)((0,Qr.Mod)((0,Qr.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:(0,Qr.Opt)(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:(0,Qr.Opt)((0,Qr.NumberNode)()),cookingtime:(0,Qr.Opt)((0,Qr.Mod)((0,Qr.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:(0,Qr.Opt)(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:(0,Qr.Opt)((0,Qr.NumberNode)()),cookingtime:(0,Qr.Opt)((0,Qr.Mod)((0,Qr.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:(0,Qr.Opt)(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),count:(0,Qr.NumberNode)({integer:!0})},"minecraft:smithing":{group:(0,Qr.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",(0,Qr.Mod)((0,Qr.ChoiceNode)([{type:"object",node:i("recipe_ingredient_object"),change:e=>e[0]},{type:"list",node:(0,Qr.ListNode)(i("recipe_ingredient_object")),change:e=>[e]}]),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_ingredient_object",(0,Qr.Mod)((0,Qr.ObjectNode)({item:(0,Qr.Opt)(n({validator:"resource",params:{pool:"item"}})),tag:(0,Qr.Opt)(n({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_result",(0,Qr.Mod)((0,Qr.ObjectNode)({item:n({validator:"resource",params:{pool:"item"}}),count:(0,Qr.Opt)((0,Qr.Mod)((0,Qr.NumberNode)({integer:!0}),{default:()=>1}))}),{default:()=>({item:"minecraft:stone"})}))};var eo={};Object.defineProperty(eo,"__esModule",{value:!0}),eo.initTagsSchemas=void 0;const to=Pe;eo.initTagsSchemas=function(e,t){const i=to.StringNode.bind(void 0,t),n=e=>(0,to.Mod)((0,to.ObjectNode)({replace:(0,to.Opt)((0,to.BooleanNode)()),values:(0,to.ListNode)((0,to.ChoiceNode)([{type:"string",node:i({validator:"resource",params:{pool:e,allowTag:!0}}),change:e=>e.id},{type:"object",node:(0,to.ObjectNode)({id:i({validator:"resource",params:{pool:e,allowTag:!0,allowUnknown:!0}}),required:(0,to.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 io={};Object.defineProperty(io,"__esModule",{value:!0}),io.initTextComponentSchemas=void 0;const no=Pe;io.initTextComponentSchemas=function(e,t){const i=no.Reference.bind(void 0,e),n=no.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",(0,no.Mod)((0,no.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:(0,no.NumberNode)(),change:e=>{const t=parseFloat(r(e));return isFinite(t)?t:e?1:0}},{type:"boolean",node:(0,no.BooleanNode)(),change:e=>{const t=r(e);return"true"===t||"false"===t?"true"===t:!!t}}],{context:"text_component"}),{default:()=>({text:""})}));const o={color:(0,no.Opt)(n()),font:(0,no.Opt)(n()),bold:(0,no.Opt)((0,no.BooleanNode)()),italic:(0,no.Opt)((0,no.BooleanNode)()),underlined:(0,no.Opt)((0,no.BooleanNode)()),strikethrough:(0,no.Opt)((0,no.BooleanNode)()),obfuscated:(0,no.Opt)((0,no.BooleanNode)()),insertion:(0,no.Opt)(n()),clickEvent:(0,no.Opt)((0,no.ObjectNode)({action:n({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[no.Switch]:[{push:"action"}],[no.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:(0,no.Opt)((0,no.ObjectNode)({action:n({enum:["show_text","show_item","show_entity"]}),[no.Switch]:[{push:"action"}],[no.Case]:{show_text:{value:(0,no.Opt)(i("text_component")),contents:(0,no.Opt)(i("text_component"))},show_item:{value:(0,no.Opt)(n({validator:"nbt",params:{module:"util::InventoryItem"}})),contents:(0,no.Opt)((0,no.ObjectNode)({id:n({validator:"resource",params:{pool:"item"}}),count:(0,no.Opt)((0,no.NumberNode)({integer:!0})),tag:(0,no.Opt)(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"id"}]}}}))}))},show_entity:{value:(0,no.Opt)((0,no.ObjectNode)({name:(0,no.Opt)(n()),type:(0,no.Opt)(n()),id:(0,no.Opt)(n())})),contents:(0,no.Opt)((0,no.Mod)((0,no.ObjectNode)({name:(0,no.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:(0,no.Opt)(i("text_component_list"))};e.register("text_component_object",(0,no.Mod)((0,no.ChoiceNode)([{type:"text",match:e=>"object"==typeof e,change:e=>({text:""}),priority:-1,node:(0,no.ObjectNode)(s({text:n()},o))},{type:"translation",match:e=>void 0!==(null==e?void 0:e.translate),change:e=>({translate:""}),node:(0,no.ObjectNode)(s({translate:n(),with:(0,no.Opt)(i("text_component_list"))},o))},{type:"score",match:e=>void 0!==(null==e?void 0:e.score),change:e=>({score:{}}),node:(0,no.ObjectNode)(s({score:(0,no.ObjectNode)({name:n({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:n({validator:"objective"}),value:(0,no.Opt)(n())})},o))},{type:"selector",match:e=>void 0!==(null==e?void 0:e.selector),change:e=>({selector:""}),node:(0,no.ObjectNode)(s({selector:n({validator:"entity",params:{amount:"multiple",type:"entities"}}),separator:(0,no.Opt)(i("text_component"))},o))},{type:"keybind",match:e=>void 0!==(null==e?void 0:e.keybind),change:e=>({keybind:""}),node:(0,no.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:(0,no.ObjectNode)(s({nbt:n({validator:"nbt_path"}),block:(0,no.Opt)(n({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:(0,no.Opt)(n({validator:"entity",params:{amount:"multiple",type:"entities"}})),storage:(0,no.Opt)(n({validator:"resource",params:{pool:"$storage"}})),interpret:(0,no.Opt)((0,no.BooleanNode)()),separator:(0,no.Opt)(i("text_component"))},o))}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),e.register("text_component_list",(0,no.Mod)((0,no.ListNode)(i("text_component")),{default:()=>[{text:""}]}))};var ro={},oo={};Object.defineProperty(oo,"__esModule",{value:!0}),oo.initBiomeSchemas=void 0;const ao=Pe;oo.initBiomeSchemas=function(e,t){const i=ao.StringNode.bind(void 0,t);e.register("biome",(0,ao.Mod)((0,ao.ObjectNode)({surface_builder:i({validator:"resource",params:{pool:"$worldgen/configured_surface_builder"}}),depth:(0,ao.NumberNode)(),scale:(0,ao.NumberNode)(),temperature:(0,ao.NumberNode)(),downfall:(0,ao.NumberNode)(),precipitation:i({enum:["none","rain","snow"]}),temperature_modifier:(0,ao.Opt)(i({enum:["none","frozen"]})),category:i({enum:"biome_category"}),player_spawn_friendly:(0,ao.Opt)((0,ao.BooleanNode)()),creature_spawn_probability:(0,ao.Opt)((0,ao.NumberNode)({min:0,max:1})),effects:(0,ao.ObjectNode)({sky_color:(0,ao.NumberNode)({color:!0}),fog_color:(0,ao.NumberNode)({color:!0}),water_color:(0,ao.NumberNode)({color:!0}),water_fog_color:(0,ao.NumberNode)({color:!0}),grass_color:(0,ao.Opt)((0,ao.NumberNode)({color:!0})),foliage_color:(0,ao.Opt)((0,ao.NumberNode)({color:!0})),grass_color_modifier:(0,ao.Opt)(i({enum:["none","dark_forest","swamp"]})),ambient_sound:(0,ao.Opt)(i()),mood_sound:(0,ao.Opt)((0,ao.ObjectNode)({sound:i(),tick_delay:(0,ao.NumberNode)({integer:!0}),block_search_extent:(0,ao.NumberNode)({integer:!0}),offset:(0,ao.NumberNode)()})),additions_sound:(0,ao.Opt)((0,ao.ObjectNode)({sound:i(),tick_chance:(0,ao.NumberNode)({min:0,max:1})})),music:(0,ao.Opt)((0,ao.ObjectNode)({sound:i(),min_delay:(0,ao.NumberNode)({integer:!0,min:0}),max_delay:(0,ao.NumberNode)({integer:!0,min:0}),replace_current_music:(0,ao.BooleanNode)()})),particle:(0,ao.Opt)((0,ao.ObjectNode)({options:(0,ao.ObjectNode)({type:i()}),probability:(0,ao.NumberNode)({min:0,max:1})}))}),starts:(0,ao.ListNode)(i({validator:"resource",params:{pool:"$worldgen/configured_structure_feature"}})),spawners:(0,ao.MapNode)(i({enum:["monster","creature","ambient","underground_water_creature","water_creature","water_ambient","misc"]}),(0,ao.Mod)((0,ao.ListNode)((0,ao.ObjectNode)({type:i({validator:"resource",params:{pool:"entity_type"}}),weight:(0,ao.NumberNode)({integer:!0}),minCount:(0,ao.NumberNode)({integer:!0}),maxCount:(0,ao.NumberNode)({integer:!0})})),{category:()=>"pool",default:()=>[{type:"minecraft:bat",weight:1}]})),spawn_costs:(0,ao.MapNode)(i({validator:"resource",params:{pool:"entity_type"}}),(0,ao.Mod)((0,ao.ObjectNode)({energy_budget:(0,ao.NumberNode)(),charge:(0,ao.NumberNode)()},{category:"function"}),{default:()=>({energy_budget:.12,charge:1})})),carvers:(0,ao.MapNode)(i({enum:["air","liquid"]}),(0,ao.Mod)((0,ao.ListNode)(i({validator:"resource",params:{pool:"$worldgen/configured_carver"}})),{default:()=>["minecraft:cave"]})),features:(0,ao.ListNode)((0,ao.Mod)((0,ao.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 so={};Object.defineProperty(so,"__esModule",{value:!0}),so.initCarverSchemas=void 0;const co=Pe,lo=Fr;so.initCarverSchemas=function(e,t){const i=co.Reference.bind(void 0,e),n=co.StringNode.bind(void 0,t),r={vertical_rotation:(0,lo.FloatProvider)(),shape:(0,co.ObjectNode)({distance_factor:(0,lo.FloatProvider)(),thickness:(0,lo.FloatProvider)(),width_smoothness:(0,co.NumberNode)({integer:!0,min:0}),horizontal_radius_factor:(0,lo.FloatProvider)(),vertical_radius_default_factor:(0,co.NumberNode)(),vertical_radius_center_factor:(0,co.NumberNode)()})},o={horizontal_radius_multiplier:(0,lo.FloatProvider)(),vertical_radius_multiplier:(0,lo.FloatProvider)(),floor_level:(0,lo.FloatProvider)({min:-1,max:1})};e.register("configured_carver",(0,co.Mod)((0,co.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/carver"}}),config:(0,co.ObjectNode)({probability:(0,co.NumberNode)({min:0,max:1}),y:i("height_provider"),yScale:(0,lo.FloatProvider)(),lava_level:i("vertical_anchor"),aquifers_enabled:(0,co.BooleanNode)(),debug_settings:(0,co.Opt)((0,co.ObjectNode)({debug_mode:(0,co.Opt)((0,co.BooleanNode)()),air_state:(0,co.Opt)(i("block_state")),water_state:(0,co.Opt)(i("block_state")),lava_state:(0,co.Opt)(i("block_state")),barrier_state:(0,co.Opt)(i("block_state"))})),[co.Switch]:["pop",{push:"type"}],[co.Case]:{"minecraft:canyon":r,"minecraft:cave":o,"minecraft:nether_cave":o}})},{context:"carver"}),{default:()=>({type:"minecraft:cave",config:{probability:.1}})}))};var uo={};Object.defineProperty(uo,"__esModule",{value:!0}),uo.initDecoratorSchemas=void 0;const ho=Pe,po=Fr;uo.initDecoratorSchemas=function(e,t){const i=ho.Reference.bind(void 0,e),n=ho.StringNode.bind(void 0,t),r={count:(0,po.IntProvider)({min:0,max:256})};e.register("configured_decorator",(0,ho.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/decorator"}}),config:(0,ho.ObjectNode)({[ho.Switch]:["pop",{push:"type"}],[ho.Case]:{"minecraft:carving_mask":{step:n({enum:"generation_step"})},"minecraft:cave_surface":{surface:n({enum:["floor","ceiling"]}),floor_to_ceiling_search_range:(0,ho.NumberNode)({integer:!0})},"minecraft:chance":{chance:(0,ho.NumberNode)({integer:!0,min:0})},"minecraft:count":r,"minecraft:count_extra":{count:(0,ho.NumberNode)({integer:!0,min:0}),extra_count:(0,ho.NumberNode)({integer:!0,min:0}),extra_chance:(0,ho.NumberNode)({min:0,max:1})},"minecraft:count_multilayer":r,"minecraft:count_noise":{noise_level:(0,ho.NumberNode)(),below_noise:(0,ho.NumberNode)({integer:!0}),above_noise:(0,ho.NumberNode)({integer:!0})},"minecraft:count_noise_biased":{noise_to_count_ratio:(0,ho.NumberNode)({integer:!0}),noise_factor:(0,ho.NumberNode)(),noise_offset:(0,ho.Opt)((0,ho.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:(0,ho.NumberNode)({integer:!0,min:0})},"minecraft:range":{height:i("height_provider")},"minecraft:water_depth_threshold":{max_water_depth:(0,ho.NumberNode)({integer:!0})}}},{context:"decorator",category:"predicate"})},{context:"decorator",category:"predicate"}))};var mo={},fo={};Object.defineProperty(fo,"__esModule",{value:!0}),fo.initProcessorListSchemas=fo.Processors=void 0;const go=Pe;fo.initProcessorListSchemas=function(e,t){const i=go.Reference.bind(void 0,e),n=go.StringNode.bind(void 0,t);fo.Processors=(0,go.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",(0,go.Mod)((0,go.ObjectNode)({processors:(0,go.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",(0,go.Mod)((0,go.ObjectNode)({processor_type:n({validator:"resource",params:{pool:"worldgen/structure_processor"}}),[go.Switch]:[{push:"processor_type"}],[go.Case]:{"minecraft:block_age":{mossiness:(0,go.NumberNode)()},"minecraft:block_ignore":{blocks:(0,go.ListNode)(i("block_state"))},"minecraft:block_rot":{integrity:(0,go.NumberNode)({min:0,max:1})},"minecraft:gravity":{heightmap:n({enum:"heightmap_type"}),offset:(0,go.NumberNode)({integer:!0})},"minecraft:protected_blocks":{value:n({validator:"resource",params:{pool:"$tag/block"}})},"minecraft:rule":{rules:(0,go.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",(0,go.Mod)((0,go.ObjectNode)({position_predicate:(0,go.Opt)(i("pos_rule_test")),location_predicate:i("rule_test"),input_predicate:i("rule_test"),output_state:i("block_state"),output_nbt:(0,go.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:(0,go.Opt)((0,go.NumberNode)({min:0,max:255,integer:!0})),max_dist:(0,go.Opt)((0,go.NumberNode)({min:0,max:255,integer:!0})),min_chance:(0,go.Opt)((0,go.NumberNode)({min:0,max:1})),max_chance:(0,go.Opt)((0,go.NumberNode)({min:0,max:1}))};e.register("pos_rule_test",(0,go.ObjectNode)({predicate_type:n({validator:"resource",params:{pool:"pos_rule_test"}}),[go.Switch]:[{push:"predicate_type"}],[go.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",(0,go.ObjectNode)({predicate_type:n({validator:"resource",params:{pool:"rule_test"}}),[go.Switch]:[{push:"predicate_type"}],[go.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:(0,go.NumberNode)({min:0,max:1})},"minecraft:random_blockstate_match":{block_state:i("block_state"),probability:(0,go.NumberNode)({min:0,max:1})},"minecraft:tag_match":{tag:n({validator:"resource",params:{pool:"$tag/block"}})}}},{context:"rule_test",disableSwitchContext:!0}))},Object.defineProperty(mo,"__esModule",{value:!0}),mo.initFeatureSchemas=void 0;const _o=Pe,bo=Fr,vo=fo;mo.initFeatureSchemas=function(e,t){const i=_o.Reference.bind(void 0,e),n=_o.StringNode.bind(void 0,t),r={can_replace:(0,_o.Opt)((0,_o.BooleanNode)()),project:(0,_o.Opt)((0,_o.BooleanNode)()),need_water:(0,_o.Opt)((0,_o.BooleanNode)()),xspread:(0,_o.Opt)((0,_o.NumberNode)({integer:!0,min:0})),yspread:(0,_o.Opt)((0,_o.NumberNode)({integer:!0,min:0})),zspread:(0,_o.Opt)((0,_o.NumberNode)({integer:!0,min:0})),tries:(0,_o.Opt)((0,_o.NumberNode)({integer:!0,min:1})),state_provider:i("block_state_provider"),block_placer:i("block_placer"),whitelist:(0,_o.ListNode)(i("block_state")),blacklist:(0,_o.ListNode)(i("block_state"))},o={state:i("block_state"),radius:(0,bo.IntProvider)({min:0,max:8}),half_height:(0,_o.NumberNode)({integer:!0,min:0,max:4}),targets:(0,_o.ListNode)(i("block_state"))},a={cap_provider:i("block_state_provider"),stem_provider:i("block_state_provider"),foliage_radius:(0,_o.Opt)((0,_o.NumberNode)({integer:!0}))},s=(0,_o.ObjectNode)({target:i("rule_test"),state:i("block_state")}),c={size:(0,_o.NumberNode)({integer:!0,min:0,max:64}),discard_chance_on_air_exposure:(0,_o.NumberNode)({min:0,max:1}),targets:(0,_o.ListNode)(s)},l=(0,_o.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:(0,bo.IntProvider)({min:1,max:128}),vertical_range:(0,_o.NumberNode)({integer:!0,min:1,max:256}),extra_bottom_block_chance:(0,_o.NumberNode)({min:0,max:1}),extra_edge_column_chance:(0,_o.NumberNode)({min:0,max:1}),vegetation_chance:(0,_o.NumberNode)({min:0,max:1}),xz_radius:(0,bo.IntProvider)(),replaceable:n({validator:"resource",params:{pool:"$tag/block"}}),ground_state:i("block_state_provider"),vegetation_feature:l};e.register("configured_feature",(0,_o.Mod)((0,_o.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/feature"}}),config:(0,_o.ObjectNode)({[_o.Switch]:["pop",{push:"type"}],[_o.Case]:{"minecraft:bamboo":{probability:(0,_o.NumberNode)({min:0,max:1})},"minecraft:basalt_columns":{reach:(0,bo.IntProvider)({min:0,max:3}),height:(0,bo.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:(0,bo.IntProvider)({min:0,max:16}),rim_size:(0,bo.IntProvider)({min:0,max:16})},"minecraft:disk":o,"minecraft:dripstone_cluster":{floor_to_ceiling_search_range:(0,_o.NumberNode)({integer:!0,min:1,max:512}),height:(0,bo.IntProvider)({min:0,max:128}),radius:(0,bo.IntProvider)({min:0,max:128}),max_stalagmite_stalactite_height_diff:(0,_o.NumberNode)({integer:!0,min:0,max:64}),height_deviation:(0,_o.NumberNode)({integer:!0,min:1,max:64}),dripstone_block_layer_thickness:(0,bo.IntProvider)({min:0,max:128}),density:(0,bo.FloatProvider)({min:0,max:2}),wetness:(0,bo.FloatProvider)({min:0,max:2}),chance_of_dripstone_column_at_max_distance_from_center:(0,_o.NumberNode)({min:0,max:1}),max_distance_from_edge_affecting_chance_of_dripstone_column:(0,_o.NumberNode)({integer:!0,min:1,max:64}),max_distance_from_center_affecting_height_bias:(0,_o.NumberNode)({integer:!0,min:1,max:64})},"minecraft:end_gateway":{exact:(0,_o.BooleanNode)(),exit:(0,_o.Opt)(i("block_pos"))},"minecraft:end_spike":{crystal_invulnerable:(0,_o.Opt)((0,_o.BooleanNode)()),crystal_beam_target:(0,_o.Opt)(i("block_pos")),spikes:(0,_o.ListNode)((0,_o.ObjectNode)({centerX:(0,_o.Opt)((0,_o.NumberNode)({integer:!0})),centerZ:(0,_o.Opt)((0,_o.NumberNode)({integer:!0})),radius:(0,_o.Opt)((0,_o.NumberNode)({integer:!0})),height:(0,_o.Opt)((0,_o.NumberNode)({integer:!0})),guarded:(0,_o.Opt)((0,_o.BooleanNode)())}))},"minecraft:fill_layer":{state:i("block_state"),height:(0,_o.NumberNode)({integer:!0,min:0,max:255})},"minecraft:flower":r,"minecraft:forest_rock":{state:i("block_state")},"minecraft:fossil":{max_empty_corners_allowed:(0,_o.NumberNode)({integer:!0,min:0,max:7}),fossil_structures:(0,_o.ListNode)(n({validator:"resource",params:{pool:"$structure"}})),overlay_structures:(0,_o.ListNode)(n({validator:"resource",params:{pool:"$structure"}})),fossil_processors:vo.Processors,overlay_processors:vo.Processors},"minecraft:geode":{blocks:(0,_o.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:(0,_o.ListNode)(i("block_state")),cannot_replace:n({validator:"resource",params:{pool:"$tag/block"}}),invalid_blocks:n({validator:"resource",params:{pool:"$tag/block"}})}),layers:(0,_o.ObjectNode)({filling:(0,_o.Opt)((0,_o.NumberNode)({min:.01,max:50})),inner_layer:(0,_o.Opt)((0,_o.NumberNode)({min:.01,max:50})),middle_layer:(0,_o.Opt)((0,_o.NumberNode)({min:.01,max:50})),outer_layer:(0,_o.Opt)((0,_o.NumberNode)({min:.01,max:50}))}),crack:(0,_o.ObjectNode)({generate_crack_chance:(0,_o.Opt)((0,_o.NumberNode)({min:0,max:1})),base_crack_size:(0,_o.Opt)((0,_o.NumberNode)({min:0,max:5})),crack_point_offset:(0,_o.Opt)((0,_o.NumberNode)({min:0,max:10}))}),noise_multiplier:(0,_o.Opt)((0,_o.NumberNode)({min:0,max:1})),use_potential_placements_chance:(0,_o.Opt)((0,_o.NumberNode)({min:0,max:1})),use_alternate_layer0_chance:(0,_o.Opt)((0,_o.NumberNode)({min:0,max:1})),placements_require_layer0_alternate:(0,_o.Opt)((0,_o.BooleanNode)()),outer_wall_distance:(0,_o.Opt)((0,bo.IntProvider)({min:1,max:20})),distribution_points:(0,_o.Opt)((0,bo.IntProvider)({min:1,max:20})),point_offset:(0,_o.Opt)((0,bo.IntProvider)({min:0,max:10})),min_gen_offset:(0,_o.Opt)((0,_o.NumberNode)({integer:!0})),max_gen_offset:(0,_o.Opt)((0,_o.NumberNode)({integer:!0})),invalid_blocks_threshold:(0,_o.NumberNode)({integer:!0})},"minecraft:glow_lichen":{search_range:(0,_o.Opt)((0,_o.NumberNode)({min:1,max:64,integer:!0})),chance_of_spreading:(0,_o.Opt)((0,_o.NumberNode)({min:0,max:1})),can_place_on_floor:(0,_o.Opt)((0,_o.BooleanNode)()),can_place_on_ceiling:(0,_o.Opt)((0,_o.BooleanNode)()),can_place_on_wall:(0,_o.Opt)((0,_o.BooleanNode)()),can_be_placed_on:(0,_o.ListNode)(i("block_state"))},"minecraft:growing_plant":{direction:n({enum:["up","down","north","east","south","west"]}),allow_water:(0,_o.BooleanNode)(),height_distribution:(0,_o.ListNode)((0,_o.ObjectNode)({weight:(0,_o.NumberNode)({integer:!0}),data:(0,bo.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:(0,_o.Opt)((0,_o.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:(0,_o.Opt)((0,_o.NumberNode)({integer:!0,min:1,max:512})),column_radius:(0,bo.IntProvider)({min:0,max:60}),height_scale:(0,bo.FloatProvider)({min:0,max:20}),max_column_radius_to_cave_height_ratio:(0,_o.NumberNode)({min:0,max:1}),stalactite_bluntness:(0,bo.FloatProvider)({min:.1,max:10}),stalagmite_bluntness:(0,bo.FloatProvider)({min:.1,max:10}),wind_speed:(0,bo.FloatProvider)({min:0,max:2}),min_radius_for_wind:(0,_o.NumberNode)({integer:!0,min:0,max:100}),min_bluntness_for_wind:(0,_o.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:(0,bo.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:(0,_o.ListNode)((0,_o.ObjectNode)({chance:(0,_o.NumberNode)({min:0,max:1}),feature:l})),default:l},"minecraft:replace_single_block":{targets:(0,_o.ListNode)(s)},"minecraft:root_system":{required_vertical_space_for_tree:(0,_o.NumberNode)({integer:!0,min:1,max:64}),root_radius:(0,_o.NumberNode)({integer:!0,min:1,max:64}),root_placement_attempts:(0,_o.NumberNode)({integer:!0,min:1,max:256}),root_column_max_height:(0,_o.NumberNode)({integer:!0,min:1,max:4096}),hanging_root_radius:(0,_o.NumberNode)({integer:!0,min:1,max:64}),hanging_roots_vertical_span:(0,_o.NumberNode)({integer:!0,min:0,max:16}),hanging_root_placement_attempts:(0,_o.NumberNode)({integer:!0,min:0,max:256}),allowed_vertical_water_for_tree:(0,_o.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:(0,bo.IntProvider)({min:0,max:256})},"minecraft:seagrass":{probability:(0,_o.NumberNode)({min:0,max:1})},"minecraft:simple_block":{to_place:i("block_state_provider"),place_on:(0,_o.Opt)((0,_o.ListNode)(i("block_state"))),place_in:(0,_o.Opt)((0,_o.ListNode)(i("block_state"))),place_under:(0,_o.Opt)((0,_o.ListNode)(i("block_state")))},"minecraft:simple_random_selector":{features:(0,_o.ListNode)(l)},"minecraft:small_dripstone":{max_placements:(0,_o.Opt)((0,_o.NumberNode)({integer:!0,min:0,max:100})),empty_space_search_radius:(0,_o.Opt)((0,_o.NumberNode)({integer:!0,min:0,max:20})),max_offset_from_origin:(0,_o.Opt)((0,_o.NumberNode)({integer:!0,min:0,max:20})),chance_of_taller_dripstone:(0,_o.Opt)((0,_o.NumberNode)({min:0,max:1}))},"minecraft:spring_feature":{state:i("fluid_state"),rock_count:(0,_o.NumberNode)({integer:!0}),hole_count:(0,_o.NumberNode)({integer:!0}),requires_block_below:(0,_o.BooleanNode)(),valid_blocks:(0,_o.ListNode)(n({validator:"resource",params:{pool:"block"}}))},"minecraft:tree":{ignore_vines:(0,_o.Opt)((0,_o.BooleanNode)()),force_dirt:(0,_o.Opt)((0,_o.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:(0,_o.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/trunk_placer_type"}}),base_height:(0,_o.NumberNode)({integer:!0,min:0,max:32}),height_rand_a:(0,_o.NumberNode)({integer:!0,min:0,max:24}),height_rand_b:(0,_o.NumberNode)({integer:!0,min:0,max:24}),[_o.Switch]:[{push:"type"}],[_o.Case]:{"minecraft:bending_trunk_placer":{bend_length:(0,bo.IntProvider)({min:1,max:64}),min_height_for_leaves:(0,_o.Opt)((0,_o.NumberNode)({integer:!0,min:1}))}}},{context:"trunk_placer"}),foliage_placer:(0,_o.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/foliage_placer_type"}}),radius:(0,bo.IntProvider)({min:0,max:16}),offset:(0,bo.IntProvider)({min:0,max:16}),[_o.Switch]:[{push:"type"}],[_o.Case]:{"minecraft:blob_foliage_placer":{height:(0,_o.NumberNode)({integer:!0,min:0,max:16})},"minecraft:bush_foliage_placer":{height:(0,_o.NumberNode)({integer:!0,min:0,max:16})},"minecraft:fancy_foliage_placer":{height:(0,_o.NumberNode)({integer:!0,min:0,max:16})},"minecraft:jungle_foliage_placer":{height:(0,_o.NumberNode)({integer:!0,min:0,max:16})},"minecraft:mega_pine_foliage_placer":{crown_height:(0,bo.IntProvider)({min:0,max:24})},"minecraft:pine_foliage_placer":{height:(0,bo.IntProvider)({min:0,max:24})},"minecraft:random_spread_foliage_placer":{foliage_height:(0,bo.IntProvider)({min:1,max:512}),leaf_placement_attempts:(0,_o.NumberNode)({integer:!0,min:0,max:256})},"minecraft:spruce_foliage_placer":{trunk_height:(0,bo.IntProvider)({min:0,max:24})}}},{context:"foliage_placer",disableSwitchContext:!0}),decorators:(0,_o.ListNode)((0,_o.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/tree_decorator_type"}}),[_o.Switch]:[{push:"type"}],[_o.Case]:{"minecraft:alter_ground":{provider:i("block_state_provider")},"minecraft:beehive":{probability:(0,_o.NumberNode)({min:0,max:1})},"minecraft:cocoa":{probability:(0,_o.NumberNode)({min:0,max:1})}}},{context:"tree_decorator"}))},"minecraft:underwater_magma":{floor_search_range:(0,_o.NumberNode)({integer:!0,min:0,max:512}),placement_radius_around_floor:(0,_o.NumberNode)({integer:!0,min:0,max:64}),placement_probability_per_valid_position:(0,_o.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",(0,_o.Mod)((0,_o.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/feature_size_type"}}),min_clipped_height:(0,_o.Opt)((0,_o.NumberNode)({min:0,max:80})),[_o.Switch]:[{push:"type"}],[_o.Case]:{"minecraft:two_layers_feature_size":{limit:(0,_o.Opt)((0,_o.NumberNode)({integer:!0,min:0,max:81})),lower_size:(0,_o.Opt)((0,_o.NumberNode)({integer:!0,min:0,max:16})),upper_size:(0,_o.Opt)((0,_o.NumberNode)({integer:!0,min:0,max:16}))},"minecraft:three_layers_feature_size":{limit:(0,_o.Opt)((0,_o.NumberNode)({integer:!0,min:0,max:80})),upper_limit:(0,_o.Opt)((0,_o.NumberNode)({integer:!0,min:0,max:80})),lower_size:(0,_o.Opt)((0,_o.NumberNode)({integer:!0,min:0,max:16})),middle_size:(0,_o.Opt)((0,_o.NumberNode)({integer:!0,min:0,max:16})),upper_size:(0,_o.Opt)((0,_o.NumberNode)({integer:!0,min:0,max:16}))}}},{disableSwitchContext:!0}),{default:()=>({type:"minecraft:two_layers_feature_size"})})),e.register("block_state_provider",(0,_o.Mod)((0,_o.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/block_state_provider_type"}}),[_o.Switch]:[{push:"type"}],[_o.Case]:{"minecraft:randomized_int_state_provider":{property:n(),values:(0,bo.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:(0,_o.ListNode)((0,_o.Mod)((0,_o.ObjectNode)({weight:(0,_o.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",(0,_o.Mod)((0,_o.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/block_placer_type"}}),[_o.Switch]:[{push:"type"}],[_o.Case]:{"minecraft:column_placer":{size:(0,bo.IntProvider)({min:0})}}},{context:"block_placer"}),{default:()=>({type:"minecraft:simple_block_placer"})}))};var yo={};Object.defineProperty(yo,"__esModule",{value:!0}),yo.initNoiseSettingsSchemas=void 0;const wo=Pe,xo=Fr;yo.initNoiseSettingsSchemas=function(e,t){const i=wo.Reference.bind(void 0,e),n=wo.StringNode.bind(void 0,t);e.register("noise_settings",(0,wo.Mod)((0,wo.ObjectNode)({name:(0,wo.Mod)(n({validator:"resource",params:{pool:"$worldgen/noise_settings",isDefinition:!0}}),{enabled:e=>e.getArray().length>0}),bedrock_roof_position:(0,wo.NumberNode)({integer:!0}),bedrock_floor_position:(0,wo.NumberNode)({integer:!0}),sea_level:(0,wo.NumberNode)({integer:!0}),min_surface_level:(0,wo.NumberNode)({integer:!0}),disable_mob_generation:(0,wo.BooleanNode)(),noise_caves_enabled:(0,wo.BooleanNode)(),noodle_caves_enabled:(0,wo.BooleanNode)(),aquifers_enabled:(0,wo.BooleanNode)(),deepslate_enabled:(0,wo.BooleanNode)(),ore_veins_enabled:(0,wo.BooleanNode)(),default_block:i("block_state"),default_fluid:i("block_state"),noise:(0,wo.ObjectNode)({min_y:(0,wo.NumberNode)({integer:!0,min:-2048,max:2047}),height:(0,wo.NumberNode)({integer:!0,min:0,max:4096}),density_factor:(0,wo.NumberNode)(),density_offset:(0,wo.NumberNode)(),size_horizontal:(0,wo.NumberNode)({integer:!0}),size_vertical:(0,wo.NumberNode)({integer:!0}),simplex_surface_noise:(0,wo.BooleanNode)(),random_density_offset:(0,wo.Opt)((0,wo.BooleanNode)()),island_noise_override:(0,wo.Opt)((0,wo.BooleanNode)()),amplified:(0,wo.Opt)((0,wo.BooleanNode)()),sampling:(0,wo.ObjectNode)({xz_scale:(0,wo.NumberNode)(),y_scale:(0,wo.NumberNode)(),xz_factor:(0,wo.NumberNode)(),y_factor:(0,wo.NumberNode)()}),bottom_slide:(0,wo.ObjectNode)({target:(0,wo.NumberNode)({integer:!0}),size:(0,wo.NumberNode)({integer:!0,min:0}),offset:(0,wo.NumberNode)({integer:!0})}),top_slide:(0,wo.ObjectNode)({target:(0,wo.NumberNode)({integer:!0}),size:(0,wo.NumberNode)({integer:!0,min:0}),offset:(0,wo.NumberNode)({integer:!0})})}),structures:i("generator_structures")},{context:"noise_settings"}),(e=>({default:()=>xo.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",(0,wo.ObjectNode)({stronghold:(0,wo.Opt)((0,wo.ObjectNode)({distance:(0,wo.NumberNode)({integer:!0,min:0,max:1023}),spread:(0,wo.NumberNode)({integer:!0,min:0,max:1023}),count:(0,wo.NumberNode)({integer:!0,min:1,max:4095})})),structures:(0,wo.MapNode)(n({validator:"resource",params:{pool:"worldgen/structure_feature"}}),(0,wo.Mod)((0,wo.ObjectNode)({spacing:(0,wo.NumberNode)({integer:!0,min:0,max:4096}),separation:(0,wo.Mod)((0,wo.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:(0,wo.NumberNode)({integer:!0,min:0})},{context:"generator_structure"}),{default:()=>({spacing:10,separation:5,salt:0})}))})),e.register("generator_layer",(0,wo.Mod)((0,wo.ObjectNode)({block:n({validator:"resource",params:{pool:"block"}}),height:(0,wo.NumberNode)({integer:!0,min:1})}),{default:()=>({block:"minecraft:stone",height:1})}))};var No={};Object.defineProperty(No,"__esModule",{value:!0}),No.initStructureFeatureSchemas=void 0;const ko=Pe;No.initStructureFeatureSchemas=function(e,t){const i=ko.StringNode.bind(void 0,t),n=ko.Reference.bind(void 0,e),r={start_pool:i({validator:"resource",params:{pool:"$worldgen/template_pool"}}),size:(0,ko.NumberNode)({integer:!0})};e.register("configured_structure_feature",(0,ko.Mod)((0,ko.ObjectNode)({type:i({validator:"resource",params:{pool:"worldgen/structure_feature"}}),config:(0,ko.ObjectNode)({[ko.Switch]:["pop",{push:"type"}],[ko.Case]:{"minecraft:bastion_remnant":r,"minecraft:buried_treasure":{probability:(0,ko.NumberNode)({min:0,max:1})},"minecraft:mineshaft":{type:i({enum:["normal","mesa"]}),probability:(0,ko.NumberNode)({min:0,max:1})},"minecraft:nether_fossil":{height:n("height_provider")},"minecraft:ocean_ruin":{biome_temp:i({enum:["cold","warm"]}),large_probability:(0,ko.NumberNode)({min:0,max:1}),cluster_probability:(0,ko.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:(0,ko.Opt)((0,ko.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 Ao={};Object.defineProperty(Ao,"__esModule",{value:!0}),Ao.initSurfaceBuilderSchemas=void 0;const Co=Pe;Ao.initSurfaceBuilderSchemas=function(e,t){const i=Co.StringNode.bind(void 0,t),n=Co.Reference.bind(void 0,e);e.register("configured_surface_builder",(0,Co.Mod)((0,Co.ObjectNode)({type:i({validator:"resource",params:{pool:"worldgen/surface_builder"}}),config:(0,Co.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 Oo={};Object.defineProperty(Oo,"__esModule",{value:!0}),Oo.initTemplatePoolSchemas=void 0;const So=Pe,Eo=fo;Oo.initTemplatePoolSchemas=function(e,t){const i=So.Reference.bind(void 0,e),n=So.StringNode.bind(void 0,t);e.register("template_pool",(0,So.Mod)((0,So.ObjectNode)({name:n(),fallback:n(),elements:(0,So.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",(0,So.Mod)((0,So.ObjectNode)({weight:(0,So.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",(0,So.Mod)((0,So.ObjectNode)({element_type:n({validator:"resource",params:{pool:"worldgen/structure_pool_element"}}),projection:n({enum:["rigid","terrain_matching"]}),[So.Switch]:[{push:"element_type"}],[So.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:Eo.Processors},"minecraft:list_pool_element":{elements:(0,So.ListNode)(i("template_element"))},"minecraft:single_pool_element":{location:n({validator:"resource",params:{pool:"$structure"}}),processors:Eo.Processors}}},{context:"template_element",disableSwitchContext:!0}),{default:()=>({element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"})}))},Object.defineProperty(ro,"__esModule",{value:!0}),ro.initWorldgenSchemas=void 0;const Fo=oo,Do=so,Bo=uo,Lo=mo,Mo=yo,To=fo,Ro=No,$o=Ao,jo=Oo;ro.initWorldgenSchemas=function(e,t){(0,To.initProcessorListSchemas)(e,t),(0,Fo.initBiomeSchemas)(e,t),(0,Do.initCarverSchemas)(e,t),(0,Bo.initDecoratorSchemas)(e,t),(0,Lo.initFeatureSchemas)(e,t),(0,Mo.initNoiseSettingsSchemas)(e,t),(0,Ro.initStructureFeatureSchemas)(e,t),(0,$o.initSurfaceBuilderSchemas)(e,t),(0,jo.initTemplatePoolSchemas)(e,t)};var Io={};Object.defineProperty(Io,"__esModule",{value:!0}),Io.initWorldSettingsSchemas=void 0;const Po=Pe;Io.initWorldSettingsSchemas=function(e,t){const i=Po.Reference.bind(void 0,e),n=Po.StringNode.bind(void 0,t);e.register("world_settings",(0,Po.Mod)((0,Po.ObjectNode)({generate_features:(0,Po.BooleanNode)(),bonus_chest:(0,Po.BooleanNode)(),seed:(0,Po.NumberNode)({integer:!0}),dimensions:(0,Po.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(yr,"__esModule",{value:!0}),yr.initSchemas=void 0;const zo=wr,Uo=Nr,Wo=Fr,Ho=Dr,qo=Mr,Vo=$r,Go=Pr,Ko=Wr,Xo=Kr,Jo=Jr,Yo=Zr,Zo=eo,Qo=io,ea=ro,ta=Io;yr.initSchemas=function(e,t){(0,Wo.initCommonSchemas)(e,t),(0,zo.initAdvancementSchemas)(e,t),(0,Uo.initAssetsSchemas)(e,t),(0,Ho.initConditionSchemas)(e,t),(0,Vo.initDimensionTypeSchemas)(e,t),(0,qo.initDimensionSchemas)(e,t),(0,Go.initItemModifierSchemas)(e,t),(0,Ko.initLootTableSchemas)(e,t),(0,Xo.initPackMcmetaSchemas)(e,t),(0,Jo.initPredicatesSchemas)(e,t),(0,Yo.initRecipeSchemas)(e,t),(0,Zo.initTagsSchemas)(e,t),(0,Qo.initTextComponentSchemas)(e,t),(0,ea.initWorldgenSchemas)(e,t),(0,ta.initWorldSettingsSchemas)(e,t)};var ia=Ie&&Ie.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i);var r=Object.getOwnPropertyDescriptor(t,i);r&&!("get"in r?!t.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,n,r)}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),na=Ie&&Ie.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),ra=Ie&&Ie.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&ia(t,e,i);return na(t,e),t};Object.defineProperty(br,"__esModule",{value:!0});var oa=br.getSchemas=br.getCollections=br.lootContext=void 0;const aa=Pe,sa=vr,ca=yr;var la=br.lootContext=ra(Hr);var ua=br.getCollections=function(){const e=new aa.CollectionRegistry;return(0,sa.initCollections)(e),e};oa=br.getSchemas=function(e){const t=new aa.SchemaRegistry;return(0,ca.initSchemas)(t,e),t};var da=Object.freeze(Object.assign(Object.create(null),br,{[Symbol.toStringTag]:"Module",get getSchemas(){return oa},get getCollections(){return ua},get lootContext(){return la},default:br})),ha={},pa={};Object.defineProperty(pa,"__esModule",{value:!0}),pa.initCollections=void 0,pa.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("cat_texture",["textures/entity/cat/tabby.png","textures/entity/cat/black.png","textures/entity/cat/red.png","textures/entity/cat/siamese.png","textures/entity/cat/british_shorthair.png","textures/entity/cat/calico.png","textures/entity/cat/persian.png","textures/entity/cat/ragdoll.png","textures/entity/cat/white.png","textures/entity/cat/jellie.png","textures/entity/cat/all_black.png"])};var ma={},fa={};Object.defineProperty(fa,"__esModule",{value:!0}),fa.initAdvancementSchemas=void 0;const ga=Pe;fa.initAdvancementSchemas=function(e,t){const i=ga.Reference.bind(void 0,e),n=ga.StringNode.bind(void 0,t),r=(0,ga.ChoiceNode)([{type:"object",node:(0,ga.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:(0,ga.ListNode)(i("condition")),change:e=>[{condition:"minecraft:entity_properties",predicate:e}]}],{context:"conditions"});e.register("advancement",(0,ga.Mod)((0,ga.ObjectNode)({display:(0,ga.Opt)((0,ga.Mod)((0,ga.ObjectNode)({icon:(0,ga.ObjectNode)({item:n({validator:"resource",params:{pool:"item"}}),nbt:(0,ga.Opt)(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:i("text_component"),description:i("text_component"),background:(0,ga.Opt)(n()),frame:(0,ga.Opt)(n({enum:["task","challenge","goal"]})),show_toast:(0,ga.Opt)((0,ga.BooleanNode)()),announce_to_chat:(0,ga.Opt)((0,ga.BooleanNode)()),hidden:(0,ga.Opt)((0,ga.BooleanNode)())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:(0,ga.Opt)(n({validator:"resource",params:{pool:"$advancement"}})),criteria:(0,ga.MapNode)(n(),i("advancement_criteria")),requirements:(0,ga.Opt)((0,ga.ListNode)((0,ga.ListNode)(n()))),rewards:(0,ga.Opt)((0,ga.ObjectNode)({function:(0,ga.Opt)(n({validator:"resource",params:{pool:"$function"}})),loot:(0,ga.Opt)((0,ga.ListNode)(n({validator:"resource",params:{pool:"$loot_table"}}))),recipes:(0,ga.Opt)((0,ga.ListNode)(n({validator:"resource",params:{pool:"$recipe"}}))),experience:(0,ga.Opt)((0,ga.NumberNode)({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),e.register("advancement_criteria",(0,ga.ObjectNode)({trigger:n({validator:"resource",params:{pool:t.get("advancement_trigger")}}),conditions:(0,ga.Opt)((0,ga.ObjectNode)({player:(0,ga.Mod)(r,{enabled:e=>"minecraft:impossible"!==e.pop().push("trigger").get()}),[ga.Switch]:["pop",{push:"trigger"}],[ga.Case]:{"minecraft:bee_nest_destroyed":{block:(0,ga.Opt)(n({validator:"resource",params:{pool:"block"}})),num_bees_inside:(0,ga.Opt)((0,ga.NumberNode)({integer:!0})),item:(0,ga.Opt)(i("item_predicate"))},"minecraft:bred_animals":{parent:r,partner:r,child:r},"minecraft:brewed_potion":{potion:(0,ga.Opt)(n({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:(0,ga.Opt)(n({validator:"resource",params:{pool:"$dimension"}})),to:(0,ga.Opt)(n({validator:"resource",params:{pool:"$dimension"}}))},"minecraft:channeled_lightning":{victims:(0,ga.Opt)((0,ga.ListNode)(r))},"minecraft:construct_beacon":{level:i("int_bounds")},"minecraft:consume_item":{item:(0,ga.Opt)(i("item_predicate"))},"minecraft:cured_zombie_villager":{villager:r,zombie:r},"minecraft:effects_changed":{effects:(0,ga.Opt)((0,ga.MapNode)(n({validator:"resource",params:{pool:"mob_effect"}}),(0,ga.ObjectNode)({amplifier:i("int_bounds"),duration:i("int_bounds")}))),source:(0,ga.Opt)(r)},"minecraft:enter_block":{block:(0,ga.Opt)(n({validator:"resource",params:{pool:"block"}})),state:(0,ga.Opt)((0,ga.MapNode)(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:i("int_bounds"),item:(0,ga.Opt)(i("item_predicate"))},"minecraft:entity_hurt_player":{damage:(0,ga.Opt)(i("damage_predicate"))},"minecraft:entity_killed_player":{entity:r,killing_blow:(0,ga.Opt)(i("damage_source_predicate"))},"minecraft:fall_from_height":{start_position:(0,ga.Opt)(i("location_predicate")),distance:(0,ga.Opt)(i("distance_predicate"))},"minecraft:filled_bucket":{item:(0,ga.Opt)(i("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:r,item:(0,ga.Opt)(i("item_predicate"))},"minecraft:hero_of_the_village":{location:(0,ga.Opt)(i("location_predicate"))},"minecraft:inventory_changed":{slots:(0,ga.Opt)((0,ga.ObjectNode)({empty:i("int_bounds"),occupied:i("int_bounds"),full:i("int_bounds")})),items:(0,ga.Opt)((0,ga.ListNode)(i("item_predicate")))},"minecraft:item_durability_changed":{delta:i("int_bounds"),durability:i("int_bounds"),item:(0,ga.Opt)(i("item_predicate"))},"minecraft:item_used_on_block":{item:(0,ga.Opt)(i("item_predicate")),location:(0,ga.Opt)(i("location_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:i("int_bounds"),victims:(0,ga.Opt)((0,ga.ListNode)(r))},"minecraft:levitation":{distance:(0,ga.Opt)(i("distance_predicate")),duration:i("int_bounds")},"minecraft:lightning_strike":{lightning:r,bystander:r},"minecraft:location":{location:(0,ga.Opt)(i("location_predicate"))},"minecraft:nether_travel":{start_position:(0,ga.Opt)(i("location_predicate")),distance:(0,ga.Opt)(i("distance_predicate"))},"minecraft:placed_block":{block:(0,ga.Opt)(n({validator:"resource",params:{pool:"block"}})),state:(0,ga.Opt)((0,ga.MapNode)(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:(0,ga.Opt)(i("item_predicate")),location:(0,ga.Opt)(i("location_predicate"))},"minecraft:player_generates_container_loot":{loot_table:n({validator:"resource",params:{pool:"$loot_table"}})},"minecraft:player_hurt_entity":{damage:(0,ga.Opt)(i("damage_predicate")),entity:r},"minecraft:player_interacted_with_entity":{item:(0,ga.Opt)(i("item_predicate")),entity:r},"minecraft:player_killed_entity":{entity:r,killing_blow:(0,ga.Opt)(i("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:n({validator:"resource",params:{pool:"$recipe"}})},"minecraft:ride_entity_in_lava":{start_position:(0,ga.Opt)(i("location_predicate")),distance:(0,ga.Opt)(i("distance_predicate"))},"minecraft:slept_in_bed":{location:(0,ga.Opt)(i("location_predicate"))},"minecraft:slide_down_block":{block:(0,ga.Opt)(n({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:(0,ga.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:r,item:(0,ga.Opt)(i("item_predicate"))},"minecraft:used_ender_eye":{distance:(0,ga.Opt)(i("float_bounds"))},"minecraft:used_totem":{item:(0,ga.Opt)(i("item_predicate"))},"minecraft:using_item":{item:(0,ga.Opt)(i("item_predicate"))},"minecraft:villager_trade":{villager:r,item:(0,ga.Opt)(i("item_predicate"))},"minecraft:voluntary_exile":{location:(0,ga.Opt)(i("location_predicate"))}}},{context:"criterion"}))},{category:"predicate",context:"criterion"}))};var _a={},ba={};Object.defineProperty(ba,"__esModule",{value:!0}),ba.initModelSchemas=void 0;const va=Pe;ba.initModelSchemas=function(e,t){va.Reference.bind(void 0,e);const i=va.StringNode.bind(void 0,t),n=(e,t,i)=>(0,va.ListNode)((0,va.NumberNode)({min:t,max:i}),{minLength:e,maxLength:e}),r=(0,va.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",(0,va.Mod)((0,va.ObjectNode)({parent:(0,va.Opt)(i({validator:"resource",params:{pool:"$model"}})),ambientocclusion:(0,va.Opt)((0,va.BooleanNode)()),gui_light:(0,va.Opt)(i({enum:"gui_light"})),textures:(0,va.Opt)((0,va.MapNode)(i(),r)),elements:(0,va.Opt)((0,va.ListNode)((0,va.ObjectNode)({from:n(3,-16,32),to:n(3,-16,32),rotation:(0,va.Opt)((0,va.ObjectNode)({origin:n(3),axis:i({enum:"axis"}),angle:(0,va.NumberEnum)({values:[-45,-22.5,0,22.5,45]}),rescale:(0,va.Opt)((0,va.BooleanNode)())})),shade:(0,va.Opt)((0,va.BooleanNode)()),faces:(0,va.MapNode)(i({enum:"direction"}),(0,va.ObjectNode)({texture:r,uv:(0,va.Opt)(n(4)),cullface:(0,va.Opt)(i({enum:"direction"})),rotation:(0,va.Opt)((0,va.NumberNode)({integer:!0})),tintindex:(0,va.Opt)((0,va.NumberNode)({integer:!0}))}))},{context:"model_element"}))),display:(0,va.Opt)((0,va.MapNode)(i({enum:"display_position"}),(0,va.ObjectNode)({rotation:n(3),translation:n(3,-80,80),scale:n(3,-4,4)},{context:"item_transform"}))),overrides:(0,va.Opt)((0,va.ListNode)((0,va.ObjectNode)({predicate:(0,va.MapNode)(i({enum:"item_model_predicates"}),(0,va.NumberNode)()),model:i({validator:"resource",params:{pool:"$model"}})},{context:"model_override"})))},{context:"model"}),{default:()=>({parent:"minecraft:item/generated",textures:{layer0:"minecraft:item/diamond"}})}))};var ya={};Object.defineProperty(ya,"__esModule",{value:!0}),ya.initBlockDefinitionSchemas=void 0;const wa=Pe;ya.initBlockDefinitionSchemas=function(e,t){const i=wa.Reference.bind(void 0,e),n=wa.StringNode.bind(void 0,t);e.register("block_definition",(0,wa.Mod)((0,wa.ChoiceNode)([{type:"variants",match:e=>void 0!==e.variants,node:(0,wa.ObjectNode)({variants:(0,wa.MapNode)(n(),i("model_variant"))}),change:e=>({variants:{"":{}}})},{type:"multipart",match:e=>void 0!==e.multipart,node:(0,wa.ObjectNode)({multipart:(0,wa.ListNode)((0,wa.ObjectNode)({when:(0,wa.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:(0,wa.Opt)((0,wa.NumberEnum)({integer:!0,values:[0,90,180,270]})),y:(0,wa.Opt)((0,wa.NumberEnum)({integer:!0,values:[0,90,180,270]})),uvlock:(0,wa.Opt)((0,wa.BooleanNode)())};e.register("model_variant",(0,wa.ChoiceNode)([{type:"object",node:(0,wa.ObjectNode)(r),change:e=>Array.isArray(e)&&e.length>0?e[0]:{}},{type:"list",node:(0,wa.ListNode)((0,wa.ObjectNode)(c(s({},r),{weight:(0,wa.Opt)((0,wa.NumberNode)({integer:!0,min:1}))}),{context:"model_variant"})),change:e=>[s({weight:1},e)]}],{context:"model_variant"})),e.register("multipart_condition",(0,wa.ChoiceNode)([{type:"object",priority:-1,match:()=>!0,node:(0,wa.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:(0,wa.ObjectNode)({OR:(0,wa.ListNode)(i("multipart_condition"))}),change:e=>({OR:[null!=e?e:{}]})}],{context:"multipart_condition"}))},Object.defineProperty(_a,"__esModule",{value:!0}),_a.initAssetsSchemas=void 0;const xa=ba,Na=ya;_a.initAssetsSchemas=function(e,t){(0,Na.initBlockDefinitionSchemas)(e,t),(0,xa.initModelSchemas)(e,t)};var ka={};!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=Pe;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",(0,t.Mod)((0,t.ObjectNode)({Name:o({validator:"resource",params:{pool:"block"}}),Properties:(0,t.Opt)((0,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",(0,t.Mod)((0,t.ObjectNode)({Name:o({validator:"resource",params:{pool:"fluid"}}),Properties:(0,t.Opt)((0,t.MapNode)(o(),o()))},{context:"fluid_state"}),{default:()=>({Name:"minecraft:water",Properties:{level:"0"}})})),n.register("block_pos",(0,t.Mod)((0,t.ListNode)((0,t.NumberNode)({integer:!0}),{minLength:3,maxLength:3}),{default:()=>[0,0,0]}));const c=e=>(0,t.Opt)((0,t.ChoiceNode)([{type:"number",node:(0,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:(0,t.ObjectNode)({min:(0,t.Opt)((0,t.NumberNode)({integer:e})),max:(0,t.Opt)((0,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",(0,t.ChoiceNode)([{type:"object",node:(0,t.ObjectNode)({min:(0,t.Opt)(a("number_provider")),max:(0,t.Opt)(a("number_provider"))})},{type:"number",node:(0,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]=(0,t.Mod)(l[a][e],{enabled:e=>void 0===e.push("type").get()})}));const d=(0,t.ObjectNode)(s({type:(0,t.Mod)((0,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})})})),(0,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:(0,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:(0,t.Opt)((0,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:(0,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:(0,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:(0,t.NumberNode)(e)},"minecraft:uniform":{value:(0,t.ObjectNode)({min_inclusive:(0,t.NumberNode)(e),max_exclusive:(0,t.NumberNode)(e)})},"minecraft:clamped_normal":{value:(0,t.ObjectNode)({min:(0,t.NumberNode)(),max:(0,t.NumberNode)(),mean:(0,t.NumberNode)(),deviation:(0,t.NumberNode)()})},"minecraft:trapezoid":{value:(0,t.ObjectNode)({min:(0,t.NumberNode)(),max:(0,t.NumberNode)(),plateau:(0,t.NumberNode)()})}}),n.register("float_provider",(0,e.FloatProvider)()),e.IntProvider=e=>l("int_provider_type","number","value","minecraft:constant",null,"int_provider",{"minecraft:constant":{value:(0,t.NumberNode)(s({integer:!0},e))},"minecraft:uniform":{value:(0,t.ObjectNode)({min_inclusive:(0,t.NumberNode)(s({integer:!0},e)),max_inclusive:(0,t.NumberNode)(s({integer:!0},e))})},"minecraft:biased_to_bottom":{value:(0,t.ObjectNode)({min_inclusive:(0,t.NumberNode)(s({integer:!0},e)),max_inclusive:(0,t.NumberNode)(s({integer:!0},e))})},"minecraft:clamped":{value:(0,t.ObjectNode)({min_inclusive:(0,t.NumberNode)(s({integer:!0},e)),max_inclusive:(0,t.NumberNode)(s({integer:!0},e)),source:a("int_provider")})},"minecraft:clamped_normal":{value:(0,t.ObjectNode)({min_inclusive:(0,t.NumberNode)(s({integer:!0},e)),max_inclusive:(0,t.NumberNode)(s({integer:!0},e)),mean:(0,t.NumberNode)(),deviation:(0,t.NumberNode)()})},"minecraft:weighted_list":{distribution:(0,t.ListNode)((0,t.ObjectNode)({weight:(0,t.NumberNode)({integer:!0}),data:a("int_provider")}))}}),n.register("int_provider",(0,e.IntProvider)()),n.register("vertical_anchor",(0,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:(0,t.ObjectNode)({[e]:(0,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:(0,t.Opt)((0,t.NumberNode)({integer:!0,min:1}))},"minecraft:very_biased_to_bottom":{min_inclusive:a("vertical_anchor"),max_inclusive:a("vertical_anchor"),inner:(0,t.Opt)((0,t.NumberNode)({integer:!0,min:1}))},"minecraft:trapezoid":{min_inclusive:a("vertical_anchor"),max_inclusive:a("vertical_anchor"),plateau:(0,t.Opt)((0,t.NumberNode)({integer:!0}))},"minecraft:weighted_list":{distribution:(0,t.ListNode)((0,t.ObjectNode)({weight:(0,t.NumberNode)({integer:!0}),data:a("height_provider")}))}})),e.InclusiveRange=e=>(0,t.ObjectNode)({min_inclusive:(0,t.NumberNode)(e),max_inclusive:(0,t.NumberNode)(e)},{context:"range"}),n.register("noise_parameters",(0,t.Mod)((0,t.ObjectNode)({firstOctave:(0,t.NumberNode)({integer:!0}),amplitudes:(0,t.ListNode)((0,t.NumberNode)())},{context:"noise_parameters"}),{default:()=>({firstOctave:-7,amplitudes:[1,1]})})),e.ConditionCases=(e=o({enum:"entity_source"}))=>({"minecraft:alternative":{terms:(0,t.ListNode)(a("condition"))},"minecraft:block_state_property":{block:o({validator:"resource",params:{pool:"block"}}),properties:(0,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:(0,t.MapNode)(o({validator:"objective"}),a("int_range"))},"minecraft:inverted":{term:a("condition")},"minecraft:killed_by_player":{inverse:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:location_check":{offsetX:(0,t.Opt)((0,t.NumberNode)({integer:!0})),offsetY:(0,t.Opt)((0,t.NumberNode)({integer:!0})),offsetZ:(0,t.Opt)((0,t.NumberNode)({integer:!0})),predicate:a("location_predicate")},"minecraft:match_tool":{predicate:a("item_predicate")},"minecraft:random_chance":{chance:(0,t.NumberNode)({min:0,max:1})},"minecraft:random_chance_with_looting":{chance:(0,t.NumberNode)({min:0,max:1}),looting_multiplier:(0,t.NumberNode)()},"minecraft:reference":{name:o({validator:"resource",params:{pool:"$predicate"}})},"minecraft:table_bonus":{enchantment:o({validator:"resource",params:{pool:"enchantment"}}),chances:(0,t.ListNode)((0,t.NumberNode)({min:0,max:1}))},"minecraft:time_check":{value:a("int_range"),period:(0,t.Opt)((0,t.NumberNode)({integer:!0}))},"minecraft:value_check":{value:a("number_provider"),range:a("int_range")},"minecraft:weather_check":{raining:(0,t.Opt)((0,t.BooleanNode)()),thundering:(0,t.Opt)((0,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:(0,t.Mod)((0,t.ObjectNode)({bonusMultiplier:(0,t.Mod)((0,t.NumberNode)(),{enabled:e=>"minecraft:uniform_bonus_count"===e.pop().push("formula").get()}),extra:(0,t.Mod)((0,t.NumberNode)(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()}),probability:(0,t.Mod)((0,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:(0,t.ListNode)((0,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:(0,t.ListNode)(o({validator:"block_state_key",params:{id:["pop","pop",{push:"block"}]}}))},"minecraft:enchant_randomly":{enchantments:(0,t.Opt)((0,t.ListNode)(o({validator:"resource",params:{pool:"enchantment"}})))},"minecraft:enchant_with_levels":{levels:a("number_provider"),treasure:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:exploration_map":{destination:(0,t.Opt)(o({enum:"map_feature"})),decoration:(0,t.Opt)(o({enum:"map_decoration"})),zoom:(0,t.Opt)((0,t.NumberNode)({integer:!0})),search_radius:(0,t.Opt)((0,t.NumberNode)({integer:!0})),skip_existing_chunks:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:fill_player_head":{entity:n},"minecraft:limit_count":{limit:a("int_range")},"minecraft:looting_enchant":{count:a("number_provider"),limit:(0,t.Opt)((0,t.NumberNode)({integer:!0}))},"minecraft:set_attributes":{modifiers:(0,t.ListNode)(a("attribute_modifier"))},"minecraft:set_banner_pattern":{patterns:(0,t.ListNode)((0,t.ObjectNode)({pattern:o({enum:"banner_pattern"}),color:o({enum:"dye_color"})})),append:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:set_contents":{type:o({validator:"resource",params:{pool:"block_entity_type"}}),entries:(0,t.ListNode)(a("loot_entry"))},"minecraft:set_count":{count:a("number_provider"),add:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:set_damage":{damage:a("number_provider"),add:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:set_enchantments":{enchantments:(0,t.MapNode)(o({validator:"resource",params:{pool:"enchantment"}}),a("number_provider")),add:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:set_loot_table":{type:o({validator:"resource",params:{pool:"block_entity_type"}}),name:o({validator:"resource",params:{pool:"$loot_table"}}),seed:(0,t.Opt)((0,t.NumberNode)({integer:!0}))},"minecraft:set_lore":{entity:(0,t.Opt)(n),lore:(0,t.ListNode)(a("text_component")),replace:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:set_name":{entity:(0,t.Opt)(n),name:(0,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:(0,t.Opt)((0,t.ListNode)((0,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=>(0,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=>(0,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}}})}}(ka);var Aa={};Object.defineProperty(Aa,"__esModule",{value:!0}),Aa.initConditionSchemas=void 0;const Ca=Pe,Oa=ka;Aa.initConditionSchemas=function(e,t){const i=Ca.Reference.bind(void 0,e),n=Ca.StringNode.bind(void 0,t);e.register("predicate",(0,Ca.ObjectOrList)(i("condition"),{choiceContext:"condition"})),e.register("condition",(0,Ca.Mod)((0,Ca.ObjectNode)({condition:n({validator:"resource",params:{pool:"loot_condition_type"}}),[Ca.Switch]:[{push:"condition"}],[Ca.Case]:(0,Oa.ConditionCases)()},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:entity_properties",entity:"this"})}))};var Sa={};Object.defineProperty(Sa,"__esModule",{value:!0}),Sa.initDimensionSchemas=void 0;const Ea=Pe,Fa=ka;Sa.initDimensionSchemas=function(e,t){const i=Ea.Reference.bind(void 0,e),n=Ea.StringNode.bind(void 0,t);e.register("dimension",(0,Ea.Mod)((0,Ea.ObjectNode)({type:(0,Fa.DimensionTypePresets)(i("dimension_type")),generator:(0,Ea.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/chunk_generator"}}),[Ea.Switch]:[{push:"type"}],[Ea.Case]:{"minecraft:noise":{seed:(0,Ea.NumberNode)({integer:!0}),settings:(0,Fa.NoiseSettingsPresets)(i("noise_settings")),biome_source:(0,Ea.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/biome_source"}}),[Ea.Switch]:[{push:"type"}],[Ea.Case]:{"minecraft:fixed":{biome:n({validator:"resource",params:{pool:"$worldgen/biome"}})},"minecraft:multi_noise":{preset:(0,Ea.Opt)(n({validator:"resource",params:{pool:["minecraft:overworld","minecraft:nether"]}})),biomes:(0,Ea.Mod)((0,Ea.ListNode)(i("generator_biome")),{enabled:e=>void 0===e.push("preset").get(),default:()=>[{biome:"minecraft:plains"}]})},"minecraft:checkerboard":{scale:(0,Ea.Opt)((0,Ea.NumberNode)({integer:!0,min:0,max:62})),biomes:(0,Ea.ListNode)(n({validator:"resource",params:{pool:"$worldgen/biome"}}))},"minecraft:the_end":{seed:(0,Ea.NumberNode)({integer:!0})}}},{category:"predicate",disableSwitchContext:!0})},"minecraft:flat":{settings:(0,Ea.ObjectNode)({biome:(0,Ea.Opt)(n({validator:"resource",params:{pool:"$worldgen/biome"}})),lakes:(0,Ea.Opt)((0,Ea.BooleanNode)()),features:(0,Ea.Opt)((0,Ea.BooleanNode)()),layers:(0,Ea.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=(0,Ea.ChoiceNode)([{type:"number",node:(0,Ea.NumberNode)({min:-2,max:2}),change:e=>{var t;return null!==(t=e[0])&&void 0!==t?t:0}},{type:"list",node:(0,Ea.ListNode)((0,Ea.NumberNode)({min:-2,max:2}),{minLength:2,maxLength:2}),change:e=>[null!=e?e:0,null!=e?e:0]}]);e.register("generator_biome",(0,Ea.Mod)((0,Ea.ObjectNode)({biome:n({validator:"resource",params:{pool:"$worldgen/biome"}}),parameters:(0,Ea.ObjectNode)({temperature:r,humidity:r,continentalness:r,erosion:r,weirdness:r,depth:r,offset:(0,Ea.NumberNode)({min:0,max:1})})},{context:"generator_biome"}),{default:()=>({biome:"minecraft:plains",parameters:{altitude:0,temperature:0,humidity:0,weirdness:0,offset:0}})}))};var Da={};Object.defineProperty(Da,"__esModule",{value:!0}),Da.initDimensionTypeSchemas=void 0;const Ba=Pe,La=ka;Da.initDimensionTypeSchemas=function(e,t){const i=Ba.StringNode.bind(void 0,t);e.register("dimension_type",(0,Ba.Mod)((0,Ba.ObjectNode)({ultrawarm:(0,Ba.BooleanNode)(),natural:(0,Ba.BooleanNode)(),piglin_safe:(0,Ba.BooleanNode)(),respawn_anchor_works:(0,Ba.BooleanNode)(),bed_works:(0,Ba.BooleanNode)(),has_raids:(0,Ba.BooleanNode)(),has_skylight:(0,Ba.BooleanNode)(),has_ceiling:(0,Ba.BooleanNode)(),coordinate_scale:(0,Ba.NumberNode)({min:1e-5,max:3e7}),ambient_light:(0,Ba.NumberNode)(),fixed_time:(0,Ba.Opt)((0,Ba.NumberNode)({integer:!0})),logical_height:(0,Ba.NumberNode)({integer:!0,min:0,max:4096}),effects:(0,Ba.Opt)(i({enum:["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]})),infiniburn:i({validator:"resource",params:{pool:"$tag/block"}}),min_y:(0,Ba.NumberNode)({integer:!0,min:-2048,max:2047}),height:(0,Ba.NumberNode)({integer:!0,min:0,max:4096})},{context:"dimension_type"}),(e=>({default:()=>La.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 Ma={};Object.defineProperty(Ma,"__esModule",{value:!0}),Ma.initItemModifierSchemas=void 0;const Ta=Pe,Ra=ka;Ma.initItemModifierSchemas=function(e,t){const i=Ta.Reference.bind(void 0,e),n=Ta.StringNode.bind(void 0,t);e.register("item_modifier",(0,Ta.ObjectOrList)(i("function"),{choiceContext:"function"}));const r={conditions:(0,Ta.Opt)((0,Ta.ListNode)(i("condition")))};e.register("function",(0,Ta.Mod)((0,Ta.ObjectNode)({function:n({validator:"resource",params:{pool:"loot_function_type"}}),[Ta.Switch]:[{push:"function"}],[Ta.Case]:(0,Ra.FunctionCases)(r)},{category:"function",context:"function"}),{default:()=>[{function:"minecraft:set_count",count:1}]}))};var $a={},ja={};Object.defineProperty(ja,"__esModule",{value:!0}),ja.LootFunctions=ja.LootConditions=ja.LootCopySources=ja.LootEntitySources=ja.LootTableTypes=void 0,ja.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]}]]),ja.LootEntitySources=new Map([["direct_killer",[3]],["killer",[5]],["killer_player",[5]],["this",[8]]]),ja.LootCopySources=new Map([["block_entity",[0]],["killer",[5]],["killer_player",[5]],["this",[8]]]),ja.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",[]]]),ja.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($a,"__esModule",{value:!0}),$a.initLootTableSchemas=void 0;const Ia=Pe,Pa=ja,za=ka;$a.initLootTableSchemas=function(e,t){const i=Ia.Reference.bind(void 0,e),n=Ia.StringNode.bind(void 0,t),r={conditions:(0,Ia.Opt)((0,Ia.ListNode)(i("loot_condition")))},o=s({functions:(0,Ia.Opt)((0,Ia.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 Pa.LootTableTypes){const e=[...a,...s];r.push({match:e=>e.getModel().get(new Ia.Path(["type"]))===t,node:n(o(e))})}return r.push({match:e=>!0,node:n(i)}),(0,Ia.SwitchNode)(r)}const c=a(Pa.LootConditions,"loot_condition_type",(e=>n({validator:"resource",params:{pool:e instanceof Array?e:"loot_condition_type"}}))),l=a(Pa.LootFunctions,"loot_function_type",(e=>n({validator:"resource",params:{pool:e instanceof Array?e:"loot_function_type"}}))),u=a(Pa.LootEntitySources,"entity_source",(e=>n({enum:e}))),d=a(Pa.LootCopySources,"copy_source",(e=>n({enum:e})));e.register("loot_table",(0,Ia.Mod)((0,Ia.ObjectNode)({type:(0,Ia.Opt)(n({validator:"resource",params:{pool:t.get("loot_context_type")}})),pools:(0,Ia.Opt)((0,Ia.ListNode)((0,Ia.Mod)((0,Ia.ObjectNode)(s({rolls:i("number_provider"),bonus_rolls:(0,Ia.Opt)(i("number_provider")),entries:(0,Ia.ListNode)(i("loot_entry"))},o),{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:(0,Ia.Opt)((0,Ia.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",(0,Ia.Mod)((0,Ia.ObjectNode)({type:n({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:(0,Ia.Opt)((0,Ia.Mod)((0,Ia.NumberNode)({integer:!0,min:1}),h)),quality:(0,Ia.Opt)((0,Ia.Mod)((0,Ia.NumberNode)({integer:!0}),h)),[Ia.Switch]:[{push:"type"}],[Ia.Case]:{"minecraft:alternatives":s({children:(0,Ia.ListNode)(i("loot_entry"))},o),"minecraft:dynamic":s({name:n()},o),"minecraft:group":s({children:(0,Ia.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:(0,Ia.ListNode)(i("loot_entry"))},o),"minecraft:tag":s({name:n({validator:"resource",params:{pool:"$tag/item"}}),expand:(0,Ia.Opt)((0,Ia.BooleanNode)())},o)}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),e.register("loot_function",(0,Ia.Mod)((0,Ia.ObjectNode)({function:l,[Ia.Switch]:[{push:"function"}],[Ia.Case]:(0,za.FunctionCases)(r,d,u)},{category:"function",context:"function"}),{default:()=>({function:"minecraft:set_count",count:1})})),e.register("loot_condition",(0,Ia.Mod)((0,Ia.ObjectNode)({condition:c,[Ia.Switch]:[{push:"condition"}],[Ia.Case]:(0,za.ConditionCases)(u)},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),e.register("attribute_modifier",(0,Ia.Mod)((0,Ia.ObjectNode)({attribute:n({validator:"resource",params:{pool:"attribute"}}),name:n(),amount:i("number_provider"),operation:n({enum:["addition","multiply_base","multiply_total"]}),slot:(0,Ia.StringOrList)(n({enum:"slot"}))},{context:"attribute_modifier"}),{default:()=>({attribute:"minecraft:generic.max_health",name:"",amount:1,operation:"addition",slot:"mainhand"})}))};var Ua={};Object.defineProperty(Ua,"__esModule",{value:!0}),Ua.initPackMcmetaSchemas=void 0;const Wa=Pe;Ua.initPackMcmetaSchemas=function(e,t){e.register("pack_mcmeta",(0,Wa.Mod)((0,Wa.ObjectNode)({pack:(0,Wa.Mod)((0,Wa.ObjectNode)({pack_format:(0,Wa.Mod)((0,Wa.NumberNode)({integer:!0,min:8,max:8}),{default:()=>8,canUpdate:(e,t)=>8!==t,update:()=>[{name:"pack_format",params:[8],newValue:8}]}),description:(0,Wa.Reference)(e,"text_component")}),{default:()=>({pack_format:8,description:""})})}),{default:()=>({pack:{pack_format:8,description:""}})}))};var Ha={};Object.defineProperty(Ha,"__esModule",{value:!0}),Ha.initPredicatesSchemas=void 0;const qa=Pe;Ha.initPredicatesSchemas=function(e,t){const i=qa.Reference.bind(void 0,e),n=qa.StringNode.bind(void 0,t),r=(0,qa.ChoiceNode)([{type:"string",node:n(),change:e=>"boolean"==typeof e||"number"==typeof e?e.toString():""},{type:"number",node:(0,qa.NumberNode)(),change:e=>"string"==typeof e?parseInt(e):0},{type:"object",node:(0,qa.ObjectNode)({min:(0,qa.Opt)((0,qa.NumberNode)({integer:!0})),max:(0,qa.Opt)((0,qa.NumberNode)({integer:!0}))}),change:e=>"number"==typeof e?{min:e,max:e}:{}},{type:"boolean",node:(0,qa.BooleanNode)(),change:e=>"true"===e||1===e}]);e.register("item_predicate",(0,qa.ObjectNode)({items:(0,qa.Opt)((0,qa.ListNode)(n({validator:"resource",params:{pool:"item"}}))),tag:(0,qa.Opt)(n({validator:"resource",params:{pool:"$tag/item"}})),count:i("int_bounds"),durability:i("int_bounds"),potion:(0,qa.Opt)(n({validator:"resource",params:{pool:"potion"}})),nbt:(0,qa.Opt)(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:(0,qa.Opt)((0,qa.ListNode)(i("enchantment_predicate")))},{context:"item"})),e.register("enchantment_predicate",(0,qa.ObjectNode)({enchantment:(0,qa.Opt)(n({validator:"resource",params:{pool:"enchantment"}})),levels:i("int_bounds")},{context:"enchantment"})),e.register("block_predicate",(0,qa.ObjectNode)({blocks:(0,qa.Opt)((0,qa.ListNode)(n({validator:"resource",params:{pool:"block"}}))),tag:(0,qa.Opt)(n({validator:"resource",params:{pool:"$tag/block"}})),nbt:(0,qa.Opt)(n({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:(0,qa.Opt)((0,qa.MapNode)(n(),r,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),e.register("fluid_predicate",(0,qa.ObjectNode)({fluid:(0,qa.Opt)(n({validator:"resource",params:{pool:"fluid"}})),tag:(0,qa.Opt)(n({validator:"resource",params:{pool:"$tag/fluid"}})),state:(0,qa.Opt)((0,qa.MapNode)(n(),r))},{context:"fluid"})),e.register("location_predicate",(0,qa.ObjectNode)({position:(0,qa.Opt)((0,qa.ObjectNode)({x:i("float_bounds"),y:i("float_bounds"),z:i("float_bounds")})),biome:(0,qa.Opt)(n({validator:"resource",params:{pool:"$worldgen/biome"}})),feature:(0,qa.Opt)(n({enum:t.get("worldgen/structure_feature").map((e=>e.slice(10)))})),dimension:(0,qa.Opt)(n({validator:"resource",params:{pool:"$dimension"}})),light:(0,qa.Opt)((0,qa.ObjectNode)({light:i("int_bounds")})),smokey:(0,qa.Opt)((0,qa.BooleanNode)()),block:(0,qa.Opt)(i("block_predicate")),fluid:(0,qa.Opt)(i("fluid_predicate"))},{context:"location"})),e.register("statistic_predicate",(0,qa.ObjectNode)({type:n({validator:"resource",params:{pool:"stat_type"}}),stat:n(),value:i("int_bounds"),[qa.Switch]:[{push:"type"}],[qa.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",(0,qa.ObjectNode)({gamemode:(0,qa.Opt)(n({enum:"gamemode"})),level:i("int_bounds"),advancements:(0,qa.Opt)((0,qa.MapNode)(n({validator:"resource",params:{pool:"$advancement"}}),(0,qa.ChoiceNode)([{type:"boolean",node:(0,qa.BooleanNode)(),change:e=>!0},{type:"object",node:(0,qa.MapNode)(n(),(0,qa.BooleanNode)())}]))),recipes:(0,qa.Opt)((0,qa.MapNode)(n({validator:"resource",params:{pool:"$recipe"}}),(0,qa.BooleanNode)())),stats:(0,qa.Opt)((0,qa.ListNode)(i("statistic_predicate"))),looking_at:(0,qa.Opt)(i("entity_predicate"))},{context:"player"})),e.register("status_effect_predicate",(0,qa.ObjectNode)({amplifier:i("int_bounds"),duration:i("int_bounds"),ambient:(0,qa.Opt)((0,qa.BooleanNode)()),visible:(0,qa.Opt)((0,qa.BooleanNode)())},{context:"status_effect"})),e.register("distance_predicate",(0,qa.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",(0,qa.ObjectNode)({type:(0,qa.Opt)(n({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),nbt:(0,qa.Opt)(n({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:(0,qa.Opt)(n({validator:"team"})),location:(0,qa.Opt)(i("location_predicate")),stepping_on:(0,qa.Opt)(i("location_predicate")),distance:(0,qa.Opt)(i("distance_predicate")),flags:(0,qa.Opt)((0,qa.ObjectNode)({is_on_fire:(0,qa.Opt)((0,qa.BooleanNode)()),is_sneaking:(0,qa.Opt)((0,qa.BooleanNode)()),is_sprinting:(0,qa.Opt)((0,qa.BooleanNode)()),is_swimming:(0,qa.Opt)((0,qa.BooleanNode)()),is_baby:(0,qa.Opt)((0,qa.BooleanNode)())})),equipment:(0,qa.Opt)((0,qa.MapNode)(n({enum:"slot"}),i("item_predicate"))),vehicle:(0,qa.Opt)(i("entity_predicate")),passenger:(0,qa.Opt)(i("entity_predicate")),targeted_entity:(0,qa.Opt)(i("entity_predicate")),player:(0,qa.Opt)(i("player_predicate")),lightning_bolt:(0,qa.Opt)((0,qa.ObjectNode)({blocks_set_on_fire:(0,qa.Opt)(i("int_bounds")),entity_struck:(0,qa.Opt)(i("entity_predicate"))})),fishing_hook:(0,qa.Opt)((0,qa.ObjectNode)({in_open_water:(0,qa.Opt)((0,qa.BooleanNode)())})),catType:(0,qa.Opt)(n({enum:"cat_texture"})),effects:(0,qa.Opt)((0,qa.MapNode)(n({validator:"resource",params:{pool:"mob_effect"}}),i("status_effect_predicate")))},{context:"entity"})),e.register("damage_source_predicate",(0,qa.ObjectNode)({is_explosion:(0,qa.Opt)((0,qa.BooleanNode)()),is_fire:(0,qa.Opt)((0,qa.BooleanNode)()),is_magic:(0,qa.Opt)((0,qa.BooleanNode)()),is_projectile:(0,qa.Opt)((0,qa.BooleanNode)()),is_lightning:(0,qa.Opt)((0,qa.BooleanNode)()),bypasses_armor:(0,qa.Opt)((0,qa.BooleanNode)()),bypasses_invulnerability:(0,qa.Opt)((0,qa.BooleanNode)()),bypasses_magic:(0,qa.Opt)((0,qa.BooleanNode)()),source_entity:(0,qa.Opt)(i("entity_predicate")),direct_entity:(0,qa.Opt)(i("entity_predicate"))},{context:"damage_source"})),e.register("damage_predicate",(0,qa.ObjectNode)({dealt:i("float_bounds"),taken:i("float_bounds"),blocked:(0,qa.Opt)((0,qa.BooleanNode)()),source_entity:(0,qa.Opt)(i("entity_predicate")),type:(0,qa.Opt)(i("damage_source_predicate"))},{context:"damage"}))};var Va={};Object.defineProperty(Va,"__esModule",{value:!0}),Va.initRecipeSchemas=void 0;const Ga=Pe;Va.initRecipeSchemas=function(e,t){const i=Ga.Reference.bind(void 0,e),n=Ga.StringNode.bind(void 0,t);e.register("recipe",(0,Ga.Mod)((0,Ga.ObjectNode)({type:n({validator:"resource",params:{pool:"recipe_serializer"}}),[Ga.Switch]:[{push:"type"}],[Ga.Case]:{"minecraft:crafting_shaped":{group:(0,Ga.Opt)(n({enum:"recipe_group",additional:!0})),pattern:(0,Ga.ListNode)(n()),key:(0,Ga.MapNode)(n(),i("recipe_ingredient")),result:i("recipe_result")},"minecraft:crafting_shapeless":{group:(0,Ga.Opt)(n()),ingredients:(0,Ga.ListNode)(i("recipe_ingredient")),result:i("recipe_result")},"minecraft:smelting":{group:(0,Ga.Opt)(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:(0,Ga.Opt)((0,Ga.NumberNode)()),cookingtime:(0,Ga.Opt)((0,Ga.Mod)((0,Ga.NumberNode)({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:(0,Ga.Opt)(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:(0,Ga.Opt)((0,Ga.NumberNode)()),cookingtime:(0,Ga.Opt)((0,Ga.Mod)((0,Ga.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:(0,Ga.Opt)(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:(0,Ga.Opt)((0,Ga.NumberNode)()),cookingtime:(0,Ga.Opt)((0,Ga.Mod)((0,Ga.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:(0,Ga.Opt)(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:(0,Ga.Opt)((0,Ga.NumberNode)()),cookingtime:(0,Ga.Opt)((0,Ga.Mod)((0,Ga.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:(0,Ga.Opt)(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),count:(0,Ga.NumberNode)({integer:!0})},"minecraft:smithing":{group:(0,Ga.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",(0,Ga.Mod)((0,Ga.ChoiceNode)([{type:"object",node:i("recipe_ingredient_object"),change:e=>e[0]},{type:"list",node:(0,Ga.ListNode)(i("recipe_ingredient_object")),change:e=>[e]}]),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_ingredient_object",(0,Ga.Mod)((0,Ga.ObjectNode)({item:(0,Ga.Opt)(n({validator:"resource",params:{pool:"item"}})),tag:(0,Ga.Opt)(n({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_result",(0,Ga.Mod)((0,Ga.ObjectNode)({item:n({validator:"resource",params:{pool:"item"}}),count:(0,Ga.Opt)((0,Ga.Mod)((0,Ga.NumberNode)({integer:!0}),{default:()=>1}))}),{default:()=>({item:"minecraft:stone"})}))};var Ka={};Object.defineProperty(Ka,"__esModule",{value:!0}),Ka.initTagsSchemas=void 0;const Xa=Pe;Ka.initTagsSchemas=function(e,t){const i=Xa.StringNode.bind(void 0,t),n=e=>(0,Xa.Mod)((0,Xa.ObjectNode)({replace:(0,Xa.Opt)((0,Xa.BooleanNode)()),values:(0,Xa.ListNode)((0,Xa.ChoiceNode)([{type:"string",node:i({validator:"resource",params:{pool:e,allowTag:!0}}),change:e=>e.id},{type:"object",node:(0,Xa.ObjectNode)({id:i({validator:"resource",params:{pool:e,allowTag:!0,allowUnknown:!0}}),required:(0,Xa.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 Ja={};Object.defineProperty(Ja,"__esModule",{value:!0}),Ja.initTextComponentSchemas=void 0;const Ya=Pe;Ja.initTextComponentSchemas=function(e,t){const i=Ya.Reference.bind(void 0,e),n=Ya.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",(0,Ya.Mod)((0,Ya.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:(0,Ya.NumberNode)(),change:e=>{const t=parseFloat(r(e));return isFinite(t)?t:e?1:0}},{type:"boolean",node:(0,Ya.BooleanNode)(),change:e=>{const t=r(e);return"true"===t||"false"===t?"true"===t:!!t}}],{context:"text_component"}),{default:()=>({text:""})}));const o={color:(0,Ya.Opt)(n()),font:(0,Ya.Opt)(n()),bold:(0,Ya.Opt)((0,Ya.BooleanNode)()),italic:(0,Ya.Opt)((0,Ya.BooleanNode)()),underlined:(0,Ya.Opt)((0,Ya.BooleanNode)()),strikethrough:(0,Ya.Opt)((0,Ya.BooleanNode)()),obfuscated:(0,Ya.Opt)((0,Ya.BooleanNode)()),insertion:(0,Ya.Opt)(n()),clickEvent:(0,Ya.Opt)((0,Ya.ObjectNode)({action:n({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[Ya.Switch]:[{push:"action"}],[Ya.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:(0,Ya.Opt)((0,Ya.ObjectNode)({action:n({enum:["show_text","show_item","show_entity"]}),[Ya.Switch]:[{push:"action"}],[Ya.Case]:{show_text:{value:(0,Ya.Opt)(i("text_component")),contents:(0,Ya.Opt)(i("text_component"))},show_item:{value:(0,Ya.Opt)(n({validator:"nbt",params:{module:"util::InventoryItem"}})),contents:(0,Ya.Opt)((0,Ya.ObjectNode)({id:n({validator:"resource",params:{pool:"item"}}),count:(0,Ya.Opt)((0,Ya.NumberNode)({integer:!0})),tag:(0,Ya.Opt)(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"id"}]}}}))}))},show_entity:{value:(0,Ya.Opt)((0,Ya.ObjectNode)({name:(0,Ya.Opt)(n()),type:(0,Ya.Opt)(n()),id:(0,Ya.Opt)(n())})),contents:(0,Ya.Opt)((0,Ya.Mod)((0,Ya.ObjectNode)({name:(0,Ya.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:(0,Ya.Opt)(i("text_component_list"))};e.register("text_component_object",(0,Ya.Mod)((0,Ya.ChoiceNode)([{type:"text",match:e=>"object"==typeof e,change:e=>({text:""}),priority:-1,node:(0,Ya.ObjectNode)(s({text:n()},o))},{type:"translation",match:e=>void 0!==(null==e?void 0:e.translate),change:e=>({translate:""}),node:(0,Ya.ObjectNode)(s({translate:n(),with:(0,Ya.Opt)(i("text_component_list"))},o))},{type:"score",match:e=>void 0!==(null==e?void 0:e.score),change:e=>({score:{}}),node:(0,Ya.ObjectNode)(s({score:(0,Ya.ObjectNode)({name:n({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:n({validator:"objective"}),value:(0,Ya.Opt)(n())})},o))},{type:"selector",match:e=>void 0!==(null==e?void 0:e.selector),change:e=>({selector:""}),node:(0,Ya.ObjectNode)(s({selector:n({validator:"entity",params:{amount:"multiple",type:"entities"}}),separator:(0,Ya.Opt)(i("text_component"))},o))},{type:"keybind",match:e=>void 0!==(null==e?void 0:e.keybind),change:e=>({keybind:""}),node:(0,Ya.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:(0,Ya.ObjectNode)(s({nbt:n({validator:"nbt_path"}),block:(0,Ya.Opt)(n({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:(0,Ya.Opt)(n({validator:"entity",params:{amount:"multiple",type:"entities"}})),storage:(0,Ya.Opt)(n({validator:"resource",params:{pool:"$storage"}})),interpret:(0,Ya.Opt)((0,Ya.BooleanNode)()),separator:(0,Ya.Opt)(i("text_component"))},o))}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),e.register("text_component_list",(0,Ya.Mod)((0,Ya.ListNode)(i("text_component")),{default:()=>[{text:""}]}))};var Za={},Qa={};Object.defineProperty(Qa,"__esModule",{value:!0}),Qa.initBiomeSchemas=void 0;const es=Pe;Qa.initBiomeSchemas=function(e,t){const i=es.StringNode.bind(void 0,t);e.register("biome",(0,es.Mod)((0,es.ObjectNode)({temperature:(0,es.NumberNode)(),downfall:(0,es.NumberNode)(),precipitation:i({enum:["none","rain","snow"]}),temperature_modifier:(0,es.Opt)(i({enum:["none","frozen"]})),category:i({enum:"biome_category"}),creature_spawn_probability:(0,es.Opt)((0,es.NumberNode)({min:0,max:1})),effects:(0,es.ObjectNode)({sky_color:(0,es.NumberNode)({color:!0}),fog_color:(0,es.NumberNode)({color:!0}),water_color:(0,es.NumberNode)({color:!0}),water_fog_color:(0,es.NumberNode)({color:!0}),grass_color:(0,es.Opt)((0,es.NumberNode)({color:!0})),foliage_color:(0,es.Opt)((0,es.NumberNode)({color:!0})),grass_color_modifier:(0,es.Opt)(i({enum:["none","dark_forest","swamp"]})),ambient_sound:(0,es.Opt)(i()),mood_sound:(0,es.Opt)((0,es.ObjectNode)({sound:i(),tick_delay:(0,es.NumberNode)({integer:!0}),block_search_extent:(0,es.NumberNode)({integer:!0}),offset:(0,es.NumberNode)()})),additions_sound:(0,es.Opt)((0,es.ObjectNode)({sound:i(),tick_chance:(0,es.NumberNode)({min:0,max:1})})),music:(0,es.Opt)((0,es.ObjectNode)({sound:i(),min_delay:(0,es.NumberNode)({integer:!0,min:0}),max_delay:(0,es.NumberNode)({integer:!0,min:0}),replace_current_music:(0,es.BooleanNode)()})),particle:(0,es.Opt)((0,es.ObjectNode)({options:(0,es.ObjectNode)({type:i()}),probability:(0,es.NumberNode)({min:0,max:1})}))}),spawners:(0,es.MapNode)(i({enum:["monster","creature","ambient","axolotls","underground_water_creature","water_creature","water_ambient","misc"]}),(0,es.Mod)((0,es.ListNode)((0,es.ObjectNode)({type:i({validator:"resource",params:{pool:"entity_type"}}),weight:(0,es.NumberNode)({integer:!0}),minCount:(0,es.NumberNode)({integer:!0}),maxCount:(0,es.NumberNode)({integer:!0})})),{category:()=>"pool",default:()=>[{type:"minecraft:bat",weight:1}]})),spawn_costs:(0,es.MapNode)(i({validator:"resource",params:{pool:"entity_type"}}),(0,es.Mod)((0,es.ObjectNode)({energy_budget:(0,es.NumberNode)(),charge:(0,es.NumberNode)()},{category:"function"}),{default:()=>({energy_budget:.12,charge:1})})),carvers:(0,es.MapNode)(i({enum:["air","liquid"]}),(0,es.Mod)((0,es.ListNode)(i({validator:"resource",params:{pool:"$worldgen/configured_carver"}})),{default:()=>["minecraft:cave"]})),features:(0,es.ListNode)((0,es.Mod)((0,es.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 ts={};Object.defineProperty(ts,"__esModule",{value:!0}),ts.initCarverSchemas=void 0;const is=Pe,ns=ka;ts.initCarverSchemas=function(e,t){const i=is.Reference.bind(void 0,e),n=is.StringNode.bind(void 0,t),r={vertical_rotation:(0,ns.FloatProvider)(),shape:(0,is.ObjectNode)({distance_factor:(0,ns.FloatProvider)(),thickness:(0,ns.FloatProvider)(),width_smoothness:(0,is.NumberNode)({integer:!0,min:0}),horizontal_radius_factor:(0,ns.FloatProvider)(),vertical_radius_default_factor:(0,is.NumberNode)(),vertical_radius_center_factor:(0,is.NumberNode)()})},o={horizontal_radius_multiplier:(0,ns.FloatProvider)(),vertical_radius_multiplier:(0,ns.FloatProvider)(),floor_level:(0,ns.FloatProvider)({min:-1,max:1})};e.register("configured_carver",(0,is.Mod)((0,is.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/carver"}}),config:(0,is.ObjectNode)({probability:(0,is.NumberNode)({min:0,max:1}),y:i("height_provider"),yScale:(0,ns.FloatProvider)(),lava_level:i("vertical_anchor"),debug_settings:(0,is.Opt)((0,is.ObjectNode)({debug_mode:(0,is.Opt)((0,is.BooleanNode)()),air_state:(0,is.Opt)(i("block_state")),water_state:(0,is.Opt)(i("block_state")),lava_state:(0,is.Opt)(i("block_state")),barrier_state:(0,is.Opt)(i("block_state"))})),[is.Switch]:["pop",{push:"type"}],[is.Case]:{"minecraft:canyon":r,"minecraft:cave":o,"minecraft:nether_cave":o}})},{context:"carver"}),{default:()=>({type:"minecraft:cave",config:{probability:.1}})}))};var rs={};Object.defineProperty(rs,"__esModule",{value:!0}),rs.initDecoratorSchemas=void 0;const os=Pe,as=ka;rs.initDecoratorSchemas=function(e,t){const i=os.Reference.bind(void 0,e),n=os.StringNode.bind(void 0,t);e.register("decorator",(0,os.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/placement_modifier_type"}}),[os.Switch]:[{push:"type"}],[os.Case]:{"minecraft:block_predicate_filter":{predicate:i("block_predicate_worldgen")},"minecraft:carving_mask":{step:n({enum:"generation_step"})},"minecraft:rarity_filter":{chance:(0,os.NumberNode)({integer:!0,min:0})},"minecraft:count":{count:(0,as.IntProvider)({min:0,max:256})},"minecraft:count_on_every_layer":{count:(0,as.IntProvider)({min:0,max:256})},"minecraft:noise_threshold_count":{noise_level:(0,os.NumberNode)(),below_noise:(0,os.NumberNode)({integer:!0}),above_noise:(0,os.NumberNode)({integer:!0})},"minecraft:noise_based_count":{noise_to_count_ratio:(0,os.NumberNode)({integer:!0}),noise_factor:(0,os.NumberNode)(),noise_offset:(0,os.Opt)((0,os.NumberNode)())},"minecraft:environment_scan":{direction_of_search:n({enum:["up","down"]}),max_steps:(0,os.NumberNode)({integer:!0,min:1,max:32}),target_condition:i("block_predicate_worldgen"),allowed_search_condition:(0,os.Opt)(i("block_predicate_worldgen"))},"minecraft:heightmap":{heightmap:n({enum:"heightmap_type"})},"minecraft:height_range":{height:i("height_provider")},"minecraft:random_offset":{xz_spread:(0,as.IntProvider)({min:-16,max:16}),y_spread:(0,as.IntProvider)({min:-16,max:16})},"minecraft:surface_relative_threshold_filter":{heightmap:n({enum:"heightmap_type"}),min_inclusive:(0,os.Opt)((0,os.NumberNode)({integer:!0})),max_inclusive:(0,os.Opt)((0,os.NumberNode)({integer:!0}))},"minecraft:surface_water_depth_filter":{max_water_depth:(0,os.NumberNode)({integer:!0})}}},{context:"decorator",category:"predicate"}))};var ss={},cs={};Object.defineProperty(cs,"__esModule",{value:!0}),cs.initProcessorListSchemas=cs.Processors=void 0;const ls=Pe;cs.initProcessorListSchemas=function(e,t){const i=ls.Reference.bind(void 0,e),n=ls.StringNode.bind(void 0,t);cs.Processors=(0,ls.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",(0,ls.Mod)((0,ls.ObjectNode)({processors:(0,ls.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",(0,ls.Mod)((0,ls.ObjectNode)({processor_type:n({validator:"resource",params:{pool:"worldgen/structure_processor"}}),[ls.Switch]:[{push:"processor_type"}],[ls.Case]:{"minecraft:block_age":{mossiness:(0,ls.NumberNode)()},"minecraft:block_ignore":{blocks:(0,ls.ListNode)(i("block_state"))},"minecraft:block_rot":{integrity:(0,ls.NumberNode)({min:0,max:1})},"minecraft:gravity":{heightmap:n({enum:"heightmap_type"}),offset:(0,ls.NumberNode)({integer:!0})},"minecraft:protected_blocks":{value:n({validator:"resource",params:{pool:"$tag/block"}})},"minecraft:rule":{rules:(0,ls.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",(0,ls.Mod)((0,ls.ObjectNode)({position_predicate:(0,ls.Opt)(i("pos_rule_test")),location_predicate:i("rule_test"),input_predicate:i("rule_test"),output_state:i("block_state"),output_nbt:(0,ls.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:(0,ls.Opt)((0,ls.NumberNode)({min:0,max:255,integer:!0})),max_dist:(0,ls.Opt)((0,ls.NumberNode)({min:0,max:255,integer:!0})),min_chance:(0,ls.Opt)((0,ls.NumberNode)({min:0,max:1})),max_chance:(0,ls.Opt)((0,ls.NumberNode)({min:0,max:1}))};e.register("pos_rule_test",(0,ls.ObjectNode)({predicate_type:n({validator:"resource",params:{pool:"pos_rule_test"}}),[ls.Switch]:[{push:"predicate_type"}],[ls.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",(0,ls.ObjectNode)({predicate_type:n({validator:"resource",params:{pool:"rule_test"}}),[ls.Switch]:[{push:"predicate_type"}],[ls.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:(0,ls.NumberNode)({min:0,max:1})},"minecraft:random_blockstate_match":{block_state:i("block_state"),probability:(0,ls.NumberNode)({min:0,max:1})},"minecraft:tag_match":{tag:n({validator:"resource",params:{pool:"$tag/block"}})}}},{context:"rule_test",disableSwitchContext:!0}))},Object.defineProperty(ss,"__esModule",{value:!0}),ss.initFeatureSchemas=void 0;const us=Pe,ds=ka,hs=cs;ss.initFeatureSchemas=function(e,t){const i=us.Reference.bind(void 0,e),n=us.StringNode.bind(void 0,t),r=(0,us.ChoiceNode)([{type:"string",node:n({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},{type:"object",node:i("configured_feature")}],{choiceContext:"feature"}),o=(0,us.ChoiceNode)([{type:"string",node:n({validator:"resource",params:{pool:"$worldgen/placed_feature"}})},{type:"object",node:i("placed_feature")}],{choiceContext:"placed_feature"}),a={tries:(0,us.Opt)((0,us.NumberNode)({integer:!0,min:1})),xz_spread:(0,us.Opt)((0,us.NumberNode)({integer:!0,min:0})),y_spread:(0,us.Opt)((0,us.NumberNode)({integer:!0,min:0})),feature:o},l={state:i("block_state"),radius:(0,ds.IntProvider)({min:0,max:8}),half_height:(0,us.NumberNode)({integer:!0,min:0,max:4}),targets:(0,us.ListNode)(i("block_state"))},u={cap_provider:i("block_state_provider"),stem_provider:i("block_state_provider"),foliage_radius:(0,us.Opt)((0,us.NumberNode)({integer:!0}))},d=(0,us.ObjectNode)({target:i("rule_test"),state:i("block_state")}),h={size:(0,us.NumberNode)({integer:!0,min:0,max:64}),discard_chance_on_air_exposure:(0,us.NumberNode)({min:0,max:1}),targets:(0,us.ListNode)(d)},p={surface:n({enum:"cave_surface"}),depth:(0,ds.IntProvider)({min:1,max:128}),vertical_range:(0,us.NumberNode)({integer:!0,min:1,max:256}),extra_bottom_block_chance:(0,us.NumberNode)({min:0,max:1}),extra_edge_column_chance:(0,us.NumberNode)({min:0,max:1}),vegetation_chance:(0,us.NumberNode)({min:0,max:1}),xz_radius:(0,ds.IntProvider)(),replaceable:n({validator:"resource",params:{pool:"$tag/block"}}),ground_state:i("block_state_provider"),vegetation_feature:o};e.register("configured_feature",(0,us.Mod)((0,us.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/feature"}}),config:(0,us.ObjectNode)({[us.Switch]:["pop",{push:"type"}],[us.Case]:{"minecraft:bamboo":{probability:(0,us.NumberNode)({min:0,max:1})},"minecraft:basalt_columns":{reach:(0,ds.IntProvider)({min:0,max:3}),height:(0,ds.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:(0,us.BooleanNode)(),layers:(0,us.ListNode)((0,us.ObjectNode)({height:(0,ds.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:(0,ds.IntProvider)({min:0,max:16}),rim_size:(0,ds.IntProvider)({min:0,max:16})},"minecraft:disk":l,"minecraft:dripstone_cluster":{floor_to_ceiling_search_range:(0,us.NumberNode)({integer:!0,min:1,max:512}),height:(0,ds.IntProvider)({min:0,max:128}),radius:(0,ds.IntProvider)({min:0,max:128}),max_stalagmite_stalactite_height_diff:(0,us.NumberNode)({integer:!0,min:0,max:64}),height_deviation:(0,us.NumberNode)({integer:!0,min:1,max:64}),dripstone_block_layer_thickness:(0,ds.IntProvider)({min:0,max:128}),density:(0,ds.FloatProvider)({min:0,max:2}),wetness:(0,ds.FloatProvider)({min:0,max:2}),chance_of_dripstone_column_at_max_distance_from_center:(0,us.NumberNode)({min:0,max:1}),max_distance_from_edge_affecting_chance_of_dripstone_column:(0,us.NumberNode)({integer:!0,min:1,max:64}),max_distance_from_center_affecting_height_bias:(0,us.NumberNode)({integer:!0,min:1,max:64})},"minecraft:end_gateway":{exact:(0,us.BooleanNode)(),exit:(0,us.Opt)(i("block_pos"))},"minecraft:end_spike":{crystal_invulnerable:(0,us.Opt)((0,us.BooleanNode)()),crystal_beam_target:(0,us.Opt)(i("block_pos")),spikes:(0,us.ListNode)((0,us.ObjectNode)({centerX:(0,us.Opt)((0,us.NumberNode)({integer:!0})),centerZ:(0,us.Opt)((0,us.NumberNode)({integer:!0})),radius:(0,us.Opt)((0,us.NumberNode)({integer:!0})),height:(0,us.Opt)((0,us.NumberNode)({integer:!0})),guarded:(0,us.Opt)((0,us.BooleanNode)())}))},"minecraft:fill_layer":{state:i("block_state"),height:(0,us.NumberNode)({integer:!0,min:0,max:255})},"minecraft:flower":a,"minecraft:forest_rock":{state:i("block_state")},"minecraft:fossil":{max_empty_corners_allowed:(0,us.NumberNode)({integer:!0,min:0,max:7}),fossil_structures:(0,us.ListNode)(n({validator:"resource",params:{pool:"$structure"}})),overlay_structures:(0,us.ListNode)(n({validator:"resource",params:{pool:"$structure"}})),fossil_processors:hs.Processors,overlay_processors:hs.Processors},"minecraft:geode":{blocks:(0,us.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:(0,us.ListNode)(i("block_state")),cannot_replace:n({validator:"resource",params:{pool:"$tag/block"}}),invalid_blocks:n({validator:"resource",params:{pool:"$tag/block"}})}),layers:(0,us.ObjectNode)({filling:(0,us.Opt)((0,us.NumberNode)({min:.01,max:50})),inner_layer:(0,us.Opt)((0,us.NumberNode)({min:.01,max:50})),middle_layer:(0,us.Opt)((0,us.NumberNode)({min:.01,max:50})),outer_layer:(0,us.Opt)((0,us.NumberNode)({min:.01,max:50}))}),crack:(0,us.ObjectNode)({generate_crack_chance:(0,us.Opt)((0,us.NumberNode)({min:0,max:1})),base_crack_size:(0,us.Opt)((0,us.NumberNode)({min:0,max:5})),crack_point_offset:(0,us.Opt)((0,us.NumberNode)({min:0,max:10}))}),noise_multiplier:(0,us.Opt)((0,us.NumberNode)({min:0,max:1})),use_potential_placements_chance:(0,us.Opt)((0,us.NumberNode)({min:0,max:1})),use_alternate_layer0_chance:(0,us.Opt)((0,us.NumberNode)({min:0,max:1})),placements_require_layer0_alternate:(0,us.Opt)((0,us.BooleanNode)()),outer_wall_distance:(0,us.Opt)((0,ds.IntProvider)({min:1,max:20})),distribution_points:(0,us.Opt)((0,ds.IntProvider)({min:1,max:20})),point_offset:(0,us.Opt)((0,ds.IntProvider)({min:0,max:10})),min_gen_offset:(0,us.Opt)((0,us.NumberNode)({integer:!0})),max_gen_offset:(0,us.Opt)((0,us.NumberNode)({integer:!0})),invalid_blocks_threshold:(0,us.NumberNode)({integer:!0})},"minecraft:glow_lichen":{search_range:(0,us.Opt)((0,us.NumberNode)({min:1,max:64,integer:!0})),chance_of_spreading:(0,us.Opt)((0,us.NumberNode)({min:0,max:1})),can_place_on_floor:(0,us.Opt)((0,us.BooleanNode)()),can_place_on_ceiling:(0,us.Opt)((0,us.BooleanNode)()),can_place_on_wall:(0,us.Opt)((0,us.BooleanNode)()),can_be_placed_on:(0,us.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:(0,us.Opt)((0,us.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:(0,us.Opt)((0,us.NumberNode)({integer:!0,min:1,max:512})),column_radius:(0,ds.IntProvider)({min:0,max:60}),height_scale:(0,ds.FloatProvider)({min:0,max:20}),max_column_radius_to_cave_height_ratio:(0,us.NumberNode)({min:0,max:1}),stalactite_bluntness:(0,ds.FloatProvider)({min:.1,max:10}),stalagmite_bluntness:(0,ds.FloatProvider)({min:.1,max:10}),wind_speed:(0,ds.FloatProvider)({min:0,max:2}),min_radius_for_wind:(0,us.NumberNode)({integer:!0,min:0,max:100}),min_bluntness_for_wind:(0,us.NumberNode)({min:0,max:5})},"minecraft:nether_forest_vegetation":{state_provider:i("block_state_provider"),spread_width:(0,us.NumberNode)({integer:!0,min:1}),spread_height:(0,us.NumberNode)({integer:!0,min:1})},"minecraft:netherrack_replace_blobs":{state:i("block_state"),target:i("block_state"),radius:(0,ds.IntProvider)({min:0,max:12})},"minecraft:no_bonemeal_flower":a,"minecraft:ore":h,"minecraft:pointed_dripstone":{chance_of_taller_dripstone:(0,us.Opt)((0,us.NumberNode)({min:0,max:1})),chance_of_directional_spread:(0,us.Opt)((0,us.NumberNode)({min:0,max:1})),chance_of_spread_radius2:(0,us.Opt)((0,us.NumberNode)({min:0,max:1})),chance_of_spread_radius3:(0,us.Opt)((0,us.NumberNode)({min:0,max:1}))},"minecraft:random_patch":a,"minecraft:random_boolean_selector":{feature_false:o,feature_true:o},"minecraft:random_selector":{features:(0,us.ListNode)((0,us.ObjectNode)({chance:(0,us.NumberNode)({min:0,max:1}),feature:o})),default:o},"minecraft:replace_single_block":{targets:(0,us.ListNode)(d)},"minecraft:root_system":{required_vertical_space_for_tree:(0,us.NumberNode)({integer:!0,min:1,max:64}),root_radius:(0,us.NumberNode)({integer:!0,min:1,max:64}),root_placement_attempts:(0,us.NumberNode)({integer:!0,min:1,max:256}),root_column_max_height:(0,us.NumberNode)({integer:!0,min:1,max:4096}),hanging_root_radius:(0,us.NumberNode)({integer:!0,min:1,max:64}),hanging_roots_vertical_span:(0,us.NumberNode)({integer:!0,min:0,max:16}),hanging_root_placement_attempts:(0,us.NumberNode)({integer:!0,min:0,max:256}),allowed_vertical_water_for_tree:(0,us.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:(0,ds.IntProvider)({min:0,max:256})},"minecraft:seagrass":{probability:(0,us.NumberNode)({min:0,max:1})},"minecraft:simple_block":{to_place:i("block_state_provider")},"minecraft:simple_random_selector":{features:(0,us.ListNode)(o)},"minecraft:spring_feature":{state:i("fluid_state"),rock_count:(0,us.NumberNode)({integer:!0}),hole_count:(0,us.NumberNode)({integer:!0}),requires_block_below:(0,us.BooleanNode)(),valid_blocks:(0,us.ListNode)(n({validator:"resource",params:{pool:"block"}}))},"minecraft:tree":{ignore_vines:(0,us.Opt)((0,us.BooleanNode)()),force_dirt:(0,us.Opt)((0,us.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:(0,us.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/trunk_placer_type"}}),base_height:(0,us.NumberNode)({integer:!0,min:0,max:32}),height_rand_a:(0,us.NumberNode)({integer:!0,min:0,max:24}),height_rand_b:(0,us.NumberNode)({integer:!0,min:0,max:24}),[us.Switch]:[{push:"type"}],[us.Case]:{"minecraft:bending_trunk_placer":{bend_length:(0,ds.IntProvider)({min:1,max:64}),min_height_for_leaves:(0,us.Opt)((0,us.NumberNode)({integer:!0,min:1}))}}},{context:"trunk_placer"}),foliage_placer:(0,us.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/foliage_placer_type"}}),radius:(0,ds.IntProvider)({min:0,max:16}),offset:(0,ds.IntProvider)({min:0,max:16}),[us.Switch]:[{push:"type"}],[us.Case]:{"minecraft:blob_foliage_placer":{height:(0,us.NumberNode)({integer:!0,min:0,max:16})},"minecraft:bush_foliage_placer":{height:(0,us.NumberNode)({integer:!0,min:0,max:16})},"minecraft:fancy_foliage_placer":{height:(0,us.NumberNode)({integer:!0,min:0,max:16})},"minecraft:jungle_foliage_placer":{height:(0,us.NumberNode)({integer:!0,min:0,max:16})},"minecraft:mega_pine_foliage_placer":{crown_height:(0,ds.IntProvider)({min:0,max:24})},"minecraft:pine_foliage_placer":{height:(0,ds.IntProvider)({min:0,max:24})},"minecraft:random_spread_foliage_placer":{foliage_height:(0,ds.IntProvider)({min:1,max:512}),leaf_placement_attempts:(0,us.NumberNode)({integer:!0,min:0,max:256})},"minecraft:spruce_foliage_placer":{trunk_height:(0,ds.IntProvider)({min:0,max:24})}}},{context:"foliage_placer",disableSwitchContext:!0}),decorators:(0,us.ListNode)((0,us.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/tree_decorator_type"}}),[us.Switch]:[{push:"type"}],[us.Case]:{"minecraft:alter_ground":{provider:i("block_state_provider")},"minecraft:beehive":{probability:(0,us.NumberNode)({min:0,max:1})},"minecraft:cocoa":{probability:(0,us.NumberNode)({min:0,max:1})}}},{context:"tree_decorator"}))},"minecraft:twisting_vines":{spread_width:(0,us.NumberNode)({integer:!0,min:1}),spread_height:(0,us.NumberNode)({integer:!0,min:1}),max_height:(0,us.NumberNode)({integer:!0,min:1})},"minecraft:underwater_magma":{floor_search_range:(0,us.NumberNode)({integer:!0,min:0,max:512}),placement_radius_around_floor:(0,us.NumberNode)({integer:!0,min:0,max:64}),placement_probability_per_valid_position:(0,us.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",(0,us.Mod)((0,us.ObjectNode)({feature:r,placement:(0,us.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",(0,us.Mod)((0,us.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/feature_size_type"}}),min_clipped_height:(0,us.Opt)((0,us.NumberNode)({min:0,max:80})),[us.Switch]:[{push:"type"}],[us.Case]:{"minecraft:two_layers_feature_size":{limit:(0,us.Opt)((0,us.NumberNode)({integer:!0,min:0,max:81})),lower_size:(0,us.Opt)((0,us.NumberNode)({integer:!0,min:0,max:16})),upper_size:(0,us.Opt)((0,us.NumberNode)({integer:!0,min:0,max:16}))},"minecraft:three_layers_feature_size":{limit:(0,us.Opt)((0,us.NumberNode)({integer:!0,min:0,max:80})),upper_limit:(0,us.Opt)((0,us.NumberNode)({integer:!0,min:0,max:80})),lower_size:(0,us.Opt)((0,us.NumberNode)({integer:!0,min:0,max:16})),middle_size:(0,us.Opt)((0,us.NumberNode)({integer:!0,min:0,max:16})),upper_size:(0,us.Opt)((0,us.NumberNode)({integer:!0,min:0,max:16}))}}},{disableSwitchContext:!0}),{default:()=>({type:"minecraft:two_layers_feature_size"})}));const m={seed:(0,us.NumberNode)({integer:!0}),noise:i("noise_parameters"),scale:(0,us.Mod)((0,us.NumberNode)({min:Number.MIN_VALUE}),{default:()=>1})};e.register("block_state_provider",(0,us.Mod)((0,us.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/block_state_provider_type"}}),[us.Switch]:[{push:"type"}],[us.Case]:{"minecraft:dual_noise_provider":c(s({},m),{variety:(0,ds.InclusiveRange)({integer:!0,min:1,max:64}),slow_noise:i("noise_parameters"),slow_scale:(0,us.Mod)((0,us.NumberNode)({min:Number.MIN_VALUE}),{default:()=>1}),states:(0,us.ListNode)(i("block_state"))}),"minecraft:noise_threshold_provider":c(s({},m),{threshold:(0,us.NumberNode)({min:-1,max:1}),high_chance:(0,us.NumberNode)({min:0,max:1}),default_state:i("block_state"),low_states:(0,us.ListNode)(i("block_state")),high_states:(0,us.ListNode)(i("block_state"))}),"minecraft:noise_provider":c(s({},m),{states:(0,us.ListNode)(i("block_state"))}),"minecraft:randomized_int_state_provider":{property:n(),values:(0,ds.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:(0,us.ListNode)((0,us.Mod)((0,us.ObjectNode)({weight:(0,us.NumberNode)({integer:!0,min:1}),data:i("block_state")}),{default:()=>({data:{}})}))}}},{context:"block_state_provider"}),{default:()=>({type:"minecraft:simple_state_provider"})}));const f={offset:(0,us.Opt)((0,us.ListNode)((0,us.NumberNode)({integer:!0,min:-16,max:16}),{minLength:3,maxLength:3}))};e.register("block_predicate_worldgen",(0,us.Mod)((0,us.ObjectNode)({type:n({validator:"resource",params:{pool:"block_predicate_type"}}),[us.Switch]:[{push:"type"}],[us.Case]:{"minecraft:all_of":{predicates:(0,us.ListNode)(i("block_predicate_worldgen"))},"minecraft:any_of":{predicates:(0,us.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:(0,us.ListNode)(n({validator:"resource",params:{pool:"block"}}))}),"minecraft:matching_fluids":c(s({},f),{fluids:(0,us.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 ps={};Object.defineProperty(ps,"__esModule",{value:!0}),ps.initNoiseSettingsSchemas=void 0;const ms=Pe,fs=ka;ps.initNoiseSettingsSchemas=function(e,t){const i=ms.Reference.bind(void 0,e),n=ms.StringNode.bind(void 0,t);e.register("noise_settings",(0,ms.Mod)((0,ms.ObjectNode)({sea_level:(0,ms.NumberNode)({integer:!0}),disable_mob_generation:(0,ms.BooleanNode)(),noise_caves_enabled:(0,ms.BooleanNode)(),noodle_caves_enabled:(0,ms.BooleanNode)(),aquifers_enabled:(0,ms.BooleanNode)(),ore_veins_enabled:(0,ms.BooleanNode)(),legacy_random_source:(0,ms.BooleanNode)(),default_block:i("block_state"),default_fluid:i("block_state"),noise:(0,ms.ObjectNode)({min_y:(0,ms.NumberNode)({integer:!0,min:-2048,max:2047}),height:(0,ms.NumberNode)({integer:!0,min:0,max:4096}),size_horizontal:(0,ms.NumberNode)({integer:!0}),size_vertical:(0,ms.NumberNode)({integer:!0}),island_noise_override:(0,ms.Opt)((0,ms.BooleanNode)()),amplified:(0,ms.Opt)((0,ms.BooleanNode)()),large_biomes:(0,ms.Opt)((0,ms.BooleanNode)()),sampling:(0,ms.ObjectNode)({xz_scale:(0,ms.NumberNode)(),y_scale:(0,ms.NumberNode)(),xz_factor:(0,ms.NumberNode)(),y_factor:(0,ms.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:()=>fs.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",(0,ms.ObjectNode)({target:(0,ms.NumberNode)(),size:(0,ms.NumberNode)({integer:!0,min:0}),offset:(0,ms.NumberNode)({integer:!0})})),e.register("generator_structures",(0,ms.ObjectNode)({stronghold:(0,ms.Opt)((0,ms.ObjectNode)({distance:(0,ms.NumberNode)({integer:!0,min:0,max:1023}),spread:(0,ms.NumberNode)({integer:!0,min:0,max:1023}),count:(0,ms.NumberNode)({integer:!0,min:1,max:4095})})),structures:(0,ms.MapNode)(n({validator:"resource",params:{pool:"worldgen/structure_feature"}}),(0,ms.Mod)((0,ms.ObjectNode)({spacing:(0,ms.NumberNode)({integer:!0,min:0,max:4096}),separation:(0,ms.Mod)((0,ms.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:(0,ms.NumberNode)({integer:!0,min:0})},{context:"generator_structure"}),{default:()=>({spacing:10,separation:5,salt:0})}))})),e.register("generator_layer",(0,ms.Mod)((0,ms.ObjectNode)({block:n({validator:"resource",params:{pool:"block"}}),height:(0,ms.NumberNode)({integer:!0,min:1})}),{default:()=>({block:"minecraft:stone",height:1})})),e.register("terrain_shaper",(0,ms.Mod)((0,ms.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",(0,ms.Mod)((0,ms.ChoiceNode)([{type:"number",node:(0,ms.NumberNode)()},{type:"object",node:(0,ms.ObjectNode)({coordinate:(0,ms.Mod)(n({enum:["continents","erosion","weirdness","ridges"]}),{default:()=>"continents"}),points:(0,ms.ListNode)((0,ms.ObjectNode)({location:(0,ms.NumberNode)(),derivative:(0,ms.NumberNode)(),value:i("terrain_spline")}))},{category:"function"})}],{context:"terrain_spline",choiceContext:"terrain_spline"}),{default:()=>0}))};var gs={};Object.defineProperty(gs,"__esModule",{value:!0}),gs.initStructureFeatureSchemas=void 0;const _s=Pe;gs.initStructureFeatureSchemas=function(e,t){const i=_s.StringNode.bind(void 0,t),n=_s.Reference.bind(void 0,e),r={start_pool:i({validator:"resource",params:{pool:"$worldgen/template_pool"}}),size:(0,_s.NumberNode)({integer:!0})};e.register("configured_structure_feature",(0,_s.Mod)((0,_s.ObjectNode)({type:i({validator:"resource",params:{pool:"worldgen/structure_feature"}}),config:(0,_s.ObjectNode)({[_s.Switch]:["pop",{push:"type"}],[_s.Case]:{"minecraft:bastion_remnant":r,"minecraft:buried_treasure":{probability:(0,_s.NumberNode)({min:0,max:1})},"minecraft:mineshaft":{type:i({enum:["normal","mesa"]}),probability:(0,_s.NumberNode)({min:0,max:1})},"minecraft:nether_fossil":{height:n("height_provider")},"minecraft:ocean_ruin":{biome_temp:i({enum:["cold","warm"]}),large_probability:(0,_s.NumberNode)({min:0,max:1}),cluster_probability:(0,_s.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:(0,_s.Opt)((0,_s.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 bs={};Object.defineProperty(bs,"__esModule",{value:!0}),bs.initSurfaceRuleSchemas=void 0;const vs=Pe;bs.initSurfaceRuleSchemas=function(e,t){const i=vs.StringNode.bind(void 0,t),n=vs.Reference.bind(void 0,e);e.register("material_rule",(0,vs.Mod)((0,vs.ObjectNode)({type:i({validator:"resource",params:{pool:"worldgen/material_rule"}}),[vs.Switch]:[{push:"type"}],[vs.Case]:{"minecraft:block":{result_state:n("block_state")},"minecraft:condition":{if_true:n("material_condition"),then_run:n("material_rule")},"minecraft:sequence":{sequence:(0,vs.ListNode)(n("material_rule"))}}},{context:"material_rule",category:"pool"}),{default:()=>({type:"minecraft:block",result_state:{Name:"minecraft:stone"}})})),e.register("material_condition",(0,vs.Mod)((0,vs.ObjectNode)({type:i({validator:"resource",params:{pool:"worldgen/material_condition"}}),[vs.Switch]:[{push:"type"}],[vs.Case]:{"minecraft:biome":{biome_is:(0,vs.ListNode)(i({validator:"resource",params:{pool:"$worldgen/biome"}}))},"minecraft:noise_threshold":{noise:i({validator:"resource",params:{pool:"$worldgen/noise"}}),min_threshold:(0,vs.NumberNode)(),max_threshold:(0,vs.NumberNode)()},"minecraft:not":{invert:n("material_condition")},"minecraft:stone_depth":{offset:(0,vs.NumberNode)({integer:!0}),surface_type:i({enum:"cave_surface"}),add_surface_depth:(0,vs.BooleanNode)(),add_surface_secondary_depth:(0,vs.BooleanNode)()},"minecraft:vertical_gradient":{random_name:i(),true_at_and_below:n("vertical_anchor"),false_at_and_above:n("vertical_anchor")},"minecraft:water":{offset:(0,vs.NumberNode)({integer:!0}),surface_depth_multiplier:(0,vs.NumberNode)({integer:!0,min:-20,max:20}),add_stone_depth:(0,vs.BooleanNode)()},"minecraft:y_above":{anchor:n("vertical_anchor"),surface_depth_multiplier:(0,vs.NumberNode)({integer:!0,min:-20,max:20}),add_stone_depth:(0,vs.BooleanNode)()}}},{context:"material_condition"}),{default:()=>({type:"minecraft:biome",is_biome:"minecraft:plains"})}))};var ys={};Object.defineProperty(ys,"__esModule",{value:!0}),ys.initTemplatePoolSchemas=void 0;const ws=Pe,xs=cs;ys.initTemplatePoolSchemas=function(e,t){const i=ws.Reference.bind(void 0,e),n=ws.StringNode.bind(void 0,t);e.register("template_pool",(0,ws.Mod)((0,ws.ObjectNode)({name:n(),fallback:n(),elements:(0,ws.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",(0,ws.Mod)((0,ws.ObjectNode)({weight:(0,ws.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",(0,ws.Mod)((0,ws.ObjectNode)({element_type:n({validator:"resource",params:{pool:"worldgen/structure_pool_element"}}),projection:n({enum:["rigid","terrain_matching"]}),[ws.Switch]:[{push:"element_type"}],[ws.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:xs.Processors},"minecraft:list_pool_element":{elements:(0,ws.ListNode)(i("template_element"))},"minecraft:single_pool_element":{location:n({validator:"resource",params:{pool:"$structure"}}),processors:xs.Processors}}},{context:"template_element",disableSwitchContext:!0}),{default:()=>({element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"})}))},Object.defineProperty(Za,"__esModule",{value:!0}),Za.initWorldgenSchemas=void 0;const Ns=Qa,ks=ts,As=rs,Cs=ss,Os=ps,Ss=cs,Es=gs,Fs=bs,Ds=ys;Za.initWorldgenSchemas=function(e,t){(0,Ss.initProcessorListSchemas)(e,t),(0,Ns.initBiomeSchemas)(e,t),(0,ks.initCarverSchemas)(e,t),(0,As.initDecoratorSchemas)(e,t),(0,Cs.initFeatureSchemas)(e,t),(0,Os.initNoiseSettingsSchemas)(e,t),(0,Es.initStructureFeatureSchemas)(e,t),(0,Fs.initSurfaceRuleSchemas)(e,t),(0,Ds.initTemplatePoolSchemas)(e,t)};var Bs={};Object.defineProperty(Bs,"__esModule",{value:!0}),Bs.initWorldSettingsSchemas=void 0;const Ls=Pe;Bs.initWorldSettingsSchemas=function(e,t){const i=Ls.Reference.bind(void 0,e),n=Ls.StringNode.bind(void 0,t);e.register("world_settings",(0,Ls.Mod)((0,Ls.ObjectNode)({generate_features:(0,Ls.BooleanNode)(),bonus_chest:(0,Ls.BooleanNode)(),seed:(0,Ls.NumberNode)({integer:!0}),dimensions:(0,Ls.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(ma,"__esModule",{value:!0}),ma.initSchemas=void 0;const Ms=fa,Ts=_a,Rs=ka,$s=Aa,js=Sa,Is=Da,Ps=Ma,zs=$a,Us=Ua,Ws=Ha,Hs=Va,qs=Ka,Vs=Ja,Gs=Za,Ks=Bs;ma.initSchemas=function(e,t){(0,Rs.initCommonSchemas)(e,t),(0,Ms.initAdvancementSchemas)(e,t),(0,Ts.initAssetsSchemas)(e,t),(0,$s.initConditionSchemas)(e,t),(0,Is.initDimensionTypeSchemas)(e,t),(0,js.initDimensionSchemas)(e,t),(0,Ps.initItemModifierSchemas)(e,t),(0,zs.initLootTableSchemas)(e,t),(0,Us.initPackMcmetaSchemas)(e,t),(0,Ws.initPredicatesSchemas)(e,t),(0,Hs.initRecipeSchemas)(e,t),(0,qs.initTagsSchemas)(e,t),(0,Vs.initTextComponentSchemas)(e,t),(0,Gs.initWorldgenSchemas)(e,t),(0,Ks.initWorldSettingsSchemas)(e,t)};var Xs=Ie&&Ie.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i);var r=Object.getOwnPropertyDescriptor(t,i);r&&!("get"in r?!t.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,n,r)}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),Js=Ie&&Ie.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),Ys=Ie&&Ie.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&Xs(t,e,i);return Js(t,e),t};Object.defineProperty(ha,"__esModule",{value:!0});var Zs=ha.getSchemas=ha.getCollections=ha.lootContext=void 0;const Qs=Pe,ec=pa,tc=ma;var ic=ha.lootContext=Ys(ja);var nc=ha.getCollections=function(){const e=new Qs.CollectionRegistry;return(0,ec.initCollections)(e),e};Zs=ha.getSchemas=function(e){const t=new Qs.SchemaRegistry;return(0,tc.initSchemas)(t,e),t};var rc=Object.freeze(Object.assign(Object.create(null),ha,{[Symbol.toStringTag]:"Module",get getSchemas(){return Zs},get getCollections(){return nc},get lootContext(){return ic},default:ha})),oc={},ac={};Object.defineProperty(ac,"__esModule",{value:!0}),ac.initCollections=void 0,ac.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"]),e.register("cat_texture",["textures/entity/cat/tabby.png","textures/entity/cat/black.png","textures/entity/cat/red.png","textures/entity/cat/siamese.png","textures/entity/cat/british_shorthair.png","textures/entity/cat/calico.png","textures/entity/cat/persian.png","textures/entity/cat/ragdoll.png","textures/entity/cat/white.png","textures/entity/cat/jellie.png","textures/entity/cat/all_black.png"])};var sc={},cc={};Object.defineProperty(cc,"__esModule",{value:!0}),cc.initAdvancementSchemas=void 0;const lc=Pe;cc.initAdvancementSchemas=function(e,t){const i=lc.Reference.bind(void 0,e),n=lc.StringNode.bind(void 0,t),r=(0,lc.ChoiceNode)([{type:"object",node:(0,lc.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:(0,lc.ListNode)(i("condition")),change:e=>[{condition:"minecraft:entity_properties",predicate:e}]}],{context:"conditions"});e.register("advancement",(0,lc.Mod)((0,lc.ObjectNode)({display:(0,lc.Opt)((0,lc.Mod)((0,lc.ObjectNode)({icon:(0,lc.ObjectNode)({item:n({validator:"resource",params:{pool:"item"}}),nbt:(0,lc.Opt)(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:i("text_component"),description:i("text_component"),background:(0,lc.Opt)(n()),frame:(0,lc.Opt)(n({enum:["task","challenge","goal"]})),show_toast:(0,lc.Opt)((0,lc.BooleanNode)()),announce_to_chat:(0,lc.Opt)((0,lc.BooleanNode)()),hidden:(0,lc.Opt)((0,lc.BooleanNode)())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:(0,lc.Opt)(n({validator:"resource",params:{pool:"$advancement"}})),criteria:(0,lc.MapNode)(n(),i("advancement_criteria")),requirements:(0,lc.Opt)((0,lc.ListNode)((0,lc.ListNode)(n()))),rewards:(0,lc.Opt)((0,lc.ObjectNode)({function:(0,lc.Opt)(n({validator:"resource",params:{pool:"$function"}})),loot:(0,lc.Opt)((0,lc.ListNode)(n({validator:"resource",params:{pool:"$loot_table"}}))),recipes:(0,lc.Opt)((0,lc.ListNode)(n({validator:"resource",params:{pool:"$recipe"}}))),experience:(0,lc.Opt)((0,lc.NumberNode)({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),e.register("advancement_criteria",(0,lc.ObjectNode)({trigger:n({validator:"resource",params:{pool:t.get("advancement_trigger")}}),conditions:(0,lc.Opt)((0,lc.ObjectNode)({player:(0,lc.Mod)(r,{enabled:e=>"minecraft:impossible"!==e.pop().push("trigger").get()}),[lc.Switch]:["pop",{push:"trigger"}],[lc.Case]:{"minecraft:bee_nest_destroyed":{block:(0,lc.Opt)(n({validator:"resource",params:{pool:"block"}})),num_bees_inside:(0,lc.Opt)((0,lc.NumberNode)({integer:!0})),item:(0,lc.Opt)(i("item_predicate"))},"minecraft:bred_animals":{parent:r,partner:r,child:r},"minecraft:brewed_potion":{potion:(0,lc.Opt)(n({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:(0,lc.Opt)(n({validator:"resource",params:{pool:"$dimension"}})),to:(0,lc.Opt)(n({validator:"resource",params:{pool:"$dimension"}}))},"minecraft:channeled_lightning":{victims:(0,lc.Opt)((0,lc.ListNode)(r))},"minecraft:construct_beacon":{level:i("int_bounds")},"minecraft:consume_item":{item:(0,lc.Opt)(i("item_predicate"))},"minecraft:cured_zombie_villager":{villager:r,zombie:r},"minecraft:effects_changed":{effects:(0,lc.Opt)((0,lc.MapNode)(n({validator:"resource",params:{pool:"mob_effect"}}),(0,lc.ObjectNode)({amplifier:i("int_bounds"),duration:i("int_bounds")}))),source:(0,lc.Opt)(r)},"minecraft:enter_block":{block:(0,lc.Opt)(n({validator:"resource",params:{pool:"block"}})),state:(0,lc.Opt)((0,lc.MapNode)(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:i("int_bounds"),item:(0,lc.Opt)(i("item_predicate"))},"minecraft:entity_hurt_player":{damage:(0,lc.Opt)(i("damage_predicate"))},"minecraft:entity_killed_player":{entity:r,killing_blow:(0,lc.Opt)(i("damage_source_predicate"))},"minecraft:fall_from_height":{start_position:(0,lc.Opt)(i("location_predicate")),distance:(0,lc.Opt)(i("distance_predicate"))},"minecraft:filled_bucket":{item:(0,lc.Opt)(i("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:r,item:(0,lc.Opt)(i("item_predicate"))},"minecraft:hero_of_the_village":{location:(0,lc.Opt)(i("location_predicate"))},"minecraft:inventory_changed":{slots:(0,lc.Opt)((0,lc.ObjectNode)({empty:i("int_bounds"),occupied:i("int_bounds"),full:i("int_bounds")})),items:(0,lc.Opt)((0,lc.ListNode)(i("item_predicate")))},"minecraft:item_durability_changed":{delta:i("int_bounds"),durability:i("int_bounds"),item:(0,lc.Opt)(i("item_predicate"))},"minecraft:item_used_on_block":{item:(0,lc.Opt)(i("item_predicate")),location:(0,lc.Opt)(i("location_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:i("int_bounds"),victims:(0,lc.Opt)((0,lc.ListNode)(r))},"minecraft:levitation":{distance:(0,lc.Opt)(i("distance_predicate")),duration:i("int_bounds")},"minecraft:lightning_strike":{lightning:r,bystander:r},"minecraft:location":{location:(0,lc.Opt)(i("location_predicate"))},"minecraft:nether_travel":{start_position:(0,lc.Opt)(i("location_predicate")),distance:(0,lc.Opt)(i("distance_predicate"))},"minecraft:placed_block":{block:(0,lc.Opt)(n({validator:"resource",params:{pool:"block"}})),state:(0,lc.Opt)((0,lc.MapNode)(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:(0,lc.Opt)(i("item_predicate")),location:(0,lc.Opt)(i("location_predicate"))},"minecraft:player_generates_container_loot":{loot_table:n({validator:"resource",params:{pool:"$loot_table"}})},"minecraft:player_hurt_entity":{damage:(0,lc.Opt)(i("damage_predicate")),entity:r},"minecraft:player_interacted_with_entity":{item:(0,lc.Opt)(i("item_predicate")),entity:r},"minecraft:player_killed_entity":{entity:r,killing_blow:(0,lc.Opt)(i("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:n({validator:"resource",params:{pool:"$recipe"}})},"minecraft:ride_entity_in_lava":{start_position:(0,lc.Opt)(i("location_predicate")),distance:(0,lc.Opt)(i("distance_predicate"))},"minecraft:slept_in_bed":{location:(0,lc.Opt)(i("location_predicate"))},"minecraft:slide_down_block":{block:(0,lc.Opt)(n({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:(0,lc.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:r,item:(0,lc.Opt)(i("item_predicate"))},"minecraft:used_ender_eye":{distance:(0,lc.Opt)(i("float_bounds"))},"minecraft:used_totem":{item:(0,lc.Opt)(i("item_predicate"))},"minecraft:using_item":{item:(0,lc.Opt)(i("item_predicate"))},"minecraft:villager_trade":{villager:r,item:(0,lc.Opt)(i("item_predicate"))},"minecraft:voluntary_exile":{location:(0,lc.Opt)(i("location_predicate"))}}},{context:"criterion"}))},{category:"predicate",context:"criterion"}))};var uc={},dc={};Object.defineProperty(dc,"__esModule",{value:!0}),dc.initModelSchemas=void 0;const hc=Pe;dc.initModelSchemas=function(e,t){hc.Reference.bind(void 0,e);const i=hc.StringNode.bind(void 0,t),n=(e,t,i)=>(0,hc.ListNode)((0,hc.NumberNode)({min:t,max:i}),{minLength:e,maxLength:e}),r=(0,hc.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",(0,hc.Mod)((0,hc.ObjectNode)({parent:(0,hc.Opt)(i({validator:"resource",params:{pool:"$model"}})),ambientocclusion:(0,hc.Opt)((0,hc.BooleanNode)()),gui_light:(0,hc.Opt)(i({enum:"gui_light"})),textures:(0,hc.Opt)((0,hc.MapNode)(i(),r)),elements:(0,hc.Opt)((0,hc.ListNode)((0,hc.ObjectNode)({from:n(3,-16,32),to:n(3,-16,32),rotation:(0,hc.Opt)((0,hc.ObjectNode)({origin:n(3),axis:i({enum:"axis"}),angle:(0,hc.NumberEnum)({values:[-45,-22.5,0,22.5,45]}),rescale:(0,hc.Opt)((0,hc.BooleanNode)())})),shade:(0,hc.Opt)((0,hc.BooleanNode)()),faces:(0,hc.MapNode)(i({enum:"direction"}),(0,hc.ObjectNode)({texture:r,uv:(0,hc.Opt)(n(4)),cullface:(0,hc.Opt)(i({enum:"direction"})),rotation:(0,hc.Opt)((0,hc.NumberNode)({integer:!0})),tintindex:(0,hc.Opt)((0,hc.NumberNode)({integer:!0}))}))},{context:"model_element"}))),display:(0,hc.Opt)((0,hc.MapNode)(i({enum:"display_position"}),(0,hc.ObjectNode)({rotation:n(3),translation:n(3,-80,80),scale:n(3,-4,4)},{context:"item_transform"}))),overrides:(0,hc.Opt)((0,hc.ListNode)((0,hc.ObjectNode)({predicate:(0,hc.MapNode)(i({enum:"item_model_predicates"}),(0,hc.NumberNode)()),model:i({validator:"resource",params:{pool:"$model"}})},{context:"model_override"})))},{context:"model"}),{default:()=>({parent:"minecraft:item/generated",textures:{layer0:"minecraft:item/diamond"}})}))};var pc={};Object.defineProperty(pc,"__esModule",{value:!0}),pc.initBlockDefinitionSchemas=void 0;const mc=Pe;pc.initBlockDefinitionSchemas=function(e,t){const i=mc.Reference.bind(void 0,e),n=mc.StringNode.bind(void 0,t);e.register("block_definition",(0,mc.Mod)((0,mc.ChoiceNode)([{type:"variants",match:e=>void 0!==e.variants,node:(0,mc.ObjectNode)({variants:(0,mc.MapNode)(n(),i("model_variant"))}),change:e=>({variants:{"":{}}})},{type:"multipart",match:e=>void 0!==e.multipart,node:(0,mc.ObjectNode)({multipart:(0,mc.ListNode)((0,mc.ObjectNode)({when:(0,mc.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:(0,mc.Opt)((0,mc.NumberEnum)({integer:!0,values:[0,90,180,270]})),y:(0,mc.Opt)((0,mc.NumberEnum)({integer:!0,values:[0,90,180,270]})),uvlock:(0,mc.Opt)((0,mc.BooleanNode)())};e.register("model_variant",(0,mc.ChoiceNode)([{type:"object",node:(0,mc.ObjectNode)(r),change:e=>Array.isArray(e)&&e.length>0?e[0]:{}},{type:"list",node:(0,mc.ListNode)((0,mc.ObjectNode)(c(s({},r),{weight:(0,mc.Opt)((0,mc.NumberNode)({integer:!0,min:1}))}),{context:"model_variant"})),change:e=>[s({weight:1},e)]}],{context:"model_variant"})),e.register("multipart_condition",(0,mc.ChoiceNode)([{type:"object",priority:-1,match:()=>!0,node:(0,mc.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:(0,mc.ObjectNode)({OR:(0,mc.ListNode)(i("multipart_condition"))}),change:e=>({OR:[null!=e?e:{}]})}],{context:"multipart_condition"}))},Object.defineProperty(uc,"__esModule",{value:!0}),uc.initAssetsSchemas=void 0;const fc=dc,gc=pc;uc.initAssetsSchemas=function(e,t){(0,gc.initBlockDefinitionSchemas)(e,t),(0,fc.initModelSchemas)(e,t)};var _c={};!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=Pe;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={sea_level:63,ore_veins_enabled:!0,disable_mob_generation:!1,aquifers_enabled:!0,legacy_random_source:!1,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,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}},noise_router:{barrier:0,fluid_level_floodedness:0,fluid_level_spread:0,lava:0,temperature:0,vegetation:0,continents:0,erosion:0,depth:0,ridges:0,initial_density_without_jaggedness:0,final_density:{type:"minecraft:interpolated",argument:"minecraft:overworld/base_3d_noise"},vein_toggle:0,vein_ridged:0,vein_gap:0},surface_rule:{type:"minecraft:sequence",sequence:[]}},e.initCommonSchemas=function(i,n){const r=t.StringNode.bind(void 0,n),o=t.Reference.bind(void 0,i);i.register("block_state",(0,t.Mod)((0,t.ObjectNode)({Name:r({validator:"resource",params:{pool:"block"}}),Properties:(0,t.Opt)((0,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",(0,t.Mod)((0,t.ObjectNode)({Name:r({validator:"resource",params:{pool:"fluid"}}),Properties:(0,t.Opt)((0,t.MapNode)(r(),r()))},{context:"fluid_state"}),{default:()=>({Name:"minecraft:water",Properties:{level:"0"}})})),i.register("block_pos",(0,t.Mod)((0,t.ListNode)((0,t.NumberNode)({integer:!0}),{minLength:3,maxLength:3}),{default:()=>[0,0,0]}));const a=e=>(0,t.Opt)((0,t.ChoiceNode)([{type:"number",node:(0,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:(0,t.ObjectNode)({min:(0,t.Opt)((0,t.NumberNode)({integer:e})),max:(0,t.Opt)((0,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",(0,t.ChoiceNode)([{type:"object",node:(0,t.ObjectNode)({min:(0,t.Opt)(o("number_provider")),max:(0,t.Opt)(o("number_provider"))})},{type:"number",node:(0,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]=(0,t.Mod)(l[a][e],{enabled:e=>void 0===e.push("type").get()})}));const d=(0,t.ObjectNode)(s({type:(0,t.Mod)((0,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})})})),(0,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:(0,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:(0,t.Opt)((0,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:(0,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:(0,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:(0,t.NumberNode)(e)},"minecraft:uniform":{value:(0,t.ObjectNode)({min_inclusive:(0,t.NumberNode)(e),max_exclusive:(0,t.NumberNode)(e)})},"minecraft:clamped_normal":{value:(0,t.ObjectNode)({min:(0,t.NumberNode)(),max:(0,t.NumberNode)(),mean:(0,t.NumberNode)(),deviation:(0,t.NumberNode)()})},"minecraft:trapezoid":{value:(0,t.ObjectNode)({min:(0,t.NumberNode)(),max:(0,t.NumberNode)(),plateau:(0,t.NumberNode)()})}}),i.register("float_provider",(0,e.FloatProvider)()),e.IntProvider=e=>c("int_provider_type","number","value","minecraft:constant",null,"int_provider",{"minecraft:constant":{value:(0,t.NumberNode)(s({integer:!0},e))},"minecraft:uniform":{value:(0,t.ObjectNode)({min_inclusive:(0,t.NumberNode)(s({integer:!0},e)),max_inclusive:(0,t.NumberNode)(s({integer:!0},e))})},"minecraft:biased_to_bottom":{value:(0,t.ObjectNode)({min_inclusive:(0,t.NumberNode)(s({integer:!0},e)),max_inclusive:(0,t.NumberNode)(s({integer:!0},e))})},"minecraft:clamped":{value:(0,t.ObjectNode)({min_inclusive:(0,t.NumberNode)(s({integer:!0},e)),max_inclusive:(0,t.NumberNode)(s({integer:!0},e)),source:o("int_provider")})},"minecraft:clamped_normal":{value:(0,t.ObjectNode)({min_inclusive:(0,t.NumberNode)(s({integer:!0},e)),max_inclusive:(0,t.NumberNode)(s({integer:!0},e)),mean:(0,t.NumberNode)(),deviation:(0,t.NumberNode)()})},"minecraft:weighted_list":{distribution:(0,t.ListNode)((0,t.ObjectNode)({weight:(0,t.NumberNode)({integer:!0}),data:o("int_provider")}))}}),i.register("int_provider",(0,e.IntProvider)()),i.register("vertical_anchor",(0,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:(0,t.ObjectNode)({[e]:(0,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:(0,t.Opt)((0,t.NumberNode)({integer:!0,min:1}))},"minecraft:very_biased_to_bottom":{min_inclusive:o("vertical_anchor"),max_inclusive:o("vertical_anchor"),inner:(0,t.Opt)((0,t.NumberNode)({integer:!0,min:1}))},"minecraft:trapezoid":{min_inclusive:o("vertical_anchor"),max_inclusive:o("vertical_anchor"),plateau:(0,t.Opt)((0,t.NumberNode)({integer:!0}))},"minecraft:weighted_list":{distribution:(0,t.ListNode)((0,t.ObjectNode)({weight:(0,t.NumberNode)({integer:!0}),data:o("int_provider")}))}})),e.InclusiveRange=e=>(0,t.ObjectNode)({min_inclusive:(0,t.NumberNode)(e),max_inclusive:(0,t.NumberNode)(e)},{context:"range"}),i.register("noise_parameters",(0,t.Mod)((0,t.ObjectNode)({firstOctave:(0,t.NumberNode)({integer:!0}),amplitudes:(0,t.ListNode)((0,t.NumberNode)())},{context:"noise_parameters"}),{default:()=>({firstOctave:-7,amplitudes:[1,1]})})),e.Tag=e=>(0,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:(0,t.ListNode)(e.inlineSchema?(0,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:(0,t.ListNode)(o("condition"))},"minecraft:block_state_property":{block:r({validator:"resource",params:{pool:"block"}}),properties:(0,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:(0,t.MapNode)(r({validator:"objective"}),o("int_range"))},"minecraft:inverted":{term:o("condition")},"minecraft:killed_by_player":{inverse:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:location_check":{offsetX:(0,t.Opt)((0,t.NumberNode)({integer:!0})),offsetY:(0,t.Opt)((0,t.NumberNode)({integer:!0})),offsetZ:(0,t.Opt)((0,t.NumberNode)({integer:!0})),predicate:o("location_predicate")},"minecraft:match_tool":{predicate:o("item_predicate")},"minecraft:random_chance":{chance:(0,t.NumberNode)({min:0,max:1})},"minecraft:random_chance_with_looting":{chance:(0,t.NumberNode)({min:0,max:1}),looting_multiplier:(0,t.NumberNode)()},"minecraft:reference":{name:r({validator:"resource",params:{pool:"$predicate"}})},"minecraft:table_bonus":{enchantment:r({validator:"resource",params:{pool:"enchantment"}}),chances:(0,t.ListNode)((0,t.NumberNode)({min:0,max:1}))},"minecraft:time_check":{value:o("int_range"),period:(0,t.Opt)((0,t.NumberNode)({integer:!0}))},"minecraft:value_check":{value:o("number_provider"),range:o("int_range")},"minecraft:weather_check":{raining:(0,t.Opt)((0,t.BooleanNode)()),thundering:(0,t.Opt)((0,t.BooleanNode)())}}),e.FunctionCases=(i,a=r({enum:"copy_source"}),c=r({enum:"entity_source"}))=>{const l={"minecraft:apply_bonus":{enchantment:r({validator:"resource",params:{pool:"enchantment"}}),formula:r({validator:"resource",params:{pool:n.get("loot_table_apply_bonus_formula")}}),parameters:(0,t.Mod)((0,t.ObjectNode)({bonusMultiplier:(0,t.Mod)((0,t.NumberNode)(),{enabled:e=>"minecraft:uniform_bonus_count"===e.pop().push("formula").get()}),extra:(0,t.Mod)((0,t.NumberNode)(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()}),probability:(0,t.Mod)((0,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:a},"minecraft:copy_nbt":{source:o("nbt_provider"),ops:(0,t.ListNode)((0,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:(0,t.ListNode)(r({validator:"block_state_key",params:{id:["pop","pop",{push:"block"}]}}))},"minecraft:enchant_randomly":{enchantments:(0,t.Opt)((0,t.ListNode)(r({validator:"resource",params:{pool:"enchantment"}})))},"minecraft:enchant_with_levels":{levels:o("number_provider"),treasure:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:exploration_map":{destination:(0,t.Opt)((0,e.Tag)({resource:"$worldgen/configured_structure_feature"})),decoration:(0,t.Opt)(r({enum:"map_decoration"})),zoom:(0,t.Opt)((0,t.NumberNode)({integer:!0})),search_radius:(0,t.Opt)((0,t.NumberNode)({integer:!0})),skip_existing_chunks:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:fill_player_head":{entity:c},"minecraft:limit_count":{limit:o("int_range")},"minecraft:looting_enchant":{count:o("number_provider"),limit:(0,t.Opt)((0,t.NumberNode)({integer:!0}))},"minecraft:set_attributes":{modifiers:(0,t.ListNode)(o("attribute_modifier"))},"minecraft:set_banner_pattern":{patterns:(0,t.ListNode)((0,t.ObjectNode)({pattern:r({enum:"banner_pattern"}),color:r({enum:"dye_color"})})),append:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:set_contents":{type:r({validator:"resource",params:{pool:"block_entity_type"}}),entries:(0,t.ListNode)(o("loot_entry"))},"minecraft:set_count":{count:o("number_provider"),add:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:set_damage":{damage:o("number_provider"),add:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:set_enchantments":{enchantments:(0,t.MapNode)(r({validator:"resource",params:{pool:"enchantment"}}),o("number_provider")),add:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:set_loot_table":{type:r({validator:"resource",params:{pool:"block_entity_type"}}),name:r({validator:"resource",params:{pool:"$loot_table"}}),seed:(0,t.Opt)((0,t.NumberNode)({integer:!0}))},"minecraft:set_lore":{entity:(0,t.Opt)(c),lore:(0,t.ListNode)(o("text_component")),replace:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:set_name":{entity:(0,t.Opt)(c),name:(0,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:(0,t.Opt)((0,t.ListNode)((0,t.ObjectNode)({type:r({validator:"resource",params:{pool:"mob_effect"}}),duration:o("number_provider")})))}},u={};return n.get("loot_function_type").forEach((e=>{u[e]=s(s({},l[e]),i)})),u},e.DimensionTypePresets=i=>(0,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=>(0,t.ObjectOrPreset)(r({validator:"resource",params:{pool:"$worldgen/noise_settings"}}),i,{"minecraft:overworld":e.DefaultNoiseSettings,"minecraft:nether":{sea_level:32,ore_veins_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,legacy_random_source:!0,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,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}},noise_router:{barrier:0,fluid_level_floodedness:0,fluid_level_spread:0,lava:0,temperature:0,vegetation:0,continents:0,erosion:0,depth:0,ridges:0,initial_density_without_jaggedness:0,final_density:{type:"minecraft:interpolated",argument:"minecraft:overworld/base_3d_noise"},vein_toggle:0,vein_ridged:0,vein_gap:0},surface_rule:{type:"minecraft:sequence",sequence:[]}},"minecraft:end":{sea_level:0,ore_veins_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,legacy_random_source:!0,default_block:{Name:"minecraft:end_stone"},default_fluid:{Name:"minecraft:air"},noise:{min_y:0,height:128,size_horizontal:2,size_vertical:1,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}},noise_router:{barrier:0,fluid_level_floodedness:0,fluid_level_spread:0,lava:0,temperature:0,vegetation:0,continents:0,erosion:0,depth:0,ridges:0,initial_density_without_jaggedness:0,final_density:{type:"minecraft:interpolated",argument:"minecraft:overworld/base_3d_noise"},vein_toggle:0,vein_ridged:0,vein_gap:0},surface_rule:{type:"minecraft:sequence",sequence:[]}},"minecraft:amplified":{sea_level:63,ore_veins_enabled:!0,disable_mob_generation:!1,aquifers_enabled:!0,legacy_random_source:!1,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,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}},noise_router:{barrier:0,fluid_level_floodedness:0,fluid_level_spread:0,lava:0,temperature:0,vegetation:0,continents:0,erosion:0,depth:0,ridges:0,initial_density_without_jaggedness:0,final_density:{type:"minecraft:interpolated",argument:"minecraft:overworld/base_3d_noise"},vein_toggle:0,vein_ridged:0,vein_gap:0},surface_rule:{type:"minecraft:sequence",sequence:[]}},"minecraft:caves":{sea_level:32,ore_veins_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,legacy_random_source:!0,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,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}},noise_router:{barrier:0,fluid_level_floodedness:0,fluid_level_spread:0,lava:0,temperature:0,vegetation:0,continents:0,erosion:0,depth:0,ridges:0,initial_density_without_jaggedness:0,final_density:{type:"minecraft:interpolated",argument:"minecraft:overworld/base_3d_noise"},vein_toggle:0,vein_ridged:0,vein_gap:0},surface_rule:{type:"minecraft:sequence",sequence:[]}},"minecraft:floating_islands":{sea_level:0,ore_veins_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,legacy_random_source:!0,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,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}},noise_router:{barrier:0,fluid_level_floodedness:0,fluid_level_spread:0,lava:0,temperature:0,vegetation:0,continents:0,erosion:0,depth:0,ridges:0,initial_density_without_jaggedness:0,final_density:{type:"minecraft:interpolated",argument:"minecraft:overworld/base_3d_noise"},vein_toggle:0,vein_ridged:0,vein_gap:0},surface_rule:{type:"minecraft:sequence",sequence:[]}}})}}(_c);var bc={};Object.defineProperty(bc,"__esModule",{value:!0}),bc.initConditionSchemas=void 0;const vc=Pe,yc=_c;bc.initConditionSchemas=function(e,t){const i=vc.Reference.bind(void 0,e),n=vc.StringNode.bind(void 0,t);e.register("predicate",(0,vc.ObjectOrList)(i("condition"),{choiceContext:"condition"})),e.register("condition",(0,vc.Mod)((0,vc.ObjectNode)({condition:n({validator:"resource",params:{pool:"loot_condition_type"}}),[vc.Switch]:[{push:"condition"}],[vc.Case]:(0,yc.ConditionCases)()},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:entity_properties",entity:"this"})}))};var wc={};Object.defineProperty(wc,"__esModule",{value:!0}),wc.initDimensionSchemas=void 0;const xc=Pe,Nc=_c;wc.initDimensionSchemas=function(e,t){const i=xc.Reference.bind(void 0,e),n=xc.StringNode.bind(void 0,t),r=(0,xc.ChoiceNode)([{type:"string",priority:1,node:n({validator:"resource",params:{pool:"$worldgen/structure_set"}}),change:()=>{}},{type:"object",node:i("structure_set"),change:()=>({})}],{choiceContext:"structure_set"});e.register("dimension",(0,xc.Mod)((0,xc.ObjectNode)({type:(0,Nc.DimensionTypePresets)(i("dimension_type")),generator:(0,xc.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/chunk_generator"}}),[xc.Switch]:[{push:"type"}],[xc.Case]:{"minecraft:noise":{seed:(0,xc.NumberNode)({integer:!0}),settings:(0,Nc.NoiseSettingsPresets)(i("noise_settings")),biome_source:(0,xc.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/biome_source"}}),[xc.Switch]:[{push:"type"}],[xc.Case]:{"minecraft:fixed":{biome:n({validator:"resource",params:{pool:"$worldgen/biome"}})},"minecraft:multi_noise":{preset:(0,xc.Opt)(n({validator:"resource",params:{pool:["minecraft:overworld","minecraft:nether"]}})),biomes:(0,xc.Mod)((0,xc.ListNode)(i("generator_biome")),{enabled:e=>void 0===e.push("preset").get(),default:()=>[{biome:"minecraft:plains"}]})},"minecraft:checkerboard":{scale:(0,xc.Opt)((0,xc.NumberNode)({integer:!0,min:0,max:62})),biomes:(0,Nc.Tag)({resource:"$worldgen/biome"})},"minecraft:the_end":{seed:(0,xc.NumberNode)({integer:!0})}}},{category:"predicate",disableSwitchContext:!0})},"minecraft:flat":{settings:(0,xc.ObjectNode)({biome:(0,xc.Opt)(n({validator:"resource",params:{pool:"$worldgen/biome"}})),lakes:(0,xc.Opt)((0,xc.BooleanNode)()),features:(0,xc.Opt)((0,xc.BooleanNode)()),layers:(0,xc.ListNode)(i("generator_layer")),structure_overrides:(0,xc.ListNode)(r)})}}},{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 o=(0,xc.ChoiceNode)([{type:"number",node:(0,xc.NumberNode)({min:-2,max:2}),change:e=>{var t;return null!==(t=e[0])&&void 0!==t?t:0}},{type:"list",node:(0,xc.ListNode)((0,xc.NumberNode)({min:-2,max:2}),{minLength:2,maxLength:2}),change:e=>[null!=e?e:0,null!=e?e:0]}]);e.register("generator_biome",(0,xc.Mod)((0,xc.ObjectNode)({biome:n({validator:"resource",params:{pool:"$worldgen/biome"}}),parameters:(0,xc.ObjectNode)({temperature:o,humidity:o,continentalness:o,erosion:o,weirdness:o,depth:o,offset:(0,xc.NumberNode)({min:0,max:1})})},{context:"generator_biome"}),{default:()=>({biome:"minecraft:plains",parameters:{altitude:0,temperature:0,humidity:0,weirdness:0,offset:0}})}))};var kc={};Object.defineProperty(kc,"__esModule",{value:!0}),kc.initDimensionTypeSchemas=void 0;const Ac=Pe,Cc=_c;kc.initDimensionTypeSchemas=function(e,t){const i=Ac.StringNode.bind(void 0,t);e.register("dimension_type",(0,Ac.Mod)((0,Ac.ObjectNode)({ultrawarm:(0,Ac.BooleanNode)(),natural:(0,Ac.BooleanNode)(),piglin_safe:(0,Ac.BooleanNode)(),respawn_anchor_works:(0,Ac.BooleanNode)(),bed_works:(0,Ac.BooleanNode)(),has_raids:(0,Ac.BooleanNode)(),has_skylight:(0,Ac.BooleanNode)(),has_ceiling:(0,Ac.BooleanNode)(),coordinate_scale:(0,Ac.NumberNode)({min:1e-5,max:3e7}),ambient_light:(0,Ac.NumberNode)(),fixed_time:(0,Ac.Opt)((0,Ac.NumberNode)({integer:!0})),logical_height:(0,Ac.NumberNode)({integer:!0,min:0,max:4064}),effects:(0,Ac.Opt)(i({enum:["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]})),infiniburn:i({validator:"resource",params:{pool:"block",requireTag:!0}}),min_y:(0,Ac.NumberNode)({integer:!0,min:-2032,max:2031}),height:(0,Ac.NumberNode)({integer:!0,min:16,max:4064})},{context:"dimension_type"}),(e=>({default:()=>Cc.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 Oc={};Object.defineProperty(Oc,"__esModule",{value:!0}),Oc.initItemModifierSchemas=void 0;const Sc=Pe,Ec=_c;Oc.initItemModifierSchemas=function(e,t){const i=Sc.Reference.bind(void 0,e),n=Sc.StringNode.bind(void 0,t);e.register("item_modifier",(0,Sc.ObjectOrList)(i("function"),{choiceContext:"function"}));const r={conditions:(0,Sc.Opt)((0,Sc.ListNode)(i("condition")))};e.register("function",(0,Sc.Mod)((0,Sc.ObjectNode)({function:n({validator:"resource",params:{pool:"loot_function_type"}}),[Sc.Switch]:[{push:"function"}],[Sc.Case]:(0,Ec.FunctionCases)(r)},{category:"function",context:"function"}),{default:()=>[{function:"minecraft:set_count",count:1}]}))};var Fc={},Dc={};Object.defineProperty(Dc,"__esModule",{value:!0}),Dc.LootFunctions=Dc.LootConditions=Dc.LootCopySources=Dc.LootEntitySources=Dc.LootTableTypes=void 0,Dc.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]}]]),Dc.LootEntitySources=new Map([["direct_killer",[3]],["killer",[5]],["killer_player",[5]],["this",[8]]]),Dc.LootCopySources=new Map([["block_entity",[0]],["killer",[5]],["killer_player",[5]],["this",[8]]]),Dc.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",[]]]),Dc.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(Fc,"__esModule",{value:!0}),Fc.initLootTableSchemas=void 0;const Bc=Pe,Lc=Dc,Mc=_c;Fc.initLootTableSchemas=function(e,t){const i=Bc.Reference.bind(void 0,e),n=Bc.StringNode.bind(void 0,t),r={conditions:(0,Bc.Opt)((0,Bc.ListNode)(i("loot_condition")))},o=s({functions:(0,Bc.Opt)((0,Bc.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 Lc.LootTableTypes){const e=[...a,...s];r.push({match:e=>e.getModel().get(new Bc.Path(["type"]))===t,node:n(o(e))})}return r.push({match:e=>!0,node:n(i)}),(0,Bc.SwitchNode)(r)}const c=a(Lc.LootConditions,"loot_condition_type",(e=>n({validator:"resource",params:{pool:e instanceof Array?e:"loot_condition_type"}}))),l=a(Lc.LootFunctions,"loot_function_type",(e=>n({validator:"resource",params:{pool:e instanceof Array?e:"loot_function_type"}}))),u=a(Lc.LootEntitySources,"entity_source",(e=>n({enum:e}))),d=a(Lc.LootCopySources,"copy_source",(e=>n({enum:e})));e.register("loot_table",(0,Bc.Mod)((0,Bc.ObjectNode)({type:(0,Bc.Opt)(n({validator:"resource",params:{pool:t.get("loot_context_type")}})),pools:(0,Bc.Opt)((0,Bc.ListNode)((0,Bc.Mod)((0,Bc.ObjectNode)(s({rolls:i("number_provider"),bonus_rolls:(0,Bc.Opt)(i("number_provider")),entries:(0,Bc.ListNode)(i("loot_entry"))},o),{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:(0,Bc.Opt)((0,Bc.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",(0,Bc.Mod)((0,Bc.ObjectNode)({type:n({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:(0,Bc.Opt)((0,Bc.Mod)((0,Bc.NumberNode)({integer:!0,min:1}),h)),quality:(0,Bc.Opt)((0,Bc.Mod)((0,Bc.NumberNode)({integer:!0}),h)),[Bc.Switch]:[{push:"type"}],[Bc.Case]:{"minecraft:alternatives":s({children:(0,Bc.ListNode)(i("loot_entry"))},o),"minecraft:dynamic":s({name:n()},o),"minecraft:group":s({children:(0,Bc.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:(0,Bc.ListNode)(i("loot_entry"))},o),"minecraft:tag":s({name:n({validator:"resource",params:{pool:"$tag/item"}}),expand:(0,Bc.Opt)((0,Bc.BooleanNode)())},o)}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),e.register("loot_function",(0,Bc.Mod)((0,Bc.ObjectNode)({function:l,[Bc.Switch]:[{push:"function"}],[Bc.Case]:(0,Mc.FunctionCases)(r,d,u)},{category:"function",context:"function"}),{default:()=>({function:"minecraft:set_count",count:1})})),e.register("loot_condition",(0,Bc.Mod)((0,Bc.ObjectNode)({condition:c,[Bc.Switch]:[{push:"condition"}],[Bc.Case]:(0,Mc.ConditionCases)(u)},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),e.register("attribute_modifier",(0,Bc.Mod)((0,Bc.ObjectNode)({attribute:n({validator:"resource",params:{pool:"attribute"}}),name:n(),amount:i("number_provider"),operation:n({enum:["addition","multiply_base","multiply_total"]}),slot:(0,Bc.StringOrList)(n({enum:"slot"}))},{context:"attribute_modifier"}),{default:()=>({attribute:"minecraft:generic.max_health",name:"",amount:1,operation:"addition",slot:"mainhand"})}))};var Tc={};Object.defineProperty(Tc,"__esModule",{value:!0}),Tc.initPackMcmetaSchemas=void 0;const Rc=Pe;Tc.initPackMcmetaSchemas=function(e,t){e.register("pack_mcmeta",(0,Rc.Mod)((0,Rc.ObjectNode)({pack:(0,Rc.Mod)((0,Rc.ObjectNode)({pack_format:(0,Rc.Mod)((0,Rc.NumberNode)({integer:!0,min:9,max:9}),{default:()=>9,canUpdate:(e,t)=>9!==t,update:()=>[{name:"pack_format",params:[9],newValue:9}]}),description:(0,Rc.Reference)(e,"text_component")}),{default:()=>({pack_format:9,description:""})})}),{default:()=>({pack:{pack_format:9,description:""}})}))};var $c={};Object.defineProperty($c,"__esModule",{value:!0}),$c.initPredicatesSchemas=void 0;const jc=Pe;$c.initPredicatesSchemas=function(e,t){const i=jc.Reference.bind(void 0,e),n=jc.StringNode.bind(void 0,t),r=(0,jc.ChoiceNode)([{type:"string",node:n(),change:e=>"boolean"==typeof e||"number"==typeof e?e.toString():""},{type:"number",node:(0,jc.NumberNode)(),change:e=>"string"==typeof e?parseInt(e):0},{type:"object",node:(0,jc.ObjectNode)({min:(0,jc.Opt)((0,jc.NumberNode)({integer:!0})),max:(0,jc.Opt)((0,jc.NumberNode)({integer:!0}))}),change:e=>"number"==typeof e?{min:e,max:e}:{}},{type:"boolean",node:(0,jc.BooleanNode)(),change:e=>"true"===e||1===e}]);e.register("item_predicate",(0,jc.ObjectNode)({items:(0,jc.Opt)((0,jc.ListNode)(n({validator:"resource",params:{pool:"item"}}))),tag:(0,jc.Opt)(n({validator:"resource",params:{pool:"$tag/item"}})),count:i("int_bounds"),durability:i("int_bounds"),potion:(0,jc.Opt)(n({validator:"resource",params:{pool:"potion"}})),nbt:(0,jc.Opt)(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:(0,jc.Opt)((0,jc.ListNode)(i("enchantment_predicate")))},{context:"item"})),e.register("enchantment_predicate",(0,jc.ObjectNode)({enchantment:(0,jc.Opt)(n({validator:"resource",params:{pool:"enchantment"}})),levels:i("int_bounds")},{context:"enchantment"})),e.register("block_predicate",(0,jc.ObjectNode)({blocks:(0,jc.Opt)((0,jc.ListNode)(n({validator:"resource",params:{pool:"block"}}))),tag:(0,jc.Opt)(n({validator:"resource",params:{pool:"$tag/block"}})),nbt:(0,jc.Opt)(n({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:(0,jc.Opt)((0,jc.MapNode)(n(),r,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),e.register("fluid_predicate",(0,jc.ObjectNode)({fluid:(0,jc.Opt)(n({validator:"resource",params:{pool:"fluid"}})),tag:(0,jc.Opt)(n({validator:"resource",params:{pool:"$tag/fluid"}})),state:(0,jc.Opt)((0,jc.MapNode)(n(),r))},{context:"fluid"})),e.register("location_predicate",(0,jc.ObjectNode)({position:(0,jc.Opt)((0,jc.ObjectNode)({x:i("float_bounds"),y:i("float_bounds"),z:i("float_bounds")})),biome:(0,jc.Opt)(n({validator:"resource",params:{pool:"$worldgen/biome"}})),feature:(0,jc.Opt)(n({validator:"resource",params:{pool:"$worldgen/configured_structure_feature"}})),dimension:(0,jc.Opt)(n({validator:"resource",params:{pool:"$dimension"}})),light:(0,jc.Opt)((0,jc.ObjectNode)({light:i("int_bounds")})),smokey:(0,jc.Opt)((0,jc.BooleanNode)()),block:(0,jc.Opt)(i("block_predicate")),fluid:(0,jc.Opt)(i("fluid_predicate"))},{context:"location"})),e.register("statistic_predicate",(0,jc.ObjectNode)({type:n({validator:"resource",params:{pool:"stat_type"}}),stat:n(),value:i("int_bounds"),[jc.Switch]:[{push:"type"}],[jc.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",(0,jc.ObjectNode)({gamemode:(0,jc.Opt)(n({enum:"gamemode"})),level:i("int_bounds"),advancements:(0,jc.Opt)((0,jc.MapNode)(n({validator:"resource",params:{pool:"$advancement"}}),(0,jc.ChoiceNode)([{type:"boolean",node:(0,jc.BooleanNode)(),change:e=>!0},{type:"object",node:(0,jc.MapNode)(n(),(0,jc.BooleanNode)())}]))),recipes:(0,jc.Opt)((0,jc.MapNode)(n({validator:"resource",params:{pool:"$recipe"}}),(0,jc.BooleanNode)())),stats:(0,jc.Opt)((0,jc.ListNode)(i("statistic_predicate"))),looking_at:(0,jc.Opt)(i("entity_predicate"))},{context:"player"})),e.register("status_effect_predicate",(0,jc.ObjectNode)({amplifier:i("int_bounds"),duration:i("int_bounds"),ambient:(0,jc.Opt)((0,jc.BooleanNode)()),visible:(0,jc.Opt)((0,jc.BooleanNode)())},{context:"status_effect"})),e.register("distance_predicate",(0,jc.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",(0,jc.ObjectNode)({type:(0,jc.Opt)(n({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),nbt:(0,jc.Opt)(n({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:(0,jc.Opt)(n({validator:"team"})),location:(0,jc.Opt)(i("location_predicate")),stepping_on:(0,jc.Opt)(i("location_predicate")),distance:(0,jc.Opt)(i("distance_predicate")),flags:(0,jc.Opt)((0,jc.ObjectNode)({is_on_fire:(0,jc.Opt)((0,jc.BooleanNode)()),is_sneaking:(0,jc.Opt)((0,jc.BooleanNode)()),is_sprinting:(0,jc.Opt)((0,jc.BooleanNode)()),is_swimming:(0,jc.Opt)((0,jc.BooleanNode)()),is_baby:(0,jc.Opt)((0,jc.BooleanNode)())})),equipment:(0,jc.Opt)((0,jc.MapNode)(n({enum:"slot"}),i("item_predicate"))),player:(0,jc.Opt)(i("player_predicate")),vehicle:(0,jc.Opt)(i("entity_predicate")),passenger:(0,jc.Opt)(i("entity_predicate")),targeted_entity:(0,jc.Opt)(i("entity_predicate")),lightning_bolt:(0,jc.Opt)((0,jc.ObjectNode)({blocks_set_on_fire:(0,jc.Opt)(i("int_bounds")),entity_struck:(0,jc.Opt)(i("entity_predicate"))})),fishing_hook:(0,jc.Opt)((0,jc.ObjectNode)({in_open_water:(0,jc.Opt)((0,jc.BooleanNode)())})),catType:(0,jc.Opt)(n({enum:"cat_texture"})),effects:(0,jc.Opt)((0,jc.MapNode)(n({validator:"resource",params:{pool:"mob_effect"}}),i("status_effect_predicate")))},{context:"entity"})),e.register("damage_source_predicate",(0,jc.ObjectNode)({is_explosion:(0,jc.Opt)((0,jc.BooleanNode)()),is_fire:(0,jc.Opt)((0,jc.BooleanNode)()),is_magic:(0,jc.Opt)((0,jc.BooleanNode)()),is_projectile:(0,jc.Opt)((0,jc.BooleanNode)()),is_lightning:(0,jc.Opt)((0,jc.BooleanNode)()),bypasses_armor:(0,jc.Opt)((0,jc.BooleanNode)()),bypasses_invulnerability:(0,jc.Opt)((0,jc.BooleanNode)()),bypasses_magic:(0,jc.Opt)((0,jc.BooleanNode)()),source_entity:(0,jc.Opt)(i("entity_predicate")),direct_entity:(0,jc.Opt)(i("entity_predicate"))},{context:"damage_source"})),e.register("damage_predicate",(0,jc.ObjectNode)({dealt:i("float_bounds"),taken:i("float_bounds"),blocked:(0,jc.Opt)((0,jc.BooleanNode)()),source_entity:(0,jc.Opt)(i("entity_predicate")),type:(0,jc.Opt)(i("damage_source_predicate"))},{context:"damage"}))};var Ic={};Object.defineProperty(Ic,"__esModule",{value:!0}),Ic.initRecipeSchemas=void 0;const Pc=Pe;Ic.initRecipeSchemas=function(e,t){const i=Pc.Reference.bind(void 0,e),n=Pc.StringNode.bind(void 0,t);e.register("recipe",(0,Pc.Mod)((0,Pc.ObjectNode)({type:n({validator:"resource",params:{pool:"recipe_serializer"}}),[Pc.Switch]:[{push:"type"}],[Pc.Case]:{"minecraft:crafting_shaped":{group:(0,Pc.Opt)(n({enum:"recipe_group",additional:!0})),pattern:(0,Pc.ListNode)(n()),key:(0,Pc.MapNode)(n(),i("recipe_ingredient")),result:i("recipe_result")},"minecraft:crafting_shapeless":{group:(0,Pc.Opt)(n()),ingredients:(0,Pc.ListNode)(i("recipe_ingredient")),result:i("recipe_result")},"minecraft:smelting":{group:(0,Pc.Opt)(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:(0,Pc.Opt)((0,Pc.NumberNode)()),cookingtime:(0,Pc.Opt)((0,Pc.Mod)((0,Pc.NumberNode)({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:(0,Pc.Opt)(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:(0,Pc.Opt)((0,Pc.NumberNode)()),cookingtime:(0,Pc.Opt)((0,Pc.Mod)((0,Pc.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:(0,Pc.Opt)(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:(0,Pc.Opt)((0,Pc.NumberNode)()),cookingtime:(0,Pc.Opt)((0,Pc.Mod)((0,Pc.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:(0,Pc.Opt)(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:(0,Pc.Opt)((0,Pc.NumberNode)()),cookingtime:(0,Pc.Opt)((0,Pc.Mod)((0,Pc.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:(0,Pc.Opt)(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),count:(0,Pc.NumberNode)({integer:!0})},"minecraft:smithing":{group:(0,Pc.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",(0,Pc.Mod)((0,Pc.ChoiceNode)([{type:"object",node:i("recipe_ingredient_object"),change:e=>e[0]},{type:"list",node:(0,Pc.ListNode)(i("recipe_ingredient_object")),change:e=>[e]}]),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_ingredient_object",(0,Pc.Mod)((0,Pc.ObjectNode)({item:(0,Pc.Opt)(n({validator:"resource",params:{pool:"item"}})),tag:(0,Pc.Opt)(n({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_result",(0,Pc.Mod)((0,Pc.ObjectNode)({item:n({validator:"resource",params:{pool:"item"}}),count:(0,Pc.Opt)((0,Pc.Mod)((0,Pc.NumberNode)({integer:!0}),{default:()=>1}))}),{default:()=>({item:"minecraft:stone"})}))};var zc={};Object.defineProperty(zc,"__esModule",{value:!0}),zc.initTagsSchemas=void 0;const Uc=Pe;zc.initTagsSchemas=function(e,t){const i=Uc.StringNode.bind(void 0,t),n=e=>(0,Uc.Mod)((0,Uc.ObjectNode)({replace:(0,Uc.Opt)((0,Uc.BooleanNode)()),values:(0,Uc.ListNode)((0,Uc.ChoiceNode)([{type:"string",node:i({validator:"resource",params:{pool:e,allowTag:!0}}),change:e=>e.id},{type:"object",node:(0,Uc.ObjectNode)({id:i({validator:"resource",params:{pool:e,allowTag:!0,allowUnknown:!0}}),required:(0,Uc.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")),e.register("advancement_tag",n("$advancement")),e.register("dimension_tag",n("$dimension")),e.register("dimension_type_tag",n("$dimension_type")),e.register("function_tag",n("$function")),e.register("item_modifier_tag",n("$item_modifier")),e.register("loot_table_tag",n("$loot_table")),e.register("predicate_tag",n("$predicate")),e.register("recipe_tag",n("$recipe")),e.register("structure_tag",n("$structure")),e.register("biome_tag",n("$worldgen/biome")),e.register("configured_carver_tag",n("$worldgen/configured_carver")),e.register("configured_decorator_tag",n("$worldgen/configured_decorator")),e.register("configured_feature_tag",n("$worldgen/configured_feature")),e.register("configured_structure_feature_tag",n("$worldgen/configured_structure_feature")),e.register("configured_surface_builder_tag",n("$worldgen/configured_surface_builder")),e.register("density_function_tag",n("$worldgen/density_function")),e.register("noise_tag",n("$worldgen/noise")),e.register("noise_settings_tag",n("$worldgen/noise_settings")),e.register("placed_feature_tag",n("$worldgen/placed_feature")),e.register("processor_list_tag",n("$worldgen/processor_list")),e.register("structure_set_tag",n("$worldgen/structure_set")),e.register("template_pool_tag",n("$worldgen/template_pool"))};var Wc={};Object.defineProperty(Wc,"__esModule",{value:!0}),Wc.initTextComponentSchemas=void 0;const Hc=Pe;Wc.initTextComponentSchemas=function(e,t){const i=Hc.Reference.bind(void 0,e),n=Hc.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",(0,Hc.Mod)((0,Hc.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:(0,Hc.NumberNode)(),change:e=>{const t=parseFloat(r(e));return isFinite(t)?t:e?1:0}},{type:"boolean",node:(0,Hc.BooleanNode)(),change:e=>{const t=r(e);return"true"===t||"false"===t?"true"===t:!!t}}],{context:"text_component"}),{default:()=>({text:""})}));const o={color:(0,Hc.Opt)(n()),font:(0,Hc.Opt)(n()),bold:(0,Hc.Opt)((0,Hc.BooleanNode)()),italic:(0,Hc.Opt)((0,Hc.BooleanNode)()),underlined:(0,Hc.Opt)((0,Hc.BooleanNode)()),strikethrough:(0,Hc.Opt)((0,Hc.BooleanNode)()),obfuscated:(0,Hc.Opt)((0,Hc.BooleanNode)()),insertion:(0,Hc.Opt)(n()),clickEvent:(0,Hc.Opt)((0,Hc.ObjectNode)({action:n({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[Hc.Switch]:[{push:"action"}],[Hc.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:(0,Hc.Opt)((0,Hc.ObjectNode)({action:n({enum:["show_text","show_item","show_entity"]}),[Hc.Switch]:[{push:"action"}],[Hc.Case]:{show_text:{value:(0,Hc.Opt)(i("text_component")),contents:(0,Hc.Opt)(i("text_component"))},show_item:{value:(0,Hc.Opt)(n({validator:"nbt",params:{module:"util::InventoryItem"}})),contents:(0,Hc.Opt)((0,Hc.ObjectNode)({id:n({validator:"resource",params:{pool:"item"}}),count:(0,Hc.Opt)((0,Hc.NumberNode)({integer:!0})),tag:(0,Hc.Opt)(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"id"}]}}}))}))},show_entity:{value:(0,Hc.Opt)((0,Hc.ObjectNode)({name:(0,Hc.Opt)(n()),type:(0,Hc.Opt)(n()),id:(0,Hc.Opt)(n())})),contents:(0,Hc.Opt)((0,Hc.Mod)((0,Hc.ObjectNode)({name:(0,Hc.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:(0,Hc.Opt)(i("text_component_list"))};e.register("text_component_object",(0,Hc.Mod)((0,Hc.ChoiceNode)([{type:"text",match:e=>"object"==typeof e,change:e=>({text:""}),priority:-1,node:(0,Hc.ObjectNode)(s({text:n()},o))},{type:"translation",match:e=>void 0!==(null==e?void 0:e.translate),change:e=>({translate:""}),node:(0,Hc.ObjectNode)(s({translate:n(),with:(0,Hc.Opt)(i("text_component_list"))},o))},{type:"score",match:e=>void 0!==(null==e?void 0:e.score),change:e=>({score:{}}),node:(0,Hc.ObjectNode)(s({score:(0,Hc.ObjectNode)({name:n({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:n({validator:"objective"}),value:(0,Hc.Opt)(n())})},o))},{type:"selector",match:e=>void 0!==(null==e?void 0:e.selector),change:e=>({selector:""}),node:(0,Hc.ObjectNode)(s({selector:n({validator:"entity",params:{amount:"multiple",type:"entities"}}),separator:(0,Hc.Opt)(i("text_component"))},o))},{type:"keybind",match:e=>void 0!==(null==e?void 0:e.keybind),change:e=>({keybind:""}),node:(0,Hc.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:(0,Hc.ObjectNode)(s({nbt:n({validator:"nbt_path"}),block:(0,Hc.Opt)(n({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:(0,Hc.Opt)(n({validator:"entity",params:{amount:"multiple",type:"entities"}})),storage:(0,Hc.Opt)(n({validator:"resource",params:{pool:"$storage"}})),interpret:(0,Hc.Opt)((0,Hc.BooleanNode)()),separator:(0,Hc.Opt)(i("text_component"))},o))}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),e.register("text_component_list",(0,Hc.Mod)((0,Hc.ListNode)(i("text_component")),{default:()=>[{text:""}]}))};var qc={},Vc={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.initBiomeSchemas=e.MobCategorySpawnSettings=void 0;const t=Pe,i=_c;e.initBiomeSchemas=function(n,r){const o=t.StringNode.bind(void 0,r);e.MobCategorySpawnSettings=(0,t.Mod)((0,t.ListNode)((0,t.ObjectNode)({type:o({validator:"resource",params:{pool:"entity_type"}}),weight:(0,t.NumberNode)({integer:!0}),minCount:(0,t.NumberNode)({integer:!0}),maxCount:(0,t.NumberNode)({integer:!0})})),{category:()=>"pool",default:()=>[{type:"minecraft:bat",weight:1}]}),n.register("biome",(0,t.Mod)((0,t.ObjectNode)({temperature:(0,t.NumberNode)(),downfall:(0,t.NumberNode)(),precipitation:o({enum:["none","rain","snow"]}),temperature_modifier:(0,t.Opt)(o({enum:["none","frozen"]})),category:o({enum:"biome_category"}),creature_spawn_probability:(0,t.Opt)((0,t.NumberNode)({min:0,max:1})),effects:(0,t.ObjectNode)({sky_color:(0,t.NumberNode)({color:!0}),fog_color:(0,t.NumberNode)({color:!0}),water_color:(0,t.NumberNode)({color:!0}),water_fog_color:(0,t.NumberNode)({color:!0}),grass_color:(0,t.Opt)((0,t.NumberNode)({color:!0})),foliage_color:(0,t.Opt)((0,t.NumberNode)({color:!0})),grass_color_modifier:(0,t.Opt)(o({enum:["none","dark_forest","swamp"]})),ambient_sound:(0,t.Opt)(o()),mood_sound:(0,t.Opt)((0,t.ObjectNode)({sound:o(),tick_delay:(0,t.NumberNode)({integer:!0}),block_search_extent:(0,t.NumberNode)({integer:!0}),offset:(0,t.NumberNode)()})),additions_sound:(0,t.Opt)((0,t.ObjectNode)({sound:o(),tick_chance:(0,t.NumberNode)({min:0,max:1})})),music:(0,t.Opt)((0,t.ObjectNode)({sound:o(),min_delay:(0,t.NumberNode)({integer:!0,min:0}),max_delay:(0,t.NumberNode)({integer:!0,min:0}),replace_current_music:(0,t.BooleanNode)()})),particle:(0,t.Opt)((0,t.ObjectNode)({options:(0,t.ObjectNode)({type:o()}),probability:(0,t.NumberNode)({min:0,max:1})}))}),spawners:(0,t.MapNode)(o({enum:"mob_category"}),e.MobCategorySpawnSettings),spawn_costs:(0,t.MapNode)(o({validator:"resource",params:{pool:"entity_type"}}),(0,t.Mod)((0,t.ObjectNode)({energy_budget:(0,t.NumberNode)(),charge:(0,t.NumberNode)()},{category:"function"}),{default:()=>({energy_budget:.12,charge:1})})),carvers:(0,t.MapNode)(o({enum:["air","liquid"]}),(0,t.Mod)((0,i.Tag)({resource:"$worldgen/configured_carver",inlineSchema:"configured_carver"}),{default:()=>["minecraft:cave"]})),features:(0,t.ListNode)((0,t.Mod)((0,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}})}))}}(Vc);var Gc={};Object.defineProperty(Gc,"__esModule",{value:!0}),Gc.initCarverSchemas=void 0;const Kc=Pe,Xc=_c;Gc.initCarverSchemas=function(e,t){const i=Kc.Reference.bind(void 0,e),n=Kc.StringNode.bind(void 0,t),r={vertical_rotation:(0,Xc.FloatProvider)(),shape:(0,Kc.ObjectNode)({distance_factor:(0,Xc.FloatProvider)(),thickness:(0,Xc.FloatProvider)(),width_smoothness:(0,Kc.NumberNode)({integer:!0,min:0}),horizontal_radius_factor:(0,Xc.FloatProvider)(),vertical_radius_default_factor:(0,Kc.NumberNode)(),vertical_radius_center_factor:(0,Kc.NumberNode)()})},o={horizontal_radius_multiplier:(0,Xc.FloatProvider)(),vertical_radius_multiplier:(0,Xc.FloatProvider)(),floor_level:(0,Xc.FloatProvider)({min:-1,max:1})};e.register("configured_carver",(0,Kc.Mod)((0,Kc.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/carver"}}),config:(0,Kc.ObjectNode)({probability:(0,Kc.NumberNode)({min:0,max:1}),y:i("height_provider"),yScale:(0,Xc.FloatProvider)(),lava_level:i("vertical_anchor"),debug_settings:(0,Kc.Opt)((0,Kc.ObjectNode)({debug_mode:(0,Kc.Opt)((0,Kc.BooleanNode)()),air_state:(0,Kc.Opt)(i("block_state")),water_state:(0,Kc.Opt)(i("block_state")),lava_state:(0,Kc.Opt)(i("block_state")),barrier_state:(0,Kc.Opt)(i("block_state"))})),[Kc.Switch]:["pop",{push:"type"}],[Kc.Case]:{"minecraft:canyon":r,"minecraft:cave":o,"minecraft:nether_cave":o}})},{context:"carver"}),{default:()=>({type:"minecraft:cave",config:{probability:.1}})}))};var Jc={};Object.defineProperty(Jc,"__esModule",{value:!0}),Jc.initDecoratorSchemas=void 0;const Yc=Pe,Zc=_c;Jc.initDecoratorSchemas=function(e,t){const i=Yc.Reference.bind(void 0,e),n=Yc.StringNode.bind(void 0,t);e.register("decorator",(0,Yc.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/placement_modifier_type"}}),[Yc.Switch]:[{push:"type"}],[Yc.Case]:{"minecraft:block_predicate_filter":{predicate:i("block_predicate_worldgen")},"minecraft:carving_mask":{step:n({enum:"generation_step"})},"minecraft:rarity_filter":{chance:(0,Yc.NumberNode)({integer:!0,min:0})},"minecraft:count":{count:(0,Zc.IntProvider)({min:0,max:256})},"minecraft:count_on_every_layer":{count:(0,Zc.IntProvider)({min:0,max:256})},"minecraft:noise_threshold_count":{noise_level:(0,Yc.NumberNode)(),below_noise:(0,Yc.NumberNode)({integer:!0}),above_noise:(0,Yc.NumberNode)({integer:!0})},"minecraft:noise_based_count":{noise_to_count_ratio:(0,Yc.NumberNode)({integer:!0}),noise_factor:(0,Yc.NumberNode)(),noise_offset:(0,Yc.Opt)((0,Yc.NumberNode)())},"minecraft:environment_scan":{direction_of_search:n({enum:["up","down"]}),max_steps:(0,Yc.NumberNode)({integer:!0,min:1,max:32}),target_condition:i("block_predicate_worldgen"),allowed_search_condition:(0,Yc.Opt)(i("block_predicate_worldgen"))},"minecraft:heightmap":{heightmap:n({enum:"heightmap_type"})},"minecraft:height_range":{height:i("height_provider")},"minecraft:random_offset":{xz_spread:(0,Zc.IntProvider)({min:-16,max:16}),y_spread:(0,Zc.IntProvider)({min:-16,max:16})},"minecraft:surface_relative_threshold_filter":{heightmap:n({enum:"heightmap_type"}),min_inclusive:(0,Yc.Opt)((0,Yc.NumberNode)({integer:!0})),max_inclusive:(0,Yc.Opt)((0,Yc.NumberNode)({integer:!0}))},"minecraft:surface_water_depth_filter":{max_water_depth:(0,Yc.NumberNode)({integer:!0})}}},{context:"decorator",category:"predicate"}))};var Qc={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.initDensityFunctionSchemas=e.DensityFunction=void 0;const t=Pe;e.initDensityFunctionSchemas=function(i,n){const r=t.StringNode.bind(void 0,n),o=t.Reference.bind(void 0,i);e.DensityFunction=(0,t.Mod)((0,t.ChoiceNode)([{type:"number",node:(0,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=(0,t.ChoiceNode)([{type:"string",node:r({validator:"resource",params:{pool:"$worldgen/noise"}}),change:()=>{}},{type:"object",node:o("noise_parameters")}],{choiceContext:"noise_parameters"}),s=(0,t.NumberNode)({min:-1e6,max:1e6}),c=(0,t.NumberNode)({integer:!0,min:-4064,max:4062});i.register("density_function",(0,t.Mod)((0,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:blend_density":{argument: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:constant":{argument:(0,t.NumberNode)()},"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:(0,t.NumberNode)(),y_scale:(0,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:(0,t.NumberNode)(),y_scale:(0,t.NumberNode)(),shift_x:e.DensityFunction,shift_y:e.DensityFunction,shift_z:e.DensityFunction},"minecraft:slide":{argument:e.DensityFunction},"minecraft:spline":{spline:o("cubic_spline"),min_value:s,max_value:s},"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}),{default:()=>({type:"minecraft:noise",noise:"minecraft:cave_entrance",xz_scale:.75,y_scale:.5})})),i.register("cubic_spline",(0,t.Mod)((0,t.ChoiceNode)([{type:"number",node:(0,t.NumberNode)()},{type:"object",node:(0,t.ObjectNode)({coordinate:e.DensityFunction,points:(0,t.ListNode)((0,t.ObjectNode)({location:(0,t.NumberNode)(),derivative:(0,t.NumberNode)(),value:o("cubic_spline")}))},{category:"function"})}],{context:"terrain_spline",choiceContext:"terrain_spline"}),{default:()=>0}))}}(Qc);var el={},tl={};Object.defineProperty(tl,"__esModule",{value:!0}),tl.initProcessorListSchemas=tl.Processors=void 0;const il=Pe;tl.initProcessorListSchemas=function(e,t){const i=il.Reference.bind(void 0,e),n=il.StringNode.bind(void 0,t);tl.Processors=(0,il.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",(0,il.Mod)((0,il.ObjectNode)({processors:(0,il.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",(0,il.Mod)((0,il.ObjectNode)({processor_type:n({validator:"resource",params:{pool:"worldgen/structure_processor"}}),[il.Switch]:[{push:"processor_type"}],[il.Case]:{"minecraft:block_age":{mossiness:(0,il.NumberNode)()},"minecraft:block_ignore":{blocks:(0,il.ListNode)(i("block_state"))},"minecraft:block_rot":{integrity:(0,il.NumberNode)({min:0,max:1})},"minecraft:gravity":{heightmap:n({enum:"heightmap_type"}),offset:(0,il.NumberNode)({integer:!0})},"minecraft:protected_blocks":{value:n({validator:"resource",params:{pool:"block",requireTag:!0}})},"minecraft:rule":{rules:(0,il.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",(0,il.Mod)((0,il.ObjectNode)({position_predicate:(0,il.Opt)(i("pos_rule_test")),location_predicate:i("rule_test"),input_predicate:i("rule_test"),output_state:i("block_state"),output_nbt:(0,il.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:(0,il.Opt)((0,il.NumberNode)({min:0,max:255,integer:!0})),max_dist:(0,il.Opt)((0,il.NumberNode)({min:0,max:255,integer:!0})),min_chance:(0,il.Opt)((0,il.NumberNode)({min:0,max:1})),max_chance:(0,il.Opt)((0,il.NumberNode)({min:0,max:1}))};e.register("pos_rule_test",(0,il.ObjectNode)({predicate_type:n({validator:"resource",params:{pool:"pos_rule_test"}}),[il.Switch]:[{push:"predicate_type"}],[il.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",(0,il.ObjectNode)({predicate_type:n({validator:"resource",params:{pool:"rule_test"}}),[il.Switch]:[{push:"predicate_type"}],[il.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:(0,il.NumberNode)({min:0,max:1})},"minecraft:random_blockstate_match":{block_state:i("block_state"),probability:(0,il.NumberNode)({min:0,max:1})},"minecraft:tag_match":{tag:n({validator:"resource",params:{pool:"$tag/block"}})}}},{context:"rule_test",disableSwitchContext:!0}))},Object.defineProperty(el,"__esModule",{value:!0}),el.initFeatureSchemas=void 0;const nl=Pe,rl=_c,ol=tl;el.initFeatureSchemas=function(e,t){const i=nl.Reference.bind(void 0,e),n=nl.StringNode.bind(void 0,t),r=(0,nl.ChoiceNode)([{type:"string",node:n({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},{type:"object",node:i("configured_feature")}],{choiceContext:"feature"}),o=(0,nl.ChoiceNode)([{type:"string",node:n({validator:"resource",params:{pool:"$worldgen/placed_feature"}})},{type:"object",node:i("placed_feature")}],{choiceContext:"placed_feature"}),a={tries:(0,nl.Opt)((0,nl.NumberNode)({integer:!0,min:1})),xz_spread:(0,nl.Opt)((0,nl.NumberNode)({integer:!0,min:0})),y_spread:(0,nl.Opt)((0,nl.NumberNode)({integer:!0,min:0})),feature:o},l={state:i("block_state"),radius:(0,rl.IntProvider)({min:0,max:8}),half_height:(0,nl.NumberNode)({integer:!0,min:0,max:4}),targets:(0,nl.ListNode)(i("block_state"))},u={cap_provider:i("block_state_provider"),stem_provider:i("block_state_provider"),foliage_radius:(0,nl.Opt)((0,nl.NumberNode)({integer:!0}))},d=(0,nl.ObjectNode)({target:i("rule_test"),state:i("block_state")}),h={size:(0,nl.NumberNode)({integer:!0,min:0,max:64}),discard_chance_on_air_exposure:(0,nl.NumberNode)({min:0,max:1}),targets:(0,nl.ListNode)(d)},p={surface:n({enum:"cave_surface"}),depth:(0,rl.IntProvider)({min:1,max:128}),vertical_range:(0,nl.NumberNode)({integer:!0,min:1,max:256}),extra_bottom_block_chance:(0,nl.NumberNode)({min:0,max:1}),extra_edge_column_chance:(0,nl.NumberNode)({min:0,max:1}),vegetation_chance:(0,nl.NumberNode)({min:0,max:1}),xz_radius:(0,rl.IntProvider)(),replaceable:n({validator:"resource",params:{pool:"block",requireTag:!0}}),ground_state:i("block_state_provider"),vegetation_feature:o};e.register("configured_feature",(0,nl.Mod)((0,nl.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/feature"}}),config:(0,nl.ObjectNode)({[nl.Switch]:["pop",{push:"type"}],[nl.Case]:{"minecraft:bamboo":{probability:(0,nl.NumberNode)({min:0,max:1})},"minecraft:basalt_columns":{reach:(0,rl.IntProvider)({min:0,max:3}),height:(0,rl.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:(0,nl.BooleanNode)(),layers:(0,nl.ListNode)((0,nl.ObjectNode)({height:(0,rl.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:(0,rl.IntProvider)({min:0,max:16}),rim_size:(0,rl.IntProvider)({min:0,max:16})},"minecraft:disk":l,"minecraft:dripstone_cluster":{floor_to_ceiling_search_range:(0,nl.NumberNode)({integer:!0,min:1,max:512}),height:(0,rl.IntProvider)({min:0,max:128}),radius:(0,rl.IntProvider)({min:0,max:128}),max_stalagmite_stalactite_height_diff:(0,nl.NumberNode)({integer:!0,min:0,max:64}),height_deviation:(0,nl.NumberNode)({integer:!0,min:1,max:64}),dripstone_block_layer_thickness:(0,rl.IntProvider)({min:0,max:128}),density:(0,rl.FloatProvider)({min:0,max:2}),wetness:(0,rl.FloatProvider)({min:0,max:2}),chance_of_dripstone_column_at_max_distance_from_center:(0,nl.NumberNode)({min:0,max:1}),max_distance_from_edge_affecting_chance_of_dripstone_column:(0,nl.NumberNode)({integer:!0,min:1,max:64}),max_distance_from_center_affecting_height_bias:(0,nl.NumberNode)({integer:!0,min:1,max:64})},"minecraft:end_gateway":{exact:(0,nl.BooleanNode)(),exit:(0,nl.Opt)(i("block_pos"))},"minecraft:end_spike":{crystal_invulnerable:(0,nl.Opt)((0,nl.BooleanNode)()),crystal_beam_target:(0,nl.Opt)(i("block_pos")),spikes:(0,nl.ListNode)((0,nl.ObjectNode)({centerX:(0,nl.Opt)((0,nl.NumberNode)({integer:!0})),centerZ:(0,nl.Opt)((0,nl.NumberNode)({integer:!0})),radius:(0,nl.Opt)((0,nl.NumberNode)({integer:!0})),height:(0,nl.Opt)((0,nl.NumberNode)({integer:!0})),guarded:(0,nl.Opt)((0,nl.BooleanNode)())}))},"minecraft:fill_layer":{state:i("block_state"),height:(0,nl.NumberNode)({integer:!0,min:0,max:255})},"minecraft:flower":a,"minecraft:forest_rock":{state:i("block_state")},"minecraft:fossil":{max_empty_corners_allowed:(0,nl.NumberNode)({integer:!0,min:0,max:7}),fossil_structures:(0,nl.ListNode)(n({validator:"resource",params:{pool:"$structure"}})),overlay_structures:(0,nl.ListNode)(n({validator:"resource",params:{pool:"$structure"}})),fossil_processors:ol.Processors,overlay_processors:ol.Processors},"minecraft:geode":{blocks:(0,nl.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:(0,nl.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:(0,nl.ObjectNode)({filling:(0,nl.Opt)((0,nl.NumberNode)({min:.01,max:50})),inner_layer:(0,nl.Opt)((0,nl.NumberNode)({min:.01,max:50})),middle_layer:(0,nl.Opt)((0,nl.NumberNode)({min:.01,max:50})),outer_layer:(0,nl.Opt)((0,nl.NumberNode)({min:.01,max:50}))}),crack:(0,nl.ObjectNode)({generate_crack_chance:(0,nl.Opt)((0,nl.NumberNode)({min:0,max:1})),base_crack_size:(0,nl.Opt)((0,nl.NumberNode)({min:0,max:5})),crack_point_offset:(0,nl.Opt)((0,nl.NumberNode)({min:0,max:10}))}),noise_multiplier:(0,nl.Opt)((0,nl.NumberNode)({min:0,max:1})),use_potential_placements_chance:(0,nl.Opt)((0,nl.NumberNode)({min:0,max:1})),use_alternate_layer0_chance:(0,nl.Opt)((0,nl.NumberNode)({min:0,max:1})),placements_require_layer0_alternate:(0,nl.Opt)((0,nl.BooleanNode)()),outer_wall_distance:(0,nl.Opt)((0,rl.IntProvider)({min:1,max:20})),distribution_points:(0,nl.Opt)((0,rl.IntProvider)({min:1,max:20})),point_offset:(0,nl.Opt)((0,rl.IntProvider)({min:0,max:10})),min_gen_offset:(0,nl.Opt)((0,nl.NumberNode)({integer:!0})),max_gen_offset:(0,nl.Opt)((0,nl.NumberNode)({integer:!0})),invalid_blocks_threshold:(0,nl.NumberNode)({integer:!0})},"minecraft:glow_lichen":{search_range:(0,nl.Opt)((0,nl.NumberNode)({min:1,max:64,integer:!0})),chance_of_spreading:(0,nl.Opt)((0,nl.NumberNode)({min:0,max:1})),can_place_on_floor:(0,nl.Opt)((0,nl.BooleanNode)()),can_place_on_ceiling:(0,nl.Opt)((0,nl.BooleanNode)()),can_place_on_wall:(0,nl.Opt)((0,nl.BooleanNode)()),can_be_placed_on:(0,rl.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:(0,nl.Opt)((0,nl.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:(0,nl.Opt)((0,nl.NumberNode)({integer:!0,min:1,max:512})),column_radius:(0,rl.IntProvider)({min:0,max:60}),height_scale:(0,rl.FloatProvider)({min:0,max:20}),max_column_radius_to_cave_height_ratio:(0,nl.NumberNode)({min:0,max:1}),stalactite_bluntness:(0,rl.FloatProvider)({min:.1,max:10}),stalagmite_bluntness:(0,rl.FloatProvider)({min:.1,max:10}),wind_speed:(0,rl.FloatProvider)({min:0,max:2}),min_radius_for_wind:(0,nl.NumberNode)({integer:!0,min:0,max:100}),min_bluntness_for_wind:(0,nl.NumberNode)({min:0,max:5})},"minecraft:nether_forest_vegetation":{state_provider:i("block_state_provider"),spread_width:(0,nl.NumberNode)({integer:!0,min:1}),spread_height:(0,nl.NumberNode)({integer:!0,min:1})},"minecraft:netherrack_replace_blobs":{state:i("block_state"),target:i("block_state"),radius:(0,rl.IntProvider)({min:0,max:12})},"minecraft:no_bonemeal_flower":a,"minecraft:ore":h,"minecraft:pointed_dripstone":{chance_of_taller_dripstone:(0,nl.Opt)((0,nl.NumberNode)({min:0,max:1})),chance_of_directional_spread:(0,nl.Opt)((0,nl.NumberNode)({min:0,max:1})),chance_of_spread_radius2:(0,nl.Opt)((0,nl.NumberNode)({min:0,max:1})),chance_of_spread_radius3:(0,nl.Opt)((0,nl.NumberNode)({min:0,max:1}))},"minecraft:random_patch":a,"minecraft:random_boolean_selector":{feature_false:o,feature_true:o},"minecraft:random_selector":{features:(0,nl.ListNode)((0,nl.ObjectNode)({chance:(0,nl.NumberNode)({min:0,max:1}),feature:o})),default:o},"minecraft:replace_single_block":{targets:(0,nl.ListNode)(d)},"minecraft:root_system":{required_vertical_space_for_tree:(0,nl.NumberNode)({integer:!0,min:1,max:64}),root_radius:(0,nl.NumberNode)({integer:!0,min:1,max:64}),root_placement_attempts:(0,nl.NumberNode)({integer:!0,min:1,max:256}),root_column_max_height:(0,nl.NumberNode)({integer:!0,min:1,max:4096}),hanging_root_radius:(0,nl.NumberNode)({integer:!0,min:1,max:64}),hanging_roots_vertical_span:(0,nl.NumberNode)({integer:!0,min:0,max:16}),hanging_root_placement_attempts:(0,nl.NumberNode)({integer:!0,min:0,max:256}),allowed_vertical_water_for_tree:(0,nl.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:(0,rl.IntProvider)({min:0,max:256})},"minecraft:seagrass":{probability:(0,nl.NumberNode)({min:0,max:1})},"minecraft:simple_block":{to_place:i("block_state_provider")},"minecraft:simple_random_selector":{features:(0,rl.Tag)({resource:"$worldgen/placed_feature",inlineSchema:"placed_feature"})},"minecraft:spring_feature":{state:i("fluid_state"),rock_count:(0,nl.NumberNode)({integer:!0}),hole_count:(0,nl.NumberNode)({integer:!0}),requires_block_below:(0,nl.BooleanNode)(),valid_blocks:(0,rl.Tag)({resource:"block"})},"minecraft:tree":{ignore_vines:(0,nl.Opt)((0,nl.BooleanNode)()),force_dirt:(0,nl.Opt)((0,nl.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:(0,nl.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/trunk_placer_type"}}),base_height:(0,nl.NumberNode)({integer:!0,min:0,max:32}),height_rand_a:(0,nl.NumberNode)({integer:!0,min:0,max:24}),height_rand_b:(0,nl.NumberNode)({integer:!0,min:0,max:24}),[nl.Switch]:[{push:"type"}],[nl.Case]:{"minecraft:bending_trunk_placer":{bend_length:(0,rl.IntProvider)({min:1,max:64}),min_height_for_leaves:(0,nl.Opt)((0,nl.NumberNode)({integer:!0,min:1}))}}},{context:"trunk_placer"}),foliage_placer:(0,nl.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/foliage_placer_type"}}),radius:(0,rl.IntProvider)({min:0,max:16}),offset:(0,rl.IntProvider)({min:0,max:16}),[nl.Switch]:[{push:"type"}],[nl.Case]:{"minecraft:blob_foliage_placer":{height:(0,nl.NumberNode)({integer:!0,min:0,max:16})},"minecraft:bush_foliage_placer":{height:(0,nl.NumberNode)({integer:!0,min:0,max:16})},"minecraft:fancy_foliage_placer":{height:(0,nl.NumberNode)({integer:!0,min:0,max:16})},"minecraft:jungle_foliage_placer":{height:(0,nl.NumberNode)({integer:!0,min:0,max:16})},"minecraft:mega_pine_foliage_placer":{crown_height:(0,rl.IntProvider)({min:0,max:24})},"minecraft:pine_foliage_placer":{height:(0,rl.IntProvider)({min:0,max:24})},"minecraft:random_spread_foliage_placer":{foliage_height:(0,rl.IntProvider)({min:1,max:512}),leaf_placement_attempts:(0,nl.NumberNode)({integer:!0,min:0,max:256})},"minecraft:spruce_foliage_placer":{trunk_height:(0,rl.IntProvider)({min:0,max:24})}}},{context:"foliage_placer",disableSwitchContext:!0}),decorators:(0,nl.ListNode)((0,nl.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/tree_decorator_type"}}),[nl.Switch]:[{push:"type"}],[nl.Case]:{"minecraft:alter_ground":{provider:i("block_state_provider")},"minecraft:beehive":{probability:(0,nl.NumberNode)({min:0,max:1})},"minecraft:cocoa":{probability:(0,nl.NumberNode)({min:0,max:1})}}},{context:"tree_decorator"}))},"minecraft:twisting_vines":{spread_width:(0,nl.NumberNode)({integer:!0,min:1}),spread_height:(0,nl.NumberNode)({integer:!0,min:1}),max_height:(0,nl.NumberNode)({integer:!0,min:1})},"minecraft:underwater_magma":{floor_search_range:(0,nl.NumberNode)({integer:!0,min:0,max:512}),placement_radius_around_floor:(0,nl.NumberNode)({integer:!0,min:0,max:64}),placement_probability_per_valid_position:(0,nl.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",(0,nl.Mod)((0,nl.ObjectNode)({feature:r,placement:(0,nl.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",(0,nl.Mod)((0,nl.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/feature_size_type"}}),min_clipped_height:(0,nl.Opt)((0,nl.NumberNode)({min:0,max:80})),[nl.Switch]:[{push:"type"}],[nl.Case]:{"minecraft:two_layers_feature_size":{limit:(0,nl.Opt)((0,nl.NumberNode)({integer:!0,min:0,max:81})),lower_size:(0,nl.Opt)((0,nl.NumberNode)({integer:!0,min:0,max:16})),upper_size:(0,nl.Opt)((0,nl.NumberNode)({integer:!0,min:0,max:16}))},"minecraft:three_layers_feature_size":{limit:(0,nl.Opt)((0,nl.NumberNode)({integer:!0,min:0,max:80})),upper_limit:(0,nl.Opt)((0,nl.NumberNode)({integer:!0,min:0,max:80})),lower_size:(0,nl.Opt)((0,nl.NumberNode)({integer:!0,min:0,max:16})),middle_size:(0,nl.Opt)((0,nl.NumberNode)({integer:!0,min:0,max:16})),upper_size:(0,nl.Opt)((0,nl.NumberNode)({integer:!0,min:0,max:16}))}}},{disableSwitchContext:!0}),{default:()=>({type:"minecraft:two_layers_feature_size"})}));const m={seed:(0,nl.NumberNode)({integer:!0}),noise:i("noise_parameters"),scale:(0,nl.Mod)((0,nl.NumberNode)({min:Number.MIN_VALUE}),{default:()=>1})};e.register("block_state_provider",(0,nl.Mod)((0,nl.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/block_state_provider_type"}}),[nl.Switch]:[{push:"type"}],[nl.Case]:{"minecraft:dual_noise_provider":c(s({},m),{variety:(0,rl.InclusiveRange)({integer:!0,min:1,max:64}),slow_noise:i("noise_parameters"),slow_scale:(0,nl.Mod)((0,nl.NumberNode)({min:Number.MIN_VALUE}),{default:()=>1}),states:(0,nl.ListNode)(i("block_state"))}),"minecraft:noise_threshold_provider":c(s({},m),{threshold:(0,nl.NumberNode)({min:-1,max:1}),high_chance:(0,nl.NumberNode)({min:0,max:1}),default_state:i("block_state"),low_states:(0,nl.ListNode)(i("block_state")),high_states:(0,nl.ListNode)(i("block_state"))}),"minecraft:noise_provider":c(s({},m),{states:(0,nl.ListNode)(i("block_state"))}),"minecraft:randomized_int_state_provider":{property:n(),values:(0,rl.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:(0,nl.ListNode)((0,nl.Mod)((0,nl.ObjectNode)({weight:(0,nl.NumberNode)({integer:!0,min:1}),data:i("block_state")}),{default:()=>({data:{}})}))}}},{context:"block_state_provider"}),{default:()=>({type:"minecraft:simple_state_provider"})}));const f={offset:(0,nl.Opt)((0,nl.ListNode)((0,nl.NumberNode)({integer:!0,min:-16,max:16}),{minLength:3,maxLength:3}))};e.register("block_predicate_worldgen",(0,nl.Mod)((0,nl.ObjectNode)({type:n({validator:"resource",params:{pool:"block_predicate_type"}}),[nl.Switch]:[{push:"type"}],[nl.Case]:{"minecraft:all_of":{predicates:(0,nl.ListNode)(i("block_predicate_worldgen"))},"minecraft:any_of":{predicates:(0,nl.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:(0,rl.Tag)({resource:"block"})}),"minecraft:matching_fluids":c(s({},f),{fluids:(0,rl.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 al={};Object.defineProperty(al,"__esModule",{value:!0}),al.initNoiseSettingsSchemas=void 0;const sl=Pe,cl=_c,ll=Qc;al.initNoiseSettingsSchemas=function(e,t){const i=sl.Reference.bind(void 0,e),n=sl.StringNode.bind(void 0,t);e.register("noise_settings",(0,sl.Mod)((0,sl.ObjectNode)({sea_level:(0,sl.NumberNode)({integer:!0}),disable_mob_generation:(0,sl.BooleanNode)(),aquifers_enabled:(0,sl.BooleanNode)(),ore_veins_enabled:(0,sl.BooleanNode)(),legacy_random_source:(0,sl.BooleanNode)(),default_block:i("block_state"),default_fluid:i("block_state"),noise:(0,sl.ObjectNode)({min_y:(0,sl.NumberNode)({integer:!0,min:-2048,max:2047}),height:(0,sl.NumberNode)({integer:!0,min:0,max:4096}),size_horizontal:(0,sl.NumberNode)({integer:!0}),size_vertical:(0,sl.NumberNode)({integer:!0}),sampling:(0,sl.ObjectNode)({xz_scale:(0,sl.NumberNode)(),y_scale:(0,sl.NumberNode)(),xz_factor:(0,sl.NumberNode)(),y_factor:(0,sl.NumberNode)()}),bottom_slide:i("noise_slider"),top_slide:i("noise_slider"),terrain_shaper:i("terrain_shaper")}),noise_router:(0,sl.ObjectNode)({barrier:ll.DensityFunction,fluid_level_floodedness:ll.DensityFunction,fluid_level_spread:ll.DensityFunction,lava:ll.DensityFunction,temperature:ll.DensityFunction,vegetation:ll.DensityFunction,continents:ll.DensityFunction,erosion:ll.DensityFunction,depth:ll.DensityFunction,ridges:ll.DensityFunction,initial_density_without_jaggedness:ll.DensityFunction,final_density:ll.DensityFunction,vein_toggle:ll.DensityFunction,vein_ridged:ll.DensityFunction,vein_gap:ll.DensityFunction}),surface_rule:i("material_rule")},{context:"noise_settings"}),(e=>({default:()=>cl.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",(0,sl.ObjectNode)({target:(0,sl.NumberNode)(),size:(0,sl.NumberNode)({integer:!0,min:0}),offset:(0,sl.NumberNode)({integer:!0})})),e.register("generator_layer",(0,sl.Mod)((0,sl.ObjectNode)({block:n({validator:"resource",params:{pool:"block"}}),height:(0,sl.NumberNode)({integer:!0,min:1})}),{default:()=>({block:"minecraft:stone",height:1})})),e.register("terrain_shaper",(0,sl.Mod)((0,sl.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",(0,sl.Mod)((0,sl.ChoiceNode)([{type:"number",node:(0,sl.NumberNode)()},{type:"object",node:(0,sl.ObjectNode)({coordinate:(0,sl.Mod)(n({enum:["continents","erosion","weirdness","ridges"]}),{default:()=>"continents"}),points:(0,sl.ListNode)((0,sl.ObjectNode)({location:(0,sl.NumberNode)(),derivative:(0,sl.NumberNode)(),value:i("terrain_spline")}))},{category:"function"})}],{context:"terrain_spline",choiceContext:"terrain_spline"}),{default:()=>0}))};var ul={};Object.defineProperty(ul,"__esModule",{value:!0}),ul.initStructureFeatureSchemas=void 0;const dl=Pe,hl=_c,pl=Vc;ul.initStructureFeatureSchemas=function(e,t){const i=dl.StringNode.bind(void 0,t),n=dl.Reference.bind(void 0,e),r={start_pool:i({validator:"resource",params:{pool:"$worldgen/template_pool"}}),size:(0,dl.NumberNode)({integer:!0})};e.register("configured_structure_feature",(0,dl.Mod)((0,dl.ObjectNode)({type:i({validator:"resource",params:{pool:"worldgen/structure_feature"}}),biomes:(0,hl.Tag)({resource:"$worldgen/biome"}),adapt_noise:(0,dl.Opt)((0,dl.BooleanNode)()),spawn_overrides:(0,dl.MapNode)(i({enum:"mob_category"}),(0,dl.ObjectNode)({bounding_box:i({enum:["piece","full"]}),spawns:pl.MobCategorySpawnSettings})),config:(0,dl.ObjectNode)({[dl.Switch]:["pop",{push:"type"}],[dl.Case]:{"minecraft:bastion_remnant":r,"minecraft:buried_treasure":{probability:(0,dl.NumberNode)({min:0,max:1})},"minecraft:mineshaft":{type:i({enum:["normal","mesa"]}),probability:(0,dl.NumberNode)({min:0,max:1})},"minecraft:nether_fossil":{height:n("height_provider")},"minecraft:ocean_ruin":{biome_temp:i({enum:["cold","warm"]}),large_probability:(0,dl.NumberNode)({min:0,max:1}),cluster_probability:(0,dl.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:(0,dl.Opt)((0,dl.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 ml={};Object.defineProperty(ml,"__esModule",{value:!0}),ml.initStructureSetSchemas=void 0;const fl=Pe,gl=_c;ml.initStructureSetSchemas=function(e,t){const i=fl.StringNode.bind(void 0,t),n=fl.Reference.bind(void 0,e);e.register("structure_set",(0,fl.ObjectNode)({structures:(0,fl.ListNode)((0,fl.ObjectNode)({structure:(0,gl.Tag)({resource:"$worldgen/configured_structure_feature"}),weight:(0,fl.NumberNode)({integer:!0,min:1})})),placement:n("structure_placement")},{context:"structure_set"})),e.register("structure_placement",(0,fl.Mod)((0,fl.ObjectNode)({type:i({validator:"resource",params:{pool:"worldgen/structure_placement"}}),[fl.Switch]:[{push:"type"}],[fl.Case]:{"minecraft:concentric_rings":{distance:(0,fl.NumberNode)({integer:!0,min:0,max:1023}),spread:(0,fl.NumberNode)({integer:!0,min:0,max:1023}),count:(0,fl.NumberNode)({integer:!0,min:1,max:4095})},"minecraft:random_spread":{spread_type:(0,fl.Opt)(i({enum:["linear","triangular"]})),spacing:(0,fl.NumberNode)({integer:!0,min:0,max:4096}),separation:(0,fl.Mod)((0,fl.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:(0,fl.NumberNode)({integer:!0,min:0}),locate_offset:(0,fl.Opt)((0,fl.ListNode)((0,fl.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 _l={};Object.defineProperty(_l,"__esModule",{value:!0}),_l.initSurfaceRuleSchemas=void 0;const bl=Pe;_l.initSurfaceRuleSchemas=function(e,t){const i=bl.StringNode.bind(void 0,t),n=bl.Reference.bind(void 0,e);e.register("material_rule",(0,bl.Mod)((0,bl.ObjectNode)({type:i({validator:"resource",params:{pool:"worldgen/material_rule"}}),[bl.Switch]:[{push:"type"}],[bl.Case]:{"minecraft:block":{result_state:n("block_state")},"minecraft:condition":{if_true:n("material_condition"),then_run:n("material_rule")},"minecraft:sequence":{sequence:(0,bl.ListNode)(n("material_rule"))}}},{context:"material_rule",category:"pool"}),{default:()=>({type:"minecraft:block",result_state:{Name:"minecraft:stone"}})})),e.register("material_condition",(0,bl.Mod)((0,bl.ObjectNode)({type:i({validator:"resource",params:{pool:"worldgen/material_condition"}}),[bl.Switch]:[{push:"type"}],[bl.Case]:{"minecraft:biome":{biome_is:(0,bl.ListNode)(i({validator:"resource",params:{pool:"$worldgen/biome"}}))},"minecraft:noise_threshold":{noise:i({validator:"resource",params:{pool:"$worldgen/noise"}}),min_threshold:(0,bl.NumberNode)(),max_threshold:(0,bl.NumberNode)()},"minecraft:not":{invert:n("material_condition")},"minecraft:stone_depth":{offset:(0,bl.NumberNode)({integer:!0}),surface_type:i({enum:"cave_surface"}),add_surface_depth:(0,bl.BooleanNode)(),secondary_depth_range:(0,bl.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:(0,bl.NumberNode)({integer:!0}),surface_depth_multiplier:(0,bl.NumberNode)({integer:!0,min:-20,max:20}),add_stone_depth:(0,bl.BooleanNode)()},"minecraft:y_above":{anchor:n("vertical_anchor"),surface_depth_multiplier:(0,bl.NumberNode)({integer:!0,min:-20,max:20}),add_stone_depth:(0,bl.BooleanNode)()}}},{context:"material_condition"}),{default:()=>({type:"minecraft:biome",is_biome:"minecraft:plains"})}))};var vl={};Object.defineProperty(vl,"__esModule",{value:!0}),vl.initTemplatePoolSchemas=void 0;const yl=Pe,wl=tl;vl.initTemplatePoolSchemas=function(e,t){const i=yl.Reference.bind(void 0,e),n=yl.StringNode.bind(void 0,t);e.register("template_pool",(0,yl.Mod)((0,yl.ObjectNode)({name:n(),fallback:n(),elements:(0,yl.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",(0,yl.Mod)((0,yl.ObjectNode)({weight:(0,yl.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",(0,yl.Mod)((0,yl.ObjectNode)({element_type:n({validator:"resource",params:{pool:"worldgen/structure_pool_element"}}),projection:n({enum:["rigid","terrain_matching"]}),[yl.Switch]:[{push:"element_type"}],[yl.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:wl.Processors},"minecraft:list_pool_element":{elements:(0,yl.ListNode)(i("template_element"))},"minecraft:single_pool_element":{location:n({validator:"resource",params:{pool:"$structure"}}),processors:wl.Processors}}},{context:"template_element",disableSwitchContext:!0}),{default:()=>({element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"})}))},Object.defineProperty(qc,"__esModule",{value:!0}),qc.initWorldgenSchemas=void 0;const xl=Vc,Nl=Gc,kl=Jc,Al=Qc,Cl=el,Ol=al,Sl=tl,El=ul,Fl=ml,Dl=_l,Bl=vl;qc.initWorldgenSchemas=function(e,t){(0,Sl.initProcessorListSchemas)(e,t),(0,Al.initDensityFunctionSchemas)(e,t),(0,xl.initBiomeSchemas)(e,t),(0,Nl.initCarverSchemas)(e,t),(0,kl.initDecoratorSchemas)(e,t),(0,Cl.initFeatureSchemas)(e,t),(0,Ol.initNoiseSettingsSchemas)(e,t),(0,El.initStructureFeatureSchemas)(e,t),(0,Fl.initStructureSetSchemas)(e,t),(0,Dl.initSurfaceRuleSchemas)(e,t),(0,Bl.initTemplatePoolSchemas)(e,t)};var Ll={};Object.defineProperty(Ll,"__esModule",{value:!0}),Ll.initWorldSettingsSchemas=void 0;const Ml=Pe;Ll.initWorldSettingsSchemas=function(e,t){const i=Ml.Reference.bind(void 0,e),n=Ml.StringNode.bind(void 0,t);e.register("world_settings",(0,Ml.Mod)((0,Ml.ObjectNode)({generate_features:(0,Ml.BooleanNode)(),bonus_chest:(0,Ml.BooleanNode)(),seed:(0,Ml.NumberNode)({integer:!0}),dimensions:(0,Ml.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(sc,"__esModule",{value:!0}),sc.initSchemas=void 0;const Tl=cc,Rl=uc,$l=_c,jl=bc,Il=wc,Pl=kc,zl=Oc,Ul=Fc,Wl=Tc,Hl=$c,ql=Ic,Vl=zc,Gl=Wc,Kl=qc,Xl=Ll;sc.initSchemas=function(e,t){(0,$l.initCommonSchemas)(e,t),(0,Tl.initAdvancementSchemas)(e,t),(0,Rl.initAssetsSchemas)(e,t),(0,jl.initConditionSchemas)(e,t),(0,Pl.initDimensionTypeSchemas)(e,t),(0,Il.initDimensionSchemas)(e,t),(0,zl.initItemModifierSchemas)(e,t),(0,Ul.initLootTableSchemas)(e,t),(0,Wl.initPackMcmetaSchemas)(e,t),(0,Hl.initPredicatesSchemas)(e,t),(0,ql.initRecipeSchemas)(e,t),(0,Vl.initTagsSchemas)(e,t),(0,Gl.initTextComponentSchemas)(e,t),(0,Kl.initWorldgenSchemas)(e,t),(0,Xl.initWorldSettingsSchemas)(e,t)};var Jl=Ie&&Ie.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i);var r=Object.getOwnPropertyDescriptor(t,i);r&&!("get"in r?!t.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,n,r)}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),Yl=Ie&&Ie.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),Zl=Ie&&Ie.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&Jl(t,e,i);return Yl(t,e),t};Object.defineProperty(oc,"__esModule",{value:!0});var Ql=oc.getSchemas=oc.getCollections=oc.lootContext=void 0;const eu=Pe,tu=ac,iu=sc;var nu=oc.lootContext=Zl(Dc);var ru=oc.getCollections=function(){const e=new eu.CollectionRegistry;return(0,tu.initCollections)(e),e};Ql=oc.getSchemas=function(e){const t=new eu.SchemaRegistry;return(0,iu.initSchemas)(t,e),t};var ou=Object.freeze(Object.assign(Object.create(null),oc,{[Symbol.toStringTag]:"Module",get getSchemas(){return Ql},get getCollections(){return ru},get lootContext(){return nu},default:oc})),au={},su={};Object.defineProperty(su,"__esModule",{value:!0}),su.initCollections=void 0,su.initCollections=function(e){e.register("advancement_trigger",["minecraft:allay_drop_item_on_block","minecraft:avoid_vibration","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:kill_mob_near_sculk_catalyst","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:thrown_item_picked_up_by_player","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("decoration_step",["raw_generation","lakes","local_modifications","underground_structures","surface_structures","strongholds","underground_ores","underground_decoration","fluid_springs","vegetal_decoration","top_layer_modification"]),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 cu={},lu={};Object.defineProperty(lu,"__esModule",{value:!0}),lu.initAdvancementSchemas=void 0;const uu=Pe;lu.initAdvancementSchemas=function(e,t){const i=uu.Reference.bind(void 0,e),n=uu.StringNode.bind(void 0,t),r=(0,uu.ChoiceNode)([{type:"object",node:(0,uu.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:(0,uu.ListNode)(i("condition")),change:e=>[{condition:"minecraft:entity_properties",predicate:e}]}],{context:"conditions"});e.register("advancement",(0,uu.Mod)((0,uu.ObjectNode)({display:(0,uu.Opt)((0,uu.Mod)((0,uu.ObjectNode)({icon:(0,uu.ObjectNode)({item:n({validator:"resource",params:{pool:"item"}}),nbt:(0,uu.Opt)(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:i("text_component"),description:i("text_component"),background:(0,uu.Opt)(n()),frame:(0,uu.Opt)(n({enum:["task","challenge","goal"]})),show_toast:(0,uu.Opt)((0,uu.BooleanNode)()),announce_to_chat:(0,uu.Opt)((0,uu.BooleanNode)()),hidden:(0,uu.Opt)((0,uu.BooleanNode)())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:(0,uu.Opt)(n({validator:"resource",params:{pool:"$advancement"}})),criteria:(0,uu.MapNode)(n(),i("advancement_criteria")),requirements:(0,uu.Opt)((0,uu.ListNode)((0,uu.ListNode)(n()))),rewards:(0,uu.Opt)((0,uu.ObjectNode)({function:(0,uu.Opt)(n({validator:"resource",params:{pool:"$function"}})),loot:(0,uu.Opt)((0,uu.ListNode)(n({validator:"resource",params:{pool:"$loot_table"}}))),recipes:(0,uu.Opt)((0,uu.ListNode)(n({validator:"resource",params:{pool:"$recipe"}}))),experience:(0,uu.Opt)((0,uu.NumberNode)({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),e.register("advancement_criteria",(0,uu.ObjectNode)({trigger:n({validator:"resource",params:{pool:t.get("advancement_trigger")}}),conditions:(0,uu.Opt)((0,uu.ObjectNode)({player:(0,uu.Mod)(r,{enabled:e=>"minecraft:impossible"!==e.pop().push("trigger").get()}),[uu.Switch]:["pop",{push:"trigger"}],[uu.Case]:{"minecraft:allay_drop_item_on_block":{item:(0,uu.Opt)(i("item_predicate")),location:(0,uu.Opt)(i("location_predicate"))},"minecraft:bee_nest_destroyed":{block:(0,uu.Opt)(n({validator:"resource",params:{pool:"block"}})),num_bees_inside:(0,uu.Opt)((0,uu.NumberNode)({integer:!0})),item:(0,uu.Opt)(i("item_predicate"))},"minecraft:bred_animals":{parent:r,partner:r,child:r},"minecraft:brewed_potion":{potion:(0,uu.Opt)(n({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:(0,uu.Opt)(n({validator:"resource",params:{pool:"$dimension"}})),to:(0,uu.Opt)(n({validator:"resource",params:{pool:"$dimension"}}))},"minecraft:channeled_lightning":{victims:(0,uu.Opt)((0,uu.ListNode)(r))},"minecraft:construct_beacon":{level:i("int_bounds")},"minecraft:consume_item":{item:(0,uu.Opt)(i("item_predicate"))},"minecraft:cured_zombie_villager":{villager:r,zombie:r},"minecraft:effects_changed":{effects:(0,uu.Opt)((0,uu.MapNode)(n({validator:"resource",params:{pool:"mob_effect"}}),(0,uu.ObjectNode)({amplifier:i("int_bounds"),duration:i("int_bounds")}))),source:(0,uu.Opt)(r)},"minecraft:enter_block":{block:(0,uu.Opt)(n({validator:"resource",params:{pool:"block"}})),state:(0,uu.Opt)((0,uu.MapNode)(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:i("int_bounds"),item:(0,uu.Opt)(i("item_predicate"))},"minecraft:entity_hurt_player":{damage:(0,uu.Opt)(i("damage_predicate"))},"minecraft:entity_killed_player":{entity:r,killing_blow:(0,uu.Opt)(i("damage_source_predicate"))},"minecraft:fall_from_height":{start_position:(0,uu.Opt)(i("location_predicate")),distance:(0,uu.Opt)(i("distance_predicate"))},"minecraft:filled_bucket":{item:(0,uu.Opt)(i("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:r,item:(0,uu.Opt)(i("item_predicate"))},"minecraft:inventory_changed":{slots:(0,uu.Opt)((0,uu.ObjectNode)({empty:i("int_bounds"),occupied:i("int_bounds"),full:i("int_bounds")})),items:(0,uu.Opt)((0,uu.ListNode)(i("item_predicate")))},"minecraft:item_durability_changed":{delta:i("int_bounds"),durability:i("int_bounds"),item:(0,uu.Opt)(i("item_predicate"))},"minecraft:item_used_on_block":{item:(0,uu.Opt)(i("item_predicate")),location:(0,uu.Opt)(i("location_predicate"))},"minecraft:kill_mob_near_sculk_catalyst":{entity:r,killing_blow:(0,uu.Opt)(i("damage_source_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:i("int_bounds"),victims:(0,uu.Opt)((0,uu.ListNode)(r))},"minecraft:levitation":{distance:(0,uu.Opt)(i("distance_predicate")),duration:i("int_bounds")},"minecraft:lightning_strike":{lightning:r,bystander:r},"minecraft:nether_travel":{start_position:(0,uu.Opt)(i("location_predicate")),distance:(0,uu.Opt)(i("distance_predicate"))},"minecraft:placed_block":{block:(0,uu.Opt)(n({validator:"resource",params:{pool:"block"}})),state:(0,uu.Opt)((0,uu.MapNode)(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:(0,uu.Opt)(i("item_predicate")),location:(0,uu.Opt)(i("location_predicate"))},"minecraft:player_generates_container_loot":{loot_table:n({validator:"resource",params:{pool:"$loot_table"}})},"minecraft:player_hurt_entity":{damage:(0,uu.Opt)(i("damage_predicate")),entity:r},"minecraft:player_interacted_with_entity":{item:(0,uu.Opt)(i("item_predicate")),entity:r},"minecraft:player_killed_entity":{entity:r,killing_blow:(0,uu.Opt)(i("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:n({validator:"resource",params:{pool:"$recipe"}})},"minecraft:ride_entity_in_lava":{start_position:(0,uu.Opt)(i("location_predicate")),distance:(0,uu.Opt)(i("distance_predicate"))},"minecraft:slide_down_block":{block:(0,uu.Opt)(n({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:(0,uu.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:r,item:(0,uu.Opt)(i("item_predicate"))},"minecraft:thrown_item_picked_up_by_player":{entity:r,item:(0,uu.Opt)(i("item_predicate"))},"minecraft:used_ender_eye":{distance:(0,uu.Opt)(i("float_bounds"))},"minecraft:used_totem":{item:(0,uu.Opt)(i("item_predicate"))},"minecraft:using_item":{item:(0,uu.Opt)(i("item_predicate"))},"minecraft:villager_trade":{villager:r,item:(0,uu.Opt)(i("item_predicate"))}}},{context:"criterion"}))},{category:"predicate",context:"criterion"}))};var du={},hu={};Object.defineProperty(hu,"__esModule",{value:!0}),hu.initModelSchemas=void 0;const pu=Pe;hu.initModelSchemas=function(e,t){pu.Reference.bind(void 0,e);const i=pu.StringNode.bind(void 0,t),n=(e,t,i)=>(0,pu.ListNode)((0,pu.NumberNode)({min:t,max:i}),{minLength:e,maxLength:e}),r=(0,pu.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",(0,pu.Mod)((0,pu.ObjectNode)({parent:(0,pu.Opt)(i({validator:"resource",params:{pool:"$model"}})),ambientocclusion:(0,pu.Opt)((0,pu.BooleanNode)()),gui_light:(0,pu.Opt)(i({enum:"gui_light"})),textures:(0,pu.Opt)((0,pu.MapNode)(i(),r)),elements:(0,pu.Opt)((0,pu.ListNode)((0,pu.ObjectNode)({from:n(3,-16,32),to:n(3,-16,32),rotation:(0,pu.Opt)((0,pu.ObjectNode)({origin:n(3),axis:i({enum:"axis"}),angle:(0,pu.NumberEnum)({values:[-45,-22.5,0,22.5,45]}),rescale:(0,pu.Opt)((0,pu.BooleanNode)())})),shade:(0,pu.Opt)((0,pu.BooleanNode)()),faces:(0,pu.MapNode)(i({enum:"direction"}),(0,pu.ObjectNode)({texture:r,uv:(0,pu.Opt)(n(4)),cullface:(0,pu.Opt)(i({enum:"direction"})),rotation:(0,pu.Opt)((0,pu.NumberNode)({integer:!0})),tintindex:(0,pu.Opt)((0,pu.NumberNode)({integer:!0}))}))},{context:"model_element"}))),display:(0,pu.Opt)((0,pu.MapNode)(i({enum:"display_position"}),(0,pu.ObjectNode)({rotation:n(3),translation:n(3,-80,80),scale:n(3,-4,4)},{context:"item_transform"}))),overrides:(0,pu.Opt)((0,pu.ListNode)((0,pu.ObjectNode)({predicate:(0,pu.MapNode)(i({enum:"item_model_predicates"}),(0,pu.NumberNode)()),model:i({validator:"resource",params:{pool:"$model"}})},{context:"model_override"})))},{context:"model"}),{default:()=>({parent:"minecraft:item/generated",textures:{layer0:"minecraft:item/diamond"}})}))};var mu={};Object.defineProperty(mu,"__esModule",{value:!0}),mu.initBlockDefinitionSchemas=void 0;const fu=Pe;mu.initBlockDefinitionSchemas=function(e,t){const i=fu.Reference.bind(void 0,e),n=fu.StringNode.bind(void 0,t);e.register("block_definition",(0,fu.Mod)((0,fu.ChoiceNode)([{type:"variants",match:e=>void 0!==e.variants,node:(0,fu.ObjectNode)({variants:(0,fu.MapNode)(n(),i("model_variant"))}),change:e=>({variants:{"":{}}})},{type:"multipart",match:e=>void 0!==e.multipart,node:(0,fu.ObjectNode)({multipart:(0,fu.ListNode)((0,fu.ObjectNode)({when:(0,fu.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:(0,fu.Opt)((0,fu.NumberEnum)({integer:!0,values:[0,90,180,270]})),y:(0,fu.Opt)((0,fu.NumberEnum)({integer:!0,values:[0,90,180,270]})),uvlock:(0,fu.Opt)((0,fu.BooleanNode)())};e.register("model_variant",(0,fu.ChoiceNode)([{type:"object",node:(0,fu.ObjectNode)(r),change:e=>Array.isArray(e)&&e.length>0?e[0]:{}},{type:"list",node:(0,fu.ListNode)((0,fu.ObjectNode)(c(s({},r),{weight:(0,fu.Opt)((0,fu.NumberNode)({integer:!0,min:1}))}),{context:"model_variant"})),change:e=>[s({weight:1},e)]}],{context:"model_variant"})),e.register("multipart_condition",(0,fu.ChoiceNode)([{type:"object",priority:-1,match:()=>!0,node:(0,fu.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:(0,fu.ObjectNode)({OR:(0,fu.ListNode)(i("multipart_condition"))}),change:e=>({OR:[null!=e?e:{}]})}],{context:"multipart_condition"}))},Object.defineProperty(du,"__esModule",{value:!0}),du.initAssetsSchemas=void 0;const gu=hu,_u=mu;du.initAssetsSchemas=function(e,t){(0,_u.initBlockDefinitionSchemas)(e,t),(0,gu.initModelSchemas)(e,t)};var bu={};!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=Pe;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={sea_level:63,ore_veins_enabled:!0,disable_mob_generation:!1,aquifers_enabled:!0,legacy_random_source:!1,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,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}},noise_router:{barrier:0,fluid_level_floodedness:0,fluid_level_spread:0,lava:0,temperature:0,vegetation:0,continents:0,erosion:0,depth:0,ridges:0,initial_density_without_jaggedness:0,final_density:{type:"minecraft:interpolated",argument:"minecraft:overworld/base_3d_noise"},vein_toggle:0,vein_ridged:0,vein_gap:0},surface_rule:{type:"minecraft:sequence",sequence:[]}},e.initCommonSchemas=function(i,n){const r=t.StringNode.bind(void 0,n),o=t.Reference.bind(void 0,i);i.register("block_state",(0,t.Mod)((0,t.ObjectNode)({Name:r({validator:"resource",params:{pool:"block"}}),Properties:(0,t.Opt)((0,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",(0,t.Mod)((0,t.ObjectNode)({Name:r({validator:"resource",params:{pool:"fluid"}}),Properties:(0,t.Opt)((0,t.MapNode)(r(),r()))},{context:"fluid_state"}),{default:()=>({Name:"minecraft:water",Properties:{level:"0"}})})),i.register("block_pos",(0,t.Mod)((0,t.ListNode)((0,t.NumberNode)({integer:!0}),{minLength:3,maxLength:3}),{default:()=>[0,0,0]}));const a=e=>(0,t.Opt)((0,t.ChoiceNode)([{type:"number",node:(0,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:(0,t.ObjectNode)({min:(0,t.Opt)((0,t.NumberNode)({integer:e})),max:(0,t.Opt)((0,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",(0,t.ChoiceNode)([{type:"object",node:(0,t.ObjectNode)({min:(0,t.Opt)(o("number_provider")),max:(0,t.Opt)(o("number_provider"))})},{type:"number",node:(0,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]=(0,t.Mod)(l[a][e],{enabled:e=>void 0===e.push("type").get()})}));const d=(0,t.ObjectNode)(s({type:(0,t.Mod)((0,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})})})),(0,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:(0,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:(0,t.Opt)((0,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:(0,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:(0,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:(0,t.NumberNode)(e)},"minecraft:uniform":{value:(0,t.ObjectNode)({min_inclusive:(0,t.NumberNode)(e),max_exclusive:(0,t.NumberNode)(e)})},"minecraft:clamped_normal":{value:(0,t.ObjectNode)({min:(0,t.NumberNode)(),max:(0,t.NumberNode)(),mean:(0,t.NumberNode)(),deviation:(0,t.NumberNode)()})},"minecraft:trapezoid":{value:(0,t.ObjectNode)({min:(0,t.NumberNode)(),max:(0,t.NumberNode)(),plateau:(0,t.NumberNode)()})}}),i.register("float_provider",(0,e.FloatProvider)()),e.IntProvider=e=>c("int_provider_type","number","value","minecraft:constant",null,"int_provider",{"minecraft:constant":{value:(0,t.NumberNode)(s({integer:!0},e))},"minecraft:uniform":{value:(0,t.ObjectNode)({min_inclusive:(0,t.NumberNode)(s({integer:!0},e)),max_inclusive:(0,t.NumberNode)(s({integer:!0},e))})},"minecraft:biased_to_bottom":{value:(0,t.ObjectNode)({min_inclusive:(0,t.NumberNode)(s({integer:!0},e)),max_inclusive:(0,t.NumberNode)(s({integer:!0},e))})},"minecraft:clamped":{value:(0,t.ObjectNode)({min_inclusive:(0,t.NumberNode)(s({integer:!0},e)),max_inclusive:(0,t.NumberNode)(s({integer:!0},e)),source:o("int_provider")})},"minecraft:clamped_normal":{value:(0,t.ObjectNode)({min_inclusive:(0,t.NumberNode)(s({integer:!0},e)),max_inclusive:(0,t.NumberNode)(s({integer:!0},e)),mean:(0,t.NumberNode)(),deviation:(0,t.NumberNode)()})},"minecraft:weighted_list":{distribution:(0,t.ListNode)((0,t.ObjectNode)({weight:(0,t.NumberNode)({integer:!0}),data:o("int_provider")}))}}),i.register("int_provider",(0,e.IntProvider)()),i.register("vertical_anchor",(0,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:(0,t.ObjectNode)({[e]:(0,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:(0,t.Opt)((0,t.NumberNode)({integer:!0,min:1}))},"minecraft:very_biased_to_bottom":{min_inclusive:o("vertical_anchor"),max_inclusive:o("vertical_anchor"),inner:(0,t.Opt)((0,t.NumberNode)({integer:!0,min:1}))},"minecraft:trapezoid":{min_inclusive:o("vertical_anchor"),max_inclusive:o("vertical_anchor"),plateau:(0,t.Opt)((0,t.NumberNode)({integer:!0}))},"minecraft:weighted_list":{distribution:(0,t.ListNode)((0,t.ObjectNode)({weight:(0,t.NumberNode)({integer:!0}),data:o("int_provider")}))}})),e.InclusiveRange=e=>(0,t.ObjectNode)({min_inclusive:(0,t.NumberNode)(e),max_inclusive:(0,t.NumberNode)(e)},{context:"range"}),i.register("noise_parameters",(0,t.Mod)((0,t.ObjectNode)({firstOctave:(0,t.NumberNode)({integer:!0}),amplitudes:(0,t.ListNode)((0,t.NumberNode)())},{context:"noise_parameters"}),{default:()=>({firstOctave:-7,amplitudes:[1,1]})})),e.Tag=e=>(0,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:(0,t.ListNode)(e.inlineSchema?(0,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:(0,t.ListNode)(o("condition"))},"minecraft:block_state_property":{block:r({validator:"resource",params:{pool:"block"}}),properties:(0,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:(0,t.MapNode)(r({validator:"objective"}),o("int_range"))},"minecraft:inverted":{term:o("condition")},"minecraft:killed_by_player":{inverse:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:location_check":{offsetX:(0,t.Opt)((0,t.NumberNode)({integer:!0})),offsetY:(0,t.Opt)((0,t.NumberNode)({integer:!0})),offsetZ:(0,t.Opt)((0,t.NumberNode)({integer:!0})),predicate:o("location_predicate")},"minecraft:match_tool":{predicate:o("item_predicate")},"minecraft:random_chance":{chance:(0,t.NumberNode)({min:0,max:1})},"minecraft:random_chance_with_looting":{chance:(0,t.NumberNode)({min:0,max:1}),looting_multiplier:(0,t.NumberNode)()},"minecraft:reference":{name:r({validator:"resource",params:{pool:"$predicate"}})},"minecraft:table_bonus":{enchantment:r({validator:"resource",params:{pool:"enchantment"}}),chances:(0,t.ListNode)((0,t.NumberNode)({min:0,max:1}))},"minecraft:time_check":{value:o("int_range"),period:(0,t.Opt)((0,t.NumberNode)({integer:!0}))},"minecraft:value_check":{value:o("number_provider"),range:o("int_range")},"minecraft:weather_check":{raining:(0,t.Opt)((0,t.BooleanNode)()),thundering:(0,t.Opt)((0,t.BooleanNode)())}}),e.FunctionCases=(i,a=r({enum:"copy_source"}),c=r({enum:"entity_source"}))=>{const l={"minecraft:apply_bonus":{enchantment:r({validator:"resource",params:{pool:"enchantment"}}),formula:r({validator:"resource",params:{pool:n.get("loot_table_apply_bonus_formula")}}),parameters:(0,t.Mod)((0,t.ObjectNode)({bonusMultiplier:(0,t.Mod)((0,t.NumberNode)(),{enabled:e=>"minecraft:uniform_bonus_count"===e.pop().push("formula").get()}),extra:(0,t.Mod)((0,t.NumberNode)(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()}),probability:(0,t.Mod)((0,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:a},"minecraft:copy_nbt":{source:o("nbt_provider"),ops:(0,t.ListNode)((0,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:(0,t.ListNode)(r({validator:"block_state_key",params:{id:["pop","pop",{push:"block"}]}}))},"minecraft:enchant_randomly":{enchantments:(0,t.Opt)((0,t.ListNode)(r({validator:"resource",params:{pool:"enchantment"}})))},"minecraft:enchant_with_levels":{levels:o("number_provider"),treasure:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:exploration_map":{destination:(0,t.Opt)((0,e.Tag)({resource:"$worldgen/structure"})),decoration:(0,t.Opt)(r({enum:"map_decoration"})),zoom:(0,t.Opt)((0,t.NumberNode)({integer:!0})),search_radius:(0,t.Opt)((0,t.NumberNode)({integer:!0})),skip_existing_chunks:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:fill_player_head":{entity:c},"minecraft:limit_count":{limit:o("int_range")},"minecraft:looting_enchant":{count:o("number_provider"),limit:(0,t.Opt)((0,t.NumberNode)({integer:!0}))},"minecraft:set_attributes":{modifiers:(0,t.ListNode)(o("attribute_modifier"))},"minecraft:set_banner_pattern":{patterns:(0,t.ListNode)((0,t.ObjectNode)({pattern:r({enum:"banner_pattern"}),color:r({enum:"dye_color"})})),append:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:set_contents":{type:r({validator:"resource",params:{pool:"block_entity_type"}}),entries:(0,t.ListNode)(o("loot_entry"))},"minecraft:set_count":{count:o("number_provider"),add:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:set_damage":{damage:o("number_provider"),add:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:set_enchantments":{enchantments:(0,t.MapNode)(r({validator:"resource",params:{pool:"enchantment"}}),o("number_provider")),add:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:set_loot_table":{type:r({validator:"resource",params:{pool:"block_entity_type"}}),name:r({validator:"resource",params:{pool:"$loot_table"}}),seed:(0,t.Opt)((0,t.NumberNode)({integer:!0}))},"minecraft:set_lore":{entity:(0,t.Opt)(c),lore:(0,t.ListNode)(o("text_component")),replace:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:set_name":{entity:(0,t.Opt)(c),name:(0,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:(0,t.Opt)((0,t.ListNode)((0,t.ObjectNode)({type:r({validator:"resource",params:{pool:"mob_effect"}}),duration:o("number_provider")})))}},u={};return n.get("loot_function_type").forEach((e=>{u[e]=s(s({},l[e]),i)})),u},e.DimensionTypePresets=i=>(0,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=>(0,t.ObjectOrPreset)(r({validator:"resource",params:{pool:"$worldgen/noise_settings"}}),i,{"minecraft:overworld":e.DefaultNoiseSettings,"minecraft:nether":{sea_level:32,ore_veins_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,legacy_random_source:!0,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,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}},noise_router:{barrier:0,fluid_level_floodedness:0,fluid_level_spread:0,lava:0,temperature:0,vegetation:0,continents:0,erosion:0,depth:0,ridges:0,initial_density_without_jaggedness:0,final_density:{type:"minecraft:interpolated",argument:"minecraft:overworld/base_3d_noise"},vein_toggle:0,vein_ridged:0,vein_gap:0},surface_rule:{type:"minecraft:sequence",sequence:[]}},"minecraft:end":{sea_level:0,ore_veins_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,legacy_random_source:!0,default_block:{Name:"minecraft:end_stone"},default_fluid:{Name:"minecraft:air"},noise:{min_y:0,height:128,size_horizontal:2,size_vertical:1,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}},noise_router:{barrier:0,fluid_level_floodedness:0,fluid_level_spread:0,lava:0,temperature:0,vegetation:0,continents:0,erosion:0,depth:0,ridges:0,initial_density_without_jaggedness:0,final_density:{type:"minecraft:interpolated",argument:"minecraft:overworld/base_3d_noise"},vein_toggle:0,vein_ridged:0,vein_gap:0},surface_rule:{type:"minecraft:sequence",sequence:[]}},"minecraft:amplified":{sea_level:63,ore_veins_enabled:!0,disable_mob_generation:!1,aquifers_enabled:!0,legacy_random_source:!1,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,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}},noise_router:{barrier:0,fluid_level_floodedness:0,fluid_level_spread:0,lava:0,temperature:0,vegetation:0,continents:0,erosion:0,depth:0,ridges:0,initial_density_without_jaggedness:0,final_density:{type:"minecraft:interpolated",argument:"minecraft:overworld/base_3d_noise"},vein_toggle:0,vein_ridged:0,vein_gap:0},surface_rule:{type:"minecraft:sequence",sequence:[]}},"minecraft:caves":{sea_level:32,ore_veins_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,legacy_random_source:!0,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,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}},noise_router:{barrier:0,fluid_level_floodedness:0,fluid_level_spread:0,lava:0,temperature:0,vegetation:0,continents:0,erosion:0,depth:0,ridges:0,initial_density_without_jaggedness:0,final_density:{type:"minecraft:interpolated",argument:"minecraft:overworld/base_3d_noise"},vein_toggle:0,vein_ridged:0,vein_gap:0},surface_rule:{type:"minecraft:sequence",sequence:[]}},"minecraft:floating_islands":{sea_level:0,ore_veins_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,legacy_random_source:!0,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,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}},noise_router:{barrier:0,fluid_level_floodedness:0,fluid_level_spread:0,lava:0,temperature:0,vegetation:0,continents:0,erosion:0,depth:0,ridges:0,initial_density_without_jaggedness:0,final_density:{type:"minecraft:interpolated",argument:"minecraft:overworld/base_3d_noise"},vein_toggle:0,vein_ridged:0,vein_gap:0},surface_rule:{type:"minecraft:sequence",sequence:[]}}})}}(bu);var vu={};Object.defineProperty(vu,"__esModule",{value:!0}),vu.initConditionSchemas=void 0;const yu=Pe,wu=bu;vu.initConditionSchemas=function(e,t){const i=yu.Reference.bind(void 0,e),n=yu.StringNode.bind(void 0,t);e.register("predicate",(0,yu.ObjectOrList)(i("condition"),{choiceContext:"condition"})),e.register("condition",(0,yu.Mod)((0,yu.ObjectNode)({condition:n({validator:"resource",params:{pool:"loot_condition_type"}}),[yu.Switch]:[{push:"condition"}],[yu.Case]:(0,wu.ConditionCases)()},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:entity_properties",entity:"this"})}))};var xu={};Object.defineProperty(xu,"__esModule",{value:!0}),xu.initDimensionSchemas=void 0;const Nu=Pe,ku=bu;xu.initDimensionSchemas=function(e,t){const i=Nu.Reference.bind(void 0,e),n=Nu.StringNode.bind(void 0,t);e.register("dimension",(0,Nu.Mod)((0,Nu.ObjectNode)({type:(0,ku.DimensionTypePresets)(i("dimension_type")),generator:(0,Nu.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/chunk_generator"}}),[Nu.Switch]:[{push:"type"}],[Nu.Case]:{"minecraft:noise":{settings:(0,ku.NoiseSettingsPresets)(i("noise_settings")),biome_source:(0,Nu.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/biome_source"}}),[Nu.Switch]:[{push:"type"}],[Nu.Case]:{"minecraft:fixed":{biome:n({validator:"resource",params:{pool:"$worldgen/biome"}})},"minecraft:multi_noise":{preset:(0,Nu.Opt)(n({validator:"resource",params:{pool:["minecraft:overworld","minecraft:nether"]}})),biomes:(0,Nu.Mod)((0,Nu.ListNode)(i("generator_biome")),{enabled:e=>void 0===e.push("preset").get(),default:()=>[{biome:"minecraft:plains"}]})},"minecraft:checkerboard":{scale:(0,Nu.Opt)((0,Nu.NumberNode)({integer:!0,min:0,max:62})),biomes:(0,ku.Tag)({resource:"$worldgen/biome"})}}},{category:"predicate",disableSwitchContext:!0})},"minecraft:flat":{settings:i("flat_generator_settings")}}},{disableSwitchContext:!0})},{category:"pool",context:"dimension"}),{default:()=>({type:"minecraft:overworld",generator:{type:"minecraft:noise",biome_source:{type:"minecraft:fixed",biome:"minecraft:plains"},settings:"minecraft:overworld"}})})),e.register("flat_generator_settings",(0,Nu.ObjectNode)({biome:(0,Nu.Opt)(n({validator:"resource",params:{pool:"$worldgen/biome"}})),lakes:(0,Nu.Opt)((0,Nu.BooleanNode)()),features:(0,Nu.Opt)((0,Nu.BooleanNode)()),layers:(0,Nu.ListNode)(i("generator_layer")),structure_overrides:(0,ku.Tag)({resource:"$worldgen/structure_set",inlineSchema:"structure_set"})}));const r=(0,Nu.ChoiceNode)([{type:"number",node:(0,Nu.NumberNode)({min:-2,max:2}),change:e=>{var t;return null!==(t=e[0])&&void 0!==t?t:0}},{type:"list",node:(0,Nu.ListNode)((0,Nu.NumberNode)({min:-2,max:2}),{minLength:2,maxLength:2}),change:e=>[null!=e?e:0,null!=e?e:0]}]);e.register("parameter_point",(0,Nu.ObjectNode)({temperature:r,humidity:r,continentalness:r,erosion:r,weirdness:r,depth:r,offset:(0,Nu.NumberNode)({min:0,max:1})})),e.register("generator_biome",(0,Nu.Mod)((0,Nu.ObjectNode)({biome:n({validator:"resource",params:{pool:"$worldgen/biome"}}),parameters:i("parameter_point")},{context:"generator_biome"}),{default:()=>({biome:"minecraft:plains",parameters:{temperature:0,humidity:0,continentalness:0,erosion:0,weirdness:0,depth:0,offset:0}})}))};var Au={};Object.defineProperty(Au,"__esModule",{value:!0}),Au.initDimensionTypeSchemas=void 0;const Cu=Pe,Ou=bu;Au.initDimensionTypeSchemas=function(e,t){const i=Cu.StringNode.bind(void 0,t);e.register("dimension_type",(0,Cu.Mod)((0,Cu.ObjectNode)({ultrawarm:(0,Cu.BooleanNode)(),natural:(0,Cu.BooleanNode)(),piglin_safe:(0,Cu.BooleanNode)(),respawn_anchor_works:(0,Cu.BooleanNode)(),bed_works:(0,Cu.BooleanNode)(),has_raids:(0,Cu.BooleanNode)(),has_skylight:(0,Cu.BooleanNode)(),has_ceiling:(0,Cu.BooleanNode)(),coordinate_scale:(0,Cu.NumberNode)({min:1e-5,max:3e7}),ambient_light:(0,Cu.NumberNode)(),fixed_time:(0,Cu.Opt)((0,Cu.NumberNode)({integer:!0})),logical_height:(0,Cu.NumberNode)({integer:!0,min:0,max:4064}),effects:(0,Cu.Opt)(i({enum:["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]})),infiniburn:i({validator:"resource",params:{pool:"block",requireTag:!0}}),min_y:(0,Cu.NumberNode)({integer:!0,min:-2032,max:2031}),height:(0,Cu.NumberNode)({integer:!0,min:16,max:4064})},{context:"dimension_type"}),(e=>({default:()=>Ou.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 Su={};Object.defineProperty(Su,"__esModule",{value:!0}),Su.initItemModifierSchemas=void 0;const Eu=Pe,Fu=bu;Su.initItemModifierSchemas=function(e,t){const i=Eu.Reference.bind(void 0,e),n=Eu.StringNode.bind(void 0,t);e.register("item_modifier",(0,Eu.ObjectOrList)(i("function"),{choiceContext:"function"}));const r={conditions:(0,Eu.Opt)((0,Eu.ListNode)(i("condition")))};e.register("function",(0,Eu.Mod)((0,Eu.ObjectNode)({function:n({validator:"resource",params:{pool:"loot_function_type"}}),[Eu.Switch]:[{push:"function"}],[Eu.Case]:(0,Fu.FunctionCases)(r)},{category:"function",context:"function"}),{default:()=>[{function:"minecraft:set_count",count:1}]}))};var Du={},Bu={};Object.defineProperty(Bu,"__esModule",{value:!0}),Bu.LootFunctions=Bu.LootConditions=Bu.LootCopySources=Bu.LootEntitySources=Bu.LootTableTypes=void 0,Bu.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]}]]),Bu.LootEntitySources=new Map([["direct_killer",[3]],["killer",[5]],["killer_player",[5]],["this",[8]]]),Bu.LootCopySources=new Map([["block_entity",[0]],["killer",[5]],["killer_player",[5]],["this",[8]]]),Bu.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",[]]]),Bu.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(Du,"__esModule",{value:!0}),Du.initLootTableSchemas=void 0;const Lu=Pe,Mu=Bu,Tu=bu;Du.initLootTableSchemas=function(e,t){const i=Lu.Reference.bind(void 0,e),n=Lu.StringNode.bind(void 0,t),r={conditions:(0,Lu.Opt)((0,Lu.ListNode)(i("loot_condition")))},o=s({functions:(0,Lu.Opt)((0,Lu.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 Mu.LootTableTypes){const e=[...a,...s];r.push({match:e=>e.getModel().get(new Lu.Path(["type"]))===t,node:n(o(e))})}return r.push({match:e=>!0,node:n(i)}),(0,Lu.SwitchNode)(r)}const c=a(Mu.LootConditions,"loot_condition_type",(e=>n({validator:"resource",params:{pool:e instanceof Array?e:"loot_condition_type"}}))),l=a(Mu.LootFunctions,"loot_function_type",(e=>n({validator:"resource",params:{pool:e instanceof Array?e:"loot_function_type"}}))),u=a(Mu.LootEntitySources,"entity_source",(e=>n({enum:e}))),d=a(Mu.LootCopySources,"copy_source",(e=>n({enum:e})));e.register("loot_table",(0,Lu.Mod)((0,Lu.ObjectNode)({type:(0,Lu.Opt)(n({validator:"resource",params:{pool:t.get("loot_context_type")}})),pools:(0,Lu.Opt)((0,Lu.ListNode)((0,Lu.Mod)((0,Lu.ObjectNode)(s({rolls:i("number_provider"),bonus_rolls:(0,Lu.Opt)(i("number_provider")),entries:(0,Lu.ListNode)(i("loot_entry"))},o),{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:(0,Lu.Opt)((0,Lu.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",(0,Lu.Mod)((0,Lu.ObjectNode)({type:n({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:(0,Lu.Opt)((0,Lu.Mod)((0,Lu.NumberNode)({integer:!0,min:1}),h)),quality:(0,Lu.Opt)((0,Lu.Mod)((0,Lu.NumberNode)({integer:!0}),h)),[Lu.Switch]:[{push:"type"}],[Lu.Case]:{"minecraft:alternatives":s({children:(0,Lu.ListNode)(i("loot_entry"))},o),"minecraft:dynamic":s({name:n()},o),"minecraft:group":s({children:(0,Lu.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:(0,Lu.ListNode)(i("loot_entry"))},o),"minecraft:tag":s({name:n({validator:"resource",params:{pool:"$tag/item"}}),expand:(0,Lu.Opt)((0,Lu.BooleanNode)())},o)}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),e.register("loot_function",(0,Lu.Mod)((0,Lu.ObjectNode)({function:l,[Lu.Switch]:[{push:"function"}],[Lu.Case]:(0,Tu.FunctionCases)(r,d,u)},{category:"function",context:"function"}),{default:()=>({function:"minecraft:set_count",count:1})})),e.register("loot_condition",(0,Lu.Mod)((0,Lu.ObjectNode)({condition:c,[Lu.Switch]:[{push:"condition"}],[Lu.Case]:(0,Tu.ConditionCases)(u)},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),e.register("attribute_modifier",(0,Lu.Mod)((0,Lu.ObjectNode)({attribute:n({validator:"resource",params:{pool:"attribute"}}),name:n(),amount:i("number_provider"),operation:n({enum:["addition","multiply_base","multiply_total"]}),slot:(0,Lu.StringOrList)(n({enum:"slot"}))},{context:"attribute_modifier"}),{default:()=>({attribute:"minecraft:generic.max_health",name:"",amount:1,operation:"addition",slot:"mainhand"})}))};var Ru={};Object.defineProperty(Ru,"__esModule",{value:!0}),Ru.initPackMcmetaSchemas=void 0;const $u=Pe;Ru.initPackMcmetaSchemas=function(e,t){const i=$u.Reference.bind(void 0,e),n=$u.StringNode.bind(void 0,t);e.register("pack_mcmeta",(0,$u.Mod)((0,$u.ObjectNode)({pack:(0,$u.Mod)((0,$u.ObjectNode)({pack_format:(0,$u.Mod)((0,$u.NumberNode)({integer:!0,min:10,max:10}),{default:()=>10,canUpdate:(e,t)=>10!==t,update:()=>[{name:"pack_format",params:[10],newValue:10}]}),description:i("text_component")}),{default:()=>({pack_format:10,description:""})}),filter:(0,$u.Opt)((0,$u.ObjectNode)({block:(0,$u.ListNode)((0,$u.ObjectNode)({namespace:(0,$u.Opt)(n({validator:"regex_pattern"})),path:(0,$u.Opt)(n({validator:"regex_pattern"}))}))}))}),{default:()=>({pack:{pack_format:10,description:""}})}))};var ju={};Object.defineProperty(ju,"__esModule",{value:!0}),ju.initPredicatesSchemas=void 0;const Iu=Pe;ju.initPredicatesSchemas=function(e,t){const i=Iu.Reference.bind(void 0,e),n=Iu.StringNode.bind(void 0,t),r=(0,Iu.ChoiceNode)([{type:"string",node:n(),change:e=>"boolean"==typeof e||"number"==typeof e?e.toString():""},{type:"number",node:(0,Iu.NumberNode)(),change:e=>"string"==typeof e?parseInt(e):0},{type:"object",node:(0,Iu.ObjectNode)({min:(0,Iu.Opt)((0,Iu.NumberNode)({integer:!0})),max:(0,Iu.Opt)((0,Iu.NumberNode)({integer:!0}))}),change:e=>"number"==typeof e?{min:e,max:e}:{}},{type:"boolean",node:(0,Iu.BooleanNode)(),change:e=>"true"===e||1===e}]);e.register("item_predicate",(0,Iu.ObjectNode)({items:(0,Iu.Opt)((0,Iu.ListNode)(n({validator:"resource",params:{pool:"item"}}))),tag:(0,Iu.Opt)(n({validator:"resource",params:{pool:"$tag/item"}})),count:i("int_bounds"),durability:i("int_bounds"),potion:(0,Iu.Opt)(n({validator:"resource",params:{pool:"potion"}})),nbt:(0,Iu.Opt)(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:(0,Iu.Opt)((0,Iu.ListNode)(i("enchantment_predicate")))},{context:"item"})),e.register("enchantment_predicate",(0,Iu.ObjectNode)({enchantment:(0,Iu.Opt)(n({validator:"resource",params:{pool:"enchantment"}})),levels:i("int_bounds")},{context:"enchantment"})),e.register("block_predicate",(0,Iu.ObjectNode)({blocks:(0,Iu.Opt)((0,Iu.ListNode)(n({validator:"resource",params:{pool:"block"}}))),tag:(0,Iu.Opt)(n({validator:"resource",params:{pool:"$tag/block"}})),nbt:(0,Iu.Opt)(n({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:(0,Iu.Opt)((0,Iu.MapNode)(n(),r,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),e.register("fluid_predicate",(0,Iu.ObjectNode)({fluid:(0,Iu.Opt)(n({validator:"resource",params:{pool:"fluid"}})),tag:(0,Iu.Opt)(n({validator:"resource",params:{pool:"$tag/fluid"}})),state:(0,Iu.Opt)((0,Iu.MapNode)(n(),r))},{context:"fluid"})),e.register("location_predicate",(0,Iu.ObjectNode)({position:(0,Iu.Opt)((0,Iu.ObjectNode)({x:i("float_bounds"),y:i("float_bounds"),z:i("float_bounds")})),biome:(0,Iu.Opt)(n({validator:"resource",params:{pool:"$worldgen/biome"}})),structure:(0,Iu.Opt)(n({validator:"resource",params:{pool:"$worldgen/structure"}})),dimension:(0,Iu.Opt)(n({validator:"resource",params:{pool:"$dimension"}})),light:(0,Iu.Opt)((0,Iu.ObjectNode)({light:i("int_bounds")})),smokey:(0,Iu.Opt)((0,Iu.BooleanNode)()),block:(0,Iu.Opt)(i("block_predicate")),fluid:(0,Iu.Opt)(i("fluid_predicate"))},{context:"location"})),e.register("statistic_predicate",(0,Iu.ObjectNode)({type:n({validator:"resource",params:{pool:"stat_type"}}),stat:n(),value:i("int_bounds"),[Iu.Switch]:[{push:"type"}],[Iu.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("status_effect_predicate",(0,Iu.ObjectNode)({amplifier:i("int_bounds"),duration:i("int_bounds"),ambient:(0,Iu.Opt)((0,Iu.BooleanNode)()),visible:(0,Iu.Opt)((0,Iu.BooleanNode)())},{context:"status_effect"})),e.register("distance_predicate",(0,Iu.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",(0,Iu.ObjectNode)({type:(0,Iu.Opt)(n({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),type_specific:(0,Iu.Opt)((0,Iu.ObjectNode)({type:n({enum:["any","cat","fishing_hook","frog","lightning","player","slime"]}),[Iu.Switch]:[{push:"type"}],[Iu.Case]:{cat:{variant:(0,Iu.Opt)(n({validator:"resource",params:{pool:"cat_variant"}}))},fishing_hook:{in_open_water:(0,Iu.Opt)((0,Iu.BooleanNode)())},frog:{variant:(0,Iu.Opt)(n({validator:"resource",params:{pool:"frog_variant"}}))},lightning:{blocks_set_on_fire:(0,Iu.Opt)(i("int_bounds")),entity_struck:(0,Iu.Opt)(i("entity_predicate"))},player:{gamemode:(0,Iu.Opt)(n({enum:"gamemode"})),level:i("int_bounds"),advancements:(0,Iu.Opt)((0,Iu.MapNode)(n({validator:"resource",params:{pool:"$advancement"}}),(0,Iu.ChoiceNode)([{type:"boolean",node:(0,Iu.BooleanNode)(),change:()=>!0},{type:"object",node:(0,Iu.MapNode)(n(),(0,Iu.BooleanNode)())}]))),recipes:(0,Iu.Opt)((0,Iu.MapNode)(n({validator:"resource",params:{pool:"$recipe"}}),(0,Iu.BooleanNode)())),stats:(0,Iu.Opt)((0,Iu.ListNode)(i("statistic_predicate"))),looking_at:(0,Iu.Opt)(i("entity_predicate"))},slime:{size:i("int_bounds")}}})),nbt:(0,Iu.Opt)(n({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:(0,Iu.Opt)(n({validator:"team"})),location:(0,Iu.Opt)(i("location_predicate")),stepping_on:(0,Iu.Opt)(i("location_predicate")),distance:(0,Iu.Opt)(i("distance_predicate")),flags:(0,Iu.Opt)((0,Iu.ObjectNode)({is_on_fire:(0,Iu.Opt)((0,Iu.BooleanNode)()),is_sneaking:(0,Iu.Opt)((0,Iu.BooleanNode)()),is_sprinting:(0,Iu.Opt)((0,Iu.BooleanNode)()),is_swimming:(0,Iu.Opt)((0,Iu.BooleanNode)()),is_baby:(0,Iu.Opt)((0,Iu.BooleanNode)())})),equipment:(0,Iu.Opt)((0,Iu.MapNode)(n({enum:"slot"}),i("item_predicate"))),vehicle:(0,Iu.Opt)(i("entity_predicate")),passenger:(0,Iu.Opt)(i("entity_predicate")),targeted_entity:(0,Iu.Opt)(i("entity_predicate")),effects:(0,Iu.Opt)((0,Iu.MapNode)(n({validator:"resource",params:{pool:"mob_effect"}}),i("status_effect_predicate")))},{context:"entity"})),e.register("damage_source_predicate",(0,Iu.ObjectNode)({is_explosion:(0,Iu.Opt)((0,Iu.BooleanNode)()),is_fire:(0,Iu.Opt)((0,Iu.BooleanNode)()),is_magic:(0,Iu.Opt)((0,Iu.BooleanNode)()),is_projectile:(0,Iu.Opt)((0,Iu.BooleanNode)()),is_lightning:(0,Iu.Opt)((0,Iu.BooleanNode)()),bypasses_armor:(0,Iu.Opt)((0,Iu.BooleanNode)()),bypasses_invulnerability:(0,Iu.Opt)((0,Iu.BooleanNode)()),bypasses_magic:(0,Iu.Opt)((0,Iu.BooleanNode)()),source_entity:(0,Iu.Opt)(i("entity_predicate")),direct_entity:(0,Iu.Opt)(i("entity_predicate"))},{context:"damage_source"})),e.register("damage_predicate",(0,Iu.ObjectNode)({dealt:i("float_bounds"),taken:i("float_bounds"),blocked:(0,Iu.Opt)((0,Iu.BooleanNode)()),source_entity:(0,Iu.Opt)(i("entity_predicate")),type:(0,Iu.Opt)(i("damage_source_predicate"))},{context:"damage"}))};var Pu={};Object.defineProperty(Pu,"__esModule",{value:!0}),Pu.initRecipeSchemas=void 0;const zu=Pe;Pu.initRecipeSchemas=function(e,t){const i=zu.Reference.bind(void 0,e),n=zu.StringNode.bind(void 0,t);e.register("recipe",(0,zu.Mod)((0,zu.ObjectNode)({type:n({validator:"resource",params:{pool:"recipe_serializer"}}),[zu.Switch]:[{push:"type"}],[zu.Case]:{"minecraft:crafting_shaped":{group:(0,zu.Opt)(n({enum:"recipe_group",additional:!0})),pattern:(0,zu.ListNode)(n()),key:(0,zu.MapNode)(n(),i("recipe_ingredient")),result:i("recipe_result")},"minecraft:crafting_shapeless":{group:(0,zu.Opt)(n()),ingredients:(0,zu.ListNode)(i("recipe_ingredient")),result:i("recipe_result")},"minecraft:smelting":{group:(0,zu.Opt)(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:(0,zu.Opt)((0,zu.NumberNode)()),cookingtime:(0,zu.Opt)((0,zu.Mod)((0,zu.NumberNode)({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:(0,zu.Opt)(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:(0,zu.Opt)((0,zu.NumberNode)()),cookingtime:(0,zu.Opt)((0,zu.Mod)((0,zu.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:(0,zu.Opt)(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:(0,zu.Opt)((0,zu.NumberNode)()),cookingtime:(0,zu.Opt)((0,zu.Mod)((0,zu.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:(0,zu.Opt)(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:(0,zu.Opt)((0,zu.NumberNode)()),cookingtime:(0,zu.Opt)((0,zu.Mod)((0,zu.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:(0,zu.Opt)(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),count:(0,zu.NumberNode)({integer:!0})},"minecraft:smithing":{group:(0,zu.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",(0,zu.Mod)((0,zu.ChoiceNode)([{type:"object",node:i("recipe_ingredient_object"),change:e=>e[0]},{type:"list",node:(0,zu.ListNode)(i("recipe_ingredient_object")),change:e=>[e]}]),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_ingredient_object",(0,zu.Mod)((0,zu.ObjectNode)({item:(0,zu.Opt)(n({validator:"resource",params:{pool:"item"}})),tag:(0,zu.Opt)(n({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_result",(0,zu.Mod)((0,zu.ObjectNode)({item:n({validator:"resource",params:{pool:"item"}}),count:(0,zu.Opt)((0,zu.Mod)((0,zu.NumberNode)({integer:!0}),{default:()=>1}))}),{default:()=>({item:"minecraft:stone"})}))};var Uu={};Object.defineProperty(Uu,"__esModule",{value:!0}),Uu.initTagsSchemas=void 0;const Wu=Pe;Uu.initTagsSchemas=function(e,t){const i=Wu.StringNode.bind(void 0,t),n=e=>(0,Wu.Mod)((0,Wu.ObjectNode)({replace:(0,Wu.Opt)((0,Wu.BooleanNode)()),values:(0,Wu.ListNode)((0,Wu.ChoiceNode)([{type:"string",node:i({validator:"resource",params:{pool:e,allowTag:!0}}),change:e=>e.id},{type:"object",node:(0,Wu.ObjectNode)({id:i({validator:"resource",params:{pool:e,allowTag:!0,allowUnknown:!0}}),required:(0,Wu.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")),e.register("advancement_tag",n("$advancement")),e.register("dimension_tag",n("$dimension")),e.register("dimension_type_tag",n("$dimension_type")),e.register("function_tag",n("$function")),e.register("item_modifier_tag",n("$item_modifier")),e.register("loot_table_tag",n("$loot_table")),e.register("predicate_tag",n("$predicate")),e.register("recipe_tag",n("$recipe")),e.register("structure_tag",n("$structure")),e.register("biome_tag",n("$worldgen/biome")),e.register("configured_carver_tag",n("$worldgen/configured_carver")),e.register("configured_feature_tag",n("$worldgen/configured_feature")),e.register("structure_tag",n("$worldgen/structure")),e.register("configured_surface_builder_tag",n("$worldgen/configured_surface_builder")),e.register("density_function_tag",n("$worldgen/density_function")),e.register("flat_level_generator_preset_tag",n("$worldgen/flat_level_generator_preset")),e.register("noise_tag",n("$worldgen/noise")),e.register("noise_settings_tag",n("$worldgen/noise_settings")),e.register("placed_feature_tag",n("$worldgen/placed_feature")),e.register("processor_list_tag",n("$worldgen/processor_list")),e.register("structure_set_tag",n("$worldgen/structure_set")),e.register("template_pool_tag",n("$worldgen/template_pool")),e.register("world_preset_tag",n("$worldgen/world_preset"))};var Hu={};Object.defineProperty(Hu,"__esModule",{value:!0}),Hu.initTextComponentSchemas=void 0;const qu=Pe;Hu.initTextComponentSchemas=function(e,t){const i=qu.Reference.bind(void 0,e),n=qu.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",(0,qu.Mod)((0,qu.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:(0,qu.NumberNode)(),change:e=>{const t=parseFloat(r(e));return isFinite(t)?t:e?1:0}},{type:"boolean",node:(0,qu.BooleanNode)(),change:e=>{const t=r(e);return"true"===t||"false"===t?"true"===t:!!t}}],{context:"text_component"}),{default:()=>({text:""})}));const o={color:(0,qu.Opt)(n()),font:(0,qu.Opt)(n()),bold:(0,qu.Opt)((0,qu.BooleanNode)()),italic:(0,qu.Opt)((0,qu.BooleanNode)()),underlined:(0,qu.Opt)((0,qu.BooleanNode)()),strikethrough:(0,qu.Opt)((0,qu.BooleanNode)()),obfuscated:(0,qu.Opt)((0,qu.BooleanNode)()),insertion:(0,qu.Opt)(n()),clickEvent:(0,qu.Opt)((0,qu.ObjectNode)({action:n({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[qu.Switch]:[{push:"action"}],[qu.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:(0,qu.Opt)((0,qu.ObjectNode)({action:n({enum:["show_text","show_item","show_entity"]}),[qu.Switch]:[{push:"action"}],[qu.Case]:{show_text:{value:(0,qu.Opt)(i("text_component")),contents:(0,qu.Opt)(i("text_component"))},show_item:{value:(0,qu.Opt)(n({validator:"nbt",params:{module:"util::InventoryItem"}})),contents:(0,qu.Opt)((0,qu.ObjectNode)({id:n({validator:"resource",params:{pool:"item"}}),count:(0,qu.Opt)((0,qu.NumberNode)({integer:!0})),tag:(0,qu.Opt)(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"id"}]}}}))}))},show_entity:{value:(0,qu.Opt)((0,qu.ObjectNode)({name:(0,qu.Opt)(n()),type:(0,qu.Opt)(n()),id:(0,qu.Opt)(n())})),contents:(0,qu.Opt)((0,qu.Mod)((0,qu.ObjectNode)({name:(0,qu.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:(0,qu.Opt)(i("text_component_list"))};e.register("text_component_object",(0,qu.Mod)((0,qu.ChoiceNode)([{type:"text",match:e=>"object"==typeof e,change:e=>({text:""}),priority:-1,node:(0,qu.ObjectNode)(s({text:n()},o))},{type:"translation",match:e=>void 0!==(null==e?void 0:e.translate),change:e=>({translate:""}),node:(0,qu.ObjectNode)(s({translate:n(),with:(0,qu.Opt)(i("text_component_list"))},o))},{type:"score",match:e=>void 0!==(null==e?void 0:e.score),change:e=>({score:{}}),node:(0,qu.ObjectNode)(s({score:(0,qu.ObjectNode)({name:n({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:n({validator:"objective"}),value:(0,qu.Opt)(n())})},o))},{type:"selector",match:e=>void 0!==(null==e?void 0:e.selector),change:e=>({selector:""}),node:(0,qu.ObjectNode)(s({selector:n({validator:"entity",params:{amount:"multiple",type:"entities"}}),separator:(0,qu.Opt)(i("text_component"))},o))},{type:"keybind",match:e=>void 0!==(null==e?void 0:e.keybind),change:e=>({keybind:""}),node:(0,qu.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:(0,qu.ObjectNode)(s({nbt:n({validator:"nbt_path"}),block:(0,qu.Opt)(n({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:(0,qu.Opt)(n({validator:"entity",params:{amount:"multiple",type:"entities"}})),storage:(0,qu.Opt)(n({validator:"resource",params:{pool:"$storage"}})),interpret:(0,qu.Opt)((0,qu.BooleanNode)()),separator:(0,qu.Opt)(i("text_component"))},o))}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),e.register("text_component_list",(0,qu.Mod)((0,qu.ListNode)(i("text_component")),{default:()=>[{text:""}]}))};var Vu={},Gu={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.initBiomeSchemas=e.MobCategorySpawnSettings=void 0;const t=Pe,i=bu;e.initBiomeSchemas=function(n,r){const o=t.StringNode.bind(void 0,r);e.MobCategorySpawnSettings=(0,t.Mod)((0,t.ListNode)((0,t.ObjectNode)({type:o({validator:"resource",params:{pool:"entity_type"}}),weight:(0,t.NumberNode)({integer:!0}),minCount:(0,t.NumberNode)({integer:!0}),maxCount:(0,t.NumberNode)({integer:!0})})),{category:()=>"pool",default:()=>[{type:"minecraft:bat",weight:1}]}),n.register("biome",(0,t.Mod)((0,t.ObjectNode)({temperature:(0,t.NumberNode)(),downfall:(0,t.NumberNode)(),precipitation:o({enum:["none","rain","snow"]}),temperature_modifier:(0,t.Opt)(o({enum:["none","frozen"]})),creature_spawn_probability:(0,t.Opt)((0,t.NumberNode)({min:0,max:1})),effects:(0,t.ObjectNode)({sky_color:(0,t.NumberNode)({color:!0}),fog_color:(0,t.NumberNode)({color:!0}),water_color:(0,t.NumberNode)({color:!0}),water_fog_color:(0,t.NumberNode)({color:!0}),grass_color:(0,t.Opt)((0,t.NumberNode)({color:!0})),foliage_color:(0,t.Opt)((0,t.NumberNode)({color:!0})),grass_color_modifier:(0,t.Opt)(o({enum:["none","dark_forest","swamp"]})),ambient_sound:(0,t.Opt)(o()),mood_sound:(0,t.Opt)((0,t.ObjectNode)({sound:o(),tick_delay:(0,t.NumberNode)({integer:!0}),block_search_extent:(0,t.NumberNode)({integer:!0}),offset:(0,t.NumberNode)()})),additions_sound:(0,t.Opt)((0,t.ObjectNode)({sound:o(),tick_chance:(0,t.NumberNode)({min:0,max:1})})),music:(0,t.Opt)((0,t.ObjectNode)({sound:o(),min_delay:(0,t.NumberNode)({integer:!0,min:0}),max_delay:(0,t.NumberNode)({integer:!0,min:0}),replace_current_music:(0,t.BooleanNode)()})),particle:(0,t.Opt)((0,t.ObjectNode)({options:(0,t.ObjectNode)({type:o()}),probability:(0,t.NumberNode)({min:0,max:1})}))}),spawners:(0,t.MapNode)(o({enum:"mob_category"}),e.MobCategorySpawnSettings),spawn_costs:(0,t.MapNode)(o({validator:"resource",params:{pool:"entity_type"}}),(0,t.Mod)((0,t.ObjectNode)({energy_budget:(0,t.NumberNode)(),charge:(0,t.NumberNode)()},{category:"function"}),{default:()=>({energy_budget:.12,charge:1})})),carvers:(0,t.MapNode)(o({enum:["air","liquid"]}),(0,t.Mod)((0,i.Tag)({resource:"$worldgen/configured_carver",inlineSchema:"configured_carver"}),{default:()=>["minecraft:cave"]})),features:(0,t.ListNode)((0,t.Mod)((0,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}})}))}}(Gu);var Ku={};Object.defineProperty(Ku,"__esModule",{value:!0}),Ku.initCarverSchemas=void 0;const Xu=Pe,Ju=bu;Ku.initCarverSchemas=function(e,t){const i=Xu.Reference.bind(void 0,e),n=Xu.StringNode.bind(void 0,t),r={vertical_rotation:(0,Ju.FloatProvider)(),shape:(0,Xu.ObjectNode)({distance_factor:(0,Ju.FloatProvider)(),thickness:(0,Ju.FloatProvider)(),width_smoothness:(0,Xu.NumberNode)({integer:!0,min:0}),horizontal_radius_factor:(0,Ju.FloatProvider)(),vertical_radius_default_factor:(0,Xu.NumberNode)(),vertical_radius_center_factor:(0,Xu.NumberNode)()})},o={horizontal_radius_multiplier:(0,Ju.FloatProvider)(),vertical_radius_multiplier:(0,Ju.FloatProvider)(),floor_level:(0,Ju.FloatProvider)({min:-1,max:1})};e.register("configured_carver",(0,Xu.Mod)((0,Xu.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/carver"}}),config:(0,Xu.ObjectNode)({probability:(0,Xu.NumberNode)({min:0,max:1}),y:i("height_provider"),yScale:(0,Ju.FloatProvider)(),lava_level:i("vertical_anchor"),replaceable:(0,Ju.Tag)({resource:"block"}),debug_settings:(0,Xu.Opt)((0,Xu.ObjectNode)({debug_mode:(0,Xu.Opt)((0,Xu.BooleanNode)()),air_state:(0,Xu.Opt)(i("block_state")),water_state:(0,Xu.Opt)(i("block_state")),lava_state:(0,Xu.Opt)(i("block_state")),barrier_state:(0,Xu.Opt)(i("block_state"))})),[Xu.Switch]:["pop",{push:"type"}],[Xu.Case]:{"minecraft:canyon":r,"minecraft:cave":o,"minecraft:nether_cave":o}})},{context:"carver"}),{default:()=>({type:"minecraft:cave",config:{probability:.1}})}))};var Yu={};Object.defineProperty(Yu,"__esModule",{value:!0}),Yu.initDecoratorSchemas=void 0;const Zu=Pe,Qu=bu;Yu.initDecoratorSchemas=function(e,t){const i=Zu.Reference.bind(void 0,e),n=Zu.StringNode.bind(void 0,t);e.register("decorator",(0,Zu.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/placement_modifier_type"}}),[Zu.Switch]:[{push:"type"}],[Zu.Case]:{"minecraft:block_predicate_filter":{predicate:i("block_predicate_worldgen")},"minecraft:carving_mask":{step:n({enum:"generation_step"})},"minecraft:rarity_filter":{chance:(0,Zu.NumberNode)({integer:!0,min:0})},"minecraft:count":{count:(0,Qu.IntProvider)({min:0,max:256})},"minecraft:count_on_every_layer":{count:(0,Qu.IntProvider)({min:0,max:256})},"minecraft:noise_threshold_count":{noise_level:(0,Zu.NumberNode)(),below_noise:(0,Zu.NumberNode)({integer:!0}),above_noise:(0,Zu.NumberNode)({integer:!0})},"minecraft:noise_based_count":{noise_to_count_ratio:(0,Zu.NumberNode)({integer:!0}),noise_factor:(0,Zu.NumberNode)(),noise_offset:(0,Zu.Opt)((0,Zu.NumberNode)())},"minecraft:environment_scan":{direction_of_search:n({enum:["up","down"]}),max_steps:(0,Zu.NumberNode)({integer:!0,min:1,max:32}),target_condition:i("block_predicate_worldgen"),allowed_search_condition:(0,Zu.Opt)(i("block_predicate_worldgen"))},"minecraft:heightmap":{heightmap:n({enum:"heightmap_type"})},"minecraft:height_range":{height:i("height_provider")},"minecraft:random_offset":{xz_spread:(0,Qu.IntProvider)({min:-16,max:16}),y_spread:(0,Qu.IntProvider)({min:-16,max:16})},"minecraft:surface_relative_threshold_filter":{heightmap:n({enum:"heightmap_type"}),min_inclusive:(0,Zu.Opt)((0,Zu.NumberNode)({integer:!0})),max_inclusive:(0,Zu.Opt)((0,Zu.NumberNode)({integer:!0}))},"minecraft:surface_water_depth_filter":{max_water_depth:(0,Zu.NumberNode)({integer:!0})}}},{context:"decorator",category:"predicate"}))};var ed={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.initDensityFunctionSchemas=e.DensityFunction=void 0;const t=Pe;e.initDensityFunctionSchemas=function(i,n){const r=t.StringNode.bind(void 0,n),o=t.Reference.bind(void 0,i);e.DensityFunction=(0,t.Mod)((0,t.ChoiceNode)([{type:"number",node:(0,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=(0,t.ChoiceNode)([{type:"string",node:r({validator:"resource",params:{pool:"$worldgen/noise"}}),change:()=>{}},{type:"object",node:o("noise_parameters")}],{choiceContext:"noise_parameters"}),s=(0,t.NumberNode)({min:-1e6,max:1e6}),c=(0,t.NumberNode)({integer:!0,min:-4064,max:4062});i.register("density_function",(0,t.Mod)((0,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:blend_density":{argument: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:constant":{argument:(0,t.NumberNode)()},"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:(0,t.NumberNode)(),y_scale:(0,t.NumberNode)()},"minecraft:old_blended_noise":{xz_scale:(0,t.NumberNode)(),y_scale:(0,t.NumberNode)(),xz_factor:(0,t.NumberNode)(),y_factor:(0,t.NumberNode)(),smear_scale_multiplier:(0,t.NumberNode)({min:1,max:8})},"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:(0,t.NumberNode)(),y_scale:(0,t.NumberNode)(),shift_x:e.DensityFunction,shift_y:e.DensityFunction,shift_z:e.DensityFunction},"minecraft:slide":{argument:e.DensityFunction},"minecraft:spline":{spline:o("cubic_spline")},"minecraft:square":{argument:e.DensityFunction},"minecraft:squeeze":{argument: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}),{default:()=>({type:"minecraft:noise",noise:"minecraft:cave_entrance",xz_scale:.75,y_scale:.5})})),i.register("cubic_spline",(0,t.Mod)((0,t.ChoiceNode)([{type:"number",node:(0,t.NumberNode)()},{type:"object",node:(0,t.ObjectNode)({coordinate:e.DensityFunction,points:(0,t.ListNode)((0,t.ObjectNode)({location:(0,t.NumberNode)(),derivative:(0,t.NumberNode)(),value:o("cubic_spline")}))},{category:"function"})}],{context:"terrain_spline",choiceContext:"terrain_spline"}),{default:()=>0}))}}(ed);var td={},id={};Object.defineProperty(id,"__esModule",{value:!0}),id.initProcessorListSchemas=id.Processors=void 0;const nd=Pe,rd=bu;id.initProcessorListSchemas=function(e,t){const i=nd.Reference.bind(void 0,e),n=nd.StringNode.bind(void 0,t);id.Processors=(0,nd.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",(0,nd.Mod)((0,nd.ObjectNode)({processors:(0,nd.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",(0,nd.Mod)((0,nd.ObjectNode)({processor_type:n({validator:"resource",params:{pool:"worldgen/structure_processor"}}),[nd.Switch]:[{push:"processor_type"}],[nd.Case]:{"minecraft:block_age":{mossiness:(0,nd.NumberNode)()},"minecraft:block_ignore":{blocks:(0,nd.ListNode)(i("block_state"))},"minecraft:block_rot":{integrity:(0,nd.NumberNode)({min:0,max:1}),rottable_blocks:(0,nd.Opt)((0,rd.Tag)({resource:"block"}))},"minecraft:gravity":{heightmap:n({enum:"heightmap_type"}),offset:(0,nd.NumberNode)({integer:!0})},"minecraft:protected_blocks":{value:n({validator:"resource",params:{pool:"block",requireTag:!0}})},"minecraft:rule":{rules:(0,nd.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",(0,nd.Mod)((0,nd.ObjectNode)({position_predicate:(0,nd.Opt)(i("pos_rule_test")),location_predicate:i("rule_test"),input_predicate:i("rule_test"),output_state:i("block_state"),output_nbt:(0,nd.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:(0,nd.Opt)((0,nd.NumberNode)({min:0,max:255,integer:!0})),max_dist:(0,nd.Opt)((0,nd.NumberNode)({min:0,max:255,integer:!0})),min_chance:(0,nd.Opt)((0,nd.NumberNode)({min:0,max:1})),max_chance:(0,nd.Opt)((0,nd.NumberNode)({min:0,max:1}))};e.register("pos_rule_test",(0,nd.ObjectNode)({predicate_type:n({validator:"resource",params:{pool:"pos_rule_test"}}),[nd.Switch]:[{push:"predicate_type"}],[nd.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",(0,nd.ObjectNode)({predicate_type:n({validator:"resource",params:{pool:"rule_test"}}),[nd.Switch]:[{push:"predicate_type"}],[nd.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:(0,nd.NumberNode)({min:0,max:1})},"minecraft:random_blockstate_match":{block_state:i("block_state"),probability:(0,nd.NumberNode)({min:0,max:1})},"minecraft:tag_match":{tag:n({validator:"resource",params:{pool:"$tag/block"}})}}},{context:"rule_test",disableSwitchContext:!0}))},Object.defineProperty(td,"__esModule",{value:!0}),td.initFeatureSchemas=void 0;const od=Pe,ad=bu,sd=id;td.initFeatureSchemas=function(e,t){const i=od.Reference.bind(void 0,e),n=od.StringNode.bind(void 0,t),r=(0,od.ChoiceNode)([{type:"string",node:n({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},{type:"object",node:i("configured_feature")}],{choiceContext:"feature"}),o=(0,od.ChoiceNode)([{type:"string",node:n({validator:"resource",params:{pool:"$worldgen/placed_feature"}})},{type:"object",node:i("placed_feature")}],{choiceContext:"placed_feature"}),a={tries:(0,od.Opt)((0,od.NumberNode)({integer:!0,min:1})),xz_spread:(0,od.Opt)((0,od.NumberNode)({integer:!0,min:0})),y_spread:(0,od.Opt)((0,od.NumberNode)({integer:!0,min:0})),feature:o},l={cap_provider:i("block_state_provider"),stem_provider:i("block_state_provider"),foliage_radius:(0,od.Opt)((0,od.NumberNode)({integer:!0}))},u=(0,od.ObjectNode)({target:i("rule_test"),state:i("block_state")}),d={size:(0,od.NumberNode)({integer:!0,min:0,max:64}),discard_chance_on_air_exposure:(0,od.NumberNode)({min:0,max:1}),targets:(0,od.ListNode)(u)},h={surface:n({enum:"cave_surface"}),depth:(0,ad.IntProvider)({min:1,max:128}),vertical_range:(0,od.NumberNode)({integer:!0,min:1,max:256}),extra_bottom_block_chance:(0,od.NumberNode)({min:0,max:1}),extra_edge_column_chance:(0,od.NumberNode)({min:0,max:1}),vegetation_chance:(0,od.NumberNode)({min:0,max:1}),xz_radius:(0,ad.IntProvider)(),replaceable:n({validator:"resource",params:{pool:"block",requireTag:!0}}),ground_state:i("block_state_provider"),vegetation_feature:o};e.register("configured_feature",(0,od.Mod)((0,od.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/feature"}}),config:(0,od.ObjectNode)({[od.Switch]:["pop",{push:"type"}],[od.Case]:{"minecraft:bamboo":{probability:(0,od.NumberNode)({min:0,max:1})},"minecraft:basalt_columns":{reach:(0,ad.IntProvider)({min:0,max:3}),height:(0,ad.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:(0,od.BooleanNode)(),layers:(0,od.ListNode)((0,od.ObjectNode)({height:(0,ad.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:(0,ad.IntProvider)({min:0,max:16}),rim_size:(0,ad.IntProvider)({min:0,max:16})},"minecraft:disk":{state_provider:i("rule_based_block_state_provider"),target:i("block_predicate_worldgen"),radius:(0,ad.IntProvider)({min:0,max:8}),half_height:(0,od.NumberNode)({integer:!0,min:0,max:4})},"minecraft:dripstone_cluster":{floor_to_ceiling_search_range:(0,od.NumberNode)({integer:!0,min:1,max:512}),height:(0,ad.IntProvider)({min:0,max:128}),radius:(0,ad.IntProvider)({min:0,max:128}),max_stalagmite_stalactite_height_diff:(0,od.NumberNode)({integer:!0,min:0,max:64}),height_deviation:(0,od.NumberNode)({integer:!0,min:1,max:64}),dripstone_block_layer_thickness:(0,ad.IntProvider)({min:0,max:128}),density:(0,ad.FloatProvider)({min:0,max:2}),wetness:(0,ad.FloatProvider)({min:0,max:2}),chance_of_dripstone_column_at_max_distance_from_center:(0,od.NumberNode)({min:0,max:1}),max_distance_from_edge_affecting_chance_of_dripstone_column:(0,od.NumberNode)({integer:!0,min:1,max:64}),max_distance_from_center_affecting_height_bias:(0,od.NumberNode)({integer:!0,min:1,max:64})},"minecraft:end_gateway":{exact:(0,od.BooleanNode)(),exit:(0,od.Opt)(i("block_pos"))},"minecraft:end_spike":{crystal_invulnerable:(0,od.Opt)((0,od.BooleanNode)()),crystal_beam_target:(0,od.Opt)(i("block_pos")),spikes:(0,od.ListNode)((0,od.ObjectNode)({centerX:(0,od.Opt)((0,od.NumberNode)({integer:!0})),centerZ:(0,od.Opt)((0,od.NumberNode)({integer:!0})),radius:(0,od.Opt)((0,od.NumberNode)({integer:!0})),height:(0,od.Opt)((0,od.NumberNode)({integer:!0})),guarded:(0,od.Opt)((0,od.BooleanNode)())}))},"minecraft:fill_layer":{state:i("block_state"),height:(0,od.NumberNode)({integer:!0,min:0,max:255})},"minecraft:flower":a,"minecraft:forest_rock":{state:i("block_state")},"minecraft:fossil":{max_empty_corners_allowed:(0,od.NumberNode)({integer:!0,min:0,max:7}),fossil_structures:(0,od.ListNode)(n({validator:"resource",params:{pool:"$structure"}})),overlay_structures:(0,od.ListNode)(n({validator:"resource",params:{pool:"$structure"}})),fossil_processors:sd.Processors,overlay_processors:sd.Processors},"minecraft:geode":{blocks:(0,od.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:(0,od.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:(0,od.ObjectNode)({filling:(0,od.Opt)((0,od.NumberNode)({min:.01,max:50})),inner_layer:(0,od.Opt)((0,od.NumberNode)({min:.01,max:50})),middle_layer:(0,od.Opt)((0,od.NumberNode)({min:.01,max:50})),outer_layer:(0,od.Opt)((0,od.NumberNode)({min:.01,max:50}))}),crack:(0,od.ObjectNode)({generate_crack_chance:(0,od.Opt)((0,od.NumberNode)({min:0,max:1})),base_crack_size:(0,od.Opt)((0,od.NumberNode)({min:0,max:5})),crack_point_offset:(0,od.Opt)((0,od.NumberNode)({min:0,max:10}))}),noise_multiplier:(0,od.Opt)((0,od.NumberNode)({min:0,max:1})),use_potential_placements_chance:(0,od.Opt)((0,od.NumberNode)({min:0,max:1})),use_alternate_layer0_chance:(0,od.Opt)((0,od.NumberNode)({min:0,max:1})),placements_require_layer0_alternate:(0,od.Opt)((0,od.BooleanNode)()),outer_wall_distance:(0,od.Opt)((0,ad.IntProvider)({min:1,max:20})),distribution_points:(0,od.Opt)((0,ad.IntProvider)({min:1,max:20})),point_offset:(0,od.Opt)((0,ad.IntProvider)({min:0,max:10})),min_gen_offset:(0,od.Opt)((0,od.NumberNode)({integer:!0})),max_gen_offset:(0,od.Opt)((0,od.NumberNode)({integer:!0})),invalid_blocks_threshold:(0,od.NumberNode)({integer:!0})},"minecraft:multiface_growth":{search_range:(0,od.Opt)((0,od.NumberNode)({min:1,max:64,integer:!0})),chance_of_spreading:(0,od.Opt)((0,od.NumberNode)({min:0,max:1})),can_place_on_floor:(0,od.Opt)((0,od.BooleanNode)()),can_place_on_ceiling:(0,od.Opt)((0,od.BooleanNode)()),can_place_on_wall:(0,od.Opt)((0,od.BooleanNode)()),can_be_placed_on:(0,ad.Tag)({resource:"block"})},"minecraft:huge_brown_mushroom":l,"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:(0,od.Opt)((0,od.BooleanNode)())},"minecraft:huge_red_mushroom":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:(0,od.Opt)((0,od.NumberNode)({integer:!0,min:1,max:512})),column_radius:(0,ad.IntProvider)({min:0,max:60}),height_scale:(0,ad.FloatProvider)({min:0,max:20}),max_column_radius_to_cave_height_ratio:(0,od.NumberNode)({min:0,max:1}),stalactite_bluntness:(0,ad.FloatProvider)({min:.1,max:10}),stalagmite_bluntness:(0,ad.FloatProvider)({min:.1,max:10}),wind_speed:(0,ad.FloatProvider)({min:0,max:2}),min_radius_for_wind:(0,od.NumberNode)({integer:!0,min:0,max:100}),min_bluntness_for_wind:(0,od.NumberNode)({min:0,max:5})},"minecraft:nether_forest_vegetation":{state_provider:i("block_state_provider"),spread_width:(0,od.NumberNode)({integer:!0,min:1}),spread_height:(0,od.NumberNode)({integer:!0,min:1})},"minecraft:netherrack_replace_blobs":{state:i("block_state"),target:i("block_state"),radius:(0,ad.IntProvider)({min:0,max:12})},"minecraft:no_bonemeal_flower":a,"minecraft:ore":d,"minecraft:pointed_dripstone":{chance_of_taller_dripstone:(0,od.Opt)((0,od.NumberNode)({min:0,max:1})),chance_of_directional_spread:(0,od.Opt)((0,od.NumberNode)({min:0,max:1})),chance_of_spread_radius2:(0,od.Opt)((0,od.NumberNode)({min:0,max:1})),chance_of_spread_radius3:(0,od.Opt)((0,od.NumberNode)({min:0,max:1}))},"minecraft:random_patch":a,"minecraft:random_boolean_selector":{feature_false:o,feature_true:o},"minecraft:random_selector":{features:(0,od.ListNode)((0,od.ObjectNode)({chance:(0,od.NumberNode)({min:0,max:1}),feature:o})),default:o},"minecraft:replace_single_block":{targets:(0,od.ListNode)(u)},"minecraft:root_system":{required_vertical_space_for_tree:(0,od.NumberNode)({integer:!0,min:1,max:64}),root_radius:(0,od.NumberNode)({integer:!0,min:1,max:64}),root_placement_attempts:(0,od.NumberNode)({integer:!0,min:1,max:256}),root_column_max_height:(0,od.NumberNode)({integer:!0,min:1,max:4096}),hanging_root_radius:(0,od.NumberNode)({integer:!0,min:1,max:64}),hanging_roots_vertical_span:(0,od.NumberNode)({integer:!0,min:0,max:16}),hanging_root_placement_attempts:(0,od.NumberNode)({integer:!0,min:0,max:256}),allowed_vertical_water_for_tree:(0,od.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":d,"minecraft:sculk_patch":{charge_count:(0,od.NumberNode)({integer:!0,min:1,max:32}),amount_per_charge:(0,od.NumberNode)({integer:!0,min:1,max:500}),spread_attempts:(0,od.NumberNode)({integer:!0,min:1,max:64}),growth_rounds:(0,od.NumberNode)({integer:!0,min:0,max:8}),spread_rounds:(0,od.NumberNode)({integer:!0,min:0,max:8}),extra_rare_growths:(0,ad.IntProvider)(),catalyst_chance:(0,od.NumberNode)({min:0,max:1})},"minecraft:sea_pickle":{count:(0,ad.IntProvider)({min:0,max:256})},"minecraft:seagrass":{probability:(0,od.NumberNode)({min:0,max:1})},"minecraft:simple_block":{to_place:i("block_state_provider")},"minecraft:simple_random_selector":{features:(0,ad.Tag)({resource:"$worldgen/placed_feature",inlineSchema:"placed_feature"})},"minecraft:spring_feature":{state:i("fluid_state"),rock_count:(0,od.NumberNode)({integer:!0}),hole_count:(0,od.NumberNode)({integer:!0}),requires_block_below:(0,od.BooleanNode)(),valid_blocks:(0,ad.Tag)({resource:"block"})},"minecraft:tree":{ignore_vines:(0,od.Opt)((0,od.BooleanNode)()),force_dirt:(0,od.Opt)((0,od.BooleanNode)()),minimum_size:i("feature_size"),dirt_provider:i("block_state_provider"),trunk_provider:i("block_state_provider"),foliage_provider:i("block_state_provider"),root_placer:(0,od.Opt)((0,od.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/root_placer_type"}}),root_provider:i("block_state_provider"),trunk_offset_y:(0,ad.IntProvider)(),above_root_placement:(0,od.Opt)((0,od.ObjectNode)({above_root_provider:i("block_state_provider"),above_root_placement_chance:(0,od.NumberNode)({min:0,max:1})})),[od.Switch]:[{push:"type"}],[od.Case]:{"minecraft:mangrove_root_placer":{mangrove_root_placement:(0,od.ObjectNode)({max_root_width:(0,od.NumberNode)({integer:!0,min:1,max:12}),max_root_length:(0,od.NumberNode)({integer:!0,min:1,max:64}),random_skew_chance:(0,od.NumberNode)({min:0,max:1}),can_grow_through:(0,ad.Tag)({resource:"block"}),muddy_roots_in:(0,ad.Tag)({resource:"block"}),muddy_roots_provider:i("block_state_provider")})}}},{context:"root_placer"})),trunk_placer:(0,od.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/trunk_placer_type"}}),base_height:(0,od.NumberNode)({integer:!0,min:0,max:32}),height_rand_a:(0,od.NumberNode)({integer:!0,min:0,max:24}),height_rand_b:(0,od.NumberNode)({integer:!0,min:0,max:24}),[od.Switch]:[{push:"type"}],[od.Case]:{"minecraft:bending_trunk_placer":{bend_length:(0,ad.IntProvider)({min:1,max:64}),min_height_for_leaves:(0,od.Opt)((0,od.NumberNode)({integer:!0,min:1}))},"minecraft:upwards_branching_trunk_placer":{extra_branch_steps:(0,ad.IntProvider)({min:1}),extra_branch_length:(0,ad.IntProvider)({min:0}),place_branch_per_log_probability:(0,od.NumberNode)({min:0,max:1}),can_grow_through:(0,ad.Tag)({resource:"block"})}}},{context:"trunk_placer"}),foliage_placer:(0,od.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/foliage_placer_type"}}),radius:(0,ad.IntProvider)({min:0,max:16}),offset:(0,ad.IntProvider)({min:0,max:16}),[od.Switch]:[{push:"type"}],[od.Case]:{"minecraft:blob_foliage_placer":{height:(0,od.NumberNode)({integer:!0,min:0,max:16})},"minecraft:bush_foliage_placer":{height:(0,od.NumberNode)({integer:!0,min:0,max:16})},"minecraft:fancy_foliage_placer":{height:(0,od.NumberNode)({integer:!0,min:0,max:16})},"minecraft:jungle_foliage_placer":{height:(0,od.NumberNode)({integer:!0,min:0,max:16})},"minecraft:mega_pine_foliage_placer":{crown_height:(0,ad.IntProvider)({min:0,max:24})},"minecraft:pine_foliage_placer":{height:(0,ad.IntProvider)({min:0,max:24})},"minecraft:random_spread_foliage_placer":{foliage_height:(0,ad.IntProvider)({min:1,max:512}),leaf_placement_attempts:(0,od.NumberNode)({integer:!0,min:0,max:256})},"minecraft:spruce_foliage_placer":{trunk_height:(0,ad.IntProvider)({min:0,max:24})}}},{context:"foliage_placer",disableSwitchContext:!0}),decorators:(0,od.ListNode)((0,od.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/tree_decorator_type"}}),[od.Switch]:[{push:"type"}],[od.Case]:{"minecraft:alter_ground":{provider:i("block_state_provider")},"minecraft:attached_to_leaves":{probability:(0,od.NumberNode)({min:0,max:1}),exclusion_radius_xz:(0,od.NumberNode)({integer:!0,min:0,max:16}),exclusion_radius_y:(0,od.NumberNode)({integer:!0,min:0,max:16}),required_empty_blocks:(0,od.NumberNode)({integer:!0,min:1,max:16}),block_provider:i("block_state_provider"),directions:(0,od.ListNode)(n({enum:"direction"}))},"minecraft:beehive":{probability:(0,od.NumberNode)({min:0,max:1})},"minecraft:cocoa":{probability:(0,od.NumberNode)({min:0,max:1})},"minecraft:leave_vine":{probability:(0,od.NumberNode)({min:0,max:1})}}},{context:"tree_decorator"}))},"minecraft:twisting_vines":{spread_width:(0,od.NumberNode)({integer:!0,min:1}),spread_height:(0,od.NumberNode)({integer:!0,min:1}),max_height:(0,od.NumberNode)({integer:!0,min:1})},"minecraft:underwater_magma":{floor_search_range:(0,od.NumberNode)({integer:!0,min:0,max:512}),placement_radius_around_floor:(0,od.NumberNode)({integer:!0,min:0,max:64}),placement_probability_per_valid_position:(0,od.NumberNode)({min:0,max:1})},"minecraft:vegetation_patch":h,"minecraft:waterlogged_vegetation_patch":h}},{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",(0,od.Mod)((0,od.ObjectNode)({feature:r,placement:(0,od.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",(0,od.Mod)((0,od.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/feature_size_type"}}),min_clipped_height:(0,od.Opt)((0,od.NumberNode)({min:0,max:80})),[od.Switch]:[{push:"type"}],[od.Case]:{"minecraft:two_layers_feature_size":{limit:(0,od.Opt)((0,od.NumberNode)({integer:!0,min:0,max:81})),lower_size:(0,od.Opt)((0,od.NumberNode)({integer:!0,min:0,max:16})),upper_size:(0,od.Opt)((0,od.NumberNode)({integer:!0,min:0,max:16}))},"minecraft:three_layers_feature_size":{limit:(0,od.Opt)((0,od.NumberNode)({integer:!0,min:0,max:80})),upper_limit:(0,od.Opt)((0,od.NumberNode)({integer:!0,min:0,max:80})),lower_size:(0,od.Opt)((0,od.NumberNode)({integer:!0,min:0,max:16})),middle_size:(0,od.Opt)((0,od.NumberNode)({integer:!0,min:0,max:16})),upper_size:(0,od.Opt)((0,od.NumberNode)({integer:!0,min:0,max:16}))}}},{disableSwitchContext:!0}),{default:()=>({type:"minecraft:two_layers_feature_size"})}));const p={seed:(0,od.NumberNode)({integer:!0}),noise:i("noise_parameters"),scale:(0,od.Mod)((0,od.NumberNode)({min:Number.MIN_VALUE}),{default:()=>1})};e.register("block_state_provider",(0,od.Mod)((0,od.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/block_state_provider_type"}}),[od.Switch]:[{push:"type"}],[od.Case]:{"minecraft:dual_noise_provider":c(s({},p),{variety:(0,ad.InclusiveRange)({integer:!0,min:1,max:64}),slow_noise:i("noise_parameters"),slow_scale:(0,od.Mod)((0,od.NumberNode)({min:Number.MIN_VALUE}),{default:()=>1}),states:(0,od.ListNode)(i("block_state"))}),"minecraft:noise_threshold_provider":c(s({},p),{threshold:(0,od.NumberNode)({min:-1,max:1}),high_chance:(0,od.NumberNode)({min:0,max:1}),default_state:i("block_state"),low_states:(0,od.ListNode)(i("block_state")),high_states:(0,od.ListNode)(i("block_state"))}),"minecraft:noise_provider":c(s({},p),{states:(0,od.ListNode)(i("block_state"))}),"minecraft:randomized_int_state_provider":{property:n(),values:(0,ad.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:(0,od.ListNode)((0,od.Mod)((0,od.ObjectNode)({weight:(0,od.NumberNode)({integer:!0,min:1}),data:i("block_state")}),{default:()=>({data:{}})}))}}},{context:"block_state_provider"}),{default:()=>({type:"minecraft:simple_state_provider"})})),e.register("rule_based_block_state_provider",(0,od.Mod)((0,od.ObjectNode)({fallback:i("block_state_provider"),rules:(0,od.ListNode)((0,od.ObjectNode)({if_true:i("block_predicate_worldgen"),then:i("block_state_provider")}))},{context:"block_state_provider"}),{default:()=>({fallback:{type:"minecraft:simple_state_provider"}})}));const m={offset:(0,od.Opt)((0,od.ListNode)((0,od.NumberNode)({integer:!0,min:-16,max:16}),{minLength:3,maxLength:3}))};e.register("block_predicate_worldgen",(0,od.Mod)((0,od.ObjectNode)({type:n({validator:"resource",params:{pool:"block_predicate_type"}}),[od.Switch]:[{push:"type"}],[od.Case]:{"minecraft:all_of":{predicates:(0,od.ListNode)(i("block_predicate_worldgen"))},"minecraft:any_of":{predicates:(0,od.ListNode)(i("block_predicate_worldgen"))},"minecraft:has_sturdy_face":c(s({},m),{direction:n({enum:"direction"})}),"minecraft:inside_world_bounds":s({},m),"minecraft:matching_block_tag":c(s({},m),{tag:n({validator:"resource",params:{pool:"$tag/block"}})}),"minecraft:matching_blocks":c(s({},m),{blocks:(0,ad.Tag)({resource:"block"})}),"minecraft:matching_fluids":c(s({},m),{fluids:(0,ad.Tag)({resource:"fluid"})}),"minecraft:not":{predicate:i("block_predicate_worldgen")},"minecraft:would_survive":c(s({},m),{state:i("block_state")})}},{context:"block_predicate"}),{default:()=>({type:"minecraft:true"})}))};var cd={};Object.defineProperty(cd,"__esModule",{value:!0}),cd.initNoiseSettingsSchemas=void 0;const ld=Pe,ud=bu,dd=ed;cd.initNoiseSettingsSchemas=function(e,t){const i=ld.Reference.bind(void 0,e),n=ld.StringNode.bind(void 0,t);e.register("noise_settings",(0,ld.Mod)((0,ld.ObjectNode)({sea_level:(0,ld.NumberNode)({integer:!0}),disable_mob_generation:(0,ld.BooleanNode)(),aquifers_enabled:(0,ld.BooleanNode)(),ore_veins_enabled:(0,ld.BooleanNode)(),legacy_random_source:(0,ld.BooleanNode)(),default_block:i("block_state"),default_fluid:i("block_state"),noise:(0,ld.ObjectNode)({min_y:(0,ld.NumberNode)({integer:!0,min:-2048,max:2047}),height:(0,ld.NumberNode)({integer:!0,min:0,max:4096}),size_horizontal:(0,ld.NumberNode)({integer:!0}),size_vertical:(0,ld.NumberNode)({integer:!0})}),noise_router:(0,ld.ObjectNode)({barrier:dd.DensityFunction,fluid_level_floodedness:dd.DensityFunction,fluid_level_spread:dd.DensityFunction,lava:dd.DensityFunction,temperature:dd.DensityFunction,vegetation:dd.DensityFunction,continents:dd.DensityFunction,erosion:dd.DensityFunction,depth:dd.DensityFunction,ridges:dd.DensityFunction,initial_density_without_jaggedness:dd.DensityFunction,final_density:dd.DensityFunction,vein_toggle:dd.DensityFunction,vein_ridged:dd.DensityFunction,vein_gap:dd.DensityFunction}),spawn_target:(0,ld.ListNode)(i("parameter_point")),surface_rule:i("material_rule")},{context:"noise_settings"}),(e=>({default:()=>ud.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",(0,ld.ObjectNode)({target:(0,ld.NumberNode)(),size:(0,ld.NumberNode)({integer:!0,min:0}),offset:(0,ld.NumberNode)({integer:!0})})),e.register("generator_layer",(0,ld.Mod)((0,ld.ObjectNode)({block:n({validator:"resource",params:{pool:"block"}}),height:(0,ld.NumberNode)({integer:!0,min:1})}),{default:()=>({block:"minecraft:stone",height:1})}))};var hd={};Object.defineProperty(hd,"__esModule",{value:!0}),hd.initStructureSchemas=void 0;const pd=Pe,md=bu,fd=Gu;hd.initStructureSchemas=function(e,t){const i=pd.StringNode.bind(void 0,t),n=pd.Reference.bind(void 0,e);e.register("structure",(0,pd.Mod)((0,pd.ObjectNode)({type:i({validator:"resource",params:{pool:"worldgen/structure_type"}}),biomes:(0,md.Tag)({resource:"$worldgen/biome"}),step:i({enum:"decoration_step"}),spawn_overrides:(0,pd.MapNode)(i({enum:"mob_category"}),(0,pd.ObjectNode)({bounding_box:i({enum:["piece","full"]}),spawns:fd.MobCategorySpawnSettings})),terrain_adaptation:(0,pd.Opt)(i({enum:["none","beard_thin","beard_box","bury"]})),[pd.Switch]:[{push:"type"}],[pd.Case]:{"minecraft:jigsaw":{start_pool:i({validator:"resource",params:{pool:"$worldgen/template_pool"}}),size:(0,pd.NumberNode)({integer:!0}),start_height:n("height_provider"),project_start_to_heightmap:(0,pd.Opt)(i({enum:"heightmap_type"})),max_distance_from_center:(0,pd.NumberNode)({integer:!0,min:1,max:128}),use_expansion_hack:(0,pd.BooleanNode)()},"minecraft:mineshaft":{mineshaft_type:i({enum:["normal","mesa"]})},"minecraft:nether_fossil":{height:n("height_provider")},"minecraft:ocean_ruin":{biome_temp:i({enum:["cold","warm"]}),large_probability:(0,pd.NumberNode)({min:0,max:1}),cluster_probability:(0,pd.NumberNode)({min:0,max:1})},"minecraft:ruined_portal":{setups:(0,pd.ListNode)((0,pd.ObjectNode)({placement:i({enum:["on_land_surface","partly_buried","on_ocean_floor","in_mountain","underground","in_nether"]}),air_pocket_probability:(0,pd.NumberNode)({min:0,max:1}),mossiness:(0,pd.NumberNode)({min:0,max:1}),overgrown:(0,pd.BooleanNode)(),vines:(0,pd.BooleanNode)(),can_be_cold:(0,pd.BooleanNode)(),replace_with_blackstone:(0,pd.BooleanNode)(),weight:(0,pd.NumberNode)({min:0})}))},"minecraft:shipwreck":{is_beached:(0,pd.Opt)((0,pd.BooleanNode)())}}},{context:"structure_feature"}),{default:()=>({type:"minecraft:jigsaw",step:"surface_structures",size:6})}))};var gd={};Object.defineProperty(gd,"__esModule",{value:!0}),gd.initStructureSetSchemas=void 0;const _d=Pe,bd=bu;gd.initStructureSetSchemas=function(e,t){const i=_d.StringNode.bind(void 0,t),n=_d.Reference.bind(void 0,e),r=(0,_d.ChoiceNode)([{type:"string",node:i({validator:"resource",params:{pool:"$worldgen/structure_set"}})},{type:"object",node:n("structure_set")}],{choiceContext:"structure_set"});e.register("structure_set",(0,_d.ObjectNode)({structures:(0,_d.ListNode)((0,_d.ObjectNode)({structure:(0,bd.Tag)({resource:"$worldgen/structure"}),weight:(0,_d.NumberNode)({integer:!0,min:1})})),placement:n("structure_placement")},{context:"structure_set"})),e.register("structure_placement",(0,_d.Mod)((0,_d.ObjectNode)({type:i({validator:"resource",params:{pool:"worldgen/structure_placement"}}),salt:(0,_d.NumberNode)({integer:!0,min:0}),frequency_reduction_method:(0,_d.Opt)(i({enum:["default","legacy_type_1","legacy_type_2","legacy_type_3"]})),frequency:(0,_d.Opt)((0,_d.NumberNode)({min:0,max:1})),exclusion_zone:(0,_d.Opt)((0,_d.ObjectNode)({other_set:r,chunk_count:(0,_d.NumberNode)({integer:!0,min:1,max:16})})),locate_offset:(0,_d.Opt)((0,_d.ListNode)((0,_d.NumberNode)({integer:!0,min:-16,max:16}),{minLength:3,maxLength:3})),[_d.Switch]:[{push:"type"}],[_d.Case]:{"minecraft:concentric_rings":{distance:(0,_d.NumberNode)({integer:!0,min:0,max:1023}),spread:(0,_d.NumberNode)({integer:!0,min:0,max:1023}),count:(0,_d.NumberNode)({integer:!0,min:1,max:4095}),preferred_biomes:(0,bd.Tag)({resource:"$worldgen/biome"})},"minecraft:random_spread":{spread_type:(0,_d.Opt)(i({enum:["linear","triangular"]})),spacing:(0,_d.NumberNode)({integer:!0,min:0,max:4096}),separation:(0,_d.Mod)((0,_d.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))})))}}},{context:"structure_placement"}),{default:()=>({type:"minecraft:random_spread",spacing:10,separation:5,salt:Math.floor(2147483647*Math.random())})}))};var vd={};Object.defineProperty(vd,"__esModule",{value:!0}),vd.initSurfaceRuleSchemas=void 0;const yd=Pe;vd.initSurfaceRuleSchemas=function(e,t){const i=yd.StringNode.bind(void 0,t),n=yd.Reference.bind(void 0,e);e.register("material_rule",(0,yd.Mod)((0,yd.ObjectNode)({type:i({validator:"resource",params:{pool:"worldgen/material_rule"}}),[yd.Switch]:[{push:"type"}],[yd.Case]:{"minecraft:block":{result_state:n("block_state")},"minecraft:condition":{if_true:n("material_condition"),then_run:n("material_rule")},"minecraft:sequence":{sequence:(0,yd.ListNode)(n("material_rule"))}}},{context:"material_rule",category:"pool"}),{default:()=>({type:"minecraft:block",result_state:{Name:"minecraft:stone"}})})),e.register("material_condition",(0,yd.Mod)((0,yd.ObjectNode)({type:i({validator:"resource",params:{pool:"worldgen/material_condition"}}),[yd.Switch]:[{push:"type"}],[yd.Case]:{"minecraft:biome":{biome_is:(0,yd.ListNode)(i({validator:"resource",params:{pool:"$worldgen/biome"}}))},"minecraft:noise_threshold":{noise:i({validator:"resource",params:{pool:"$worldgen/noise"}}),min_threshold:(0,yd.NumberNode)(),max_threshold:(0,yd.NumberNode)()},"minecraft:not":{invert:n("material_condition")},"minecraft:stone_depth":{offset:(0,yd.NumberNode)({integer:!0}),surface_type:i({enum:"cave_surface"}),add_surface_depth:(0,yd.BooleanNode)(),secondary_depth_range:(0,yd.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:(0,yd.NumberNode)({integer:!0}),surface_depth_multiplier:(0,yd.NumberNode)({integer:!0,min:-20,max:20}),add_stone_depth:(0,yd.BooleanNode)()},"minecraft:y_above":{anchor:n("vertical_anchor"),surface_depth_multiplier:(0,yd.NumberNode)({integer:!0,min:-20,max:20}),add_stone_depth:(0,yd.BooleanNode)()}}},{context:"material_condition"}),{default:()=>({type:"minecraft:biome",is_biome:"minecraft:plains"})}))};var wd={};Object.defineProperty(wd,"__esModule",{value:!0}),wd.initTemplatePoolSchemas=void 0;const xd=Pe,Nd=id;wd.initTemplatePoolSchemas=function(e,t){const i=xd.Reference.bind(void 0,e),n=xd.StringNode.bind(void 0,t);e.register("template_pool",(0,xd.Mod)((0,xd.ObjectNode)({name:n(),fallback:n(),elements:(0,xd.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",(0,xd.Mod)((0,xd.ObjectNode)({weight:(0,xd.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",(0,xd.Mod)((0,xd.ObjectNode)({element_type:n({validator:"resource",params:{pool:"worldgen/structure_pool_element"}}),projection:n({enum:["rigid","terrain_matching"]}),[xd.Switch]:[{push:"element_type"}],[xd.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:Nd.Processors},"minecraft:list_pool_element":{elements:(0,xd.ListNode)(i("template_element"))},"minecraft:single_pool_element":{location:n({validator:"resource",params:{pool:"$structure"}}),processors:Nd.Processors}}},{context:"template_element",disableSwitchContext:!0}),{default:()=>({element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"})}))};var kd={};Object.defineProperty(kd,"__esModule",{value:!0}),kd.initWorldPresetSchemas=void 0;const Ad=Pe;kd.initWorldPresetSchemas=function(e,t){const i=Ad.StringNode.bind(void 0,t),n=Ad.Reference.bind(void 0,e);e.register("world_preset",(0,Ad.Mod)((0,Ad.ObjectNode)({dimensions:(0,Ad.MapNode)(i({validator:"resource",params:{pool:"$dimension",isDefinition:!0}}),n("dimension"))},{context:"world_preset"}),{default:()=>({dimensions:{"minecraft:overworld":{type:"minecraft:overworld",generator:{type:"minecraft:noise",biome_source:{type:"minecraft:multi_noise",preset:"minecraft:overworld"},settings:"minecraft:overworld"}},"minecraft:the_nether":{type:"minecraft:the_nether",generator:{type:"minecraft:noise",biome_source:{type:"minecraft:multi_noise",preset:"minecraft:nether"},settings:"minecraft:nether"}},"minecraft:the_end":{type:"minecraft:the_end",generator:{type:"minecraft:noise",biome_source:{type:"minecraft:the_end"},settings:"minecraft:end"}}}})})),e.register("flat_level_generator_preset",(0,Ad.Mod)((0,Ad.ObjectNode)({display:i({validator:"resource",params:{pool:"item"}}),settings:n("flat_generator_settings")}),{default:()=>({display:"minecraft:grass_block",settings:{lakes:!1,features:!1,biome:"minecraft:plains",structure_overrides:[],layers:[{height:3,block:"minecraft:dirt"},{height:1,block:"minecraft:grass_block"}]}})}))},Object.defineProperty(Vu,"__esModule",{value:!0}),Vu.initWorldgenSchemas=void 0;const Cd=Gu,Od=Ku,Sd=Yu,Ed=ed,Fd=td,Dd=cd,Bd=id,Ld=hd,Md=gd,Td=vd,Rd=wd,$d=kd;Vu.initWorldgenSchemas=function(e,t){(0,Bd.initProcessorListSchemas)(e,t),(0,Ed.initDensityFunctionSchemas)(e,t),(0,Cd.initBiomeSchemas)(e,t),(0,Od.initCarverSchemas)(e,t),(0,Sd.initDecoratorSchemas)(e,t),(0,Fd.initFeatureSchemas)(e,t),(0,Dd.initNoiseSettingsSchemas)(e,t),(0,Ld.initStructureSchemas)(e,t),(0,Md.initStructureSetSchemas)(e,t),(0,Td.initSurfaceRuleSchemas)(e,t),(0,Rd.initTemplatePoolSchemas)(e,t),(0,$d.initWorldPresetSchemas)(e,t)};var jd={};Object.defineProperty(jd,"__esModule",{value:!0}),jd.initWorldSettingsSchemas=void 0;const Id=Pe;jd.initWorldSettingsSchemas=function(e,t){const i=Id.Reference.bind(void 0,e),n=Id.StringNode.bind(void 0,t);e.register("world_settings",(0,Id.Mod)((0,Id.ObjectNode)({generate_features:(0,Id.BooleanNode)(),bonus_chest:(0,Id.BooleanNode)(),seed:(0,Id.NumberNode)({integer:!0}),dimensions:(0,Id.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(cu,"__esModule",{value:!0}),cu.initSchemas=void 0;const Pd=lu,zd=du,Ud=bu,Wd=vu,Hd=xu,qd=Au,Vd=Su,Gd=Du,Kd=Ru,Xd=ju,Jd=Pu,Yd=Uu,Zd=Hu,Qd=Vu,eh=jd;cu.initSchemas=function(e,t){(0,Ud.initCommonSchemas)(e,t),(0,Pd.initAdvancementSchemas)(e,t),(0,zd.initAssetsSchemas)(e,t),(0,Wd.initConditionSchemas)(e,t),(0,qd.initDimensionTypeSchemas)(e,t),(0,Hd.initDimensionSchemas)(e,t),(0,Vd.initItemModifierSchemas)(e,t),(0,Gd.initLootTableSchemas)(e,t),(0,Kd.initPackMcmetaSchemas)(e,t),(0,Xd.initPredicatesSchemas)(e,t),(0,Jd.initRecipeSchemas)(e,t),(0,Yd.initTagsSchemas)(e,t),(0,Zd.initTextComponentSchemas)(e,t),(0,Qd.initWorldgenSchemas)(e,t),(0,eh.initWorldSettingsSchemas)(e,t)};var th=Ie&&Ie.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i);var r=Object.getOwnPropertyDescriptor(t,i);r&&!("get"in r?!t.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,n,r)}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),ih=Ie&&Ie.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),nh=Ie&&Ie.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&th(t,e,i);return ih(t,e),t};Object.defineProperty(au,"__esModule",{value:!0});var rh=au.getSchemas=au.getCollections=au.lootContext=void 0;const oh=Pe,ah=su,sh=cu;var ch=au.lootContext=nh(Bu);var lh=au.getCollections=function(){const e=new oh.CollectionRegistry;return(0,ah.initCollections)(e),e};rh=au.getSchemas=function(e){const t=new oh.SchemaRegistry;return(0,sh.initSchemas)(t,e),t};var uh,dh,hh=Object.freeze(Object.assign(Object.create(null),au,{[Symbol.toStringTag]:"Module",get getSchemas(){return rh},get getCollections(){return lh},get lootContext(){return ch},default:au})),ph={exports:{}};uh=ph,dh=function(){var e=String.fromCharCode,t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$",n={};function r(e,t){if(!n[e]){n[e]={};for(var i=0;i<e.length;i++)n[e][e.charAt(i)]=i}return n[e][t]}var o={compressToBase64:function(e){if(null==e)return"";var i=o._compress(e,6,(function(e){return t.charAt(e)}));switch(i.length%4){default:case 0:return i;case 1:return i+"===";case 2:return i+"==";case 3:return i+"="}},decompressFromBase64:function(e){return null==e?"":""==e?null:o._decompress(e.length,32,(function(i){return r(t,e.charAt(i))}))},compressToUTF16:function(t){return null==t?"":o._compress(t,15,(function(t){return e(t+32)}))+" "},decompressFromUTF16:function(e){return null==e?"":""==e?null:o._decompress(e.length,16384,(function(t){return e.charCodeAt(t)-32}))},compressToUint8Array:function(e){for(var t=o.compress(e),i=new Uint8Array(2*t.length),n=0,r=t.length;n<r;n++){var a=t.charCodeAt(n);i[2*n]=a>>>8,i[2*n+1]=a%256}return i},decompressFromUint8Array:function(t){if(null==t)return o.decompress(t);for(var i=new Array(t.length/2),n=0,r=i.length;n<r;n++)i[n]=256*t[2*n]+t[2*n+1];var a=[];return i.forEach((function(t){a.push(e(t))})),o.decompress(a.join(""))},compressToEncodedURIComponent:function(e){return null==e?"":o._compress(e,6,(function(e){return i.charAt(e)}))},decompressFromEncodedURIComponent:function(e){return null==e?"":""==e?null:(e=e.replace(/ /g,"+"),o._decompress(e.length,32,(function(t){return r(i,e.charAt(t))})))},compress:function(t){return o._compress(t,16,(function(t){return e(t)}))},_compress:function(e,t,i){if(null==e)return"";var n,r,o,a={},s={},c="",l="",u="",d=2,h=3,p=2,m=[],f=0,g=0;for(o=0;o<e.length;o+=1)if(c=e.charAt(o),Object.prototype.hasOwnProperty.call(a,c)||(a[c]=h++,s[c]=!0),l=u+c,Object.prototype.hasOwnProperty.call(a,l))u=l;else{if(Object.prototype.hasOwnProperty.call(s,u)){if(u.charCodeAt(0)<256){for(n=0;n<p;n++)f<<=1,g==t-1?(g=0,m.push(i(f)),f=0):g++;for(r=u.charCodeAt(0),n=0;n<8;n++)f=f<<1|1&r,g==t-1?(g=0,m.push(i(f)),f=0):g++,r>>=1}else{for(r=1,n=0;n<p;n++)f=f<<1|r,g==t-1?(g=0,m.push(i(f)),f=0):g++,r=0;for(r=u.charCodeAt(0),n=0;n<16;n++)f=f<<1|1&r,g==t-1?(g=0,m.push(i(f)),f=0):g++,r>>=1}0==--d&&(d=Math.pow(2,p),p++),delete s[u]}else for(r=a[u],n=0;n<p;n++)f=f<<1|1&r,g==t-1?(g=0,m.push(i(f)),f=0):g++,r>>=1;0==--d&&(d=Math.pow(2,p),p++),a[l]=h++,u=String(c)}if(""!==u){if(Object.prototype.hasOwnProperty.call(s,u)){if(u.charCodeAt(0)<256){for(n=0;n<p;n++)f<<=1,g==t-1?(g=0,m.push(i(f)),f=0):g++;for(r=u.charCodeAt(0),n=0;n<8;n++)f=f<<1|1&r,g==t-1?(g=0,m.push(i(f)),f=0):g++,r>>=1}else{for(r=1,n=0;n<p;n++)f=f<<1|r,g==t-1?(g=0,m.push(i(f)),f=0):g++,r=0;for(r=u.charCodeAt(0),n=0;n<16;n++)f=f<<1|1&r,g==t-1?(g=0,m.push(i(f)),f=0):g++,r>>=1}0==--d&&(d=Math.pow(2,p),p++),delete s[u]}else for(r=a[u],n=0;n<p;n++)f=f<<1|1&r,g==t-1?(g=0,m.push(i(f)),f=0):g++,r>>=1;0==--d&&(d=Math.pow(2,p),p++)}for(r=2,n=0;n<p;n++)f=f<<1|1&r,g==t-1?(g=0,m.push(i(f)),f=0):g++,r>>=1;for(;;){if(f<<=1,g==t-1){m.push(i(f));break}g++}return m.join("")},decompress:function(e){return null==e?"":""==e?null:o._decompress(e.length,32768,(function(t){return e.charCodeAt(t)}))},_decompress:function(t,i,n){var r,o,a,s,c,l,u,d=[],h=4,p=4,m=3,f="",g=[],_={val:n(0),position:i,index:1};for(r=0;r<3;r+=1)d[r]=r;for(a=0,c=Math.pow(2,2),l=1;l!=c;)s=_.val&_.position,_.position>>=1,0==_.position&&(_.position=i,_.val=n(_.index++)),a|=(s>0?1:0)*l,l<<=1;switch(a){case 0:for(a=0,c=Math.pow(2,8),l=1;l!=c;)s=_.val&_.position,_.position>>=1,0==_.position&&(_.position=i,_.val=n(_.index++)),a|=(s>0?1:0)*l,l<<=1;u=e(a);break;case 1:for(a=0,c=Math.pow(2,16),l=1;l!=c;)s=_.val&_.position,_.position>>=1,0==_.position&&(_.position=i,_.val=n(_.index++)),a|=(s>0?1:0)*l,l<<=1;u=e(a);break;case 2:return""}for(d[3]=u,o=u,g.push(u);;){if(_.index>t)return"";for(a=0,c=Math.pow(2,m),l=1;l!=c;)s=_.val&_.position,_.position>>=1,0==_.position&&(_.position=i,_.val=n(_.index++)),a|=(s>0?1:0)*l,l<<=1;switch(u=a){case 0:for(a=0,c=Math.pow(2,8),l=1;l!=c;)s=_.val&_.position,_.position>>=1,0==_.position&&(_.position=i,_.val=n(_.index++)),a|=(s>0?1:0)*l,l<<=1;d[p++]=e(a),u=p-1,h--;break;case 1:for(a=0,c=Math.pow(2,16),l=1;l!=c;)s=_.val&_.position,_.position>>=1,0==_.position&&(_.position=i,_.val=n(_.index++)),a|=(s>0?1:0)*l,l<<=1;d[p++]=e(a),u=p-1,h--;break;case 2:return g.join("")}if(0==h&&(h=Math.pow(2,m),m++),d[u])f=d[u];else{if(u!==p)return null;f=o+o.charAt(0)}g.push(f),d[p++]=o+f.charAt(0),o=f,0==--h&&(h=Math.pow(2,m),m++)}}};return o}(),null!=uh&&(uh.exports=dh);var mh=ph.exports; -/*! pako 2.0.4 https://github.com/nodeca/pako @license (MIT AND Zlib) */function fh(e){let t=e.length;for(;--t>=0;)e[t]=0}const gh=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]),_h=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]),bh=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),vh=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),yh=new Array(576);fh(yh);const wh=new Array(60);fh(wh);const xh=new Array(512);fh(xh);const Nh=new Array(256);fh(Nh);const kh=new Array(29);fh(kh);const Ah=new Array(30);function Ch(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 Oh,Sh,Eh;function Fh(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}fh(Ah);const Dh=e=>e<256?xh[e]:xh[256+(e>>>7)],Bh=(e,t)=>{e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255},Lh=(e,t,i)=>{e.bi_valid>16-i?(e.bi_buf|=t<<e.bi_valid&65535,Bh(e,e.bi_buf),e.bi_buf=t>>16-e.bi_valid,e.bi_valid+=i-16):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=i)},Mh=(e,t,i)=>{Lh(e,i[2*t],i[2*t+1])},Th=(e,t)=>{let i=0;do{i|=1&e,e>>>=1,i<<=1}while(--t>0);return i>>>1},Rh=(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]=Th(n[t]++,t))}},$h=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},jh=e=>{e.bi_valid>8?Bh(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0},Ih=(e,t,i,n)=>{const r=2*t,o=2*i;return e[r]<e[o]||e[r]===e[o]&&n[t]<=n[i]},Ph=(e,t,i)=>{const n=e.heap[i];let r=i<<1;for(;r<=e.heap_len&&(r<e.heap_len&&Ih(t,e.heap[r+1],e.heap[r],e.depth)&&r++,!Ih(t,n,e.heap[r],e.depth));)e.heap[i]=e.heap[r],i=r,r<<=1;e.heap[i]=n},zh=(e,t,i)=>{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?Mh(e,r,t):(o=Nh[r],Mh(e,o+256+1,t),a=gh[o],0!==a&&(r-=kh[o],Lh(e,r,a)),n--,o=Dh(n),Mh(e,o,i),a=_h[o],0!==a&&(n-=Ah[o],Lh(e,n,a)))}while(s<e.last_lit);Mh(e,256,t)},Uh=(e,t)=>{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<o;a++)0!==i[2*a]?(e.heap[++e.heap_len]=l=a,e.depth[a]=0):i[2*a+1]=0;for(;e.heap_len<2;)c=e.heap[++e.heap_len]=l<2?++l:0,i[2*c]=1,e.depth[c]=0,e.opt_len--,r&&(e.static_len-=n[2*c+1]);for(t.max_code=l,a=e.heap_len>>1;a>=1;a--)Ph(e,i,a);c=o;do{a=e.heap[1],e.heap[1]=e.heap[e.heap_len--],Ph(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++,Ph(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),Rh(i,l,e.bl_count)},Wh=(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<c&&r===a||(s<l?e.bl_tree[2*r]+=s:0!==r?(r!==o&&e.bl_tree[2*r]++,e.bl_tree[32]++):s<=10?e.bl_tree[34]++:e.bl_tree[36]++,s=0,o=r,0===a?(c=138,l=3):r===a?(c=6,l=3):(c=7,l=4))},Hh=(e,t,i)=>{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<c&&r===a)){if(s<l)do{Mh(e,r,e.bl_tree)}while(0!=--s);else 0!==r?(r!==o&&(Mh(e,r,e.bl_tree),s--),Mh(e,16,e.bl_tree),Lh(e,s-3,2)):s<=10?(Mh(e,17,e.bl_tree),Lh(e,s-3,3)):(Mh(e,18,e.bl_tree),Lh(e,s-11,7));s=0,o=r,0===a?(c=138,l=3):r===a?(c=6,l=3):(c=7,l=4)}};let qh=!1;const Vh=(e,t,i,n)=>{Lh(e,0+(n?1:0),3),((e,t,i,n)=>{jh(e),n&&(Bh(e,i),Bh(e,~i)),e.pending_buf.set(e.window.subarray(t,t+i),e.pending),e.pending+=i})(e,t,i,!0)};var Gh={_tr_init:e=>{qh||((()=>{let e,t,i,n,r;const o=new Array(16);for(i=0,n=0;n<28;n++)for(kh[n]=i,e=0;e<1<<gh[n];e++)Nh[i++]=n;for(Nh[i-1]=n,r=0,n=0;n<16;n++)for(Ah[n]=r,e=0;e<1<<_h[n];e++)xh[r++]=n;for(r>>=7;n<30;n++)for(Ah[n]=r<<7,e=0;e<1<<_h[n]-7;e++)xh[256+r++]=n;for(t=0;t<=15;t++)o[t]=0;for(e=0;e<=143;)yh[2*e+1]=8,e++,o[8]++;for(;e<=255;)yh[2*e+1]=9,e++,o[9]++;for(;e<=279;)yh[2*e+1]=7,e++,o[7]++;for(;e<=287;)yh[2*e+1]=8,e++,o[8]++;for(Rh(yh,287,o),e=0;e<30;e++)wh[2*e+1]=5,wh[2*e]=Th(e,5);Oh=new Ch(yh,gh,257,286,15),Sh=new Ch(wh,_h,0,30,15),Eh=new Ch(new Array(0),bh,0,19,7)})(),qh=!0),e.l_desc=new Fh(e.dyn_ltree,Oh),e.d_desc=new Fh(e.dyn_dtree,Sh),e.bl_desc=new Fh(e.bl_tree,Eh),e.bi_buf=0,e.bi_valid=0,$h(e)},_tr_stored_block:Vh,_tr_flush_block:(e,t,i,n)=>{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)),Uh(e,e.l_desc),Uh(e,e.d_desc),a=(e=>{let t;for(Wh(e,e.dyn_ltree,e.l_desc.max_code),Wh(e,e.dyn_dtree,e.d_desc.max_code),Uh(e,e.bl_desc),t=18;t>=3&&0===e.bl_tree[2*vh[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?Vh(e,t,i,n):4===e.strategy||o===r?(Lh(e,2+(n?1:0),3),zh(e,yh,wh)):(Lh(e,4+(n?1:0),3),((e,t,i,n)=>{let r;for(Lh(e,t-257,5),Lh(e,i-1,5),Lh(e,n-4,4),r=0;r<n;r++)Lh(e,e.bl_tree[2*vh[r]+1],3);Hh(e,e.dyn_ltree,t-1),Hh(e,e.dyn_dtree,i-1)})(e,e.l_desc.max_code+1,e.d_desc.max_code+1,a+1),zh(e,e.dyn_ltree,e.dyn_dtree)),$h(e),n&&jh(e)},_tr_tally:(e,t,i)=>(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*(Nh[i]+256+1)]++,e.dyn_dtree[2*Dh(t)]++),e.last_lit===e.lit_bufsize-1),_tr_align:e=>{Lh(e,2,3),Mh(e,256,yh),(e=>{16===e.bi_valid?(Bh(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 Kh=(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 Xh=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 Jh=(e,t,i,n)=>{const r=Xh,o=n+i;e^=-1;for(let a=n;a<o;a++)e=e>>>8^r[255&(e^t[a])];return-1^e},Yh={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"},Zh={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:Qh,_tr_stored_block:ep,_tr_flush_block:tp,_tr_tally:ip,_tr_align:np}=Gh,{Z_NO_FLUSH:rp,Z_PARTIAL_FLUSH:op,Z_FULL_FLUSH:ap,Z_FINISH:sp,Z_BLOCK:cp,Z_OK:lp,Z_STREAM_END:up,Z_STREAM_ERROR:dp,Z_DATA_ERROR:hp,Z_BUF_ERROR:pp,Z_DEFAULT_COMPRESSION:mp,Z_FILTERED:fp,Z_HUFFMAN_ONLY:gp,Z_RLE:_p,Z_FIXED:bp,Z_DEFAULT_STRATEGY:vp,Z_UNKNOWN:yp,Z_DEFLATED:wp}=Zh,xp=(e,t)=>(e.msg=Yh[t],t),Np=e=>(e<<1)-(e>4?9:0),kp=e=>{let t=e.length;for(;--t>=0;)e[t]=0};let Ap=(e,t,i)=>(t<<e.hash_shift^i)&e.hash_mask;const Cp=e=>{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))},Op=(e,t)=>{tp(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,Cp(e.strm)},Sp=(e,t)=>{e.pending_buf[e.pending++]=t},Ep=(e,t)=>{e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t},Fp=(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=Kh(e.adler,t,r,i):2===e.state.wrap&&(e.adler=Jh(e.adler,t,r,i)),e.next_in+=r,e.total_in+=r,r)},Dp=(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]&&o<h);if(n=258-(h-o),o=h-258,n>a){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},Bp=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=Fp(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=Ap(e,e.ins_h,e.window[a+1]);e.insert&&(e.ins_h=Ap(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)},Lp=(e,t)=>{let i,n;for(;;){if(e.lookahead<262){if(Bp(e),e.lookahead<262&&t===rp)return 1;if(0===e.lookahead)break}if(i=0,e.lookahead>=3&&(e.ins_h=Ap(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=Dp(e,i)),e.match_length>=3)if(n=ip(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=Ap(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=Ap(e,e.ins_h,e.window[e.strstart+1]);else n=ip(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(n&&(Op(e,!1),0===e.strm.avail_out))return 1}return e.insert=e.strstart<2?e.strstart:2,t===sp?(Op(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(Op(e,!1),0===e.strm.avail_out)?1:2},Mp=(e,t)=>{let i,n,r;for(;;){if(e.lookahead<262){if(Bp(e),e.lookahead<262&&t===rp)return 1;if(0===e.lookahead)break}if(i=0,e.lookahead>=3&&(e.ins_h=Ap(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_length<e.max_lazy_match&&e.strstart-i<=e.w_size-262&&(e.match_length=Dp(e,i),e.match_length<=5&&(e.strategy===fp||3===e.match_length&&e.strstart-e.match_start>4096)&&(e.match_length=2)),e.prev_length>=3&&e.match_length<=e.prev_length){r=e.strstart+e.lookahead-3,n=ip(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=Ap(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&&(Op(e,!1),0===e.strm.avail_out))return 1}else if(e.match_available){if(n=ip(e,0,e.window[e.strstart-1]),n&&Op(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=ip(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<2?e.strstart:2,t===sp?(Op(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(Op(e,!1),0===e.strm.avail_out)?1:2};function Tp(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 Rp=[new Tp(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(Bp(e),0===e.lookahead&&t===rp)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,Op(e,!1),0===e.strm.avail_out))return 1;if(e.strstart-e.block_start>=e.w_size-262&&(Op(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,t===sp?(Op(e,!0),0===e.strm.avail_out?3:4):(e.strstart>e.block_start&&(Op(e,!1),e.strm.avail_out),1)})),new Tp(4,4,8,4,Lp),new Tp(4,5,16,8,Lp),new Tp(4,6,32,32,Lp),new Tp(4,4,16,16,Mp),new Tp(8,16,32,32,Mp),new Tp(8,16,128,128,Mp),new Tp(8,32,128,256,Mp),new Tp(32,128,258,1024,Mp),new Tp(32,258,258,4096,Mp)];function $p(){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=wp,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),kp(this.dyn_ltree),kp(this.dyn_dtree),kp(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),kp(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(573),kp(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 jp=e=>{if(!e||!e.state)return xp(e,dp);e.total_in=e.total_out=0,e.data_type=yp;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=rp,Qh(t),lp},Ip=e=>{const t=jp(e);var i;return t===lp&&((i=e.state).window_size=2*i.w_size,kp(i.head),i.max_lazy_match=Rp[i.level].max_lazy,i.good_match=Rp[i.level].good_length,i.nice_match=Rp[i.level].nice_length,i.max_chain_length=Rp[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},Pp=(e,t,i,n,r,o)=>{if(!e)return dp;let a=1;if(t===mp&&(t=6),n<0?(a=0,n=-n):n>15&&(a=2,n-=16),r<1||r>9||i!==wp||n<8||n>15||t<0||t>9||o<0||o>bp)return xp(e,dp);8===n&&(n=9);const s=new $p;return e.state=s,s.strm=e,s.wrap=a,s.gzhead=null,s.w_bits=n,s.w_size=1<<s.w_bits,s.w_mask=s.w_size-1,s.hash_bits=r+7,s.hash_size=1<<s.hash_bits,s.hash_mask=s.hash_size-1,s.hash_shift=~~((s.hash_bits+3-1)/3),s.window=new Uint8Array(2*s.w_size),s.head=new Uint16Array(s.hash_size),s.prev=new Uint16Array(s.w_size),s.lit_bufsize=1<<r+6,s.pending_buf_size=4*s.lit_bufsize,s.pending_buf=new Uint8Array(s.pending_buf_size),s.d_buf=1*s.lit_bufsize,s.l_buf=3*s.lit_bufsize,s.level=t,s.strategy=o,s.method=i,Ip(e)};var zp={deflateInit:(e,t)=>Pp(e,t,wp,15,8,vp),deflateInit2:Pp,deflateReset:Ip,deflateResetKeep:jp,deflateSetHeader:(e,t)=>e&&e.state?2!==e.state.wrap?dp:(e.state.gzhead=t,lp):dp,deflate:(e,t)=>{let i,n;if(!e||!e.state||t>cp||t<0)return e?xp(e,dp):dp;const r=e.state;if(!e.output||!e.input&&0!==e.avail_in||666===r.status&&t!==sp)return xp(e,0===e.avail_out?pp:dp);r.strm=e;const o=r.last_flush;if(r.last_flush=t,42===r.status)if(2===r.wrap)e.adler=0,Sp(r,31),Sp(r,139),Sp(r,8),r.gzhead?(Sp(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)),Sp(r,255&r.gzhead.time),Sp(r,r.gzhead.time>>8&255),Sp(r,r.gzhead.time>>16&255),Sp(r,r.gzhead.time>>24&255),Sp(r,9===r.level?2:r.strategy>=gp||r.level<2?4:0),Sp(r,255&r.gzhead.os),r.gzhead.extra&&r.gzhead.extra.length&&(Sp(r,255&r.gzhead.extra.length),Sp(r,r.gzhead.extra.length>>8&255)),r.gzhead.hcrc&&(e.adler=Jh(e.adler,r.pending_buf,r.pending,0)),r.gzindex=0,r.status=69):(Sp(r,0),Sp(r,0),Sp(r,0),Sp(r,0),Sp(r,0),Sp(r,9===r.level?2:r.strategy>=gp||r.level<2?4:0),Sp(r,3),r.status=113);else{let t=wp+(r.w_bits-8<<4)<<8,i=-1;i=r.strategy>=gp||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,Ep(r,t),0!==r.strstart&&(Ep(r,e.adler>>>16),Ep(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=Jh(e.adler,r.pending_buf,r.pending-i,i)),Cp(e),i=r.pending,r.pending!==r.pending_buf_size));)Sp(r,255&r.gzhead.extra[r.gzindex]),r.gzindex++;r.gzhead.hcrc&&r.pending>i&&(e.adler=Jh(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=Jh(e.adler,r.pending_buf,r.pending-i,i)),Cp(e),i=r.pending,r.pending===r.pending_buf_size)){n=1;break}n=r.gzindex<r.gzhead.name.length?255&r.gzhead.name.charCodeAt(r.gzindex++):0,Sp(r,n)}while(0!==n);r.gzhead.hcrc&&r.pending>i&&(e.adler=Jh(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=Jh(e.adler,r.pending_buf,r.pending-i,i)),Cp(e),i=r.pending,r.pending===r.pending_buf_size)){n=1;break}n=r.gzindex<r.gzhead.comment.length?255&r.gzhead.comment.charCodeAt(r.gzindex++):0,Sp(r,n)}while(0!==n);r.gzhead.hcrc&&r.pending>i&&(e.adler=Jh(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&&Cp(e),r.pending+2<=r.pending_buf_size&&(Sp(r,255&e.adler),Sp(r,e.adler>>8&255),e.adler=0,r.status=113)):r.status=113),0!==r.pending){if(Cp(e),0===e.avail_out)return r.last_flush=-1,lp}else if(0===e.avail_in&&Np(t)<=Np(o)&&t!==sp)return xp(e,pp);if(666===r.status&&0!==e.avail_in)return xp(e,pp);if(0!==e.avail_in||0!==r.lookahead||t!==rp&&666!==r.status){let i=r.strategy===gp?((e,t)=>{let i;for(;;){if(0===e.lookahead&&(Bp(e),0===e.lookahead)){if(t===rp)return 1;break}if(e.match_length=0,i=ip(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,i&&(Op(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,t===sp?(Op(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(Op(e,!1),0===e.strm.avail_out)?1:2})(r,t):r.strategy===_p?((e,t)=>{let i,n,r,o;const a=e.window;for(;;){if(e.lookahead<=258){if(Bp(e),e.lookahead<=258&&t===rp)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]&&r<o);e.match_length=258-(o-r),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=3?(i=ip(e,1,e.match_length-3),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(i=ip(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),i&&(Op(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,t===sp?(Op(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(Op(e,!1),0===e.strm.avail_out)?1:2})(r,t):Rp[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),lp;if(2===i&&(t===op?np(r):t!==cp&&(ep(r,0,0,!1),t===ap&&(kp(r.head),0===r.lookahead&&(r.strstart=0,r.block_start=0,r.insert=0))),Cp(e),0===e.avail_out))return r.last_flush=-1,lp}return t!==sp?lp:r.wrap<=0?up:(2===r.wrap?(Sp(r,255&e.adler),Sp(r,e.adler>>8&255),Sp(r,e.adler>>16&255),Sp(r,e.adler>>24&255),Sp(r,255&e.total_in),Sp(r,e.total_in>>8&255),Sp(r,e.total_in>>16&255),Sp(r,e.total_in>>24&255)):(Ep(r,e.adler>>>16),Ep(r,65535&e.adler)),Cp(e),r.wrap>0&&(r.wrap=-r.wrap),0!==r.pending?lp:up)},deflateEnd:e=>{if(!e||!e.state)return dp;const t=e.state.status;return 42!==t&&69!==t&&73!==t&&91!==t&&103!==t&&113!==t&&666!==t?xp(e,dp):(e.state=null,113===t?xp(e,hp):lp)},deflateSetDictionary:(e,t)=>{let i=t.length;if(!e||!e.state)return dp;const n=e.state,r=n.wrap;if(2===r||1===r&&42!==n.status||n.lookahead)return dp;if(1===r&&(e.adler=Kh(e.adler,t,i,0)),n.wrap=0,i>=n.w_size){0===r&&(kp(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,Bp(n);n.lookahead>=3;){let e=n.strstart,t=n.lookahead-2;do{n.ins_h=Ap(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,Bp(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,lp},deflateInfo:"pako deflate (from Nodeca project)"};const Up=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var Wp=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)Up(i,t)&&(e[t]=i[t])}}return e},Hp=e=>{let t=0;for(let n=0,r=e.length;n<r;n++)t+=e[n].length;const i=new Uint8Array(t);for(let n=0,r=0,o=e.length;n<o;n++){let t=e[n];i.set(t,r),r+=t.length}return i};let qp=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(Jk){qp=!1}const Vp=new Uint8Array(256);for(let Zk=0;Zk<256;Zk++)Vp[Zk]=Zk>=252?6:Zk>=248?5:Zk>=240?4:Zk>=224?3:Zk>=192?2:1;Vp[254]=Vp[254]=1;var Gp=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<a;r++)i=e.charCodeAt(r),55296==(64512&i)&&r+1<a&&(n=e.charCodeAt(r+1),56320==(64512&n)&&(i=65536+(i-55296<<10)+(n-56320),r++)),s+=i<128?1:i<2048?2:i<65536?3:4;for(t=new Uint8Array(s),o=0,r=0;o<s;r++)i=e.charCodeAt(r),55296==(64512&i)&&r+1<a&&(n=e.charCodeAt(r+1),56320==(64512&n)&&(i=65536+(i-55296<<10)+(n-56320),r++)),i<128?t[o++]=i:i<2048?(t[o++]=192|i>>>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},Kp=(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;n<i;){let t=e[n++];if(t<128){o[r++]=t;continue}let a=Vp[t];if(a>4)o[r++]=65533,n+=a-1;else{for(t&=2===a?31:3===a?15:7;a>1&&n<i;)t=t<<6|63&e[n++],a--;a>1?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&&qp)return String.fromCharCode.apply(null,e.length===t?e:e.subarray(0,t));let i="";for(let n=0;n<t;n++)i+=String.fromCharCode(e[n]);return i})(o,r)},Xp=(e,t)=>{(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+Vp[e[i]]>t?i:t};var Jp=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 Yp=Object.prototype.toString,{Z_NO_FLUSH:Zp,Z_SYNC_FLUSH:Qp,Z_FULL_FLUSH:em,Z_FINISH:tm,Z_OK:im,Z_STREAM_END:nm,Z_DEFAULT_COMPRESSION:rm,Z_DEFAULT_STRATEGY:om,Z_DEFLATED:am}=Zh;function sm(e){this.options=Wp({level:rm,method:am,chunkSize:16384,windowBits:15,memLevel:8,strategy:om},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 Jp,this.strm.avail_out=0;let i=zp.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(i!==im)throw new Error(Yh[i]);if(t.header&&zp.deflateSetHeader(this.strm,t.header),t.dictionary){let e;if(e="string"==typeof t.dictionary?Gp(t.dictionary):"[object ArrayBuffer]"===Yp.call(t.dictionary)?new Uint8Array(t.dictionary):t.dictionary,i=zp.deflateSetDictionary(this.strm,e),i!==im)throw new Error(Yh[i]);this._dict_set=!0}}sm.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?tm:Zp,"string"==typeof e?i.input=Gp(e):"[object ArrayBuffer]"===Yp.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===Qp||o===em)&&i.avail_out<=6)this.onData(i.output.subarray(0,i.next_out)),i.avail_out=0;else{if(r=zp.deflate(i,o),r===nm)return i.next_out>0&&this.onData(i.output.subarray(0,i.next_out)),r=zp.deflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===im;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},sm.prototype.onData=function(e){this.chunks.push(e)},sm.prototype.onEnd=function(e){e===im&&(this.result=Hp(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};var cm=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,k,A;const C=e.state;i=e.next_in,k=e.input,n=i+(e.avail_in-5),r=e.next_out,A=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<<C.lenbits)-1,_=(1<<C.distbits)-1;e:do{p<15&&(h+=k[i++]<<p,p+=8,h+=k[i++]<<p,p+=8),b=m[h&g];t:for(;;){if(v=b>>>24,h>>>=v,p-=v,v=b>>>16&255,0===v)A[r++]=65535&b;else{if(!(16&v)){if(0==(64&v)){b=m[(65535&b)+(h&(1<<v)-1)];continue t}if(32&v){C.mode=12;break e}e.msg="invalid literal/length code",C.mode=30;break e}y=65535&b,v&=15,v&&(p<v&&(h+=k[i++]<<p,p+=8),y+=h&(1<<v)-1,h>>>=v,p-=v),p<15&&(h+=k[i++]<<p,p+=8,h+=k[i++]<<p,p+=8),b=f[h&_];i:for(;;){if(v=b>>>24,h>>>=v,p-=v,v=b>>>16&255,!(16&v)){if(0==(64&v)){b=f[(65535&b)+(h&(1<<v)-1)];continue i}e.msg="invalid distance code",C.mode=30;break e}if(w=65535&b,v&=15,p<v&&(h+=k[i++]<<p,p+=8,p<v&&(h+=k[i++]<<p,p+=8)),w+=h&(1<<v)-1,w>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,v<y){y-=v;do{A[r++]=d[x++]}while(--v);x=r-w,N=A}}else if(u<v){if(x+=c+u-v,v-=u,v<y){y-=v;do{A[r++]=d[x++]}while(--v);if(x=0,u<y){v=u,y-=v;do{A[r++]=d[x++]}while(--v);x=r-w,N=A}}}else if(x+=u-v,v<y){y-=v;do{A[r++]=d[x++]}while(--v);x=r-w,N=A}for(;y>2;)A[r++]=N[x++],A[r++]=N[x++],A[r++]=N[x++],y-=3;y&&(A[r++]=N[x++],y>1&&(A[r++]=N[x++]))}else{x=r-w;do{A[r++]=A[x++],A[r++]=A[x++],A[r++]=A[x++],y-=3}while(y>2);y&&(A[r++]=A[x++],y>1&&(A[r++]=A[x++]))}break}}break}}while(i<n&&r<a);y=p>>3,i-=y,p-=y<<3,h&=(1<<p)-1,e.next_in=i,e.next_out=r,e.avail_in=i<n?n-i+5:5-(i-n),e.avail_out=r<a?a-r+257:257-(r-a),C.hold=h,C.bits=p};const lm=new Uint16Array([3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0]),um=new Uint8Array([16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78]),dm=new Uint16Array([1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0]),hm=new Uint8Array([16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64]);var pm=(e,t,i,n,r,o,a,s)=>{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,k=0,A=null,C=0;const O=new Uint16Array(16),S=new Uint16Array(16);let E,F,D,B=null,L=0;for(f=0;f<=15;f++)O[f]=0;for(g=0;g<n;g++)O[t[i+g]]++;for(v=c,b=15;b>=1&&0===O[b];b--);if(v>b&&(v=b),0===b)return r[o++]=20971520,r[o++]=20971520,s.bits=1,0;for(_=1;_<b&&0===O[_];_++);for(v<_&&(v=_),x=1,f=1;f<=15;f++)if(x<<=1,x-=O[f],x<0)return-1;if(x>0&&(0===e||1!==b))return-1;for(S[1]=0,f=1;f<15;f++)S[f+1]=S[f]+O[f];for(g=0;g<n;g++)0!==t[i+g]&&(a[S[t[i+g]]++]=g);if(0===e?(A=B=a,m=19):1===e?(A=lm,C-=257,B=um,L-=257,m=256):(A=dm,B=hm,m=-1),k=0,g=0,f=_,p=o,y=v,w=0,d=-1,N=1<<v,h=N-1,1===e&&N>852||2===e&&N>592)return 1;for(;;){E=f-w,a[g]<m?(F=0,D=a[g]):a[g]>m?(F=B[L+a[g]],D=A[C+a[g]]):(F=96,D=0),l=1<<f-w,u=1<<y,_=u;do{u-=l,r[p+(k>>w)+u]=E<<24|F<<16|D|0}while(0!==u);for(l=1<<f-1;k&l;)l>>=1;if(0!==l?(k&=l-1,k+=l):k=0,g++,0==--O[f]){if(f===b)break;f=t[i+a[g]]}if(f>v&&(k&h)!==d){for(0===w&&(w=v),p+=_,y=f-w,x=1<<y;y+w<b&&(x-=O[y+w],!(x<=0));)y++,x<<=1;if(N+=1<<y,1===e&&N>852||2===e&&N>592)return 1;d=k&h,r[d]=v<<24|y<<16|p-o|0}}return 0!==k&&(r[p+k]=f-w<<24|64<<16|0),s.bits=v,0};const{Z_FINISH:mm,Z_BLOCK:fm,Z_TREES:gm,Z_OK:_m,Z_STREAM_END:bm,Z_NEED_DICT:vm,Z_STREAM_ERROR:ym,Z_DATA_ERROR:wm,Z_MEM_ERROR:xm,Z_BUF_ERROR:Nm,Z_DEFLATED:km}=Zh,Am=e=>(e>>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24);function Cm(){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 Om=e=>{if(!e||!e.state)return ym;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,_m},Sm=e=>{if(!e||!e.state)return ym;const t=e.state;return t.wsize=0,t.whave=0,t.wnext=0,Om(e)},Em=(e,t)=>{let i;if(!e||!e.state)return ym;const n=e.state;return t<0?(i=0,t=-t):(i=1+(t>>4),t<48&&(t&=15)),t&&(t<8||t>15)?ym:(null!==n.window&&n.wbits!==t&&(n.window=null),n.wrap=i,n.wbits=t,Sm(e))},Fm=(e,t)=>{if(!e)return ym;const i=new Cm;e.state=i,i.window=null;const n=Em(e,t);return n!==_m&&(e.state=null),n};let Dm,Bm,Lm=!0;const Mm=e=>{if(Lm){Dm=new Int32Array(512),Bm=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(pm(1,e.lens,0,288,Dm,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;pm(2,e.lens,0,32,Bm,0,e.work,{bits:5}),Lm=!1}e.lencode=Dm,e.lenbits=9,e.distcode=Bm,e.distbits=5},Tm=(e,t,i,n)=>{let r;const o=e.state;return null===o.window&&(o.wsize=1<<o.wbits,o.wnext=0,o.whave=0,o.window=new Uint8Array(o.wsize)),n>=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.whave<o.wsize&&(o.whave+=r))),0};var Rm={inflateReset:Sm,inflateReset2:Em,inflateResetKeep:Om,inflateInit:e=>Fm(e,15),inflateInit2:Fm,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,k=0;const A=new Uint8Array(4);let C,O;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 ym;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=_m;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++]<<u,u+=8}if(2&i.wrap&&35615===l){i.check=0,A[0]=255&l,A[1]=l>>>8&255,i.check=Jh(i.check,A,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)!==km){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<<i.wbits,e.adler=i.check=1,i.mode=512&l?10:12,l=0,u=0;break;case 2:for(;u<16;){if(0===s)break e;s--,l+=n[o++]<<u,u+=8}if(i.flags=l,(255&i.flags)!==km){e.msg="unknown compression method",i.mode=30;break}if(57344&i.flags){e.msg="unknown header flags set",i.mode=30;break}i.head&&(i.head.text=l>>8&1),512&i.flags&&(A[0]=255&l,A[1]=l>>>8&255,i.check=Jh(i.check,A,2,0)),l=0,u=0,i.mode=3;case 3:for(;u<32;){if(0===s)break e;s--,l+=n[o++]<<u,u+=8}i.head&&(i.head.time=l),512&i.flags&&(A[0]=255&l,A[1]=l>>>8&255,A[2]=l>>>16&255,A[3]=l>>>24&255,i.check=Jh(i.check,A,4,0)),l=0,u=0,i.mode=4;case 4:for(;u<16;){if(0===s)break e;s--,l+=n[o++]<<u,u+=8}i.head&&(i.head.xflags=255&l,i.head.os=l>>8),512&i.flags&&(A[0]=255&l,A[1]=l>>>8&255,i.check=Jh(i.check,A,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++]<<u,u+=8}i.length=l,i.head&&(i.head.extra_len=l),512&i.flags&&(A[0]=255&l,A[1]=l>>>8&255,i.check=Jh(i.check,A,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=Jh(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<s);if(512&i.flags&&(i.check=Jh(i.check,n,p,o)),s-=p,o+=p,x)break e}else i.head&&(i.head.name=null);i.length=0,i.mode=8;case 8:if(4096&i.flags){if(0===s)break e;p=0;do{x=n[o+p++],i.head&&x&&i.length<65536&&(i.head.comment+=String.fromCharCode(x))}while(x&&p<s);if(512&i.flags&&(i.check=Jh(i.check,n,p,o)),s-=p,o+=p,x)break e}else i.head&&(i.head.comment=null);i.mode=9;case 9:if(512&i.flags){for(;u<16;){if(0===s)break e;s--,l+=n[o++]<<u,u+=8}if(l!==(65535&i.check)){e.msg="header crc mismatch",i.mode=30;break}l=0,u=0}i.head&&(i.head.hcrc=i.flags>>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++]<<u,u+=8}e.adler=i.check=Am(l),l=0,u=0,i.mode=11;case 11:if(0===i.havedict)return e.next_out=a,e.avail_out=c,e.next_in=o,e.avail_in=s,i.hold=l,i.bits=u,vm;e.adler=i.check=1,i.mode=12;case 12:if(t===fm||t===gm)break e;case 13:if(i.last){l>>>=7&u,u-=7&u,i.mode=27;break}for(;u<3;){if(0===s)break e;s--,l+=n[o++]<<u,u+=8}switch(i.last=1&l,l>>>=1,u-=1,3&l){case 0:i.mode=14;break;case 1:if(Mm(i),i.mode=20,t===gm){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++]<<u,u+=8}if((65535&l)!=(l>>>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===gm)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++]<<u,u+=8}if(i.nlen=257+(31&l),l>>>=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<i.ncode;){for(;u<3;){if(0===s)break e;s--,l+=n[o++]<<u,u+=8}i.lens[S[i.have++]]=7&l,l>>>=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=pm(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<i.nlen+i.ndist;){for(;k=i.lencode[l&(1<<i.lenbits)-1],g=k>>>24,_=k>>>16&255,b=65535&k,!(g<=u);){if(0===s)break e;s--,l+=n[o++]<<u,u+=8}if(b<16)l>>>=g,u-=g,i.lens[i.have++]=b;else{if(16===b){for(O=g+2;u<O;){if(0===s)break e;s--,l+=n[o++]<<u,u+=8}if(l>>>=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(O=g+3;u<O;){if(0===s)break e;s--,l+=n[o++]<<u,u+=8}l>>>=g,u-=g,x=0,p=3+(7&l),l>>>=3,u-=3}else{for(O=g+7;u<O;){if(0===s)break e;s--,l+=n[o++]<<u,u+=8}l>>>=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=pm(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=pm(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===gm)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,cm(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;k=i.lencode[l&(1<<i.lenbits)-1],g=k>>>24,_=k>>>16&255,b=65535&k,!(g<=u);){if(0===s)break e;s--,l+=n[o++]<<u,u+=8}if(_&&0==(240&_)){for(v=g,y=_,w=b;k=i.lencode[w+((l&(1<<v+y)-1)>>v)],g=k>>>24,_=k>>>16&255,b=65535&k,!(v+g<=u);){if(0===s)break e;s--,l+=n[o++]<<u,u+=8}l>>>=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(O=i.extra;u<O;){if(0===s)break e;s--,l+=n[o++]<<u,u+=8}i.length+=l&(1<<i.extra)-1,l>>>=i.extra,u-=i.extra,i.back+=i.extra}i.was=i.length,i.mode=23;case 23:for(;k=i.distcode[l&(1<<i.distbits)-1],g=k>>>24,_=k>>>16&255,b=65535&k,!(g<=u);){if(0===s)break e;s--,l+=n[o++]<<u,u+=8}if(0==(240&_)){for(v=g,y=_,w=b;k=i.distcode[w+((l&(1<<v+y)-1)>>v)],g=k>>>24,_=k>>>16&255,b=65535&k,!(v+g<=u);){if(0===s)break e;s--,l+=n[o++]<<u,u+=8}l>>>=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(O=i.extra;u<O;){if(0===s)break e;s--,l+=n[o++]<<u,u+=8}i.offset+=l&(1<<i.extra)-1,l>>>=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++]<<u,u+=8}if(h-=c,e.total_out+=h,i.total+=h,h&&(e.adler=i.check=i.flags?Jh(i.check,r,h,a-h):Kh(i.check,r,h,a-h)),h=c,(i.flags?l:Am(l))!==i.check){e.msg="incorrect data check",i.mode=30;break}l=0,u=0}i.mode=28;case 28:if(i.wrap&&i.flags){for(;u<32;){if(0===s)break e;s--,l+=n[o++]<<u,u+=8}if(l!==(4294967295&i.total)){e.msg="incorrect length check",i.mode=30;break}l=0,u=0}i.mode=29;case 29:N=bm;break e;case 30:N=wm;break e;case 31:return xm;case 32:default:return ym}return e.next_out=a,e.avail_out=c,e.next_in=o,e.avail_in=s,i.hold=l,i.bits=u,(i.wsize||h!==e.avail_out&&i.mode<30&&(i.mode<27||t!==mm))&&Tm(e,e.output,e.next_out,h-e.avail_out),d-=e.avail_in,h-=e.avail_out,e.total_in+=d,e.total_out+=h,i.total+=h,i.wrap&&h&&(e.adler=i.check=i.flags?Jh(i.check,r,h,e.next_out-h):Kh(i.check,r,h,e.next_out-h)),e.data_type=i.bits+(i.last?64:0)+(12===i.mode?128:0)+(20===i.mode||15===i.mode?256:0),(0===d&&0===h||t===mm)&&N===_m&&(N=Nm),N},inflateEnd:e=>{if(!e||!e.state)return ym;let t=e.state;return t.window&&(t.window=null),e.state=null,_m},inflateGetHeader:(e,t)=>{if(!e||!e.state)return ym;const i=e.state;return 0==(2&i.wrap)?ym:(i.head=t,t.done=!1,_m)},inflateSetDictionary:(e,t)=>{const i=t.length;let n,r,o;return e&&e.state?(n=e.state,0!==n.wrap&&11!==n.mode?ym:11===n.mode&&(r=1,r=Kh(r,t,i,0),r!==n.check)?wm:(o=Tm(e,t,i,i),o?(n.mode=31,xm):(n.havedict=1,_m))):ym},inflateInfo:"pako inflate (from Nodeca project)"};var $m=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 jm=Object.prototype.toString,{Z_NO_FLUSH:Im,Z_FINISH:Pm,Z_OK:zm,Z_STREAM_END:Um,Z_NEED_DICT:Wm,Z_STREAM_ERROR:Hm,Z_DATA_ERROR:qm,Z_MEM_ERROR:Vm}=Zh;function Gm(e){this.options=Wp({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 Jp,this.strm.avail_out=0;let i=Rm.inflateInit2(this.strm,t.windowBits);if(i!==zm)throw new Error(Yh[i]);if(this.header=new $m,Rm.inflateGetHeader(this.strm,this.header),t.dictionary&&("string"==typeof t.dictionary?t.dictionary=Gp(t.dictionary):"[object ArrayBuffer]"===jm.call(t.dictionary)&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(i=Rm.inflateSetDictionary(this.strm,t.dictionary),i!==zm)))throw new Error(Yh[i])}Gm.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?Pm:Im,"[object ArrayBuffer]"===jm.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=Rm.inflate(i,a),o===Wm&&r&&(o=Rm.inflateSetDictionary(i,r),o===zm?o=Rm.inflate(i,a):o===qm&&(o=Wm));i.avail_in>0&&o===Um&&i.state.wrap>0&&0!==e[i.next_in];)Rm.inflateReset(i),o=Rm.inflate(i,a);switch(o){case Hm:case qm:case Wm:case Vm:return this.onEnd(o),this.ended=!0,!1}if(s=i.avail_out,i.next_out&&(0===i.avail_out||o===Um))if("string"===this.options.to){let e=Xp(i.output,i.next_out),t=i.next_out-e,r=Kp(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!==zm||0!==s){if(o===Um)return o=Rm.inflateEnd(this.strm),this.onEnd(o),this.ended=!0,!0;if(0===i.avail_in)break}}return!0},Gm.prototype.onData=function(e){this.chunks.push(e)},Gm.prototype.onEnd=function(e){e===zm&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=Hp(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};var Km,Xm,Jm={exports:{}},Ym={exports:{}};Km="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Xm={rotl:function(e,t){return e<<t|e>>>32-t},rotr:function(e,t){return e<<32-t|e>>>t},endian:function(e){if(e.constructor==Number)return 16711935&Xm.rotl(e,8)|4278255360&Xm.rotl(e,24);for(var t=0;t<e.length;t++)e[t]=Xm.endian(e[t]);return e},randomBytes:function(e){for(var t=[];e>0;e--)t.push(Math.floor(256*Math.random()));return t},bytesToWords:function(e){for(var t=[],i=0,n=0;i<e.length;i++,n+=8)t[n>>>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<e.length;i++)t.push((e[i]>>>4).toString(16)),t.push((15&e[i]).toString(16));return t.join("")},hexToBytes:function(e){for(var t=[],i=0;i<e.length;i+=2)t.push(parseInt(e.substr(i,2),16));return t},bytesToBase64:function(e){for(var t=[],i=0;i<e.length;i+=3)for(var n=e[i]<<16|e[i+1]<<8|e[i+2],r=0;r<4;r++)8*i+6*r<=8*e.length?t.push(Km.charAt(n>>>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<e.length;n=++i%4)0!=n&&t.push((Km.indexOf(e.charAt(i-1))&Math.pow(2,-2*n+8)-1)<<2*n|Km.indexOf(e.charAt(i))>>>6-2*n);return t}},Ym.exports=Xm;var Zm={utf8:{stringToBytes:function(e){return Zm.bin.stringToBytes(unescape(encodeURIComponent(e)))},bytesToString:function(e){return decodeURIComponent(escape(Zm.bin.bytesToString(e)))}},bin:{stringToBytes:function(e){for(var t=[],i=0;i<e.length;i++)t.push(255&e.charCodeAt(i));return t},bytesToString:function(e){for(var t=[],i=0;i<e.length;i++)t.push(String.fromCharCode(e[i]));return t.join("")}}},Qm=Zm,ef=function(e){return null!=e&&(tf(e)||function(e){return"function"==typeof e.readFloatLE&&"function"==typeof e.slice&&tf(e.slice(0,0))}(e)||!!e._isBuffer)};function tf(e){return!!e.constructor&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}!function(){var e=Ym.exports,t=Qm.utf8,i=ef,n=Qm.bin,r=function(o,a){o.constructor==String?o=a&&"binary"===a.encoding?n.stringToBytes(o):t.stringToBytes(o):i(o)?o=Array.prototype.slice.call(o,0):Array.isArray(o)||o.constructor===Uint8Array||(o=o.toString());for(var s=e.bytesToWords(o),c=8*o.length,l=1732584193,u=-271733879,d=-1732584194,h=271733878,p=0;p<s.length;p++)s[p]=16711935&(s[p]<<8|s[p]>>>24)|4278255360&(s[p]<<24|s[p]>>>8);s[c>>>5]|=128<<c%32,s[14+(c+64>>>9<<4)]=c;var m=r._ff,f=r._gg,g=r._hh,_=r._ii;for(p=0;p<s.length;p+=16){var b=l,v=u,y=d,w=h;l=m(l,u,d,h,s[p+0],7,-680876936),h=m(h,l,u,d,s[p+1],12,-389564586),d=m(d,h,l,u,s[p+2],17,606105819),u=m(u,d,h,l,s[p+3],22,-1044525330),l=m(l,u,d,h,s[p+4],7,-176418897),h=m(h,l,u,d,s[p+5],12,1200080426),d=m(d,h,l,u,s[p+6],17,-1473231341),u=m(u,d,h,l,s[p+7],22,-45705983),l=m(l,u,d,h,s[p+8],7,1770035416),h=m(h,l,u,d,s[p+9],12,-1958414417),d=m(d,h,l,u,s[p+10],17,-42063),u=m(u,d,h,l,s[p+11],22,-1990404162),l=m(l,u,d,h,s[p+12],7,1804603682),h=m(h,l,u,d,s[p+13],12,-40341101),d=m(d,h,l,u,s[p+14],17,-1502002290),l=f(l,u=m(u,d,h,l,s[p+15],22,1236535329),d,h,s[p+1],5,-165796510),h=f(h,l,u,d,s[p+6],9,-1069501632),d=f(d,h,l,u,s[p+11],14,643717713),u=f(u,d,h,l,s[p+0],20,-373897302),l=f(l,u,d,h,s[p+5],5,-701558691),h=f(h,l,u,d,s[p+10],9,38016083),d=f(d,h,l,u,s[p+15],14,-660478335),u=f(u,d,h,l,s[p+4],20,-405537848),l=f(l,u,d,h,s[p+9],5,568446438),h=f(h,l,u,d,s[p+14],9,-1019803690),d=f(d,h,l,u,s[p+3],14,-187363961),u=f(u,d,h,l,s[p+8],20,1163531501),l=f(l,u,d,h,s[p+13],5,-1444681467),h=f(h,l,u,d,s[p+2],9,-51403784),d=f(d,h,l,u,s[p+7],14,1735328473),l=g(l,u=f(u,d,h,l,s[p+12],20,-1926607734),d,h,s[p+5],4,-378558),h=g(h,l,u,d,s[p+8],11,-2022574463),d=g(d,h,l,u,s[p+11],16,1839030562),u=g(u,d,h,l,s[p+14],23,-35309556),l=g(l,u,d,h,s[p+1],4,-1530992060),h=g(h,l,u,d,s[p+4],11,1272893353),d=g(d,h,l,u,s[p+7],16,-155497632),u=g(u,d,h,l,s[p+10],23,-1094730640),l=g(l,u,d,h,s[p+13],4,681279174),h=g(h,l,u,d,s[p+0],11,-358537222),d=g(d,h,l,u,s[p+3],16,-722521979),u=g(u,d,h,l,s[p+6],23,76029189),l=g(l,u,d,h,s[p+9],4,-640364487),h=g(h,l,u,d,s[p+12],11,-421815835),d=g(d,h,l,u,s[p+15],16,530742520),l=_(l,u=g(u,d,h,l,s[p+2],23,-995338651),d,h,s[p+0],6,-198630844),h=_(h,l,u,d,s[p+7],10,1126891415),d=_(d,h,l,u,s[p+14],15,-1416354905),u=_(u,d,h,l,s[p+5],21,-57434055),l=_(l,u,d,h,s[p+12],6,1700485571),h=_(h,l,u,d,s[p+3],10,-1894986606),d=_(d,h,l,u,s[p+10],15,-1051523),u=_(u,d,h,l,s[p+1],21,-2054922799),l=_(l,u,d,h,s[p+8],6,1873313359),h=_(h,l,u,d,s[p+15],10,-30611744),d=_(d,h,l,u,s[p+6],15,-1560198380),u=_(u,d,h,l,s[p+13],21,1309151649),l=_(l,u,d,h,s[p+4],6,-145523070),h=_(h,l,u,d,s[p+11],10,-1120210379),d=_(d,h,l,u,s[p+2],15,718787259),u=_(u,d,h,l,s[p+9],21,-343485551),l=l+b>>>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<<o|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<<o|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<<o|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<<o|s>>>32-o)+t},r._blocksize=16,r._digestsize=16,Jm.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 nf,rf,of=Jm.exports;(rf=nf||(nf={})).UP="up",rf.DOWN="down",rf.NORTH="north",rf.EAST="east",rf.SOUTH="south",rf.WEST="west";const af={[nf.UP]:[0,1,0],[nf.DOWN]:[0,-1,0],[nf.NORTH]:[0,0,-1],[nf.EAST]:[1,0,0],[nf.SOUTH]:[0,0,1],[nf.WEST]:[-1,0,0]};var sf,cf,lf,uf;function df(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 hf(e){let t=null;return()=>(null==t&&(t=e()),t)}function pf(e,t,i){const n=e.get(t);if(n)return n;const r=i(t);return e.set(t,r),r}(lf=nf||(nf={})).ALL=[lf.UP,lf.DOWN,lf.NORTH,lf.EAST,lf.SOUTH,lf.WEST],lf.normal=function(e){return af[e]},(cf=sf||(sf={})).create=function(e,t,i){return[e,t,i]},cf.ZERO=cf.create(0,0,0),cf.offset=function(e,t,i,n){return[e[0]+t,e[1]+i,e[2]+n]},cf.towards=function(e,t){return cf.offset(e,...nf.normal(t))},cf.equals=function(e,t){return e===t||e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]},cf.magnitude=function(e){return e[0]*e[0]+e[1]*e[1]+e[2]*e[2]},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))?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},e.readEnum=function(e,t){return"string"!=typeof e?t[0]:t.includes(e)?e:t[0]}}(uf||(uf={}));const mf=class{constructor(e,t){if(this.namespace=e,this.path=t,!e.match(/^[a-z0-9._-]+$/))throw new Error(`Non [a-z0-9._-] character in namespace of ${e}:${t}`);if(!t.match(/^[a-z0-9/._-]+$/))throw new Error(`Non [a-z0-9/._-] character in path of ${e}:${t}`)}equals(e){return this===e||this.namespace===e.namespace&&this.path===e.path}toString(){return`${this.namespace}:${this.path}`}static create(e){return new mf(this.DEFAULT_NAMESPACE,e)}static parse(e){const t=e.indexOf(this.SEPARATOR);if(t>=0){const i=t>=1?e.substring(0,t):this.DEFAULT_NAMESPACE,n=e.substring(t+1);return new mf(i,n)}return new mf(this.DEFAULT_NAMESPACE,e)}};let ff=mf;ff.DEFAULT_NAMESPACE="minecraft",ff.SEPARATOR=":";var gf=Object.defineProperty,_f=Object.defineProperties,bf=Object.getOwnPropertyDescriptors,vf=Object.getOwnPropertySymbols,yf=Object.prototype.hasOwnProperty,wf=Object.prototype.propertyIsEnumerable,xf=(e,t,i)=>t in e?gf(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i;const Nf=class{constructor(e,t={}){this.properties=t,this.name="string"==typeof e?ff.parse(e):e}getName(){return this.name}getProperties(){return this.properties}getProperty(e){return this.properties[e]}isFluid(){return this.is(Nf.WATER)||this.is(Nf.LAVA)}equals(e){return!!this.name.equals(e.name)&&Object.keys(this.properties).every((t=>e.properties[t]===this.properties[t]))}is(e){return this.name.equals(e.name)}toString(){return 0===Object.keys(this.properties).length?this.name.toString():`${this.name.toString()}[${Object.entries(this.properties).map((([e,t])=>e+"="+t)).join(",")}]`}static fromNbt(e){const t=ff.parse(df(e.value,"Name","string")),i=function(e,t){try{return e()}catch(i){return t}}((()=>df(e.value,"Properties","compound")),{}),n=Object.keys(i).reduce(((e,t)=>{return n=((e,t)=>{for(var i in t||(t={}))yf.call(t,i)&&xf(e,i,t[i]);if(vf)for(var i of vf(t))wf.call(t,i)&&xf(e,i,t[i]);return e})({},e),r={[t]:df(i,t,"string")},_f(n,bf(r));var n,r}),{});return new Nf(t,n)}static fromJson(e){var t,i;const n=null!=(t=uf.readObject(e))?t:{},r=ff.parse(null!=(i=uf.readString(n.Name))?i:Nf.STONE.name.toString()),o=uf.readMap(n.Properties,(e=>{var t;return null!=(t=uf.readString(e))?t:""}));return new Nf(r,o)}};let kf=Nf;kf.AIR=new Nf(ff.create("air")),kf.STONE=new Nf(ff.create("stone")),kf.WATER=new Nf(ff.create("water"),{level:"0"}),kf.LAVA=new Nf(ff.create("lava"),{level:"0"});const Af=class{constructor(e){this.minY=e,this.storage=Array(Af.SIZE).fill(0),this.palette=[kf.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])?n:kf.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}};let Cf=Af;Cf.WIDTH=16,Cf.SIZE=Af.WIDTH*Af.WIDTH*Af.WIDTH;class Of{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))?t:kf.AIR}setBlockState(e,t){const[i,n,r]=e,o=this.getSectionIndex(n);let a=this.sections[o];if(null===a){if(t.equals(kf.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 Cf(this.minSection+e)),this.sections[e]}}var Sf,Ef;!function(e){function t(e,t){return BigInt(4294967295&e)|BigInt(4294967295&t)<<BigInt(32)}e.create=function(e,t){return[e,t]},e.fromBlockPos=function(e){return[e[0]>>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)}}(Sf||(Sf={})),function(e){function t(e){return{value:()=>e,key:()=>{}}}function i(e,t){return{value:()=>e.getOrThrow(t),key:()=>t}}e.parser=function(e,n){return r=>"string"==typeof r?i(e,ff.parse(r)):t(n(r))},e.direct=t,e.reference=i}(Ef||(Ef={}));const Ff=class{constructor(e,t){this.key=e,this.parser=t,this.storage=new Map,this.builtin=new Map}register(e,t,i){return this.storage.set(e.toString(),t),i&&this.builtin.set(e.toString(),t),Ef.reference(this,e)}keys(){return[...this.storage.keys()].map((e=>ff.parse(e)))}get(e){return this.storage.get(e.toString())}getOrThrow(e){const t=this.storage.get(e.toString());if(void 0===t)throw new Error(`Missing key in ${this.key.toString()}: ${e.toString()}`);return t}parse(e){if(!this.parser)throw new Error(`No parser exists for ${this.key.toString()}`);return this.parser(e)}clear(){this.storage.clear();for(const[e,t]of this.builtin.entries())this.storage.set(e,t);return this}assign(e){if(!this.key.equals(e.key))throw new Error(`Cannot assign registry of type ${e.key.toString()} to registry of type ${this.key.toString()}`);for(const t of e.keys())this.storage.set(t.toString(),e.getOrThrow(t));return this}cloneEmpty(){return new Ff(this.key,this.parser)}};let Df=Ff;function Bf(e){return e*e}function Lf(e,t,i){return Math.max(t,Math.min(i,e))}function Mf(e,t,i){return t+e*(i-t)}function Tf(e,t,i,n,r,o){return Mf(t,Mf(e,i,n),Mf(e,r,o))}function Rf(e,t,i){return 0===e?t():1===e?i():t()+e*(i()-t())}function $f(e,t,i,n,r,o){return Rf(t,(()=>Rf(e,i,n)),(()=>Rf(e,r,o)))}function jf(e,t,i){return i<0?e:i>1?t:Mf(i,e,t)}function If(e,t,i){return(e-t)/(i-t)}function Pf(e){return e*e*e*(e*(6*e-15)+10)}function zf(e,t,i,n,r){return Mf(If(e,t,i),n,r)}function Uf(e,t,i,n,r){return jf(n,r,If(e,t,i))}function Wf(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 Hf(e,t,i,n,r,o,a,s){return BigInt(e)<<BigInt(56)|BigInt(t)<<BigInt(48)|BigInt(i)<<BigInt(40)|BigInt(n)<<BigInt(32)|BigInt(r)<<BigInt(24)|BigInt(o)<<BigInt(16)|BigInt(a)<<BigInt(8)|BigInt(s)}var qf;Df.REGISTRY=new Ff(ff.create("root")),function(e){e.fromJson=function e(n,r){var o,a,s,c;if("number"==typeof n)return new t(n);const l=null!=(o=uf.readObject(n))?o:{},u=new i(r(l.coordinate)),d=null!=(a=uf.readArray(l.points,(e=>{var t;return null!=(t=uf.readObject(e))?t:{}})))?a:[];if(0===d.length)return new t(0);for(const t of d){const i=null!=(s=uf.readNumber(t.location))?s:0,n=e(t.value,r),o=null!=(c=uf.readNumber(t.derivative))?c:0;u.addPoint(i,n,o)}return u};class t{constructor(e){this.value=e}compute(){return this.value}min(){return this.value}max(){return this.value}mapAll(){return this}}e.Constant=t;class i{constructor(e,t=[],i=[],n=[]){this.coordinate=e,this.locations=t,this.values=i,this.derivatives=n}compute(e){const t=this.coordinate.compute(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<this.locations[e]))-1,n=this.locations.length-1;if(i<0)return this.values[0].compute(e)+this.derivatives[0]*(t-this.locations[0]);if(i===n)return this.values[n].compute(e)+this.derivatives[n]*(t-this.locations[n]);const r=this.locations[i],o=this.locations[i+1],a=this.derivatives[i],s=this.derivatives[i+1],c=(t-r)/(o-r),l=this.values[i].compute(e),u=this.values[i+1].compute(e),d=a*(o-r)-(u-l),h=-s*(o-r)+(u-l);return Mf(c,l,u)+c*(1-c)*Mf(c,d,h)}min(){return Math.min(...this.values.map((e=>e.min())))}max(){return Math.max(...this.values.map((e=>e.max())))}mapAll(e){return new i(e(this.coordinate),this.locations,this.values.map((t=>t.mapAll(e))),this.derivatives)}addPoint(t,i,n=0){return this.locations.push(t),this.values.push("number"==typeof i?new e.Constant(i):i),this.derivatives.push(n),this}}e.MultiPoint=i}(qf||(qf={}));const Vf=class{constructor(e){this.seed=BigInt(0),this.setSeed(e)}fork(){return new Vf(this.nextLong())}forkPositional(){return new Kf(this.nextLong())}setSeed(e){this.seed=e^Vf.MULTIPLIER&Vf.MODULUS_MASK}advance(){this.seed=this.seed*Vf.MULTIPLIER+Vf.INCREMENT&Vf.MODULUS_MASK}consume(e){for(let t=0;t<e;t+=1)this.advance()}next(e){this.advance();const t=Number(this.seed>>BigInt(Vf.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(32))+BigInt(this.next(32))}nextFloat(){return this.next(24)*Vf.FLOAT_MULTIPLIER}nextDouble(){const e=this.next(30);return this.advance(),e*Vf.DOUBLE_MULTIPLIER}};let Gf=Vf;Gf.MODULUS_BITS=48,Gf.MODULUS_MASK=BigInt("281474976710655"),Gf.MULTIPLIER=BigInt("25214903917"),Gf.INCREMENT=BigInt("11"),Gf.FLOAT_MULTIPLIER=1/Math.pow(2,24),Gf.DOUBLE_MULTIPLIER=1/Math.pow(2,30);class Kf{constructor(e){this.seed=e}at(e,t,i){const n=Wf(e,t,i);return new Gf(n^this.seed)}fromHashOf(e){const t=of(e,{asBytes:!0}),i=Hf(t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]);return new Gf(i^this.seed)}seedKey(){return[this.seed,BigInt(0)]}}const Xf=class{constructor(e){this.seed=[BigInt(0),BigInt(0)],this.seed=e}static create(e){return new Xf(Xf.upgradeSeedTo128bit(e))}static mixStafford13(e){return((e=((e=(e^e>>Xf.BIGINT_30)*Xf.STAFFORD_1&Xf.MAX_ULONG)^e>>Xf.BIGINT_27)*Xf.STAFFORD_2&Xf.MAX_ULONG)^e>>Xf.BIGINT_31)&Xf.MAX_ULONG}static upgradeSeedTo128bit(e){e<0&&(e+=Xf.POW2_60);const t=e^Xf.SILVER_RATIO_64,i=t+Xf.GOLDEN_RATIO_64&Xf.MAX_ULONG;return[Xf.mixStafford13(t),Xf.mixStafford13(i)]}static rotateLeft(e,t){return e<<t&Xf.MAX_ULONG|e>>Xf.BIGINT_64-t}setSeed(e){this.seed=Xf.upgradeSeedTo128bit(e)}fork(){return new Xf([this.next(),this.next()])}forkPositional(){return new Yf(this.next(),this.next())}next(){const e=this.seed[0];let t=this.seed[1];const i=Xf.rotateLeft(e+t&Xf.MAX_ULONG,Xf.BIGINT_17)+e&Xf.MAX_ULONG;return t^=e,this.seed=[Xf.rotateLeft(e,Xf.BIGINT_49)^t^t<<Xf.BIGINT_21&Xf.MAX_ULONG,Xf.rotateLeft(t,Xf.BIGINT_28)],i}nextLong(){let e=this.next();return e>Xf.POW2_63&&(e-=Xf.POW2_60),e}consume(e){let t=this.seed[0],i=this.seed[1];for(let n=0;n<e;n+=1)i^=t,t=Xf.rotateLeft(t,Xf.BIGINT_49)^i^i<<Xf.BIGINT_21,i=Xf.rotateLeft(i,Xf.BIGINT_28);this.seed=[t,i]}nextBits(e){return this.next()>>BigInt(64-e)}nextInt(e){let t=this.next()&Xf.MAX_UINT;if(e){const i=BigInt(e);let n=t*i,r=n&Xf.MAX_UINT;if(r<i){const e=((~i&Xf.MAX_UINT)+Xf.BIGINT_1)%i;for(;r<e;)t=this.next()&Xf.MAX_UINT,n=t*i,r=n&Xf.MAX_UINT}const o=n>>Xf.BIGINT_32;return Number(o)}{let e=Number(t);return e>=2147483648&&(e-=4294967296),e}}nextFloat(){return Number(this.nextBits(24))*Xf.FLOAT_MULTIPLIER}nextDouble(){return Number(this.nextBits(53))*Xf.DOUBLE_MULTIPLIER}parityConfigString(){return"seedLo: "+this.seed[0]+", seedHi: "+this.seed[1]}};let Jf=Xf;Jf.SILVER_RATIO_64=BigInt("7640891576956012809"),Jf.GOLDEN_RATIO_64=BigInt("-7046029254386353131"),Jf.FLOAT_MULTIPLIER=1/Math.pow(2,24),Jf.DOUBLE_MULTIPLIER=11102230246251565e-32,Jf.BIGINT_1=BigInt(1),Jf.BIGINT_17=BigInt(17),Jf.BIGINT_21=BigInt(21),Jf.BIGINT_27=BigInt(27),Jf.BIGINT_28=BigInt(28),Jf.BIGINT_30=BigInt(30),Jf.BIGINT_31=BigInt(31),Jf.BIGINT_32=BigInt(32),Jf.BIGINT_49=BigInt(49),Jf.BIGINT_64=BigInt(64),Jf.STAFFORD_1=BigInt("-4658895280553007687"),Jf.STAFFORD_2=BigInt("-7723592293110705685"),Jf.MAX_ULONG=BigInt("0xFFFFFFFFFFFFFFFF"),Jf.POW2_60=BigInt("0x10000000000000000"),Jf.POW2_63=BigInt("0x8000000000000000"),Jf.MAX_UINT=BigInt(4294967295);class Yf{constructor(e,t){this.seedLo=e,this.seedHi=t}at(e,t,i){const n=Wf(e,t,i)^this.seedLo;return new Jf([n,this.seedHi])}fromHashOf(e){const t=of(e,{asBytes:!0}),i=Hf(t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),n=Hf(t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15]);return new Jf([i^this.seedLo,n^this.seedHi])}seedKey(){return[this.seedLo,this.seedHi]}}const Zf=class{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)*Zf.F2,a=Math.floor(e+o),s=e-(a-(i=(a+(n=Math.floor(t+o)))*Zf.G2));let c,l;s>(r=t-(n-i))?(c=1,l=0):(c=0,l=1);const u=s-c+Zf.G2,d=r-l+Zf.G2,h=s-1+2*Zf.G2,p=r-1+2*Zf.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):l<u?(d=0,h=0,p=1,m=0,f=1,g=1):c<u?(d=0,h=1,p=0,m=0,f=1,g=1):(d=0,h=1,p=0,m=1,f=1,g=0);const _=c-d+.16666666666666666,b=l-h+.16666666666666666,v=u-p+.16666666666666666,y=c-m+.3333333333333333,w=l-f+.3333333333333333,x=u-g+.3333333333333333,N=c-.5,k=l-.5,A=u-.5,C=255&r,O=255&o,S=255&a,E=this.P(C+this.P(O+this.P(S)))%12,F=this.P(C+d+this.P(O+h+this.P(S+p)))%12,D=this.P(C+m+this.P(O+f+this.P(S+g)))%12,B=this.P(C+1+this.P(O+1+this.P(S+1)))%12;return 32*(this.getCornerNoise3D(E,c,l,u,.6)+this.getCornerNoise3D(F,_,b,v,.6)+this.getCornerNoise3D(D,y,w,x,.6)+this.getCornerNoise3D(B,N,k,A,.6))}P(e){return this.p[255&e]}getCornerNoise3D(e,t,i,n,r){let o,a=r-t*t-i*i-n*n;return a<0?o=0:(a*=a,o=a*a*Zf.gradDot(e,t,i,n)),o}static gradDot(e,t,i,n){const r=Zf.GRADIENT[15&e];return r[0]*t+r[1]*i+r[2]*n}};let Qf=Zf;Qf.GRADIENT=[[1,1,0],[-1,1,0],[1,-1,0],[-1,-1,0],[1,0,1],[-1,0,1],[1,0,-1],[-1,0,-1],[0,1,1],[0,-1,1],[0,1,-1],[0,-1,-1],[1,1,0],[0,-1,1],[-1,1,0],[0,-1,-1]],Qf.F2=.5*(Math.sqrt(3)-1),Qf.G2=(3-Math.sqrt(3))/6;class eg{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>127?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<h?r:h;m=Math.floor(e/n+1e-7)*n}return this.sampleAndLerp(c,l,u,d,h-m,p,h)}sampleAndLerp(e,t,i,n,r,o,a){const s=this.P(e),c=this.P(e+1),l=this.P(s+t),u=this.P(s+t+1),d=this.P(c+t),h=this.P(c+t+1),p=Qf.gradDot(this.P(l+i),n,r,o),m=Qf.gradDot(this.P(d+i),n-1,r,o),f=Qf.gradDot(this.P(u+i),n,r-1,o),g=Qf.gradDot(this.P(h+i),n-1,r-1,o),_=Qf.gradDot(this.P(l+i+1),n,r,o-1),b=Qf.gradDot(this.P(d+i+1),n-1,r,o-1),v=Qf.gradDot(this.P(u+i+1),n,r-1,o-1),y=Qf.gradDot(this.P(h+i+1),n-1,r-1,o-1);return function(e,t,i,n,r,o,a,s,c,l,u){return Mf(i,Tf(e,t,n,r,o,a),Tf(e,t,s,c,l,u))}(Pf(n),Pf(a),Pf(o),p,m,f,g,_,b,v,y)}P(e){return 255&this.p[255&e]}}class tg{constructor(e,t,i){if(e instanceof Jf){const n=e.forkPositional();this.noiseLevels=Array(i.length);for(let e=0;e<i.length;e++)if(0!==i[e]){const i=t+e;this.noiseLevels[e]=new eg(n.fromHashOf("octave_"+i))}}else{if(1-t<i.length)throw new Error("Positive octaves are not allowed when using LegacyRandom");this.noiseLevels=Array(i.length);for(let n=-t;n>=0;n-=1)n<i.length&&0!==i[n]?this.noiseLevels[n]=new eg(e):e.consume(262)}this.amplitudes=i,this.lowestFreqInputFactor=Math.pow(2,t),this.lowestFreqValueFactor=Math.pow(2,i.length-1)/(Math.pow(2,i.length)-1),this.maxValue=this.edgeValue(2)}sample(e,t,i,n=0,r=0,o=!1){let a=0,s=this.lowestFreqInputFactor,c=this.lowestFreqValueFactor;for(let l=0;l<this.noiseLevels.length;l+=1){const u=this.noiseLevels[l];u&&(a+=this.amplitudes[l]*c*u.sample(tg.wrap(e*s),o?-u.yo:tg.wrap(t*s),tg.wrap(i*s),n*s,r*s)),s*=2,c/=2}return a}getOctaveNoise(e){return this.noiseLevels[this.noiseLevels.length-1-e]}edgeValue(e){let t=0,i=this.lowestFreqValueFactor;for(let n=0;n<this.noiseLevels.length;n+=1)this.noiseLevels[n]&&(t+=this.amplitudes[n]*e*i),i/=2;return t}static wrap(e){return e-33554432*Math.floor(e/33554432+.5)}}class ig{constructor(e,t,i,n){this.cellWidth=i,this.cellHeight=n,this.minLimitNoise=new tg(e,-15,[1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0]),this.maxLimitNoise=new tg(e,-15,[1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0]),this.mainNoise=new tg(e,-7,[1,1,1,1,1,0,0,0]),this.xzScale=684.412*t.xzScale,this.yScale=684.412*t.yScale,this.xzMainScale=this.xzScale/t.xzFactor,this.yMainScale=this.yScale/t.yFactor,this.maxValue=this.minLimitNoise.edgeValue(this.yScale+2)}sample(e,t,i){let n;e=Math.floor(e/this.cellWidth),t=Math.floor(t/this.cellHeight),i=Math.floor(i/this.cellWidth);let r=0,o=1;for(let c=0;c<8;c+=1){if(n=this.mainNoise.getOctaveNoise(c),n){const a=this.xzMainScale*o,s=this.yMainScale*o,c=tg.wrap(e*a),l=tg.wrap(t*s),u=tg.wrap(i*a);r+=n.sample(c,l,u,s,t*s)/o}o/=2}r=(r/10+1)/2,o=1;let a=0,s=0;for(let c=0;c<16;c+=1){const l=this.xzScale*o,u=this.yScale*o,d=tg.wrap(e*l),h=tg.wrap(t*u),p=tg.wrap(i*l);r<1&&(n=this.minLimitNoise.getOctaveNoise(c))&&(a+=n.sample(d,h,p,u,t*u)/o),r>0&&(n=this.maxLimitNoise.getOctaveNoise(c))&&(s+=n.sample(d,h,p,u,t*u)/o),o/=2}return jf(a/512,s/512,r)/128}}var ng;(ng||(ng={})).fromJson=function(e){var t,i,n,r,o;const a=null!=(t=uf.readObject(e))?t:{};return{xzScale:null!=(i=uf.readNumber(a.xz_scale))?i:1,yScale:null!=(n=uf.readNumber(a.y_scale))?n:1,xzFactor:null!=(r=uf.readNumber(a.xz_factor))?r:80,yFactor:null!=(o=uf.readNumber(a.y_factor))?o:80}};const rg=class{constructor(e,{firstOctave:t,amplitudes:i}){this.first=new tg(e,t,i),this.second=new tg(e,t,i);let n=1/0,r=-1/0;for(let a=0;a<i.length;a+=1)0!==i[a]&&(n=Math.min(n,a),r=Math.max(r,a));const o=.1*(1+1/(r-n+1));this.valueFactor=1/6/o,this.maxValue=(this.first.maxValue+this.second.maxValue)*this.valueFactor}sample(e,t,i){const n=e*rg.INPUT_FACTOR,r=t*rg.INPUT_FACTOR,o=i*rg.INPUT_FACTOR;return(this.first.sample(e,t,i)+this.second.sample(n,r,o))*this.valueFactor}};let og=rg;var ag,sg,cg;og.INPUT_FACTOR=1.0181268882175227,(sg=ag||(ag={})).create=function(e,t){return{firstOctave:e,amplitudes:t}},sg.fromJson=function(e){var t,i,n;const r=null!=(t=uf.readObject(e))?t:{};return{firstOctave:null!=(i=uf.readInt(r.firstOctave))?i:0,amplitudes:null!=(n=uf.readArray(r.amplitudes,(e=>{var t;return null!=(t=uf.readNumber(e))?t:0})))?n:[]}},(cg||(cg={})).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}};const lg=class{constructor(e,t,i){this.offsetSampler=e,this.factorSampler=t,this.jaggednessSampler=i}static extractor(e){return{compute:t=>t[e]}}static fromJson(e){var t;const i=null!=(t=uf.readObject(e))?t:{};return new lg(qf.fromJson(i.offset,this.EXTRACTOR),qf.fromJson(i.factor,this.EXTRACTOR),qf.fromJson(i.jaggedness,this.EXTRACTOR))}offset(e){return this.offsetSampler.compute(e)+lg.GLOBAL_OFFSET}factor(e){return this.factorSampler.compute(e)}jaggedness(e){return this.jaggednessSampler.compute(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)}};let ug=lg;var dg,hg,pg,mg,fg,gg,_g;ug.GLOBAL_OFFSET=-.50375,ug.EXTRACTOR=e=>{var t;const i=null!=(t=uf.readString(e))?t:"continents";return lg.extractor(i)},ug.CONTINENTS=lg.extractor("continents"),ug.EROSION=lg.extractor("erosion"),ug.WEIRDNESS=lg.extractor("weirdness"),ug.RIDGES=lg.extractor("ridges"),function(e){function t(e){return e.ySize<<2}e.fromJson=function(e){var t,i,n,r,o;const a=null!=(t=uf.readObject(e))?t:{};return{minY:null!=(i=uf.readInt(a.min_y))?i:0,height:null!=(n=uf.readInt(a.height))?n:256,xzSize:null!=(r=uf.readInt(a.size_horizontal))?r:1,ySize:null!=(o=uf.readInt(a.size_vertical))?o:1,sampling:ng.fromJson(a.sampling),topSlide:hg.fromJson(a.top_slide),bottomSlide:hg.fromJson(a.bottom_slide),terrainShaper:ug.fromJson(a.terrain_shaper)}},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))},e.applySlides=function(i,n,r){const o=Math.floor(r/t(i))-e.minCellY(i);return n=hg.apply(i.topSlide,n,e.cellCountY(i)-o),hg.apply(i.bottomSlide,n,o)}}(dg||(dg={})),(pg=hg||(hg={})).fromJson=function(e){var t,i,n,r;const o=null!=(t=uf.readObject(e))?t:{};return{target:null!=(i=uf.readNumber(o.target))?i:0,size:null!=(n=uf.readInt(o.size))?n:0,offset:null!=(r=uf.readInt(o.offset))?r:0}},pg.apply=function(e,t,i){if(e.size<=0)return t;const n=(i-e.offset)/e.size;return jf(e.target,t,n)},function(e){function t(e){const t=new Df(ff.create(e));return Df.REGISTRY.register(t.key,t),t}e.NOISE=t("worldgen/noise"),e.DENSITY_FUNCTION=t("worldgen/density_function")}(mg||(mg={}));class bg{minValue(){return-this.maxValue()}mapAll(e){return e.map(this)}}!function(e){e.context=function(e,t,i){return{x:e,y:t,z:i}};class t extends e{constructor(e){super(),this.input=e}compute(e){return this.transform(e,this.input.compute(e))}}const i=Ef.parser(mg.NOISE,ag.fromJson);e.fromJson=function e(t,n=e){var c,_,w,O,R,$,j,I,P,z,U,W,H,q,V,G,K,X,J;if("string"==typeof t)return new o(Ef.reference(mg.DENSITY_FUNCTION,ff.parse(t)));if("number"==typeof t)return new r(t);const Y=null!=(c=uf.readObject(t))?c:{},Z=null==(_=uf.readString(Y.type))?void 0:_.replace(/^minecraft:/,"");switch(Z){case"blend_alpha":return new a(1,0,1);case"blend_offset":case"beardifier":return new a(0,-1/0,1/0);case"old_blended_noise":return new s;case"flat_cache":return new l(n(Y.argument));case"interpolated":return new p(n(Y.argument));case"cache_2d":return new d(n(Y.argument));case"cache_once":return new h(n(Y.argument));case"cache_all_in_cell":return new u(n(Y.argument));case"noise":return new m(null!=(w=uf.readNumber(Y.xz_scale))?w:1,null!=(O=uf.readNumber(Y.y_scale))?O:1,i(Y.noise));case"end_islands":return new f;case"weird_scaled_sampler":return new b(n(Y.input),uf.readEnum(Y.rarity_value_mapper,g),i(Y.noise));case"shifted_noise":return new v(n(Y.shift_x),n(Y.shift_y),n(Y.shift_z),null!=(R=uf.readNumber(Y.xz_scale))?R:1,null!=($=uf.readNumber(Y.y_scale))?$:1,i(Y.noise));case"range_choice":return new y(n(Y.input),null!=(j=uf.readNumber(Y.min_inclusive))?j:0,null!=(I=uf.readNumber(Y.max_exclusive))?I:1,n(Y.when_in_range),n(Y.when_out_of_range));case"shift_a":return new x(i(Y.argument));case"shift_b":return new N(i(Y.argument));case"shift":return new k(i(Y.argument));case"blend_density":return new A(n(Y.argument));case"clamp":return new C(n(Y.input),null!=(P=uf.readNumber(Y.min))?P:0,null!=(z=uf.readNumber(Y.max))?z:1);case"abs":case"square":case"cube":case"half_negative":case"quarter_negative":case"squeeze":return new S(Z,n(Y.argument));case"slide":return new E(n(Y.argument));case"add":case"mul":case"min":case"max":return new D(uf.readEnum(Z,F),n(Y.argument1),n(Y.argument2));case"spline":return new B(qf.fromJson(Y.spline,n),null!=(U=uf.readNumber(Y.min_value))?U:0,null!=(W=uf.readNumber(Y.max_value))?W:1);case"terrain_shaper_spline":return new M(n(Y.continentalness),n(Y.erosion),n(Y.weirdness),uf.readEnum(Y.spline,L),null!=(H=uf.readNumber(Y.min_value))?H:0,null!=(q=uf.readNumber(Y.max_value))?q:1);case"constant":return new r(null!=(V=uf.readNumber(Y.argument))?V:0);case"y_clamped_gradient":return new T(null!=(G=uf.readInt(Y.from_y))?G:-4064,null!=(K=uf.readInt(Y.to_y))?K:4062,null!=(X=uf.readNumber(Y.from_value))?X:-4064,null!=(J=uf.readNumber(Y.to_value))?J:4062)}return r.ZERO};const n=class extends e{constructor(e){super(),this.value=e}compute(){return this.value}minValue(){return this.value}maxValue(){return this.value}};let r=n;r.ZERO=new n(0),r.ONE=new n(1),e.Constant=r;class o extends e{constructor(e){super(),this.holder=e}compute(e){return this.holder.value().compute(e)}minValue(){return this.holder.value().minValue()}maxValue(){return this.holder.value().maxValue()}}e.HolderHolder=o;class a extends e.Constant{constructor(e,t,i){super(e),this.min=t,this.max=i}minValue(){return this.min}maxValue(){return this.max}}e.ConstantMinMax=a;class s extends e{constructor(e){super(),this.blendedNoise=null!=e?e:new ig(Jf.create(BigInt(0)),{xzScale:1,yScale:1,xzFactor:80,yFactor:160},4,8)}compute(e){return this.blendedNoise.sample(e.x,e.y,e.z)}maxValue(){return this.blendedNoise.maxValue}}e.OldBlendedNoise=s;class c extends e{constructor(e){super(),this.wrapped=e}minValue(){return this.wrapped.minValue()}maxValue(){return this.wrapped.maxValue()}}class l extends c{constructor(e){super(e),this.lastValue=0}compute(t){const i=t.x>>2,n=t.z>>2;return this.lastQuartX===i&&this.lastQuartZ===n||(this.lastValue=this.wrapped.compute(e.context(i<<2,0,n<<2)),this.lastQuartX=i,this.lastQuartZ=n),this.lastValue}mapAll(e){return e.map(new l(this.wrapped.mapAll(e)))}}e.FlatCache=l;class u extends c{constructor(e){super(e)}compute(e){return this.wrapped.compute(e)}mapAll(e){return e.map(new u(this.wrapped.mapAll(e)))}}e.CacheAllInCell=u;class d extends c{constructor(e){super(e),this.lastValue=0}compute(e){const t=e.x,i=e.z;return this.lastBlockX===t&&this.lastBlockZ===i||(this.lastValue=this.wrapped.compute(e),this.lastBlockX=t,this.lastBlockZ=i),this.lastValue}mapAll(e){return e.map(new d(this.wrapped.mapAll(e)))}}e.Cache2D=d;class h extends c{constructor(e){super(e),this.lastValue=0}compute(e){const t=e.x,i=e.y,n=e.z;return this.lastBlockX===t&&this.lastBlockY===i&&this.lastBlockZ===n||(this.lastValue=this.wrapped.compute(e),this.lastBlockX=t,this.lastBlockY=i,this.lastBlockZ=n),this.lastValue}mapAll(e){return e.map(new h(this.wrapped.mapAll(e)))}}e.CacheOnce=h;class p extends c{constructor(e,t=4,i=4){super(e),this.cellWidth=t,this.cellHeight=i,this.values=new Map}compute({x:e,y:t,z:i}){const n=this.cellWidth,r=this.cellHeight,o=(e%n+n)%n/n,a=(t%r+r)%r/r,s=(i%n+n)%n/n,c=Math.floor(e/n)*n,l=Math.floor(t/r)*r,u=Math.floor(i/n)*n;return function(e,t,i,n,r,o,a,s,c,l,u){return Rf(i,(()=>$f(e,t,n,r,o,a)),(()=>$f(e,t,s,c,l,u)))}(o,a,s,(()=>this.computeCorner(c,l,u)),(()=>this.computeCorner(c+n,l,u)),(()=>this.computeCorner(c,l+r,u)),(()=>this.computeCorner(c+n,l+r,u)),(()=>this.computeCorner(c,l,u+n)),(()=>this.computeCorner(c+n,l,u+n)),(()=>this.computeCorner(c,l+r,u+n)),(()=>this.computeCorner(c+n,l+r,u+n)))}computeCorner(t,i,n){return pf(this.values,`${t} ${i} ${n}`,(()=>this.wrapped.compute(e.context(t,i,n))))}mapAll(e){return e.map(new p(this.wrapped.mapAll(e)))}withCellSize(e,t){return new p(this.wrapped,e,t)}}e.Interpolated=p;class m extends e{constructor(e,t,i,n){super(),this.xzScale=e,this.yScale=t,this.noiseData=i,this.noise=n}compute(e){var t,i;return null!=(i=null==(t=this.noise)?void 0:t.sample(e.x*this.xzScale,e.y*this.yScale,e.z*this.xzScale))?i:0}maxValue(){var e,t;return null!=(t=null==(e=this.noise)?void 0:e.maxValue)?t:2}}e.Noise=m;class f extends e{compute(){return 0}minValue(){return-.84375}maxValue(){return.5625}}const g=["type_1","type_2"],_=class extends t{constructor(e,t,i,n){super(e),this.rarityValueMapper=t,this.noiseData=i,this.noise=n,this.mapper=_.ValueMapper[this.rarityValueMapper]}transform(e,t){if(!this.noise)return 0;const i=this.mapper(t);return i*Math.abs(this.noise.sample(e.x/i,e.y/i,e.z/i))}mapAll(e){return e.map(new _(this.input.mapAll(e),this.rarityValueMapper,this.noiseData,this.noise))}minValue(){return 0}maxValue(){return"type_1"===this.rarityValueMapper?2:3}static rarityValueMapper1(e){return e<-.5?.75:e<0?1:e<.5?1.5:2}static rarityValueMapper2(e){return e<-.75?.5:e<-.5?.75:e<.5?1:e<.75?2:3}};let b=_;b.ValueMapper={type_1:_.rarityValueMapper1,type_2:_.rarityValueMapper2},e.WeirdScaledSampler=b;class v extends m{constructor(e,t,i,n,r,o,a){super(n,r,o,a),this.shiftX=e,this.shiftY=t,this.shiftZ=i}compute(e){var t,i;const n=e.x*this.xzScale+this.shiftX.compute(e),r=e.y*this.yScale+this.shiftY.compute(e),o=e.z*this.xzScale+this.shiftZ.compute(e);return null!=(i=null==(t=this.noise)?void 0:t.sample(n,r,o))?i:0}mapAll(e){return e.map(new v(this.shiftX.mapAll(e),this.shiftY.mapAll(e),this.shiftZ.mapAll(e),this.xzScale,this.yScale,this.noiseData,this.noise))}}e.ShiftedNoise=v;class y extends e{constructor(e,t,i,n,r){super(),this.input=e,this.minInclusive=t,this.maxExclusive=i,this.whenInRange=n,this.whenOutOfRange=r}compute(e){const t=this.input.compute(e);return this.minInclusive<=t&&t<this.maxExclusive?this.whenInRange.compute(e):this.whenOutOfRange.compute(e)}mapAll(e){return e.map(new y(this.input.mapAll(e),this.minInclusive,this.maxExclusive,this.whenInRange.mapAll(e),this.whenOutOfRange.mapAll(e)))}minValue(){return Math.min(this.whenInRange.minValue(),this.whenOutOfRange.minValue())}maxValue(){return Math.max(this.whenInRange.maxValue(),this.whenOutOfRange.maxValue())}}e.RangeChoice=y;class w extends e{constructor(e,t){super(),this.noiseData=e,this.offsetNoise=t}compute(e){var t,i;return null!=(i=null==(t=this.offsetNoise)?void 0:t.sample(.25*e.x,.25*e.y,.25*e.z))?i:0}maxValue(){var e,t;return 4*(null!=(t=null==(e=this.offsetNoise)?void 0:e.maxValue)?t:2)}}e.ShiftNoise=w;class x extends w{constructor(e,t){super(e,t)}compute(t){return super.compute(e.context(t.x,0,t.z))}withNewNoise(e){return new x(this.noiseData,e)}}e.ShiftA=x;class N extends w{constructor(e,t){super(e,t)}compute(t){return super.compute(e.context(t.z,t.x,0))}withNewNoise(e){return new N(this.noiseData,e)}}e.ShiftB=N;class k extends w{constructor(e,t){super(e,t)}withNewNoise(e){return new k(this.noiseData,e)}}e.Shift=k;class A extends t{constructor(e){super(e)}transform(e,t){return t}mapAll(e){return e.map(new A(this.input.mapAll(e)))}minValue(){return-1/0}maxValue(){return 1/0}}e.BlendDensity=A;class C extends t{constructor(e,t,i){super(e),this.min=t,this.max=i}transform(e,t){return Lf(t,this.min,this.max)}mapAll(e){return e.map(new C(this.input.mapAll(e),this.min,this.max))}minValue(){return this.min}maxValue(){return this.max}}e.Clamp=C;const O=class extends t{constructor(e,t,i,n){super(t),this.type=e,this.min=i,this.max=n,this.transformer=O.MappedTypes[this.type]}transform(e,t){return this.transformer(t)}mapAll(e){return e.map(new O(this.type,this.input.mapAll(e)))}minValue(){var e;return null!=(e=this.min)?e:-1/0}maxValue(){var e;return null!=(e=this.max)?e:1/0}withMinMax(){const e=this.input.minValue();let t=this.transformer(e),i=this.transformer(this.input.maxValue());return"abs"!==this.type&&"square"!==this.type||(i=Math.max(t,i),t=Math.max(0,e)),new O(this.type,this.input,t,i)}};let S=O;S.MappedTypes={abs:e=>Math.abs(e),square:e=>e*e,cube:e=>e*e*e,half_negative:e=>e>0?e:.5*e,quarter_negative:e=>e>0?e:.25*e,squeeze:e=>{const t=Lf(e,-1,1);return t/2-t*t*t/24}},e.Mapped=S;class E extends t{constructor(e,t){super(e),this.settings=t}transform(e,t){return this.settings?dg.applySlides(this.settings,t,e.y):t}mapAll(e){return e.map(new E(this.input.mapAll(e),this.settings))}minValue(){return this.settings?Math.min(this.input.minValue(),this.settings.bottomSlide.target,this.settings.topSlide.target):this.input.minValue()}maxValue(){return this.settings?Math.max(this.input.maxValue(),this.settings.bottomSlide.target,this.settings.topSlide.target):this.input.maxValue()}}e.Slide=E;const F=["add","mul","min","max"];class D extends e{constructor(e,t,i,n,r){super(),this.type=e,this.argument1=t,this.argument2=i,this.min=n,this.max=r}compute(e){const t=this.argument1.compute(e);switch(this.type){case"add":return t+this.argument2.compute(e);case"mul":return 0===t?0:t*this.argument2.compute(e);case"min":return t<this.argument2.minValue()?t:Math.min(t,this.argument2.compute(e));case"max":return t>this.argument2.maxValue()?t:Math.max(t,this.argument2.compute(e))}}mapAll(e){return e.map(new D(this.type,this.argument1.mapAll(e),this.argument2.mapAll(e)))}minValue(){var e;return null!=(e=this.min)?e:-1/0}maxValue(){var e;return null!=(e=this.max)?e:1/0}withMinMax(){const e=this.argument1.minValue(),t=this.argument2.minValue(),i=this.argument1.maxValue(),n=this.argument2.maxValue();let r,o;switch("min"!==this.type&&"max"!==this.type||!(e>=n||t>=i)||console.warn(`Creating a ${this.type} function between two non-overlapping inputs`),this.type){case"add":r=e+t,o=i+n;break;case"mul":r=e>0&&t>0?e*t||0:i<0&&n<0?i*n||0:Math.min(e*n||0,t*i||0),o=e>0&&t>0?i*n||0:i<0&&n<0?e*t||0:Math.max(e*t||0,i*n||0);break;case"min":r=Math.min(e,t),o=Math.min(i,n);break;case"max":r=Math.max(e,t),o=Math.max(i,n)}return new D(this.type,this.argument1,this.argument2,r,o)}}e.Ap2=D;class B extends e{constructor(e,t,i){super(),this.spline=e,this.min=t,this.max=i}compute(e){return Lf(this.spline.compute(e),this.min,this.max)}mapAll(t){return t.map(new B(this.spline.mapAll((i=>i instanceof e?i.mapAll(t):i)),this.min,this.max))}minValue(){return this.min}maxValue(){return this.max}}e.Spline=B;const L=["offset","factor","jaggedness"];class M extends e{constructor(e,t,i,n,r,o,a){super(),this.continentalness=e,this.erosion=t,this.weirdness=i,this.spline=n,this.min=r,this.max=o,this.shaper=a}compute(e){if(!this.shaper)return 0;const t=ug.point(this.continentalness.compute(e),this.erosion.compute(e),this.weirdness.compute(e));return Lf(this.shaper[this.spline](t),this.min,this.max)}mapAll(e){return e.map(new M(this.continentalness.mapAll(e),this.erosion.mapAll(e),this.weirdness.mapAll(e),this.spline,this.min,this.max,this.shaper))}minValue(){return this.min}maxValue(){return this.max}}e.TerrainShaperSpline=M;class T extends e{constructor(e,t,i,n){super(),this.fromY=e,this.toY=t,this.fromValue=i,this.toValue=n}compute(e){return Uf(e.y,this.fromY,this.toY,this.fromValue,this.toValue)}minValue(){return Math.min(this.fromValue,this.toValue)}maxValue(){return Math.max(this.fromValue,this.toValue)}}e.YClampedGradient=T}(bg||(bg={}));class vg{constructor(e,t){this.level=e,this.type=t}at(e){return e<this.level?this.type:kf.AIR}}(fg||(fg={})).createDisabled=function(e){return{compute({x:t,y:i,z:n},r){if(!(r>0))return e(t,i,n).at(i)}}},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=uf.readArray(e,(e=>uf.readNumber(e))))?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 Bf(this.temperature.distance(e.temperature))+Bf(this.humidity.distance(e.humidity))+Bf(this.continentalness.distance(e.continentalness))+Bf(this.erosion.distance(e.erosion))+Bf(this.depth.distance(e.depth))+Bf(this.weirdness.distance(e.weirdness))+Bf(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=uf.readObject(e))?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=uf.readInt(o.offset))?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 a(e)}find(e){return this.index.search(e,((e,t)=>e.distance(t)))}},e.Sampler=class{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}static fromRouter(t){return new e.Sampler(t.temperature,t.vegetation,t.continents,t.erosion,t.depth,t.ridges)}sample(t,i,n){const r=bg.context(t<<2,i<<2,n<<2);return e.target(this.temperature.compute(r),this.humidity.compute(r),this.continentalness.compute(r),this.erosion.compute(r),this.depth.compute(r),this.weirdness.compute(r))}};const o=class{constructor(e){this.root=o.build(e.map((([e,t])=>new l(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 c(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 c(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.length<n||(t.push(new c(i)),i=[]);return 0!==i.length&&t.push(new c(i)),t}static area(e){let t=0;for(const i of e)t+=Math.abs(i.max-i.min);return t}search(e,t){return this.root.search(e.toArray(),t).thing()}};let a=o;a.CHILDREN_PER_NODE=10,e.RTree=a;class s{constructor(e){this.space=e}distance(e){let t=0;for(let i=0;i<7;i+=1)t+=Bf(this.space[i].distance(e[i]));return t}}e.RNode=s;class c extends s{constructor(e){super(c.buildSpace(e)),this.children=e}static buildSpace(e){let t=[...Array(7)].map((()=>new 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=c;class l extends s{constructor(e,t){super(e.space()),this.thing=t}search(){return this}}e.RLeaf=l}(gg||(gg={}));class yg{constructor(e){this.biome=e}getBiome(){return this.biome}static fromJson(e){var t,i;const n=null!=(t=uf.readObject(e))?t:{},r=ff.parse(null!=(i=uf.readString(n.biome))?i:"minecraft:the_void");return new yg(r)}}!function(e){function t(e,t,i){return mg.NOISE.register(ff.create(e),ag.create(t,i))}e.TEMPERATURE=t("temperature",-10,[1.5,0,1,0,0,0]),e.VEGETATION=t("vegetation",-8,[1,1,0,0,0,0]),e.CONTINENTALNESS=t("continentalness",-9,[1,1,2,2,2,1,1,1,1]),e.EROSION=t("erosion",-9,[1,1,0,1,1]),e.TEMPERATURE_LARGE=t("temperature_large",-12,[1.5,0,1,0,0,0]),e.VEGETATION_LARGE=t("vegetation_large",-10,[1,1,0,0,0,0]),e.CONTINENTALNESS_LARGE=t("continentalness_large",-11,[1,1,2,2,2,1,1,1,1]),e.EROSION_LARGE=t("erosion_large",-11,[1,1,0,1,1]),e.RIDGE=t("ridge",-7,[1,2,1,0,0,0]),e.SHIFT=t("offset",-3,[1,1,1,0]),e.AQUIFER_BARRIER=t("aquifer_barrier",-3,[1]),e.AQUIFER_FLUID_LEVEL_FLOODEDNESS=t("aquifer_fluid_level_floodedness",-7,[1]),e.AQUIFER_FLUID_LEVEL_SPREAD=t("aquifer_fluid_level_spread",-5,[1]),e.AQUIFER_LAVA=t("aquifer_lava",-1,[1]),e.PILLAR=t("pillar",-7,[1,1]),e.PILLAR_RARENESS=t("pillar_rareness",-8,[1]),e.PILLAR_THICKNESS=t("pillar_thickness",-8,[1]),e.SPAGHETTI_2D=t("spaghetti_2d",-8,[1]),e.SPAGHETTI_2D_ELEVATION=t("spaghetti_2d_elevation",-8,[1]),e.SPAGHETTI_2D_MODULATOR=t("spaghetti_2d_modulator",-8,[1]),e.SPAGHETTI_2D_THICKNESS=t("spaghetti_2d_thickness",-8,[1]),e.SPAGHETTI_3D_1=t("spaghetti_3d_1",-8,[1]),e.SPAGHETTI_3D_2=t("spaghetti_3d_2",-8,[1]),e.SPAGHETTI_3D_RARITY=t("spaghetti_3d_rarity",-8,[1]),e.SPAGHETTI_3D_THICKNESS=t("spaghetti_3d_thickness",-8,[1]),e.SPAGHETTI_ROUGHNESS=t("spaghetti_roughness",-8,[1]),e.SPAGHETTI_ROUGHNESS_MODULATOR=t("spaghetti_roughness_modulator",-8,[1]),e.CAVE_ENTRANCE=t("cave_entrance",-7,[.4,.5,1]),e.CAVE_LAYER=t("cave_layer",-8,[1]),e.CAVE_CHEESE=t("cave_cheese",-8,[.5,1,2,1,2,1,0,2,0]),e.NOODLE=t("noodle",-8,[1]),e.NOODLE_THICKNESS=t("noodle_thickness",-8,[1]),e.NOODLE_RIDGE_A=t("noodle_ridge_a",-7,[1]),e.NOODLE_RIDGE_B=t("noodle_ridge_b",-7,[1]),e.JAGGED=t("jagged",-16,[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]),e.SURFACE=t("surface",-6,[1,1,1]),e.SURFACE_SECONDARY=t("surface_secondary",-6,[1,1,0,1]);const i=new Map;e.instantiate=function(e,t){var n;const r=null==(n=t.key())?void 0:n.toString();if(!r)throw new Error("Cannot instantiate noise from direct holder");const o=e.seedKey(),a=i.get(r);if(a&&a[0]===o[0]&&a[1]===o[1])return a[2];const s=new og(e.fromHashOf(r),t.value());return i.set(r,[o[0],o[1],s]),s}}(_g||(_g={}));var wg,xg,Ng,kg,Ag,Cg,Og,Sg=Object.defineProperty,Eg=Object.defineProperties,Fg=Object.getOwnPropertyDescriptors,Dg=Object.getOwnPropertySymbols,Bg=Object.prototype.hasOwnProperty,Lg=Object.prototype.propertyIsEnumerable,Mg=(e,t,i)=>t in e?Sg(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,Tg=(e,t)=>{for(var i in t||(t={}))Bg.call(t,i)&&Mg(e,i,t[i]);if(Dg)for(var i of Dg(t))Lg.call(t,i)&&Mg(e,i,t[i]);return e};!function(e){const t=e=>Ef.parser(mg.DENSITY_FUNCTION,bg.fromJson)(e).value();e.fromJson=function(e){var i;const n=null!=(i=uf.readObject(e))?i:{};return{barrier:t(n.barrier),fluidLevelFloodedness:t(n.fluid_level_floodedness),fluidLevelSpread:t(n.fluid_level_spread),lava:t(n.lava),temperature:t(n.temperature),vegetation:t(n.vegetation),continents:t(n.continents),erosion:t(n.erosion),depth:t(n.depth),ridges:t(n.ridges),initialDensityWithoutJaggedness:t(n.initial_density_without_jaggedness),finalDensity:t(n.final_density),veinToggle:t(n.vein_toggle),veinRidged:t(n.vein_ridged),veinGap:t(n.vein_gap)}},e.create=function(e){return Tg({barrier:bg.Constant.ZERO,fluidLevelFloodedness:bg.Constant.ZERO,fluidLevelSpread:bg.Constant.ZERO,lava:bg.Constant.ZERO,temperature:bg.Constant.ZERO,vegetation:bg.Constant.ZERO,continents:bg.Constant.ZERO,erosion:bg.Constant.ZERO,depth:bg.Constant.ZERO,ridges:bg.Constant.ZERO,initialDensityWithoutJaggedness:bg.Constant.ZERO,finalDensity:bg.Constant.ZERO,veinToggle:bg.Constant.ZERO,veinRidged:bg.Constant.ZERO,veinGap:bg.Constant.ZERO},e)},e.withSettings=function(e,t,n,r=!1){const o=(r?new Gf(n):Jf.create(n)).forkPositional(),a=new i(o,t);return s=Tg({},a.mapAll(e)),c={aquiferPositionalRandomFactory:o.fromHashOf(ff.create("aquifer").toString()).forkPositional(),oreVeinsPositionalRandomFactory:o.fromHashOf(ff.create("ore").toString()).forkPositional()},Eg(s,Fg(c));var s,c};class i{constructor(e,t){this.random=e,this.settings=t,this.mapped=new Map}map(e){if(e instanceof bg.HolderHolder){const t=e.holder.key();if(void 0!==t&&this.mapped.has(t.toString()))return this.mapped.get(t.toString());{const i=e.holder.value().mapAll(this);return void 0!==t&&this.mapped.set(t.toString(),i),i}}if(e instanceof bg.Interpolated)return e.withCellSize(dg.cellWidth(this.settings),dg.cellHeight(this.settings));if(e instanceof bg.Noise)return new bg.Noise(e.xzScale,e.yScale,e.noiseData,_g.instantiate(this.random,e.noiseData));if(e instanceof bg.ShiftNoise)return e.withNewNoise(_g.instantiate(this.random,e.noiseData));if(e instanceof bg.ShiftedNoise){const t=_g.instantiate(this.random,e.noiseData);return new bg.ShiftedNoise(e.shiftX,e.shiftY,e.shiftZ,e.xzScale,e.yScale,e.noiseData,t)}return e instanceof bg.WeirdScaledSampler?new bg.WeirdScaledSampler(e.input,e.rarityValueMapper,e.noiseData,_g.instantiate(this.random,e.noiseData)):e instanceof bg.OldBlendedNoise?new bg.OldBlendedNoise(new ig(this.random.fromHashOf(ff.create("terrain").toString()),this.settings.sampling,dg.cellWidth(this.settings),dg.cellHeight(this.settings))):e instanceof bg.Mapped||e instanceof bg.Ap2?e.withMinMax():e instanceof bg.TerrainShaperSpline?new bg.TerrainShaperSpline(e.continentalness,e.erosion,e.weirdness,e.spline,e.min,e.max,this.settings.terrainShaper):e instanceof bg.Slide?new bg.Slide(e.input,this.settings):e}mapAll(e){return{barrier:e.barrier.mapAll(this),fluidLevelFloodedness:e.fluidLevelFloodedness.mapAll(this),fluidLevelSpread:e.fluidLevelSpread.mapAll(this),lava:e.lava.mapAll(this),temperature:e.temperature.mapAll(this),vegetation:e.vegetation.mapAll(this),continents:e.continents.mapAll(this),erosion:e.erosion.mapAll(this),depth:e.depth.mapAll(this),ridges:e.ridges.mapAll(this),initialDensityWithoutJaggedness:e.initialDensityWithoutJaggedness.mapAll(this),finalDensity:e.finalDensity.mapAll(this),veinToggle:e.veinToggle.mapAll(this),veinRidged:e.veinRidged.mapAll(this),veinGap:e.veinGap.mapAll(this)}}}e.Visitor=i,e.computePreliminarySurfaceLevelScanning=function(e,t,i,n){const r=dg.minCellY(e)+dg.cellCountY(e),o=dg.minCellY(e),a=dg.cellHeight(e);for(let s=r;s>=o;s-=1){const r=s*a,o=Lf(t.compute(bg.context(i,r,n)),-64,64);if(dg.applySlides(e,o,r)>=.390625)return r}return Number.MAX_SAFE_INTEGER}}(wg||(wg={}));class Rg{constructor(e,t,i,n,r,o,a,s,c){this.cellCountXZ=e,this.cellCountY=t,this.cellNoiseMinY=i,this.router=n,this.minX=r,this.minZ=o,this.settings=a,this.preliminarySurfaceLevel=new Map,this.cellWidth=dg.cellWidth(a),this.cellHeight=dg.cellHeight(a),this.firstCellX=Math.floor(r/this.cellWidth),this.firstCellZ=Math.floor(o/this.cellWidth),this.firstNoiseX=r>>2,this.firstNoiseZ=o>>2,this.noiseSizeXZ=e*this.cellWidth>>2,this.aquifer=fg.createDisabled(c);const l=this.router.finalDensity;this.materialRule=xg.fromList([e=>this.aquifer.compute(e,l.compute(e))]),this.initialDensityWithoutJaggedness=this.router.initialDensityWithoutJaggedness}getFinalState(e,t,i){return this.materialRule({x:e,y:t,z:i})}getPreliminarySurfaceLevel(e,t){return pf(this.preliminarySurfaceLevel,Sf.asLong(e,t),(()=>wg.computePreliminarySurfaceLevelScanning(this.settings,this.initialDensityWithoutJaggedness,e<<2,t<<2)))}getAquifer(){return this.aquifer}}(xg||(xg={})).fromList=function(e){return t=>{for(const i of e){const e=i(t);if(e)return e}}},(Ng||(Ng={})).fromJson=function(e){var t,i,n,r;const o=null!=(t=uf.readObject(e))?t:{};return void 0!==o.absolute?(s=null!=(i=uf.readNumber(o.absolute))?i:0,()=>s):void 0!==o.above_bottom?(a=null!=(n=uf.readNumber(o.above_bottom))?n:0,e=>e.minY+a):void 0!==o.below_top?function(e){return t=>t.maxY-e}(null!=(r=uf.readNumber(o.below_top))?r:0):()=>0;var a,s},(kg||(kg={})).create=function(e,t){return{minY:e,height:t,maxY:e+t-1}};class $g{constructor(e,t,i){this.rule=e,this.defaultBlock=t,this.random=Jf.create(i).forkPositional(),this.surfaceNoise=_g.instantiate(this.random,_g.SURFACE),this.surfaceSecondaryNoise=_g.instantiate(this.random,_g.SURFACE_SECONDARY),this.positionalRandoms=new Map}buildSurface(e,t,i,n){const r=Sf.minBlockX(e.pos),o=Sf.minBlockZ(e.pos),a=new jg(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=sf.create(t,i,n),u=e.getBlockState(o);if(u.equals(kf.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(sf.create(t,r,n));if(i.equals(kf.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 pf(this.positionalRandoms,e,(()=>this.random.fromHashOf(e)))}}class jg{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=hf((()=>this.system.getSurfaceSecondary(e,t))),this.minSurfaceLevel=hf((()=>this.calculateMinSurfaceLevel(e,t)))}updateY(e,t,i,n){this.blockY=n,this.stoneDepthAbove=e,this.stoneDepthBelow=t,this.waterHeight=i,this.biome=hf((()=>this.getBiome(sf.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(Tf((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=uf.readObject(r))?o:{};switch(null==(a=uf.readString(c.type))?void 0:a.replace(/^minecraft:/,"")){case"block":return t(kf.fromJson(c.result_state));case"sequence":return i(null!=(s=uf.readArray(c.sequence,e.fromJson))?s:[]);case"condition":return n(Cg.fromJson(c.if_true),e.fromJson(c.then_run))}return e.NOOP},e.block=t,e.sequence=i,e.condition=n}(Ag||(Ag={})),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:zf(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=zf(n.blockY,r,o,1,0);return a.nextFloat()<s}}function o(e,t,i){return n=>{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=uf.readObject(s))?c:{};switch(null==(l=uf.readString(y.type))?void 0:l.replace(/^minecraft:/,"")){case"above_preliminary_surface":return e=>e.blockY>=e.minSurfaceLevel();case"biome":return t(null!=(u=uf.readArray(y.biome_is,(e=>{var t;return null!=(t=uf.readString(e))?t:""})))?u:[]);case"not":return i(e.fromJson(y.invert));case"stone_depth":return n(null!=(d=uf.readInt(y.offset))?d:0,null!=(h=uf.readBoolean(y.add_surface_depth))&&h,null!=(p=uf.readInt(y.secondary_depth_range))?p:0,"ceiling"===uf.readString(y.surface_type));case"vertical_gradient":return r(null!=(m=uf.readString(y.random_name))?m:"",Ng.fromJson(y.true_at_and_below),Ng.fromJson(y.false_at_and_above));case"water":return o(null!=(f=uf.readInt(y.offset))?f:0,null!=(g=uf.readInt(y.surface_depth_multiplier))?g:0,null!=(_=uf.readBoolean(y.add_surface_depth))&&_);case"y_above":return a(Ng.fromJson(y.anchor),null!=(b=uf.readInt(y.surface_depth_multiplier))?b:0,null!=(v=uf.readBoolean(y.add_surface_depth))&&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}(Cg||(Cg={}));class Ig{constructor(e,t,i){this.biomeSource=t,this.settings=i,this.router=wg.withSettings(i.noiseRouter,i.noise,e,i.legacyRandomSource),this.noiseChunkCache=new Map,this.surfaceSystem=new $g(i.surfaceRule,i.defaultBlock,e);const n=new vg(-54,kf.LAVA),r=new vg(i.seaLevel,i.defaultFluid);this.globalFluidPicker=(e,t,o)=>t<Math.min(-54,i.seaLevel)?n:r}fill(e,t=!1){var i;const n=Math.max(e.minY,this.settings.noise.minY),r=Math.min(e.maxY,this.settings.noise.minY+this.settings.noise.height),o=dg.cellWidth(this.settings.noise),a=dg.cellHeight(this.settings.noise),s=Math.floor(16/o),c=Math.floor(n/a),l=Math.floor((r-n)/a),u=Sf.minBlockX(e.pos),d=Sf.minBlockZ(e.pos),h=this.getNoiseChunk(e);for(let p=0;p<s;p+=1)for(let n=0;n<(t?1:s);n+=1){let r=e.getOrCreateSection(e.sectionsCount-1);for(let s=l-1;s>=0;s-=1)for(let l=a-1;l>=0;l-=1){const m=(c+s)*a+l,f=15&m,g=e.getSectionIndex(m);e.getSectionIndex(r.minBlockY)!==g&&(r=e.getOrCreateSection(g));for(let e=0;e<o;e+=1){const a=u+p*o+e,s=15&a;for(let e=0;e<(t?1:o);e+=1){const t=d+n*o+e,c=15&t,l=null!=(i=h.getFinalState(a,m,t))?i:this.settings.defaultBlock;r.setBlockState(s,f,c,l)}}}}}buildSurface(e,t="minecraft:plains"){const i=this.getNoiseChunk(e),n=kg.create(this.settings.noise.minY,this.settings.noise.height);this.surfaceSystem.buildSurface(e,i,n,(()=>t))}getNoiseChunk(e){return pf(this.noiseChunkCache,Sf.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=dg.cellWidth(this.settings.noise),r=dg.cellHeight(this.settings.noise),o=Math.floor(16/n),a=Math.floor(t/r),s=Math.floor((i-t)/r),c=Sf.minBlockX(e.pos),l=Sf.minBlockZ(e.pos);return new Rg(o,s,a,this.router,c,l,this.settings.noise,this.settings.aquifersEnabled,this.globalFluidPicker)}))}}let Pg;(Og||(Og={})).fromJson=function(e){var t,i,n,r,o,a;const s=null!=(t=uf.readObject(e))?t:{};return{surfaceRule:Ag.fromJson(s.surface_rule),noise:dg.fromJson(s.noise),defaultBlock:kf.fromJson(s.default_block),defaultFluid:kf.fromJson(s.default_fluid),noiseRouter:wg.fromJson(s.noise_router),seaLevel:null!=(i=uf.readInt(s.sea_level))?i:0,disableMobGeneration:null!=(n=uf.readBoolean(s.disable_mob_generation))&&n,aquifersEnabled:null!=(r=uf.readBoolean(s.aquifers_enabled))&&r,oreVeinsEnabled:null!=(o=uf.readBoolean(s.ore_veins_enabled))&&o,legacyRandomSource:null!=(a=uf.readBoolean(s.legacy_random_source))&&a}};let zg=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});zg.decode();let Ug=null;function Wg(e,t){return zg.decode((null!==Ug&&Ug.buffer===Pg.memory.buffer||(Ug=new Uint8Array(Pg.memory.buffer)),Ug).subarray(e,e+t))}const Hg=new Uint32Array(2),qg=new BigInt64Array(Hg.buffer);let Vg=null;function Gg(){return null!==Vg&&Vg.buffer===Pg.memory.buffer||(Vg=new Int32Array(Pg.memory.buffer)),Vg}let Kg=null;function Xg(){return null!==Kg&&Kg.buffer===Pg.memory.buffer||(Kg=new Float64Array(Pg.memory.buffer)),Kg}let Jg=0;function Yg(e,t){const i=t(8*e.length);return Xg().set(e,i/8),Jg=e.length,i}let Zg=null;function Qg(e,t){const i=t(4*e.length);return(null!==Zg&&Zg.buffer===Pg.memory.buffer||(Zg=new Uint32Array(Pg.memory.buffer)),Zg).set(e,i/4),Jg=e.length,i}function e_(e,t,i,n,r,o,a,s,c,l,u,d,h,p){var m=Yg(e,Pg.__wbindgen_malloc),f=Jg,g=Yg(t,Pg.__wbindgen_malloc),_=Jg,b=Yg(i,Pg.__wbindgen_malloc),v=Jg,y=Yg(n,Pg.__wbindgen_malloc),w=Jg,x=Yg(r,Pg.__wbindgen_malloc),N=Jg,k=Yg(o,Pg.__wbindgen_malloc),A=Jg,C=Yg(a,Pg.__wbindgen_malloc),O=Jg,S=Yg(s,Pg.__wbindgen_malloc),E=Jg,F=Yg(c,Pg.__wbindgen_malloc),D=Jg,B=Yg(l,Pg.__wbindgen_malloc),L=Jg,M=Yg(u,Pg.__wbindgen_malloc),T=Jg,R=Yg(d,Pg.__wbindgen_malloc),$=Jg,j=Yg(h,Pg.__wbindgen_malloc),I=Jg,P=Qg(p,Pg.__wbindgen_malloc),z=Jg,U=Pg.biome_parameters(m,f,g,_,b,v,y,w,x,N,k,A,C,O,S,E,F,D,B,L,M,T,R,$,j,I,P,z);return o_.__wrap(U)}function t_(e,t,i,n,r,o,a,s,c,l,u,d,h){qg[0]=e;const p=Hg[0],m=Hg[1];var f=Yg(i,Pg.__wbindgen_malloc),g=Jg,_=Yg(r,Pg.__wbindgen_malloc),b=Jg,v=Yg(a,Pg.__wbindgen_malloc),y=Jg,w=Yg(c,Pg.__wbindgen_malloc),x=Jg,N=Yg(u,Pg.__wbindgen_malloc),k=Jg,A=Yg(h,Pg.__wbindgen_malloc),C=Jg,O=Pg.climate_sampler(p,m,t,f,g,n,_,b,o,v,y,s,w,x,l,N,k,d,A,C);return a_.__wrap(O)}function i_(e,t){if(!(e instanceof t))throw new Error(`expected instance of ${t.name}`);return e.ptr}function n_(e,t,i,n,r,o,a,s,c,l,u){try{const m=Pg.__wbindgen_add_to_stack_pointer(-16);i_(e,o_),i_(t,a_),Pg.multi_noise(m,e.ptr,t.ptr,i,n,r,o,a,s,c,l,u);var d=Gg()[m/4+0],h=Gg()[m/4+1],p=function(e,t){return Gg().subarray(e/4,e/4+t)}(d,h).slice();return Pg.__wbindgen_free(d,4*h),p}finally{Pg.__wbindgen_add_to_stack_pointer(16)}}function r_(e,t,i,n,r,o,a,s,c,l){try{const p=Pg.__wbindgen_add_to_stack_pointer(-16);i_(e,a_),Pg.climate_noise(p,e.ptr,t,i,n,r,o,a,s,c,l);var u=Gg()[p/4+0],d=Gg()[p/4+1],h=function(e,t){return Xg().subarray(e/8,e/8+t)}(u,d).slice();return Pg.__wbindgen_free(u,8*d),h}finally{Pg.__wbindgen_add_to_stack_pointer(16)}}class o_{static __wrap(e){const t=Object.create(o_.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();Pg.__wbg_parameterlist_free(e)}}class a_{static __wrap(e){const t=Object.create(a_.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();Pg.__wbg_sampler_free(e)}}async function s_(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(Wg(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 Pg=i.exports,s_.__wbindgen_wasm_module=n,Pg}var c_,l_="/assets/deepslate_rs_bg.4990c219.wasm";!function(e){e.UP="up",e.DOWN="down",e.NORTH="north",e.EAST="east",e.SOUTH="south",e.WEST="west"}(c_||(c_={}));const u_={[c_.UP]:[0,1,0],[c_.DOWN]:[0,-1,0],[c_.NORTH]:[0,0,-1],[c_.EAST]:[1,0,0],[c_.SOUTH]:[0,0,1],[c_.WEST]:[-1,0,0]};var d_,h_,p_,m_,f_,g_,__,b_,v_,y_,w_,x_,N_,k_,A_,C_,O_,S_,E_,F_;function D_(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 u_[e]}}(c_||(c_={})),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,...c_.normal(i))}}(d_||(d_={})),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}}(h_||(h_={}));class B_{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=D_(e.value,"Name","string"),i=function(e,t){try{return e()}catch(i){return t}}((()=>D_(e.value,"Properties","compound")),{}),n=Object.keys(i).reduce(((e,t)=>Object.assign(Object.assign({},e),{[t]:D_(i,t,"string")})),{});return new B_(t,n)}static fromJson(e){var t,i;const n=null!==(t=h_.readObject(e))&&void 0!==t?t:{},r=null!==(i=h_.readString(n.Name))&&void 0!==i?i:"minecraft:stone",o=h_.readMap(n.Properties,(e=>{var t;return null!==(t=h_.readString(e))&&void 0!==t?t:""}));return new B_(r,o)}}function L_(e){let t=null;return()=>(null==t&&(t=e()),t)}function M_(e,t,i){const n=e.get(t);if(n)return n;const r=i(t);return e.set(t,r),r}function T_(e){return e*e}function R_(e,t,i){return Math.max(t,Math.min(i,e))}function $_(e,t,i){return t+e*(i-t)}function j_(e,t,i,n,r,o){return $_(t,$_(e,i,n),$_(e,r,o))}function I_(e,t,i){return i<0?e:i>1?t:$_(i,e,t)}function P_(e,t,i){return(e-t)/(i-t)}function z_(e){return e*e*e*(e*(6*e-15)+10)}function U_(e,t,i,n,r){return $_(P_(e,t,i),n,r)}function W_(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 H_(e,t,i,n,r,o,a,s){return BigInt(e)<<BigInt(56)|BigInt(t)<<BigInt(48)|BigInt(i)<<BigInt(40)|BigInt(n)<<BigInt(32)|BigInt(r)<<BigInt(24)|BigInt(o)<<BigInt(16)|BigInt(a)<<BigInt(8)|BigInt(s)}B_.AIR=new B_("minecraft:air"),function(e){function t(e,t){return BigInt(4294967295&e)|BigInt(4294967295&t)<<BigInt(32)}e.create=function(e,t){return[e,t]},e.fromBlockPos=function(e){return[e[0]>>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)}}(p_||(p_={}));class q_{constructor(e){this.seed=BigInt(0),this.setSeed(e)}fork(){return new q_(this.nextLong())}forkPositional(){return new V_(this.seed)}setSeed(e){this.seed=e^q_.MULTIPLIER&q_.MODULUS_MASK}advance(){this.seed=this.seed*q_.MULTIPLIER+q_.INCREMENT&q_.MODULUS_MASK}consume(e){for(let t=0;t<e;t+=1)this.advance()}next(e){this.advance();const t=Number(this.seed>>BigInt(q_.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(32))+BigInt(this.next(32))}nextFloat(){return this.next(24)*q_.FLOAT_MULTIPLIER}nextDouble(){const e=this.next(30);return this.advance(),e*q_.DOUBLE_MULTIPLIER}}q_.MODULUS_BITS=48,q_.MODULUS_MASK=BigInt("281474976710655"),q_.MULTIPLIER=BigInt("25214903917"),q_.INCREMENT=BigInt("11"),q_.FLOAT_MULTIPLIER=1/Math.pow(2,24),q_.DOUBLE_MULTIPLIER=1/Math.pow(2,30);class V_{constructor(e){this.seed=e}at(e,t,i){const n=W_(e,t,i);return new q_(n^this.seed)}fromHashOf(e){const t=of(e,{asBytes:!0}),i=H_(t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]);return new q_(i^this.seed)}}class G_{constructor(e){this.seed=[BigInt(0),BigInt(0)],this.seed=e}static create(e){return new G_(G_.upgradeSeedTo128bit(e))}static mixStafford13(e){return((e=((e=(e^e>>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^G_.SILVER_RATIO_64,i=t+G_.GOLDEN_RATIO_64&BigInt("0xFFFFFFFFFFFFFFFF");return[G_.mixStafford13(t),G_.mixStafford13(i)]}static rotateLeft(e,t){return e<<t&BigInt("0xFFFFFFFFFFFFFFFF")|e>>BigInt(64)-t}setSeed(e){this.seed=G_.upgradeSeedTo128bit(e)}fork(){return new G_([this.next(),this.next()])}forkPositional(){return new K_(this.next(),this.next())}next(){const e=this.seed[0];let t=this.seed[1];const i=G_.rotateLeft(e+t&BigInt("0xFFFFFFFFFFFFFFFF"),BigInt(17))+e&BigInt("0xFFFFFFFFFFFFFFFF");return t^=e,this.seed=[G_.rotateLeft(e,BigInt(49))^t^t<<BigInt(21)&BigInt("0xFFFFFFFFFFFFFFFF"),G_.rotateLeft(t,BigInt(28))],i}nextLong(){let e=this.next();return e>BigInt("0x8000000000000000")&&(e-=BigInt("0x10000000000000000")),e}consume(e){let t=this.seed[0],i=this.seed[1];for(let n=0;n<e;n+=1)i^=t,t=G_.rotateLeft(t,BigInt(49))^i^i<<BigInt(21),i=G_.rotateLeft(i,BigInt(28));this.seed=[t,i]}nextBits(e){return this.next()>>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<i){const e=((~i&BigInt(4294967295))+BigInt(1))%i;for(;r<e;)t=this.next()&BigInt(4294967295),n=t*i,r=n&BigInt(4294967295)}const o=n>>BigInt(32);return Number(o)}{let e=Number(t);return e>=2147483648&&(e-=4294967296),e}}nextFloat(){return Number(this.nextBits(24))*G_.FLOAT_MULTIPLIER}nextDouble(){return Number(this.nextBits(53))*G_.DOUBLE_MULTIPLIER}parityConfigString(){return"seedLo: "+this.seed[0]+", seedHi: "+this.seed[1]}}G_.SILVER_RATIO_64=BigInt("7640891576956012809"),G_.GOLDEN_RATIO_64=BigInt("-7046029254386353131"),G_.FLOAT_MULTIPLIER=1/Math.pow(2,24),G_.DOUBLE_MULTIPLIER=11102230246251565e-32;class K_{constructor(e,t){this.seedLo=e,this.seedHi=t}at(e,t,i){const n=W_(e,t,i)^this.seedLo;return new G_([n,this.seedHi])}fromHashOf(e){const t=of(e,{asBytes:!0}),i=H_(t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),n=H_(t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15]);return new G_([i^this.seedLo,n^this.seedHi])}}class X_{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)*X_.F2,a=Math.floor(e+o),s=e-(a-(i=(a+(n=Math.floor(t+o)))*X_.G2));let c,l;s>(r=t-(n-i))?(c=1,l=0):(c=0,l=1);const u=s-c+X_.G2,d=r-l+X_.G2,h=s-1+2*X_.G2,p=r-1+2*X_.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):l<u?(d=0,h=0,p=1,m=0,f=1,g=1):c<u?(d=0,h=1,p=0,m=0,f=1,g=1):(d=0,h=1,p=0,m=1,f=1,g=0);const _=c-d+.16666666666666666,b=l-h+.16666666666666666,v=u-p+.16666666666666666,y=c-m+.3333333333333333,w=l-f+.3333333333333333,x=u-g+.3333333333333333,N=c-.5,k=l-.5,A=u-.5,C=255&r,O=255&o,S=255&a,E=this.P(C+this.P(O+this.P(S)))%12,F=this.P(C+d+this.P(O+h+this.P(S+p)))%12,D=this.P(C+m+this.P(O+f+this.P(S+g)))%12,B=this.P(C+1+this.P(O+1+this.P(S+1)))%12;return 32*(this.getCornerNoise3D(E,c,l,u,.6)+this.getCornerNoise3D(F,_,b,v,.6)+this.getCornerNoise3D(D,y,w,x,.6)+this.getCornerNoise3D(B,N,k,A,.6))}P(e){return this.p[255&e]}getCornerNoise3D(e,t,i,n,r){let o,a=r-t*t-i*i-n*n;return a<0?o=0:(a*=a,o=a*a*X_.gradDot(e,t,i,n)),o}static gradDot(e,t,i,n){const r=X_.GRADIENT[15&e];return r[0]*t+r[1]*i+r[2]*n}}X_.GRADIENT=[[1,1,0],[-1,1,0],[1,-1,0],[-1,-1,0],[1,0,1],[-1,0,1],[1,0,-1],[-1,0,-1],[0,1,1],[0,-1,1],[0,1,-1],[0,-1,-1],[1,1,0],[0,-1,1],[-1,1,0],[0,-1,-1]],X_.F2=.5*(Math.sqrt(3)-1),X_.G2=(3-Math.sqrt(3))/6;class J_{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>127?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<h?r:h;m=Math.floor(e/n+1e-7)*n}return this.sampleAndLerp(c,l,u,d,h-m,p,h)}sampleAndLerp(e,t,i,n,r,o,a){const s=this.P(e),c=this.P(e+1),l=this.P(s+t),u=this.P(s+t+1),d=this.P(c+t),h=this.P(c+t+1),p=X_.gradDot(this.P(l+i),n,r,o),m=X_.gradDot(this.P(d+i),n-1,r,o),f=X_.gradDot(this.P(u+i),n,r-1,o),g=X_.gradDot(this.P(h+i),n-1,r-1,o),_=X_.gradDot(this.P(l+i+1),n,r,o-1),b=X_.gradDot(this.P(d+i+1),n-1,r,o-1),v=X_.gradDot(this.P(u+i+1),n,r-1,o-1),y=X_.gradDot(this.P(h+i+1),n-1,r-1,o-1);return function(e,t,i,n,r,o,a,s,c,l,u){return $_(i,j_(e,t,n,r,o,a),j_(e,t,s,c,l,u))}(z_(n),z_(a),z_(o),p,m,f,g,_,b,v,y)}P(e){return 255&this.p[255&e]}}class Y_{constructor(e,t,i){if(e instanceof G_){const n=e.forkPositional();this.noiseLevels=Array(i.length);for(let e=0;e<i.length;e++)if(0!==i[e]){const i=t+e;this.noiseLevels[e]=new J_(n.fromHashOf("octave_"+i))}}else{if(1-t<i.length)throw new Error("Positive octaves are not allowed when using LegacyRandom");this.noiseLevels=Array(i.length);for(let n=-t;n>=0;n-=1)n<i.length&&0!==i[n]?this.noiseLevels[n]=new J_(e):e.consume(262)}this.amplitudes=i,this.lowestFreqInputFactor=Math.pow(2,t),this.lowestFreqValueFactor=Math.pow(2,i.length-1)/(Math.pow(2,i.length)-1)}sample(e,t,i,n=0,r=0,o=!1){let a=0,s=this.lowestFreqInputFactor,c=this.lowestFreqValueFactor;for(let l=0;l<this.noiseLevels.length;l+=1){const u=this.noiseLevels[l];u&&(a+=this.amplitudes[l]*c*u.sample(Y_.wrap(e*s),o?-u.yo:Y_.wrap(t*s),Y_.wrap(i*s),n*s,r*s)),s*=2,c/=2}return a}getOctaveNoise(e){return this.noiseLevels[this.noiseLevels.length-1-e]}static wrap(e){return e-33554432*Math.floor(e/33554432+.5)}}class Z_{constructor(e,t,i,n){this.cellWidth=i,this.cellHeight=n,this.minLimitNoise=new Y_(e,-15,[1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0]),this.maxLimitNoise=new Y_(e,-15,[1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0]),this.mainNoise=new Y_(e,-7,[1,1,1,1,1,0,0,0]),this.xzScale=684.412*t.xzScale,this.yScale=684.412*t.yScale,this.xzMainScale=this.xzScale/t.xzFactor,this.yMainScale=this.yScale/t.yFactor}sample(e,t,i){let n;e=Math.floor(e/this.cellWidth),t=Math.floor(t/this.cellHeight),i=Math.floor(i/this.cellWidth);let r=0,o=1;for(let c=0;c<8;c+=1){if(n=this.mainNoise.getOctaveNoise(c),n){const a=this.xzMainScale*o,s=this.yMainScale*o,c=Y_.wrap(e*a),l=Y_.wrap(t*s),u=Y_.wrap(i*a);r+=n.sample(c,l,u,s,t*s)/o}o/=2}r=(r/10+1)/2,o=1;let a=0,s=0;for(let c=0;c<16;c+=1){const l=this.xzScale*o,u=this.yScale*o,d=Y_.wrap(e*l),h=Y_.wrap(t*u),p=Y_.wrap(i*l);r<1&&(n=this.minLimitNoise.getOctaveNoise(c))&&(a+=n.sample(d,h,p,u,t*u)/o),r>0&&(n=this.maxLimitNoise.getOctaveNoise(c))&&(s+=n.sample(d,h,p,u,t*u)/o),o/=2}return I_(a/512,s/512,r)/128}}(m_||(m_={})).fromJson=function(e){var t,i,n,r,o;const a=null!==(t=h_.readObject(e))&&void 0!==t?t:{};return{xzScale:null!==(i=h_.readNumber(a.xz_scale))&&void 0!==i?i:1,yScale:null!==(n=h_.readNumber(a.y_scale))&&void 0!==n?n:1,xzFactor:null!==(r=h_.readNumber(a.xz_factor))&&void 0!==r?r:80,yFactor:null!==(o=h_.readNumber(a.y_factor))&&void 0!==o?o:80}};class Q_{constructor(e,{firstOctave:t,amplitudes:i}){this.first=new Y_(e,t,i),this.second=new Y_(e,t,i);let n=1/0,r=-1/0;for(let a=0;a<i.length;a+=1)0!==i[a]&&(n=Math.min(n,a),r=Math.max(r,a));const o=.1*(1+1/(r-n+1));this.valueFactor=1/6/o}sample(e,t,i){const n=e*Q_.INPUT_FACTOR,r=t*Q_.INPUT_FACTOR,o=i*Q_.INPUT_FACTOR;return(this.first.sample(e,t,i)+this.second.sample(n,r,o))*this.valueFactor}}Q_.INPUT_FACTOR=1.0181268882175227,function(e){e.create=function(e,t){return{firstOctave:e,amplitudes:t}},e.fromJson=function(e){var t,i,n;const r=null!==(t=h_.readObject(e))&&void 0!==t?t:{};return{firstOctave:null!==(i=h_.readInt(r.firstOctave))&&void 0!==i?i:0,amplitudes:null!==(n=h_.readArray(r.amplitudes,(e=>{var t;return null!==(t=h_.readNumber(e))&&void 0!==t?t:0})))&&void 0!==n?n:[]}}}(f_||(f_={})),function(e){e.fromJson=function(t,i){var n,r,o,a;if("number"==typeof t)return new eb(t);const s=null!==(n=h_.readObject(t))&&void 0!==n?n:{},c=new tb(i(s.coordinate)),l=null!==(r=h_.readArray(s.points,(e=>{var t;return null!==(t=h_.readObject(e))&&void 0!==t?t:{}})))&&void 0!==r?r:[];if(0===l.length)return new eb(0);for(const u of l){const t=null!==(o=h_.readNumber(u.location))&&void 0!==o?o:0,n=e.fromJson(u.value,i),r=null!==(a=h_.readNumber(u.derivative))&&void 0!==a?a:0;c.addPoint(t,n,r)}return c}}(g_||(g_={}));class eb{constructor(e){this.value=e}apply(){return this.value}toJson(){return this.value}}class tb{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<this.locations[e]))-1,n=this.locations.length-1;if(i<0)return this.values[0].apply(e)+this.derivatives[0]*(t-this.locations[0]);if(i===n)return this.values[n].apply(e)+this.derivatives[n]*(t-this.locations[n]);const r=this.locations[i],o=this.locations[i+1],a=this.derivatives[i],s=this.derivatives[i+1],c=(t-r)/(o-r),l=this.values[i].apply(e),u=this.values[i+1].apply(e),d=a*(o-r)-(u-l),h=-s*(o-r)+(u-l);return $_(c,l,u)+c*(1-c)*$_(c,d,h)}addPoint(e,t,i=0){return this.locations.push(e),this.values.push("number"==typeof t?new eb(t):t),this.derivatives.push(i),this}toJson(){return{coordinate:this.coordinate.toJson(),points:this.locations.map(((e,t)=>({location:e,value:this.values[t].toJson(),derivative:this.derivatives[t]})))}}}(__||(__={})).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=h_.readArray(e,(e=>h_.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 T_(this.temperature.distance(e.temperature))+T_(this.humidity.distance(e.humidity))+T_(this.continentalness.distance(e.continentalness))+T_(this.erosion.distance(e.erosion))+T_(this.depth.distance(e.depth))+T_(this.weirdness.distance(e.weirdness))+T_(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=h_.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=h_.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.length<n||(t.push(new s(i)),i=[]);return 0!==i.length&&t.push(new s(i)),t}static area(e){let t=0;for(const i of e)t+=Math.abs(i.max-i.min);return t}search(e,t){return this.root.search(e.toArray(),t).thing()}}o.CHILDREN_PER_NODE=10,e.RTree=o;class a{constructor(e){this.space=e}distance(e){let t=0;for(let i=0;i<7;i+=1)t+=T_(this.space[i].distance(e[i]));return t}}e.RNode=a;class s extends a{constructor(e){super(s.buildSpace(e)),this.children=e}static buildSpace(e){let t=[...Array(7)].map((()=>new 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}(b_||(b_={}));class ib{constructor(e){this.biome=e}getBiome(){return this.biome}static fromJson(e){var t,i;const n=null!==(t=h_.readObject(e))&&void 0!==t?t:{},r=null!==(i=h_.readString(n.biome))&&void 0!==i?i:"minecraft:the_void";return new ib(r)}}class nb{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=h_.readObject(e))&&void 0!==t?t:{};return new nb(g_.fromJson(i.offset,this.EXTRACTOR),g_.fromJson(i.factor,this.EXTRACTOR),g_.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)+nb.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 tb(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 tb(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 tb(this.CONTINENTS).addPoint(.11,0).addPoint(.03,this.buildErosionJaggednessSpline(1,.5,0,0)).addPoint(.65,this.buildErosionJaggednessSpline(1,1,1,0));return new nb(r,o,a)}static getErosionFactor(e,t){const i=new tb(this.WEIRDNESS).addPoint(-.2,6.3).addPoint(.2,e),n=new tb(this.EROSION).addPoint(-.6,i).addPoint(-.5,new tb(this.WEIRDNESS).addPoint(-.05,6.3).addPoint(.05,2.67)).addPoint(-.35,i).addPoint(-.25,i).addPoint(-.1,new tb(this.WEIRDNESS).addPoint(-.05,2.67).addPoint(.05,6.3)).addPoint(.03,i);if(t){const t=new tb(this.WEIRDNESS).addPoint(0,e).addPoint(.1,.625),i=new tb(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 tb(this.RIDGES).addPoint(-.7,i).addPoint(-.15,1.37),r=new tb(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($_(n,.6,1.5),s),l=this.buildMountainRidgeSplineWithPoints($_(n,.6,1),s),u=this.buildMountainRidgeSplineWithPoints(n,s),d=this.ridgeSpline(e-.15,.5*n,$_(.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 tb(this.RIDGES).addPoint(-1,e).addPoint(-.4,p).addPoint(0,i+.07),g=this.ridgeSpline(-.02,o,o,t,i,0),_=new tb(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 tb(this.RIDGES),n=this.mountainContinentalness(-1,e,-.7),r=this.mountainContinentalness(1,e,-.7),o=this.calculateMountainRidgeZeroContinentalnessPoint(e);if(-.65<o&&o<1){const t=this.mountainContinentalness(-.65,e,-.7),a=this.mountainContinentalness(-.75,e,-.7),s=this.calculateSlope(n,a,-1,-.75);i.addPoint(-1,n,s),i.addPoint(-.75,a),i.addPoint(-.65,t);const c=this.mountainContinentalness(o,e,-.7),l=this.calculateSlope(c,r,o,1);i.addPoint(o-.01,c),i.addPoint(o,c,l),i.addPoint(1,r,l)}else{const e=this.calculateSlope(n,r,-1,1);t?(i.addPoint(-1,Math.max(.2,n)),i.addPoint(0,$_(.5,n,r),e)):i.addPoint(-1,n,e),i.addPoint(1,r,e)}return i}static mountainContinentalness(e,t,i){const n=.46082947*(e+1.17)*(1-.5*(1-t))-.5*(1-t);return e<i?Math.max(n,-.2222):Math.max(n,0)}static calculateMountainRidgeZeroContinentalnessPoint(e){return.5*(1-e)/(.46082947*(1-.5*(1-e)))-1.17}static calculateSlope(e,t,i,n){return(t-e)/(n-i)}static ridgeSpline(e,t,i,n,r,o){const a=Math.max(.5*(t-e),o),s=5*(i-t);return new tb(this.RIDGES).addPoint(-1,e,a).addPoint(-.4,t,Math.min(a,s)).addPoint(0,i,s).addPoint(.4,n,2*(n-i)).addPoint(1,r,.7*(r-n))}static buildErosionJaggednessSpline(e,t,i,n){const r=this.buildRidgeJaggednessSpline(e,i),o=this.buildRidgeJaggednessSpline(t,n);return new tb(this.EROSION).addPoint(-1,r).addPoint(-.78,o).addPoint(-.5775,o).addPoint(-.375,0)}static buildRidgeJaggednessSpline(e,t){const i=nb.peaksAndValleys(.4),n=(i+nb.peaksAndValleys(.56666666))/2;return new tb(this.RIDGES).addPoint(i,0).addPoint(n,t>0?this.buildWeirdnessJaggednessSpline(t):0).addPoint(1,e>0?this.buildWeirdnessJaggednessSpline(e):0)}static buildWeirdnessJaggednessSpline(e){return new tb(nb.WEIRDNESS).addPoint(-.01,.63*e).addPoint(.01,.3*e)}}nb.GLOBAL_OFFSET=-.50375,nb.EXTRACTOR=e=>{var t;const i=null!==(t=h_.readString(e))&&void 0!==t?t:"continents";return nb.extractor(i)},nb.CONTINENTS=nb.extractor("continents"),nb.EROSION=nb.extractor("erosion"),nb.WEIRDNESS=nb.extractor("weirdness"),nb.RIDGES=nb.extractor("ridges"),(v_||(v_={})).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=h_.readObject(e))&&void 0!==t?t:{};return{minY:null!==(i=h_.readInt(l.min_y))&&void 0!==i?i:0,height:null!==(n=h_.readInt(l.height))&&void 0!==n?n:256,xzSize:null!==(r=h_.readInt(l.size_horizontal))&&void 0!==r?r:1,ySize:null!==(o=h_.readInt(l.size_vertical))&&void 0!==o?o:1,sampling:m_.fromJson(l.sampling),topSlide:w_.fromJson(l.top_slide),bottomSlide:w_.fromJson(l.bottom_slide),terrainShaper:nb.fromJson(l.terrain_shaper),islandNoiseOverride:null!==(a=h_.readBoolean(l.island_noise_override))&&void 0!==a&&a,isAmplified:null!==(s=h_.readBoolean(l.amplified))&&void 0!==s&&s,hasLargeBiomes:null!==(c=h_.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))}}(y_||(y_={})),function(e){e.fromJson=function(e){var t,i,n,r;const o=null!==(t=h_.readObject(e))&&void 0!==t?t:{};return{target:null!==(i=h_.readNumber(o.target))&&void 0!==i?i:0,size:null!==(n=h_.readInt(o.size))&&void 0!==n?n:0,offset:null!==(r=h_.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 I_(e.target,t,n)}}(w_||(w_={}));class rb{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=rb.allocateSlice(e.cellCountY,e.cellCountXZ),this.slice1=rb.allocateSlice(e.cellCountY,e.cellCountXZ)}static allocateSlice(e,t){const i=Array(t+1);for(let n=0;n<t+1;n+=1)i[n]=Array(e+1);return i}initializeForFirstCellX(){this.fillSlice(this.slice0,this.chunk.firstCellX)}advanceCellX(e){this.fillSlice(this.slice1,this.chunk.firstCellX+e+1)}fillSlice(e,t){const i=y_.cellWidth(this.chunk.settings.noise),n=y_.cellHeight(this.chunk.settings.noise),r=t*i;for(let o=0;o<this.chunk.cellCountXZ+1;o+=1){const t=(this.chunk.firstCellZ+o)*i;for(let i=0;i<this.chunk.cellCountY+1;i+=1){const a=(this.chunk.cellCountNoiseMinY+i)*n;e[o][i]=this.filler(r,a,t)}}}selectCellYZ(e,t){this.noise000=this.slice0[t][e],this.noise001=this.slice0[t+1][e],this.noise100=this.slice1[t][e],this.noise101=this.slice1[t+1][e],this.noise010=this.slice0[t][e+1],this.noise011=this.slice0[t+1][e+1],this.noise110=this.slice1[t][e+1],this.noise111=this.slice1[t+1][e+1]}updateForY(e){this.valueXZ00=$_(e,this.noise000,this.noise010),this.valueXZ10=$_(e,this.noise100,this.noise110),this.valueXZ01=$_(e,this.noise001,this.noise011),this.valueXZ11=$_(e,this.noise101,this.noise111)}updateForX(e){this.valueZ0=$_(e,this.valueXZ00,this.valueXZ10),this.valueZ1=$_(e,this.valueXZ01,this.valueXZ11)}updateForZ(e){this.value=$_(e,this.valueZ0,this.valueZ1)}sample(){return this.value}swapSlices(){[this.slice0,this.slice1]=[this.slice1,this.slice0]}}class ob{constructor(e,t,i,n,r,o,a,s){this.cellCountXZ=e,this.cellCountY=t,this.cellCountNoiseMinY=i,this.sampler=n,this.settings=s;const c=y_.cellWidth(s.noise);this.firstCellX=Math.floor(r/c),this.firstCellZ=Math.floor(o/c),this.firstNoiseX=r>>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 M_(this.preliminarySurfaceLevel,p_.asLong(e,t),(()=>{const i=e-this.firstNoiseX,n=t-this.firstNoiseZ,r=this.noiseData.length,o=i>=0&&n>=0&&i<r&&n<r?this.noiseData[i][n].terrainInfo:this.sampler.noiseData(e,t).terrainInfo;return this.sampler.getPreliminarySurfaceLevel(e<<2,t<<2,o)}))}createNoiseInterpolator(e){const t=new rb(this,e);return this.interpolators.push(t),t.sample.bind(t)}initializeForFirstCellX(){this.interpolators.forEach((e=>e.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)}}(x_||(x_={})).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}`},f_.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 Q_(e.fromHashOf(t.name),t)}}(N_||(N_={}));class ab{constructor(e,t,i,n=!1){this.settings=e,this.isNoiseCavesEnabled=t;const r=e.hasLargeBiomes,o=(n?new q_(i):G_.create(i)).forkPositional();n?(this.blendedNoise=new Z_(new q_(i),e.sampling,y_.cellWidth(e),y_.cellHeight(e)),this.temperatureNoise=new Q_(new q_(i),f_.create(-7,[1,1])),this.humidityNoise=new Q_(new q_(i+BigInt(1)),f_.create(-7,[1,1])),this.offsetNoise=new Q_(new q_(i+BigInt(5)),f_.create(0,[0]))):(this.blendedNoise=new Z_(o.fromHashOf("minecraft:terrain"),e.sampling,y_.cellWidth(e),y_.cellHeight(e)),this.temperatureNoise=N_.instantiate(o,r?N_.TEMPERATURE_LARGE:N_.TEMPERATURE),this.humidityNoise=N_.instantiate(o,r?N_.VEGETATION_LARGE:N_.VEGETATION),this.offsetNoise=N_.instantiate(o,N_.SHIFT)),this.continentalnessNoise=N_.instantiate(o,r?N_.CONTINENTALNESS_LARGE:N_.CONTINENTALNESS),this.erosionNoise=N_.instantiate(o,r?N_.EROSION_LARGE:N_.EROSION),this.weirdnessNoise=N_.instantiate(o,N_.RIDGE),this.pillarNoise=N_.instantiate(o,N_.PILLAR),this.pillarRarenessModulator=N_.instantiate(o,N_.PILLAR_RARENESS),this.pillarThicknessModulator=N_.instantiate(o,N_.PILLAR_THICKNESS),this.spaghetti2DNoise=N_.instantiate(o,N_.SPAGHETTI_2D),this.spaghetti2DElevationModulator=N_.instantiate(o,N_.SPAGHETTI_2D_ELEVATION),this.spaghetti2DRarityModulator=N_.instantiate(o,N_.SPAGHETTI_2D_MODULATOR),this.spaghetti2DThicknessModulator=N_.instantiate(o,N_.SPAGHETTI_2D_THICKNESS),this.spaghetti3DNoise1=N_.instantiate(o,N_.SPAGHETTI_3D_1),this.spaghetti3DNoise2=N_.instantiate(o,N_.SPAGHETTI_3D_2),this.spaghetti3DRarityModulator=N_.instantiate(o,N_.SPAGHETTI_3D_RARITY),this.spaghetti3DThicknessModulator=N_.instantiate(o,N_.SPAGHETTI_3D_THICKNESS),this.spaghettiRoughnessNoise=N_.instantiate(o,N_.SPAGHETTI_ROUGHNESS),this.spaghettiRoughnessModulator=N_.instantiate(o,N_.SPAGHETTI_ROUGHNESS_MODULATOR),this.bigEntranceNoise=N_.instantiate(o,N_.CAVE_ENTRANCE),this.layerNoise=N_.instantiate(o,N_.CAVE_LAYER),this.cheeseNoise=N_.instantiate(o,N_.CAVE_CHEESE);const a=e.minY+4,s=a+e.height;this.noodleToggleNoise=this.yLimitedInterpolatable(N_.instantiate(o,N_.NOODLE),a,s,-1,1),this.noodleThicknessNoise=this.yLimitedInterpolatable(N_.instantiate(o,N_.NOODLE_THICKNESS),a,s,0,1),this.noodleRidgeANoise=this.yLimitedInterpolatable(N_.instantiate(o,N_.NOODLE_RIDGE_A),a,s,0,8/3),this.noodleRidgeBNoise=this.yLimitedInterpolatable(N_.instantiate(o,N_.NOODLE_RIDGE_B),a,s,0,8/3),this.jaggedNoise=N_.instantiate(o,N_.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||a<t?n:e.sample(o*r,a*r,s*r);return e=>e.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 k_.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 b_.target(s,c,n.continentalness,n.erosion,l,n.weirdness)}terrainInfo(e,t,i){const n=nb.point(e,t,i),r=this.shaper.offset(n),o=this.shaper.factor(n),a=this.shaper.jaggedness(n);return x_.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=R_(.64*l,-1,1),l=l/2-l*l*l/24,r()>=0){const e=function(e,t,i,n,r){return I_(n,r,P_(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:B_.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+I_(.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=R_(r,s,c),R_(r=this.applySlide(r,t/y_.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+I_(.3,0,(t+10)/40)}getSpaghettiRoughness(e,t,i){const n=this.spaghettiRoughnessNoise.sample(e,t,i),r=U_(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=U_(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=y_.minCellY(this.settings),c=U_(this.spaghetti2DElevationModulator.sample(e,0,i),-1,1,s,8),l=Math.abs(c-t/8)-1*r;return R_(Math.max(l,a),-1,1)}getSpaghetti3D(e,t,i){const n=this.quantizeSpaghettiRarity3D(this.spaghetti3DRarityModulator.sample(2*e,t,2*i)),r=U_(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 R_(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*T_(this.layerNoise.sample(e,8*t,i))}getCheese(e,t,i){return R_(this.cheeseNoise.sample(e,t/1.5,i)+.27,-1,1)}getPillars(e,t,i){const n=U_(this.pillarRarenessModulator.sample(e,t,i),-1,1,0,2),r=U_(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-y_.minCellY(this.settings);return e=w_.apply(this.settings.topSlide,e,y_.cellCountY(this.settings)-i),w_.apply(this.settings.bottomSlide,e,i)}getPreliminarySurfaceLevel(e,t,i){const n=y_.minCellY(this.settings)+y_.cellCountY(this.settings),r=y_.minCellY(this.settings),o=y_.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}}(k_||(k_={})).create=function(e,t,i,n,r,o){return{shiftedX:e,shiftedZ:t,continentalness:i,weirdness:n,erosion:r,terrainInfo:o}},(A_||(A_={})).fromJson=function(e){var t,i,n,r;const o=null!==(t=h_.readObject(e))&&void 0!==t?t:{};return void 0!==o.absolute?(s=null!==(i=h_.readNumber(o.absolute))&&void 0!==i?i:0,()=>s):void 0!==o.above_bottom?(a=null!==(n=h_.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=h_.readNumber(o.below_top))&&void 0!==r?r:0):()=>0;var a,s},(C_||(C_={})).create=function(e,t){return{minY:e,height:t,maxY:e+t-1}};class sb{constructor(e,t,i){this.rule=e,this.defaultBlock=t,this.random=G_.create(i).forkPositional(),this.surfaceNoise=N_.instantiate(this.random,N_.SURFACE),this.surfaceSecondaryNoise=N_.instantiate(this.random,N_.SURFACE_SECONDARY),this.positionalRandoms=new Map}buildSurface(e,t,i,n){const r=p_.minBlockX(e.pos),o=p_.minBlockZ(e.pos),a=new cb(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=d_.create(t,i,n),u=e.getBlockState(o);if(u.equals(B_.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(d_.create(t,r,n));if(i.equals(B_.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 M_(this.positionalRandoms,e,(()=>this.random.fromHashOf(e)))}}class cb{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=L_((()=>this.system.getSurfaceSecondary(e,t))),this.minSurfaceLevel=L_((()=>this.calculateMinSurfaceLevel(e,t)))}updateY(e,t,i,n){this.blockY=n,this.stoneDepthAbove=e,this.stoneDepthBelow=t,this.waterHeight=i,this.biome=L_((()=>this.getBiome(d_.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(j_((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=h_.readObject(r))&&void 0!==o?o:{};switch(null===(a=h_.readString(c.type))||void 0===a?void 0:a.replace(/^minecraft:/,"")){case"block":return t(B_.fromJson(c.result_state));case"sequence":return i(null!==(s=h_.readArray(c.sequence,e.fromJson))&&void 0!==s?s:[]);case"condition":return n(S_.fromJson(c.if_true),e.fromJson(c.then_run))}return e.NOOP},e.block=t,e.sequence=i,e.condition=n}(O_||(O_={})),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:U_(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=U_(n.blockY,r,o,1,0);return a.nextFloat()<s}}function o(e,t,i){return n=>{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=h_.readObject(s))&&void 0!==c?c:{};switch(null===(l=h_.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=h_.readArray(y.biome_is,(e=>{var t;return null!==(t=h_.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=h_.readInt(y.offset))&&void 0!==d?d:0,null!==(h=h_.readBoolean(y.add_surface_depth))&&void 0!==h&&h,null!==(p=h_.readInt(y.secondary_depth_range))&&void 0!==p?p:0,"ceiling"===h_.readString(y.surface_type));case"vertical_gradient":return r(null!==(m=h_.readString(y.random_name))&&void 0!==m?m:"",A_.fromJson(y.true_at_and_below),A_.fromJson(y.false_at_and_above));case"water":return o(null!==(f=h_.readInt(y.offset))&&void 0!==f?f:0,null!==(g=h_.readInt(y.surface_depth_multiplier))&&void 0!==g?g:0,null!==(_=h_.readBoolean(y.add_surface_depth))&&void 0!==_&&_);case"y_above":return a(A_.fromJson(y.anchor),null!==(b=h_.readInt(y.surface_depth_multiplier))&&void 0!==b?b:0,null!==(v=h_.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}(S_||(S_={}));class lb{constructor(e,t,i){this.biomeSource=t,this.settings=i,this.sampler=new ab(i.noise,i.noiseCavesEnabled,e,i.legacyRandomSource),this.noiseChunkCache=new Map,this.materialRule=v_.fromList([(e,t,i,n)=>e.updateNoiseAndGenerateBaseState(t,i,n)]),this.surfaceSystem=new sb(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=y_.cellWidth(this.settings.noise),o=y_.cellHeight(this.settings.noise),a=Math.floor(16/r),s=Math.floor(i/o),c=Math.floor((n-i)/o),l=p_.minBlockX(e.pos),u=p_.minBlockZ(e.pos),d=this.getNoiseChunk(e);d.initializeForFirstCellX();for(let h=0;h<a;h+=1){d.advanceCellX(h);for(let i=0;i<a;i+=1){let n=e.getOrCreateSection(e.sectionsCount-1);for(let a=c-1;a>=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;e<r;e+=1){const o=l+h*r+e,a=15&o,s=e/r;d.updateForX(s);for(let e=0;e<r;e+=1){const s=u+i*r+e,c=15&s,l=e/r;d.updateForZ(l);let h=null!==(t=this.materialRule(d,o,p,s))&&void 0!==t?t:this.settings.defaultBlock;if(h.equals(B_.AIR)){if(!(p<this.settings.seaLevel))continue;h=this.settings.defaultFluid}n.setBlockState(a,m,c,h)}}}}}d.swapSlices()}}buildSurface(e,t="minecraft:plains"){const i=this.getNoiseChunk(e),n=C_.create(this.settings.noise.minY,this.settings.noise.height);this.surfaceSystem.buildSurface(e,i,n,(()=>t))}getNoiseChunk(e){return M_(this.noiseChunkCache,p_.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=y_.cellWidth(this.settings.noise),r=y_.cellHeight(this.settings.noise),o=Math.floor(16/n),a=Math.floor(t/r),s=Math.floor((i-t)/r),c=p_.minBlockX(e.pos),l=p_.minBlockZ(e.pos);return new ob(o,s,a,this.sampler,c,l,(()=>0),this.settings)}))}}(E_||(E_={})).fromJson=function(e){var t,i,n,r,o,a,s,c,l,u,d;const h=null!==(t=h_.readObject(e))&&void 0!==t?t:{};return{structures:F_.fromJson(h.structures),surfaceRule:O_.fromJson(h.surface_rule),noise:y_.fromJson(h.noise),defaultBlock:B_.fromJson(h.default_block),defaultFluid:B_.fromJson(h.default_fluid),bedrockRoofPosition:null!==(i=h_.readInt(h.bedrock_roof_position))&&void 0!==i?i:0,bedrockFloorPosition:null!==(n=h_.readInt(h.bedrock_floor_position))&&void 0!==n?n:0,seaLevel:null!==(r=h_.readInt(h.sea_level))&&void 0!==r?r:0,disableMobGeneration:null!==(o=h_.readBoolean(h.disable_mob_generation))&&void 0!==o&&o,aquifersEnabled:null!==(a=h_.readBoolean(h.aquifers_enabled))&&void 0!==a&&a,noiseCavesEnabled:null!==(s=h_.readBoolean(h.noise_caves_enabled))&&void 0!==s&&s,deepslateEnabled:null!==(c=h_.readBoolean(h.deepslate_enabled))&&void 0!==c&&c,oreVeinsEnabled:null!==(l=h_.readBoolean(h.ore_veins_enabled))&&void 0!==l&&l,noodleCavesEnabled:null!==(u=h_.readBoolean(h.noodle_caves_enabled))&&void 0!==u&&u,legacyRandomSource:null!==(d=h_.readBoolean(h.legacy_random_source))&&void 0!==d&&d}},(F_||(F_={})).fromJson=function(e){var t;const i=null!==(t=h_.readObject(e))&&void 0!==t?t:{};return{stronghold:h_.compose(i.stronghold,h_.readObject,(e=>{var t,i,n;return{distance:null!==(t=h_.readInt(e.distance))&&void 0!==t?t:0,spread:null!==(i=h_.readInt(e.spread))&&void 0!==i?i:0,count:null!==(n=h_.readInt(e.count))&&void 0!==n?n:0}})),structures:h_.readMap(i.structures,(e=>{var t,i,n,r,o;return i=null!==(t=h_.readObject(e))&&void 0!==t?t:{},{spacing:null!==(n=h_.readInt(i.spacing))&&void 0!==n?n:0,separation:null!==(r=h_.readInt(i.separation))&&void 0!==r?r:0,salt:null!==(o=h_.readInt(i.salt))&&void 0!==o?o:0}}))}},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;a<c;++a){var l=s(e,t[a]);if(null==l&&o.original)return;r.push(l)}return i&&i.apply(null,r)||!0}},o=function(e,t){var i=r("",e,t);return null==i&&o.original?o.original.apply(this,arguments):i},a=function(e,t){if(-1!==t.indexOf("!")){var i=t.split("!");return a(e,i[0])+"!"+a(e,i[1])}if("."==t.charAt(0))for(t=e.split("/").slice(0,-1).join("/")+"/"+t;-1!==t.indexOf(".")&&n!=t;){var n=t;t=t.replace(/\/\.\//,"/").replace(/[^\/]+\/\.\.\//,"")}return t},s=function(e,i){i=a(e,i);var n=t.modules[i];if(!n){if("function"==typeof(n=t.payloads[i])){var o={},s={id:i,uri:"",exports:o,packaged:!0};o=n((function(e,t){return r(i,e,t)}),o,s)||s.exports,t.modules[i]=o,delete t.payloads[i]}n=t.modules[i]=o||n}return n};n=e,(i="ace")&&(e[i]||(e[i]={}),n=e[i]),n.define&&n.define.packaged||(t.original=n.define,n.define=t,n.define.packaged=!0),n.acequire&&n.acequire.packaged||(o.original=n.acequire,n.acequire=o,n.acequire.packaged=!0)}(),ace.define("ace/lib/regexp",["require","exports","module"],(function(e,t,i){var n,r={exec:RegExp.prototype.exec,test:RegExp.prototype.test,match:String.prototype.match,replace:String.prototype.replace,split:String.prototype.split},o=void 0===r.exec.call(/()??/,"")[1],a=(n=/^/g,r.test.call(n,""),!n.lastIndex);function s(e){return(e.global?"g":"")+(e.ignoreCase?"i":"")+(e.multiline?"m":"")+(e.extended?"x":"")+(e.sticky?"y":"")}function c(e,t,i){if(Array.prototype.indexOf)return e.indexOf(t,i);for(var n=i||0;n<e.length;n++)if(e[n]===t)return n;return-1}a&&o||(RegExp.prototype.exec=function(e){var t,i,n=r.exec.apply(this,arguments);if("string"==typeof e&&n){if(!o&&n.length>1&&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;e<arguments.length-2;e++)void 0===arguments[e]&&(n[e]=void 0)}))),this._xregexp&&this._xregexp.captureNames)for(var l=1;l<n.length;l++)(t=this._xregexp.captureNames[l-1])&&(n[t]=n[l]);!a&&this.global&&!n[0].length&&this.lastIndex>n.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+t<i||(t=i-e);var n=this.slice(e,e+t),r=h.call(arguments,2),o=r.length;if(e===i)o&&this.push.apply(this,r);else{var a=Math.min(t,i-e),s=e+a,c=s+o-a,l=i-s,u=i-a;if(c<s)for(var d=0;d<l;++d)this[c+d]=this[s+d];else if(c>s)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<o;++d)this[e+d]=r[d]}return n};Array.isArray||(Array.isArray=function(e){return"[object Array]"==p(e)});var g,_,b=Object("a"),v="a"!=b[0]||!(0 in b);if(Array.prototype.forEach||(Array.prototype.forEach=function(e){var t=B(this),i=v&&"[object String]"==p(this)?this.split(""):t,n=arguments[1],r=-1,o=i.length>>>0;if("[object Function]"!=p(e))throw new TypeError;for(;++r<o;)r in i&&e.call(n,i[r],r,t)}),Array.prototype.map||(Array.prototype.map=function(e){var t=B(this),i=v&&"[object String]"==p(this)?this.split(""):t,n=i.length>>>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<n;a++)a in i&&(r[a]=e.call(o,i[a],a,t));return r}),Array.prototype.filter||(Array.prototype.filter=function(e){var t,i=B(this),n=v&&"[object String]"==p(this)?this.split(""):i,r=n.length>>>0,o=[],a=arguments[1];if("[object Function]"!=p(e))throw new TypeError(e+" is not a function");for(var s=0;s<r;s++)s in n&&(t=n[s],e.call(a,t,s,i)&&o.push(t));return o}),Array.prototype.every||(Array.prototype.every=function(e){var t=B(this),i=v&&"[object String]"==p(this)?this.split(""):t,n=i.length>>>0,r=arguments[1];if("[object Function]"!=p(e))throw new TypeError(e+" is not a function");for(var o=0;o<n;o++)if(o in i&&!e.call(r,i[o],o,t))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(e){var t=B(this),i=v&&"[object String]"==p(this)?this.split(""):t,n=i.length>>>0,r=arguments[1];if("[object Function]"!=p(e))throw new TypeError(e+" is not a function");for(var o=0;o<n;o++)if(o in i&&e.call(r,i[o],o,t))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(e){var t=B(this),i=v&&"[object String]"==p(this)?this.split(""):t,n=i.length>>>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<n;o++)o in i&&(r=e.call(void 0,r,i[o],o,t));return r}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(e){var t=B(this),i=v&&"[object String]"==p(this)?this.split(""):t,n=i.length>>>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<i;n++)if(n in t&&t[n]===e)return n;return-1}),Array.prototype.lastIndexOf&&-1==[0,1].lastIndexOf(0,-3)||(Array.prototype.lastIndexOf=function(e){var t=v&&"[object String]"==p(this)?this.split(""):B(this),i=t.length>>>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 k=!0,A=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],C=A.length;for(var O in{toString:null})k=!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(k)for(var n=0,r=C;n<r;n++){var o=A[n];m(e,o)&&t.push(o)}return t}}Date.now||(Date.now=function(){return(new Date).getTime()});var S="\t\n\v\f\r   ᠎              \u2028\u2029\ufeff";if(!String.prototype.trim||S.trim()){S="["+S+"]";var E=new RegExp("^"+S+S+"*"),F=new RegExp(S+S+"*$");String.prototype.trim=function(){return String(this).replace(E,"").replace(F,"")}}function D(e){return(e=+e)!=e?e=0:0!==e&&e!==1/0&&e!==-1/0&&(e=(e>0||-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<i.length;)if(i[n++].owningElement.id===e)return!0}else if(i=t.getElementsByTagName("style"))for(;n<i.length;)if(i[n++].id===e)return!0;return!1},t.importCssString=function(e,i,n){if(n=n||document,i&&t.hasCssString(i,n))return null;var r;i&&(e+="\n/*# sourceURL=ace/css/"+i+" */"),n.createStyleSheet?((r=n.createStyleSheet()).cssText=e,i&&(r.owningElement.id=i)):((r=t.createElement("style")).appendChild(n.createTextNode(e)),i&&(r.id=i),t.getDocumentHead(n).appendChild(r))},t.importCssStylsheet=function(e,i){if(i.createStyleSheet)i.createStyleSheet(e);else{var n=t.createElement("link");n.rel="stylesheet",n.href=e,t.getDocumentHead(i).appendChild(n)}},t.getInnerWidth=function(e){return parseInt(t.computedStyle(e,"paddingLeft"),10)+parseInt(t.computedStyle(e,"paddingRight"),10)+e.clientWidth},t.getInnerHeight=function(e){return parseInt(t.computedStyle(e,"paddingTop"),10)+parseInt(t.computedStyle(e,"paddingBottom"),10)+e.clientHeight},t.scrollbarWidth=function(e){var i=t.createElement("ace_inner");i.style.width="100%",i.style.minWidth="0px",i.style.height="200px",i.style.display="block";var n=t.createElement("ace_outer"),r=n.style;r.position="absolute",r.left="-10000px",r.overflow="hidden",r.width="200px",r.minWidth="0px",r.height="150px",r.display="block",n.appendChild(i);var o=e.documentElement;o.appendChild(n);var a=i.offsetWidth;r.overflow="scroll";var s=i.offsetWidth;return a==s&&(s=n.clientWidth),o.removeChild(n),a-s},"undefined"!=typeof document?(void 0!==window.pageYOffset?(t.getPageScrollTop=function(){return window.pageYOffset},t.getPageScrollLeft=function(){return window.pageXOffset}):(t.getPageScrollTop=function(){return document.body.scrollTop},t.getPageScrollLeft=function(){return document.body.scrollLeft}),window.getComputedStyle?t.computedStyle=function(e,t){return t?(window.getComputedStyle(e,"")||{})[t]||"":window.getComputedStyle(e,"")||{}}:t.computedStyle=function(e,t){return t?e.currentStyle[t]:e.currentStyle},t.setInnerHtml=function(e,t){var i=e.cloneNode(!1);return i.innerHTML=t,e.parentNode.replaceChild(i,e),i},"textContent"in document.documentElement?(t.setInnerText=function(e,t){e.textContent=t},t.getInnerText=function(e){return e.textContent}):(t.setInnerText=function(e,t){e.innerText=t},t.getInnerText=function(e){return e.innerText}),t.getParentWindow=function(e){return e.defaultView||e.parentWindow}):t.importCssString=function(){}})),ace.define("ace/lib/oop",["require","exports","module"],(function(e,t,i){t.inherits=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})},t.mixin=function(e,t){for(var i in t)e[i]=t[i];return e},t.implement=function(e,i){t.mixin(e,i)}})),ace.define("ace/lib/keys",["require","exports","module","ace/lib/fixoldbrowsers","ace/lib/oop"],(function(e,t,i){e("./fixoldbrowsers");var n=e("./oop"),r=function(){var e,t,i={MODIFIER_KEYS:{16:"Shift",17:"Ctrl",18:"Alt",224:"Meta"},KEY_MODS:{ctrl:1,alt:2,option:2,shift:4,super:8,meta:8,command:8,cmd:8},FUNCTION_KEYS:{8:"Backspace",9:"Tab",13:"Return",19:"Pause",27:"Esc",32:"Space",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"Left",38:"Up",39:"Right",40:"Down",44:"Print",45:"Insert",46:"Delete",96:"Numpad0",97:"Numpad1",98:"Numpad2",99:"Numpad3",100:"Numpad4",101:"Numpad5",102:"Numpad6",103:"Numpad7",104:"Numpad8",105:"Numpad9","-13":"NumpadEnter",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"Numlock",145:"Scrolllock"},PRINTABLE_KEYS:{32:" ",48:"0",49:"1",50:"2",51:"3",52:"4",53:"5",54:"6",55:"7",56:"8",57:"9",59:";",61:"=",65:"a",66:"b",67:"c",68:"d",69:"e",70:"f",71:"g",72:"h",73:"i",74:"j",75:"k",76:"l",77:"m",78:"n",79:"o",80:"p",81:"q",82:"r",83:"s",84:"t",85:"u",86:"v",87:"w",88:"x",89:"y",90:"z",107:"+",109:"-",110:".",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'",111:"/",106:"*"}};for(t in i.FUNCTION_KEYS)e=i.FUNCTION_KEYS[t].toLowerCase(),i[e]=parseInt(t,10);for(t in i.PRINTABLE_KEYS)e=i.PRINTABLE_KEYS[t].toLowerCase(),i[e]=parseInt(t,10);return n.mixin(i,i.MODIFIER_KEYS),n.mixin(i,i.PRINTABLE_KEYS),n.mixin(i,i.FUNCTION_KEYS),i.enter=i.return,i.escape=i.esc,i.del=i.delete,i[173]="-",function(){for(var e=["cmd","ctrl","alt","shift"],t=Math.pow(2,e.length);t--;)i.KEY_MODS[t]=e.filter((function(e){return t&i.KEY_MODS[e]})).join("-")+"-"}(),i.KEY_MODS[0]="",i.KEY_MODS[-1]="input-",i}();n.mixin(t,r),t.keyCodeToString=function(e){var t=r[e];return"string"!=typeof t&&(t=String.fromCharCode(e)),t.toLowerCase()}})),ace.define("ace/lib/useragent",["require","exports","module"],(function(e,t,i){if(t.OS={LINUX:"LINUX",MAC:"MAC",WINDOWS:"WINDOWS"},t.getOS=function(){return t.isMac?t.OS.MAC:t.isLinux?t.OS.LINUX:t.OS.WINDOWS},"object"==typeof navigator){var n=(navigator.platform.match(/mac|win|linux/i)||["other"])[0].toLowerCase(),r=navigator.userAgent;t.isWin="win"==n,t.isMac="mac"==n,t.isLinux="linux"==n,t.isIE="Microsoft Internet Explorer"==navigator.appName||navigator.appName.indexOf("MSAppHost")>=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;i<n;i++)e[i]&&"object"==typeof e[i]?t[i]=this.copyObject(e[i]):t[i]=e[i];return t},t.deepCopy=function e(t){if("object"!=typeof t||!t)return t;var i;if(Array.isArray(t)){i=[];for(var n=0;n<t.length;n++)i[n]=e(t[n]);return i}if("[object Object]"!==Object.prototype.toString.call(t))return t;for(var n in i={},t)i[n]=e(t[n]);return i},t.arrayToMap=function(e){for(var t={},i=0;i<e.length;i++)t[e[i]]=1;return t},t.createMap=function(e){var t=Object.create(null);for(var i in e)t[i]=e[i];return t},t.arrayRemove=function(e,t){for(var i=0;i<=e.length;i++)t===e[i]&&e.splice(i,1)},t.escapeRegExp=function(e){return e.replace(/([.*+?^${}()|[\]\/\\])/g,"\\$1")},t.escapeHTML=function(e){return e.replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(/</g,"<")},t.getMatchOffsets=function(e,t){var i=[];return e.replace(t,(function(e){i.push({offset:arguments[arguments.length-2],length:e.length})})),i},t.deferredCall=function(e){var t=null,i=function(){t=null,e()},n=function(e){return n.cancel(),t=setTimeout(i,e||0),n};return n.schedule=n,n.call=function(){return this.cancel(),e(),n},n.cancel=function(){return clearTimeout(t),t=null,n},n.isPending=function(){return t},n},t.delayedCall=function(e,t){var i=null,n=function(){i=null,e()},r=function(e){null==i&&(i=setTimeout(n,e||t))};return r.delay=function(e){i&&clearTimeout(i),i=setTimeout(n,e||t)},r.schedule=r,r.call=function(){this.cancel(),e()},r.cancel=function(){i&&clearTimeout(i),i=null},r.isPending=function(){return i},r}})),ace.define("ace/keyboard/textinput_ios",["require","exports","module","ace/lib/event","ace/lib/useragent","ace/lib/dom","ace/lib/lang","ace/lib/keys"],(function(e,t,i){var n=e("../lib/event"),r=e("../lib/useragent"),o=e("../lib/dom"),a=e("../lib/lang"),s=e("../lib/keys"),c=s.KEY_MODS,l=r.isChrome<18,u=r.isIE;t.TextInput=function(e,t){var i=o.createElement("textarea");i.className=r.isIOS?"ace_text-input ace_text-input-ios":"ace_text-input",r.isTouchPad&&i.setAttribute("x-palm-disable-auto-cap",!0),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 d="\n aaaa a\n",h=!1,p=!1,m=!1,f=!1,g="",_=!0;try{var b=document.activeElement===i}catch(j){}n.addListener(i,"blur",(function(e){t.onBlur(e),b=!1})),n.addListener(i,"focus",(function(e){b=!0,t.onFocus(e),w()})),this.focus=function(){if(g)return i.focus();i.style.position="fixed",i.focus()},this.blur=function(){i.blur()},this.isFocused=function(){return b};var v=a.delayedCall((function(){b&&w(_)})),y=a.delayedCall((function(){f||(i.value=d,b&&w())}));function w(e){if(!f){if(f=!0,N)t=0,n=e?0:i.value.length-1;else var t=4,n=5;try{i.setSelectionRange(t,n)}catch(j){}f=!1}}function x(){f||(i.value=d,r.isWebKit&&y.schedule())}r.isWebKit||t.addEventListener("changeSelection",(function(){t.selection.isEmpty()!=_&&(_=!_,v.schedule())})),x(),b&&t.onFocus();var N=null;this.setInputHandler=function(e){N=e},this.getInputHandler=function(){return N};var k=!1,A=function(e){4===i.selectionStart&&5===i.selectionEnd||(N&&(e=N(e),N=null),m?(w(),e&&t.onPaste(e),m=!1):e==d.substr(0)&&4===i.selectionStart?k?t.execCommand("del",{source:"ace"}):t.execCommand("backspace",{source:"ace"}):h||(e.substring(0,9)==d&&e.length>d.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),k&&(k=!1))},C=function(e){if(!f){var t=i.value;A(t),x()}},O=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 O(o,t,!0)}}},S=function(e,o){var a=t.getCopyText();if(!a)return n.preventDefault(e);O(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=O(e);"string"==typeof o?(o&&t.onPaste(o,e),r.isIE&&setTimeout(w),n.preventDefault(e)):(i.value="",m=!0)}));var E,F=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(),A(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(F,50);function L(){clearTimeout(E),E=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(F,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){k=!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(E),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 T=null,R=!1;e.addEventListener("keydown",(function(e){T&&clearTimeout(T),R=!0})),e.addEventListener("keyup",(function(e){T=setTimeout((function(){R=!1}),100)}));var $=function(e){if(document.activeElement===i&&!R){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",$),t.on("destroy",(function(){document.removeEventListener("selectionchange",$)}))}}})),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(R){}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(R){}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)},k=function(e){if(!p){var t=i.value;N(t),y()}},A=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 A(o,t,!0)}}},C=function(e,r){var o=t.getCopyText();if(!o)return n.preventDefault(e);A(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()})))},O=function(e){C(e,!0)},S=function(e){C(e,!1)},E=function(e){var o=A(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",k),n.addListener(i,"cut",O),n.addListener(i,"copy",S),n.addListener(i,"paste",E),"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:E(e);break;case 88:O(e)}}));var F,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)&&k()}},L=a.delayedCall(D,50);function M(){clearTimeout(F),F=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(F),r.isWin&&n.capture(t.container,h,M))},this.onContextMenuClose=M;var T=function(e){t.textInput.onContextMenu(e),M()};n.addListener(i,"mouseup",T),n.addListener(i,"mousedown",(function(e){e.preventDefault(),M()})),n.addListener(t.renderer.scroller,"contextmenu",T),n.addListener(i,"contextmenu",T)}})),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("<br/>"),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<s.x.right?-3:2),d/r<=1&&(h.row+=s.y.top<s.y.bottom?-1:1);var p=e.row!=h.row,m=e.column!=h.column,g=!i||e.row!=i.row;p||m&&!g?f?n-f>=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",k)}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",k)}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()&&A(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()&&A(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 k(){null==N&&(N=setTimeout((function(){null!=N&&a&&x()}),20))}function A(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;a<i.length&&(i[a](t,this),!t.propagationStopped);a++);return n&&!t.defaultPrevented?n(t,this):void 0}},n._signal=function(e,t){var i=(this._eventRegistry||{})[e];if(i){i=i.slice();for(var n=0;n<i.length;n++)i[n](t,this)}},n.once=function(e,t){var i=this;t&&this.addEventListener(e,(function n(){i.removeEventListener(e,n),t.apply(null,arguments)}))},n.setDefaultHandler=function(e,t){var i=this._defaultHandlers;if(i||(i=this._defaultHandlers={_disabled_:{}}),i[e]){var n=i[e],r=i._disabled_[e];r||(i._disabled_[e]=r=[]),r.push(n);var o=r.indexOf(t);-1!=o&&r.splice(o,1)}i[e]=t},n.removeDefaultHandler=function(e,t){var i=this._defaultHandlers;if(i){var n=i._disabled_[e];if(i[e]==t)i[e],n&&this.setDefaultHandler(e,n.pop());else if(n){var r=n.indexOf(t);-1!=r&&n.splice(r,1)}}},n.on=n.addEventListener=function(e,t,i){this._eventRegistry=this._eventRegistry||{};var n=this._eventRegistry[e];return n||(n=this._eventRegistry[e]=[]),-1==n.indexOf(t)&&n[i?"unshift":"push"](t),t},n.off=n.removeListener=n.removeEventListener=function(e,t){this._eventRegistry=this._eventRegistry||{};var i=this._eventRegistry[e];if(i){var n=i.indexOf(t);-1!==n&&i.splice(n,1)}},n.removeAllListeners=function(e){this._eventRegistry&&(this._eventRegistry[e]=[])},t.EventEmitter=n})),ace.define("ace/lib/app_config",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],(function(e,t,i){var n=e("./oop"),r=e("./event_emitter").EventEmitter,o={setOptions:function(e){Object.keys(e).forEach((function(t){this.setOption(t,e[t])}),this)},getOptions:function(e){var t={};return e?Array.isArray(e)||(t=e,e=Object.keys(t)):e=Object.keys(this.$options),e.forEach((function(e){t[e]=this.getOption(e)}),this),t},setOption:function(e,t){if(this["$"+e]!==t){var i=this.$options[e];if(!i)return a('misspelled option "'+e+'"');if(i.forwardTo)return this[i.forwardTo]&&this[i.forwardTo].setOption(e,t);i.handlesSet||(this["$"+e]=t),i&&i.set&&i.set.call(this,t)}},getOption:function(e){var t=this.$options[e];return t?t.forwardTo?this[t.forwardTo]&&this[t.forwardTo].getOption(e):t&&t.get?t.get.call(this):this["$"+e]:a('misspelled option "'+e+'"')}};function a(e){"undefined"!=typeof console&&console.warn&&console.warn.apply(console,arguments)}function s(e,t){var i=new Error(e);i.data=t,"object"==typeof console&&console.error&&console.error(i),setTimeout((function(){throw i}))}var c=function(){this.$defaultOptions={}};(function(){n.implement(this,r),this.defineOptions=function(e,t,i){return e.$options||(this.$defaultOptions[t]=e.$options={}),Object.keys(i).forEach((function(t){var n=i[t];"string"==typeof n&&(n={forwardTo:n}),n.name||(n.name=t),e.$options[n.name]=n,"initialValue"in n&&(e["$"+n.name]=n.initialValue)})),n.implement(e,o),this},this.resetOptions=function(e){Object.keys(e.$options).forEach((function(t){var i=e.$options[t];"value"in i&&e.setOption(t,i.value)}))},this.setDefaultValue=function(e,t,i){var n=this.$defaultOptions[e]||(this.$defaultOptions[e]={});n[t]&&(n.forwardTo?this.setDefaultValue(n.forwardTo,t,i):n[t].value=i)},this.setDefaultValues=function(e,t){Object.keys(t).forEach((function(i){this.setDefaultValue(e,i,t[i])}),this)},this.warn=a,this.reportError=s}).call(c.prototype),t.AppConfig=c})),ace.define("ace/config",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/lib/net","ace/lib/app_config"],(function(e,t,i){var n=e("./lib/lang");e("./lib/oop");var r=e("./lib/net"),o=e("./lib/app_config").AppConfig;i.exports=t=new o;var a=function(){return this||"undefined"!=typeof window&&window}(),s={packaged:!1,workerPath:null,modePath:null,themePath:null,basePath:"",suffix:".js",$moduleUrls:{}};function c(n){if(a&&a.document){s.packaged=n||e.packaged||i.packaged||a.define&&(void 0).packaged;for(var r,o={},c="",l=document.currentScript||document._currentScript,u=(l&&l.ownerDocument||document).getElementsByTagName("script"),d=0;d<u.length;d++){var h=u[d],p=h.src||h.getAttribute("src");if(p){for(var m=h.attributes,f=0,g=m.length;f<g;f++){var _=m[f];0===_.name.indexOf("data-ace-")&&(o[(r=_.name.replace(/^data-ace-/,""),r.replace(/-(.)/g,(function(e,t){return t.toUpperCase()})))]=_.value)}var b=p.match(/^(.*)\/ace(\-\w+)?\.js(\?|$)/);b&&(c=b[1])}}for(var v in c&&(o.base=o.base||c,o.packaged=!0),o.basePath=o.base,o.workerPath=o.workerPath||o.base,o.modePath=o.modePath||o.base,o.themePath=o.themePath||o.base,delete o.base,o)void 0!==o[v]&&t.set(v,o[v])}}t.get=function(e){if(!s.hasOwnProperty(e))throw new Error("Unknown config key: "+e);return s[e]},t.set=function(e,t){if(!s.hasOwnProperty(e))throw new Error("Unknown config key: "+e);s[e]=t},t.all=function(){return n.copyObject(s)},t.moduleUrl=function(e,t){if(s.$moduleUrls[e])return s.$moduleUrls[e];var i=e.split("/"),n="snippets"==(t=t||i[i.length-2]||"")?"/":"-",r=i[i.length-1];if("worker"==t&&"-"==n){var o=new RegExp("^"+t+"[\\-_]|[\\-_]"+t+"$","g");r=r.replace(o,"")}(!r||r==t)&&i.length>1&&(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))if(1!=e||1!=n||a)for(var o,s,c,l,u=i.length,d=0;d<u;){if(t[d]>=e){for(o=d+1;o<u&&t[o]>=e;)o++;for(s=d,c=o-1;s<c;s++,c--)l=i[s],i[s]=i[c],i[c]=l;d=o}d++}else i.reverse()}function f(e,t,i,r){var c,l,h,p,m=t[r];switch(m){case 0:case 1:o=!1;case 4:case 3:return m;case 2:return o?3:2;case 7:return o=!0,1;case 8:return 4;case 9:return r<1||r+1>=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+1<t.length&&2==t[r+1]?2:4;case u:if(r>0&&2==i[r-1])return 2;if(o)return 4;for(p=r+1,h=t.length;p<h&&t[p]==u;)p++;return p<h&&2==t[p]?2:4;case 12:for(h=t.length,p=r+1;p<h&&12==t[p];)p++;if(p<h){var f=e[r],g=f>=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=[];y<i;y++)u[y]=g(e[y]);for(r=n,o=!1,a=!1,s=!1,w=0;w<i;w++){if(h=_,x[w]=p=f(e,u,x,w),b=240&(_=d[h][p]),_&=15,t[w]=m=d[_][5],b>0)if(16==b){for(y=v;y<w;y++)t[y]=1;v=-1}else v=-1;if(d[_][6])-1==v&&(v=w);else if(v>-1){for(y=v;y<w;y++)t[y]=m;v=-1}5==u[w]&&(t[w]=0),r|=m}if(s)for(y=0;y<i;y++)if(6==u[y]){t[y]=n;for(var N=y-1;N>=0&&8==u[N];N--)t[N]=n}}(h,b,h.length,i);for(var v=0;v<p.length;p[v]=v,v++);m(2,b,p),m(1,b,p);for(v=0;v<p.length-1;v++)3===i[v]?b[v]=t.AN:1===b[v]&&(i[v]>7&&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<p.length;v++)_[v]=b[p[v]];return{logicalFromVisual:p,bidiLevels:_}},t.hasBidiCharacters=function(e,t){for(var i=!1,n=0;n<e.length;n++)t[n]=g(e.charAt(n)),i||1!=t[n]&&7!=t[n]||(i=!0);return i},t.getVisualFromLogicalIdx=function(e,t){for(var i=0;i<t.logicalFromVisual.length;i++)if(t.logicalFromVisual[i]==e)return i;return 0}})),ace.define("ace/bidihandler",["require","exports","module","ace/lib/bidiutil","ace/lib/lang","ace/lib/useragent"],(function(e,t,i){var n=e("./lib/bidiutil"),r=e("./lib/lang"),o=e("./lib/useragent"),a=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/,s=function(e){this.session=e,this.bidiMap={},this.currentRow=null,this.bidiUtil=n,this.charWidths=[],this.EOL="¬",this.showInvisibles=!0,this.isRtlDir=!1,this.line="",this.wrapIndent=0,this.isLastRow=!1,this.EOF="¶",this.seenBidi=!1};(function(){this.isBidiRow=function(e,t,i){return!!this.seenBidi&&(e!==this.currentRow&&(this.currentRow=e,this.updateRowLine(t,i),this.updateBidiMap()),this.bidiMap.bidiLevels)},this.onChange=function(e){this.seenBidi?this.currentRow=null:"insert"==e.action&&a.test(e.lines.join("\n"))&&(this.seenBidi=!0,this.currentRow=null)},this.getDocumentRow=function(){var e=0,t=this.session.$screenRowCache;if(t.length){var i=this.session.$getRowCacheIndex(t,this.currentRow);i>=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=t<i.length?this.line.substring(i[t-1],i[i.length-1]):this.line.substring(i[i.length-1])):this.line=this.line.substring(0,i[t]))}var o,a=this.session,s=0;this.line=this.line.replace(/\t|[\u1100-\u2029, \u202F-\uFFE6]/g,(function(e,t){return"\t"===e||a.isFullWidth(e.charCodeAt(0))?(o="\t"===e?a.getScreenTabSize(t+s):2,s+=o-1,r.stringRepeat(n.DOT,o)):e}))},this.updateBidiMap=function(){var e=[],t=this.isLastRow?this.EOF:this.EOL,i=this.line+(this.showInvisibles?t:n.DOT);n.hasBidiCharacters(i,e)?this.bidiMap=n.doBidiReorder(i,e,this.isRtlDir):this.bidiMap={}},this.markAsDirty=function(){this.currentRow=null},this.updateCharacterWidths=function(e){if(this.seenBidi&&this.characterWidth!==e.$characterSize.width){var t=this.characterWidth=e.$characterSize.width,i=e.$measureCharWidth("ה");this.charWidths[n.L]=this.charWidths[n.EN]=this.charWidths[n.ON_R]=t,this.charWidths[n.R]=this.charWidths[n.AN]=i,this.charWidths[n.R_H]=o.isChrome?i:.45*i,this.charWidths[n.B]=0,this.currentRow=null}},this.getShowInvisibles=function(){return this.showInvisibles},this.setShowInvisibles=function(e){this.showInvisibles=e,this.currentRow=null},this.setEolChar=function(e){this.EOL=e},this.setTextDir=function(e){this.isRtlDir=e},this.getPosLeft=function(e){e-=this.wrapIndent;var t=n.getVisualFromLogicalIdx(e>0?e-1:0,this.bidiMap),i=this.bidiMap.bidiLevels,r=0;0===e&&i[t]%2!=0&&t++;for(var o=0;o<t;o++)r+=this.charWidths[i[o]];return 0!==e&&i[t]%2==0&&(r+=this.charWidths[i[t]]),this.wrapIndent&&(r+=this.wrapIndent*this.charWidths[n.L]),r},this.getSelections=function(e,t){for(var i,r,o=this.bidiMap,a=o.bidiLevels,s=this.wrapIndent*this.charWidths[n.L],c=[],l=Math.min(e,t)-this.wrapIndent,u=Math.max(e,t)-this.wrapIndent,d=!1,h=!1,p=0,m=0;m<a.length;m++)r=o.logicalFromVisual[m],i=a[m],(d=r>=l&&r<u)&&!h?p=s:!d&&h&&c.push({left:p,width:s-p}),s+=this.charWidths[i],h=d;return d&&m===a.length&&c.push({left:p,width:s-p}),c},this.offsetToCol=function(e){var t=0,i=(e=Math.max(e,0),0),r=0,o=this.bidiMap.bidiLevels,a=this.charWidths[o[r]];for(this.wrapIndent&&(e-=this.wrapIndent*this.charWidths[n.L]);e>i+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?(e<i&&r--,t=this.bidiMap.logicalFromVisual[r]):r>0&&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?e<this.start.row?-1:e>this.end.row?1:this.start.row===e?t>=this.start.column?0:-1:this.end.row===e?t<=this.end.column?0:1:0:t<this.start.column?-1:t>this.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.row<e)i={row:e,column:0};if(this.start.row>t)var r={row:t+1,column:0};else if(this.start.row<e)r={row:e,column:0};return n.fromPoints(r||this.start,i||this.end)},this.extend=function(e,t){var i=this.compare(e,t);if(0==i)return this;if(-1==i)var r={row:e,column:t};else var o={row:e,column:t};return n.fromPoints(r||this.start,o||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 n.fromPoints(this.start,this.end)},this.collapseRows=function(){return 0==this.end.column?new n(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new n(this.start.row,0,this.end.row,0)},this.toScreenRange=function(e){var t=e.documentToScreenPosition(this.start),i=e.documentToScreenPosition(this.end);return new n(t.row,t.column,i.row,i.column)},this.moveBy=function(e,t){this.start.row+=e,this.start.column+=t,this.end.row+=e,this.end.column+=t}}).call(n.prototype),n.fromPoints=function(e,t){return new n(e.row,e.column,t.row,t.column)},n.comparePoints=function(e,t){return e.row-t.row||e.column-t.column},n.comparePoints=function(e,t){return e.row-t.row||e.column-t.column},t.Range=n})),ace.define("ace/selection",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/lib/event_emitter","ace/range"],(function(e,t,i){var n=e("./lib/oop"),r=e("./lib/lang"),o=e("./lib/event_emitter").EventEmitter,a=e("./range").Range,s=function(e){this.session=e,this.doc=e.getDocument(),this.clearSelection(),this.lead=this.selectionLead=this.doc.createAnchor(0,0),this.anchor=this.selectionAnchor=this.doc.createAnchor(0,0);var t=this;this.lead.on("change",(function(e){t._emit("changeCursor"),t.$isEmpty||t._emit("changeSelection"),t.$keepDesiredColumnOnChange||e.old.column==e.value.column||(t.$desiredColumn=null)})),this.selectionAnchor.on("change",(function(){t.$isEmpty||t._emit("changeSelection")}))};(function(){n.implement(this,o),this.isEmpty=function(){return this.$isEmpty||this.anchor.row==this.lead.row&&this.anchor.column==this.lead.column},this.isMultiLine=function(){return!this.isEmpty()&&this.getRange().isMultiLine()},this.getCursor=function(){return this.lead.getPosition()},this.setSelectionAnchor=function(e,t){this.anchor.setPosition(e,t),this.$isEmpty&&(this.$isEmpty=!1,this._emit("changeSelection"))},this.getSelectionAnchor=function(){return this.$isEmpty?this.getSelectionLead():this.anchor.getPosition()},this.getSelectionLead=function(){return this.lead.getPosition()},this.shiftSelection=function(e){if(this.$isEmpty)this.moveCursorTo(this.lead.row,this.lead.column+e);else{var t=this.getSelectionAnchor(),i=this.getSelectionLead(),n=this.isBackwards();n&&0===t.column||this.setSelectionAnchor(t.row,t.column+e),(n||0!==i.column)&&this.$moveSelection((function(){this.moveCursorTo(i.row,i.column+e)}))}},this.isBackwards=function(){var e=this.anchor,t=this.lead;return e.row>t.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.row<this.doc.getLength()-1&&this.moveCursorTo(this.lead.row+1,0);else{var i=this.session.getTabSize();t=this.lead;this.wouldMoveIntoSoftTab(t,i,1)&&!this.session.getNavigateWithinSoftTabs()?this.moveCursorBy(0,i):this.moveCursorBy(0,1)}},this.moveCursorLineStart=function(){var e=this.lead.row,t=this.lead.column,i=this.session.documentToScreenRow(e,t),n=this.session.screenToDocumentPosition(i,0),r=this.session.getDisplayLine(e,null,n.row,n.column).match(/^\s*/);r[0].length==t||this.session.$useEmacsStyleLineStart||(n.column+=r[0].length),this.moveCursorToPosition(n)},this.moveCursorLineEnd=function(){var e=this.lead,t=this.session.getDocumentLastRowColumnPosition(e.row,e.column);if(this.lead.column==t.column){var i=this.session.getLine(t.row);if(t.column==i.length){var n=i.search(/\s+$/);n>0&&(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(e<this.doc.getLength()-1&&this.moveCursorWordRight());this.session.tokenRe.exec(n)&&(t+=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0),this.moveCursorTo(e,t)}},this.moveCursorLongWordLeft=function(){var e,t=this.lead.row,i=this.lead.column;if(e=this.session.getFoldAt(t,i,-1))this.moveCursorTo(e.start.row,e.start.column);else{var n=this.session.getFoldStringAt(t,i,-1);null==n&&(n=this.doc.getLine(t).substring(0,i));var o=r.stringReverse(n);if(this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0,this.session.nonTokenRe.exec(o)&&(i-=this.session.nonTokenRe.lastIndex,o=o.slice(this.session.nonTokenRe.lastIndex),this.session.nonTokenRe.lastIndex=0),i<=0)return this.moveCursorTo(t,0),this.moveCursorLeft(),void(t>0&&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(e<o&&/^\s*$/.test(n));/^\s+/.test(n)||(n=""),t=0}var a=this.$shortWordEndIndex(n);this.moveCursorTo(e,t+a)},this.moveCursorShortWordLeft=function(){var e,t=this.lead.row,i=this.lead.column;if(e=this.session.getFoldAt(t,i,-1))return this.moveCursorTo(e.start.row,e.start.column);var n=this.session.getLine(t).substring(0,i);if(0===i){do{t--,n=this.doc.getLine(t)}while(t>0&&/^\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;c<i.length;c++){var l=i[c];if(l.defaultToken&&(o.defaultToken=l.defaultToken),l.caseInsensitive&&(a="gi"),null!=l.regex){l.regex instanceof RegExp&&(l.regex=l.regex.toString().slice(1,-1));var u=l.regex,d=new RegExp("(?:("+u+")|(.))").exec("a").length-2;Array.isArray(l.token)?1==l.token.length||1==d?l.token=l.token[0]:d-1!=l.token.length?(this.reportError("number of classes and regexp groups doesn't match",{rule:l,groupCount:d-1}),l.token=l.token[0]):(l.tokenArray=l.token,l.token=null,l.onMatch=this.$arrayTokens):"function"!=typeof l.token||l.onMatch||(l.onMatch=d>1?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;r<o;r++)t[r]&&(n[n.length]={type:i[r],value:t[r]});return n},this.$arrayTokens=function(e){if(!e)return[];var t=this.splitRegex.exec(e);if(!t)return"text";for(var i=[],n=this.tokenArray,r=0,o=n.length;r<o;r++)t[r+1]&&(i[i.length]={type:n[r],value:t[r+1]});return i},this.removeCapturingGroups=function(e){return e.replace(/\[(?:\\.|[^\]])*?\]|\\.|\(\?[:=!]|(\()/g,(function(e,t){return t?"(?:":e}))},this.createSplitterRegexp=function(e,t){if(-1!=e.indexOf("(?=")){var i=0,n=!1,r={};e.replace(/(\\.)|(\((?:\?[=!])?)|(\))|([\[\]])/g,(function(e,t,o,a,s,c){return n?n="]"!=s:s?n=!0:a?(i==r.stack&&(r.end=c+1,r.stack=-1),i--):o&&(i++,1!=o.length&&(r.stack=i,r.start=c)),e})),null!=r.end&&/^\)*$/.test(e.substr(r.end))&&(e=e.substring(0,r.start)+e.substr(r.end))}return"^"!=e.charAt(0)&&(e="^"+e),"$"!=e.charAt(e.length-1)&&(e+="$"),new RegExp(e,(t||"").replace("g",""))},this.getLineTokens=function(e,t){if(t&&"string"!=typeof t){var i=t.slice(0);"#tmp"===(t=i[0])&&(i.shift(),t=i.shift())}else i=[];var n=t||"start",o=this.states[n];o||(n="start",o=this.states[n]);var a=this.matchMappings[n],s=this.regExps[n];s.lastIndex=0;for(var c,l=[],u=0,d=0,h={type:null,value:""};c=s.exec(e);){var p=a.defaultToken,m=null,f=c[0],g=s.lastIndex;if(g-f.length>u){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;b<c.length-2;b++)if(void 0!==c[b+1]){p=(m=o[a[b]]).onMatch?m.onMatch(f,n,i,e):m.token,m.next&&(n="string"==typeof m.next?m.next:m.next(n,i),(o=this.states[n])||(this.reportError("state doesn't exist",n),n="start",o=this.states[n]),a=this.matchMappings[n],u=g,(s=this.regExps[n]).lastIndex=g),m.consumeLineEnd&&(u=g);break}if(f)if("string"==typeof p)m&&!1===m.merge||h.type!==p?(h.type&&l.push(h),h={type:p,value:f}):h.value+=f;else if(p){h.type&&l.push(h),h={type:null,value:""};for(b=0;b<p.length;b++)l.push(p[b])}if(u==e.length)break;if(u=g,d++>r){for(d>2*e.length&&this.reportError("infinite loop with in ace tokenizer",{startState:t,line:e});u<e.length;)h.type&&l.push(h),h={value:e.substring(u,u+=2e3),type:"overflow"};n="start",i=[];break}}return h.type&&l.push(h),i.length>1&&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<n.length;r++){var o=n[r];(o.next||o.onMatch)&&("string"==typeof o.next&&0!==o.next.indexOf(t)&&(o.next=t+o.next),o.nextState&&0!==o.nextState.indexOf(t)&&(o.nextState=t+o.nextState))}this.$rules[t+i]=n}else for(var i in e)this.$rules[i]=e[i]},this.getRules=function(){return this.$rules},this.embedRules=function(e,t,i,r,o){var a="function"==typeof e?(new e).getRules():e;if(r)for(var s=0;s<r.length;s++)r[s]=t+r[s];else for(var c in r=[],a)r.push(t+c);if(this.addRules(a,t),i){var l=Array.prototype[o?"push":"unshift"];for(s=0;s<r.length;s++)l.apply(this.$rules[r[s]],n.deepCopy(i))}this.$embeds||(this.$embeds=[]),this.$embeds.push(t)},this.getEmbeds=function(){return this.$embeds};var e=function(e,t){return("start"!=e||t.length)&&t.unshift(this.nextState,e),this.nextState},t=function(e,t){return t.shift(),t.shift()||"start"};this.normalizeRules=function(){var i=0,n=this.$rules;Object.keys(n).forEach((function r(o){var a=n[o];a.processed=!0;for(var s=0;s<a.length;s++){var c=a[s],l=null;Array.isArray(c)&&(l=c,c={}),!c.regex&&c.start&&(c.regex=c.start,c.next||(c.next=[]),c.next.push({defaultToken:c.token},{token:c.token+".end",regex:c.end||c.start,next:"pop"}),c.token=c.token+".start",c.push=!0);var u=c.next||c.push;if(u&&Array.isArray(u)){var d=c.stateName;d||("string"!=typeof(d=c.token)&&(d=d[0]||""),n[d]&&(d+=i++)),n[d]=u,c.next=d,r(d)}else"pop"==u&&(c.next=t);if(c.push&&(c.nextState=c.next||c.push,c.next=e,delete c.push),c.rules)for(var h in c.rules)n[h]?n[h].push&&n[h].push.apply(n[h],c.rules[h]):n[h]=c.rules[h];var p="string"==typeof c?c:c.include;if(p&&(l=Array.isArray(p)?p.map((function(e){return n[e]})):n[p]),l){var m=[s,1].concat(l);c.noEscape&&(m=m.filter((function(e){return!e.next}))),a.splice.apply(a,m),s--}c.keywordMap&&(c.token=this.createKeywordMapper(c.keywordMap,c.defaultToken||"text",c.caseInsensitive),delete c.defaultToken)}}),this)},this.createKeywordMapper=function(e,t,i,n){var r=Object.create(null);return Object.keys(e).forEach((function(t){var o=e[t];i&&(o=o.toLowerCase());for(var a=o.split(n||"|"),s=a.length;s--;)r[a[s]]=t})),Object.getPrototypeOf(r)&&(r.__proto__=null),this.$keywordList=Object.keys(r),e=null,i?function(e){return r[e.toLowerCase()]||t}:function(e){return r[e]||t}},this.getKeywords=function(){return this.$keywords}}).call(r.prototype),t.TextHighlightRules=r})),ace.define("ace/mode/behaviour",["require","exports","module"],(function(e,t,i){var n=function(){this.$behaviours={}};(function(){this.add=function(e,t,i){switch(void 0){case this.$behaviours:this.$behaviours={};case this.$behaviours[e]:this.$behaviours[e]={}}this.$behaviours[e][t]=i},this.addBehaviours=function(e){for(var t in e)for(var i in e[t])this.add(t,i,e[t][i])},this.remove=function(e){this.$behaviours&&this.$behaviours[e]&&delete this.$behaviours[e]},this.inherit=function(e,t){if("function"==typeof e)var i=(new e).getBehaviours(t);else i=e.getBehaviours(t);this.addBehaviours(i)},this.getBehaviours=function(e){if(e){for(var t={},i=0;i<e.length;i++)this.$behaviours[e[i]]&&(t[e[i]]=this.$behaviours[e[i]]);return t}return this.$behaviours}}).call(n.prototype),t.Behaviour=n})),ace.define("ace/token_iterator",["require","exports","module","ace/range"],(function(e,t,i){var n=e("./range").Range,r=function(e,t,i){this.$session=e,this.$row=t,this.$rowTokens=e.getTokens(t);var n=e.getTokenAt(t,i);this.$tokenIndex=n?n.index:-1};(function(){this.stepBackward=function(){for(this.$tokenIndex-=1;this.$tokenIndex<0;){if(this.$row-=1,this.$row<0)return this.$row=0,null;this.$rowTokens=this.$session.getTokens(this.$row),this.$tokenIndex=this.$rowTokens.length-1}return this.$rowTokens[this.$tokenIndex]},this.stepForward=function(){var e;for(this.$tokenIndex+=1;this.$tokenIndex>=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;r<n.length;r++)if("comment"===n[r].type)return!0}}function y(e){for(var t=i;t<=n;t++)e(r.getLine(t),t)}var w=1/0;y((function(e,t){var i=e.search(/\S/);-1!==i?(i<c&&(c=i),a&&!v(e,t)&&(a=!1)):w>e.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;t<i.length;t++)!function(e){var n=i[t],r=e[n];e[i[t]]=function(){return this.$delegator(n,arguments,r)}}(this)},this.$delegator=function(e,t,i){var n=t[0];"string"!=typeof n&&(n=n[0]);for(var r=0;r<this.$embeds.length;r++)if(this.$modes[this.$embeds[r]]){var o=n.split(this.$embeds[r]);if(!o[0]&&o[1]){t[0]=o[1];var a=this.$modes[this.$embeds[r]];return a[e].apply(a,t)}}var s=i.apply(this,t);return i?s:void 0},this.transformAction=function(e,t,i,n,r){if(this.$behaviour){var o=this.$behaviour.getBehaviours();for(var a in o)if(o[a][t]){var s=o[a][t].apply(this,arguments);if(s)return s}}},this.getKeywords=function(e){if(!this.completionKeywords){var t=this.$tokenizer.rules,i=[];for(var n in t)for(var r=t[n],o=0,a=r.length;o<a;o++)if("string"==typeof r[o].token)/keyword|support|storage/.test(r[o].token)&&i.push(r[o].regex);else if("object"==typeof r[o].token)for(var s=0,c=r[o].token.length;s<c;s++)if(/keyword|support|storage/.test(r[o].token[s])){n=r[o].regex.match(/\(.+?\)/g)[s];i.push(n.substr(1,n.length-2))}this.completionKeywords=i}return e?i.concat(this.$keywordList||[]):this.$keywordList},this.$createKeywordList=function(){return this.$highlightRules||this.getTokenizer(),this.$keywordList=this.$highlightRules.$keywordList||[]},this.getCompletions=function(e,t,i,n){return(this.$keywordList||this.$createKeywordList()).map((function(e){return{name:e,value:e,score:0,meta:"keyword"}}))},this.$id="ace/mode/text"}).call(u.prototype),t.Mode=u})),ace.define("ace/apply_delta",["require","exports","module"],(function(e,t,i){t.applyDelta=function(e,t,i){var n=t.start.row,r=t.start.column,o=e[n]||"";switch(t.action){case"insert":if(1===t.lines.length)e[n]=o.substring(0,r)+t.lines[0]+o.substring(r);else{var a=[n,1].concat(t.lines);e.splice.apply(e,a),e[n]=o.substring(0,r)+e[n],e[n+t.lines.length-1]+=o.substring(r)}break;case"remove":var s=t.end.column,c=t.end.row;n===c?e[n]=o.substring(0,r)+o.substring(s):e.splice(n,c-n+1,o.substring(0,r)+e[c].substring(s))}}})),ace.define("ace/anchor",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],(function(e,t,i){var n=e("./lib/oop"),r=e("./lib/event_emitter").EventEmitter,o=t.Anchor=function(e,t,i){this.$onChange=this.onChange.bind(this),this.attach(e),void 0===i?this.setPosition(t.row,t.column):this.setPosition(t,i)};(function(){function e(e,t,i){var n=i?e.column<=t.column:e.column<t.column;return e.row<t.row||e.row==t.row&&n}n.implement(this,r),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.$insertRight=!1,this.onChange=function(t){if(!(t.start.row==t.end.row&&t.start.row!=this.row||t.start.row>this.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()))<this.getLength()?(t=t.concat([""]),i=0):(t=[""].concat(t),e--,i=this.$lines[e].length),this.insertMergedLines({row:e,column:i},t)},this.insertMergedLines=function(e,t){var i=this.clippedPos(e.row,e.column),n={row:i.row+t.length-1,column:(1==t.length?i.column:0)+t[t.length-1].length};return this.applyDelta({start:i,end:n,action:"insert",lines:t}),this.clonePos(n)},this.remove=function(e){var t=this.clippedPos(e.start.row,e.start.column),i=this.clippedPos(e.end.row,e.end.column);return this.applyDelta({start:t,end:i,action:"remove",lines:this.getLinesForRange({start:t,end:i})}),this.clonePos(t)},this.removeInLine=function(e,t,i){var n=this.clippedPos(e,t),r=this.clippedPos(e,i);return this.applyDelta({start:n,end:r,action:"remove",lines:this.getLinesForRange({start:n,end:r})},!0),this.clonePos(n)},this.removeFullLines=function(e,t){e=Math.min(Math.max(0,e),this.getLength()-1);var i=(t=Math.min(Math.max(0,t),this.getLength()-1))==this.getLength()-1&&e>0,n=t<this.getLength()-1,r=i?e-1:e,o=i?this.getLine(r).length:0,s=n?t+1:t,c=n?0:this.getLine(s).length,l=new a(r,o,s,c),u=this.$lines.slice(e,t+1);return this.applyDelta({start:l.start,end:l.end,action:"remove",lines:this.getLinesForRange(l)}),u},this.removeNewLine=function(e){e<this.getLength()-1&&e>=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<e.length;t++)this.applyDelta(e[t])},this.revertDeltas=function(e){for(var t=e.length-1;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;r<o;r++)if((e-=i[r].length+n)<0)return{row:r,column:e+i[r].length+n};return{row:o-1,column:i[o-1].length}},this.positionToIndex=function(e,t){for(var i=this.$lines||this.getAllLines(),n=this.getNewLineCharacter().length,r=0,o=Math.min(e.row,i.length),a=t||0;a<o;++a)r+=i[a].length+n;return r+e.column}}).call(c.prototype),t.Document=c})),ace.define("ace/background_tokenizer",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],(function(e,t,i){var n=e("./lib/oop"),r=e("./lib/event_emitter").EventEmitter,o=function(e,t){this.running=!1,this.lines=[],this.states=[],this.currentLine=0,this.tokenizer=e;var i=this;this.$worker=function(){if(i.running){for(var e=new Date,t=i.currentLine,n=-1,r=i.doc,o=t;i.lines[t];)t++;var a=r.getLength(),s=0;for(i.running=!1;t<a;){i.$tokenizeRow(t),n=t;do{t++}while(i.lines[t]);if(++s%5==0&&new Date-e>20){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.row<this.startRow||e.endRow>this.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;c<a.length;c++){if(-1==(r=(n=a[c]).range.compareStart(t,i)))return void e(null,t,i,o,s);if(!e(null,n.start.row,n.start.column,o,s)&&e(n.placeholder,n.start.row,n.start.column,o)||0===r)return;s=!n.sameRow,o=n.end.column}e(null,t,i,o,s)},this.getNextFoldTo=function(e,t){for(var i,n,r=0;r<this.folds.length;r++){if(-1==(n=(i=this.folds[r]).range.compareEnd(e,t)))return{fold:i,kind:"after"};if(0===n)return{fold:i,kind:"inside"}}return null},this.addRemoveChars=function(e,t,i){var n,r,o=this.getNextFoldTo(e,t);if(o)if(n=o.fold,"inside"==o.kind&&n.start.column!=t&&n.start.row!=e)window.console&&window.console.log(e,t,n);else if(n.start.row==e){var a=(r=this.folds).indexOf(n);for(0===a&&(this.start.column+=i);a<r.length;a++){if((n=r[a]).start.column+=i,!n.sameRow)return;n.end.column+=i}this.end.column+=i}},this.split=function(e,t){var i=this.getNextFoldTo(e,t);if(!i||"inside"==i.kind)return null;var n=i.fold,o=this.folds,a=this.foldData,s=o.indexOf(n),c=o[s-1];this.end.row=c.end.row,this.end.column=c.end.column;var l=new r(a,o=o.splice(s,o.length-s));return a.splice(a.indexOf(this)+1,0,l),l},this.merge=function(e){for(var t=e.folds,i=0;i<t.length;i++)this.addFold(t[i]);var n=this.foldData;n.splice(n.indexOf(e),1)},this.toString=function(){var e=[this.range.toString()+": ["];return this.folds.forEach((function(t){e.push(" "+t.toString())})),e.push("]"),e.join("\n")},this.idxToPosition=function(e){for(var t=0,i=0;i<this.folds.length;i++){var n=this.folds[i];if((e-=n.start.column-t)<0)return{row:n.start.row,column:n.start.column+e};if((e-=n.placeholder.length)<0)return n.start;t=n.end.column}return{row:this.end.row,column:this.end.column+e}}}).call(r.prototype),t.FoldLine=r})),ace.define("ace/range_list",["require","exports","module","ace/range"],(function(e,t,i){var n=e("./range").Range.comparePoints,r=function(){this.ranges=[]};(function(){this.comparePoints=n,this.pointIndex=function(e,t,i){for(var r=this.ranges,o=i||0;o<r.length;o++){var a=r[o],s=n(e,a.end);if(!(s>0)){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<i.length;o++){e=r,r=i[o];var a=n(e.end,r.start);a<0||(0!=a||e.isEmpty()||r.isEmpty())&&(n(e.end,r.end)<0&&(e.end.row=r.end.row,e.end.column=r.end.column),i.splice(o,1),t.push(r),r=e,o--)}return this.ranges=i,t},this.contains=function(e,t){return this.pointIndex({row:e,column:t})>=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.row<e)return[];var n=this.pointIndex({row:e,column:0});n<0&&(n=-n-1);var r=this.pointIndex({row:t,column:0},n);r<0&&(r=-r-1);for(var o=[],a=n;a<r;a++)o.push(i[a]);return o},this.removeAll=function(){return this.ranges.splice(0,this.ranges.length)},this.attach=function(e){this.session&&this.detach(),this.session=e,this.onChange=this.$onChange.bind(this),this.session.on("change",this.onChange)},this.detach=function(){this.session&&(this.session.removeListener("change",this.onChange),this.session=null)},this.$onChange=function(e){if("insert"==e.action)var t=e.start,i=e.end;else i=e.start,t=e.end;for(var n=t.row,r=i.row-n,o=-t.column+i.column,a=this.ranges,s=0,c=a.length;s<c;s++){if(!((l=a[s]).end.row<n)){if(l.start.row>n)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&&s<c-1&&l.end.column>l.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<c)for(;s<c;s++){var l;(l=a[s]).start.row+=r,l.end.row+=r}}}).call(r.prototype),t.RangeList=r})),ace.define("ace/edit_session/fold",["require","exports","module","ace/range","ace/range_list","ace/lib/oop"],(function(e,t,i){e("../range").Range;var n=e("../range_list").RangeList,r=e("../lib/oop"),o=t.Fold=function(e,t){this.foldLine=null,this.placeholder=t,this.range=e,this.start=e.start,this.end=e.end,this.sameRow=e.start.row==e.end.row,this.subFolds=this.ranges=[]};function a(e,t){e.row-=t.row,0==e.row&&(e.column-=t.column)}function s(e,t){0==e.row&&(e.column+=t.column),e.row+=t.row}r.inherits(o,n),function(){this.toString=function(){return'"'+this.placeholder+'" '+this.range.toString()},this.setFoldLine=function(e){this.foldLine=e,this.subFolds.forEach((function(t){t.setFoldLine(e)}))},this.clone=function(){var e=this.range.clone(),t=new o(e,this.placeholder);return this.subFolds.forEach((function(e){t.subFolds.push(e.clone())})),t.collapseChildren=this.collapseChildren,t},this.addSubFold=function(e){if(!this.range.isEqual(e)){if(!this.range.containsRange(e))throw new Error("A fold can't intersect already existing fold"+e.range+this.range);var t,i;t=e,i=this.start,a(t.start,i),a(t.end,i);for(var n=e.start.row,r=e.start.column,o=0,s=-1;o<this.subFolds.length&&1==(s=this.subFolds[o].range.compare(n,r));o++);var c=this.subFolds[o];if(0==s)return c.addSubFold(e);n=e.range.end.row,r=e.range.end.column;var l=o;for(s=-1;l<this.subFolds.length&&1==(s=this.subFolds[l].range.compare(n,r));l++);if(this.subFolds[l],0==s)throw new Error("A fold can't intersect already existing fold"+e.range+this.range);return this.subFolds.splice(o,l-o,e),e.setFoldLine(this.foldLine),e}},this.restoreRange=function(e){return function(e,t){s(e.start,t),s(e.end,t)}(e,this.start)}}.call(o.prototype)})),ace.define("ace/edit_session/folding",["require","exports","module","ace/range","ace/edit_session/fold_line","ace/edit_session/fold","ace/token_iterator"],(function(e,t,i){var n=e("../range").Range,r=e("./fold_line").FoldLine,o=e("./fold").Fold,a=e("../token_iterator").TokenIterator;t.Folding=function(){this.getFoldAt=function(e,t,i){var n=this.getFoldLine(e);if(!n)return null;for(var r=n.folds,o=0;o<r.length;o++){var a=r[o];if(a.range.contains(e,t)){if(1==i&&a.range.isEnd(e,t))continue;if(-1==i&&a.range.isStart(e,t))continue;return a}}},this.getFoldsInRange=function(e){var t=e.start,i=e.end,n=this.$foldData,r=[];t.column+=1,i.column-=1;for(var o=0;o<n.length;o++){var a=n[o].range.compareRange(e);if(2!=a){if(-2==a)break;for(var s=n[o].folds,c=0;c<s.length;c++){var l=s[c];if(-2==(a=l.range.compareRange(e)))break;if(2!=a){if(42==a)break;r.push(l)}}}}return t.column-=1,i.column+=1,r},this.getFoldsInRangeList=function(e){if(Array.isArray(e)){var t=[];e.forEach((function(e){t=t.concat(this.getFoldsInRange(e))}),this)}else t=this.getFoldsInRange(e);return t},this.getAllFolds=function(){for(var e=[],t=this.$foldData,i=0;i<t.length;i++)for(var n=0;n<t[i].folds.length;n++)e.push(t[i].folds[n]);return e},this.getFoldStringAt=function(e,t,i,n){if(!(n=n||this.getFoldLine(e)))return null;for(var r,o,a={end:{column:0}},s=0;s<n.folds.length;s++){var c=(o=n.folds[s]).range.compareEnd(e,t);if(-1==c){r=this.getLine(o.start.row).substring(a.end.column,o.start.column);break}if(0===c)return null;a=o}return r||(r=this.getLine(o.start.row).substring(a.end.column)),-1==i?r.substring(0,t-a.end.column):1==i?r.substring(t-a.end.column):r},this.getFoldLine=function(e,t){var i=this.$foldData,n=0;for(t&&(n=i.indexOf(t)),-1==n&&(n=0);n<i.length;n++){var r=i[n];if(r.start.row<=e&&r.end.row>=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<i.length;n++){var r=i[n];if(r.end.row>=e)return r}return null},this.getFoldedRowCount=function(e,t){for(var i=this.$foldData,n=t-e+1,r=0;r<i.length;r++){var o=i[r],a=o.end.row,s=o.start.row;if(a>=t){s<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(!(s<l||s==l&&c<=u-2))throw new Error("The range has to be at least 2 characters width");var d=this.getFoldAt(s,c,1),h=this.getFoldAt(l,u,-1);if(d&&h==d)return d.addSubFold(i);d&&!d.range.isStart(s,c)&&this.removeFold(d),h&&!h.range.isEnd(l,u)&&this.removeFold(h);var p=this.getFoldsInRange(i.range);p.length>0&&(this.removeFolds(p),p.forEach((function(e){i.addSubFold(e)})));for(var m=0;m<n.length;m++){var f=n[m];if(l==f.start.row){f.addFold(i),a=!0;break}if(s==f.end.row){if(f.addFold(i),a=!0,!i.sameRow){var g=n[m+1];if(g&&g.start.row==l){f.merge(g);break}}break}if(l<=f.start.row)break}return a||(f=this.$addFoldLine(new r(this.$foldData,i))),this.$useWrapMode?this.$updateWrapData(f.start.row,f.start.row):this.$updateRowLengthCache(f.start.row,f.start.row),this.$modified=!0,this._signal("changeFold",{data:i,action:"add"}),i},this.addFolds=function(e){e.forEach((function(e){this.addFold(e)}),this)},this.removeFold=function(e){var t=e.foldLine,i=t.start.row,n=t.end.row,r=this.$foldData,o=t.folds;if(1==o.length)r.splice(r.indexOf(t),1);else if(t.range.isEnd(e.end.row,e.end.column))o.pop(),t.end.row=o[o.length-1].end.row,t.end.column=o[o.length-1].end.column;else if(t.range.isStart(e.start.row,e.start.column))o.shift(),t.start.row=o[0].start.row,t.start.column=o[0].start.column;else if(e.sameRow)o.splice(o.indexOf(e),1);else{var a=t.split(e.start.row,e.start.column);(o=a.folds).shift(),a.start.row=o[0].start.row,a.start.column=o[0].start.column}this.$updating||(this.$useWrapMode?this.$updateWrapData(i,n):this.$updateRowLengthCache(i,n)),this.$modified=!0,this._signal("changeFold",{data:e,action:"remove"})},this.removeFolds=function(e){for(var t=[],i=0;i<e.length;i++)t.push(e[i]);t.forEach((function(e){this.removeFold(e)}),this),this.$modified=!0},this.expandFold=function(e){this.removeFold(e),e.subFolds.forEach((function(t){e.restoreRange(t),this.addFold(t)}),this),e.collapseChildren>0&&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(!(t<n)){if(t==n){if(i<r)return;s=Math.max(r,s)}a+=null!=e?e:o.getLine(t).substring(s,i)}}),t,i),a},this.getDisplayLine=function(e,t,i,n){var r,o=this.getFoldLine(e);return o?this.getFoldDisplayLine(o,e,t,i,n):(r=this.doc.getLine(e)).substring(n||0,t||r.length)},this.$cloneFoldData=function(){var e=[];return e=this.$foldData.map((function(t){var i=t.folds.map((function(e){return e.clone()}));return new r(e,i)}))},this.toggleFold=function(e){var t,i,n=this.selection.getRange();if(n.isEmpty()){var r=n.start;if(t=this.getFoldAt(r.row,r.column))return void this.expandFold(t);(i=this.findMatchingBracket(r))?1==n.comparePoint(i)?n.end=i:(n.start=i,n.start.column++,n.end.column--):(i=this.findMatchingBracket({row:r.row,column:r.column+1}))?(1==n.comparePoint(i)?n.end=i:n.start=i,n.start.column++):n=this.getCommentFoldRange(r.row,r.column)||n}else{var o=this.getFoldsInRange(n);if(e&&o.length)return void this.expandFolds(o);1==o.length&&(t=o[0])}if(t||(t=this.getFoldAt(n.start.row,n.start.column)),t&&t.range.toString()==n.toString())this.expandFold(t);else{var a="...";if(!n.isMultiLine()){if((a=this.getTextRange(n)).length<4)return;a=a.trim().substring(0,2)+".."}this.addFold(a,n)}},this.getCommentFoldRange=function(e,t,i){var r=new a(this,e,t),o=r.getCurrentToken(),s=o.type;if(o&&/^comment|string/.test(s)){"comment"==(s=s.match(/comment|string/)[0])&&(s+="|doc-start");var c=new RegExp(s),l=new n;if(1!=i){do{o=r.stepBackward()}while(o&&c.test(o.type));r.stepForward()}if(l.start.row=r.getCurrentTokenRow(),l.start.column=r.getCurrentTokenColumn()+2,r=new a(this,e,t),-1!=i){var u=-1;do{if(o=r.stepForward(),-1==u){var d=this.getState(r.$row);c.test(d)||(u=r.$row)}else if(r.$row>u)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<t;r++)if(null==n[r]&&(n[r]=this.getFoldWidget(r)),"start"==n[r]){var o=this.getFoldWidgetRange(r);if(o&&o.isMultiLine()&&o.end.row<=t&&o.start.row>=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;c<u;){var d=l.charAt(c);if(d==r){if(0==(o-=1))return{row:a.getCurrentTokenRow(),column:c+a.getCurrentTokenColumn()}}else d==e&&(o+=1);c+=1}do{s=a.stepForward()}while(s&&!i.test(s.type));if(null==s)break;c=0}return null}}}})),ace.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(e,t,i){var n=e("./lib/oop"),r=e("./lib/lang"),o=e("./bidihandler").BidiHandler,a=e("./config"),s=e("./lib/event_emitter").EventEmitter,c=e("./selection").Selection,l=e("./mode/text").Mode,u=e("./range").Range,d=e("./document").Document,h=e("./background_tokenizer").BackgroundTokenizer,p=e("./search_highlight").SearchHighlight,m=function(e,t){this.$breakpoints=[],this.$decorations=[],this.$frontMarkers={},this.$backMarkers={},this.$markerId=1,this.$undoSelect=!0,this.$foldData=[],this.id="session"+ ++m.$uid,this.$foldData.toString=function(){return this.join("\n")},this.on("changeFold",this.onChangeFold.bind(this)),this.$onChange=this.onChange.bind(this),"object"==typeof e&&e.getLine||(e=new d(e)),this.$bidiHandler=new o(this),this.setDocument(e),this.selection=new c(this),a.resetOptions(this),this.setMode(t),a._signal("session",this)};m.$uid=0,function(){n.implement(this,s),this.setDocument=function(e){this.doc&&this.doc.removeListener("change",this.$onChange),this.doc=e,e.on("change",this.$onChange),this.bgTokenizer&&this.bgTokenizer.setDocument(this.getDocument()),this.resetCaches()},this.getDocument=function(){return this.doc},this.$resetRowCache=function(e){if(!e)return this.$docRowCache=[],void(this.$screenRowCache=[]);var t=this.$docRowCache.length,i=this.$getRowCacheIndex(this.$docRowCache,e)+1;t>i&&(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<o))return r;n=r-1}}return i-1},this.resetCaches=function(){this.$modified=!0,this.$wrapData=[],this.$rowLengthCache=[],this.$resetRowCache(0),this.bgTokenizer&&this.bgTokenizer.start(0)},this.onChangeFold=function(e){var t=e.data;this.$resetRowCache(t.start.row)},this.onChange=function(e){this.$modified=!0,this.$bidiHandler.onChange(e),this.$resetRowCache(e.start.row);var t=this.$updateInternalDataOnChange(e);this.$fromUndo||!this.$undoManager||e.ignore||(this.$deltasDoc.push(e),t&&0!=t.length&&this.$deltasFold.push({action:"removeFolds",folds:t}),this.$informUndoManager.schedule()),this.bgTokenizer&&this.bgTokenizer.$updateOnChange(e),this._signal("change",e)},this.setValue=function(e){this.doc.setValue(e),this.selection.moveTo(0,0),this.$resetRowCache(0),this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.setUndoManager(this.$undoManager),this.getUndoManager().reset()},this.getValue=this.toString=function(){return this.doc.getValue()},this.getSelection=function(){return this.selection},this.getState=function(e){return this.bgTokenizer.getState(e)},this.getTokens=function(e){return this.bgTokenizer.getTokens(e)},this.getTokenAt=function(e,t){var i,n=this.bgTokenizer.getTokens(e),r=0;if(null==t){var o=n.length-1;r=this.getLine(e).length}else for(o=0;o<n.length&&!((r+=n[o].value.length)>=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;t<e.length;t++)this.$breakpoints[e[t]]="ace_breakpoint";this._signal("changeBreakpoint",{})},this.clearBreakpoints=function(){this.$breakpoints=[],this._signal("changeBreakpoint",{})},this.setBreakpoint=function(e,t){void 0===t&&(t="ace_breakpoint"),t?this.$breakpoints[e]=t:delete this.$breakpoints[e],this._signal("changeBreakpoint",{})},this.clearBreakpoint=function(e){delete this.$breakpoints[e],this._signal("changeBreakpoint",{})},this.addMarker=function(e,t,i,n){var r=this.$markerId++,o={range:e,type:i||"line",renderer:"function"==typeof i?i:null,clazz:t,inFront:!!n,id:r};return n?(this.$frontMarkers[r]=o,this._signal("changeFrontMarker")):(this.$backMarkers[r]=o,this._signal("changeBackMarker")),r},this.addDynamicMarker=function(e,t){if(e.update){var i=this.$markerId++;return e.id=i,e.inFront=!!t,t?(this.$frontMarkers[i]=e,this._signal("changeFrontMarker")):(this.$backMarkers[i]=e,this._signal("changeBackMarker")),e}},this.removeMarker=function(e){var t=this.$frontMarkers[e]||this.$backMarkers[e];if(t){var i=t.inFront?this.$frontMarkers:this.$backMarkers;t&&(delete i[e],this._signal(t.inFront?"changeFrontMarker":"changeBackMarker"))}},this.getMarkers=function(e){return e?this.$frontMarkers:this.$backMarkers},this.highlight=function(e){if(!this.$searchHighlight){var t=new p(null,"ace_selected-word","text");this.$searchHighlight=this.addDynamicMarker(t)}this.$searchHighlight.setRegexp(e)},this.highlightLines=function(e,t,i,n){"number"!=typeof t&&(i=t,t=e),i||(i="ace_step");var r=new u(e,0,t,1/0);return r.id=this.addMarker(r,i,"fullLine",n),r},this.setAnnotations=function(e){this.$annotations=e,this._signal("changeAnnotation",{})},this.getAnnotations=function(){return this.$annotations||[]},this.clearAnnotations=function(){this.setAnnotations([])},this.$detectNewLine=function(e){var t=e.match(/^.*?(\r?\n)/m);this.$autoNewLine=t?t[1]:"\n"},this.getWordRange=function(e,t){var i=this.getLine(e),n=!1;if(t>0&&(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;a<i.length&&i.charAt(a).match(r);)a++;return new u(e,o,e,a)},this.getAWordRange=function(e,t){for(var i=this.getWordRange(e,t),n=this.getLine(i.end.row);n.charAt(i.end.column).match(/[ \t]/);)i.end.column+=1;return i},this.setNewLineMode=function(e){this.doc.setNewLineMode(e)},this.getNewLineMode=function(){return this.doc.getNewLineMode()},this.setUseWorker=function(e){this.setOption("useWorker",e)},this.getUseWorker=function(){return this.$useWorker},this.onReloadTokenizer=function(e){var t=e.data;this.bgTokenizer.start(t.first),this._signal("tokenizerUpdate",e)},this.$modes={},this.$mode=null,this.$modeId=null,this.setMode=function(e,t){if(e&&"object"==typeof e){if(e.getTokenizer)return this.$onChangeMode(e);var i=e,n=i.path}else n=e||"ace/mode/text";if(this.$modes["ace/mode/text"]||(this.$modes["ace/mode/text"]=new l),this.$modes[n]&&!i)return this.$onChangeMode(this.$modes[n]),void(t&&t());this.$modeId=n,a.loadModule(["mode",n],function(e){if(this.$modeId!==n)return t&&t();this.$modes[n]&&!i?this.$onChangeMode(this.$modes[n]):e&&e.Mode&&(e=new e.Mode(i),i||(this.$modes[n]=e,e.$id=n),this.$onChangeMode(e)),t&&t()}.bind(this)),this.$mode||this.$onChangeMode(this.$modes["ace/mode/text"],!0)},this.$onChangeMode=function(e,t){if(t||(this.$modeId=e.$id),this.$mode!==e){this.$mode=e,this.$stopWorker(),this.$useWorker&&this.$startWorker();var i=e.getTokenizer();if(void 0!==i.addEventListener){var n=this.onReloadTokenizer.bind(this);i.addEventListener("update",n)}if(this.bgTokenizer)this.bgTokenizer.setTokenizer(i);else{this.bgTokenizer=new h(i);var r=this;this.bgTokenizer.addEventListener("update",(function(e){r._signal("tokenizerUpdate",e)}))}this.bgTokenizer.setDocument(this.getDocument()),this.tokenRe=e.tokenRe,this.nonTokenRe=e.nonTokenRe,t||(e.attachToSession&&e.attachToSession(this),this.$options.wrapMethod.set.call(this,this.$wrapMethod),this.$setFolding(e.foldingRules),this.bgTokenizer.start(0),this._emit("changeMode"))}},this.$stopWorker=function(){this.$worker&&(this.$worker.terminate(),this.$worker=null)},this.$startWorker=function(){try{this.$worker=this.$mode.createWorker(this)}catch(e){a.warn("Could not load worker",e),this.$worker=null}},this.getMode=function(){return this.$mode},this.$scrollTop=0,this.setScrollTop=function(e){this.$scrollTop===e||isNaN(e)||(this.$scrollTop=e,this._signal("changeScrollTop",e))},this.getScrollTop=function(){return this.$scrollTop},this.$scrollLeft=0,this.setScrollLeft=function(e){this.$scrollLeft===e||isNaN(e)||(this.$scrollLeft=e,this._signal("changeScrollLeft",e))},this.getScrollLeft=function(){return this.$scrollLeft},this.getScreenWidth=function(){return this.$computeWidth(),this.lineWidgets?Math.max(this.getLineWidgetMaxWidth(),this.screenWidth):this.screenWidth},this.getLineWidgetMaxWidth=function(){if(null!=this.lineWidgetsWidth)return this.lineWidgetsWidth;var e=0;return this.lineWidgets.forEach((function(t){t&&t.screenWidth>e&&(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;c<s;c++){if(c>a){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;n<e.length;n++){var r=e[n];"doc"==r.group&&(this.doc.applyDeltas(r.deltas),i=this.$getUndoSelection(r.deltas,!1,i))}return this.$fromUndo=!1,i&&this.$undoSelect&&!t&&this.selection.setSelectionRange(i),i}},this.setUndoSelect=function(e){this.$undoSelect=e},this.$getUndoSelection=function(e,t,i){function n(e){return t?"insert"!==e.action:"insert"===e.action}var r,o,a=e[0];r=n(a)?u.fromPoints(a.start,a.end):u.fromPoints(a.start,a.start);for(var s=1;s<e.length;s++)n(a=e[s])?(o=a.start,-1==r.compare(o.row,o.column)&&r.setStart(o),o=a.end,1==r.compare(o.row,o.column)&&r.setEnd(o)):(o=a.start,-1==r.compare(o.row,o.column)&&(r=u.fromPoints(a.start,a.start)));if(null!=i){0===u.comparePoints(i.start,r.start)&&(i.start.column+=r.end.column-r.start.column,i.end.column+=r.end.column-r.start.column);var c=i.compareRange(r);1==c?r.setStart(i.start):-1==c&&r.setEnd(i.end)}return r},this.replace=function(e,t){return this.doc.replace(e,t)},this.moveText=function(e,t,i){var n=this.getTextRange(e),r=this.getFoldsInRange(e),o=u.fromPoints(t,t);if(!i){this.remove(e);var a=e.start.row-e.end.row;(l=a?-e.end.column:e.start.column-e.end.column)&&(o.start.row==e.end.row&&o.start.column>e.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;a<n&&" "==o.charAt(a);++a);a<n&&"\t"==o.charAt(a)?(i.start.column=a,i.end.column=a+1):(i.start.column=0,i.end.column=a),this.remove(i)}},this.$moveLines=function(e,t,i){if(e=this.getRowFoldStart(e),t=this.getRowFoldEnd(t),i<0){if((r=this.getRowFoldStart(e+i))<0)return 0;var n=r-e}else if(i>0){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<l.length;u++){(f=l[u]).start.row>=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<l.length;u++){var f;(f=l[u]).start.row>=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<c.length;l++)c[l]=t}else c=this.$getDisplayTokens(a[n].substring(s,o),r.length);r=r.concat(c)}.bind(this),o.end.row,a[o.end.row].length+1),c[o.start.row]=this.$computeWrapSplits(r,l,s),u=o.end.row+1):(r=this.$getDisplayTokens(a[u]),c[u]=this.$computeWrapSplits(r,l,s),u++)};var e=3,t=4;function i(e){return!(e<4352)&&(e>=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;t<i.length;t++){var n=i[t];if(10==n)e+=1;else{if(11!=n){if(12==n)continue;break}e+=r}}return l&&!1!==u&&(e+=r),Math.min(e,d)}(),o.indent=p),c+=n,o.push(c),s=e}for(var p=0;a-s>n-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]<e;)m--;if(l){for(;m>f&&i[m]<e;)m--;for(;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;m<i.length&&i[m]==t;m++);if(m==i.length)break;h(m)}}return o},this.$getDisplayTokens=function(e,t){var n,r=[];t=t||0;for(var o=0;o<e.length;o++){var a=e.charCodeAt(o);if(9==a){n=this.getScreenTabSize(r.length+t),r.push(11);for(var s=1;s<n;s++)r.push(12)}else 32==a?r.push(10):a>39&&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<e.length&&(9==(r=e.charCodeAt(o))?n+=this.getScreenTabSize(n):r>=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]<t.column?i.indent:0}return 0},this.getScreenLastRowColumn=function(e){var t=this.screenToDocumentPosition(e,Number.MAX_VALUE);return this.documentToScreenColumn(t.row,t.column)},this.getDocumentLastRowColumn=function(e,t){var i=this.documentToScreenRow(e,t);return this.getScreenLastRowColumn(i)},this.getDocumentLastRowColumnPosition=function(e,t){var i=this.documentToScreenRow(e,t);return this.screenToDocumentPosition(i,Number.MAX_VALUE/10)},this.getRowSplitData=function(e){return this.$useWrapMode?this.$wrapData[e]:void 0},this.getScreenTabSize=function(e){return this.$tabSize-e%this.$tabSize},this.screenToDocumentRow=function(e,t){return this.screenToDocumentPosition(e,t).row},this.screenToDocumentColumn=function(e,t){return this.screenToDocumentPosition(e,t).column},this.screenToDocumentPosition=function(e,t,i){if(e<0)return{row:0,column:0};var n,r,o=0,a=0,s=0,c=0,l=this.$screenRowCache,u=this.$getRowCacheIndex(l,e),d=l.length;if(d&&u>=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<e;){if(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);n<i;){var o=this.$wrapData[n];e+=o?o.length+1:1,++n>r&&(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;s<a.length;s++)e-=(t=a[s]).end.row-t.start.row}return this.lineWidgets&&(e+=this.$getWidgetScreenLength()),e},this.$setFontMetrics=function(e){this.$enableVarChar&&(this.$getStringScreenWidth=function(t,i,n){if(0===i)return[0,0];var r,o;for(i||(i=1/0),n=n||0,o=0;o<t.length&&!((n+="\t"===(r=t.charAt(o))?this.getScreenTabSize(n):e.getCharacterWidth(r))>i);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;h<l;h++)if(-1==r[d+h].search(s[h]))continue e;var p=r[d],m=r[d+l-1],f=p.length-p.match(s[0])[0].length,g=m.match(s[l-1])[0].length;c&&c.end.row===d&&c.end.column>f||(a.push(c=new o(d,f,d+l-1,g)),l>2&&(d=d+l-2))}}else for(var _=0;_<r.length;_++){var b=n.getMatchOffsets(r[_],s);for(h=0;h<b.length;h++){var v=b[h];a.push(new o(_,v.offset,_,v.offset+v.length))}}if(i){var y=i.start.column,w=i.start.column;for(_=0,h=a.length-1;_<h&&a[_].start.column<y&&a[_].start.row==i.start.row;)_++;for(;_<h&&a[h].end.column>w&&a[h].end.row==i.end.row;)h--;for(a=a.slice(_,h+1),_=0,h=a.length;_<h;_++)a[_].start.row+=i.start.row,a[_].end.row+=i.start.row}return a},this.replace=function(e,t){var i=this.$options,n=this.$assembleRegExp(i);if(i.$isMultiLine)return t;if(n){var r=n.exec(e);if(!r||r[0].length!=e.length)return null;if(t=e.replace(n,t),i.preserveCase){t=t.split("");for(var o=Math.min(e.length,e.length);o--;){var a=e[o];a&&a.toLowerCase()!=a?t[o]=t[o].toUpperCase():t[o]=t[o].toLowerCase()}t=t.join("")}return t}},this.$assembleRegExp=function(e,t){if(e.needle instanceof RegExp)return e.re=e.needle;var i=e.needle;if(!e.needle)return e.re=!1;e.regExp||(i=n.escapeRegExp(i)),e.wholeWord&&(i=function(e,t){function i(e){return/\w/.test(e)||t.regExp?"\\b":""}return i(e[0])+e+i(e[e.length-1])}(i,e));var r=e.caseSensitive?"gm":"gmi";if(e.$isMultiLine=!t&&/[\n\r]/.test(i),e.$isMultiLine)return e.re=this.$assembleMultilineRegExp(i,r);try{var o=new RegExp(i,r)}catch(a){o=!1}return e.re=o},this.$assembleMultilineRegExp=function(e,t){for(var i=e.replace(/\r\n|\r|\n/g,"$\n^").split("\n"),n=[],r=0;r<i.length;r++)try{n.push(new RegExp(i[r],t))}catch(o){return!1}return n},this.$matchIterator=function(e,t){var i=this.$assembleRegExp(t);if(!i)return!1;var n=1==t.backwards,r=0!=t.skipCurrent,o=t.range,a=t.start;a||(a=o?o[n?"end":"start"]:e.selection.getRange()),a.start&&(a=a[r!=n?"end":"start"]);var s=o?o.start.row:0,c=o?o.end.row:e.getLength()-1;if(n)var l=function(e){var i=a.row;if(!d(i,a.column,e)){for(i--;i>=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&&c<r||-1===c)){for(var l=1;l<u;l++)if(-1==(s=e.getLine(a+l)).search(i[l]))return;var d=s.match(i[u-1])[0].length;if(!(n&&d>r))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;r<a.length;r++){if(e(a[r])>n)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+1<e.session.doc.getLength()-1&&(c+=e.session.doc.getNewLineCharacter()),e.clearSelection(),e.session.doc.replace(new o(i.row,0,r.row+2,0),c),s>0?(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;a<n.length;a++)a==n.length-1&&(n[a].end.row===t&&n[a].end.column===i||r.push(new o(n[a].end.row,n[a].end.column,t,i))),0===a?0===n[a].start.row&&0===n[a].start.column||r.push(new o(0,0,n[a].start.row,n[a].start.column)):r.push(new o(n[a-1].end.row,n[a-1].end.column,n[a].start.row,n[a].start.column));e.exitMultiSelectMode(),e.clearSelection();for(a=0;a<r.length;a++)e.selection.addRange(r[a],!1)},readOnly:!0,scrollIntoView:"none"}]})),ace.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(e,t,i){e("./lib/fixoldbrowsers");var n=e("./lib/oop"),r=e("./lib/dom"),o=e("./lib/lang"),a=e("./lib/useragent"),s=e("./keyboard/textinput").TextInput,c=e("./mouse/mouse_handler").MouseHandler,l=e("./mouse/fold_handler").FoldHandler,u=e("./keyboard/keybinding").KeyBinding,d=e("./edit_session").EditSession,h=e("./search").Search,p=e("./range").Range,m=e("./lib/event_emitter").EventEmitter,f=e("./commands/command_manager").CommandManager,g=e("./commands/default_commands").commands,_=e("./config"),b=e("./token_iterator").TokenIterator,v=function(e,t){var i=e.getContainerElement();this.container=i,this.renderer=e,this.id="editor"+ ++v.$uid,this.commands=new f(a.isMac?"mac":"win",g),"object"==typeof document&&(this.textInput=new s(e.getTextAreaContainer(),this),this.renderer.textarea=this.textInput.getElement(),this.$mouseHandler=new c(this),new l(this)),this.keyBinding=new u(this),this.$blockScrolling=0,this.$search=(new h).set({wrap:!0}),this.$historyTracker=this.$historyTracker.bind(this),this.commands.on("exec",this.$historyTracker),this.$initOperationListeners(),this._$emitInputEvent=o.delayedCall(function(){this._signal("input",{}),this.session&&this.session.bgTokenizer&&this.session.bgTokenizer.scheduleStart()}.bind(this)),this.on("change",(function(e,t){t._$emitInputEvent.schedule(31)})),this.setSession(t||new d("")),_.resetOptions(this),_._signal("editor",this)};v.$uid=0,function(){n.implement(this,m),this.$initOperationListeners=function(){this.selections=[],this.commands.on("exec",this.startOperation.bind(this),!0),this.commands.on("afterExec",this.endOperation.bind(this),!0),this.$opResetTimer=o.delayedCall(this.endOperation.bind(this)),this.on("change",function(){this.curOp||this.startOperation(),this.curOp.docChanged=!0}.bind(this),!0),this.on("changeSelection",function(){this.curOp||this.startOperation(),this.curOp.selectionChanged=!0}.bind(this),!0)},this.curOp=null,this.prevOp={},this.startOperation=function(e){if(this.curOp){if(!e||this.curOp.command)return;this.prevOp=this.curOp}e||(this.previousCommand=null,e={}),this.$opResetTimer.schedule(),this.curOp={command:e.command||{},args:e.args,scrollTop:this.renderer.scrollTop},this.curOp.command.name&&void 0!==this.curOp.command.scrollIntoView&&this.$blockScrolling++},this.endOperation=function(e){if(this.curOp){if(e&&!1===e.returnValue)return this.curOp=null;this._signal("beforeEndOperation");var t=this.curOp.command;t.name&&this.$blockScrolling>0&&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++:"</"===s.value&&a--)}while(r&&a>=0);else{do{r=s,s=n.stepBackward(),r&&r.value===o&&-1!==r.type.indexOf("tag-name")&&("<"===s.value?a++:"</"===s.value&&a--)}while(s&&a<=0);n.stepForward()}if(!r)return t.removeMarker(t.$tagHighlight),void(t.$tagHighlight=null);var c=n.getCurrentTokenRow(),l=n.getCurrentTokenColumn(),u=new p(c,l,c,l+r.value.length),d=t.$backMarkers[t.$tagHighlight];t.$tagHighlight&&null!=d&&0!==u.compareRange(d.range)&&(t.removeMarker(t.$tagHighlight),t.$tagHighlight=null),u&&!t.$tagHighlight&&(t.$tagHighlight=t.addMarker(u,"ace_bracket","text"))}}}),50)}},this.focus=function(){var e=this;setTimeout((function(){e.textInput.focus()})),this.textInput.focus()},this.isFocused=function(){return this.textInput.isFocused()},this.blur=function(){this.textInput.blur()},this.onFocus=function(e){this.$isFocused||(this.$isFocused=!0,this.renderer.showCursor(),this.renderer.visualizeFocus(),this._emit("focus",e))},this.onBlur=function(e){this.$isFocused&&(this.$isFocused=!1,this.renderer.hideCursor(),this.renderer.visualizeBlur(),this._emit("blur",e))},this.$cursorChange=function(){this.renderer.updateCursor()},this.onDocumentChange=function(e){var t=this.session.$useWrapMode,i=e.start.row==e.end.row?e.end.row:1/0;this.renderer.updateLines(e.start.row,i,t),this._signal("change",e),this.$cursorChange(),this.$updateHighlightActiveLine()},this.onTokenizerUpdate=function(e){var t=e.data;this.renderer.updateLines(t.first,t.last)},this.onScrollTopChange=function(){this.renderer.scrollToY(this.session.getScrollTop())},this.onScrollLeftChange=function(){this.renderer.scrollToX(this.session.getScrollLeft())},this.onCursorChange=function(){this.$cursorChange(),this.$blockScrolling||(_.warn("Automatically scrolling cursor into view after selection change","this will be disabled in the next version","set editor.$blockScrolling = Infinity to disable this message"),this.renderer.scrollCursorIntoView()),this.$highlightBrackets(),this.$highlightTags(),this.$updateHighlightActiveLine(),this._signal("changeSelection")},this.$updateHighlightActiveLine=function(){var e,t=this.getSession();if(this.$highlightActiveLine&&("line"==this.$selectionStyle&&this.selection.isMultiLine()||(e=this.getCursorPosition()),!this.renderer.$maxLines||1!==this.session.getLength()||this.renderer.$minLines>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);t<r.length?(i=r.charAt(t)+r.charAt(t-1),n=new p(e.row,t-1,e.row,t+1)):(i=r.charAt(t-1)+r.charAt(t-2),n=new p(e.row,t-2,e.row,t)),this.session.replace(n,i),this.session.selection.moveToPosition(n.end)}}},this.toLowerCase=function(){var e=this.getSelectionRange();this.selection.isEmpty()&&this.selection.selectWord();var t=this.getSelectionRange(),i=this.session.getTextRange(t);this.session.replace(t,i.toLowerCase()),this.selection.setSelectionRange(e)},this.toUpperCase=function(){var e=this.getSelectionRange();this.selection.isEmpty()&&this.selection.selectWord();var t=this.getSelectionRange(),i=this.session.getTextRange(t);this.session.replace(t,i.toUpperCase()),this.selection.setSelectionRange(e)},this.indent=function(){var e=this.session,t=this.getSelectionRange();if(!(t.start.row<t.end.row)){if(t.start.column<t.end.column){var i=e.getTextRange(t);if(!/^\s+$/.test(i)){u=this.$getSelectedRows();return void e.indentRows(u.first,u.last,"\t")}}var n=e.getLine(t.start.row),r=t.start,a=e.getTabSize(),s=e.documentToScreenColumn(r.row,r.column);if(this.session.getUseSoftTabs())var c=a-s%a,l=o.stringRepeat(" ",c);else{for(c=s%a;" "==n[t.start.column-1]&&c;)t.start.column--,c--;this.selection.setSelectionRange(t),l="\t"}return this.insert(l)}var u=this.$getSelectedRows();e.indentRows(u.first,u.last,"\t")},this.blockIndent=function(){var e=this.$getSelectedRows();this.session.indentRows(e.first,e.last,"\t")},this.blockOutdent=function(){var e=this.session.getSelection();this.session.outdentRows(e.getRange())},this.sortLines=function(){for(var e=this.$getSelectedRows(),t=this.session,i=[],n=e.first;n<=e.last;n++)i.push(t.getLine(n));i.sort((function(e,t){return e.toLowerCase()<t.toLowerCase()?-1:e.toLowerCase()>t.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;){var r=i.exec(n);if(r.index<=t&&r.index+r[0].length>=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&&i<a?e*=Math.pow(10,o.end-i-1):e*=Math.pow(10,o.end-i),c+=e;var l=(c/=Math.pow(10,s)).toFixed(s),u=new p(t,o.start,t,o.end);this.session.replace(u,l),this.moveCursorTo(t,Math.max(o.start+1,i+l.length-o.value.length))}}},this.removeLines=function(){var e=this.$getSelectedRows();this.session.removeFullLines(e.first,e.last),this.clearSelection()},this.duplicateSelection=function(){var e=this.selection,t=this.session,i=e.getRange(),n=e.isBackwards();if(i.isEmpty()){var r=i.start.row;t.duplicateLines(r,r)}else{var o=n?i.start:i.end,a=t.insert(o,t.getTextRange(i),!1);i.start=o,i.end=a,e.setSelectionRange(i,n)}},this.moveLinesDown=function(){this.$moveLines(1,!1)},this.moveLinesUp=function(){this.$moveLines(-1,!1)},this.moveText=function(e,t,i){return this.session.moveText(e,t,i)},this.copyLinesUp=function(){this.$moveLines(-1,!0)},this.copyLinesDown=function(){this.$moveLines(1,!0)},this.$moveLines=function(e,t){var i,n,r=this.selection;if(!r.inMultiSelectMode||this.inVirtualSelectionMode){var o=r.toOrientedRange();i=this.$getSelectedRows(o),n=this.session.$moveLines(i.first,i.last,t?0:e),t&&-1==e&&(n=0),o.moveBy(n,0),r.fromOrientedRange(o)}else{var a=r.rangeList.ranges;r.rangeList.detach(this.session),this.inVirtualSelectionMode=!0;for(var s=0,c=0,l=a.length,u=0;u<l;u++){var d=u;a[u].moveBy(s,0);for(var h=(i=this.$getSelectedRows(a[u])).first,p=i.last;++u<l;){c&&a[u].moveBy(c,0);var m=this.$getSelectedRows(a[u]);if(t&&m.first!=p)break;if(!t&&m.first>p+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<o.value.length&&!c;u++)if(d[o.value[u]])switch(s=d[o.value[u]]+"."+o.type.replace("rparen","lparen"),isNaN(l[s])&&(l[s]=0),o.value[u]){case"(":case"[":case"{":l[s]++;break;case")":case"]":case"}":l[s]--,-1===l[s]&&(a="bracket",c=!0)}}else o&&-1!==o.type.indexOf("tag-name")&&(isNaN(l[o.value])&&(l[o.value]=0),"<"===r.value?l[o.value]++:"</"===r.value&&l[o.value]--,-1===l[o.value]&&(a="tag",c=!0));c||(r=o,o=n.stepForward(),u=0)}while(o&&!c);if(a){var h,m;if("bracket"===a)(h=this.session.getBracketRange(i))||(m=(h=new p(n.getCurrentTokenRow(),n.getCurrentTokenColumn()+u-1,n.getCurrentTokenRow(),n.getCurrentTokenColumn()+u-1)).start,(t||m.row===i.row&&Math.abs(m.column-i.column)<2)&&(h=this.session.getBracketRange(m)));else if("tag"===a){if(!o||-1===o.type.indexOf("tag-name"))return;var f=o.value;if(0===(h=new p(n.getCurrentTokenRow(),n.getCurrentTokenColumn()-2,n.getCurrentTokenRow(),n.getCurrentTokenColumn()-2)).compare(i.row,i.column)){c=!1;do{o=r,(r=n.stepBackward())&&(-1!==r.type.indexOf("tag-close")&&h.setEnd(n.getCurrentTokenRow(),n.getCurrentTokenColumn()+1),o.value===f&&-1!==o.type.indexOf("tag-name")&&("<"===r.value?l[f]++:"</"===r.value&&l[f]--,0===l[f]&&(c=!0)))}while(r&&!c)}o&&o.type.indexOf("tag-name")&&(m=h.start).row==i.row&&Math.abs(m.column-i.column)<2&&(m=h.end)}(m=h&&h.cursor||m)&&(e?h&&t?this.selection.setRange(h):h&&h.isEqual(this.getSelectionRange())?this.clearSelection():this.selection.selectTo(m.row,m.column):this.selection.moveTo(m.row,m.column))}}},this.gotoLine=function(e,t,i){this.selection.clearSelection(),this.session.unfold({row:e-1,column:t||0}),this.$blockScrolling+=1,this.exitMultiSelectMode&&this.exitMultiSelectMode(),this.moveCursorTo(e-1,t||0),this.$blockScrolling-=1,this.isRowFullyVisible(e-1)||this.scrollToLine(e-1,!0,i)},this.navigateTo=function(e,t){this.selection.moveTo(e,t)},this.navigateUp=function(e){if(this.selection.isMultiLine()&&!this.selection.isBackwards()){var t=this.selection.anchor.getPosition();return this.moveCursorToPosition(t)}this.selection.clearSelection(),this.selection.moveCursorBy(-e||-1,0)},this.navigateDown=function(e){if(this.selection.isMultiLine()&&this.selection.isBackwards()){var t=this.selection.anchor.getPosition();return this.moveCursorToPosition(t)}this.selection.clearSelection(),this.selection.moveCursorBy(e||1,0)},this.navigateLeft=function(e){if(this.selection.isEmpty())for(e=e||1;e--;)this.selection.moveCursorLeft();else{var t=this.getSelectionRange().start;this.moveCursorToPosition(t)}this.clearSelection()},this.navigateRight=function(e){if(this.selection.isEmpty())for(e=e||1;e--;)this.selection.moveCursorRight();else{var t=this.getSelectionRange().end;this.moveCursorToPosition(t)}this.clearSelection()},this.navigateLineStart=function(){this.selection.moveCursorLineStart(),this.clearSelection()},this.navigateLineEnd=function(){this.selection.moveCursorLineEnd(),this.clearSelection()},this.navigateFileEnd=function(){this.selection.moveCursorFileEnd(),this.clearSelection()},this.navigateFileStart=function(){this.selection.moveCursorFileStart(),this.clearSelection()},this.navigateWordRight=function(){this.selection.moveCursorWordRight(),this.clearSelection()},this.navigateWordLeft=function(){this.selection.moveCursorWordLeft(),this.clearSelection()},this.replace=function(e,t){t&&this.$search.set(t);var i=this.$search.find(this.session),n=0;return i?(this.$tryReplace(i,e)&&(n=1),null!==i&&(this.selection.setSelectionRange(i),this.renderer.scrollSelectionIntoView(i.start,i.end)),n):n},this.replaceAll=function(e,t){t&&this.$search.set(t);var i=this.$search.findAll(this.session),n=0;if(!i.length)return n;this.$blockScrolling+=1;var r=this.getSelectionRange();this.selection.moveTo(0,0);for(var o=i.length-1;o>=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.top<a.height&&o.top+t.top+a.lineHeight>window.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;n<e.length;n++){for(var r=e[n],o={group:r.group,deltas:new Array(r.length)},a=0;a<r.deltas.length;a++){var s=r.deltas[a];o.deltas[a]=t(s)}i[n]=o}return i}this.execute=function(e){var t=e.args[0];this.$doc=e.args[1],e.merge&&this.hasUndo()&&(this.dirtyCounter--,t=this.$undoStack.pop().concat(t)),this.$undoStack.push(t),this.$redoStack=[],this.dirtyCounter<0&&(this.dirtyCounter=NaN),this.dirtyCounter++},this.undo=function(e){var t=this.$undoStack.pop(),i=null;return t&&(i=this.$doc.undoChanges(t,e),this.$redoStack.push(t),this.dirtyCounter--),i},this.redo=function(e){var t=this.$redoStack.pop(),i=null;return t&&(i=this.$doc.redoChanges(this.$deserializeDeltas(t),e),this.$undoStack.push(t),this.dirtyCounter++),i},this.reset=function(){this.$undoStack=[],this.$redoStack=[],this.dirtyCounter=0},this.hasUndo=function(){return this.$undoStack.length>0},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;t<e.length;t++){var i=e[t],n=i.row,r=this.$annotations[n];r||(r=this.$annotations[n]={text:[]});var a=i.text;a=a?o.escapeHTML(a):i.html||"",-1===r.text.indexOf(a)&&r.text.push(a);var s=i.type;"error"==s?r.className=" ace_error":"warning"==s&&" ace_error"!=r.className?r.className=" ace_warning":"info"!=s||r.className||(r.className=" ace_info")}},this.$updateAnnotations=function(e){if(this.$annotations.length){var t=e.start.row,i=e.end.row-t;if(0===i);else if("remove"==e.action)this.$annotations.splice(t,i+1,null);else{var n=new Array(i+1);n.unshift(t,1),this.$annotations.splice.apply(this.$annotations,n)}}},this.update=function(e){for(var t=this.session,i=e.firstRow,r=Math.min(e.lastRow+e.gutterOffset,t.getLength()-1),o=t.getNextFoldLine(i),a=o?o.start.row:1/0,s=this.$showFoldWidgets&&t.foldWidgets,c=t.$breakpoints,l=t.$decorations,u=t.$firstLineNumber,d=0,h=t.gutterRenderer||this.$renderer,p=null,m=-1,f=i;;){if(f>a&&(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&&f<o.end.row?g+=" ace_closed":g+=" ace_open",p.foldWidget.className!=g&&(p.foldWidget.className=g);var b=e.lineHeight+"px";p.foldWidget.style.height!=b&&(p.foldWidget.style.height=b)}else p.foldWidget&&(p.element.removeChild(p.foldWidget),p.foldWidget=null);var v=d=h?h.getText(t,f):f+u;v!==p.textNode.data&&(p.textNode.data=v),f++}this.element.style.height=e.minHeight+"px",(this.$fixedWidth||t.$useWrapMode)&&(d=t.getLength()+u);var y=h?h.getWidth(t,d,e):d.toString().length*e.characterWidth,w=this.$padding||this.$computePadding();(y+=w.left+w.right)===this.gutterWidth||isNaN(y)||(this.gutterWidth=y,this.element.style.width=Math.ceil(this.gutterWidth)+"px",this._emit("changeGutterWidth",y))},this.$fixedWidth=!1,this.$showLineNumbers=!0,this.$renderer="",this.setShowLineNumbers=function(e){this.$renderer=!e&&{getWidth:function(){return""},getText:function(){return""}}},this.getShowLineNumbers=function(){return this.$showLineNumbers},this.$showFoldWidgets=!0,this.setShowFoldWidgets=function(e){e?n.addCssClass(this.element,"ace_folding-enabled"):n.removeCssClass(this.element,"ace_folding-enabled"),this.$showFoldWidgets=e,this.$padding=null},this.getShowFoldWidgets=function(){return this.$showFoldWidgets},this.$computePadding=function(){if(!this.element.firstChild)return{left:0,right:0};var e=n.computedStyle(this.element.firstChild);return this.$padding={},this.$padding.left=parseInt(e.paddingLeft)+1||0,this.$padding.right=parseInt(e.paddingRight)||0,this.$padding},this.getRegion=function(e){var t=this.$padding||this.$computePadding(),i=this.element.getBoundingClientRect();return e.x<t.left+i.left?"markers":this.$showFoldWidgets&&e.x>i.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+1<c?a.getScreenLastRowColumn(l+1):l==c?0:t.end.column,p=i+(l==s?" ace_start":"")+" ace_br"+((l==s||l==s+1&&t.start.column?1:0)|(u<d?2:0)|(d>h?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("<div class='",i," ace_br1 ace_start' style='","height:",o,"px;","right:0;","top:",a,"px;","left:",s,"px;",r,"'></div>"));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("<div class='",i," ace_br12' style='","height:",o,"px;","width:",u,"px;","top:",a,"px;","left:",c,"px;",r,"'></div>")}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("<div class='",i,d?" ace_br"+d:"","' style='","height:",o,"px;","right:0;","top:",a,"px;","left:",c,"px;",r,"'></div>")}},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("<div class='",i,"' style='","height:",a,"px;","width:",s,"px;","top:",c,"px;","left:",l,"px;",o||"","'></div>")},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("<div class='",i,"' style='","height:",a,"px;","width:",t.width+(r||0),"px;","top:",s,"px;","left:",c+t.left,"px;",o||"","'></div>")}))},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("<div class='",i,"' style='","height:",a,"px;","top:",o,"px;","left:0;right:0;",r||"","'></div>")},this.drawScreenLineMarker=function(e,t,i,n,r){var o=this.$getTop(t.start.row,n),a=n.lineHeight;e.push("<div class='",i,"' style='","height:",a,"px;","top:",o,"px;","left:0;right:0;",r||"","'></div>")}}).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<e+1;i++)this.showInvisibles?t.push("<span class='ace_invisible ace_invisible_tab'>"+o.stringRepeat(this.TAB_CHAR,i)+"</span>"):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[" "]="<span class='"+n+r+"'>"+s+"</span>",this.$tabStrings["\t"]="<span class='"+n+a+"'>"+c+"</span>"}},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;s<n;s++){if(c=this.session.getFoldLine(s)){if(c.containsRow(n)){n=c.start.row;break}s=c.end.row}a++}s=n;for(var c,l=(c=this.session.getNextFoldLine(s))?c.start.row:1/0;s>l&&(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.lastRow<e.firstRow)return this.update(e);if(e.lastRow<t.firstRow)return this.update(e);var i=this.element;if(t.firstRow<e.firstRow)for(var n=this.session.getFoldedRowCount(t.firstRow,e.firstRow-1);n>0;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.firstRow<t.firstRow){var r=this.$renderLinesFragment(e,e.firstRow,t.firstRow-1);i.firstChild?i.insertBefore(r,i.firstChild):i.appendChild(r)}if(e.lastRow>t.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("<div class='ace_line_group' style='height:",e.lineHeight*this.session.getRowLength(r),"px'>"),this.$renderLine(t,r,!1,r==a&&o),this.$useLineGroups()&&t.push("</div>"),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?"<span class='ace_invisible ace_invisible_space'>"+o.stringRepeat(r.SPACE_CHAR,e.length)+"</span>":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,"<span class='"+l+"' style='width:"+2*r.config.characterWidth+"px'>"+u+"</span>"}return n?"<span class='ace_invisible ace_invisible_space ace_invalid'>"+r.SPACE_CHAR+"</span>":(t+=1,"<span class='ace_cjk' style='width:"+2*r.config.characterWidth+"px'>"+e+"</span>")}));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("<span class='",s,"'",c,">",a,"</span>")}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<t.length;l++){var u=t[l],d=u.value;if(0==l&&this.displayIndentGuides){if(r=d.length,!(d=this.renderIndentGuide(e,d,s)))continue;r-=d.length}if(r+d.length<s)c=this.$renderToken(e,c,u,d),r+=d.length;else{for(;r+d.length>=s;)c=this.$renderToken(e,c,u,d.substring(0,s-r)),d=d.substring(s-r),r=s,n||e.push("</div>","<div class='ace_line' style='height:",this.config.lineHeight,"px'>"),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<t.length;o++)r=(n=t[o]).value,i=this.$renderToken(e,i,n,r)},this.$renderLine=function(e,t,i,n){if(n||0==n||(n=this.session.getFoldLine(t)),n)var r=this.$getFoldLineTokens(t,n);else r=this.session.getTokens(t);if(i||e.push("<div class='ace_line' style='height:",this.config.lineHeight*(this.$useLineGroups()?1:this.session.getRowLength(t)),"px'>"),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("<span class='ace_invisible ace_invisible_eol'>",t==this.session.getLength()-1?this.EOF_CHAR:this.EOL_CHAR,"</span>")),i||e.push("</div>")},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.length<t;)if(o+=e[r].value.length,++r==e.length)return;for(o!=t&&((a=e[r].value.substring(t-o)).length>i-t&&(a=a.substring(0,i-t)),n.push({type:e[r].type,value:a}),o=t+a.length,r+=1);o<i&&r<e.length;){var a;(a=e[r].value).length+o>i?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;i<r;i++){var o=this.getPixelPosition(t[i].cursor,!0);if(!((o.top>e.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.lastRow<t&&(this.$changedLines.lastRow=t)):this.$changedLines={firstRow:e,lastRow:t},this.$changedLines.lastRow<this.layerConfig.firstRow){if(!i)return;this.$changedLines.lastRow=this.layerConfig.lastRow}this.$changedLines.firstRow>this.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||t<i.firstRow))return t===1/0?(this.$showGutter&&this.$gutterLayer.update(i),void this.$textLayer.update(i)):(this.$textLayer.updateLines(i,e,t),!0)}},this.$getLongestLine=function(){var e=this.session.getScreenWidth();return this.showInvisibles&&!this.session.$useWrapMode&&(e+=1),Math.max(this.$size.scrollerWidth-2*this.$padding,Math.round(e*this.characterWidth))},this.updateFrontMarkers=function(){this.$markerFront.setMarkers(this.session.getMarkers(!0)),this.$loop.schedule(this.CHANGE_MARKER_FRONT)},this.updateBackMarkers=function(){this.$markerBack.setMarkers(this.session.getMarkers()),this.$loop.schedule(this.CHANGE_MARKER_BACK)},this.addGutterDecoration=function(e,t){this.$gutterLayer.addGutterDecoration(e,t)},this.removeGutterDecoration=function(e,t){this.$gutterLayer.removeGutterDecoration(e,t)},this.updateBreakpoints=function(e){this.$loop.schedule(this.CHANGE_GUTTER)},this.setAnnotations=function(e){this.$gutterLayer.setAnnotations(e),this.$loop.schedule(this.CHANGE_GUTTER)},this.updateCursor=function(){this.$loop.schedule(this.CHANGE_CURSOR)},this.hideCursor=function(){this.$cursorLayer.hideCursor()},this.showCursor=function(){this.$cursorLayer.showCursor()},this.scrollSelectionIntoView=function(e,t,i){this.scrollCursorIntoView(e,i),this.scrollCursorIntoView(t,i)},this.scrollCursorIntoView=function(e,t,i){if(0!==this.$size.scrollerHeight){var n=this.$cursorLayer.getPixelPosition(e),r=n.left,o=n.top,a=i&&i.top||0,s=i&&i.bottom||0,c=this.$scrollAnimation?this.session.getScrollTop():this.scrollTop;c+a>o?(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-s<o+this.lineHeight&&(t&&c+this.$size.scrollerHeight-s<o-this.lineHeight&&(o+=t*this.$size.scrollerHeight),this.session.setScrollTop(o+this.lineHeight-this.$size.scrollerHeight));var l=this.scrollLeft;l>r?(r<this.$padding+2*this.layerConfig.characterWidth&&(r=-this.scrollMargin.left),this.session.setScrollLeft(r)):l+this.$size.scrollerWidth<r+this.characterWidth?this.session.setScrollLeft(Math.round(r+this.characterWidth-this.$size.scrollerWidth)):l<=this.$padding&&r-l<this.characterWidth&&this.session.setScrollLeft(0)}},this.getScrollTop=function(){return this.session.getScrollTop()},this.getScrollLeft=function(){return this.session.getScrollLeft()},this.getScrollTopRow=function(){return this.scrollTop/this.lineHeight},this.getScrollBottomRow=function(){return Math.max(0,Math.floor((this.scrollTop+this.$size.scrollerHeight)/this.lineHeight)-1)},this.scrollToRow=function(e){this.session.setScrollTop(e*this.lineHeight)},this.alignCursor=function(e,t){"number"==typeof e&&(e={row:e,column:0});var i=this.$cursorLayer.getPixelPosition(e),n=this.$size.scrollerHeight-this.lineHeight,r=i.top-n*(t||0);return this.session.setScrollTop(r),r},this.STEPS=8,this.$calcSteps=function(e,t){var i=0,n=this.STEPS,r=[],o=function(e,t,i){return i*(Math.pow(e-1,3)+1)+t};for(i=0;i<n;++i)r.push(o(i/this.STEPS,e,t-e));return r},this.scrollToLine=function(e,t,i,n){var r=this.$cursorLayer.getPixelPosition({row:e,column:0}).top;t&&(r-=this.$size.scrollerHeight/2);var o=this.scrollTop;this.session.setScrollTop(r),!1!==i&&this.animateScrolling(o,n)},this.animateScrolling=function(e,t){var i=this.scrollTop;if(this.$animatedScroll){var n=this;if(e!=i){if(this.$scrollAnimation){var r=this.$scrollAnimation.steps;if(r.length&&(e=r[0])==i)return}var o=n.$calcSteps(e,i);this.$scrollAnimation={from:e,to:i,steps:o},clearInterval(this.$timer),n.session.setScrollTop(o.shift()),n.session.$scrollTop=i,this.$timer=setInterval((function(){o.length?(n.session.setScrollTop(o.shift()),n.session.$scrollTop=i):null!=i?(n.session.$scrollTop=-1,n.session.setScrollTop(i),i=null):(n.$timer=clearInterval(n.$timer),n.$scrollAnimation=null,t&&t())}),10)}}},this.scrollToY=function(e){this.scrollTop!==e&&(this.$loop.schedule(this.CHANGE_SCROLL),this.scrollTop=e)},this.scrollToX=function(e){this.scrollLeft!==e&&(this.scrollLeft=e),this.$loop.schedule(this.CHANGE_H_SCROLL)},this.scrollTo=function(e,t){this.session.setScrollTop(t),this.session.setScrollLeft(t)},this.scrollBy=function(e,t){t&&this.session.setScrollTop(this.session.getScrollTop()+t),e&&this.session.setScrollLeft(this.session.getScrollLeft()+e)},this.isScrollableBy=function(e,t){return t<0&&this.session.getScrollTop()>=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.others.length;e++)this.session.removeMarker(this.others[e].markerId)}},this.onUpdate=function(e){if(this.$updating)return this.updateAnchors(e);var t=e;if(t.start.row===t.end.row&&t.start.row===this.pos.row){this.$updating=!0;var i="insert"===e.action?t.end.column-t.start.column:t.start.column-t.end.column,r=t.start.column>=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;i<t;i++)e.undo(!0);this.selectionBefore&&this.session.selection.fromJSON(this.selectionBefore)}}}).call(a.prototype),t.PlaceHolder=a})),ace.define("ace/mouse/multi_select_handler",["require","exports","module","ace/lib/event","ace/lib/useragent"],(function(e,t,i){var n=e("../lib/event"),r=e("../lib/useragent");function o(e,t){return e.row==t.row&&e.column==t.column}t.onMouseDown=function(e){var t=e.domEvent,i=t.altKey,a=t.shiftKey,s=t.ctrlKey,c=e.getAccelKey(),l=e.getButton();if(s&&r.isMac&&(l=t.button),e.editor.inMultiSelectMode&&2==l)e.editor.textInput.onContextMenu(e.domEvent);else if(s||i||c){if(0===l){var u,d=e.editor,h=d.selection,p=d.inMultiSelectMode,m=e.getDocumentPosition(),f=h.getCursor(),g=e.inSelection()||h.isEmpty()&&o(m,f),_=e.x,b=e.y,v=d.session,y=d.renderer.pixelToScreenCoordinates(_,b),w=y;if(d.$mouseHandler.$enableJumpToDef)s&&i||c&&i?u=a?"block":"add":i&&d.$blockSelectEnabled&&(u="block");else if(c&&!i){if(u="add",!p&&a)return}else i&&d.$blockSelectEnabled&&(u="block");if(u&&r.isMac&&t.ctrlKey&&d.$mouseHandler.cancelContextMenu(),"add"==u){if(!p&&g)return;if(!p){var x=h.toOrientedRange();d.addSelectionMarker(x)}var N=h.rangeList.rangeAtPoint(m);d.$blockScrolling++,d.inVirtualSelectionMode=!0,a&&(N=null,x=h.ranges[0]||x,d.removeSelectionMarker(x)),d.once("mouseup",(function(){var e=h.toOrientedRange();N&&e.isEmpty()&&o(N.cursor,e.cursor)?h.substractPoint(e.cursor):(a?h.substractPoint(x.cursor):x&&(d.removeSelectionMarker(x),h.addRange(x)),h.addRange(e)),d.$blockScrolling--,d.inVirtualSelectionMode=!1}))}else if("block"==u){var k;e.stop(),d.inVirtualSelectionMode=!0;var A=[];d.$blockScrolling++,p&&!c?h.toSingleRange():!p&&c&&(k=h.toOrientedRange(),d.addSelectionMarker(k)),a?y=v.documentToScreenPosition(h.lead):h.moveToPosition(m),d.$blockScrolling--,w={row:-1,column:-1};var C=function(){var e=d.renderer.pixelToScreenCoordinates(_,b),t=v.screenToDocumentPosition(e.row,e.column,e.offsetX);o(w,e)&&o(t,h.lead)||(w=e,d.$blockScrolling++,d.selection.moveToPosition(t),d.renderer.scrollCursorIntoView(),d.removeSelectionMarkers(A),A=h.rectangularRangeBlock(w,y),d.$mouseHandler.$clickSelection&&1==A.length&&A[0].isEmpty()&&(A[0]=d.$mouseHandler.$clickSelection.clone()),A.forEach(d.addSelectionMarker,d),d.updateSelectionMarkers(),d.$blockScrolling--)};n.capture(d.container,(function(e){_=e.clientX,b=e.clientY}),(function(e){clearInterval(O),d.removeSelectionMarkers(A),A.length||(A=[h.toOrientedRange()]),d.$blockScrolling++,k&&(d.removeSelectionMarker(k),h.toSingleRange(k));for(var t=0;t<A.length;t++)h.addRange(A[t]);d.inVirtualSelectionMode=!1,d.$mouseHandler.$clickSelection=null,d.$blockScrolling--}));var O=setInterval((function(){C()}),20);return e.preventDefault()}}}else 0===l&&e.editor.inMultiSelectMode&&e.editor.exitMultiSelectMode()}})),ace.define("ace/commands/multi_select_commands",["require","exports","module","ace/keyboard/hash_handler"],(function(e,t,i){t.defaultCommands=[{name:"addCursorAbove",exec:function(e){e.selectMoreLines(-1)},bindKey:{win:"Ctrl-Alt-Up",mac:"Ctrl-Alt-Up"},scrollIntoView:"cursor",readOnly:!0},{name:"addCursorBelow",exec:function(e){e.selectMoreLines(1)},bindKey:{win:"Ctrl-Alt-Down",mac:"Ctrl-Alt-Down"},scrollIntoView:"cursor",readOnly:!0},{name:"addCursorAboveSkipCurrent",exec:function(e){e.selectMoreLines(-1,!0)},bindKey:{win:"Ctrl-Alt-Shift-Up",mac:"Ctrl-Alt-Shift-Up"},scrollIntoView:"cursor",readOnly:!0},{name:"addCursorBelowSkipCurrent",exec:function(e){e.selectMoreLines(1,!0)},bindKey:{win:"Ctrl-Alt-Shift-Down",mac:"Ctrl-Alt-Shift-Down"},scrollIntoView:"cursor",readOnly:!0},{name:"selectMoreBefore",exec:function(e){e.selectMore(-1)},bindKey:{win:"Ctrl-Alt-Left",mac:"Ctrl-Alt-Left"},scrollIntoView:"cursor",readOnly:!0},{name:"selectMoreAfter",exec:function(e){e.selectMore(1)},bindKey:{win:"Ctrl-Alt-Right",mac:"Ctrl-Alt-Right"},scrollIntoView:"cursor",readOnly:!0},{name:"selectNextBefore",exec:function(e){e.selectMore(-1,!0)},bindKey:{win:"Ctrl-Alt-Shift-Left",mac:"Ctrl-Alt-Shift-Left"},scrollIntoView:"cursor",readOnly:!0},{name:"selectNextAfter",exec:function(e){e.selectMore(1,!0)},bindKey:{win:"Ctrl-Alt-Shift-Right",mac:"Ctrl-Alt-Shift-Right"},scrollIntoView:"cursor",readOnly:!0},{name:"splitIntoLines",exec:function(e){e.multiSelect.splitIntoLines()},bindKey:{win:"Ctrl-Alt-L",mac:"Ctrl-Alt-L"},readOnly:!0},{name:"alignCursors",exec:function(e){e.alignCursors()},bindKey:{win:"Ctrl-Alt-A",mac:"Ctrl-Alt-A"},scrollIntoView:"cursor"},{name:"findAll",exec:function(e){e.findAll()},bindKey:{win:"Ctrl-Alt-K",mac:"Ctrl-Alt-G"},scrollIntoView:"cursor",readOnly:!0}],t.multiSelectCommands=[{name:"singleSelection",bindKey:"esc",exec:function(e){e.exitMultiSelectMode()},scrollIntoView:"cursor",readOnly:!0,isAvailable:function(e){return e&&e.inMultiSelectMode}}];var n=e("../keyboard/hash_handler").HashHandler;t.keyboardHandler=new n(t.multiSelectCommands)})),ace.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(e,t,i){var n=e("./range_list").RangeList,r=e("./range").Range,o=e("./selection").Selection,a=e("./mouse/multi_select_handler").onMouseDown,s=e("./lib/event"),c=e("./lib/lang"),l=e("./commands/multi_select_commands");t.commands=l.defaultCommands.concat(l.multiSelectCommands);var u=new(0,e("./search").Search);var d=e("./edit_session").EditSession;(function(){this.getSelectionMarkers=function(){return this.$selectionMarkers}}).call(d.prototype),function(){this.ranges=null,this.rangeList=null,this.addRange=function(e,t){if(e){if(!this.inMultiSelectMode&&0===this.rangeCount){var i=this.toOrientedRange();if(this.rangeList.add(i),this.rangeList.add(e),2!=this.rangeList.ranges.length)return this.rangeList.removeAll(),t||this.fromOrientedRange(e);this.rangeList.removeAll(),this.rangeList.add(i),this.$onAddRange(i)}e.cursor||(e.cursor=e.end);var n=this.rangeList.add(e);return this.$onAddRange(e),n.length&&this.$onRemoveRange(n),this.rangeCount>1&&!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;d<a;d++)l.push(this.getLineRange(d,!0));(u=this.getLineRange(a,!0)).end.column=i.end.column,l.push(u),l.forEach(this.addRange,this)}},this.toggleBlockSelection=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{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.column<t.column;if(o)var a=e.column,s=t.column,c=e.offsetX,l=t.offsetX;else a=t.column,s=e.column,c=t.offsetX,l=e.offsetX;var u,d,h=e.row<t.row;if(h)var p=e.row,m=t.row;else p=t.row,m=e.row;a<0&&(a=0),p<0&&(p=0),p==m&&(i=!0);for(var f=p;f<=m;f++){var g=r.fromPoints(this.session.screenToDocumentPosition(f,a,c),this.session.screenToDocumentPosition(f,s,l));if(g.isEmpty()){if(_&&(u=g.end,d=_,u.row==d.row&&u.column==d.column))break;var _=g.end}g.cursor=o?g.start:g.end,n.push(g)}if(h&&n.reverse(),!i){for(var b=n.length-1;n[b].isEmpty()&&b>0;)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;n<t.length;n++)i.push(this.session.getTextRange(t[n]));var r=this.session.getDocument().getNewLineCharacter();(e=i.join(r)).length==(i.length-1)*r.length&&(e="")}else this.selection.isEmpty()||(e=this.session.getTextRange(this.getSelectionRange()));return e},this.$checkMultiselectChange=function(e,t){if(this.inMultiSelectMode&&!this.inVirtualSelectionMode){var i=this.multiSelect.ranges[0];if(this.multiSelect.isEmpty()&&t==this.multiSelect.anchor)return;var n=t==this.multiSelect.anchor?i.cursor==i.start?i.end:i.start:i.cursor;n.row==t.row&&this.session.$clipPositionToDocument(n.row,n.column).column==t.column||this.multiSelect.toSingleRange(this.multiSelect.toOrientedRange())}},this.findAll=function(e,t,i){if((t=t||{}).needle=e||t.needle,null==t.needle){var n=this.selection.isEmpty()?this.selection.getWordRange():this.selection.getRange();t.needle=this.session.getTextRange(n)}this.$search.set(t);var r=this.$search.findAll(this.session);if(!r.length)return 0;this.$blockScrolling+=1;var o=this.multiSelect;i||o.toSingleRange(r[0]);for(var a=r.length;a--;)o.addRange(r[a],!0);return n&&o.rangeList.rangeAtPoint(n.start)&&o.addRange(n,!0),this.$blockScrolling-=1,r.length},this.selectMoreLines=function(e,t){var i=this.selection.toOrientedRange(),n=i.cursor==i.end,o=this.session.documentToScreenPosition(i.cursor);this.selection.$desiredColumn&&(o.column=this.selection.$desiredColumn);var a,s=this.session.screenToDocumentPosition(o.row+e,o.column);if(i.isEmpty())l=s;else var c=this.session.documentToScreenPosition(n?i.end:i.start),l=this.session.screenToDocumentPosition(c.row+e,c.column);n?(a=r.fromPoints(s,l)).cursor=a.start:(a=r.fromPoints(l,s)).cursor=a.end;if(a.desiredColumn=o.column,this.selection.inMultiSelectMode){if(t)var u=i.cursor}else this.selection.addRange(i);this.selection.addRange(a),u&&this.selection.substractPoint(u)},this.transposeSelections=function(e){for(var t=this.session,i=t.multiSelect,n=i.ranges,r=n.length;r--;){if((s=n[r]).isEmpty()){var o=t.getWordRange(s.start.row,s.start.column);s.start.row=o.start.row,s.start.column=o.start.column,s.end.row=o.end.row,s.end.column=o.end.column}}i.mergeOverlappingRanges();var a=[];for(r=n.length;r--;){var s=n[r];a.unshift(t.getTextRange(s))}e<0?a.unshift(a.pop()):a.push(a.shift());for(r=n.length;r--;){o=(s=n[r]).clone();t.replace(s,a[r]),s.start.row=o.start.row,s.start.column=o.start.column}},this.selectMore=function(e,t,i){var n=this.session,r=n.multiSelect.toOrientedRange();if(!r.isEmpty()||((r=n.getWordRange(r.start.row,r.start.column)).cursor=-1==e?r.start:r.end,this.multiSelect.addRange(r),!i)){var o=n.getTextRange(r),a=function(e,t,i){return u.$options.wrap=!0,u.$options.needle=t,u.$options.backwards=-1==i,u.find(e)}(n,o,e);a&&(a.cursor=-1==e?a.start:a.end,this.$blockScrolling+=1,this.session.unfold(a),this.multiSelect.addRange(a),this.$blockScrolling-=1,this.renderer.scrollCursorIntoView(null,.5)),t&&this.multiSelect.substractPoint(r.cursor)}},this.alignCursors=function(){var e=this.session,t=e.multiSelect,i=t.ranges,n=-1,o=i.filter((function(e){if(e.cursor.row==n)return!0;n=e.cursor.row}));if(i.length&&o.length!=i.length-1){o.forEach((function(e){t.substractPoint(e.cursor)}));var a=0,s=1/0,l=i.map((function(t){var i=t.cursor,n=e.getLine(i.row).substr(i.column).search(/\S/g);return-1==n&&(n=0),i.column>a&&(a=i.column),n<s&&(s=n),n}));i.forEach((function(t,i){var n=t.cursor,o=a-n.column,u=l[i]-s;o>u?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)&&++h<f);do{m=this.session.getLine(d)}while(/[=:]/.test(m)&&--d>0);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),n<t[2].length&&(n=t[2].length),r>t[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;++t<c;){var d=e.getLine(t).search(r);if(-1!=d){if(d<=a)break;u=t}}if(u>l){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;s<o;s++)i[s]&&(i[s].hidden=a);i[o]&&(a?i[r]?i[o].hidden=a:i[r]=i[o]:(i[r]==i[o]&&(i[r]=void 0),i[o].hidden=a))}},this.updateOnChange=function(e){var t=this.session.lineWidgets;if(t){var i=e.start.row,n=e.end.row-i;if(0===n);else if("remove"==e.action){t.splice(i+1,n).forEach((function(e){e&&this.removeLineWidget(e)}),this),this.$updateRows()}else{var r=new Array(n);r.unshift(i,0),t.splice.apply(t,r),this.$updateRows()}}},this.$updateRows=function(){var e=this.session.lineWidgets;if(e){var t=!0;e.forEach((function(e,i){if(e)for(t=!1,e.row=i;e.$oldWidget;)e.$oldWidget.row=i,e=e.$oldWidget})),t&&(this.session.lineWidgets=null)}},this.addLineWidget=function(e){this.session.lineWidgets||(this.session.lineWidgets=new Array(this.session.getLength()));var t=this.session.lineWidgets[e.row];t&&(e.$oldWidget=t,t.el&&t.el.parentNode&&(t.el.parentNode.removeChild(t.el),t._inDocument=!1)),this.session.lineWidgets[e.row]=e,e.session=this.session;var i=this.editor.renderer;e.html&&!e.el&&(e.el=n.createElement("div"),e.el.innerHTML=e.html),e.el&&(n.addCssClass(e.el,"ace_lineWidgetContainer"),e.el.style.position="absolute",e.el.style.zIndex=5,i.container.appendChild(e.el),e._inDocument=!0),e.coverGutter||(e.el.style.zIndex=3),null==e.pixelHeight&&(e.pixelHeight=e.el.offsetHeight),null==e.rowCount&&(e.rowCount=e.pixelHeight/i.layerConfig.lineHeight);var r=this.session.getFoldAt(e.row,0);if(e.$fold=r,r){var o=this.session.lineWidgets;e.row!=r.end.row||o[r.start.row]?e.hidden=!0:o[r.start.row]=e}return this.session._emit("changeFold",{data:{start:{row:e.row}}}),this.$updateRows(),this.renderWidgets(null,i),this.onWidgetChanged(e),e},this.removeLineWidget=function(e){if(e._inDocument=!1,e.session=null,e.el&&e.el.parentNode&&e.el.parentNode.removeChild(e.el),e.editor&&e.editor.destroy)try{e.editor.destroy()}catch(i){}if(this.session.lineWidgets){var t=this.session.lineWidgets[e.row];if(t==e)this.session.lineWidgets[e.row]=e.$oldWidget,e.$oldWidget&&this.onWidgetChanged(e.$oldWidget);else for(;t;){if(t.$oldWidget==e){t.$oldWidget=e.$oldWidget;break}t=t.$oldWidget}}this.session._emit("changeFold",{data:{start:{row:e.row}}}),this.$updateRows()},this.getWidgetsAtRow=function(e){for(var t=this.session.lineWidgets,i=t&&t[e],n=[];i;)n.push(i),i=i.$oldWidget;return n},this.onWidgetChanged=function(e){this.session._changedWidgets.push(e),this.editor&&this.editor.renderer.updateFull()},this.measureWidgets=function(e,t){var i=this.session._changedWidgets,n=t.layerConfig;if(i&&i.length){for(var r=1/0,o=0;o<i.length;o++){var a=i[o];if(a&&a.el&&a.session==this.session){if(!a._inDocument){if(this.session.lineWidgets[a.row]!=a)continue;a._inDocument=!0,t.container.appendChild(a.el)}a.h=a.el.offsetHeight,a.fixedWidth||(a.w=a.el.offsetWidth,a.screenWidth=Math.ceil(a.w/n.characterWidth));var s=a.h/n.lineHeight;a.coverLine&&(s-=this.session.getRowLineCount(a.row))<0&&(s=0),a.rowCount!=s&&(a.rowCount=s,a.row<r&&(r=a.row))}}r!=1/0&&(this.session._emit("changeFold",{data:{start:{row:r}}}),this.session.lineWidgetWidth=null),this.session._changedWidgets=[]}},this.renderWidgets=function(e,t){var i=t.layerConfig,n=this.session.lineWidgets;if(n){for(var r=Math.min(this.firstRow,i.firstRow),o=Math.max(this.lastRow,i.lastRow,n.length);r>0&&!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("<br>"),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 ub=window.ace.acequire("ace/ace"),db={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.column<point2.column;return point1.row<point2.row||point1.row==point2.row&&bColIsAfter}function $getTransformedPoint(delta,point,moveIfEqual){var deltaIsInsert="insert"==delta.action,deltaRowShift=(deltaIsInsert?1:-1)*(delta.end.row-delta.start.row),deltaColShift=(deltaIsInsert?1:-1)*(delta.end.column-delta.start.column),deltaStart=delta.start,deltaEnd=deltaIsInsert?deltaStart:delta.end;return $pointsInOrder(point,deltaStart,moveIfEqual)?{row:point.row,column:point.column}:$pointsInOrder(deltaEnd,point,!moveIfEqual)?{row:point.row+deltaRowShift,column:point.column+(point.row==deltaEnd.row?deltaColShift:0)}:{row:deltaStart.row,column:deltaStart.column}}oop.implement(this,EventEmitter),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.$insertRight=!1,this.onChange=function(delta){if(!(delta.start.row==delta.end.row&&delta.start.row!=this.row||delta.start.row>this.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(/</g,"<")},exports.getMatchOffsets=function(string,regExp){var matches=[];return string.replace(regExp,function(str){matches.push({offset:arguments[arguments.length-2],length:str.length})}),matches},exports.deferredCall=function(fcn){var timer=null,callback=function(){timer=null,fcn()},deferred=function(timeout){return deferred.cancel(),timer=setTimeout(callback,timeout||0),deferred};return deferred.schedule=deferred,deferred.call=function(){return this.cancel(),fcn(),deferred},deferred.cancel=function(){return clearTimeout(timer),timer=null,deferred},deferred.isPending=function(){return timer},deferred},exports.delayedCall=function(fcn,defaultTimeout){var timer=null,callback=function(){timer=null,fcn()},_self=function(timeout){null==timer&&(timer=setTimeout(callback,timeout||defaultTimeout))};return _self.delay=function(timeout){timer&&clearTimeout(timer),timer=setTimeout(callback,timeout||defaultTimeout)},_self.schedule=_self,_self.call=function(){this.cancel(),fcn()},_self.cancel=function(){timer&&clearTimeout(timer),timer=null},_self.isPending=function(){return timer},_self}}),ace.define("ace/worker/mirror",["require","exports","module","ace/range","ace/document","ace/lib/lang"],function(acequire,exports){"use strict";acequire("../range").Range;var Document=acequire("../document").Document,lang=acequire("../lib/lang"),Mirror=exports.Mirror=function(sender){this.sender=sender;var doc=this.doc=new Document(""),deferredUpdate=this.deferredUpdate=lang.delayedCall(this.onUpdate.bind(this)),_self=this;sender.on("change",function(e){var data=e.data;if(data[0].start)doc.applyDeltas(data);else for(var i=0;data.length>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();++t<c;){var l=(i=e.getLine(t)).search(/\S/);if(-1!==l){if(n>l)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;++i<o;){t=e.getLine(i);var l=s.exec(t);if(l&&(l[1]?c--:c++,!c))break}if(i>a)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"],db,"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;++i<l;){var h=(a=e.getLine(i)).search(r);if(-1!=h){if("#"!=a[h])break;d=i}}if(d>u){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<c?"start":"","";if(-1==s){if(r==c&&"#"==n[r]&&"#"==o[r])return e.foldWidgets[i-1]="",e.foldWidgets[i+1]="","start"}else if(s==r&&"#"==n[r]&&"#"==a[r]&&-1==e.getLine(i-2).search(/\S/))return e.foldWidgets[i-1]="start",e.foldWidgets[i+1]="","";return e.foldWidgets[i-1]=-1!=s&&s<r?"start":"",r<c?"start":""}}.call(a.prototype)})),ace.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(e,t,i){var n=e("../lib/oop"),r=e("./text").Mode,o=e("./yaml_highlight_rules").YamlHighlightRules,a=e("./matching_brace_outdent").MatchingBraceOutdent,s=e("./folding/coffee").FoldMode,c=function(){this.HighlightRules=o,this.$outdent=new a,this.foldingRules=new s,this.$behaviour=this.$defaultBehaviour};n.inherits(c,r),function(){this.lineCommentStart=["#","//"],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.$id="ace/mode/yaml"}.call(c.prototype),t.Mode=c}));var hb={exports:{}};hb.exports=function(e){var t={};function i(n){if(t[n])return t[n].exports;var r=t[n]={exports:{},id:n,loaded:!1};return e[n].call(r.exports,r,r.exports,i),r.loaded=!0,r.exports}return i.m=e,i.c=t,i.p="",i(0)}([function(e,t,i){Object.defineProperty(t,"__esModule",{value:!0});var n=i(1),r=i(3),o=i(8),a=i(15);function s(e,t,i){var a=null,s=function(e,t){i&&i(e,t),a&&a.visit(e,t)},c="function"==typeof i?s:null,l=!1;if(t){l="boolean"==typeof t.comment&&t.comment;var u="boolean"==typeof t.attachComment&&t.attachComment;(l||u)&&((a=new n.CommentHandler).attach=u,t.comment=!0,c=s)}var d,h=!1;t&&"string"==typeof t.sourceType&&(h="module"===t.sourceType),d=t&&"boolean"==typeof t.jsx&&t.jsx?new r.JSXParser(e,t,c):new o.Parser(e,t,c);var p=h?d.parseModule():d.parseScript();return l&&a&&(p.comments=a.comments),d.config.tokens&&(p.tokens=d.tokens),d.config.tolerant&&(p.errors=d.errorHandler.errors),p}t.parse=s,t.parseModule=function(e,t,i){var n=t||{};return n.sourceType="module",s(e,n,i)},t.parseScript=function(e,t,i){var n=t||{};return n.sourceType="script",s(e,n,i)},t.tokenize=function(e,t,i){var n,r=new a.Tokenizer(e,t);n=[];try{for(;;){var o=r.getNextToken();if(!o)break;i&&(o=i(o)),n.push(o)}}catch(s){r.errorHandler.tolerate(s)}return r.errorHandler.tolerant&&(n.errors=r.errors()),n};var c=i(2);t.Syntax=c.Syntax,t.version="4.0.1"},function(e,t,i){Object.defineProperty(t,"__esModule",{value:!0});var n=i(2),r=function(){function e(){this.attach=!1,this.comments=[],this.stack=[],this.leading=[],this.trailing=[]}return e.prototype.insertInnerComments=function(e,t){if(e.type===n.Syntax.BlockStatement&&0===e.body.length){for(var i=[],r=this.leading.length-1;r>=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.start<i.end){var n=this.getTokenRaw(i),r=this.finalize(t,new a.JSXText(i.value,n));e.push(r)}if("{"!==this.scanner.source[this.scanner.index])break;var o=this.parseJSXExpressionContainer();e.push(o)}return e},t.prototype.parseComplexJSXElement=function(e){for(var t=[];!this.scanner.eof();){e.children=e.children.concat(this.parseJSXChildren());var i=this.createJSXChildNode(),n=this.parseJSXBoundaryElement();if(n.type===s.JSXSyntax.JSXOpeningElement){var r=n;if(r.selfClosing){var o=this.finalize(i,new a.JSXElement(r,[],null));e.children.push(o)}else t.push(e),e={node:i,opening:r,closing:null,children:[]}}if(n.type===s.JSXSyntax.JSXClosingElement){e.closing=n;var c=h(e.opening.name);if(c!==h(e.closing.name)&&this.tolerateError("Expected corresponding JSX closing tag for %0",c),!(t.length>0))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 k=function(){this.type=n.Syntax.DebuggerStatement};t.DebuggerStatement=k;var A=function(e,t){this.type=n.Syntax.ExpressionStatement,this.expression=e,this.directive=t};t.Directive=A;var C=function(e,t){this.type=n.Syntax.DoWhileStatement,this.body=e,this.test=t};t.DoWhileStatement=C;var O=function(){this.type=n.Syntax.EmptyStatement};t.EmptyStatement=O;var S=function(e){this.type=n.Syntax.ExportAllDeclaration,this.source=e};t.ExportAllDeclaration=S;var E=function(e){this.type=n.Syntax.ExportDefaultDeclaration,this.declaration=e};t.ExportDefaultDeclaration=E;var F=function(e,t,i){this.type=n.Syntax.ExportNamedDeclaration,this.declaration=e,this.specifiers=t,this.source=i};t.ExportNamedDeclaration=F;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 T=function(e,t,i,r){this.type=n.Syntax.ForStatement,this.init=e,this.test=t,this.update=i,this.body=r};t.ForStatement=T;var R=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=R;var $=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=$;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 G=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=G;var K=function(e){this.type=n.Syntax.Program,this.body=e,this.sourceType="module"};t.Module=K;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;i<arguments.length;i++)t[i-1]=arguments[i];var r=Array.prototype.slice.call(arguments,1),o=e.replace(/%(\d)/g,(function(e,t){return n.assert(t<r.length,"Message reference must be in range"),r[t]})),a=this.lastMarker.index,s=this.lastMarker.line,c=this.lastMarker.column+1;throw this.errorHandler.createError(a,s,c,o)},e.prototype.tolerateError=function(e){for(var t=[],i=1;i<arguments.length;i++)t[i-1]=arguments[i];var r=Array.prototype.slice.call(arguments,1),o=e.replace(/%(\d)/g,(function(e,t){return n.assert(t<r.length,"Message reference must be in range"),r[t]})),a=this.lastMarker.index,s=this.scanner.lineNumber,c=this.lastMarker.column+1;this.errorHandler.tolerateError(a,s,c,o)},e.prototype.unexpectedTokenError=function(e,t){var i,n=t||o.Messages.UnexpectedToken;if(e?(t||(n=2===e.type?o.Messages.UnexpectedEOS:3===e.type?o.Messages.UnexpectedIdentifier:6===e.type?o.Messages.UnexpectedNumber:8===e.type?o.Messages.UnexpectedString:10===e.type?o.Messages.UnexpectedTemplate:o.Messages.UnexpectedToken,4===e.type&&(this.scanner.isFutureReservedWord(e.value)?n=o.Messages.UnexpectedReserved:this.context.strict&&this.scanner.isStrictModeReservedWord(e.value)&&(n=o.Messages.StrictReservedWord))),i=e.value):i="ILLEGAL",n=n.replace("%0",i),e&&"number"==typeof e.lineNumber){var r=e.start,a=e.lineNumber,s=this.lastMarker.index-this.lastMarker.column,c=e.start-s+1;return this.errorHandler.createError(r,a,c,n)}return r=this.lastMarker.index,a=this.lastMarker.line,c=this.lastMarker.column+1,this.errorHandler.createError(r,a,c,n)},e.prototype.throwUnexpectedToken=function(e,t){throw this.unexpectedTokenError(e,t)},e.prototype.tolerateUnexpectedToken=function(e,t){this.errorHandler.tolerate(this.unexpectedTokenError(e,t))},e.prototype.collectComments=function(){if(this.config.comment){var e=this.scanner.scanComments();if(e.length>0&&this.delegate)for(var t=0;t<e.length;++t){var i=e[t],n=void 0;n={type:i.multiLine?"BlockComment":"LineComment",value:this.scanner.source.slice(i.slice[0],i.slice[1])},this.config.range&&(n.range=i.range),this.config.loc&&(n.loc=i.loc);var r={start:{line:i.loc.start.line,column:i.loc.start.column,offset:i.range[0]},end:{line:i.loc.end.line,column:i.loc.end.column,offset:i.range[1]}};this.delegate(n,r)}}else this.scanner.scanComments()},e.prototype.getTokenRaw=function(e){return this.scanner.source.slice(e.start,e.end)},e.prototype.convertToken=function(e){var t={type:l.TokenName[e.type],value:this.getTokenRaw(e)};if(this.config.range&&(t.range=[e.start,e.end]),this.config.loc&&(t.loc={start:{line:this.startMarker.line,column:this.startMarker.column},end:{line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}}),9===e.type){var i=e.pattern,n=e.flags;t.regex={pattern:i,flags:n}}return t},e.prototype.nextToken=function(){var e=this.lookahead;this.lastMarker.index=this.scanner.index,this.lastMarker.line=this.scanner.lineNumber,this.lastMarker.column=this.scanner.index-this.scanner.lineStart,this.collectComments(),this.scanner.index!==this.startMarker.index&&(this.startMarker.index=this.scanner.index,this.startMarker.line=this.scanner.lineNumber,this.startMarker.column=this.scanner.index-this.scanner.lineStart);var t=this.scanner.lex();return this.hasLineTerminator=e.lineNumber!==t.lineNumber,t&&this.context.strict&&3===t.type&&this.scanner.isStrictModeReservedWord(t.value)&&(t.type=4),this.lookahead=t,this.config.tokens&&2!==t.type&&this.tokens.push(this.convertToken(t)),e},e.prototype.nextRegexToken=function(){this.collectComments();var e=this.scanner.scanRegExp();return this.config.tokens&&(this.tokens.pop(),this.tokens.push(this.convertToken(e))),this.lookahead=e,this.nextToken(),e},e.prototype.createNode=function(){return{index:this.startMarker.index,line:this.startMarker.line,column:this.startMarker.column}},e.prototype.startNode=function(e,t){void 0===t&&(t=0);var i=e.start-e.lineStart,n=e.lineNumber;return i<0&&(i+=t,n--),{index:e.start,line:n,column:i}},e.prototype.finalize=function(e,t){if(this.config.range&&(t.range=[e.index,this.lastMarker.index]),this.config.loc&&(t.loc={start:{line:e.line,column:e.column},end:{line:this.lastMarker.line,column:this.lastMarker.column}},this.config.source&&(t.loc.source=this.config.source)),this.delegate){var i={start:{line:e.line,column:e.column,offset:e.index},end:{line:this.lastMarker.line,column:this.lastMarker.column,offset:this.lastMarker.index}};this.delegate(t,i)}return t},e.prototype.expect=function(e){var t=this.nextToken();7===t.type&&t.value===e||this.throwUnexpectedToken(t)},e.prototype.expectCommaSeparator=function(){if(this.config.tolerant){var e=this.lookahead;7===e.type&&","===e.value?this.nextToken():7===e.type&&";"===e.value?(this.nextToken(),this.tolerateUnexpectedToken(e)):this.tolerateUnexpectedToken(e,o.Messages.UnexpectedToken)}else this.expect(",")},e.prototype.expectKeyword=function(e){var t=this.nextToken();4===t.type&&t.value===e||this.throwUnexpectedToken(t)},e.prototype.match=function(e){return 7===this.lookahead.type&&this.lookahead.value===e},e.prototype.matchKeyword=function(e){return 4===this.lookahead.type&&this.lookahead.value===e},e.prototype.matchContextualKeyword=function(e){return 3===this.lookahead.type&&this.lookahead.value===e},e.prototype.matchAssign=function(){if(7!==this.lookahead.type)return!1;var e=this.lookahead.value;return"="===e||"*="===e||"**="===e||"/="===e||"%="===e||"+="===e||"-="===e||"<<="===e||">>="===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<e.elements.length;t++)null!==e.elements[t]&&this.reinterpretExpressionAsPattern(e.elements[t]);break;case c.Syntax.ObjectExpression:for(e.type=c.Syntax.ObjectPattern,t=0;t<e.properties.length;t++)this.reinterpretExpressionAsPattern(e.properties[t].value);break;case c.Syntax.AssignmentExpression:e.type=c.Syntax.AssignmentPattern,delete e.operator,this.reinterpretExpressionAsPattern(e.left)}},e.prototype.parseGroupExpression=function(){var e;if(this.expect("("),this.match(")"))this.nextToken(),this.match("=>")||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<r.length;o++)this.reinterpretExpressionAsPattern(r[o]);n=!0,e={type:u,params:r,async:!1}}else if(this.match("...")){for(this.context.isBindingElement||this.throwUnexpectedToken(this.lookahead),r.push(this.parseRestElement(i)),this.expect(")"),this.match("=>")||this.expect("=>"),this.context.isBindingElement=!1,o=0;o<r.length;o++)this.reinterpretExpressionAsPattern(r[o]);n=!0,e={type:u,params:r,async:!1}}else r.push(this.inheritCoverGrammar(this.parseAssignmentExpression));if(n)break}n||(e=this.finalize(this.startNode(t),new a.SequenceExpression(r)))}if(!n){if(this.expect(")"),this.match("=>")&&(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<e.expressions.length;o++)this.reinterpretExpressionAsPattern(e.expressions[o]);else this.reinterpretExpressionAsPattern(e);var s=e.type===c.Syntax.SequenceExpression?e.expressions:[e];e={type:u,params:s,async:!1}}this.context.isBindingElement=!1}}}return e},e.prototype.parseArguments=function(){this.expect("(");var e=[];if(!this.match(")"))for(;;){var t=this.match("...")?this.parseSpreadElement():this.isolateCoverGrammar(this.parseAssignmentExpression);if(e.push(t),this.match(")"))break;if(this.expectCommaSeparator(),this.match(")"))break}return this.expect(")"),e},e.prototype.isIdentifierName=function(e){return 3===e.type||4===e.type||1===e.type||5===e.type},e.prototype.parseIdentifierName=function(){var e=this.createNode(),t=this.nextToken();return this.isIdentifierName(t)||this.throwUnexpectedToken(t),this.finalize(e,new a.Identifier(t.value))},e.prototype.parseNewExpression=function(){var e,t=this.createNode(),i=this.parseIdentifierName();if(n.assert("new"===i.name,"New expression must start with `new`"),this.match("."))if(this.nextToken(),3===this.lookahead.type&&this.context.inFunctionBody&&"target"===this.lookahead.value){var r=this.parseIdentifierName();e=new a.MetaProperty(i,r)}else this.throwUnexpectedToken(this.lookahead);else{var o=this.isolateCoverGrammar(this.parseLeftHandSideExpression),s=this.match("(")?this.parseArguments():[];e=new a.NewExpression(o,s),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1}return this.finalize(t,e)},e.prototype.parseAsyncArgument=function(){var e=this.parseAssignmentExpression();return this.context.firstCoverInitializedNameError=null,e},e.prototype.parseAsyncArguments=function(){this.expect("(");var e=[];if(!this.match(")"))for(;;){var t=this.match("...")?this.parseSpreadElement():this.isolateCoverGrammar(this.parseAsyncArgument);if(e.push(t),this.match(")"))break;if(this.expectCommaSeparator(),this.match(")"))break}return this.expect(")"),e},e.prototype.parseLeftHandSideExpressionAllowCall=function(){var e,t=this.lookahead,i=this.matchContextualKeyword("async"),n=this.context.allowIn;for(this.context.allowIn=!0,this.matchKeyword("super")&&this.context.inFunctionBody?(e=this.createNode(),this.nextToken(),e=this.finalize(e,new a.Super),this.match("(")||this.match(".")||this.match("[")||this.throwUnexpectedToken(this.lookahead)):e=this.inheritCoverGrammar(this.matchKeyword("new")?this.parseNewExpression:this.parsePrimaryExpression);;)if(this.match(".")){this.context.isBindingElement=!1,this.context.isAssignmentTarget=!0,this.expect(".");var r=this.parseIdentifierName();e=this.finalize(this.startNode(t),new a.StaticMemberExpression(e,r))}else if(this.match("(")){var o=i&&t.lineNumber===this.lookahead.lineNumber;this.context.isBindingElement=!1,this.context.isAssignmentTarget=!1;var s=o?this.parseAsyncArguments():this.parseArguments();if(e=this.finalize(this.startNode(t),new a.CallExpression(e,s)),o&&this.match("=>")){for(var c=0;c<s.length;++c)this.reinterpretExpressionAsPattern(s[c]);e={type:u,params:s,async:!0}}}else if(this.match("["))this.context.isBindingElement=!1,this.context.isAssignmentTarget=!0,this.expect("["),r=this.isolateCoverGrammar(this.parseExpression),this.expect("]"),e=this.finalize(this.startNode(t),new a.ComputedMemberExpression(e,r));else{if(10!==this.lookahead.type||!this.lookahead.head)break;var l=this.parseTemplateLiteral();e=this.finalize(this.startNode(t),new a.TaggedTemplateExpression(e,l))}return this.context.allowIn=n,e},e.prototype.parseSuper=function(){var e=this.createNode();return this.expectKeyword("super"),this.match("[")||this.match(".")||this.throwUnexpectedToken(this.lookahead),this.finalize(e,new a.Super)},e.prototype.parseLeftHandSideExpression=function(){n.assert(this.context.allowIn,"callee of new expression always allow in keyword.");for(var e=this.startNode(this.lookahead),t=this.matchKeyword("super")&&this.context.inFunctionBody?this.parseSuper():this.inheritCoverGrammar(this.matchKeyword("new")?this.parseNewExpression:this.parsePrimaryExpression);;)if(this.match("[")){this.context.isBindingElement=!1,this.context.isAssignmentTarget=!0,this.expect("[");var i=this.isolateCoverGrammar(this.parseExpression);this.expect("]"),t=this.finalize(e,new a.ComputedMemberExpression(t,i))}else if(this.match("."))this.context.isBindingElement=!1,this.context.isAssignmentTarget=!0,this.expect("."),i=this.parseIdentifierName(),t=this.finalize(e,new a.StaticMemberExpression(t,i));else{if(10!==this.lookahead.type||!this.lookahead.head)break;var r=this.parseTemplateLiteral();t=this.finalize(e,new a.TaggedTemplateExpression(t,r))}return t},e.prototype.parseUpdateExpression=function(){var e,t=this.lookahead;if(this.match("++")||this.match("--")){var i=this.startNode(t),n=this.nextToken();e=this.inheritCoverGrammar(this.parseUnaryExpression),this.context.strict&&e.type===c.Syntax.Identifier&&this.scanner.isRestrictedWord(e.name)&&this.tolerateError(o.Messages.StrictLHSPrefix),this.context.isAssignmentTarget||this.tolerateError(o.Messages.InvalidLHSInAssignment);var r=!0;e=this.finalize(i,new a.UpdateExpression(n.value,e,r)),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1}else if(e=this.inheritCoverGrammar(this.parseLeftHandSideExpressionAllowCall),!this.hasLineTerminator&&7===this.lookahead.type&&(this.match("++")||this.match("--"))){this.context.strict&&e.type===c.Syntax.Identifier&&this.scanner.isRestrictedWord(e.name)&&this.tolerateError(o.Messages.StrictLHSPostfix),this.context.isAssignmentTarget||this.tolerateError(o.Messages.InvalidLHSInAssignment),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;var s=this.nextToken().value;r=!1,e=this.finalize(this.startNode(t),new a.UpdateExpression(s,e,r))}return e},e.prototype.parseAwaitExpression=function(){var e=this.createNode();this.nextToken();var t=this.parseUnaryExpression();return this.finalize(e,new a.AwaitExpression(t))},e.prototype.parseUnaryExpression=function(){var e;if(this.match("+")||this.match("-")||this.match("~")||this.match("!")||this.matchKeyword("delete")||this.matchKeyword("void")||this.matchKeyword("typeof")){var t=this.startNode(this.lookahead),i=this.nextToken();e=this.inheritCoverGrammar(this.parseUnaryExpression),e=this.finalize(t,new a.UnaryExpression(i.value,e)),this.context.strict&&"delete"===e.operator&&e.argument.type===c.Syntax.Identifier&&this.tolerateError(o.Messages.StrictDelete),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1}else e=this.context.await&&this.matchContextualKeyword("await")?this.parseAwaitExpression():this.parseUpdateExpression();return e},e.prototype.parseExponentiationExpression=function(){var e=this.lookahead,t=this.inheritCoverGrammar(this.parseUnaryExpression);if(t.type!==c.Syntax.UnaryExpression&&this.match("**")){this.nextToken(),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;var i=t,n=this.isolateCoverGrammar(this.parseExponentiationExpression);t=this.finalize(this.startNode(e),new a.BinaryExpression("**",i,n))}return t},e.prototype.binaryPrecedence=function(e){var t=e.value;return 7===e.type?this.operatorPrecedence[t]||0:4===e.type&&("instanceof"===t||this.context.allowIn&&"in"===t)?7:0},e.prototype.parseBinaryExpression=function(){var e=this.lookahead,t=this.inheritCoverGrammar(this.parseExponentiationExpression),i=this.lookahead,n=this.binaryPrecedence(i);if(n>0){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<t.elements.length;i++)null!==t.elements[i]&&this.checkPatternParam(e,t.elements[i]);break;case c.Syntax.ObjectPattern:for(i=0;i<t.properties.length;i++)this.checkPatternParam(e,t.properties[i].value)}e.simple=e.simple&&t instanceof a.Identifier},e.prototype.reinterpretAsCoverFormalsList=function(e){var t,i=[e],n=!1;switch(e.type){case c.Syntax.Identifier:break;case u:i=e.params,n=e.async;break;default:return null}t={simple:!0,paramSet:{}};for(var r=0;r<i.length;++r)(a=i[r]).type===c.Syntax.AssignmentPattern?a.right.type===c.Syntax.YieldExpression&&(a.right.argument&&this.throwUnexpectedToken(this.lookahead),a.right.type=c.Syntax.Identifier,a.right.name="yield",delete a.right.argument,delete a.right.delegate):n&&a.type===c.Syntax.Identifier&&"await"===a.name&&this.throwUnexpectedToken(this.lookahead),this.checkPatternParam(t,a),i[r]=a;if(this.context.strict||!this.context.allowYield)for(r=0;r<i.length;++r){var a;(a=i[r]).type===c.Syntax.YieldExpression&&this.throwUnexpectedToken(this.lookahead)}if(t.message===o.Messages.StrictParamDupe){var s=this.context.strict?t.stricted:t.firstRestricted;this.throwUnexpectedToken(s,t.message)}return{simple:t.simple,params:i,stricted:t.stricted,firstRestricted:t.firstRestricted,message:t.message}},e.prototype.parseAssignmentExpression=function(){var e;if(!this.context.allowYield&&this.matchKeyword("yield"))e=this.parseYieldExpression();else{var t=this.lookahead,i=t;if(e=this.parseConditionalExpression(),3===i.type&&i.lineNumber===this.lookahead.lineNumber&&"async"===i.value&&(3===this.lookahead.type||this.matchKeyword("yield"))){var n=this.parsePrimaryExpression();this.reinterpretExpressionAsPattern(n),e={type:u,params:[n],async:!0}}if(e.type===u||this.match("=>")){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;r<t.length;r++){var s="$"+t[r].value;Object.prototype.hasOwnProperty.call(n,s)&&this.tolerateError(o.Messages.DuplicateBinding,t[r].value),n[s]=!0}this.context.strict&&i.type===c.Syntax.Identifier&&this.scanner.isRestrictedWord(i.name)&&this.tolerateError(o.Messages.StrictCatchVariable),this.expect(")");var l=this.parseBlock();return this.finalize(e,new a.CatchClause(i,l))},e.prototype.parseFinallyClause=function(){return this.expectKeyword("finally"),this.parseBlock()},e.prototype.parseTryStatement=function(){var e=this.createNode();this.expectKeyword("try");var t=this.parseBlock(),i=this.matchKeyword("catch")?this.parseCatchClause():null,n=this.matchKeyword("finally")?this.parseFinallyClause():null;return i||n||this.throwError(o.Messages.NoCatchOrFinally),this.finalize(e,new a.TryStatement(t,i,n))},e.prototype.parseDebuggerStatement=function(){var e=this.createNode();return this.expectKeyword("debugger"),this.consumeSemicolon(),this.finalize(e,new a.DebuggerStatement)},e.prototype.parseStatement=function(){var e;switch(this.lookahead.type){case 1:case 5:case 6:case 8:case 10:case 9:e=this.parseExpressionStatement();break;case 7:var t=this.lookahead.value;e="{"===t?this.parseBlock():"("===t?this.parseExpressionStatement():";"===t?this.parseEmptyStatement():this.parseExpressionStatement();break;case 3:e=this.matchAsyncFunction()?this.parseFunctionDeclaration():this.parseLabelledStatement();break;case 4:switch(this.lookahead.value){case"break":e=this.parseBreakStatement();break;case"continue":e=this.parseContinueStatement();break;case"debugger":e=this.parseDebuggerStatement();break;case"do":e=this.parseDoWhileStatement();break;case"for":e=this.parseForStatement();break;case"function":e=this.parseFunctionDeclaration();break;case"if":e=this.parseIfStatement();break;case"return":e=this.parseReturnStatement();break;case"switch":e=this.parseSwitchStatement();break;case"throw":e=this.parseThrowStatement();break;case"try":e=this.parseTryStatement();break;case"var":e=this.parseVariableStatement();break;case"while":e=this.parseWhileStatement();break;case"with":e=this.parseWithStatement();break;default:e=this.parseExpressionStatement()}break;default:e=this.throwUnexpectedToken(this.lookahead)}return e},e.prototype.parseFunctionSourceElements=function(){var e=this.createNode();this.expect("{");var t=this.parseDirectivePrologues(),i=this.context.labelSet,n=this.context.inIteration,r=this.context.inSwitch,o=this.context.inFunctionBody;for(this.context.labelSet={},this.context.inIteration=!1,this.context.inSwitch=!1,this.context.inFunctionBody=!0;2!==this.lookahead.type&&!this.match("}");)t.push(this.parseStatementListItem());return this.expect("}"),this.context.labelSet=i,this.context.inIteration=n,this.context.inSwitch=r,this.context.inFunctionBody=o,this.finalize(e,new a.BlockStatement(t))},e.prototype.validateParam=function(e,t,i){var n="$"+i;this.context.strict?(this.scanner.isRestrictedWord(i)&&(e.stricted=t,e.message=o.Messages.StrictParamName),Object.prototype.hasOwnProperty.call(e.paramSet,n)&&(e.stricted=t,e.message=o.Messages.StrictParamDupe)):e.firstRestricted||(this.scanner.isRestrictedWord(i)?(e.firstRestricted=t,e.message=o.Messages.StrictParamName):this.scanner.isStrictModeReservedWord(i)?(e.firstRestricted=t,e.message=o.Messages.StrictReservedWord):Object.prototype.hasOwnProperty.call(e.paramSet,n)&&(e.stricted=t,e.message=o.Messages.StrictParamDupe)),"function"==typeof Object.defineProperty?Object.defineProperty(e.paramSet,n,{value:!0,enumerable:!0,writable:!0,configurable:!0}):e.paramSet[n]=!0},e.prototype.parseRestElement=function(e){var t=this.createNode();this.expect("...");var i=this.parsePattern(e);return this.match("=")&&this.throwError(o.Messages.DefaultRestParameter),this.match(")")||this.throwError(o.Messages.ParameterAfterRestParameter),this.finalize(t,new a.RestElement(i))},e.prototype.parseFormalParameter=function(e){for(var t=[],i=this.match("...")?this.parseRestElement(t):this.parsePatternWithDefault(t),n=0;n<t.length;n++)this.validateParam(e,t[n],t[n].value);e.simple=e.simple&&i instanceof a.Identifier,e.params.push(i)},e.prototype.parseFormalParameters=function(e){var t;if(t={simple:!0,params:[],firstRestricted:e},this.expect("("),!this.match(")"))for(t.paramSet={};2!==this.lookahead.type&&(this.parseFormalParameter(t),!this.match(")"))&&(this.expect(","),!this.match(")")););return this.expect(")"),{simple:t.simple,params:t.params,stricted:t.stricted,firstRestricted:t.firstRestricted,message:t.message}},e.prototype.matchAsyncFunction=function(){var e=this.matchContextualKeyword("async");if(e){var t=this.scanner.saveState();this.scanner.scanComments();var i=this.scanner.lex();this.scanner.restoreState(t),e=t.lineNumber===i.lineNumber&&4===i.type&&"function"===i.value}return e},e.prototype.parseFunctionDeclaration=function(e){var t=this.createNode(),i=this.matchContextualKeyword("async");i&&this.nextToken(),this.expectKeyword("function");var n,r=!i&&this.match("*");r&&this.nextToken();var s=null,c=null;if(!e||!this.match("(")){var l=this.lookahead;s=this.parseVariableIdentifier(),this.context.strict?this.scanner.isRestrictedWord(l.value)&&this.tolerateUnexpectedToken(l,o.Messages.StrictFunctionName):this.scanner.isRestrictedWord(l.value)?(c=l,n=o.Messages.StrictFunctionName):this.scanner.isStrictModeReservedWord(l.value)&&(c=l,n=o.Messages.StrictReservedWord)}var u=this.context.await,d=this.context.allowYield;this.context.await=i,this.context.allowYield=!r;var h=this.parseFormalParameters(c),p=h.params,m=h.stricted;c=h.firstRestricted,h.message&&(n=h.message);var f=this.context.strict,g=this.context.allowStrictDirective;this.context.allowStrictDirective=h.simple;var _=this.parseFunctionSourceElements();return this.context.strict&&c&&this.throwUnexpectedToken(c,n),this.context.strict&&m&&this.tolerateUnexpectedToken(m,n),this.context.strict=f,this.context.allowStrictDirective=g,this.context.await=u,this.context.allowYield=d,i?this.finalize(t,new a.AsyncFunctionDeclaration(s,p,_)):this.finalize(t,new a.FunctionDeclaration(s,p,_,r))},e.prototype.parseFunctionExpression=function(){var e=this.createNode(),t=this.matchContextualKeyword("async");t&&this.nextToken(),this.expectKeyword("function");var i,n=!t&&this.match("*");n&&this.nextToken();var r,s=null,c=this.context.await,l=this.context.allowYield;if(this.context.await=t,this.context.allowYield=!n,!this.match("(")){var u=this.lookahead;s=this.context.strict||n||!this.matchKeyword("yield")?this.parseVariableIdentifier():this.parseIdentifierName(),this.context.strict?this.scanner.isRestrictedWord(u.value)&&this.tolerateUnexpectedToken(u,o.Messages.StrictFunctionName):this.scanner.isRestrictedWord(u.value)?(r=u,i=o.Messages.StrictFunctionName):this.scanner.isStrictModeReservedWord(u.value)&&(r=u,i=o.Messages.StrictReservedWord)}var d=this.parseFormalParameters(r),h=d.params,p=d.stricted;r=d.firstRestricted,d.message&&(i=d.message);var m=this.context.strict,f=this.context.allowStrictDirective;this.context.allowStrictDirective=d.simple;var g=this.parseFunctionSourceElements();return this.context.strict&&r&&this.throwUnexpectedToken(r,i),this.context.strict&&p&&this.tolerateUnexpectedToken(p,i),this.context.strict=m,this.context.allowStrictDirective=f,this.context.await=c,this.context.allowYield=l,t?this.finalize(e,new a.AsyncFunctionExpression(s,h,g)):this.finalize(e,new a.FunctionExpression(s,h,g,n))},e.prototype.parseDirective=function(){var e=this.lookahead,t=this.createNode(),i=this.parseExpression(),n=i.type===c.Syntax.Literal?this.getTokenRaw(e).slice(1,-1):null;return this.consumeSemicolon(),this.finalize(t,n?new a.Directive(i,n):new a.ExpressionStatement(i))},e.prototype.parseDirectivePrologues=function(){for(var e=null,t=[];;){var i=this.lookahead;if(8!==i.type)break;var n=this.parseDirective();t.push(n);var r=n.directive;if("string"!=typeof r)break;"use strict"===r?(this.context.strict=!0,e&&this.tolerateUnexpectedToken(e,o.Messages.StrictOctalLiteral),this.context.allowStrictDirective||this.tolerateUnexpectedToken(i,o.Messages.IllegalLanguageModeDirective)):!e&&i.octal&&(e=i)}return t},e.prototype.qualifiedPropertyName=function(e){switch(e.type){case 3:case 8:case 1:case 5:case 6:case 4:return!0;case 7:return"["===e.value}return!1},e.prototype.parseGetterMethod=function(){var e=this.createNode(),t=this.context.allowYield;this.context.allowYield=!0;var i=this.parseFormalParameters();i.params.length>0&&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;n<t;++n){if(this.eof()||!r.Character.isHexDigit(this.source.charCodeAt(this.index)))return null;i=16*i+a(this.source[this.index++])}return String.fromCharCode(i)},e.prototype.scanUnicodeCodePointEscape=function(){var e=this.source[this.index],t=0;for("}"===e&&this.throwUnexpectedToken();!this.eof()&&(e=this.source[this.index++],r.Character.isHexDigit(e.charCodeAt(0)));)t=16*t+a(e);return(t>1114111||"}"!==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<this.length;++e){var t=this.source[e];if("8"===t||"9"===t)return!1;if(!r.Character.isOctalDigit(t.charCodeAt(0)))return!0}return!0},e.prototype.scanNumericLiteral=function(){var e=this.index,t=this.source[e];n.assert(r.Character.isDecimalDigit(t.charCodeAt(0))||"."===t,"Numeric literal must start with a decimal digit or a decimal point");var i="";if("."!==t){if(i=this.source[this.index++],t=this.source[this.index],"0"===i){if("x"===t||"X"===t)return++this.index,this.scanHexLiteral(e);if("b"===t||"B"===t)return++this.index,this.scanBinaryLiteral(e);if("o"===t||"O"===t)return this.scanOctalLiteral(t,e);if(t&&r.Character.isOctalDigit(t.charCodeAt(0))&&this.isImplicitOctalLiteral())return this.scanOctalLiteral(t,e)}for(;r.Character.isDecimalDigit(this.source.charCodeAt(this.index));)i+=this.source[this.index++];t=this.source[this.index]}if("."===t){for(i+=this.source[this.index++];r.Character.isDecimalDigit(this.source.charCodeAt(this.index));)i+=this.source[this.index++];t=this.source[this.index]}if("e"===t||"E"===t)if(i+=this.source[this.index++],"+"!==(t=this.source[this.index])&&"-"!==t||(i+=this.source[this.index++]),r.Character.isDecimalDigit(this.source.charCodeAt(this.index)))for(;r.Character.isDecimalDigit(this.source.charCodeAt(this.index));)i+=this.source[this.index++];else this.throwUnexpectedToken();return r.Character.isIdentifierStart(this.source.charCodeAt(this.index))&&this.throwUnexpectedToken(),{type:6,value:parseFloat(i),lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}},e.prototype.scanStringLiteral=function(){var e=this.index,t=this.source[e];n.assert("'"===t||'"'===t,"String literal must starts with a quote"),++this.index;for(var i=!1,a="";!this.eof();){var s=this.source[this.index++];if(s===t){t="";break}if("\\"===s)if((s=this.source[this.index++])&&r.Character.isLineTerminator(s.charCodeAt(0)))++this.lineNumber,"\r"===s&&"\n"===this.source[this.index]&&++this.index,this.lineStart=this.index;else switch(s){case"u":if("{"===this.source[this.index])++this.index,a+=this.scanUnicodeCodePointEscape();else{var c=this.scanHexEscape(s);null===c&&this.throwUnexpectedToken(),a+=c}break;case"x":var l=this.scanHexEscape(s);null===l&&this.throwUnexpectedToken(o.Messages.InvalidHexEscapeSequence),a+=l;break;case"n":a+="\n";break;case"r":a+="\r";break;case"t":a+="\t";break;case"b":a+="\b";break;case"f":a+="\f";break;case"v":a+="\v";break;case"8":case"9":a+=s,this.tolerateUnexpectedToken();break;default:if(s&&r.Character.isOctalDigit(s.charCodeAt(0))){var u=this.octalToDecimal(s);i=u.octal||i,a+=String.fromCharCode(u.code)}else a+=s}else{if(r.Character.isLineTerminator(s.charCodeAt(0)))break;a+=s}}return""!==t&&(this.index=e,this.throwUnexpectedToken()),{type:8,value:a,octal:i,lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}},e.prototype.scanTemplate=function(){var e="",t=!1,i=this.index,n="`"===this.source[i],a=!1,s=2;for(++this.index;!this.eof();){var c=this.source[this.index++];if("`"===c){s=1,a=!0,t=!0;break}if("$"===c){if("{"===this.source[this.index]){this.curlyStack.push("${"),++this.index,t=!0;break}e+=c}else if("\\"===c)if(c=this.source[this.index++],r.Character.isLineTerminator(c.charCodeAt(0)))++this.lineNumber,"\r"===c&&"\n"===this.source[this.index]&&++this.index,this.lineStart=this.index;else switch(c){case"n":e+="\n";break;case"r":e+="\r";break;case"t":e+="\t";break;case"u":if("{"===this.source[this.index])++this.index,e+=this.scanUnicodeCodePointEscape();else{var l=this.index,u=this.scanHexEscape(c);null!==u?e+=u:(this.index=l,e+=c)}break;case"x":var d=this.scanHexEscape(c);null===d&&this.throwUnexpectedToken(o.Messages.InvalidHexEscapeSequence),e+=d;break;case"b":e+="\b";break;case"f":e+="\f";break;case"v":e+="\v";break;default:"0"===c?(r.Character.isDecimalDigit(this.source.charCodeAt(this.index))&&this.throwUnexpectedToken(o.Messages.TemplateOctalLiteral),e+="\0"):r.Character.isOctalDigit(c.charCodeAt(0))?this.throwUnexpectedToken(o.Messages.TemplateOctalLiteral):e+=c}else r.Character.isLineTerminator(c.charCodeAt(0))?(++this.lineNumber,"\r"===c&&"\n"===this.source[this.index]&&++this.index,this.lineStart=this.index,e+="\n"):e+=c}return t||this.throwUnexpectedToken(),n||this.curlyStack.pop(),{type:10,value:this.source.slice(i+1,this.index-s),cooked:e,head:n,tail:a,lineNumber:this.lineNumber,lineStart:this.lineStart,start:i,end:this.index}},e.prototype.testRegExp=function(e,t){var i=e,n=this;t.indexOf("u")>=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<this.index;++i)this.source[i];else this.index=i,e+="u";this.tolerateUnexpectedToken()}else this.tolerateUnexpectedToken()}return e},e.prototype.scanRegExp=function(){var e=this.index,t=this.scanRegExpBody(),i=this.scanRegExpFlags();return{type:9,value:"",pattern:t,flags:i,regex:this.testRegExp(t,i),lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}},e.prototype.lex=function(){if(this.eof())return{type:2,value:"",lineNumber:this.lineNumber,lineStart:this.lineStart,start:this.index,end:this.index};var e=this.source.charCodeAt(this.index);return r.Character.isIdentifierStart(e)?this.scanIdentifier():40===e||41===e||59===e?this.scanPunctuator():39===e||34===e?this.scanStringLiteral():46===e?r.Character.isDecimalDigit(this.source.charCodeAt(this.index+1))?this.scanNumericLiteral():this.scanPunctuator():r.Character.isDecimalDigit(e)?this.scanNumericLiteral():96===e||125===e&&"${"===this.curlyStack[this.curlyStack.length-1]?this.scanTemplate():e>=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]="<end>",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;t<e.length;++t){var i=e[t],n=this.scanner.source.slice(i.slice[0],i.slice[1]),r={type:i.multiLine?"BlockComment":"LineComment",value:n};this.trackRange&&(r.range=i.range),this.trackLoc&&(r.loc=i.loc),this.buffer.push(r)}if(!this.scanner.eof()){var a=void 0;this.trackLoc&&(a={start:{line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart},end:{}});var s="/"===this.scanner.source[this.scanner.index]&&this.reader.isRegexStart()?this.scanner.scanRegExp():this.scanner.lex();this.reader.push(s);var c={type:o.TokenName[s.type],value:this.scanner.source.slice(s.start,s.end)};if(this.trackRange&&(c.range=[s.start,s.end]),this.trackLoc&&(a.end={line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart},c.loc=a),9===s.type){var l=s.pattern,u=s.flags;c.regex={pattern:l,flags:u}}this.buffer.push(c)}}return this.buffer.shift()},e}();t.Tokenizer=s}]);for(var pb={},mb={},fb={byteLength:function(e){var t=xb(e),i=t[0],n=t[1];return 3*(i+n)/4-n},toByteArray:function(e){var t,i,n=xb(e),r=n[0],o=n[1],a=new bb(function(e,t,i){return 3*(t+i)/4-i}(0,r,o)),s=0,c=o>0?r-4:r;for(i=0;i<c;i+=4)t=_b[e.charCodeAt(i)]<<18|_b[e.charCodeAt(i+1)]<<12|_b[e.charCodeAt(i+2)]<<6|_b[e.charCodeAt(i+3)],a[s++]=t>>16&255,a[s++]=t>>8&255,a[s++]=255&t;2===o&&(t=_b[e.charCodeAt(i)]<<2|_b[e.charCodeAt(i+1)]>>4,a[s++]=255&t);1===o&&(t=_b[e.charCodeAt(i)]<<10|_b[e.charCodeAt(i+1)]<<4|_b[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;a<s;a+=o)r.push(Nb(e,a,a+o>s?s:a+o));1===n?(t=e[i-1],r.push(gb[t>>2]+gb[t<<4&63]+"==")):2===n&&(t=(e[i-2]<<8)+e[i-1],r.push(gb[t>>10]+gb[t>>4&63]+gb[t<<2&63]+"="));return r.join("")}},gb=[],_b=[],bb="undefined"!=typeof Uint8Array?Uint8Array:Array,vb="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",yb=0,wb=vb.length;yb<wb;++yb)gb[yb]=vb[yb],_b[vb.charCodeAt(yb)]=yb;function xb(e){var t=e.length;if(t%4>0)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 Nb(e,t,i){for(var n,r,o=[],a=t;a<i;a+=3)n=(e[a]<<16&16711680)+(e[a+1]<<8&65280)+(255&e[a+2]),o.push(gb[(r=n)>>18&63]+gb[r>>12&63]+gb[r>>6&63]+gb[63&r]);return o.join("")}_b["-".charCodeAt(0)]=62,_b["_".charCodeAt(0)]=63;var kb={}; -/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */function Ab(e){return Object.prototype.toString.call(e)}kb.read=function(e,t,i,n,r){var o,a,s=8*r-n-1,c=(1<<s)-1,l=c>>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)},kb.write=function(e,t,i,n,r,o){var a,s,c,l=8*o-r-1,u=(1<<l)-1,d=u>>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<<r|s,l+=r;l>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;o<arguments.length;o++)i.push(a[o]);if(null!=i&&(s.children=i),"function"==typeof e&&null!=e.defaultProps)for(o in e.defaultProps)void 0===s[o]&&(s[o]=e.defaultProps[o]);return x(e,s,n,r,null)}function x(e,t,i,n,r){var o={type:e,props:t,key:i,ref:n,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:null==r?++d.__v:r};return null!=d.vnode&&d.vnode(o),o}function N(e){return e.children}function k(e,t){this.props=e,this.context=t}function A(e,t){if(null==t)return e.__?A(e.__,e.__.__k.indexOf(e)+1):null;for(var i;t<e.__k.length;t++)if(null!=(i=e.__k[t])&&null!=i.__e)return i.__e;return"function"==typeof e.type?A(e):null}function C(e){var t,i;if(null!=(e=e.__)&&null!=e.__c){for(e.__e=e.__c.base=null,t=0;t<e.__k.length;t++)if(null!=(i=e.__k[t])&&null!=i.__e){e.__e=e.__c.base=i.__e;break}return C(e)}}function O(e){(!e.__d&&(e.__d=!0)&&h.push(e)&&!S.__r++||m!==d.debounceRendering)&&((m=d.debounceRendering)||p)(S)}function S(){for(var e;S.__r=h.length;)e=h.sort((function(e,t){return e.__v.__b-t.__v.__b})),h=[],e.some((function(e){var t,i,n,r,o,a;e.__d&&(o=(r=(t=e).__v).__e,(a=t.__P)&&(i=[],(n=v({},r)).__v=r.__v+1,$(a,r,n,t.__n,void 0!==a.ownerSVGElement,null!=r.__h?[o]:null,i,null==o?A(r):o,r.__h),j(i,r),r.__e!=o&&C(r)))}))}function E(e,t,i,n,r,o,a,s,c,l){var u,d,h,p,m,f,b,v=n&&n.__k||_,y=v.length;for(i.__k=[],u=0;u<t.length;u++)if(null!=(p=i.__k[u]=null==(p=t[u])||"boolean"==typeof p?null:"string"==typeof p||"number"==typeof p||"bigint"==typeof p?x(null,p,null,null,p):Array.isArray(p)?x(N,{children:p},null,null,null):p.__b>0?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;d<y;d++){if((h=v[d])&&p.key==h.key&&p.type===h.type){v[d]=void 0;break}h=null}$(e,p,h=h||g,r,o,a,s,c,l),m=p.__e,(d=p.ref)&&h.ref!=d&&(b||(b=[]),h.ref&&b.push(h.ref,null,p),b.push(d,p.__c||m,p)),null!=m?(null==f&&(f=m),"function"==typeof p.type&&null!=p.__k&&p.__k===h.__k?p.__d=c=F(p,c,e):c=B(e,p,h,v,m,c),l||"option"!==i.type?"function"==typeof i.type&&(i.__d=c):e.value=""):c&&h.__e==c&&c.parentNode!=e&&(c=A(h))}for(i.__e=f,u=y;u--;)null!=v[u]&&("function"==typeof i.type&&null!=v[u].__e&&v[u].__e==i.__d&&(i.__d=A(n,u+1)),P(v[u],v[u]));if(b)for(u=0;u<b.length;u++)I(b[u],b[++u],b[++u])}function F(e,t,i){var n,r;for(n=0;n<e.__k.length;n++)(r=e.__k[n])&&(r.__=e,t="function"==typeof r.type?F(r,t,i):B(i,r,r,e.__k,r.__e,t));return t}function D(e,t){return t=t||[],null==e||"boolean"==typeof e||(Array.isArray(e)?e.some((function(e){D(e,t)})):t.push(e)),t}function B(e,t,i,n,r,o){var a,s,c;if(void 0!==t.__d)a=t.__d,t.__d=void 0;else if(null==i||r!=o||null==r.parentNode)e:if(null==o||o.parentNode!==e)e.appendChild(r),a=null;else{for(s=o,c=0;(s=s.nextSibling)&&c<n.length;c+=2)if(s==r)break e;e.insertBefore(r,o),a=o}return void 0!==a?a:r.nextSibling}function L(e,t,i){"-"===t[0]?e.setProperty(t,i):e[t]=null==i?"":"number"!=typeof i||b.test(t)?i:i+"px"}function M(e,t,i,n,r){var o;e:if("style"===t)if("string"==typeof i)e.style.cssText=i;else{if("string"==typeof n&&(e.style.cssText=n=""),n)for(t in n)i&&t in i||L(e.style,t,"");if(i)for(t in i)n&&i[t]===n[t]||L(e.style,t,i[t])}else if("o"===t[0]&&"n"===t[1])o=t!==(t=t.replace(/Capture$/,"")),t=t.toLowerCase()in e?t.toLowerCase().slice(2):t.slice(2),e.l||(e.l={}),e.l[t+o]=i,i?n||e.addEventListener(t,o?R:T,o):e.removeEventListener(t,o?R:T,o);else if("dangerouslySetInnerHTML"!==t){if(r)t=t.replace(/xlink[H:h]/,"h").replace(/sName$/,"s");else if("href"!==t&&"list"!==t&&"form"!==t&&"tabIndex"!==t&&"download"!==t&&t in e)try{e[t]=null==i?"":i;break e}catch(a){}"function"==typeof i||(null!=i&&(!1!==i||"a"===t[0]&&"r"===t[1])?e.setAttribute(t,i):e.removeAttribute(t))}}function T(e){this.l[e.type+!1](d.event?d.event(e):e)}function R(e){this.l[e.type+!0](d.event?d.event(e):e)}function $(e,t,i,n,r,o,a,s,c){var l,u,h,p,m,f,b,w,x,A,C,O=t.type;if(void 0!==t.constructor)return null;null!=i.__h&&(c=i.__h,s=t.__e=i.__e,t.__h=null,o=[s]),(l=d.__b)&&l(t);try{e:if("function"==typeof O){if(w=t.props,x=(l=O.contextType)&&n[l.__c],A=l?x?x.props.value:l.__:n,i.__c?b=(u=t.__c=i.__c).__=u.__E:("prototype"in O&&O.prototype.render?t.__c=u=new O(w,A):(t.__c=u=new k(w,A),u.constructor=O,u.render=z),x&&x.sub(u),u.props=w,u.state||(u.state={}),u.context=A,u.__n=n,h=u.__d=!0,u.__h=[]),null==u.__s&&(u.__s=u.state),null!=O.getDerivedStateFromProps&&(u.__s==u.state&&(u.__s=v({},u.__s)),v(u.__s,O.getDerivedStateFromProps(w,u.__s))),p=u.props,m=u.state,h)null==O.getDerivedStateFromProps&&null!=u.componentWillMount&&u.componentWillMount(),null!=u.componentDidMount&&u.__h.push(u.componentDidMount);else{if(null==O.getDerivedStateFromProps&&w!==p&&null!=u.componentWillReceiveProps&&u.componentWillReceiveProps(w,A),!u.__e&&null!=u.shouldComponentUpdate&&!1===u.shouldComponentUpdate(w,u.__s,A)||t.__v===i.__v){u.props=w,u.state=u.__s,t.__v!==i.__v&&(u.__d=!1),u.__v=t,t.__e=i.__e,t.__k=i.__k,t.__k.forEach((function(e){e&&(e.__=t)})),u.__h.length&&a.push(u);break e}null!=u.componentWillUpdate&&u.componentWillUpdate(w,u.__s,A),null!=u.componentDidUpdate&&u.__h.push((function(){u.componentDidUpdate(p,m,f)}))}u.context=A,u.props=w,u.state=u.__s,(l=d.__r)&&l(t),u.__d=!1,u.__v=t,u.__P=e,l=u.render(u.props,u.state,u.context),u.state=u.__s,null!=u.getChildContext&&(n=v(v({},n),u.getChildContext())),h||null==u.getSnapshotBeforeUpdate||(f=u.getSnapshotBeforeUpdate(p,m)),C=null!=l&&l.type===N&&null==l.key?l.props.children:l,E(e,Array.isArray(C)?C:[C],t,i,n,r,o,a,s,c),u.base=t.__e,t.__h=null,u.__h.length&&a.push(u),b&&(u.__E=u.__=null),u.__e=!1}else null==o&&t.__v===i.__v?(t.__k=i.__k,t.__e=i.__e):t.__e=function(e,t,i,n,r,o,a,s){var c,l,u,d,h=i.props,p=t.props,m=t.type,f=0;if("svg"===m&&(r=!0),null!=o)for(;f<o.length;f++)if((c=o[f])&&(c===e||(m?c.localName==m:3==c.nodeType))){e=c,o[f]=null;break}if(null==e){if(null===m)return document.createTextNode(p);e=r?document.createElementNS("http://www.w3.org/2000/svg",m):document.createElement(m,p.is&&p),o=null,s=!1}if(null===m)h===p||s&&e.data===p||(e.data=p);else{if(o=o&&_.slice.call(e.childNodes),l=(h=i.props||g).dangerouslySetInnerHTML,u=p.dangerouslySetInnerHTML,!s){if(null!=o)for(h={},d=0;d<e.attributes.length;d++)h[e.attributes[d].name]=e.attributes[d].value;(u||l)&&(u&&(l&&u.__html==l.__html||u.__html===e.innerHTML)||(e.innerHTML=u&&u.__html||""))}if(function(e,t,i,n,r){var o;for(o in i)"children"===o||"key"===o||o in t||M(e,o,null,i[o],n);for(o in t)r&&"function"!=typeof t[o]||"children"===o||"key"===o||"value"===o||"checked"===o||i[o]===t[o]||M(e,o,t[o],i[o],n)}(e,p,h,r,s),u)t.__k=[];else if(f=t.props.children,E(e,Array.isArray(f)?f:[f],t,i,n,r&&"foreignObject"!==m,o,a,e.firstChild,s),null!=o)for(f=o.length;f--;)null!=o[f]&&y(o[f]);s||("value"in p&&void 0!==(f=p.value)&&(f!==e.value||"progress"===m&&!f)&&M(e,"value",f,h.value,!1),"checked"in p&&void 0!==(f=p.checked)&&f!==e.checked&&M(e,"checked",f,h.checked,!1))}return e}(i.__e,t,i,n,r,o,a,c);(l=d.diffed)&&l(t)}catch(S){t.__v=null,(c||null!=o)&&(t.__e=s,t.__h=!!c,o[o.indexOf(s)]=null),d.__e(S,t,i)}}function j(e,t){d.__c&&d.__c(t,e),e.some((function(t){try{e=t.__h,t.__h=[],e.some((function(e){e.call(t)}))}catch(i){d.__e(i,t.__v)}}))}function I(e,t,i){try{"function"==typeof e?e(t):e.current=t}catch(n){d.__e(n,i)}}function P(e,t,i){var n,r,o;if(d.unmount&&d.unmount(e),(n=e.ref)&&(n.current&&n.current!==e.__e||I(n,null,t)),i||"function"==typeof e.type||(i=null!=(r=e.__e)),e.__e=e.__d=void 0,null!=(n=e.__c)){if(n.componentWillUnmount)try{n.componentWillUnmount()}catch(a){d.__e(a,t)}n.base=n.__P=null}if(n=e.__k)for(o=0;o<n.length;o++)n[o]&&P(n[o],t,i);null!=r&&y(r)}function z(e,t,i){return this.constructor(e,i)}function U(e,t,i){var n,r,o;d.__&&d.__(e,t),r=(n="function"==typeof i)?null:i&&i.__k||t.__k,o=[],$(t,e=(!n&&i||t).__k=w(N,null,[e]),r||g,g,void 0!==t.ownerSVGElement,!n&&i?[i]:r?null:t.firstChild?_.slice.call(t.childNodes):null,o,!n&&i?i:r?r.__e:t.firstChild,n),j(o,e)}function W(e,t){U(e,t,W)}function H(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<arguments.length;o++)i.push(a[o]);return null!=i&&(s.children=i),x(e.type,s,n||e.key,r||e.ref,null)}function q(e,t){var i={__c:t="__cC"+f++,__:e,Consumer:function(e,t){return e.children(t)},Provider:function(e){var i,n;return this.getChildContext||(i=[],(n={})[t]=this,this.getChildContext=function(){return n},this.shouldComponentUpdate=function(e){this.props.value!==e.value&&i.some(O)},this.sub=function(e){i.push(e);var t=e.componentWillUnmount;e.componentWillUnmount=function(){i.splice(i.indexOf(e),1),t&&t.call(e)}}),e.children}};return i.Provider.__=i.Consumer.contextType=i}d={__e:function(e,t){for(var i,n,r;t=t.__;)if((i=t.__c)&&!i.__)try{if((n=i.constructor)&&null!=n.getDerivedStateFromError&&(i.setState(n.getDerivedStateFromError(e)),r=i.__d),null!=i.componentDidCatch&&(i.componentDidCatch(e),r=i.__d),r)return i.__E=i}catch(o){e=o}throw e},__v:0},k.prototype.setState=function(e,t){var i;i=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=v({},this.state),"function"==typeof e&&(e=e(v({},i),this.props)),e&&v(i,e),null!=e&&this.__v&&(t&&this.__h.push(t),O(this))},k.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),O(this))},k.prototype.render=N,h=[],p="function"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,S.__r=0,f=0;var V={};function G(e,t){for(var i in t)e[i]=t[i];return e}function K(e,t,i){var n,r=/(?:\?([^#]*))?(#.*)?$/,o=e.match(r),a={};if(o&&o[1])for(var s=o[1].split("&"),c=0;c<s.length;c++){var l=s[c].split("=");a[decodeURIComponent(l[0])]=decodeURIComponent(l.slice(1).join("="))}e=Y(e.replace(r,"")),t=Y(t||"");for(var u=Math.max(e.length,t.length),d=0;d<u;d++)if(t[d]&&":"===t[d].charAt(0)){var h=t[d].replace(/(^:|[+*?]+$)/g,""),p=(t[d].match(/[+*?]+$/)||V)[0]||"",m=~p.indexOf("+"),f=~p.indexOf("*"),g=e[d]||"";if(!g&&!f&&(p.indexOf("?")<0||m)){n=!1;break}if(a[h]=decodeURIComponent(g),m||f){a[h]=e.slice(d).map(decodeURIComponent).join("/");break}}else if(t[d]!==e[d]){n=!1;break}return(!0===i.default||!1!==n)&&a}function X(e,t){return e.rank<t.rank?1:e.rank>t.rank?-1:e.index-t.index}function J(e,t){return e.index=t,e.rank=function(e){return e.props.default?0:(t=e.props.path,Y(t).map(Z).join(""));var t}(e),e.props}function Y(e){return e.replace(/(^\/+|\/+$)/g,"").split("/")}function Z(e){return":"==e.charAt(0)?1+"*+?".indexOf(e.charAt(e.length-1))||4:5}var Q=null,ee=[],te=[],ie={};function ne(){var e;return""+((e=Q&&Q.location?Q.location:Q&&Q.getCurrentLocation?Q.getCurrentLocation():"undefined"!=typeof location?location:ie).pathname||"")+(e.search||"")}function re(e,t){return void 0===t&&(t=!1),"string"!=typeof e&&e.url&&(t=e.replace,e=e.url),function(e){for(var t=ee.length;t--;)if(ee[t].canRoute(e))return!0;return!1}(e)&&function(e,t){void 0===t&&(t="push"),Q&&Q[t]?Q[t](e):"undefined"!=typeof history&&history[t+"State"]&&history[t+"State"](null,null,e)}(e,t?"replace":"push"),oe(e)}function oe(e){for(var t=!1,i=0;i<ee.length;i++)!0===ee[i].routeTo(e)&&(t=!0);for(var n=te.length;n--;)te[n](e);return t}function ae(e){if(e&&e.getAttribute){var t=e.getAttribute("href"),i=e.getAttribute("target");if(t&&t.match(/^\//g)&&(!i||i.match(/^_?self$/i)))return re(t)}}function se(e){if(!(e.ctrlKey||e.metaKey||e.altKey||e.shiftKey||0!==e.button))return ae(e.currentTarget||e.target||this),ce(e)}function ce(e){return e&&(e.stopImmediatePropagation&&e.stopImmediatePropagation(),e.stopPropagation&&e.stopPropagation(),e.preventDefault()),!1}function le(e){if(!(e.ctrlKey||e.metaKey||e.altKey||e.shiftKey||0!==e.button)){var t=e.target;do{if("A"===String(t.nodeName).toUpperCase()&&t.getAttribute("href")){if(t.hasAttribute("native"))return;if(ae(t))return ce(e)}}while(t=t.parentNode)}}var ue=!1;var de=function(e){function t(t){e.call(this,t),t.history&&(Q=t.history),this.state={url:t.url||ne()},ue||("function"==typeof addEventListener&&(Q||addEventListener("popstate",(function(){oe(ne())})),addEventListener("click",le)),ue=!0)}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.shouldComponentUpdate=function(e){return!0!==e.static||(e.url!==this.props.url||e.onChange!==this.props.onChange)},t.prototype.canRoute=function(e){var t=D(this.props.children);return this.getMatchingChildren(t,e,!1).length>0},t.prototype.routeTo=function(e){this.setState({url:e});var t=this.canRoute(e);return this.updating||this.forceUpdate(),t},t.prototype.componentWillMount=function(){ee.push(this),this.updating=!0},t.prototype.componentDidMount=function(){var e=this;Q&&(this.unlisten=Q.listen((function(t){e.routeTo(""+(t.pathname||"")+(t.search||""))}))),this.updating=!1},t.prototype.componentWillUnmount=function(){"function"==typeof this.unlisten&&this.unlisten(),ee.splice(ee.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(J).sort(X).map((function(e){var n=K(t,e.props.path,e.props);if(n){if(!1!==i){var r={url:t,matches:n};return G(r,n),delete r.ref,delete r.key,H(e,r)}return e}})).filter(Boolean)},t.prototype.render=function(e,t){var i=e.children,n=e.onChange,r=t.url,o=this.getMatchingChildren(D(i),r,!0),a=o[0]||null,s=this.previousUrl;return r!==s&&(this.previousUrl=r,"function"==typeof n&&n({router:this,url:r,previous:s,active:o,current:a})),a},t}(k),he=function(e){return w("a",G({onClick:se},e))};de.subscribers=te,de.getCurrentUrl=ne,de.route=re,de.Router=de,de.Route=function(e){return w(e.component,e)},de.Link=he,de.exec=K;var pe,me,fe,ge=0,_e=[],be=d.__b,ve=d.__r,ye=d.diffed,we=d.__c,xe=d.unmount;function Ne(e,t){d.__h&&d.__h(me,e,ge||t),ge=0;var i=me.__H||(me.__H={__:[],__h:[]});return e>=i.__.length&&i.__.push({}),i.__[e]}function ke(e){return ge=1,Ae(je,e)}function Ae(e,t,i){var n=Ne(pe++,2);return n.t=e,n.__c||(n.__=[i?i(t):je(void 0,t),function(e){var t=n.t(n.__[0],e);n.__[0]!==t&&(n.__=[t,n.__[1]],n.__c.setState({}))}],n.__c=me),n.__}function Ce(e,t){var i=Ne(pe++,3);!d.__s&&$e(i.__H,t)&&(i.__=e,i.__H=t,me.__H.__h.push(i))}function Oe(e,t){var i=Ne(pe++,4);!d.__s&&$e(i.__H,t)&&(i.__=e,i.__H=t,me.__h.push(i))}function Se(e){return ge=5,Ee((function(){return{current:e}}),[])}function Ee(e,t){var i=Ne(pe++,7);return $e(i.__H,t)&&(i.__=e(),i.__H=t,i.__h=e),i.__}function Fe(e,t){return ge=8,Ee((function(){return e}),t)}function De(e){var t=me.context[e.__c],i=Ne(pe++,9);return i.__c=e,t?(null==i.__&&(i.__=!0,t.sub(me)),t.props.value):e.__}function Be(e){var t=Ne(pe++,10),i=ke();return t.__=e,me.componentDidCatch||(me.componentDidCatch=function(e){t.__&&t.__(e),i[1](e)}),[i[0],function(){i[1](void 0)}]}function Le(){_e.forEach((function(e){if(e.__P)try{e.__H.__h.forEach(Te),e.__H.__h.forEach(Re),e.__H.__h=[]}catch(t){e.__H.__h=[],d.__e(t,e.__v)}})),_e=[]}d.__b=function(e){me=null,be&&be(e)},d.__r=function(e){ve&&ve(e),pe=0;var t=(me=e.__c).__H;t&&(t.__h.forEach(Te),t.__h.forEach(Re),t.__h=[])},d.diffed=function(e){ye&&ye(e);var t=e.__c;t&&t.__H&&t.__H.__h.length&&(1!==_e.push(t)&&fe===d.requestAnimationFrame||((fe=d.requestAnimationFrame)||function(e){var t,i=function(){clearTimeout(n),Me&&cancelAnimationFrame(t),setTimeout(e)},n=setTimeout(i,100);Me&&(t=requestAnimationFrame(i))})(Le)),me=void 0},d.__c=function(e,t){t.some((function(e){try{e.__h.forEach(Te),e.__h=e.__h.filter((function(e){return!e.__||Re(e)}))}catch(i){t.some((function(e){e.__h&&(e.__h=[])})),t=[],d.__e(i,e.__v)}})),we&&we(e,t)},d.unmount=function(e){xe&&xe(e);var t=e.__c;if(t&&t.__H)try{t.__H.__.forEach(Te)}catch(i){d.__e(i,t.__v)}};var Me="function"==typeof requestAnimationFrame;function Te(e){var t=me;"function"==typeof e.__c&&e.__c(),me=t}function Re(e){var t=me;e.__c=e.__(),me=t}function $e(e,t){return!e||e.length!==t.length||t.some((function(t,i){return t!==e[i]}))}function je(e,t){return"function"==typeof t?t(e):t}var Ie="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},Pe={},ze={},Ue={};Object.defineProperty(Ue,"__esModule",{value:!0}),Ue.ModelPath=Ue.Path=Ue.relativePath=void 0,Ue.relativePath=function(e,t){return t.reduce(((e,t)=>"pop"===t?e.pop():e.push(t.push)),e)};class We{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 We(this.modelArr.slice(e,t),this.contextArr)}shift(){return new We(this.modelArr.slice(1),this.contextArr)}pop(){return new We(this.modelArr.slice(0,-1),this.contextArr)}push(e){return this.modelPush(e).contextPush(e)}modelPush(e){return new We([...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 We([...this.modelArr],[...this.contextArr,t])}copy(){return new We([...this.modelArr],[...this.contextArr])}getArray(){return this.modelArr}withModel(e){return new He(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.length<e.modelArr.length)&&e.modelArr.every(((e,t)=>e===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)}}Ue.Path=We;class He extends We{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 He(this.model,super.slice(e,t))}shift(){return new He(this.model,super.shift())}pop(){return new He(this.model,super.pop())}push(e){return this.modelPush(e).contextPush(e)}modelPush(e){return new He(this.model,super.modelPush(e))}contextPush(e){return new He(this.model,super.contextPush(e))}copy(){return new He(this.model,super.copy())}}Ue.ModelPath=He;var qe={};Object.defineProperty(qe,"__esModule",{value:!0}),qe.Errors=void 0;class Ve{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}}qe.Errors=Ve;var Ge={};function Ke(e){return e.replace(/(\\|")/g,"\\$1")}Object.defineProperty(Ge,"__esModule",{value:!0}),Ge.hexId=Ge.quoteString=Ge.escapeString=void 0,Ge.escapeString=Ke,Ge.quoteString=function(e){return`"${Ke(e)}"`};const Xe=e=>("0"+e.toString(16)).substr(-2);Ge.hexId=function(e=12){var t=new Uint8Array(e/2);return window.crypto.getRandomValues(t),Array.from(t,Xe).join("")},Object.defineProperty(ze,"__esModule",{value:!0}),ze.DataModel=void 0;const Je=Ue,Ye=qe,Ze=Ge;class Qe{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?Qe.wrapLists(a):a,this.listeners=[],this.errors=new Ye.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:(0,Ze.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:(0,Ze.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<this.history.length-1&&(this.historyIndex+=1,this.data=JSON.parse(this.history[this.historyIndex]),this.validate(!1),this.silentInvalidate())}validate(e){var t;const i=(new Je.Path).withModel(this);this.errors.clear(),this.data=null!==(t=this.schema.validate(i,this.data,this.errors,{loose:e,wrapLists:this.wrapLists}))&&void 0!==t?t:{}}error(e,t,...i){const n=new Ye.Errors;n.add(e,t,i),this.listeners.forEach((e=>{e.errors&&e.errors(n)}))}static wrapLists(e){if(Array.isArray(e)){const t=e.map((e=>({node:this.wrapLists(e),id:(0,Ze.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}}ze.DataModel=Qe;var et={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.Keep=e.Opt=e.Has=e.Mod=e.Base=void 0,e.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:()=>[]};e.Mod=(e,t)=>s(s({},e),"function"==typeof t?t(e):t);e.Has=(t,i)=>(0,e.Mod)(i,{enabled:e=>void 0!==e.push(t).get()}),e.Opt=function(e){return c(s({},e),{optional:()=>!0})},e.Keep=function(e){return c(s({},e),{keep:()=>!0})}}(et);var tt={};Object.defineProperty(tt,"__esModule",{value:!0}),tt.BooleanNode=void 0;const it=ze,nt=et;tt.BooleanNode=()=>c(s({},nt.Base),{type:()=>"boolean",default:()=>!1,suggest:()=>["false","true"],validate(e,t,i,n){return n.loose&&"boolean"!=typeof t&&(t=n.wrapLists?it.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 rt={},ot={};Object.defineProperty(ot,"__esModule",{value:!0}),ot.ListNode=void 0;const at=ze,st=et;ot.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({},st.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?at.DataModel.wrapLists(this.default()):this.default()),!Array.isArray(i))return n.add(t,"error.expected_list"),i;a&&(i.length<r||i.length>o)?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.length<r?n.add(t,"error.invalid_list_range.smaller",i.length,r):i.length>o&&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 ct={};Object.defineProperty(ct,"__esModule",{value:!0}),ct.SwitchNode=void 0;const lt=et;ct.SwitchNode=e=>c(s({},lt.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=ot,i=ct;e.ChoiceNode=(e,t)=>{const n=(0,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)=>(0,e.ChoiceNode)([{type:i,node:n,change:e=>{var t;return null!==(t=e[0])&&void 0!==t?t:n.default()}},{type:"list",node:(0,t.ListNode)(n),change:e=>e?[e]:[]}],r);e.ObjectOrList=n("object"),e.StringOrList=n("string");e.ObjectOrPreset=(t,i,n)=>(0,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]]}}])}(rt);var ut={};Object.defineProperty(ut,"__esModule",{value:!0}),ut.MapNode=void 0;const dt=et,ht=ze;ut.MapNode=(e,t,i)=>c(s({},dt.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?ht.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 pt={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.NumberEnum=e.NumberNode=void 0;const t=Pe,i=ze,n=et;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&&(t<l||t>u)?n.add(e,"error.invalid_number_range.between",t,l,u):t<l?n.add(e,"error.invalid_number_range.smaller",t,l):t>u&&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})=>(0,t.Mod)((0,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)})))}(pt);var mt={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.ObjectNode=e.Case=e.Switch=void 0;const t=et,i=Ue,a=qe,u=Ge,d=ze;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=(0,i.relativePath)(e,_).get(),n=b[t];return s(s({},v),n)},w=(e,t)=>{var n;const r=_?(0,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=(0,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)}})}}(mt);var ft={};Object.defineProperty(ft,"__esModule",{value:!0}),ft.Reference=void 0;ft.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 gt={};Object.defineProperty(gt,"__esModule",{value:!0}),gt.StringNode=void 0;const _t=et,bt=Ge,vt=ze,yt=e=>!!(null==e?void 0:e.enum),wt=e=>!!(null==e?void 0:e.validator);gt.StringNode=(e,t)=>{const i=()=>{var i,n,r,o;if(yt(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({},_t.Base),{type:()=>"string",default:()=>"",validate(e,n,r,o){if(o.loose&&"string"!=typeof n&&(n=(o.wrapLists?vt.DataModel.wrapLists(this.default()):this.default())||void 0),"string"!=typeof n)return r.add(e,"error.expected_string"),n;if(wt(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(yt(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(bt.quoteString),validationOption:()=>wt(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 xt={};Object.defineProperty(xt,"__esModule",{value:!0});var Nt={};Object.defineProperty(Nt,"__esModule",{value:!0}),Nt.CollectionRegistry=Nt.SchemaRegistry=void 0;Nt.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}};Nt.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 kt,At,Ct,Ot={};Object.defineProperty(Ot,"__esModule",{value:!0}),kt=Pe,At=Ie&&Ie.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i);var r=Object.getOwnPropertyDescriptor(t,i);r&&!("get"in r?!t.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,n,r)}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),Ct=Ie&&Ie.__exportStar||function(e,t){for(var i in e)"default"===i||Object.prototype.hasOwnProperty.call(t,i)||At(t,e,i)},Object.defineProperty(kt,"__esModule",{value:!0}),Ct(ze,kt),Ct(Ue,kt),Ct(qe,kt),Ct(et,kt),Ct(tt,kt),Ct(rt,kt),Ct(ot,kt),Ct(ut,kt),Ct(pt,kt),Ct(mt,kt),Ct(ft,kt),Ct(gt,kt),Ct(ct,kt),Ct(xt,kt),Ct(Nt,kt),Ct(Ot,kt);var St=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]=Et(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]=Et(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<r.length;a++){var s=r[a],c=e[s];if("object"!=typeof c||null===c)o[s]=c;else if(c instanceof Date)o[s]=new Date(c);else if(ArrayBuffer.isView(c))o[s]=Et(c);else{var l=t.indexOf(c);o[s]=-1!==l?i[l]:n(c)}}return o}}(e):e.proto?function e(i){if("object"!=typeof i||null===i)return i;if(i instanceof Date)return new Date(i);if(Array.isArray(i))return t(i,e);if(i instanceof Map)return new Map(t(Array.from(i),e));if(i instanceof Set)return new Set(t(Array.from(i),e));var n={};for(var r in i){var o=i[r];"object"!=typeof o||null===o?n[r]=o:o instanceof Date?n[r]=new Date(o):o instanceof Map?n[r]=new Map(t(Array.from(o),e)):o instanceof Set?n[r]=new Set(t(Array.from(o),e)):ArrayBuffer.isView(o)?n[r]=Et(o):n[r]=e(o)}return n}:function e(i){if("object"!=typeof i||null===i)return i;if(i instanceof Date)return new Date(i);if(Array.isArray(i))return t(i,e);if(i instanceof Map)return new Map(t(Array.from(i),e));if(i instanceof Set)return new Set(t(Array.from(i),e));var n={};for(var r in i)if(!1!==Object.hasOwnProperty.call(i,r)){var o=i[r];"object"!=typeof o||null===o?n[r]=o:o instanceof Date?n[r]=new Date(o):o instanceof Map?n[r]=new Map(t(Array.from(o),e)):o instanceof Set?n[r]=new Set(t(Array.from(o),e)):ArrayBuffer.isView(o)?n[r]=Et(o):n[r]=e(o)}return n};function t(e,t){for(var i=Object.keys(e),n=new Array(i.length),r=0;r<i.length;r++){var o=i[r],a=e[o];"object"!=typeof a||null===a?n[o]=a:a instanceof Date?n[o]=new Date(a):ArrayBuffer.isView(a)?n[o]=Et(a):n[o]=t(a)}return n}};function Et(e){return e instanceof Buffer?Buffer.from(e):new e.constructor(e.buffer.slice(),e.byteOffset,e.length)}var Ft={exports:{}};Ft.exports=function(e){var t={};function i(n){if(t[n])return t[n].exports;var r=t[n]={exports:{},id:n,loaded:!1};return e[n].call(r.exports,r,r.exports,i),r.loaded=!0,r.exports}return i.m=e,i.c=t,i.p="",i(0)}([function(e,t,i){var n,r;n=[i(1)],void 0===(r=function(e){var t={},i=function(){return navigator.userAgent.toLowerCase().indexOf("chrome")>-1},n=function(){return navigator.userAgent.toLowerCase().indexOf("firefox")>-1},r=function(){return navigator.userAgent.toLowerCase().indexOf("safari")>-1},o=function(){return document.documentMode&&document.documentMode>=11},a=function(){this.count=0,this.pending=[]};a.prototype.incr=function(){this.count++},a.prototype.decr=function(){this.count--,this.flush()},a.prototype.whenReady=function(e){this.pending.push(e),this.flush()},a.prototype.flush=function(){0===this.count&&(this.pending.forEach((function(e){e()})),this.pending=[])};var s=function(e){this.sem=new a,this.sync=e&&e.sync,this.mapForUri=e&&e.cacheGlobally?t:{}};s.prototype.ajax=function(e,t){var i=function(){for(var e=!1,t=0;t<p.length;t++){try{e=p[t]()}catch(i){continue}break}return e}(),n=this;i.onreadystatechange=function(){4==i.readyState&&t.call(n,i,e)},i.open("GET",e,!this.sync),i.send()},s.prototype.fetchScript=function(e){e in this.mapForUri||(this.sem.incr(),this.mapForUri[e]=null,this.ajax(e,this.onScriptLoad))};var c=new RegExp("^(?:[a-z]+:)?//","i");s.prototype.onScriptLoad=function(t,i){if(200===t.status||"file://"===i.slice(0,7)&&0===t.status){var n=t.responseText.match("//# [s]ourceMappingURL=(.*)[\\s]*$","m");if(n&&2===n.length){var r=n[1],o=r.match("data:application/json;(charset=[^;]+;)?base64,(.*)");if(o&&o[2])this.mapForUri[i]=new e.SourceMapConsumer(atob(o[2])),this.sem.decr();else{if(!c.test(r)){var a,s=i.lastIndexOf("/");-1!==s&&(a=i.slice(0,s+1),r=a+r)}this.ajax(r,(function(t){(200===t.status||"file://"===r.slice(0,7)&&0===t.status)&&(this.mapForUri[i]=new e.SourceMapConsumer(t.responseText)),this.sem.decr()}))}}else this.sem.decr()}else this.sem.decr()};var l=function(e,t,i,n){for(var r,o=[],a="chrome"===n?u:d,s=0;s<e.length;s++){var c=t[s];if(c){var l=c[1],p=parseInt(c[2],10),m=parseInt(c[3],10);if(r=i[l]){var f=r.originalPositionFor({line:p,column:m});o.push(h(f.source,f.line,f.column,f.name||a(e[s])))}else o.push(h(l,p,m,a(e[s])))}else o.push(e[s])}return o};function u(e){var t=/ +at +([^ ]*).*/.exec(e);return t&&t[1]}function d(e){var t=/([^@]*)@.*/.exec(e);return t&&t[1]}var h=function(e,t,i,n){return" at "+(n||"(unknown)")+" ("+e+":"+t+":"+i+")"},p=[function(){return new XMLHttpRequest},function(){return new ActiveXObject("Msxml2.XMLHTTP")},function(){return new ActiveXObject("Msxml3.XMLHTTP")},function(){return new ActiveXObject("Microsoft.XMLHTTP")}];return{mapStackTrace:function(e,t,a){var c,u,d,h,p,m,f,g={},_=new s(a),b=a&&a.traceFormat;if("chrome"!==b&&"firefox"!==b){if(b)throw new Error('unknown traceFormat "'+b+'" :(');if(i()||o())b="chrome";else{if(!n()&&!r())throw new Error("unknown browser :(");b="firefox"}}"chrome"===b?(m=/^ +at.+\((.*):([0-9]+):([0-9]+)/,p=4,f=1):(m=/@(.*):([0-9]+):([0-9]+)/,p=4,f=0),c=e.split("\n").slice(f);for(var v=0;v<c.length;v++)u=c[v],a&&a.filter&&!a.filter(u)||(d=u.match(m))&&d.length===p&&(g[v]=d,(h=d[1]).match(/<anonymous>/)||_.fetchScript(h));_.sem.whenReady((function(){var e=l(c,g,_.mapForUri,b);t(e)}))}}}.apply(t,n))||(e.exports=r)},function(e,t,i){var n=i(2),r=i(3),o=i(4).ArraySet,a=i(5),s=i(7).quickSort;function c(e){var t=e;return"string"==typeof e&&(t=JSON.parse(e.replace(/^\)\]\}'/,""))),null!=t.sections?new d(t):new l(t)}function l(e){var t=e;"string"==typeof e&&(t=JSON.parse(e.replace(/^\)\]\}'/,"")));var i=n.getArg(t,"version"),r=n.getArg(t,"sources"),a=n.getArg(t,"names",[]),s=n.getArg(t,"sourceRoot",null),c=n.getArg(t,"sourcesContent",null),l=n.getArg(t,"mappings"),u=n.getArg(t,"file",null);if(i!=this._version)throw new Error("Unsupported version: "+i);r=r.map(String).map(n.normalize).map((function(e){return s&&n.isAbsolute(s)&&n.isAbsolute(e)?n.relative(s,e):e})),this._names=o.fromArray(a.map(String),!0),this._sources=o.fromArray(r,!0),this.sourceRoot=s,this.sourcesContent=c,this._mappings=l,this.file=u}function u(){this.generatedLine=0,this.generatedColumn=0,this.source=null,this.originalLine=null,this.originalColumn=null,this.name=null}function d(e){var t=e;"string"==typeof e&&(t=JSON.parse(e.replace(/^\)\]\}'/,"")));var i=n.getArg(t,"version"),r=n.getArg(t,"sections");if(i!=this._version)throw new Error("Unsupported version: "+i);this._sources=new o,this._names=new o;var a={line:-1,column:0};this._sections=r.map((function(e){if(e.url)throw new Error("Support for url field in sections not implemented.");var t=n.getArg(e,"offset"),i=n.getArg(t,"line"),r=n.getArg(t,"column");if(i<a.line||i===a.line&&r<a.column)throw new Error("Section offsets must be ordered and non-overlapping.");return a=t,{generatedOffset:{generatedLine:i+1,generatedColumn:r+1},consumer:new c(n.getArg(e,"map"))}}))}c.fromSourceMap=function(e){return l.fromSourceMap(e)},c.prototype._version=3,c.prototype.__generatedMappings=null,Object.defineProperty(c.prototype,"_generatedMappings",{get:function(){return this.__generatedMappings||this._parseMappings(this._mappings,this.sourceRoot),this.__generatedMappings}}),c.prototype.__originalMappings=null,Object.defineProperty(c.prototype,"_originalMappings",{get:function(){return this.__originalMappings||this._parseMappings(this._mappings,this.sourceRoot),this.__originalMappings}}),c.prototype._charIsMappingSeparator=function(e,t){var i=e.charAt(t);return";"===i||","===i},c.prototype._parseMappings=function(e,t){throw new Error("Subclasses must implement _parseMappings")},c.GENERATED_ORDER=1,c.ORIGINAL_ORDER=2,c.GREATEST_LOWER_BOUND=1,c.LEAST_UPPER_BOUND=2,c.prototype.eachMapping=function(e,t,i){var r,o=t||null;switch(i||c.GENERATED_ORDER){case c.GENERATED_ORDER:r=this._generatedMappings;break;case c.ORIGINAL_ORDER:r=this._originalMappings;break;default:throw new Error("Unknown order of iteration.")}var a=this.sourceRoot;r.map((function(e){var t=null===e.source?null:this._sources.at(e.source);return null!=t&&null!=a&&(t=n.join(a,t)),{source:t,generatedLine:e.generatedLine,generatedColumn:e.generatedColumn,originalLine:e.originalLine,originalColumn:e.originalColumn,name:null===e.name?null:this._names.at(e.name)}}),this).forEach(e,o)},c.prototype.allGeneratedPositionsFor=function(e){var t=n.getArg(e,"line"),i={source:n.getArg(e,"source"),originalLine:t,originalColumn:n.getArg(e,"column",0)};if(null!=this.sourceRoot&&(i.source=n.relative(this.sourceRoot,i.source)),!this._sources.has(i.source))return[];i.source=this._sources.indexOf(i.source);var o=[],a=this._findMapping(i,this._originalMappings,"originalLine","originalColumn",n.compareByOriginalPositions,r.LEAST_UPPER_BOUND);if(a>=0){var s=this._originalMappings[a];if(void 0===e.column)for(var c=s.originalLine;s&&s.originalLine===c;)o.push({line:n.getArg(s,"generatedLine",null),column:n.getArg(s,"generatedColumn",null),lastColumn:n.getArg(s,"lastGeneratedColumn",null)}),s=this._originalMappings[++a];else for(var l=s.originalColumn;s&&s.originalLine===t&&s.originalColumn==l;)o.push({line:n.getArg(s,"generatedLine",null),column:n.getArg(s,"generatedColumn",null),lastColumn:n.getArg(s,"lastGeneratedColumn",null)}),s=this._originalMappings[++a]}return o},t.SourceMapConsumer=c,l.prototype=Object.create(c.prototype),l.prototype.consumer=c,l.fromSourceMap=function(e){var t=Object.create(l.prototype),i=t._names=o.fromArray(e._names.toArray(),!0),r=t._sources=o.fromArray(e._sources.toArray(),!0);t.sourceRoot=e._sourceRoot,t.sourcesContent=e._generateSourcesContent(t._sources.toArray(),t.sourceRoot),t.file=e._file;for(var a=e._mappings.toArray().slice(),c=t.__generatedMappings=[],d=t.__originalMappings=[],h=0,p=a.length;h<p;h++){var m=a[h],f=new u;f.generatedLine=m.generatedLine,f.generatedColumn=m.generatedColumn,m.source&&(f.source=r.indexOf(m.source),f.originalLine=m.originalLine,f.originalColumn=m.originalColumn,m.name&&(f.name=i.indexOf(m.name)),d.push(f)),c.push(f)}return s(t.__originalMappings,n.compareByOriginalPositions),t},l.prototype._version=3,Object.defineProperty(l.prototype,"sources",{get:function(){return this._sources.toArray().map((function(e){return null!=this.sourceRoot?n.join(this.sourceRoot,e):e}),this)}}),l.prototype._parseMappings=function(e,t){for(var i,r,o,c,l,d=1,h=0,p=0,m=0,f=0,g=0,_=e.length,b=0,v={},y={},w=[],x=[];b<_;)if(";"===e.charAt(b))d++,b++,h=0;else if(","===e.charAt(b))b++;else{for((i=new u).generatedLine=d,c=b;c<_&&!this._charIsMappingSeparator(e,c);c++);if(o=v[r=e.slice(b,c)])b+=r.length;else{for(o=[];b<c;)a.decode(e,b,y),l=y.value,b=y.rest,o.push(l);if(2===o.length)throw new Error("Found a source, but no line and column");if(3===o.length)throw new Error("Found a source and line, but no column");v[r]=o}i.generatedColumn=h+o[0],h=i.generatedColumn,o.length>1&&(i.source=f+o[1],f+=o[1],i.originalLine=p+o[2],p=i.originalLine,i.originalLine+=1,i.originalColumn=m+o[3],m=i.originalColumn,o.length>4&&(i.name=g+o[4],g+=o[4])),x.push(i),"number"==typeof i.originalLine&&w.push(i)}s(x,n.compareByGeneratedPositionsDeflated),this.__generatedMappings=x,s(w,n.compareByOriginalPositions),this.__originalMappings=w},l.prototype._findMapping=function(e,t,i,n,o,a){if(e[i]<=0)throw new TypeError("Line must be greater than or equal to 1, got "+e[i]);if(e[n]<0)throw new TypeError("Column must be greater than or equal to 0, got "+e[n]);return r.search(e,t,o,a)},l.prototype.computeColumnSpans=function(){for(var e=0;e<this._generatedMappings.length;++e){var t=this._generatedMappings[e];if(e+1<this._generatedMappings.length){var i=this._generatedMappings[e+1];if(t.generatedLine===i.generatedLine){t.lastGeneratedColumn=i.generatedColumn-1;continue}}t.lastGeneratedColumn=1/0}},l.prototype.originalPositionFor=function(e){var t={generatedLine:n.getArg(e,"line"),generatedColumn:n.getArg(e,"column")},i=this._findMapping(t,this._generatedMappings,"generatedLine","generatedColumn",n.compareByGeneratedPositionsDeflated,n.getArg(e,"bias",c.GREATEST_LOWER_BOUND));if(i>=0){var r=this._generatedMappings[i];if(r.generatedLine===t.generatedLine){var o=n.getArg(r,"source",null);null!==o&&(o=this._sources.at(o),null!=this.sourceRoot&&(o=n.join(this.sourceRoot,o)));var a=n.getArg(r,"name",null);return null!==a&&(a=this._names.at(a)),{source:o,line:n.getArg(r,"originalLine",null),column:n.getArg(r,"originalColumn",null),name:a}}}return{source:null,line:null,column:null,name:null}},l.prototype.hasContentsOfAllSources=function(){return!!this.sourcesContent&&this.sourcesContent.length>=this._sources.size()&&!this.sourcesContent.some((function(e){return null==e}))},l.prototype.sourceContentFor=function(e,t){if(!this.sourcesContent)return null;if(null!=this.sourceRoot&&(e=n.relative(this.sourceRoot,e)),this._sources.has(e))return this.sourcesContent[this._sources.indexOf(e)];var i;if(null!=this.sourceRoot&&(i=n.urlParse(this.sourceRoot))){var r=e.replace(/^file:\/\//,"");if("file"==i.scheme&&this._sources.has(r))return this.sourcesContent[this._sources.indexOf(r)];if((!i.path||"/"==i.path)&&this._sources.has("/"+e))return this.sourcesContent[this._sources.indexOf("/"+e)]}if(t)return null;throw new Error('"'+e+'" is not in the SourceMap.')},l.prototype.generatedPositionFor=function(e){var t=n.getArg(e,"source");if(null!=this.sourceRoot&&(t=n.relative(this.sourceRoot,t)),!this._sources.has(t))return{line:null,column:null,lastColumn:null};var i={source:t=this._sources.indexOf(t),originalLine:n.getArg(e,"line"),originalColumn:n.getArg(e,"column")},r=this._findMapping(i,this._originalMappings,"originalLine","originalColumn",n.compareByOriginalPositions,n.getArg(e,"bias",c.GREATEST_LOWER_BOUND));if(r>=0){var o=this._originalMappings[r];if(o.source===i.source)return{line:n.getArg(o,"generatedLine",null),column:n.getArg(o,"generatedColumn",null),lastColumn:n.getArg(o,"lastGeneratedColumn",null)}}return{line:null,column:null,lastColumn:null}},t.BasicSourceMapConsumer=l,d.prototype=Object.create(c.prototype),d.prototype.constructor=c,d.prototype._version=3,Object.defineProperty(d.prototype,"sources",{get:function(){for(var e=[],t=0;t<this._sections.length;t++)for(var i=0;i<this._sections[t].consumer.sources.length;i++)e.push(this._sections[t].consumer.sources[i]);return e}}),d.prototype.originalPositionFor=function(e){var t={generatedLine:n.getArg(e,"line"),generatedColumn:n.getArg(e,"column")},i=r.search(t,this._sections,(function(e,t){var i=e.generatedLine-t.generatedOffset.generatedLine;return i||e.generatedColumn-t.generatedOffset.generatedColumn})),o=this._sections[i];return o?o.consumer.originalPositionFor({line:t.generatedLine-(o.generatedOffset.generatedLine-1),column:t.generatedColumn-(o.generatedOffset.generatedLine===t.generatedLine?o.generatedOffset.generatedColumn-1:0),bias:e.bias}):{source:null,line:null,column:null,name:null}},d.prototype.hasContentsOfAllSources=function(){return this._sections.every((function(e){return e.consumer.hasContentsOfAllSources()}))},d.prototype.sourceContentFor=function(e,t){for(var i=0;i<this._sections.length;i++){var n=this._sections[i].consumer.sourceContentFor(e,!0);if(n)return n}if(t)return null;throw new Error('"'+e+'" is not in the SourceMap.')},d.prototype.generatedPositionFor=function(e){for(var t=0;t<this._sections.length;t++){var i=this._sections[t];if(-1!==i.consumer.sources.indexOf(n.getArg(e,"source"))){var r=i.consumer.generatedPositionFor(e);if(r)return{line:r.line+(i.generatedOffset.generatedLine-1),column:r.column+(i.generatedOffset.generatedLine===r.line?i.generatedOffset.generatedColumn-1:0)}}}return{line:null,column:null}},d.prototype._parseMappings=function(e,t){this.__generatedMappings=[],this.__originalMappings=[];for(var i=0;i<this._sections.length;i++)for(var r=this._sections[i],o=r.consumer._generatedMappings,a=0;a<o.length;a++){var c=o[a],l=r.consumer._sources.at(c.source);null!==r.consumer.sourceRoot&&(l=n.join(r.consumer.sourceRoot,l)),this._sources.add(l),l=this._sources.indexOf(l);var u=r.consumer._names.at(c.name);this._names.add(u),u=this._names.indexOf(u);var d={source:l,generatedLine:c.generatedLine+(r.generatedOffset.generatedLine-1),generatedColumn:c.generatedColumn+(r.generatedOffset.generatedLine===c.generatedLine?r.generatedOffset.generatedColumn-1:0),originalLine:c.originalLine,originalColumn:c.originalColumn,name:u};this.__generatedMappings.push(d),"number"==typeof d.originalLine&&this.__originalMappings.push(d)}s(this.__generatedMappings,n.compareByGeneratedPositionsDeflated),s(this.__originalMappings,n.compareByOriginalPositions)},t.IndexedSourceMapConsumer=d},function(e,t){t.getArg=function(e,t,i){if(t in e)return e[t];if(3===arguments.length)return i;throw new Error('"'+t+'" is a required argument.')};var i=/^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.]*)(?::(\d+))?(\S*)$/,n=/^data:.+\,.+$/;function r(e){var t=e.match(i);return t?{scheme:t[1],auth:t[2],host:t[3],port:t[4],path:t[5]}:null}function o(e){var t="";return e.scheme&&(t+=e.scheme+":"),t+="//",e.auth&&(t+=e.auth+"@"),e.host&&(t+=e.host),e.port&&(t+=":"+e.port),e.path&&(t+=e.path),t}function a(e){var i=e,n=r(e);if(n){if(!n.path)return e;i=n.path}for(var a,s=t.isAbsolute(i),c=i.split(/\/+/),l=0,u=c.length-1;u>=0;u--)"."===(a=c[u])?c.splice(u,1):".."===a?l++:l>0&&(""===a?(c.splice(u+1,l),l=0):(c.splice(u,2),l--));return""===(i=c.join("/"))&&(i=s?"/":"."),n?(n.path=i,o(n)):i}t.urlParse=r,t.urlGenerate=o,t.normalize=a,t.join=function(e,t){""===e&&(e="."),""===t&&(t=".");var i=r(t),s=r(e);if(s&&(e=s.path||"/"),i&&!i.scheme)return s&&(i.scheme=s.scheme),o(i);if(i||t.match(n))return t;if(s&&!s.host&&!s.path)return s.host=t,o(s);var c="/"===t.charAt(0)?t:a(e.replace(/\/+$/,"")+"/"+t);return s?(s.path=c,o(s)):c},t.isAbsolute=function(e){return"/"===e.charAt(0)||!!e.match(i)},t.relative=function(e,t){""===e&&(e="."),e=e.replace(/\/$/,"");for(var i=0;0!==t.indexOf(e+"/");){var n=e.lastIndexOf("/");if(n<0)return t;if((e=e.slice(0,n)).match(/^([^\/]+:\/)?\/*$/))return t;++i}return Array(i+1).join("../")+t.substr(e.length+1)};var s=!("__proto__"in Object.create(null));function c(e){return e}function l(e){if(!e)return!1;var t=e.length;if(t<9)return!1;if(95!==e.charCodeAt(t-1)||95!==e.charCodeAt(t-2)||111!==e.charCodeAt(t-3)||116!==e.charCodeAt(t-4)||111!==e.charCodeAt(t-5)||114!==e.charCodeAt(t-6)||112!==e.charCodeAt(t-7)||95!==e.charCodeAt(t-8)||95!==e.charCodeAt(t-9))return!1;for(var i=t-10;i>=0;i--)if(36!==e.charCodeAt(i))return!1;return!0}function u(e,t){return e===t?0:e>t?1:-1}t.toSetString=s?c:function(e){return l(e)?"$"+e:e},t.fromSetString=s?c:function(e){return l(e)?e.slice(1):e},t.compareByOriginalPositions=function(e,t,i){var n=e.source-t.source;return 0!==n||0!=(n=e.originalLine-t.originalLine)||0!=(n=e.originalColumn-t.originalColumn)||i||0!=(n=e.generatedColumn-t.generatedColumn)||0!=(n=e.generatedLine-t.generatedLine)?n:e.name-t.name},t.compareByGeneratedPositionsDeflated=function(e,t,i){var n=e.generatedLine-t.generatedLine;return 0!==n||0!=(n=e.generatedColumn-t.generatedColumn)||i||0!=(n=e.source-t.source)||0!=(n=e.originalLine-t.originalLine)||0!=(n=e.originalColumn-t.originalColumn)?n:e.name-t.name},t.compareByGeneratedPositionsInflated=function(e,t){var i=e.generatedLine-t.generatedLine;return 0!==i||0!=(i=e.generatedColumn-t.generatedColumn)||0!==(i=u(e.source,t.source))||0!=(i=e.originalLine-t.originalLine)||0!=(i=e.originalColumn-t.originalColumn)?i:u(e.name,t.name)}},function(e,t){function i(e,n,r,o,a,s){var c=Math.floor((n-e)/2)+e,l=a(r,o[c],!0);return 0===l?c:l>0?n-c>1?i(c,n,r,o,a,s):s==t.LEAST_UPPER_BOUND?n<o.length?n:-1:c:c-e>1?i(e,c,r,o,a,s):s==t.LEAST_UPPER_BOUND?c:e<0?-1:e}t.GREATEST_LOWER_BOUND=1,t.LEAST_UPPER_BOUND=2,t.search=function(e,n,r,o){if(0===n.length)return-1;var a=i(-1,n.length,e,n,r,o||t.GREATEST_LOWER_BOUND);if(a<0)return-1;for(;a-1>=0&&0===r(n[a],n[a-1],!0);)--a;return a}},function(e,t,i){var n=i(2),r=Object.prototype.hasOwnProperty;function o(){this._array=[],this._set=Object.create(null)}o.fromArray=function(e,t){for(var i=new o,n=0,r=e.length;n<r;n++)i.add(e[n],t);return i},o.prototype.size=function(){return Object.getOwnPropertyNames(this._set).length},o.prototype.add=function(e,t){var i=n.toSetString(e),o=r.call(this._set,i),a=this._array.length;o&&!t||this._array.push(e),o||(this._set[i]=a)},o.prototype.has=function(e){var t=n.toSetString(e);return r.call(this._set,t)},o.prototype.indexOf=function(e){var t=n.toSetString(e);if(r.call(this._set,t))return this._set[t];throw new Error('"'+e+'" is not in the set.')},o.prototype.at=function(e){if(e>=0&&e<this._array.length)return this._array[e];throw new Error("No element indexed by "+e)},o.prototype.toArray=function(){return this._array.slice()},t.ArraySet=o},function(e,t,i){var n=i(6);t.encode=function(e){var t,i="",r=function(e){return e<0?1+(-e<<1):0+(e<<1)}(e);do{t=31&r,(r>>>=5)>0&&(t|=32),i+=n.encode(t)}while(r>0);return i},t.decode=function(e,t,i){var r,o,a,s,c=e.length,l=0,u=0;do{if(t>=c)throw new Error("Expected more digits in base 64 VLQ value.");if(-1===(o=n.decode(e.charCodeAt(t++))))throw new Error("Invalid base64 digit: "+e.charAt(t-1));r=!!(32&o),l+=(o&=31)<<u,u+=5}while(r);i.value=(s=(a=l)>>1,1==(1&a)?-s:s),i.rest=t}},function(e,t){var i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");t.encode=function(e){if(0<=e&&e<i.length)return i[e];throw new TypeError("Must be between 0 and 63: "+e)},t.decode=function(e){return 65<=e&&e<=90?e-65:97<=e&&e<=122?e-97+26:48<=e&&e<=57?e-48+52:43==e?62:47==e?63:-1}},function(e,t){function i(e,t,i){var n=e[t];e[t]=e[i],e[i]=n}function n(e,t,r,o){if(r<o){var a=r-1;i(e,(u=r,d=o,Math.round(u+Math.random()*(d-u))),o);for(var s=e[o],c=r;c<o;c++)t(e[c],s)<=0&&i(e,a+=1,c);i(e,a+1,c);var l=a+1;n(e,t,r,l-1),n(e,t,l+1,o)}var u,d}t.quickSort=function(e,t){n(e,t,0,e.length-1)}}]);var Dt={},Bt={};Object.defineProperty(Bt,"__esModule",{value:!0}),Bt.initCollections=void 0,Bt.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:killed_by_crossbow","minecraft:levitation","minecraft:location","minecraft:nether_travel","minecraft:placed_block","minecraft:player_hurt_entity","minecraft:player_killed_entity","minecraft:recipe_unlocked","minecraft:shot_crossbow","minecraft:safely_harvest_honey","minecraft:slept_in_bed","minecraft:slide_down_block","minecraft:summoned_entity","minecraft:tame_animal","minecraft:tick","minecraft:used_ender_eye","minecraft:used_totem","minecraft:villager_trade","minecraft:voluntary_exile"]),e.register("loot_pool_entry_type",["minecraft:empty","minecraft:item","minecraft:tag","minecraft:loot_table","minecraft:alternatives","minecraft:sequence","minecraft:group","minecraft:dynamic"]),e.register("loot_condition_type",["minecraft:alternative","minecraft:inverted","minecraft:reference","minecraft:entity_properties","minecraft:block_state_property","minecraft:match_tool","minecraft:damage_source_properties","minecraft:location_check","minecraft:weather_check","minecraft:time_check","minecraft:entity_scores","minecraft:random_chance","minecraft:random_chance_with_looting","minecraft:table_bonus","minecraft:killed_by_player","minecraft:survives_explosion"]),e.register("loot_function_type",["minecraft:set_count","minecraft:set_damage","minecraft:set_name","minecraft:set_lore","minecraft:set_nbt","minecraft:set_attributes","minecraft:set_contents","minecraft:enchant_randomly","minecraft:enchant_with_levels","minecraft:looting_enchant","minecraft:limit_count","minecraft:furnace_smelt","minecraft:explosion_decay","minecraft:fill_player_head","minecraft:copy_name","minecraft:copy_nbt","minecraft:copy_state","minecraft:apply_bonus","minecraft:exploration_map","minecraft:set_stew_effect"]),e.register("attribute",["generic.maxHealth","generic.followRange","generic.knockbackResistance","generic.movementSpeed","generic.attackDamage","generic.armor","generic.armorToughness","generic.attackSpeed","generic.luck","horse.jumpStrength","generic.attackKnockback","generic.flyingSpeed","zombie.spawnReinforcements"]),e.register("structure_feature",["pillager_outpost","mineshaft","mansion","jungle_pyramid","desert_pyramid","igloo","shipwreck","swamp_hut","stronghold","monument","ocean_ruin","fortress","endcity","buried_treasure","village"]),e.register("dimension",["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("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("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("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("cat_texture",["textures/entity/cat/tabby.png","textures/entity/cat/black.png","textures/entity/cat/red.png","textures/entity/cat/siamese.png","textures/entity/cat/british_shorthair.png","textures/entity/cat/calico.png","textures/entity/cat/persian.png","textures/entity/cat/ragdoll.png","textures/entity/cat/white.png","textures/entity/cat/jellie.png","textures/entity/cat/all_black.png"])};var Lt={},Mt={},Tt={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.initCommonSchemas=e.Range=e.ConditionCases=void 0;const t=Pe;e.initCommonSchemas=function(i,n){const r=t.StringNode.bind(void 0,n),o=t.Reference.bind(void 0,i);i.register("block_state",(0,t.Mod)((0,t.ObjectNode)({Name:r({validator:"resource",params:{pool:"block"}}),Properties:(0,t.Opt)((0,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",(0,t.Mod)((0,t.ObjectNode)({Name:r({validator:"resource",params:{pool:"fluid"}}),Properties:(0,t.Opt)((0,t.MapNode)(r(),r()))},{context:"fluid_state"}),{default:()=>({Name:"minecraft:water",Properties:{level:"0"}})})),i.register("block_pos",(0,t.Mod)((0,t.ListNode)((0,t.NumberNode)({integer:!0})),{default:()=>[0,0,0]})),e.Range=e=>(0,t.ChoiceNode)([...(null==e?void 0:e.forceRange)?[]:[{type:"number",node:(0,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:(0,t.ObjectNode)({min:(null==e?void 0:e.bounds)?(0,t.NumberNode)(e):(0,t.Opt)((0,t.NumberNode)(e)),max:(null==e?void 0:e.bounds)?(0,t.NumberNode)(e):(0,t.Opt)((0,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:(0,t.ObjectNode)({type:r({enum:["minecraft:binomial"]}),n:(0,t.NumberNode)({integer:!0,min:0}),p:(0,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:(0,t.ListNode)(o("condition"))},"minecraft:block_state_property":{block:r({validator:"resource",params:{pool:"block"}}),properties:(0,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:(0,t.MapNode)(r({validator:"objective"}),(0,e.Range)({forceRange:!0,bounds:!0}))},"minecraft:inverted":{term:o("condition")},"minecraft:killed_by_player":{inverse:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:location_check":{offsetX:(0,t.Opt)((0,t.NumberNode)({integer:!0})),offsetY:(0,t.Opt)((0,t.NumberNode)({integer:!0})),offsetZ:(0,t.Opt)((0,t.NumberNode)({integer:!0})),predicate:o("location_predicate")},"minecraft:match_tool":{predicate:o("item_predicate")},"minecraft:random_chance":{chance:(0,t.NumberNode)({min:0,max:1})},"minecraft:random_chance_with_looting":{chance:(0,t.NumberNode)({min:0,max:1}),looting_multiplier:(0,t.NumberNode)()},"minecraft:reference":{name:r({validator:"resource",params:{pool:"$predicate"}})},"minecraft:table_bonus":{enchantment:r({validator:"resource",params:{pool:"enchantment"}}),chances:(0,t.ListNode)((0,t.NumberNode)({min:0,max:1}))},"minecraft:time_check":{value:(0,e.Range)(),period:(0,t.Opt)((0,t.NumberNode)())},"minecraft:weather_check":{raining:(0,t.Opt)((0,t.BooleanNode)()),thundering:(0,t.Opt)((0,t.BooleanNode)())}}}}(Tt);var Rt={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.initPredicatesSchemas=e.LocationFields=void 0;const t=Pe,i=Tt;e.initPredicatesSchemas=function(n,r){const o=t.Reference.bind(void 0,n),a=t.StringNode.bind(void 0,r),s=(0,t.ChoiceNode)([{type:"string",node:a(),change:e=>"boolean"==typeof e||"number"==typeof e?e.toString():""},{type:"number",node:(0,t.NumberNode)(),change:e=>"string"==typeof e?parseInt(e):0},{type:"object",node:(0,t.ObjectNode)({min:(0,t.Opt)((0,t.NumberNode)({integer:!0})),max:(0,t.Opt)((0,t.NumberNode)({integer:!0}))}),change:e=>"number"==typeof e?{min:e,max:e}:{}},{type:"boolean",node:(0,t.BooleanNode)(),change:e=>"true"===e||1===e}]);n.register("item_predicate",(0,t.ObjectNode)({item:(0,t.Opt)(a({validator:"resource",params:{pool:"item"}})),tag:(0,t.Opt)(a({validator:"resource",params:{pool:"$tag/item"}})),count:(0,t.Opt)((0,i.Range)()),durability:(0,t.Opt)((0,i.Range)()),potion:(0,t.Opt)(a({validator:"resource",params:{pool:"potion"}})),nbt:(0,t.Opt)(a({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:(0,t.Opt)((0,t.ListNode)(o("enchantment_predicate")))},{context:"item"})),n.register("enchantment_predicate",(0,t.ObjectNode)({enchantment:(0,t.Opt)(a({validator:"resource",params:{pool:"enchantment"}})),levels:(0,t.Opt)((0,i.Range)())},{context:"enchantment"})),n.register("block_predicate",(0,t.ObjectNode)({block:(0,t.Opt)(a({validator:"resource",params:{pool:"block"}})),tag:(0,t.Opt)(a({validator:"resource",params:{pool:"$tag/block"}})),nbt:(0,t.Opt)(a({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:(0,t.Opt)((0,t.MapNode)(a(),s,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),n.register("fluid_predicate",(0,t.ObjectNode)({fluid:(0,t.Opt)(a({validator:"resource",params:{pool:"fluid"}})),tag:(0,t.Opt)(a({validator:"resource",params:{pool:"$tag/fluid"}})),state:(0,t.Opt)((0,t.MapNode)(a(),s))},{context:"fluid"})),e.LocationFields={position:(0,t.Opt)((0,t.ObjectNode)({x:(0,t.Opt)((0,i.Range)()),y:(0,t.Opt)((0,i.Range)()),z:(0,t.Opt)((0,i.Range)())})),biome:(0,t.Opt)(a({enum:"biome"})),feature:(0,t.Opt)(a({enum:"structure_feature"})),dimension:(0,t.Opt)(a({enum:"dimension"})),light:(0,t.Opt)((0,t.ObjectNode)({light:(0,t.Opt)((0,i.Range)({integer:!0,min:0,max:15}))})),block:(0,t.Opt)(o("block_predicate")),fluid:(0,t.Opt)(o("fluid_predicate"))},n.register("location_predicate",(0,t.ObjectNode)(e.LocationFields,{context:"location"})),n.register("statistic_predicate",(0,t.ObjectNode)({type:a({validator:"resource",params:{pool:"stat_type"}}),stat:a(),value:(0,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",(0,t.ObjectNode)({gamemode:(0,t.Opt)(a({enum:"gamemode"})),level:(0,t.Opt)((0,i.Range)()),advancements:(0,t.Opt)((0,t.MapNode)(a({validator:"resource",params:{pool:"$advancement"}}),(0,t.ChoiceNode)([{type:"boolean",node:(0,t.BooleanNode)(),change:e=>!0},{type:"object",node:(0,t.MapNode)(a(),(0,t.BooleanNode)())}]))),recipes:(0,t.Opt)((0,t.MapNode)(a({validator:"resource",params:{pool:"$recipe"}}),(0,t.BooleanNode)())),stats:(0,t.Opt)((0,t.ListNode)(o("statistic_predicate")))},{context:"player"})),n.register("status_effect_predicate",(0,t.ObjectNode)({amplifier:(0,t.Opt)((0,i.Range)()),duration:(0,t.Opt)((0,i.Range)()),ambient:(0,t.Opt)((0,t.BooleanNode)()),visible:(0,t.Opt)((0,t.BooleanNode)())},{context:"status_effect"})),n.register("distance_predicate",(0,t.ObjectNode)({x:(0,t.Opt)((0,i.Range)()),y:(0,t.Opt)((0,i.Range)()),z:(0,t.Opt)((0,i.Range)()),absolute:(0,t.Opt)((0,i.Range)()),horizontal:(0,t.Opt)((0,i.Range)())},{context:"distance"})),n.register("entity_predicate",(0,t.ObjectNode)({type:(0,t.Opt)(a({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),nbt:(0,t.Opt)(a({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:(0,t.Opt)(a({validator:"team"})),location:(0,t.Opt)(o("location_predicate")),distance:(0,t.Opt)(o("distance_predicate")),flags:(0,t.Opt)((0,t.ObjectNode)({is_on_fire:(0,t.Opt)((0,t.BooleanNode)()),is_sneaking:(0,t.Opt)((0,t.BooleanNode)()),is_sprinting:(0,t.Opt)((0,t.BooleanNode)()),is_swimming:(0,t.Opt)((0,t.BooleanNode)()),is_baby:(0,t.Opt)((0,t.BooleanNode)())})),equipment:(0,t.Opt)((0,t.MapNode)(a({enum:"slot"}),o("item_predicate"))),player:(0,t.Opt)(o("player_predicate")),catType:(0,t.Opt)(a({enum:"cat_texture"})),effects:(0,t.Opt)((0,t.MapNode)(a({validator:"resource",params:{pool:"mob_effect"}}),o("status_effect_predicate")))},{context:"entity"})),n.register("damage_source_predicate",(0,t.ObjectNode)({is_explosion:(0,t.Opt)((0,t.BooleanNode)()),is_fire:(0,t.Opt)((0,t.BooleanNode)()),is_magic:(0,t.Opt)((0,t.BooleanNode)()),is_projectile:(0,t.Opt)((0,t.BooleanNode)()),is_lightning:(0,t.Opt)((0,t.BooleanNode)()),bypasses_armor:(0,t.Opt)((0,t.BooleanNode)()),bypasses_invulnerability:(0,t.Opt)((0,t.BooleanNode)()),bypasses_magic:(0,t.Opt)((0,t.BooleanNode)()),source_entity:(0,t.Opt)(o("entity_predicate")),direct_entity:(0,t.Opt)(o("entity_predicate"))},{context:"damage_source"})),n.register("damage_predicate",(0,t.ObjectNode)({dealt:(0,t.Opt)((0,i.Range)()),taken:(0,t.Opt)((0,i.Range)()),blocked:(0,t.Opt)((0,t.BooleanNode)()),source_entity:(0,t.Opt)(o("entity_predicate")),type:(0,t.Opt)(o("damage_source_predicate"))},{context:"damage"}))}}(Rt),Object.defineProperty(Mt,"__esModule",{value:!0}),Mt.initAdvancementSchemas=void 0;const $t=Pe,jt=Tt,It=Rt;Mt.initAdvancementSchemas=function(e,t){const i=$t.Reference.bind(void 0,e),n=$t.StringNode.bind(void 0,t);e.register("advancement",(0,$t.Mod)((0,$t.ObjectNode)({display:(0,$t.Opt)((0,$t.Mod)((0,$t.ObjectNode)({icon:(0,$t.ObjectNode)({item:n({validator:"resource",params:{pool:"item"}}),nbt:(0,$t.Opt)(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:i("text_component"),description:i("text_component"),background:(0,$t.Opt)(n()),frame:(0,$t.Opt)(n({enum:["task","challenge","goal"]})),show_toast:(0,$t.Opt)((0,$t.BooleanNode)()),announce_to_chat:(0,$t.Opt)((0,$t.BooleanNode)()),hidden:(0,$t.Opt)((0,$t.BooleanNode)())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:(0,$t.Opt)(n({validator:"resource",params:{pool:"$advancement"}})),criteria:(0,$t.MapNode)(n(),i("advancement_criteria")),requirements:(0,$t.Opt)((0,$t.ListNode)((0,$t.ListNode)(n()))),rewards:(0,$t.Opt)((0,$t.ObjectNode)({function:(0,$t.Opt)(n({validator:"resource",params:{pool:"$function"}})),loot:(0,$t.Opt)((0,$t.ListNode)(n({validator:"resource",params:{pool:"$loot_table"}}))),recipes:(0,$t.Opt)((0,$t.ListNode)(n({validator:"resource",params:{pool:"$recipe"}}))),experience:(0,$t.Opt)((0,$t.NumberNode)({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),e.register("advancement_criteria",(0,$t.ObjectNode)({trigger:n({validator:"resource",params:{pool:t.get("advancement_trigger")}}),conditions:(0,$t.Opt)((0,$t.ObjectNode)({[$t.Switch]:["pop",{push:"trigger"}],[$t.Case]:{"minecraft:bee_nest_destroyed":{block:(0,$t.Opt)(n({validator:"resource",params:{pool:"block"}})),num_bees_inside:(0,$t.Opt)((0,$t.NumberNode)({integer:!0})),item:(0,$t.Opt)(i("item_predicate"))},"minecraft:bred_animals":{parent:(0,$t.Opt)(i("entity_predicate")),partner:(0,$t.Opt)(i("entity_predicate")),child:(0,$t.Opt)(i("entity_predicate"))},"minecraft:brewed_potion":{potion:(0,$t.Opt)(n({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:(0,$t.Opt)(n({enum:"dimension"})),to:(0,$t.Opt)(n({enum:"dimension"}))},"minecraft:channeled_lightning":{victims:(0,$t.Opt)((0,$t.ListNode)((0,$t.Opt)(i("entity_predicate"))))},"minecraft:construct_beacon":{level:(0,$t.Opt)((0,jt.Range)())},"minecraft:consume_item":{item:(0,$t.Opt)(i("item_predicate"))},"minecraft:cured_zombie_villager":{villager:(0,$t.Opt)(i("entity_predicate")),zombie:(0,$t.Opt)(i("entity_predicate"))},"minecraft:effects_changed":{effects:(0,$t.Opt)((0,$t.MapNode)(n({validator:"resource",params:{pool:"mob_effect"}}),i("status_effect_predicate")))},"minecraft:enter_block":{block:(0,$t.Opt)(n({validator:"resource",params:{pool:"block"}})),state:(0,$t.Opt)((0,$t.MapNode)(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:(0,$t.Opt)((0,jt.Range)()),item:(0,$t.Opt)(i("item_predicate"))},"minecraft:entity_hurt_player":{damage:(0,$t.Opt)(i("damage_predicate"))},"minecraft:entity_killed_player":{entity:(0,$t.Opt)(i("entity_predicate")),killing_blow:(0,$t.Opt)(i("damage_source_predicate"))},"minecraft:filled_bucket":{item:(0,$t.Opt)(i("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:(0,$t.Opt)(i("entity_predicate")),item:(0,$t.Opt)(i("item_predicate"))},"minecraft:hero_of_the_village":It.LocationFields,"minecraft:inventory_changed":{slots:(0,$t.Opt)((0,$t.ObjectNode)({empty:(0,$t.Opt)((0,jt.Range)()),occupied:(0,$t.Opt)((0,jt.Range)()),full:(0,$t.Opt)((0,jt.Range)())})),items:(0,$t.Opt)((0,$t.ListNode)(i("item_predicate")))},"minecraft:item_durability_changed":{delta:(0,$t.Opt)((0,jt.Range)()),durability:(0,$t.Opt)((0,jt.Range)()),item:(0,$t.Opt)(i("item_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:(0,$t.Opt)((0,jt.Range)()),victims:(0,$t.Opt)((0,$t.ListNode)((0,$t.Opt)(i("entity_predicate"))))},"minecraft:levitation":{distance:(0,$t.Opt)((0,jt.Range)()),duration:(0,$t.Opt)((0,jt.Range)())},"minecraft:location":It.LocationFields,"minecraft:nether_travel":{distance:(0,$t.Opt)((0,jt.Range)()),entered:(0,$t.Opt)(i("location_predicate")),exited:(0,$t.Opt)(i("location_predicate"))},"minecraft:placed_block":{block:(0,$t.Opt)(n({validator:"resource",params:{pool:"block"}})),state:(0,$t.Opt)((0,$t.MapNode)(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:(0,$t.Opt)(i("item_predicate")),location:(0,$t.Opt)(i("location_predicate"))},"minecraft:player_hurt_entity":{damage:(0,$t.Opt)(i("damage_predicate")),entity:(0,$t.Opt)(i("entity_predicate"))},"minecraft:player_killed_entity":{entity:(0,$t.Opt)(i("entity_predicate")),killing_blow:(0,$t.Opt)(i("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:n({validator:"resource",params:{pool:"$recipe"}})},"minecraft:safely_harvest_honey":{block:(0,$t.Opt)((0,$t.ObjectNode)({block:(0,$t.Opt)(n({validator:"resource",params:{pool:"block"}})),tag:(0,$t.Opt)(n({validator:"resource",params:{pool:"$tag/block"}}))})),item:(0,$t.Opt)(i("item_predicate"))},"minecraft:slept_in_bed":It.LocationFields,"minecraft:slide_down_block":{block:(0,$t.Opt)(n({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:(0,$t.Opt)(i("item_predicate"))},"minecraft:summoned_entity":{entity:(0,$t.Opt)(i("entity_predicate"))},"minecraft:tame_animal":{entity:(0,$t.Opt)(i("entity_predicate"))},"minecraft:used_ender_eye":{distance:(0,$t.Opt)((0,jt.Range)())},"minecraft:used_totem":{item:(0,$t.Opt)(i("item_predicate"))},"minecraft:villager_trade":{villager:(0,$t.Opt)(i("entity_predicate")),item:(0,$t.Opt)(i("item_predicate"))},"minecraft:voluntary_exile":It.LocationFields}},{context:"criterion"}))},{category:"predicate",context:"criterion"}))};var Pt={},zt={};Object.defineProperty(zt,"__esModule",{value:!0}),zt.initModelSchemas=void 0;const Ut=Pe;zt.initModelSchemas=function(e,t){Ut.Reference.bind(void 0,e);const i=Ut.StringNode.bind(void 0,t),n=(e,t,i)=>(0,Ut.ListNode)((0,Ut.NumberNode)({min:t,max:i}),{minLength:e,maxLength:e}),r=(0,Ut.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",(0,Ut.Mod)((0,Ut.ObjectNode)({parent:(0,Ut.Opt)(i({validator:"resource",params:{pool:"$model"}})),ambientocclusion:(0,Ut.Opt)((0,Ut.BooleanNode)()),gui_light:(0,Ut.Opt)(i({enum:"gui_light"})),textures:(0,Ut.Opt)((0,Ut.MapNode)(i(),r)),elements:(0,Ut.Opt)((0,Ut.ListNode)((0,Ut.ObjectNode)({from:n(3,-16,32),to:n(3,-16,32),rotation:(0,Ut.Opt)((0,Ut.ObjectNode)({origin:n(3),axis:i({enum:"axis"}),angle:(0,Ut.NumberEnum)({values:[-45,-22.5,0,22.5,45]}),rescale:(0,Ut.Opt)((0,Ut.BooleanNode)())})),shade:(0,Ut.Opt)((0,Ut.BooleanNode)()),faces:(0,Ut.MapNode)(i({enum:"direction"}),(0,Ut.ObjectNode)({texture:r,uv:(0,Ut.Opt)(n(4)),cullface:(0,Ut.Opt)(i({enum:"direction"})),rotation:(0,Ut.Opt)((0,Ut.NumberNode)({integer:!0})),tintindex:(0,Ut.Opt)((0,Ut.NumberNode)({integer:!0}))}))},{context:"model_element"}))),display:(0,Ut.Opt)((0,Ut.MapNode)(i({enum:"display_position"}),(0,Ut.ObjectNode)({rotation:n(3),translation:n(3,-80,80),scale:n(3,-4,4)},{context:"item_transform"}))),overrides:(0,Ut.Opt)((0,Ut.ListNode)((0,Ut.ObjectNode)({predicate:(0,Ut.MapNode)(i({enum:"item_model_predicates"}),(0,Ut.NumberNode)()),model:i({validator:"resource",params:{pool:"$model"}})},{context:"model_override"})))},{context:"model"}),{default:()=>({parent:"minecraft:item/generated",textures:{layer0:"minecraft:item/diamond"}})}))};var Wt={};Object.defineProperty(Wt,"__esModule",{value:!0}),Wt.initBlockDefinitionSchemas=void 0;const Ht=Pe;Wt.initBlockDefinitionSchemas=function(e,t){const i=Ht.Reference.bind(void 0,e),n=Ht.StringNode.bind(void 0,t);e.register("block_definition",(0,Ht.Mod)((0,Ht.ChoiceNode)([{type:"variants",match:e=>void 0!==e.variants,node:(0,Ht.ObjectNode)({variants:(0,Ht.MapNode)(n(),i("model_variant"))}),change:e=>({variants:{"":{}}})},{type:"multipart",match:e=>void 0!==e.multipart,node:(0,Ht.ObjectNode)({multipart:(0,Ht.ListNode)((0,Ht.ObjectNode)({when:(0,Ht.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:(0,Ht.Opt)((0,Ht.NumberEnum)({integer:!0,values:[0,90,180,270]})),y:(0,Ht.Opt)((0,Ht.NumberEnum)({integer:!0,values:[0,90,180,270]})),uvlock:(0,Ht.Opt)((0,Ht.BooleanNode)())};e.register("model_variant",(0,Ht.ChoiceNode)([{type:"object",node:(0,Ht.ObjectNode)(r),change:e=>Array.isArray(e)&&e.length>0?e[0]:{}},{type:"list",node:(0,Ht.ListNode)((0,Ht.ObjectNode)(c(s({},r),{weight:(0,Ht.Opt)((0,Ht.NumberNode)({integer:!0,min:1}))}),{context:"model_variant"})),change:e=>[s({weight:1},e)]}],{context:"model_variant"})),e.register("multipart_condition",(0,Ht.ChoiceNode)([{type:"object",priority:-1,match:()=>!0,node:(0,Ht.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:(0,Ht.ObjectNode)({OR:(0,Ht.ListNode)(i("multipart_condition"))}),change:e=>({OR:[null!=e?e:{}]})}],{context:"multipart_condition"}))},Object.defineProperty(Pt,"__esModule",{value:!0}),Pt.initAssetsSchemas=void 0;const qt=zt,Vt=Wt;Pt.initAssetsSchemas=function(e,t){(0,Vt.initBlockDefinitionSchemas)(e,t),(0,qt.initModelSchemas)(e,t)};var Gt={};Object.defineProperty(Gt,"__esModule",{value:!0}),Gt.initConditionSchemas=void 0;const Kt=Pe,Xt=Tt;Gt.initConditionSchemas=function(e,t){const i=Kt.Reference.bind(void 0,e),n=Kt.StringNode.bind(void 0,t);e.register("predicate",(0,Kt.ObjectOrList)(i("condition"),{choiceContext:"condition"})),e.register("condition",(0,Kt.Mod)((0,Kt.ObjectNode)({condition:n({validator:"resource",params:{pool:"loot_condition_type"}}),[Kt.Switch]:[{push:"condition"}],[Kt.Case]:Xt.ConditionCases},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:entity_properties",entity:"this"})}))};var Jt={},Yt={};Object.defineProperty(Yt,"__esModule",{value:!0}),Yt.LootFunctions=Yt.LootConditions=Yt.LootCopySources=Yt.LootEntitySources=Yt.LootTableTypes=void 0,Yt.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]}]]),Yt.LootEntitySources=new Map([["direct_killer",[3]],["killer",[5]],["killer_player",[5]],["this",[8]]]),Yt.LootCopySources=new Map([["block_entity",[0]],["killer",[5]],["killer_player",[5]],["this",[8]]]),Yt.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",[]]]),Yt.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(Jt,"__esModule",{value:!0}),Jt.initLootTableSchemas=void 0;const Zt=Pe,Qt=Yt,ei=Tt;Jt.initLootTableSchemas=function(e,t){const i=Zt.Reference.bind(void 0,e),n=Zt.StringNode.bind(void 0,t),r={conditions:(0,Zt.Opt)((0,Zt.ListNode)(i("loot_condition")))},o=s({functions:(0,Zt.Opt)((0,Zt.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 Qt.LootTableTypes){const e=[...a,...s];r.push({match:e=>e.getModel().get(new Zt.Path(["type"]))===t,node:n(o(e))})}return r.push({match:e=>!0,node:n(i)}),(0,Zt.SwitchNode)(r)}const l=a(Qt.LootConditions,"loot_condition_type",(e=>n({validator:"resource",params:{pool:e instanceof Array?e:"loot_condition_type"}}))),u=a(Qt.LootFunctions,"loot_function_type",(e=>n({validator:"resource",params:{pool:e instanceof Array?e:"loot_function_type"}}))),d=a(Qt.LootEntitySources,"entity_source",(e=>n({enum:e}))),h=a(Qt.LootCopySources,"copy_source",(e=>n({enum:e})));e.register("loot_table",(0,Zt.Mod)((0,Zt.ObjectNode)({type:(0,Zt.Opt)(n({validator:"resource",params:{pool:t.get("loot_context_type")}})),pools:(0,Zt.Opt)((0,Zt.ListNode)((0,Zt.Mod)((0,Zt.ObjectNode)(s({rolls:(0,ei.Range)({allowBinomial:!0,integer:!0}),bonus_rolls:(0,Zt.Opt)((0,ei.Range)({integer:!0})),entries:(0,Zt.ListNode)(i("loot_entry"))},o),{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:(0,Zt.Opt)((0,Zt.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",(0,Zt.Mod)((0,Zt.ObjectNode)({type:n({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:(0,Zt.Opt)((0,Zt.Mod)((0,Zt.NumberNode)({integer:!0,min:1}),p)),quality:(0,Zt.Opt)((0,Zt.Mod)((0,Zt.NumberNode)({integer:!0}),p)),[Zt.Switch]:[{push:"type"}],[Zt.Case]:{"minecraft:alternatives":s({children:(0,Zt.ListNode)(i("loot_entry"))},o),"minecraft:dynamic":s({name:n()},o),"minecraft:group":s({children:(0,Zt.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:(0,Zt.ListNode)(i("loot_entry"))},o),"minecraft:tag":s({name:n({validator:"resource",params:{pool:"$tag/item"}}),expand:(0,Zt.Opt)((0,Zt.BooleanNode)())},o)}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),e.register("loot_function",(0,Zt.Mod)((0,Zt.ObjectNode)({function:u,[Zt.Switch]:[{push:"function"}],[Zt.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:(0,Zt.Mod)((0,Zt.ObjectNode)({bonusMultiplier:(0,Zt.Mod)((0,Zt.NumberNode)(),{enabled:e=>"minecraft:uniform_bonus_count"===e.pop().push("formula").get()}),extra:(0,Zt.Mod)((0,Zt.NumberNode)(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()}),probability:(0,Zt.Mod)((0,Zt.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:(0,Zt.ListNode)((0,Zt.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:(0,Zt.ListNode)(n({validator:"block_state_key",params:{id:["pop","pop",{push:"block"}]}}))},"minecraft:enchant_randomly":{enchantments:(0,Zt.Opt)((0,Zt.ListNode)(n({validator:"resource",params:{pool:"enchantment"}})))},"minecraft:enchant_with_levels":{levels:(0,ei.Range)({allowBinomial:!0}),treasure:(0,Zt.Opt)((0,Zt.BooleanNode)())},"minecraft:exploration_map":{destination:(0,Zt.Opt)(n({enum:"structure_feature"})),decoration:(0,Zt.Opt)(n({enum:"map_decoration"})),zoom:(0,Zt.Opt)((0,Zt.NumberNode)({integer:!0})),search_radius:(0,Zt.Opt)((0,Zt.NumberNode)({integer:!0})),skip_existing_chunks:(0,Zt.Opt)((0,Zt.BooleanNode)())},"minecraft:fill_player_head":{entity:d},"minecraft:limit_count":{limit:(0,ei.Range)({bounds:!0})},"minecraft:looting_enchant":{count:(0,ei.Range)({bounds:!0}),limit:(0,Zt.Opt)((0,Zt.NumberNode)({integer:!0}))},"minecraft:set_attributes":{modifiers:(0,Zt.ListNode)(i("attribute_modifier"))},"minecraft:set_contents":{entries:(0,Zt.ListNode)(i("loot_entry"))},"minecraft:set_count":{count:(0,ei.Range)({allowBinomial:!0})},"minecraft:set_damage":{damage:(0,ei.Range)({forceRange:!0})},"minecraft:set_loot_table":{name:n({validator:"resource",params:{pool:"$loot_table"}}),seed:(0,Zt.Opt)((0,Zt.NumberNode)({integer:!0}))},"minecraft:set_lore":{entity:(0,Zt.Opt)(d),lore:(0,Zt.ListNode)(i("text_component")),replace:(0,Zt.Opt)((0,Zt.BooleanNode)())},"minecraft:set_name":{entity:(0,Zt.Opt)(d),name:(0,Zt.Opt)(i("text_component"))},"minecraft:set_nbt":{tag:n({validator:"nbt",params:{registry:{category:"minecraft:item"}}})},"minecraft:set_stew_effect":{effects:(0,Zt.Opt)((0,Zt.ListNode)((0,Zt.ObjectNode)({type:n({validator:"resource",params:{pool:"mob_effect"}}),duration:(0,ei.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",(0,Zt.Mod)((0,Zt.ObjectNode)({condition:l,[Zt.Switch]:[{push:"condition"}],[Zt.Case]:c(s({},ei.ConditionCases),{"minecraft:entity_properties":{entity:d,predicate:i("entity_predicate")},"minecraft:entity_scores":{entity:d,scores:(0,Zt.MapNode)(n({validator:"objective"}),(0,ei.Range)({bounds:!0}))}})},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),e.register("attribute_modifier",(0,Zt.Mod)((0,Zt.ObjectNode)({attribute:n({validator:"resource",params:{pool:"attribute"}}),name:n(),amount:(0,ei.Range)({bounds:!0}),operation:n({enum:["addition","multiply_base","multiply_total"]}),slot:(0,Zt.StringOrList)(n({enum:"slot"}))},{context:"attribute_modifier"}),{default:()=>({attribute:"minecraft:generic.max_health",name:"",amount:1,operation:"addition",slot:"mainhand"})}))};var ti={};Object.defineProperty(ti,"__esModule",{value:!0}),ti.initPackMcmetaSchemas=void 0;const ii=Pe;ti.initPackMcmetaSchemas=function(e,t){e.register("pack_mcmeta",(0,ii.Mod)((0,ii.ObjectNode)({pack:(0,ii.Mod)((0,ii.ObjectNode)({pack_format:(0,ii.Mod)((0,ii.NumberNode)({integer:!0,min:5,max:5}),{default:()=>5}),description:(0,ii.Reference)(e,"text_component")}),{default:()=>({pack_format:5,description:""})})}),{default:()=>({pack:{pack_format:5,description:""}})}))};var ni={};Object.defineProperty(ni,"__esModule",{value:!0}),ni.initRecipeSchemas=void 0;const ri=Pe;ni.initRecipeSchemas=function(e,t){const i=ri.Reference.bind(void 0,e),n=ri.StringNode.bind(void 0,t);e.register("recipe",(0,ri.Mod)((0,ri.ObjectNode)({type:n({validator:"resource",params:{pool:"recipe_serializer"}}),[ri.Switch]:[{push:"type"}],[ri.Case]:{"minecraft:crafting_shaped":{group:(0,ri.Opt)(n({enum:"recipe_group",additional:!0})),pattern:(0,ri.ListNode)(n()),key:(0,ri.MapNode)(n(),i("recipe_ingredient")),result:i("recipe_result")},"minecraft:crafting_shapeless":{group:(0,ri.Opt)(n()),ingredients:(0,ri.ListNode)(i("recipe_ingredient")),result:i("recipe_result")},"minecraft:smelting":{group:(0,ri.Opt)(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:(0,ri.Opt)((0,ri.NumberNode)()),cookingtime:(0,ri.Opt)((0,ri.Mod)((0,ri.NumberNode)({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:(0,ri.Opt)(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:(0,ri.Opt)((0,ri.NumberNode)()),cookingtime:(0,ri.Opt)((0,ri.Mod)((0,ri.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:(0,ri.Opt)(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:(0,ri.Opt)((0,ri.NumberNode)()),cookingtime:(0,ri.Opt)((0,ri.Mod)((0,ri.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:(0,ri.Opt)(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:(0,ri.Opt)((0,ri.NumberNode)()),cookingtime:(0,ri.Opt)((0,ri.Mod)((0,ri.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:(0,ri.Opt)(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),count:(0,ri.NumberNode)({integer:!0})},"minecraft:smithing":{group:(0,ri.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",(0,ri.Mod)((0,ri.ChoiceNode)([{type:"object",node:i("recipe_ingredient_object"),change:e=>e[0]},{type:"list",node:(0,ri.ListNode)(i("recipe_ingredient_object")),change:e=>[e]}]),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_ingredient_object",(0,ri.Mod)((0,ri.ObjectNode)({item:(0,ri.Opt)(n({validator:"resource",params:{pool:"item"}})),tag:(0,ri.Opt)(n({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_result",(0,ri.Mod)((0,ri.ObjectNode)({item:n({validator:"resource",params:{pool:"item"}}),count:(0,ri.Opt)((0,ri.Mod)((0,ri.NumberNode)({integer:!0}),{default:()=>1}))}),{default:()=>({item:"minecraft:stone"})}))};var oi={};Object.defineProperty(oi,"__esModule",{value:!0}),oi.initTagsSchemas=void 0;const ai=Pe;oi.initTagsSchemas=function(e,t){const i=ai.StringNode.bind(void 0,t),n=e=>(0,ai.Mod)((0,ai.ObjectNode)({replace:(0,ai.Opt)((0,ai.BooleanNode)()),values:(0,ai.ListNode)((0,ai.ChoiceNode)([{type:"string",node:i({validator:"resource",params:{pool:e,allowTag:!0}}),change:e=>e.id},{type:"object",node:(0,ai.ObjectNode)({id:i({validator:"resource",params:{pool:e,allowTag:!0,allowUnknown:!0}}),required:(0,ai.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 si={};Object.defineProperty(si,"__esModule",{value:!0}),si.initTextComponentSchemas=void 0;const ci=Pe;si.initTextComponentSchemas=function(e,t){const i=ci.Reference.bind(void 0,e),n=ci.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",(0,ci.Mod)((0,ci.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:(0,ci.NumberNode)(),change:e=>{const t=parseFloat(r(e));return isFinite(t)?t:e?1:0}},{type:"boolean",node:(0,ci.BooleanNode)(),change:e=>{const t=r(e);return"true"===t||"false"===t?"true"===t:!!t}}],{context:"text_component"}),{default:()=>({text:""})}));const o={bold:(0,ci.Opt)((0,ci.BooleanNode)()),italic:(0,ci.Opt)((0,ci.BooleanNode)()),underlined:(0,ci.Opt)((0,ci.BooleanNode)()),strikethrough:(0,ci.Opt)((0,ci.BooleanNode)()),obfuscated:(0,ci.Opt)((0,ci.BooleanNode)()),insertion:(0,ci.Opt)(n()),clickEvent:(0,ci.Opt)((0,ci.ObjectNode)({action:n({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[ci.Switch]:[{push:"action"}],[ci.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:(0,ci.Opt)((0,ci.ObjectNode)({action:n({enum:["show_text","show_item","show_entity"]}),[ci.Switch]:[{push:"action"}],[ci.Case]:{show_text:{value:(0,ci.Opt)(i("text_component"))},show_item:{value:(0,ci.Opt)(n({validator:"nbt",params:{module:"util::InventoryItem"}}))},show_entity:{value:(0,ci.Opt)((0,ci.ObjectNode)({name:(0,ci.Opt)(n()),type:(0,ci.Opt)(n()),id:(0,ci.Opt)(n())}))}}})),extra:(0,ci.Opt)(i("text_component_list"))};e.register("text_component_object",(0,ci.Mod)((0,ci.ChoiceNode)([{type:"text",match:e=>"object"==typeof e,change:e=>({text:""}),priority:-1,node:(0,ci.ObjectNode)(s({text:n()},o))},{type:"translation",match:e=>void 0!==(null==e?void 0:e.translate),change:e=>({translate:""}),node:(0,ci.ObjectNode)(s({translate:n(),with:(0,ci.Opt)(i("text_component_list"))},o))},{type:"score",match:e=>void 0!==(null==e?void 0:e.score),change:e=>({score:{}}),node:(0,ci.ObjectNode)(s({score:(0,ci.ObjectNode)({name:n({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:n({validator:"objective"}),value:(0,ci.Opt)(n())})},o))},{type:"selector",match:e=>void 0!==(null==e?void 0:e.selector),change:e=>({selector:""}),node:(0,ci.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:(0,ci.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:(0,ci.ObjectNode)(s({nbt:n({validator:"nbt_path"}),block:(0,ci.Opt)(n({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:(0,ci.Opt)(n({validator:"entity",params:{amount:"multiple",type:"entities"}})),storage:(0,ci.Opt)(n({validator:"resource",params:{pool:"$storage"}})),interpret:(0,ci.Opt)((0,ci.BooleanNode)())},o))}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),e.register("text_component_list",(0,ci.Mod)((0,ci.ListNode)(i("text_component")),{default:()=>[{text:""}]}))},Object.defineProperty(Lt,"__esModule",{value:!0}),Lt.initSchemas=void 0;const li=Mt,ui=Pt,di=Tt,hi=Gt,pi=Jt,mi=ti,fi=Rt,gi=ni,_i=oi,bi=si;Lt.initSchemas=function(e,t){(0,di.initCommonSchemas)(e,t),(0,fi.initPredicatesSchemas)(e,t),(0,li.initAdvancementSchemas)(e,t),(0,ui.initAssetsSchemas)(e,t),(0,hi.initConditionSchemas)(e,t),(0,pi.initLootTableSchemas)(e,t),(0,mi.initPackMcmetaSchemas)(e,t),(0,gi.initRecipeSchemas)(e,t),(0,_i.initTagsSchemas)(e,t),(0,bi.initTextComponentSchemas)(e,t)};var vi=Ie&&Ie.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i);var r=Object.getOwnPropertyDescriptor(t,i);r&&!("get"in r?!t.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,n,r)}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),yi=Ie&&Ie.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),wi=Ie&&Ie.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&vi(t,e,i);return yi(t,e),t};Object.defineProperty(Dt,"__esModule",{value:!0});var xi=Dt.getSchemas=Dt.getCollections=Dt.lootContext=void 0;const Ni=Pe,ki=Bt,Ai=Lt;var Ci=Dt.lootContext=wi(Yt);var Oi=Dt.getCollections=function(){const e=new Ni.CollectionRegistry;return(0,ki.initCollections)(e),e};xi=Dt.getSchemas=function(e){const t=new Ni.SchemaRegistry;return(0,Ai.initSchemas)(t,e),t};var Si=Object.freeze(Object.assign(Object.create(null),Dt,{[Symbol.toStringTag]:"Module",get getSchemas(){return xi},get getCollections(){return Oi},get lootContext(){return Ci},default:Dt})),Ei={},Fi={};Object.defineProperty(Fi,"__esModule",{value:!0}),Fi.initCollections=void 0,Fi.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"]),e.register("cat_texture",["textures/entity/cat/tabby.png","textures/entity/cat/black.png","textures/entity/cat/red.png","textures/entity/cat/siamese.png","textures/entity/cat/british_shorthair.png","textures/entity/cat/calico.png","textures/entity/cat/persian.png","textures/entity/cat/ragdoll.png","textures/entity/cat/white.png","textures/entity/cat/jellie.png","textures/entity/cat/all_black.png"])};var Di={},Bi={},Li={};!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=Pe;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",(0,t.Mod)((0,t.ObjectNode)({Name:r({validator:"resource",params:{pool:"block"}}),Properties:(0,t.Opt)((0,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",(0,t.Mod)((0,t.ObjectNode)({Name:r({validator:"resource",params:{pool:"fluid"}}),Properties:(0,t.Opt)((0,t.MapNode)(r(),r()))},{context:"fluid_state"}),{default:()=>({Name:"minecraft:water",Properties:{level:"0"}})})),i.register("block_pos",(0,t.Mod)((0,t.ListNode)((0,t.NumberNode)({integer:!0}),{minLength:3,maxLength:3}),{default:()=>[0,0,0]})),e.Range=e=>(0,t.ChoiceNode)([...(null==e?void 0:e.forceRange)?[]:[{type:"number",node:(0,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:(0,t.ObjectNode)({min:(null==e?void 0:e.bounds)?(0,t.NumberNode)(e):(0,t.Opt)((0,t.NumberNode)(e)),max:(null==e?void 0:e.bounds)?(0,t.NumberNode)(e):(0,t.Opt)((0,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:(0,t.ObjectNode)({type:r({enum:["minecraft:binomial"]}),n:(0,t.NumberNode)({integer:!0,min:0}),p:(0,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=>(0,t.ChoiceNode)([{type:"number",node:(0,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:(0,t.ObjectNode)({base:(0,t.NumberNode)({integer:!0,min:null==e?void 0:e.min,max:null==e?void 0:e.max}),spread:(0,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:(0,t.ListNode)(o("condition"))},"minecraft:block_state_property":{block:r({validator:"resource",params:{pool:"block"}}),properties:(0,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:(0,t.MapNode)(r({validator:"objective"}),(0,e.Range)({forceRange:!0}))},"minecraft:inverted":{term:o("condition")},"minecraft:killed_by_player":{inverse:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:location_check":{offsetX:(0,t.Opt)((0,t.NumberNode)({integer:!0})),offsetY:(0,t.Opt)((0,t.NumberNode)({integer:!0})),offsetZ:(0,t.Opt)((0,t.NumberNode)({integer:!0})),predicate:o("location_predicate")},"minecraft:match_tool":{predicate:o("item_predicate")},"minecraft:random_chance":{chance:(0,t.NumberNode)({min:0,max:1})},"minecraft:random_chance_with_looting":{chance:(0,t.NumberNode)({min:0,max:1}),looting_multiplier:(0,t.NumberNode)()},"minecraft:reference":{name:r({validator:"resource",params:{pool:"$predicate"}})},"minecraft:table_bonus":{enchantment:r({validator:"resource",params:{pool:"enchantment"}}),chances:(0,t.ListNode)((0,t.NumberNode)({min:0,max:1}))},"minecraft:time_check":{value:(0,e.Range)(),period:(0,t.Opt)((0,t.NumberNode)())},"minecraft:weather_check":{raining:(0,t.Opt)((0,t.BooleanNode)()),thundering:(0,t.Opt)((0,t.BooleanNode)())}},e.DimensionTypePresets=i=>(0,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=>(0,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"}}}})}}(Li),Object.defineProperty(Bi,"__esModule",{value:!0}),Bi.initAdvancementSchemas=void 0;const Mi=Pe,Ti=Li;Bi.initAdvancementSchemas=function(e,t){const i=Mi.Reference.bind(void 0,e),n=Mi.StringNode.bind(void 0,t),r=(0,Mi.ChoiceNode)([{type:"object",node:(0,Mi.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:(0,Mi.ListNode)(i("condition")),change:e=>[{condition:"minecraft:entity_properties",predicate:e}]}],{context:"conditions"});e.register("advancement",(0,Mi.Mod)((0,Mi.ObjectNode)({display:(0,Mi.Opt)((0,Mi.Mod)((0,Mi.ObjectNode)({icon:(0,Mi.ObjectNode)({item:n({validator:"resource",params:{pool:"item"}}),nbt:(0,Mi.Opt)(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:i("text_component"),description:i("text_component"),background:(0,Mi.Opt)(n()),frame:(0,Mi.Opt)(n({enum:["task","challenge","goal"]})),show_toast:(0,Mi.Opt)((0,Mi.BooleanNode)()),announce_to_chat:(0,Mi.Opt)((0,Mi.BooleanNode)()),hidden:(0,Mi.Opt)((0,Mi.BooleanNode)())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:(0,Mi.Opt)(n({validator:"resource",params:{pool:"$advancement"}})),criteria:(0,Mi.MapNode)(n(),i("advancement_criteria")),requirements:(0,Mi.Opt)((0,Mi.ListNode)((0,Mi.ListNode)(n()))),rewards:(0,Mi.Opt)((0,Mi.ObjectNode)({function:(0,Mi.Opt)(n({validator:"resource",params:{pool:"$function"}})),loot:(0,Mi.Opt)((0,Mi.ListNode)(n({validator:"resource",params:{pool:"$loot_table"}}))),recipes:(0,Mi.Opt)((0,Mi.ListNode)(n({validator:"resource",params:{pool:"$recipe"}}))),experience:(0,Mi.Opt)((0,Mi.NumberNode)({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),e.register("advancement_criteria",(0,Mi.ObjectNode)({trigger:n({validator:"resource",params:{pool:t.get("advancement_trigger")}}),conditions:(0,Mi.Opt)((0,Mi.ObjectNode)({player:(0,Mi.Mod)(r,{enabled:e=>"minecraft:impossible"!==e.pop().push("trigger").get()}),[Mi.Switch]:["pop",{push:"trigger"}],[Mi.Case]:{"minecraft:bee_nest_destroyed":{block:(0,Mi.Opt)(n({validator:"resource",params:{pool:"block"}})),num_bees_inside:(0,Mi.Opt)((0,Mi.NumberNode)({integer:!0})),item:(0,Mi.Opt)(i("item_predicate"))},"minecraft:bred_animals":{parent:r,partner:r,child:r},"minecraft:brewed_potion":{potion:(0,Mi.Opt)(n({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:(0,Mi.Opt)(n({validator:"resource",params:{pool:"$dimension"}})),to:(0,Mi.Opt)(n({validator:"resource",params:{pool:"$dimension"}}))},"minecraft:channeled_lightning":{victims:(0,Mi.Opt)((0,Mi.ListNode)(r))},"minecraft:construct_beacon":{level:(0,Mi.Opt)((0,Ti.Range)())},"minecraft:consume_item":{item:(0,Mi.Opt)(i("item_predicate"))},"minecraft:cured_zombie_villager":{villager:r,zombie:r},"minecraft:effects_changed":{effects:(0,Mi.Opt)((0,Mi.MapNode)(n({validator:"resource",params:{pool:"mob_effect"}}),i("status_effect_predicate")))},"minecraft:enter_block":{block:(0,Mi.Opt)(n({validator:"resource",params:{pool:"block"}})),state:(0,Mi.Opt)((0,Mi.MapNode)(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:(0,Mi.Opt)((0,Ti.Range)()),item:(0,Mi.Opt)(i("item_predicate"))},"minecraft:entity_hurt_player":{damage:(0,Mi.Opt)(i("damage_predicate"))},"minecraft:entity_killed_player":{entity:r,killing_blow:(0,Mi.Opt)(i("damage_source_predicate"))},"minecraft:filled_bucket":{item:(0,Mi.Opt)(i("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:r,item:(0,Mi.Opt)(i("item_predicate"))},"minecraft:hero_of_the_village":{location:(0,Mi.Opt)(i("location_predicate"))},"minecraft:inventory_changed":{slots:(0,Mi.Opt)((0,Mi.ObjectNode)({empty:(0,Mi.Opt)((0,Ti.Range)()),occupied:(0,Mi.Opt)((0,Ti.Range)()),full:(0,Mi.Opt)((0,Ti.Range)())})),items:(0,Mi.Opt)((0,Mi.ListNode)(i("item_predicate")))},"minecraft:item_durability_changed":{delta:(0,Mi.Opt)((0,Ti.Range)()),durability:(0,Mi.Opt)((0,Ti.Range)()),item:(0,Mi.Opt)(i("item_predicate"))},"minecraft:item_used_on_block":{item:(0,Mi.Opt)(i("item_predicate")),location:(0,Mi.Opt)(i("location_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:(0,Mi.Opt)((0,Ti.Range)()),victims:(0,Mi.Opt)((0,Mi.ListNode)(r))},"minecraft:levitation":{distance:(0,Mi.Opt)((0,Ti.Range)()),duration:(0,Mi.Opt)((0,Ti.Range)())},"minecraft:location":{location:(0,Mi.Opt)(i("location_predicate"))},"minecraft:nether_travel":{distance:(0,Mi.Opt)((0,Ti.Range)()),entered:(0,Mi.Opt)(i("location_predicate")),exited:(0,Mi.Opt)(i("location_predicate"))},"minecraft:placed_block":{block:(0,Mi.Opt)(n({validator:"resource",params:{pool:"block"}})),state:(0,Mi.Opt)((0,Mi.MapNode)(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:(0,Mi.Opt)(i("item_predicate")),location:(0,Mi.Opt)(i("location_predicate"))},"minecraft:player_generates_container_loot":{loot_table:n({validator:"resource",params:{pool:"$loot_table"}})},"minecraft:player_hurt_entity":{damage:(0,Mi.Opt)(i("damage_predicate")),entity:r},"minecraft:player_interacted_with_entity":{item:(0,Mi.Opt)(i("item_predicate")),entity:r},"minecraft:player_killed_entity":{entity:r,killing_blow:(0,Mi.Opt)(i("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:n({validator:"resource",params:{pool:"$recipe"}})},"minecraft:slept_in_bed":{location:(0,Mi.Opt)(i("location_predicate"))},"minecraft:slide_down_block":{block:(0,Mi.Opt)(n({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:(0,Mi.Opt)(i("item_predicate"))},"minecraft:summoned_entity":{entity:r},"minecraft:tame_animal":{entity:r},"minecraft:target_hit":{projectile:r,shooter:r,signal_strength:(0,Mi.Opt)((0,Ti.Range)({integer:!0}))},"minecraft:thrown_item_picked_up_by_entity":{entity:r,item:(0,Mi.Opt)(i("item_predicate"))},"minecraft:used_ender_eye":{distance:(0,Mi.Opt)((0,Ti.Range)())},"minecraft:used_totem":{item:(0,Mi.Opt)(i("item_predicate"))},"minecraft:villager_trade":{villager:r,item:(0,Mi.Opt)(i("item_predicate"))},"minecraft:voluntary_exile":{location:i("location_predicate")}}},{context:"criterion"}))},{category:"predicate",context:"criterion"}))};var Ri={},$i={};Object.defineProperty($i,"__esModule",{value:!0}),$i.initModelSchemas=void 0;const ji=Pe;$i.initModelSchemas=function(e,t){ji.Reference.bind(void 0,e);const i=ji.StringNode.bind(void 0,t),n=(e,t,i)=>(0,ji.ListNode)((0,ji.NumberNode)({min:t,max:i}),{minLength:e,maxLength:e}),r=(0,ji.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",(0,ji.Mod)((0,ji.ObjectNode)({parent:(0,ji.Opt)(i({validator:"resource",params:{pool:"$model"}})),ambientocclusion:(0,ji.Opt)((0,ji.BooleanNode)()),gui_light:(0,ji.Opt)(i({enum:"gui_light"})),textures:(0,ji.Opt)((0,ji.MapNode)(i(),r)),elements:(0,ji.Opt)((0,ji.ListNode)((0,ji.ObjectNode)({from:n(3,-16,32),to:n(3,-16,32),rotation:(0,ji.Opt)((0,ji.ObjectNode)({origin:n(3),axis:i({enum:"axis"}),angle:(0,ji.NumberEnum)({values:[-45,-22.5,0,22.5,45]}),rescale:(0,ji.Opt)((0,ji.BooleanNode)())})),shade:(0,ji.Opt)((0,ji.BooleanNode)()),faces:(0,ji.MapNode)(i({enum:"direction"}),(0,ji.ObjectNode)({texture:r,uv:(0,ji.Opt)(n(4)),cullface:(0,ji.Opt)(i({enum:"direction"})),rotation:(0,ji.Opt)((0,ji.NumberNode)({integer:!0})),tintindex:(0,ji.Opt)((0,ji.NumberNode)({integer:!0}))}))},{context:"model_element"}))),display:(0,ji.Opt)((0,ji.MapNode)(i({enum:"display_position"}),(0,ji.ObjectNode)({rotation:n(3),translation:n(3,-80,80),scale:n(3,-4,4)},{context:"item_transform"}))),overrides:(0,ji.Opt)((0,ji.ListNode)((0,ji.ObjectNode)({predicate:(0,ji.MapNode)(i({enum:"item_model_predicates"}),(0,ji.NumberNode)()),model:i({validator:"resource",params:{pool:"$model"}})},{context:"model_override"})))},{context:"model"}),{default:()=>({parent:"minecraft:item/generated",textures:{layer0:"minecraft:item/diamond"}})}))};var Ii={};Object.defineProperty(Ii,"__esModule",{value:!0}),Ii.initBlockDefinitionSchemas=void 0;const Pi=Pe;Ii.initBlockDefinitionSchemas=function(e,t){const i=Pi.Reference.bind(void 0,e),n=Pi.StringNode.bind(void 0,t);e.register("block_definition",(0,Pi.Mod)((0,Pi.ChoiceNode)([{type:"variants",match:e=>void 0!==e.variants,node:(0,Pi.ObjectNode)({variants:(0,Pi.MapNode)(n(),i("model_variant"))}),change:e=>({variants:{"":{}}})},{type:"multipart",match:e=>void 0!==e.multipart,node:(0,Pi.ObjectNode)({multipart:(0,Pi.ListNode)((0,Pi.ObjectNode)({when:(0,Pi.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:(0,Pi.Opt)((0,Pi.NumberEnum)({integer:!0,values:[0,90,180,270]})),y:(0,Pi.Opt)((0,Pi.NumberEnum)({integer:!0,values:[0,90,180,270]})),uvlock:(0,Pi.Opt)((0,Pi.BooleanNode)())};e.register("model_variant",(0,Pi.ChoiceNode)([{type:"object",node:(0,Pi.ObjectNode)(r),change:e=>Array.isArray(e)&&e.length>0?e[0]:{}},{type:"list",node:(0,Pi.ListNode)((0,Pi.ObjectNode)(c(s({},r),{weight:(0,Pi.Opt)((0,Pi.NumberNode)({integer:!0,min:1}))}),{context:"model_variant"})),change:e=>[s({weight:1},e)]}],{context:"model_variant"})),e.register("multipart_condition",(0,Pi.ChoiceNode)([{type:"object",priority:-1,match:()=>!0,node:(0,Pi.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:(0,Pi.ObjectNode)({OR:(0,Pi.ListNode)(i("multipart_condition"))}),change:e=>({OR:[null!=e?e:{}]})}],{context:"multipart_condition"}))},Object.defineProperty(Ri,"__esModule",{value:!0}),Ri.initAssetsSchemas=void 0;const zi=$i,Ui=Ii;Ri.initAssetsSchemas=function(e,t){(0,Ui.initBlockDefinitionSchemas)(e,t),(0,zi.initModelSchemas)(e,t)};var Wi={};Object.defineProperty(Wi,"__esModule",{value:!0}),Wi.initConditionSchemas=void 0;const Hi=Pe,qi=Li;Wi.initConditionSchemas=function(e,t){const i=Hi.Reference.bind(void 0,e),n=Hi.StringNode.bind(void 0,t);e.register("predicate",(0,Hi.ObjectOrList)(i("condition"),{choiceContext:"condition"})),e.register("condition",(0,Hi.Mod)((0,Hi.ObjectNode)({condition:n({validator:"resource",params:{pool:"loot_condition_type"}}),[Hi.Switch]:[{push:"condition"}],[Hi.Case]:qi.ConditionCases},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:entity_properties",entity:"this"})}))};var Vi={};Object.defineProperty(Vi,"__esModule",{value:!0}),Vi.initDimensionSchemas=void 0;const Gi=Pe,Ki=Li;Vi.initDimensionSchemas=function(e,t){const i=Gi.Reference.bind(void 0,e),n=Gi.StringNode.bind(void 0,t),r=e=>(0,Gi.Mod)(e,{enabled:e=>void 0===e.push("preset").get()});e.register("dimension",(0,Gi.Mod)((0,Gi.ObjectNode)({type:(0,Ki.DimensionTypePresets)(i("dimension_type")),generator:(0,Gi.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/chunk_generator"}}),[Gi.Switch]:[{push:"type"}],[Gi.Case]:{"minecraft:noise":{seed:(0,Gi.NumberNode)({integer:!0}),settings:(0,Ki.NoiseSettingsPresets)(i("noise_settings")),biome_source:(0,Gi.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/biome_source"}}),[Gi.Switch]:[{push:"type"}],[Gi.Case]:{"minecraft:fixed":{biome:n({validator:"resource",params:{pool:"$worldgen/biome"}})},"minecraft:multi_noise":{seed:(0,Gi.NumberNode)({integer:!0}),preset:(0,Gi.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((0,Gi.Mod)((0,Gi.ListNode)(i("generator_biome")),{default:()=>[{biome:"minecraft:plains"}]}))},"minecraft:checkerboard":{scale:(0,Gi.Opt)((0,Gi.NumberNode)({integer:!0,min:0,max:62})),biomes:(0,Gi.ListNode)(n({validator:"resource",params:{pool:"$worldgen/biome"}}))},"minecraft:the_end":{seed:(0,Gi.NumberNode)({integer:!0})},"minecraft:vanilla_layered":{seed:(0,Gi.NumberNode)({integer:!0}),large_biomes:(0,Gi.Opt)((0,Gi.BooleanNode)()),legacy_biome_init_layer:(0,Gi.Opt)((0,Gi.BooleanNode)())}}},{category:"predicate",disableSwitchContext:!0})},"minecraft:flat":{settings:(0,Gi.ObjectNode)({biome:(0,Gi.Opt)(n({validator:"resource",params:{pool:"$worldgen/biome"}})),lakes:(0,Gi.Opt)((0,Gi.BooleanNode)()),features:(0,Gi.Opt)((0,Gi.BooleanNode)()),layers:(0,Gi.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",(0,Gi.Mod)((0,Gi.ObjectNode)({biome:n({validator:"resource",params:{pool:"$worldgen/biome"}}),parameters:(0,Gi.ObjectNode)({altitude:(0,Gi.NumberNode)(),temperature:(0,Gi.NumberNode)(),humidity:(0,Gi.NumberNode)(),weirdness:(0,Gi.NumberNode)(),offset:(0,Gi.NumberNode)()})},{context:"generator_biome"}),{default:()=>({biome:"minecraft:plains",parameters:{altitude:0,temperature:0,humidity:0,weirdness:0,offset:0}})})),e.register("generator_biome_noise",(0,Gi.Mod)((0,Gi.ObjectNode)({firstOctave:(0,Gi.NumberNode)({integer:!0}),amplitudes:(0,Gi.ListNode)((0,Gi.NumberNode)())},{context:"generator_biome_noise"}),{default:()=>({firstOctave:-7,amplitudes:[1,1]})}))};var Xi={};Object.defineProperty(Xi,"__esModule",{value:!0}),Xi.initDimensionTypeSchemas=void 0;const Ji=Pe,Yi=Li;Xi.initDimensionTypeSchemas=function(e,t){const i=Ji.StringNode.bind(void 0,t);e.register("dimension_type",(0,Ji.Mod)((0,Ji.ObjectNode)({name:(0,Ji.Mod)(i({validator:"resource",params:{pool:"$dimension_type",isDefinition:!0}}),{enabled:e=>e.getArray().length>0}),ultrawarm:(0,Ji.BooleanNode)(),natural:(0,Ji.BooleanNode)(),piglin_safe:(0,Ji.BooleanNode)(),respawn_anchor_works:(0,Ji.BooleanNode)(),bed_works:(0,Ji.BooleanNode)(),has_raids:(0,Ji.BooleanNode)(),has_skylight:(0,Ji.BooleanNode)(),has_ceiling:(0,Ji.BooleanNode)(),coordinate_scale:(0,Ji.NumberNode)({min:1e-5,max:3e7}),ambient_light:(0,Ji.NumberNode)(),fixed_time:(0,Ji.Opt)((0,Ji.NumberNode)({integer:!0})),logical_height:(0,Ji.NumberNode)({integer:!0,min:0,max:256}),effects:(0,Ji.Opt)(i({enum:["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]})),infiniburn:i({validator:"resource",params:{pool:"$tag/block"}})},{context:"dimension_type"}),{default:()=>Yi.DefaultDimensionType}))};var Zi={},Qi={};Object.defineProperty(Qi,"__esModule",{value:!0}),Qi.LootFunctions=Qi.LootConditions=Qi.LootCopySources=Qi.LootEntitySources=Qi.LootTableTypes=void 0,Qi.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]}]]),Qi.LootEntitySources=new Map([["direct_killer",[3]],["killer",[5]],["killer_player",[5]],["this",[8]]]),Qi.LootCopySources=new Map([["block_entity",[0]],["killer",[5]],["killer_player",[5]],["this",[8]]]),Qi.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",[]]]),Qi.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(Zi,"__esModule",{value:!0}),Zi.initLootTableSchemas=void 0;const en=Pe,tn=Qi,nn=Li;Zi.initLootTableSchemas=function(e,t){const i=en.Reference.bind(void 0,e),n=en.StringNode.bind(void 0,t),r={conditions:(0,en.Opt)((0,en.ListNode)(i("loot_condition")))},o=s({functions:(0,en.Opt)((0,en.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 tn.LootTableTypes){const e=[...a,...s];r.push({match:e=>e.getModel().get(new en.Path(["type"]))===t,node:n(o(e))})}return r.push({match:e=>!0,node:n(i)}),(0,en.SwitchNode)(r)}const l=a(tn.LootConditions,"loot_condition_type",(e=>n({validator:"resource",params:{pool:e instanceof Array?e:"loot_condition_type"}}))),u=a(tn.LootFunctions,"loot_function_type",(e=>n({validator:"resource",params:{pool:e instanceof Array?e:"loot_function_type"}}))),d=a(tn.LootEntitySources,"entity_source",(e=>n({enum:e}))),h=a(tn.LootCopySources,"copy_source",(e=>n({enum:e})));e.register("loot_table",(0,en.Mod)((0,en.ObjectNode)({type:(0,en.Opt)(n({validator:"resource",params:{pool:t.get("loot_context_type")}})),pools:(0,en.Opt)((0,en.ListNode)((0,en.Mod)((0,en.ObjectNode)(s({rolls:(0,nn.Range)({allowBinomial:!0,integer:!0}),bonus_rolls:(0,en.Opt)((0,nn.Range)({integer:!0})),entries:(0,en.ListNode)(i("loot_entry"))},o),{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:(0,en.Opt)((0,en.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",(0,en.Mod)((0,en.ObjectNode)({type:n({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:(0,en.Opt)((0,en.Mod)((0,en.NumberNode)({integer:!0,min:1}),p)),quality:(0,en.Opt)((0,en.Mod)((0,en.NumberNode)({integer:!0}),p)),[en.Switch]:[{push:"type"}],[en.Case]:{"minecraft:alternatives":s({children:(0,en.ListNode)(i("loot_entry"))},o),"minecraft:dynamic":s({name:n()},o),"minecraft:group":s({children:(0,en.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:(0,en.ListNode)(i("loot_entry"))},o),"minecraft:tag":s({name:n({validator:"resource",params:{pool:"$tag/item"}}),expand:(0,en.Opt)((0,en.BooleanNode)())},o)}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),e.register("loot_function",(0,en.Mod)((0,en.ObjectNode)({function:u,[en.Switch]:[{push:"function"}],[en.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:(0,en.Mod)((0,en.ObjectNode)({bonusMultiplier:(0,en.Mod)((0,en.NumberNode)(),{enabled:e=>"minecraft:uniform_bonus_count"===e.pop().push("formula").get()}),extra:(0,en.Mod)((0,en.NumberNode)(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()}),probability:(0,en.Mod)((0,en.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:(0,en.ListNode)((0,en.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:(0,en.ListNode)(n({validator:"block_state_key",params:{id:["pop","pop",{push:"block"}]}}))},"minecraft:enchant_randomly":{enchantments:(0,en.Opt)((0,en.ListNode)(n({validator:"resource",params:{pool:"enchantment"}})))},"minecraft:enchant_with_levels":{levels:(0,nn.Range)({allowBinomial:!0}),treasure:(0,en.Opt)((0,en.BooleanNode)())},"minecraft:exploration_map":{destination:(0,en.Opt)(n({enum:"map_feature"})),decoration:(0,en.Opt)(n({enum:"map_decoration"})),zoom:(0,en.Opt)((0,en.NumberNode)({integer:!0})),search_radius:(0,en.Opt)((0,en.NumberNode)({integer:!0})),skip_existing_chunks:(0,en.Opt)((0,en.BooleanNode)())},"minecraft:fill_player_head":{entity:d},"minecraft:limit_count":{limit:(0,nn.Range)({bounds:!0})},"minecraft:looting_enchant":{count:(0,nn.Range)({bounds:!0}),limit:(0,en.Opt)((0,en.NumberNode)({integer:!0}))},"minecraft:set_attributes":{modifiers:(0,en.ListNode)(i("attribute_modifier"))},"minecraft:set_contents":{entries:(0,en.ListNode)(i("loot_entry"))},"minecraft:set_count":{count:(0,nn.Range)({allowBinomial:!0})},"minecraft:set_damage":{damage:(0,nn.Range)({forceRange:!0})},"minecraft:set_loot_table":{name:n({validator:"resource",params:{pool:"$loot_table"}}),seed:(0,en.Opt)((0,en.NumberNode)({integer:!0}))},"minecraft:set_lore":{entity:(0,en.Opt)(d),lore:(0,en.ListNode)(i("text_component")),replace:(0,en.Opt)((0,en.BooleanNode)())},"minecraft:set_name":{entity:(0,en.Opt)(d),name:(0,en.Opt)(i("text_component"))},"minecraft:set_nbt":{tag:n({validator:"nbt",params:{registry:{category:"minecraft:item"}}})},"minecraft:set_stew_effect":{effects:(0,en.Opt)((0,en.ListNode)((0,en.ObjectNode)({type:n({validator:"resource",params:{pool:"mob_effect"}}),duration:(0,nn.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",(0,en.Mod)((0,en.ObjectNode)({condition:l,[en.Switch]:[{push:"condition"}],[en.Case]:c(s({},nn.ConditionCases),{"minecraft:entity_properties":{entity:d,predicate:i("entity_predicate")},"minecraft:entity_scores":{entity:d,scores:(0,en.MapNode)(n({validator:"objective"}),(0,nn.Range)({bounds:!0}))}})},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),e.register("attribute_modifier",(0,en.Mod)((0,en.ObjectNode)({attribute:n({validator:"resource",params:{pool:"attribute"}}),name:n(),amount:(0,nn.Range)({bounds:!0}),operation:n({enum:["addition","multiply_base","multiply_total"]}),slot:(0,en.StringOrList)(n({enum:"slot"}))},{context:"attribute_modifier"}),{default:()=>({attribute:"minecraft:generic.max_health",name:"",amount:1,operation:"addition",slot:"mainhand"})}))};var rn={};Object.defineProperty(rn,"__esModule",{value:!0}),rn.initPackMcmetaSchemas=void 0;const on=Pe;rn.initPackMcmetaSchemas=function(e,t){e.register("pack_mcmeta",(0,on.Mod)((0,on.ObjectNode)({pack:(0,on.Mod)((0,on.ObjectNode)({pack_format:(0,on.Mod)((0,on.NumberNode)({integer:!0,min:6,max:6}),{default:()=>6}),description:(0,on.Reference)(e,"text_component")}),{default:()=>({pack_format:6,description:""})})}),{default:()=>({pack:{pack_format:6,description:""}})}))};var an={};Object.defineProperty(an,"__esModule",{value:!0}),an.initPredicatesSchemas=void 0;const sn=Pe,cn=Li;an.initPredicatesSchemas=function(e,t){const i=sn.Reference.bind(void 0,e),n=sn.StringNode.bind(void 0,t),r=(0,sn.ChoiceNode)([{type:"string",node:n(),change:e=>"boolean"==typeof e||"number"==typeof e?e.toString():""},{type:"number",node:(0,sn.NumberNode)(),change:e=>"string"==typeof e?parseInt(e):0},{type:"object",node:(0,sn.ObjectNode)({min:(0,sn.Opt)((0,sn.NumberNode)({integer:!0})),max:(0,sn.Opt)((0,sn.NumberNode)({integer:!0}))}),change:e=>"number"==typeof e?{min:e,max:e}:{}},{type:"boolean",node:(0,sn.BooleanNode)(),change:e=>"true"===e||1===e}]);e.register("item_predicate",(0,sn.ObjectNode)({item:(0,sn.Opt)(n({validator:"resource",params:{pool:"item"}})),tag:(0,sn.Opt)(n({validator:"resource",params:{pool:"$tag/item"}})),count:(0,sn.Opt)((0,cn.Range)()),durability:(0,sn.Opt)((0,cn.Range)()),potion:(0,sn.Opt)(n({validator:"resource",params:{pool:"potion"}})),nbt:(0,sn.Opt)(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:(0,sn.Opt)((0,sn.ListNode)(i("enchantment_predicate")))},{context:"item"})),e.register("enchantment_predicate",(0,sn.ObjectNode)({enchantment:(0,sn.Opt)(n({validator:"resource",params:{pool:"enchantment"}})),levels:(0,sn.Opt)((0,cn.Range)())},{context:"enchantment"})),e.register("block_predicate",(0,sn.ObjectNode)({block:(0,sn.Opt)(n({validator:"resource",params:{pool:"block"}})),tag:(0,sn.Opt)(n({validator:"resource",params:{pool:"$tag/block"}})),nbt:(0,sn.Opt)(n({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:(0,sn.Opt)((0,sn.MapNode)(n(),r,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),e.register("fluid_predicate",(0,sn.ObjectNode)({fluid:(0,sn.Opt)(n({validator:"resource",params:{pool:"fluid"}})),tag:(0,sn.Opt)(n({validator:"resource",params:{pool:"$tag/fluid"}})),state:(0,sn.Opt)((0,sn.MapNode)(n(),r))},{context:"fluid"})),e.register("location_predicate",(0,sn.ObjectNode)({position:(0,sn.Opt)((0,sn.ObjectNode)({x:(0,sn.Opt)((0,cn.Range)()),y:(0,sn.Opt)((0,cn.Range)()),z:(0,sn.Opt)((0,cn.Range)())})),biome:(0,sn.Opt)(n({validator:"resource",params:{pool:"$worldgen/biome"}})),feature:(0,sn.Opt)(n({enum:t.get("worldgen/structure_feature").map((e=>e.slice(10)))})),dimension:(0,sn.Opt)(n({validator:"resource",params:{pool:"$dimension"}})),light:(0,sn.Opt)((0,sn.ObjectNode)({light:(0,sn.Opt)((0,cn.Range)({integer:!0,min:0,max:15}))})),smokey:(0,sn.Opt)((0,sn.BooleanNode)()),block:(0,sn.Opt)(i("block_predicate")),fluid:(0,sn.Opt)(i("fluid_predicate"))},{context:"location"})),e.register("statistic_predicate",(0,sn.ObjectNode)({type:n({validator:"resource",params:{pool:"stat_type"}}),stat:n(),value:(0,cn.Range)(),[sn.Switch]:[{push:"type"}],[sn.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",(0,sn.ObjectNode)({gamemode:(0,sn.Opt)(n({enum:"gamemode"})),level:(0,sn.Opt)((0,cn.Range)()),advancements:(0,sn.Opt)((0,sn.MapNode)(n({validator:"resource",params:{pool:"$advancement"}}),(0,sn.ChoiceNode)([{type:"boolean",node:(0,sn.BooleanNode)(),change:e=>!0},{type:"object",node:(0,sn.MapNode)(n(),(0,sn.BooleanNode)())}]))),recipes:(0,sn.Opt)((0,sn.MapNode)(n({validator:"resource",params:{pool:"$recipe"}}),(0,sn.BooleanNode)())),stats:(0,sn.Opt)((0,sn.ListNode)(i("statistic_predicate")))},{context:"player"})),e.register("status_effect_predicate",(0,sn.ObjectNode)({amplifier:(0,sn.Opt)((0,cn.Range)()),duration:(0,sn.Opt)((0,cn.Range)()),ambient:(0,sn.Opt)((0,sn.BooleanNode)()),visible:(0,sn.Opt)((0,sn.BooleanNode)())},{context:"status_effect"})),e.register("distance_predicate",(0,sn.ObjectNode)({x:(0,sn.Opt)((0,cn.Range)()),y:(0,sn.Opt)((0,cn.Range)()),z:(0,sn.Opt)((0,cn.Range)()),absolute:(0,sn.Opt)((0,cn.Range)()),horizontal:(0,sn.Opt)((0,cn.Range)())},{context:"distance"})),e.register("entity_predicate",(0,sn.ObjectNode)({type:(0,sn.Opt)(n({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),nbt:(0,sn.Opt)(n({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:(0,sn.Opt)(n({validator:"team"})),location:(0,sn.Opt)(i("location_predicate")),distance:(0,sn.Opt)(i("distance_predicate")),flags:(0,sn.Opt)((0,sn.ObjectNode)({is_on_fire:(0,sn.Opt)((0,sn.BooleanNode)()),is_sneaking:(0,sn.Opt)((0,sn.BooleanNode)()),is_sprinting:(0,sn.Opt)((0,sn.BooleanNode)()),is_swimming:(0,sn.Opt)((0,sn.BooleanNode)()),is_baby:(0,sn.Opt)((0,sn.BooleanNode)())})),equipment:(0,sn.Opt)((0,sn.MapNode)(n({enum:"slot"}),i("item_predicate"))),vehicle:(0,sn.Opt)(i("entity_predicate")),targeted_entity:(0,sn.Opt)(i("entity_predicate")),player:(0,sn.Opt)(i("player_predicate")),fishing_hook:(0,sn.Opt)((0,sn.ObjectNode)({in_open_water:(0,sn.Opt)((0,sn.BooleanNode)())})),catType:(0,sn.Opt)(n({enum:"cat_texture"})),effects:(0,sn.Opt)((0,sn.MapNode)(n({validator:"resource",params:{pool:"mob_effect"}}),i("status_effect_predicate")))},{context:"entity"})),e.register("damage_source_predicate",(0,sn.ObjectNode)({is_explosion:(0,sn.Opt)((0,sn.BooleanNode)()),is_fire:(0,sn.Opt)((0,sn.BooleanNode)()),is_magic:(0,sn.Opt)((0,sn.BooleanNode)()),is_projectile:(0,sn.Opt)((0,sn.BooleanNode)()),is_lightning:(0,sn.Opt)((0,sn.BooleanNode)()),bypasses_armor:(0,sn.Opt)((0,sn.BooleanNode)()),bypasses_invulnerability:(0,sn.Opt)((0,sn.BooleanNode)()),bypasses_magic:(0,sn.Opt)((0,sn.BooleanNode)()),source_entity:(0,sn.Opt)(i("entity_predicate")),direct_entity:(0,sn.Opt)(i("entity_predicate"))},{context:"damage_source"})),e.register("damage_predicate",(0,sn.ObjectNode)({dealt:(0,sn.Opt)((0,cn.Range)()),taken:(0,sn.Opt)((0,cn.Range)()),blocked:(0,sn.Opt)((0,sn.BooleanNode)()),source_entity:(0,sn.Opt)(i("entity_predicate")),type:(0,sn.Opt)(i("damage_source_predicate"))},{context:"damage"}))};var ln={};Object.defineProperty(ln,"__esModule",{value:!0}),ln.initRecipeSchemas=void 0;const un=Pe;ln.initRecipeSchemas=function(e,t){const i=un.Reference.bind(void 0,e),n=un.StringNode.bind(void 0,t);e.register("recipe",(0,un.Mod)((0,un.ObjectNode)({type:n({validator:"resource",params:{pool:"recipe_serializer"}}),[un.Switch]:[{push:"type"}],[un.Case]:{"minecraft:crafting_shaped":{group:(0,un.Opt)(n({enum:"recipe_group",additional:!0})),pattern:(0,un.ListNode)(n()),key:(0,un.MapNode)(n(),i("recipe_ingredient")),result:i("recipe_result")},"minecraft:crafting_shapeless":{group:(0,un.Opt)(n()),ingredients:(0,un.ListNode)(i("recipe_ingredient")),result:i("recipe_result")},"minecraft:smelting":{group:(0,un.Opt)(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:(0,un.Opt)((0,un.NumberNode)()),cookingtime:(0,un.Opt)((0,un.Mod)((0,un.NumberNode)({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:(0,un.Opt)(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:(0,un.Opt)((0,un.NumberNode)()),cookingtime:(0,un.Opt)((0,un.Mod)((0,un.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:(0,un.Opt)(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:(0,un.Opt)((0,un.NumberNode)()),cookingtime:(0,un.Opt)((0,un.Mod)((0,un.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:(0,un.Opt)(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:(0,un.Opt)((0,un.NumberNode)()),cookingtime:(0,un.Opt)((0,un.Mod)((0,un.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:(0,un.Opt)(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),count:(0,un.NumberNode)({integer:!0})},"minecraft:smithing":{group:(0,un.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",(0,un.Mod)((0,un.ChoiceNode)([{type:"object",node:i("recipe_ingredient_object"),change:e=>e[0]},{type:"list",node:(0,un.ListNode)(i("recipe_ingredient_object")),change:e=>[e]}]),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_ingredient_object",(0,un.Mod)((0,un.ObjectNode)({item:(0,un.Opt)(n({validator:"resource",params:{pool:"item"}})),tag:(0,un.Opt)(n({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_result",(0,un.Mod)((0,un.ObjectNode)({item:n({validator:"resource",params:{pool:"item"}}),count:(0,un.Opt)((0,un.Mod)((0,un.NumberNode)({integer:!0}),{default:()=>1}))}),{default:()=>({item:"minecraft:stone"})}))};var dn={};Object.defineProperty(dn,"__esModule",{value:!0}),dn.initTagsSchemas=void 0;const hn=Pe;dn.initTagsSchemas=function(e,t){const i=hn.StringNode.bind(void 0,t),n=e=>(0,hn.Mod)((0,hn.ObjectNode)({replace:(0,hn.Opt)((0,hn.BooleanNode)()),values:(0,hn.ListNode)((0,hn.ChoiceNode)([{type:"string",node:i({validator:"resource",params:{pool:e,allowTag:!0}}),change:e=>e.id},{type:"object",node:(0,hn.ObjectNode)({id:i({validator:"resource",params:{pool:e,allowTag:!0,allowUnknown:!0}}),required:(0,hn.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 pn={};Object.defineProperty(pn,"__esModule",{value:!0}),pn.initTextComponentSchemas=void 0;const mn=Pe;pn.initTextComponentSchemas=function(e,t){const i=mn.Reference.bind(void 0,e),n=mn.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",(0,mn.Mod)((0,mn.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:(0,mn.NumberNode)(),change:e=>{const t=parseFloat(r(e));return isFinite(t)?t:e?1:0}},{type:"boolean",node:(0,mn.BooleanNode)(),change:e=>{const t=r(e);return"true"===t||"false"===t?"true"===t:!!t}}],{context:"text_component"}),{default:()=>({text:""})}));const o={color:(0,mn.Opt)(n()),font:(0,mn.Opt)(n()),bold:(0,mn.Opt)((0,mn.BooleanNode)()),italic:(0,mn.Opt)((0,mn.BooleanNode)()),underlined:(0,mn.Opt)((0,mn.BooleanNode)()),strikethrough:(0,mn.Opt)((0,mn.BooleanNode)()),obfuscated:(0,mn.Opt)((0,mn.BooleanNode)()),insertion:(0,mn.Opt)(n()),clickEvent:(0,mn.Opt)((0,mn.ObjectNode)({action:n({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[mn.Switch]:[{push:"action"}],[mn.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:(0,mn.Opt)((0,mn.ObjectNode)({action:n({enum:["show_text","show_item","show_entity"]}),[mn.Switch]:[{push:"action"}],[mn.Case]:{show_text:{value:(0,mn.Opt)(i("text_component")),contents:(0,mn.Opt)(i("text_component"))},show_item:{value:(0,mn.Opt)(n({validator:"nbt",params:{module:"util::InventoryItem"}})),contents:(0,mn.Opt)((0,mn.ObjectNode)({id:n({validator:"resource",params:{pool:"item"}}),count:(0,mn.Opt)((0,mn.NumberNode)({integer:!0})),tag:(0,mn.Opt)(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"id"}]}}}))}))},show_entity:{value:(0,mn.Opt)((0,mn.ObjectNode)({name:(0,mn.Opt)(n()),type:(0,mn.Opt)(n()),id:(0,mn.Opt)(n())})),contents:(0,mn.Opt)((0,mn.Mod)((0,mn.ObjectNode)({name:(0,mn.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:(0,mn.Opt)(i("text_component_list"))};e.register("text_component_object",(0,mn.Mod)((0,mn.ChoiceNode)([{type:"text",match:e=>"object"==typeof e,change:e=>({text:""}),priority:-1,node:(0,mn.ObjectNode)(s({text:n()},o))},{type:"translation",match:e=>void 0!==(null==e?void 0:e.translate),change:e=>({translate:""}),node:(0,mn.ObjectNode)(s({translate:n(),with:(0,mn.Opt)(i("text_component_list"))},o))},{type:"score",match:e=>void 0!==(null==e?void 0:e.score),change:e=>({score:{}}),node:(0,mn.ObjectNode)(s({score:(0,mn.ObjectNode)({name:n({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:n({validator:"objective"}),value:(0,mn.Opt)(n())})},o))},{type:"selector",match:e=>void 0!==(null==e?void 0:e.selector),change:e=>({selector:""}),node:(0,mn.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:(0,mn.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:(0,mn.ObjectNode)(s({nbt:n({validator:"nbt_path"}),block:(0,mn.Opt)(n({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:(0,mn.Opt)(n({validator:"entity",params:{amount:"multiple",type:"entities"}})),storage:(0,mn.Opt)(n({validator:"resource",params:{pool:"$storage"}})),interpret:(0,mn.Opt)((0,mn.BooleanNode)())},o))}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),e.register("text_component_list",(0,mn.Mod)((0,mn.ListNode)(i("text_component")),{default:()=>[{text:""}]}))};var fn={},gn={};Object.defineProperty(gn,"__esModule",{value:!0}),gn.initBiomeSchemas=void 0;const _n=Pe;gn.initBiomeSchemas=function(e,t){const i=_n.StringNode.bind(void 0,t);e.register("biome",(0,_n.Mod)((0,_n.ObjectNode)({surface_builder:i({validator:"resource",params:{pool:"$worldgen/configured_surface_builder"}}),depth:(0,_n.NumberNode)(),scale:(0,_n.NumberNode)(),temperature:(0,_n.NumberNode)(),downfall:(0,_n.NumberNode)(),precipitation:i({enum:["none","rain","snow"]}),temperature_modifier:(0,_n.Opt)(i({enum:["none","frozen"]})),category:i({enum:"biome_category"}),player_spawn_friendly:(0,_n.Opt)((0,_n.BooleanNode)()),creature_spawn_probability:(0,_n.Opt)((0,_n.NumberNode)({min:0,max:1})),effects:(0,_n.ObjectNode)({sky_color:(0,_n.NumberNode)({color:!0}),fog_color:(0,_n.NumberNode)({color:!0}),water_color:(0,_n.NumberNode)({color:!0}),water_fog_color:(0,_n.NumberNode)({color:!0}),grass_color:(0,_n.Opt)((0,_n.NumberNode)({color:!0})),foliage_color:(0,_n.Opt)((0,_n.NumberNode)({color:!0})),grass_color_modifier:(0,_n.Opt)(i({enum:["none","dark_forest","swamp"]})),ambient_sound:(0,_n.Opt)(i()),mood_sound:(0,_n.Opt)((0,_n.ObjectNode)({sound:i(),tick_delay:(0,_n.NumberNode)({integer:!0}),block_search_extent:(0,_n.NumberNode)({integer:!0}),offset:(0,_n.NumberNode)()})),additions_sound:(0,_n.Opt)((0,_n.ObjectNode)({sound:i(),tick_chance:(0,_n.NumberNode)({min:0,max:1})})),music:(0,_n.Opt)((0,_n.ObjectNode)({sound:i(),min_delay:(0,_n.NumberNode)({integer:!0,min:0}),max_delay:(0,_n.NumberNode)({integer:!0,min:0}),replace_current_music:(0,_n.BooleanNode)()})),particle:(0,_n.Opt)((0,_n.ObjectNode)({options:(0,_n.ObjectNode)({type:i()}),probability:(0,_n.NumberNode)({min:0,max:1})}))}),starts:(0,_n.ListNode)(i({validator:"resource",params:{pool:"$worldgen/configured_structure_feature"}})),spawners:(0,_n.MapNode)(i({enum:["water_ambient","ambient","misc","water_creature","creature","monster"]}),(0,_n.Mod)((0,_n.ListNode)((0,_n.ObjectNode)({type:i({validator:"resource",params:{pool:"entity_type"}}),weight:(0,_n.NumberNode)({integer:!0}),minCount:(0,_n.NumberNode)({integer:!0}),maxCount:(0,_n.NumberNode)({integer:!0})})),{category:()=>"pool",default:()=>[{type:"minecraft:bat",weight:1}]})),spawn_costs:(0,_n.MapNode)(i({validator:"resource",params:{pool:"entity_type"}}),(0,_n.Mod)((0,_n.ObjectNode)({energy_budget:(0,_n.NumberNode)(),charge:(0,_n.NumberNode)()},{category:"function"}),{default:()=>({energy_budget:.12,charge:1})})),carvers:(0,_n.MapNode)(i({enum:["air","liquid"]}),(0,_n.Mod)((0,_n.ListNode)(i({validator:"resource",params:{pool:"$worldgen/configured_carver"}})),{default:()=>["minecraft:cave"]})),features:(0,_n.ListNode)((0,_n.Mod)((0,_n.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 bn={};Object.defineProperty(bn,"__esModule",{value:!0}),bn.initCarverSchemas=void 0;const vn=Pe;bn.initCarverSchemas=function(e,t){const i=vn.StringNode.bind(void 0,t);e.register("configured_carver",(0,vn.Mod)((0,vn.ObjectNode)({type:i({validator:"resource",params:{pool:"worldgen/carver"}}),config:(0,vn.ObjectNode)({probability:(0,vn.NumberNode)({min:0,max:1})})},{context:"carver"}),{default:()=>({type:"minecraft:cave",config:{probability:.1}})}))};var yn={};Object.defineProperty(yn,"__esModule",{value:!0}),yn.initDecoratorSchemas=void 0;const wn=Pe,xn=Li;yn.initDecoratorSchemas=function(e,t){const i=wn.Reference.bind(void 0,e),n=wn.StringNode.bind(void 0,t),r={maximum:(0,wn.NumberNode)({integer:!0}),bottom_offset:(0,wn.NumberNode)({integer:!0}),top_offset:(0,wn.NumberNode)({integer:!0})},o={chance:(0,wn.NumberNode)({integer:!0,min:0})},a={count:(0,xn.UniformInt)({min:-10,max:128,maxSpread:128})};e.register("configured_decorator",(0,wn.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/decorator"}}),config:(0,wn.ObjectNode)({[wn.Switch]:["pop",{push:"type"}],[wn.Case]:{"minecraft:carving_mask":{step:n({enum:"generation_step"}),probability:(0,wn.NumberNode)({min:0,max:1})},"minecraft:chance":o,"minecraft:count":a,"minecraft:count_extra":{count:(0,wn.NumberNode)({integer:!0}),extra_count:(0,wn.NumberNode)({integer:!0}),extra_chance:(0,wn.NumberNode)({min:0,max:1})},"minecraft:count_multilayer":a,"minecraft:count_noise":{noise_level:(0,wn.NumberNode)(),below_noise:(0,wn.NumberNode)({integer:!0}),above_noise:(0,wn.NumberNode)({integer:!0})},"minecraft:count_noise_biased":{noise_to_count_ratio:(0,wn.NumberNode)({integer:!0}),noise_factor:(0,wn.NumberNode)(),noise_offset:(0,wn.Opt)((0,wn.NumberNode)())},"minecraft:decorated":{outer:i("configured_decorator"),inner:i("configured_decorator")},"minecraft:depth_average":{baseline:(0,wn.NumberNode)({integer:!0}),spread:(0,wn.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 Nn={},kn={};Object.defineProperty(kn,"__esModule",{value:!0}),kn.initProcessorListSchemas=void 0;const An=Pe;kn.initProcessorListSchemas=function(e,t){const i=An.Reference.bind(void 0,e),n=An.StringNode.bind(void 0,t);e.register("processor_list",(0,An.Mod)((0,An.ObjectNode)({processors:(0,An.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",(0,An.Mod)((0,An.ObjectNode)({processor_type:n({validator:"resource",params:{pool:"worldgen/structure_processor"}}),[An.Switch]:[{push:"processor_type"}],[An.Case]:{"minecraft:block_age":{mossiness:(0,An.NumberNode)()},"minecraft:block_ignore":{blocks:(0,An.ListNode)(i("block_state"))},"minecraft:block_rot":{integrity:(0,An.NumberNode)({min:0,max:1})},"minecraft:gravity":{heightmap:n({enum:"heightmap_type"}),offset:(0,An.NumberNode)({integer:!0})},"minecraft:rule":{rules:(0,An.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",(0,An.Mod)((0,An.ObjectNode)({position_predicate:(0,An.Opt)(i("pos_rule_test")),location_predicate:i("rule_test"),input_predicate:i("rule_test"),output_state:i("block_state"),output_nbt:(0,An.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:(0,An.NumberNode)({min:0,max:255,integer:!0}),max_dist:(0,An.NumberNode)({min:0,max:255,integer:!0}),min_chance:(0,An.NumberNode)({min:0,max:1}),max_chance:(0,An.NumberNode)({min:0,max:1})};e.register("pos_rule_test",(0,An.ObjectNode)({predicate_type:n({validator:"resource",params:{pool:"pos_rule_test"}}),[An.Switch]:[{push:"predicate_type"}],[An.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",(0,An.ObjectNode)({predicate_type:n({validator:"resource",params:{pool:"rule_test"}}),[An.Switch]:[{push:"predicate_type"}],[An.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:(0,An.NumberNode)({min:0,max:1})},"minecraft:random_blockstate_match":{block_state:i("block_state"),probability:(0,An.NumberNode)({min:0,max:1})},"minecraft:tag_match":{tag:n({validator:"resource",params:{pool:"$tag/block"}})}}},{context:"rule_test",disableSwitchContext:!0}))},Object.defineProperty(Nn,"__esModule",{value:!0}),Nn.initFeatureSchemas=void 0;const Cn=Pe,On=Li;Nn.initFeatureSchemas=function(e,t){const i=Cn.Reference.bind(void 0,e),n=Cn.StringNode.bind(void 0,t),r={can_replace:(0,Cn.BooleanNode)(),project:(0,Cn.BooleanNode)(),need_water:(0,Cn.BooleanNode)(),xspread:(0,Cn.NumberNode)({integer:!0}),yspread:(0,Cn.NumberNode)({integer:!0}),zspread:(0,Cn.NumberNode)({integer:!0}),tries:(0,Cn.NumberNode)({integer:!0}),state_provider:i("block_state_provider"),block_placer:i("block_placer"),whitelist:(0,Cn.ListNode)(i("block_state")),blacklist:(0,Cn.ListNode)(i("block_state"))},o={state:i("block_state"),radius:(0,On.UniformInt)({min:0,max:4,maxSpread:4}),half_height:(0,Cn.NumberNode)({integer:!0,min:0,max:4}),targets:(0,Cn.ListNode)(i("block_state"))},a={cap_provider:i("block_state_provider"),stem_provider:i("block_state_provider"),foliage_radius:(0,Cn.Opt)((0,Cn.NumberNode)({integer:!0}))},s={state:i("block_state"),size:(0,Cn.NumberNode)({integer:!0,min:0,max:64}),target:i("rule_test")},c={count:(0,On.UniformInt)({min:-10,max:128,maxSpread:128})},l=(0,Cn.ChoiceNode)([{type:"string",node:n({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},{type:"object",node:i("configured_feature")}],{choiceContext:"feature"});e.register("configured_feature",(0,Cn.Mod)((0,Cn.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/feature"}}),config:(0,Cn.ObjectNode)({[Cn.Switch]:["pop",{push:"type"}],[Cn.Case]:{"minecraft:bamboo":{probability:(0,Cn.NumberNode)({min:0,max:1})},"minecraft:basalt_columns":{reach:(0,On.UniformInt)({min:0,max:2,maxSpread:1}),height:(0,On.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:(0,On.UniformInt)({min:0,max:8,maxSpread:8}),rim_size:(0,On.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:(0,Cn.BooleanNode)(),exit:(0,Cn.Opt)(i("block_pos"))},"minecraft:end_spike":{crystal_invulnerable:(0,Cn.Opt)((0,Cn.BooleanNode)()),crystal_beam_target:(0,Cn.Opt)(i("block_pos")),spikes:(0,Cn.ListNode)((0,Cn.ObjectNode)({centerX:(0,Cn.Opt)((0,Cn.NumberNode)({integer:!0})),centerZ:(0,Cn.Opt)((0,Cn.NumberNode)({integer:!0})),radius:(0,Cn.Opt)((0,Cn.NumberNode)({integer:!0})),height:(0,Cn.Opt)((0,Cn.NumberNode)({integer:!0})),guarded:(0,Cn.Opt)((0,Cn.BooleanNode)())}))},"minecraft:fill_layer":{state:i("block_state"),height:(0,Cn.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:(0,Cn.Opt)((0,Cn.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:(0,On.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:(0,Cn.ListNode)((0,Cn.ObjectNode)({chance:(0,Cn.NumberNode)({min:0,max:1}),feature:l})),default:l},"minecraft:sea_pickle":c,"minecraft:seagrass":{probability:(0,Cn.NumberNode)({min:0,max:1})},"minecraft:simple_block":{to_place:i("block_state"),place_on:(0,Cn.ListNode)(i("block_state")),place_in:(0,Cn.ListNode)(i("block_state")),place_under:(0,Cn.ListNode)(i("block_state"))},"minecraft:simple_random_selector":{features:(0,Cn.ListNode)(l)},"minecraft:spring_feature":{state:i("fluid_state"),rock_count:(0,Cn.NumberNode)({integer:!0}),hole_count:(0,Cn.NumberNode)({integer:!0}),requires_block_below:(0,Cn.BooleanNode)(),valid_blocks:(0,Cn.ListNode)(n({validator:"resource",params:{pool:"block"}}))},"minecraft:tree":{max_water_depth:(0,Cn.NumberNode)({integer:!0}),ignore_vines:(0,Cn.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:(0,Cn.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/trunk_placer_type"}}),base_height:(0,Cn.NumberNode)({integer:!0,min:0,max:32}),height_rand_a:(0,Cn.NumberNode)({integer:!0,min:0,max:24}),height_rand_b:(0,Cn.NumberNode)({integer:!0,min:0,max:24})},{context:"trunk_placer"}),foliage_placer:(0,Cn.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/foliage_placer_type"}}),radius:(0,On.UniformInt)({min:0,max:8,maxSpread:8}),offset:(0,On.UniformInt)({min:0,max:8,maxSpread:8}),[Cn.Switch]:[{push:"type"}],[Cn.Case]:{"minecraft:blob_foliage_placer":{height:(0,Cn.NumberNode)({integer:!0,min:0,max:16})},"minecraft:bush_foliage_placer":{height:(0,Cn.NumberNode)({integer:!0,min:0,max:16})},"minecraft:fancy_foliage_placer":{height:(0,Cn.NumberNode)({integer:!0,min:0,max:16})},"minecraft:jungle_foliage_placer":{height:(0,Cn.NumberNode)({integer:!0,min:0,max:16})},"minecraft:mega_pine_foliage_placer":{crown_height:(0,On.UniformInt)({min:0,max:16,maxSpread:8})},"minecraft:pine_foliage_placer":{height:(0,On.UniformInt)({min:0,max:16,maxSpread:8})},"minecraft:spruce_foliage_placer":{trunk_height:(0,On.UniformInt)({min:0,max:16,maxSpread:8})}}},{context:"foliage_placer",disableSwitchContext:!0}),decorators:(0,Cn.ListNode)((0,Cn.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/tree_decorator_type"}}),[Cn.Switch]:[{push:"type"}],[Cn.Case]:{"minecraft:alter_ground":{provider:i("block_state_provider")},"minecraft:beehive":{probability:(0,Cn.NumberNode)({min:0,max:1})},"minecraft:cocoa":{probability:(0,Cn.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",(0,Cn.Mod)((0,Cn.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/feature_size_type"}}),min_clipped_height:(0,Cn.Opt)((0,Cn.NumberNode)({min:0,max:80})),[Cn.Switch]:[{push:"type"}],[Cn.Case]:{"minecraft:two_layers_feature_size":{limit:(0,Cn.Opt)((0,Cn.NumberNode)({integer:!0,min:0,max:81})),lower_size:(0,Cn.Opt)((0,Cn.NumberNode)({integer:!0,min:0,max:16})),upper_size:(0,Cn.Opt)((0,Cn.NumberNode)({integer:!0,min:0,max:16}))},"minecraft:three_layers_feature_size":{limit:(0,Cn.Opt)((0,Cn.NumberNode)({integer:!0,min:0,max:80})),upper_limit:(0,Cn.Opt)((0,Cn.NumberNode)({integer:!0,min:0,max:80})),lower_size:(0,Cn.Opt)((0,Cn.NumberNode)({integer:!0,min:0,max:16})),middle_size:(0,Cn.Opt)((0,Cn.NumberNode)({integer:!0,min:0,max:16})),upper_size:(0,Cn.Opt)((0,Cn.NumberNode)({integer:!0,min:0,max:16}))}}},{disableSwitchContext:!0}),{default:()=>({type:"minecraft:two_layers_feature_size"})})),e.register("block_state_provider",(0,Cn.Mod)((0,Cn.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/block_state_provider_type"}}),[Cn.Switch]:[{push:"type"}],[Cn.Case]:{"minecraft:rotated_block_provider":{state:i("block_state")},"minecraft:simple_state_provider":{state:i("block_state")},"minecraft:weighted_state_provider":{entries:(0,Cn.ListNode)((0,Cn.Mod)((0,Cn.ObjectNode)({weight:(0,Cn.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",(0,Cn.Mod)((0,Cn.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/block_placer_type"}}),[Cn.Switch]:[{push:"type"}],[Cn.Case]:{"minecraft:column_placer":{min_size:(0,Cn.NumberNode)({integer:!0}),extra_size:(0,Cn.NumberNode)({integer:!0})}}},{context:"block_placer"}),{default:()=>({type:"minecraft:simple_block_placer"})}))};var Sn={};Object.defineProperty(Sn,"__esModule",{value:!0}),Sn.initNoiseSettingsSchemas=void 0;const En=Pe,Fn=Li;Sn.initNoiseSettingsSchemas=function(e,t){const i=En.Reference.bind(void 0,e),n=En.StringNode.bind(void 0,t);e.register("noise_settings",(0,En.Mod)((0,En.ObjectNode)({name:(0,En.Mod)(n({validator:"resource",params:{pool:"$worldgen/noise_settings",isDefinition:!0}}),{enabled:e=>e.getArray().length>0}),bedrock_roof_position:(0,En.NumberNode)({integer:!0}),bedrock_floor_position:(0,En.NumberNode)({integer:!0}),sea_level:(0,En.NumberNode)({integer:!0}),disable_mob_generation:(0,En.BooleanNode)(),default_block:i("block_state"),default_fluid:i("block_state"),noise:(0,En.ObjectNode)({height:(0,En.NumberNode)({integer:!0}),density_factor:(0,En.NumberNode)(),density_offset:(0,En.NumberNode)(),size_horizontal:(0,En.NumberNode)({integer:!0}),size_vertical:(0,En.NumberNode)({integer:!0}),simplex_surface_noise:(0,En.BooleanNode)(),random_density_offset:(0,En.Opt)((0,En.BooleanNode)()),island_noise_override:(0,En.Opt)((0,En.BooleanNode)()),amplified:(0,En.Opt)((0,En.BooleanNode)()),sampling:(0,En.ObjectNode)({xz_scale:(0,En.NumberNode)(),y_scale:(0,En.NumberNode)(),xz_factor:(0,En.NumberNode)(),y_factor:(0,En.NumberNode)()}),bottom_slide:(0,En.ObjectNode)({target:(0,En.NumberNode)({integer:!0}),size:(0,En.NumberNode)({integer:!0}),offset:(0,En.NumberNode)({integer:!0})}),top_slide:(0,En.ObjectNode)({target:(0,En.NumberNode)({integer:!0}),size:(0,En.NumberNode)({integer:!0}),offset:(0,En.NumberNode)({integer:!0})})}),structures:i("generator_structures")},{context:"noise_settings"}),{default:()=>Fn.DefaultNoiseSettings})),e.register("generator_structures",(0,En.ObjectNode)({stronghold:(0,En.Opt)((0,En.ObjectNode)({distance:(0,En.NumberNode)({integer:!0,min:0,max:1023}),spread:(0,En.NumberNode)({integer:!0,min:0,max:1023}),count:(0,En.NumberNode)({integer:!0,min:1,max:4095})})),structures:(0,En.MapNode)(n({validator:"resource",params:{pool:"worldgen/structure_feature"}}),(0,En.Mod)((0,En.ObjectNode)({spacing:(0,En.NumberNode)({integer:!0,min:0,max:4096}),separation:(0,En.Mod)((0,En.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:(0,En.NumberNode)({integer:!0,min:0})},{context:"generator_structure"}),{default:()=>({spacing:10,separation:5,salt:0})}))})),e.register("generator_layer",(0,En.Mod)((0,En.ObjectNode)({block:n({validator:"resource",params:{pool:"block"}}),height:(0,En.NumberNode)({integer:!0,min:1})}),{default:()=>({block:"minecraft:stone",height:1})}))};var Dn={};Object.defineProperty(Dn,"__esModule",{value:!0}),Dn.initStructureFeatureSchemas=void 0;const Bn=Pe;Dn.initStructureFeatureSchemas=function(e,t){const i=Bn.StringNode.bind(void 0,t),n={start_pool:i({validator:"resource",params:{pool:"$worldgen/template_pool"}}),size:(0,Bn.NumberNode)({integer:!0})};e.register("configured_structure_feature",(0,Bn.Mod)((0,Bn.ObjectNode)({type:i({validator:"resource",params:{pool:"worldgen/structure_feature"}}),config:(0,Bn.ObjectNode)({[Bn.Switch]:["pop",{push:"type"}],[Bn.Case]:{"minecraft:bastion_remnant":n,"minecraft:buried_treasure":{probability:(0,Bn.NumberNode)({min:0,max:1})},"minecraft:mineshaft":{type:i({enum:["normal","mesa"]}),probability:(0,Bn.NumberNode)({min:0,max:1})},"minecraft:ocean_ruin":{biome_temp:i({enum:["cold","warm"]}),large_probability:(0,Bn.NumberNode)({min:0,max:1}),cluster_probability:(0,Bn.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:(0,Bn.Opt)((0,Bn.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 Ln={};Object.defineProperty(Ln,"__esModule",{value:!0}),Ln.initSurfaceBuilderSchemas=void 0;const Mn=Pe;Ln.initSurfaceBuilderSchemas=function(e,t){const i=Mn.StringNode.bind(void 0,t),n=Mn.Reference.bind(void 0,e);e.register("configured_surface_builder",(0,Mn.Mod)((0,Mn.ObjectNode)({type:i({validator:"resource",params:{pool:"worldgen/surface_builder"}}),config:(0,Mn.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 Tn={};Object.defineProperty(Tn,"__esModule",{value:!0}),Tn.initTemplatePoolSchemas=void 0;const Rn=Pe;Tn.initTemplatePoolSchemas=function(e,t){const i=Rn.Reference.bind(void 0,e),n=Rn.StringNode.bind(void 0,t),r=(0,Rn.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",(0,Rn.Mod)((0,Rn.ObjectNode)({name:n(),fallback:n(),elements:(0,Rn.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",(0,Rn.Mod)((0,Rn.ObjectNode)({weight:(0,Rn.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",(0,Rn.Mod)((0,Rn.ObjectNode)({element_type:n({validator:"resource",params:{pool:"worldgen/structure_pool_element"}}),projection:n({enum:["rigid","terrain_matching"]}),[Rn.Switch]:[{push:"element_type"}],[Rn.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:(0,Rn.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(fn,"__esModule",{value:!0}),fn.initWorldgenSchemas=void 0;const $n=gn,jn=bn,In=yn,Pn=Nn,zn=Sn,Un=kn,Wn=Dn,Hn=Ln,qn=Tn;fn.initWorldgenSchemas=function(e,t){(0,$n.initBiomeSchemas)(e,t),(0,jn.initCarverSchemas)(e,t),(0,In.initDecoratorSchemas)(e,t),(0,Pn.initFeatureSchemas)(e,t),(0,zn.initNoiseSettingsSchemas)(e,t),(0,Un.initProcessorListSchemas)(e,t),(0,Wn.initStructureFeatureSchemas)(e,t),(0,Hn.initSurfaceBuilderSchemas)(e,t),(0,qn.initTemplatePoolSchemas)(e,t)};var Vn={};Object.defineProperty(Vn,"__esModule",{value:!0}),Vn.initWorldSettingsSchemas=void 0;const Gn=Pe;Vn.initWorldSettingsSchemas=function(e,t){const i=Gn.Reference.bind(void 0,e),n=Gn.StringNode.bind(void 0,t);e.register("world_settings",(0,Gn.Mod)((0,Gn.ObjectNode)({generate_features:(0,Gn.BooleanNode)(),bonus_chest:(0,Gn.BooleanNode)(),seed:(0,Gn.NumberNode)({integer:!0}),dimensions:(0,Gn.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(Di,"__esModule",{value:!0}),Di.initSchemas=void 0;const Kn=Bi,Xn=Ri,Jn=Li,Yn=Wi,Zn=Vi,Qn=Xi,er=Zi,tr=rn,ir=an,nr=ln,rr=dn,or=pn,ar=fn,sr=Vn;Di.initSchemas=function(e,t){(0,Jn.initCommonSchemas)(e,t),(0,Kn.initAdvancementSchemas)(e,t),(0,Xn.initAssetsSchemas)(e,t),(0,Yn.initConditionSchemas)(e,t),(0,Qn.initDimensionTypeSchemas)(e,t),(0,Zn.initDimensionSchemas)(e,t),(0,er.initLootTableSchemas)(e,t),(0,tr.initPackMcmetaSchemas)(e,t),(0,ir.initPredicatesSchemas)(e,t),(0,nr.initRecipeSchemas)(e,t),(0,rr.initTagsSchemas)(e,t),(0,or.initTextComponentSchemas)(e,t),(0,ar.initWorldgenSchemas)(e,t),(0,sr.initWorldSettingsSchemas)(e,t)};var cr=Ie&&Ie.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i);var r=Object.getOwnPropertyDescriptor(t,i);r&&!("get"in r?!t.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,n,r)}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),lr=Ie&&Ie.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),ur=Ie&&Ie.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&cr(t,e,i);return lr(t,e),t};Object.defineProperty(Ei,"__esModule",{value:!0});var dr=Ei.getSchemas=Ei.getCollections=Ei.lootContext=void 0;const hr=Pe,pr=Fi,mr=Di;var fr=Ei.lootContext=ur(Qi);var gr=Ei.getCollections=function(){const e=new hr.CollectionRegistry;return(0,pr.initCollections)(e),e};dr=Ei.getSchemas=function(e){const t=new hr.SchemaRegistry;return(0,mr.initSchemas)(t,e),t};var _r=Object.freeze(Object.assign(Object.create(null),Ei,{[Symbol.toStringTag]:"Module",get getSchemas(){return dr},get getCollections(){return gr},get lootContext(){return fr},default:Ei})),br={},vr={};Object.defineProperty(vr,"__esModule",{value:!0}),vr.initCollections=void 0,vr.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"]),e.register("cat_texture",["textures/entity/cat/tabby.png","textures/entity/cat/black.png","textures/entity/cat/red.png","textures/entity/cat/siamese.png","textures/entity/cat/british_shorthair.png","textures/entity/cat/calico.png","textures/entity/cat/persian.png","textures/entity/cat/ragdoll.png","textures/entity/cat/white.png","textures/entity/cat/jellie.png","textures/entity/cat/all_black.png"])};var yr={},wr={};Object.defineProperty(wr,"__esModule",{value:!0}),wr.initAdvancementSchemas=void 0;const xr=Pe;wr.initAdvancementSchemas=function(e,t){const i=xr.Reference.bind(void 0,e),n=xr.StringNode.bind(void 0,t),r=(0,xr.ChoiceNode)([{type:"object",node:(0,xr.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:(0,xr.ListNode)(i("condition")),change:e=>[{condition:"minecraft:entity_properties",predicate:e}]}],{context:"conditions"});e.register("advancement",(0,xr.Mod)((0,xr.ObjectNode)({display:(0,xr.Opt)((0,xr.Mod)((0,xr.ObjectNode)({icon:(0,xr.ObjectNode)({item:n({validator:"resource",params:{pool:"item"}}),nbt:(0,xr.Opt)(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:i("text_component"),description:i("text_component"),background:(0,xr.Opt)(n()),frame:(0,xr.Opt)(n({enum:["task","challenge","goal"]})),show_toast:(0,xr.Opt)((0,xr.BooleanNode)()),announce_to_chat:(0,xr.Opt)((0,xr.BooleanNode)()),hidden:(0,xr.Opt)((0,xr.BooleanNode)())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:(0,xr.Opt)(n({validator:"resource",params:{pool:"$advancement"}})),criteria:(0,xr.MapNode)(n(),i("advancement_criteria")),requirements:(0,xr.Opt)((0,xr.ListNode)((0,xr.ListNode)(n()))),rewards:(0,xr.Opt)((0,xr.ObjectNode)({function:(0,xr.Opt)(n({validator:"resource",params:{pool:"$function"}})),loot:(0,xr.Opt)((0,xr.ListNode)(n({validator:"resource",params:{pool:"$loot_table"}}))),recipes:(0,xr.Opt)((0,xr.ListNode)(n({validator:"resource",params:{pool:"$recipe"}}))),experience:(0,xr.Opt)((0,xr.NumberNode)({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),e.register("advancement_criteria",(0,xr.ObjectNode)({trigger:n({validator:"resource",params:{pool:t.get("advancement_trigger")}}),conditions:(0,xr.Opt)((0,xr.ObjectNode)({player:(0,xr.Mod)(r,{enabled:e=>"minecraft:impossible"!==e.pop().push("trigger").get()}),[xr.Switch]:["pop",{push:"trigger"}],[xr.Case]:{"minecraft:bee_nest_destroyed":{block:(0,xr.Opt)(n({validator:"resource",params:{pool:"block"}})),num_bees_inside:(0,xr.Opt)((0,xr.NumberNode)({integer:!0})),item:(0,xr.Opt)(i("item_predicate"))},"minecraft:bred_animals":{parent:r,partner:r,child:r},"minecraft:brewed_potion":{potion:(0,xr.Opt)(n({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:(0,xr.Opt)(n({validator:"resource",params:{pool:"$dimension"}})),to:(0,xr.Opt)(n({validator:"resource",params:{pool:"$dimension"}}))},"minecraft:channeled_lightning":{victims:(0,xr.Opt)((0,xr.ListNode)(r))},"minecraft:construct_beacon":{level:i("int_bounds")},"minecraft:consume_item":{item:(0,xr.Opt)(i("item_predicate"))},"minecraft:cured_zombie_villager":{villager:r,zombie:r},"minecraft:effects_changed":{effects:(0,xr.Opt)((0,xr.MapNode)(n({validator:"resource",params:{pool:"mob_effect"}}),(0,xr.ObjectNode)({amplifier:i("int_bounds"),duration:i("int_bounds")}))),source:(0,xr.Opt)(r)},"minecraft:enter_block":{block:(0,xr.Opt)(n({validator:"resource",params:{pool:"block"}})),state:(0,xr.Opt)((0,xr.MapNode)(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:i("int_bounds"),item:(0,xr.Opt)(i("item_predicate"))},"minecraft:entity_hurt_player":{damage:(0,xr.Opt)(i("damage_predicate"))},"minecraft:entity_killed_player":{entity:r,killing_blow:(0,xr.Opt)(i("damage_source_predicate"))},"minecraft:filled_bucket":{item:(0,xr.Opt)(i("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:r,item:(0,xr.Opt)(i("item_predicate"))},"minecraft:hero_of_the_village":{location:(0,xr.Opt)(i("location_predicate"))},"minecraft:inventory_changed":{slots:(0,xr.Opt)((0,xr.ObjectNode)({empty:i("int_bounds"),occupied:i("int_bounds"),full:i("int_bounds")})),items:(0,xr.Opt)((0,xr.ListNode)(i("item_predicate")))},"minecraft:item_durability_changed":{delta:i("int_bounds"),durability:i("int_bounds"),item:(0,xr.Opt)(i("item_predicate"))},"minecraft:item_used_on_block":{item:(0,xr.Opt)(i("item_predicate")),location:(0,xr.Opt)(i("location_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:i("int_bounds"),victims:(0,xr.Opt)((0,xr.ListNode)(r))},"minecraft:levitation":{distance:i("distance_predicate"),duration:i("int_bounds")},"minecraft:lightning_strike":{lightning:r,bystander:r},"minecraft:location":{location:(0,xr.Opt)(i("location_predicate"))},"minecraft:nether_travel":{distance:i("distance_predicate"),entered:(0,xr.Opt)(i("location_predicate")),exited:(0,xr.Opt)(i("location_predicate"))},"minecraft:placed_block":{block:(0,xr.Opt)(n({validator:"resource",params:{pool:"block"}})),state:(0,xr.Opt)((0,xr.MapNode)(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:(0,xr.Opt)(i("item_predicate")),location:(0,xr.Opt)(i("location_predicate"))},"minecraft:player_generates_container_loot":{loot_table:n({validator:"resource",params:{pool:"$loot_table"}})},"minecraft:player_hurt_entity":{damage:(0,xr.Opt)(i("damage_predicate")),entity:r},"minecraft:player_interacted_with_entity":{item:(0,xr.Opt)(i("item_predicate")),entity:r},"minecraft:player_killed_entity":{entity:r,killing_blow:(0,xr.Opt)(i("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:n({validator:"resource",params:{pool:"$recipe"}})},"minecraft:slept_in_bed":{location:(0,xr.Opt)(i("location_predicate"))},"minecraft:slide_down_block":{block:(0,xr.Opt)(n({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:(0,xr.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:r,item:(0,xr.Opt)(i("item_predicate"))},"minecraft:used_ender_eye":{distance:i("float_bounds")},"minecraft:used_totem":{item:(0,xr.Opt)(i("item_predicate"))},"minecraft:using_item":{item:(0,xr.Opt)(i("item_predicate"))},"minecraft:villager_trade":{villager:r,item:(0,xr.Opt)(i("item_predicate"))},"minecraft:voluntary_exile":{location:i("location_predicate")}}},{context:"criterion"}))},{category:"predicate",context:"criterion"}))};var Nr={},kr={};Object.defineProperty(kr,"__esModule",{value:!0}),kr.initModelSchemas=void 0;const Ar=Pe;kr.initModelSchemas=function(e,t){Ar.Reference.bind(void 0,e);const i=Ar.StringNode.bind(void 0,t),n=(e,t,i)=>(0,Ar.ListNode)((0,Ar.NumberNode)({min:t,max:i}),{minLength:e,maxLength:e}),r=(0,Ar.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",(0,Ar.Mod)((0,Ar.ObjectNode)({parent:(0,Ar.Opt)(i({validator:"resource",params:{pool:"$model"}})),ambientocclusion:(0,Ar.Opt)((0,Ar.BooleanNode)()),gui_light:(0,Ar.Opt)(i({enum:"gui_light"})),textures:(0,Ar.Opt)((0,Ar.MapNode)(i(),r)),elements:(0,Ar.Opt)((0,Ar.ListNode)((0,Ar.ObjectNode)({from:n(3,-16,32),to:n(3,-16,32),rotation:(0,Ar.Opt)((0,Ar.ObjectNode)({origin:n(3),axis:i({enum:"axis"}),angle:(0,Ar.NumberEnum)({values:[-45,-22.5,0,22.5,45]}),rescale:(0,Ar.Opt)((0,Ar.BooleanNode)())})),shade:(0,Ar.Opt)((0,Ar.BooleanNode)()),faces:(0,Ar.MapNode)(i({enum:"direction"}),(0,Ar.ObjectNode)({texture:r,uv:(0,Ar.Opt)(n(4)),cullface:(0,Ar.Opt)(i({enum:"direction"})),rotation:(0,Ar.Opt)((0,Ar.NumberNode)({integer:!0})),tintindex:(0,Ar.Opt)((0,Ar.NumberNode)({integer:!0}))}))},{context:"model_element"}))),display:(0,Ar.Opt)((0,Ar.MapNode)(i({enum:"display_position"}),(0,Ar.ObjectNode)({rotation:n(3),translation:n(3,-80,80),scale:n(3,-4,4)},{context:"item_transform"}))),overrides:(0,Ar.Opt)((0,Ar.ListNode)((0,Ar.ObjectNode)({predicate:(0,Ar.MapNode)(i({enum:"item_model_predicates"}),(0,Ar.NumberNode)()),model:i({validator:"resource",params:{pool:"$model"}})},{context:"model_override"})))},{context:"model"}),{default:()=>({parent:"minecraft:item/generated",textures:{layer0:"minecraft:item/diamond"}})}))};var Cr={};Object.defineProperty(Cr,"__esModule",{value:!0}),Cr.initBlockDefinitionSchemas=void 0;const Or=Pe;Cr.initBlockDefinitionSchemas=function(e,t){const i=Or.Reference.bind(void 0,e),n=Or.StringNode.bind(void 0,t);e.register("block_definition",(0,Or.Mod)((0,Or.ChoiceNode)([{type:"variants",match:e=>void 0!==e.variants,node:(0,Or.ObjectNode)({variants:(0,Or.MapNode)(n(),i("model_variant"))}),change:e=>({variants:{"":{}}})},{type:"multipart",match:e=>void 0!==e.multipart,node:(0,Or.ObjectNode)({multipart:(0,Or.ListNode)((0,Or.ObjectNode)({when:(0,Or.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:(0,Or.Opt)((0,Or.NumberEnum)({integer:!0,values:[0,90,180,270]})),y:(0,Or.Opt)((0,Or.NumberEnum)({integer:!0,values:[0,90,180,270]})),uvlock:(0,Or.Opt)((0,Or.BooleanNode)())};e.register("model_variant",(0,Or.ChoiceNode)([{type:"object",node:(0,Or.ObjectNode)(r),change:e=>Array.isArray(e)&&e.length>0?e[0]:{}},{type:"list",node:(0,Or.ListNode)((0,Or.ObjectNode)(c(s({},r),{weight:(0,Or.Opt)((0,Or.NumberNode)({integer:!0,min:1}))}),{context:"model_variant"})),change:e=>[s({weight:1},e)]}],{context:"model_variant"})),e.register("multipart_condition",(0,Or.ChoiceNode)([{type:"object",priority:-1,match:()=>!0,node:(0,Or.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:(0,Or.ObjectNode)({OR:(0,Or.ListNode)(i("multipart_condition"))}),change:e=>({OR:[null!=e?e:{}]})}],{context:"multipart_condition"}))},Object.defineProperty(Nr,"__esModule",{value:!0}),Nr.initAssetsSchemas=void 0;const Sr=kr,Er=Cr;Nr.initAssetsSchemas=function(e,t){(0,Er.initBlockDefinitionSchemas)(e,t),(0,Sr.initModelSchemas)(e,t)};var Fr={};!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=Pe;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",(0,t.Mod)((0,t.ObjectNode)({Name:r({validator:"resource",params:{pool:"block"}}),Properties:(0,t.Opt)((0,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",(0,t.Mod)((0,t.ObjectNode)({Name:r({validator:"resource",params:{pool:"fluid"}}),Properties:(0,t.Opt)((0,t.MapNode)(r(),r()))},{context:"fluid_state"}),{default:()=>({Name:"minecraft:water",Properties:{level:"0"}})})),i.register("block_pos",(0,t.Mod)((0,t.ListNode)((0,t.NumberNode)({integer:!0}),{minLength:3,maxLength:3}),{default:()=>[0,0,0]}));const a=e=>(0,t.Opt)((0,t.ChoiceNode)([{type:"number",node:(0,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:(0,t.ObjectNode)({min:(0,t.Opt)((0,t.NumberNode)({integer:e})),max:(0,t.Opt)((0,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",(0,t.ChoiceNode)([{type:"object",node:(0,t.ObjectNode)({min:(0,t.Opt)(o("number_provider")),max:(0,t.Opt)(o("number_provider"))})},{type:"number",node:(0,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]=(0,t.Mod)(l[a][e],{enabled:e=>void 0===e.push("type").get()})}));const d=(0,t.ObjectNode)(s({type:(0,t.Mod)((0,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})})})),(0,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:(0,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:(0,t.Opt)((0,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:(0,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:(0,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:(0,t.NumberNode)(e)},"minecraft:uniform":{value:(0,t.ObjectNode)({min_inclusive:(0,t.NumberNode)(e),max_exclusive:(0,t.NumberNode)(e)})},"minecraft:clamped_normal":{value:(0,t.ObjectNode)({min:(0,t.NumberNode)(),max:(0,t.NumberNode)(),mean:(0,t.NumberNode)(),deviation:(0,t.NumberNode)()})},"minecraft:trapezoid":{value:(0,t.ObjectNode)({min:(0,t.NumberNode)(),max:(0,t.NumberNode)(),plateau:(0,t.NumberNode)()})}}),i.register("float_provider",(0,e.FloatProvider)()),e.IntProvider=e=>c("int_provider_type","number","value","minecraft:constant",null,"int_provider",{"minecraft:constant":{value:(0,t.NumberNode)(s({integer:!0},e))},"minecraft:uniform":{value:(0,t.ObjectNode)({min_inclusive:(0,t.NumberNode)(s({integer:!0},e)),max_inclusive:(0,t.NumberNode)(s({integer:!0},e))})},"minecraft:biased_to_bottom":{value:(0,t.ObjectNode)({min_inclusive:(0,t.NumberNode)(s({integer:!0},e)),max_inclusive:(0,t.NumberNode)(s({integer:!0},e))})},"minecraft:clamped":{value:(0,t.ObjectNode)({min_inclusive:(0,t.NumberNode)(s({integer:!0},e)),max_inclusive:(0,t.NumberNode)(s({integer:!0},e)),source:o("int_provider")})}}),i.register("int_provider",(0,e.IntProvider)()),i.register("vertical_anchor",(0,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:(0,t.ObjectNode)({[e]:(0,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:(0,t.Opt)((0,t.NumberNode)({integer:!0,min:1}))},"minecraft:very_biased_to_bottom":{min_inclusive:o("vertical_anchor"),max_inclusive:o("vertical_anchor"),inner:(0,t.Opt)((0,t.NumberNode)({integer:!0,min:1}))},"minecraft:trapezoid":{min_inclusive:o("vertical_anchor"),max_inclusive:o("vertical_anchor"),plateau:(0,t.Opt)((0,t.NumberNode)({integer:!0}))}})),e.ConditionCases=(e=r({enum:"entity_source"}))=>({"minecraft:alternative":{terms:(0,t.ListNode)(o("condition"))},"minecraft:block_state_property":{block:r({validator:"resource",params:{pool:"block"}}),properties:(0,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:(0,t.MapNode)(r({validator:"objective"}),o("int_range"))},"minecraft:inverted":{term:o("condition")},"minecraft:killed_by_player":{inverse:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:location_check":{offsetX:(0,t.Opt)((0,t.NumberNode)({integer:!0})),offsetY:(0,t.Opt)((0,t.NumberNode)({integer:!0})),offsetZ:(0,t.Opt)((0,t.NumberNode)({integer:!0})),predicate:o("location_predicate")},"minecraft:match_tool":{predicate:o("item_predicate")},"minecraft:random_chance":{chance:(0,t.NumberNode)({min:0,max:1})},"minecraft:random_chance_with_looting":{chance:(0,t.NumberNode)({min:0,max:1}),looting_multiplier:(0,t.NumberNode)()},"minecraft:reference":{name:r({validator:"resource",params:{pool:"$predicate"}})},"minecraft:table_bonus":{enchantment:r({validator:"resource",params:{pool:"enchantment"}}),chances:(0,t.ListNode)((0,t.NumberNode)({min:0,max:1}))},"minecraft:time_check":{value:o("int_range"),period:(0,t.Opt)((0,t.NumberNode)({integer:!0}))},"minecraft:value_check":{value:o("number_provider"),range:o("int_range")},"minecraft:weather_check":{raining:(0,t.Opt)((0,t.BooleanNode)()),thundering:(0,t.Opt)((0,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:(0,t.Mod)((0,t.ObjectNode)({bonusMultiplier:(0,t.Mod)((0,t.NumberNode)(),{enabled:e=>"minecraft:uniform_bonus_count"===e.pop().push("formula").get()}),extra:(0,t.Mod)((0,t.NumberNode)(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()}),probability:(0,t.Mod)((0,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:(0,t.ListNode)((0,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:(0,t.ListNode)(r({validator:"block_state_key",params:{id:["pop","pop",{push:"block"}]}}))},"minecraft:enchant_randomly":{enchantments:(0,t.Opt)((0,t.ListNode)(r({validator:"resource",params:{pool:"enchantment"}})))},"minecraft:enchant_with_levels":{levels:o("number_provider"),treasure:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:exploration_map":{destination:(0,t.Opt)(r({enum:"map_feature"})),decoration:(0,t.Opt)(r({enum:"map_decoration"})),zoom:(0,t.Opt)((0,t.NumberNode)({integer:!0})),search_radius:(0,t.Opt)((0,t.NumberNode)({integer:!0})),skip_existing_chunks:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:fill_player_head":{entity:a},"minecraft:limit_count":{limit:o("int_range")},"minecraft:looting_enchant":{count:o("number_provider"),limit:(0,t.Opt)((0,t.NumberNode)({integer:!0}))},"minecraft:set_attributes":{modifiers:(0,t.ListNode)(o("attribute_modifier"))},"minecraft:set_banner_pattern":{patterns:(0,t.ListNode)((0,t.ObjectNode)({pattern:r({enum:"banner_pattern"}),color:r({enum:"dye_color"})})),append:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:set_contents":{entries:(0,t.ListNode)(o("loot_entry"))},"minecraft:set_count":{count:o("number_provider"),add:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:set_damage":{damage:o("number_provider"),add:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:set_enchantments":{enchantments:(0,t.MapNode)(r({validator:"resource",params:{pool:"enchantment"}}),o("number_provider")),add:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:set_loot_table":{name:r({validator:"resource",params:{pool:"$loot_table"}}),seed:(0,t.Opt)((0,t.NumberNode)({integer:!0}))},"minecraft:set_lore":{entity:(0,t.Opt)(a),lore:(0,t.ListNode)(o("text_component")),replace:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:set_name":{entity:(0,t.Opt)(a),name:(0,t.Opt)(o("text_component"))},"minecraft:set_nbt":{tag:r({validator:"nbt",params:{registry:{category:"minecraft:item"}}})},"minecraft:set_stew_effect":{effects:(0,t.Opt)((0,t.ListNode)((0,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=>(0,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=>(0,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"}}}})}}(Fr);var Dr={};Object.defineProperty(Dr,"__esModule",{value:!0}),Dr.initConditionSchemas=void 0;const Br=Pe,Lr=Fr;Dr.initConditionSchemas=function(e,t){const i=Br.Reference.bind(void 0,e),n=Br.StringNode.bind(void 0,t);e.register("predicate",(0,Br.ObjectOrList)(i("condition"),{choiceContext:"condition"})),e.register("condition",(0,Br.Mod)((0,Br.ObjectNode)({condition:n({validator:"resource",params:{pool:"loot_condition_type"}}),[Br.Switch]:[{push:"condition"}],[Br.Case]:(0,Lr.ConditionCases)()},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:entity_properties",entity:"this"})}))};var Mr={};Object.defineProperty(Mr,"__esModule",{value:!0}),Mr.initDimensionSchemas=void 0;const Tr=Pe,Rr=Fr;Mr.initDimensionSchemas=function(e,t){const i=Tr.Reference.bind(void 0,e),n=Tr.StringNode.bind(void 0,t),r=e=>(0,Tr.Mod)(e,{enabled:e=>void 0===e.push("preset").get()});e.register("dimension",(0,Tr.Mod)((0,Tr.ObjectNode)({type:(0,Rr.DimensionTypePresets)(i("dimension_type")),generator:(0,Tr.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/chunk_generator"}}),[Tr.Switch]:[{push:"type"}],[Tr.Case]:{"minecraft:noise":{seed:(0,Tr.NumberNode)({integer:!0}),settings:(0,Rr.NoiseSettingsPresets)(i("noise_settings")),biome_source:(0,Tr.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/biome_source"}}),[Tr.Switch]:[{push:"type"}],[Tr.Case]:{"minecraft:fixed":{biome:n({validator:"resource",params:{pool:"$worldgen/biome"}})},"minecraft:multi_noise":{seed:(0,Tr.NumberNode)({integer:!0}),preset:(0,Tr.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((0,Tr.Mod)((0,Tr.ListNode)(i("generator_biome")),{default:()=>[{biome:"minecraft:plains"}]}))},"minecraft:checkerboard":{scale:(0,Tr.Opt)((0,Tr.NumberNode)({integer:!0,min:0,max:62})),biomes:(0,Tr.ListNode)(n({validator:"resource",params:{pool:"$worldgen/biome"}}))},"minecraft:the_end":{seed:(0,Tr.NumberNode)({integer:!0})},"minecraft:vanilla_layered":{seed:(0,Tr.NumberNode)({integer:!0}),large_biomes:(0,Tr.Opt)((0,Tr.BooleanNode)()),legacy_biome_init_layer:(0,Tr.Opt)((0,Tr.BooleanNode)())}}},{category:"predicate",disableSwitchContext:!0})},"minecraft:flat":{settings:(0,Tr.ObjectNode)({biome:(0,Tr.Opt)(n({validator:"resource",params:{pool:"$worldgen/biome"}})),lakes:(0,Tr.Opt)((0,Tr.BooleanNode)()),features:(0,Tr.Opt)((0,Tr.BooleanNode)()),layers:(0,Tr.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",(0,Tr.Mod)((0,Tr.ObjectNode)({biome:n({validator:"resource",params:{pool:"$worldgen/biome"}}),parameters:(0,Tr.ObjectNode)({altitude:(0,Tr.NumberNode)(),temperature:(0,Tr.NumberNode)(),humidity:(0,Tr.NumberNode)(),weirdness:(0,Tr.NumberNode)(),offset:(0,Tr.NumberNode)()})},{context:"generator_biome"}),{default:()=>({biome:"minecraft:plains",parameters:{altitude:0,temperature:0,humidity:0,weirdness:0,offset:0}})})),e.register("generator_biome_noise",(0,Tr.Mod)((0,Tr.ObjectNode)({firstOctave:(0,Tr.NumberNode)({integer:!0}),amplitudes:(0,Tr.ListNode)((0,Tr.NumberNode)())},{context:"generator_biome_noise"}),{default:()=>({firstOctave:-7,amplitudes:[1,1]})}))};var $r={};Object.defineProperty($r,"__esModule",{value:!0}),$r.initDimensionTypeSchemas=void 0;const jr=Pe,Ir=Fr;$r.initDimensionTypeSchemas=function(e,t){const i=jr.StringNode.bind(void 0,t);e.register("dimension_type",(0,jr.Mod)((0,jr.ObjectNode)({name:(0,jr.Mod)(i({validator:"resource",params:{pool:"$dimension_type",isDefinition:!0}}),{enabled:e=>e.getArray().length>0}),ultrawarm:(0,jr.BooleanNode)(),natural:(0,jr.BooleanNode)(),piglin_safe:(0,jr.BooleanNode)(),respawn_anchor_works:(0,jr.BooleanNode)(),bed_works:(0,jr.BooleanNode)(),has_raids:(0,jr.BooleanNode)(),has_skylight:(0,jr.BooleanNode)(),has_ceiling:(0,jr.BooleanNode)(),coordinate_scale:(0,jr.NumberNode)({min:1e-5,max:3e7}),ambient_light:(0,jr.NumberNode)(),fixed_time:(0,jr.Opt)((0,jr.NumberNode)({integer:!0})),logical_height:(0,jr.NumberNode)({integer:!0,min:0,max:4096}),effects:(0,jr.Opt)(i({enum:["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]})),infiniburn:i({validator:"resource",params:{pool:"$tag/block"}}),min_y:(0,jr.NumberNode)({integer:!0,min:-2048,max:2047}),height:(0,jr.NumberNode)({integer:!0,min:0,max:4096})},{context:"dimension_type"}),(e=>({default:()=>Ir.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 Pr={};Object.defineProperty(Pr,"__esModule",{value:!0}),Pr.initItemModifierSchemas=void 0;const zr=Pe,Ur=Fr;Pr.initItemModifierSchemas=function(e,t){const i=zr.Reference.bind(void 0,e),n=zr.StringNode.bind(void 0,t);e.register("item_modifier",(0,zr.ObjectOrList)(i("function"),{choiceContext:"function"}));const r={conditions:(0,zr.Opt)((0,zr.ListNode)(i("condition")))};e.register("function",(0,zr.Mod)((0,zr.ObjectNode)({function:n({validator:"resource",params:{pool:"loot_function_type"}}),[zr.Switch]:[{push:"function"}],[zr.Case]:(0,Ur.FunctionCases)(r)},{category:"function",context:"function"}),{default:()=>[{function:"minecraft:set_count",count:1}]}))};var Wr={},Hr={};Object.defineProperty(Hr,"__esModule",{value:!0}),Hr.LootFunctions=Hr.LootConditions=Hr.LootCopySources=Hr.LootEntitySources=Hr.LootTableTypes=void 0,Hr.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]}]]),Hr.LootEntitySources=new Map([["direct_killer",[3]],["killer",[5]],["killer_player",[5]],["this",[8]]]),Hr.LootCopySources=new Map([["block_entity",[0]],["killer",[5]],["killer_player",[5]],["this",[8]]]),Hr.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",[]]]),Hr.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(Wr,"__esModule",{value:!0}),Wr.initLootTableSchemas=void 0;const qr=Pe,Vr=Hr,Gr=Fr;Wr.initLootTableSchemas=function(e,t){const i=qr.Reference.bind(void 0,e),n=qr.StringNode.bind(void 0,t),r={conditions:(0,qr.Opt)((0,qr.ListNode)(i("loot_condition")))},o=s({functions:(0,qr.Opt)((0,qr.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 Vr.LootTableTypes){const e=[...a,...s];r.push({match:e=>e.getModel().get(new qr.Path(["type"]))===t,node:n(o(e))})}return r.push({match:e=>!0,node:n(i)}),(0,qr.SwitchNode)(r)}const c=a(Vr.LootConditions,"loot_condition_type",(e=>n({validator:"resource",params:{pool:e instanceof Array?e:"loot_condition_type"}}))),l=a(Vr.LootFunctions,"loot_function_type",(e=>n({validator:"resource",params:{pool:e instanceof Array?e:"loot_function_type"}}))),u=a(Vr.LootEntitySources,"entity_source",(e=>n({enum:e}))),d=a(Vr.LootCopySources,"copy_source",(e=>n({enum:e})));e.register("loot_table",(0,qr.Mod)((0,qr.ObjectNode)({type:(0,qr.Opt)(n({validator:"resource",params:{pool:t.get("loot_context_type")}})),pools:(0,qr.Opt)((0,qr.ListNode)((0,qr.Mod)((0,qr.ObjectNode)(s({rolls:i("number_provider"),bonus_rolls:(0,qr.Opt)(i("number_provider")),entries:(0,qr.ListNode)(i("loot_entry"))},o),{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:(0,qr.Opt)((0,qr.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",(0,qr.Mod)((0,qr.ObjectNode)({type:n({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:(0,qr.Opt)((0,qr.Mod)((0,qr.NumberNode)({integer:!0,min:1}),h)),quality:(0,qr.Opt)((0,qr.Mod)((0,qr.NumberNode)({integer:!0}),h)),[qr.Switch]:[{push:"type"}],[qr.Case]:{"minecraft:alternatives":s({children:(0,qr.ListNode)(i("loot_entry"))},o),"minecraft:dynamic":s({name:n()},o),"minecraft:group":s({children:(0,qr.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:(0,qr.ListNode)(i("loot_entry"))},o),"minecraft:tag":s({name:n({validator:"resource",params:{pool:"$tag/item"}}),expand:(0,qr.Opt)((0,qr.BooleanNode)())},o)}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),e.register("loot_function",(0,qr.Mod)((0,qr.ObjectNode)({function:l,[qr.Switch]:[{push:"function"}],[qr.Case]:(0,Gr.FunctionCases)(r,d,u)},{category:"function",context:"function"}),{default:()=>({function:"minecraft:set_count",count:1})})),e.register("loot_condition",(0,qr.Mod)((0,qr.ObjectNode)({condition:c,[qr.Switch]:[{push:"condition"}],[qr.Case]:(0,Gr.ConditionCases)(u)},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),e.register("attribute_modifier",(0,qr.Mod)((0,qr.ObjectNode)({attribute:n({validator:"resource",params:{pool:"attribute"}}),name:n(),amount:i("number_provider"),operation:n({enum:["addition","multiply_base","multiply_total"]}),slot:(0,qr.StringOrList)(n({enum:"slot"}))},{context:"attribute_modifier"}),{default:()=>({attribute:"minecraft:generic.max_health",name:"",amount:1,operation:"addition",slot:"mainhand"})}))};var Kr={};Object.defineProperty(Kr,"__esModule",{value:!0}),Kr.initPackMcmetaSchemas=void 0;const Xr=Pe;Kr.initPackMcmetaSchemas=function(e,t){e.register("pack_mcmeta",(0,Xr.Mod)((0,Xr.ObjectNode)({pack:(0,Xr.Mod)((0,Xr.ObjectNode)({pack_format:(0,Xr.Mod)((0,Xr.NumberNode)({integer:!0,min:7,max:7}),{default:()=>7,canUpdate:(e,t)=>7!==t,update:()=>[{name:"pack_format",params:[7],newValue:7}]}),description:(0,Xr.Reference)(e,"text_component")}),{default:()=>({pack_format:7,description:""})})}),{default:()=>({pack:{pack_format:7,description:""}})}))};var Jr={};Object.defineProperty(Jr,"__esModule",{value:!0}),Jr.initPredicatesSchemas=void 0;const Yr=Pe;Jr.initPredicatesSchemas=function(e,t){const i=Yr.Reference.bind(void 0,e),n=Yr.StringNode.bind(void 0,t),r=(0,Yr.ChoiceNode)([{type:"string",node:n(),change:e=>"boolean"==typeof e||"number"==typeof e?e.toString():""},{type:"number",node:(0,Yr.NumberNode)(),change:e=>"string"==typeof e?parseInt(e):0},{type:"object",node:(0,Yr.ObjectNode)({min:(0,Yr.Opt)((0,Yr.NumberNode)({integer:!0})),max:(0,Yr.Opt)((0,Yr.NumberNode)({integer:!0}))}),change:e=>"number"==typeof e?{min:e,max:e}:{}},{type:"boolean",node:(0,Yr.BooleanNode)(),change:e=>"true"===e||1===e}]);e.register("item_predicate",(0,Yr.ObjectNode)({items:(0,Yr.Opt)((0,Yr.ListNode)(n({validator:"resource",params:{pool:"item"}}))),tag:(0,Yr.Opt)(n({validator:"resource",params:{pool:"$tag/item"}})),count:i("int_bounds"),durability:i("int_bounds"),potion:(0,Yr.Opt)(n({validator:"resource",params:{pool:"potion"}})),nbt:(0,Yr.Opt)(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:(0,Yr.Opt)((0,Yr.ListNode)(i("enchantment_predicate")))},{context:"item"})),e.register("enchantment_predicate",(0,Yr.ObjectNode)({enchantment:(0,Yr.Opt)(n({validator:"resource",params:{pool:"enchantment"}})),levels:i("int_bounds")},{context:"enchantment"})),e.register("block_predicate",(0,Yr.ObjectNode)({blocks:(0,Yr.Opt)((0,Yr.ListNode)(n({validator:"resource",params:{pool:"block"}}))),tag:(0,Yr.Opt)(n({validator:"resource",params:{pool:"$tag/block"}})),nbt:(0,Yr.Opt)(n({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:(0,Yr.Opt)((0,Yr.MapNode)(n(),r,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),e.register("fluid_predicate",(0,Yr.ObjectNode)({fluid:(0,Yr.Opt)(n({validator:"resource",params:{pool:"fluid"}})),tag:(0,Yr.Opt)(n({validator:"resource",params:{pool:"$tag/fluid"}})),state:(0,Yr.Opt)((0,Yr.MapNode)(n(),r))},{context:"fluid"})),e.register("location_predicate",(0,Yr.ObjectNode)({position:(0,Yr.Opt)((0,Yr.ObjectNode)({x:i("float_bounds"),y:i("float_bounds"),z:i("float_bounds")})),biome:(0,Yr.Opt)(n({validator:"resource",params:{pool:"$worldgen/biome"}})),feature:(0,Yr.Opt)(n({enum:t.get("worldgen/structure_feature").map((e=>e.slice(10)))})),dimension:(0,Yr.Opt)(n({validator:"resource",params:{pool:"$dimension"}})),light:(0,Yr.Opt)((0,Yr.ObjectNode)({light:i("int_bounds")})),smokey:(0,Yr.Opt)((0,Yr.BooleanNode)()),block:(0,Yr.Opt)(i("block_predicate")),fluid:(0,Yr.Opt)(i("fluid_predicate"))},{context:"location"})),e.register("statistic_predicate",(0,Yr.ObjectNode)({type:n({validator:"resource",params:{pool:"stat_type"}}),stat:n(),value:i("int_bounds"),[Yr.Switch]:[{push:"type"}],[Yr.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",(0,Yr.ObjectNode)({gamemode:(0,Yr.Opt)(n({enum:"gamemode"})),level:i("int_bounds"),advancements:(0,Yr.Opt)((0,Yr.MapNode)(n({validator:"resource",params:{pool:"$advancement"}}),(0,Yr.ChoiceNode)([{type:"boolean",node:(0,Yr.BooleanNode)(),change:e=>!0},{type:"object",node:(0,Yr.MapNode)(n(),(0,Yr.BooleanNode)())}]))),recipes:(0,Yr.Opt)((0,Yr.MapNode)(n({validator:"resource",params:{pool:"$recipe"}}),(0,Yr.BooleanNode)())),stats:(0,Yr.Opt)((0,Yr.ListNode)(i("statistic_predicate"))),looking_at:(0,Yr.Opt)(i("entity_predicate"))},{context:"player"})),e.register("status_effect_predicate",(0,Yr.ObjectNode)({amplifier:i("int_bounds"),duration:i("int_bounds"),ambient:(0,Yr.Opt)((0,Yr.BooleanNode)()),visible:(0,Yr.Opt)((0,Yr.BooleanNode)())},{context:"status_effect"})),e.register("distance_predicate",(0,Yr.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",(0,Yr.ObjectNode)({type:(0,Yr.Opt)(n({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),nbt:(0,Yr.Opt)(n({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:(0,Yr.Opt)(n({validator:"team"})),location:(0,Yr.Opt)(i("location_predicate")),stepping_on:(0,Yr.Opt)(i("location_predicate")),distance:(0,Yr.Opt)(i("distance_predicate")),flags:(0,Yr.Opt)((0,Yr.ObjectNode)({is_on_fire:(0,Yr.Opt)((0,Yr.BooleanNode)()),is_sneaking:(0,Yr.Opt)((0,Yr.BooleanNode)()),is_sprinting:(0,Yr.Opt)((0,Yr.BooleanNode)()),is_swimming:(0,Yr.Opt)((0,Yr.BooleanNode)()),is_baby:(0,Yr.Opt)((0,Yr.BooleanNode)())})),equipment:(0,Yr.Opt)((0,Yr.MapNode)(n({enum:"slot"}),i("item_predicate"))),vehicle:(0,Yr.Opt)(i("entity_predicate")),passenger:(0,Yr.Opt)(i("entity_predicate")),targeted_entity:(0,Yr.Opt)(i("entity_predicate")),player:(0,Yr.Opt)(i("player_predicate")),lightning_bolt:(0,Yr.Opt)((0,Yr.ObjectNode)({blocks_set_on_fire:(0,Yr.Opt)(i("int_bounds")),entity_struck:(0,Yr.Opt)(i("entity_predicate"))})),fishing_hook:(0,Yr.Opt)((0,Yr.ObjectNode)({in_open_water:(0,Yr.Opt)((0,Yr.BooleanNode)())})),catType:(0,Yr.Opt)(n({enum:"cat_texture"})),effects:(0,Yr.Opt)((0,Yr.MapNode)(n({validator:"resource",params:{pool:"mob_effect"}}),i("status_effect_predicate")))},{context:"entity"})),e.register("damage_source_predicate",(0,Yr.ObjectNode)({is_explosion:(0,Yr.Opt)((0,Yr.BooleanNode)()),is_fire:(0,Yr.Opt)((0,Yr.BooleanNode)()),is_magic:(0,Yr.Opt)((0,Yr.BooleanNode)()),is_projectile:(0,Yr.Opt)((0,Yr.BooleanNode)()),is_lightning:(0,Yr.Opt)((0,Yr.BooleanNode)()),bypasses_armor:(0,Yr.Opt)((0,Yr.BooleanNode)()),bypasses_invulnerability:(0,Yr.Opt)((0,Yr.BooleanNode)()),bypasses_magic:(0,Yr.Opt)((0,Yr.BooleanNode)()),source_entity:(0,Yr.Opt)(i("entity_predicate")),direct_entity:(0,Yr.Opt)(i("entity_predicate"))},{context:"damage_source"})),e.register("damage_predicate",(0,Yr.ObjectNode)({dealt:i("float_bounds"),taken:i("float_bounds"),blocked:(0,Yr.Opt)((0,Yr.BooleanNode)()),source_entity:(0,Yr.Opt)(i("entity_predicate")),type:(0,Yr.Opt)(i("damage_source_predicate"))},{context:"damage"}))};var Zr={};Object.defineProperty(Zr,"__esModule",{value:!0}),Zr.initRecipeSchemas=void 0;const Qr=Pe;Zr.initRecipeSchemas=function(e,t){const i=Qr.Reference.bind(void 0,e),n=Qr.StringNode.bind(void 0,t);e.register("recipe",(0,Qr.Mod)((0,Qr.ObjectNode)({type:n({validator:"resource",params:{pool:"recipe_serializer"}}),[Qr.Switch]:[{push:"type"}],[Qr.Case]:{"minecraft:crafting_shaped":{group:(0,Qr.Opt)(n({enum:"recipe_group",additional:!0})),pattern:(0,Qr.ListNode)(n()),key:(0,Qr.MapNode)(n(),i("recipe_ingredient")),result:i("recipe_result")},"minecraft:crafting_shapeless":{group:(0,Qr.Opt)(n()),ingredients:(0,Qr.ListNode)(i("recipe_ingredient")),result:i("recipe_result")},"minecraft:smelting":{group:(0,Qr.Opt)(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:(0,Qr.Opt)((0,Qr.NumberNode)()),cookingtime:(0,Qr.Opt)((0,Qr.Mod)((0,Qr.NumberNode)({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:(0,Qr.Opt)(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:(0,Qr.Opt)((0,Qr.NumberNode)()),cookingtime:(0,Qr.Opt)((0,Qr.Mod)((0,Qr.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:(0,Qr.Opt)(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:(0,Qr.Opt)((0,Qr.NumberNode)()),cookingtime:(0,Qr.Opt)((0,Qr.Mod)((0,Qr.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:(0,Qr.Opt)(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:(0,Qr.Opt)((0,Qr.NumberNode)()),cookingtime:(0,Qr.Opt)((0,Qr.Mod)((0,Qr.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:(0,Qr.Opt)(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),count:(0,Qr.NumberNode)({integer:!0})},"minecraft:smithing":{group:(0,Qr.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",(0,Qr.Mod)((0,Qr.ChoiceNode)([{type:"object",node:i("recipe_ingredient_object"),change:e=>e[0]},{type:"list",node:(0,Qr.ListNode)(i("recipe_ingredient_object")),change:e=>[e]}]),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_ingredient_object",(0,Qr.Mod)((0,Qr.ObjectNode)({item:(0,Qr.Opt)(n({validator:"resource",params:{pool:"item"}})),tag:(0,Qr.Opt)(n({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_result",(0,Qr.Mod)((0,Qr.ObjectNode)({item:n({validator:"resource",params:{pool:"item"}}),count:(0,Qr.Opt)((0,Qr.Mod)((0,Qr.NumberNode)({integer:!0}),{default:()=>1}))}),{default:()=>({item:"minecraft:stone"})}))};var eo={};Object.defineProperty(eo,"__esModule",{value:!0}),eo.initTagsSchemas=void 0;const to=Pe;eo.initTagsSchemas=function(e,t){const i=to.StringNode.bind(void 0,t),n=e=>(0,to.Mod)((0,to.ObjectNode)({replace:(0,to.Opt)((0,to.BooleanNode)()),values:(0,to.ListNode)((0,to.ChoiceNode)([{type:"string",node:i({validator:"resource",params:{pool:e,allowTag:!0}}),change:e=>e.id},{type:"object",node:(0,to.ObjectNode)({id:i({validator:"resource",params:{pool:e,allowTag:!0,allowUnknown:!0}}),required:(0,to.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 io={};Object.defineProperty(io,"__esModule",{value:!0}),io.initTextComponentSchemas=void 0;const no=Pe;io.initTextComponentSchemas=function(e,t){const i=no.Reference.bind(void 0,e),n=no.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",(0,no.Mod)((0,no.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:(0,no.NumberNode)(),change:e=>{const t=parseFloat(r(e));return isFinite(t)?t:e?1:0}},{type:"boolean",node:(0,no.BooleanNode)(),change:e=>{const t=r(e);return"true"===t||"false"===t?"true"===t:!!t}}],{context:"text_component"}),{default:()=>({text:""})}));const o={color:(0,no.Opt)(n()),font:(0,no.Opt)(n()),bold:(0,no.Opt)((0,no.BooleanNode)()),italic:(0,no.Opt)((0,no.BooleanNode)()),underlined:(0,no.Opt)((0,no.BooleanNode)()),strikethrough:(0,no.Opt)((0,no.BooleanNode)()),obfuscated:(0,no.Opt)((0,no.BooleanNode)()),insertion:(0,no.Opt)(n()),clickEvent:(0,no.Opt)((0,no.ObjectNode)({action:n({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[no.Switch]:[{push:"action"}],[no.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:(0,no.Opt)((0,no.ObjectNode)({action:n({enum:["show_text","show_item","show_entity"]}),[no.Switch]:[{push:"action"}],[no.Case]:{show_text:{value:(0,no.Opt)(i("text_component")),contents:(0,no.Opt)(i("text_component"))},show_item:{value:(0,no.Opt)(n({validator:"nbt",params:{module:"util::InventoryItem"}})),contents:(0,no.Opt)((0,no.ObjectNode)({id:n({validator:"resource",params:{pool:"item"}}),count:(0,no.Opt)((0,no.NumberNode)({integer:!0})),tag:(0,no.Opt)(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"id"}]}}}))}))},show_entity:{value:(0,no.Opt)((0,no.ObjectNode)({name:(0,no.Opt)(n()),type:(0,no.Opt)(n()),id:(0,no.Opt)(n())})),contents:(0,no.Opt)((0,no.Mod)((0,no.ObjectNode)({name:(0,no.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:(0,no.Opt)(i("text_component_list"))};e.register("text_component_object",(0,no.Mod)((0,no.ChoiceNode)([{type:"text",match:e=>"object"==typeof e,change:e=>({text:""}),priority:-1,node:(0,no.ObjectNode)(s({text:n()},o))},{type:"translation",match:e=>void 0!==(null==e?void 0:e.translate),change:e=>({translate:""}),node:(0,no.ObjectNode)(s({translate:n(),with:(0,no.Opt)(i("text_component_list"))},o))},{type:"score",match:e=>void 0!==(null==e?void 0:e.score),change:e=>({score:{}}),node:(0,no.ObjectNode)(s({score:(0,no.ObjectNode)({name:n({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:n({validator:"objective"}),value:(0,no.Opt)(n())})},o))},{type:"selector",match:e=>void 0!==(null==e?void 0:e.selector),change:e=>({selector:""}),node:(0,no.ObjectNode)(s({selector:n({validator:"entity",params:{amount:"multiple",type:"entities"}}),separator:(0,no.Opt)(i("text_component"))},o))},{type:"keybind",match:e=>void 0!==(null==e?void 0:e.keybind),change:e=>({keybind:""}),node:(0,no.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:(0,no.ObjectNode)(s({nbt:n({validator:"nbt_path"}),block:(0,no.Opt)(n({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:(0,no.Opt)(n({validator:"entity",params:{amount:"multiple",type:"entities"}})),storage:(0,no.Opt)(n({validator:"resource",params:{pool:"$storage"}})),interpret:(0,no.Opt)((0,no.BooleanNode)()),separator:(0,no.Opt)(i("text_component"))},o))}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),e.register("text_component_list",(0,no.Mod)((0,no.ListNode)(i("text_component")),{default:()=>[{text:""}]}))};var ro={},oo={};Object.defineProperty(oo,"__esModule",{value:!0}),oo.initBiomeSchemas=void 0;const ao=Pe;oo.initBiomeSchemas=function(e,t){const i=ao.StringNode.bind(void 0,t);e.register("biome",(0,ao.Mod)((0,ao.ObjectNode)({surface_builder:i({validator:"resource",params:{pool:"$worldgen/configured_surface_builder"}}),depth:(0,ao.NumberNode)(),scale:(0,ao.NumberNode)(),temperature:(0,ao.NumberNode)(),downfall:(0,ao.NumberNode)(),precipitation:i({enum:["none","rain","snow"]}),temperature_modifier:(0,ao.Opt)(i({enum:["none","frozen"]})),category:i({enum:"biome_category"}),player_spawn_friendly:(0,ao.Opt)((0,ao.BooleanNode)()),creature_spawn_probability:(0,ao.Opt)((0,ao.NumberNode)({min:0,max:1})),effects:(0,ao.ObjectNode)({sky_color:(0,ao.NumberNode)({color:!0}),fog_color:(0,ao.NumberNode)({color:!0}),water_color:(0,ao.NumberNode)({color:!0}),water_fog_color:(0,ao.NumberNode)({color:!0}),grass_color:(0,ao.Opt)((0,ao.NumberNode)({color:!0})),foliage_color:(0,ao.Opt)((0,ao.NumberNode)({color:!0})),grass_color_modifier:(0,ao.Opt)(i({enum:["none","dark_forest","swamp"]})),ambient_sound:(0,ao.Opt)(i()),mood_sound:(0,ao.Opt)((0,ao.ObjectNode)({sound:i(),tick_delay:(0,ao.NumberNode)({integer:!0}),block_search_extent:(0,ao.NumberNode)({integer:!0}),offset:(0,ao.NumberNode)()})),additions_sound:(0,ao.Opt)((0,ao.ObjectNode)({sound:i(),tick_chance:(0,ao.NumberNode)({min:0,max:1})})),music:(0,ao.Opt)((0,ao.ObjectNode)({sound:i(),min_delay:(0,ao.NumberNode)({integer:!0,min:0}),max_delay:(0,ao.NumberNode)({integer:!0,min:0}),replace_current_music:(0,ao.BooleanNode)()})),particle:(0,ao.Opt)((0,ao.ObjectNode)({options:(0,ao.ObjectNode)({type:i()}),probability:(0,ao.NumberNode)({min:0,max:1})}))}),starts:(0,ao.ListNode)(i({validator:"resource",params:{pool:"$worldgen/configured_structure_feature"}})),spawners:(0,ao.MapNode)(i({enum:["monster","creature","ambient","underground_water_creature","water_creature","water_ambient","misc"]}),(0,ao.Mod)((0,ao.ListNode)((0,ao.ObjectNode)({type:i({validator:"resource",params:{pool:"entity_type"}}),weight:(0,ao.NumberNode)({integer:!0}),minCount:(0,ao.NumberNode)({integer:!0}),maxCount:(0,ao.NumberNode)({integer:!0})})),{category:()=>"pool",default:()=>[{type:"minecraft:bat",weight:1}]})),spawn_costs:(0,ao.MapNode)(i({validator:"resource",params:{pool:"entity_type"}}),(0,ao.Mod)((0,ao.ObjectNode)({energy_budget:(0,ao.NumberNode)(),charge:(0,ao.NumberNode)()},{category:"function"}),{default:()=>({energy_budget:.12,charge:1})})),carvers:(0,ao.MapNode)(i({enum:["air","liquid"]}),(0,ao.Mod)((0,ao.ListNode)(i({validator:"resource",params:{pool:"$worldgen/configured_carver"}})),{default:()=>["minecraft:cave"]})),features:(0,ao.ListNode)((0,ao.Mod)((0,ao.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 so={};Object.defineProperty(so,"__esModule",{value:!0}),so.initCarverSchemas=void 0;const co=Pe,lo=Fr;so.initCarverSchemas=function(e,t){const i=co.Reference.bind(void 0,e),n=co.StringNode.bind(void 0,t),r={vertical_rotation:(0,lo.FloatProvider)(),shape:(0,co.ObjectNode)({distance_factor:(0,lo.FloatProvider)(),thickness:(0,lo.FloatProvider)(),width_smoothness:(0,co.NumberNode)({integer:!0,min:0}),horizontal_radius_factor:(0,lo.FloatProvider)(),vertical_radius_default_factor:(0,co.NumberNode)(),vertical_radius_center_factor:(0,co.NumberNode)()})},o={horizontal_radius_multiplier:(0,lo.FloatProvider)(),vertical_radius_multiplier:(0,lo.FloatProvider)(),floor_level:(0,lo.FloatProvider)({min:-1,max:1})};e.register("configured_carver",(0,co.Mod)((0,co.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/carver"}}),config:(0,co.ObjectNode)({probability:(0,co.NumberNode)({min:0,max:1}),y:i("height_provider"),yScale:(0,lo.FloatProvider)(),lava_level:i("vertical_anchor"),aquifers_enabled:(0,co.BooleanNode)(),debug_settings:(0,co.Opt)((0,co.ObjectNode)({debug_mode:(0,co.Opt)((0,co.BooleanNode)()),air_state:(0,co.Opt)(i("block_state")),water_state:(0,co.Opt)(i("block_state")),lava_state:(0,co.Opt)(i("block_state")),barrier_state:(0,co.Opt)(i("block_state"))})),[co.Switch]:["pop",{push:"type"}],[co.Case]:{"minecraft:canyon":r,"minecraft:cave":o,"minecraft:nether_cave":o}})},{context:"carver"}),{default:()=>({type:"minecraft:cave",config:{probability:.1}})}))};var uo={};Object.defineProperty(uo,"__esModule",{value:!0}),uo.initDecoratorSchemas=void 0;const ho=Pe,po=Fr;uo.initDecoratorSchemas=function(e,t){const i=ho.Reference.bind(void 0,e),n=ho.StringNode.bind(void 0,t),r={count:(0,po.IntProvider)({min:0,max:256})};e.register("configured_decorator",(0,ho.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/decorator"}}),config:(0,ho.ObjectNode)({[ho.Switch]:["pop",{push:"type"}],[ho.Case]:{"minecraft:carving_mask":{step:n({enum:"generation_step"})},"minecraft:cave_surface":{surface:n({enum:["floor","ceiling"]}),floor_to_ceiling_search_range:(0,ho.NumberNode)({integer:!0})},"minecraft:chance":{chance:(0,ho.NumberNode)({integer:!0,min:0})},"minecraft:count":r,"minecraft:count_extra":{count:(0,ho.NumberNode)({integer:!0,min:0}),extra_count:(0,ho.NumberNode)({integer:!0,min:0}),extra_chance:(0,ho.NumberNode)({min:0,max:1})},"minecraft:count_multilayer":r,"minecraft:count_noise":{noise_level:(0,ho.NumberNode)(),below_noise:(0,ho.NumberNode)({integer:!0}),above_noise:(0,ho.NumberNode)({integer:!0})},"minecraft:count_noise_biased":{noise_to_count_ratio:(0,ho.NumberNode)({integer:!0}),noise_factor:(0,ho.NumberNode)(),noise_offset:(0,ho.Opt)((0,ho.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:(0,ho.NumberNode)({integer:!0,min:0})},"minecraft:range":{height:i("height_provider")},"minecraft:water_depth_threshold":{max_water_depth:(0,ho.NumberNode)({integer:!0})}}},{context:"decorator",category:"predicate"})},{context:"decorator",category:"predicate"}))};var mo={},fo={};Object.defineProperty(fo,"__esModule",{value:!0}),fo.initProcessorListSchemas=fo.Processors=void 0;const go=Pe;fo.initProcessorListSchemas=function(e,t){const i=go.Reference.bind(void 0,e),n=go.StringNode.bind(void 0,t);fo.Processors=(0,go.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",(0,go.Mod)((0,go.ObjectNode)({processors:(0,go.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",(0,go.Mod)((0,go.ObjectNode)({processor_type:n({validator:"resource",params:{pool:"worldgen/structure_processor"}}),[go.Switch]:[{push:"processor_type"}],[go.Case]:{"minecraft:block_age":{mossiness:(0,go.NumberNode)()},"minecraft:block_ignore":{blocks:(0,go.ListNode)(i("block_state"))},"minecraft:block_rot":{integrity:(0,go.NumberNode)({min:0,max:1})},"minecraft:gravity":{heightmap:n({enum:"heightmap_type"}),offset:(0,go.NumberNode)({integer:!0})},"minecraft:protected_blocks":{value:n({validator:"resource",params:{pool:"$tag/block"}})},"minecraft:rule":{rules:(0,go.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",(0,go.Mod)((0,go.ObjectNode)({position_predicate:(0,go.Opt)(i("pos_rule_test")),location_predicate:i("rule_test"),input_predicate:i("rule_test"),output_state:i("block_state"),output_nbt:(0,go.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:(0,go.Opt)((0,go.NumberNode)({min:0,max:255,integer:!0})),max_dist:(0,go.Opt)((0,go.NumberNode)({min:0,max:255,integer:!0})),min_chance:(0,go.Opt)((0,go.NumberNode)({min:0,max:1})),max_chance:(0,go.Opt)((0,go.NumberNode)({min:0,max:1}))};e.register("pos_rule_test",(0,go.ObjectNode)({predicate_type:n({validator:"resource",params:{pool:"pos_rule_test"}}),[go.Switch]:[{push:"predicate_type"}],[go.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",(0,go.ObjectNode)({predicate_type:n({validator:"resource",params:{pool:"rule_test"}}),[go.Switch]:[{push:"predicate_type"}],[go.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:(0,go.NumberNode)({min:0,max:1})},"minecraft:random_blockstate_match":{block_state:i("block_state"),probability:(0,go.NumberNode)({min:0,max:1})},"minecraft:tag_match":{tag:n({validator:"resource",params:{pool:"$tag/block"}})}}},{context:"rule_test",disableSwitchContext:!0}))},Object.defineProperty(mo,"__esModule",{value:!0}),mo.initFeatureSchemas=void 0;const _o=Pe,bo=Fr,vo=fo;mo.initFeatureSchemas=function(e,t){const i=_o.Reference.bind(void 0,e),n=_o.StringNode.bind(void 0,t),r={can_replace:(0,_o.Opt)((0,_o.BooleanNode)()),project:(0,_o.Opt)((0,_o.BooleanNode)()),need_water:(0,_o.Opt)((0,_o.BooleanNode)()),xspread:(0,_o.Opt)((0,_o.NumberNode)({integer:!0,min:0})),yspread:(0,_o.Opt)((0,_o.NumberNode)({integer:!0,min:0})),zspread:(0,_o.Opt)((0,_o.NumberNode)({integer:!0,min:0})),tries:(0,_o.Opt)((0,_o.NumberNode)({integer:!0,min:1})),state_provider:i("block_state_provider"),block_placer:i("block_placer"),whitelist:(0,_o.ListNode)(i("block_state")),blacklist:(0,_o.ListNode)(i("block_state"))},o={state:i("block_state"),radius:(0,bo.IntProvider)({min:0,max:8}),half_height:(0,_o.NumberNode)({integer:!0,min:0,max:4}),targets:(0,_o.ListNode)(i("block_state"))},a={cap_provider:i("block_state_provider"),stem_provider:i("block_state_provider"),foliage_radius:(0,_o.Opt)((0,_o.NumberNode)({integer:!0}))},s=(0,_o.ObjectNode)({target:i("rule_test"),state:i("block_state")}),c={size:(0,_o.NumberNode)({integer:!0,min:0,max:64}),discard_chance_on_air_exposure:(0,_o.NumberNode)({min:0,max:1}),targets:(0,_o.ListNode)(s)},l=(0,_o.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:(0,bo.IntProvider)({min:1,max:128}),vertical_range:(0,_o.NumberNode)({integer:!0,min:1,max:256}),extra_bottom_block_chance:(0,_o.NumberNode)({min:0,max:1}),extra_edge_column_chance:(0,_o.NumberNode)({min:0,max:1}),vegetation_chance:(0,_o.NumberNode)({min:0,max:1}),xz_radius:(0,bo.IntProvider)(),replaceable:n({validator:"resource",params:{pool:"$tag/block"}}),ground_state:i("block_state_provider"),vegetation_feature:l};e.register("configured_feature",(0,_o.Mod)((0,_o.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/feature"}}),config:(0,_o.ObjectNode)({[_o.Switch]:["pop",{push:"type"}],[_o.Case]:{"minecraft:bamboo":{probability:(0,_o.NumberNode)({min:0,max:1})},"minecraft:basalt_columns":{reach:(0,bo.IntProvider)({min:0,max:3}),height:(0,bo.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:(0,bo.IntProvider)({min:0,max:16}),rim_size:(0,bo.IntProvider)({min:0,max:16})},"minecraft:disk":o,"minecraft:dripstone_cluster":{floor_to_ceiling_search_range:(0,_o.NumberNode)({integer:!0,min:1,max:512}),height:(0,bo.IntProvider)({min:0,max:128}),radius:(0,bo.IntProvider)({min:0,max:128}),max_stalagmite_stalactite_height_diff:(0,_o.NumberNode)({integer:!0,min:0,max:64}),height_deviation:(0,_o.NumberNode)({integer:!0,min:1,max:64}),dripstone_block_layer_thickness:(0,bo.IntProvider)({min:0,max:128}),density:(0,bo.FloatProvider)({min:0,max:2}),wetness:(0,bo.FloatProvider)({min:0,max:2}),chance_of_dripstone_column_at_max_distance_from_center:(0,_o.NumberNode)({min:0,max:1}),max_distance_from_edge_affecting_chance_of_dripstone_column:(0,_o.NumberNode)({integer:!0,min:1,max:64}),max_distance_from_center_affecting_height_bias:(0,_o.NumberNode)({integer:!0,min:1,max:64})},"minecraft:end_gateway":{exact:(0,_o.BooleanNode)(),exit:(0,_o.Opt)(i("block_pos"))},"minecraft:end_spike":{crystal_invulnerable:(0,_o.Opt)((0,_o.BooleanNode)()),crystal_beam_target:(0,_o.Opt)(i("block_pos")),spikes:(0,_o.ListNode)((0,_o.ObjectNode)({centerX:(0,_o.Opt)((0,_o.NumberNode)({integer:!0})),centerZ:(0,_o.Opt)((0,_o.NumberNode)({integer:!0})),radius:(0,_o.Opt)((0,_o.NumberNode)({integer:!0})),height:(0,_o.Opt)((0,_o.NumberNode)({integer:!0})),guarded:(0,_o.Opt)((0,_o.BooleanNode)())}))},"minecraft:fill_layer":{state:i("block_state"),height:(0,_o.NumberNode)({integer:!0,min:0,max:255})},"minecraft:flower":r,"minecraft:forest_rock":{state:i("block_state")},"minecraft:fossil":{max_empty_corners_allowed:(0,_o.NumberNode)({integer:!0,min:0,max:7}),fossil_structures:(0,_o.ListNode)(n({validator:"resource",params:{pool:"$structure"}})),overlay_structures:(0,_o.ListNode)(n({validator:"resource",params:{pool:"$structure"}})),fossil_processors:vo.Processors,overlay_processors:vo.Processors},"minecraft:geode":{blocks:(0,_o.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:(0,_o.ListNode)(i("block_state")),cannot_replace:n({validator:"resource",params:{pool:"$tag/block"}}),invalid_blocks:n({validator:"resource",params:{pool:"$tag/block"}})}),layers:(0,_o.ObjectNode)({filling:(0,_o.Opt)((0,_o.NumberNode)({min:.01,max:50})),inner_layer:(0,_o.Opt)((0,_o.NumberNode)({min:.01,max:50})),middle_layer:(0,_o.Opt)((0,_o.NumberNode)({min:.01,max:50})),outer_layer:(0,_o.Opt)((0,_o.NumberNode)({min:.01,max:50}))}),crack:(0,_o.ObjectNode)({generate_crack_chance:(0,_o.Opt)((0,_o.NumberNode)({min:0,max:1})),base_crack_size:(0,_o.Opt)((0,_o.NumberNode)({min:0,max:5})),crack_point_offset:(0,_o.Opt)((0,_o.NumberNode)({min:0,max:10}))}),noise_multiplier:(0,_o.Opt)((0,_o.NumberNode)({min:0,max:1})),use_potential_placements_chance:(0,_o.Opt)((0,_o.NumberNode)({min:0,max:1})),use_alternate_layer0_chance:(0,_o.Opt)((0,_o.NumberNode)({min:0,max:1})),placements_require_layer0_alternate:(0,_o.Opt)((0,_o.BooleanNode)()),outer_wall_distance:(0,_o.Opt)((0,bo.IntProvider)({min:1,max:20})),distribution_points:(0,_o.Opt)((0,bo.IntProvider)({min:1,max:20})),point_offset:(0,_o.Opt)((0,bo.IntProvider)({min:0,max:10})),min_gen_offset:(0,_o.Opt)((0,_o.NumberNode)({integer:!0})),max_gen_offset:(0,_o.Opt)((0,_o.NumberNode)({integer:!0})),invalid_blocks_threshold:(0,_o.NumberNode)({integer:!0})},"minecraft:glow_lichen":{search_range:(0,_o.Opt)((0,_o.NumberNode)({min:1,max:64,integer:!0})),chance_of_spreading:(0,_o.Opt)((0,_o.NumberNode)({min:0,max:1})),can_place_on_floor:(0,_o.Opt)((0,_o.BooleanNode)()),can_place_on_ceiling:(0,_o.Opt)((0,_o.BooleanNode)()),can_place_on_wall:(0,_o.Opt)((0,_o.BooleanNode)()),can_be_placed_on:(0,_o.ListNode)(i("block_state"))},"minecraft:growing_plant":{direction:n({enum:["up","down","north","east","south","west"]}),allow_water:(0,_o.BooleanNode)(),height_distribution:(0,_o.ListNode)((0,_o.ObjectNode)({weight:(0,_o.NumberNode)({integer:!0}),data:(0,bo.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:(0,_o.Opt)((0,_o.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:(0,_o.Opt)((0,_o.NumberNode)({integer:!0,min:1,max:512})),column_radius:(0,bo.IntProvider)({min:0,max:60}),height_scale:(0,bo.FloatProvider)({min:0,max:20}),max_column_radius_to_cave_height_ratio:(0,_o.NumberNode)({min:0,max:1}),stalactite_bluntness:(0,bo.FloatProvider)({min:.1,max:10}),stalagmite_bluntness:(0,bo.FloatProvider)({min:.1,max:10}),wind_speed:(0,bo.FloatProvider)({min:0,max:2}),min_radius_for_wind:(0,_o.NumberNode)({integer:!0,min:0,max:100}),min_bluntness_for_wind:(0,_o.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:(0,bo.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:(0,_o.ListNode)((0,_o.ObjectNode)({chance:(0,_o.NumberNode)({min:0,max:1}),feature:l})),default:l},"minecraft:replace_single_block":{targets:(0,_o.ListNode)(s)},"minecraft:root_system":{required_vertical_space_for_tree:(0,_o.NumberNode)({integer:!0,min:1,max:64}),root_radius:(0,_o.NumberNode)({integer:!0,min:1,max:64}),root_placement_attempts:(0,_o.NumberNode)({integer:!0,min:1,max:256}),root_column_max_height:(0,_o.NumberNode)({integer:!0,min:1,max:4096}),hanging_root_radius:(0,_o.NumberNode)({integer:!0,min:1,max:64}),hanging_roots_vertical_span:(0,_o.NumberNode)({integer:!0,min:0,max:16}),hanging_root_placement_attempts:(0,_o.NumberNode)({integer:!0,min:0,max:256}),allowed_vertical_water_for_tree:(0,_o.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:(0,bo.IntProvider)({min:0,max:256})},"minecraft:seagrass":{probability:(0,_o.NumberNode)({min:0,max:1})},"minecraft:simple_block":{to_place:i("block_state_provider"),place_on:(0,_o.Opt)((0,_o.ListNode)(i("block_state"))),place_in:(0,_o.Opt)((0,_o.ListNode)(i("block_state"))),place_under:(0,_o.Opt)((0,_o.ListNode)(i("block_state")))},"minecraft:simple_random_selector":{features:(0,_o.ListNode)(l)},"minecraft:small_dripstone":{max_placements:(0,_o.Opt)((0,_o.NumberNode)({integer:!0,min:0,max:100})),empty_space_search_radius:(0,_o.Opt)((0,_o.NumberNode)({integer:!0,min:0,max:20})),max_offset_from_origin:(0,_o.Opt)((0,_o.NumberNode)({integer:!0,min:0,max:20})),chance_of_taller_dripstone:(0,_o.Opt)((0,_o.NumberNode)({min:0,max:1}))},"minecraft:spring_feature":{state:i("fluid_state"),rock_count:(0,_o.NumberNode)({integer:!0}),hole_count:(0,_o.NumberNode)({integer:!0}),requires_block_below:(0,_o.BooleanNode)(),valid_blocks:(0,_o.ListNode)(n({validator:"resource",params:{pool:"block"}}))},"minecraft:tree":{ignore_vines:(0,_o.Opt)((0,_o.BooleanNode)()),force_dirt:(0,_o.Opt)((0,_o.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:(0,_o.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/trunk_placer_type"}}),base_height:(0,_o.NumberNode)({integer:!0,min:0,max:32}),height_rand_a:(0,_o.NumberNode)({integer:!0,min:0,max:24}),height_rand_b:(0,_o.NumberNode)({integer:!0,min:0,max:24}),[_o.Switch]:[{push:"type"}],[_o.Case]:{"minecraft:bending_trunk_placer":{bend_length:(0,bo.IntProvider)({min:1,max:64}),min_height_for_leaves:(0,_o.Opt)((0,_o.NumberNode)({integer:!0,min:1}))}}},{context:"trunk_placer"}),foliage_placer:(0,_o.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/foliage_placer_type"}}),radius:(0,bo.IntProvider)({min:0,max:16}),offset:(0,bo.IntProvider)({min:0,max:16}),[_o.Switch]:[{push:"type"}],[_o.Case]:{"minecraft:blob_foliage_placer":{height:(0,_o.NumberNode)({integer:!0,min:0,max:16})},"minecraft:bush_foliage_placer":{height:(0,_o.NumberNode)({integer:!0,min:0,max:16})},"minecraft:fancy_foliage_placer":{height:(0,_o.NumberNode)({integer:!0,min:0,max:16})},"minecraft:jungle_foliage_placer":{height:(0,_o.NumberNode)({integer:!0,min:0,max:16})},"minecraft:mega_pine_foliage_placer":{crown_height:(0,bo.IntProvider)({min:0,max:24})},"minecraft:pine_foliage_placer":{height:(0,bo.IntProvider)({min:0,max:24})},"minecraft:random_spread_foliage_placer":{foliage_height:(0,bo.IntProvider)({min:1,max:512}),leaf_placement_attempts:(0,_o.NumberNode)({integer:!0,min:0,max:256})},"minecraft:spruce_foliage_placer":{trunk_height:(0,bo.IntProvider)({min:0,max:24})}}},{context:"foliage_placer",disableSwitchContext:!0}),decorators:(0,_o.ListNode)((0,_o.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/tree_decorator_type"}}),[_o.Switch]:[{push:"type"}],[_o.Case]:{"minecraft:alter_ground":{provider:i("block_state_provider")},"minecraft:beehive":{probability:(0,_o.NumberNode)({min:0,max:1})},"minecraft:cocoa":{probability:(0,_o.NumberNode)({min:0,max:1})}}},{context:"tree_decorator"}))},"minecraft:underwater_magma":{floor_search_range:(0,_o.NumberNode)({integer:!0,min:0,max:512}),placement_radius_around_floor:(0,_o.NumberNode)({integer:!0,min:0,max:64}),placement_probability_per_valid_position:(0,_o.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",(0,_o.Mod)((0,_o.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/feature_size_type"}}),min_clipped_height:(0,_o.Opt)((0,_o.NumberNode)({min:0,max:80})),[_o.Switch]:[{push:"type"}],[_o.Case]:{"minecraft:two_layers_feature_size":{limit:(0,_o.Opt)((0,_o.NumberNode)({integer:!0,min:0,max:81})),lower_size:(0,_o.Opt)((0,_o.NumberNode)({integer:!0,min:0,max:16})),upper_size:(0,_o.Opt)((0,_o.NumberNode)({integer:!0,min:0,max:16}))},"minecraft:three_layers_feature_size":{limit:(0,_o.Opt)((0,_o.NumberNode)({integer:!0,min:0,max:80})),upper_limit:(0,_o.Opt)((0,_o.NumberNode)({integer:!0,min:0,max:80})),lower_size:(0,_o.Opt)((0,_o.NumberNode)({integer:!0,min:0,max:16})),middle_size:(0,_o.Opt)((0,_o.NumberNode)({integer:!0,min:0,max:16})),upper_size:(0,_o.Opt)((0,_o.NumberNode)({integer:!0,min:0,max:16}))}}},{disableSwitchContext:!0}),{default:()=>({type:"minecraft:two_layers_feature_size"})})),e.register("block_state_provider",(0,_o.Mod)((0,_o.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/block_state_provider_type"}}),[_o.Switch]:[{push:"type"}],[_o.Case]:{"minecraft:randomized_int_state_provider":{property:n(),values:(0,bo.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:(0,_o.ListNode)((0,_o.Mod)((0,_o.ObjectNode)({weight:(0,_o.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",(0,_o.Mod)((0,_o.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/block_placer_type"}}),[_o.Switch]:[{push:"type"}],[_o.Case]:{"minecraft:column_placer":{size:(0,bo.IntProvider)({min:0})}}},{context:"block_placer"}),{default:()=>({type:"minecraft:simple_block_placer"})}))};var yo={};Object.defineProperty(yo,"__esModule",{value:!0}),yo.initNoiseSettingsSchemas=void 0;const wo=Pe,xo=Fr;yo.initNoiseSettingsSchemas=function(e,t){const i=wo.Reference.bind(void 0,e),n=wo.StringNode.bind(void 0,t);e.register("noise_settings",(0,wo.Mod)((0,wo.ObjectNode)({name:(0,wo.Mod)(n({validator:"resource",params:{pool:"$worldgen/noise_settings",isDefinition:!0}}),{enabled:e=>e.getArray().length>0}),bedrock_roof_position:(0,wo.NumberNode)({integer:!0}),bedrock_floor_position:(0,wo.NumberNode)({integer:!0}),sea_level:(0,wo.NumberNode)({integer:!0}),min_surface_level:(0,wo.NumberNode)({integer:!0}),disable_mob_generation:(0,wo.BooleanNode)(),noise_caves_enabled:(0,wo.BooleanNode)(),noodle_caves_enabled:(0,wo.BooleanNode)(),aquifers_enabled:(0,wo.BooleanNode)(),deepslate_enabled:(0,wo.BooleanNode)(),ore_veins_enabled:(0,wo.BooleanNode)(),default_block:i("block_state"),default_fluid:i("block_state"),noise:(0,wo.ObjectNode)({min_y:(0,wo.NumberNode)({integer:!0,min:-2048,max:2047}),height:(0,wo.NumberNode)({integer:!0,min:0,max:4096}),density_factor:(0,wo.NumberNode)(),density_offset:(0,wo.NumberNode)(),size_horizontal:(0,wo.NumberNode)({integer:!0}),size_vertical:(0,wo.NumberNode)({integer:!0}),simplex_surface_noise:(0,wo.BooleanNode)(),random_density_offset:(0,wo.Opt)((0,wo.BooleanNode)()),island_noise_override:(0,wo.Opt)((0,wo.BooleanNode)()),amplified:(0,wo.Opt)((0,wo.BooleanNode)()),sampling:(0,wo.ObjectNode)({xz_scale:(0,wo.NumberNode)(),y_scale:(0,wo.NumberNode)(),xz_factor:(0,wo.NumberNode)(),y_factor:(0,wo.NumberNode)()}),bottom_slide:(0,wo.ObjectNode)({target:(0,wo.NumberNode)({integer:!0}),size:(0,wo.NumberNode)({integer:!0,min:0}),offset:(0,wo.NumberNode)({integer:!0})}),top_slide:(0,wo.ObjectNode)({target:(0,wo.NumberNode)({integer:!0}),size:(0,wo.NumberNode)({integer:!0,min:0}),offset:(0,wo.NumberNode)({integer:!0})})}),structures:i("generator_structures")},{context:"noise_settings"}),(e=>({default:()=>xo.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",(0,wo.ObjectNode)({stronghold:(0,wo.Opt)((0,wo.ObjectNode)({distance:(0,wo.NumberNode)({integer:!0,min:0,max:1023}),spread:(0,wo.NumberNode)({integer:!0,min:0,max:1023}),count:(0,wo.NumberNode)({integer:!0,min:1,max:4095})})),structures:(0,wo.MapNode)(n({validator:"resource",params:{pool:"worldgen/structure_feature"}}),(0,wo.Mod)((0,wo.ObjectNode)({spacing:(0,wo.NumberNode)({integer:!0,min:0,max:4096}),separation:(0,wo.Mod)((0,wo.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:(0,wo.NumberNode)({integer:!0,min:0})},{context:"generator_structure"}),{default:()=>({spacing:10,separation:5,salt:0})}))})),e.register("generator_layer",(0,wo.Mod)((0,wo.ObjectNode)({block:n({validator:"resource",params:{pool:"block"}}),height:(0,wo.NumberNode)({integer:!0,min:1})}),{default:()=>({block:"minecraft:stone",height:1})}))};var No={};Object.defineProperty(No,"__esModule",{value:!0}),No.initStructureFeatureSchemas=void 0;const ko=Pe;No.initStructureFeatureSchemas=function(e,t){const i=ko.StringNode.bind(void 0,t),n=ko.Reference.bind(void 0,e),r={start_pool:i({validator:"resource",params:{pool:"$worldgen/template_pool"}}),size:(0,ko.NumberNode)({integer:!0})};e.register("configured_structure_feature",(0,ko.Mod)((0,ko.ObjectNode)({type:i({validator:"resource",params:{pool:"worldgen/structure_feature"}}),config:(0,ko.ObjectNode)({[ko.Switch]:["pop",{push:"type"}],[ko.Case]:{"minecraft:bastion_remnant":r,"minecraft:buried_treasure":{probability:(0,ko.NumberNode)({min:0,max:1})},"minecraft:mineshaft":{type:i({enum:["normal","mesa"]}),probability:(0,ko.NumberNode)({min:0,max:1})},"minecraft:nether_fossil":{height:n("height_provider")},"minecraft:ocean_ruin":{biome_temp:i({enum:["cold","warm"]}),large_probability:(0,ko.NumberNode)({min:0,max:1}),cluster_probability:(0,ko.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:(0,ko.Opt)((0,ko.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 Ao={};Object.defineProperty(Ao,"__esModule",{value:!0}),Ao.initSurfaceBuilderSchemas=void 0;const Co=Pe;Ao.initSurfaceBuilderSchemas=function(e,t){const i=Co.StringNode.bind(void 0,t),n=Co.Reference.bind(void 0,e);e.register("configured_surface_builder",(0,Co.Mod)((0,Co.ObjectNode)({type:i({validator:"resource",params:{pool:"worldgen/surface_builder"}}),config:(0,Co.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 Oo={};Object.defineProperty(Oo,"__esModule",{value:!0}),Oo.initTemplatePoolSchemas=void 0;const So=Pe,Eo=fo;Oo.initTemplatePoolSchemas=function(e,t){const i=So.Reference.bind(void 0,e),n=So.StringNode.bind(void 0,t);e.register("template_pool",(0,So.Mod)((0,So.ObjectNode)({name:n(),fallback:n(),elements:(0,So.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",(0,So.Mod)((0,So.ObjectNode)({weight:(0,So.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",(0,So.Mod)((0,So.ObjectNode)({element_type:n({validator:"resource",params:{pool:"worldgen/structure_pool_element"}}),projection:n({enum:["rigid","terrain_matching"]}),[So.Switch]:[{push:"element_type"}],[So.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:Eo.Processors},"minecraft:list_pool_element":{elements:(0,So.ListNode)(i("template_element"))},"minecraft:single_pool_element":{location:n({validator:"resource",params:{pool:"$structure"}}),processors:Eo.Processors}}},{context:"template_element",disableSwitchContext:!0}),{default:()=>({element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"})}))},Object.defineProperty(ro,"__esModule",{value:!0}),ro.initWorldgenSchemas=void 0;const Fo=oo,Do=so,Bo=uo,Lo=mo,Mo=yo,To=fo,Ro=No,$o=Ao,jo=Oo;ro.initWorldgenSchemas=function(e,t){(0,To.initProcessorListSchemas)(e,t),(0,Fo.initBiomeSchemas)(e,t),(0,Do.initCarverSchemas)(e,t),(0,Bo.initDecoratorSchemas)(e,t),(0,Lo.initFeatureSchemas)(e,t),(0,Mo.initNoiseSettingsSchemas)(e,t),(0,Ro.initStructureFeatureSchemas)(e,t),(0,$o.initSurfaceBuilderSchemas)(e,t),(0,jo.initTemplatePoolSchemas)(e,t)};var Io={};Object.defineProperty(Io,"__esModule",{value:!0}),Io.initWorldSettingsSchemas=void 0;const Po=Pe;Io.initWorldSettingsSchemas=function(e,t){const i=Po.Reference.bind(void 0,e),n=Po.StringNode.bind(void 0,t);e.register("world_settings",(0,Po.Mod)((0,Po.ObjectNode)({generate_features:(0,Po.BooleanNode)(),bonus_chest:(0,Po.BooleanNode)(),seed:(0,Po.NumberNode)({integer:!0}),dimensions:(0,Po.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(yr,"__esModule",{value:!0}),yr.initSchemas=void 0;const zo=wr,Uo=Nr,Wo=Fr,Ho=Dr,qo=Mr,Vo=$r,Go=Pr,Ko=Wr,Xo=Kr,Jo=Jr,Yo=Zr,Zo=eo,Qo=io,ea=ro,ta=Io;yr.initSchemas=function(e,t){(0,Wo.initCommonSchemas)(e,t),(0,zo.initAdvancementSchemas)(e,t),(0,Uo.initAssetsSchemas)(e,t),(0,Ho.initConditionSchemas)(e,t),(0,Vo.initDimensionTypeSchemas)(e,t),(0,qo.initDimensionSchemas)(e,t),(0,Go.initItemModifierSchemas)(e,t),(0,Ko.initLootTableSchemas)(e,t),(0,Xo.initPackMcmetaSchemas)(e,t),(0,Jo.initPredicatesSchemas)(e,t),(0,Yo.initRecipeSchemas)(e,t),(0,Zo.initTagsSchemas)(e,t),(0,Qo.initTextComponentSchemas)(e,t),(0,ea.initWorldgenSchemas)(e,t),(0,ta.initWorldSettingsSchemas)(e,t)};var ia=Ie&&Ie.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i);var r=Object.getOwnPropertyDescriptor(t,i);r&&!("get"in r?!t.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,n,r)}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),na=Ie&&Ie.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),ra=Ie&&Ie.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&ia(t,e,i);return na(t,e),t};Object.defineProperty(br,"__esModule",{value:!0});var oa=br.getSchemas=br.getCollections=br.lootContext=void 0;const aa=Pe,sa=vr,ca=yr;var la=br.lootContext=ra(Hr);var ua=br.getCollections=function(){const e=new aa.CollectionRegistry;return(0,sa.initCollections)(e),e};oa=br.getSchemas=function(e){const t=new aa.SchemaRegistry;return(0,ca.initSchemas)(t,e),t};var da=Object.freeze(Object.assign(Object.create(null),br,{[Symbol.toStringTag]:"Module",get getSchemas(){return oa},get getCollections(){return ua},get lootContext(){return la},default:br})),ha={},pa={};Object.defineProperty(pa,"__esModule",{value:!0}),pa.initCollections=void 0,pa.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("cat_texture",["textures/entity/cat/tabby.png","textures/entity/cat/black.png","textures/entity/cat/red.png","textures/entity/cat/siamese.png","textures/entity/cat/british_shorthair.png","textures/entity/cat/calico.png","textures/entity/cat/persian.png","textures/entity/cat/ragdoll.png","textures/entity/cat/white.png","textures/entity/cat/jellie.png","textures/entity/cat/all_black.png"])};var ma={},fa={};Object.defineProperty(fa,"__esModule",{value:!0}),fa.initAdvancementSchemas=void 0;const ga=Pe;fa.initAdvancementSchemas=function(e,t){const i=ga.Reference.bind(void 0,e),n=ga.StringNode.bind(void 0,t),r=(0,ga.ChoiceNode)([{type:"object",node:(0,ga.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:(0,ga.ListNode)(i("condition")),change:e=>[{condition:"minecraft:entity_properties",predicate:e}]}],{context:"conditions"});e.register("advancement",(0,ga.Mod)((0,ga.ObjectNode)({display:(0,ga.Opt)((0,ga.Mod)((0,ga.ObjectNode)({icon:(0,ga.ObjectNode)({item:n({validator:"resource",params:{pool:"item"}}),nbt:(0,ga.Opt)(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:i("text_component"),description:i("text_component"),background:(0,ga.Opt)(n()),frame:(0,ga.Opt)(n({enum:["task","challenge","goal"]})),show_toast:(0,ga.Opt)((0,ga.BooleanNode)()),announce_to_chat:(0,ga.Opt)((0,ga.BooleanNode)()),hidden:(0,ga.Opt)((0,ga.BooleanNode)())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:(0,ga.Opt)(n({validator:"resource",params:{pool:"$advancement"}})),criteria:(0,ga.MapNode)(n(),i("advancement_criteria")),requirements:(0,ga.Opt)((0,ga.ListNode)((0,ga.ListNode)(n()))),rewards:(0,ga.Opt)((0,ga.ObjectNode)({function:(0,ga.Opt)(n({validator:"resource",params:{pool:"$function"}})),loot:(0,ga.Opt)((0,ga.ListNode)(n({validator:"resource",params:{pool:"$loot_table"}}))),recipes:(0,ga.Opt)((0,ga.ListNode)(n({validator:"resource",params:{pool:"$recipe"}}))),experience:(0,ga.Opt)((0,ga.NumberNode)({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),e.register("advancement_criteria",(0,ga.ObjectNode)({trigger:n({validator:"resource",params:{pool:t.get("advancement_trigger")}}),conditions:(0,ga.Opt)((0,ga.ObjectNode)({player:(0,ga.Mod)(r,{enabled:e=>"minecraft:impossible"!==e.pop().push("trigger").get()}),[ga.Switch]:["pop",{push:"trigger"}],[ga.Case]:{"minecraft:bee_nest_destroyed":{block:(0,ga.Opt)(n({validator:"resource",params:{pool:"block"}})),num_bees_inside:(0,ga.Opt)((0,ga.NumberNode)({integer:!0})),item:(0,ga.Opt)(i("item_predicate"))},"minecraft:bred_animals":{parent:r,partner:r,child:r},"minecraft:brewed_potion":{potion:(0,ga.Opt)(n({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:(0,ga.Opt)(n({validator:"resource",params:{pool:"$dimension"}})),to:(0,ga.Opt)(n({validator:"resource",params:{pool:"$dimension"}}))},"minecraft:channeled_lightning":{victims:(0,ga.Opt)((0,ga.ListNode)(r))},"minecraft:construct_beacon":{level:i("int_bounds")},"minecraft:consume_item":{item:(0,ga.Opt)(i("item_predicate"))},"minecraft:cured_zombie_villager":{villager:r,zombie:r},"minecraft:effects_changed":{effects:(0,ga.Opt)((0,ga.MapNode)(n({validator:"resource",params:{pool:"mob_effect"}}),(0,ga.ObjectNode)({amplifier:i("int_bounds"),duration:i("int_bounds")}))),source:(0,ga.Opt)(r)},"minecraft:enter_block":{block:(0,ga.Opt)(n({validator:"resource",params:{pool:"block"}})),state:(0,ga.Opt)((0,ga.MapNode)(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:i("int_bounds"),item:(0,ga.Opt)(i("item_predicate"))},"minecraft:entity_hurt_player":{damage:(0,ga.Opt)(i("damage_predicate"))},"minecraft:entity_killed_player":{entity:r,killing_blow:(0,ga.Opt)(i("damage_source_predicate"))},"minecraft:fall_from_height":{start_position:(0,ga.Opt)(i("location_predicate")),distance:(0,ga.Opt)(i("distance_predicate"))},"minecraft:filled_bucket":{item:(0,ga.Opt)(i("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:r,item:(0,ga.Opt)(i("item_predicate"))},"minecraft:hero_of_the_village":{location:(0,ga.Opt)(i("location_predicate"))},"minecraft:inventory_changed":{slots:(0,ga.Opt)((0,ga.ObjectNode)({empty:i("int_bounds"),occupied:i("int_bounds"),full:i("int_bounds")})),items:(0,ga.Opt)((0,ga.ListNode)(i("item_predicate")))},"minecraft:item_durability_changed":{delta:i("int_bounds"),durability:i("int_bounds"),item:(0,ga.Opt)(i("item_predicate"))},"minecraft:item_used_on_block":{item:(0,ga.Opt)(i("item_predicate")),location:(0,ga.Opt)(i("location_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:i("int_bounds"),victims:(0,ga.Opt)((0,ga.ListNode)(r))},"minecraft:levitation":{distance:(0,ga.Opt)(i("distance_predicate")),duration:i("int_bounds")},"minecraft:lightning_strike":{lightning:r,bystander:r},"minecraft:location":{location:(0,ga.Opt)(i("location_predicate"))},"minecraft:nether_travel":{start_position:(0,ga.Opt)(i("location_predicate")),distance:(0,ga.Opt)(i("distance_predicate"))},"minecraft:placed_block":{block:(0,ga.Opt)(n({validator:"resource",params:{pool:"block"}})),state:(0,ga.Opt)((0,ga.MapNode)(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:(0,ga.Opt)(i("item_predicate")),location:(0,ga.Opt)(i("location_predicate"))},"minecraft:player_generates_container_loot":{loot_table:n({validator:"resource",params:{pool:"$loot_table"}})},"minecraft:player_hurt_entity":{damage:(0,ga.Opt)(i("damage_predicate")),entity:r},"minecraft:player_interacted_with_entity":{item:(0,ga.Opt)(i("item_predicate")),entity:r},"minecraft:player_killed_entity":{entity:r,killing_blow:(0,ga.Opt)(i("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:n({validator:"resource",params:{pool:"$recipe"}})},"minecraft:ride_entity_in_lava":{start_position:(0,ga.Opt)(i("location_predicate")),distance:(0,ga.Opt)(i("distance_predicate"))},"minecraft:slept_in_bed":{location:(0,ga.Opt)(i("location_predicate"))},"minecraft:slide_down_block":{block:(0,ga.Opt)(n({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:(0,ga.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:r,item:(0,ga.Opt)(i("item_predicate"))},"minecraft:used_ender_eye":{distance:(0,ga.Opt)(i("float_bounds"))},"minecraft:used_totem":{item:(0,ga.Opt)(i("item_predicate"))},"minecraft:using_item":{item:(0,ga.Opt)(i("item_predicate"))},"minecraft:villager_trade":{villager:r,item:(0,ga.Opt)(i("item_predicate"))},"minecraft:voluntary_exile":{location:(0,ga.Opt)(i("location_predicate"))}}},{context:"criterion"}))},{category:"predicate",context:"criterion"}))};var _a={},ba={};Object.defineProperty(ba,"__esModule",{value:!0}),ba.initModelSchemas=void 0;const va=Pe;ba.initModelSchemas=function(e,t){va.Reference.bind(void 0,e);const i=va.StringNode.bind(void 0,t),n=(e,t,i)=>(0,va.ListNode)((0,va.NumberNode)({min:t,max:i}),{minLength:e,maxLength:e}),r=(0,va.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",(0,va.Mod)((0,va.ObjectNode)({parent:(0,va.Opt)(i({validator:"resource",params:{pool:"$model"}})),ambientocclusion:(0,va.Opt)((0,va.BooleanNode)()),gui_light:(0,va.Opt)(i({enum:"gui_light"})),textures:(0,va.Opt)((0,va.MapNode)(i(),r)),elements:(0,va.Opt)((0,va.ListNode)((0,va.ObjectNode)({from:n(3,-16,32),to:n(3,-16,32),rotation:(0,va.Opt)((0,va.ObjectNode)({origin:n(3),axis:i({enum:"axis"}),angle:(0,va.NumberEnum)({values:[-45,-22.5,0,22.5,45]}),rescale:(0,va.Opt)((0,va.BooleanNode)())})),shade:(0,va.Opt)((0,va.BooleanNode)()),faces:(0,va.MapNode)(i({enum:"direction"}),(0,va.ObjectNode)({texture:r,uv:(0,va.Opt)(n(4)),cullface:(0,va.Opt)(i({enum:"direction"})),rotation:(0,va.Opt)((0,va.NumberNode)({integer:!0})),tintindex:(0,va.Opt)((0,va.NumberNode)({integer:!0}))}))},{context:"model_element"}))),display:(0,va.Opt)((0,va.MapNode)(i({enum:"display_position"}),(0,va.ObjectNode)({rotation:n(3),translation:n(3,-80,80),scale:n(3,-4,4)},{context:"item_transform"}))),overrides:(0,va.Opt)((0,va.ListNode)((0,va.ObjectNode)({predicate:(0,va.MapNode)(i({enum:"item_model_predicates"}),(0,va.NumberNode)()),model:i({validator:"resource",params:{pool:"$model"}})},{context:"model_override"})))},{context:"model"}),{default:()=>({parent:"minecraft:item/generated",textures:{layer0:"minecraft:item/diamond"}})}))};var ya={};Object.defineProperty(ya,"__esModule",{value:!0}),ya.initBlockDefinitionSchemas=void 0;const wa=Pe;ya.initBlockDefinitionSchemas=function(e,t){const i=wa.Reference.bind(void 0,e),n=wa.StringNode.bind(void 0,t);e.register("block_definition",(0,wa.Mod)((0,wa.ChoiceNode)([{type:"variants",match:e=>void 0!==e.variants,node:(0,wa.ObjectNode)({variants:(0,wa.MapNode)(n(),i("model_variant"))}),change:e=>({variants:{"":{}}})},{type:"multipart",match:e=>void 0!==e.multipart,node:(0,wa.ObjectNode)({multipart:(0,wa.ListNode)((0,wa.ObjectNode)({when:(0,wa.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:(0,wa.Opt)((0,wa.NumberEnum)({integer:!0,values:[0,90,180,270]})),y:(0,wa.Opt)((0,wa.NumberEnum)({integer:!0,values:[0,90,180,270]})),uvlock:(0,wa.Opt)((0,wa.BooleanNode)())};e.register("model_variant",(0,wa.ChoiceNode)([{type:"object",node:(0,wa.ObjectNode)(r),change:e=>Array.isArray(e)&&e.length>0?e[0]:{}},{type:"list",node:(0,wa.ListNode)((0,wa.ObjectNode)(c(s({},r),{weight:(0,wa.Opt)((0,wa.NumberNode)({integer:!0,min:1}))}),{context:"model_variant"})),change:e=>[s({weight:1},e)]}],{context:"model_variant"})),e.register("multipart_condition",(0,wa.ChoiceNode)([{type:"object",priority:-1,match:()=>!0,node:(0,wa.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:(0,wa.ObjectNode)({OR:(0,wa.ListNode)(i("multipart_condition"))}),change:e=>({OR:[null!=e?e:{}]})}],{context:"multipart_condition"}))},Object.defineProperty(_a,"__esModule",{value:!0}),_a.initAssetsSchemas=void 0;const xa=ba,Na=ya;_a.initAssetsSchemas=function(e,t){(0,Na.initBlockDefinitionSchemas)(e,t),(0,xa.initModelSchemas)(e,t)};var ka={};!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=Pe;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",(0,t.Mod)((0,t.ObjectNode)({Name:o({validator:"resource",params:{pool:"block"}}),Properties:(0,t.Opt)((0,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",(0,t.Mod)((0,t.ObjectNode)({Name:o({validator:"resource",params:{pool:"fluid"}}),Properties:(0,t.Opt)((0,t.MapNode)(o(),o()))},{context:"fluid_state"}),{default:()=>({Name:"minecraft:water",Properties:{level:"0"}})})),n.register("block_pos",(0,t.Mod)((0,t.ListNode)((0,t.NumberNode)({integer:!0}),{minLength:3,maxLength:3}),{default:()=>[0,0,0]}));const c=e=>(0,t.Opt)((0,t.ChoiceNode)([{type:"number",node:(0,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:(0,t.ObjectNode)({min:(0,t.Opt)((0,t.NumberNode)({integer:e})),max:(0,t.Opt)((0,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",(0,t.ChoiceNode)([{type:"object",node:(0,t.ObjectNode)({min:(0,t.Opt)(a("number_provider")),max:(0,t.Opt)(a("number_provider"))})},{type:"number",node:(0,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]=(0,t.Mod)(l[a][e],{enabled:e=>void 0===e.push("type").get()})}));const d=(0,t.ObjectNode)(s({type:(0,t.Mod)((0,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})})})),(0,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:(0,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:(0,t.Opt)((0,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:(0,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:(0,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:(0,t.NumberNode)(e)},"minecraft:uniform":{value:(0,t.ObjectNode)({min_inclusive:(0,t.NumberNode)(e),max_exclusive:(0,t.NumberNode)(e)})},"minecraft:clamped_normal":{value:(0,t.ObjectNode)({min:(0,t.NumberNode)(),max:(0,t.NumberNode)(),mean:(0,t.NumberNode)(),deviation:(0,t.NumberNode)()})},"minecraft:trapezoid":{value:(0,t.ObjectNode)({min:(0,t.NumberNode)(),max:(0,t.NumberNode)(),plateau:(0,t.NumberNode)()})}}),n.register("float_provider",(0,e.FloatProvider)()),e.IntProvider=e=>l("int_provider_type","number","value","minecraft:constant",null,"int_provider",{"minecraft:constant":{value:(0,t.NumberNode)(s({integer:!0},e))},"minecraft:uniform":{value:(0,t.ObjectNode)({min_inclusive:(0,t.NumberNode)(s({integer:!0},e)),max_inclusive:(0,t.NumberNode)(s({integer:!0},e))})},"minecraft:biased_to_bottom":{value:(0,t.ObjectNode)({min_inclusive:(0,t.NumberNode)(s({integer:!0},e)),max_inclusive:(0,t.NumberNode)(s({integer:!0},e))})},"minecraft:clamped":{value:(0,t.ObjectNode)({min_inclusive:(0,t.NumberNode)(s({integer:!0},e)),max_inclusive:(0,t.NumberNode)(s({integer:!0},e)),source:a("int_provider")})},"minecraft:clamped_normal":{value:(0,t.ObjectNode)({min_inclusive:(0,t.NumberNode)(s({integer:!0},e)),max_inclusive:(0,t.NumberNode)(s({integer:!0},e)),mean:(0,t.NumberNode)(),deviation:(0,t.NumberNode)()})},"minecraft:weighted_list":{distribution:(0,t.ListNode)((0,t.ObjectNode)({weight:(0,t.NumberNode)({integer:!0}),data:a("int_provider")}))}}),n.register("int_provider",(0,e.IntProvider)()),n.register("vertical_anchor",(0,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:(0,t.ObjectNode)({[e]:(0,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:(0,t.Opt)((0,t.NumberNode)({integer:!0,min:1}))},"minecraft:very_biased_to_bottom":{min_inclusive:a("vertical_anchor"),max_inclusive:a("vertical_anchor"),inner:(0,t.Opt)((0,t.NumberNode)({integer:!0,min:1}))},"minecraft:trapezoid":{min_inclusive:a("vertical_anchor"),max_inclusive:a("vertical_anchor"),plateau:(0,t.Opt)((0,t.NumberNode)({integer:!0}))},"minecraft:weighted_list":{distribution:(0,t.ListNode)((0,t.ObjectNode)({weight:(0,t.NumberNode)({integer:!0}),data:a("height_provider")}))}})),e.InclusiveRange=e=>(0,t.ObjectNode)({min_inclusive:(0,t.NumberNode)(e),max_inclusive:(0,t.NumberNode)(e)},{context:"range"}),n.register("noise_parameters",(0,t.Mod)((0,t.ObjectNode)({firstOctave:(0,t.NumberNode)({integer:!0}),amplitudes:(0,t.ListNode)((0,t.NumberNode)())},{context:"noise_parameters"}),{default:()=>({firstOctave:-7,amplitudes:[1,1]})})),e.ConditionCases=(e=o({enum:"entity_source"}))=>({"minecraft:alternative":{terms:(0,t.ListNode)(a("condition"))},"minecraft:block_state_property":{block:o({validator:"resource",params:{pool:"block"}}),properties:(0,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:(0,t.MapNode)(o({validator:"objective"}),a("int_range"))},"minecraft:inverted":{term:a("condition")},"minecraft:killed_by_player":{inverse:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:location_check":{offsetX:(0,t.Opt)((0,t.NumberNode)({integer:!0})),offsetY:(0,t.Opt)((0,t.NumberNode)({integer:!0})),offsetZ:(0,t.Opt)((0,t.NumberNode)({integer:!0})),predicate:a("location_predicate")},"minecraft:match_tool":{predicate:a("item_predicate")},"minecraft:random_chance":{chance:(0,t.NumberNode)({min:0,max:1})},"minecraft:random_chance_with_looting":{chance:(0,t.NumberNode)({min:0,max:1}),looting_multiplier:(0,t.NumberNode)()},"minecraft:reference":{name:o({validator:"resource",params:{pool:"$predicate"}})},"minecraft:table_bonus":{enchantment:o({validator:"resource",params:{pool:"enchantment"}}),chances:(0,t.ListNode)((0,t.NumberNode)({min:0,max:1}))},"minecraft:time_check":{value:a("int_range"),period:(0,t.Opt)((0,t.NumberNode)({integer:!0}))},"minecraft:value_check":{value:a("number_provider"),range:a("int_range")},"minecraft:weather_check":{raining:(0,t.Opt)((0,t.BooleanNode)()),thundering:(0,t.Opt)((0,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:(0,t.Mod)((0,t.ObjectNode)({bonusMultiplier:(0,t.Mod)((0,t.NumberNode)(),{enabled:e=>"minecraft:uniform_bonus_count"===e.pop().push("formula").get()}),extra:(0,t.Mod)((0,t.NumberNode)(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()}),probability:(0,t.Mod)((0,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:(0,t.ListNode)((0,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:(0,t.ListNode)(o({validator:"block_state_key",params:{id:["pop","pop",{push:"block"}]}}))},"minecraft:enchant_randomly":{enchantments:(0,t.Opt)((0,t.ListNode)(o({validator:"resource",params:{pool:"enchantment"}})))},"minecraft:enchant_with_levels":{levels:a("number_provider"),treasure:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:exploration_map":{destination:(0,t.Opt)(o({enum:"map_feature"})),decoration:(0,t.Opt)(o({enum:"map_decoration"})),zoom:(0,t.Opt)((0,t.NumberNode)({integer:!0})),search_radius:(0,t.Opt)((0,t.NumberNode)({integer:!0})),skip_existing_chunks:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:fill_player_head":{entity:n},"minecraft:limit_count":{limit:a("int_range")},"minecraft:looting_enchant":{count:a("number_provider"),limit:(0,t.Opt)((0,t.NumberNode)({integer:!0}))},"minecraft:set_attributes":{modifiers:(0,t.ListNode)(a("attribute_modifier"))},"minecraft:set_banner_pattern":{patterns:(0,t.ListNode)((0,t.ObjectNode)({pattern:o({enum:"banner_pattern"}),color:o({enum:"dye_color"})})),append:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:set_contents":{type:o({validator:"resource",params:{pool:"block_entity_type"}}),entries:(0,t.ListNode)(a("loot_entry"))},"minecraft:set_count":{count:a("number_provider"),add:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:set_damage":{damage:a("number_provider"),add:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:set_enchantments":{enchantments:(0,t.MapNode)(o({validator:"resource",params:{pool:"enchantment"}}),a("number_provider")),add:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:set_loot_table":{type:o({validator:"resource",params:{pool:"block_entity_type"}}),name:o({validator:"resource",params:{pool:"$loot_table"}}),seed:(0,t.Opt)((0,t.NumberNode)({integer:!0}))},"minecraft:set_lore":{entity:(0,t.Opt)(n),lore:(0,t.ListNode)(a("text_component")),replace:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:set_name":{entity:(0,t.Opt)(n),name:(0,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:(0,t.Opt)((0,t.ListNode)((0,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=>(0,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=>(0,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}}})}}(ka);var Aa={};Object.defineProperty(Aa,"__esModule",{value:!0}),Aa.initConditionSchemas=void 0;const Ca=Pe,Oa=ka;Aa.initConditionSchemas=function(e,t){const i=Ca.Reference.bind(void 0,e),n=Ca.StringNode.bind(void 0,t);e.register("predicate",(0,Ca.ObjectOrList)(i("condition"),{choiceContext:"condition"})),e.register("condition",(0,Ca.Mod)((0,Ca.ObjectNode)({condition:n({validator:"resource",params:{pool:"loot_condition_type"}}),[Ca.Switch]:[{push:"condition"}],[Ca.Case]:(0,Oa.ConditionCases)()},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:entity_properties",entity:"this"})}))};var Sa={};Object.defineProperty(Sa,"__esModule",{value:!0}),Sa.initDimensionSchemas=void 0;const Ea=Pe,Fa=ka;Sa.initDimensionSchemas=function(e,t){const i=Ea.Reference.bind(void 0,e),n=Ea.StringNode.bind(void 0,t);e.register("dimension",(0,Ea.Mod)((0,Ea.ObjectNode)({type:(0,Fa.DimensionTypePresets)(i("dimension_type")),generator:(0,Ea.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/chunk_generator"}}),[Ea.Switch]:[{push:"type"}],[Ea.Case]:{"minecraft:noise":{seed:(0,Ea.NumberNode)({integer:!0}),settings:(0,Fa.NoiseSettingsPresets)(i("noise_settings")),biome_source:(0,Ea.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/biome_source"}}),[Ea.Switch]:[{push:"type"}],[Ea.Case]:{"minecraft:fixed":{biome:n({validator:"resource",params:{pool:"$worldgen/biome"}})},"minecraft:multi_noise":{preset:(0,Ea.Opt)(n({validator:"resource",params:{pool:["minecraft:overworld","minecraft:nether"]}})),biomes:(0,Ea.Mod)((0,Ea.ListNode)(i("generator_biome")),{enabled:e=>void 0===e.push("preset").get(),default:()=>[{biome:"minecraft:plains"}]})},"minecraft:checkerboard":{scale:(0,Ea.Opt)((0,Ea.NumberNode)({integer:!0,min:0,max:62})),biomes:(0,Ea.ListNode)(n({validator:"resource",params:{pool:"$worldgen/biome"}}))},"minecraft:the_end":{seed:(0,Ea.NumberNode)({integer:!0})}}},{category:"predicate",disableSwitchContext:!0})},"minecraft:flat":{settings:(0,Ea.ObjectNode)({biome:(0,Ea.Opt)(n({validator:"resource",params:{pool:"$worldgen/biome"}})),lakes:(0,Ea.Opt)((0,Ea.BooleanNode)()),features:(0,Ea.Opt)((0,Ea.BooleanNode)()),layers:(0,Ea.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=(0,Ea.ChoiceNode)([{type:"number",node:(0,Ea.NumberNode)({min:-2,max:2}),change:e=>{var t;return null!==(t=e[0])&&void 0!==t?t:0}},{type:"list",node:(0,Ea.ListNode)((0,Ea.NumberNode)({min:-2,max:2}),{minLength:2,maxLength:2}),change:e=>[null!=e?e:0,null!=e?e:0]}]);e.register("generator_biome",(0,Ea.Mod)((0,Ea.ObjectNode)({biome:n({validator:"resource",params:{pool:"$worldgen/biome"}}),parameters:(0,Ea.ObjectNode)({temperature:r,humidity:r,continentalness:r,erosion:r,weirdness:r,depth:r,offset:(0,Ea.NumberNode)({min:0,max:1})})},{context:"generator_biome"}),{default:()=>({biome:"minecraft:plains",parameters:{altitude:0,temperature:0,humidity:0,weirdness:0,offset:0}})}))};var Da={};Object.defineProperty(Da,"__esModule",{value:!0}),Da.initDimensionTypeSchemas=void 0;const Ba=Pe,La=ka;Da.initDimensionTypeSchemas=function(e,t){const i=Ba.StringNode.bind(void 0,t);e.register("dimension_type",(0,Ba.Mod)((0,Ba.ObjectNode)({ultrawarm:(0,Ba.BooleanNode)(),natural:(0,Ba.BooleanNode)(),piglin_safe:(0,Ba.BooleanNode)(),respawn_anchor_works:(0,Ba.BooleanNode)(),bed_works:(0,Ba.BooleanNode)(),has_raids:(0,Ba.BooleanNode)(),has_skylight:(0,Ba.BooleanNode)(),has_ceiling:(0,Ba.BooleanNode)(),coordinate_scale:(0,Ba.NumberNode)({min:1e-5,max:3e7}),ambient_light:(0,Ba.NumberNode)(),fixed_time:(0,Ba.Opt)((0,Ba.NumberNode)({integer:!0})),logical_height:(0,Ba.NumberNode)({integer:!0,min:0,max:4096}),effects:(0,Ba.Opt)(i({enum:["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]})),infiniburn:i({validator:"resource",params:{pool:"$tag/block"}}),min_y:(0,Ba.NumberNode)({integer:!0,min:-2048,max:2047}),height:(0,Ba.NumberNode)({integer:!0,min:0,max:4096})},{context:"dimension_type"}),(e=>({default:()=>La.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 Ma={};Object.defineProperty(Ma,"__esModule",{value:!0}),Ma.initItemModifierSchemas=void 0;const Ta=Pe,Ra=ka;Ma.initItemModifierSchemas=function(e,t){const i=Ta.Reference.bind(void 0,e),n=Ta.StringNode.bind(void 0,t);e.register("item_modifier",(0,Ta.ObjectOrList)(i("function"),{choiceContext:"function"}));const r={conditions:(0,Ta.Opt)((0,Ta.ListNode)(i("condition")))};e.register("function",(0,Ta.Mod)((0,Ta.ObjectNode)({function:n({validator:"resource",params:{pool:"loot_function_type"}}),[Ta.Switch]:[{push:"function"}],[Ta.Case]:(0,Ra.FunctionCases)(r)},{category:"function",context:"function"}),{default:()=>[{function:"minecraft:set_count",count:1}]}))};var $a={},ja={};Object.defineProperty(ja,"__esModule",{value:!0}),ja.LootFunctions=ja.LootConditions=ja.LootCopySources=ja.LootEntitySources=ja.LootTableTypes=void 0,ja.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]}]]),ja.LootEntitySources=new Map([["direct_killer",[3]],["killer",[5]],["killer_player",[5]],["this",[8]]]),ja.LootCopySources=new Map([["block_entity",[0]],["killer",[5]],["killer_player",[5]],["this",[8]]]),ja.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",[]]]),ja.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($a,"__esModule",{value:!0}),$a.initLootTableSchemas=void 0;const Ia=Pe,Pa=ja,za=ka;$a.initLootTableSchemas=function(e,t){const i=Ia.Reference.bind(void 0,e),n=Ia.StringNode.bind(void 0,t),r={conditions:(0,Ia.Opt)((0,Ia.ListNode)(i("loot_condition")))},o=s({functions:(0,Ia.Opt)((0,Ia.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 Pa.LootTableTypes){const e=[...a,...s];r.push({match:e=>e.getModel().get(new Ia.Path(["type"]))===t,node:n(o(e))})}return r.push({match:e=>!0,node:n(i)}),(0,Ia.SwitchNode)(r)}const c=a(Pa.LootConditions,"loot_condition_type",(e=>n({validator:"resource",params:{pool:e instanceof Array?e:"loot_condition_type"}}))),l=a(Pa.LootFunctions,"loot_function_type",(e=>n({validator:"resource",params:{pool:e instanceof Array?e:"loot_function_type"}}))),u=a(Pa.LootEntitySources,"entity_source",(e=>n({enum:e}))),d=a(Pa.LootCopySources,"copy_source",(e=>n({enum:e})));e.register("loot_table",(0,Ia.Mod)((0,Ia.ObjectNode)({type:(0,Ia.Opt)(n({validator:"resource",params:{pool:t.get("loot_context_type")}})),pools:(0,Ia.Opt)((0,Ia.ListNode)((0,Ia.Mod)((0,Ia.ObjectNode)(s({rolls:i("number_provider"),bonus_rolls:(0,Ia.Opt)(i("number_provider")),entries:(0,Ia.ListNode)(i("loot_entry"))},o),{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:(0,Ia.Opt)((0,Ia.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",(0,Ia.Mod)((0,Ia.ObjectNode)({type:n({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:(0,Ia.Opt)((0,Ia.Mod)((0,Ia.NumberNode)({integer:!0,min:1}),h)),quality:(0,Ia.Opt)((0,Ia.Mod)((0,Ia.NumberNode)({integer:!0}),h)),[Ia.Switch]:[{push:"type"}],[Ia.Case]:{"minecraft:alternatives":s({children:(0,Ia.ListNode)(i("loot_entry"))},o),"minecraft:dynamic":s({name:n()},o),"minecraft:group":s({children:(0,Ia.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:(0,Ia.ListNode)(i("loot_entry"))},o),"minecraft:tag":s({name:n({validator:"resource",params:{pool:"$tag/item"}}),expand:(0,Ia.Opt)((0,Ia.BooleanNode)())},o)}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),e.register("loot_function",(0,Ia.Mod)((0,Ia.ObjectNode)({function:l,[Ia.Switch]:[{push:"function"}],[Ia.Case]:(0,za.FunctionCases)(r,d,u)},{category:"function",context:"function"}),{default:()=>({function:"minecraft:set_count",count:1})})),e.register("loot_condition",(0,Ia.Mod)((0,Ia.ObjectNode)({condition:c,[Ia.Switch]:[{push:"condition"}],[Ia.Case]:(0,za.ConditionCases)(u)},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),e.register("attribute_modifier",(0,Ia.Mod)((0,Ia.ObjectNode)({attribute:n({validator:"resource",params:{pool:"attribute"}}),name:n(),amount:i("number_provider"),operation:n({enum:["addition","multiply_base","multiply_total"]}),slot:(0,Ia.StringOrList)(n({enum:"slot"}))},{context:"attribute_modifier"}),{default:()=>({attribute:"minecraft:generic.max_health",name:"",amount:1,operation:"addition",slot:"mainhand"})}))};var Ua={};Object.defineProperty(Ua,"__esModule",{value:!0}),Ua.initPackMcmetaSchemas=void 0;const Wa=Pe;Ua.initPackMcmetaSchemas=function(e,t){e.register("pack_mcmeta",(0,Wa.Mod)((0,Wa.ObjectNode)({pack:(0,Wa.Mod)((0,Wa.ObjectNode)({pack_format:(0,Wa.Mod)((0,Wa.NumberNode)({integer:!0,min:8,max:8}),{default:()=>8,canUpdate:(e,t)=>8!==t,update:()=>[{name:"pack_format",params:[8],newValue:8}]}),description:(0,Wa.Reference)(e,"text_component")}),{default:()=>({pack_format:8,description:""})})}),{default:()=>({pack:{pack_format:8,description:""}})}))};var Ha={};Object.defineProperty(Ha,"__esModule",{value:!0}),Ha.initPredicatesSchemas=void 0;const qa=Pe;Ha.initPredicatesSchemas=function(e,t){const i=qa.Reference.bind(void 0,e),n=qa.StringNode.bind(void 0,t),r=(0,qa.ChoiceNode)([{type:"string",node:n(),change:e=>"boolean"==typeof e||"number"==typeof e?e.toString():""},{type:"number",node:(0,qa.NumberNode)(),change:e=>"string"==typeof e?parseInt(e):0},{type:"object",node:(0,qa.ObjectNode)({min:(0,qa.Opt)((0,qa.NumberNode)({integer:!0})),max:(0,qa.Opt)((0,qa.NumberNode)({integer:!0}))}),change:e=>"number"==typeof e?{min:e,max:e}:{}},{type:"boolean",node:(0,qa.BooleanNode)(),change:e=>"true"===e||1===e}]);e.register("item_predicate",(0,qa.ObjectNode)({items:(0,qa.Opt)((0,qa.ListNode)(n({validator:"resource",params:{pool:"item"}}))),tag:(0,qa.Opt)(n({validator:"resource",params:{pool:"$tag/item"}})),count:i("int_bounds"),durability:i("int_bounds"),potion:(0,qa.Opt)(n({validator:"resource",params:{pool:"potion"}})),nbt:(0,qa.Opt)(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:(0,qa.Opt)((0,qa.ListNode)(i("enchantment_predicate")))},{context:"item"})),e.register("enchantment_predicate",(0,qa.ObjectNode)({enchantment:(0,qa.Opt)(n({validator:"resource",params:{pool:"enchantment"}})),levels:i("int_bounds")},{context:"enchantment"})),e.register("block_predicate",(0,qa.ObjectNode)({blocks:(0,qa.Opt)((0,qa.ListNode)(n({validator:"resource",params:{pool:"block"}}))),tag:(0,qa.Opt)(n({validator:"resource",params:{pool:"$tag/block"}})),nbt:(0,qa.Opt)(n({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:(0,qa.Opt)((0,qa.MapNode)(n(),r,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),e.register("fluid_predicate",(0,qa.ObjectNode)({fluid:(0,qa.Opt)(n({validator:"resource",params:{pool:"fluid"}})),tag:(0,qa.Opt)(n({validator:"resource",params:{pool:"$tag/fluid"}})),state:(0,qa.Opt)((0,qa.MapNode)(n(),r))},{context:"fluid"})),e.register("location_predicate",(0,qa.ObjectNode)({position:(0,qa.Opt)((0,qa.ObjectNode)({x:i("float_bounds"),y:i("float_bounds"),z:i("float_bounds")})),biome:(0,qa.Opt)(n({validator:"resource",params:{pool:"$worldgen/biome"}})),feature:(0,qa.Opt)(n({enum:t.get("worldgen/structure_feature").map((e=>e.slice(10)))})),dimension:(0,qa.Opt)(n({validator:"resource",params:{pool:"$dimension"}})),light:(0,qa.Opt)((0,qa.ObjectNode)({light:i("int_bounds")})),smokey:(0,qa.Opt)((0,qa.BooleanNode)()),block:(0,qa.Opt)(i("block_predicate")),fluid:(0,qa.Opt)(i("fluid_predicate"))},{context:"location"})),e.register("statistic_predicate",(0,qa.ObjectNode)({type:n({validator:"resource",params:{pool:"stat_type"}}),stat:n(),value:i("int_bounds"),[qa.Switch]:[{push:"type"}],[qa.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",(0,qa.ObjectNode)({gamemode:(0,qa.Opt)(n({enum:"gamemode"})),level:i("int_bounds"),advancements:(0,qa.Opt)((0,qa.MapNode)(n({validator:"resource",params:{pool:"$advancement"}}),(0,qa.ChoiceNode)([{type:"boolean",node:(0,qa.BooleanNode)(),change:e=>!0},{type:"object",node:(0,qa.MapNode)(n(),(0,qa.BooleanNode)())}]))),recipes:(0,qa.Opt)((0,qa.MapNode)(n({validator:"resource",params:{pool:"$recipe"}}),(0,qa.BooleanNode)())),stats:(0,qa.Opt)((0,qa.ListNode)(i("statistic_predicate"))),looking_at:(0,qa.Opt)(i("entity_predicate"))},{context:"player"})),e.register("status_effect_predicate",(0,qa.ObjectNode)({amplifier:i("int_bounds"),duration:i("int_bounds"),ambient:(0,qa.Opt)((0,qa.BooleanNode)()),visible:(0,qa.Opt)((0,qa.BooleanNode)())},{context:"status_effect"})),e.register("distance_predicate",(0,qa.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",(0,qa.ObjectNode)({type:(0,qa.Opt)(n({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),nbt:(0,qa.Opt)(n({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:(0,qa.Opt)(n({validator:"team"})),location:(0,qa.Opt)(i("location_predicate")),stepping_on:(0,qa.Opt)(i("location_predicate")),distance:(0,qa.Opt)(i("distance_predicate")),flags:(0,qa.Opt)((0,qa.ObjectNode)({is_on_fire:(0,qa.Opt)((0,qa.BooleanNode)()),is_sneaking:(0,qa.Opt)((0,qa.BooleanNode)()),is_sprinting:(0,qa.Opt)((0,qa.BooleanNode)()),is_swimming:(0,qa.Opt)((0,qa.BooleanNode)()),is_baby:(0,qa.Opt)((0,qa.BooleanNode)())})),equipment:(0,qa.Opt)((0,qa.MapNode)(n({enum:"slot"}),i("item_predicate"))),vehicle:(0,qa.Opt)(i("entity_predicate")),passenger:(0,qa.Opt)(i("entity_predicate")),targeted_entity:(0,qa.Opt)(i("entity_predicate")),player:(0,qa.Opt)(i("player_predicate")),lightning_bolt:(0,qa.Opt)((0,qa.ObjectNode)({blocks_set_on_fire:(0,qa.Opt)(i("int_bounds")),entity_struck:(0,qa.Opt)(i("entity_predicate"))})),fishing_hook:(0,qa.Opt)((0,qa.ObjectNode)({in_open_water:(0,qa.Opt)((0,qa.BooleanNode)())})),catType:(0,qa.Opt)(n({enum:"cat_texture"})),effects:(0,qa.Opt)((0,qa.MapNode)(n({validator:"resource",params:{pool:"mob_effect"}}),i("status_effect_predicate")))},{context:"entity"})),e.register("damage_source_predicate",(0,qa.ObjectNode)({is_explosion:(0,qa.Opt)((0,qa.BooleanNode)()),is_fire:(0,qa.Opt)((0,qa.BooleanNode)()),is_magic:(0,qa.Opt)((0,qa.BooleanNode)()),is_projectile:(0,qa.Opt)((0,qa.BooleanNode)()),is_lightning:(0,qa.Opt)((0,qa.BooleanNode)()),bypasses_armor:(0,qa.Opt)((0,qa.BooleanNode)()),bypasses_invulnerability:(0,qa.Opt)((0,qa.BooleanNode)()),bypasses_magic:(0,qa.Opt)((0,qa.BooleanNode)()),source_entity:(0,qa.Opt)(i("entity_predicate")),direct_entity:(0,qa.Opt)(i("entity_predicate"))},{context:"damage_source"})),e.register("damage_predicate",(0,qa.ObjectNode)({dealt:i("float_bounds"),taken:i("float_bounds"),blocked:(0,qa.Opt)((0,qa.BooleanNode)()),source_entity:(0,qa.Opt)(i("entity_predicate")),type:(0,qa.Opt)(i("damage_source_predicate"))},{context:"damage"}))};var Va={};Object.defineProperty(Va,"__esModule",{value:!0}),Va.initRecipeSchemas=void 0;const Ga=Pe;Va.initRecipeSchemas=function(e,t){const i=Ga.Reference.bind(void 0,e),n=Ga.StringNode.bind(void 0,t);e.register("recipe",(0,Ga.Mod)((0,Ga.ObjectNode)({type:n({validator:"resource",params:{pool:"recipe_serializer"}}),[Ga.Switch]:[{push:"type"}],[Ga.Case]:{"minecraft:crafting_shaped":{group:(0,Ga.Opt)(n({enum:"recipe_group",additional:!0})),pattern:(0,Ga.ListNode)(n()),key:(0,Ga.MapNode)(n(),i("recipe_ingredient")),result:i("recipe_result")},"minecraft:crafting_shapeless":{group:(0,Ga.Opt)(n()),ingredients:(0,Ga.ListNode)(i("recipe_ingredient")),result:i("recipe_result")},"minecraft:smelting":{group:(0,Ga.Opt)(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:(0,Ga.Opt)((0,Ga.NumberNode)()),cookingtime:(0,Ga.Opt)((0,Ga.Mod)((0,Ga.NumberNode)({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:(0,Ga.Opt)(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:(0,Ga.Opt)((0,Ga.NumberNode)()),cookingtime:(0,Ga.Opt)((0,Ga.Mod)((0,Ga.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:(0,Ga.Opt)(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:(0,Ga.Opt)((0,Ga.NumberNode)()),cookingtime:(0,Ga.Opt)((0,Ga.Mod)((0,Ga.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:(0,Ga.Opt)(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:(0,Ga.Opt)((0,Ga.NumberNode)()),cookingtime:(0,Ga.Opt)((0,Ga.Mod)((0,Ga.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:(0,Ga.Opt)(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),count:(0,Ga.NumberNode)({integer:!0})},"minecraft:smithing":{group:(0,Ga.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",(0,Ga.Mod)((0,Ga.ChoiceNode)([{type:"object",node:i("recipe_ingredient_object"),change:e=>e[0]},{type:"list",node:(0,Ga.ListNode)(i("recipe_ingredient_object")),change:e=>[e]}]),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_ingredient_object",(0,Ga.Mod)((0,Ga.ObjectNode)({item:(0,Ga.Opt)(n({validator:"resource",params:{pool:"item"}})),tag:(0,Ga.Opt)(n({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_result",(0,Ga.Mod)((0,Ga.ObjectNode)({item:n({validator:"resource",params:{pool:"item"}}),count:(0,Ga.Opt)((0,Ga.Mod)((0,Ga.NumberNode)({integer:!0}),{default:()=>1}))}),{default:()=>({item:"minecraft:stone"})}))};var Ka={};Object.defineProperty(Ka,"__esModule",{value:!0}),Ka.initTagsSchemas=void 0;const Xa=Pe;Ka.initTagsSchemas=function(e,t){const i=Xa.StringNode.bind(void 0,t),n=e=>(0,Xa.Mod)((0,Xa.ObjectNode)({replace:(0,Xa.Opt)((0,Xa.BooleanNode)()),values:(0,Xa.ListNode)((0,Xa.ChoiceNode)([{type:"string",node:i({validator:"resource",params:{pool:e,allowTag:!0}}),change:e=>e.id},{type:"object",node:(0,Xa.ObjectNode)({id:i({validator:"resource",params:{pool:e,allowTag:!0,allowUnknown:!0}}),required:(0,Xa.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 Ja={};Object.defineProperty(Ja,"__esModule",{value:!0}),Ja.initTextComponentSchemas=void 0;const Ya=Pe;Ja.initTextComponentSchemas=function(e,t){const i=Ya.Reference.bind(void 0,e),n=Ya.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",(0,Ya.Mod)((0,Ya.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:(0,Ya.NumberNode)(),change:e=>{const t=parseFloat(r(e));return isFinite(t)?t:e?1:0}},{type:"boolean",node:(0,Ya.BooleanNode)(),change:e=>{const t=r(e);return"true"===t||"false"===t?"true"===t:!!t}}],{context:"text_component"}),{default:()=>({text:""})}));const o={color:(0,Ya.Opt)(n()),font:(0,Ya.Opt)(n()),bold:(0,Ya.Opt)((0,Ya.BooleanNode)()),italic:(0,Ya.Opt)((0,Ya.BooleanNode)()),underlined:(0,Ya.Opt)((0,Ya.BooleanNode)()),strikethrough:(0,Ya.Opt)((0,Ya.BooleanNode)()),obfuscated:(0,Ya.Opt)((0,Ya.BooleanNode)()),insertion:(0,Ya.Opt)(n()),clickEvent:(0,Ya.Opt)((0,Ya.ObjectNode)({action:n({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[Ya.Switch]:[{push:"action"}],[Ya.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:(0,Ya.Opt)((0,Ya.ObjectNode)({action:n({enum:["show_text","show_item","show_entity"]}),[Ya.Switch]:[{push:"action"}],[Ya.Case]:{show_text:{value:(0,Ya.Opt)(i("text_component")),contents:(0,Ya.Opt)(i("text_component"))},show_item:{value:(0,Ya.Opt)(n({validator:"nbt",params:{module:"util::InventoryItem"}})),contents:(0,Ya.Opt)((0,Ya.ObjectNode)({id:n({validator:"resource",params:{pool:"item"}}),count:(0,Ya.Opt)((0,Ya.NumberNode)({integer:!0})),tag:(0,Ya.Opt)(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"id"}]}}}))}))},show_entity:{value:(0,Ya.Opt)((0,Ya.ObjectNode)({name:(0,Ya.Opt)(n()),type:(0,Ya.Opt)(n()),id:(0,Ya.Opt)(n())})),contents:(0,Ya.Opt)((0,Ya.Mod)((0,Ya.ObjectNode)({name:(0,Ya.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:(0,Ya.Opt)(i("text_component_list"))};e.register("text_component_object",(0,Ya.Mod)((0,Ya.ChoiceNode)([{type:"text",match:e=>"object"==typeof e,change:e=>({text:""}),priority:-1,node:(0,Ya.ObjectNode)(s({text:n()},o))},{type:"translation",match:e=>void 0!==(null==e?void 0:e.translate),change:e=>({translate:""}),node:(0,Ya.ObjectNode)(s({translate:n(),with:(0,Ya.Opt)(i("text_component_list"))},o))},{type:"score",match:e=>void 0!==(null==e?void 0:e.score),change:e=>({score:{}}),node:(0,Ya.ObjectNode)(s({score:(0,Ya.ObjectNode)({name:n({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:n({validator:"objective"}),value:(0,Ya.Opt)(n())})},o))},{type:"selector",match:e=>void 0!==(null==e?void 0:e.selector),change:e=>({selector:""}),node:(0,Ya.ObjectNode)(s({selector:n({validator:"entity",params:{amount:"multiple",type:"entities"}}),separator:(0,Ya.Opt)(i("text_component"))},o))},{type:"keybind",match:e=>void 0!==(null==e?void 0:e.keybind),change:e=>({keybind:""}),node:(0,Ya.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:(0,Ya.ObjectNode)(s({nbt:n({validator:"nbt_path"}),block:(0,Ya.Opt)(n({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:(0,Ya.Opt)(n({validator:"entity",params:{amount:"multiple",type:"entities"}})),storage:(0,Ya.Opt)(n({validator:"resource",params:{pool:"$storage"}})),interpret:(0,Ya.Opt)((0,Ya.BooleanNode)()),separator:(0,Ya.Opt)(i("text_component"))},o))}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),e.register("text_component_list",(0,Ya.Mod)((0,Ya.ListNode)(i("text_component")),{default:()=>[{text:""}]}))};var Za={},Qa={};Object.defineProperty(Qa,"__esModule",{value:!0}),Qa.initBiomeSchemas=void 0;const es=Pe;Qa.initBiomeSchemas=function(e,t){const i=es.StringNode.bind(void 0,t);e.register("biome",(0,es.Mod)((0,es.ObjectNode)({temperature:(0,es.NumberNode)(),downfall:(0,es.NumberNode)(),precipitation:i({enum:["none","rain","snow"]}),temperature_modifier:(0,es.Opt)(i({enum:["none","frozen"]})),category:i({enum:"biome_category"}),creature_spawn_probability:(0,es.Opt)((0,es.NumberNode)({min:0,max:1})),effects:(0,es.ObjectNode)({sky_color:(0,es.NumberNode)({color:!0}),fog_color:(0,es.NumberNode)({color:!0}),water_color:(0,es.NumberNode)({color:!0}),water_fog_color:(0,es.NumberNode)({color:!0}),grass_color:(0,es.Opt)((0,es.NumberNode)({color:!0})),foliage_color:(0,es.Opt)((0,es.NumberNode)({color:!0})),grass_color_modifier:(0,es.Opt)(i({enum:["none","dark_forest","swamp"]})),ambient_sound:(0,es.Opt)(i()),mood_sound:(0,es.Opt)((0,es.ObjectNode)({sound:i(),tick_delay:(0,es.NumberNode)({integer:!0}),block_search_extent:(0,es.NumberNode)({integer:!0}),offset:(0,es.NumberNode)()})),additions_sound:(0,es.Opt)((0,es.ObjectNode)({sound:i(),tick_chance:(0,es.NumberNode)({min:0,max:1})})),music:(0,es.Opt)((0,es.ObjectNode)({sound:i(),min_delay:(0,es.NumberNode)({integer:!0,min:0}),max_delay:(0,es.NumberNode)({integer:!0,min:0}),replace_current_music:(0,es.BooleanNode)()})),particle:(0,es.Opt)((0,es.ObjectNode)({options:(0,es.ObjectNode)({type:i()}),probability:(0,es.NumberNode)({min:0,max:1})}))}),spawners:(0,es.MapNode)(i({enum:["monster","creature","ambient","axolotls","underground_water_creature","water_creature","water_ambient","misc"]}),(0,es.Mod)((0,es.ListNode)((0,es.ObjectNode)({type:i({validator:"resource",params:{pool:"entity_type"}}),weight:(0,es.NumberNode)({integer:!0}),minCount:(0,es.NumberNode)({integer:!0}),maxCount:(0,es.NumberNode)({integer:!0})})),{category:()=>"pool",default:()=>[{type:"minecraft:bat",weight:1}]})),spawn_costs:(0,es.MapNode)(i({validator:"resource",params:{pool:"entity_type"}}),(0,es.Mod)((0,es.ObjectNode)({energy_budget:(0,es.NumberNode)(),charge:(0,es.NumberNode)()},{category:"function"}),{default:()=>({energy_budget:.12,charge:1})})),carvers:(0,es.MapNode)(i({enum:["air","liquid"]}),(0,es.Mod)((0,es.ListNode)(i({validator:"resource",params:{pool:"$worldgen/configured_carver"}})),{default:()=>["minecraft:cave"]})),features:(0,es.ListNode)((0,es.Mod)((0,es.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 ts={};Object.defineProperty(ts,"__esModule",{value:!0}),ts.initCarverSchemas=void 0;const is=Pe,ns=ka;ts.initCarverSchemas=function(e,t){const i=is.Reference.bind(void 0,e),n=is.StringNode.bind(void 0,t),r={vertical_rotation:(0,ns.FloatProvider)(),shape:(0,is.ObjectNode)({distance_factor:(0,ns.FloatProvider)(),thickness:(0,ns.FloatProvider)(),width_smoothness:(0,is.NumberNode)({integer:!0,min:0}),horizontal_radius_factor:(0,ns.FloatProvider)(),vertical_radius_default_factor:(0,is.NumberNode)(),vertical_radius_center_factor:(0,is.NumberNode)()})},o={horizontal_radius_multiplier:(0,ns.FloatProvider)(),vertical_radius_multiplier:(0,ns.FloatProvider)(),floor_level:(0,ns.FloatProvider)({min:-1,max:1})};e.register("configured_carver",(0,is.Mod)((0,is.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/carver"}}),config:(0,is.ObjectNode)({probability:(0,is.NumberNode)({min:0,max:1}),y:i("height_provider"),yScale:(0,ns.FloatProvider)(),lava_level:i("vertical_anchor"),debug_settings:(0,is.Opt)((0,is.ObjectNode)({debug_mode:(0,is.Opt)((0,is.BooleanNode)()),air_state:(0,is.Opt)(i("block_state")),water_state:(0,is.Opt)(i("block_state")),lava_state:(0,is.Opt)(i("block_state")),barrier_state:(0,is.Opt)(i("block_state"))})),[is.Switch]:["pop",{push:"type"}],[is.Case]:{"minecraft:canyon":r,"minecraft:cave":o,"minecraft:nether_cave":o}})},{context:"carver"}),{default:()=>({type:"minecraft:cave",config:{probability:.1}})}))};var rs={};Object.defineProperty(rs,"__esModule",{value:!0}),rs.initDecoratorSchemas=void 0;const os=Pe,as=ka;rs.initDecoratorSchemas=function(e,t){const i=os.Reference.bind(void 0,e),n=os.StringNode.bind(void 0,t);e.register("decorator",(0,os.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/placement_modifier_type"}}),[os.Switch]:[{push:"type"}],[os.Case]:{"minecraft:block_predicate_filter":{predicate:i("block_predicate_worldgen")},"minecraft:carving_mask":{step:n({enum:"generation_step"})},"minecraft:rarity_filter":{chance:(0,os.NumberNode)({integer:!0,min:0})},"minecraft:count":{count:(0,as.IntProvider)({min:0,max:256})},"minecraft:count_on_every_layer":{count:(0,as.IntProvider)({min:0,max:256})},"minecraft:noise_threshold_count":{noise_level:(0,os.NumberNode)(),below_noise:(0,os.NumberNode)({integer:!0}),above_noise:(0,os.NumberNode)({integer:!0})},"minecraft:noise_based_count":{noise_to_count_ratio:(0,os.NumberNode)({integer:!0}),noise_factor:(0,os.NumberNode)(),noise_offset:(0,os.Opt)((0,os.NumberNode)())},"minecraft:environment_scan":{direction_of_search:n({enum:["up","down"]}),max_steps:(0,os.NumberNode)({integer:!0,min:1,max:32}),target_condition:i("block_predicate_worldgen"),allowed_search_condition:(0,os.Opt)(i("block_predicate_worldgen"))},"minecraft:heightmap":{heightmap:n({enum:"heightmap_type"})},"minecraft:height_range":{height:i("height_provider")},"minecraft:random_offset":{xz_spread:(0,as.IntProvider)({min:-16,max:16}),y_spread:(0,as.IntProvider)({min:-16,max:16})},"minecraft:surface_relative_threshold_filter":{heightmap:n({enum:"heightmap_type"}),min_inclusive:(0,os.Opt)((0,os.NumberNode)({integer:!0})),max_inclusive:(0,os.Opt)((0,os.NumberNode)({integer:!0}))},"minecraft:surface_water_depth_filter":{max_water_depth:(0,os.NumberNode)({integer:!0})}}},{context:"decorator",category:"predicate"}))};var ss={},cs={};Object.defineProperty(cs,"__esModule",{value:!0}),cs.initProcessorListSchemas=cs.Processors=void 0;const ls=Pe;cs.initProcessorListSchemas=function(e,t){const i=ls.Reference.bind(void 0,e),n=ls.StringNode.bind(void 0,t);cs.Processors=(0,ls.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",(0,ls.Mod)((0,ls.ObjectNode)({processors:(0,ls.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",(0,ls.Mod)((0,ls.ObjectNode)({processor_type:n({validator:"resource",params:{pool:"worldgen/structure_processor"}}),[ls.Switch]:[{push:"processor_type"}],[ls.Case]:{"minecraft:block_age":{mossiness:(0,ls.NumberNode)()},"minecraft:block_ignore":{blocks:(0,ls.ListNode)(i("block_state"))},"minecraft:block_rot":{integrity:(0,ls.NumberNode)({min:0,max:1})},"minecraft:gravity":{heightmap:n({enum:"heightmap_type"}),offset:(0,ls.NumberNode)({integer:!0})},"minecraft:protected_blocks":{value:n({validator:"resource",params:{pool:"$tag/block"}})},"minecraft:rule":{rules:(0,ls.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",(0,ls.Mod)((0,ls.ObjectNode)({position_predicate:(0,ls.Opt)(i("pos_rule_test")),location_predicate:i("rule_test"),input_predicate:i("rule_test"),output_state:i("block_state"),output_nbt:(0,ls.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:(0,ls.Opt)((0,ls.NumberNode)({min:0,max:255,integer:!0})),max_dist:(0,ls.Opt)((0,ls.NumberNode)({min:0,max:255,integer:!0})),min_chance:(0,ls.Opt)((0,ls.NumberNode)({min:0,max:1})),max_chance:(0,ls.Opt)((0,ls.NumberNode)({min:0,max:1}))};e.register("pos_rule_test",(0,ls.ObjectNode)({predicate_type:n({validator:"resource",params:{pool:"pos_rule_test"}}),[ls.Switch]:[{push:"predicate_type"}],[ls.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",(0,ls.ObjectNode)({predicate_type:n({validator:"resource",params:{pool:"rule_test"}}),[ls.Switch]:[{push:"predicate_type"}],[ls.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:(0,ls.NumberNode)({min:0,max:1})},"minecraft:random_blockstate_match":{block_state:i("block_state"),probability:(0,ls.NumberNode)({min:0,max:1})},"minecraft:tag_match":{tag:n({validator:"resource",params:{pool:"$tag/block"}})}}},{context:"rule_test",disableSwitchContext:!0}))},Object.defineProperty(ss,"__esModule",{value:!0}),ss.initFeatureSchemas=void 0;const us=Pe,ds=ka,hs=cs;ss.initFeatureSchemas=function(e,t){const i=us.Reference.bind(void 0,e),n=us.StringNode.bind(void 0,t),r=(0,us.ChoiceNode)([{type:"string",node:n({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},{type:"object",node:i("configured_feature")}],{choiceContext:"feature"}),o=(0,us.ChoiceNode)([{type:"string",node:n({validator:"resource",params:{pool:"$worldgen/placed_feature"}})},{type:"object",node:i("placed_feature")}],{choiceContext:"placed_feature"}),a={tries:(0,us.Opt)((0,us.NumberNode)({integer:!0,min:1})),xz_spread:(0,us.Opt)((0,us.NumberNode)({integer:!0,min:0})),y_spread:(0,us.Opt)((0,us.NumberNode)({integer:!0,min:0})),feature:o},l={state:i("block_state"),radius:(0,ds.IntProvider)({min:0,max:8}),half_height:(0,us.NumberNode)({integer:!0,min:0,max:4}),targets:(0,us.ListNode)(i("block_state"))},u={cap_provider:i("block_state_provider"),stem_provider:i("block_state_provider"),foliage_radius:(0,us.Opt)((0,us.NumberNode)({integer:!0}))},d=(0,us.ObjectNode)({target:i("rule_test"),state:i("block_state")}),h={size:(0,us.NumberNode)({integer:!0,min:0,max:64}),discard_chance_on_air_exposure:(0,us.NumberNode)({min:0,max:1}),targets:(0,us.ListNode)(d)},p={surface:n({enum:"cave_surface"}),depth:(0,ds.IntProvider)({min:1,max:128}),vertical_range:(0,us.NumberNode)({integer:!0,min:1,max:256}),extra_bottom_block_chance:(0,us.NumberNode)({min:0,max:1}),extra_edge_column_chance:(0,us.NumberNode)({min:0,max:1}),vegetation_chance:(0,us.NumberNode)({min:0,max:1}),xz_radius:(0,ds.IntProvider)(),replaceable:n({validator:"resource",params:{pool:"$tag/block"}}),ground_state:i("block_state_provider"),vegetation_feature:o};e.register("configured_feature",(0,us.Mod)((0,us.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/feature"}}),config:(0,us.ObjectNode)({[us.Switch]:["pop",{push:"type"}],[us.Case]:{"minecraft:bamboo":{probability:(0,us.NumberNode)({min:0,max:1})},"minecraft:basalt_columns":{reach:(0,ds.IntProvider)({min:0,max:3}),height:(0,ds.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:(0,us.BooleanNode)(),layers:(0,us.ListNode)((0,us.ObjectNode)({height:(0,ds.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:(0,ds.IntProvider)({min:0,max:16}),rim_size:(0,ds.IntProvider)({min:0,max:16})},"minecraft:disk":l,"minecraft:dripstone_cluster":{floor_to_ceiling_search_range:(0,us.NumberNode)({integer:!0,min:1,max:512}),height:(0,ds.IntProvider)({min:0,max:128}),radius:(0,ds.IntProvider)({min:0,max:128}),max_stalagmite_stalactite_height_diff:(0,us.NumberNode)({integer:!0,min:0,max:64}),height_deviation:(0,us.NumberNode)({integer:!0,min:1,max:64}),dripstone_block_layer_thickness:(0,ds.IntProvider)({min:0,max:128}),density:(0,ds.FloatProvider)({min:0,max:2}),wetness:(0,ds.FloatProvider)({min:0,max:2}),chance_of_dripstone_column_at_max_distance_from_center:(0,us.NumberNode)({min:0,max:1}),max_distance_from_edge_affecting_chance_of_dripstone_column:(0,us.NumberNode)({integer:!0,min:1,max:64}),max_distance_from_center_affecting_height_bias:(0,us.NumberNode)({integer:!0,min:1,max:64})},"minecraft:end_gateway":{exact:(0,us.BooleanNode)(),exit:(0,us.Opt)(i("block_pos"))},"minecraft:end_spike":{crystal_invulnerable:(0,us.Opt)((0,us.BooleanNode)()),crystal_beam_target:(0,us.Opt)(i("block_pos")),spikes:(0,us.ListNode)((0,us.ObjectNode)({centerX:(0,us.Opt)((0,us.NumberNode)({integer:!0})),centerZ:(0,us.Opt)((0,us.NumberNode)({integer:!0})),radius:(0,us.Opt)((0,us.NumberNode)({integer:!0})),height:(0,us.Opt)((0,us.NumberNode)({integer:!0})),guarded:(0,us.Opt)((0,us.BooleanNode)())}))},"minecraft:fill_layer":{state:i("block_state"),height:(0,us.NumberNode)({integer:!0,min:0,max:255})},"minecraft:flower":a,"minecraft:forest_rock":{state:i("block_state")},"minecraft:fossil":{max_empty_corners_allowed:(0,us.NumberNode)({integer:!0,min:0,max:7}),fossil_structures:(0,us.ListNode)(n({validator:"resource",params:{pool:"$structure"}})),overlay_structures:(0,us.ListNode)(n({validator:"resource",params:{pool:"$structure"}})),fossil_processors:hs.Processors,overlay_processors:hs.Processors},"minecraft:geode":{blocks:(0,us.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:(0,us.ListNode)(i("block_state")),cannot_replace:n({validator:"resource",params:{pool:"$tag/block"}}),invalid_blocks:n({validator:"resource",params:{pool:"$tag/block"}})}),layers:(0,us.ObjectNode)({filling:(0,us.Opt)((0,us.NumberNode)({min:.01,max:50})),inner_layer:(0,us.Opt)((0,us.NumberNode)({min:.01,max:50})),middle_layer:(0,us.Opt)((0,us.NumberNode)({min:.01,max:50})),outer_layer:(0,us.Opt)((0,us.NumberNode)({min:.01,max:50}))}),crack:(0,us.ObjectNode)({generate_crack_chance:(0,us.Opt)((0,us.NumberNode)({min:0,max:1})),base_crack_size:(0,us.Opt)((0,us.NumberNode)({min:0,max:5})),crack_point_offset:(0,us.Opt)((0,us.NumberNode)({min:0,max:10}))}),noise_multiplier:(0,us.Opt)((0,us.NumberNode)({min:0,max:1})),use_potential_placements_chance:(0,us.Opt)((0,us.NumberNode)({min:0,max:1})),use_alternate_layer0_chance:(0,us.Opt)((0,us.NumberNode)({min:0,max:1})),placements_require_layer0_alternate:(0,us.Opt)((0,us.BooleanNode)()),outer_wall_distance:(0,us.Opt)((0,ds.IntProvider)({min:1,max:20})),distribution_points:(0,us.Opt)((0,ds.IntProvider)({min:1,max:20})),point_offset:(0,us.Opt)((0,ds.IntProvider)({min:0,max:10})),min_gen_offset:(0,us.Opt)((0,us.NumberNode)({integer:!0})),max_gen_offset:(0,us.Opt)((0,us.NumberNode)({integer:!0})),invalid_blocks_threshold:(0,us.NumberNode)({integer:!0})},"minecraft:glow_lichen":{search_range:(0,us.Opt)((0,us.NumberNode)({min:1,max:64,integer:!0})),chance_of_spreading:(0,us.Opt)((0,us.NumberNode)({min:0,max:1})),can_place_on_floor:(0,us.Opt)((0,us.BooleanNode)()),can_place_on_ceiling:(0,us.Opt)((0,us.BooleanNode)()),can_place_on_wall:(0,us.Opt)((0,us.BooleanNode)()),can_be_placed_on:(0,us.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:(0,us.Opt)((0,us.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:(0,us.Opt)((0,us.NumberNode)({integer:!0,min:1,max:512})),column_radius:(0,ds.IntProvider)({min:0,max:60}),height_scale:(0,ds.FloatProvider)({min:0,max:20}),max_column_radius_to_cave_height_ratio:(0,us.NumberNode)({min:0,max:1}),stalactite_bluntness:(0,ds.FloatProvider)({min:.1,max:10}),stalagmite_bluntness:(0,ds.FloatProvider)({min:.1,max:10}),wind_speed:(0,ds.FloatProvider)({min:0,max:2}),min_radius_for_wind:(0,us.NumberNode)({integer:!0,min:0,max:100}),min_bluntness_for_wind:(0,us.NumberNode)({min:0,max:5})},"minecraft:nether_forest_vegetation":{state_provider:i("block_state_provider"),spread_width:(0,us.NumberNode)({integer:!0,min:1}),spread_height:(0,us.NumberNode)({integer:!0,min:1})},"minecraft:netherrack_replace_blobs":{state:i("block_state"),target:i("block_state"),radius:(0,ds.IntProvider)({min:0,max:12})},"minecraft:no_bonemeal_flower":a,"minecraft:ore":h,"minecraft:pointed_dripstone":{chance_of_taller_dripstone:(0,us.Opt)((0,us.NumberNode)({min:0,max:1})),chance_of_directional_spread:(0,us.Opt)((0,us.NumberNode)({min:0,max:1})),chance_of_spread_radius2:(0,us.Opt)((0,us.NumberNode)({min:0,max:1})),chance_of_spread_radius3:(0,us.Opt)((0,us.NumberNode)({min:0,max:1}))},"minecraft:random_patch":a,"minecraft:random_boolean_selector":{feature_false:o,feature_true:o},"minecraft:random_selector":{features:(0,us.ListNode)((0,us.ObjectNode)({chance:(0,us.NumberNode)({min:0,max:1}),feature:o})),default:o},"minecraft:replace_single_block":{targets:(0,us.ListNode)(d)},"minecraft:root_system":{required_vertical_space_for_tree:(0,us.NumberNode)({integer:!0,min:1,max:64}),root_radius:(0,us.NumberNode)({integer:!0,min:1,max:64}),root_placement_attempts:(0,us.NumberNode)({integer:!0,min:1,max:256}),root_column_max_height:(0,us.NumberNode)({integer:!0,min:1,max:4096}),hanging_root_radius:(0,us.NumberNode)({integer:!0,min:1,max:64}),hanging_roots_vertical_span:(0,us.NumberNode)({integer:!0,min:0,max:16}),hanging_root_placement_attempts:(0,us.NumberNode)({integer:!0,min:0,max:256}),allowed_vertical_water_for_tree:(0,us.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:(0,ds.IntProvider)({min:0,max:256})},"minecraft:seagrass":{probability:(0,us.NumberNode)({min:0,max:1})},"minecraft:simple_block":{to_place:i("block_state_provider")},"minecraft:simple_random_selector":{features:(0,us.ListNode)(o)},"minecraft:spring_feature":{state:i("fluid_state"),rock_count:(0,us.NumberNode)({integer:!0}),hole_count:(0,us.NumberNode)({integer:!0}),requires_block_below:(0,us.BooleanNode)(),valid_blocks:(0,us.ListNode)(n({validator:"resource",params:{pool:"block"}}))},"minecraft:tree":{ignore_vines:(0,us.Opt)((0,us.BooleanNode)()),force_dirt:(0,us.Opt)((0,us.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:(0,us.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/trunk_placer_type"}}),base_height:(0,us.NumberNode)({integer:!0,min:0,max:32}),height_rand_a:(0,us.NumberNode)({integer:!0,min:0,max:24}),height_rand_b:(0,us.NumberNode)({integer:!0,min:0,max:24}),[us.Switch]:[{push:"type"}],[us.Case]:{"minecraft:bending_trunk_placer":{bend_length:(0,ds.IntProvider)({min:1,max:64}),min_height_for_leaves:(0,us.Opt)((0,us.NumberNode)({integer:!0,min:1}))}}},{context:"trunk_placer"}),foliage_placer:(0,us.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/foliage_placer_type"}}),radius:(0,ds.IntProvider)({min:0,max:16}),offset:(0,ds.IntProvider)({min:0,max:16}),[us.Switch]:[{push:"type"}],[us.Case]:{"minecraft:blob_foliage_placer":{height:(0,us.NumberNode)({integer:!0,min:0,max:16})},"minecraft:bush_foliage_placer":{height:(0,us.NumberNode)({integer:!0,min:0,max:16})},"minecraft:fancy_foliage_placer":{height:(0,us.NumberNode)({integer:!0,min:0,max:16})},"minecraft:jungle_foliage_placer":{height:(0,us.NumberNode)({integer:!0,min:0,max:16})},"minecraft:mega_pine_foliage_placer":{crown_height:(0,ds.IntProvider)({min:0,max:24})},"minecraft:pine_foliage_placer":{height:(0,ds.IntProvider)({min:0,max:24})},"minecraft:random_spread_foliage_placer":{foliage_height:(0,ds.IntProvider)({min:1,max:512}),leaf_placement_attempts:(0,us.NumberNode)({integer:!0,min:0,max:256})},"minecraft:spruce_foliage_placer":{trunk_height:(0,ds.IntProvider)({min:0,max:24})}}},{context:"foliage_placer",disableSwitchContext:!0}),decorators:(0,us.ListNode)((0,us.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/tree_decorator_type"}}),[us.Switch]:[{push:"type"}],[us.Case]:{"minecraft:alter_ground":{provider:i("block_state_provider")},"minecraft:beehive":{probability:(0,us.NumberNode)({min:0,max:1})},"minecraft:cocoa":{probability:(0,us.NumberNode)({min:0,max:1})}}},{context:"tree_decorator"}))},"minecraft:twisting_vines":{spread_width:(0,us.NumberNode)({integer:!0,min:1}),spread_height:(0,us.NumberNode)({integer:!0,min:1}),max_height:(0,us.NumberNode)({integer:!0,min:1})},"minecraft:underwater_magma":{floor_search_range:(0,us.NumberNode)({integer:!0,min:0,max:512}),placement_radius_around_floor:(0,us.NumberNode)({integer:!0,min:0,max:64}),placement_probability_per_valid_position:(0,us.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",(0,us.Mod)((0,us.ObjectNode)({feature:r,placement:(0,us.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",(0,us.Mod)((0,us.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/feature_size_type"}}),min_clipped_height:(0,us.Opt)((0,us.NumberNode)({min:0,max:80})),[us.Switch]:[{push:"type"}],[us.Case]:{"minecraft:two_layers_feature_size":{limit:(0,us.Opt)((0,us.NumberNode)({integer:!0,min:0,max:81})),lower_size:(0,us.Opt)((0,us.NumberNode)({integer:!0,min:0,max:16})),upper_size:(0,us.Opt)((0,us.NumberNode)({integer:!0,min:0,max:16}))},"minecraft:three_layers_feature_size":{limit:(0,us.Opt)((0,us.NumberNode)({integer:!0,min:0,max:80})),upper_limit:(0,us.Opt)((0,us.NumberNode)({integer:!0,min:0,max:80})),lower_size:(0,us.Opt)((0,us.NumberNode)({integer:!0,min:0,max:16})),middle_size:(0,us.Opt)((0,us.NumberNode)({integer:!0,min:0,max:16})),upper_size:(0,us.Opt)((0,us.NumberNode)({integer:!0,min:0,max:16}))}}},{disableSwitchContext:!0}),{default:()=>({type:"minecraft:two_layers_feature_size"})}));const m={seed:(0,us.NumberNode)({integer:!0}),noise:i("noise_parameters"),scale:(0,us.Mod)((0,us.NumberNode)({min:Number.MIN_VALUE}),{default:()=>1})};e.register("block_state_provider",(0,us.Mod)((0,us.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/block_state_provider_type"}}),[us.Switch]:[{push:"type"}],[us.Case]:{"minecraft:dual_noise_provider":c(s({},m),{variety:(0,ds.InclusiveRange)({integer:!0,min:1,max:64}),slow_noise:i("noise_parameters"),slow_scale:(0,us.Mod)((0,us.NumberNode)({min:Number.MIN_VALUE}),{default:()=>1}),states:(0,us.ListNode)(i("block_state"))}),"minecraft:noise_threshold_provider":c(s({},m),{threshold:(0,us.NumberNode)({min:-1,max:1}),high_chance:(0,us.NumberNode)({min:0,max:1}),default_state:i("block_state"),low_states:(0,us.ListNode)(i("block_state")),high_states:(0,us.ListNode)(i("block_state"))}),"minecraft:noise_provider":c(s({},m),{states:(0,us.ListNode)(i("block_state"))}),"minecraft:randomized_int_state_provider":{property:n(),values:(0,ds.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:(0,us.ListNode)((0,us.Mod)((0,us.ObjectNode)({weight:(0,us.NumberNode)({integer:!0,min:1}),data:i("block_state")}),{default:()=>({data:{}})}))}}},{context:"block_state_provider"}),{default:()=>({type:"minecraft:simple_state_provider"})}));const f={offset:(0,us.Opt)((0,us.ListNode)((0,us.NumberNode)({integer:!0,min:-16,max:16}),{minLength:3,maxLength:3}))};e.register("block_predicate_worldgen",(0,us.Mod)((0,us.ObjectNode)({type:n({validator:"resource",params:{pool:"block_predicate_type"}}),[us.Switch]:[{push:"type"}],[us.Case]:{"minecraft:all_of":{predicates:(0,us.ListNode)(i("block_predicate_worldgen"))},"minecraft:any_of":{predicates:(0,us.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:(0,us.ListNode)(n({validator:"resource",params:{pool:"block"}}))}),"minecraft:matching_fluids":c(s({},f),{fluids:(0,us.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 ps={};Object.defineProperty(ps,"__esModule",{value:!0}),ps.initNoiseSettingsSchemas=void 0;const ms=Pe,fs=ka;ps.initNoiseSettingsSchemas=function(e,t){const i=ms.Reference.bind(void 0,e),n=ms.StringNode.bind(void 0,t);e.register("noise_settings",(0,ms.Mod)((0,ms.ObjectNode)({sea_level:(0,ms.NumberNode)({integer:!0}),disable_mob_generation:(0,ms.BooleanNode)(),noise_caves_enabled:(0,ms.BooleanNode)(),noodle_caves_enabled:(0,ms.BooleanNode)(),aquifers_enabled:(0,ms.BooleanNode)(),ore_veins_enabled:(0,ms.BooleanNode)(),legacy_random_source:(0,ms.BooleanNode)(),default_block:i("block_state"),default_fluid:i("block_state"),noise:(0,ms.ObjectNode)({min_y:(0,ms.NumberNode)({integer:!0,min:-2048,max:2047}),height:(0,ms.NumberNode)({integer:!0,min:0,max:4096}),size_horizontal:(0,ms.NumberNode)({integer:!0}),size_vertical:(0,ms.NumberNode)({integer:!0}),island_noise_override:(0,ms.Opt)((0,ms.BooleanNode)()),amplified:(0,ms.Opt)((0,ms.BooleanNode)()),large_biomes:(0,ms.Opt)((0,ms.BooleanNode)()),sampling:(0,ms.ObjectNode)({xz_scale:(0,ms.NumberNode)(),y_scale:(0,ms.NumberNode)(),xz_factor:(0,ms.NumberNode)(),y_factor:(0,ms.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:()=>fs.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",(0,ms.ObjectNode)({target:(0,ms.NumberNode)(),size:(0,ms.NumberNode)({integer:!0,min:0}),offset:(0,ms.NumberNode)({integer:!0})})),e.register("generator_structures",(0,ms.ObjectNode)({stronghold:(0,ms.Opt)((0,ms.ObjectNode)({distance:(0,ms.NumberNode)({integer:!0,min:0,max:1023}),spread:(0,ms.NumberNode)({integer:!0,min:0,max:1023}),count:(0,ms.NumberNode)({integer:!0,min:1,max:4095})})),structures:(0,ms.MapNode)(n({validator:"resource",params:{pool:"worldgen/structure_feature"}}),(0,ms.Mod)((0,ms.ObjectNode)({spacing:(0,ms.NumberNode)({integer:!0,min:0,max:4096}),separation:(0,ms.Mod)((0,ms.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:(0,ms.NumberNode)({integer:!0,min:0})},{context:"generator_structure"}),{default:()=>({spacing:10,separation:5,salt:0})}))})),e.register("generator_layer",(0,ms.Mod)((0,ms.ObjectNode)({block:n({validator:"resource",params:{pool:"block"}}),height:(0,ms.NumberNode)({integer:!0,min:1})}),{default:()=>({block:"minecraft:stone",height:1})})),e.register("terrain_shaper",(0,ms.Mod)((0,ms.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",(0,ms.Mod)((0,ms.ChoiceNode)([{type:"number",node:(0,ms.NumberNode)()},{type:"object",node:(0,ms.ObjectNode)({coordinate:(0,ms.Mod)(n({enum:["continents","erosion","weirdness","ridges"]}),{default:()=>"continents"}),points:(0,ms.ListNode)((0,ms.ObjectNode)({location:(0,ms.NumberNode)(),derivative:(0,ms.NumberNode)(),value:i("terrain_spline")}))},{category:"function"})}],{context:"terrain_spline",choiceContext:"terrain_spline"}),{default:()=>0}))};var gs={};Object.defineProperty(gs,"__esModule",{value:!0}),gs.initStructureFeatureSchemas=void 0;const _s=Pe;gs.initStructureFeatureSchemas=function(e,t){const i=_s.StringNode.bind(void 0,t),n=_s.Reference.bind(void 0,e),r={start_pool:i({validator:"resource",params:{pool:"$worldgen/template_pool"}}),size:(0,_s.NumberNode)({integer:!0})};e.register("configured_structure_feature",(0,_s.Mod)((0,_s.ObjectNode)({type:i({validator:"resource",params:{pool:"worldgen/structure_feature"}}),config:(0,_s.ObjectNode)({[_s.Switch]:["pop",{push:"type"}],[_s.Case]:{"minecraft:bastion_remnant":r,"minecraft:buried_treasure":{probability:(0,_s.NumberNode)({min:0,max:1})},"minecraft:mineshaft":{type:i({enum:["normal","mesa"]}),probability:(0,_s.NumberNode)({min:0,max:1})},"minecraft:nether_fossil":{height:n("height_provider")},"minecraft:ocean_ruin":{biome_temp:i({enum:["cold","warm"]}),large_probability:(0,_s.NumberNode)({min:0,max:1}),cluster_probability:(0,_s.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:(0,_s.Opt)((0,_s.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 bs={};Object.defineProperty(bs,"__esModule",{value:!0}),bs.initSurfaceRuleSchemas=void 0;const vs=Pe;bs.initSurfaceRuleSchemas=function(e,t){const i=vs.StringNode.bind(void 0,t),n=vs.Reference.bind(void 0,e);e.register("material_rule",(0,vs.Mod)((0,vs.ObjectNode)({type:i({validator:"resource",params:{pool:"worldgen/material_rule"}}),[vs.Switch]:[{push:"type"}],[vs.Case]:{"minecraft:block":{result_state:n("block_state")},"minecraft:condition":{if_true:n("material_condition"),then_run:n("material_rule")},"minecraft:sequence":{sequence:(0,vs.ListNode)(n("material_rule"))}}},{context:"material_rule",category:"pool"}),{default:()=>({type:"minecraft:block",result_state:{Name:"minecraft:stone"}})})),e.register("material_condition",(0,vs.Mod)((0,vs.ObjectNode)({type:i({validator:"resource",params:{pool:"worldgen/material_condition"}}),[vs.Switch]:[{push:"type"}],[vs.Case]:{"minecraft:biome":{biome_is:(0,vs.ListNode)(i({validator:"resource",params:{pool:"$worldgen/biome"}}))},"minecraft:noise_threshold":{noise:i({validator:"resource",params:{pool:"$worldgen/noise"}}),min_threshold:(0,vs.NumberNode)(),max_threshold:(0,vs.NumberNode)()},"minecraft:not":{invert:n("material_condition")},"minecraft:stone_depth":{offset:(0,vs.NumberNode)({integer:!0}),surface_type:i({enum:"cave_surface"}),add_surface_depth:(0,vs.BooleanNode)(),add_surface_secondary_depth:(0,vs.BooleanNode)()},"minecraft:vertical_gradient":{random_name:i(),true_at_and_below:n("vertical_anchor"),false_at_and_above:n("vertical_anchor")},"minecraft:water":{offset:(0,vs.NumberNode)({integer:!0}),surface_depth_multiplier:(0,vs.NumberNode)({integer:!0,min:-20,max:20}),add_stone_depth:(0,vs.BooleanNode)()},"minecraft:y_above":{anchor:n("vertical_anchor"),surface_depth_multiplier:(0,vs.NumberNode)({integer:!0,min:-20,max:20}),add_stone_depth:(0,vs.BooleanNode)()}}},{context:"material_condition"}),{default:()=>({type:"minecraft:biome",is_biome:"minecraft:plains"})}))};var ys={};Object.defineProperty(ys,"__esModule",{value:!0}),ys.initTemplatePoolSchemas=void 0;const ws=Pe,xs=cs;ys.initTemplatePoolSchemas=function(e,t){const i=ws.Reference.bind(void 0,e),n=ws.StringNode.bind(void 0,t);e.register("template_pool",(0,ws.Mod)((0,ws.ObjectNode)({name:n(),fallback:n(),elements:(0,ws.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",(0,ws.Mod)((0,ws.ObjectNode)({weight:(0,ws.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",(0,ws.Mod)((0,ws.ObjectNode)({element_type:n({validator:"resource",params:{pool:"worldgen/structure_pool_element"}}),projection:n({enum:["rigid","terrain_matching"]}),[ws.Switch]:[{push:"element_type"}],[ws.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:xs.Processors},"minecraft:list_pool_element":{elements:(0,ws.ListNode)(i("template_element"))},"minecraft:single_pool_element":{location:n({validator:"resource",params:{pool:"$structure"}}),processors:xs.Processors}}},{context:"template_element",disableSwitchContext:!0}),{default:()=>({element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"})}))},Object.defineProperty(Za,"__esModule",{value:!0}),Za.initWorldgenSchemas=void 0;const Ns=Qa,ks=ts,As=rs,Cs=ss,Os=ps,Ss=cs,Es=gs,Fs=bs,Ds=ys;Za.initWorldgenSchemas=function(e,t){(0,Ss.initProcessorListSchemas)(e,t),(0,Ns.initBiomeSchemas)(e,t),(0,ks.initCarverSchemas)(e,t),(0,As.initDecoratorSchemas)(e,t),(0,Cs.initFeatureSchemas)(e,t),(0,Os.initNoiseSettingsSchemas)(e,t),(0,Es.initStructureFeatureSchemas)(e,t),(0,Fs.initSurfaceRuleSchemas)(e,t),(0,Ds.initTemplatePoolSchemas)(e,t)};var Bs={};Object.defineProperty(Bs,"__esModule",{value:!0}),Bs.initWorldSettingsSchemas=void 0;const Ls=Pe;Bs.initWorldSettingsSchemas=function(e,t){const i=Ls.Reference.bind(void 0,e),n=Ls.StringNode.bind(void 0,t);e.register("world_settings",(0,Ls.Mod)((0,Ls.ObjectNode)({generate_features:(0,Ls.BooleanNode)(),bonus_chest:(0,Ls.BooleanNode)(),seed:(0,Ls.NumberNode)({integer:!0}),dimensions:(0,Ls.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(ma,"__esModule",{value:!0}),ma.initSchemas=void 0;const Ms=fa,Ts=_a,Rs=ka,$s=Aa,js=Sa,Is=Da,Ps=Ma,zs=$a,Us=Ua,Ws=Ha,Hs=Va,qs=Ka,Vs=Ja,Gs=Za,Ks=Bs;ma.initSchemas=function(e,t){(0,Rs.initCommonSchemas)(e,t),(0,Ms.initAdvancementSchemas)(e,t),(0,Ts.initAssetsSchemas)(e,t),(0,$s.initConditionSchemas)(e,t),(0,Is.initDimensionTypeSchemas)(e,t),(0,js.initDimensionSchemas)(e,t),(0,Ps.initItemModifierSchemas)(e,t),(0,zs.initLootTableSchemas)(e,t),(0,Us.initPackMcmetaSchemas)(e,t),(0,Ws.initPredicatesSchemas)(e,t),(0,Hs.initRecipeSchemas)(e,t),(0,qs.initTagsSchemas)(e,t),(0,Vs.initTextComponentSchemas)(e,t),(0,Gs.initWorldgenSchemas)(e,t),(0,Ks.initWorldSettingsSchemas)(e,t)};var Xs=Ie&&Ie.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i);var r=Object.getOwnPropertyDescriptor(t,i);r&&!("get"in r?!t.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,n,r)}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),Js=Ie&&Ie.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),Ys=Ie&&Ie.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&Xs(t,e,i);return Js(t,e),t};Object.defineProperty(ha,"__esModule",{value:!0});var Zs=ha.getSchemas=ha.getCollections=ha.lootContext=void 0;const Qs=Pe,ec=pa,tc=ma;var ic=ha.lootContext=Ys(ja);var nc=ha.getCollections=function(){const e=new Qs.CollectionRegistry;return(0,ec.initCollections)(e),e};Zs=ha.getSchemas=function(e){const t=new Qs.SchemaRegistry;return(0,tc.initSchemas)(t,e),t};var rc=Object.freeze(Object.assign(Object.create(null),ha,{[Symbol.toStringTag]:"Module",get getSchemas(){return Zs},get getCollections(){return nc},get lootContext(){return ic},default:ha})),oc={},ac={};Object.defineProperty(ac,"__esModule",{value:!0}),ac.initCollections=void 0,ac.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"]),e.register("cat_texture",["textures/entity/cat/tabby.png","textures/entity/cat/black.png","textures/entity/cat/red.png","textures/entity/cat/siamese.png","textures/entity/cat/british_shorthair.png","textures/entity/cat/calico.png","textures/entity/cat/persian.png","textures/entity/cat/ragdoll.png","textures/entity/cat/white.png","textures/entity/cat/jellie.png","textures/entity/cat/all_black.png"])};var sc={},cc={};Object.defineProperty(cc,"__esModule",{value:!0}),cc.initAdvancementSchemas=void 0;const lc=Pe;cc.initAdvancementSchemas=function(e,t){const i=lc.Reference.bind(void 0,e),n=lc.StringNode.bind(void 0,t),r=(0,lc.ChoiceNode)([{type:"object",node:(0,lc.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:(0,lc.ListNode)(i("condition")),change:e=>[{condition:"minecraft:entity_properties",predicate:e}]}],{context:"conditions"});e.register("advancement",(0,lc.Mod)((0,lc.ObjectNode)({display:(0,lc.Opt)((0,lc.Mod)((0,lc.ObjectNode)({icon:(0,lc.ObjectNode)({item:n({validator:"resource",params:{pool:"item"}}),nbt:(0,lc.Opt)(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:i("text_component"),description:i("text_component"),background:(0,lc.Opt)(n()),frame:(0,lc.Opt)(n({enum:["task","challenge","goal"]})),show_toast:(0,lc.Opt)((0,lc.BooleanNode)()),announce_to_chat:(0,lc.Opt)((0,lc.BooleanNode)()),hidden:(0,lc.Opt)((0,lc.BooleanNode)())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:(0,lc.Opt)(n({validator:"resource",params:{pool:"$advancement"}})),criteria:(0,lc.MapNode)(n(),i("advancement_criteria")),requirements:(0,lc.Opt)((0,lc.ListNode)((0,lc.ListNode)(n()))),rewards:(0,lc.Opt)((0,lc.ObjectNode)({function:(0,lc.Opt)(n({validator:"resource",params:{pool:"$function"}})),loot:(0,lc.Opt)((0,lc.ListNode)(n({validator:"resource",params:{pool:"$loot_table"}}))),recipes:(0,lc.Opt)((0,lc.ListNode)(n({validator:"resource",params:{pool:"$recipe"}}))),experience:(0,lc.Opt)((0,lc.NumberNode)({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),e.register("advancement_criteria",(0,lc.ObjectNode)({trigger:n({validator:"resource",params:{pool:t.get("advancement_trigger")}}),conditions:(0,lc.Opt)((0,lc.ObjectNode)({player:(0,lc.Mod)(r,{enabled:e=>"minecraft:impossible"!==e.pop().push("trigger").get()}),[lc.Switch]:["pop",{push:"trigger"}],[lc.Case]:{"minecraft:bee_nest_destroyed":{block:(0,lc.Opt)(n({validator:"resource",params:{pool:"block"}})),num_bees_inside:(0,lc.Opt)((0,lc.NumberNode)({integer:!0})),item:(0,lc.Opt)(i("item_predicate"))},"minecraft:bred_animals":{parent:r,partner:r,child:r},"minecraft:brewed_potion":{potion:(0,lc.Opt)(n({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:(0,lc.Opt)(n({validator:"resource",params:{pool:"$dimension"}})),to:(0,lc.Opt)(n({validator:"resource",params:{pool:"$dimension"}}))},"minecraft:channeled_lightning":{victims:(0,lc.Opt)((0,lc.ListNode)(r))},"minecraft:construct_beacon":{level:i("int_bounds")},"minecraft:consume_item":{item:(0,lc.Opt)(i("item_predicate"))},"minecraft:cured_zombie_villager":{villager:r,zombie:r},"minecraft:effects_changed":{effects:(0,lc.Opt)((0,lc.MapNode)(n({validator:"resource",params:{pool:"mob_effect"}}),(0,lc.ObjectNode)({amplifier:i("int_bounds"),duration:i("int_bounds")}))),source:(0,lc.Opt)(r)},"minecraft:enter_block":{block:(0,lc.Opt)(n({validator:"resource",params:{pool:"block"}})),state:(0,lc.Opt)((0,lc.MapNode)(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:i("int_bounds"),item:(0,lc.Opt)(i("item_predicate"))},"minecraft:entity_hurt_player":{damage:(0,lc.Opt)(i("damage_predicate"))},"minecraft:entity_killed_player":{entity:r,killing_blow:(0,lc.Opt)(i("damage_source_predicate"))},"minecraft:fall_from_height":{start_position:(0,lc.Opt)(i("location_predicate")),distance:(0,lc.Opt)(i("distance_predicate"))},"minecraft:filled_bucket":{item:(0,lc.Opt)(i("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:r,item:(0,lc.Opt)(i("item_predicate"))},"minecraft:hero_of_the_village":{location:(0,lc.Opt)(i("location_predicate"))},"minecraft:inventory_changed":{slots:(0,lc.Opt)((0,lc.ObjectNode)({empty:i("int_bounds"),occupied:i("int_bounds"),full:i("int_bounds")})),items:(0,lc.Opt)((0,lc.ListNode)(i("item_predicate")))},"minecraft:item_durability_changed":{delta:i("int_bounds"),durability:i("int_bounds"),item:(0,lc.Opt)(i("item_predicate"))},"minecraft:item_used_on_block":{item:(0,lc.Opt)(i("item_predicate")),location:(0,lc.Opt)(i("location_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:i("int_bounds"),victims:(0,lc.Opt)((0,lc.ListNode)(r))},"minecraft:levitation":{distance:(0,lc.Opt)(i("distance_predicate")),duration:i("int_bounds")},"minecraft:lightning_strike":{lightning:r,bystander:r},"minecraft:location":{location:(0,lc.Opt)(i("location_predicate"))},"minecraft:nether_travel":{start_position:(0,lc.Opt)(i("location_predicate")),distance:(0,lc.Opt)(i("distance_predicate"))},"minecraft:placed_block":{block:(0,lc.Opt)(n({validator:"resource",params:{pool:"block"}})),state:(0,lc.Opt)((0,lc.MapNode)(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:(0,lc.Opt)(i("item_predicate")),location:(0,lc.Opt)(i("location_predicate"))},"minecraft:player_generates_container_loot":{loot_table:n({validator:"resource",params:{pool:"$loot_table"}})},"minecraft:player_hurt_entity":{damage:(0,lc.Opt)(i("damage_predicate")),entity:r},"minecraft:player_interacted_with_entity":{item:(0,lc.Opt)(i("item_predicate")),entity:r},"minecraft:player_killed_entity":{entity:r,killing_blow:(0,lc.Opt)(i("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:n({validator:"resource",params:{pool:"$recipe"}})},"minecraft:ride_entity_in_lava":{start_position:(0,lc.Opt)(i("location_predicate")),distance:(0,lc.Opt)(i("distance_predicate"))},"minecraft:slept_in_bed":{location:(0,lc.Opt)(i("location_predicate"))},"minecraft:slide_down_block":{block:(0,lc.Opt)(n({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:(0,lc.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:r,item:(0,lc.Opt)(i("item_predicate"))},"minecraft:used_ender_eye":{distance:(0,lc.Opt)(i("float_bounds"))},"minecraft:used_totem":{item:(0,lc.Opt)(i("item_predicate"))},"minecraft:using_item":{item:(0,lc.Opt)(i("item_predicate"))},"minecraft:villager_trade":{villager:r,item:(0,lc.Opt)(i("item_predicate"))},"minecraft:voluntary_exile":{location:(0,lc.Opt)(i("location_predicate"))}}},{context:"criterion"}))},{category:"predicate",context:"criterion"}))};var uc={},dc={};Object.defineProperty(dc,"__esModule",{value:!0}),dc.initModelSchemas=void 0;const hc=Pe;dc.initModelSchemas=function(e,t){hc.Reference.bind(void 0,e);const i=hc.StringNode.bind(void 0,t),n=(e,t,i)=>(0,hc.ListNode)((0,hc.NumberNode)({min:t,max:i}),{minLength:e,maxLength:e}),r=(0,hc.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",(0,hc.Mod)((0,hc.ObjectNode)({parent:(0,hc.Opt)(i({validator:"resource",params:{pool:"$model"}})),ambientocclusion:(0,hc.Opt)((0,hc.BooleanNode)()),gui_light:(0,hc.Opt)(i({enum:"gui_light"})),textures:(0,hc.Opt)((0,hc.MapNode)(i(),r)),elements:(0,hc.Opt)((0,hc.ListNode)((0,hc.ObjectNode)({from:n(3,-16,32),to:n(3,-16,32),rotation:(0,hc.Opt)((0,hc.ObjectNode)({origin:n(3),axis:i({enum:"axis"}),angle:(0,hc.NumberEnum)({values:[-45,-22.5,0,22.5,45]}),rescale:(0,hc.Opt)((0,hc.BooleanNode)())})),shade:(0,hc.Opt)((0,hc.BooleanNode)()),faces:(0,hc.MapNode)(i({enum:"direction"}),(0,hc.ObjectNode)({texture:r,uv:(0,hc.Opt)(n(4)),cullface:(0,hc.Opt)(i({enum:"direction"})),rotation:(0,hc.Opt)((0,hc.NumberNode)({integer:!0})),tintindex:(0,hc.Opt)((0,hc.NumberNode)({integer:!0}))}))},{context:"model_element"}))),display:(0,hc.Opt)((0,hc.MapNode)(i({enum:"display_position"}),(0,hc.ObjectNode)({rotation:n(3),translation:n(3,-80,80),scale:n(3,-4,4)},{context:"item_transform"}))),overrides:(0,hc.Opt)((0,hc.ListNode)((0,hc.ObjectNode)({predicate:(0,hc.MapNode)(i({enum:"item_model_predicates"}),(0,hc.NumberNode)()),model:i({validator:"resource",params:{pool:"$model"}})},{context:"model_override"})))},{context:"model"}),{default:()=>({parent:"minecraft:item/generated",textures:{layer0:"minecraft:item/diamond"}})}))};var pc={};Object.defineProperty(pc,"__esModule",{value:!0}),pc.initBlockDefinitionSchemas=void 0;const mc=Pe;pc.initBlockDefinitionSchemas=function(e,t){const i=mc.Reference.bind(void 0,e),n=mc.StringNode.bind(void 0,t);e.register("block_definition",(0,mc.Mod)((0,mc.ChoiceNode)([{type:"variants",match:e=>void 0!==e.variants,node:(0,mc.ObjectNode)({variants:(0,mc.MapNode)(n(),i("model_variant"))}),change:e=>({variants:{"":{}}})},{type:"multipart",match:e=>void 0!==e.multipart,node:(0,mc.ObjectNode)({multipart:(0,mc.ListNode)((0,mc.ObjectNode)({when:(0,mc.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:(0,mc.Opt)((0,mc.NumberEnum)({integer:!0,values:[0,90,180,270]})),y:(0,mc.Opt)((0,mc.NumberEnum)({integer:!0,values:[0,90,180,270]})),uvlock:(0,mc.Opt)((0,mc.BooleanNode)())};e.register("model_variant",(0,mc.ChoiceNode)([{type:"object",node:(0,mc.ObjectNode)(r),change:e=>Array.isArray(e)&&e.length>0?e[0]:{}},{type:"list",node:(0,mc.ListNode)((0,mc.ObjectNode)(c(s({},r),{weight:(0,mc.Opt)((0,mc.NumberNode)({integer:!0,min:1}))}),{context:"model_variant"})),change:e=>[s({weight:1},e)]}],{context:"model_variant"})),e.register("multipart_condition",(0,mc.ChoiceNode)([{type:"object",priority:-1,match:()=>!0,node:(0,mc.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:(0,mc.ObjectNode)({OR:(0,mc.ListNode)(i("multipart_condition"))}),change:e=>({OR:[null!=e?e:{}]})}],{context:"multipart_condition"}))},Object.defineProperty(uc,"__esModule",{value:!0}),uc.initAssetsSchemas=void 0;const fc=dc,gc=pc;uc.initAssetsSchemas=function(e,t){(0,gc.initBlockDefinitionSchemas)(e,t),(0,fc.initModelSchemas)(e,t)};var _c={};!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=Pe;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={sea_level:63,ore_veins_enabled:!0,disable_mob_generation:!1,aquifers_enabled:!0,legacy_random_source:!1,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,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}},noise_router:{barrier:0,fluid_level_floodedness:0,fluid_level_spread:0,lava:0,temperature:0,vegetation:0,continents:0,erosion:0,depth:0,ridges:0,initial_density_without_jaggedness:0,final_density:{type:"minecraft:interpolated",argument:"minecraft:overworld/base_3d_noise"},vein_toggle:0,vein_ridged:0,vein_gap:0},surface_rule:{type:"minecraft:sequence",sequence:[]}},e.initCommonSchemas=function(i,n){const r=t.StringNode.bind(void 0,n),o=t.Reference.bind(void 0,i);i.register("block_state",(0,t.Mod)((0,t.ObjectNode)({Name:r({validator:"resource",params:{pool:"block"}}),Properties:(0,t.Opt)((0,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",(0,t.Mod)((0,t.ObjectNode)({Name:r({validator:"resource",params:{pool:"fluid"}}),Properties:(0,t.Opt)((0,t.MapNode)(r(),r()))},{context:"fluid_state"}),{default:()=>({Name:"minecraft:water",Properties:{level:"0"}})})),i.register("block_pos",(0,t.Mod)((0,t.ListNode)((0,t.NumberNode)({integer:!0}),{minLength:3,maxLength:3}),{default:()=>[0,0,0]}));const a=e=>(0,t.Opt)((0,t.ChoiceNode)([{type:"number",node:(0,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:(0,t.ObjectNode)({min:(0,t.Opt)((0,t.NumberNode)({integer:e})),max:(0,t.Opt)((0,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",(0,t.ChoiceNode)([{type:"object",node:(0,t.ObjectNode)({min:(0,t.Opt)(o("number_provider")),max:(0,t.Opt)(o("number_provider"))})},{type:"number",node:(0,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]=(0,t.Mod)(l[a][e],{enabled:e=>void 0===e.push("type").get()})}));const d=(0,t.ObjectNode)(s({type:(0,t.Mod)((0,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})})})),(0,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:(0,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:(0,t.Opt)((0,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:(0,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:(0,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:(0,t.NumberNode)(e)},"minecraft:uniform":{value:(0,t.ObjectNode)({min_inclusive:(0,t.NumberNode)(e),max_exclusive:(0,t.NumberNode)(e)})},"minecraft:clamped_normal":{value:(0,t.ObjectNode)({min:(0,t.NumberNode)(),max:(0,t.NumberNode)(),mean:(0,t.NumberNode)(),deviation:(0,t.NumberNode)()})},"minecraft:trapezoid":{value:(0,t.ObjectNode)({min:(0,t.NumberNode)(),max:(0,t.NumberNode)(),plateau:(0,t.NumberNode)()})}}),i.register("float_provider",(0,e.FloatProvider)()),e.IntProvider=e=>c("int_provider_type","number","value","minecraft:constant",null,"int_provider",{"minecraft:constant":{value:(0,t.NumberNode)(s({integer:!0},e))},"minecraft:uniform":{value:(0,t.ObjectNode)({min_inclusive:(0,t.NumberNode)(s({integer:!0},e)),max_inclusive:(0,t.NumberNode)(s({integer:!0},e))})},"minecraft:biased_to_bottom":{value:(0,t.ObjectNode)({min_inclusive:(0,t.NumberNode)(s({integer:!0},e)),max_inclusive:(0,t.NumberNode)(s({integer:!0},e))})},"minecraft:clamped":{value:(0,t.ObjectNode)({min_inclusive:(0,t.NumberNode)(s({integer:!0},e)),max_inclusive:(0,t.NumberNode)(s({integer:!0},e)),source:o("int_provider")})},"minecraft:clamped_normal":{value:(0,t.ObjectNode)({min_inclusive:(0,t.NumberNode)(s({integer:!0},e)),max_inclusive:(0,t.NumberNode)(s({integer:!0},e)),mean:(0,t.NumberNode)(),deviation:(0,t.NumberNode)()})},"minecraft:weighted_list":{distribution:(0,t.ListNode)((0,t.ObjectNode)({weight:(0,t.NumberNode)({integer:!0}),data:o("int_provider")}))}}),i.register("int_provider",(0,e.IntProvider)()),i.register("vertical_anchor",(0,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:(0,t.ObjectNode)({[e]:(0,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:(0,t.Opt)((0,t.NumberNode)({integer:!0,min:1}))},"minecraft:very_biased_to_bottom":{min_inclusive:o("vertical_anchor"),max_inclusive:o("vertical_anchor"),inner:(0,t.Opt)((0,t.NumberNode)({integer:!0,min:1}))},"minecraft:trapezoid":{min_inclusive:o("vertical_anchor"),max_inclusive:o("vertical_anchor"),plateau:(0,t.Opt)((0,t.NumberNode)({integer:!0}))},"minecraft:weighted_list":{distribution:(0,t.ListNode)((0,t.ObjectNode)({weight:(0,t.NumberNode)({integer:!0}),data:o("int_provider")}))}})),e.InclusiveRange=e=>(0,t.ObjectNode)({min_inclusive:(0,t.NumberNode)(e),max_inclusive:(0,t.NumberNode)(e)},{context:"range"}),i.register("noise_parameters",(0,t.Mod)((0,t.ObjectNode)({firstOctave:(0,t.NumberNode)({integer:!0}),amplitudes:(0,t.ListNode)((0,t.NumberNode)())},{context:"noise_parameters"}),{default:()=>({firstOctave:-7,amplitudes:[1,1]})})),e.Tag=e=>(0,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:(0,t.ListNode)(e.inlineSchema?(0,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:(0,t.ListNode)(o("condition"))},"minecraft:block_state_property":{block:r({validator:"resource",params:{pool:"block"}}),properties:(0,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:(0,t.MapNode)(r({validator:"objective"}),o("int_range"))},"minecraft:inverted":{term:o("condition")},"minecraft:killed_by_player":{inverse:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:location_check":{offsetX:(0,t.Opt)((0,t.NumberNode)({integer:!0})),offsetY:(0,t.Opt)((0,t.NumberNode)({integer:!0})),offsetZ:(0,t.Opt)((0,t.NumberNode)({integer:!0})),predicate:o("location_predicate")},"minecraft:match_tool":{predicate:o("item_predicate")},"minecraft:random_chance":{chance:(0,t.NumberNode)({min:0,max:1})},"minecraft:random_chance_with_looting":{chance:(0,t.NumberNode)({min:0,max:1}),looting_multiplier:(0,t.NumberNode)()},"minecraft:reference":{name:r({validator:"resource",params:{pool:"$predicate"}})},"minecraft:table_bonus":{enchantment:r({validator:"resource",params:{pool:"enchantment"}}),chances:(0,t.ListNode)((0,t.NumberNode)({min:0,max:1}))},"minecraft:time_check":{value:o("int_range"),period:(0,t.Opt)((0,t.NumberNode)({integer:!0}))},"minecraft:value_check":{value:o("number_provider"),range:o("int_range")},"minecraft:weather_check":{raining:(0,t.Opt)((0,t.BooleanNode)()),thundering:(0,t.Opt)((0,t.BooleanNode)())}}),e.FunctionCases=(i,a=r({enum:"copy_source"}),c=r({enum:"entity_source"}))=>{const l={"minecraft:apply_bonus":{enchantment:r({validator:"resource",params:{pool:"enchantment"}}),formula:r({validator:"resource",params:{pool:n.get("loot_table_apply_bonus_formula")}}),parameters:(0,t.Mod)((0,t.ObjectNode)({bonusMultiplier:(0,t.Mod)((0,t.NumberNode)(),{enabled:e=>"minecraft:uniform_bonus_count"===e.pop().push("formula").get()}),extra:(0,t.Mod)((0,t.NumberNode)(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()}),probability:(0,t.Mod)((0,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:a},"minecraft:copy_nbt":{source:o("nbt_provider"),ops:(0,t.ListNode)((0,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:(0,t.ListNode)(r({validator:"block_state_key",params:{id:["pop","pop",{push:"block"}]}}))},"minecraft:enchant_randomly":{enchantments:(0,t.Opt)((0,t.ListNode)(r({validator:"resource",params:{pool:"enchantment"}})))},"minecraft:enchant_with_levels":{levels:o("number_provider"),treasure:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:exploration_map":{destination:(0,t.Opt)((0,e.Tag)({resource:"$worldgen/configured_structure_feature"})),decoration:(0,t.Opt)(r({enum:"map_decoration"})),zoom:(0,t.Opt)((0,t.NumberNode)({integer:!0})),search_radius:(0,t.Opt)((0,t.NumberNode)({integer:!0})),skip_existing_chunks:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:fill_player_head":{entity:c},"minecraft:limit_count":{limit:o("int_range")},"minecraft:looting_enchant":{count:o("number_provider"),limit:(0,t.Opt)((0,t.NumberNode)({integer:!0}))},"minecraft:set_attributes":{modifiers:(0,t.ListNode)(o("attribute_modifier"))},"minecraft:set_banner_pattern":{patterns:(0,t.ListNode)((0,t.ObjectNode)({pattern:r({enum:"banner_pattern"}),color:r({enum:"dye_color"})})),append:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:set_contents":{type:r({validator:"resource",params:{pool:"block_entity_type"}}),entries:(0,t.ListNode)(o("loot_entry"))},"minecraft:set_count":{count:o("number_provider"),add:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:set_damage":{damage:o("number_provider"),add:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:set_enchantments":{enchantments:(0,t.MapNode)(r({validator:"resource",params:{pool:"enchantment"}}),o("number_provider")),add:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:set_loot_table":{type:r({validator:"resource",params:{pool:"block_entity_type"}}),name:r({validator:"resource",params:{pool:"$loot_table"}}),seed:(0,t.Opt)((0,t.NumberNode)({integer:!0}))},"minecraft:set_lore":{entity:(0,t.Opt)(c),lore:(0,t.ListNode)(o("text_component")),replace:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:set_name":{entity:(0,t.Opt)(c),name:(0,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:(0,t.Opt)((0,t.ListNode)((0,t.ObjectNode)({type:r({validator:"resource",params:{pool:"mob_effect"}}),duration:o("number_provider")})))}},u={};return n.get("loot_function_type").forEach((e=>{u[e]=s(s({},l[e]),i)})),u},e.DimensionTypePresets=i=>(0,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=>(0,t.ObjectOrPreset)(r({validator:"resource",params:{pool:"$worldgen/noise_settings"}}),i,{"minecraft:overworld":e.DefaultNoiseSettings,"minecraft:nether":{sea_level:32,ore_veins_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,legacy_random_source:!0,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,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}},noise_router:{barrier:0,fluid_level_floodedness:0,fluid_level_spread:0,lava:0,temperature:0,vegetation:0,continents:0,erosion:0,depth:0,ridges:0,initial_density_without_jaggedness:0,final_density:{type:"minecraft:interpolated",argument:"minecraft:overworld/base_3d_noise"},vein_toggle:0,vein_ridged:0,vein_gap:0},surface_rule:{type:"minecraft:sequence",sequence:[]}},"minecraft:end":{sea_level:0,ore_veins_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,legacy_random_source:!0,default_block:{Name:"minecraft:end_stone"},default_fluid:{Name:"minecraft:air"},noise:{min_y:0,height:128,size_horizontal:2,size_vertical:1,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}},noise_router:{barrier:0,fluid_level_floodedness:0,fluid_level_spread:0,lava:0,temperature:0,vegetation:0,continents:0,erosion:0,depth:0,ridges:0,initial_density_without_jaggedness:0,final_density:{type:"minecraft:interpolated",argument:"minecraft:overworld/base_3d_noise"},vein_toggle:0,vein_ridged:0,vein_gap:0},surface_rule:{type:"minecraft:sequence",sequence:[]}},"minecraft:amplified":{sea_level:63,ore_veins_enabled:!0,disable_mob_generation:!1,aquifers_enabled:!0,legacy_random_source:!1,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,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}},noise_router:{barrier:0,fluid_level_floodedness:0,fluid_level_spread:0,lava:0,temperature:0,vegetation:0,continents:0,erosion:0,depth:0,ridges:0,initial_density_without_jaggedness:0,final_density:{type:"minecraft:interpolated",argument:"minecraft:overworld/base_3d_noise"},vein_toggle:0,vein_ridged:0,vein_gap:0},surface_rule:{type:"minecraft:sequence",sequence:[]}},"minecraft:caves":{sea_level:32,ore_veins_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,legacy_random_source:!0,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,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}},noise_router:{barrier:0,fluid_level_floodedness:0,fluid_level_spread:0,lava:0,temperature:0,vegetation:0,continents:0,erosion:0,depth:0,ridges:0,initial_density_without_jaggedness:0,final_density:{type:"minecraft:interpolated",argument:"minecraft:overworld/base_3d_noise"},vein_toggle:0,vein_ridged:0,vein_gap:0},surface_rule:{type:"minecraft:sequence",sequence:[]}},"minecraft:floating_islands":{sea_level:0,ore_veins_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,legacy_random_source:!0,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,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}},noise_router:{barrier:0,fluid_level_floodedness:0,fluid_level_spread:0,lava:0,temperature:0,vegetation:0,continents:0,erosion:0,depth:0,ridges:0,initial_density_without_jaggedness:0,final_density:{type:"minecraft:interpolated",argument:"minecraft:overworld/base_3d_noise"},vein_toggle:0,vein_ridged:0,vein_gap:0},surface_rule:{type:"minecraft:sequence",sequence:[]}}})}}(_c);var bc={};Object.defineProperty(bc,"__esModule",{value:!0}),bc.initConditionSchemas=void 0;const vc=Pe,yc=_c;bc.initConditionSchemas=function(e,t){const i=vc.Reference.bind(void 0,e),n=vc.StringNode.bind(void 0,t);e.register("predicate",(0,vc.ObjectOrList)(i("condition"),{choiceContext:"condition"})),e.register("condition",(0,vc.Mod)((0,vc.ObjectNode)({condition:n({validator:"resource",params:{pool:"loot_condition_type"}}),[vc.Switch]:[{push:"condition"}],[vc.Case]:(0,yc.ConditionCases)()},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:entity_properties",entity:"this"})}))};var wc={};Object.defineProperty(wc,"__esModule",{value:!0}),wc.initDimensionSchemas=void 0;const xc=Pe,Nc=_c;wc.initDimensionSchemas=function(e,t){const i=xc.Reference.bind(void 0,e),n=xc.StringNode.bind(void 0,t),r=(0,xc.ChoiceNode)([{type:"string",priority:1,node:n({validator:"resource",params:{pool:"$worldgen/structure_set"}}),change:()=>{}},{type:"object",node:i("structure_set"),change:()=>({})}],{choiceContext:"structure_set"});e.register("dimension",(0,xc.Mod)((0,xc.ObjectNode)({type:(0,Nc.DimensionTypePresets)(i("dimension_type")),generator:(0,xc.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/chunk_generator"}}),[xc.Switch]:[{push:"type"}],[xc.Case]:{"minecraft:noise":{seed:(0,xc.NumberNode)({integer:!0}),settings:(0,Nc.NoiseSettingsPresets)(i("noise_settings")),biome_source:(0,xc.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/biome_source"}}),[xc.Switch]:[{push:"type"}],[xc.Case]:{"minecraft:fixed":{biome:n({validator:"resource",params:{pool:"$worldgen/biome"}})},"minecraft:multi_noise":{preset:(0,xc.Opt)(n({validator:"resource",params:{pool:["minecraft:overworld","minecraft:nether"]}})),biomes:(0,xc.Mod)((0,xc.ListNode)(i("generator_biome")),{enabled:e=>void 0===e.push("preset").get(),default:()=>[{biome:"minecraft:plains"}]})},"minecraft:checkerboard":{scale:(0,xc.Opt)((0,xc.NumberNode)({integer:!0,min:0,max:62})),biomes:(0,Nc.Tag)({resource:"$worldgen/biome"})},"minecraft:the_end":{seed:(0,xc.NumberNode)({integer:!0})}}},{category:"predicate",disableSwitchContext:!0})},"minecraft:flat":{settings:(0,xc.ObjectNode)({biome:(0,xc.Opt)(n({validator:"resource",params:{pool:"$worldgen/biome"}})),lakes:(0,xc.Opt)((0,xc.BooleanNode)()),features:(0,xc.Opt)((0,xc.BooleanNode)()),layers:(0,xc.ListNode)(i("generator_layer")),structure_overrides:(0,xc.ListNode)(r)})}}},{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 o=(0,xc.ChoiceNode)([{type:"number",node:(0,xc.NumberNode)({min:-2,max:2}),change:e=>{var t;return null!==(t=e[0])&&void 0!==t?t:0}},{type:"list",node:(0,xc.ListNode)((0,xc.NumberNode)({min:-2,max:2}),{minLength:2,maxLength:2}),change:e=>[null!=e?e:0,null!=e?e:0]}]);e.register("generator_biome",(0,xc.Mod)((0,xc.ObjectNode)({biome:n({validator:"resource",params:{pool:"$worldgen/biome"}}),parameters:(0,xc.ObjectNode)({temperature:o,humidity:o,continentalness:o,erosion:o,weirdness:o,depth:o,offset:(0,xc.NumberNode)({min:0,max:1})})},{context:"generator_biome"}),{default:()=>({biome:"minecraft:plains",parameters:{altitude:0,temperature:0,humidity:0,weirdness:0,offset:0}})}))};var kc={};Object.defineProperty(kc,"__esModule",{value:!0}),kc.initDimensionTypeSchemas=void 0;const Ac=Pe,Cc=_c;kc.initDimensionTypeSchemas=function(e,t){const i=Ac.StringNode.bind(void 0,t);e.register("dimension_type",(0,Ac.Mod)((0,Ac.ObjectNode)({ultrawarm:(0,Ac.BooleanNode)(),natural:(0,Ac.BooleanNode)(),piglin_safe:(0,Ac.BooleanNode)(),respawn_anchor_works:(0,Ac.BooleanNode)(),bed_works:(0,Ac.BooleanNode)(),has_raids:(0,Ac.BooleanNode)(),has_skylight:(0,Ac.BooleanNode)(),has_ceiling:(0,Ac.BooleanNode)(),coordinate_scale:(0,Ac.NumberNode)({min:1e-5,max:3e7}),ambient_light:(0,Ac.NumberNode)(),fixed_time:(0,Ac.Opt)((0,Ac.NumberNode)({integer:!0})),logical_height:(0,Ac.NumberNode)({integer:!0,min:0,max:4064}),effects:(0,Ac.Opt)(i({enum:["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]})),infiniburn:i({validator:"resource",params:{pool:"block",requireTag:!0}}),min_y:(0,Ac.NumberNode)({integer:!0,min:-2032,max:2031}),height:(0,Ac.NumberNode)({integer:!0,min:16,max:4064})},{context:"dimension_type"}),(e=>({default:()=>Cc.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 Oc={};Object.defineProperty(Oc,"__esModule",{value:!0}),Oc.initItemModifierSchemas=void 0;const Sc=Pe,Ec=_c;Oc.initItemModifierSchemas=function(e,t){const i=Sc.Reference.bind(void 0,e),n=Sc.StringNode.bind(void 0,t);e.register("item_modifier",(0,Sc.ObjectOrList)(i("function"),{choiceContext:"function"}));const r={conditions:(0,Sc.Opt)((0,Sc.ListNode)(i("condition")))};e.register("function",(0,Sc.Mod)((0,Sc.ObjectNode)({function:n({validator:"resource",params:{pool:"loot_function_type"}}),[Sc.Switch]:[{push:"function"}],[Sc.Case]:(0,Ec.FunctionCases)(r)},{category:"function",context:"function"}),{default:()=>[{function:"minecraft:set_count",count:1}]}))};var Fc={},Dc={};Object.defineProperty(Dc,"__esModule",{value:!0}),Dc.LootFunctions=Dc.LootConditions=Dc.LootCopySources=Dc.LootEntitySources=Dc.LootTableTypes=void 0,Dc.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]}]]),Dc.LootEntitySources=new Map([["direct_killer",[3]],["killer",[5]],["killer_player",[5]],["this",[8]]]),Dc.LootCopySources=new Map([["block_entity",[0]],["killer",[5]],["killer_player",[5]],["this",[8]]]),Dc.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",[]]]),Dc.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(Fc,"__esModule",{value:!0}),Fc.initLootTableSchemas=void 0;const Bc=Pe,Lc=Dc,Mc=_c;Fc.initLootTableSchemas=function(e,t){const i=Bc.Reference.bind(void 0,e),n=Bc.StringNode.bind(void 0,t),r={conditions:(0,Bc.Opt)((0,Bc.ListNode)(i("loot_condition")))},o=s({functions:(0,Bc.Opt)((0,Bc.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 Lc.LootTableTypes){const e=[...a,...s];r.push({match:e=>e.getModel().get(new Bc.Path(["type"]))===t,node:n(o(e))})}return r.push({match:e=>!0,node:n(i)}),(0,Bc.SwitchNode)(r)}const c=a(Lc.LootConditions,"loot_condition_type",(e=>n({validator:"resource",params:{pool:e instanceof Array?e:"loot_condition_type"}}))),l=a(Lc.LootFunctions,"loot_function_type",(e=>n({validator:"resource",params:{pool:e instanceof Array?e:"loot_function_type"}}))),u=a(Lc.LootEntitySources,"entity_source",(e=>n({enum:e}))),d=a(Lc.LootCopySources,"copy_source",(e=>n({enum:e})));e.register("loot_table",(0,Bc.Mod)((0,Bc.ObjectNode)({type:(0,Bc.Opt)(n({validator:"resource",params:{pool:t.get("loot_context_type")}})),pools:(0,Bc.Opt)((0,Bc.ListNode)((0,Bc.Mod)((0,Bc.ObjectNode)(s({rolls:i("number_provider"),bonus_rolls:(0,Bc.Opt)(i("number_provider")),entries:(0,Bc.ListNode)(i("loot_entry"))},o),{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:(0,Bc.Opt)((0,Bc.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",(0,Bc.Mod)((0,Bc.ObjectNode)({type:n({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:(0,Bc.Opt)((0,Bc.Mod)((0,Bc.NumberNode)({integer:!0,min:1}),h)),quality:(0,Bc.Opt)((0,Bc.Mod)((0,Bc.NumberNode)({integer:!0}),h)),[Bc.Switch]:[{push:"type"}],[Bc.Case]:{"minecraft:alternatives":s({children:(0,Bc.ListNode)(i("loot_entry"))},o),"minecraft:dynamic":s({name:n()},o),"minecraft:group":s({children:(0,Bc.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:(0,Bc.ListNode)(i("loot_entry"))},o),"minecraft:tag":s({name:n({validator:"resource",params:{pool:"$tag/item"}}),expand:(0,Bc.Opt)((0,Bc.BooleanNode)())},o)}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),e.register("loot_function",(0,Bc.Mod)((0,Bc.ObjectNode)({function:l,[Bc.Switch]:[{push:"function"}],[Bc.Case]:(0,Mc.FunctionCases)(r,d,u)},{category:"function",context:"function"}),{default:()=>({function:"minecraft:set_count",count:1})})),e.register("loot_condition",(0,Bc.Mod)((0,Bc.ObjectNode)({condition:c,[Bc.Switch]:[{push:"condition"}],[Bc.Case]:(0,Mc.ConditionCases)(u)},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),e.register("attribute_modifier",(0,Bc.Mod)((0,Bc.ObjectNode)({attribute:n({validator:"resource",params:{pool:"attribute"}}),name:n(),amount:i("number_provider"),operation:n({enum:["addition","multiply_base","multiply_total"]}),slot:(0,Bc.StringOrList)(n({enum:"slot"}))},{context:"attribute_modifier"}),{default:()=>({attribute:"minecraft:generic.max_health",name:"",amount:1,operation:"addition",slot:"mainhand"})}))};var Tc={};Object.defineProperty(Tc,"__esModule",{value:!0}),Tc.initPackMcmetaSchemas=void 0;const Rc=Pe;Tc.initPackMcmetaSchemas=function(e,t){e.register("pack_mcmeta",(0,Rc.Mod)((0,Rc.ObjectNode)({pack:(0,Rc.Mod)((0,Rc.ObjectNode)({pack_format:(0,Rc.Mod)((0,Rc.NumberNode)({integer:!0,min:9,max:9}),{default:()=>9,canUpdate:(e,t)=>9!==t,update:()=>[{name:"pack_format",params:[9],newValue:9}]}),description:(0,Rc.Reference)(e,"text_component")}),{default:()=>({pack_format:9,description:""})})}),{default:()=>({pack:{pack_format:9,description:""}})}))};var $c={};Object.defineProperty($c,"__esModule",{value:!0}),$c.initPredicatesSchemas=void 0;const jc=Pe;$c.initPredicatesSchemas=function(e,t){const i=jc.Reference.bind(void 0,e),n=jc.StringNode.bind(void 0,t),r=(0,jc.ChoiceNode)([{type:"string",node:n(),change:e=>"boolean"==typeof e||"number"==typeof e?e.toString():""},{type:"number",node:(0,jc.NumberNode)(),change:e=>"string"==typeof e?parseInt(e):0},{type:"object",node:(0,jc.ObjectNode)({min:(0,jc.Opt)((0,jc.NumberNode)({integer:!0})),max:(0,jc.Opt)((0,jc.NumberNode)({integer:!0}))}),change:e=>"number"==typeof e?{min:e,max:e}:{}},{type:"boolean",node:(0,jc.BooleanNode)(),change:e=>"true"===e||1===e}]);e.register("item_predicate",(0,jc.ObjectNode)({items:(0,jc.Opt)((0,jc.ListNode)(n({validator:"resource",params:{pool:"item"}}))),tag:(0,jc.Opt)(n({validator:"resource",params:{pool:"$tag/item"}})),count:i("int_bounds"),durability:i("int_bounds"),potion:(0,jc.Opt)(n({validator:"resource",params:{pool:"potion"}})),nbt:(0,jc.Opt)(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:(0,jc.Opt)((0,jc.ListNode)(i("enchantment_predicate")))},{context:"item"})),e.register("enchantment_predicate",(0,jc.ObjectNode)({enchantment:(0,jc.Opt)(n({validator:"resource",params:{pool:"enchantment"}})),levels:i("int_bounds")},{context:"enchantment"})),e.register("block_predicate",(0,jc.ObjectNode)({blocks:(0,jc.Opt)((0,jc.ListNode)(n({validator:"resource",params:{pool:"block"}}))),tag:(0,jc.Opt)(n({validator:"resource",params:{pool:"$tag/block"}})),nbt:(0,jc.Opt)(n({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:(0,jc.Opt)((0,jc.MapNode)(n(),r,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),e.register("fluid_predicate",(0,jc.ObjectNode)({fluid:(0,jc.Opt)(n({validator:"resource",params:{pool:"fluid"}})),tag:(0,jc.Opt)(n({validator:"resource",params:{pool:"$tag/fluid"}})),state:(0,jc.Opt)((0,jc.MapNode)(n(),r))},{context:"fluid"})),e.register("location_predicate",(0,jc.ObjectNode)({position:(0,jc.Opt)((0,jc.ObjectNode)({x:i("float_bounds"),y:i("float_bounds"),z:i("float_bounds")})),biome:(0,jc.Opt)(n({validator:"resource",params:{pool:"$worldgen/biome"}})),feature:(0,jc.Opt)(n({validator:"resource",params:{pool:"$worldgen/configured_structure_feature"}})),dimension:(0,jc.Opt)(n({validator:"resource",params:{pool:"$dimension"}})),light:(0,jc.Opt)((0,jc.ObjectNode)({light:i("int_bounds")})),smokey:(0,jc.Opt)((0,jc.BooleanNode)()),block:(0,jc.Opt)(i("block_predicate")),fluid:(0,jc.Opt)(i("fluid_predicate"))},{context:"location"})),e.register("statistic_predicate",(0,jc.ObjectNode)({type:n({validator:"resource",params:{pool:"stat_type"}}),stat:n(),value:i("int_bounds"),[jc.Switch]:[{push:"type"}],[jc.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",(0,jc.ObjectNode)({gamemode:(0,jc.Opt)(n({enum:"gamemode"})),level:i("int_bounds"),advancements:(0,jc.Opt)((0,jc.MapNode)(n({validator:"resource",params:{pool:"$advancement"}}),(0,jc.ChoiceNode)([{type:"boolean",node:(0,jc.BooleanNode)(),change:e=>!0},{type:"object",node:(0,jc.MapNode)(n(),(0,jc.BooleanNode)())}]))),recipes:(0,jc.Opt)((0,jc.MapNode)(n({validator:"resource",params:{pool:"$recipe"}}),(0,jc.BooleanNode)())),stats:(0,jc.Opt)((0,jc.ListNode)(i("statistic_predicate"))),looking_at:(0,jc.Opt)(i("entity_predicate"))},{context:"player"})),e.register("status_effect_predicate",(0,jc.ObjectNode)({amplifier:i("int_bounds"),duration:i("int_bounds"),ambient:(0,jc.Opt)((0,jc.BooleanNode)()),visible:(0,jc.Opt)((0,jc.BooleanNode)())},{context:"status_effect"})),e.register("distance_predicate",(0,jc.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",(0,jc.ObjectNode)({type:(0,jc.Opt)(n({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),nbt:(0,jc.Opt)(n({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:(0,jc.Opt)(n({validator:"team"})),location:(0,jc.Opt)(i("location_predicate")),stepping_on:(0,jc.Opt)(i("location_predicate")),distance:(0,jc.Opt)(i("distance_predicate")),flags:(0,jc.Opt)((0,jc.ObjectNode)({is_on_fire:(0,jc.Opt)((0,jc.BooleanNode)()),is_sneaking:(0,jc.Opt)((0,jc.BooleanNode)()),is_sprinting:(0,jc.Opt)((0,jc.BooleanNode)()),is_swimming:(0,jc.Opt)((0,jc.BooleanNode)()),is_baby:(0,jc.Opt)((0,jc.BooleanNode)())})),equipment:(0,jc.Opt)((0,jc.MapNode)(n({enum:"slot"}),i("item_predicate"))),player:(0,jc.Opt)(i("player_predicate")),vehicle:(0,jc.Opt)(i("entity_predicate")),passenger:(0,jc.Opt)(i("entity_predicate")),targeted_entity:(0,jc.Opt)(i("entity_predicate")),lightning_bolt:(0,jc.Opt)((0,jc.ObjectNode)({blocks_set_on_fire:(0,jc.Opt)(i("int_bounds")),entity_struck:(0,jc.Opt)(i("entity_predicate"))})),fishing_hook:(0,jc.Opt)((0,jc.ObjectNode)({in_open_water:(0,jc.Opt)((0,jc.BooleanNode)())})),catType:(0,jc.Opt)(n({enum:"cat_texture"})),effects:(0,jc.Opt)((0,jc.MapNode)(n({validator:"resource",params:{pool:"mob_effect"}}),i("status_effect_predicate")))},{context:"entity"})),e.register("damage_source_predicate",(0,jc.ObjectNode)({is_explosion:(0,jc.Opt)((0,jc.BooleanNode)()),is_fire:(0,jc.Opt)((0,jc.BooleanNode)()),is_magic:(0,jc.Opt)((0,jc.BooleanNode)()),is_projectile:(0,jc.Opt)((0,jc.BooleanNode)()),is_lightning:(0,jc.Opt)((0,jc.BooleanNode)()),bypasses_armor:(0,jc.Opt)((0,jc.BooleanNode)()),bypasses_invulnerability:(0,jc.Opt)((0,jc.BooleanNode)()),bypasses_magic:(0,jc.Opt)((0,jc.BooleanNode)()),source_entity:(0,jc.Opt)(i("entity_predicate")),direct_entity:(0,jc.Opt)(i("entity_predicate"))},{context:"damage_source"})),e.register("damage_predicate",(0,jc.ObjectNode)({dealt:i("float_bounds"),taken:i("float_bounds"),blocked:(0,jc.Opt)((0,jc.BooleanNode)()),source_entity:(0,jc.Opt)(i("entity_predicate")),type:(0,jc.Opt)(i("damage_source_predicate"))},{context:"damage"}))};var Ic={};Object.defineProperty(Ic,"__esModule",{value:!0}),Ic.initRecipeSchemas=void 0;const Pc=Pe;Ic.initRecipeSchemas=function(e,t){const i=Pc.Reference.bind(void 0,e),n=Pc.StringNode.bind(void 0,t);e.register("recipe",(0,Pc.Mod)((0,Pc.ObjectNode)({type:n({validator:"resource",params:{pool:"recipe_serializer"}}),[Pc.Switch]:[{push:"type"}],[Pc.Case]:{"minecraft:crafting_shaped":{group:(0,Pc.Opt)(n({enum:"recipe_group",additional:!0})),pattern:(0,Pc.ListNode)(n()),key:(0,Pc.MapNode)(n(),i("recipe_ingredient")),result:i("recipe_result")},"minecraft:crafting_shapeless":{group:(0,Pc.Opt)(n()),ingredients:(0,Pc.ListNode)(i("recipe_ingredient")),result:i("recipe_result")},"minecraft:smelting":{group:(0,Pc.Opt)(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:(0,Pc.Opt)((0,Pc.NumberNode)()),cookingtime:(0,Pc.Opt)((0,Pc.Mod)((0,Pc.NumberNode)({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:(0,Pc.Opt)(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:(0,Pc.Opt)((0,Pc.NumberNode)()),cookingtime:(0,Pc.Opt)((0,Pc.Mod)((0,Pc.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:(0,Pc.Opt)(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:(0,Pc.Opt)((0,Pc.NumberNode)()),cookingtime:(0,Pc.Opt)((0,Pc.Mod)((0,Pc.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:(0,Pc.Opt)(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:(0,Pc.Opt)((0,Pc.NumberNode)()),cookingtime:(0,Pc.Opt)((0,Pc.Mod)((0,Pc.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:(0,Pc.Opt)(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),count:(0,Pc.NumberNode)({integer:!0})},"minecraft:smithing":{group:(0,Pc.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",(0,Pc.Mod)((0,Pc.ChoiceNode)([{type:"object",node:i("recipe_ingredient_object"),change:e=>e[0]},{type:"list",node:(0,Pc.ListNode)(i("recipe_ingredient_object")),change:e=>[e]}]),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_ingredient_object",(0,Pc.Mod)((0,Pc.ObjectNode)({item:(0,Pc.Opt)(n({validator:"resource",params:{pool:"item"}})),tag:(0,Pc.Opt)(n({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_result",(0,Pc.Mod)((0,Pc.ObjectNode)({item:n({validator:"resource",params:{pool:"item"}}),count:(0,Pc.Opt)((0,Pc.Mod)((0,Pc.NumberNode)({integer:!0}),{default:()=>1}))}),{default:()=>({item:"minecraft:stone"})}))};var zc={};Object.defineProperty(zc,"__esModule",{value:!0}),zc.initTagsSchemas=void 0;const Uc=Pe;zc.initTagsSchemas=function(e,t){const i=Uc.StringNode.bind(void 0,t),n=e=>(0,Uc.Mod)((0,Uc.ObjectNode)({replace:(0,Uc.Opt)((0,Uc.BooleanNode)()),values:(0,Uc.ListNode)((0,Uc.ChoiceNode)([{type:"string",node:i({validator:"resource",params:{pool:e,allowTag:!0}}),change:e=>e.id},{type:"object",node:(0,Uc.ObjectNode)({id:i({validator:"resource",params:{pool:e,allowTag:!0,allowUnknown:!0}}),required:(0,Uc.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")),e.register("advancement_tag",n("$advancement")),e.register("dimension_tag",n("$dimension")),e.register("dimension_type_tag",n("$dimension_type")),e.register("function_tag",n("$function")),e.register("item_modifier_tag",n("$item_modifier")),e.register("loot_table_tag",n("$loot_table")),e.register("predicate_tag",n("$predicate")),e.register("recipe_tag",n("$recipe")),e.register("structure_tag",n("$structure")),e.register("biome_tag",n("$worldgen/biome")),e.register("configured_carver_tag",n("$worldgen/configured_carver")),e.register("configured_decorator_tag",n("$worldgen/configured_decorator")),e.register("configured_feature_tag",n("$worldgen/configured_feature")),e.register("configured_structure_feature_tag",n("$worldgen/configured_structure_feature")),e.register("configured_surface_builder_tag",n("$worldgen/configured_surface_builder")),e.register("density_function_tag",n("$worldgen/density_function")),e.register("noise_tag",n("$worldgen/noise")),e.register("noise_settings_tag",n("$worldgen/noise_settings")),e.register("placed_feature_tag",n("$worldgen/placed_feature")),e.register("processor_list_tag",n("$worldgen/processor_list")),e.register("structure_set_tag",n("$worldgen/structure_set")),e.register("template_pool_tag",n("$worldgen/template_pool"))};var Wc={};Object.defineProperty(Wc,"__esModule",{value:!0}),Wc.initTextComponentSchemas=void 0;const Hc=Pe;Wc.initTextComponentSchemas=function(e,t){const i=Hc.Reference.bind(void 0,e),n=Hc.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",(0,Hc.Mod)((0,Hc.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:(0,Hc.NumberNode)(),change:e=>{const t=parseFloat(r(e));return isFinite(t)?t:e?1:0}},{type:"boolean",node:(0,Hc.BooleanNode)(),change:e=>{const t=r(e);return"true"===t||"false"===t?"true"===t:!!t}}],{context:"text_component"}),{default:()=>({text:""})}));const o={color:(0,Hc.Opt)(n()),font:(0,Hc.Opt)(n()),bold:(0,Hc.Opt)((0,Hc.BooleanNode)()),italic:(0,Hc.Opt)((0,Hc.BooleanNode)()),underlined:(0,Hc.Opt)((0,Hc.BooleanNode)()),strikethrough:(0,Hc.Opt)((0,Hc.BooleanNode)()),obfuscated:(0,Hc.Opt)((0,Hc.BooleanNode)()),insertion:(0,Hc.Opt)(n()),clickEvent:(0,Hc.Opt)((0,Hc.ObjectNode)({action:n({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[Hc.Switch]:[{push:"action"}],[Hc.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:(0,Hc.Opt)((0,Hc.ObjectNode)({action:n({enum:["show_text","show_item","show_entity"]}),[Hc.Switch]:[{push:"action"}],[Hc.Case]:{show_text:{value:(0,Hc.Opt)(i("text_component")),contents:(0,Hc.Opt)(i("text_component"))},show_item:{value:(0,Hc.Opt)(n({validator:"nbt",params:{module:"util::InventoryItem"}})),contents:(0,Hc.Opt)((0,Hc.ObjectNode)({id:n({validator:"resource",params:{pool:"item"}}),count:(0,Hc.Opt)((0,Hc.NumberNode)({integer:!0})),tag:(0,Hc.Opt)(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"id"}]}}}))}))},show_entity:{value:(0,Hc.Opt)((0,Hc.ObjectNode)({name:(0,Hc.Opt)(n()),type:(0,Hc.Opt)(n()),id:(0,Hc.Opt)(n())})),contents:(0,Hc.Opt)((0,Hc.Mod)((0,Hc.ObjectNode)({name:(0,Hc.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:(0,Hc.Opt)(i("text_component_list"))};e.register("text_component_object",(0,Hc.Mod)((0,Hc.ChoiceNode)([{type:"text",match:e=>"object"==typeof e,change:e=>({text:""}),priority:-1,node:(0,Hc.ObjectNode)(s({text:n()},o))},{type:"translation",match:e=>void 0!==(null==e?void 0:e.translate),change:e=>({translate:""}),node:(0,Hc.ObjectNode)(s({translate:n(),with:(0,Hc.Opt)(i("text_component_list"))},o))},{type:"score",match:e=>void 0!==(null==e?void 0:e.score),change:e=>({score:{}}),node:(0,Hc.ObjectNode)(s({score:(0,Hc.ObjectNode)({name:n({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:n({validator:"objective"}),value:(0,Hc.Opt)(n())})},o))},{type:"selector",match:e=>void 0!==(null==e?void 0:e.selector),change:e=>({selector:""}),node:(0,Hc.ObjectNode)(s({selector:n({validator:"entity",params:{amount:"multiple",type:"entities"}}),separator:(0,Hc.Opt)(i("text_component"))},o))},{type:"keybind",match:e=>void 0!==(null==e?void 0:e.keybind),change:e=>({keybind:""}),node:(0,Hc.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:(0,Hc.ObjectNode)(s({nbt:n({validator:"nbt_path"}),block:(0,Hc.Opt)(n({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:(0,Hc.Opt)(n({validator:"entity",params:{amount:"multiple",type:"entities"}})),storage:(0,Hc.Opt)(n({validator:"resource",params:{pool:"$storage"}})),interpret:(0,Hc.Opt)((0,Hc.BooleanNode)()),separator:(0,Hc.Opt)(i("text_component"))},o))}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),e.register("text_component_list",(0,Hc.Mod)((0,Hc.ListNode)(i("text_component")),{default:()=>[{text:""}]}))};var qc={},Vc={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.initBiomeSchemas=e.MobCategorySpawnSettings=void 0;const t=Pe,i=_c;e.initBiomeSchemas=function(n,r){const o=t.StringNode.bind(void 0,r);e.MobCategorySpawnSettings=(0,t.Mod)((0,t.ListNode)((0,t.ObjectNode)({type:o({validator:"resource",params:{pool:"entity_type"}}),weight:(0,t.NumberNode)({integer:!0}),minCount:(0,t.NumberNode)({integer:!0}),maxCount:(0,t.NumberNode)({integer:!0})})),{category:()=>"pool",default:()=>[{type:"minecraft:bat",weight:1}]}),n.register("biome",(0,t.Mod)((0,t.ObjectNode)({temperature:(0,t.NumberNode)(),downfall:(0,t.NumberNode)(),precipitation:o({enum:["none","rain","snow"]}),temperature_modifier:(0,t.Opt)(o({enum:["none","frozen"]})),category:o({enum:"biome_category"}),creature_spawn_probability:(0,t.Opt)((0,t.NumberNode)({min:0,max:1})),effects:(0,t.ObjectNode)({sky_color:(0,t.NumberNode)({color:!0}),fog_color:(0,t.NumberNode)({color:!0}),water_color:(0,t.NumberNode)({color:!0}),water_fog_color:(0,t.NumberNode)({color:!0}),grass_color:(0,t.Opt)((0,t.NumberNode)({color:!0})),foliage_color:(0,t.Opt)((0,t.NumberNode)({color:!0})),grass_color_modifier:(0,t.Opt)(o({enum:["none","dark_forest","swamp"]})),ambient_sound:(0,t.Opt)(o()),mood_sound:(0,t.Opt)((0,t.ObjectNode)({sound:o(),tick_delay:(0,t.NumberNode)({integer:!0}),block_search_extent:(0,t.NumberNode)({integer:!0}),offset:(0,t.NumberNode)()})),additions_sound:(0,t.Opt)((0,t.ObjectNode)({sound:o(),tick_chance:(0,t.NumberNode)({min:0,max:1})})),music:(0,t.Opt)((0,t.ObjectNode)({sound:o(),min_delay:(0,t.NumberNode)({integer:!0,min:0}),max_delay:(0,t.NumberNode)({integer:!0,min:0}),replace_current_music:(0,t.BooleanNode)()})),particle:(0,t.Opt)((0,t.ObjectNode)({options:(0,t.ObjectNode)({type:o()}),probability:(0,t.NumberNode)({min:0,max:1})}))}),spawners:(0,t.MapNode)(o({enum:"mob_category"}),e.MobCategorySpawnSettings),spawn_costs:(0,t.MapNode)(o({validator:"resource",params:{pool:"entity_type"}}),(0,t.Mod)((0,t.ObjectNode)({energy_budget:(0,t.NumberNode)(),charge:(0,t.NumberNode)()},{category:"function"}),{default:()=>({energy_budget:.12,charge:1})})),carvers:(0,t.MapNode)(o({enum:["air","liquid"]}),(0,t.Mod)((0,i.Tag)({resource:"$worldgen/configured_carver",inlineSchema:"configured_carver"}),{default:()=>["minecraft:cave"]})),features:(0,t.ListNode)((0,t.Mod)((0,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}})}))}}(Vc);var Gc={};Object.defineProperty(Gc,"__esModule",{value:!0}),Gc.initCarverSchemas=void 0;const Kc=Pe,Xc=_c;Gc.initCarverSchemas=function(e,t){const i=Kc.Reference.bind(void 0,e),n=Kc.StringNode.bind(void 0,t),r={vertical_rotation:(0,Xc.FloatProvider)(),shape:(0,Kc.ObjectNode)({distance_factor:(0,Xc.FloatProvider)(),thickness:(0,Xc.FloatProvider)(),width_smoothness:(0,Kc.NumberNode)({integer:!0,min:0}),horizontal_radius_factor:(0,Xc.FloatProvider)(),vertical_radius_default_factor:(0,Kc.NumberNode)(),vertical_radius_center_factor:(0,Kc.NumberNode)()})},o={horizontal_radius_multiplier:(0,Xc.FloatProvider)(),vertical_radius_multiplier:(0,Xc.FloatProvider)(),floor_level:(0,Xc.FloatProvider)({min:-1,max:1})};e.register("configured_carver",(0,Kc.Mod)((0,Kc.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/carver"}}),config:(0,Kc.ObjectNode)({probability:(0,Kc.NumberNode)({min:0,max:1}),y:i("height_provider"),yScale:(0,Xc.FloatProvider)(),lava_level:i("vertical_anchor"),debug_settings:(0,Kc.Opt)((0,Kc.ObjectNode)({debug_mode:(0,Kc.Opt)((0,Kc.BooleanNode)()),air_state:(0,Kc.Opt)(i("block_state")),water_state:(0,Kc.Opt)(i("block_state")),lava_state:(0,Kc.Opt)(i("block_state")),barrier_state:(0,Kc.Opt)(i("block_state"))})),[Kc.Switch]:["pop",{push:"type"}],[Kc.Case]:{"minecraft:canyon":r,"minecraft:cave":o,"minecraft:nether_cave":o}})},{context:"carver"}),{default:()=>({type:"minecraft:cave",config:{probability:.1}})}))};var Jc={};Object.defineProperty(Jc,"__esModule",{value:!0}),Jc.initDecoratorSchemas=void 0;const Yc=Pe,Zc=_c;Jc.initDecoratorSchemas=function(e,t){const i=Yc.Reference.bind(void 0,e),n=Yc.StringNode.bind(void 0,t);e.register("decorator",(0,Yc.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/placement_modifier_type"}}),[Yc.Switch]:[{push:"type"}],[Yc.Case]:{"minecraft:block_predicate_filter":{predicate:i("block_predicate_worldgen")},"minecraft:carving_mask":{step:n({enum:"generation_step"})},"minecraft:rarity_filter":{chance:(0,Yc.NumberNode)({integer:!0,min:0})},"minecraft:count":{count:(0,Zc.IntProvider)({min:0,max:256})},"minecraft:count_on_every_layer":{count:(0,Zc.IntProvider)({min:0,max:256})},"minecraft:noise_threshold_count":{noise_level:(0,Yc.NumberNode)(),below_noise:(0,Yc.NumberNode)({integer:!0}),above_noise:(0,Yc.NumberNode)({integer:!0})},"minecraft:noise_based_count":{noise_to_count_ratio:(0,Yc.NumberNode)({integer:!0}),noise_factor:(0,Yc.NumberNode)(),noise_offset:(0,Yc.Opt)((0,Yc.NumberNode)())},"minecraft:environment_scan":{direction_of_search:n({enum:["up","down"]}),max_steps:(0,Yc.NumberNode)({integer:!0,min:1,max:32}),target_condition:i("block_predicate_worldgen"),allowed_search_condition:(0,Yc.Opt)(i("block_predicate_worldgen"))},"minecraft:heightmap":{heightmap:n({enum:"heightmap_type"})},"minecraft:height_range":{height:i("height_provider")},"minecraft:random_offset":{xz_spread:(0,Zc.IntProvider)({min:-16,max:16}),y_spread:(0,Zc.IntProvider)({min:-16,max:16})},"minecraft:surface_relative_threshold_filter":{heightmap:n({enum:"heightmap_type"}),min_inclusive:(0,Yc.Opt)((0,Yc.NumberNode)({integer:!0})),max_inclusive:(0,Yc.Opt)((0,Yc.NumberNode)({integer:!0}))},"minecraft:surface_water_depth_filter":{max_water_depth:(0,Yc.NumberNode)({integer:!0})}}},{context:"decorator",category:"predicate"}))};var Qc={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.initDensityFunctionSchemas=e.DensityFunction=void 0;const t=Pe;e.initDensityFunctionSchemas=function(i,n){const r=t.StringNode.bind(void 0,n),o=t.Reference.bind(void 0,i);e.DensityFunction=(0,t.Mod)((0,t.ChoiceNode)([{type:"number",node:(0,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=(0,t.ChoiceNode)([{type:"string",node:r({validator:"resource",params:{pool:"$worldgen/noise"}}),change:()=>{}},{type:"object",node:o("noise_parameters")}],{choiceContext:"noise_parameters"}),s=(0,t.NumberNode)({min:-1e6,max:1e6}),c=(0,t.NumberNode)({integer:!0,min:-4064,max:4062});i.register("density_function",(0,t.Mod)((0,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:blend_density":{argument: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:constant":{argument:(0,t.NumberNode)()},"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:(0,t.NumberNode)(),y_scale:(0,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:(0,t.NumberNode)(),y_scale:(0,t.NumberNode)(),shift_x:e.DensityFunction,shift_y:e.DensityFunction,shift_z:e.DensityFunction},"minecraft:slide":{argument:e.DensityFunction},"minecraft:spline":{spline:o("cubic_spline"),min_value:s,max_value:s},"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}),{default:()=>({type:"minecraft:noise",noise:"minecraft:cave_entrance",xz_scale:.75,y_scale:.5})})),i.register("cubic_spline",(0,t.Mod)((0,t.ChoiceNode)([{type:"number",node:(0,t.NumberNode)()},{type:"object",node:(0,t.ObjectNode)({coordinate:e.DensityFunction,points:(0,t.ListNode)((0,t.ObjectNode)({location:(0,t.NumberNode)(),derivative:(0,t.NumberNode)(),value:o("cubic_spline")}))},{category:"function"})}],{context:"terrain_spline",choiceContext:"terrain_spline"}),{default:()=>0}))}}(Qc);var el={},tl={};Object.defineProperty(tl,"__esModule",{value:!0}),tl.initProcessorListSchemas=tl.Processors=void 0;const il=Pe;tl.initProcessorListSchemas=function(e,t){const i=il.Reference.bind(void 0,e),n=il.StringNode.bind(void 0,t);tl.Processors=(0,il.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",(0,il.Mod)((0,il.ObjectNode)({processors:(0,il.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",(0,il.Mod)((0,il.ObjectNode)({processor_type:n({validator:"resource",params:{pool:"worldgen/structure_processor"}}),[il.Switch]:[{push:"processor_type"}],[il.Case]:{"minecraft:block_age":{mossiness:(0,il.NumberNode)()},"minecraft:block_ignore":{blocks:(0,il.ListNode)(i("block_state"))},"minecraft:block_rot":{integrity:(0,il.NumberNode)({min:0,max:1})},"minecraft:gravity":{heightmap:n({enum:"heightmap_type"}),offset:(0,il.NumberNode)({integer:!0})},"minecraft:protected_blocks":{value:n({validator:"resource",params:{pool:"block",requireTag:!0}})},"minecraft:rule":{rules:(0,il.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",(0,il.Mod)((0,il.ObjectNode)({position_predicate:(0,il.Opt)(i("pos_rule_test")),location_predicate:i("rule_test"),input_predicate:i("rule_test"),output_state:i("block_state"),output_nbt:(0,il.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:(0,il.Opt)((0,il.NumberNode)({min:0,max:255,integer:!0})),max_dist:(0,il.Opt)((0,il.NumberNode)({min:0,max:255,integer:!0})),min_chance:(0,il.Opt)((0,il.NumberNode)({min:0,max:1})),max_chance:(0,il.Opt)((0,il.NumberNode)({min:0,max:1}))};e.register("pos_rule_test",(0,il.ObjectNode)({predicate_type:n({validator:"resource",params:{pool:"pos_rule_test"}}),[il.Switch]:[{push:"predicate_type"}],[il.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",(0,il.ObjectNode)({predicate_type:n({validator:"resource",params:{pool:"rule_test"}}),[il.Switch]:[{push:"predicate_type"}],[il.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:(0,il.NumberNode)({min:0,max:1})},"minecraft:random_blockstate_match":{block_state:i("block_state"),probability:(0,il.NumberNode)({min:0,max:1})},"minecraft:tag_match":{tag:n({validator:"resource",params:{pool:"$tag/block"}})}}},{context:"rule_test",disableSwitchContext:!0}))},Object.defineProperty(el,"__esModule",{value:!0}),el.initFeatureSchemas=void 0;const nl=Pe,rl=_c,ol=tl;el.initFeatureSchemas=function(e,t){const i=nl.Reference.bind(void 0,e),n=nl.StringNode.bind(void 0,t),r=(0,nl.ChoiceNode)([{type:"string",node:n({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},{type:"object",node:i("configured_feature")}],{choiceContext:"feature"}),o=(0,nl.ChoiceNode)([{type:"string",node:n({validator:"resource",params:{pool:"$worldgen/placed_feature"}})},{type:"object",node:i("placed_feature")}],{choiceContext:"placed_feature"}),a={tries:(0,nl.Opt)((0,nl.NumberNode)({integer:!0,min:1})),xz_spread:(0,nl.Opt)((0,nl.NumberNode)({integer:!0,min:0})),y_spread:(0,nl.Opt)((0,nl.NumberNode)({integer:!0,min:0})),feature:o},l={state:i("block_state"),radius:(0,rl.IntProvider)({min:0,max:8}),half_height:(0,nl.NumberNode)({integer:!0,min:0,max:4}),targets:(0,nl.ListNode)(i("block_state"))},u={cap_provider:i("block_state_provider"),stem_provider:i("block_state_provider"),foliage_radius:(0,nl.Opt)((0,nl.NumberNode)({integer:!0}))},d=(0,nl.ObjectNode)({target:i("rule_test"),state:i("block_state")}),h={size:(0,nl.NumberNode)({integer:!0,min:0,max:64}),discard_chance_on_air_exposure:(0,nl.NumberNode)({min:0,max:1}),targets:(0,nl.ListNode)(d)},p={surface:n({enum:"cave_surface"}),depth:(0,rl.IntProvider)({min:1,max:128}),vertical_range:(0,nl.NumberNode)({integer:!0,min:1,max:256}),extra_bottom_block_chance:(0,nl.NumberNode)({min:0,max:1}),extra_edge_column_chance:(0,nl.NumberNode)({min:0,max:1}),vegetation_chance:(0,nl.NumberNode)({min:0,max:1}),xz_radius:(0,rl.IntProvider)(),replaceable:n({validator:"resource",params:{pool:"block",requireTag:!0}}),ground_state:i("block_state_provider"),vegetation_feature:o};e.register("configured_feature",(0,nl.Mod)((0,nl.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/feature"}}),config:(0,nl.ObjectNode)({[nl.Switch]:["pop",{push:"type"}],[nl.Case]:{"minecraft:bamboo":{probability:(0,nl.NumberNode)({min:0,max:1})},"minecraft:basalt_columns":{reach:(0,rl.IntProvider)({min:0,max:3}),height:(0,rl.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:(0,nl.BooleanNode)(),layers:(0,nl.ListNode)((0,nl.ObjectNode)({height:(0,rl.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:(0,rl.IntProvider)({min:0,max:16}),rim_size:(0,rl.IntProvider)({min:0,max:16})},"minecraft:disk":l,"minecraft:dripstone_cluster":{floor_to_ceiling_search_range:(0,nl.NumberNode)({integer:!0,min:1,max:512}),height:(0,rl.IntProvider)({min:0,max:128}),radius:(0,rl.IntProvider)({min:0,max:128}),max_stalagmite_stalactite_height_diff:(0,nl.NumberNode)({integer:!0,min:0,max:64}),height_deviation:(0,nl.NumberNode)({integer:!0,min:1,max:64}),dripstone_block_layer_thickness:(0,rl.IntProvider)({min:0,max:128}),density:(0,rl.FloatProvider)({min:0,max:2}),wetness:(0,rl.FloatProvider)({min:0,max:2}),chance_of_dripstone_column_at_max_distance_from_center:(0,nl.NumberNode)({min:0,max:1}),max_distance_from_edge_affecting_chance_of_dripstone_column:(0,nl.NumberNode)({integer:!0,min:1,max:64}),max_distance_from_center_affecting_height_bias:(0,nl.NumberNode)({integer:!0,min:1,max:64})},"minecraft:end_gateway":{exact:(0,nl.BooleanNode)(),exit:(0,nl.Opt)(i("block_pos"))},"minecraft:end_spike":{crystal_invulnerable:(0,nl.Opt)((0,nl.BooleanNode)()),crystal_beam_target:(0,nl.Opt)(i("block_pos")),spikes:(0,nl.ListNode)((0,nl.ObjectNode)({centerX:(0,nl.Opt)((0,nl.NumberNode)({integer:!0})),centerZ:(0,nl.Opt)((0,nl.NumberNode)({integer:!0})),radius:(0,nl.Opt)((0,nl.NumberNode)({integer:!0})),height:(0,nl.Opt)((0,nl.NumberNode)({integer:!0})),guarded:(0,nl.Opt)((0,nl.BooleanNode)())}))},"minecraft:fill_layer":{state:i("block_state"),height:(0,nl.NumberNode)({integer:!0,min:0,max:255})},"minecraft:flower":a,"minecraft:forest_rock":{state:i("block_state")},"minecraft:fossil":{max_empty_corners_allowed:(0,nl.NumberNode)({integer:!0,min:0,max:7}),fossil_structures:(0,nl.ListNode)(n({validator:"resource",params:{pool:"$structure"}})),overlay_structures:(0,nl.ListNode)(n({validator:"resource",params:{pool:"$structure"}})),fossil_processors:ol.Processors,overlay_processors:ol.Processors},"minecraft:geode":{blocks:(0,nl.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:(0,nl.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:(0,nl.ObjectNode)({filling:(0,nl.Opt)((0,nl.NumberNode)({min:.01,max:50})),inner_layer:(0,nl.Opt)((0,nl.NumberNode)({min:.01,max:50})),middle_layer:(0,nl.Opt)((0,nl.NumberNode)({min:.01,max:50})),outer_layer:(0,nl.Opt)((0,nl.NumberNode)({min:.01,max:50}))}),crack:(0,nl.ObjectNode)({generate_crack_chance:(0,nl.Opt)((0,nl.NumberNode)({min:0,max:1})),base_crack_size:(0,nl.Opt)((0,nl.NumberNode)({min:0,max:5})),crack_point_offset:(0,nl.Opt)((0,nl.NumberNode)({min:0,max:10}))}),noise_multiplier:(0,nl.Opt)((0,nl.NumberNode)({min:0,max:1})),use_potential_placements_chance:(0,nl.Opt)((0,nl.NumberNode)({min:0,max:1})),use_alternate_layer0_chance:(0,nl.Opt)((0,nl.NumberNode)({min:0,max:1})),placements_require_layer0_alternate:(0,nl.Opt)((0,nl.BooleanNode)()),outer_wall_distance:(0,nl.Opt)((0,rl.IntProvider)({min:1,max:20})),distribution_points:(0,nl.Opt)((0,rl.IntProvider)({min:1,max:20})),point_offset:(0,nl.Opt)((0,rl.IntProvider)({min:0,max:10})),min_gen_offset:(0,nl.Opt)((0,nl.NumberNode)({integer:!0})),max_gen_offset:(0,nl.Opt)((0,nl.NumberNode)({integer:!0})),invalid_blocks_threshold:(0,nl.NumberNode)({integer:!0})},"minecraft:glow_lichen":{search_range:(0,nl.Opt)((0,nl.NumberNode)({min:1,max:64,integer:!0})),chance_of_spreading:(0,nl.Opt)((0,nl.NumberNode)({min:0,max:1})),can_place_on_floor:(0,nl.Opt)((0,nl.BooleanNode)()),can_place_on_ceiling:(0,nl.Opt)((0,nl.BooleanNode)()),can_place_on_wall:(0,nl.Opt)((0,nl.BooleanNode)()),can_be_placed_on:(0,rl.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:(0,nl.Opt)((0,nl.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:(0,nl.Opt)((0,nl.NumberNode)({integer:!0,min:1,max:512})),column_radius:(0,rl.IntProvider)({min:0,max:60}),height_scale:(0,rl.FloatProvider)({min:0,max:20}),max_column_radius_to_cave_height_ratio:(0,nl.NumberNode)({min:0,max:1}),stalactite_bluntness:(0,rl.FloatProvider)({min:.1,max:10}),stalagmite_bluntness:(0,rl.FloatProvider)({min:.1,max:10}),wind_speed:(0,rl.FloatProvider)({min:0,max:2}),min_radius_for_wind:(0,nl.NumberNode)({integer:!0,min:0,max:100}),min_bluntness_for_wind:(0,nl.NumberNode)({min:0,max:5})},"minecraft:nether_forest_vegetation":{state_provider:i("block_state_provider"),spread_width:(0,nl.NumberNode)({integer:!0,min:1}),spread_height:(0,nl.NumberNode)({integer:!0,min:1})},"minecraft:netherrack_replace_blobs":{state:i("block_state"),target:i("block_state"),radius:(0,rl.IntProvider)({min:0,max:12})},"minecraft:no_bonemeal_flower":a,"minecraft:ore":h,"minecraft:pointed_dripstone":{chance_of_taller_dripstone:(0,nl.Opt)((0,nl.NumberNode)({min:0,max:1})),chance_of_directional_spread:(0,nl.Opt)((0,nl.NumberNode)({min:0,max:1})),chance_of_spread_radius2:(0,nl.Opt)((0,nl.NumberNode)({min:0,max:1})),chance_of_spread_radius3:(0,nl.Opt)((0,nl.NumberNode)({min:0,max:1}))},"minecraft:random_patch":a,"minecraft:random_boolean_selector":{feature_false:o,feature_true:o},"minecraft:random_selector":{features:(0,nl.ListNode)((0,nl.ObjectNode)({chance:(0,nl.NumberNode)({min:0,max:1}),feature:o})),default:o},"minecraft:replace_single_block":{targets:(0,nl.ListNode)(d)},"minecraft:root_system":{required_vertical_space_for_tree:(0,nl.NumberNode)({integer:!0,min:1,max:64}),root_radius:(0,nl.NumberNode)({integer:!0,min:1,max:64}),root_placement_attempts:(0,nl.NumberNode)({integer:!0,min:1,max:256}),root_column_max_height:(0,nl.NumberNode)({integer:!0,min:1,max:4096}),hanging_root_radius:(0,nl.NumberNode)({integer:!0,min:1,max:64}),hanging_roots_vertical_span:(0,nl.NumberNode)({integer:!0,min:0,max:16}),hanging_root_placement_attempts:(0,nl.NumberNode)({integer:!0,min:0,max:256}),allowed_vertical_water_for_tree:(0,nl.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:(0,rl.IntProvider)({min:0,max:256})},"minecraft:seagrass":{probability:(0,nl.NumberNode)({min:0,max:1})},"minecraft:simple_block":{to_place:i("block_state_provider")},"minecraft:simple_random_selector":{features:(0,rl.Tag)({resource:"$worldgen/placed_feature",inlineSchema:"placed_feature"})},"minecraft:spring_feature":{state:i("fluid_state"),rock_count:(0,nl.NumberNode)({integer:!0}),hole_count:(0,nl.NumberNode)({integer:!0}),requires_block_below:(0,nl.BooleanNode)(),valid_blocks:(0,rl.Tag)({resource:"block"})},"minecraft:tree":{ignore_vines:(0,nl.Opt)((0,nl.BooleanNode)()),force_dirt:(0,nl.Opt)((0,nl.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:(0,nl.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/trunk_placer_type"}}),base_height:(0,nl.NumberNode)({integer:!0,min:0,max:32}),height_rand_a:(0,nl.NumberNode)({integer:!0,min:0,max:24}),height_rand_b:(0,nl.NumberNode)({integer:!0,min:0,max:24}),[nl.Switch]:[{push:"type"}],[nl.Case]:{"minecraft:bending_trunk_placer":{bend_length:(0,rl.IntProvider)({min:1,max:64}),min_height_for_leaves:(0,nl.Opt)((0,nl.NumberNode)({integer:!0,min:1}))}}},{context:"trunk_placer"}),foliage_placer:(0,nl.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/foliage_placer_type"}}),radius:(0,rl.IntProvider)({min:0,max:16}),offset:(0,rl.IntProvider)({min:0,max:16}),[nl.Switch]:[{push:"type"}],[nl.Case]:{"minecraft:blob_foliage_placer":{height:(0,nl.NumberNode)({integer:!0,min:0,max:16})},"minecraft:bush_foliage_placer":{height:(0,nl.NumberNode)({integer:!0,min:0,max:16})},"minecraft:fancy_foliage_placer":{height:(0,nl.NumberNode)({integer:!0,min:0,max:16})},"minecraft:jungle_foliage_placer":{height:(0,nl.NumberNode)({integer:!0,min:0,max:16})},"minecraft:mega_pine_foliage_placer":{crown_height:(0,rl.IntProvider)({min:0,max:24})},"minecraft:pine_foliage_placer":{height:(0,rl.IntProvider)({min:0,max:24})},"minecraft:random_spread_foliage_placer":{foliage_height:(0,rl.IntProvider)({min:1,max:512}),leaf_placement_attempts:(0,nl.NumberNode)({integer:!0,min:0,max:256})},"minecraft:spruce_foliage_placer":{trunk_height:(0,rl.IntProvider)({min:0,max:24})}}},{context:"foliage_placer",disableSwitchContext:!0}),decorators:(0,nl.ListNode)((0,nl.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/tree_decorator_type"}}),[nl.Switch]:[{push:"type"}],[nl.Case]:{"minecraft:alter_ground":{provider:i("block_state_provider")},"minecraft:beehive":{probability:(0,nl.NumberNode)({min:0,max:1})},"minecraft:cocoa":{probability:(0,nl.NumberNode)({min:0,max:1})}}},{context:"tree_decorator"}))},"minecraft:twisting_vines":{spread_width:(0,nl.NumberNode)({integer:!0,min:1}),spread_height:(0,nl.NumberNode)({integer:!0,min:1}),max_height:(0,nl.NumberNode)({integer:!0,min:1})},"minecraft:underwater_magma":{floor_search_range:(0,nl.NumberNode)({integer:!0,min:0,max:512}),placement_radius_around_floor:(0,nl.NumberNode)({integer:!0,min:0,max:64}),placement_probability_per_valid_position:(0,nl.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",(0,nl.Mod)((0,nl.ObjectNode)({feature:r,placement:(0,nl.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",(0,nl.Mod)((0,nl.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/feature_size_type"}}),min_clipped_height:(0,nl.Opt)((0,nl.NumberNode)({min:0,max:80})),[nl.Switch]:[{push:"type"}],[nl.Case]:{"minecraft:two_layers_feature_size":{limit:(0,nl.Opt)((0,nl.NumberNode)({integer:!0,min:0,max:81})),lower_size:(0,nl.Opt)((0,nl.NumberNode)({integer:!0,min:0,max:16})),upper_size:(0,nl.Opt)((0,nl.NumberNode)({integer:!0,min:0,max:16}))},"minecraft:three_layers_feature_size":{limit:(0,nl.Opt)((0,nl.NumberNode)({integer:!0,min:0,max:80})),upper_limit:(0,nl.Opt)((0,nl.NumberNode)({integer:!0,min:0,max:80})),lower_size:(0,nl.Opt)((0,nl.NumberNode)({integer:!0,min:0,max:16})),middle_size:(0,nl.Opt)((0,nl.NumberNode)({integer:!0,min:0,max:16})),upper_size:(0,nl.Opt)((0,nl.NumberNode)({integer:!0,min:0,max:16}))}}},{disableSwitchContext:!0}),{default:()=>({type:"minecraft:two_layers_feature_size"})}));const m={seed:(0,nl.NumberNode)({integer:!0}),noise:i("noise_parameters"),scale:(0,nl.Mod)((0,nl.NumberNode)({min:Number.MIN_VALUE}),{default:()=>1})};e.register("block_state_provider",(0,nl.Mod)((0,nl.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/block_state_provider_type"}}),[nl.Switch]:[{push:"type"}],[nl.Case]:{"minecraft:dual_noise_provider":c(s({},m),{variety:(0,rl.InclusiveRange)({integer:!0,min:1,max:64}),slow_noise:i("noise_parameters"),slow_scale:(0,nl.Mod)((0,nl.NumberNode)({min:Number.MIN_VALUE}),{default:()=>1}),states:(0,nl.ListNode)(i("block_state"))}),"minecraft:noise_threshold_provider":c(s({},m),{threshold:(0,nl.NumberNode)({min:-1,max:1}),high_chance:(0,nl.NumberNode)({min:0,max:1}),default_state:i("block_state"),low_states:(0,nl.ListNode)(i("block_state")),high_states:(0,nl.ListNode)(i("block_state"))}),"minecraft:noise_provider":c(s({},m),{states:(0,nl.ListNode)(i("block_state"))}),"minecraft:randomized_int_state_provider":{property:n(),values:(0,rl.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:(0,nl.ListNode)((0,nl.Mod)((0,nl.ObjectNode)({weight:(0,nl.NumberNode)({integer:!0,min:1}),data:i("block_state")}),{default:()=>({data:{}})}))}}},{context:"block_state_provider"}),{default:()=>({type:"minecraft:simple_state_provider"})}));const f={offset:(0,nl.Opt)((0,nl.ListNode)((0,nl.NumberNode)({integer:!0,min:-16,max:16}),{minLength:3,maxLength:3}))};e.register("block_predicate_worldgen",(0,nl.Mod)((0,nl.ObjectNode)({type:n({validator:"resource",params:{pool:"block_predicate_type"}}),[nl.Switch]:[{push:"type"}],[nl.Case]:{"minecraft:all_of":{predicates:(0,nl.ListNode)(i("block_predicate_worldgen"))},"minecraft:any_of":{predicates:(0,nl.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:(0,rl.Tag)({resource:"block"})}),"minecraft:matching_fluids":c(s({},f),{fluids:(0,rl.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 al={};Object.defineProperty(al,"__esModule",{value:!0}),al.initNoiseSettingsSchemas=void 0;const sl=Pe,cl=_c,ll=Qc;al.initNoiseSettingsSchemas=function(e,t){const i=sl.Reference.bind(void 0,e),n=sl.StringNode.bind(void 0,t);e.register("noise_settings",(0,sl.Mod)((0,sl.ObjectNode)({sea_level:(0,sl.NumberNode)({integer:!0}),disable_mob_generation:(0,sl.BooleanNode)(),aquifers_enabled:(0,sl.BooleanNode)(),ore_veins_enabled:(0,sl.BooleanNode)(),legacy_random_source:(0,sl.BooleanNode)(),default_block:i("block_state"),default_fluid:i("block_state"),noise:(0,sl.ObjectNode)({min_y:(0,sl.NumberNode)({integer:!0,min:-2048,max:2047}),height:(0,sl.NumberNode)({integer:!0,min:0,max:4096}),size_horizontal:(0,sl.NumberNode)({integer:!0}),size_vertical:(0,sl.NumberNode)({integer:!0}),sampling:(0,sl.ObjectNode)({xz_scale:(0,sl.NumberNode)(),y_scale:(0,sl.NumberNode)(),xz_factor:(0,sl.NumberNode)(),y_factor:(0,sl.NumberNode)()}),bottom_slide:i("noise_slider"),top_slide:i("noise_slider"),terrain_shaper:i("terrain_shaper")}),noise_router:(0,sl.ObjectNode)({barrier:ll.DensityFunction,fluid_level_floodedness:ll.DensityFunction,fluid_level_spread:ll.DensityFunction,lava:ll.DensityFunction,temperature:ll.DensityFunction,vegetation:ll.DensityFunction,continents:ll.DensityFunction,erosion:ll.DensityFunction,depth:ll.DensityFunction,ridges:ll.DensityFunction,initial_density_without_jaggedness:ll.DensityFunction,final_density:ll.DensityFunction,vein_toggle:ll.DensityFunction,vein_ridged:ll.DensityFunction,vein_gap:ll.DensityFunction}),surface_rule:i("material_rule")},{context:"noise_settings"}),(e=>({default:()=>cl.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",(0,sl.ObjectNode)({target:(0,sl.NumberNode)(),size:(0,sl.NumberNode)({integer:!0,min:0}),offset:(0,sl.NumberNode)({integer:!0})})),e.register("generator_layer",(0,sl.Mod)((0,sl.ObjectNode)({block:n({validator:"resource",params:{pool:"block"}}),height:(0,sl.NumberNode)({integer:!0,min:1})}),{default:()=>({block:"minecraft:stone",height:1})})),e.register("terrain_shaper",(0,sl.Mod)((0,sl.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",(0,sl.Mod)((0,sl.ChoiceNode)([{type:"number",node:(0,sl.NumberNode)()},{type:"object",node:(0,sl.ObjectNode)({coordinate:(0,sl.Mod)(n({enum:["continents","erosion","weirdness","ridges"]}),{default:()=>"continents"}),points:(0,sl.ListNode)((0,sl.ObjectNode)({location:(0,sl.NumberNode)(),derivative:(0,sl.NumberNode)(),value:i("terrain_spline")}))},{category:"function"})}],{context:"terrain_spline",choiceContext:"terrain_spline"}),{default:()=>0}))};var ul={};Object.defineProperty(ul,"__esModule",{value:!0}),ul.initStructureFeatureSchemas=void 0;const dl=Pe,hl=_c,pl=Vc;ul.initStructureFeatureSchemas=function(e,t){const i=dl.StringNode.bind(void 0,t),n=dl.Reference.bind(void 0,e),r={start_pool:i({validator:"resource",params:{pool:"$worldgen/template_pool"}}),size:(0,dl.NumberNode)({integer:!0})};e.register("configured_structure_feature",(0,dl.Mod)((0,dl.ObjectNode)({type:i({validator:"resource",params:{pool:"worldgen/structure_feature"}}),biomes:(0,hl.Tag)({resource:"$worldgen/biome"}),adapt_noise:(0,dl.Opt)((0,dl.BooleanNode)()),spawn_overrides:(0,dl.MapNode)(i({enum:"mob_category"}),(0,dl.ObjectNode)({bounding_box:i({enum:["piece","full"]}),spawns:pl.MobCategorySpawnSettings})),config:(0,dl.ObjectNode)({[dl.Switch]:["pop",{push:"type"}],[dl.Case]:{"minecraft:bastion_remnant":r,"minecraft:buried_treasure":{probability:(0,dl.NumberNode)({min:0,max:1})},"minecraft:mineshaft":{type:i({enum:["normal","mesa"]}),probability:(0,dl.NumberNode)({min:0,max:1})},"minecraft:nether_fossil":{height:n("height_provider")},"minecraft:ocean_ruin":{biome_temp:i({enum:["cold","warm"]}),large_probability:(0,dl.NumberNode)({min:0,max:1}),cluster_probability:(0,dl.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:(0,dl.Opt)((0,dl.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 ml={};Object.defineProperty(ml,"__esModule",{value:!0}),ml.initStructureSetSchemas=void 0;const fl=Pe,gl=_c;ml.initStructureSetSchemas=function(e,t){const i=fl.StringNode.bind(void 0,t),n=fl.Reference.bind(void 0,e);e.register("structure_set",(0,fl.ObjectNode)({structures:(0,fl.ListNode)((0,fl.ObjectNode)({structure:(0,gl.Tag)({resource:"$worldgen/configured_structure_feature"}),weight:(0,fl.NumberNode)({integer:!0,min:1})})),placement:n("structure_placement")},{context:"structure_set"})),e.register("structure_placement",(0,fl.Mod)((0,fl.ObjectNode)({type:i({validator:"resource",params:{pool:"worldgen/structure_placement"}}),[fl.Switch]:[{push:"type"}],[fl.Case]:{"minecraft:concentric_rings":{distance:(0,fl.NumberNode)({integer:!0,min:0,max:1023}),spread:(0,fl.NumberNode)({integer:!0,min:0,max:1023}),count:(0,fl.NumberNode)({integer:!0,min:1,max:4095})},"minecraft:random_spread":{spread_type:(0,fl.Opt)(i({enum:["linear","triangular"]})),spacing:(0,fl.NumberNode)({integer:!0,min:0,max:4096}),separation:(0,fl.Mod)((0,fl.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:(0,fl.NumberNode)({integer:!0,min:0}),locate_offset:(0,fl.Opt)((0,fl.ListNode)((0,fl.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 _l={};Object.defineProperty(_l,"__esModule",{value:!0}),_l.initSurfaceRuleSchemas=void 0;const bl=Pe;_l.initSurfaceRuleSchemas=function(e,t){const i=bl.StringNode.bind(void 0,t),n=bl.Reference.bind(void 0,e);e.register("material_rule",(0,bl.Mod)((0,bl.ObjectNode)({type:i({validator:"resource",params:{pool:"worldgen/material_rule"}}),[bl.Switch]:[{push:"type"}],[bl.Case]:{"minecraft:block":{result_state:n("block_state")},"minecraft:condition":{if_true:n("material_condition"),then_run:n("material_rule")},"minecraft:sequence":{sequence:(0,bl.ListNode)(n("material_rule"))}}},{context:"material_rule",category:"pool"}),{default:()=>({type:"minecraft:block",result_state:{Name:"minecraft:stone"}})})),e.register("material_condition",(0,bl.Mod)((0,bl.ObjectNode)({type:i({validator:"resource",params:{pool:"worldgen/material_condition"}}),[bl.Switch]:[{push:"type"}],[bl.Case]:{"minecraft:biome":{biome_is:(0,bl.ListNode)(i({validator:"resource",params:{pool:"$worldgen/biome"}}))},"minecraft:noise_threshold":{noise:i({validator:"resource",params:{pool:"$worldgen/noise"}}),min_threshold:(0,bl.NumberNode)(),max_threshold:(0,bl.NumberNode)()},"minecraft:not":{invert:n("material_condition")},"minecraft:stone_depth":{offset:(0,bl.NumberNode)({integer:!0}),surface_type:i({enum:"cave_surface"}),add_surface_depth:(0,bl.BooleanNode)(),secondary_depth_range:(0,bl.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:(0,bl.NumberNode)({integer:!0}),surface_depth_multiplier:(0,bl.NumberNode)({integer:!0,min:-20,max:20}),add_stone_depth:(0,bl.BooleanNode)()},"minecraft:y_above":{anchor:n("vertical_anchor"),surface_depth_multiplier:(0,bl.NumberNode)({integer:!0,min:-20,max:20}),add_stone_depth:(0,bl.BooleanNode)()}}},{context:"material_condition"}),{default:()=>({type:"minecraft:biome",is_biome:"minecraft:plains"})}))};var vl={};Object.defineProperty(vl,"__esModule",{value:!0}),vl.initTemplatePoolSchemas=void 0;const yl=Pe,wl=tl;vl.initTemplatePoolSchemas=function(e,t){const i=yl.Reference.bind(void 0,e),n=yl.StringNode.bind(void 0,t);e.register("template_pool",(0,yl.Mod)((0,yl.ObjectNode)({name:n(),fallback:n(),elements:(0,yl.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",(0,yl.Mod)((0,yl.ObjectNode)({weight:(0,yl.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",(0,yl.Mod)((0,yl.ObjectNode)({element_type:n({validator:"resource",params:{pool:"worldgen/structure_pool_element"}}),projection:n({enum:["rigid","terrain_matching"]}),[yl.Switch]:[{push:"element_type"}],[yl.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:wl.Processors},"minecraft:list_pool_element":{elements:(0,yl.ListNode)(i("template_element"))},"minecraft:single_pool_element":{location:n({validator:"resource",params:{pool:"$structure"}}),processors:wl.Processors}}},{context:"template_element",disableSwitchContext:!0}),{default:()=>({element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"})}))},Object.defineProperty(qc,"__esModule",{value:!0}),qc.initWorldgenSchemas=void 0;const xl=Vc,Nl=Gc,kl=Jc,Al=Qc,Cl=el,Ol=al,Sl=tl,El=ul,Fl=ml,Dl=_l,Bl=vl;qc.initWorldgenSchemas=function(e,t){(0,Sl.initProcessorListSchemas)(e,t),(0,Al.initDensityFunctionSchemas)(e,t),(0,xl.initBiomeSchemas)(e,t),(0,Nl.initCarverSchemas)(e,t),(0,kl.initDecoratorSchemas)(e,t),(0,Cl.initFeatureSchemas)(e,t),(0,Ol.initNoiseSettingsSchemas)(e,t),(0,El.initStructureFeatureSchemas)(e,t),(0,Fl.initStructureSetSchemas)(e,t),(0,Dl.initSurfaceRuleSchemas)(e,t),(0,Bl.initTemplatePoolSchemas)(e,t)};var Ll={};Object.defineProperty(Ll,"__esModule",{value:!0}),Ll.initWorldSettingsSchemas=void 0;const Ml=Pe;Ll.initWorldSettingsSchemas=function(e,t){const i=Ml.Reference.bind(void 0,e),n=Ml.StringNode.bind(void 0,t);e.register("world_settings",(0,Ml.Mod)((0,Ml.ObjectNode)({generate_features:(0,Ml.BooleanNode)(),bonus_chest:(0,Ml.BooleanNode)(),seed:(0,Ml.NumberNode)({integer:!0}),dimensions:(0,Ml.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(sc,"__esModule",{value:!0}),sc.initSchemas=void 0;const Tl=cc,Rl=uc,$l=_c,jl=bc,Il=wc,Pl=kc,zl=Oc,Ul=Fc,Wl=Tc,Hl=$c,ql=Ic,Vl=zc,Gl=Wc,Kl=qc,Xl=Ll;sc.initSchemas=function(e,t){(0,$l.initCommonSchemas)(e,t),(0,Tl.initAdvancementSchemas)(e,t),(0,Rl.initAssetsSchemas)(e,t),(0,jl.initConditionSchemas)(e,t),(0,Pl.initDimensionTypeSchemas)(e,t),(0,Il.initDimensionSchemas)(e,t),(0,zl.initItemModifierSchemas)(e,t),(0,Ul.initLootTableSchemas)(e,t),(0,Wl.initPackMcmetaSchemas)(e,t),(0,Hl.initPredicatesSchemas)(e,t),(0,ql.initRecipeSchemas)(e,t),(0,Vl.initTagsSchemas)(e,t),(0,Gl.initTextComponentSchemas)(e,t),(0,Kl.initWorldgenSchemas)(e,t),(0,Xl.initWorldSettingsSchemas)(e,t)};var Jl=Ie&&Ie.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i);var r=Object.getOwnPropertyDescriptor(t,i);r&&!("get"in r?!t.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,n,r)}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),Yl=Ie&&Ie.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),Zl=Ie&&Ie.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&Jl(t,e,i);return Yl(t,e),t};Object.defineProperty(oc,"__esModule",{value:!0});var Ql=oc.getSchemas=oc.getCollections=oc.lootContext=void 0;const eu=Pe,tu=ac,iu=sc;var nu=oc.lootContext=Zl(Dc);var ru=oc.getCollections=function(){const e=new eu.CollectionRegistry;return(0,tu.initCollections)(e),e};Ql=oc.getSchemas=function(e){const t=new eu.SchemaRegistry;return(0,iu.initSchemas)(t,e),t};var ou=Object.freeze(Object.assign(Object.create(null),oc,{[Symbol.toStringTag]:"Module",get getSchemas(){return Ql},get getCollections(){return ru},get lootContext(){return nu},default:oc})),au={},su={};Object.defineProperty(su,"__esModule",{value:!0}),su.initCollections=void 0,su.initCollections=function(e){e.register("advancement_trigger",["minecraft:allay_drop_item_on_block","minecraft:avoid_vibration","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:kill_mob_near_sculk_catalyst","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:thrown_item_picked_up_by_player","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("decoration_step",["raw_generation","lakes","local_modifications","underground_structures","surface_structures","strongholds","underground_ores","underground_decoration","fluid_springs","vegetal_decoration","top_layer_modification"]),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 cu={},lu={};Object.defineProperty(lu,"__esModule",{value:!0}),lu.initAdvancementSchemas=void 0;const uu=Pe;lu.initAdvancementSchemas=function(e,t){const i=uu.Reference.bind(void 0,e),n=uu.StringNode.bind(void 0,t),r=(0,uu.ChoiceNode)([{type:"object",node:(0,uu.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:(0,uu.ListNode)(i("condition")),change:e=>[{condition:"minecraft:entity_properties",predicate:e}]}],{context:"conditions"});e.register("advancement",(0,uu.Mod)((0,uu.ObjectNode)({display:(0,uu.Opt)((0,uu.Mod)((0,uu.ObjectNode)({icon:(0,uu.ObjectNode)({item:n({validator:"resource",params:{pool:"item"}}),nbt:(0,uu.Opt)(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:i("text_component"),description:i("text_component"),background:(0,uu.Opt)(n()),frame:(0,uu.Opt)(n({enum:["task","challenge","goal"]})),show_toast:(0,uu.Opt)((0,uu.BooleanNode)()),announce_to_chat:(0,uu.Opt)((0,uu.BooleanNode)()),hidden:(0,uu.Opt)((0,uu.BooleanNode)())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:(0,uu.Opt)(n({validator:"resource",params:{pool:"$advancement"}})),criteria:(0,uu.MapNode)(n(),i("advancement_criteria")),requirements:(0,uu.Opt)((0,uu.ListNode)((0,uu.ListNode)(n()))),rewards:(0,uu.Opt)((0,uu.ObjectNode)({function:(0,uu.Opt)(n({validator:"resource",params:{pool:"$function"}})),loot:(0,uu.Opt)((0,uu.ListNode)(n({validator:"resource",params:{pool:"$loot_table"}}))),recipes:(0,uu.Opt)((0,uu.ListNode)(n({validator:"resource",params:{pool:"$recipe"}}))),experience:(0,uu.Opt)((0,uu.NumberNode)({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),e.register("advancement_criteria",(0,uu.ObjectNode)({trigger:n({validator:"resource",params:{pool:t.get("advancement_trigger")}}),conditions:(0,uu.Opt)((0,uu.ObjectNode)({player:(0,uu.Mod)(r,{enabled:e=>"minecraft:impossible"!==e.pop().push("trigger").get()}),[uu.Switch]:["pop",{push:"trigger"}],[uu.Case]:{"minecraft:allay_drop_item_on_block":{item:(0,uu.Opt)(i("item_predicate")),location:(0,uu.Opt)(i("location_predicate"))},"minecraft:bee_nest_destroyed":{block:(0,uu.Opt)(n({validator:"resource",params:{pool:"block"}})),num_bees_inside:(0,uu.Opt)((0,uu.NumberNode)({integer:!0})),item:(0,uu.Opt)(i("item_predicate"))},"minecraft:bred_animals":{parent:r,partner:r,child:r},"minecraft:brewed_potion":{potion:(0,uu.Opt)(n({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:(0,uu.Opt)(n({validator:"resource",params:{pool:"$dimension"}})),to:(0,uu.Opt)(n({validator:"resource",params:{pool:"$dimension"}}))},"minecraft:channeled_lightning":{victims:(0,uu.Opt)((0,uu.ListNode)(r))},"minecraft:construct_beacon":{level:i("int_bounds")},"minecraft:consume_item":{item:(0,uu.Opt)(i("item_predicate"))},"minecraft:cured_zombie_villager":{villager:r,zombie:r},"minecraft:effects_changed":{effects:(0,uu.Opt)((0,uu.MapNode)(n({validator:"resource",params:{pool:"mob_effect"}}),(0,uu.ObjectNode)({amplifier:i("int_bounds"),duration:i("int_bounds")}))),source:(0,uu.Opt)(r)},"minecraft:enter_block":{block:(0,uu.Opt)(n({validator:"resource",params:{pool:"block"}})),state:(0,uu.Opt)((0,uu.MapNode)(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:i("int_bounds"),item:(0,uu.Opt)(i("item_predicate"))},"minecraft:entity_hurt_player":{damage:(0,uu.Opt)(i("damage_predicate"))},"minecraft:entity_killed_player":{entity:r,killing_blow:(0,uu.Opt)(i("damage_source_predicate"))},"minecraft:fall_from_height":{start_position:(0,uu.Opt)(i("location_predicate")),distance:(0,uu.Opt)(i("distance_predicate"))},"minecraft:filled_bucket":{item:(0,uu.Opt)(i("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:r,item:(0,uu.Opt)(i("item_predicate"))},"minecraft:inventory_changed":{slots:(0,uu.Opt)((0,uu.ObjectNode)({empty:i("int_bounds"),occupied:i("int_bounds"),full:i("int_bounds")})),items:(0,uu.Opt)((0,uu.ListNode)(i("item_predicate")))},"minecraft:item_durability_changed":{delta:i("int_bounds"),durability:i("int_bounds"),item:(0,uu.Opt)(i("item_predicate"))},"minecraft:item_used_on_block":{item:(0,uu.Opt)(i("item_predicate")),location:(0,uu.Opt)(i("location_predicate"))},"minecraft:kill_mob_near_sculk_catalyst":{entity:r,killing_blow:(0,uu.Opt)(i("damage_source_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:i("int_bounds"),victims:(0,uu.Opt)((0,uu.ListNode)(r))},"minecraft:levitation":{distance:(0,uu.Opt)(i("distance_predicate")),duration:i("int_bounds")},"minecraft:lightning_strike":{lightning:r,bystander:r},"minecraft:nether_travel":{start_position:(0,uu.Opt)(i("location_predicate")),distance:(0,uu.Opt)(i("distance_predicate"))},"minecraft:placed_block":{block:(0,uu.Opt)(n({validator:"resource",params:{pool:"block"}})),state:(0,uu.Opt)((0,uu.MapNode)(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:(0,uu.Opt)(i("item_predicate")),location:(0,uu.Opt)(i("location_predicate"))},"minecraft:player_generates_container_loot":{loot_table:n({validator:"resource",params:{pool:"$loot_table"}})},"minecraft:player_hurt_entity":{damage:(0,uu.Opt)(i("damage_predicate")),entity:r},"minecraft:player_interacted_with_entity":{item:(0,uu.Opt)(i("item_predicate")),entity:r},"minecraft:player_killed_entity":{entity:r,killing_blow:(0,uu.Opt)(i("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:n({validator:"resource",params:{pool:"$recipe"}})},"minecraft:ride_entity_in_lava":{start_position:(0,uu.Opt)(i("location_predicate")),distance:(0,uu.Opt)(i("distance_predicate"))},"minecraft:slide_down_block":{block:(0,uu.Opt)(n({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:(0,uu.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:r,item:(0,uu.Opt)(i("item_predicate"))},"minecraft:thrown_item_picked_up_by_player":{entity:r,item:(0,uu.Opt)(i("item_predicate"))},"minecraft:used_ender_eye":{distance:(0,uu.Opt)(i("float_bounds"))},"minecraft:used_totem":{item:(0,uu.Opt)(i("item_predicate"))},"minecraft:using_item":{item:(0,uu.Opt)(i("item_predicate"))},"minecraft:villager_trade":{villager:r,item:(0,uu.Opt)(i("item_predicate"))}}},{context:"criterion"}))},{category:"predicate",context:"criterion"}))};var du={},hu={};Object.defineProperty(hu,"__esModule",{value:!0}),hu.initModelSchemas=void 0;const pu=Pe;hu.initModelSchemas=function(e,t){pu.Reference.bind(void 0,e);const i=pu.StringNode.bind(void 0,t),n=(e,t,i)=>(0,pu.ListNode)((0,pu.NumberNode)({min:t,max:i}),{minLength:e,maxLength:e}),r=(0,pu.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",(0,pu.Mod)((0,pu.ObjectNode)({parent:(0,pu.Opt)(i({validator:"resource",params:{pool:"$model"}})),ambientocclusion:(0,pu.Opt)((0,pu.BooleanNode)()),gui_light:(0,pu.Opt)(i({enum:"gui_light"})),textures:(0,pu.Opt)((0,pu.MapNode)(i(),r)),elements:(0,pu.Opt)((0,pu.ListNode)((0,pu.ObjectNode)({from:n(3,-16,32),to:n(3,-16,32),rotation:(0,pu.Opt)((0,pu.ObjectNode)({origin:n(3),axis:i({enum:"axis"}),angle:(0,pu.NumberEnum)({values:[-45,-22.5,0,22.5,45]}),rescale:(0,pu.Opt)((0,pu.BooleanNode)())})),shade:(0,pu.Opt)((0,pu.BooleanNode)()),faces:(0,pu.MapNode)(i({enum:"direction"}),(0,pu.ObjectNode)({texture:r,uv:(0,pu.Opt)(n(4)),cullface:(0,pu.Opt)(i({enum:"direction"})),rotation:(0,pu.Opt)((0,pu.NumberNode)({integer:!0})),tintindex:(0,pu.Opt)((0,pu.NumberNode)({integer:!0}))}))},{context:"model_element"}))),display:(0,pu.Opt)((0,pu.MapNode)(i({enum:"display_position"}),(0,pu.ObjectNode)({rotation:n(3),translation:n(3,-80,80),scale:n(3,-4,4)},{context:"item_transform"}))),overrides:(0,pu.Opt)((0,pu.ListNode)((0,pu.ObjectNode)({predicate:(0,pu.MapNode)(i({enum:"item_model_predicates"}),(0,pu.NumberNode)()),model:i({validator:"resource",params:{pool:"$model"}})},{context:"model_override"})))},{context:"model"}),{default:()=>({parent:"minecraft:item/generated",textures:{layer0:"minecraft:item/diamond"}})}))};var mu={};Object.defineProperty(mu,"__esModule",{value:!0}),mu.initBlockDefinitionSchemas=void 0;const fu=Pe;mu.initBlockDefinitionSchemas=function(e,t){const i=fu.Reference.bind(void 0,e),n=fu.StringNode.bind(void 0,t);e.register("block_definition",(0,fu.Mod)((0,fu.ChoiceNode)([{type:"variants",match:e=>void 0!==e.variants,node:(0,fu.ObjectNode)({variants:(0,fu.MapNode)(n(),i("model_variant"))}),change:e=>({variants:{"":{}}})},{type:"multipart",match:e=>void 0!==e.multipart,node:(0,fu.ObjectNode)({multipart:(0,fu.ListNode)((0,fu.ObjectNode)({when:(0,fu.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:(0,fu.Opt)((0,fu.NumberEnum)({integer:!0,values:[0,90,180,270]})),y:(0,fu.Opt)((0,fu.NumberEnum)({integer:!0,values:[0,90,180,270]})),uvlock:(0,fu.Opt)((0,fu.BooleanNode)())};e.register("model_variant",(0,fu.ChoiceNode)([{type:"object",node:(0,fu.ObjectNode)(r),change:e=>Array.isArray(e)&&e.length>0?e[0]:{}},{type:"list",node:(0,fu.ListNode)((0,fu.ObjectNode)(c(s({},r),{weight:(0,fu.Opt)((0,fu.NumberNode)({integer:!0,min:1}))}),{context:"model_variant"})),change:e=>[s({weight:1},e)]}],{context:"model_variant"})),e.register("multipart_condition",(0,fu.ChoiceNode)([{type:"object",priority:-1,match:()=>!0,node:(0,fu.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:(0,fu.ObjectNode)({OR:(0,fu.ListNode)(i("multipart_condition"))}),change:e=>({OR:[null!=e?e:{}]})}],{context:"multipart_condition"}))},Object.defineProperty(du,"__esModule",{value:!0}),du.initAssetsSchemas=void 0;const gu=hu,_u=mu;du.initAssetsSchemas=function(e,t){(0,_u.initBlockDefinitionSchemas)(e,t),(0,gu.initModelSchemas)(e,t)};var bu={};Object.defineProperty(bu,"__esModule",{value:!0}),bu.initChatTypeSchemas=void 0;const vu=Pe;bu.initChatTypeSchemas=function(e,t){const i=vu.Reference.bind(void 0,e),n=vu.StringNode.bind(void 0,t);e.register("chat_type",(0,vu.Mod)((0,vu.ObjectNode)({chat:(0,vu.Opt)((0,vu.ObjectNode)({decoration:(0,vu.Opt)(i("text_decoration"))})),overlay:(0,vu.Opt)((0,vu.ObjectNode)({decoration:(0,vu.Opt)(i("text_decoration"))})),narration:(0,vu.Opt)((0,vu.ObjectNode)({decoration:(0,vu.Opt)(i("text_decoration")),priority:n({enum:["chat","system"]})}))},{context:"chat_type"}),{default:()=>({chat:{decoration:{parameters:["sender","content"],translation_key:"chat.type.text",style:{}}}})})),e.register("text_decoration",(0,vu.Mod)((0,vu.ObjectNode)({translation_key:n(),parameters:(0,vu.ListNode)(n({enum:["sender","team_name","content"]})),style:i("text_style")},{context:"text_decoration"}),{default:()=>({translation_key:"chat.type.text",parameters:["sender","content"],style:{}})}))};var yu={};!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=Pe;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={sea_level:63,ore_veins_enabled:!0,disable_mob_generation:!1,aquifers_enabled:!0,legacy_random_source:!1,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,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}},noise_router:{barrier:0,fluid_level_floodedness:0,fluid_level_spread:0,lava:0,temperature:0,vegetation:0,continents:0,erosion:0,depth:0,ridges:0,initial_density_without_jaggedness:0,final_density:{type:"minecraft:interpolated",argument:"minecraft:overworld/base_3d_noise"},vein_toggle:0,vein_ridged:0,vein_gap:0},surface_rule:{type:"minecraft:sequence",sequence:[]}},e.initCommonSchemas=function(i,n){const r=t.StringNode.bind(void 0,n),o=t.Reference.bind(void 0,i);i.register("block_state",(0,t.Mod)((0,t.ObjectNode)({Name:r({validator:"resource",params:{pool:"block"}}),Properties:(0,t.Opt)((0,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",(0,t.Mod)((0,t.ObjectNode)({Name:r({validator:"resource",params:{pool:"fluid"}}),Properties:(0,t.Opt)((0,t.MapNode)(r(),r()))},{context:"fluid_state"}),{default:()=>({Name:"minecraft:water",Properties:{level:"0"}})})),i.register("block_pos",(0,t.Mod)((0,t.ListNode)((0,t.NumberNode)({integer:!0}),{minLength:3,maxLength:3}),{default:()=>[0,0,0]}));const a=e=>(0,t.Opt)((0,t.ChoiceNode)([{type:"number",node:(0,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:(0,t.ObjectNode)({min:(0,t.Opt)((0,t.NumberNode)({integer:e})),max:(0,t.Opt)((0,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",(0,t.ChoiceNode)([{type:"object",node:(0,t.ObjectNode)({min:(0,t.Opt)(o("number_provider")),max:(0,t.Opt)(o("number_provider"))})},{type:"number",node:(0,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]=(0,t.Mod)(l[a][e],{enabled:e=>void 0===e.push("type").get()})}));const d=(0,t.ObjectNode)(s({type:(0,t.Mod)((0,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})})})),(0,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:(0,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:(0,t.Opt)((0,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:(0,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:(0,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:(0,t.NumberNode)(e)},"minecraft:uniform":{value:(0,t.ObjectNode)({min_inclusive:(0,t.NumberNode)(e),max_exclusive:(0,t.NumberNode)(e)})},"minecraft:clamped_normal":{value:(0,t.ObjectNode)({min:(0,t.NumberNode)(),max:(0,t.NumberNode)(),mean:(0,t.NumberNode)(),deviation:(0,t.NumberNode)()})},"minecraft:trapezoid":{value:(0,t.ObjectNode)({min:(0,t.NumberNode)(),max:(0,t.NumberNode)(),plateau:(0,t.NumberNode)()})}}),i.register("float_provider",(0,e.FloatProvider)()),e.IntProvider=e=>c("int_provider_type","number","value","minecraft:constant",null,"int_provider",{"minecraft:constant":{value:(0,t.NumberNode)(s({integer:!0},e))},"minecraft:uniform":{value:(0,t.ObjectNode)({min_inclusive:(0,t.NumberNode)(s({integer:!0},e)),max_inclusive:(0,t.NumberNode)(s({integer:!0},e))})},"minecraft:biased_to_bottom":{value:(0,t.ObjectNode)({min_inclusive:(0,t.NumberNode)(s({integer:!0},e)),max_inclusive:(0,t.NumberNode)(s({integer:!0},e))})},"minecraft:clamped":{value:(0,t.ObjectNode)({min_inclusive:(0,t.NumberNode)(s({integer:!0},e)),max_inclusive:(0,t.NumberNode)(s({integer:!0},e)),source:o("int_provider")})},"minecraft:clamped_normal":{value:(0,t.ObjectNode)({min_inclusive:(0,t.NumberNode)(s({integer:!0},e)),max_inclusive:(0,t.NumberNode)(s({integer:!0},e)),mean:(0,t.NumberNode)(),deviation:(0,t.NumberNode)()})},"minecraft:weighted_list":{distribution:(0,t.ListNode)((0,t.ObjectNode)({weight:(0,t.NumberNode)({integer:!0}),data:o("int_provider")}))}}),i.register("int_provider",(0,e.IntProvider)()),i.register("vertical_anchor",(0,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:(0,t.ObjectNode)({[e]:(0,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:(0,t.Opt)((0,t.NumberNode)({integer:!0,min:1}))},"minecraft:very_biased_to_bottom":{min_inclusive:o("vertical_anchor"),max_inclusive:o("vertical_anchor"),inner:(0,t.Opt)((0,t.NumberNode)({integer:!0,min:1}))},"minecraft:trapezoid":{min_inclusive:o("vertical_anchor"),max_inclusive:o("vertical_anchor"),plateau:(0,t.Opt)((0,t.NumberNode)({integer:!0}))},"minecraft:weighted_list":{distribution:(0,t.ListNode)((0,t.ObjectNode)({weight:(0,t.NumberNode)({integer:!0}),data:o("int_provider")}))}})),e.InclusiveRange=e=>(0,t.ObjectNode)({min_inclusive:(0,t.NumberNode)(e),max_inclusive:(0,t.NumberNode)(e)},{context:"range"}),i.register("noise_parameters",(0,t.Mod)((0,t.ObjectNode)({firstOctave:(0,t.NumberNode)({integer:!0}),amplitudes:(0,t.ListNode)((0,t.NumberNode)())},{context:"noise_parameters"}),{default:()=>({firstOctave:-7,amplitudes:[1,1]})})),e.Tag=e=>(0,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:(0,t.ListNode)(e.inlineSchema?(0,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:(0,t.ListNode)(o("condition"))},"minecraft:block_state_property":{block:r({validator:"resource",params:{pool:"block"}}),properties:(0,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:(0,t.MapNode)(r({validator:"objective"}),o("int_range"))},"minecraft:inverted":{term:o("condition")},"minecraft:killed_by_player":{inverse:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:location_check":{offsetX:(0,t.Opt)((0,t.NumberNode)({integer:!0})),offsetY:(0,t.Opt)((0,t.NumberNode)({integer:!0})),offsetZ:(0,t.Opt)((0,t.NumberNode)({integer:!0})),predicate:o("location_predicate")},"minecraft:match_tool":{predicate:o("item_predicate")},"minecraft:random_chance":{chance:(0,t.NumberNode)({min:0,max:1})},"minecraft:random_chance_with_looting":{chance:(0,t.NumberNode)({min:0,max:1}),looting_multiplier:(0,t.NumberNode)()},"minecraft:reference":{name:r({validator:"resource",params:{pool:"$predicate"}})},"minecraft:table_bonus":{enchantment:r({validator:"resource",params:{pool:"enchantment"}}),chances:(0,t.ListNode)((0,t.NumberNode)({min:0,max:1}))},"minecraft:time_check":{value:o("int_range"),period:(0,t.Opt)((0,t.NumberNode)({integer:!0}))},"minecraft:value_check":{value:o("number_provider"),range:o("int_range")},"minecraft:weather_check":{raining:(0,t.Opt)((0,t.BooleanNode)()),thundering:(0,t.Opt)((0,t.BooleanNode)())}}),e.FunctionCases=(i,a=r({enum:"copy_source"}),c=r({enum:"entity_source"}))=>{const l={"minecraft:apply_bonus":{enchantment:r({validator:"resource",params:{pool:"enchantment"}}),formula:r({validator:"resource",params:{pool:n.get("loot_table_apply_bonus_formula")}}),parameters:(0,t.Mod)((0,t.ObjectNode)({bonusMultiplier:(0,t.Mod)((0,t.NumberNode)(),{enabled:e=>"minecraft:uniform_bonus_count"===e.pop().push("formula").get()}),extra:(0,t.Mod)((0,t.NumberNode)(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()}),probability:(0,t.Mod)((0,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:a},"minecraft:copy_nbt":{source:o("nbt_provider"),ops:(0,t.ListNode)((0,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:(0,t.ListNode)(r({validator:"block_state_key",params:{id:["pop","pop",{push:"block"}]}}))},"minecraft:enchant_randomly":{enchantments:(0,t.Opt)((0,t.ListNode)(r({validator:"resource",params:{pool:"enchantment"}})))},"minecraft:enchant_with_levels":{levels:o("number_provider"),treasure:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:exploration_map":{destination:(0,t.Opt)((0,e.Tag)({resource:"$worldgen/structure"})),decoration:(0,t.Opt)(r({enum:"map_decoration"})),zoom:(0,t.Opt)((0,t.NumberNode)({integer:!0})),search_radius:(0,t.Opt)((0,t.NumberNode)({integer:!0})),skip_existing_chunks:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:fill_player_head":{entity:c},"minecraft:limit_count":{limit:o("int_range")},"minecraft:looting_enchant":{count:o("number_provider"),limit:(0,t.Opt)((0,t.NumberNode)({integer:!0}))},"minecraft:set_attributes":{modifiers:(0,t.ListNode)(o("attribute_modifier"))},"minecraft:set_banner_pattern":{patterns:(0,t.ListNode)((0,t.ObjectNode)({pattern:r({enum:"banner_pattern"}),color:r({enum:"dye_color"})})),append:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:set_contents":{type:r({validator:"resource",params:{pool:"block_entity_type"}}),entries:(0,t.ListNode)(o("loot_entry"))},"minecraft:set_count":{count:o("number_provider"),add:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:set_damage":{damage:o("number_provider"),add:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:set_enchantments":{enchantments:(0,t.MapNode)(r({validator:"resource",params:{pool:"enchantment"}}),o("number_provider")),add:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:set_instrument":{options:r({validator:"resource",params:{pool:"instrument",requireTag:!0}})},"minecraft:set_loot_table":{type:r({validator:"resource",params:{pool:"block_entity_type"}}),name:r({validator:"resource",params:{pool:"$loot_table"}}),seed:(0,t.Opt)((0,t.NumberNode)({integer:!0}))},"minecraft:set_lore":{entity:(0,t.Opt)(c),lore:(0,t.ListNode)(o("text_component")),replace:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:set_name":{entity:(0,t.Opt)(c),name:(0,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:(0,t.Opt)((0,t.ListNode)((0,t.ObjectNode)({type:r({validator:"resource",params:{pool:"mob_effect"}}),duration:o("number_provider")})))}},u={};return n.get("loot_function_type").forEach((e=>{u[e]=s(s({},l[e]),i)})),u},e.DimensionTypePresets=i=>(0,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=>(0,t.ObjectOrPreset)(r({validator:"resource",params:{pool:"$worldgen/noise_settings"}}),i,{"minecraft:overworld":e.DefaultNoiseSettings,"minecraft:nether":{sea_level:32,ore_veins_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,legacy_random_source:!0,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,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}},noise_router:{barrier:0,fluid_level_floodedness:0,fluid_level_spread:0,lava:0,temperature:0,vegetation:0,continents:0,erosion:0,depth:0,ridges:0,initial_density_without_jaggedness:0,final_density:{type:"minecraft:interpolated",argument:"minecraft:overworld/base_3d_noise"},vein_toggle:0,vein_ridged:0,vein_gap:0},surface_rule:{type:"minecraft:sequence",sequence:[]}},"minecraft:end":{sea_level:0,ore_veins_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,legacy_random_source:!0,default_block:{Name:"minecraft:end_stone"},default_fluid:{Name:"minecraft:air"},noise:{min_y:0,height:128,size_horizontal:2,size_vertical:1,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}},noise_router:{barrier:0,fluid_level_floodedness:0,fluid_level_spread:0,lava:0,temperature:0,vegetation:0,continents:0,erosion:0,depth:0,ridges:0,initial_density_without_jaggedness:0,final_density:{type:"minecraft:interpolated",argument:"minecraft:overworld/base_3d_noise"},vein_toggle:0,vein_ridged:0,vein_gap:0},surface_rule:{type:"minecraft:sequence",sequence:[]}},"minecraft:amplified":{sea_level:63,ore_veins_enabled:!0,disable_mob_generation:!1,aquifers_enabled:!0,legacy_random_source:!1,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,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}},noise_router:{barrier:0,fluid_level_floodedness:0,fluid_level_spread:0,lava:0,temperature:0,vegetation:0,continents:0,erosion:0,depth:0,ridges:0,initial_density_without_jaggedness:0,final_density:{type:"minecraft:interpolated",argument:"minecraft:overworld/base_3d_noise"},vein_toggle:0,vein_ridged:0,vein_gap:0},surface_rule:{type:"minecraft:sequence",sequence:[]}},"minecraft:caves":{sea_level:32,ore_veins_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,legacy_random_source:!0,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,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}},noise_router:{barrier:0,fluid_level_floodedness:0,fluid_level_spread:0,lava:0,temperature:0,vegetation:0,continents:0,erosion:0,depth:0,ridges:0,initial_density_without_jaggedness:0,final_density:{type:"minecraft:interpolated",argument:"minecraft:overworld/base_3d_noise"},vein_toggle:0,vein_ridged:0,vein_gap:0},surface_rule:{type:"minecraft:sequence",sequence:[]}},"minecraft:floating_islands":{sea_level:0,ore_veins_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,legacy_random_source:!0,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,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}},noise_router:{barrier:0,fluid_level_floodedness:0,fluid_level_spread:0,lava:0,temperature:0,vegetation:0,continents:0,erosion:0,depth:0,ridges:0,initial_density_without_jaggedness:0,final_density:{type:"minecraft:interpolated",argument:"minecraft:overworld/base_3d_noise"},vein_toggle:0,vein_ridged:0,vein_gap:0},surface_rule:{type:"minecraft:sequence",sequence:[]}}})}}(yu);var wu={};Object.defineProperty(wu,"__esModule",{value:!0}),wu.initConditionSchemas=void 0;const xu=Pe,Nu=yu;wu.initConditionSchemas=function(e,t){const i=xu.Reference.bind(void 0,e),n=xu.StringNode.bind(void 0,t);e.register("predicate",(0,xu.ObjectOrList)(i("condition"),{choiceContext:"condition"})),e.register("condition",(0,xu.Mod)((0,xu.ObjectNode)({condition:n({validator:"resource",params:{pool:"loot_condition_type"}}),[xu.Switch]:[{push:"condition"}],[xu.Case]:(0,Nu.ConditionCases)()},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:entity_properties",entity:"this"})}))};var ku={};Object.defineProperty(ku,"__esModule",{value:!0}),ku.initDimensionSchemas=void 0;const Au=Pe,Cu=yu;ku.initDimensionSchemas=function(e,t){const i=Au.Reference.bind(void 0,e),n=Au.StringNode.bind(void 0,t);e.register("dimension",(0,Au.Mod)((0,Au.ObjectNode)({type:(0,Cu.DimensionTypePresets)(i("dimension_type")),generator:(0,Au.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/chunk_generator"}}),[Au.Switch]:[{push:"type"}],[Au.Case]:{"minecraft:noise":{settings:(0,Cu.NoiseSettingsPresets)(i("noise_settings")),biome_source:(0,Au.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/biome_source"}}),[Au.Switch]:[{push:"type"}],[Au.Case]:{"minecraft:fixed":{biome:n({validator:"resource",params:{pool:"$worldgen/biome"}})},"minecraft:multi_noise":{preset:(0,Au.Opt)(n({validator:"resource",params:{pool:["minecraft:overworld","minecraft:nether"]}})),biomes:(0,Au.Mod)((0,Au.ListNode)(i("generator_biome")),{enabled:e=>void 0===e.push("preset").get(),default:()=>[{biome:"minecraft:plains"}]})},"minecraft:checkerboard":{scale:(0,Au.Opt)((0,Au.NumberNode)({integer:!0,min:0,max:62})),biomes:(0,Cu.Tag)({resource:"$worldgen/biome"})}}},{category:"predicate",disableSwitchContext:!0})},"minecraft:flat":{settings:i("flat_generator_settings")}}},{disableSwitchContext:!0})},{category:"pool",context:"dimension"}),{default:()=>({type:"minecraft:overworld",generator:{type:"minecraft:noise",biome_source:{type:"minecraft:fixed",biome:"minecraft:plains"},settings:"minecraft:overworld"}})})),e.register("flat_generator_settings",(0,Au.ObjectNode)({biome:(0,Au.Opt)(n({validator:"resource",params:{pool:"$worldgen/biome"}})),lakes:(0,Au.Opt)((0,Au.BooleanNode)()),features:(0,Au.Opt)((0,Au.BooleanNode)()),layers:(0,Au.ListNode)(i("generator_layer")),structure_overrides:(0,Cu.Tag)({resource:"$worldgen/structure_set",inlineSchema:"structure_set"})}));const r=(0,Au.ChoiceNode)([{type:"number",node:(0,Au.NumberNode)({min:-2,max:2}),change:e=>{var t;return null!==(t=e[0])&&void 0!==t?t:0}},{type:"list",node:(0,Au.ListNode)((0,Au.NumberNode)({min:-2,max:2}),{minLength:2,maxLength:2}),change:e=>[null!=e?e:0,null!=e?e:0]}]);e.register("parameter_point",(0,Au.ObjectNode)({temperature:r,humidity:r,continentalness:r,erosion:r,weirdness:r,depth:r,offset:(0,Au.NumberNode)({min:0,max:1})})),e.register("generator_biome",(0,Au.Mod)((0,Au.ObjectNode)({biome:n({validator:"resource",params:{pool:"$worldgen/biome"}}),parameters:i("parameter_point")},{context:"generator_biome"}),{default:()=>({biome:"minecraft:plains",parameters:{temperature:0,humidity:0,continentalness:0,erosion:0,weirdness:0,depth:0,offset:0}})}))};var Ou={};Object.defineProperty(Ou,"__esModule",{value:!0}),Ou.initDimensionTypeSchemas=void 0;const Su=Pe,Eu=yu;Ou.initDimensionTypeSchemas=function(e,t){const i=Su.StringNode.bind(void 0,t);e.register("dimension_type",(0,Su.Mod)((0,Su.ObjectNode)({ultrawarm:(0,Su.BooleanNode)(),natural:(0,Su.BooleanNode)(),piglin_safe:(0,Su.BooleanNode)(),respawn_anchor_works:(0,Su.BooleanNode)(),bed_works:(0,Su.BooleanNode)(),has_raids:(0,Su.BooleanNode)(),has_skylight:(0,Su.BooleanNode)(),has_ceiling:(0,Su.BooleanNode)(),coordinate_scale:(0,Su.NumberNode)({min:1e-5,max:3e7}),ambient_light:(0,Su.NumberNode)(),fixed_time:(0,Su.Opt)((0,Su.NumberNode)({integer:!0})),logical_height:(0,Su.NumberNode)({integer:!0,min:0,max:4064}),effects:(0,Su.Opt)(i({enum:["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]})),infiniburn:i({validator:"resource",params:{pool:"block",requireTag:!0}}),min_y:(0,Su.NumberNode)({integer:!0,min:-2032,max:2031}),height:(0,Su.NumberNode)({integer:!0,min:16,max:4064})},{context:"dimension_type"}),(e=>({default:()=>Eu.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 Fu={};Object.defineProperty(Fu,"__esModule",{value:!0}),Fu.initItemModifierSchemas=void 0;const Du=Pe,Bu=yu;Fu.initItemModifierSchemas=function(e,t){const i=Du.Reference.bind(void 0,e),n=Du.StringNode.bind(void 0,t);e.register("item_modifier",(0,Du.ObjectOrList)(i("function"),{choiceContext:"function"}));const r={conditions:(0,Du.Opt)((0,Du.ListNode)(i("condition")))};e.register("function",(0,Du.Mod)((0,Du.ObjectNode)({function:n({validator:"resource",params:{pool:"loot_function_type"}}),[Du.Switch]:[{push:"function"}],[Du.Case]:(0,Bu.FunctionCases)(r)},{category:"function",context:"function"}),{default:()=>[{function:"minecraft:set_count",count:1}]}))};var Lu={},Mu={};Object.defineProperty(Mu,"__esModule",{value:!0}),Mu.LootFunctions=Mu.LootConditions=Mu.LootCopySources=Mu.LootEntitySources=Mu.LootTableTypes=void 0,Mu.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]}]]),Mu.LootEntitySources=new Map([["direct_killer",[3]],["killer",[5]],["killer_player",[5]],["this",[8]]]),Mu.LootCopySources=new Map([["block_entity",[0]],["killer",[5]],["killer_player",[5]],["this",[8]]]),Mu.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",[]]]),Mu.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(Lu,"__esModule",{value:!0}),Lu.initLootTableSchemas=void 0;const Tu=Pe,Ru=Mu,$u=yu;Lu.initLootTableSchemas=function(e,t){const i=Tu.Reference.bind(void 0,e),n=Tu.StringNode.bind(void 0,t),r={conditions:(0,Tu.Opt)((0,Tu.ListNode)(i("loot_condition")))},o=s({functions:(0,Tu.Opt)((0,Tu.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 Ru.LootTableTypes){const e=[...a,...s];r.push({match:e=>e.getModel().get(new Tu.Path(["type"]))===t,node:n(o(e))})}return r.push({match:e=>!0,node:n(i)}),(0,Tu.SwitchNode)(r)}const c=a(Ru.LootConditions,"loot_condition_type",(e=>n({validator:"resource",params:{pool:e instanceof Array?e:"loot_condition_type"}}))),l=a(Ru.LootFunctions,"loot_function_type",(e=>n({validator:"resource",params:{pool:e instanceof Array?e:"loot_function_type"}}))),u=a(Ru.LootEntitySources,"entity_source",(e=>n({enum:e}))),d=a(Ru.LootCopySources,"copy_source",(e=>n({enum:e})));e.register("loot_table",(0,Tu.Mod)((0,Tu.ObjectNode)({type:(0,Tu.Opt)(n({validator:"resource",params:{pool:t.get("loot_context_type")}})),pools:(0,Tu.Opt)((0,Tu.ListNode)((0,Tu.Mod)((0,Tu.ObjectNode)(s({rolls:i("number_provider"),bonus_rolls:(0,Tu.Opt)(i("number_provider")),entries:(0,Tu.ListNode)(i("loot_entry"))},o),{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:(0,Tu.Opt)((0,Tu.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",(0,Tu.Mod)((0,Tu.ObjectNode)({type:n({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:(0,Tu.Opt)((0,Tu.Mod)((0,Tu.NumberNode)({integer:!0,min:1}),h)),quality:(0,Tu.Opt)((0,Tu.Mod)((0,Tu.NumberNode)({integer:!0}),h)),[Tu.Switch]:[{push:"type"}],[Tu.Case]:{"minecraft:alternatives":s({children:(0,Tu.ListNode)(i("loot_entry"))},o),"minecraft:dynamic":s({name:n()},o),"minecraft:group":s({children:(0,Tu.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:(0,Tu.ListNode)(i("loot_entry"))},o),"minecraft:tag":s({name:n({validator:"resource",params:{pool:"$tag/item"}}),expand:(0,Tu.Opt)((0,Tu.BooleanNode)())},o)}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),e.register("loot_function",(0,Tu.Mod)((0,Tu.ObjectNode)({function:l,[Tu.Switch]:[{push:"function"}],[Tu.Case]:(0,$u.FunctionCases)(r,d,u)},{category:"function",context:"function"}),{default:()=>({function:"minecraft:set_count",count:1})})),e.register("loot_condition",(0,Tu.Mod)((0,Tu.ObjectNode)({condition:c,[Tu.Switch]:[{push:"condition"}],[Tu.Case]:(0,$u.ConditionCases)(u)},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),e.register("attribute_modifier",(0,Tu.Mod)((0,Tu.ObjectNode)({attribute:n({validator:"resource",params:{pool:"attribute"}}),name:n(),amount:i("number_provider"),operation:n({enum:["addition","multiply_base","multiply_total"]}),slot:(0,Tu.StringOrList)(n({enum:"slot"}))},{context:"attribute_modifier"}),{default:()=>({attribute:"minecraft:generic.max_health",name:"",amount:1,operation:"addition",slot:"mainhand"})}))};var ju={};Object.defineProperty(ju,"__esModule",{value:!0}),ju.initPackMcmetaSchemas=void 0;const Iu=Pe;ju.initPackMcmetaSchemas=function(e,t){const i=Iu.Reference.bind(void 0,e),n=Iu.StringNode.bind(void 0,t);e.register("pack_mcmeta",(0,Iu.Mod)((0,Iu.ObjectNode)({pack:(0,Iu.Mod)((0,Iu.ObjectNode)({pack_format:(0,Iu.Mod)((0,Iu.NumberNode)({integer:!0,min:10,max:10}),{default:()=>10,canUpdate:(e,t)=>10!==t,update:()=>[{name:"pack_format",params:[10],newValue:10}]}),description:i("text_component")}),{default:()=>({pack_format:10,description:""})}),filter:(0,Iu.Opt)((0,Iu.ObjectNode)({block:(0,Iu.ListNode)((0,Iu.ObjectNode)({namespace:(0,Iu.Opt)(n({validator:"regex_pattern"})),path:(0,Iu.Opt)(n({validator:"regex_pattern"}))}))}))}),{default:()=>({pack:{pack_format:10,description:""}})}))};var Pu={};Object.defineProperty(Pu,"__esModule",{value:!0}),Pu.initPredicatesSchemas=void 0;const zu=Pe;Pu.initPredicatesSchemas=function(e,t){const i=zu.Reference.bind(void 0,e),n=zu.StringNode.bind(void 0,t),r=(0,zu.ChoiceNode)([{type:"string",node:n(),change:e=>"boolean"==typeof e||"number"==typeof e?e.toString():""},{type:"number",node:(0,zu.NumberNode)(),change:e=>"string"==typeof e?parseInt(e):0},{type:"object",node:(0,zu.ObjectNode)({min:(0,zu.Opt)((0,zu.NumberNode)({integer:!0})),max:(0,zu.Opt)((0,zu.NumberNode)({integer:!0}))}),change:e=>"number"==typeof e?{min:e,max:e}:{}},{type:"boolean",node:(0,zu.BooleanNode)(),change:e=>"true"===e||1===e}]);e.register("item_predicate",(0,zu.ObjectNode)({items:(0,zu.Opt)((0,zu.ListNode)(n({validator:"resource",params:{pool:"item"}}))),tag:(0,zu.Opt)(n({validator:"resource",params:{pool:"$tag/item"}})),count:i("int_bounds"),durability:i("int_bounds"),potion:(0,zu.Opt)(n({validator:"resource",params:{pool:"potion"}})),nbt:(0,zu.Opt)(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:(0,zu.Opt)((0,zu.ListNode)(i("enchantment_predicate")))},{context:"item"})),e.register("enchantment_predicate",(0,zu.ObjectNode)({enchantment:(0,zu.Opt)(n({validator:"resource",params:{pool:"enchantment"}})),levels:i("int_bounds")},{context:"enchantment"})),e.register("block_predicate",(0,zu.ObjectNode)({blocks:(0,zu.Opt)((0,zu.ListNode)(n({validator:"resource",params:{pool:"block"}}))),tag:(0,zu.Opt)(n({validator:"resource",params:{pool:"$tag/block"}})),nbt:(0,zu.Opt)(n({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:(0,zu.Opt)((0,zu.MapNode)(n(),r,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),e.register("fluid_predicate",(0,zu.ObjectNode)({fluid:(0,zu.Opt)(n({validator:"resource",params:{pool:"fluid"}})),tag:(0,zu.Opt)(n({validator:"resource",params:{pool:"$tag/fluid"}})),state:(0,zu.Opt)((0,zu.MapNode)(n(),r))},{context:"fluid"})),e.register("location_predicate",(0,zu.ObjectNode)({position:(0,zu.Opt)((0,zu.ObjectNode)({x:i("float_bounds"),y:i("float_bounds"),z:i("float_bounds")})),biome:(0,zu.Opt)(n({validator:"resource",params:{pool:"$worldgen/biome"}})),structure:(0,zu.Opt)(n({validator:"resource",params:{pool:"$worldgen/structure"}})),dimension:(0,zu.Opt)(n({validator:"resource",params:{pool:"$dimension"}})),light:(0,zu.Opt)((0,zu.ObjectNode)({light:i("int_bounds")})),smokey:(0,zu.Opt)((0,zu.BooleanNode)()),block:(0,zu.Opt)(i("block_predicate")),fluid:(0,zu.Opt)(i("fluid_predicate"))},{context:"location"})),e.register("statistic_predicate",(0,zu.ObjectNode)({type:n({validator:"resource",params:{pool:"stat_type"}}),stat:n(),value:i("int_bounds"),[zu.Switch]:[{push:"type"}],[zu.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("status_effect_predicate",(0,zu.ObjectNode)({amplifier:i("int_bounds"),duration:i("int_bounds"),ambient:(0,zu.Opt)((0,zu.BooleanNode)()),visible:(0,zu.Opt)((0,zu.BooleanNode)())},{context:"status_effect"})),e.register("distance_predicate",(0,zu.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",(0,zu.ObjectNode)({type:(0,zu.Opt)(n({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),type_specific:(0,zu.Opt)((0,zu.ObjectNode)({type:n({enum:["any","cat","fishing_hook","frog","lightning","player","slime"]}),[zu.Switch]:[{push:"type"}],[zu.Case]:{cat:{variant:(0,zu.Opt)(n({validator:"resource",params:{pool:"cat_variant"}}))},fishing_hook:{in_open_water:(0,zu.Opt)((0,zu.BooleanNode)())},frog:{variant:(0,zu.Opt)(n({validator:"resource",params:{pool:"frog_variant"}}))},lightning:{blocks_set_on_fire:(0,zu.Opt)(i("int_bounds")),entity_struck:(0,zu.Opt)(i("entity_predicate"))},player:{gamemode:(0,zu.Opt)(n({enum:"gamemode"})),level:i("int_bounds"),advancements:(0,zu.Opt)((0,zu.MapNode)(n({validator:"resource",params:{pool:"$advancement"}}),(0,zu.ChoiceNode)([{type:"boolean",node:(0,zu.BooleanNode)(),change:()=>!0},{type:"object",node:(0,zu.MapNode)(n(),(0,zu.BooleanNode)())}]))),recipes:(0,zu.Opt)((0,zu.MapNode)(n({validator:"resource",params:{pool:"$recipe"}}),(0,zu.BooleanNode)())),stats:(0,zu.Opt)((0,zu.ListNode)(i("statistic_predicate"))),looking_at:(0,zu.Opt)(i("entity_predicate"))},slime:{size:i("int_bounds")}}})),nbt:(0,zu.Opt)(n({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:(0,zu.Opt)(n({validator:"team"})),location:(0,zu.Opt)(i("location_predicate")),stepping_on:(0,zu.Opt)(i("location_predicate")),distance:(0,zu.Opt)(i("distance_predicate")),flags:(0,zu.Opt)((0,zu.ObjectNode)({is_on_fire:(0,zu.Opt)((0,zu.BooleanNode)()),is_sneaking:(0,zu.Opt)((0,zu.BooleanNode)()),is_sprinting:(0,zu.Opt)((0,zu.BooleanNode)()),is_swimming:(0,zu.Opt)((0,zu.BooleanNode)()),is_baby:(0,zu.Opt)((0,zu.BooleanNode)())})),equipment:(0,zu.Opt)((0,zu.MapNode)(n({enum:"slot"}),i("item_predicate"))),vehicle:(0,zu.Opt)(i("entity_predicate")),passenger:(0,zu.Opt)(i("entity_predicate")),targeted_entity:(0,zu.Opt)(i("entity_predicate")),effects:(0,zu.Opt)((0,zu.MapNode)(n({validator:"resource",params:{pool:"mob_effect"}}),i("status_effect_predicate")))},{context:"entity"})),e.register("damage_source_predicate",(0,zu.ObjectNode)({is_explosion:(0,zu.Opt)((0,zu.BooleanNode)()),is_fire:(0,zu.Opt)((0,zu.BooleanNode)()),is_magic:(0,zu.Opt)((0,zu.BooleanNode)()),is_projectile:(0,zu.Opt)((0,zu.BooleanNode)()),is_lightning:(0,zu.Opt)((0,zu.BooleanNode)()),bypasses_armor:(0,zu.Opt)((0,zu.BooleanNode)()),bypasses_invulnerability:(0,zu.Opt)((0,zu.BooleanNode)()),bypasses_magic:(0,zu.Opt)((0,zu.BooleanNode)()),source_entity:(0,zu.Opt)(i("entity_predicate")),direct_entity:(0,zu.Opt)(i("entity_predicate"))},{context:"damage_source"})),e.register("damage_predicate",(0,zu.ObjectNode)({dealt:i("float_bounds"),taken:i("float_bounds"),blocked:(0,zu.Opt)((0,zu.BooleanNode)()),source_entity:(0,zu.Opt)(i("entity_predicate")),type:(0,zu.Opt)(i("damage_source_predicate"))},{context:"damage"}))};var Uu={};Object.defineProperty(Uu,"__esModule",{value:!0}),Uu.initRecipeSchemas=void 0;const Wu=Pe;Uu.initRecipeSchemas=function(e,t){const i=Wu.Reference.bind(void 0,e),n=Wu.StringNode.bind(void 0,t);e.register("recipe",(0,Wu.Mod)((0,Wu.ObjectNode)({type:n({validator:"resource",params:{pool:"recipe_serializer"}}),[Wu.Switch]:[{push:"type"}],[Wu.Case]:{"minecraft:crafting_shaped":{group:(0,Wu.Opt)(n({enum:"recipe_group",additional:!0})),pattern:(0,Wu.ListNode)(n()),key:(0,Wu.MapNode)(n(),i("recipe_ingredient")),result:i("recipe_result")},"minecraft:crafting_shapeless":{group:(0,Wu.Opt)(n()),ingredients:(0,Wu.ListNode)(i("recipe_ingredient")),result:i("recipe_result")},"minecraft:smelting":{group:(0,Wu.Opt)(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:(0,Wu.Opt)((0,Wu.NumberNode)()),cookingtime:(0,Wu.Opt)((0,Wu.Mod)((0,Wu.NumberNode)({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:(0,Wu.Opt)(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:(0,Wu.Opt)((0,Wu.NumberNode)()),cookingtime:(0,Wu.Opt)((0,Wu.Mod)((0,Wu.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:(0,Wu.Opt)(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:(0,Wu.Opt)((0,Wu.NumberNode)()),cookingtime:(0,Wu.Opt)((0,Wu.Mod)((0,Wu.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:(0,Wu.Opt)(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:(0,Wu.Opt)((0,Wu.NumberNode)()),cookingtime:(0,Wu.Opt)((0,Wu.Mod)((0,Wu.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:(0,Wu.Opt)(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),count:(0,Wu.NumberNode)({integer:!0})},"minecraft:smithing":{group:(0,Wu.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",(0,Wu.Mod)((0,Wu.ChoiceNode)([{type:"object",node:i("recipe_ingredient_object"),change:e=>e[0]},{type:"list",node:(0,Wu.ListNode)(i("recipe_ingredient_object")),change:e=>[e]}]),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_ingredient_object",(0,Wu.Mod)((0,Wu.ObjectNode)({item:(0,Wu.Opt)(n({validator:"resource",params:{pool:"item"}})),tag:(0,Wu.Opt)(n({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_result",(0,Wu.Mod)((0,Wu.ObjectNode)({item:n({validator:"resource",params:{pool:"item"}}),count:(0,Wu.Opt)((0,Wu.Mod)((0,Wu.NumberNode)({integer:!0}),{default:()=>1}))}),{default:()=>({item:"minecraft:stone"})}))};var Hu={};Object.defineProperty(Hu,"__esModule",{value:!0}),Hu.initTagsSchemas=void 0;const qu=Pe;Hu.initTagsSchemas=function(e,t){const i=qu.StringNode.bind(void 0,t),n=e=>(0,qu.Mod)((0,qu.ObjectNode)({replace:(0,qu.Opt)((0,qu.BooleanNode)()),values:(0,qu.ListNode)((0,qu.ChoiceNode)([{type:"string",node:i({validator:"resource",params:{pool:e,allowTag:!0}}),change:e=>e.id},{type:"object",node:(0,qu.ObjectNode)({id:i({validator:"resource",params:{pool:e,allowTag:!0,allowUnknown:!0}}),required:(0,qu.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")),e.register("advancement_tag",n("$advancement")),e.register("dimension_tag",n("$dimension")),e.register("dimension_type_tag",n("$dimension_type")),e.register("function_tag",n("$function")),e.register("item_modifier_tag",n("$item_modifier")),e.register("loot_table_tag",n("$loot_table")),e.register("predicate_tag",n("$predicate")),e.register("recipe_tag",n("$recipe")),e.register("structure_tag",n("$structure")),e.register("biome_tag",n("$worldgen/biome")),e.register("configured_carver_tag",n("$worldgen/configured_carver")),e.register("configured_feature_tag",n("$worldgen/configured_feature")),e.register("structure_tag",n("$worldgen/structure")),e.register("configured_surface_builder_tag",n("$worldgen/configured_surface_builder")),e.register("density_function_tag",n("$worldgen/density_function")),e.register("flat_level_generator_preset_tag",n("$worldgen/flat_level_generator_preset")),e.register("noise_tag",n("$worldgen/noise")),e.register("noise_settings_tag",n("$worldgen/noise_settings")),e.register("placed_feature_tag",n("$worldgen/placed_feature")),e.register("processor_list_tag",n("$worldgen/processor_list")),e.register("structure_set_tag",n("$worldgen/structure_set")),e.register("template_pool_tag",n("$worldgen/template_pool")),e.register("world_preset_tag",n("$worldgen/world_preset"))};var Vu={};Object.defineProperty(Vu,"__esModule",{value:!0}),Vu.initTextComponentSchemas=void 0;const Gu=Pe;Vu.initTextComponentSchemas=function(e,t){const i=Gu.Reference.bind(void 0,e),n=Gu.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",(0,Gu.Mod)((0,Gu.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:(0,Gu.NumberNode)(),change:e=>{const t=parseFloat(r(e));return isFinite(t)?t:e?1:0}},{type:"boolean",node:(0,Gu.BooleanNode)(),change:e=>{const t=r(e);return"true"===t||"false"===t?"true"===t:!!t}}],{context:"text_component"}),{default:()=>({text:""})}));const o={color:(0,Gu.Opt)(n()),font:(0,Gu.Opt)(n()),bold:(0,Gu.Opt)((0,Gu.BooleanNode)()),italic:(0,Gu.Opt)((0,Gu.BooleanNode)()),underlined:(0,Gu.Opt)((0,Gu.BooleanNode)()),strikethrough:(0,Gu.Opt)((0,Gu.BooleanNode)()),obfuscated:(0,Gu.Opt)((0,Gu.BooleanNode)()),insertion:(0,Gu.Opt)(n())};e.register("text_style",(0,Gu.ObjectNode)(s({},o),{context:"text_component_object"}));const a=c(s({},o),{clickEvent:(0,Gu.Opt)((0,Gu.ObjectNode)({action:n({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[Gu.Switch]:[{push:"action"}],[Gu.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:(0,Gu.Opt)((0,Gu.ObjectNode)({action:n({enum:["show_text","show_item","show_entity"]}),[Gu.Switch]:[{push:"action"}],[Gu.Case]:{show_text:{value:(0,Gu.Opt)(i("text_component")),contents:(0,Gu.Opt)(i("text_component"))},show_item:{value:(0,Gu.Opt)(n({validator:"nbt",params:{module:"util::InventoryItem"}})),contents:(0,Gu.Opt)((0,Gu.ObjectNode)({id:n({validator:"resource",params:{pool:"item"}}),count:(0,Gu.Opt)((0,Gu.NumberNode)({integer:!0})),tag:(0,Gu.Opt)(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"id"}]}}}))}))},show_entity:{value:(0,Gu.Opt)((0,Gu.ObjectNode)({name:(0,Gu.Opt)(n()),type:(0,Gu.Opt)(n()),id:(0,Gu.Opt)(n())})),contents:(0,Gu.Opt)((0,Gu.Mod)((0,Gu.ObjectNode)({name:(0,Gu.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:(0,Gu.Opt)(i("text_component_list"))});e.register("text_component_object",(0,Gu.Mod)((0,Gu.ChoiceNode)([{type:"text",match:e=>"object"==typeof e,change:e=>({text:""}),priority:-1,node:(0,Gu.ObjectNode)(s({text:n()},a))},{type:"translation",match:e=>void 0!==(null==e?void 0:e.translate),change:e=>({translate:""}),node:(0,Gu.ObjectNode)(s({translate:n(),with:(0,Gu.Opt)(i("text_component_list"))},a))},{type:"score",match:e=>void 0!==(null==e?void 0:e.score),change:e=>({score:{}}),node:(0,Gu.ObjectNode)(s({score:(0,Gu.ObjectNode)({name:n({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:n({validator:"objective"}),value:(0,Gu.Opt)(n())})},a))},{type:"selector",match:e=>void 0!==(null==e?void 0:e.selector),change:e=>({selector:""}),node:(0,Gu.ObjectNode)(s({selector:n({validator:"entity",params:{amount:"multiple",type:"entities"}}),separator:(0,Gu.Opt)(i("text_component"))},a))},{type:"keybind",match:e=>void 0!==(null==e?void 0:e.keybind),change:e=>({keybind:""}),node:(0,Gu.ObjectNode)(s({keybind:n({enum:"keybind",additional:!0})},a))},{type:"nbt",match:e=>void 0!==(null==e?void 0:e.nbt),change:e=>({nbt:""}),node:(0,Gu.ObjectNode)(s({nbt:n({validator:"nbt_path"}),block:(0,Gu.Opt)(n({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:(0,Gu.Opt)(n({validator:"entity",params:{amount:"multiple",type:"entities"}})),storage:(0,Gu.Opt)(n({validator:"resource",params:{pool:"$storage"}})),interpret:(0,Gu.Opt)((0,Gu.BooleanNode)()),separator:(0,Gu.Opt)(i("text_component"))},a))}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),e.register("text_component_list",(0,Gu.Mod)((0,Gu.ListNode)(i("text_component")),{default:()=>[{text:""}]}))};var Ku={},Xu={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.initBiomeSchemas=e.MobCategorySpawnSettings=void 0;const t=Pe,i=yu;e.initBiomeSchemas=function(n,r){const o=t.StringNode.bind(void 0,r);e.MobCategorySpawnSettings=(0,t.Mod)((0,t.ListNode)((0,t.ObjectNode)({type:o({validator:"resource",params:{pool:"entity_type"}}),weight:(0,t.NumberNode)({integer:!0}),minCount:(0,t.NumberNode)({integer:!0}),maxCount:(0,t.NumberNode)({integer:!0})})),{category:()=>"pool",default:()=>[{type:"minecraft:bat",weight:1}]}),n.register("biome",(0,t.Mod)((0,t.ObjectNode)({temperature:(0,t.NumberNode)(),downfall:(0,t.NumberNode)(),precipitation:o({enum:["none","rain","snow"]}),temperature_modifier:(0,t.Opt)(o({enum:["none","frozen"]})),creature_spawn_probability:(0,t.Opt)((0,t.NumberNode)({min:0,max:1})),effects:(0,t.ObjectNode)({sky_color:(0,t.NumberNode)({color:!0}),fog_color:(0,t.NumberNode)({color:!0}),water_color:(0,t.NumberNode)({color:!0}),water_fog_color:(0,t.NumberNode)({color:!0}),grass_color:(0,t.Opt)((0,t.NumberNode)({color:!0})),foliage_color:(0,t.Opt)((0,t.NumberNode)({color:!0})),grass_color_modifier:(0,t.Opt)(o({enum:["none","dark_forest","swamp"]})),ambient_sound:(0,t.Opt)(o()),mood_sound:(0,t.Opt)((0,t.ObjectNode)({sound:o(),tick_delay:(0,t.NumberNode)({integer:!0}),block_search_extent:(0,t.NumberNode)({integer:!0}),offset:(0,t.NumberNode)()})),additions_sound:(0,t.Opt)((0,t.ObjectNode)({sound:o(),tick_chance:(0,t.NumberNode)({min:0,max:1})})),music:(0,t.Opt)((0,t.ObjectNode)({sound:o(),min_delay:(0,t.NumberNode)({integer:!0,min:0}),max_delay:(0,t.NumberNode)({integer:!0,min:0}),replace_current_music:(0,t.BooleanNode)()})),particle:(0,t.Opt)((0,t.ObjectNode)({options:(0,t.ObjectNode)({type:o()}),probability:(0,t.NumberNode)({min:0,max:1})}))}),spawners:(0,t.MapNode)(o({enum:"mob_category"}),e.MobCategorySpawnSettings),spawn_costs:(0,t.MapNode)(o({validator:"resource",params:{pool:"entity_type"}}),(0,t.Mod)((0,t.ObjectNode)({energy_budget:(0,t.NumberNode)(),charge:(0,t.NumberNode)()},{category:"function"}),{default:()=>({energy_budget:.12,charge:1})})),carvers:(0,t.MapNode)(o({enum:["air","liquid"]}),(0,t.Mod)((0,i.Tag)({resource:"$worldgen/configured_carver",inlineSchema:"configured_carver"}),{default:()=>["minecraft:cave"]})),features:(0,t.ListNode)((0,t.Mod)((0,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}})}))}}(Xu);var Ju={};Object.defineProperty(Ju,"__esModule",{value:!0}),Ju.initCarverSchemas=void 0;const Yu=Pe,Zu=yu;Ju.initCarverSchemas=function(e,t){const i=Yu.Reference.bind(void 0,e),n=Yu.StringNode.bind(void 0,t),r={vertical_rotation:(0,Zu.FloatProvider)(),shape:(0,Yu.ObjectNode)({distance_factor:(0,Zu.FloatProvider)(),thickness:(0,Zu.FloatProvider)(),width_smoothness:(0,Yu.NumberNode)({integer:!0,min:0}),horizontal_radius_factor:(0,Zu.FloatProvider)(),vertical_radius_default_factor:(0,Yu.NumberNode)(),vertical_radius_center_factor:(0,Yu.NumberNode)()})},o={horizontal_radius_multiplier:(0,Zu.FloatProvider)(),vertical_radius_multiplier:(0,Zu.FloatProvider)(),floor_level:(0,Zu.FloatProvider)({min:-1,max:1})};e.register("configured_carver",(0,Yu.Mod)((0,Yu.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/carver"}}),config:(0,Yu.ObjectNode)({probability:(0,Yu.NumberNode)({min:0,max:1}),y:i("height_provider"),yScale:(0,Zu.FloatProvider)(),lava_level:i("vertical_anchor"),replaceable:(0,Zu.Tag)({resource:"block"}),debug_settings:(0,Yu.Opt)((0,Yu.ObjectNode)({debug_mode:(0,Yu.Opt)((0,Yu.BooleanNode)()),air_state:(0,Yu.Opt)(i("block_state")),water_state:(0,Yu.Opt)(i("block_state")),lava_state:(0,Yu.Opt)(i("block_state")),barrier_state:(0,Yu.Opt)(i("block_state"))})),[Yu.Switch]:["pop",{push:"type"}],[Yu.Case]:{"minecraft:canyon":r,"minecraft:cave":o,"minecraft:nether_cave":o}})},{context:"carver"}),{default:()=>({type:"minecraft:cave",config:{probability:.1}})}))};var Qu={};Object.defineProperty(Qu,"__esModule",{value:!0}),Qu.initDecoratorSchemas=void 0;const ed=Pe,td=yu;Qu.initDecoratorSchemas=function(e,t){const i=ed.Reference.bind(void 0,e),n=ed.StringNode.bind(void 0,t);e.register("decorator",(0,ed.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/placement_modifier_type"}}),[ed.Switch]:[{push:"type"}],[ed.Case]:{"minecraft:block_predicate_filter":{predicate:i("block_predicate_worldgen")},"minecraft:carving_mask":{step:n({enum:"generation_step"})},"minecraft:rarity_filter":{chance:(0,ed.NumberNode)({integer:!0,min:0})},"minecraft:count":{count:(0,td.IntProvider)({min:0,max:256})},"minecraft:count_on_every_layer":{count:(0,td.IntProvider)({min:0,max:256})},"minecraft:noise_threshold_count":{noise_level:(0,ed.NumberNode)(),below_noise:(0,ed.NumberNode)({integer:!0}),above_noise:(0,ed.NumberNode)({integer:!0})},"minecraft:noise_based_count":{noise_to_count_ratio:(0,ed.NumberNode)({integer:!0}),noise_factor:(0,ed.NumberNode)(),noise_offset:(0,ed.Opt)((0,ed.NumberNode)())},"minecraft:environment_scan":{direction_of_search:n({enum:["up","down"]}),max_steps:(0,ed.NumberNode)({integer:!0,min:1,max:32}),target_condition:i("block_predicate_worldgen"),allowed_search_condition:(0,ed.Opt)(i("block_predicate_worldgen"))},"minecraft:heightmap":{heightmap:n({enum:"heightmap_type"})},"minecraft:height_range":{height:i("height_provider")},"minecraft:random_offset":{xz_spread:(0,td.IntProvider)({min:-16,max:16}),y_spread:(0,td.IntProvider)({min:-16,max:16})},"minecraft:surface_relative_threshold_filter":{heightmap:n({enum:"heightmap_type"}),min_inclusive:(0,ed.Opt)((0,ed.NumberNode)({integer:!0})),max_inclusive:(0,ed.Opt)((0,ed.NumberNode)({integer:!0}))},"minecraft:surface_water_depth_filter":{max_water_depth:(0,ed.NumberNode)({integer:!0})}}},{context:"decorator",category:"predicate"}))};var id={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.initDensityFunctionSchemas=e.DensityFunction=void 0;const t=Pe;e.initDensityFunctionSchemas=function(i,n){const r=t.StringNode.bind(void 0,n),o=t.Reference.bind(void 0,i);e.DensityFunction=(0,t.Mod)((0,t.ChoiceNode)([{type:"number",node:(0,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=(0,t.ChoiceNode)([{type:"string",node:r({validator:"resource",params:{pool:"$worldgen/noise"}}),change:()=>{}},{type:"object",node:o("noise_parameters")}],{choiceContext:"noise_parameters"}),s=(0,t.NumberNode)({min:-1e6,max:1e6}),c=(0,t.NumberNode)({integer:!0,min:-4064,max:4062});i.register("density_function",(0,t.Mod)((0,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:blend_density":{argument: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:constant":{argument:(0,t.NumberNode)()},"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:(0,t.NumberNode)(),y_scale:(0,t.NumberNode)()},"minecraft:old_blended_noise":{xz_scale:(0,t.NumberNode)(),y_scale:(0,t.NumberNode)(),xz_factor:(0,t.NumberNode)(),y_factor:(0,t.NumberNode)(),smear_scale_multiplier:(0,t.NumberNode)({min:1,max:8})},"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:(0,t.NumberNode)(),y_scale:(0,t.NumberNode)(),shift_x:e.DensityFunction,shift_y:e.DensityFunction,shift_z:e.DensityFunction},"minecraft:slide":{argument:e.DensityFunction},"minecraft:spline":{spline:o("cubic_spline")},"minecraft:square":{argument:e.DensityFunction},"minecraft:squeeze":{argument: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}),{default:()=>({type:"minecraft:noise",noise:"minecraft:cave_entrance",xz_scale:.75,y_scale:.5})})),i.register("cubic_spline",(0,t.Mod)((0,t.ChoiceNode)([{type:"number",node:(0,t.NumberNode)()},{type:"object",node:(0,t.ObjectNode)({coordinate:e.DensityFunction,points:(0,t.ListNode)((0,t.ObjectNode)({location:(0,t.NumberNode)(),derivative:(0,t.NumberNode)(),value:o("cubic_spline")}))},{category:"function"})}],{context:"terrain_spline",choiceContext:"terrain_spline"}),{default:()=>0}))}}(id);var nd={},rd={};Object.defineProperty(rd,"__esModule",{value:!0}),rd.initProcessorListSchemas=rd.Processors=void 0;const od=Pe,ad=yu;rd.initProcessorListSchemas=function(e,t){const i=od.Reference.bind(void 0,e),n=od.StringNode.bind(void 0,t);rd.Processors=(0,od.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",(0,od.Mod)((0,od.ObjectNode)({processors:(0,od.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",(0,od.Mod)((0,od.ObjectNode)({processor_type:n({validator:"resource",params:{pool:"worldgen/structure_processor"}}),[od.Switch]:[{push:"processor_type"}],[od.Case]:{"minecraft:block_age":{mossiness:(0,od.NumberNode)()},"minecraft:block_ignore":{blocks:(0,od.ListNode)(i("block_state"))},"minecraft:block_rot":{integrity:(0,od.NumberNode)({min:0,max:1}),rottable_blocks:(0,od.Opt)((0,ad.Tag)({resource:"block"}))},"minecraft:gravity":{heightmap:n({enum:"heightmap_type"}),offset:(0,od.NumberNode)({integer:!0})},"minecraft:protected_blocks":{value:n({validator:"resource",params:{pool:"block",requireTag:!0}})},"minecraft:rule":{rules:(0,od.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",(0,od.Mod)((0,od.ObjectNode)({position_predicate:(0,od.Opt)(i("pos_rule_test")),location_predicate:i("rule_test"),input_predicate:i("rule_test"),output_state:i("block_state"),output_nbt:(0,od.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:(0,od.Opt)((0,od.NumberNode)({min:0,max:255,integer:!0})),max_dist:(0,od.Opt)((0,od.NumberNode)({min:0,max:255,integer:!0})),min_chance:(0,od.Opt)((0,od.NumberNode)({min:0,max:1})),max_chance:(0,od.Opt)((0,od.NumberNode)({min:0,max:1}))};e.register("pos_rule_test",(0,od.ObjectNode)({predicate_type:n({validator:"resource",params:{pool:"pos_rule_test"}}),[od.Switch]:[{push:"predicate_type"}],[od.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",(0,od.ObjectNode)({predicate_type:n({validator:"resource",params:{pool:"rule_test"}}),[od.Switch]:[{push:"predicate_type"}],[od.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:(0,od.NumberNode)({min:0,max:1})},"minecraft:random_blockstate_match":{block_state:i("block_state"),probability:(0,od.NumberNode)({min:0,max:1})},"minecraft:tag_match":{tag:n({validator:"resource",params:{pool:"$tag/block"}})}}},{context:"rule_test",disableSwitchContext:!0}))},Object.defineProperty(nd,"__esModule",{value:!0}),nd.initFeatureSchemas=void 0;const sd=Pe,cd=yu,ld=rd;nd.initFeatureSchemas=function(e,t){const i=sd.Reference.bind(void 0,e),n=sd.StringNode.bind(void 0,t),r=(0,sd.ChoiceNode)([{type:"string",node:n({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},{type:"object",node:i("configured_feature")}],{choiceContext:"feature"}),o=(0,sd.ChoiceNode)([{type:"string",node:n({validator:"resource",params:{pool:"$worldgen/placed_feature"}})},{type:"object",node:i("placed_feature")}],{choiceContext:"placed_feature"}),a={tries:(0,sd.Opt)((0,sd.NumberNode)({integer:!0,min:1})),xz_spread:(0,sd.Opt)((0,sd.NumberNode)({integer:!0,min:0})),y_spread:(0,sd.Opt)((0,sd.NumberNode)({integer:!0,min:0})),feature:o},l={cap_provider:i("block_state_provider"),stem_provider:i("block_state_provider"),foliage_radius:(0,sd.Opt)((0,sd.NumberNode)({integer:!0}))},u=(0,sd.ObjectNode)({target:i("rule_test"),state:i("block_state")}),d={size:(0,sd.NumberNode)({integer:!0,min:0,max:64}),discard_chance_on_air_exposure:(0,sd.NumberNode)({min:0,max:1}),targets:(0,sd.ListNode)(u)},h={surface:n({enum:"cave_surface"}),depth:(0,cd.IntProvider)({min:1,max:128}),vertical_range:(0,sd.NumberNode)({integer:!0,min:1,max:256}),extra_bottom_block_chance:(0,sd.NumberNode)({min:0,max:1}),extra_edge_column_chance:(0,sd.NumberNode)({min:0,max:1}),vegetation_chance:(0,sd.NumberNode)({min:0,max:1}),xz_radius:(0,cd.IntProvider)(),replaceable:n({validator:"resource",params:{pool:"block",requireTag:!0}}),ground_state:i("block_state_provider"),vegetation_feature:o};e.register("configured_feature",(0,sd.Mod)((0,sd.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/feature"}}),config:(0,sd.ObjectNode)({[sd.Switch]:["pop",{push:"type"}],[sd.Case]:{"minecraft:bamboo":{probability:(0,sd.NumberNode)({min:0,max:1})},"minecraft:basalt_columns":{reach:(0,cd.IntProvider)({min:0,max:3}),height:(0,cd.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:(0,sd.BooleanNode)(),layers:(0,sd.ListNode)((0,sd.ObjectNode)({height:(0,cd.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:(0,cd.IntProvider)({min:0,max:16}),rim_size:(0,cd.IntProvider)({min:0,max:16})},"minecraft:disk":{state_provider:i("rule_based_block_state_provider"),target:i("block_predicate_worldgen"),radius:(0,cd.IntProvider)({min:0,max:8}),half_height:(0,sd.NumberNode)({integer:!0,min:0,max:4})},"minecraft:dripstone_cluster":{floor_to_ceiling_search_range:(0,sd.NumberNode)({integer:!0,min:1,max:512}),height:(0,cd.IntProvider)({min:0,max:128}),radius:(0,cd.IntProvider)({min:0,max:128}),max_stalagmite_stalactite_height_diff:(0,sd.NumberNode)({integer:!0,min:0,max:64}),height_deviation:(0,sd.NumberNode)({integer:!0,min:1,max:64}),dripstone_block_layer_thickness:(0,cd.IntProvider)({min:0,max:128}),density:(0,cd.FloatProvider)({min:0,max:2}),wetness:(0,cd.FloatProvider)({min:0,max:2}),chance_of_dripstone_column_at_max_distance_from_center:(0,sd.NumberNode)({min:0,max:1}),max_distance_from_edge_affecting_chance_of_dripstone_column:(0,sd.NumberNode)({integer:!0,min:1,max:64}),max_distance_from_center_affecting_height_bias:(0,sd.NumberNode)({integer:!0,min:1,max:64})},"minecraft:end_gateway":{exact:(0,sd.BooleanNode)(),exit:(0,sd.Opt)(i("block_pos"))},"minecraft:end_spike":{crystal_invulnerable:(0,sd.Opt)((0,sd.BooleanNode)()),crystal_beam_target:(0,sd.Opt)(i("block_pos")),spikes:(0,sd.ListNode)((0,sd.ObjectNode)({centerX:(0,sd.Opt)((0,sd.NumberNode)({integer:!0})),centerZ:(0,sd.Opt)((0,sd.NumberNode)({integer:!0})),radius:(0,sd.Opt)((0,sd.NumberNode)({integer:!0})),height:(0,sd.Opt)((0,sd.NumberNode)({integer:!0})),guarded:(0,sd.Opt)((0,sd.BooleanNode)())}))},"minecraft:fill_layer":{state:i("block_state"),height:(0,sd.NumberNode)({integer:!0,min:0,max:255})},"minecraft:flower":a,"minecraft:forest_rock":{state:i("block_state")},"minecraft:fossil":{max_empty_corners_allowed:(0,sd.NumberNode)({integer:!0,min:0,max:7}),fossil_structures:(0,sd.ListNode)(n({validator:"resource",params:{pool:"$structure"}})),overlay_structures:(0,sd.ListNode)(n({validator:"resource",params:{pool:"$structure"}})),fossil_processors:ld.Processors,overlay_processors:ld.Processors},"minecraft:geode":{blocks:(0,sd.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:(0,sd.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:(0,sd.ObjectNode)({filling:(0,sd.Opt)((0,sd.NumberNode)({min:.01,max:50})),inner_layer:(0,sd.Opt)((0,sd.NumberNode)({min:.01,max:50})),middle_layer:(0,sd.Opt)((0,sd.NumberNode)({min:.01,max:50})),outer_layer:(0,sd.Opt)((0,sd.NumberNode)({min:.01,max:50}))}),crack:(0,sd.ObjectNode)({generate_crack_chance:(0,sd.Opt)((0,sd.NumberNode)({min:0,max:1})),base_crack_size:(0,sd.Opt)((0,sd.NumberNode)({min:0,max:5})),crack_point_offset:(0,sd.Opt)((0,sd.NumberNode)({min:0,max:10}))}),noise_multiplier:(0,sd.Opt)((0,sd.NumberNode)({min:0,max:1})),use_potential_placements_chance:(0,sd.Opt)((0,sd.NumberNode)({min:0,max:1})),use_alternate_layer0_chance:(0,sd.Opt)((0,sd.NumberNode)({min:0,max:1})),placements_require_layer0_alternate:(0,sd.Opt)((0,sd.BooleanNode)()),outer_wall_distance:(0,sd.Opt)((0,cd.IntProvider)({min:1,max:20})),distribution_points:(0,sd.Opt)((0,cd.IntProvider)({min:1,max:20})),point_offset:(0,sd.Opt)((0,cd.IntProvider)({min:0,max:10})),min_gen_offset:(0,sd.Opt)((0,sd.NumberNode)({integer:!0})),max_gen_offset:(0,sd.Opt)((0,sd.NumberNode)({integer:!0})),invalid_blocks_threshold:(0,sd.NumberNode)({integer:!0})},"minecraft:multiface_growth":{search_range:(0,sd.Opt)((0,sd.NumberNode)({min:1,max:64,integer:!0})),chance_of_spreading:(0,sd.Opt)((0,sd.NumberNode)({min:0,max:1})),can_place_on_floor:(0,sd.Opt)((0,sd.BooleanNode)()),can_place_on_ceiling:(0,sd.Opt)((0,sd.BooleanNode)()),can_place_on_wall:(0,sd.Opt)((0,sd.BooleanNode)()),can_be_placed_on:(0,cd.Tag)({resource:"block"})},"minecraft:huge_brown_mushroom":l,"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:(0,sd.Opt)((0,sd.BooleanNode)())},"minecraft:huge_red_mushroom":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:(0,sd.Opt)((0,sd.NumberNode)({integer:!0,min:1,max:512})),column_radius:(0,cd.IntProvider)({min:0,max:60}),height_scale:(0,cd.FloatProvider)({min:0,max:20}),max_column_radius_to_cave_height_ratio:(0,sd.NumberNode)({min:0,max:1}),stalactite_bluntness:(0,cd.FloatProvider)({min:.1,max:10}),stalagmite_bluntness:(0,cd.FloatProvider)({min:.1,max:10}),wind_speed:(0,cd.FloatProvider)({min:0,max:2}),min_radius_for_wind:(0,sd.NumberNode)({integer:!0,min:0,max:100}),min_bluntness_for_wind:(0,sd.NumberNode)({min:0,max:5})},"minecraft:nether_forest_vegetation":{state_provider:i("block_state_provider"),spread_width:(0,sd.NumberNode)({integer:!0,min:1}),spread_height:(0,sd.NumberNode)({integer:!0,min:1})},"minecraft:netherrack_replace_blobs":{state:i("block_state"),target:i("block_state"),radius:(0,cd.IntProvider)({min:0,max:12})},"minecraft:no_bonemeal_flower":a,"minecraft:ore":d,"minecraft:pointed_dripstone":{chance_of_taller_dripstone:(0,sd.Opt)((0,sd.NumberNode)({min:0,max:1})),chance_of_directional_spread:(0,sd.Opt)((0,sd.NumberNode)({min:0,max:1})),chance_of_spread_radius2:(0,sd.Opt)((0,sd.NumberNode)({min:0,max:1})),chance_of_spread_radius3:(0,sd.Opt)((0,sd.NumberNode)({min:0,max:1}))},"minecraft:random_patch":a,"minecraft:random_boolean_selector":{feature_false:o,feature_true:o},"minecraft:random_selector":{features:(0,sd.ListNode)((0,sd.ObjectNode)({chance:(0,sd.NumberNode)({min:0,max:1}),feature:o})),default:o},"minecraft:replace_single_block":{targets:(0,sd.ListNode)(u)},"minecraft:root_system":{required_vertical_space_for_tree:(0,sd.NumberNode)({integer:!0,min:1,max:64}),root_radius:(0,sd.NumberNode)({integer:!0,min:1,max:64}),root_placement_attempts:(0,sd.NumberNode)({integer:!0,min:1,max:256}),root_column_max_height:(0,sd.NumberNode)({integer:!0,min:1,max:4096}),hanging_root_radius:(0,sd.NumberNode)({integer:!0,min:1,max:64}),hanging_roots_vertical_span:(0,sd.NumberNode)({integer:!0,min:0,max:16}),hanging_root_placement_attempts:(0,sd.NumberNode)({integer:!0,min:0,max:256}),allowed_vertical_water_for_tree:(0,sd.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":d,"minecraft:sculk_patch":{charge_count:(0,sd.NumberNode)({integer:!0,min:1,max:32}),amount_per_charge:(0,sd.NumberNode)({integer:!0,min:1,max:500}),spread_attempts:(0,sd.NumberNode)({integer:!0,min:1,max:64}),growth_rounds:(0,sd.NumberNode)({integer:!0,min:0,max:8}),spread_rounds:(0,sd.NumberNode)({integer:!0,min:0,max:8}),extra_rare_growths:(0,cd.IntProvider)(),catalyst_chance:(0,sd.NumberNode)({min:0,max:1})},"minecraft:sea_pickle":{count:(0,cd.IntProvider)({min:0,max:256})},"minecraft:seagrass":{probability:(0,sd.NumberNode)({min:0,max:1})},"minecraft:simple_block":{to_place:i("block_state_provider")},"minecraft:simple_random_selector":{features:(0,cd.Tag)({resource:"$worldgen/placed_feature",inlineSchema:"placed_feature"})},"minecraft:spring_feature":{state:i("fluid_state"),rock_count:(0,sd.NumberNode)({integer:!0}),hole_count:(0,sd.NumberNode)({integer:!0}),requires_block_below:(0,sd.BooleanNode)(),valid_blocks:(0,cd.Tag)({resource:"block"})},"minecraft:tree":{ignore_vines:(0,sd.Opt)((0,sd.BooleanNode)()),force_dirt:(0,sd.Opt)((0,sd.BooleanNode)()),minimum_size:i("feature_size"),dirt_provider:i("block_state_provider"),trunk_provider:i("block_state_provider"),foliage_provider:i("block_state_provider"),root_placer:(0,sd.Opt)((0,sd.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/root_placer_type"}}),root_provider:i("block_state_provider"),trunk_offset_y:(0,cd.IntProvider)(),above_root_placement:(0,sd.Opt)((0,sd.ObjectNode)({above_root_provider:i("block_state_provider"),above_root_placement_chance:(0,sd.NumberNode)({min:0,max:1})})),[sd.Switch]:[{push:"type"}],[sd.Case]:{"minecraft:mangrove_root_placer":{mangrove_root_placement:(0,sd.ObjectNode)({max_root_width:(0,sd.NumberNode)({integer:!0,min:1,max:12}),max_root_length:(0,sd.NumberNode)({integer:!0,min:1,max:64}),random_skew_chance:(0,sd.NumberNode)({min:0,max:1}),can_grow_through:(0,cd.Tag)({resource:"block"}),muddy_roots_in:(0,cd.Tag)({resource:"block"}),muddy_roots_provider:i("block_state_provider")})}}},{context:"root_placer"})),trunk_placer:(0,sd.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/trunk_placer_type"}}),base_height:(0,sd.NumberNode)({integer:!0,min:0,max:32}),height_rand_a:(0,sd.NumberNode)({integer:!0,min:0,max:24}),height_rand_b:(0,sd.NumberNode)({integer:!0,min:0,max:24}),[sd.Switch]:[{push:"type"}],[sd.Case]:{"minecraft:bending_trunk_placer":{bend_length:(0,cd.IntProvider)({min:1,max:64}),min_height_for_leaves:(0,sd.Opt)((0,sd.NumberNode)({integer:!0,min:1}))},"minecraft:upwards_branching_trunk_placer":{extra_branch_steps:(0,cd.IntProvider)({min:1}),extra_branch_length:(0,cd.IntProvider)({min:0}),place_branch_per_log_probability:(0,sd.NumberNode)({min:0,max:1}),can_grow_through:(0,cd.Tag)({resource:"block"})}}},{context:"trunk_placer"}),foliage_placer:(0,sd.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/foliage_placer_type"}}),radius:(0,cd.IntProvider)({min:0,max:16}),offset:(0,cd.IntProvider)({min:0,max:16}),[sd.Switch]:[{push:"type"}],[sd.Case]:{"minecraft:blob_foliage_placer":{height:(0,sd.NumberNode)({integer:!0,min:0,max:16})},"minecraft:bush_foliage_placer":{height:(0,sd.NumberNode)({integer:!0,min:0,max:16})},"minecraft:fancy_foliage_placer":{height:(0,sd.NumberNode)({integer:!0,min:0,max:16})},"minecraft:jungle_foliage_placer":{height:(0,sd.NumberNode)({integer:!0,min:0,max:16})},"minecraft:mega_pine_foliage_placer":{crown_height:(0,cd.IntProvider)({min:0,max:24})},"minecraft:pine_foliage_placer":{height:(0,cd.IntProvider)({min:0,max:24})},"minecraft:random_spread_foliage_placer":{foliage_height:(0,cd.IntProvider)({min:1,max:512}),leaf_placement_attempts:(0,sd.NumberNode)({integer:!0,min:0,max:256})},"minecraft:spruce_foliage_placer":{trunk_height:(0,cd.IntProvider)({min:0,max:24})}}},{context:"foliage_placer",disableSwitchContext:!0}),decorators:(0,sd.ListNode)((0,sd.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/tree_decorator_type"}}),[sd.Switch]:[{push:"type"}],[sd.Case]:{"minecraft:alter_ground":{provider:i("block_state_provider")},"minecraft:attached_to_leaves":{probability:(0,sd.NumberNode)({min:0,max:1}),exclusion_radius_xz:(0,sd.NumberNode)({integer:!0,min:0,max:16}),exclusion_radius_y:(0,sd.NumberNode)({integer:!0,min:0,max:16}),required_empty_blocks:(0,sd.NumberNode)({integer:!0,min:1,max:16}),block_provider:i("block_state_provider"),directions:(0,sd.ListNode)(n({enum:"direction"}))},"minecraft:beehive":{probability:(0,sd.NumberNode)({min:0,max:1})},"minecraft:cocoa":{probability:(0,sd.NumberNode)({min:0,max:1})},"minecraft:leave_vine":{probability:(0,sd.NumberNode)({min:0,max:1})}}},{context:"tree_decorator"}))},"minecraft:twisting_vines":{spread_width:(0,sd.NumberNode)({integer:!0,min:1}),spread_height:(0,sd.NumberNode)({integer:!0,min:1}),max_height:(0,sd.NumberNode)({integer:!0,min:1})},"minecraft:underwater_magma":{floor_search_range:(0,sd.NumberNode)({integer:!0,min:0,max:512}),placement_radius_around_floor:(0,sd.NumberNode)({integer:!0,min:0,max:64}),placement_probability_per_valid_position:(0,sd.NumberNode)({min:0,max:1})},"minecraft:vegetation_patch":h,"minecraft:waterlogged_vegetation_patch":h}},{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",(0,sd.Mod)((0,sd.ObjectNode)({feature:r,placement:(0,sd.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",(0,sd.Mod)((0,sd.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/feature_size_type"}}),min_clipped_height:(0,sd.Opt)((0,sd.NumberNode)({min:0,max:80})),[sd.Switch]:[{push:"type"}],[sd.Case]:{"minecraft:two_layers_feature_size":{limit:(0,sd.Opt)((0,sd.NumberNode)({integer:!0,min:0,max:81})),lower_size:(0,sd.Opt)((0,sd.NumberNode)({integer:!0,min:0,max:16})),upper_size:(0,sd.Opt)((0,sd.NumberNode)({integer:!0,min:0,max:16}))},"minecraft:three_layers_feature_size":{limit:(0,sd.Opt)((0,sd.NumberNode)({integer:!0,min:0,max:80})),upper_limit:(0,sd.Opt)((0,sd.NumberNode)({integer:!0,min:0,max:80})),lower_size:(0,sd.Opt)((0,sd.NumberNode)({integer:!0,min:0,max:16})),middle_size:(0,sd.Opt)((0,sd.NumberNode)({integer:!0,min:0,max:16})),upper_size:(0,sd.Opt)((0,sd.NumberNode)({integer:!0,min:0,max:16}))}}},{disableSwitchContext:!0}),{default:()=>({type:"minecraft:two_layers_feature_size"})}));const p={seed:(0,sd.NumberNode)({integer:!0}),noise:i("noise_parameters"),scale:(0,sd.Mod)((0,sd.NumberNode)({min:Number.MIN_VALUE}),{default:()=>1})};e.register("block_state_provider",(0,sd.Mod)((0,sd.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/block_state_provider_type"}}),[sd.Switch]:[{push:"type"}],[sd.Case]:{"minecraft:dual_noise_provider":c(s({},p),{variety:(0,cd.InclusiveRange)({integer:!0,min:1,max:64}),slow_noise:i("noise_parameters"),slow_scale:(0,sd.Mod)((0,sd.NumberNode)({min:Number.MIN_VALUE}),{default:()=>1}),states:(0,sd.ListNode)(i("block_state"))}),"minecraft:noise_threshold_provider":c(s({},p),{threshold:(0,sd.NumberNode)({min:-1,max:1}),high_chance:(0,sd.NumberNode)({min:0,max:1}),default_state:i("block_state"),low_states:(0,sd.ListNode)(i("block_state")),high_states:(0,sd.ListNode)(i("block_state"))}),"minecraft:noise_provider":c(s({},p),{states:(0,sd.ListNode)(i("block_state"))}),"minecraft:randomized_int_state_provider":{property:n(),values:(0,cd.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:(0,sd.ListNode)((0,sd.Mod)((0,sd.ObjectNode)({weight:(0,sd.NumberNode)({integer:!0,min:1}),data:i("block_state")}),{default:()=>({data:{}})}))}}},{context:"block_state_provider"}),{default:()=>({type:"minecraft:simple_state_provider"})})),e.register("rule_based_block_state_provider",(0,sd.Mod)((0,sd.ObjectNode)({fallback:i("block_state_provider"),rules:(0,sd.ListNode)((0,sd.ObjectNode)({if_true:i("block_predicate_worldgen"),then:i("block_state_provider")}))},{context:"block_state_provider"}),{default:()=>({fallback:{type:"minecraft:simple_state_provider"}})}));const m={offset:(0,sd.Opt)((0,sd.ListNode)((0,sd.NumberNode)({integer:!0,min:-16,max:16}),{minLength:3,maxLength:3}))};e.register("block_predicate_worldgen",(0,sd.Mod)((0,sd.ObjectNode)({type:n({validator:"resource",params:{pool:"block_predicate_type"}}),[sd.Switch]:[{push:"type"}],[sd.Case]:{"minecraft:all_of":{predicates:(0,sd.ListNode)(i("block_predicate_worldgen"))},"minecraft:any_of":{predicates:(0,sd.ListNode)(i("block_predicate_worldgen"))},"minecraft:has_sturdy_face":c(s({},m),{direction:n({enum:"direction"})}),"minecraft:inside_world_bounds":s({},m),"minecraft:matching_block_tag":c(s({},m),{tag:n({validator:"resource",params:{pool:"$tag/block"}})}),"minecraft:matching_blocks":c(s({},m),{blocks:(0,cd.Tag)({resource:"block"})}),"minecraft:matching_fluids":c(s({},m),{fluids:(0,cd.Tag)({resource:"fluid"})}),"minecraft:not":{predicate:i("block_predicate_worldgen")},"minecraft:would_survive":c(s({},m),{state:i("block_state")})}},{context:"block_predicate"}),{default:()=>({type:"minecraft:true"})}))};var ud={};Object.defineProperty(ud,"__esModule",{value:!0}),ud.initNoiseSettingsSchemas=void 0;const dd=Pe,hd=yu,pd=id;ud.initNoiseSettingsSchemas=function(e,t){const i=dd.Reference.bind(void 0,e),n=dd.StringNode.bind(void 0,t);e.register("noise_settings",(0,dd.Mod)((0,dd.ObjectNode)({sea_level:(0,dd.NumberNode)({integer:!0}),disable_mob_generation:(0,dd.BooleanNode)(),aquifers_enabled:(0,dd.BooleanNode)(),ore_veins_enabled:(0,dd.BooleanNode)(),legacy_random_source:(0,dd.BooleanNode)(),default_block:i("block_state"),default_fluid:i("block_state"),noise:(0,dd.ObjectNode)({min_y:(0,dd.NumberNode)({integer:!0,min:-2048,max:2047}),height:(0,dd.NumberNode)({integer:!0,min:0,max:4096}),size_horizontal:(0,dd.NumberNode)({integer:!0}),size_vertical:(0,dd.NumberNode)({integer:!0})}),noise_router:(0,dd.ObjectNode)({barrier:pd.DensityFunction,fluid_level_floodedness:pd.DensityFunction,fluid_level_spread:pd.DensityFunction,lava:pd.DensityFunction,temperature:pd.DensityFunction,vegetation:pd.DensityFunction,continents:pd.DensityFunction,erosion:pd.DensityFunction,depth:pd.DensityFunction,ridges:pd.DensityFunction,initial_density_without_jaggedness:pd.DensityFunction,final_density:pd.DensityFunction,vein_toggle:pd.DensityFunction,vein_ridged:pd.DensityFunction,vein_gap:pd.DensityFunction}),spawn_target:(0,dd.ListNode)(i("parameter_point")),surface_rule:i("material_rule")},{context:"noise_settings"}),(e=>({default:()=>hd.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",(0,dd.ObjectNode)({target:(0,dd.NumberNode)(),size:(0,dd.NumberNode)({integer:!0,min:0}),offset:(0,dd.NumberNode)({integer:!0})})),e.register("generator_layer",(0,dd.Mod)((0,dd.ObjectNode)({block:n({validator:"resource",params:{pool:"block"}}),height:(0,dd.NumberNode)({integer:!0,min:1})}),{default:()=>({block:"minecraft:stone",height:1})}))};var md={};Object.defineProperty(md,"__esModule",{value:!0}),md.initStructureSchemas=void 0;const fd=Pe,gd=yu,_d=Xu;md.initStructureSchemas=function(e,t){const i=fd.StringNode.bind(void 0,t),n=fd.Reference.bind(void 0,e);e.register("structure",(0,fd.Mod)((0,fd.ObjectNode)({type:i({validator:"resource",params:{pool:"worldgen/structure_type"}}),biomes:(0,gd.Tag)({resource:"$worldgen/biome"}),step:i({enum:"decoration_step"}),spawn_overrides:(0,fd.MapNode)(i({enum:"mob_category"}),(0,fd.ObjectNode)({bounding_box:i({enum:["piece","full"]}),spawns:_d.MobCategorySpawnSettings})),terrain_adaptation:(0,fd.Opt)(i({enum:["none","beard_thin","beard_box","bury"]})),[fd.Switch]:[{push:"type"}],[fd.Case]:{"minecraft:jigsaw":{start_pool:i({validator:"resource",params:{pool:"$worldgen/template_pool"}}),size:(0,fd.NumberNode)({integer:!0}),start_height:n("height_provider"),start_jigsaw_name:(0,fd.Opt)(i()),project_start_to_heightmap:(0,fd.Opt)(i({enum:"heightmap_type"})),max_distance_from_center:(0,fd.NumberNode)({integer:!0,min:1,max:128}),use_expansion_hack:(0,fd.BooleanNode)()},"minecraft:mineshaft":{mineshaft_type:i({enum:["normal","mesa"]})},"minecraft:nether_fossil":{height:n("height_provider")},"minecraft:ocean_ruin":{biome_temp:i({enum:["cold","warm"]}),large_probability:(0,fd.NumberNode)({min:0,max:1}),cluster_probability:(0,fd.NumberNode)({min:0,max:1})},"minecraft:ruined_portal":{setups:(0,fd.ListNode)((0,fd.ObjectNode)({placement:i({enum:["on_land_surface","partly_buried","on_ocean_floor","in_mountain","underground","in_nether"]}),air_pocket_probability:(0,fd.NumberNode)({min:0,max:1}),mossiness:(0,fd.NumberNode)({min:0,max:1}),overgrown:(0,fd.BooleanNode)(),vines:(0,fd.BooleanNode)(),can_be_cold:(0,fd.BooleanNode)(),replace_with_blackstone:(0,fd.BooleanNode)(),weight:(0,fd.NumberNode)({min:0})}))},"minecraft:shipwreck":{is_beached:(0,fd.Opt)((0,fd.BooleanNode)())}}},{context:"structure_feature"}),{default:()=>({type:"minecraft:jigsaw",step:"surface_structures",size:6})}))};var bd={};Object.defineProperty(bd,"__esModule",{value:!0}),bd.initStructureSetSchemas=void 0;const vd=Pe,yd=yu;bd.initStructureSetSchemas=function(e,t){const i=vd.StringNode.bind(void 0,t),n=vd.Reference.bind(void 0,e),r=(0,vd.ChoiceNode)([{type:"string",node:i({validator:"resource",params:{pool:"$worldgen/structure_set"}})},{type:"object",node:n("structure_set")}],{choiceContext:"structure_set"});e.register("structure_set",(0,vd.ObjectNode)({structures:(0,vd.ListNode)((0,vd.ObjectNode)({structure:(0,yd.Tag)({resource:"$worldgen/structure"}),weight:(0,vd.NumberNode)({integer:!0,min:1})})),placement:n("structure_placement")},{context:"structure_set"})),e.register("structure_placement",(0,vd.Mod)((0,vd.ObjectNode)({type:i({validator:"resource",params:{pool:"worldgen/structure_placement"}}),salt:(0,vd.NumberNode)({integer:!0,min:0}),frequency_reduction_method:(0,vd.Opt)(i({enum:["default","legacy_type_1","legacy_type_2","legacy_type_3"]})),frequency:(0,vd.Opt)((0,vd.NumberNode)({min:0,max:1})),exclusion_zone:(0,vd.Opt)((0,vd.ObjectNode)({other_set:r,chunk_count:(0,vd.NumberNode)({integer:!0,min:1,max:16})})),locate_offset:(0,vd.Opt)((0,vd.ListNode)((0,vd.NumberNode)({integer:!0,min:-16,max:16}),{minLength:3,maxLength:3})),[vd.Switch]:[{push:"type"}],[vd.Case]:{"minecraft:concentric_rings":{distance:(0,vd.NumberNode)({integer:!0,min:0,max:1023}),spread:(0,vd.NumberNode)({integer:!0,min:0,max:1023}),count:(0,vd.NumberNode)({integer:!0,min:1,max:4095}),preferred_biomes:(0,yd.Tag)({resource:"$worldgen/biome"})},"minecraft:random_spread":{spread_type:(0,vd.Opt)(i({enum:["linear","triangular"]})),spacing:(0,vd.NumberNode)({integer:!0,min:0,max:4096}),separation:(0,vd.Mod)((0,vd.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))})))}}},{context:"structure_placement"}),{default:()=>({type:"minecraft:random_spread",spacing:10,separation:5,salt:Math.floor(2147483647*Math.random())})}))};var wd={};Object.defineProperty(wd,"__esModule",{value:!0}),wd.initSurfaceRuleSchemas=void 0;const xd=Pe;wd.initSurfaceRuleSchemas=function(e,t){const i=xd.StringNode.bind(void 0,t),n=xd.Reference.bind(void 0,e);e.register("material_rule",(0,xd.Mod)((0,xd.ObjectNode)({type:i({validator:"resource",params:{pool:"worldgen/material_rule"}}),[xd.Switch]:[{push:"type"}],[xd.Case]:{"minecraft:block":{result_state:n("block_state")},"minecraft:condition":{if_true:n("material_condition"),then_run:n("material_rule")},"minecraft:sequence":{sequence:(0,xd.ListNode)(n("material_rule"))}}},{context:"material_rule",category:"pool"}),{default:()=>({type:"minecraft:block",result_state:{Name:"minecraft:stone"}})})),e.register("material_condition",(0,xd.Mod)((0,xd.ObjectNode)({type:i({validator:"resource",params:{pool:"worldgen/material_condition"}}),[xd.Switch]:[{push:"type"}],[xd.Case]:{"minecraft:biome":{biome_is:(0,xd.ListNode)(i({validator:"resource",params:{pool:"$worldgen/biome"}}))},"minecraft:noise_threshold":{noise:i({validator:"resource",params:{pool:"$worldgen/noise"}}),min_threshold:(0,xd.NumberNode)(),max_threshold:(0,xd.NumberNode)()},"minecraft:not":{invert:n("material_condition")},"minecraft:stone_depth":{offset:(0,xd.NumberNode)({integer:!0}),surface_type:i({enum:"cave_surface"}),add_surface_depth:(0,xd.BooleanNode)(),secondary_depth_range:(0,xd.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:(0,xd.NumberNode)({integer:!0}),surface_depth_multiplier:(0,xd.NumberNode)({integer:!0,min:-20,max:20}),add_stone_depth:(0,xd.BooleanNode)()},"minecraft:y_above":{anchor:n("vertical_anchor"),surface_depth_multiplier:(0,xd.NumberNode)({integer:!0,min:-20,max:20}),add_stone_depth:(0,xd.BooleanNode)()}}},{context:"material_condition"}),{default:()=>({type:"minecraft:biome",is_biome:"minecraft:plains"})}))};var Nd={};Object.defineProperty(Nd,"__esModule",{value:!0}),Nd.initTemplatePoolSchemas=void 0;const kd=Pe,Ad=rd;Nd.initTemplatePoolSchemas=function(e,t){const i=kd.Reference.bind(void 0,e),n=kd.StringNode.bind(void 0,t);e.register("template_pool",(0,kd.Mod)((0,kd.ObjectNode)({name:n(),fallback:n(),elements:(0,kd.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",(0,kd.Mod)((0,kd.ObjectNode)({weight:(0,kd.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",(0,kd.Mod)((0,kd.ObjectNode)({element_type:n({validator:"resource",params:{pool:"worldgen/structure_pool_element"}}),projection:n({enum:["rigid","terrain_matching"]}),[kd.Switch]:[{push:"element_type"}],[kd.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:Ad.Processors},"minecraft:list_pool_element":{elements:(0,kd.ListNode)(i("template_element"))},"minecraft:single_pool_element":{location:n({validator:"resource",params:{pool:"$structure"}}),processors:Ad.Processors}}},{context:"template_element",disableSwitchContext:!0}),{default:()=>({element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"})}))};var Cd={};Object.defineProperty(Cd,"__esModule",{value:!0}),Cd.initWorldPresetSchemas=void 0;const Od=Pe;Cd.initWorldPresetSchemas=function(e,t){const i=Od.StringNode.bind(void 0,t),n=Od.Reference.bind(void 0,e);e.register("world_preset",(0,Od.Mod)((0,Od.ObjectNode)({dimensions:(0,Od.MapNode)(i({validator:"resource",params:{pool:"$dimension",isDefinition:!0}}),n("dimension"))},{context:"world_preset"}),{default:()=>({dimensions:{"minecraft:overworld":{type:"minecraft:overworld",generator:{type:"minecraft:noise",biome_source:{type:"minecraft:multi_noise",preset:"minecraft:overworld"},settings:"minecraft:overworld"}},"minecraft:the_nether":{type:"minecraft:the_nether",generator:{type:"minecraft:noise",biome_source:{type:"minecraft:multi_noise",preset:"minecraft:nether"},settings:"minecraft:nether"}},"minecraft:the_end":{type:"minecraft:the_end",generator:{type:"minecraft:noise",biome_source:{type:"minecraft:the_end"},settings:"minecraft:end"}}}})})),e.register("flat_level_generator_preset",(0,Od.Mod)((0,Od.ObjectNode)({display:i({validator:"resource",params:{pool:"item"}}),settings:n("flat_generator_settings")}),{default:()=>({display:"minecraft:grass_block",settings:{lakes:!1,features:!1,biome:"minecraft:plains",structure_overrides:[],layers:[{height:3,block:"minecraft:dirt"},{height:1,block:"minecraft:grass_block"}]}})}))},Object.defineProperty(Ku,"__esModule",{value:!0}),Ku.initWorldgenSchemas=void 0;const Sd=Xu,Ed=Ju,Fd=Qu,Dd=id,Bd=nd,Ld=ud,Md=rd,Td=md,Rd=bd,$d=wd,jd=Nd,Id=Cd;Ku.initWorldgenSchemas=function(e,t){(0,Md.initProcessorListSchemas)(e,t),(0,Dd.initDensityFunctionSchemas)(e,t),(0,Sd.initBiomeSchemas)(e,t),(0,Ed.initCarverSchemas)(e,t),(0,Fd.initDecoratorSchemas)(e,t),(0,Bd.initFeatureSchemas)(e,t),(0,Ld.initNoiseSettingsSchemas)(e,t),(0,Td.initStructureSchemas)(e,t),(0,Rd.initStructureSetSchemas)(e,t),(0,$d.initSurfaceRuleSchemas)(e,t),(0,jd.initTemplatePoolSchemas)(e,t),(0,Id.initWorldPresetSchemas)(e,t)};var Pd={};Object.defineProperty(Pd,"__esModule",{value:!0}),Pd.initWorldSettingsSchemas=void 0;const zd=Pe;Pd.initWorldSettingsSchemas=function(e,t){const i=zd.Reference.bind(void 0,e),n=zd.StringNode.bind(void 0,t);e.register("world_settings",(0,zd.Mod)((0,zd.ObjectNode)({generate_features:(0,zd.BooleanNode)(),bonus_chest:(0,zd.BooleanNode)(),seed:(0,zd.NumberNode)({integer:!0}),dimensions:(0,zd.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(cu,"__esModule",{value:!0}),cu.initSchemas=void 0;const Ud=lu,Wd=du,Hd=bu,qd=yu,Vd=wu,Gd=ku,Kd=Ou,Xd=Fu,Jd=Lu,Yd=ju,Zd=Pu,Qd=Uu,eh=Hu,th=Vu,ih=Ku,nh=Pd;cu.initSchemas=function(e,t){(0,qd.initCommonSchemas)(e,t),(0,Hd.initChatTypeSchemas)(e,t),(0,Ud.initAdvancementSchemas)(e,t),(0,Wd.initAssetsSchemas)(e,t),(0,Vd.initConditionSchemas)(e,t),(0,Kd.initDimensionTypeSchemas)(e,t),(0,Gd.initDimensionSchemas)(e,t),(0,Xd.initItemModifierSchemas)(e,t),(0,Jd.initLootTableSchemas)(e,t),(0,Yd.initPackMcmetaSchemas)(e,t),(0,Zd.initPredicatesSchemas)(e,t),(0,Qd.initRecipeSchemas)(e,t),(0,eh.initTagsSchemas)(e,t),(0,th.initTextComponentSchemas)(e,t),(0,ih.initWorldgenSchemas)(e,t),(0,nh.initWorldSettingsSchemas)(e,t)};var rh=Ie&&Ie.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i);var r=Object.getOwnPropertyDescriptor(t,i);r&&!("get"in r?!t.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,n,r)}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),oh=Ie&&Ie.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),ah=Ie&&Ie.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&rh(t,e,i);return oh(t,e),t};Object.defineProperty(au,"__esModule",{value:!0});var sh=au.getSchemas=au.getCollections=au.lootContext=void 0;const ch=Pe,lh=su,uh=cu;var dh=au.lootContext=ah(Mu);var hh=au.getCollections=function(){const e=new ch.CollectionRegistry;return(0,lh.initCollections)(e),e};sh=au.getSchemas=function(e){const t=new ch.SchemaRegistry;return(0,uh.initSchemas)(t,e),t};var ph,mh,fh=Object.freeze(Object.assign(Object.create(null),au,{[Symbol.toStringTag]:"Module",get getSchemas(){return sh},get getCollections(){return hh},get lootContext(){return dh},default:au})),gh={exports:{}};ph=gh,mh=function(){var e=String.fromCharCode,t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$",n={};function r(e,t){if(!n[e]){n[e]={};for(var i=0;i<e.length;i++)n[e][e.charAt(i)]=i}return n[e][t]}var o={compressToBase64:function(e){if(null==e)return"";var i=o._compress(e,6,(function(e){return t.charAt(e)}));switch(i.length%4){default:case 0:return i;case 1:return i+"===";case 2:return i+"==";case 3:return i+"="}},decompressFromBase64:function(e){return null==e?"":""==e?null:o._decompress(e.length,32,(function(i){return r(t,e.charAt(i))}))},compressToUTF16:function(t){return null==t?"":o._compress(t,15,(function(t){return e(t+32)}))+" "},decompressFromUTF16:function(e){return null==e?"":""==e?null:o._decompress(e.length,16384,(function(t){return e.charCodeAt(t)-32}))},compressToUint8Array:function(e){for(var t=o.compress(e),i=new Uint8Array(2*t.length),n=0,r=t.length;n<r;n++){var a=t.charCodeAt(n);i[2*n]=a>>>8,i[2*n+1]=a%256}return i},decompressFromUint8Array:function(t){if(null==t)return o.decompress(t);for(var i=new Array(t.length/2),n=0,r=i.length;n<r;n++)i[n]=256*t[2*n]+t[2*n+1];var a=[];return i.forEach((function(t){a.push(e(t))})),o.decompress(a.join(""))},compressToEncodedURIComponent:function(e){return null==e?"":o._compress(e,6,(function(e){return i.charAt(e)}))},decompressFromEncodedURIComponent:function(e){return null==e?"":""==e?null:(e=e.replace(/ /g,"+"),o._decompress(e.length,32,(function(t){return r(i,e.charAt(t))})))},compress:function(t){return o._compress(t,16,(function(t){return e(t)}))},_compress:function(e,t,i){if(null==e)return"";var n,r,o,a={},s={},c="",l="",u="",d=2,h=3,p=2,m=[],f=0,g=0;for(o=0;o<e.length;o+=1)if(c=e.charAt(o),Object.prototype.hasOwnProperty.call(a,c)||(a[c]=h++,s[c]=!0),l=u+c,Object.prototype.hasOwnProperty.call(a,l))u=l;else{if(Object.prototype.hasOwnProperty.call(s,u)){if(u.charCodeAt(0)<256){for(n=0;n<p;n++)f<<=1,g==t-1?(g=0,m.push(i(f)),f=0):g++;for(r=u.charCodeAt(0),n=0;n<8;n++)f=f<<1|1&r,g==t-1?(g=0,m.push(i(f)),f=0):g++,r>>=1}else{for(r=1,n=0;n<p;n++)f=f<<1|r,g==t-1?(g=0,m.push(i(f)),f=0):g++,r=0;for(r=u.charCodeAt(0),n=0;n<16;n++)f=f<<1|1&r,g==t-1?(g=0,m.push(i(f)),f=0):g++,r>>=1}0==--d&&(d=Math.pow(2,p),p++),delete s[u]}else for(r=a[u],n=0;n<p;n++)f=f<<1|1&r,g==t-1?(g=0,m.push(i(f)),f=0):g++,r>>=1;0==--d&&(d=Math.pow(2,p),p++),a[l]=h++,u=String(c)}if(""!==u){if(Object.prototype.hasOwnProperty.call(s,u)){if(u.charCodeAt(0)<256){for(n=0;n<p;n++)f<<=1,g==t-1?(g=0,m.push(i(f)),f=0):g++;for(r=u.charCodeAt(0),n=0;n<8;n++)f=f<<1|1&r,g==t-1?(g=0,m.push(i(f)),f=0):g++,r>>=1}else{for(r=1,n=0;n<p;n++)f=f<<1|r,g==t-1?(g=0,m.push(i(f)),f=0):g++,r=0;for(r=u.charCodeAt(0),n=0;n<16;n++)f=f<<1|1&r,g==t-1?(g=0,m.push(i(f)),f=0):g++,r>>=1}0==--d&&(d=Math.pow(2,p),p++),delete s[u]}else for(r=a[u],n=0;n<p;n++)f=f<<1|1&r,g==t-1?(g=0,m.push(i(f)),f=0):g++,r>>=1;0==--d&&(d=Math.pow(2,p),p++)}for(r=2,n=0;n<p;n++)f=f<<1|1&r,g==t-1?(g=0,m.push(i(f)),f=0):g++,r>>=1;for(;;){if(f<<=1,g==t-1){m.push(i(f));break}g++}return m.join("")},decompress:function(e){return null==e?"":""==e?null:o._decompress(e.length,32768,(function(t){return e.charCodeAt(t)}))},_decompress:function(t,i,n){var r,o,a,s,c,l,u,d=[],h=4,p=4,m=3,f="",g=[],_={val:n(0),position:i,index:1};for(r=0;r<3;r+=1)d[r]=r;for(a=0,c=Math.pow(2,2),l=1;l!=c;)s=_.val&_.position,_.position>>=1,0==_.position&&(_.position=i,_.val=n(_.index++)),a|=(s>0?1:0)*l,l<<=1;switch(a){case 0:for(a=0,c=Math.pow(2,8),l=1;l!=c;)s=_.val&_.position,_.position>>=1,0==_.position&&(_.position=i,_.val=n(_.index++)),a|=(s>0?1:0)*l,l<<=1;u=e(a);break;case 1:for(a=0,c=Math.pow(2,16),l=1;l!=c;)s=_.val&_.position,_.position>>=1,0==_.position&&(_.position=i,_.val=n(_.index++)),a|=(s>0?1:0)*l,l<<=1;u=e(a);break;case 2:return""}for(d[3]=u,o=u,g.push(u);;){if(_.index>t)return"";for(a=0,c=Math.pow(2,m),l=1;l!=c;)s=_.val&_.position,_.position>>=1,0==_.position&&(_.position=i,_.val=n(_.index++)),a|=(s>0?1:0)*l,l<<=1;switch(u=a){case 0:for(a=0,c=Math.pow(2,8),l=1;l!=c;)s=_.val&_.position,_.position>>=1,0==_.position&&(_.position=i,_.val=n(_.index++)),a|=(s>0?1:0)*l,l<<=1;d[p++]=e(a),u=p-1,h--;break;case 1:for(a=0,c=Math.pow(2,16),l=1;l!=c;)s=_.val&_.position,_.position>>=1,0==_.position&&(_.position=i,_.val=n(_.index++)),a|=(s>0?1:0)*l,l<<=1;d[p++]=e(a),u=p-1,h--;break;case 2:return g.join("")}if(0==h&&(h=Math.pow(2,m),m++),d[u])f=d[u];else{if(u!==p)return null;f=o+o.charAt(0)}g.push(f),d[p++]=o+f.charAt(0),o=f,0==--h&&(h=Math.pow(2,m),m++)}}};return o}(),null!=ph&&(ph.exports=mh);var _h=gh.exports; +/*! pako 2.0.4 https://github.com/nodeca/pako @license (MIT AND Zlib) */function bh(e){let t=e.length;for(;--t>=0;)e[t]=0}const vh=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]),yh=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]),wh=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),xh=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),Nh=new Array(576);bh(Nh);const kh=new Array(60);bh(kh);const Ah=new Array(512);bh(Ah);const Ch=new Array(256);bh(Ch);const Oh=new Array(29);bh(Oh);const Sh=new Array(30);function Eh(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 Fh,Dh,Bh;function Lh(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}bh(Sh);const Mh=e=>e<256?Ah[e]:Ah[256+(e>>>7)],Th=(e,t)=>{e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255},Rh=(e,t,i)=>{e.bi_valid>16-i?(e.bi_buf|=t<<e.bi_valid&65535,Th(e,e.bi_buf),e.bi_buf=t>>16-e.bi_valid,e.bi_valid+=i-16):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=i)},$h=(e,t,i)=>{Rh(e,i[2*t],i[2*t+1])},jh=(e,t)=>{let i=0;do{i|=1&e,e>>>=1,i<<=1}while(--t>0);return i>>>1},Ih=(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]=jh(n[t]++,t))}},Ph=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},zh=e=>{e.bi_valid>8?Th(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0},Uh=(e,t,i,n)=>{const r=2*t,o=2*i;return e[r]<e[o]||e[r]===e[o]&&n[t]<=n[i]},Wh=(e,t,i)=>{const n=e.heap[i];let r=i<<1;for(;r<=e.heap_len&&(r<e.heap_len&&Uh(t,e.heap[r+1],e.heap[r],e.depth)&&r++,!Uh(t,n,e.heap[r],e.depth));)e.heap[i]=e.heap[r],i=r,r<<=1;e.heap[i]=n},Hh=(e,t,i)=>{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?$h(e,r,t):(o=Ch[r],$h(e,o+256+1,t),a=vh[o],0!==a&&(r-=Oh[o],Rh(e,r,a)),n--,o=Mh(n),$h(e,o,i),a=yh[o],0!==a&&(n-=Sh[o],Rh(e,n,a)))}while(s<e.last_lit);$h(e,256,t)},qh=(e,t)=>{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<o;a++)0!==i[2*a]?(e.heap[++e.heap_len]=l=a,e.depth[a]=0):i[2*a+1]=0;for(;e.heap_len<2;)c=e.heap[++e.heap_len]=l<2?++l:0,i[2*c]=1,e.depth[c]=0,e.opt_len--,r&&(e.static_len-=n[2*c+1]);for(t.max_code=l,a=e.heap_len>>1;a>=1;a--)Wh(e,i,a);c=o;do{a=e.heap[1],e.heap[1]=e.heap[e.heap_len--],Wh(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++,Wh(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),Ih(i,l,e.bl_count)},Vh=(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<c&&r===a||(s<l?e.bl_tree[2*r]+=s:0!==r?(r!==o&&e.bl_tree[2*r]++,e.bl_tree[32]++):s<=10?e.bl_tree[34]++:e.bl_tree[36]++,s=0,o=r,0===a?(c=138,l=3):r===a?(c=6,l=3):(c=7,l=4))},Gh=(e,t,i)=>{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<c&&r===a)){if(s<l)do{$h(e,r,e.bl_tree)}while(0!=--s);else 0!==r?(r!==o&&($h(e,r,e.bl_tree),s--),$h(e,16,e.bl_tree),Rh(e,s-3,2)):s<=10?($h(e,17,e.bl_tree),Rh(e,s-3,3)):($h(e,18,e.bl_tree),Rh(e,s-11,7));s=0,o=r,0===a?(c=138,l=3):r===a?(c=6,l=3):(c=7,l=4)}};let Kh=!1;const Xh=(e,t,i,n)=>{Rh(e,0+(n?1:0),3),((e,t,i,n)=>{zh(e),n&&(Th(e,i),Th(e,~i)),e.pending_buf.set(e.window.subarray(t,t+i),e.pending),e.pending+=i})(e,t,i,!0)};var Jh={_tr_init:e=>{Kh||((()=>{let e,t,i,n,r;const o=new Array(16);for(i=0,n=0;n<28;n++)for(Oh[n]=i,e=0;e<1<<vh[n];e++)Ch[i++]=n;for(Ch[i-1]=n,r=0,n=0;n<16;n++)for(Sh[n]=r,e=0;e<1<<yh[n];e++)Ah[r++]=n;for(r>>=7;n<30;n++)for(Sh[n]=r<<7,e=0;e<1<<yh[n]-7;e++)Ah[256+r++]=n;for(t=0;t<=15;t++)o[t]=0;for(e=0;e<=143;)Nh[2*e+1]=8,e++,o[8]++;for(;e<=255;)Nh[2*e+1]=9,e++,o[9]++;for(;e<=279;)Nh[2*e+1]=7,e++,o[7]++;for(;e<=287;)Nh[2*e+1]=8,e++,o[8]++;for(Ih(Nh,287,o),e=0;e<30;e++)kh[2*e+1]=5,kh[2*e]=jh(e,5);Fh=new Eh(Nh,vh,257,286,15),Dh=new Eh(kh,yh,0,30,15),Bh=new Eh(new Array(0),wh,0,19,7)})(),Kh=!0),e.l_desc=new Lh(e.dyn_ltree,Fh),e.d_desc=new Lh(e.dyn_dtree,Dh),e.bl_desc=new Lh(e.bl_tree,Bh),e.bi_buf=0,e.bi_valid=0,Ph(e)},_tr_stored_block:Xh,_tr_flush_block:(e,t,i,n)=>{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)),qh(e,e.l_desc),qh(e,e.d_desc),a=(e=>{let t;for(Vh(e,e.dyn_ltree,e.l_desc.max_code),Vh(e,e.dyn_dtree,e.d_desc.max_code),qh(e,e.bl_desc),t=18;t>=3&&0===e.bl_tree[2*xh[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?Xh(e,t,i,n):4===e.strategy||o===r?(Rh(e,2+(n?1:0),3),Hh(e,Nh,kh)):(Rh(e,4+(n?1:0),3),((e,t,i,n)=>{let r;for(Rh(e,t-257,5),Rh(e,i-1,5),Rh(e,n-4,4),r=0;r<n;r++)Rh(e,e.bl_tree[2*xh[r]+1],3);Gh(e,e.dyn_ltree,t-1),Gh(e,e.dyn_dtree,i-1)})(e,e.l_desc.max_code+1,e.d_desc.max_code+1,a+1),Hh(e,e.dyn_ltree,e.dyn_dtree)),Ph(e),n&&zh(e)},_tr_tally:(e,t,i)=>(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*(Ch[i]+256+1)]++,e.dyn_dtree[2*Mh(t)]++),e.last_lit===e.lit_bufsize-1),_tr_align:e=>{Rh(e,2,3),$h(e,256,Nh),(e=>{16===e.bi_valid?(Th(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 Yh=(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 Zh=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 Qh=(e,t,i,n)=>{const r=Zh,o=n+i;e^=-1;for(let a=n;a<o;a++)e=e>>>8^r[255&(e^t[a])];return-1^e},ep={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"},tp={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:ip,_tr_stored_block:np,_tr_flush_block:rp,_tr_tally:op,_tr_align:ap}=Jh,{Z_NO_FLUSH:sp,Z_PARTIAL_FLUSH:cp,Z_FULL_FLUSH:lp,Z_FINISH:up,Z_BLOCK:dp,Z_OK:hp,Z_STREAM_END:pp,Z_STREAM_ERROR:mp,Z_DATA_ERROR:fp,Z_BUF_ERROR:gp,Z_DEFAULT_COMPRESSION:_p,Z_FILTERED:bp,Z_HUFFMAN_ONLY:vp,Z_RLE:yp,Z_FIXED:wp,Z_DEFAULT_STRATEGY:xp,Z_UNKNOWN:Np,Z_DEFLATED:kp}=tp,Ap=(e,t)=>(e.msg=ep[t],t),Cp=e=>(e<<1)-(e>4?9:0),Op=e=>{let t=e.length;for(;--t>=0;)e[t]=0};let Sp=(e,t,i)=>(t<<e.hash_shift^i)&e.hash_mask;const Ep=e=>{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))},Fp=(e,t)=>{rp(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,Ep(e.strm)},Dp=(e,t)=>{e.pending_buf[e.pending++]=t},Bp=(e,t)=>{e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t},Lp=(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=Yh(e.adler,t,r,i):2===e.state.wrap&&(e.adler=Qh(e.adler,t,r,i)),e.next_in+=r,e.total_in+=r,r)},Mp=(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]&&o<h);if(n=258-(h-o),o=h-258,n>a){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},Tp=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=Lp(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=Sp(e,e.ins_h,e.window[a+1]);e.insert&&(e.ins_h=Sp(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)},Rp=(e,t)=>{let i,n;for(;;){if(e.lookahead<262){if(Tp(e),e.lookahead<262&&t===sp)return 1;if(0===e.lookahead)break}if(i=0,e.lookahead>=3&&(e.ins_h=Sp(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=Mp(e,i)),e.match_length>=3)if(n=op(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=Sp(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=Sp(e,e.ins_h,e.window[e.strstart+1]);else n=op(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(n&&(Fp(e,!1),0===e.strm.avail_out))return 1}return e.insert=e.strstart<2?e.strstart:2,t===up?(Fp(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(Fp(e,!1),0===e.strm.avail_out)?1:2},$p=(e,t)=>{let i,n,r;for(;;){if(e.lookahead<262){if(Tp(e),e.lookahead<262&&t===sp)return 1;if(0===e.lookahead)break}if(i=0,e.lookahead>=3&&(e.ins_h=Sp(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_length<e.max_lazy_match&&e.strstart-i<=e.w_size-262&&(e.match_length=Mp(e,i),e.match_length<=5&&(e.strategy===bp||3===e.match_length&&e.strstart-e.match_start>4096)&&(e.match_length=2)),e.prev_length>=3&&e.match_length<=e.prev_length){r=e.strstart+e.lookahead-3,n=op(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=Sp(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&&(Fp(e,!1),0===e.strm.avail_out))return 1}else if(e.match_available){if(n=op(e,0,e.window[e.strstart-1]),n&&Fp(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=op(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<2?e.strstart:2,t===up?(Fp(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(Fp(e,!1),0===e.strm.avail_out)?1:2};function jp(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 Ip=[new jp(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(Tp(e),0===e.lookahead&&t===sp)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,Fp(e,!1),0===e.strm.avail_out))return 1;if(e.strstart-e.block_start>=e.w_size-262&&(Fp(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,t===up?(Fp(e,!0),0===e.strm.avail_out?3:4):(e.strstart>e.block_start&&(Fp(e,!1),e.strm.avail_out),1)})),new jp(4,4,8,4,Rp),new jp(4,5,16,8,Rp),new jp(4,6,32,32,Rp),new jp(4,4,16,16,$p),new jp(8,16,32,32,$p),new jp(8,16,128,128,$p),new jp(8,32,128,256,$p),new jp(32,128,258,1024,$p),new jp(32,258,258,4096,$p)];function Pp(){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=kp,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),Op(this.dyn_ltree),Op(this.dyn_dtree),Op(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),Op(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(573),Op(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 zp=e=>{if(!e||!e.state)return Ap(e,mp);e.total_in=e.total_out=0,e.data_type=Np;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=sp,ip(t),hp},Up=e=>{const t=zp(e);var i;return t===hp&&((i=e.state).window_size=2*i.w_size,Op(i.head),i.max_lazy_match=Ip[i.level].max_lazy,i.good_match=Ip[i.level].good_length,i.nice_match=Ip[i.level].nice_length,i.max_chain_length=Ip[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},Wp=(e,t,i,n,r,o)=>{if(!e)return mp;let a=1;if(t===_p&&(t=6),n<0?(a=0,n=-n):n>15&&(a=2,n-=16),r<1||r>9||i!==kp||n<8||n>15||t<0||t>9||o<0||o>wp)return Ap(e,mp);8===n&&(n=9);const s=new Pp;return e.state=s,s.strm=e,s.wrap=a,s.gzhead=null,s.w_bits=n,s.w_size=1<<s.w_bits,s.w_mask=s.w_size-1,s.hash_bits=r+7,s.hash_size=1<<s.hash_bits,s.hash_mask=s.hash_size-1,s.hash_shift=~~((s.hash_bits+3-1)/3),s.window=new Uint8Array(2*s.w_size),s.head=new Uint16Array(s.hash_size),s.prev=new Uint16Array(s.w_size),s.lit_bufsize=1<<r+6,s.pending_buf_size=4*s.lit_bufsize,s.pending_buf=new Uint8Array(s.pending_buf_size),s.d_buf=1*s.lit_bufsize,s.l_buf=3*s.lit_bufsize,s.level=t,s.strategy=o,s.method=i,Up(e)};var Hp={deflateInit:(e,t)=>Wp(e,t,kp,15,8,xp),deflateInit2:Wp,deflateReset:Up,deflateResetKeep:zp,deflateSetHeader:(e,t)=>e&&e.state?2!==e.state.wrap?mp:(e.state.gzhead=t,hp):mp,deflate:(e,t)=>{let i,n;if(!e||!e.state||t>dp||t<0)return e?Ap(e,mp):mp;const r=e.state;if(!e.output||!e.input&&0!==e.avail_in||666===r.status&&t!==up)return Ap(e,0===e.avail_out?gp:mp);r.strm=e;const o=r.last_flush;if(r.last_flush=t,42===r.status)if(2===r.wrap)e.adler=0,Dp(r,31),Dp(r,139),Dp(r,8),r.gzhead?(Dp(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)),Dp(r,255&r.gzhead.time),Dp(r,r.gzhead.time>>8&255),Dp(r,r.gzhead.time>>16&255),Dp(r,r.gzhead.time>>24&255),Dp(r,9===r.level?2:r.strategy>=vp||r.level<2?4:0),Dp(r,255&r.gzhead.os),r.gzhead.extra&&r.gzhead.extra.length&&(Dp(r,255&r.gzhead.extra.length),Dp(r,r.gzhead.extra.length>>8&255)),r.gzhead.hcrc&&(e.adler=Qh(e.adler,r.pending_buf,r.pending,0)),r.gzindex=0,r.status=69):(Dp(r,0),Dp(r,0),Dp(r,0),Dp(r,0),Dp(r,0),Dp(r,9===r.level?2:r.strategy>=vp||r.level<2?4:0),Dp(r,3),r.status=113);else{let t=kp+(r.w_bits-8<<4)<<8,i=-1;i=r.strategy>=vp||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,Bp(r,t),0!==r.strstart&&(Bp(r,e.adler>>>16),Bp(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=Qh(e.adler,r.pending_buf,r.pending-i,i)),Ep(e),i=r.pending,r.pending!==r.pending_buf_size));)Dp(r,255&r.gzhead.extra[r.gzindex]),r.gzindex++;r.gzhead.hcrc&&r.pending>i&&(e.adler=Qh(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=Qh(e.adler,r.pending_buf,r.pending-i,i)),Ep(e),i=r.pending,r.pending===r.pending_buf_size)){n=1;break}n=r.gzindex<r.gzhead.name.length?255&r.gzhead.name.charCodeAt(r.gzindex++):0,Dp(r,n)}while(0!==n);r.gzhead.hcrc&&r.pending>i&&(e.adler=Qh(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=Qh(e.adler,r.pending_buf,r.pending-i,i)),Ep(e),i=r.pending,r.pending===r.pending_buf_size)){n=1;break}n=r.gzindex<r.gzhead.comment.length?255&r.gzhead.comment.charCodeAt(r.gzindex++):0,Dp(r,n)}while(0!==n);r.gzhead.hcrc&&r.pending>i&&(e.adler=Qh(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&&Ep(e),r.pending+2<=r.pending_buf_size&&(Dp(r,255&e.adler),Dp(r,e.adler>>8&255),e.adler=0,r.status=113)):r.status=113),0!==r.pending){if(Ep(e),0===e.avail_out)return r.last_flush=-1,hp}else if(0===e.avail_in&&Cp(t)<=Cp(o)&&t!==up)return Ap(e,gp);if(666===r.status&&0!==e.avail_in)return Ap(e,gp);if(0!==e.avail_in||0!==r.lookahead||t!==sp&&666!==r.status){let i=r.strategy===vp?((e,t)=>{let i;for(;;){if(0===e.lookahead&&(Tp(e),0===e.lookahead)){if(t===sp)return 1;break}if(e.match_length=0,i=op(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,i&&(Fp(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,t===up?(Fp(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(Fp(e,!1),0===e.strm.avail_out)?1:2})(r,t):r.strategy===yp?((e,t)=>{let i,n,r,o;const a=e.window;for(;;){if(e.lookahead<=258){if(Tp(e),e.lookahead<=258&&t===sp)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]&&r<o);e.match_length=258-(o-r),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=3?(i=op(e,1,e.match_length-3),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(i=op(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),i&&(Fp(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,t===up?(Fp(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(Fp(e,!1),0===e.strm.avail_out)?1:2})(r,t):Ip[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),hp;if(2===i&&(t===cp?ap(r):t!==dp&&(np(r,0,0,!1),t===lp&&(Op(r.head),0===r.lookahead&&(r.strstart=0,r.block_start=0,r.insert=0))),Ep(e),0===e.avail_out))return r.last_flush=-1,hp}return t!==up?hp:r.wrap<=0?pp:(2===r.wrap?(Dp(r,255&e.adler),Dp(r,e.adler>>8&255),Dp(r,e.adler>>16&255),Dp(r,e.adler>>24&255),Dp(r,255&e.total_in),Dp(r,e.total_in>>8&255),Dp(r,e.total_in>>16&255),Dp(r,e.total_in>>24&255)):(Bp(r,e.adler>>>16),Bp(r,65535&e.adler)),Ep(e),r.wrap>0&&(r.wrap=-r.wrap),0!==r.pending?hp:pp)},deflateEnd:e=>{if(!e||!e.state)return mp;const t=e.state.status;return 42!==t&&69!==t&&73!==t&&91!==t&&103!==t&&113!==t&&666!==t?Ap(e,mp):(e.state=null,113===t?Ap(e,fp):hp)},deflateSetDictionary:(e,t)=>{let i=t.length;if(!e||!e.state)return mp;const n=e.state,r=n.wrap;if(2===r||1===r&&42!==n.status||n.lookahead)return mp;if(1===r&&(e.adler=Yh(e.adler,t,i,0)),n.wrap=0,i>=n.w_size){0===r&&(Op(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,Tp(n);n.lookahead>=3;){let e=n.strstart,t=n.lookahead-2;do{n.ins_h=Sp(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,Tp(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,hp},deflateInfo:"pako deflate (from Nodeca project)"};const qp=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var Vp=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)qp(i,t)&&(e[t]=i[t])}}return e},Gp=e=>{let t=0;for(let n=0,r=e.length;n<r;n++)t+=e[n].length;const i=new Uint8Array(t);for(let n=0,r=0,o=e.length;n<o;n++){let t=e[n];i.set(t,r),r+=t.length}return i};let Kp=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(Qk){Kp=!1}const Xp=new Uint8Array(256);for(let tA=0;tA<256;tA++)Xp[tA]=tA>=252?6:tA>=248?5:tA>=240?4:tA>=224?3:tA>=192?2:1;Xp[254]=Xp[254]=1;var Jp=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<a;r++)i=e.charCodeAt(r),55296==(64512&i)&&r+1<a&&(n=e.charCodeAt(r+1),56320==(64512&n)&&(i=65536+(i-55296<<10)+(n-56320),r++)),s+=i<128?1:i<2048?2:i<65536?3:4;for(t=new Uint8Array(s),o=0,r=0;o<s;r++)i=e.charCodeAt(r),55296==(64512&i)&&r+1<a&&(n=e.charCodeAt(r+1),56320==(64512&n)&&(i=65536+(i-55296<<10)+(n-56320),r++)),i<128?t[o++]=i:i<2048?(t[o++]=192|i>>>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},Yp=(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;n<i;){let t=e[n++];if(t<128){o[r++]=t;continue}let a=Xp[t];if(a>4)o[r++]=65533,n+=a-1;else{for(t&=2===a?31:3===a?15:7;a>1&&n<i;)t=t<<6|63&e[n++],a--;a>1?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&&Kp)return String.fromCharCode.apply(null,e.length===t?e:e.subarray(0,t));let i="";for(let n=0;n<t;n++)i+=String.fromCharCode(e[n]);return i})(o,r)},Zp=(e,t)=>{(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+Xp[e[i]]>t?i:t};var Qp=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 em=Object.prototype.toString,{Z_NO_FLUSH:tm,Z_SYNC_FLUSH:im,Z_FULL_FLUSH:nm,Z_FINISH:rm,Z_OK:om,Z_STREAM_END:am,Z_DEFAULT_COMPRESSION:sm,Z_DEFAULT_STRATEGY:cm,Z_DEFLATED:lm}=tp;function um(e){this.options=Vp({level:sm,method:lm,chunkSize:16384,windowBits:15,memLevel:8,strategy:cm},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 Qp,this.strm.avail_out=0;let i=Hp.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(i!==om)throw new Error(ep[i]);if(t.header&&Hp.deflateSetHeader(this.strm,t.header),t.dictionary){let e;if(e="string"==typeof t.dictionary?Jp(t.dictionary):"[object ArrayBuffer]"===em.call(t.dictionary)?new Uint8Array(t.dictionary):t.dictionary,i=Hp.deflateSetDictionary(this.strm,e),i!==om)throw new Error(ep[i]);this._dict_set=!0}}um.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?rm:tm,"string"==typeof e?i.input=Jp(e):"[object ArrayBuffer]"===em.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===im||o===nm)&&i.avail_out<=6)this.onData(i.output.subarray(0,i.next_out)),i.avail_out=0;else{if(r=Hp.deflate(i,o),r===am)return i.next_out>0&&this.onData(i.output.subarray(0,i.next_out)),r=Hp.deflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===om;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},um.prototype.onData=function(e){this.chunks.push(e)},um.prototype.onEnd=function(e){e===om&&(this.result=Gp(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};var dm=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,k,A;const C=e.state;i=e.next_in,k=e.input,n=i+(e.avail_in-5),r=e.next_out,A=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<<C.lenbits)-1,_=(1<<C.distbits)-1;e:do{p<15&&(h+=k[i++]<<p,p+=8,h+=k[i++]<<p,p+=8),b=m[h&g];t:for(;;){if(v=b>>>24,h>>>=v,p-=v,v=b>>>16&255,0===v)A[r++]=65535&b;else{if(!(16&v)){if(0==(64&v)){b=m[(65535&b)+(h&(1<<v)-1)];continue t}if(32&v){C.mode=12;break e}e.msg="invalid literal/length code",C.mode=30;break e}y=65535&b,v&=15,v&&(p<v&&(h+=k[i++]<<p,p+=8),y+=h&(1<<v)-1,h>>>=v,p-=v),p<15&&(h+=k[i++]<<p,p+=8,h+=k[i++]<<p,p+=8),b=f[h&_];i:for(;;){if(v=b>>>24,h>>>=v,p-=v,v=b>>>16&255,!(16&v)){if(0==(64&v)){b=f[(65535&b)+(h&(1<<v)-1)];continue i}e.msg="invalid distance code",C.mode=30;break e}if(w=65535&b,v&=15,p<v&&(h+=k[i++]<<p,p+=8,p<v&&(h+=k[i++]<<p,p+=8)),w+=h&(1<<v)-1,w>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,v<y){y-=v;do{A[r++]=d[x++]}while(--v);x=r-w,N=A}}else if(u<v){if(x+=c+u-v,v-=u,v<y){y-=v;do{A[r++]=d[x++]}while(--v);if(x=0,u<y){v=u,y-=v;do{A[r++]=d[x++]}while(--v);x=r-w,N=A}}}else if(x+=u-v,v<y){y-=v;do{A[r++]=d[x++]}while(--v);x=r-w,N=A}for(;y>2;)A[r++]=N[x++],A[r++]=N[x++],A[r++]=N[x++],y-=3;y&&(A[r++]=N[x++],y>1&&(A[r++]=N[x++]))}else{x=r-w;do{A[r++]=A[x++],A[r++]=A[x++],A[r++]=A[x++],y-=3}while(y>2);y&&(A[r++]=A[x++],y>1&&(A[r++]=A[x++]))}break}}break}}while(i<n&&r<a);y=p>>3,i-=y,p-=y<<3,h&=(1<<p)-1,e.next_in=i,e.next_out=r,e.avail_in=i<n?n-i+5:5-(i-n),e.avail_out=r<a?a-r+257:257-(r-a),C.hold=h,C.bits=p};const hm=new Uint16Array([3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0]),pm=new Uint8Array([16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78]),mm=new Uint16Array([1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0]),fm=new Uint8Array([16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64]);var gm=(e,t,i,n,r,o,a,s)=>{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,k=0,A=null,C=0;const O=new Uint16Array(16),S=new Uint16Array(16);let E,F,D,B=null,L=0;for(f=0;f<=15;f++)O[f]=0;for(g=0;g<n;g++)O[t[i+g]]++;for(v=c,b=15;b>=1&&0===O[b];b--);if(v>b&&(v=b),0===b)return r[o++]=20971520,r[o++]=20971520,s.bits=1,0;for(_=1;_<b&&0===O[_];_++);for(v<_&&(v=_),x=1,f=1;f<=15;f++)if(x<<=1,x-=O[f],x<0)return-1;if(x>0&&(0===e||1!==b))return-1;for(S[1]=0,f=1;f<15;f++)S[f+1]=S[f]+O[f];for(g=0;g<n;g++)0!==t[i+g]&&(a[S[t[i+g]]++]=g);if(0===e?(A=B=a,m=19):1===e?(A=hm,C-=257,B=pm,L-=257,m=256):(A=mm,B=fm,m=-1),k=0,g=0,f=_,p=o,y=v,w=0,d=-1,N=1<<v,h=N-1,1===e&&N>852||2===e&&N>592)return 1;for(;;){E=f-w,a[g]<m?(F=0,D=a[g]):a[g]>m?(F=B[L+a[g]],D=A[C+a[g]]):(F=96,D=0),l=1<<f-w,u=1<<y,_=u;do{u-=l,r[p+(k>>w)+u]=E<<24|F<<16|D|0}while(0!==u);for(l=1<<f-1;k&l;)l>>=1;if(0!==l?(k&=l-1,k+=l):k=0,g++,0==--O[f]){if(f===b)break;f=t[i+a[g]]}if(f>v&&(k&h)!==d){for(0===w&&(w=v),p+=_,y=f-w,x=1<<y;y+w<b&&(x-=O[y+w],!(x<=0));)y++,x<<=1;if(N+=1<<y,1===e&&N>852||2===e&&N>592)return 1;d=k&h,r[d]=v<<24|y<<16|p-o|0}}return 0!==k&&(r[p+k]=f-w<<24|64<<16|0),s.bits=v,0};const{Z_FINISH:_m,Z_BLOCK:bm,Z_TREES:vm,Z_OK:ym,Z_STREAM_END:wm,Z_NEED_DICT:xm,Z_STREAM_ERROR:Nm,Z_DATA_ERROR:km,Z_MEM_ERROR:Am,Z_BUF_ERROR:Cm,Z_DEFLATED:Om}=tp,Sm=e=>(e>>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24);function Em(){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 Fm=e=>{if(!e||!e.state)return Nm;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,ym},Dm=e=>{if(!e||!e.state)return Nm;const t=e.state;return t.wsize=0,t.whave=0,t.wnext=0,Fm(e)},Bm=(e,t)=>{let i;if(!e||!e.state)return Nm;const n=e.state;return t<0?(i=0,t=-t):(i=1+(t>>4),t<48&&(t&=15)),t&&(t<8||t>15)?Nm:(null!==n.window&&n.wbits!==t&&(n.window=null),n.wrap=i,n.wbits=t,Dm(e))},Lm=(e,t)=>{if(!e)return Nm;const i=new Em;e.state=i,i.window=null;const n=Bm(e,t);return n!==ym&&(e.state=null),n};let Mm,Tm,Rm=!0;const $m=e=>{if(Rm){Mm=new Int32Array(512),Tm=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(gm(1,e.lens,0,288,Mm,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;gm(2,e.lens,0,32,Tm,0,e.work,{bits:5}),Rm=!1}e.lencode=Mm,e.lenbits=9,e.distcode=Tm,e.distbits=5},jm=(e,t,i,n)=>{let r;const o=e.state;return null===o.window&&(o.wsize=1<<o.wbits,o.wnext=0,o.whave=0,o.window=new Uint8Array(o.wsize)),n>=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.whave<o.wsize&&(o.whave+=r))),0};var Im={inflateReset:Dm,inflateReset2:Bm,inflateResetKeep:Fm,inflateInit:e=>Lm(e,15),inflateInit2:Lm,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,k=0;const A=new Uint8Array(4);let C,O;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 Nm;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=ym;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++]<<u,u+=8}if(2&i.wrap&&35615===l){i.check=0,A[0]=255&l,A[1]=l>>>8&255,i.check=Qh(i.check,A,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)!==Om){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<<i.wbits,e.adler=i.check=1,i.mode=512&l?10:12,l=0,u=0;break;case 2:for(;u<16;){if(0===s)break e;s--,l+=n[o++]<<u,u+=8}if(i.flags=l,(255&i.flags)!==Om){e.msg="unknown compression method",i.mode=30;break}if(57344&i.flags){e.msg="unknown header flags set",i.mode=30;break}i.head&&(i.head.text=l>>8&1),512&i.flags&&(A[0]=255&l,A[1]=l>>>8&255,i.check=Qh(i.check,A,2,0)),l=0,u=0,i.mode=3;case 3:for(;u<32;){if(0===s)break e;s--,l+=n[o++]<<u,u+=8}i.head&&(i.head.time=l),512&i.flags&&(A[0]=255&l,A[1]=l>>>8&255,A[2]=l>>>16&255,A[3]=l>>>24&255,i.check=Qh(i.check,A,4,0)),l=0,u=0,i.mode=4;case 4:for(;u<16;){if(0===s)break e;s--,l+=n[o++]<<u,u+=8}i.head&&(i.head.xflags=255&l,i.head.os=l>>8),512&i.flags&&(A[0]=255&l,A[1]=l>>>8&255,i.check=Qh(i.check,A,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++]<<u,u+=8}i.length=l,i.head&&(i.head.extra_len=l),512&i.flags&&(A[0]=255&l,A[1]=l>>>8&255,i.check=Qh(i.check,A,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=Qh(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<s);if(512&i.flags&&(i.check=Qh(i.check,n,p,o)),s-=p,o+=p,x)break e}else i.head&&(i.head.name=null);i.length=0,i.mode=8;case 8:if(4096&i.flags){if(0===s)break e;p=0;do{x=n[o+p++],i.head&&x&&i.length<65536&&(i.head.comment+=String.fromCharCode(x))}while(x&&p<s);if(512&i.flags&&(i.check=Qh(i.check,n,p,o)),s-=p,o+=p,x)break e}else i.head&&(i.head.comment=null);i.mode=9;case 9:if(512&i.flags){for(;u<16;){if(0===s)break e;s--,l+=n[o++]<<u,u+=8}if(l!==(65535&i.check)){e.msg="header crc mismatch",i.mode=30;break}l=0,u=0}i.head&&(i.head.hcrc=i.flags>>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++]<<u,u+=8}e.adler=i.check=Sm(l),l=0,u=0,i.mode=11;case 11:if(0===i.havedict)return e.next_out=a,e.avail_out=c,e.next_in=o,e.avail_in=s,i.hold=l,i.bits=u,xm;e.adler=i.check=1,i.mode=12;case 12:if(t===bm||t===vm)break e;case 13:if(i.last){l>>>=7&u,u-=7&u,i.mode=27;break}for(;u<3;){if(0===s)break e;s--,l+=n[o++]<<u,u+=8}switch(i.last=1&l,l>>>=1,u-=1,3&l){case 0:i.mode=14;break;case 1:if($m(i),i.mode=20,t===vm){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++]<<u,u+=8}if((65535&l)!=(l>>>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===vm)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++]<<u,u+=8}if(i.nlen=257+(31&l),l>>>=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<i.ncode;){for(;u<3;){if(0===s)break e;s--,l+=n[o++]<<u,u+=8}i.lens[S[i.have++]]=7&l,l>>>=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=gm(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<i.nlen+i.ndist;){for(;k=i.lencode[l&(1<<i.lenbits)-1],g=k>>>24,_=k>>>16&255,b=65535&k,!(g<=u);){if(0===s)break e;s--,l+=n[o++]<<u,u+=8}if(b<16)l>>>=g,u-=g,i.lens[i.have++]=b;else{if(16===b){for(O=g+2;u<O;){if(0===s)break e;s--,l+=n[o++]<<u,u+=8}if(l>>>=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(O=g+3;u<O;){if(0===s)break e;s--,l+=n[o++]<<u,u+=8}l>>>=g,u-=g,x=0,p=3+(7&l),l>>>=3,u-=3}else{for(O=g+7;u<O;){if(0===s)break e;s--,l+=n[o++]<<u,u+=8}l>>>=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=gm(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=gm(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===vm)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,dm(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;k=i.lencode[l&(1<<i.lenbits)-1],g=k>>>24,_=k>>>16&255,b=65535&k,!(g<=u);){if(0===s)break e;s--,l+=n[o++]<<u,u+=8}if(_&&0==(240&_)){for(v=g,y=_,w=b;k=i.lencode[w+((l&(1<<v+y)-1)>>v)],g=k>>>24,_=k>>>16&255,b=65535&k,!(v+g<=u);){if(0===s)break e;s--,l+=n[o++]<<u,u+=8}l>>>=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(O=i.extra;u<O;){if(0===s)break e;s--,l+=n[o++]<<u,u+=8}i.length+=l&(1<<i.extra)-1,l>>>=i.extra,u-=i.extra,i.back+=i.extra}i.was=i.length,i.mode=23;case 23:for(;k=i.distcode[l&(1<<i.distbits)-1],g=k>>>24,_=k>>>16&255,b=65535&k,!(g<=u);){if(0===s)break e;s--,l+=n[o++]<<u,u+=8}if(0==(240&_)){for(v=g,y=_,w=b;k=i.distcode[w+((l&(1<<v+y)-1)>>v)],g=k>>>24,_=k>>>16&255,b=65535&k,!(v+g<=u);){if(0===s)break e;s--,l+=n[o++]<<u,u+=8}l>>>=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(O=i.extra;u<O;){if(0===s)break e;s--,l+=n[o++]<<u,u+=8}i.offset+=l&(1<<i.extra)-1,l>>>=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++]<<u,u+=8}if(h-=c,e.total_out+=h,i.total+=h,h&&(e.adler=i.check=i.flags?Qh(i.check,r,h,a-h):Yh(i.check,r,h,a-h)),h=c,(i.flags?l:Sm(l))!==i.check){e.msg="incorrect data check",i.mode=30;break}l=0,u=0}i.mode=28;case 28:if(i.wrap&&i.flags){for(;u<32;){if(0===s)break e;s--,l+=n[o++]<<u,u+=8}if(l!==(4294967295&i.total)){e.msg="incorrect length check",i.mode=30;break}l=0,u=0}i.mode=29;case 29:N=wm;break e;case 30:N=km;break e;case 31:return Am;case 32:default:return Nm}return e.next_out=a,e.avail_out=c,e.next_in=o,e.avail_in=s,i.hold=l,i.bits=u,(i.wsize||h!==e.avail_out&&i.mode<30&&(i.mode<27||t!==_m))&&jm(e,e.output,e.next_out,h-e.avail_out),d-=e.avail_in,h-=e.avail_out,e.total_in+=d,e.total_out+=h,i.total+=h,i.wrap&&h&&(e.adler=i.check=i.flags?Qh(i.check,r,h,e.next_out-h):Yh(i.check,r,h,e.next_out-h)),e.data_type=i.bits+(i.last?64:0)+(12===i.mode?128:0)+(20===i.mode||15===i.mode?256:0),(0===d&&0===h||t===_m)&&N===ym&&(N=Cm),N},inflateEnd:e=>{if(!e||!e.state)return Nm;let t=e.state;return t.window&&(t.window=null),e.state=null,ym},inflateGetHeader:(e,t)=>{if(!e||!e.state)return Nm;const i=e.state;return 0==(2&i.wrap)?Nm:(i.head=t,t.done=!1,ym)},inflateSetDictionary:(e,t)=>{const i=t.length;let n,r,o;return e&&e.state?(n=e.state,0!==n.wrap&&11!==n.mode?Nm:11===n.mode&&(r=1,r=Yh(r,t,i,0),r!==n.check)?km:(o=jm(e,t,i,i),o?(n.mode=31,Am):(n.havedict=1,ym))):Nm},inflateInfo:"pako inflate (from Nodeca project)"};var Pm=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 zm=Object.prototype.toString,{Z_NO_FLUSH:Um,Z_FINISH:Wm,Z_OK:Hm,Z_STREAM_END:qm,Z_NEED_DICT:Vm,Z_STREAM_ERROR:Gm,Z_DATA_ERROR:Km,Z_MEM_ERROR:Xm}=tp;function Jm(e){this.options=Vp({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 Qp,this.strm.avail_out=0;let i=Im.inflateInit2(this.strm,t.windowBits);if(i!==Hm)throw new Error(ep[i]);if(this.header=new Pm,Im.inflateGetHeader(this.strm,this.header),t.dictionary&&("string"==typeof t.dictionary?t.dictionary=Jp(t.dictionary):"[object ArrayBuffer]"===zm.call(t.dictionary)&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(i=Im.inflateSetDictionary(this.strm,t.dictionary),i!==Hm)))throw new Error(ep[i])}Jm.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?Wm:Um,"[object ArrayBuffer]"===zm.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=Im.inflate(i,a),o===Vm&&r&&(o=Im.inflateSetDictionary(i,r),o===Hm?o=Im.inflate(i,a):o===Km&&(o=Vm));i.avail_in>0&&o===qm&&i.state.wrap>0&&0!==e[i.next_in];)Im.inflateReset(i),o=Im.inflate(i,a);switch(o){case Gm:case Km:case Vm:case Xm:return this.onEnd(o),this.ended=!0,!1}if(s=i.avail_out,i.next_out&&(0===i.avail_out||o===qm))if("string"===this.options.to){let e=Zp(i.output,i.next_out),t=i.next_out-e,r=Yp(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!==Hm||0!==s){if(o===qm)return o=Im.inflateEnd(this.strm),this.onEnd(o),this.ended=!0,!0;if(0===i.avail_in)break}}return!0},Jm.prototype.onData=function(e){this.chunks.push(e)},Jm.prototype.onEnd=function(e){e===Hm&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=Gp(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};var Ym,Zm,Qm={exports:{}},ef={exports:{}};Ym="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Zm={rotl:function(e,t){return e<<t|e>>>32-t},rotr:function(e,t){return e<<32-t|e>>>t},endian:function(e){if(e.constructor==Number)return 16711935&Zm.rotl(e,8)|4278255360&Zm.rotl(e,24);for(var t=0;t<e.length;t++)e[t]=Zm.endian(e[t]);return e},randomBytes:function(e){for(var t=[];e>0;e--)t.push(Math.floor(256*Math.random()));return t},bytesToWords:function(e){for(var t=[],i=0,n=0;i<e.length;i++,n+=8)t[n>>>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<e.length;i++)t.push((e[i]>>>4).toString(16)),t.push((15&e[i]).toString(16));return t.join("")},hexToBytes:function(e){for(var t=[],i=0;i<e.length;i+=2)t.push(parseInt(e.substr(i,2),16));return t},bytesToBase64:function(e){for(var t=[],i=0;i<e.length;i+=3)for(var n=e[i]<<16|e[i+1]<<8|e[i+2],r=0;r<4;r++)8*i+6*r<=8*e.length?t.push(Ym.charAt(n>>>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<e.length;n=++i%4)0!=n&&t.push((Ym.indexOf(e.charAt(i-1))&Math.pow(2,-2*n+8)-1)<<2*n|Ym.indexOf(e.charAt(i))>>>6-2*n);return t}},ef.exports=Zm;var tf={utf8:{stringToBytes:function(e){return tf.bin.stringToBytes(unescape(encodeURIComponent(e)))},bytesToString:function(e){return decodeURIComponent(escape(tf.bin.bytesToString(e)))}},bin:{stringToBytes:function(e){for(var t=[],i=0;i<e.length;i++)t.push(255&e.charCodeAt(i));return t},bytesToString:function(e){for(var t=[],i=0;i<e.length;i++)t.push(String.fromCharCode(e[i]));return t.join("")}}},nf=tf,rf=function(e){return null!=e&&(of(e)||function(e){return"function"==typeof e.readFloatLE&&"function"==typeof e.slice&&of(e.slice(0,0))}(e)||!!e._isBuffer)};function of(e){return!!e.constructor&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}!function(){var e=ef.exports,t=nf.utf8,i=rf,n=nf.bin,r=function(o,a){o.constructor==String?o=a&&"binary"===a.encoding?n.stringToBytes(o):t.stringToBytes(o):i(o)?o=Array.prototype.slice.call(o,0):Array.isArray(o)||o.constructor===Uint8Array||(o=o.toString());for(var s=e.bytesToWords(o),c=8*o.length,l=1732584193,u=-271733879,d=-1732584194,h=271733878,p=0;p<s.length;p++)s[p]=16711935&(s[p]<<8|s[p]>>>24)|4278255360&(s[p]<<24|s[p]>>>8);s[c>>>5]|=128<<c%32,s[14+(c+64>>>9<<4)]=c;var m=r._ff,f=r._gg,g=r._hh,_=r._ii;for(p=0;p<s.length;p+=16){var b=l,v=u,y=d,w=h;l=m(l,u,d,h,s[p+0],7,-680876936),h=m(h,l,u,d,s[p+1],12,-389564586),d=m(d,h,l,u,s[p+2],17,606105819),u=m(u,d,h,l,s[p+3],22,-1044525330),l=m(l,u,d,h,s[p+4],7,-176418897),h=m(h,l,u,d,s[p+5],12,1200080426),d=m(d,h,l,u,s[p+6],17,-1473231341),u=m(u,d,h,l,s[p+7],22,-45705983),l=m(l,u,d,h,s[p+8],7,1770035416),h=m(h,l,u,d,s[p+9],12,-1958414417),d=m(d,h,l,u,s[p+10],17,-42063),u=m(u,d,h,l,s[p+11],22,-1990404162),l=m(l,u,d,h,s[p+12],7,1804603682),h=m(h,l,u,d,s[p+13],12,-40341101),d=m(d,h,l,u,s[p+14],17,-1502002290),l=f(l,u=m(u,d,h,l,s[p+15],22,1236535329),d,h,s[p+1],5,-165796510),h=f(h,l,u,d,s[p+6],9,-1069501632),d=f(d,h,l,u,s[p+11],14,643717713),u=f(u,d,h,l,s[p+0],20,-373897302),l=f(l,u,d,h,s[p+5],5,-701558691),h=f(h,l,u,d,s[p+10],9,38016083),d=f(d,h,l,u,s[p+15],14,-660478335),u=f(u,d,h,l,s[p+4],20,-405537848),l=f(l,u,d,h,s[p+9],5,568446438),h=f(h,l,u,d,s[p+14],9,-1019803690),d=f(d,h,l,u,s[p+3],14,-187363961),u=f(u,d,h,l,s[p+8],20,1163531501),l=f(l,u,d,h,s[p+13],5,-1444681467),h=f(h,l,u,d,s[p+2],9,-51403784),d=f(d,h,l,u,s[p+7],14,1735328473),l=g(l,u=f(u,d,h,l,s[p+12],20,-1926607734),d,h,s[p+5],4,-378558),h=g(h,l,u,d,s[p+8],11,-2022574463),d=g(d,h,l,u,s[p+11],16,1839030562),u=g(u,d,h,l,s[p+14],23,-35309556),l=g(l,u,d,h,s[p+1],4,-1530992060),h=g(h,l,u,d,s[p+4],11,1272893353),d=g(d,h,l,u,s[p+7],16,-155497632),u=g(u,d,h,l,s[p+10],23,-1094730640),l=g(l,u,d,h,s[p+13],4,681279174),h=g(h,l,u,d,s[p+0],11,-358537222),d=g(d,h,l,u,s[p+3],16,-722521979),u=g(u,d,h,l,s[p+6],23,76029189),l=g(l,u,d,h,s[p+9],4,-640364487),h=g(h,l,u,d,s[p+12],11,-421815835),d=g(d,h,l,u,s[p+15],16,530742520),l=_(l,u=g(u,d,h,l,s[p+2],23,-995338651),d,h,s[p+0],6,-198630844),h=_(h,l,u,d,s[p+7],10,1126891415),d=_(d,h,l,u,s[p+14],15,-1416354905),u=_(u,d,h,l,s[p+5],21,-57434055),l=_(l,u,d,h,s[p+12],6,1700485571),h=_(h,l,u,d,s[p+3],10,-1894986606),d=_(d,h,l,u,s[p+10],15,-1051523),u=_(u,d,h,l,s[p+1],21,-2054922799),l=_(l,u,d,h,s[p+8],6,1873313359),h=_(h,l,u,d,s[p+15],10,-30611744),d=_(d,h,l,u,s[p+6],15,-1560198380),u=_(u,d,h,l,s[p+13],21,1309151649),l=_(l,u,d,h,s[p+4],6,-145523070),h=_(h,l,u,d,s[p+11],10,-1120210379),d=_(d,h,l,u,s[p+2],15,718787259),u=_(u,d,h,l,s[p+9],21,-343485551),l=l+b>>>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<<o|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<<o|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<<o|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<<o|s>>>32-o)+t},r._blocksize=16,r._digestsize=16,Qm.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 af,sf,cf=Qm.exports;(sf=af||(af={})).UP="up",sf.DOWN="down",sf.NORTH="north",sf.EAST="east",sf.SOUTH="south",sf.WEST="west";const lf={[af.UP]:[0,1,0],[af.DOWN]:[0,-1,0],[af.NORTH]:[0,0,-1],[af.EAST]:[1,0,0],[af.SOUTH]:[0,0,1],[af.WEST]:[-1,0,0]};var uf,df,hf,pf;function mf(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 ff(e){let t=null;return()=>(null==t&&(t=e()),t)}function gf(e,t,i){const n=e.get(t);if(n)return n;const r=i(t);return e.set(t,r),r}(hf=af||(af={})).ALL=[hf.UP,hf.DOWN,hf.NORTH,hf.EAST,hf.SOUTH,hf.WEST],hf.normal=function(e){return lf[e]},(df=uf||(uf={})).create=function(e,t,i){return[e,t,i]},df.ZERO=df.create(0,0,0),df.offset=function(e,t,i,n){return[e[0]+t,e[1]+i,e[2]+n]},df.towards=function(e,t){return df.offset(e,...af.normal(t))},df.equals=function(e,t){return e===t||e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]},df.magnitude=function(e){return e[0]*e[0]+e[1]*e[1]+e[2]*e[2]},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))?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},e.readEnum=function(e,t){return"string"!=typeof e?t[0]:t.includes(e)?e:t[0]}}(pf||(pf={}));const _f=class{constructor(e,t){if(this.namespace=e,this.path=t,!e.match(/^[a-z0-9._-]+$/))throw new Error(`Non [a-z0-9._-] character in namespace of ${e}:${t}`);if(!t.match(/^[a-z0-9/._-]+$/))throw new Error(`Non [a-z0-9/._-] character in path of ${e}:${t}`)}equals(e){return this===e||this.namespace===e.namespace&&this.path===e.path}toString(){return`${this.namespace}:${this.path}`}static create(e){return new _f(this.DEFAULT_NAMESPACE,e)}static parse(e){const t=e.indexOf(this.SEPARATOR);if(t>=0){const i=t>=1?e.substring(0,t):this.DEFAULT_NAMESPACE,n=e.substring(t+1);return new _f(i,n)}return new _f(this.DEFAULT_NAMESPACE,e)}};let bf=_f;bf.DEFAULT_NAMESPACE="minecraft",bf.SEPARATOR=":";var vf=Object.defineProperty,yf=Object.defineProperties,wf=Object.getOwnPropertyDescriptors,xf=Object.getOwnPropertySymbols,Nf=Object.prototype.hasOwnProperty,kf=Object.prototype.propertyIsEnumerable,Af=(e,t,i)=>t in e?vf(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i;const Cf=class{constructor(e,t={}){this.properties=t,this.name="string"==typeof e?bf.parse(e):e}getName(){return this.name}getProperties(){return this.properties}getProperty(e){return this.properties[e]}isFluid(){return this.is(Cf.WATER)||this.is(Cf.LAVA)}equals(e){return!!this.name.equals(e.name)&&Object.keys(this.properties).every((t=>e.properties[t]===this.properties[t]))}is(e){return this.name.equals(e.name)}toString(){return 0===Object.keys(this.properties).length?this.name.toString():`${this.name.toString()}[${Object.entries(this.properties).map((([e,t])=>e+"="+t)).join(",")}]`}static fromNbt(e){const t=bf.parse(mf(e.value,"Name","string")),i=function(e,t){try{return e()}catch(i){return t}}((()=>mf(e.value,"Properties","compound")),{}),n=Object.keys(i).reduce(((e,t)=>{return n=((e,t)=>{for(var i in t||(t={}))Nf.call(t,i)&&Af(e,i,t[i]);if(xf)for(var i of xf(t))kf.call(t,i)&&Af(e,i,t[i]);return e})({},e),r={[t]:mf(i,t,"string")},yf(n,wf(r));var n,r}),{});return new Cf(t,n)}static fromJson(e){var t,i;const n=null!=(t=pf.readObject(e))?t:{},r=bf.parse(null!=(i=pf.readString(n.Name))?i:Cf.STONE.name.toString()),o=pf.readMap(n.Properties,(e=>{var t;return null!=(t=pf.readString(e))?t:""}));return new Cf(r,o)}};let Of=Cf;Of.AIR=new Cf(bf.create("air")),Of.STONE=new Cf(bf.create("stone")),Of.WATER=new Cf(bf.create("water"),{level:"0"}),Of.LAVA=new Cf(bf.create("lava"),{level:"0"});const Sf=class{constructor(e){this.minY=e,this.storage=Array(Sf.SIZE).fill(0),this.palette=[Of.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])?n:Of.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}};let Ef=Sf;Ef.WIDTH=16,Ef.SIZE=Sf.WIDTH*Sf.WIDTH*Sf.WIDTH;class Ff{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))?t:Of.AIR}setBlockState(e,t){const[i,n,r]=e,o=this.getSectionIndex(n);let a=this.sections[o];if(null===a){if(t.equals(Of.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 Ef(this.minSection+e)),this.sections[e]}}var Df,Bf;!function(e){function t(e,t){return BigInt(4294967295&e)|BigInt(4294967295&t)<<BigInt(32)}e.create=function(e,t){return[e,t]},e.fromBlockPos=function(e){return[e[0]>>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)}}(Df||(Df={})),function(e){function t(e){return{value:()=>e,key:()=>{}}}function i(e,t){return{value:()=>e.getOrThrow(t),key:()=>t}}e.parser=function(e,n){return r=>"string"==typeof r?i(e,bf.parse(r)):t(n(r))},e.direct=t,e.reference=i}(Bf||(Bf={}));const Lf=class{constructor(e,t){this.key=e,this.parser=t,this.storage=new Map,this.builtin=new Map}register(e,t,i){return this.storage.set(e.toString(),t),i&&this.builtin.set(e.toString(),t),Bf.reference(this,e)}keys(){return[...this.storage.keys()].map((e=>bf.parse(e)))}get(e){return this.storage.get(e.toString())}getOrThrow(e){const t=this.storage.get(e.toString());if(void 0===t)throw new Error(`Missing key in ${this.key.toString()}: ${e.toString()}`);return t}parse(e){if(!this.parser)throw new Error(`No parser exists for ${this.key.toString()}`);return this.parser(e)}clear(){this.storage.clear();for(const[e,t]of this.builtin.entries())this.storage.set(e,t);return this}assign(e){if(!this.key.equals(e.key))throw new Error(`Cannot assign registry of type ${e.key.toString()} to registry of type ${this.key.toString()}`);for(const t of e.keys())this.storage.set(t.toString(),e.getOrThrow(t));return this}cloneEmpty(){return new Lf(this.key,this.parser)}};let Mf=Lf;function Tf(e){return e*e}function Rf(e,t,i){return Math.max(t,Math.min(i,e))}function $f(e,t,i){return t+e*(i-t)}function jf(e,t,i,n,r,o){return $f(t,$f(e,i,n),$f(e,r,o))}function If(e,t,i){return 0===e?t():1===e?i():t()+e*(i()-t())}function Pf(e,t,i,n,r,o){return If(t,(()=>If(e,i,n)),(()=>If(e,r,o)))}function zf(e,t,i){return i<0?e:i>1?t:$f(i,e,t)}function Uf(e,t,i){return(e-t)/(i-t)}function Wf(e){return e*e*e*(e*(6*e-15)+10)}function Hf(e,t,i,n,r){return $f(Uf(e,t,i),n,r)}function qf(e,t,i,n,r){return zf(n,r,Uf(e,t,i))}function Vf(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 Gf(e,t,i,n,r,o,a,s){return BigInt(e)<<BigInt(56)|BigInt(t)<<BigInt(48)|BigInt(i)<<BigInt(40)|BigInt(n)<<BigInt(32)|BigInt(r)<<BigInt(24)|BigInt(o)<<BigInt(16)|BigInt(a)<<BigInt(8)|BigInt(s)}var Kf;Mf.REGISTRY=new Lf(bf.create("root")),function(e){e.fromJson=function e(n,r){var o,a,s,c;if("number"==typeof n)return new t(n);const l=null!=(o=pf.readObject(n))?o:{},u=new i(r(l.coordinate)),d=null!=(a=pf.readArray(l.points,(e=>{var t;return null!=(t=pf.readObject(e))?t:{}})))?a:[];if(0===d.length)return new t(0);for(const t of d){const i=null!=(s=pf.readNumber(t.location))?s:0,n=e(t.value,r),o=null!=(c=pf.readNumber(t.derivative))?c:0;u.addPoint(i,n,o)}return u};class t{constructor(e){this.value=e}compute(){return this.value}min(){return this.value}max(){return this.value}mapAll(){return this}}e.Constant=t;class i{constructor(e,t=[],i=[],n=[]){this.coordinate=e,this.locations=t,this.values=i,this.derivatives=n}compute(e){const t=this.coordinate.compute(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<this.locations[e]))-1,n=this.locations.length-1;if(i<0)return this.values[0].compute(e)+this.derivatives[0]*(t-this.locations[0]);if(i===n)return this.values[n].compute(e)+this.derivatives[n]*(t-this.locations[n]);const r=this.locations[i],o=this.locations[i+1],a=this.derivatives[i],s=this.derivatives[i+1],c=(t-r)/(o-r),l=this.values[i].compute(e),u=this.values[i+1].compute(e),d=a*(o-r)-(u-l),h=-s*(o-r)+(u-l);return $f(c,l,u)+c*(1-c)*$f(c,d,h)}min(){return Math.min(...this.values.map((e=>e.min())))}max(){return Math.max(...this.values.map((e=>e.max())))}mapAll(e){return new i(e(this.coordinate),this.locations,this.values.map((t=>t.mapAll(e))),this.derivatives)}addPoint(t,i,n=0){return this.locations.push(t),this.values.push("number"==typeof i?new e.Constant(i):i),this.derivatives.push(n),this}}e.MultiPoint=i}(Kf||(Kf={}));const Xf=class{constructor(e){this.seed=BigInt(0),this.setSeed(e)}fork(){return new Xf(this.nextLong())}forkPositional(){return new Yf(this.nextLong())}setSeed(e){this.seed=e^Xf.MULTIPLIER&Xf.MODULUS_MASK}advance(){this.seed=this.seed*Xf.MULTIPLIER+Xf.INCREMENT&Xf.MODULUS_MASK}consume(e){for(let t=0;t<e;t+=1)this.advance()}next(e){this.advance();const t=Number(this.seed>>BigInt(Xf.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(32))+BigInt(this.next(32))}nextFloat(){return this.next(24)*Xf.FLOAT_MULTIPLIER}nextDouble(){const e=this.next(30);return this.advance(),e*Xf.DOUBLE_MULTIPLIER}};let Jf=Xf;Jf.MODULUS_BITS=48,Jf.MODULUS_MASK=BigInt("281474976710655"),Jf.MULTIPLIER=BigInt("25214903917"),Jf.INCREMENT=BigInt("11"),Jf.FLOAT_MULTIPLIER=1/Math.pow(2,24),Jf.DOUBLE_MULTIPLIER=1/Math.pow(2,30);class Yf{constructor(e){this.seed=e}at(e,t,i){const n=Vf(e,t,i);return new Jf(n^this.seed)}fromHashOf(e){const t=cf(e,{asBytes:!0}),i=Gf(t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]);return new Jf(i^this.seed)}seedKey(){return[this.seed,BigInt(0)]}}const Zf=class{constructor(e){this.seed=[BigInt(0),BigInt(0)],this.seed=e}static create(e){return new Zf(Zf.upgradeSeedTo128bit(e))}static mixStafford13(e){return((e=((e=(e^e>>Zf.BIGINT_30)*Zf.STAFFORD_1&Zf.MAX_ULONG)^e>>Zf.BIGINT_27)*Zf.STAFFORD_2&Zf.MAX_ULONG)^e>>Zf.BIGINT_31)&Zf.MAX_ULONG}static upgradeSeedTo128bit(e){e<0&&(e+=Zf.POW2_60);const t=e^Zf.SILVER_RATIO_64,i=t+Zf.GOLDEN_RATIO_64&Zf.MAX_ULONG;return[Zf.mixStafford13(t),Zf.mixStafford13(i)]}static rotateLeft(e,t){return e<<t&Zf.MAX_ULONG|e>>Zf.BIGINT_64-t}setSeed(e){this.seed=Zf.upgradeSeedTo128bit(e)}fork(){return new Zf([this.next(),this.next()])}forkPositional(){return new eg(this.next(),this.next())}next(){const e=this.seed[0];let t=this.seed[1];const i=Zf.rotateLeft(e+t&Zf.MAX_ULONG,Zf.BIGINT_17)+e&Zf.MAX_ULONG;return t^=e,this.seed=[Zf.rotateLeft(e,Zf.BIGINT_49)^t^t<<Zf.BIGINT_21&Zf.MAX_ULONG,Zf.rotateLeft(t,Zf.BIGINT_28)],i}nextLong(){let e=this.next();return e>Zf.POW2_63&&(e-=Zf.POW2_60),e}consume(e){let t=this.seed[0],i=this.seed[1];for(let n=0;n<e;n+=1)i^=t,t=Zf.rotateLeft(t,Zf.BIGINT_49)^i^i<<Zf.BIGINT_21,i=Zf.rotateLeft(i,Zf.BIGINT_28);this.seed=[t,i]}nextBits(e){return this.next()>>BigInt(64-e)}nextInt(e){let t=this.next()&Zf.MAX_UINT;if(e){const i=BigInt(e);let n=t*i,r=n&Zf.MAX_UINT;if(r<i){const e=((~i&Zf.MAX_UINT)+Zf.BIGINT_1)%i;for(;r<e;)t=this.next()&Zf.MAX_UINT,n=t*i,r=n&Zf.MAX_UINT}const o=n>>Zf.BIGINT_32;return Number(o)}{let e=Number(t);return e>=2147483648&&(e-=4294967296),e}}nextFloat(){return Number(this.nextBits(24))*Zf.FLOAT_MULTIPLIER}nextDouble(){return Number(this.nextBits(53))*Zf.DOUBLE_MULTIPLIER}parityConfigString(){return"seedLo: "+this.seed[0]+", seedHi: "+this.seed[1]}};let Qf=Zf;Qf.SILVER_RATIO_64=BigInt("7640891576956012809"),Qf.GOLDEN_RATIO_64=BigInt("-7046029254386353131"),Qf.FLOAT_MULTIPLIER=1/Math.pow(2,24),Qf.DOUBLE_MULTIPLIER=11102230246251565e-32,Qf.BIGINT_1=BigInt(1),Qf.BIGINT_17=BigInt(17),Qf.BIGINT_21=BigInt(21),Qf.BIGINT_27=BigInt(27),Qf.BIGINT_28=BigInt(28),Qf.BIGINT_30=BigInt(30),Qf.BIGINT_31=BigInt(31),Qf.BIGINT_32=BigInt(32),Qf.BIGINT_49=BigInt(49),Qf.BIGINT_64=BigInt(64),Qf.STAFFORD_1=BigInt("-4658895280553007687"),Qf.STAFFORD_2=BigInt("-7723592293110705685"),Qf.MAX_ULONG=BigInt("0xFFFFFFFFFFFFFFFF"),Qf.POW2_60=BigInt("0x10000000000000000"),Qf.POW2_63=BigInt("0x8000000000000000"),Qf.MAX_UINT=BigInt(4294967295);class eg{constructor(e,t){this.seedLo=e,this.seedHi=t}at(e,t,i){const n=Vf(e,t,i)^this.seedLo;return new Qf([n,this.seedHi])}fromHashOf(e){const t=cf(e,{asBytes:!0}),i=Gf(t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),n=Gf(t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15]);return new Qf([i^this.seedLo,n^this.seedHi])}seedKey(){return[this.seedLo,this.seedHi]}}const tg=class{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)*tg.F2,a=Math.floor(e+o),s=e-(a-(i=(a+(n=Math.floor(t+o)))*tg.G2));let c,l;s>(r=t-(n-i))?(c=1,l=0):(c=0,l=1);const u=s-c+tg.G2,d=r-l+tg.G2,h=s-1+2*tg.G2,p=r-1+2*tg.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):l<u?(d=0,h=0,p=1,m=0,f=1,g=1):c<u?(d=0,h=1,p=0,m=0,f=1,g=1):(d=0,h=1,p=0,m=1,f=1,g=0);const _=c-d+.16666666666666666,b=l-h+.16666666666666666,v=u-p+.16666666666666666,y=c-m+.3333333333333333,w=l-f+.3333333333333333,x=u-g+.3333333333333333,N=c-.5,k=l-.5,A=u-.5,C=255&r,O=255&o,S=255&a,E=this.P(C+this.P(O+this.P(S)))%12,F=this.P(C+d+this.P(O+h+this.P(S+p)))%12,D=this.P(C+m+this.P(O+f+this.P(S+g)))%12,B=this.P(C+1+this.P(O+1+this.P(S+1)))%12;return 32*(this.getCornerNoise3D(E,c,l,u,.6)+this.getCornerNoise3D(F,_,b,v,.6)+this.getCornerNoise3D(D,y,w,x,.6)+this.getCornerNoise3D(B,N,k,A,.6))}P(e){return this.p[255&e]}getCornerNoise3D(e,t,i,n,r){let o,a=r-t*t-i*i-n*n;return a<0?o=0:(a*=a,o=a*a*tg.gradDot(e,t,i,n)),o}static gradDot(e,t,i,n){const r=tg.GRADIENT[15&e];return r[0]*t+r[1]*i+r[2]*n}};let ig=tg;ig.GRADIENT=[[1,1,0],[-1,1,0],[1,-1,0],[-1,-1,0],[1,0,1],[-1,0,1],[1,0,-1],[-1,0,-1],[0,1,1],[0,-1,1],[0,1,-1],[0,-1,-1],[1,1,0],[0,-1,1],[-1,1,0],[0,-1,-1]],ig.F2=.5*(Math.sqrt(3)-1),ig.G2=(3-Math.sqrt(3))/6;class ng{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>127?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<h?r:h;m=Math.floor(e/n+1e-7)*n}return this.sampleAndLerp(c,l,u,d,h-m,p,h)}sampleAndLerp(e,t,i,n,r,o,a){const s=this.P(e),c=this.P(e+1),l=this.P(s+t),u=this.P(s+t+1),d=this.P(c+t),h=this.P(c+t+1),p=ig.gradDot(this.P(l+i),n,r,o),m=ig.gradDot(this.P(d+i),n-1,r,o),f=ig.gradDot(this.P(u+i),n,r-1,o),g=ig.gradDot(this.P(h+i),n-1,r-1,o),_=ig.gradDot(this.P(l+i+1),n,r,o-1),b=ig.gradDot(this.P(d+i+1),n-1,r,o-1),v=ig.gradDot(this.P(u+i+1),n,r-1,o-1),y=ig.gradDot(this.P(h+i+1),n-1,r-1,o-1);return function(e,t,i,n,r,o,a,s,c,l,u){return $f(i,jf(e,t,n,r,o,a),jf(e,t,s,c,l,u))}(Wf(n),Wf(a),Wf(o),p,m,f,g,_,b,v,y)}P(e){return 255&this.p[255&e]}}class rg{constructor(e,t,i){if(e instanceof Qf){const n=e.forkPositional();this.noiseLevels=Array(i.length);for(let e=0;e<i.length;e++)if(0!==i[e]){const i=t+e;this.noiseLevels[e]=new ng(n.fromHashOf("octave_"+i))}}else{if(1-t<i.length)throw new Error("Positive octaves are not allowed when using LegacyRandom");this.noiseLevels=Array(i.length);for(let n=-t;n>=0;n-=1)n<i.length&&0!==i[n]?this.noiseLevels[n]=new ng(e):e.consume(262)}this.amplitudes=i,this.lowestFreqInputFactor=Math.pow(2,t),this.lowestFreqValueFactor=Math.pow(2,i.length-1)/(Math.pow(2,i.length)-1),this.maxValue=this.edgeValue(2)}sample(e,t,i,n=0,r=0,o=!1){let a=0,s=this.lowestFreqInputFactor,c=this.lowestFreqValueFactor;for(let l=0;l<this.noiseLevels.length;l+=1){const u=this.noiseLevels[l];u&&(a+=this.amplitudes[l]*c*u.sample(rg.wrap(e*s),o?-u.yo:rg.wrap(t*s),rg.wrap(i*s),n*s,r*s)),s*=2,c/=2}return a}getOctaveNoise(e){return this.noiseLevels[this.noiseLevels.length-1-e]}edgeValue(e){let t=0,i=this.lowestFreqValueFactor;for(let n=0;n<this.noiseLevels.length;n+=1)this.noiseLevels[n]&&(t+=this.amplitudes[n]*e*i),i/=2;return t}static wrap(e){return e-33554432*Math.floor(e/33554432+.5)}}class og{constructor(e,t,i,n){this.cellWidth=i,this.cellHeight=n,this.minLimitNoise=new rg(e,-15,[1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0]),this.maxLimitNoise=new rg(e,-15,[1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0]),this.mainNoise=new rg(e,-7,[1,1,1,1,1,0,0,0]),this.xzScale=684.412*t.xzScale,this.yScale=684.412*t.yScale,this.xzMainScale=this.xzScale/t.xzFactor,this.yMainScale=this.yScale/t.yFactor,this.maxValue=this.minLimitNoise.edgeValue(this.yScale+2)}sample(e,t,i){let n;e=Math.floor(e/this.cellWidth),t=Math.floor(t/this.cellHeight),i=Math.floor(i/this.cellWidth);let r=0,o=1;for(let c=0;c<8;c+=1){if(n=this.mainNoise.getOctaveNoise(c),n){const a=this.xzMainScale*o,s=this.yMainScale*o,c=rg.wrap(e*a),l=rg.wrap(t*s),u=rg.wrap(i*a);r+=n.sample(c,l,u,s,t*s)/o}o/=2}r=(r/10+1)/2,o=1;let a=0,s=0;for(let c=0;c<16;c+=1){const l=this.xzScale*o,u=this.yScale*o,d=rg.wrap(e*l),h=rg.wrap(t*u),p=rg.wrap(i*l);r<1&&(n=this.minLimitNoise.getOctaveNoise(c))&&(a+=n.sample(d,h,p,u,t*u)/o),r>0&&(n=this.maxLimitNoise.getOctaveNoise(c))&&(s+=n.sample(d,h,p,u,t*u)/o),o/=2}return zf(a/512,s/512,r)/128}}var ag;(ag||(ag={})).fromJson=function(e){var t,i,n,r,o;const a=null!=(t=pf.readObject(e))?t:{};return{xzScale:null!=(i=pf.readNumber(a.xz_scale))?i:1,yScale:null!=(n=pf.readNumber(a.y_scale))?n:1,xzFactor:null!=(r=pf.readNumber(a.xz_factor))?r:80,yFactor:null!=(o=pf.readNumber(a.y_factor))?o:80}};const sg=class{constructor(e,{firstOctave:t,amplitudes:i}){this.first=new rg(e,t,i),this.second=new rg(e,t,i);let n=1/0,r=-1/0;for(let a=0;a<i.length;a+=1)0!==i[a]&&(n=Math.min(n,a),r=Math.max(r,a));const o=.1*(1+1/(r-n+1));this.valueFactor=1/6/o,this.maxValue=(this.first.maxValue+this.second.maxValue)*this.valueFactor}sample(e,t,i){const n=e*sg.INPUT_FACTOR,r=t*sg.INPUT_FACTOR,o=i*sg.INPUT_FACTOR;return(this.first.sample(e,t,i)+this.second.sample(n,r,o))*this.valueFactor}};let cg=sg;var lg,ug,dg;cg.INPUT_FACTOR=1.0181268882175227,(ug=lg||(lg={})).create=function(e,t){return{firstOctave:e,amplitudes:t}},ug.fromJson=function(e){var t,i,n;const r=null!=(t=pf.readObject(e))?t:{};return{firstOctave:null!=(i=pf.readInt(r.firstOctave))?i:0,amplitudes:null!=(n=pf.readArray(r.amplitudes,(e=>{var t;return null!=(t=pf.readNumber(e))?t:0})))?n:[]}},(dg||(dg={})).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}};const hg=class{constructor(e,t,i){this.offsetSampler=e,this.factorSampler=t,this.jaggednessSampler=i}static extractor(e){return{compute:t=>t[e]}}static fromJson(e){var t;const i=null!=(t=pf.readObject(e))?t:{};return new hg(Kf.fromJson(i.offset,this.EXTRACTOR),Kf.fromJson(i.factor,this.EXTRACTOR),Kf.fromJson(i.jaggedness,this.EXTRACTOR))}offset(e){return this.offsetSampler.compute(e)+hg.GLOBAL_OFFSET}factor(e){return this.factorSampler.compute(e)}jaggedness(e){return this.jaggednessSampler.compute(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)}};let pg=hg;var mg,fg,gg,_g,bg,vg,yg;pg.GLOBAL_OFFSET=-.50375,pg.EXTRACTOR=e=>{var t;const i=null!=(t=pf.readString(e))?t:"continents";return hg.extractor(i)},pg.CONTINENTS=hg.extractor("continents"),pg.EROSION=hg.extractor("erosion"),pg.WEIRDNESS=hg.extractor("weirdness"),pg.RIDGES=hg.extractor("ridges"),function(e){function t(e){return e.ySize<<2}e.fromJson=function(e){var t,i,n,r,o;const a=null!=(t=pf.readObject(e))?t:{};return{minY:null!=(i=pf.readInt(a.min_y))?i:0,height:null!=(n=pf.readInt(a.height))?n:256,xzSize:null!=(r=pf.readInt(a.size_horizontal))?r:1,ySize:null!=(o=pf.readInt(a.size_vertical))?o:1,sampling:ag.fromJson(a.sampling),topSlide:fg.fromJson(a.top_slide),bottomSlide:fg.fromJson(a.bottom_slide),terrainShaper:pg.fromJson(a.terrain_shaper)}},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))},e.applySlides=function(i,n,r){const o=Math.floor(r/t(i))-e.minCellY(i);return n=fg.apply(i.topSlide,n,e.cellCountY(i)-o),fg.apply(i.bottomSlide,n,o)}}(mg||(mg={})),(gg=fg||(fg={})).fromJson=function(e){var t,i,n,r;const o=null!=(t=pf.readObject(e))?t:{};return{target:null!=(i=pf.readNumber(o.target))?i:0,size:null!=(n=pf.readInt(o.size))?n:0,offset:null!=(r=pf.readInt(o.offset))?r:0}},gg.apply=function(e,t,i){if(e.size<=0)return t;const n=(i-e.offset)/e.size;return zf(e.target,t,n)},function(e){function t(e){const t=new Mf(bf.create(e));return Mf.REGISTRY.register(t.key,t),t}e.NOISE=t("worldgen/noise"),e.DENSITY_FUNCTION=t("worldgen/density_function")}(_g||(_g={}));class wg{minValue(){return-this.maxValue()}mapAll(e){return e.map(this)}}!function(e){e.context=function(e,t,i){return{x:e,y:t,z:i}};class t extends e{constructor(e){super(),this.input=e}compute(e){return this.transform(e,this.input.compute(e))}}const i=Bf.parser(_g.NOISE,lg.fromJson);e.fromJson=function e(t,n=e){var c,_,w,O,R,$,j,I,P,z,U,W,H,q,V,G,K,X,J;if("string"==typeof t)return new o(Bf.reference(_g.DENSITY_FUNCTION,bf.parse(t)));if("number"==typeof t)return new r(t);const Y=null!=(c=pf.readObject(t))?c:{},Z=null==(_=pf.readString(Y.type))?void 0:_.replace(/^minecraft:/,"");switch(Z){case"blend_alpha":return new a(1,0,1);case"blend_offset":case"beardifier":return new a(0,-1/0,1/0);case"old_blended_noise":return new s;case"flat_cache":return new l(n(Y.argument));case"interpolated":return new p(n(Y.argument));case"cache_2d":return new d(n(Y.argument));case"cache_once":return new h(n(Y.argument));case"cache_all_in_cell":return new u(n(Y.argument));case"noise":return new m(null!=(w=pf.readNumber(Y.xz_scale))?w:1,null!=(O=pf.readNumber(Y.y_scale))?O:1,i(Y.noise));case"end_islands":return new f;case"weird_scaled_sampler":return new b(n(Y.input),pf.readEnum(Y.rarity_value_mapper,g),i(Y.noise));case"shifted_noise":return new v(n(Y.shift_x),n(Y.shift_y),n(Y.shift_z),null!=(R=pf.readNumber(Y.xz_scale))?R:1,null!=($=pf.readNumber(Y.y_scale))?$:1,i(Y.noise));case"range_choice":return new y(n(Y.input),null!=(j=pf.readNumber(Y.min_inclusive))?j:0,null!=(I=pf.readNumber(Y.max_exclusive))?I:1,n(Y.when_in_range),n(Y.when_out_of_range));case"shift_a":return new x(i(Y.argument));case"shift_b":return new N(i(Y.argument));case"shift":return new k(i(Y.argument));case"blend_density":return new A(n(Y.argument));case"clamp":return new C(n(Y.input),null!=(P=pf.readNumber(Y.min))?P:0,null!=(z=pf.readNumber(Y.max))?z:1);case"abs":case"square":case"cube":case"half_negative":case"quarter_negative":case"squeeze":return new S(Z,n(Y.argument));case"slide":return new E(n(Y.argument));case"add":case"mul":case"min":case"max":return new D(pf.readEnum(Z,F),n(Y.argument1),n(Y.argument2));case"spline":return new B(Kf.fromJson(Y.spline,n),null!=(U=pf.readNumber(Y.min_value))?U:0,null!=(W=pf.readNumber(Y.max_value))?W:1);case"terrain_shaper_spline":return new M(n(Y.continentalness),n(Y.erosion),n(Y.weirdness),pf.readEnum(Y.spline,L),null!=(H=pf.readNumber(Y.min_value))?H:0,null!=(q=pf.readNumber(Y.max_value))?q:1);case"constant":return new r(null!=(V=pf.readNumber(Y.argument))?V:0);case"y_clamped_gradient":return new T(null!=(G=pf.readInt(Y.from_y))?G:-4064,null!=(K=pf.readInt(Y.to_y))?K:4062,null!=(X=pf.readNumber(Y.from_value))?X:-4064,null!=(J=pf.readNumber(Y.to_value))?J:4062)}return r.ZERO};const n=class extends e{constructor(e){super(),this.value=e}compute(){return this.value}minValue(){return this.value}maxValue(){return this.value}};let r=n;r.ZERO=new n(0),r.ONE=new n(1),e.Constant=r;class o extends e{constructor(e){super(),this.holder=e}compute(e){return this.holder.value().compute(e)}minValue(){return this.holder.value().minValue()}maxValue(){return this.holder.value().maxValue()}}e.HolderHolder=o;class a extends e.Constant{constructor(e,t,i){super(e),this.min=t,this.max=i}minValue(){return this.min}maxValue(){return this.max}}e.ConstantMinMax=a;class s extends e{constructor(e){super(),this.blendedNoise=null!=e?e:new og(Qf.create(BigInt(0)),{xzScale:1,yScale:1,xzFactor:80,yFactor:160},4,8)}compute(e){return this.blendedNoise.sample(e.x,e.y,e.z)}maxValue(){return this.blendedNoise.maxValue}}e.OldBlendedNoise=s;class c extends e{constructor(e){super(),this.wrapped=e}minValue(){return this.wrapped.minValue()}maxValue(){return this.wrapped.maxValue()}}class l extends c{constructor(e){super(e),this.lastValue=0}compute(t){const i=t.x>>2,n=t.z>>2;return this.lastQuartX===i&&this.lastQuartZ===n||(this.lastValue=this.wrapped.compute(e.context(i<<2,0,n<<2)),this.lastQuartX=i,this.lastQuartZ=n),this.lastValue}mapAll(e){return e.map(new l(this.wrapped.mapAll(e)))}}e.FlatCache=l;class u extends c{constructor(e){super(e)}compute(e){return this.wrapped.compute(e)}mapAll(e){return e.map(new u(this.wrapped.mapAll(e)))}}e.CacheAllInCell=u;class d extends c{constructor(e){super(e),this.lastValue=0}compute(e){const t=e.x,i=e.z;return this.lastBlockX===t&&this.lastBlockZ===i||(this.lastValue=this.wrapped.compute(e),this.lastBlockX=t,this.lastBlockZ=i),this.lastValue}mapAll(e){return e.map(new d(this.wrapped.mapAll(e)))}}e.Cache2D=d;class h extends c{constructor(e){super(e),this.lastValue=0}compute(e){const t=e.x,i=e.y,n=e.z;return this.lastBlockX===t&&this.lastBlockY===i&&this.lastBlockZ===n||(this.lastValue=this.wrapped.compute(e),this.lastBlockX=t,this.lastBlockY=i,this.lastBlockZ=n),this.lastValue}mapAll(e){return e.map(new h(this.wrapped.mapAll(e)))}}e.CacheOnce=h;class p extends c{constructor(e,t=4,i=4){super(e),this.cellWidth=t,this.cellHeight=i,this.values=new Map}compute({x:e,y:t,z:i}){const n=this.cellWidth,r=this.cellHeight,o=(e%n+n)%n/n,a=(t%r+r)%r/r,s=(i%n+n)%n/n,c=Math.floor(e/n)*n,l=Math.floor(t/r)*r,u=Math.floor(i/n)*n;return function(e,t,i,n,r,o,a,s,c,l,u){return If(i,(()=>Pf(e,t,n,r,o,a)),(()=>Pf(e,t,s,c,l,u)))}(o,a,s,(()=>this.computeCorner(c,l,u)),(()=>this.computeCorner(c+n,l,u)),(()=>this.computeCorner(c,l+r,u)),(()=>this.computeCorner(c+n,l+r,u)),(()=>this.computeCorner(c,l,u+n)),(()=>this.computeCorner(c+n,l,u+n)),(()=>this.computeCorner(c,l+r,u+n)),(()=>this.computeCorner(c+n,l+r,u+n)))}computeCorner(t,i,n){return gf(this.values,`${t} ${i} ${n}`,(()=>this.wrapped.compute(e.context(t,i,n))))}mapAll(e){return e.map(new p(this.wrapped.mapAll(e)))}withCellSize(e,t){return new p(this.wrapped,e,t)}}e.Interpolated=p;class m extends e{constructor(e,t,i,n){super(),this.xzScale=e,this.yScale=t,this.noiseData=i,this.noise=n}compute(e){var t,i;return null!=(i=null==(t=this.noise)?void 0:t.sample(e.x*this.xzScale,e.y*this.yScale,e.z*this.xzScale))?i:0}maxValue(){var e,t;return null!=(t=null==(e=this.noise)?void 0:e.maxValue)?t:2}}e.Noise=m;class f extends e{compute(){return 0}minValue(){return-.84375}maxValue(){return.5625}}const g=["type_1","type_2"],_=class extends t{constructor(e,t,i,n){super(e),this.rarityValueMapper=t,this.noiseData=i,this.noise=n,this.mapper=_.ValueMapper[this.rarityValueMapper]}transform(e,t){if(!this.noise)return 0;const i=this.mapper(t);return i*Math.abs(this.noise.sample(e.x/i,e.y/i,e.z/i))}mapAll(e){return e.map(new _(this.input.mapAll(e),this.rarityValueMapper,this.noiseData,this.noise))}minValue(){return 0}maxValue(){return"type_1"===this.rarityValueMapper?2:3}static rarityValueMapper1(e){return e<-.5?.75:e<0?1:e<.5?1.5:2}static rarityValueMapper2(e){return e<-.75?.5:e<-.5?.75:e<.5?1:e<.75?2:3}};let b=_;b.ValueMapper={type_1:_.rarityValueMapper1,type_2:_.rarityValueMapper2},e.WeirdScaledSampler=b;class v extends m{constructor(e,t,i,n,r,o,a){super(n,r,o,a),this.shiftX=e,this.shiftY=t,this.shiftZ=i}compute(e){var t,i;const n=e.x*this.xzScale+this.shiftX.compute(e),r=e.y*this.yScale+this.shiftY.compute(e),o=e.z*this.xzScale+this.shiftZ.compute(e);return null!=(i=null==(t=this.noise)?void 0:t.sample(n,r,o))?i:0}mapAll(e){return e.map(new v(this.shiftX.mapAll(e),this.shiftY.mapAll(e),this.shiftZ.mapAll(e),this.xzScale,this.yScale,this.noiseData,this.noise))}}e.ShiftedNoise=v;class y extends e{constructor(e,t,i,n,r){super(),this.input=e,this.minInclusive=t,this.maxExclusive=i,this.whenInRange=n,this.whenOutOfRange=r}compute(e){const t=this.input.compute(e);return this.minInclusive<=t&&t<this.maxExclusive?this.whenInRange.compute(e):this.whenOutOfRange.compute(e)}mapAll(e){return e.map(new y(this.input.mapAll(e),this.minInclusive,this.maxExclusive,this.whenInRange.mapAll(e),this.whenOutOfRange.mapAll(e)))}minValue(){return Math.min(this.whenInRange.minValue(),this.whenOutOfRange.minValue())}maxValue(){return Math.max(this.whenInRange.maxValue(),this.whenOutOfRange.maxValue())}}e.RangeChoice=y;class w extends e{constructor(e,t){super(),this.noiseData=e,this.offsetNoise=t}compute(e){var t,i;return null!=(i=null==(t=this.offsetNoise)?void 0:t.sample(.25*e.x,.25*e.y,.25*e.z))?i:0}maxValue(){var e,t;return 4*(null!=(t=null==(e=this.offsetNoise)?void 0:e.maxValue)?t:2)}}e.ShiftNoise=w;class x extends w{constructor(e,t){super(e,t)}compute(t){return super.compute(e.context(t.x,0,t.z))}withNewNoise(e){return new x(this.noiseData,e)}}e.ShiftA=x;class N extends w{constructor(e,t){super(e,t)}compute(t){return super.compute(e.context(t.z,t.x,0))}withNewNoise(e){return new N(this.noiseData,e)}}e.ShiftB=N;class k extends w{constructor(e,t){super(e,t)}withNewNoise(e){return new k(this.noiseData,e)}}e.Shift=k;class A extends t{constructor(e){super(e)}transform(e,t){return t}mapAll(e){return e.map(new A(this.input.mapAll(e)))}minValue(){return-1/0}maxValue(){return 1/0}}e.BlendDensity=A;class C extends t{constructor(e,t,i){super(e),this.min=t,this.max=i}transform(e,t){return Rf(t,this.min,this.max)}mapAll(e){return e.map(new C(this.input.mapAll(e),this.min,this.max))}minValue(){return this.min}maxValue(){return this.max}}e.Clamp=C;const O=class extends t{constructor(e,t,i,n){super(t),this.type=e,this.min=i,this.max=n,this.transformer=O.MappedTypes[this.type]}transform(e,t){return this.transformer(t)}mapAll(e){return e.map(new O(this.type,this.input.mapAll(e)))}minValue(){var e;return null!=(e=this.min)?e:-1/0}maxValue(){var e;return null!=(e=this.max)?e:1/0}withMinMax(){const e=this.input.minValue();let t=this.transformer(e),i=this.transformer(this.input.maxValue());return"abs"!==this.type&&"square"!==this.type||(i=Math.max(t,i),t=Math.max(0,e)),new O(this.type,this.input,t,i)}};let S=O;S.MappedTypes={abs:e=>Math.abs(e),square:e=>e*e,cube:e=>e*e*e,half_negative:e=>e>0?e:.5*e,quarter_negative:e=>e>0?e:.25*e,squeeze:e=>{const t=Rf(e,-1,1);return t/2-t*t*t/24}},e.Mapped=S;class E extends t{constructor(e,t){super(e),this.settings=t}transform(e,t){return this.settings?mg.applySlides(this.settings,t,e.y):t}mapAll(e){return e.map(new E(this.input.mapAll(e),this.settings))}minValue(){return this.settings?Math.min(this.input.minValue(),this.settings.bottomSlide.target,this.settings.topSlide.target):this.input.minValue()}maxValue(){return this.settings?Math.max(this.input.maxValue(),this.settings.bottomSlide.target,this.settings.topSlide.target):this.input.maxValue()}}e.Slide=E;const F=["add","mul","min","max"];class D extends e{constructor(e,t,i,n,r){super(),this.type=e,this.argument1=t,this.argument2=i,this.min=n,this.max=r}compute(e){const t=this.argument1.compute(e);switch(this.type){case"add":return t+this.argument2.compute(e);case"mul":return 0===t?0:t*this.argument2.compute(e);case"min":return t<this.argument2.minValue()?t:Math.min(t,this.argument2.compute(e));case"max":return t>this.argument2.maxValue()?t:Math.max(t,this.argument2.compute(e))}}mapAll(e){return e.map(new D(this.type,this.argument1.mapAll(e),this.argument2.mapAll(e)))}minValue(){var e;return null!=(e=this.min)?e:-1/0}maxValue(){var e;return null!=(e=this.max)?e:1/0}withMinMax(){const e=this.argument1.minValue(),t=this.argument2.minValue(),i=this.argument1.maxValue(),n=this.argument2.maxValue();let r,o;switch("min"!==this.type&&"max"!==this.type||!(e>=n||t>=i)||console.warn(`Creating a ${this.type} function between two non-overlapping inputs`),this.type){case"add":r=e+t,o=i+n;break;case"mul":r=e>0&&t>0?e*t||0:i<0&&n<0?i*n||0:Math.min(e*n||0,t*i||0),o=e>0&&t>0?i*n||0:i<0&&n<0?e*t||0:Math.max(e*t||0,i*n||0);break;case"min":r=Math.min(e,t),o=Math.min(i,n);break;case"max":r=Math.max(e,t),o=Math.max(i,n)}return new D(this.type,this.argument1,this.argument2,r,o)}}e.Ap2=D;class B extends e{constructor(e,t,i){super(),this.spline=e,this.min=t,this.max=i}compute(e){return Rf(this.spline.compute(e),this.min,this.max)}mapAll(t){return t.map(new B(this.spline.mapAll((i=>i instanceof e?i.mapAll(t):i)),this.min,this.max))}minValue(){return this.min}maxValue(){return this.max}}e.Spline=B;const L=["offset","factor","jaggedness"];class M extends e{constructor(e,t,i,n,r,o,a){super(),this.continentalness=e,this.erosion=t,this.weirdness=i,this.spline=n,this.min=r,this.max=o,this.shaper=a}compute(e){if(!this.shaper)return 0;const t=pg.point(this.continentalness.compute(e),this.erosion.compute(e),this.weirdness.compute(e));return Rf(this.shaper[this.spline](t),this.min,this.max)}mapAll(e){return e.map(new M(this.continentalness.mapAll(e),this.erosion.mapAll(e),this.weirdness.mapAll(e),this.spline,this.min,this.max,this.shaper))}minValue(){return this.min}maxValue(){return this.max}}e.TerrainShaperSpline=M;class T extends e{constructor(e,t,i,n){super(),this.fromY=e,this.toY=t,this.fromValue=i,this.toValue=n}compute(e){return qf(e.y,this.fromY,this.toY,this.fromValue,this.toValue)}minValue(){return Math.min(this.fromValue,this.toValue)}maxValue(){return Math.max(this.fromValue,this.toValue)}}e.YClampedGradient=T}(wg||(wg={}));class xg{constructor(e,t){this.level=e,this.type=t}at(e){return e<this.level?this.type:Of.AIR}}(bg||(bg={})).createDisabled=function(e){return{compute({x:t,y:i,z:n},r){if(!(r>0))return e(t,i,n).at(i)}}},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=pf.readArray(e,(e=>pf.readNumber(e))))?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 Tf(this.temperature.distance(e.temperature))+Tf(this.humidity.distance(e.humidity))+Tf(this.continentalness.distance(e.continentalness))+Tf(this.erosion.distance(e.erosion))+Tf(this.depth.distance(e.depth))+Tf(this.weirdness.distance(e.weirdness))+Tf(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=pf.readObject(e))?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=pf.readInt(o.offset))?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 a(e)}find(e){return this.index.search(e,((e,t)=>e.distance(t)))}},e.Sampler=class{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}static fromRouter(t){return new e.Sampler(t.temperature,t.vegetation,t.continents,t.erosion,t.depth,t.ridges)}sample(t,i,n){const r=wg.context(t<<2,i<<2,n<<2);return e.target(this.temperature.compute(r),this.humidity.compute(r),this.continentalness.compute(r),this.erosion.compute(r),this.depth.compute(r),this.weirdness.compute(r))}};const o=class{constructor(e){this.root=o.build(e.map((([e,t])=>new l(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 c(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 c(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.length<n||(t.push(new c(i)),i=[]);return 0!==i.length&&t.push(new c(i)),t}static area(e){let t=0;for(const i of e)t+=Math.abs(i.max-i.min);return t}search(e,t){return this.root.search(e.toArray(),t).thing()}};let a=o;a.CHILDREN_PER_NODE=10,e.RTree=a;class s{constructor(e){this.space=e}distance(e){let t=0;for(let i=0;i<7;i+=1)t+=Tf(this.space[i].distance(e[i]));return t}}e.RNode=s;class c extends s{constructor(e){super(c.buildSpace(e)),this.children=e}static buildSpace(e){let t=[...Array(7)].map((()=>new 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=c;class l extends s{constructor(e,t){super(e.space()),this.thing=t}search(){return this}}e.RLeaf=l}(vg||(vg={}));class Ng{constructor(e){this.biome=e}getBiome(){return this.biome}static fromJson(e){var t,i;const n=null!=(t=pf.readObject(e))?t:{},r=bf.parse(null!=(i=pf.readString(n.biome))?i:"minecraft:the_void");return new Ng(r)}}!function(e){function t(e,t,i){return _g.NOISE.register(bf.create(e),lg.create(t,i))}e.TEMPERATURE=t("temperature",-10,[1.5,0,1,0,0,0]),e.VEGETATION=t("vegetation",-8,[1,1,0,0,0,0]),e.CONTINENTALNESS=t("continentalness",-9,[1,1,2,2,2,1,1,1,1]),e.EROSION=t("erosion",-9,[1,1,0,1,1]),e.TEMPERATURE_LARGE=t("temperature_large",-12,[1.5,0,1,0,0,0]),e.VEGETATION_LARGE=t("vegetation_large",-10,[1,1,0,0,0,0]),e.CONTINENTALNESS_LARGE=t("continentalness_large",-11,[1,1,2,2,2,1,1,1,1]),e.EROSION_LARGE=t("erosion_large",-11,[1,1,0,1,1]),e.RIDGE=t("ridge",-7,[1,2,1,0,0,0]),e.SHIFT=t("offset",-3,[1,1,1,0]),e.AQUIFER_BARRIER=t("aquifer_barrier",-3,[1]),e.AQUIFER_FLUID_LEVEL_FLOODEDNESS=t("aquifer_fluid_level_floodedness",-7,[1]),e.AQUIFER_FLUID_LEVEL_SPREAD=t("aquifer_fluid_level_spread",-5,[1]),e.AQUIFER_LAVA=t("aquifer_lava",-1,[1]),e.PILLAR=t("pillar",-7,[1,1]),e.PILLAR_RARENESS=t("pillar_rareness",-8,[1]),e.PILLAR_THICKNESS=t("pillar_thickness",-8,[1]),e.SPAGHETTI_2D=t("spaghetti_2d",-8,[1]),e.SPAGHETTI_2D_ELEVATION=t("spaghetti_2d_elevation",-8,[1]),e.SPAGHETTI_2D_MODULATOR=t("spaghetti_2d_modulator",-8,[1]),e.SPAGHETTI_2D_THICKNESS=t("spaghetti_2d_thickness",-8,[1]),e.SPAGHETTI_3D_1=t("spaghetti_3d_1",-8,[1]),e.SPAGHETTI_3D_2=t("spaghetti_3d_2",-8,[1]),e.SPAGHETTI_3D_RARITY=t("spaghetti_3d_rarity",-8,[1]),e.SPAGHETTI_3D_THICKNESS=t("spaghetti_3d_thickness",-8,[1]),e.SPAGHETTI_ROUGHNESS=t("spaghetti_roughness",-8,[1]),e.SPAGHETTI_ROUGHNESS_MODULATOR=t("spaghetti_roughness_modulator",-8,[1]),e.CAVE_ENTRANCE=t("cave_entrance",-7,[.4,.5,1]),e.CAVE_LAYER=t("cave_layer",-8,[1]),e.CAVE_CHEESE=t("cave_cheese",-8,[.5,1,2,1,2,1,0,2,0]),e.NOODLE=t("noodle",-8,[1]),e.NOODLE_THICKNESS=t("noodle_thickness",-8,[1]),e.NOODLE_RIDGE_A=t("noodle_ridge_a",-7,[1]),e.NOODLE_RIDGE_B=t("noodle_ridge_b",-7,[1]),e.JAGGED=t("jagged",-16,[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]),e.SURFACE=t("surface",-6,[1,1,1]),e.SURFACE_SECONDARY=t("surface_secondary",-6,[1,1,0,1]);const i=new Map;e.instantiate=function(e,t){var n;const r=null==(n=t.key())?void 0:n.toString();if(!r)throw new Error("Cannot instantiate noise from direct holder");const o=e.seedKey(),a=i.get(r);if(a&&a[0]===o[0]&&a[1]===o[1])return a[2];const s=new cg(e.fromHashOf(r),t.value());return i.set(r,[o[0],o[1],s]),s}}(yg||(yg={}));var kg,Ag,Cg,Og,Sg,Eg,Fg,Dg=Object.defineProperty,Bg=Object.defineProperties,Lg=Object.getOwnPropertyDescriptors,Mg=Object.getOwnPropertySymbols,Tg=Object.prototype.hasOwnProperty,Rg=Object.prototype.propertyIsEnumerable,$g=(e,t,i)=>t in e?Dg(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,jg=(e,t)=>{for(var i in t||(t={}))Tg.call(t,i)&&$g(e,i,t[i]);if(Mg)for(var i of Mg(t))Rg.call(t,i)&&$g(e,i,t[i]);return e};!function(e){const t=e=>Bf.parser(_g.DENSITY_FUNCTION,wg.fromJson)(e).value();e.fromJson=function(e){var i;const n=null!=(i=pf.readObject(e))?i:{};return{barrier:t(n.barrier),fluidLevelFloodedness:t(n.fluid_level_floodedness),fluidLevelSpread:t(n.fluid_level_spread),lava:t(n.lava),temperature:t(n.temperature),vegetation:t(n.vegetation),continents:t(n.continents),erosion:t(n.erosion),depth:t(n.depth),ridges:t(n.ridges),initialDensityWithoutJaggedness:t(n.initial_density_without_jaggedness),finalDensity:t(n.final_density),veinToggle:t(n.vein_toggle),veinRidged:t(n.vein_ridged),veinGap:t(n.vein_gap)}},e.create=function(e){return jg({barrier:wg.Constant.ZERO,fluidLevelFloodedness:wg.Constant.ZERO,fluidLevelSpread:wg.Constant.ZERO,lava:wg.Constant.ZERO,temperature:wg.Constant.ZERO,vegetation:wg.Constant.ZERO,continents:wg.Constant.ZERO,erosion:wg.Constant.ZERO,depth:wg.Constant.ZERO,ridges:wg.Constant.ZERO,initialDensityWithoutJaggedness:wg.Constant.ZERO,finalDensity:wg.Constant.ZERO,veinToggle:wg.Constant.ZERO,veinRidged:wg.Constant.ZERO,veinGap:wg.Constant.ZERO},e)},e.withSettings=function(e,t,n,r=!1){const o=(r?new Jf(n):Qf.create(n)).forkPositional(),a=new i(o,t);return s=jg({},a.mapAll(e)),c={aquiferPositionalRandomFactory:o.fromHashOf(bf.create("aquifer").toString()).forkPositional(),oreVeinsPositionalRandomFactory:o.fromHashOf(bf.create("ore").toString()).forkPositional()},Bg(s,Lg(c));var s,c};class i{constructor(e,t){this.random=e,this.settings=t,this.mapped=new Map}map(e){if(e instanceof wg.HolderHolder){const t=e.holder.key();if(void 0!==t&&this.mapped.has(t.toString()))return this.mapped.get(t.toString());{const i=e.holder.value().mapAll(this);return void 0!==t&&this.mapped.set(t.toString(),i),i}}if(e instanceof wg.Interpolated)return e.withCellSize(mg.cellWidth(this.settings),mg.cellHeight(this.settings));if(e instanceof wg.Noise)return new wg.Noise(e.xzScale,e.yScale,e.noiseData,yg.instantiate(this.random,e.noiseData));if(e instanceof wg.ShiftNoise)return e.withNewNoise(yg.instantiate(this.random,e.noiseData));if(e instanceof wg.ShiftedNoise){const t=yg.instantiate(this.random,e.noiseData);return new wg.ShiftedNoise(e.shiftX,e.shiftY,e.shiftZ,e.xzScale,e.yScale,e.noiseData,t)}return e instanceof wg.WeirdScaledSampler?new wg.WeirdScaledSampler(e.input,e.rarityValueMapper,e.noiseData,yg.instantiate(this.random,e.noiseData)):e instanceof wg.OldBlendedNoise?new wg.OldBlendedNoise(new og(this.random.fromHashOf(bf.create("terrain").toString()),this.settings.sampling,mg.cellWidth(this.settings),mg.cellHeight(this.settings))):e instanceof wg.Mapped||e instanceof wg.Ap2?e.withMinMax():e instanceof wg.TerrainShaperSpline?new wg.TerrainShaperSpline(e.continentalness,e.erosion,e.weirdness,e.spline,e.min,e.max,this.settings.terrainShaper):e instanceof wg.Slide?new wg.Slide(e.input,this.settings):e}mapAll(e){return{barrier:e.barrier.mapAll(this),fluidLevelFloodedness:e.fluidLevelFloodedness.mapAll(this),fluidLevelSpread:e.fluidLevelSpread.mapAll(this),lava:e.lava.mapAll(this),temperature:e.temperature.mapAll(this),vegetation:e.vegetation.mapAll(this),continents:e.continents.mapAll(this),erosion:e.erosion.mapAll(this),depth:e.depth.mapAll(this),ridges:e.ridges.mapAll(this),initialDensityWithoutJaggedness:e.initialDensityWithoutJaggedness.mapAll(this),finalDensity:e.finalDensity.mapAll(this),veinToggle:e.veinToggle.mapAll(this),veinRidged:e.veinRidged.mapAll(this),veinGap:e.veinGap.mapAll(this)}}}e.Visitor=i,e.computePreliminarySurfaceLevelScanning=function(e,t,i,n){const r=mg.minCellY(e)+mg.cellCountY(e),o=mg.minCellY(e),a=mg.cellHeight(e);for(let s=r;s>=o;s-=1){const r=s*a,o=Rf(t.compute(wg.context(i,r,n)),-64,64);if(mg.applySlides(e,o,r)>=.390625)return r}return Number.MAX_SAFE_INTEGER}}(kg||(kg={}));class Ig{constructor(e,t,i,n,r,o,a,s,c){this.cellCountXZ=e,this.cellCountY=t,this.cellNoiseMinY=i,this.router=n,this.minX=r,this.minZ=o,this.settings=a,this.preliminarySurfaceLevel=new Map,this.cellWidth=mg.cellWidth(a),this.cellHeight=mg.cellHeight(a),this.firstCellX=Math.floor(r/this.cellWidth),this.firstCellZ=Math.floor(o/this.cellWidth),this.firstNoiseX=r>>2,this.firstNoiseZ=o>>2,this.noiseSizeXZ=e*this.cellWidth>>2,this.aquifer=bg.createDisabled(c);const l=this.router.finalDensity;this.materialRule=Ag.fromList([e=>this.aquifer.compute(e,l.compute(e))]),this.initialDensityWithoutJaggedness=this.router.initialDensityWithoutJaggedness}getFinalState(e,t,i){return this.materialRule({x:e,y:t,z:i})}getPreliminarySurfaceLevel(e,t){return gf(this.preliminarySurfaceLevel,Df.asLong(e,t),(()=>kg.computePreliminarySurfaceLevelScanning(this.settings,this.initialDensityWithoutJaggedness,e<<2,t<<2)))}getAquifer(){return this.aquifer}}(Ag||(Ag={})).fromList=function(e){return t=>{for(const i of e){const e=i(t);if(e)return e}}},(Cg||(Cg={})).fromJson=function(e){var t,i,n,r;const o=null!=(t=pf.readObject(e))?t:{};return void 0!==o.absolute?(s=null!=(i=pf.readNumber(o.absolute))?i:0,()=>s):void 0!==o.above_bottom?(a=null!=(n=pf.readNumber(o.above_bottom))?n:0,e=>e.minY+a):void 0!==o.below_top?function(e){return t=>t.maxY-e}(null!=(r=pf.readNumber(o.below_top))?r:0):()=>0;var a,s},(Og||(Og={})).create=function(e,t){return{minY:e,height:t,maxY:e+t-1}};class Pg{constructor(e,t,i){this.rule=e,this.defaultBlock=t,this.random=Qf.create(i).forkPositional(),this.surfaceNoise=yg.instantiate(this.random,yg.SURFACE),this.surfaceSecondaryNoise=yg.instantiate(this.random,yg.SURFACE_SECONDARY),this.positionalRandoms=new Map}buildSurface(e,t,i,n){const r=Df.minBlockX(e.pos),o=Df.minBlockZ(e.pos),a=new zg(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=uf.create(t,i,n),u=e.getBlockState(o);if(u.equals(Of.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(uf.create(t,r,n));if(i.equals(Of.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 gf(this.positionalRandoms,e,(()=>this.random.fromHashOf(e)))}}class zg{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=ff((()=>this.system.getSurfaceSecondary(e,t))),this.minSurfaceLevel=ff((()=>this.calculateMinSurfaceLevel(e,t)))}updateY(e,t,i,n){this.blockY=n,this.stoneDepthAbove=e,this.stoneDepthBelow=t,this.waterHeight=i,this.biome=ff((()=>this.getBiome(uf.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(jf((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=pf.readObject(r))?o:{};switch(null==(a=pf.readString(c.type))?void 0:a.replace(/^minecraft:/,"")){case"block":return t(Of.fromJson(c.result_state));case"sequence":return i(null!=(s=pf.readArray(c.sequence,e.fromJson))?s:[]);case"condition":return n(Eg.fromJson(c.if_true),e.fromJson(c.then_run))}return e.NOOP},e.block=t,e.sequence=i,e.condition=n}(Sg||(Sg={})),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:Hf(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=Hf(n.blockY,r,o,1,0);return a.nextFloat()<s}}function o(e,t,i){return n=>{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=pf.readObject(s))?c:{};switch(null==(l=pf.readString(y.type))?void 0:l.replace(/^minecraft:/,"")){case"above_preliminary_surface":return e=>e.blockY>=e.minSurfaceLevel();case"biome":return t(null!=(u=pf.readArray(y.biome_is,(e=>{var t;return null!=(t=pf.readString(e))?t:""})))?u:[]);case"not":return i(e.fromJson(y.invert));case"stone_depth":return n(null!=(d=pf.readInt(y.offset))?d:0,null!=(h=pf.readBoolean(y.add_surface_depth))&&h,null!=(p=pf.readInt(y.secondary_depth_range))?p:0,"ceiling"===pf.readString(y.surface_type));case"vertical_gradient":return r(null!=(m=pf.readString(y.random_name))?m:"",Cg.fromJson(y.true_at_and_below),Cg.fromJson(y.false_at_and_above));case"water":return o(null!=(f=pf.readInt(y.offset))?f:0,null!=(g=pf.readInt(y.surface_depth_multiplier))?g:0,null!=(_=pf.readBoolean(y.add_surface_depth))&&_);case"y_above":return a(Cg.fromJson(y.anchor),null!=(b=pf.readInt(y.surface_depth_multiplier))?b:0,null!=(v=pf.readBoolean(y.add_surface_depth))&&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}(Eg||(Eg={}));class Ug{constructor(e,t,i){this.biomeSource=t,this.settings=i,this.router=kg.withSettings(i.noiseRouter,i.noise,e,i.legacyRandomSource),this.noiseChunkCache=new Map,this.surfaceSystem=new Pg(i.surfaceRule,i.defaultBlock,e);const n=new xg(-54,Of.LAVA),r=new xg(i.seaLevel,i.defaultFluid);this.globalFluidPicker=(e,t,o)=>t<Math.min(-54,i.seaLevel)?n:r}fill(e,t=!1){var i;const n=Math.max(e.minY,this.settings.noise.minY),r=Math.min(e.maxY,this.settings.noise.minY+this.settings.noise.height),o=mg.cellWidth(this.settings.noise),a=mg.cellHeight(this.settings.noise),s=Math.floor(16/o),c=Math.floor(n/a),l=Math.floor((r-n)/a),u=Df.minBlockX(e.pos),d=Df.minBlockZ(e.pos),h=this.getNoiseChunk(e);for(let p=0;p<s;p+=1)for(let n=0;n<(t?1:s);n+=1){let r=e.getOrCreateSection(e.sectionsCount-1);for(let s=l-1;s>=0;s-=1)for(let l=a-1;l>=0;l-=1){const m=(c+s)*a+l,f=15&m,g=e.getSectionIndex(m);e.getSectionIndex(r.minBlockY)!==g&&(r=e.getOrCreateSection(g));for(let e=0;e<o;e+=1){const a=u+p*o+e,s=15&a;for(let e=0;e<(t?1:o);e+=1){const t=d+n*o+e,c=15&t,l=null!=(i=h.getFinalState(a,m,t))?i:this.settings.defaultBlock;r.setBlockState(s,f,c,l)}}}}}buildSurface(e,t="minecraft:plains"){const i=this.getNoiseChunk(e),n=Og.create(this.settings.noise.minY,this.settings.noise.height);this.surfaceSystem.buildSurface(e,i,n,(()=>t))}getNoiseChunk(e){return gf(this.noiseChunkCache,Df.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=mg.cellWidth(this.settings.noise),r=mg.cellHeight(this.settings.noise),o=Math.floor(16/n),a=Math.floor(t/r),s=Math.floor((i-t)/r),c=Df.minBlockX(e.pos),l=Df.minBlockZ(e.pos);return new Ig(o,s,a,this.router,c,l,this.settings.noise,this.settings.aquifersEnabled,this.globalFluidPicker)}))}}let Wg;(Fg||(Fg={})).fromJson=function(e){var t,i,n,r,o,a;const s=null!=(t=pf.readObject(e))?t:{};return{surfaceRule:Sg.fromJson(s.surface_rule),noise:mg.fromJson(s.noise),defaultBlock:Of.fromJson(s.default_block),defaultFluid:Of.fromJson(s.default_fluid),noiseRouter:kg.fromJson(s.noise_router),seaLevel:null!=(i=pf.readInt(s.sea_level))?i:0,disableMobGeneration:null!=(n=pf.readBoolean(s.disable_mob_generation))&&n,aquifersEnabled:null!=(r=pf.readBoolean(s.aquifers_enabled))&&r,oreVeinsEnabled:null!=(o=pf.readBoolean(s.ore_veins_enabled))&&o,legacyRandomSource:null!=(a=pf.readBoolean(s.legacy_random_source))&&a}};let Hg=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});Hg.decode();let qg=null;function Vg(e,t){return Hg.decode((null!==qg&&qg.buffer===Wg.memory.buffer||(qg=new Uint8Array(Wg.memory.buffer)),qg).subarray(e,e+t))}const Gg=new Uint32Array(2),Kg=new BigInt64Array(Gg.buffer);let Xg=null;function Jg(){return null!==Xg&&Xg.buffer===Wg.memory.buffer||(Xg=new Int32Array(Wg.memory.buffer)),Xg}let Yg=null;function Zg(){return null!==Yg&&Yg.buffer===Wg.memory.buffer||(Yg=new Float64Array(Wg.memory.buffer)),Yg}let Qg=0;function e_(e,t){const i=t(8*e.length);return Zg().set(e,i/8),Qg=e.length,i}let t_=null;function i_(e,t){const i=t(4*e.length);return(null!==t_&&t_.buffer===Wg.memory.buffer||(t_=new Uint32Array(Wg.memory.buffer)),t_).set(e,i/4),Qg=e.length,i}function n_(e,t,i,n,r,o,a,s,c,l,u,d,h,p){var m=e_(e,Wg.__wbindgen_malloc),f=Qg,g=e_(t,Wg.__wbindgen_malloc),_=Qg,b=e_(i,Wg.__wbindgen_malloc),v=Qg,y=e_(n,Wg.__wbindgen_malloc),w=Qg,x=e_(r,Wg.__wbindgen_malloc),N=Qg,k=e_(o,Wg.__wbindgen_malloc),A=Qg,C=e_(a,Wg.__wbindgen_malloc),O=Qg,S=e_(s,Wg.__wbindgen_malloc),E=Qg,F=e_(c,Wg.__wbindgen_malloc),D=Qg,B=e_(l,Wg.__wbindgen_malloc),L=Qg,M=e_(u,Wg.__wbindgen_malloc),T=Qg,R=e_(d,Wg.__wbindgen_malloc),$=Qg,j=e_(h,Wg.__wbindgen_malloc),I=Qg,P=i_(p,Wg.__wbindgen_malloc),z=Qg,U=Wg.biome_parameters(m,f,g,_,b,v,y,w,x,N,k,A,C,O,S,E,F,D,B,L,M,T,R,$,j,I,P,z);return c_.__wrap(U)}function r_(e,t,i,n,r,o,a,s,c,l,u,d,h){Kg[0]=e;const p=Gg[0],m=Gg[1];var f=e_(i,Wg.__wbindgen_malloc),g=Qg,_=e_(r,Wg.__wbindgen_malloc),b=Qg,v=e_(a,Wg.__wbindgen_malloc),y=Qg,w=e_(c,Wg.__wbindgen_malloc),x=Qg,N=e_(u,Wg.__wbindgen_malloc),k=Qg,A=e_(h,Wg.__wbindgen_malloc),C=Qg,O=Wg.climate_sampler(p,m,t,f,g,n,_,b,o,v,y,s,w,x,l,N,k,d,A,C);return l_.__wrap(O)}function o_(e,t){if(!(e instanceof t))throw new Error(`expected instance of ${t.name}`);return e.ptr}function a_(e,t,i,n,r,o,a,s,c,l,u){try{const m=Wg.__wbindgen_add_to_stack_pointer(-16);o_(e,c_),o_(t,l_),Wg.multi_noise(m,e.ptr,t.ptr,i,n,r,o,a,s,c,l,u);var d=Jg()[m/4+0],h=Jg()[m/4+1],p=function(e,t){return Jg().subarray(e/4,e/4+t)}(d,h).slice();return Wg.__wbindgen_free(d,4*h),p}finally{Wg.__wbindgen_add_to_stack_pointer(16)}}function s_(e,t,i,n,r,o,a,s,c,l){try{const p=Wg.__wbindgen_add_to_stack_pointer(-16);o_(e,l_),Wg.climate_noise(p,e.ptr,t,i,n,r,o,a,s,c,l);var u=Jg()[p/4+0],d=Jg()[p/4+1],h=function(e,t){return Zg().subarray(e/8,e/8+t)}(u,d).slice();return Wg.__wbindgen_free(u,8*d),h}finally{Wg.__wbindgen_add_to_stack_pointer(16)}}class c_{static __wrap(e){const t=Object.create(c_.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();Wg.__wbg_parameterlist_free(e)}}class l_{static __wrap(e){const t=Object.create(l_.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();Wg.__wbg_sampler_free(e)}}async function u_(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(Vg(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 Wg=i.exports,u_.__wbindgen_wasm_module=n,Wg}var d_,h_="/assets/deepslate_rs_bg.4990c219.wasm";!function(e){e.UP="up",e.DOWN="down",e.NORTH="north",e.EAST="east",e.SOUTH="south",e.WEST="west"}(d_||(d_={}));const p_={[d_.UP]:[0,1,0],[d_.DOWN]:[0,-1,0],[d_.NORTH]:[0,0,-1],[d_.EAST]:[1,0,0],[d_.SOUTH]:[0,0,1],[d_.WEST]:[-1,0,0]};var m_,f_,g_,__,b_,v_,y_,w_,x_,N_,k_,A_,C_,O_,S_,E_,F_,D_,B_,L_;function M_(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 p_[e]}}(d_||(d_={})),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,...d_.normal(i))}}(m_||(m_={})),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}}(f_||(f_={}));class T_{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=M_(e.value,"Name","string"),i=function(e,t){try{return e()}catch(i){return t}}((()=>M_(e.value,"Properties","compound")),{}),n=Object.keys(i).reduce(((e,t)=>Object.assign(Object.assign({},e),{[t]:M_(i,t,"string")})),{});return new T_(t,n)}static fromJson(e){var t,i;const n=null!==(t=f_.readObject(e))&&void 0!==t?t:{},r=null!==(i=f_.readString(n.Name))&&void 0!==i?i:"minecraft:stone",o=f_.readMap(n.Properties,(e=>{var t;return null!==(t=f_.readString(e))&&void 0!==t?t:""}));return new T_(r,o)}}function R_(e){let t=null;return()=>(null==t&&(t=e()),t)}function $_(e,t,i){const n=e.get(t);if(n)return n;const r=i(t);return e.set(t,r),r}function j_(e){return e*e}function I_(e,t,i){return Math.max(t,Math.min(i,e))}function P_(e,t,i){return t+e*(i-t)}function z_(e,t,i,n,r,o){return P_(t,P_(e,i,n),P_(e,r,o))}function U_(e,t,i){return i<0?e:i>1?t:P_(i,e,t)}function W_(e,t,i){return(e-t)/(i-t)}function H_(e){return e*e*e*(e*(6*e-15)+10)}function q_(e,t,i,n,r){return P_(W_(e,t,i),n,r)}function V_(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 G_(e,t,i,n,r,o,a,s){return BigInt(e)<<BigInt(56)|BigInt(t)<<BigInt(48)|BigInt(i)<<BigInt(40)|BigInt(n)<<BigInt(32)|BigInt(r)<<BigInt(24)|BigInt(o)<<BigInt(16)|BigInt(a)<<BigInt(8)|BigInt(s)}T_.AIR=new T_("minecraft:air"),function(e){function t(e,t){return BigInt(4294967295&e)|BigInt(4294967295&t)<<BigInt(32)}e.create=function(e,t){return[e,t]},e.fromBlockPos=function(e){return[e[0]>>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)}}(g_||(g_={}));class K_{constructor(e){this.seed=BigInt(0),this.setSeed(e)}fork(){return new K_(this.nextLong())}forkPositional(){return new X_(this.seed)}setSeed(e){this.seed=e^K_.MULTIPLIER&K_.MODULUS_MASK}advance(){this.seed=this.seed*K_.MULTIPLIER+K_.INCREMENT&K_.MODULUS_MASK}consume(e){for(let t=0;t<e;t+=1)this.advance()}next(e){this.advance();const t=Number(this.seed>>BigInt(K_.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(32))+BigInt(this.next(32))}nextFloat(){return this.next(24)*K_.FLOAT_MULTIPLIER}nextDouble(){const e=this.next(30);return this.advance(),e*K_.DOUBLE_MULTIPLIER}}K_.MODULUS_BITS=48,K_.MODULUS_MASK=BigInt("281474976710655"),K_.MULTIPLIER=BigInt("25214903917"),K_.INCREMENT=BigInt("11"),K_.FLOAT_MULTIPLIER=1/Math.pow(2,24),K_.DOUBLE_MULTIPLIER=1/Math.pow(2,30);class X_{constructor(e){this.seed=e}at(e,t,i){const n=V_(e,t,i);return new K_(n^this.seed)}fromHashOf(e){const t=cf(e,{asBytes:!0}),i=G_(t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]);return new K_(i^this.seed)}}class J_{constructor(e){this.seed=[BigInt(0),BigInt(0)],this.seed=e}static create(e){return new J_(J_.upgradeSeedTo128bit(e))}static mixStafford13(e){return((e=((e=(e^e>>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^J_.SILVER_RATIO_64,i=t+J_.GOLDEN_RATIO_64&BigInt("0xFFFFFFFFFFFFFFFF");return[J_.mixStafford13(t),J_.mixStafford13(i)]}static rotateLeft(e,t){return e<<t&BigInt("0xFFFFFFFFFFFFFFFF")|e>>BigInt(64)-t}setSeed(e){this.seed=J_.upgradeSeedTo128bit(e)}fork(){return new J_([this.next(),this.next()])}forkPositional(){return new Y_(this.next(),this.next())}next(){const e=this.seed[0];let t=this.seed[1];const i=J_.rotateLeft(e+t&BigInt("0xFFFFFFFFFFFFFFFF"),BigInt(17))+e&BigInt("0xFFFFFFFFFFFFFFFF");return t^=e,this.seed=[J_.rotateLeft(e,BigInt(49))^t^t<<BigInt(21)&BigInt("0xFFFFFFFFFFFFFFFF"),J_.rotateLeft(t,BigInt(28))],i}nextLong(){let e=this.next();return e>BigInt("0x8000000000000000")&&(e-=BigInt("0x10000000000000000")),e}consume(e){let t=this.seed[0],i=this.seed[1];for(let n=0;n<e;n+=1)i^=t,t=J_.rotateLeft(t,BigInt(49))^i^i<<BigInt(21),i=J_.rotateLeft(i,BigInt(28));this.seed=[t,i]}nextBits(e){return this.next()>>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<i){const e=((~i&BigInt(4294967295))+BigInt(1))%i;for(;r<e;)t=this.next()&BigInt(4294967295),n=t*i,r=n&BigInt(4294967295)}const o=n>>BigInt(32);return Number(o)}{let e=Number(t);return e>=2147483648&&(e-=4294967296),e}}nextFloat(){return Number(this.nextBits(24))*J_.FLOAT_MULTIPLIER}nextDouble(){return Number(this.nextBits(53))*J_.DOUBLE_MULTIPLIER}parityConfigString(){return"seedLo: "+this.seed[0]+", seedHi: "+this.seed[1]}}J_.SILVER_RATIO_64=BigInt("7640891576956012809"),J_.GOLDEN_RATIO_64=BigInt("-7046029254386353131"),J_.FLOAT_MULTIPLIER=1/Math.pow(2,24),J_.DOUBLE_MULTIPLIER=11102230246251565e-32;class Y_{constructor(e,t){this.seedLo=e,this.seedHi=t}at(e,t,i){const n=V_(e,t,i)^this.seedLo;return new J_([n,this.seedHi])}fromHashOf(e){const t=cf(e,{asBytes:!0}),i=G_(t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),n=G_(t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15]);return new J_([i^this.seedLo,n^this.seedHi])}}class Z_{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)*Z_.F2,a=Math.floor(e+o),s=e-(a-(i=(a+(n=Math.floor(t+o)))*Z_.G2));let c,l;s>(r=t-(n-i))?(c=1,l=0):(c=0,l=1);const u=s-c+Z_.G2,d=r-l+Z_.G2,h=s-1+2*Z_.G2,p=r-1+2*Z_.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):l<u?(d=0,h=0,p=1,m=0,f=1,g=1):c<u?(d=0,h=1,p=0,m=0,f=1,g=1):(d=0,h=1,p=0,m=1,f=1,g=0);const _=c-d+.16666666666666666,b=l-h+.16666666666666666,v=u-p+.16666666666666666,y=c-m+.3333333333333333,w=l-f+.3333333333333333,x=u-g+.3333333333333333,N=c-.5,k=l-.5,A=u-.5,C=255&r,O=255&o,S=255&a,E=this.P(C+this.P(O+this.P(S)))%12,F=this.P(C+d+this.P(O+h+this.P(S+p)))%12,D=this.P(C+m+this.P(O+f+this.P(S+g)))%12,B=this.P(C+1+this.P(O+1+this.P(S+1)))%12;return 32*(this.getCornerNoise3D(E,c,l,u,.6)+this.getCornerNoise3D(F,_,b,v,.6)+this.getCornerNoise3D(D,y,w,x,.6)+this.getCornerNoise3D(B,N,k,A,.6))}P(e){return this.p[255&e]}getCornerNoise3D(e,t,i,n,r){let o,a=r-t*t-i*i-n*n;return a<0?o=0:(a*=a,o=a*a*Z_.gradDot(e,t,i,n)),o}static gradDot(e,t,i,n){const r=Z_.GRADIENT[15&e];return r[0]*t+r[1]*i+r[2]*n}}Z_.GRADIENT=[[1,1,0],[-1,1,0],[1,-1,0],[-1,-1,0],[1,0,1],[-1,0,1],[1,0,-1],[-1,0,-1],[0,1,1],[0,-1,1],[0,1,-1],[0,-1,-1],[1,1,0],[0,-1,1],[-1,1,0],[0,-1,-1]],Z_.F2=.5*(Math.sqrt(3)-1),Z_.G2=(3-Math.sqrt(3))/6;class Q_{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>127?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<h?r:h;m=Math.floor(e/n+1e-7)*n}return this.sampleAndLerp(c,l,u,d,h-m,p,h)}sampleAndLerp(e,t,i,n,r,o,a){const s=this.P(e),c=this.P(e+1),l=this.P(s+t),u=this.P(s+t+1),d=this.P(c+t),h=this.P(c+t+1),p=Z_.gradDot(this.P(l+i),n,r,o),m=Z_.gradDot(this.P(d+i),n-1,r,o),f=Z_.gradDot(this.P(u+i),n,r-1,o),g=Z_.gradDot(this.P(h+i),n-1,r-1,o),_=Z_.gradDot(this.P(l+i+1),n,r,o-1),b=Z_.gradDot(this.P(d+i+1),n-1,r,o-1),v=Z_.gradDot(this.P(u+i+1),n,r-1,o-1),y=Z_.gradDot(this.P(h+i+1),n-1,r-1,o-1);return function(e,t,i,n,r,o,a,s,c,l,u){return P_(i,z_(e,t,n,r,o,a),z_(e,t,s,c,l,u))}(H_(n),H_(a),H_(o),p,m,f,g,_,b,v,y)}P(e){return 255&this.p[255&e]}}class eb{constructor(e,t,i){if(e instanceof J_){const n=e.forkPositional();this.noiseLevels=Array(i.length);for(let e=0;e<i.length;e++)if(0!==i[e]){const i=t+e;this.noiseLevels[e]=new Q_(n.fromHashOf("octave_"+i))}}else{if(1-t<i.length)throw new Error("Positive octaves are not allowed when using LegacyRandom");this.noiseLevels=Array(i.length);for(let n=-t;n>=0;n-=1)n<i.length&&0!==i[n]?this.noiseLevels[n]=new Q_(e):e.consume(262)}this.amplitudes=i,this.lowestFreqInputFactor=Math.pow(2,t),this.lowestFreqValueFactor=Math.pow(2,i.length-1)/(Math.pow(2,i.length)-1)}sample(e,t,i,n=0,r=0,o=!1){let a=0,s=this.lowestFreqInputFactor,c=this.lowestFreqValueFactor;for(let l=0;l<this.noiseLevels.length;l+=1){const u=this.noiseLevels[l];u&&(a+=this.amplitudes[l]*c*u.sample(eb.wrap(e*s),o?-u.yo:eb.wrap(t*s),eb.wrap(i*s),n*s,r*s)),s*=2,c/=2}return a}getOctaveNoise(e){return this.noiseLevels[this.noiseLevels.length-1-e]}static wrap(e){return e-33554432*Math.floor(e/33554432+.5)}}class tb{constructor(e,t,i,n){this.cellWidth=i,this.cellHeight=n,this.minLimitNoise=new eb(e,-15,[1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0]),this.maxLimitNoise=new eb(e,-15,[1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0]),this.mainNoise=new eb(e,-7,[1,1,1,1,1,0,0,0]),this.xzScale=684.412*t.xzScale,this.yScale=684.412*t.yScale,this.xzMainScale=this.xzScale/t.xzFactor,this.yMainScale=this.yScale/t.yFactor}sample(e,t,i){let n;e=Math.floor(e/this.cellWidth),t=Math.floor(t/this.cellHeight),i=Math.floor(i/this.cellWidth);let r=0,o=1;for(let c=0;c<8;c+=1){if(n=this.mainNoise.getOctaveNoise(c),n){const a=this.xzMainScale*o,s=this.yMainScale*o,c=eb.wrap(e*a),l=eb.wrap(t*s),u=eb.wrap(i*a);r+=n.sample(c,l,u,s,t*s)/o}o/=2}r=(r/10+1)/2,o=1;let a=0,s=0;for(let c=0;c<16;c+=1){const l=this.xzScale*o,u=this.yScale*o,d=eb.wrap(e*l),h=eb.wrap(t*u),p=eb.wrap(i*l);r<1&&(n=this.minLimitNoise.getOctaveNoise(c))&&(a+=n.sample(d,h,p,u,t*u)/o),r>0&&(n=this.maxLimitNoise.getOctaveNoise(c))&&(s+=n.sample(d,h,p,u,t*u)/o),o/=2}return U_(a/512,s/512,r)/128}}(__||(__={})).fromJson=function(e){var t,i,n,r,o;const a=null!==(t=f_.readObject(e))&&void 0!==t?t:{};return{xzScale:null!==(i=f_.readNumber(a.xz_scale))&&void 0!==i?i:1,yScale:null!==(n=f_.readNumber(a.y_scale))&&void 0!==n?n:1,xzFactor:null!==(r=f_.readNumber(a.xz_factor))&&void 0!==r?r:80,yFactor:null!==(o=f_.readNumber(a.y_factor))&&void 0!==o?o:80}};class ib{constructor(e,{firstOctave:t,amplitudes:i}){this.first=new eb(e,t,i),this.second=new eb(e,t,i);let n=1/0,r=-1/0;for(let a=0;a<i.length;a+=1)0!==i[a]&&(n=Math.min(n,a),r=Math.max(r,a));const o=.1*(1+1/(r-n+1));this.valueFactor=1/6/o}sample(e,t,i){const n=e*ib.INPUT_FACTOR,r=t*ib.INPUT_FACTOR,o=i*ib.INPUT_FACTOR;return(this.first.sample(e,t,i)+this.second.sample(n,r,o))*this.valueFactor}}ib.INPUT_FACTOR=1.0181268882175227,function(e){e.create=function(e,t){return{firstOctave:e,amplitudes:t}},e.fromJson=function(e){var t,i,n;const r=null!==(t=f_.readObject(e))&&void 0!==t?t:{};return{firstOctave:null!==(i=f_.readInt(r.firstOctave))&&void 0!==i?i:0,amplitudes:null!==(n=f_.readArray(r.amplitudes,(e=>{var t;return null!==(t=f_.readNumber(e))&&void 0!==t?t:0})))&&void 0!==n?n:[]}}}(b_||(b_={})),function(e){e.fromJson=function(t,i){var n,r,o,a;if("number"==typeof t)return new nb(t);const s=null!==(n=f_.readObject(t))&&void 0!==n?n:{},c=new rb(i(s.coordinate)),l=null!==(r=f_.readArray(s.points,(e=>{var t;return null!==(t=f_.readObject(e))&&void 0!==t?t:{}})))&&void 0!==r?r:[];if(0===l.length)return new nb(0);for(const u of l){const t=null!==(o=f_.readNumber(u.location))&&void 0!==o?o:0,n=e.fromJson(u.value,i),r=null!==(a=f_.readNumber(u.derivative))&&void 0!==a?a:0;c.addPoint(t,n,r)}return c}}(v_||(v_={}));class nb{constructor(e){this.value=e}apply(){return this.value}toJson(){return this.value}}class rb{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<this.locations[e]))-1,n=this.locations.length-1;if(i<0)return this.values[0].apply(e)+this.derivatives[0]*(t-this.locations[0]);if(i===n)return this.values[n].apply(e)+this.derivatives[n]*(t-this.locations[n]);const r=this.locations[i],o=this.locations[i+1],a=this.derivatives[i],s=this.derivatives[i+1],c=(t-r)/(o-r),l=this.values[i].apply(e),u=this.values[i+1].apply(e),d=a*(o-r)-(u-l),h=-s*(o-r)+(u-l);return P_(c,l,u)+c*(1-c)*P_(c,d,h)}addPoint(e,t,i=0){return this.locations.push(e),this.values.push("number"==typeof t?new nb(t):t),this.derivatives.push(i),this}toJson(){return{coordinate:this.coordinate.toJson(),points:this.locations.map(((e,t)=>({location:e,value:this.values[t].toJson(),derivative:this.derivatives[t]})))}}}(y_||(y_={})).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=f_.readArray(e,(e=>f_.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 j_(this.temperature.distance(e.temperature))+j_(this.humidity.distance(e.humidity))+j_(this.continentalness.distance(e.continentalness))+j_(this.erosion.distance(e.erosion))+j_(this.depth.distance(e.depth))+j_(this.weirdness.distance(e.weirdness))+j_(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=f_.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=f_.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.length<n||(t.push(new s(i)),i=[]);return 0!==i.length&&t.push(new s(i)),t}static area(e){let t=0;for(const i of e)t+=Math.abs(i.max-i.min);return t}search(e,t){return this.root.search(e.toArray(),t).thing()}}o.CHILDREN_PER_NODE=10,e.RTree=o;class a{constructor(e){this.space=e}distance(e){let t=0;for(let i=0;i<7;i+=1)t+=j_(this.space[i].distance(e[i]));return t}}e.RNode=a;class s extends a{constructor(e){super(s.buildSpace(e)),this.children=e}static buildSpace(e){let t=[...Array(7)].map((()=>new 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}(w_||(w_={}));class ob{constructor(e){this.biome=e}getBiome(){return this.biome}static fromJson(e){var t,i;const n=null!==(t=f_.readObject(e))&&void 0!==t?t:{},r=null!==(i=f_.readString(n.biome))&&void 0!==i?i:"minecraft:the_void";return new ob(r)}}class ab{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=f_.readObject(e))&&void 0!==t?t:{};return new ab(v_.fromJson(i.offset,this.EXTRACTOR),v_.fromJson(i.factor,this.EXTRACTOR),v_.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)+ab.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 rb(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 rb(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 rb(this.CONTINENTS).addPoint(.11,0).addPoint(.03,this.buildErosionJaggednessSpline(1,.5,0,0)).addPoint(.65,this.buildErosionJaggednessSpline(1,1,1,0));return new ab(r,o,a)}static getErosionFactor(e,t){const i=new rb(this.WEIRDNESS).addPoint(-.2,6.3).addPoint(.2,e),n=new rb(this.EROSION).addPoint(-.6,i).addPoint(-.5,new rb(this.WEIRDNESS).addPoint(-.05,6.3).addPoint(.05,2.67)).addPoint(-.35,i).addPoint(-.25,i).addPoint(-.1,new rb(this.WEIRDNESS).addPoint(-.05,2.67).addPoint(.05,6.3)).addPoint(.03,i);if(t){const t=new rb(this.WEIRDNESS).addPoint(0,e).addPoint(.1,.625),i=new rb(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 rb(this.RIDGES).addPoint(-.7,i).addPoint(-.15,1.37),r=new rb(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(P_(n,.6,1.5),s),l=this.buildMountainRidgeSplineWithPoints(P_(n,.6,1),s),u=this.buildMountainRidgeSplineWithPoints(n,s),d=this.ridgeSpline(e-.15,.5*n,P_(.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 rb(this.RIDGES).addPoint(-1,e).addPoint(-.4,p).addPoint(0,i+.07),g=this.ridgeSpline(-.02,o,o,t,i,0),_=new rb(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 rb(this.RIDGES),n=this.mountainContinentalness(-1,e,-.7),r=this.mountainContinentalness(1,e,-.7),o=this.calculateMountainRidgeZeroContinentalnessPoint(e);if(-.65<o&&o<1){const t=this.mountainContinentalness(-.65,e,-.7),a=this.mountainContinentalness(-.75,e,-.7),s=this.calculateSlope(n,a,-1,-.75);i.addPoint(-1,n,s),i.addPoint(-.75,a),i.addPoint(-.65,t);const c=this.mountainContinentalness(o,e,-.7),l=this.calculateSlope(c,r,o,1);i.addPoint(o-.01,c),i.addPoint(o,c,l),i.addPoint(1,r,l)}else{const e=this.calculateSlope(n,r,-1,1);t?(i.addPoint(-1,Math.max(.2,n)),i.addPoint(0,P_(.5,n,r),e)):i.addPoint(-1,n,e),i.addPoint(1,r,e)}return i}static mountainContinentalness(e,t,i){const n=.46082947*(e+1.17)*(1-.5*(1-t))-.5*(1-t);return e<i?Math.max(n,-.2222):Math.max(n,0)}static calculateMountainRidgeZeroContinentalnessPoint(e){return.5*(1-e)/(.46082947*(1-.5*(1-e)))-1.17}static calculateSlope(e,t,i,n){return(t-e)/(n-i)}static ridgeSpline(e,t,i,n,r,o){const a=Math.max(.5*(t-e),o),s=5*(i-t);return new rb(this.RIDGES).addPoint(-1,e,a).addPoint(-.4,t,Math.min(a,s)).addPoint(0,i,s).addPoint(.4,n,2*(n-i)).addPoint(1,r,.7*(r-n))}static buildErosionJaggednessSpline(e,t,i,n){const r=this.buildRidgeJaggednessSpline(e,i),o=this.buildRidgeJaggednessSpline(t,n);return new rb(this.EROSION).addPoint(-1,r).addPoint(-.78,o).addPoint(-.5775,o).addPoint(-.375,0)}static buildRidgeJaggednessSpline(e,t){const i=ab.peaksAndValleys(.4),n=(i+ab.peaksAndValleys(.56666666))/2;return new rb(this.RIDGES).addPoint(i,0).addPoint(n,t>0?this.buildWeirdnessJaggednessSpline(t):0).addPoint(1,e>0?this.buildWeirdnessJaggednessSpline(e):0)}static buildWeirdnessJaggednessSpline(e){return new rb(ab.WEIRDNESS).addPoint(-.01,.63*e).addPoint(.01,.3*e)}}ab.GLOBAL_OFFSET=-.50375,ab.EXTRACTOR=e=>{var t;const i=null!==(t=f_.readString(e))&&void 0!==t?t:"continents";return ab.extractor(i)},ab.CONTINENTS=ab.extractor("continents"),ab.EROSION=ab.extractor("erosion"),ab.WEIRDNESS=ab.extractor("weirdness"),ab.RIDGES=ab.extractor("ridges"),(x_||(x_={})).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=f_.readObject(e))&&void 0!==t?t:{};return{minY:null!==(i=f_.readInt(l.min_y))&&void 0!==i?i:0,height:null!==(n=f_.readInt(l.height))&&void 0!==n?n:256,xzSize:null!==(r=f_.readInt(l.size_horizontal))&&void 0!==r?r:1,ySize:null!==(o=f_.readInt(l.size_vertical))&&void 0!==o?o:1,sampling:__.fromJson(l.sampling),topSlide:k_.fromJson(l.top_slide),bottomSlide:k_.fromJson(l.bottom_slide),terrainShaper:ab.fromJson(l.terrain_shaper),islandNoiseOverride:null!==(a=f_.readBoolean(l.island_noise_override))&&void 0!==a&&a,isAmplified:null!==(s=f_.readBoolean(l.amplified))&&void 0!==s&&s,hasLargeBiomes:null!==(c=f_.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))}}(N_||(N_={})),function(e){e.fromJson=function(e){var t,i,n,r;const o=null!==(t=f_.readObject(e))&&void 0!==t?t:{};return{target:null!==(i=f_.readNumber(o.target))&&void 0!==i?i:0,size:null!==(n=f_.readInt(o.size))&&void 0!==n?n:0,offset:null!==(r=f_.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 U_(e.target,t,n)}}(k_||(k_={}));class sb{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=sb.allocateSlice(e.cellCountY,e.cellCountXZ),this.slice1=sb.allocateSlice(e.cellCountY,e.cellCountXZ)}static allocateSlice(e,t){const i=Array(t+1);for(let n=0;n<t+1;n+=1)i[n]=Array(e+1);return i}initializeForFirstCellX(){this.fillSlice(this.slice0,this.chunk.firstCellX)}advanceCellX(e){this.fillSlice(this.slice1,this.chunk.firstCellX+e+1)}fillSlice(e,t){const i=N_.cellWidth(this.chunk.settings.noise),n=N_.cellHeight(this.chunk.settings.noise),r=t*i;for(let o=0;o<this.chunk.cellCountXZ+1;o+=1){const t=(this.chunk.firstCellZ+o)*i;for(let i=0;i<this.chunk.cellCountY+1;i+=1){const a=(this.chunk.cellCountNoiseMinY+i)*n;e[o][i]=this.filler(r,a,t)}}}selectCellYZ(e,t){this.noise000=this.slice0[t][e],this.noise001=this.slice0[t+1][e],this.noise100=this.slice1[t][e],this.noise101=this.slice1[t+1][e],this.noise010=this.slice0[t][e+1],this.noise011=this.slice0[t+1][e+1],this.noise110=this.slice1[t][e+1],this.noise111=this.slice1[t+1][e+1]}updateForY(e){this.valueXZ00=P_(e,this.noise000,this.noise010),this.valueXZ10=P_(e,this.noise100,this.noise110),this.valueXZ01=P_(e,this.noise001,this.noise011),this.valueXZ11=P_(e,this.noise101,this.noise111)}updateForX(e){this.valueZ0=P_(e,this.valueXZ00,this.valueXZ10),this.valueZ1=P_(e,this.valueXZ01,this.valueXZ11)}updateForZ(e){this.value=P_(e,this.valueZ0,this.valueZ1)}sample(){return this.value}swapSlices(){[this.slice0,this.slice1]=[this.slice1,this.slice0]}}class cb{constructor(e,t,i,n,r,o,a,s){this.cellCountXZ=e,this.cellCountY=t,this.cellCountNoiseMinY=i,this.sampler=n,this.settings=s;const c=N_.cellWidth(s.noise);this.firstCellX=Math.floor(r/c),this.firstCellZ=Math.floor(o/c),this.firstNoiseX=r>>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 $_(this.preliminarySurfaceLevel,g_.asLong(e,t),(()=>{const i=e-this.firstNoiseX,n=t-this.firstNoiseZ,r=this.noiseData.length,o=i>=0&&n>=0&&i<r&&n<r?this.noiseData[i][n].terrainInfo:this.sampler.noiseData(e,t).terrainInfo;return this.sampler.getPreliminarySurfaceLevel(e<<2,t<<2,o)}))}createNoiseInterpolator(e){const t=new sb(this,e);return this.interpolators.push(t),t.sample.bind(t)}initializeForFirstCellX(){this.interpolators.forEach((e=>e.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)}}(A_||(A_={})).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}`},b_.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 ib(e.fromHashOf(t.name),t)}}(C_||(C_={}));class lb{constructor(e,t,i,n=!1){this.settings=e,this.isNoiseCavesEnabled=t;const r=e.hasLargeBiomes,o=(n?new K_(i):J_.create(i)).forkPositional();n?(this.blendedNoise=new tb(new K_(i),e.sampling,N_.cellWidth(e),N_.cellHeight(e)),this.temperatureNoise=new ib(new K_(i),b_.create(-7,[1,1])),this.humidityNoise=new ib(new K_(i+BigInt(1)),b_.create(-7,[1,1])),this.offsetNoise=new ib(new K_(i+BigInt(5)),b_.create(0,[0]))):(this.blendedNoise=new tb(o.fromHashOf("minecraft:terrain"),e.sampling,N_.cellWidth(e),N_.cellHeight(e)),this.temperatureNoise=C_.instantiate(o,r?C_.TEMPERATURE_LARGE:C_.TEMPERATURE),this.humidityNoise=C_.instantiate(o,r?C_.VEGETATION_LARGE:C_.VEGETATION),this.offsetNoise=C_.instantiate(o,C_.SHIFT)),this.continentalnessNoise=C_.instantiate(o,r?C_.CONTINENTALNESS_LARGE:C_.CONTINENTALNESS),this.erosionNoise=C_.instantiate(o,r?C_.EROSION_LARGE:C_.EROSION),this.weirdnessNoise=C_.instantiate(o,C_.RIDGE),this.pillarNoise=C_.instantiate(o,C_.PILLAR),this.pillarRarenessModulator=C_.instantiate(o,C_.PILLAR_RARENESS),this.pillarThicknessModulator=C_.instantiate(o,C_.PILLAR_THICKNESS),this.spaghetti2DNoise=C_.instantiate(o,C_.SPAGHETTI_2D),this.spaghetti2DElevationModulator=C_.instantiate(o,C_.SPAGHETTI_2D_ELEVATION),this.spaghetti2DRarityModulator=C_.instantiate(o,C_.SPAGHETTI_2D_MODULATOR),this.spaghetti2DThicknessModulator=C_.instantiate(o,C_.SPAGHETTI_2D_THICKNESS),this.spaghetti3DNoise1=C_.instantiate(o,C_.SPAGHETTI_3D_1),this.spaghetti3DNoise2=C_.instantiate(o,C_.SPAGHETTI_3D_2),this.spaghetti3DRarityModulator=C_.instantiate(o,C_.SPAGHETTI_3D_RARITY),this.spaghetti3DThicknessModulator=C_.instantiate(o,C_.SPAGHETTI_3D_THICKNESS),this.spaghettiRoughnessNoise=C_.instantiate(o,C_.SPAGHETTI_ROUGHNESS),this.spaghettiRoughnessModulator=C_.instantiate(o,C_.SPAGHETTI_ROUGHNESS_MODULATOR),this.bigEntranceNoise=C_.instantiate(o,C_.CAVE_ENTRANCE),this.layerNoise=C_.instantiate(o,C_.CAVE_LAYER),this.cheeseNoise=C_.instantiate(o,C_.CAVE_CHEESE);const a=e.minY+4,s=a+e.height;this.noodleToggleNoise=this.yLimitedInterpolatable(C_.instantiate(o,C_.NOODLE),a,s,-1,1),this.noodleThicknessNoise=this.yLimitedInterpolatable(C_.instantiate(o,C_.NOODLE_THICKNESS),a,s,0,1),this.noodleRidgeANoise=this.yLimitedInterpolatable(C_.instantiate(o,C_.NOODLE_RIDGE_A),a,s,0,8/3),this.noodleRidgeBNoise=this.yLimitedInterpolatable(C_.instantiate(o,C_.NOODLE_RIDGE_B),a,s,0,8/3),this.jaggedNoise=C_.instantiate(o,C_.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||a<t?n:e.sample(o*r,a*r,s*r);return e=>e.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 O_.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 w_.target(s,c,n.continentalness,n.erosion,l,n.weirdness)}terrainInfo(e,t,i){const n=ab.point(e,t,i),r=this.shaper.offset(n),o=this.shaper.factor(n),a=this.shaper.jaggedness(n);return A_.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=I_(.64*l,-1,1),l=l/2-l*l*l/24,r()>=0){const e=function(e,t,i,n,r){return U_(n,r,W_(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:T_.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+U_(.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=I_(r,s,c),I_(r=this.applySlide(r,t/N_.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+U_(.3,0,(t+10)/40)}getSpaghettiRoughness(e,t,i){const n=this.spaghettiRoughnessNoise.sample(e,t,i),r=q_(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=q_(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=N_.minCellY(this.settings),c=q_(this.spaghetti2DElevationModulator.sample(e,0,i),-1,1,s,8),l=Math.abs(c-t/8)-1*r;return I_(Math.max(l,a),-1,1)}getSpaghetti3D(e,t,i){const n=this.quantizeSpaghettiRarity3D(this.spaghetti3DRarityModulator.sample(2*e,t,2*i)),r=q_(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 I_(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*j_(this.layerNoise.sample(e,8*t,i))}getCheese(e,t,i){return I_(this.cheeseNoise.sample(e,t/1.5,i)+.27,-1,1)}getPillars(e,t,i){const n=q_(this.pillarRarenessModulator.sample(e,t,i),-1,1,0,2),r=q_(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-N_.minCellY(this.settings);return e=k_.apply(this.settings.topSlide,e,N_.cellCountY(this.settings)-i),k_.apply(this.settings.bottomSlide,e,i)}getPreliminarySurfaceLevel(e,t,i){const n=N_.minCellY(this.settings)+N_.cellCountY(this.settings),r=N_.minCellY(this.settings),o=N_.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}}(O_||(O_={})).create=function(e,t,i,n,r,o){return{shiftedX:e,shiftedZ:t,continentalness:i,weirdness:n,erosion:r,terrainInfo:o}},(S_||(S_={})).fromJson=function(e){var t,i,n,r;const o=null!==(t=f_.readObject(e))&&void 0!==t?t:{};return void 0!==o.absolute?(s=null!==(i=f_.readNumber(o.absolute))&&void 0!==i?i:0,()=>s):void 0!==o.above_bottom?(a=null!==(n=f_.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=f_.readNumber(o.below_top))&&void 0!==r?r:0):()=>0;var a,s},(E_||(E_={})).create=function(e,t){return{minY:e,height:t,maxY:e+t-1}};class ub{constructor(e,t,i){this.rule=e,this.defaultBlock=t,this.random=J_.create(i).forkPositional(),this.surfaceNoise=C_.instantiate(this.random,C_.SURFACE),this.surfaceSecondaryNoise=C_.instantiate(this.random,C_.SURFACE_SECONDARY),this.positionalRandoms=new Map}buildSurface(e,t,i,n){const r=g_.minBlockX(e.pos),o=g_.minBlockZ(e.pos),a=new db(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=m_.create(t,i,n),u=e.getBlockState(o);if(u.equals(T_.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(m_.create(t,r,n));if(i.equals(T_.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 $_(this.positionalRandoms,e,(()=>this.random.fromHashOf(e)))}}class db{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=R_((()=>this.system.getSurfaceSecondary(e,t))),this.minSurfaceLevel=R_((()=>this.calculateMinSurfaceLevel(e,t)))}updateY(e,t,i,n){this.blockY=n,this.stoneDepthAbove=e,this.stoneDepthBelow=t,this.waterHeight=i,this.biome=R_((()=>this.getBiome(m_.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(z_((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=f_.readObject(r))&&void 0!==o?o:{};switch(null===(a=f_.readString(c.type))||void 0===a?void 0:a.replace(/^minecraft:/,"")){case"block":return t(T_.fromJson(c.result_state));case"sequence":return i(null!==(s=f_.readArray(c.sequence,e.fromJson))&&void 0!==s?s:[]);case"condition":return n(D_.fromJson(c.if_true),e.fromJson(c.then_run))}return e.NOOP},e.block=t,e.sequence=i,e.condition=n}(F_||(F_={})),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:q_(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=q_(n.blockY,r,o,1,0);return a.nextFloat()<s}}function o(e,t,i){return n=>{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=f_.readObject(s))&&void 0!==c?c:{};switch(null===(l=f_.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=f_.readArray(y.biome_is,(e=>{var t;return null!==(t=f_.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=f_.readInt(y.offset))&&void 0!==d?d:0,null!==(h=f_.readBoolean(y.add_surface_depth))&&void 0!==h&&h,null!==(p=f_.readInt(y.secondary_depth_range))&&void 0!==p?p:0,"ceiling"===f_.readString(y.surface_type));case"vertical_gradient":return r(null!==(m=f_.readString(y.random_name))&&void 0!==m?m:"",S_.fromJson(y.true_at_and_below),S_.fromJson(y.false_at_and_above));case"water":return o(null!==(f=f_.readInt(y.offset))&&void 0!==f?f:0,null!==(g=f_.readInt(y.surface_depth_multiplier))&&void 0!==g?g:0,null!==(_=f_.readBoolean(y.add_surface_depth))&&void 0!==_&&_);case"y_above":return a(S_.fromJson(y.anchor),null!==(b=f_.readInt(y.surface_depth_multiplier))&&void 0!==b?b:0,null!==(v=f_.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}(D_||(D_={}));class hb{constructor(e,t,i){this.biomeSource=t,this.settings=i,this.sampler=new lb(i.noise,i.noiseCavesEnabled,e,i.legacyRandomSource),this.noiseChunkCache=new Map,this.materialRule=x_.fromList([(e,t,i,n)=>e.updateNoiseAndGenerateBaseState(t,i,n)]),this.surfaceSystem=new ub(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=N_.cellWidth(this.settings.noise),o=N_.cellHeight(this.settings.noise),a=Math.floor(16/r),s=Math.floor(i/o),c=Math.floor((n-i)/o),l=g_.minBlockX(e.pos),u=g_.minBlockZ(e.pos),d=this.getNoiseChunk(e);d.initializeForFirstCellX();for(let h=0;h<a;h+=1){d.advanceCellX(h);for(let i=0;i<a;i+=1){let n=e.getOrCreateSection(e.sectionsCount-1);for(let a=c-1;a>=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;e<r;e+=1){const o=l+h*r+e,a=15&o,s=e/r;d.updateForX(s);for(let e=0;e<r;e+=1){const s=u+i*r+e,c=15&s,l=e/r;d.updateForZ(l);let h=null!==(t=this.materialRule(d,o,p,s))&&void 0!==t?t:this.settings.defaultBlock;if(h.equals(T_.AIR)){if(!(p<this.settings.seaLevel))continue;h=this.settings.defaultFluid}n.setBlockState(a,m,c,h)}}}}}d.swapSlices()}}buildSurface(e,t="minecraft:plains"){const i=this.getNoiseChunk(e),n=E_.create(this.settings.noise.minY,this.settings.noise.height);this.surfaceSystem.buildSurface(e,i,n,(()=>t))}getNoiseChunk(e){return $_(this.noiseChunkCache,g_.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=N_.cellWidth(this.settings.noise),r=N_.cellHeight(this.settings.noise),o=Math.floor(16/n),a=Math.floor(t/r),s=Math.floor((i-t)/r),c=g_.minBlockX(e.pos),l=g_.minBlockZ(e.pos);return new cb(o,s,a,this.sampler,c,l,(()=>0),this.settings)}))}}(B_||(B_={})).fromJson=function(e){var t,i,n,r,o,a,s,c,l,u,d;const h=null!==(t=f_.readObject(e))&&void 0!==t?t:{};return{structures:L_.fromJson(h.structures),surfaceRule:F_.fromJson(h.surface_rule),noise:N_.fromJson(h.noise),defaultBlock:T_.fromJson(h.default_block),defaultFluid:T_.fromJson(h.default_fluid),bedrockRoofPosition:null!==(i=f_.readInt(h.bedrock_roof_position))&&void 0!==i?i:0,bedrockFloorPosition:null!==(n=f_.readInt(h.bedrock_floor_position))&&void 0!==n?n:0,seaLevel:null!==(r=f_.readInt(h.sea_level))&&void 0!==r?r:0,disableMobGeneration:null!==(o=f_.readBoolean(h.disable_mob_generation))&&void 0!==o&&o,aquifersEnabled:null!==(a=f_.readBoolean(h.aquifers_enabled))&&void 0!==a&&a,noiseCavesEnabled:null!==(s=f_.readBoolean(h.noise_caves_enabled))&&void 0!==s&&s,deepslateEnabled:null!==(c=f_.readBoolean(h.deepslate_enabled))&&void 0!==c&&c,oreVeinsEnabled:null!==(l=f_.readBoolean(h.ore_veins_enabled))&&void 0!==l&&l,noodleCavesEnabled:null!==(u=f_.readBoolean(h.noodle_caves_enabled))&&void 0!==u&&u,legacyRandomSource:null!==(d=f_.readBoolean(h.legacy_random_source))&&void 0!==d&&d}},(L_||(L_={})).fromJson=function(e){var t;const i=null!==(t=f_.readObject(e))&&void 0!==t?t:{};return{stronghold:f_.compose(i.stronghold,f_.readObject,(e=>{var t,i,n;return{distance:null!==(t=f_.readInt(e.distance))&&void 0!==t?t:0,spread:null!==(i=f_.readInt(e.spread))&&void 0!==i?i:0,count:null!==(n=f_.readInt(e.count))&&void 0!==n?n:0}})),structures:f_.readMap(i.structures,(e=>{var t,i,n,r,o;return i=null!==(t=f_.readObject(e))&&void 0!==t?t:{},{spacing:null!==(n=f_.readInt(i.spacing))&&void 0!==n?n:0,separation:null!==(r=f_.readInt(i.separation))&&void 0!==r?r:0,salt:null!==(o=f_.readInt(i.salt))&&void 0!==o?o:0}}))}},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;a<c;++a){var l=s(e,t[a]);if(null==l&&o.original)return;r.push(l)}return i&&i.apply(null,r)||!0}},o=function(e,t){var i=r("",e,t);return null==i&&o.original?o.original.apply(this,arguments):i},a=function(e,t){if(-1!==t.indexOf("!")){var i=t.split("!");return a(e,i[0])+"!"+a(e,i[1])}if("."==t.charAt(0))for(t=e.split("/").slice(0,-1).join("/")+"/"+t;-1!==t.indexOf(".")&&n!=t;){var n=t;t=t.replace(/\/\.\//,"/").replace(/[^\/]+\/\.\.\//,"")}return t},s=function(e,i){i=a(e,i);var n=t.modules[i];if(!n){if("function"==typeof(n=t.payloads[i])){var o={},s={id:i,uri:"",exports:o,packaged:!0};o=n((function(e,t){return r(i,e,t)}),o,s)||s.exports,t.modules[i]=o,delete t.payloads[i]}n=t.modules[i]=o||n}return n};n=e,(i="ace")&&(e[i]||(e[i]={}),n=e[i]),n.define&&n.define.packaged||(t.original=n.define,n.define=t,n.define.packaged=!0),n.acequire&&n.acequire.packaged||(o.original=n.acequire,n.acequire=o,n.acequire.packaged=!0)}(),ace.define("ace/lib/regexp",["require","exports","module"],(function(e,t,i){var n,r={exec:RegExp.prototype.exec,test:RegExp.prototype.test,match:String.prototype.match,replace:String.prototype.replace,split:String.prototype.split},o=void 0===r.exec.call(/()??/,"")[1],a=(n=/^/g,r.test.call(n,""),!n.lastIndex);function s(e){return(e.global?"g":"")+(e.ignoreCase?"i":"")+(e.multiline?"m":"")+(e.extended?"x":"")+(e.sticky?"y":"")}function c(e,t,i){if(Array.prototype.indexOf)return e.indexOf(t,i);for(var n=i||0;n<e.length;n++)if(e[n]===t)return n;return-1}a&&o||(RegExp.prototype.exec=function(e){var t,i,n=r.exec.apply(this,arguments);if("string"==typeof e&&n){if(!o&&n.length>1&&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;e<arguments.length-2;e++)void 0===arguments[e]&&(n[e]=void 0)}))),this._xregexp&&this._xregexp.captureNames)for(var l=1;l<n.length;l++)(t=this._xregexp.captureNames[l-1])&&(n[t]=n[l]);!a&&this.global&&!n[0].length&&this.lastIndex>n.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+t<i||(t=i-e);var n=this.slice(e,e+t),r=h.call(arguments,2),o=r.length;if(e===i)o&&this.push.apply(this,r);else{var a=Math.min(t,i-e),s=e+a,c=s+o-a,l=i-s,u=i-a;if(c<s)for(var d=0;d<l;++d)this[c+d]=this[s+d];else if(c>s)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<o;++d)this[e+d]=r[d]}return n};Array.isArray||(Array.isArray=function(e){return"[object Array]"==p(e)});var g,_,b=Object("a"),v="a"!=b[0]||!(0 in b);if(Array.prototype.forEach||(Array.prototype.forEach=function(e){var t=B(this),i=v&&"[object String]"==p(this)?this.split(""):t,n=arguments[1],r=-1,o=i.length>>>0;if("[object Function]"!=p(e))throw new TypeError;for(;++r<o;)r in i&&e.call(n,i[r],r,t)}),Array.prototype.map||(Array.prototype.map=function(e){var t=B(this),i=v&&"[object String]"==p(this)?this.split(""):t,n=i.length>>>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<n;a++)a in i&&(r[a]=e.call(o,i[a],a,t));return r}),Array.prototype.filter||(Array.prototype.filter=function(e){var t,i=B(this),n=v&&"[object String]"==p(this)?this.split(""):i,r=n.length>>>0,o=[],a=arguments[1];if("[object Function]"!=p(e))throw new TypeError(e+" is not a function");for(var s=0;s<r;s++)s in n&&(t=n[s],e.call(a,t,s,i)&&o.push(t));return o}),Array.prototype.every||(Array.prototype.every=function(e){var t=B(this),i=v&&"[object String]"==p(this)?this.split(""):t,n=i.length>>>0,r=arguments[1];if("[object Function]"!=p(e))throw new TypeError(e+" is not a function");for(var o=0;o<n;o++)if(o in i&&!e.call(r,i[o],o,t))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(e){var t=B(this),i=v&&"[object String]"==p(this)?this.split(""):t,n=i.length>>>0,r=arguments[1];if("[object Function]"!=p(e))throw new TypeError(e+" is not a function");for(var o=0;o<n;o++)if(o in i&&e.call(r,i[o],o,t))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(e){var t=B(this),i=v&&"[object String]"==p(this)?this.split(""):t,n=i.length>>>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<n;o++)o in i&&(r=e.call(void 0,r,i[o],o,t));return r}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(e){var t=B(this),i=v&&"[object String]"==p(this)?this.split(""):t,n=i.length>>>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<i;n++)if(n in t&&t[n]===e)return n;return-1}),Array.prototype.lastIndexOf&&-1==[0,1].lastIndexOf(0,-3)||(Array.prototype.lastIndexOf=function(e){var t=v&&"[object String]"==p(this)?this.split(""):B(this),i=t.length>>>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 k=!0,A=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],C=A.length;for(var O in{toString:null})k=!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(k)for(var n=0,r=C;n<r;n++){var o=A[n];m(e,o)&&t.push(o)}return t}}Date.now||(Date.now=function(){return(new Date).getTime()});var S="\t\n\v\f\r   ᠎              \u2028\u2029\ufeff";if(!String.prototype.trim||S.trim()){S="["+S+"]";var E=new RegExp("^"+S+S+"*"),F=new RegExp(S+S+"*$");String.prototype.trim=function(){return String(this).replace(E,"").replace(F,"")}}function D(e){return(e=+e)!=e?e=0:0!==e&&e!==1/0&&e!==-1/0&&(e=(e>0||-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<i.length;)if(i[n++].owningElement.id===e)return!0}else if(i=t.getElementsByTagName("style"))for(;n<i.length;)if(i[n++].id===e)return!0;return!1},t.importCssString=function(e,i,n){if(n=n||document,i&&t.hasCssString(i,n))return null;var r;i&&(e+="\n/*# sourceURL=ace/css/"+i+" */"),n.createStyleSheet?((r=n.createStyleSheet()).cssText=e,i&&(r.owningElement.id=i)):((r=t.createElement("style")).appendChild(n.createTextNode(e)),i&&(r.id=i),t.getDocumentHead(n).appendChild(r))},t.importCssStylsheet=function(e,i){if(i.createStyleSheet)i.createStyleSheet(e);else{var n=t.createElement("link");n.rel="stylesheet",n.href=e,t.getDocumentHead(i).appendChild(n)}},t.getInnerWidth=function(e){return parseInt(t.computedStyle(e,"paddingLeft"),10)+parseInt(t.computedStyle(e,"paddingRight"),10)+e.clientWidth},t.getInnerHeight=function(e){return parseInt(t.computedStyle(e,"paddingTop"),10)+parseInt(t.computedStyle(e,"paddingBottom"),10)+e.clientHeight},t.scrollbarWidth=function(e){var i=t.createElement("ace_inner");i.style.width="100%",i.style.minWidth="0px",i.style.height="200px",i.style.display="block";var n=t.createElement("ace_outer"),r=n.style;r.position="absolute",r.left="-10000px",r.overflow="hidden",r.width="200px",r.minWidth="0px",r.height="150px",r.display="block",n.appendChild(i);var o=e.documentElement;o.appendChild(n);var a=i.offsetWidth;r.overflow="scroll";var s=i.offsetWidth;return a==s&&(s=n.clientWidth),o.removeChild(n),a-s},"undefined"!=typeof document?(void 0!==window.pageYOffset?(t.getPageScrollTop=function(){return window.pageYOffset},t.getPageScrollLeft=function(){return window.pageXOffset}):(t.getPageScrollTop=function(){return document.body.scrollTop},t.getPageScrollLeft=function(){return document.body.scrollLeft}),window.getComputedStyle?t.computedStyle=function(e,t){return t?(window.getComputedStyle(e,"")||{})[t]||"":window.getComputedStyle(e,"")||{}}:t.computedStyle=function(e,t){return t?e.currentStyle[t]:e.currentStyle},t.setInnerHtml=function(e,t){var i=e.cloneNode(!1);return i.innerHTML=t,e.parentNode.replaceChild(i,e),i},"textContent"in document.documentElement?(t.setInnerText=function(e,t){e.textContent=t},t.getInnerText=function(e){return e.textContent}):(t.setInnerText=function(e,t){e.innerText=t},t.getInnerText=function(e){return e.innerText}),t.getParentWindow=function(e){return e.defaultView||e.parentWindow}):t.importCssString=function(){}})),ace.define("ace/lib/oop",["require","exports","module"],(function(e,t,i){t.inherits=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})},t.mixin=function(e,t){for(var i in t)e[i]=t[i];return e},t.implement=function(e,i){t.mixin(e,i)}})),ace.define("ace/lib/keys",["require","exports","module","ace/lib/fixoldbrowsers","ace/lib/oop"],(function(e,t,i){e("./fixoldbrowsers");var n=e("./oop"),r=function(){var e,t,i={MODIFIER_KEYS:{16:"Shift",17:"Ctrl",18:"Alt",224:"Meta"},KEY_MODS:{ctrl:1,alt:2,option:2,shift:4,super:8,meta:8,command:8,cmd:8},FUNCTION_KEYS:{8:"Backspace",9:"Tab",13:"Return",19:"Pause",27:"Esc",32:"Space",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"Left",38:"Up",39:"Right",40:"Down",44:"Print",45:"Insert",46:"Delete",96:"Numpad0",97:"Numpad1",98:"Numpad2",99:"Numpad3",100:"Numpad4",101:"Numpad5",102:"Numpad6",103:"Numpad7",104:"Numpad8",105:"Numpad9","-13":"NumpadEnter",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"Numlock",145:"Scrolllock"},PRINTABLE_KEYS:{32:" ",48:"0",49:"1",50:"2",51:"3",52:"4",53:"5",54:"6",55:"7",56:"8",57:"9",59:";",61:"=",65:"a",66:"b",67:"c",68:"d",69:"e",70:"f",71:"g",72:"h",73:"i",74:"j",75:"k",76:"l",77:"m",78:"n",79:"o",80:"p",81:"q",82:"r",83:"s",84:"t",85:"u",86:"v",87:"w",88:"x",89:"y",90:"z",107:"+",109:"-",110:".",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'",111:"/",106:"*"}};for(t in i.FUNCTION_KEYS)e=i.FUNCTION_KEYS[t].toLowerCase(),i[e]=parseInt(t,10);for(t in i.PRINTABLE_KEYS)e=i.PRINTABLE_KEYS[t].toLowerCase(),i[e]=parseInt(t,10);return n.mixin(i,i.MODIFIER_KEYS),n.mixin(i,i.PRINTABLE_KEYS),n.mixin(i,i.FUNCTION_KEYS),i.enter=i.return,i.escape=i.esc,i.del=i.delete,i[173]="-",function(){for(var e=["cmd","ctrl","alt","shift"],t=Math.pow(2,e.length);t--;)i.KEY_MODS[t]=e.filter((function(e){return t&i.KEY_MODS[e]})).join("-")+"-"}(),i.KEY_MODS[0]="",i.KEY_MODS[-1]="input-",i}();n.mixin(t,r),t.keyCodeToString=function(e){var t=r[e];return"string"!=typeof t&&(t=String.fromCharCode(e)),t.toLowerCase()}})),ace.define("ace/lib/useragent",["require","exports","module"],(function(e,t,i){if(t.OS={LINUX:"LINUX",MAC:"MAC",WINDOWS:"WINDOWS"},t.getOS=function(){return t.isMac?t.OS.MAC:t.isLinux?t.OS.LINUX:t.OS.WINDOWS},"object"==typeof navigator){var n=(navigator.platform.match(/mac|win|linux/i)||["other"])[0].toLowerCase(),r=navigator.userAgent;t.isWin="win"==n,t.isMac="mac"==n,t.isLinux="linux"==n,t.isIE="Microsoft Internet Explorer"==navigator.appName||navigator.appName.indexOf("MSAppHost")>=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;i<n;i++)e[i]&&"object"==typeof e[i]?t[i]=this.copyObject(e[i]):t[i]=e[i];return t},t.deepCopy=function e(t){if("object"!=typeof t||!t)return t;var i;if(Array.isArray(t)){i=[];for(var n=0;n<t.length;n++)i[n]=e(t[n]);return i}if("[object Object]"!==Object.prototype.toString.call(t))return t;for(var n in i={},t)i[n]=e(t[n]);return i},t.arrayToMap=function(e){for(var t={},i=0;i<e.length;i++)t[e[i]]=1;return t},t.createMap=function(e){var t=Object.create(null);for(var i in e)t[i]=e[i];return t},t.arrayRemove=function(e,t){for(var i=0;i<=e.length;i++)t===e[i]&&e.splice(i,1)},t.escapeRegExp=function(e){return e.replace(/([.*+?^${}()|[\]\/\\])/g,"\\$1")},t.escapeHTML=function(e){return e.replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(/</g,"<")},t.getMatchOffsets=function(e,t){var i=[];return e.replace(t,(function(e){i.push({offset:arguments[arguments.length-2],length:e.length})})),i},t.deferredCall=function(e){var t=null,i=function(){t=null,e()},n=function(e){return n.cancel(),t=setTimeout(i,e||0),n};return n.schedule=n,n.call=function(){return this.cancel(),e(),n},n.cancel=function(){return clearTimeout(t),t=null,n},n.isPending=function(){return t},n},t.delayedCall=function(e,t){var i=null,n=function(){i=null,e()},r=function(e){null==i&&(i=setTimeout(n,e||t))};return r.delay=function(e){i&&clearTimeout(i),i=setTimeout(n,e||t)},r.schedule=r,r.call=function(){this.cancel(),e()},r.cancel=function(){i&&clearTimeout(i),i=null},r.isPending=function(){return i},r}})),ace.define("ace/keyboard/textinput_ios",["require","exports","module","ace/lib/event","ace/lib/useragent","ace/lib/dom","ace/lib/lang","ace/lib/keys"],(function(e,t,i){var n=e("../lib/event"),r=e("../lib/useragent"),o=e("../lib/dom"),a=e("../lib/lang"),s=e("../lib/keys"),c=s.KEY_MODS,l=r.isChrome<18,u=r.isIE;t.TextInput=function(e,t){var i=o.createElement("textarea");i.className=r.isIOS?"ace_text-input ace_text-input-ios":"ace_text-input",r.isTouchPad&&i.setAttribute("x-palm-disable-auto-cap",!0),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 d="\n aaaa a\n",h=!1,p=!1,m=!1,f=!1,g="",_=!0;try{var b=document.activeElement===i}catch(j){}n.addListener(i,"blur",(function(e){t.onBlur(e),b=!1})),n.addListener(i,"focus",(function(e){b=!0,t.onFocus(e),w()})),this.focus=function(){if(g)return i.focus();i.style.position="fixed",i.focus()},this.blur=function(){i.blur()},this.isFocused=function(){return b};var v=a.delayedCall((function(){b&&w(_)})),y=a.delayedCall((function(){f||(i.value=d,b&&w())}));function w(e){if(!f){if(f=!0,N)t=0,n=e?0:i.value.length-1;else var t=4,n=5;try{i.setSelectionRange(t,n)}catch(j){}f=!1}}function x(){f||(i.value=d,r.isWebKit&&y.schedule())}r.isWebKit||t.addEventListener("changeSelection",(function(){t.selection.isEmpty()!=_&&(_=!_,v.schedule())})),x(),b&&t.onFocus();var N=null;this.setInputHandler=function(e){N=e},this.getInputHandler=function(){return N};var k=!1,A=function(e){4===i.selectionStart&&5===i.selectionEnd||(N&&(e=N(e),N=null),m?(w(),e&&t.onPaste(e),m=!1):e==d.substr(0)&&4===i.selectionStart?k?t.execCommand("del",{source:"ace"}):t.execCommand("backspace",{source:"ace"}):h||(e.substring(0,9)==d&&e.length>d.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),k&&(k=!1))},C=function(e){if(!f){var t=i.value;A(t),x()}},O=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 O(o,t,!0)}}},S=function(e,o){var a=t.getCopyText();if(!a)return n.preventDefault(e);O(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=O(e);"string"==typeof o?(o&&t.onPaste(o,e),r.isIE&&setTimeout(w),n.preventDefault(e)):(i.value="",m=!0)}));var E,F=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(),A(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(F,50);function L(){clearTimeout(E),E=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(F,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){k=!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(E),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 T=null,R=!1;e.addEventListener("keydown",(function(e){T&&clearTimeout(T),R=!0})),e.addEventListener("keyup",(function(e){T=setTimeout((function(){R=!1}),100)}));var $=function(e){if(document.activeElement===i&&!R){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",$),t.on("destroy",(function(){document.removeEventListener("selectionchange",$)}))}}})),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(R){}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(R){}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)},k=function(e){if(!p){var t=i.value;N(t),y()}},A=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 A(o,t,!0)}}},C=function(e,r){var o=t.getCopyText();if(!o)return n.preventDefault(e);A(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()})))},O=function(e){C(e,!0)},S=function(e){C(e,!1)},E=function(e){var o=A(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",k),n.addListener(i,"cut",O),n.addListener(i,"copy",S),n.addListener(i,"paste",E),"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:E(e);break;case 88:O(e)}}));var F,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)&&k()}},L=a.delayedCall(D,50);function M(){clearTimeout(F),F=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(F),r.isWin&&n.capture(t.container,h,M))},this.onContextMenuClose=M;var T=function(e){t.textInput.onContextMenu(e),M()};n.addListener(i,"mouseup",T),n.addListener(i,"mousedown",(function(e){e.preventDefault(),M()})),n.addListener(t.renderer.scroller,"contextmenu",T),n.addListener(i,"contextmenu",T)}})),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("<br/>"),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<s.x.right?-3:2),d/r<=1&&(h.row+=s.y.top<s.y.bottom?-1:1);var p=e.row!=h.row,m=e.column!=h.column,g=!i||e.row!=i.row;p||m&&!g?f?n-f>=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",k)}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",k)}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()&&A(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()&&A(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 k(){null==N&&(N=setTimeout((function(){null!=N&&a&&x()}),20))}function A(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;a<i.length&&(i[a](t,this),!t.propagationStopped);a++);return n&&!t.defaultPrevented?n(t,this):void 0}},n._signal=function(e,t){var i=(this._eventRegistry||{})[e];if(i){i=i.slice();for(var n=0;n<i.length;n++)i[n](t,this)}},n.once=function(e,t){var i=this;t&&this.addEventListener(e,(function n(){i.removeEventListener(e,n),t.apply(null,arguments)}))},n.setDefaultHandler=function(e,t){var i=this._defaultHandlers;if(i||(i=this._defaultHandlers={_disabled_:{}}),i[e]){var n=i[e],r=i._disabled_[e];r||(i._disabled_[e]=r=[]),r.push(n);var o=r.indexOf(t);-1!=o&&r.splice(o,1)}i[e]=t},n.removeDefaultHandler=function(e,t){var i=this._defaultHandlers;if(i){var n=i._disabled_[e];if(i[e]==t)i[e],n&&this.setDefaultHandler(e,n.pop());else if(n){var r=n.indexOf(t);-1!=r&&n.splice(r,1)}}},n.on=n.addEventListener=function(e,t,i){this._eventRegistry=this._eventRegistry||{};var n=this._eventRegistry[e];return n||(n=this._eventRegistry[e]=[]),-1==n.indexOf(t)&&n[i?"unshift":"push"](t),t},n.off=n.removeListener=n.removeEventListener=function(e,t){this._eventRegistry=this._eventRegistry||{};var i=this._eventRegistry[e];if(i){var n=i.indexOf(t);-1!==n&&i.splice(n,1)}},n.removeAllListeners=function(e){this._eventRegistry&&(this._eventRegistry[e]=[])},t.EventEmitter=n})),ace.define("ace/lib/app_config",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],(function(e,t,i){var n=e("./oop"),r=e("./event_emitter").EventEmitter,o={setOptions:function(e){Object.keys(e).forEach((function(t){this.setOption(t,e[t])}),this)},getOptions:function(e){var t={};return e?Array.isArray(e)||(t=e,e=Object.keys(t)):e=Object.keys(this.$options),e.forEach((function(e){t[e]=this.getOption(e)}),this),t},setOption:function(e,t){if(this["$"+e]!==t){var i=this.$options[e];if(!i)return a('misspelled option "'+e+'"');if(i.forwardTo)return this[i.forwardTo]&&this[i.forwardTo].setOption(e,t);i.handlesSet||(this["$"+e]=t),i&&i.set&&i.set.call(this,t)}},getOption:function(e){var t=this.$options[e];return t?t.forwardTo?this[t.forwardTo]&&this[t.forwardTo].getOption(e):t&&t.get?t.get.call(this):this["$"+e]:a('misspelled option "'+e+'"')}};function a(e){"undefined"!=typeof console&&console.warn&&console.warn.apply(console,arguments)}function s(e,t){var i=new Error(e);i.data=t,"object"==typeof console&&console.error&&console.error(i),setTimeout((function(){throw i}))}var c=function(){this.$defaultOptions={}};(function(){n.implement(this,r),this.defineOptions=function(e,t,i){return e.$options||(this.$defaultOptions[t]=e.$options={}),Object.keys(i).forEach((function(t){var n=i[t];"string"==typeof n&&(n={forwardTo:n}),n.name||(n.name=t),e.$options[n.name]=n,"initialValue"in n&&(e["$"+n.name]=n.initialValue)})),n.implement(e,o),this},this.resetOptions=function(e){Object.keys(e.$options).forEach((function(t){var i=e.$options[t];"value"in i&&e.setOption(t,i.value)}))},this.setDefaultValue=function(e,t,i){var n=this.$defaultOptions[e]||(this.$defaultOptions[e]={});n[t]&&(n.forwardTo?this.setDefaultValue(n.forwardTo,t,i):n[t].value=i)},this.setDefaultValues=function(e,t){Object.keys(t).forEach((function(i){this.setDefaultValue(e,i,t[i])}),this)},this.warn=a,this.reportError=s}).call(c.prototype),t.AppConfig=c})),ace.define("ace/config",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/lib/net","ace/lib/app_config"],(function(e,t,i){var n=e("./lib/lang");e("./lib/oop");var r=e("./lib/net"),o=e("./lib/app_config").AppConfig;i.exports=t=new o;var a=function(){return this||"undefined"!=typeof window&&window}(),s={packaged:!1,workerPath:null,modePath:null,themePath:null,basePath:"",suffix:".js",$moduleUrls:{}};function c(n){if(a&&a.document){s.packaged=n||e.packaged||i.packaged||a.define&&(void 0).packaged;for(var r,o={},c="",l=document.currentScript||document._currentScript,u=(l&&l.ownerDocument||document).getElementsByTagName("script"),d=0;d<u.length;d++){var h=u[d],p=h.src||h.getAttribute("src");if(p){for(var m=h.attributes,f=0,g=m.length;f<g;f++){var _=m[f];0===_.name.indexOf("data-ace-")&&(o[(r=_.name.replace(/^data-ace-/,""),r.replace(/-(.)/g,(function(e,t){return t.toUpperCase()})))]=_.value)}var b=p.match(/^(.*)\/ace(\-\w+)?\.js(\?|$)/);b&&(c=b[1])}}for(var v in c&&(o.base=o.base||c,o.packaged=!0),o.basePath=o.base,o.workerPath=o.workerPath||o.base,o.modePath=o.modePath||o.base,o.themePath=o.themePath||o.base,delete o.base,o)void 0!==o[v]&&t.set(v,o[v])}}t.get=function(e){if(!s.hasOwnProperty(e))throw new Error("Unknown config key: "+e);return s[e]},t.set=function(e,t){if(!s.hasOwnProperty(e))throw new Error("Unknown config key: "+e);s[e]=t},t.all=function(){return n.copyObject(s)},t.moduleUrl=function(e,t){if(s.$moduleUrls[e])return s.$moduleUrls[e];var i=e.split("/"),n="snippets"==(t=t||i[i.length-2]||"")?"/":"-",r=i[i.length-1];if("worker"==t&&"-"==n){var o=new RegExp("^"+t+"[\\-_]|[\\-_]"+t+"$","g");r=r.replace(o,"")}(!r||r==t)&&i.length>1&&(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))if(1!=e||1!=n||a)for(var o,s,c,l,u=i.length,d=0;d<u;){if(t[d]>=e){for(o=d+1;o<u&&t[o]>=e;)o++;for(s=d,c=o-1;s<c;s++,c--)l=i[s],i[s]=i[c],i[c]=l;d=o}d++}else i.reverse()}function f(e,t,i,r){var c,l,h,p,m=t[r];switch(m){case 0:case 1:o=!1;case 4:case 3:return m;case 2:return o?3:2;case 7:return o=!0,1;case 8:return 4;case 9:return r<1||r+1>=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+1<t.length&&2==t[r+1]?2:4;case u:if(r>0&&2==i[r-1])return 2;if(o)return 4;for(p=r+1,h=t.length;p<h&&t[p]==u;)p++;return p<h&&2==t[p]?2:4;case 12:for(h=t.length,p=r+1;p<h&&12==t[p];)p++;if(p<h){var f=e[r],g=f>=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=[];y<i;y++)u[y]=g(e[y]);for(r=n,o=!1,a=!1,s=!1,w=0;w<i;w++){if(h=_,x[w]=p=f(e,u,x,w),b=240&(_=d[h][p]),_&=15,t[w]=m=d[_][5],b>0)if(16==b){for(y=v;y<w;y++)t[y]=1;v=-1}else v=-1;if(d[_][6])-1==v&&(v=w);else if(v>-1){for(y=v;y<w;y++)t[y]=m;v=-1}5==u[w]&&(t[w]=0),r|=m}if(s)for(y=0;y<i;y++)if(6==u[y]){t[y]=n;for(var N=y-1;N>=0&&8==u[N];N--)t[N]=n}}(h,b,h.length,i);for(var v=0;v<p.length;p[v]=v,v++);m(2,b,p),m(1,b,p);for(v=0;v<p.length-1;v++)3===i[v]?b[v]=t.AN:1===b[v]&&(i[v]>7&&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<p.length;v++)_[v]=b[p[v]];return{logicalFromVisual:p,bidiLevels:_}},t.hasBidiCharacters=function(e,t){for(var i=!1,n=0;n<e.length;n++)t[n]=g(e.charAt(n)),i||1!=t[n]&&7!=t[n]||(i=!0);return i},t.getVisualFromLogicalIdx=function(e,t){for(var i=0;i<t.logicalFromVisual.length;i++)if(t.logicalFromVisual[i]==e)return i;return 0}})),ace.define("ace/bidihandler",["require","exports","module","ace/lib/bidiutil","ace/lib/lang","ace/lib/useragent"],(function(e,t,i){var n=e("./lib/bidiutil"),r=e("./lib/lang"),o=e("./lib/useragent"),a=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/,s=function(e){this.session=e,this.bidiMap={},this.currentRow=null,this.bidiUtil=n,this.charWidths=[],this.EOL="¬",this.showInvisibles=!0,this.isRtlDir=!1,this.line="",this.wrapIndent=0,this.isLastRow=!1,this.EOF="¶",this.seenBidi=!1};(function(){this.isBidiRow=function(e,t,i){return!!this.seenBidi&&(e!==this.currentRow&&(this.currentRow=e,this.updateRowLine(t,i),this.updateBidiMap()),this.bidiMap.bidiLevels)},this.onChange=function(e){this.seenBidi?this.currentRow=null:"insert"==e.action&&a.test(e.lines.join("\n"))&&(this.seenBidi=!0,this.currentRow=null)},this.getDocumentRow=function(){var e=0,t=this.session.$screenRowCache;if(t.length){var i=this.session.$getRowCacheIndex(t,this.currentRow);i>=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=t<i.length?this.line.substring(i[t-1],i[i.length-1]):this.line.substring(i[i.length-1])):this.line=this.line.substring(0,i[t]))}var o,a=this.session,s=0;this.line=this.line.replace(/\t|[\u1100-\u2029, \u202F-\uFFE6]/g,(function(e,t){return"\t"===e||a.isFullWidth(e.charCodeAt(0))?(o="\t"===e?a.getScreenTabSize(t+s):2,s+=o-1,r.stringRepeat(n.DOT,o)):e}))},this.updateBidiMap=function(){var e=[],t=this.isLastRow?this.EOF:this.EOL,i=this.line+(this.showInvisibles?t:n.DOT);n.hasBidiCharacters(i,e)?this.bidiMap=n.doBidiReorder(i,e,this.isRtlDir):this.bidiMap={}},this.markAsDirty=function(){this.currentRow=null},this.updateCharacterWidths=function(e){if(this.seenBidi&&this.characterWidth!==e.$characterSize.width){var t=this.characterWidth=e.$characterSize.width,i=e.$measureCharWidth("ה");this.charWidths[n.L]=this.charWidths[n.EN]=this.charWidths[n.ON_R]=t,this.charWidths[n.R]=this.charWidths[n.AN]=i,this.charWidths[n.R_H]=o.isChrome?i:.45*i,this.charWidths[n.B]=0,this.currentRow=null}},this.getShowInvisibles=function(){return this.showInvisibles},this.setShowInvisibles=function(e){this.showInvisibles=e,this.currentRow=null},this.setEolChar=function(e){this.EOL=e},this.setTextDir=function(e){this.isRtlDir=e},this.getPosLeft=function(e){e-=this.wrapIndent;var t=n.getVisualFromLogicalIdx(e>0?e-1:0,this.bidiMap),i=this.bidiMap.bidiLevels,r=0;0===e&&i[t]%2!=0&&t++;for(var o=0;o<t;o++)r+=this.charWidths[i[o]];return 0!==e&&i[t]%2==0&&(r+=this.charWidths[i[t]]),this.wrapIndent&&(r+=this.wrapIndent*this.charWidths[n.L]),r},this.getSelections=function(e,t){for(var i,r,o=this.bidiMap,a=o.bidiLevels,s=this.wrapIndent*this.charWidths[n.L],c=[],l=Math.min(e,t)-this.wrapIndent,u=Math.max(e,t)-this.wrapIndent,d=!1,h=!1,p=0,m=0;m<a.length;m++)r=o.logicalFromVisual[m],i=a[m],(d=r>=l&&r<u)&&!h?p=s:!d&&h&&c.push({left:p,width:s-p}),s+=this.charWidths[i],h=d;return d&&m===a.length&&c.push({left:p,width:s-p}),c},this.offsetToCol=function(e){var t=0,i=(e=Math.max(e,0),0),r=0,o=this.bidiMap.bidiLevels,a=this.charWidths[o[r]];for(this.wrapIndent&&(e-=this.wrapIndent*this.charWidths[n.L]);e>i+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?(e<i&&r--,t=this.bidiMap.logicalFromVisual[r]):r>0&&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?e<this.start.row?-1:e>this.end.row?1:this.start.row===e?t>=this.start.column?0:-1:this.end.row===e?t<=this.end.column?0:1:0:t<this.start.column?-1:t>this.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.row<e)i={row:e,column:0};if(this.start.row>t)var r={row:t+1,column:0};else if(this.start.row<e)r={row:e,column:0};return n.fromPoints(r||this.start,i||this.end)},this.extend=function(e,t){var i=this.compare(e,t);if(0==i)return this;if(-1==i)var r={row:e,column:t};else var o={row:e,column:t};return n.fromPoints(r||this.start,o||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 n.fromPoints(this.start,this.end)},this.collapseRows=function(){return 0==this.end.column?new n(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new n(this.start.row,0,this.end.row,0)},this.toScreenRange=function(e){var t=e.documentToScreenPosition(this.start),i=e.documentToScreenPosition(this.end);return new n(t.row,t.column,i.row,i.column)},this.moveBy=function(e,t){this.start.row+=e,this.start.column+=t,this.end.row+=e,this.end.column+=t}}).call(n.prototype),n.fromPoints=function(e,t){return new n(e.row,e.column,t.row,t.column)},n.comparePoints=function(e,t){return e.row-t.row||e.column-t.column},n.comparePoints=function(e,t){return e.row-t.row||e.column-t.column},t.Range=n})),ace.define("ace/selection",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/lib/event_emitter","ace/range"],(function(e,t,i){var n=e("./lib/oop"),r=e("./lib/lang"),o=e("./lib/event_emitter").EventEmitter,a=e("./range").Range,s=function(e){this.session=e,this.doc=e.getDocument(),this.clearSelection(),this.lead=this.selectionLead=this.doc.createAnchor(0,0),this.anchor=this.selectionAnchor=this.doc.createAnchor(0,0);var t=this;this.lead.on("change",(function(e){t._emit("changeCursor"),t.$isEmpty||t._emit("changeSelection"),t.$keepDesiredColumnOnChange||e.old.column==e.value.column||(t.$desiredColumn=null)})),this.selectionAnchor.on("change",(function(){t.$isEmpty||t._emit("changeSelection")}))};(function(){n.implement(this,o),this.isEmpty=function(){return this.$isEmpty||this.anchor.row==this.lead.row&&this.anchor.column==this.lead.column},this.isMultiLine=function(){return!this.isEmpty()&&this.getRange().isMultiLine()},this.getCursor=function(){return this.lead.getPosition()},this.setSelectionAnchor=function(e,t){this.anchor.setPosition(e,t),this.$isEmpty&&(this.$isEmpty=!1,this._emit("changeSelection"))},this.getSelectionAnchor=function(){return this.$isEmpty?this.getSelectionLead():this.anchor.getPosition()},this.getSelectionLead=function(){return this.lead.getPosition()},this.shiftSelection=function(e){if(this.$isEmpty)this.moveCursorTo(this.lead.row,this.lead.column+e);else{var t=this.getSelectionAnchor(),i=this.getSelectionLead(),n=this.isBackwards();n&&0===t.column||this.setSelectionAnchor(t.row,t.column+e),(n||0!==i.column)&&this.$moveSelection((function(){this.moveCursorTo(i.row,i.column+e)}))}},this.isBackwards=function(){var e=this.anchor,t=this.lead;return e.row>t.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.row<this.doc.getLength()-1&&this.moveCursorTo(this.lead.row+1,0);else{var i=this.session.getTabSize();t=this.lead;this.wouldMoveIntoSoftTab(t,i,1)&&!this.session.getNavigateWithinSoftTabs()?this.moveCursorBy(0,i):this.moveCursorBy(0,1)}},this.moveCursorLineStart=function(){var e=this.lead.row,t=this.lead.column,i=this.session.documentToScreenRow(e,t),n=this.session.screenToDocumentPosition(i,0),r=this.session.getDisplayLine(e,null,n.row,n.column).match(/^\s*/);r[0].length==t||this.session.$useEmacsStyleLineStart||(n.column+=r[0].length),this.moveCursorToPosition(n)},this.moveCursorLineEnd=function(){var e=this.lead,t=this.session.getDocumentLastRowColumnPosition(e.row,e.column);if(this.lead.column==t.column){var i=this.session.getLine(t.row);if(t.column==i.length){var n=i.search(/\s+$/);n>0&&(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(e<this.doc.getLength()-1&&this.moveCursorWordRight());this.session.tokenRe.exec(n)&&(t+=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0),this.moveCursorTo(e,t)}},this.moveCursorLongWordLeft=function(){var e,t=this.lead.row,i=this.lead.column;if(e=this.session.getFoldAt(t,i,-1))this.moveCursorTo(e.start.row,e.start.column);else{var n=this.session.getFoldStringAt(t,i,-1);null==n&&(n=this.doc.getLine(t).substring(0,i));var o=r.stringReverse(n);if(this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0,this.session.nonTokenRe.exec(o)&&(i-=this.session.nonTokenRe.lastIndex,o=o.slice(this.session.nonTokenRe.lastIndex),this.session.nonTokenRe.lastIndex=0),i<=0)return this.moveCursorTo(t,0),this.moveCursorLeft(),void(t>0&&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(e<o&&/^\s*$/.test(n));/^\s+/.test(n)||(n=""),t=0}var a=this.$shortWordEndIndex(n);this.moveCursorTo(e,t+a)},this.moveCursorShortWordLeft=function(){var e,t=this.lead.row,i=this.lead.column;if(e=this.session.getFoldAt(t,i,-1))return this.moveCursorTo(e.start.row,e.start.column);var n=this.session.getLine(t).substring(0,i);if(0===i){do{t--,n=this.doc.getLine(t)}while(t>0&&/^\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;c<i.length;c++){var l=i[c];if(l.defaultToken&&(o.defaultToken=l.defaultToken),l.caseInsensitive&&(a="gi"),null!=l.regex){l.regex instanceof RegExp&&(l.regex=l.regex.toString().slice(1,-1));var u=l.regex,d=new RegExp("(?:("+u+")|(.))").exec("a").length-2;Array.isArray(l.token)?1==l.token.length||1==d?l.token=l.token[0]:d-1!=l.token.length?(this.reportError("number of classes and regexp groups doesn't match",{rule:l,groupCount:d-1}),l.token=l.token[0]):(l.tokenArray=l.token,l.token=null,l.onMatch=this.$arrayTokens):"function"!=typeof l.token||l.onMatch||(l.onMatch=d>1?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;r<o;r++)t[r]&&(n[n.length]={type:i[r],value:t[r]});return n},this.$arrayTokens=function(e){if(!e)return[];var t=this.splitRegex.exec(e);if(!t)return"text";for(var i=[],n=this.tokenArray,r=0,o=n.length;r<o;r++)t[r+1]&&(i[i.length]={type:n[r],value:t[r+1]});return i},this.removeCapturingGroups=function(e){return e.replace(/\[(?:\\.|[^\]])*?\]|\\.|\(\?[:=!]|(\()/g,(function(e,t){return t?"(?:":e}))},this.createSplitterRegexp=function(e,t){if(-1!=e.indexOf("(?=")){var i=0,n=!1,r={};e.replace(/(\\.)|(\((?:\?[=!])?)|(\))|([\[\]])/g,(function(e,t,o,a,s,c){return n?n="]"!=s:s?n=!0:a?(i==r.stack&&(r.end=c+1,r.stack=-1),i--):o&&(i++,1!=o.length&&(r.stack=i,r.start=c)),e})),null!=r.end&&/^\)*$/.test(e.substr(r.end))&&(e=e.substring(0,r.start)+e.substr(r.end))}return"^"!=e.charAt(0)&&(e="^"+e),"$"!=e.charAt(e.length-1)&&(e+="$"),new RegExp(e,(t||"").replace("g",""))},this.getLineTokens=function(e,t){if(t&&"string"!=typeof t){var i=t.slice(0);"#tmp"===(t=i[0])&&(i.shift(),t=i.shift())}else i=[];var n=t||"start",o=this.states[n];o||(n="start",o=this.states[n]);var a=this.matchMappings[n],s=this.regExps[n];s.lastIndex=0;for(var c,l=[],u=0,d=0,h={type:null,value:""};c=s.exec(e);){var p=a.defaultToken,m=null,f=c[0],g=s.lastIndex;if(g-f.length>u){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;b<c.length-2;b++)if(void 0!==c[b+1]){p=(m=o[a[b]]).onMatch?m.onMatch(f,n,i,e):m.token,m.next&&(n="string"==typeof m.next?m.next:m.next(n,i),(o=this.states[n])||(this.reportError("state doesn't exist",n),n="start",o=this.states[n]),a=this.matchMappings[n],u=g,(s=this.regExps[n]).lastIndex=g),m.consumeLineEnd&&(u=g);break}if(f)if("string"==typeof p)m&&!1===m.merge||h.type!==p?(h.type&&l.push(h),h={type:p,value:f}):h.value+=f;else if(p){h.type&&l.push(h),h={type:null,value:""};for(b=0;b<p.length;b++)l.push(p[b])}if(u==e.length)break;if(u=g,d++>r){for(d>2*e.length&&this.reportError("infinite loop with in ace tokenizer",{startState:t,line:e});u<e.length;)h.type&&l.push(h),h={value:e.substring(u,u+=2e3),type:"overflow"};n="start",i=[];break}}return h.type&&l.push(h),i.length>1&&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<n.length;r++){var o=n[r];(o.next||o.onMatch)&&("string"==typeof o.next&&0!==o.next.indexOf(t)&&(o.next=t+o.next),o.nextState&&0!==o.nextState.indexOf(t)&&(o.nextState=t+o.nextState))}this.$rules[t+i]=n}else for(var i in e)this.$rules[i]=e[i]},this.getRules=function(){return this.$rules},this.embedRules=function(e,t,i,r,o){var a="function"==typeof e?(new e).getRules():e;if(r)for(var s=0;s<r.length;s++)r[s]=t+r[s];else for(var c in r=[],a)r.push(t+c);if(this.addRules(a,t),i){var l=Array.prototype[o?"push":"unshift"];for(s=0;s<r.length;s++)l.apply(this.$rules[r[s]],n.deepCopy(i))}this.$embeds||(this.$embeds=[]),this.$embeds.push(t)},this.getEmbeds=function(){return this.$embeds};var e=function(e,t){return("start"!=e||t.length)&&t.unshift(this.nextState,e),this.nextState},t=function(e,t){return t.shift(),t.shift()||"start"};this.normalizeRules=function(){var i=0,n=this.$rules;Object.keys(n).forEach((function r(o){var a=n[o];a.processed=!0;for(var s=0;s<a.length;s++){var c=a[s],l=null;Array.isArray(c)&&(l=c,c={}),!c.regex&&c.start&&(c.regex=c.start,c.next||(c.next=[]),c.next.push({defaultToken:c.token},{token:c.token+".end",regex:c.end||c.start,next:"pop"}),c.token=c.token+".start",c.push=!0);var u=c.next||c.push;if(u&&Array.isArray(u)){var d=c.stateName;d||("string"!=typeof(d=c.token)&&(d=d[0]||""),n[d]&&(d+=i++)),n[d]=u,c.next=d,r(d)}else"pop"==u&&(c.next=t);if(c.push&&(c.nextState=c.next||c.push,c.next=e,delete c.push),c.rules)for(var h in c.rules)n[h]?n[h].push&&n[h].push.apply(n[h],c.rules[h]):n[h]=c.rules[h];var p="string"==typeof c?c:c.include;if(p&&(l=Array.isArray(p)?p.map((function(e){return n[e]})):n[p]),l){var m=[s,1].concat(l);c.noEscape&&(m=m.filter((function(e){return!e.next}))),a.splice.apply(a,m),s--}c.keywordMap&&(c.token=this.createKeywordMapper(c.keywordMap,c.defaultToken||"text",c.caseInsensitive),delete c.defaultToken)}}),this)},this.createKeywordMapper=function(e,t,i,n){var r=Object.create(null);return Object.keys(e).forEach((function(t){var o=e[t];i&&(o=o.toLowerCase());for(var a=o.split(n||"|"),s=a.length;s--;)r[a[s]]=t})),Object.getPrototypeOf(r)&&(r.__proto__=null),this.$keywordList=Object.keys(r),e=null,i?function(e){return r[e.toLowerCase()]||t}:function(e){return r[e]||t}},this.getKeywords=function(){return this.$keywords}}).call(r.prototype),t.TextHighlightRules=r})),ace.define("ace/mode/behaviour",["require","exports","module"],(function(e,t,i){var n=function(){this.$behaviours={}};(function(){this.add=function(e,t,i){switch(void 0){case this.$behaviours:this.$behaviours={};case this.$behaviours[e]:this.$behaviours[e]={}}this.$behaviours[e][t]=i},this.addBehaviours=function(e){for(var t in e)for(var i in e[t])this.add(t,i,e[t][i])},this.remove=function(e){this.$behaviours&&this.$behaviours[e]&&delete this.$behaviours[e]},this.inherit=function(e,t){if("function"==typeof e)var i=(new e).getBehaviours(t);else i=e.getBehaviours(t);this.addBehaviours(i)},this.getBehaviours=function(e){if(e){for(var t={},i=0;i<e.length;i++)this.$behaviours[e[i]]&&(t[e[i]]=this.$behaviours[e[i]]);return t}return this.$behaviours}}).call(n.prototype),t.Behaviour=n})),ace.define("ace/token_iterator",["require","exports","module","ace/range"],(function(e,t,i){var n=e("./range").Range,r=function(e,t,i){this.$session=e,this.$row=t,this.$rowTokens=e.getTokens(t);var n=e.getTokenAt(t,i);this.$tokenIndex=n?n.index:-1};(function(){this.stepBackward=function(){for(this.$tokenIndex-=1;this.$tokenIndex<0;){if(this.$row-=1,this.$row<0)return this.$row=0,null;this.$rowTokens=this.$session.getTokens(this.$row),this.$tokenIndex=this.$rowTokens.length-1}return this.$rowTokens[this.$tokenIndex]},this.stepForward=function(){var e;for(this.$tokenIndex+=1;this.$tokenIndex>=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;r<n.length;r++)if("comment"===n[r].type)return!0}}function y(e){for(var t=i;t<=n;t++)e(r.getLine(t),t)}var w=1/0;y((function(e,t){var i=e.search(/\S/);-1!==i?(i<c&&(c=i),a&&!v(e,t)&&(a=!1)):w>e.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;t<i.length;t++)!function(e){var n=i[t],r=e[n];e[i[t]]=function(){return this.$delegator(n,arguments,r)}}(this)},this.$delegator=function(e,t,i){var n=t[0];"string"!=typeof n&&(n=n[0]);for(var r=0;r<this.$embeds.length;r++)if(this.$modes[this.$embeds[r]]){var o=n.split(this.$embeds[r]);if(!o[0]&&o[1]){t[0]=o[1];var a=this.$modes[this.$embeds[r]];return a[e].apply(a,t)}}var s=i.apply(this,t);return i?s:void 0},this.transformAction=function(e,t,i,n,r){if(this.$behaviour){var o=this.$behaviour.getBehaviours();for(var a in o)if(o[a][t]){var s=o[a][t].apply(this,arguments);if(s)return s}}},this.getKeywords=function(e){if(!this.completionKeywords){var t=this.$tokenizer.rules,i=[];for(var n in t)for(var r=t[n],o=0,a=r.length;o<a;o++)if("string"==typeof r[o].token)/keyword|support|storage/.test(r[o].token)&&i.push(r[o].regex);else if("object"==typeof r[o].token)for(var s=0,c=r[o].token.length;s<c;s++)if(/keyword|support|storage/.test(r[o].token[s])){n=r[o].regex.match(/\(.+?\)/g)[s];i.push(n.substr(1,n.length-2))}this.completionKeywords=i}return e?i.concat(this.$keywordList||[]):this.$keywordList},this.$createKeywordList=function(){return this.$highlightRules||this.getTokenizer(),this.$keywordList=this.$highlightRules.$keywordList||[]},this.getCompletions=function(e,t,i,n){return(this.$keywordList||this.$createKeywordList()).map((function(e){return{name:e,value:e,score:0,meta:"keyword"}}))},this.$id="ace/mode/text"}).call(u.prototype),t.Mode=u})),ace.define("ace/apply_delta",["require","exports","module"],(function(e,t,i){t.applyDelta=function(e,t,i){var n=t.start.row,r=t.start.column,o=e[n]||"";switch(t.action){case"insert":if(1===t.lines.length)e[n]=o.substring(0,r)+t.lines[0]+o.substring(r);else{var a=[n,1].concat(t.lines);e.splice.apply(e,a),e[n]=o.substring(0,r)+e[n],e[n+t.lines.length-1]+=o.substring(r)}break;case"remove":var s=t.end.column,c=t.end.row;n===c?e[n]=o.substring(0,r)+o.substring(s):e.splice(n,c-n+1,o.substring(0,r)+e[c].substring(s))}}})),ace.define("ace/anchor",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],(function(e,t,i){var n=e("./lib/oop"),r=e("./lib/event_emitter").EventEmitter,o=t.Anchor=function(e,t,i){this.$onChange=this.onChange.bind(this),this.attach(e),void 0===i?this.setPosition(t.row,t.column):this.setPosition(t,i)};(function(){function e(e,t,i){var n=i?e.column<=t.column:e.column<t.column;return e.row<t.row||e.row==t.row&&n}n.implement(this,r),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.$insertRight=!1,this.onChange=function(t){if(!(t.start.row==t.end.row&&t.start.row!=this.row||t.start.row>this.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()))<this.getLength()?(t=t.concat([""]),i=0):(t=[""].concat(t),e--,i=this.$lines[e].length),this.insertMergedLines({row:e,column:i},t)},this.insertMergedLines=function(e,t){var i=this.clippedPos(e.row,e.column),n={row:i.row+t.length-1,column:(1==t.length?i.column:0)+t[t.length-1].length};return this.applyDelta({start:i,end:n,action:"insert",lines:t}),this.clonePos(n)},this.remove=function(e){var t=this.clippedPos(e.start.row,e.start.column),i=this.clippedPos(e.end.row,e.end.column);return this.applyDelta({start:t,end:i,action:"remove",lines:this.getLinesForRange({start:t,end:i})}),this.clonePos(t)},this.removeInLine=function(e,t,i){var n=this.clippedPos(e,t),r=this.clippedPos(e,i);return this.applyDelta({start:n,end:r,action:"remove",lines:this.getLinesForRange({start:n,end:r})},!0),this.clonePos(n)},this.removeFullLines=function(e,t){e=Math.min(Math.max(0,e),this.getLength()-1);var i=(t=Math.min(Math.max(0,t),this.getLength()-1))==this.getLength()-1&&e>0,n=t<this.getLength()-1,r=i?e-1:e,o=i?this.getLine(r).length:0,s=n?t+1:t,c=n?0:this.getLine(s).length,l=new a(r,o,s,c),u=this.$lines.slice(e,t+1);return this.applyDelta({start:l.start,end:l.end,action:"remove",lines:this.getLinesForRange(l)}),u},this.removeNewLine=function(e){e<this.getLength()-1&&e>=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<e.length;t++)this.applyDelta(e[t])},this.revertDeltas=function(e){for(var t=e.length-1;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;r<o;r++)if((e-=i[r].length+n)<0)return{row:r,column:e+i[r].length+n};return{row:o-1,column:i[o-1].length}},this.positionToIndex=function(e,t){for(var i=this.$lines||this.getAllLines(),n=this.getNewLineCharacter().length,r=0,o=Math.min(e.row,i.length),a=t||0;a<o;++a)r+=i[a].length+n;return r+e.column}}).call(c.prototype),t.Document=c})),ace.define("ace/background_tokenizer",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],(function(e,t,i){var n=e("./lib/oop"),r=e("./lib/event_emitter").EventEmitter,o=function(e,t){this.running=!1,this.lines=[],this.states=[],this.currentLine=0,this.tokenizer=e;var i=this;this.$worker=function(){if(i.running){for(var e=new Date,t=i.currentLine,n=-1,r=i.doc,o=t;i.lines[t];)t++;var a=r.getLength(),s=0;for(i.running=!1;t<a;){i.$tokenizeRow(t),n=t;do{t++}while(i.lines[t]);if(++s%5==0&&new Date-e>20){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.row<this.startRow||e.endRow>this.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;c<a.length;c++){if(-1==(r=(n=a[c]).range.compareStart(t,i)))return void e(null,t,i,o,s);if(!e(null,n.start.row,n.start.column,o,s)&&e(n.placeholder,n.start.row,n.start.column,o)||0===r)return;s=!n.sameRow,o=n.end.column}e(null,t,i,o,s)},this.getNextFoldTo=function(e,t){for(var i,n,r=0;r<this.folds.length;r++){if(-1==(n=(i=this.folds[r]).range.compareEnd(e,t)))return{fold:i,kind:"after"};if(0===n)return{fold:i,kind:"inside"}}return null},this.addRemoveChars=function(e,t,i){var n,r,o=this.getNextFoldTo(e,t);if(o)if(n=o.fold,"inside"==o.kind&&n.start.column!=t&&n.start.row!=e)window.console&&window.console.log(e,t,n);else if(n.start.row==e){var a=(r=this.folds).indexOf(n);for(0===a&&(this.start.column+=i);a<r.length;a++){if((n=r[a]).start.column+=i,!n.sameRow)return;n.end.column+=i}this.end.column+=i}},this.split=function(e,t){var i=this.getNextFoldTo(e,t);if(!i||"inside"==i.kind)return null;var n=i.fold,o=this.folds,a=this.foldData,s=o.indexOf(n),c=o[s-1];this.end.row=c.end.row,this.end.column=c.end.column;var l=new r(a,o=o.splice(s,o.length-s));return a.splice(a.indexOf(this)+1,0,l),l},this.merge=function(e){for(var t=e.folds,i=0;i<t.length;i++)this.addFold(t[i]);var n=this.foldData;n.splice(n.indexOf(e),1)},this.toString=function(){var e=[this.range.toString()+": ["];return this.folds.forEach((function(t){e.push(" "+t.toString())})),e.push("]"),e.join("\n")},this.idxToPosition=function(e){for(var t=0,i=0;i<this.folds.length;i++){var n=this.folds[i];if((e-=n.start.column-t)<0)return{row:n.start.row,column:n.start.column+e};if((e-=n.placeholder.length)<0)return n.start;t=n.end.column}return{row:this.end.row,column:this.end.column+e}}}).call(r.prototype),t.FoldLine=r})),ace.define("ace/range_list",["require","exports","module","ace/range"],(function(e,t,i){var n=e("./range").Range.comparePoints,r=function(){this.ranges=[]};(function(){this.comparePoints=n,this.pointIndex=function(e,t,i){for(var r=this.ranges,o=i||0;o<r.length;o++){var a=r[o],s=n(e,a.end);if(!(s>0)){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<i.length;o++){e=r,r=i[o];var a=n(e.end,r.start);a<0||(0!=a||e.isEmpty()||r.isEmpty())&&(n(e.end,r.end)<0&&(e.end.row=r.end.row,e.end.column=r.end.column),i.splice(o,1),t.push(r),r=e,o--)}return this.ranges=i,t},this.contains=function(e,t){return this.pointIndex({row:e,column:t})>=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.row<e)return[];var n=this.pointIndex({row:e,column:0});n<0&&(n=-n-1);var r=this.pointIndex({row:t,column:0},n);r<0&&(r=-r-1);for(var o=[],a=n;a<r;a++)o.push(i[a]);return o},this.removeAll=function(){return this.ranges.splice(0,this.ranges.length)},this.attach=function(e){this.session&&this.detach(),this.session=e,this.onChange=this.$onChange.bind(this),this.session.on("change",this.onChange)},this.detach=function(){this.session&&(this.session.removeListener("change",this.onChange),this.session=null)},this.$onChange=function(e){if("insert"==e.action)var t=e.start,i=e.end;else i=e.start,t=e.end;for(var n=t.row,r=i.row-n,o=-t.column+i.column,a=this.ranges,s=0,c=a.length;s<c;s++){if(!((l=a[s]).end.row<n)){if(l.start.row>n)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&&s<c-1&&l.end.column>l.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<c)for(;s<c;s++){var l;(l=a[s]).start.row+=r,l.end.row+=r}}}).call(r.prototype),t.RangeList=r})),ace.define("ace/edit_session/fold",["require","exports","module","ace/range","ace/range_list","ace/lib/oop"],(function(e,t,i){e("../range").Range;var n=e("../range_list").RangeList,r=e("../lib/oop"),o=t.Fold=function(e,t){this.foldLine=null,this.placeholder=t,this.range=e,this.start=e.start,this.end=e.end,this.sameRow=e.start.row==e.end.row,this.subFolds=this.ranges=[]};function a(e,t){e.row-=t.row,0==e.row&&(e.column-=t.column)}function s(e,t){0==e.row&&(e.column+=t.column),e.row+=t.row}r.inherits(o,n),function(){this.toString=function(){return'"'+this.placeholder+'" '+this.range.toString()},this.setFoldLine=function(e){this.foldLine=e,this.subFolds.forEach((function(t){t.setFoldLine(e)}))},this.clone=function(){var e=this.range.clone(),t=new o(e,this.placeholder);return this.subFolds.forEach((function(e){t.subFolds.push(e.clone())})),t.collapseChildren=this.collapseChildren,t},this.addSubFold=function(e){if(!this.range.isEqual(e)){if(!this.range.containsRange(e))throw new Error("A fold can't intersect already existing fold"+e.range+this.range);var t,i;t=e,i=this.start,a(t.start,i),a(t.end,i);for(var n=e.start.row,r=e.start.column,o=0,s=-1;o<this.subFolds.length&&1==(s=this.subFolds[o].range.compare(n,r));o++);var c=this.subFolds[o];if(0==s)return c.addSubFold(e);n=e.range.end.row,r=e.range.end.column;var l=o;for(s=-1;l<this.subFolds.length&&1==(s=this.subFolds[l].range.compare(n,r));l++);if(this.subFolds[l],0==s)throw new Error("A fold can't intersect already existing fold"+e.range+this.range);return this.subFolds.splice(o,l-o,e),e.setFoldLine(this.foldLine),e}},this.restoreRange=function(e){return function(e,t){s(e.start,t),s(e.end,t)}(e,this.start)}}.call(o.prototype)})),ace.define("ace/edit_session/folding",["require","exports","module","ace/range","ace/edit_session/fold_line","ace/edit_session/fold","ace/token_iterator"],(function(e,t,i){var n=e("../range").Range,r=e("./fold_line").FoldLine,o=e("./fold").Fold,a=e("../token_iterator").TokenIterator;t.Folding=function(){this.getFoldAt=function(e,t,i){var n=this.getFoldLine(e);if(!n)return null;for(var r=n.folds,o=0;o<r.length;o++){var a=r[o];if(a.range.contains(e,t)){if(1==i&&a.range.isEnd(e,t))continue;if(-1==i&&a.range.isStart(e,t))continue;return a}}},this.getFoldsInRange=function(e){var t=e.start,i=e.end,n=this.$foldData,r=[];t.column+=1,i.column-=1;for(var o=0;o<n.length;o++){var a=n[o].range.compareRange(e);if(2!=a){if(-2==a)break;for(var s=n[o].folds,c=0;c<s.length;c++){var l=s[c];if(-2==(a=l.range.compareRange(e)))break;if(2!=a){if(42==a)break;r.push(l)}}}}return t.column-=1,i.column+=1,r},this.getFoldsInRangeList=function(e){if(Array.isArray(e)){var t=[];e.forEach((function(e){t=t.concat(this.getFoldsInRange(e))}),this)}else t=this.getFoldsInRange(e);return t},this.getAllFolds=function(){for(var e=[],t=this.$foldData,i=0;i<t.length;i++)for(var n=0;n<t[i].folds.length;n++)e.push(t[i].folds[n]);return e},this.getFoldStringAt=function(e,t,i,n){if(!(n=n||this.getFoldLine(e)))return null;for(var r,o,a={end:{column:0}},s=0;s<n.folds.length;s++){var c=(o=n.folds[s]).range.compareEnd(e,t);if(-1==c){r=this.getLine(o.start.row).substring(a.end.column,o.start.column);break}if(0===c)return null;a=o}return r||(r=this.getLine(o.start.row).substring(a.end.column)),-1==i?r.substring(0,t-a.end.column):1==i?r.substring(t-a.end.column):r},this.getFoldLine=function(e,t){var i=this.$foldData,n=0;for(t&&(n=i.indexOf(t)),-1==n&&(n=0);n<i.length;n++){var r=i[n];if(r.start.row<=e&&r.end.row>=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<i.length;n++){var r=i[n];if(r.end.row>=e)return r}return null},this.getFoldedRowCount=function(e,t){for(var i=this.$foldData,n=t-e+1,r=0;r<i.length;r++){var o=i[r],a=o.end.row,s=o.start.row;if(a>=t){s<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(!(s<l||s==l&&c<=u-2))throw new Error("The range has to be at least 2 characters width");var d=this.getFoldAt(s,c,1),h=this.getFoldAt(l,u,-1);if(d&&h==d)return d.addSubFold(i);d&&!d.range.isStart(s,c)&&this.removeFold(d),h&&!h.range.isEnd(l,u)&&this.removeFold(h);var p=this.getFoldsInRange(i.range);p.length>0&&(this.removeFolds(p),p.forEach((function(e){i.addSubFold(e)})));for(var m=0;m<n.length;m++){var f=n[m];if(l==f.start.row){f.addFold(i),a=!0;break}if(s==f.end.row){if(f.addFold(i),a=!0,!i.sameRow){var g=n[m+1];if(g&&g.start.row==l){f.merge(g);break}}break}if(l<=f.start.row)break}return a||(f=this.$addFoldLine(new r(this.$foldData,i))),this.$useWrapMode?this.$updateWrapData(f.start.row,f.start.row):this.$updateRowLengthCache(f.start.row,f.start.row),this.$modified=!0,this._signal("changeFold",{data:i,action:"add"}),i},this.addFolds=function(e){e.forEach((function(e){this.addFold(e)}),this)},this.removeFold=function(e){var t=e.foldLine,i=t.start.row,n=t.end.row,r=this.$foldData,o=t.folds;if(1==o.length)r.splice(r.indexOf(t),1);else if(t.range.isEnd(e.end.row,e.end.column))o.pop(),t.end.row=o[o.length-1].end.row,t.end.column=o[o.length-1].end.column;else if(t.range.isStart(e.start.row,e.start.column))o.shift(),t.start.row=o[0].start.row,t.start.column=o[0].start.column;else if(e.sameRow)o.splice(o.indexOf(e),1);else{var a=t.split(e.start.row,e.start.column);(o=a.folds).shift(),a.start.row=o[0].start.row,a.start.column=o[0].start.column}this.$updating||(this.$useWrapMode?this.$updateWrapData(i,n):this.$updateRowLengthCache(i,n)),this.$modified=!0,this._signal("changeFold",{data:e,action:"remove"})},this.removeFolds=function(e){for(var t=[],i=0;i<e.length;i++)t.push(e[i]);t.forEach((function(e){this.removeFold(e)}),this),this.$modified=!0},this.expandFold=function(e){this.removeFold(e),e.subFolds.forEach((function(t){e.restoreRange(t),this.addFold(t)}),this),e.collapseChildren>0&&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(!(t<n)){if(t==n){if(i<r)return;s=Math.max(r,s)}a+=null!=e?e:o.getLine(t).substring(s,i)}}),t,i),a},this.getDisplayLine=function(e,t,i,n){var r,o=this.getFoldLine(e);return o?this.getFoldDisplayLine(o,e,t,i,n):(r=this.doc.getLine(e)).substring(n||0,t||r.length)},this.$cloneFoldData=function(){var e=[];return e=this.$foldData.map((function(t){var i=t.folds.map((function(e){return e.clone()}));return new r(e,i)}))},this.toggleFold=function(e){var t,i,n=this.selection.getRange();if(n.isEmpty()){var r=n.start;if(t=this.getFoldAt(r.row,r.column))return void this.expandFold(t);(i=this.findMatchingBracket(r))?1==n.comparePoint(i)?n.end=i:(n.start=i,n.start.column++,n.end.column--):(i=this.findMatchingBracket({row:r.row,column:r.column+1}))?(1==n.comparePoint(i)?n.end=i:n.start=i,n.start.column++):n=this.getCommentFoldRange(r.row,r.column)||n}else{var o=this.getFoldsInRange(n);if(e&&o.length)return void this.expandFolds(o);1==o.length&&(t=o[0])}if(t||(t=this.getFoldAt(n.start.row,n.start.column)),t&&t.range.toString()==n.toString())this.expandFold(t);else{var a="...";if(!n.isMultiLine()){if((a=this.getTextRange(n)).length<4)return;a=a.trim().substring(0,2)+".."}this.addFold(a,n)}},this.getCommentFoldRange=function(e,t,i){var r=new a(this,e,t),o=r.getCurrentToken(),s=o.type;if(o&&/^comment|string/.test(s)){"comment"==(s=s.match(/comment|string/)[0])&&(s+="|doc-start");var c=new RegExp(s),l=new n;if(1!=i){do{o=r.stepBackward()}while(o&&c.test(o.type));r.stepForward()}if(l.start.row=r.getCurrentTokenRow(),l.start.column=r.getCurrentTokenColumn()+2,r=new a(this,e,t),-1!=i){var u=-1;do{if(o=r.stepForward(),-1==u){var d=this.getState(r.$row);c.test(d)||(u=r.$row)}else if(r.$row>u)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<t;r++)if(null==n[r]&&(n[r]=this.getFoldWidget(r)),"start"==n[r]){var o=this.getFoldWidgetRange(r);if(o&&o.isMultiLine()&&o.end.row<=t&&o.start.row>=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;c<u;){var d=l.charAt(c);if(d==r){if(0==(o-=1))return{row:a.getCurrentTokenRow(),column:c+a.getCurrentTokenColumn()}}else d==e&&(o+=1);c+=1}do{s=a.stepForward()}while(s&&!i.test(s.type));if(null==s)break;c=0}return null}}}})),ace.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(e,t,i){var n=e("./lib/oop"),r=e("./lib/lang"),o=e("./bidihandler").BidiHandler,a=e("./config"),s=e("./lib/event_emitter").EventEmitter,c=e("./selection").Selection,l=e("./mode/text").Mode,u=e("./range").Range,d=e("./document").Document,h=e("./background_tokenizer").BackgroundTokenizer,p=e("./search_highlight").SearchHighlight,m=function(e,t){this.$breakpoints=[],this.$decorations=[],this.$frontMarkers={},this.$backMarkers={},this.$markerId=1,this.$undoSelect=!0,this.$foldData=[],this.id="session"+ ++m.$uid,this.$foldData.toString=function(){return this.join("\n")},this.on("changeFold",this.onChangeFold.bind(this)),this.$onChange=this.onChange.bind(this),"object"==typeof e&&e.getLine||(e=new d(e)),this.$bidiHandler=new o(this),this.setDocument(e),this.selection=new c(this),a.resetOptions(this),this.setMode(t),a._signal("session",this)};m.$uid=0,function(){n.implement(this,s),this.setDocument=function(e){this.doc&&this.doc.removeListener("change",this.$onChange),this.doc=e,e.on("change",this.$onChange),this.bgTokenizer&&this.bgTokenizer.setDocument(this.getDocument()),this.resetCaches()},this.getDocument=function(){return this.doc},this.$resetRowCache=function(e){if(!e)return this.$docRowCache=[],void(this.$screenRowCache=[]);var t=this.$docRowCache.length,i=this.$getRowCacheIndex(this.$docRowCache,e)+1;t>i&&(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<o))return r;n=r-1}}return i-1},this.resetCaches=function(){this.$modified=!0,this.$wrapData=[],this.$rowLengthCache=[],this.$resetRowCache(0),this.bgTokenizer&&this.bgTokenizer.start(0)},this.onChangeFold=function(e){var t=e.data;this.$resetRowCache(t.start.row)},this.onChange=function(e){this.$modified=!0,this.$bidiHandler.onChange(e),this.$resetRowCache(e.start.row);var t=this.$updateInternalDataOnChange(e);this.$fromUndo||!this.$undoManager||e.ignore||(this.$deltasDoc.push(e),t&&0!=t.length&&this.$deltasFold.push({action:"removeFolds",folds:t}),this.$informUndoManager.schedule()),this.bgTokenizer&&this.bgTokenizer.$updateOnChange(e),this._signal("change",e)},this.setValue=function(e){this.doc.setValue(e),this.selection.moveTo(0,0),this.$resetRowCache(0),this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.setUndoManager(this.$undoManager),this.getUndoManager().reset()},this.getValue=this.toString=function(){return this.doc.getValue()},this.getSelection=function(){return this.selection},this.getState=function(e){return this.bgTokenizer.getState(e)},this.getTokens=function(e){return this.bgTokenizer.getTokens(e)},this.getTokenAt=function(e,t){var i,n=this.bgTokenizer.getTokens(e),r=0;if(null==t){var o=n.length-1;r=this.getLine(e).length}else for(o=0;o<n.length&&!((r+=n[o].value.length)>=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;t<e.length;t++)this.$breakpoints[e[t]]="ace_breakpoint";this._signal("changeBreakpoint",{})},this.clearBreakpoints=function(){this.$breakpoints=[],this._signal("changeBreakpoint",{})},this.setBreakpoint=function(e,t){void 0===t&&(t="ace_breakpoint"),t?this.$breakpoints[e]=t:delete this.$breakpoints[e],this._signal("changeBreakpoint",{})},this.clearBreakpoint=function(e){delete this.$breakpoints[e],this._signal("changeBreakpoint",{})},this.addMarker=function(e,t,i,n){var r=this.$markerId++,o={range:e,type:i||"line",renderer:"function"==typeof i?i:null,clazz:t,inFront:!!n,id:r};return n?(this.$frontMarkers[r]=o,this._signal("changeFrontMarker")):(this.$backMarkers[r]=o,this._signal("changeBackMarker")),r},this.addDynamicMarker=function(e,t){if(e.update){var i=this.$markerId++;return e.id=i,e.inFront=!!t,t?(this.$frontMarkers[i]=e,this._signal("changeFrontMarker")):(this.$backMarkers[i]=e,this._signal("changeBackMarker")),e}},this.removeMarker=function(e){var t=this.$frontMarkers[e]||this.$backMarkers[e];if(t){var i=t.inFront?this.$frontMarkers:this.$backMarkers;t&&(delete i[e],this._signal(t.inFront?"changeFrontMarker":"changeBackMarker"))}},this.getMarkers=function(e){return e?this.$frontMarkers:this.$backMarkers},this.highlight=function(e){if(!this.$searchHighlight){var t=new p(null,"ace_selected-word","text");this.$searchHighlight=this.addDynamicMarker(t)}this.$searchHighlight.setRegexp(e)},this.highlightLines=function(e,t,i,n){"number"!=typeof t&&(i=t,t=e),i||(i="ace_step");var r=new u(e,0,t,1/0);return r.id=this.addMarker(r,i,"fullLine",n),r},this.setAnnotations=function(e){this.$annotations=e,this._signal("changeAnnotation",{})},this.getAnnotations=function(){return this.$annotations||[]},this.clearAnnotations=function(){this.setAnnotations([])},this.$detectNewLine=function(e){var t=e.match(/^.*?(\r?\n)/m);this.$autoNewLine=t?t[1]:"\n"},this.getWordRange=function(e,t){var i=this.getLine(e),n=!1;if(t>0&&(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;a<i.length&&i.charAt(a).match(r);)a++;return new u(e,o,e,a)},this.getAWordRange=function(e,t){for(var i=this.getWordRange(e,t),n=this.getLine(i.end.row);n.charAt(i.end.column).match(/[ \t]/);)i.end.column+=1;return i},this.setNewLineMode=function(e){this.doc.setNewLineMode(e)},this.getNewLineMode=function(){return this.doc.getNewLineMode()},this.setUseWorker=function(e){this.setOption("useWorker",e)},this.getUseWorker=function(){return this.$useWorker},this.onReloadTokenizer=function(e){var t=e.data;this.bgTokenizer.start(t.first),this._signal("tokenizerUpdate",e)},this.$modes={},this.$mode=null,this.$modeId=null,this.setMode=function(e,t){if(e&&"object"==typeof e){if(e.getTokenizer)return this.$onChangeMode(e);var i=e,n=i.path}else n=e||"ace/mode/text";if(this.$modes["ace/mode/text"]||(this.$modes["ace/mode/text"]=new l),this.$modes[n]&&!i)return this.$onChangeMode(this.$modes[n]),void(t&&t());this.$modeId=n,a.loadModule(["mode",n],function(e){if(this.$modeId!==n)return t&&t();this.$modes[n]&&!i?this.$onChangeMode(this.$modes[n]):e&&e.Mode&&(e=new e.Mode(i),i||(this.$modes[n]=e,e.$id=n),this.$onChangeMode(e)),t&&t()}.bind(this)),this.$mode||this.$onChangeMode(this.$modes["ace/mode/text"],!0)},this.$onChangeMode=function(e,t){if(t||(this.$modeId=e.$id),this.$mode!==e){this.$mode=e,this.$stopWorker(),this.$useWorker&&this.$startWorker();var i=e.getTokenizer();if(void 0!==i.addEventListener){var n=this.onReloadTokenizer.bind(this);i.addEventListener("update",n)}if(this.bgTokenizer)this.bgTokenizer.setTokenizer(i);else{this.bgTokenizer=new h(i);var r=this;this.bgTokenizer.addEventListener("update",(function(e){r._signal("tokenizerUpdate",e)}))}this.bgTokenizer.setDocument(this.getDocument()),this.tokenRe=e.tokenRe,this.nonTokenRe=e.nonTokenRe,t||(e.attachToSession&&e.attachToSession(this),this.$options.wrapMethod.set.call(this,this.$wrapMethod),this.$setFolding(e.foldingRules),this.bgTokenizer.start(0),this._emit("changeMode"))}},this.$stopWorker=function(){this.$worker&&(this.$worker.terminate(),this.$worker=null)},this.$startWorker=function(){try{this.$worker=this.$mode.createWorker(this)}catch(e){a.warn("Could not load worker",e),this.$worker=null}},this.getMode=function(){return this.$mode},this.$scrollTop=0,this.setScrollTop=function(e){this.$scrollTop===e||isNaN(e)||(this.$scrollTop=e,this._signal("changeScrollTop",e))},this.getScrollTop=function(){return this.$scrollTop},this.$scrollLeft=0,this.setScrollLeft=function(e){this.$scrollLeft===e||isNaN(e)||(this.$scrollLeft=e,this._signal("changeScrollLeft",e))},this.getScrollLeft=function(){return this.$scrollLeft},this.getScreenWidth=function(){return this.$computeWidth(),this.lineWidgets?Math.max(this.getLineWidgetMaxWidth(),this.screenWidth):this.screenWidth},this.getLineWidgetMaxWidth=function(){if(null!=this.lineWidgetsWidth)return this.lineWidgetsWidth;var e=0;return this.lineWidgets.forEach((function(t){t&&t.screenWidth>e&&(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;c<s;c++){if(c>a){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;n<e.length;n++){var r=e[n];"doc"==r.group&&(this.doc.applyDeltas(r.deltas),i=this.$getUndoSelection(r.deltas,!1,i))}return this.$fromUndo=!1,i&&this.$undoSelect&&!t&&this.selection.setSelectionRange(i),i}},this.setUndoSelect=function(e){this.$undoSelect=e},this.$getUndoSelection=function(e,t,i){function n(e){return t?"insert"!==e.action:"insert"===e.action}var r,o,a=e[0];r=n(a)?u.fromPoints(a.start,a.end):u.fromPoints(a.start,a.start);for(var s=1;s<e.length;s++)n(a=e[s])?(o=a.start,-1==r.compare(o.row,o.column)&&r.setStart(o),o=a.end,1==r.compare(o.row,o.column)&&r.setEnd(o)):(o=a.start,-1==r.compare(o.row,o.column)&&(r=u.fromPoints(a.start,a.start)));if(null!=i){0===u.comparePoints(i.start,r.start)&&(i.start.column+=r.end.column-r.start.column,i.end.column+=r.end.column-r.start.column);var c=i.compareRange(r);1==c?r.setStart(i.start):-1==c&&r.setEnd(i.end)}return r},this.replace=function(e,t){return this.doc.replace(e,t)},this.moveText=function(e,t,i){var n=this.getTextRange(e),r=this.getFoldsInRange(e),o=u.fromPoints(t,t);if(!i){this.remove(e);var a=e.start.row-e.end.row;(l=a?-e.end.column:e.start.column-e.end.column)&&(o.start.row==e.end.row&&o.start.column>e.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;a<n&&" "==o.charAt(a);++a);a<n&&"\t"==o.charAt(a)?(i.start.column=a,i.end.column=a+1):(i.start.column=0,i.end.column=a),this.remove(i)}},this.$moveLines=function(e,t,i){if(e=this.getRowFoldStart(e),t=this.getRowFoldEnd(t),i<0){if((r=this.getRowFoldStart(e+i))<0)return 0;var n=r-e}else if(i>0){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<l.length;u++){(f=l[u]).start.row>=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<l.length;u++){var f;(f=l[u]).start.row>=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<c.length;l++)c[l]=t}else c=this.$getDisplayTokens(a[n].substring(s,o),r.length);r=r.concat(c)}.bind(this),o.end.row,a[o.end.row].length+1),c[o.start.row]=this.$computeWrapSplits(r,l,s),u=o.end.row+1):(r=this.$getDisplayTokens(a[u]),c[u]=this.$computeWrapSplits(r,l,s),u++)};var e=3,t=4;function i(e){return!(e<4352)&&(e>=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;t<i.length;t++){var n=i[t];if(10==n)e+=1;else{if(11!=n){if(12==n)continue;break}e+=r}}return l&&!1!==u&&(e+=r),Math.min(e,d)}(),o.indent=p),c+=n,o.push(c),s=e}for(var p=0;a-s>n-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]<e;)m--;if(l){for(;m>f&&i[m]<e;)m--;for(;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;m<i.length&&i[m]==t;m++);if(m==i.length)break;h(m)}}return o},this.$getDisplayTokens=function(e,t){var n,r=[];t=t||0;for(var o=0;o<e.length;o++){var a=e.charCodeAt(o);if(9==a){n=this.getScreenTabSize(r.length+t),r.push(11);for(var s=1;s<n;s++)r.push(12)}else 32==a?r.push(10):a>39&&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<e.length&&(9==(r=e.charCodeAt(o))?n+=this.getScreenTabSize(n):r>=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]<t.column?i.indent:0}return 0},this.getScreenLastRowColumn=function(e){var t=this.screenToDocumentPosition(e,Number.MAX_VALUE);return this.documentToScreenColumn(t.row,t.column)},this.getDocumentLastRowColumn=function(e,t){var i=this.documentToScreenRow(e,t);return this.getScreenLastRowColumn(i)},this.getDocumentLastRowColumnPosition=function(e,t){var i=this.documentToScreenRow(e,t);return this.screenToDocumentPosition(i,Number.MAX_VALUE/10)},this.getRowSplitData=function(e){return this.$useWrapMode?this.$wrapData[e]:void 0},this.getScreenTabSize=function(e){return this.$tabSize-e%this.$tabSize},this.screenToDocumentRow=function(e,t){return this.screenToDocumentPosition(e,t).row},this.screenToDocumentColumn=function(e,t){return this.screenToDocumentPosition(e,t).column},this.screenToDocumentPosition=function(e,t,i){if(e<0)return{row:0,column:0};var n,r,o=0,a=0,s=0,c=0,l=this.$screenRowCache,u=this.$getRowCacheIndex(l,e),d=l.length;if(d&&u>=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<e;){if(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);n<i;){var o=this.$wrapData[n];e+=o?o.length+1:1,++n>r&&(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;s<a.length;s++)e-=(t=a[s]).end.row-t.start.row}return this.lineWidgets&&(e+=this.$getWidgetScreenLength()),e},this.$setFontMetrics=function(e){this.$enableVarChar&&(this.$getStringScreenWidth=function(t,i,n){if(0===i)return[0,0];var r,o;for(i||(i=1/0),n=n||0,o=0;o<t.length&&!((n+="\t"===(r=t.charAt(o))?this.getScreenTabSize(n):e.getCharacterWidth(r))>i);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;h<l;h++)if(-1==r[d+h].search(s[h]))continue e;var p=r[d],m=r[d+l-1],f=p.length-p.match(s[0])[0].length,g=m.match(s[l-1])[0].length;c&&c.end.row===d&&c.end.column>f||(a.push(c=new o(d,f,d+l-1,g)),l>2&&(d=d+l-2))}}else for(var _=0;_<r.length;_++){var b=n.getMatchOffsets(r[_],s);for(h=0;h<b.length;h++){var v=b[h];a.push(new o(_,v.offset,_,v.offset+v.length))}}if(i){var y=i.start.column,w=i.start.column;for(_=0,h=a.length-1;_<h&&a[_].start.column<y&&a[_].start.row==i.start.row;)_++;for(;_<h&&a[h].end.column>w&&a[h].end.row==i.end.row;)h--;for(a=a.slice(_,h+1),_=0,h=a.length;_<h;_++)a[_].start.row+=i.start.row,a[_].end.row+=i.start.row}return a},this.replace=function(e,t){var i=this.$options,n=this.$assembleRegExp(i);if(i.$isMultiLine)return t;if(n){var r=n.exec(e);if(!r||r[0].length!=e.length)return null;if(t=e.replace(n,t),i.preserveCase){t=t.split("");for(var o=Math.min(e.length,e.length);o--;){var a=e[o];a&&a.toLowerCase()!=a?t[o]=t[o].toUpperCase():t[o]=t[o].toLowerCase()}t=t.join("")}return t}},this.$assembleRegExp=function(e,t){if(e.needle instanceof RegExp)return e.re=e.needle;var i=e.needle;if(!e.needle)return e.re=!1;e.regExp||(i=n.escapeRegExp(i)),e.wholeWord&&(i=function(e,t){function i(e){return/\w/.test(e)||t.regExp?"\\b":""}return i(e[0])+e+i(e[e.length-1])}(i,e));var r=e.caseSensitive?"gm":"gmi";if(e.$isMultiLine=!t&&/[\n\r]/.test(i),e.$isMultiLine)return e.re=this.$assembleMultilineRegExp(i,r);try{var o=new RegExp(i,r)}catch(a){o=!1}return e.re=o},this.$assembleMultilineRegExp=function(e,t){for(var i=e.replace(/\r\n|\r|\n/g,"$\n^").split("\n"),n=[],r=0;r<i.length;r++)try{n.push(new RegExp(i[r],t))}catch(o){return!1}return n},this.$matchIterator=function(e,t){var i=this.$assembleRegExp(t);if(!i)return!1;var n=1==t.backwards,r=0!=t.skipCurrent,o=t.range,a=t.start;a||(a=o?o[n?"end":"start"]:e.selection.getRange()),a.start&&(a=a[r!=n?"end":"start"]);var s=o?o.start.row:0,c=o?o.end.row:e.getLength()-1;if(n)var l=function(e){var i=a.row;if(!d(i,a.column,e)){for(i--;i>=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&&c<r||-1===c)){for(var l=1;l<u;l++)if(-1==(s=e.getLine(a+l)).search(i[l]))return;var d=s.match(i[u-1])[0].length;if(!(n&&d>r))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;r<a.length;r++){if(e(a[r])>n)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+1<e.session.doc.getLength()-1&&(c+=e.session.doc.getNewLineCharacter()),e.clearSelection(),e.session.doc.replace(new o(i.row,0,r.row+2,0),c),s>0?(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;a<n.length;a++)a==n.length-1&&(n[a].end.row===t&&n[a].end.column===i||r.push(new o(n[a].end.row,n[a].end.column,t,i))),0===a?0===n[a].start.row&&0===n[a].start.column||r.push(new o(0,0,n[a].start.row,n[a].start.column)):r.push(new o(n[a-1].end.row,n[a-1].end.column,n[a].start.row,n[a].start.column));e.exitMultiSelectMode(),e.clearSelection();for(a=0;a<r.length;a++)e.selection.addRange(r[a],!1)},readOnly:!0,scrollIntoView:"none"}]})),ace.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(e,t,i){e("./lib/fixoldbrowsers");var n=e("./lib/oop"),r=e("./lib/dom"),o=e("./lib/lang"),a=e("./lib/useragent"),s=e("./keyboard/textinput").TextInput,c=e("./mouse/mouse_handler").MouseHandler,l=e("./mouse/fold_handler").FoldHandler,u=e("./keyboard/keybinding").KeyBinding,d=e("./edit_session").EditSession,h=e("./search").Search,p=e("./range").Range,m=e("./lib/event_emitter").EventEmitter,f=e("./commands/command_manager").CommandManager,g=e("./commands/default_commands").commands,_=e("./config"),b=e("./token_iterator").TokenIterator,v=function(e,t){var i=e.getContainerElement();this.container=i,this.renderer=e,this.id="editor"+ ++v.$uid,this.commands=new f(a.isMac?"mac":"win",g),"object"==typeof document&&(this.textInput=new s(e.getTextAreaContainer(),this),this.renderer.textarea=this.textInput.getElement(),this.$mouseHandler=new c(this),new l(this)),this.keyBinding=new u(this),this.$blockScrolling=0,this.$search=(new h).set({wrap:!0}),this.$historyTracker=this.$historyTracker.bind(this),this.commands.on("exec",this.$historyTracker),this.$initOperationListeners(),this._$emitInputEvent=o.delayedCall(function(){this._signal("input",{}),this.session&&this.session.bgTokenizer&&this.session.bgTokenizer.scheduleStart()}.bind(this)),this.on("change",(function(e,t){t._$emitInputEvent.schedule(31)})),this.setSession(t||new d("")),_.resetOptions(this),_._signal("editor",this)};v.$uid=0,function(){n.implement(this,m),this.$initOperationListeners=function(){this.selections=[],this.commands.on("exec",this.startOperation.bind(this),!0),this.commands.on("afterExec",this.endOperation.bind(this),!0),this.$opResetTimer=o.delayedCall(this.endOperation.bind(this)),this.on("change",function(){this.curOp||this.startOperation(),this.curOp.docChanged=!0}.bind(this),!0),this.on("changeSelection",function(){this.curOp||this.startOperation(),this.curOp.selectionChanged=!0}.bind(this),!0)},this.curOp=null,this.prevOp={},this.startOperation=function(e){if(this.curOp){if(!e||this.curOp.command)return;this.prevOp=this.curOp}e||(this.previousCommand=null,e={}),this.$opResetTimer.schedule(),this.curOp={command:e.command||{},args:e.args,scrollTop:this.renderer.scrollTop},this.curOp.command.name&&void 0!==this.curOp.command.scrollIntoView&&this.$blockScrolling++},this.endOperation=function(e){if(this.curOp){if(e&&!1===e.returnValue)return this.curOp=null;this._signal("beforeEndOperation");var t=this.curOp.command;t.name&&this.$blockScrolling>0&&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++:"</"===s.value&&a--)}while(r&&a>=0);else{do{r=s,s=n.stepBackward(),r&&r.value===o&&-1!==r.type.indexOf("tag-name")&&("<"===s.value?a++:"</"===s.value&&a--)}while(s&&a<=0);n.stepForward()}if(!r)return t.removeMarker(t.$tagHighlight),void(t.$tagHighlight=null);var c=n.getCurrentTokenRow(),l=n.getCurrentTokenColumn(),u=new p(c,l,c,l+r.value.length),d=t.$backMarkers[t.$tagHighlight];t.$tagHighlight&&null!=d&&0!==u.compareRange(d.range)&&(t.removeMarker(t.$tagHighlight),t.$tagHighlight=null),u&&!t.$tagHighlight&&(t.$tagHighlight=t.addMarker(u,"ace_bracket","text"))}}}),50)}},this.focus=function(){var e=this;setTimeout((function(){e.textInput.focus()})),this.textInput.focus()},this.isFocused=function(){return this.textInput.isFocused()},this.blur=function(){this.textInput.blur()},this.onFocus=function(e){this.$isFocused||(this.$isFocused=!0,this.renderer.showCursor(),this.renderer.visualizeFocus(),this._emit("focus",e))},this.onBlur=function(e){this.$isFocused&&(this.$isFocused=!1,this.renderer.hideCursor(),this.renderer.visualizeBlur(),this._emit("blur",e))},this.$cursorChange=function(){this.renderer.updateCursor()},this.onDocumentChange=function(e){var t=this.session.$useWrapMode,i=e.start.row==e.end.row?e.end.row:1/0;this.renderer.updateLines(e.start.row,i,t),this._signal("change",e),this.$cursorChange(),this.$updateHighlightActiveLine()},this.onTokenizerUpdate=function(e){var t=e.data;this.renderer.updateLines(t.first,t.last)},this.onScrollTopChange=function(){this.renderer.scrollToY(this.session.getScrollTop())},this.onScrollLeftChange=function(){this.renderer.scrollToX(this.session.getScrollLeft())},this.onCursorChange=function(){this.$cursorChange(),this.$blockScrolling||(_.warn("Automatically scrolling cursor into view after selection change","this will be disabled in the next version","set editor.$blockScrolling = Infinity to disable this message"),this.renderer.scrollCursorIntoView()),this.$highlightBrackets(),this.$highlightTags(),this.$updateHighlightActiveLine(),this._signal("changeSelection")},this.$updateHighlightActiveLine=function(){var e,t=this.getSession();if(this.$highlightActiveLine&&("line"==this.$selectionStyle&&this.selection.isMultiLine()||(e=this.getCursorPosition()),!this.renderer.$maxLines||1!==this.session.getLength()||this.renderer.$minLines>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);t<r.length?(i=r.charAt(t)+r.charAt(t-1),n=new p(e.row,t-1,e.row,t+1)):(i=r.charAt(t-1)+r.charAt(t-2),n=new p(e.row,t-2,e.row,t)),this.session.replace(n,i),this.session.selection.moveToPosition(n.end)}}},this.toLowerCase=function(){var e=this.getSelectionRange();this.selection.isEmpty()&&this.selection.selectWord();var t=this.getSelectionRange(),i=this.session.getTextRange(t);this.session.replace(t,i.toLowerCase()),this.selection.setSelectionRange(e)},this.toUpperCase=function(){var e=this.getSelectionRange();this.selection.isEmpty()&&this.selection.selectWord();var t=this.getSelectionRange(),i=this.session.getTextRange(t);this.session.replace(t,i.toUpperCase()),this.selection.setSelectionRange(e)},this.indent=function(){var e=this.session,t=this.getSelectionRange();if(!(t.start.row<t.end.row)){if(t.start.column<t.end.column){var i=e.getTextRange(t);if(!/^\s+$/.test(i)){u=this.$getSelectedRows();return void e.indentRows(u.first,u.last,"\t")}}var n=e.getLine(t.start.row),r=t.start,a=e.getTabSize(),s=e.documentToScreenColumn(r.row,r.column);if(this.session.getUseSoftTabs())var c=a-s%a,l=o.stringRepeat(" ",c);else{for(c=s%a;" "==n[t.start.column-1]&&c;)t.start.column--,c--;this.selection.setSelectionRange(t),l="\t"}return this.insert(l)}var u=this.$getSelectedRows();e.indentRows(u.first,u.last,"\t")},this.blockIndent=function(){var e=this.$getSelectedRows();this.session.indentRows(e.first,e.last,"\t")},this.blockOutdent=function(){var e=this.session.getSelection();this.session.outdentRows(e.getRange())},this.sortLines=function(){for(var e=this.$getSelectedRows(),t=this.session,i=[],n=e.first;n<=e.last;n++)i.push(t.getLine(n));i.sort((function(e,t){return e.toLowerCase()<t.toLowerCase()?-1:e.toLowerCase()>t.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;){var r=i.exec(n);if(r.index<=t&&r.index+r[0].length>=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&&i<a?e*=Math.pow(10,o.end-i-1):e*=Math.pow(10,o.end-i),c+=e;var l=(c/=Math.pow(10,s)).toFixed(s),u=new p(t,o.start,t,o.end);this.session.replace(u,l),this.moveCursorTo(t,Math.max(o.start+1,i+l.length-o.value.length))}}},this.removeLines=function(){var e=this.$getSelectedRows();this.session.removeFullLines(e.first,e.last),this.clearSelection()},this.duplicateSelection=function(){var e=this.selection,t=this.session,i=e.getRange(),n=e.isBackwards();if(i.isEmpty()){var r=i.start.row;t.duplicateLines(r,r)}else{var o=n?i.start:i.end,a=t.insert(o,t.getTextRange(i),!1);i.start=o,i.end=a,e.setSelectionRange(i,n)}},this.moveLinesDown=function(){this.$moveLines(1,!1)},this.moveLinesUp=function(){this.$moveLines(-1,!1)},this.moveText=function(e,t,i){return this.session.moveText(e,t,i)},this.copyLinesUp=function(){this.$moveLines(-1,!0)},this.copyLinesDown=function(){this.$moveLines(1,!0)},this.$moveLines=function(e,t){var i,n,r=this.selection;if(!r.inMultiSelectMode||this.inVirtualSelectionMode){var o=r.toOrientedRange();i=this.$getSelectedRows(o),n=this.session.$moveLines(i.first,i.last,t?0:e),t&&-1==e&&(n=0),o.moveBy(n,0),r.fromOrientedRange(o)}else{var a=r.rangeList.ranges;r.rangeList.detach(this.session),this.inVirtualSelectionMode=!0;for(var s=0,c=0,l=a.length,u=0;u<l;u++){var d=u;a[u].moveBy(s,0);for(var h=(i=this.$getSelectedRows(a[u])).first,p=i.last;++u<l;){c&&a[u].moveBy(c,0);var m=this.$getSelectedRows(a[u]);if(t&&m.first!=p)break;if(!t&&m.first>p+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<o.value.length&&!c;u++)if(d[o.value[u]])switch(s=d[o.value[u]]+"."+o.type.replace("rparen","lparen"),isNaN(l[s])&&(l[s]=0),o.value[u]){case"(":case"[":case"{":l[s]++;break;case")":case"]":case"}":l[s]--,-1===l[s]&&(a="bracket",c=!0)}}else o&&-1!==o.type.indexOf("tag-name")&&(isNaN(l[o.value])&&(l[o.value]=0),"<"===r.value?l[o.value]++:"</"===r.value&&l[o.value]--,-1===l[o.value]&&(a="tag",c=!0));c||(r=o,o=n.stepForward(),u=0)}while(o&&!c);if(a){var h,m;if("bracket"===a)(h=this.session.getBracketRange(i))||(m=(h=new p(n.getCurrentTokenRow(),n.getCurrentTokenColumn()+u-1,n.getCurrentTokenRow(),n.getCurrentTokenColumn()+u-1)).start,(t||m.row===i.row&&Math.abs(m.column-i.column)<2)&&(h=this.session.getBracketRange(m)));else if("tag"===a){if(!o||-1===o.type.indexOf("tag-name"))return;var f=o.value;if(0===(h=new p(n.getCurrentTokenRow(),n.getCurrentTokenColumn()-2,n.getCurrentTokenRow(),n.getCurrentTokenColumn()-2)).compare(i.row,i.column)){c=!1;do{o=r,(r=n.stepBackward())&&(-1!==r.type.indexOf("tag-close")&&h.setEnd(n.getCurrentTokenRow(),n.getCurrentTokenColumn()+1),o.value===f&&-1!==o.type.indexOf("tag-name")&&("<"===r.value?l[f]++:"</"===r.value&&l[f]--,0===l[f]&&(c=!0)))}while(r&&!c)}o&&o.type.indexOf("tag-name")&&(m=h.start).row==i.row&&Math.abs(m.column-i.column)<2&&(m=h.end)}(m=h&&h.cursor||m)&&(e?h&&t?this.selection.setRange(h):h&&h.isEqual(this.getSelectionRange())?this.clearSelection():this.selection.selectTo(m.row,m.column):this.selection.moveTo(m.row,m.column))}}},this.gotoLine=function(e,t,i){this.selection.clearSelection(),this.session.unfold({row:e-1,column:t||0}),this.$blockScrolling+=1,this.exitMultiSelectMode&&this.exitMultiSelectMode(),this.moveCursorTo(e-1,t||0),this.$blockScrolling-=1,this.isRowFullyVisible(e-1)||this.scrollToLine(e-1,!0,i)},this.navigateTo=function(e,t){this.selection.moveTo(e,t)},this.navigateUp=function(e){if(this.selection.isMultiLine()&&!this.selection.isBackwards()){var t=this.selection.anchor.getPosition();return this.moveCursorToPosition(t)}this.selection.clearSelection(),this.selection.moveCursorBy(-e||-1,0)},this.navigateDown=function(e){if(this.selection.isMultiLine()&&this.selection.isBackwards()){var t=this.selection.anchor.getPosition();return this.moveCursorToPosition(t)}this.selection.clearSelection(),this.selection.moveCursorBy(e||1,0)},this.navigateLeft=function(e){if(this.selection.isEmpty())for(e=e||1;e--;)this.selection.moveCursorLeft();else{var t=this.getSelectionRange().start;this.moveCursorToPosition(t)}this.clearSelection()},this.navigateRight=function(e){if(this.selection.isEmpty())for(e=e||1;e--;)this.selection.moveCursorRight();else{var t=this.getSelectionRange().end;this.moveCursorToPosition(t)}this.clearSelection()},this.navigateLineStart=function(){this.selection.moveCursorLineStart(),this.clearSelection()},this.navigateLineEnd=function(){this.selection.moveCursorLineEnd(),this.clearSelection()},this.navigateFileEnd=function(){this.selection.moveCursorFileEnd(),this.clearSelection()},this.navigateFileStart=function(){this.selection.moveCursorFileStart(),this.clearSelection()},this.navigateWordRight=function(){this.selection.moveCursorWordRight(),this.clearSelection()},this.navigateWordLeft=function(){this.selection.moveCursorWordLeft(),this.clearSelection()},this.replace=function(e,t){t&&this.$search.set(t);var i=this.$search.find(this.session),n=0;return i?(this.$tryReplace(i,e)&&(n=1),null!==i&&(this.selection.setSelectionRange(i),this.renderer.scrollSelectionIntoView(i.start,i.end)),n):n},this.replaceAll=function(e,t){t&&this.$search.set(t);var i=this.$search.findAll(this.session),n=0;if(!i.length)return n;this.$blockScrolling+=1;var r=this.getSelectionRange();this.selection.moveTo(0,0);for(var o=i.length-1;o>=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.top<a.height&&o.top+t.top+a.lineHeight>window.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;n<e.length;n++){for(var r=e[n],o={group:r.group,deltas:new Array(r.length)},a=0;a<r.deltas.length;a++){var s=r.deltas[a];o.deltas[a]=t(s)}i[n]=o}return i}this.execute=function(e){var t=e.args[0];this.$doc=e.args[1],e.merge&&this.hasUndo()&&(this.dirtyCounter--,t=this.$undoStack.pop().concat(t)),this.$undoStack.push(t),this.$redoStack=[],this.dirtyCounter<0&&(this.dirtyCounter=NaN),this.dirtyCounter++},this.undo=function(e){var t=this.$undoStack.pop(),i=null;return t&&(i=this.$doc.undoChanges(t,e),this.$redoStack.push(t),this.dirtyCounter--),i},this.redo=function(e){var t=this.$redoStack.pop(),i=null;return t&&(i=this.$doc.redoChanges(this.$deserializeDeltas(t),e),this.$undoStack.push(t),this.dirtyCounter++),i},this.reset=function(){this.$undoStack=[],this.$redoStack=[],this.dirtyCounter=0},this.hasUndo=function(){return this.$undoStack.length>0},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;t<e.length;t++){var i=e[t],n=i.row,r=this.$annotations[n];r||(r=this.$annotations[n]={text:[]});var a=i.text;a=a?o.escapeHTML(a):i.html||"",-1===r.text.indexOf(a)&&r.text.push(a);var s=i.type;"error"==s?r.className=" ace_error":"warning"==s&&" ace_error"!=r.className?r.className=" ace_warning":"info"!=s||r.className||(r.className=" ace_info")}},this.$updateAnnotations=function(e){if(this.$annotations.length){var t=e.start.row,i=e.end.row-t;if(0===i);else if("remove"==e.action)this.$annotations.splice(t,i+1,null);else{var n=new Array(i+1);n.unshift(t,1),this.$annotations.splice.apply(this.$annotations,n)}}},this.update=function(e){for(var t=this.session,i=e.firstRow,r=Math.min(e.lastRow+e.gutterOffset,t.getLength()-1),o=t.getNextFoldLine(i),a=o?o.start.row:1/0,s=this.$showFoldWidgets&&t.foldWidgets,c=t.$breakpoints,l=t.$decorations,u=t.$firstLineNumber,d=0,h=t.gutterRenderer||this.$renderer,p=null,m=-1,f=i;;){if(f>a&&(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&&f<o.end.row?g+=" ace_closed":g+=" ace_open",p.foldWidget.className!=g&&(p.foldWidget.className=g);var b=e.lineHeight+"px";p.foldWidget.style.height!=b&&(p.foldWidget.style.height=b)}else p.foldWidget&&(p.element.removeChild(p.foldWidget),p.foldWidget=null);var v=d=h?h.getText(t,f):f+u;v!==p.textNode.data&&(p.textNode.data=v),f++}this.element.style.height=e.minHeight+"px",(this.$fixedWidth||t.$useWrapMode)&&(d=t.getLength()+u);var y=h?h.getWidth(t,d,e):d.toString().length*e.characterWidth,w=this.$padding||this.$computePadding();(y+=w.left+w.right)===this.gutterWidth||isNaN(y)||(this.gutterWidth=y,this.element.style.width=Math.ceil(this.gutterWidth)+"px",this._emit("changeGutterWidth",y))},this.$fixedWidth=!1,this.$showLineNumbers=!0,this.$renderer="",this.setShowLineNumbers=function(e){this.$renderer=!e&&{getWidth:function(){return""},getText:function(){return""}}},this.getShowLineNumbers=function(){return this.$showLineNumbers},this.$showFoldWidgets=!0,this.setShowFoldWidgets=function(e){e?n.addCssClass(this.element,"ace_folding-enabled"):n.removeCssClass(this.element,"ace_folding-enabled"),this.$showFoldWidgets=e,this.$padding=null},this.getShowFoldWidgets=function(){return this.$showFoldWidgets},this.$computePadding=function(){if(!this.element.firstChild)return{left:0,right:0};var e=n.computedStyle(this.element.firstChild);return this.$padding={},this.$padding.left=parseInt(e.paddingLeft)+1||0,this.$padding.right=parseInt(e.paddingRight)||0,this.$padding},this.getRegion=function(e){var t=this.$padding||this.$computePadding(),i=this.element.getBoundingClientRect();return e.x<t.left+i.left?"markers":this.$showFoldWidgets&&e.x>i.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+1<c?a.getScreenLastRowColumn(l+1):l==c?0:t.end.column,p=i+(l==s?" ace_start":"")+" ace_br"+((l==s||l==s+1&&t.start.column?1:0)|(u<d?2:0)|(d>h?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("<div class='",i," ace_br1 ace_start' style='","height:",o,"px;","right:0;","top:",a,"px;","left:",s,"px;",r,"'></div>"));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("<div class='",i," ace_br12' style='","height:",o,"px;","width:",u,"px;","top:",a,"px;","left:",c,"px;",r,"'></div>")}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("<div class='",i,d?" ace_br"+d:"","' style='","height:",o,"px;","right:0;","top:",a,"px;","left:",c,"px;",r,"'></div>")}},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("<div class='",i,"' style='","height:",a,"px;","width:",s,"px;","top:",c,"px;","left:",l,"px;",o||"","'></div>")},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("<div class='",i,"' style='","height:",a,"px;","width:",t.width+(r||0),"px;","top:",s,"px;","left:",c+t.left,"px;",o||"","'></div>")}))},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("<div class='",i,"' style='","height:",a,"px;","top:",o,"px;","left:0;right:0;",r||"","'></div>")},this.drawScreenLineMarker=function(e,t,i,n,r){var o=this.$getTop(t.start.row,n),a=n.lineHeight;e.push("<div class='",i,"' style='","height:",a,"px;","top:",o,"px;","left:0;right:0;",r||"","'></div>")}}).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<e+1;i++)this.showInvisibles?t.push("<span class='ace_invisible ace_invisible_tab'>"+o.stringRepeat(this.TAB_CHAR,i)+"</span>"):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[" "]="<span class='"+n+r+"'>"+s+"</span>",this.$tabStrings["\t"]="<span class='"+n+a+"'>"+c+"</span>"}},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;s<n;s++){if(c=this.session.getFoldLine(s)){if(c.containsRow(n)){n=c.start.row;break}s=c.end.row}a++}s=n;for(var c,l=(c=this.session.getNextFoldLine(s))?c.start.row:1/0;s>l&&(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.lastRow<e.firstRow)return this.update(e);if(e.lastRow<t.firstRow)return this.update(e);var i=this.element;if(t.firstRow<e.firstRow)for(var n=this.session.getFoldedRowCount(t.firstRow,e.firstRow-1);n>0;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.firstRow<t.firstRow){var r=this.$renderLinesFragment(e,e.firstRow,t.firstRow-1);i.firstChild?i.insertBefore(r,i.firstChild):i.appendChild(r)}if(e.lastRow>t.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("<div class='ace_line_group' style='height:",e.lineHeight*this.session.getRowLength(r),"px'>"),this.$renderLine(t,r,!1,r==a&&o),this.$useLineGroups()&&t.push("</div>"),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?"<span class='ace_invisible ace_invisible_space'>"+o.stringRepeat(r.SPACE_CHAR,e.length)+"</span>":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,"<span class='"+l+"' style='width:"+2*r.config.characterWidth+"px'>"+u+"</span>"}return n?"<span class='ace_invisible ace_invisible_space ace_invalid'>"+r.SPACE_CHAR+"</span>":(t+=1,"<span class='ace_cjk' style='width:"+2*r.config.characterWidth+"px'>"+e+"</span>")}));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("<span class='",s,"'",c,">",a,"</span>")}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<t.length;l++){var u=t[l],d=u.value;if(0==l&&this.displayIndentGuides){if(r=d.length,!(d=this.renderIndentGuide(e,d,s)))continue;r-=d.length}if(r+d.length<s)c=this.$renderToken(e,c,u,d),r+=d.length;else{for(;r+d.length>=s;)c=this.$renderToken(e,c,u,d.substring(0,s-r)),d=d.substring(s-r),r=s,n||e.push("</div>","<div class='ace_line' style='height:",this.config.lineHeight,"px'>"),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<t.length;o++)r=(n=t[o]).value,i=this.$renderToken(e,i,n,r)},this.$renderLine=function(e,t,i,n){if(n||0==n||(n=this.session.getFoldLine(t)),n)var r=this.$getFoldLineTokens(t,n);else r=this.session.getTokens(t);if(i||e.push("<div class='ace_line' style='height:",this.config.lineHeight*(this.$useLineGroups()?1:this.session.getRowLength(t)),"px'>"),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("<span class='ace_invisible ace_invisible_eol'>",t==this.session.getLength()-1?this.EOF_CHAR:this.EOL_CHAR,"</span>")),i||e.push("</div>")},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.length<t;)if(o+=e[r].value.length,++r==e.length)return;for(o!=t&&((a=e[r].value.substring(t-o)).length>i-t&&(a=a.substring(0,i-t)),n.push({type:e[r].type,value:a}),o=t+a.length,r+=1);o<i&&r<e.length;){var a;(a=e[r].value).length+o>i?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;i<r;i++){var o=this.getPixelPosition(t[i].cursor,!0);if(!((o.top>e.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.lastRow<t&&(this.$changedLines.lastRow=t)):this.$changedLines={firstRow:e,lastRow:t},this.$changedLines.lastRow<this.layerConfig.firstRow){if(!i)return;this.$changedLines.lastRow=this.layerConfig.lastRow}this.$changedLines.firstRow>this.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||t<i.firstRow))return t===1/0?(this.$showGutter&&this.$gutterLayer.update(i),void this.$textLayer.update(i)):(this.$textLayer.updateLines(i,e,t),!0)}},this.$getLongestLine=function(){var e=this.session.getScreenWidth();return this.showInvisibles&&!this.session.$useWrapMode&&(e+=1),Math.max(this.$size.scrollerWidth-2*this.$padding,Math.round(e*this.characterWidth))},this.updateFrontMarkers=function(){this.$markerFront.setMarkers(this.session.getMarkers(!0)),this.$loop.schedule(this.CHANGE_MARKER_FRONT)},this.updateBackMarkers=function(){this.$markerBack.setMarkers(this.session.getMarkers()),this.$loop.schedule(this.CHANGE_MARKER_BACK)},this.addGutterDecoration=function(e,t){this.$gutterLayer.addGutterDecoration(e,t)},this.removeGutterDecoration=function(e,t){this.$gutterLayer.removeGutterDecoration(e,t)},this.updateBreakpoints=function(e){this.$loop.schedule(this.CHANGE_GUTTER)},this.setAnnotations=function(e){this.$gutterLayer.setAnnotations(e),this.$loop.schedule(this.CHANGE_GUTTER)},this.updateCursor=function(){this.$loop.schedule(this.CHANGE_CURSOR)},this.hideCursor=function(){this.$cursorLayer.hideCursor()},this.showCursor=function(){this.$cursorLayer.showCursor()},this.scrollSelectionIntoView=function(e,t,i){this.scrollCursorIntoView(e,i),this.scrollCursorIntoView(t,i)},this.scrollCursorIntoView=function(e,t,i){if(0!==this.$size.scrollerHeight){var n=this.$cursorLayer.getPixelPosition(e),r=n.left,o=n.top,a=i&&i.top||0,s=i&&i.bottom||0,c=this.$scrollAnimation?this.session.getScrollTop():this.scrollTop;c+a>o?(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-s<o+this.lineHeight&&(t&&c+this.$size.scrollerHeight-s<o-this.lineHeight&&(o+=t*this.$size.scrollerHeight),this.session.setScrollTop(o+this.lineHeight-this.$size.scrollerHeight));var l=this.scrollLeft;l>r?(r<this.$padding+2*this.layerConfig.characterWidth&&(r=-this.scrollMargin.left),this.session.setScrollLeft(r)):l+this.$size.scrollerWidth<r+this.characterWidth?this.session.setScrollLeft(Math.round(r+this.characterWidth-this.$size.scrollerWidth)):l<=this.$padding&&r-l<this.characterWidth&&this.session.setScrollLeft(0)}},this.getScrollTop=function(){return this.session.getScrollTop()},this.getScrollLeft=function(){return this.session.getScrollLeft()},this.getScrollTopRow=function(){return this.scrollTop/this.lineHeight},this.getScrollBottomRow=function(){return Math.max(0,Math.floor((this.scrollTop+this.$size.scrollerHeight)/this.lineHeight)-1)},this.scrollToRow=function(e){this.session.setScrollTop(e*this.lineHeight)},this.alignCursor=function(e,t){"number"==typeof e&&(e={row:e,column:0});var i=this.$cursorLayer.getPixelPosition(e),n=this.$size.scrollerHeight-this.lineHeight,r=i.top-n*(t||0);return this.session.setScrollTop(r),r},this.STEPS=8,this.$calcSteps=function(e,t){var i=0,n=this.STEPS,r=[],o=function(e,t,i){return i*(Math.pow(e-1,3)+1)+t};for(i=0;i<n;++i)r.push(o(i/this.STEPS,e,t-e));return r},this.scrollToLine=function(e,t,i,n){var r=this.$cursorLayer.getPixelPosition({row:e,column:0}).top;t&&(r-=this.$size.scrollerHeight/2);var o=this.scrollTop;this.session.setScrollTop(r),!1!==i&&this.animateScrolling(o,n)},this.animateScrolling=function(e,t){var i=this.scrollTop;if(this.$animatedScroll){var n=this;if(e!=i){if(this.$scrollAnimation){var r=this.$scrollAnimation.steps;if(r.length&&(e=r[0])==i)return}var o=n.$calcSteps(e,i);this.$scrollAnimation={from:e,to:i,steps:o},clearInterval(this.$timer),n.session.setScrollTop(o.shift()),n.session.$scrollTop=i,this.$timer=setInterval((function(){o.length?(n.session.setScrollTop(o.shift()),n.session.$scrollTop=i):null!=i?(n.session.$scrollTop=-1,n.session.setScrollTop(i),i=null):(n.$timer=clearInterval(n.$timer),n.$scrollAnimation=null,t&&t())}),10)}}},this.scrollToY=function(e){this.scrollTop!==e&&(this.$loop.schedule(this.CHANGE_SCROLL),this.scrollTop=e)},this.scrollToX=function(e){this.scrollLeft!==e&&(this.scrollLeft=e),this.$loop.schedule(this.CHANGE_H_SCROLL)},this.scrollTo=function(e,t){this.session.setScrollTop(t),this.session.setScrollLeft(t)},this.scrollBy=function(e,t){t&&this.session.setScrollTop(this.session.getScrollTop()+t),e&&this.session.setScrollLeft(this.session.getScrollLeft()+e)},this.isScrollableBy=function(e,t){return t<0&&this.session.getScrollTop()>=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.others.length;e++)this.session.removeMarker(this.others[e].markerId)}},this.onUpdate=function(e){if(this.$updating)return this.updateAnchors(e);var t=e;if(t.start.row===t.end.row&&t.start.row===this.pos.row){this.$updating=!0;var i="insert"===e.action?t.end.column-t.start.column:t.start.column-t.end.column,r=t.start.column>=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;i<t;i++)e.undo(!0);this.selectionBefore&&this.session.selection.fromJSON(this.selectionBefore)}}}).call(a.prototype),t.PlaceHolder=a})),ace.define("ace/mouse/multi_select_handler",["require","exports","module","ace/lib/event","ace/lib/useragent"],(function(e,t,i){var n=e("../lib/event"),r=e("../lib/useragent");function o(e,t){return e.row==t.row&&e.column==t.column}t.onMouseDown=function(e){var t=e.domEvent,i=t.altKey,a=t.shiftKey,s=t.ctrlKey,c=e.getAccelKey(),l=e.getButton();if(s&&r.isMac&&(l=t.button),e.editor.inMultiSelectMode&&2==l)e.editor.textInput.onContextMenu(e.domEvent);else if(s||i||c){if(0===l){var u,d=e.editor,h=d.selection,p=d.inMultiSelectMode,m=e.getDocumentPosition(),f=h.getCursor(),g=e.inSelection()||h.isEmpty()&&o(m,f),_=e.x,b=e.y,v=d.session,y=d.renderer.pixelToScreenCoordinates(_,b),w=y;if(d.$mouseHandler.$enableJumpToDef)s&&i||c&&i?u=a?"block":"add":i&&d.$blockSelectEnabled&&(u="block");else if(c&&!i){if(u="add",!p&&a)return}else i&&d.$blockSelectEnabled&&(u="block");if(u&&r.isMac&&t.ctrlKey&&d.$mouseHandler.cancelContextMenu(),"add"==u){if(!p&&g)return;if(!p){var x=h.toOrientedRange();d.addSelectionMarker(x)}var N=h.rangeList.rangeAtPoint(m);d.$blockScrolling++,d.inVirtualSelectionMode=!0,a&&(N=null,x=h.ranges[0]||x,d.removeSelectionMarker(x)),d.once("mouseup",(function(){var e=h.toOrientedRange();N&&e.isEmpty()&&o(N.cursor,e.cursor)?h.substractPoint(e.cursor):(a?h.substractPoint(x.cursor):x&&(d.removeSelectionMarker(x),h.addRange(x)),h.addRange(e)),d.$blockScrolling--,d.inVirtualSelectionMode=!1}))}else if("block"==u){var k;e.stop(),d.inVirtualSelectionMode=!0;var A=[];d.$blockScrolling++,p&&!c?h.toSingleRange():!p&&c&&(k=h.toOrientedRange(),d.addSelectionMarker(k)),a?y=v.documentToScreenPosition(h.lead):h.moveToPosition(m),d.$blockScrolling--,w={row:-1,column:-1};var C=function(){var e=d.renderer.pixelToScreenCoordinates(_,b),t=v.screenToDocumentPosition(e.row,e.column,e.offsetX);o(w,e)&&o(t,h.lead)||(w=e,d.$blockScrolling++,d.selection.moveToPosition(t),d.renderer.scrollCursorIntoView(),d.removeSelectionMarkers(A),A=h.rectangularRangeBlock(w,y),d.$mouseHandler.$clickSelection&&1==A.length&&A[0].isEmpty()&&(A[0]=d.$mouseHandler.$clickSelection.clone()),A.forEach(d.addSelectionMarker,d),d.updateSelectionMarkers(),d.$blockScrolling--)};n.capture(d.container,(function(e){_=e.clientX,b=e.clientY}),(function(e){clearInterval(O),d.removeSelectionMarkers(A),A.length||(A=[h.toOrientedRange()]),d.$blockScrolling++,k&&(d.removeSelectionMarker(k),h.toSingleRange(k));for(var t=0;t<A.length;t++)h.addRange(A[t]);d.inVirtualSelectionMode=!1,d.$mouseHandler.$clickSelection=null,d.$blockScrolling--}));var O=setInterval((function(){C()}),20);return e.preventDefault()}}}else 0===l&&e.editor.inMultiSelectMode&&e.editor.exitMultiSelectMode()}})),ace.define("ace/commands/multi_select_commands",["require","exports","module","ace/keyboard/hash_handler"],(function(e,t,i){t.defaultCommands=[{name:"addCursorAbove",exec:function(e){e.selectMoreLines(-1)},bindKey:{win:"Ctrl-Alt-Up",mac:"Ctrl-Alt-Up"},scrollIntoView:"cursor",readOnly:!0},{name:"addCursorBelow",exec:function(e){e.selectMoreLines(1)},bindKey:{win:"Ctrl-Alt-Down",mac:"Ctrl-Alt-Down"},scrollIntoView:"cursor",readOnly:!0},{name:"addCursorAboveSkipCurrent",exec:function(e){e.selectMoreLines(-1,!0)},bindKey:{win:"Ctrl-Alt-Shift-Up",mac:"Ctrl-Alt-Shift-Up"},scrollIntoView:"cursor",readOnly:!0},{name:"addCursorBelowSkipCurrent",exec:function(e){e.selectMoreLines(1,!0)},bindKey:{win:"Ctrl-Alt-Shift-Down",mac:"Ctrl-Alt-Shift-Down"},scrollIntoView:"cursor",readOnly:!0},{name:"selectMoreBefore",exec:function(e){e.selectMore(-1)},bindKey:{win:"Ctrl-Alt-Left",mac:"Ctrl-Alt-Left"},scrollIntoView:"cursor",readOnly:!0},{name:"selectMoreAfter",exec:function(e){e.selectMore(1)},bindKey:{win:"Ctrl-Alt-Right",mac:"Ctrl-Alt-Right"},scrollIntoView:"cursor",readOnly:!0},{name:"selectNextBefore",exec:function(e){e.selectMore(-1,!0)},bindKey:{win:"Ctrl-Alt-Shift-Left",mac:"Ctrl-Alt-Shift-Left"},scrollIntoView:"cursor",readOnly:!0},{name:"selectNextAfter",exec:function(e){e.selectMore(1,!0)},bindKey:{win:"Ctrl-Alt-Shift-Right",mac:"Ctrl-Alt-Shift-Right"},scrollIntoView:"cursor",readOnly:!0},{name:"splitIntoLines",exec:function(e){e.multiSelect.splitIntoLines()},bindKey:{win:"Ctrl-Alt-L",mac:"Ctrl-Alt-L"},readOnly:!0},{name:"alignCursors",exec:function(e){e.alignCursors()},bindKey:{win:"Ctrl-Alt-A",mac:"Ctrl-Alt-A"},scrollIntoView:"cursor"},{name:"findAll",exec:function(e){e.findAll()},bindKey:{win:"Ctrl-Alt-K",mac:"Ctrl-Alt-G"},scrollIntoView:"cursor",readOnly:!0}],t.multiSelectCommands=[{name:"singleSelection",bindKey:"esc",exec:function(e){e.exitMultiSelectMode()},scrollIntoView:"cursor",readOnly:!0,isAvailable:function(e){return e&&e.inMultiSelectMode}}];var n=e("../keyboard/hash_handler").HashHandler;t.keyboardHandler=new n(t.multiSelectCommands)})),ace.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(e,t,i){var n=e("./range_list").RangeList,r=e("./range").Range,o=e("./selection").Selection,a=e("./mouse/multi_select_handler").onMouseDown,s=e("./lib/event"),c=e("./lib/lang"),l=e("./commands/multi_select_commands");t.commands=l.defaultCommands.concat(l.multiSelectCommands);var u=new(0,e("./search").Search);var d=e("./edit_session").EditSession;(function(){this.getSelectionMarkers=function(){return this.$selectionMarkers}}).call(d.prototype),function(){this.ranges=null,this.rangeList=null,this.addRange=function(e,t){if(e){if(!this.inMultiSelectMode&&0===this.rangeCount){var i=this.toOrientedRange();if(this.rangeList.add(i),this.rangeList.add(e),2!=this.rangeList.ranges.length)return this.rangeList.removeAll(),t||this.fromOrientedRange(e);this.rangeList.removeAll(),this.rangeList.add(i),this.$onAddRange(i)}e.cursor||(e.cursor=e.end);var n=this.rangeList.add(e);return this.$onAddRange(e),n.length&&this.$onRemoveRange(n),this.rangeCount>1&&!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;d<a;d++)l.push(this.getLineRange(d,!0));(u=this.getLineRange(a,!0)).end.column=i.end.column,l.push(u),l.forEach(this.addRange,this)}},this.toggleBlockSelection=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{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.column<t.column;if(o)var a=e.column,s=t.column,c=e.offsetX,l=t.offsetX;else a=t.column,s=e.column,c=t.offsetX,l=e.offsetX;var u,d,h=e.row<t.row;if(h)var p=e.row,m=t.row;else p=t.row,m=e.row;a<0&&(a=0),p<0&&(p=0),p==m&&(i=!0);for(var f=p;f<=m;f++){var g=r.fromPoints(this.session.screenToDocumentPosition(f,a,c),this.session.screenToDocumentPosition(f,s,l));if(g.isEmpty()){if(_&&(u=g.end,d=_,u.row==d.row&&u.column==d.column))break;var _=g.end}g.cursor=o?g.start:g.end,n.push(g)}if(h&&n.reverse(),!i){for(var b=n.length-1;n[b].isEmpty()&&b>0;)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;n<t.length;n++)i.push(this.session.getTextRange(t[n]));var r=this.session.getDocument().getNewLineCharacter();(e=i.join(r)).length==(i.length-1)*r.length&&(e="")}else this.selection.isEmpty()||(e=this.session.getTextRange(this.getSelectionRange()));return e},this.$checkMultiselectChange=function(e,t){if(this.inMultiSelectMode&&!this.inVirtualSelectionMode){var i=this.multiSelect.ranges[0];if(this.multiSelect.isEmpty()&&t==this.multiSelect.anchor)return;var n=t==this.multiSelect.anchor?i.cursor==i.start?i.end:i.start:i.cursor;n.row==t.row&&this.session.$clipPositionToDocument(n.row,n.column).column==t.column||this.multiSelect.toSingleRange(this.multiSelect.toOrientedRange())}},this.findAll=function(e,t,i){if((t=t||{}).needle=e||t.needle,null==t.needle){var n=this.selection.isEmpty()?this.selection.getWordRange():this.selection.getRange();t.needle=this.session.getTextRange(n)}this.$search.set(t);var r=this.$search.findAll(this.session);if(!r.length)return 0;this.$blockScrolling+=1;var o=this.multiSelect;i||o.toSingleRange(r[0]);for(var a=r.length;a--;)o.addRange(r[a],!0);return n&&o.rangeList.rangeAtPoint(n.start)&&o.addRange(n,!0),this.$blockScrolling-=1,r.length},this.selectMoreLines=function(e,t){var i=this.selection.toOrientedRange(),n=i.cursor==i.end,o=this.session.documentToScreenPosition(i.cursor);this.selection.$desiredColumn&&(o.column=this.selection.$desiredColumn);var a,s=this.session.screenToDocumentPosition(o.row+e,o.column);if(i.isEmpty())l=s;else var c=this.session.documentToScreenPosition(n?i.end:i.start),l=this.session.screenToDocumentPosition(c.row+e,c.column);n?(a=r.fromPoints(s,l)).cursor=a.start:(a=r.fromPoints(l,s)).cursor=a.end;if(a.desiredColumn=o.column,this.selection.inMultiSelectMode){if(t)var u=i.cursor}else this.selection.addRange(i);this.selection.addRange(a),u&&this.selection.substractPoint(u)},this.transposeSelections=function(e){for(var t=this.session,i=t.multiSelect,n=i.ranges,r=n.length;r--;){if((s=n[r]).isEmpty()){var o=t.getWordRange(s.start.row,s.start.column);s.start.row=o.start.row,s.start.column=o.start.column,s.end.row=o.end.row,s.end.column=o.end.column}}i.mergeOverlappingRanges();var a=[];for(r=n.length;r--;){var s=n[r];a.unshift(t.getTextRange(s))}e<0?a.unshift(a.pop()):a.push(a.shift());for(r=n.length;r--;){o=(s=n[r]).clone();t.replace(s,a[r]),s.start.row=o.start.row,s.start.column=o.start.column}},this.selectMore=function(e,t,i){var n=this.session,r=n.multiSelect.toOrientedRange();if(!r.isEmpty()||((r=n.getWordRange(r.start.row,r.start.column)).cursor=-1==e?r.start:r.end,this.multiSelect.addRange(r),!i)){var o=n.getTextRange(r),a=function(e,t,i){return u.$options.wrap=!0,u.$options.needle=t,u.$options.backwards=-1==i,u.find(e)}(n,o,e);a&&(a.cursor=-1==e?a.start:a.end,this.$blockScrolling+=1,this.session.unfold(a),this.multiSelect.addRange(a),this.$blockScrolling-=1,this.renderer.scrollCursorIntoView(null,.5)),t&&this.multiSelect.substractPoint(r.cursor)}},this.alignCursors=function(){var e=this.session,t=e.multiSelect,i=t.ranges,n=-1,o=i.filter((function(e){if(e.cursor.row==n)return!0;n=e.cursor.row}));if(i.length&&o.length!=i.length-1){o.forEach((function(e){t.substractPoint(e.cursor)}));var a=0,s=1/0,l=i.map((function(t){var i=t.cursor,n=e.getLine(i.row).substr(i.column).search(/\S/g);return-1==n&&(n=0),i.column>a&&(a=i.column),n<s&&(s=n),n}));i.forEach((function(t,i){var n=t.cursor,o=a-n.column,u=l[i]-s;o>u?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)&&++h<f);do{m=this.session.getLine(d)}while(/[=:]/.test(m)&&--d>0);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),n<t[2].length&&(n=t[2].length),r>t[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;++t<c;){var d=e.getLine(t).search(r);if(-1!=d){if(d<=a)break;u=t}}if(u>l){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;s<o;s++)i[s]&&(i[s].hidden=a);i[o]&&(a?i[r]?i[o].hidden=a:i[r]=i[o]:(i[r]==i[o]&&(i[r]=void 0),i[o].hidden=a))}},this.updateOnChange=function(e){var t=this.session.lineWidgets;if(t){var i=e.start.row,n=e.end.row-i;if(0===n);else if("remove"==e.action){t.splice(i+1,n).forEach((function(e){e&&this.removeLineWidget(e)}),this),this.$updateRows()}else{var r=new Array(n);r.unshift(i,0),t.splice.apply(t,r),this.$updateRows()}}},this.$updateRows=function(){var e=this.session.lineWidgets;if(e){var t=!0;e.forEach((function(e,i){if(e)for(t=!1,e.row=i;e.$oldWidget;)e.$oldWidget.row=i,e=e.$oldWidget})),t&&(this.session.lineWidgets=null)}},this.addLineWidget=function(e){this.session.lineWidgets||(this.session.lineWidgets=new Array(this.session.getLength()));var t=this.session.lineWidgets[e.row];t&&(e.$oldWidget=t,t.el&&t.el.parentNode&&(t.el.parentNode.removeChild(t.el),t._inDocument=!1)),this.session.lineWidgets[e.row]=e,e.session=this.session;var i=this.editor.renderer;e.html&&!e.el&&(e.el=n.createElement("div"),e.el.innerHTML=e.html),e.el&&(n.addCssClass(e.el,"ace_lineWidgetContainer"),e.el.style.position="absolute",e.el.style.zIndex=5,i.container.appendChild(e.el),e._inDocument=!0),e.coverGutter||(e.el.style.zIndex=3),null==e.pixelHeight&&(e.pixelHeight=e.el.offsetHeight),null==e.rowCount&&(e.rowCount=e.pixelHeight/i.layerConfig.lineHeight);var r=this.session.getFoldAt(e.row,0);if(e.$fold=r,r){var o=this.session.lineWidgets;e.row!=r.end.row||o[r.start.row]?e.hidden=!0:o[r.start.row]=e}return this.session._emit("changeFold",{data:{start:{row:e.row}}}),this.$updateRows(),this.renderWidgets(null,i),this.onWidgetChanged(e),e},this.removeLineWidget=function(e){if(e._inDocument=!1,e.session=null,e.el&&e.el.parentNode&&e.el.parentNode.removeChild(e.el),e.editor&&e.editor.destroy)try{e.editor.destroy()}catch(i){}if(this.session.lineWidgets){var t=this.session.lineWidgets[e.row];if(t==e)this.session.lineWidgets[e.row]=e.$oldWidget,e.$oldWidget&&this.onWidgetChanged(e.$oldWidget);else for(;t;){if(t.$oldWidget==e){t.$oldWidget=e.$oldWidget;break}t=t.$oldWidget}}this.session._emit("changeFold",{data:{start:{row:e.row}}}),this.$updateRows()},this.getWidgetsAtRow=function(e){for(var t=this.session.lineWidgets,i=t&&t[e],n=[];i;)n.push(i),i=i.$oldWidget;return n},this.onWidgetChanged=function(e){this.session._changedWidgets.push(e),this.editor&&this.editor.renderer.updateFull()},this.measureWidgets=function(e,t){var i=this.session._changedWidgets,n=t.layerConfig;if(i&&i.length){for(var r=1/0,o=0;o<i.length;o++){var a=i[o];if(a&&a.el&&a.session==this.session){if(!a._inDocument){if(this.session.lineWidgets[a.row]!=a)continue;a._inDocument=!0,t.container.appendChild(a.el)}a.h=a.el.offsetHeight,a.fixedWidth||(a.w=a.el.offsetWidth,a.screenWidth=Math.ceil(a.w/n.characterWidth));var s=a.h/n.lineHeight;a.coverLine&&(s-=this.session.getRowLineCount(a.row))<0&&(s=0),a.rowCount!=s&&(a.rowCount=s,a.row<r&&(r=a.row))}}r!=1/0&&(this.session._emit("changeFold",{data:{start:{row:r}}}),this.session.lineWidgetWidth=null),this.session._changedWidgets=[]}},this.renderWidgets=function(e,t){var i=t.layerConfig,n=this.session.lineWidgets;if(n){for(var r=Math.min(this.firstRow,i.firstRow),o=Math.max(this.lastRow,i.lastRow,n.length);r>0&&!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("<br>"),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 pb=window.ace.acequire("ace/ace"),mb={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.column<point2.column;return point1.row<point2.row||point1.row==point2.row&&bColIsAfter}function $getTransformedPoint(delta,point,moveIfEqual){var deltaIsInsert="insert"==delta.action,deltaRowShift=(deltaIsInsert?1:-1)*(delta.end.row-delta.start.row),deltaColShift=(deltaIsInsert?1:-1)*(delta.end.column-delta.start.column),deltaStart=delta.start,deltaEnd=deltaIsInsert?deltaStart:delta.end;return $pointsInOrder(point,deltaStart,moveIfEqual)?{row:point.row,column:point.column}:$pointsInOrder(deltaEnd,point,!moveIfEqual)?{row:point.row+deltaRowShift,column:point.column+(point.row==deltaEnd.row?deltaColShift:0)}:{row:deltaStart.row,column:deltaStart.column}}oop.implement(this,EventEmitter),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.$insertRight=!1,this.onChange=function(delta){if(!(delta.start.row==delta.end.row&&delta.start.row!=this.row||delta.start.row>this.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(/</g,"<")},exports.getMatchOffsets=function(string,regExp){var matches=[];return string.replace(regExp,function(str){matches.push({offset:arguments[arguments.length-2],length:str.length})}),matches},exports.deferredCall=function(fcn){var timer=null,callback=function(){timer=null,fcn()},deferred=function(timeout){return deferred.cancel(),timer=setTimeout(callback,timeout||0),deferred};return deferred.schedule=deferred,deferred.call=function(){return this.cancel(),fcn(),deferred},deferred.cancel=function(){return clearTimeout(timer),timer=null,deferred},deferred.isPending=function(){return timer},deferred},exports.delayedCall=function(fcn,defaultTimeout){var timer=null,callback=function(){timer=null,fcn()},_self=function(timeout){null==timer&&(timer=setTimeout(callback,timeout||defaultTimeout))};return _self.delay=function(timeout){timer&&clearTimeout(timer),timer=setTimeout(callback,timeout||defaultTimeout)},_self.schedule=_self,_self.call=function(){this.cancel(),fcn()},_self.cancel=function(){timer&&clearTimeout(timer),timer=null},_self.isPending=function(){return timer},_self}}),ace.define("ace/worker/mirror",["require","exports","module","ace/range","ace/document","ace/lib/lang"],function(acequire,exports){"use strict";acequire("../range").Range;var Document=acequire("../document").Document,lang=acequire("../lib/lang"),Mirror=exports.Mirror=function(sender){this.sender=sender;var doc=this.doc=new Document(""),deferredUpdate=this.deferredUpdate=lang.delayedCall(this.onUpdate.bind(this)),_self=this;sender.on("change",function(e){var data=e.data;if(data[0].start)doc.applyDeltas(data);else for(var i=0;data.length>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();++t<c;){var l=(i=e.getLine(t)).search(/\S/);if(-1!==l){if(n>l)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;++i<o;){t=e.getLine(i);var l=s.exec(t);if(l&&(l[1]?c--:c++,!c))break}if(i>a)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"],mb,"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;++i<l;){var h=(a=e.getLine(i)).search(r);if(-1!=h){if("#"!=a[h])break;d=i}}if(d>u){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<c?"start":"","";if(-1==s){if(r==c&&"#"==n[r]&&"#"==o[r])return e.foldWidgets[i-1]="",e.foldWidgets[i+1]="","start"}else if(s==r&&"#"==n[r]&&"#"==a[r]&&-1==e.getLine(i-2).search(/\S/))return e.foldWidgets[i-1]="start",e.foldWidgets[i+1]="","";return e.foldWidgets[i-1]=-1!=s&&s<r?"start":"",r<c?"start":""}}.call(a.prototype)})),ace.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(e,t,i){var n=e("../lib/oop"),r=e("./text").Mode,o=e("./yaml_highlight_rules").YamlHighlightRules,a=e("./matching_brace_outdent").MatchingBraceOutdent,s=e("./folding/coffee").FoldMode,c=function(){this.HighlightRules=o,this.$outdent=new a,this.foldingRules=new s,this.$behaviour=this.$defaultBehaviour};n.inherits(c,r),function(){this.lineCommentStart=["#","//"],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.$id="ace/mode/yaml"}.call(c.prototype),t.Mode=c}));var fb={exports:{}};fb.exports=function(e){var t={};function i(n){if(t[n])return t[n].exports;var r=t[n]={exports:{},id:n,loaded:!1};return e[n].call(r.exports,r,r.exports,i),r.loaded=!0,r.exports}return i.m=e,i.c=t,i.p="",i(0)}([function(e,t,i){Object.defineProperty(t,"__esModule",{value:!0});var n=i(1),r=i(3),o=i(8),a=i(15);function s(e,t,i){var a=null,s=function(e,t){i&&i(e,t),a&&a.visit(e,t)},c="function"==typeof i?s:null,l=!1;if(t){l="boolean"==typeof t.comment&&t.comment;var u="boolean"==typeof t.attachComment&&t.attachComment;(l||u)&&((a=new n.CommentHandler).attach=u,t.comment=!0,c=s)}var d,h=!1;t&&"string"==typeof t.sourceType&&(h="module"===t.sourceType),d=t&&"boolean"==typeof t.jsx&&t.jsx?new r.JSXParser(e,t,c):new o.Parser(e,t,c);var p=h?d.parseModule():d.parseScript();return l&&a&&(p.comments=a.comments),d.config.tokens&&(p.tokens=d.tokens),d.config.tolerant&&(p.errors=d.errorHandler.errors),p}t.parse=s,t.parseModule=function(e,t,i){var n=t||{};return n.sourceType="module",s(e,n,i)},t.parseScript=function(e,t,i){var n=t||{};return n.sourceType="script",s(e,n,i)},t.tokenize=function(e,t,i){var n,r=new a.Tokenizer(e,t);n=[];try{for(;;){var o=r.getNextToken();if(!o)break;i&&(o=i(o)),n.push(o)}}catch(s){r.errorHandler.tolerate(s)}return r.errorHandler.tolerant&&(n.errors=r.errors()),n};var c=i(2);t.Syntax=c.Syntax,t.version="4.0.1"},function(e,t,i){Object.defineProperty(t,"__esModule",{value:!0});var n=i(2),r=function(){function e(){this.attach=!1,this.comments=[],this.stack=[],this.leading=[],this.trailing=[]}return e.prototype.insertInnerComments=function(e,t){if(e.type===n.Syntax.BlockStatement&&0===e.body.length){for(var i=[],r=this.leading.length-1;r>=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.start<i.end){var n=this.getTokenRaw(i),r=this.finalize(t,new a.JSXText(i.value,n));e.push(r)}if("{"!==this.scanner.source[this.scanner.index])break;var o=this.parseJSXExpressionContainer();e.push(o)}return e},t.prototype.parseComplexJSXElement=function(e){for(var t=[];!this.scanner.eof();){e.children=e.children.concat(this.parseJSXChildren());var i=this.createJSXChildNode(),n=this.parseJSXBoundaryElement();if(n.type===s.JSXSyntax.JSXOpeningElement){var r=n;if(r.selfClosing){var o=this.finalize(i,new a.JSXElement(r,[],null));e.children.push(o)}else t.push(e),e={node:i,opening:r,closing:null,children:[]}}if(n.type===s.JSXSyntax.JSXClosingElement){e.closing=n;var c=h(e.opening.name);if(c!==h(e.closing.name)&&this.tolerateError("Expected corresponding JSX closing tag for %0",c),!(t.length>0))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 k=function(){this.type=n.Syntax.DebuggerStatement};t.DebuggerStatement=k;var A=function(e,t){this.type=n.Syntax.ExpressionStatement,this.expression=e,this.directive=t};t.Directive=A;var C=function(e,t){this.type=n.Syntax.DoWhileStatement,this.body=e,this.test=t};t.DoWhileStatement=C;var O=function(){this.type=n.Syntax.EmptyStatement};t.EmptyStatement=O;var S=function(e){this.type=n.Syntax.ExportAllDeclaration,this.source=e};t.ExportAllDeclaration=S;var E=function(e){this.type=n.Syntax.ExportDefaultDeclaration,this.declaration=e};t.ExportDefaultDeclaration=E;var F=function(e,t,i){this.type=n.Syntax.ExportNamedDeclaration,this.declaration=e,this.specifiers=t,this.source=i};t.ExportNamedDeclaration=F;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 T=function(e,t,i,r){this.type=n.Syntax.ForStatement,this.init=e,this.test=t,this.update=i,this.body=r};t.ForStatement=T;var R=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=R;var $=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=$;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 G=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=G;var K=function(e){this.type=n.Syntax.Program,this.body=e,this.sourceType="module"};t.Module=K;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;i<arguments.length;i++)t[i-1]=arguments[i];var r=Array.prototype.slice.call(arguments,1),o=e.replace(/%(\d)/g,(function(e,t){return n.assert(t<r.length,"Message reference must be in range"),r[t]})),a=this.lastMarker.index,s=this.lastMarker.line,c=this.lastMarker.column+1;throw this.errorHandler.createError(a,s,c,o)},e.prototype.tolerateError=function(e){for(var t=[],i=1;i<arguments.length;i++)t[i-1]=arguments[i];var r=Array.prototype.slice.call(arguments,1),o=e.replace(/%(\d)/g,(function(e,t){return n.assert(t<r.length,"Message reference must be in range"),r[t]})),a=this.lastMarker.index,s=this.scanner.lineNumber,c=this.lastMarker.column+1;this.errorHandler.tolerateError(a,s,c,o)},e.prototype.unexpectedTokenError=function(e,t){var i,n=t||o.Messages.UnexpectedToken;if(e?(t||(n=2===e.type?o.Messages.UnexpectedEOS:3===e.type?o.Messages.UnexpectedIdentifier:6===e.type?o.Messages.UnexpectedNumber:8===e.type?o.Messages.UnexpectedString:10===e.type?o.Messages.UnexpectedTemplate:o.Messages.UnexpectedToken,4===e.type&&(this.scanner.isFutureReservedWord(e.value)?n=o.Messages.UnexpectedReserved:this.context.strict&&this.scanner.isStrictModeReservedWord(e.value)&&(n=o.Messages.StrictReservedWord))),i=e.value):i="ILLEGAL",n=n.replace("%0",i),e&&"number"==typeof e.lineNumber){var r=e.start,a=e.lineNumber,s=this.lastMarker.index-this.lastMarker.column,c=e.start-s+1;return this.errorHandler.createError(r,a,c,n)}return r=this.lastMarker.index,a=this.lastMarker.line,c=this.lastMarker.column+1,this.errorHandler.createError(r,a,c,n)},e.prototype.throwUnexpectedToken=function(e,t){throw this.unexpectedTokenError(e,t)},e.prototype.tolerateUnexpectedToken=function(e,t){this.errorHandler.tolerate(this.unexpectedTokenError(e,t))},e.prototype.collectComments=function(){if(this.config.comment){var e=this.scanner.scanComments();if(e.length>0&&this.delegate)for(var t=0;t<e.length;++t){var i=e[t],n=void 0;n={type:i.multiLine?"BlockComment":"LineComment",value:this.scanner.source.slice(i.slice[0],i.slice[1])},this.config.range&&(n.range=i.range),this.config.loc&&(n.loc=i.loc);var r={start:{line:i.loc.start.line,column:i.loc.start.column,offset:i.range[0]},end:{line:i.loc.end.line,column:i.loc.end.column,offset:i.range[1]}};this.delegate(n,r)}}else this.scanner.scanComments()},e.prototype.getTokenRaw=function(e){return this.scanner.source.slice(e.start,e.end)},e.prototype.convertToken=function(e){var t={type:l.TokenName[e.type],value:this.getTokenRaw(e)};if(this.config.range&&(t.range=[e.start,e.end]),this.config.loc&&(t.loc={start:{line:this.startMarker.line,column:this.startMarker.column},end:{line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}}),9===e.type){var i=e.pattern,n=e.flags;t.regex={pattern:i,flags:n}}return t},e.prototype.nextToken=function(){var e=this.lookahead;this.lastMarker.index=this.scanner.index,this.lastMarker.line=this.scanner.lineNumber,this.lastMarker.column=this.scanner.index-this.scanner.lineStart,this.collectComments(),this.scanner.index!==this.startMarker.index&&(this.startMarker.index=this.scanner.index,this.startMarker.line=this.scanner.lineNumber,this.startMarker.column=this.scanner.index-this.scanner.lineStart);var t=this.scanner.lex();return this.hasLineTerminator=e.lineNumber!==t.lineNumber,t&&this.context.strict&&3===t.type&&this.scanner.isStrictModeReservedWord(t.value)&&(t.type=4),this.lookahead=t,this.config.tokens&&2!==t.type&&this.tokens.push(this.convertToken(t)),e},e.prototype.nextRegexToken=function(){this.collectComments();var e=this.scanner.scanRegExp();return this.config.tokens&&(this.tokens.pop(),this.tokens.push(this.convertToken(e))),this.lookahead=e,this.nextToken(),e},e.prototype.createNode=function(){return{index:this.startMarker.index,line:this.startMarker.line,column:this.startMarker.column}},e.prototype.startNode=function(e,t){void 0===t&&(t=0);var i=e.start-e.lineStart,n=e.lineNumber;return i<0&&(i+=t,n--),{index:e.start,line:n,column:i}},e.prototype.finalize=function(e,t){if(this.config.range&&(t.range=[e.index,this.lastMarker.index]),this.config.loc&&(t.loc={start:{line:e.line,column:e.column},end:{line:this.lastMarker.line,column:this.lastMarker.column}},this.config.source&&(t.loc.source=this.config.source)),this.delegate){var i={start:{line:e.line,column:e.column,offset:e.index},end:{line:this.lastMarker.line,column:this.lastMarker.column,offset:this.lastMarker.index}};this.delegate(t,i)}return t},e.prototype.expect=function(e){var t=this.nextToken();7===t.type&&t.value===e||this.throwUnexpectedToken(t)},e.prototype.expectCommaSeparator=function(){if(this.config.tolerant){var e=this.lookahead;7===e.type&&","===e.value?this.nextToken():7===e.type&&";"===e.value?(this.nextToken(),this.tolerateUnexpectedToken(e)):this.tolerateUnexpectedToken(e,o.Messages.UnexpectedToken)}else this.expect(",")},e.prototype.expectKeyword=function(e){var t=this.nextToken();4===t.type&&t.value===e||this.throwUnexpectedToken(t)},e.prototype.match=function(e){return 7===this.lookahead.type&&this.lookahead.value===e},e.prototype.matchKeyword=function(e){return 4===this.lookahead.type&&this.lookahead.value===e},e.prototype.matchContextualKeyword=function(e){return 3===this.lookahead.type&&this.lookahead.value===e},e.prototype.matchAssign=function(){if(7!==this.lookahead.type)return!1;var e=this.lookahead.value;return"="===e||"*="===e||"**="===e||"/="===e||"%="===e||"+="===e||"-="===e||"<<="===e||">>="===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<e.elements.length;t++)null!==e.elements[t]&&this.reinterpretExpressionAsPattern(e.elements[t]);break;case c.Syntax.ObjectExpression:for(e.type=c.Syntax.ObjectPattern,t=0;t<e.properties.length;t++)this.reinterpretExpressionAsPattern(e.properties[t].value);break;case c.Syntax.AssignmentExpression:e.type=c.Syntax.AssignmentPattern,delete e.operator,this.reinterpretExpressionAsPattern(e.left)}},e.prototype.parseGroupExpression=function(){var e;if(this.expect("("),this.match(")"))this.nextToken(),this.match("=>")||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<r.length;o++)this.reinterpretExpressionAsPattern(r[o]);n=!0,e={type:u,params:r,async:!1}}else if(this.match("...")){for(this.context.isBindingElement||this.throwUnexpectedToken(this.lookahead),r.push(this.parseRestElement(i)),this.expect(")"),this.match("=>")||this.expect("=>"),this.context.isBindingElement=!1,o=0;o<r.length;o++)this.reinterpretExpressionAsPattern(r[o]);n=!0,e={type:u,params:r,async:!1}}else r.push(this.inheritCoverGrammar(this.parseAssignmentExpression));if(n)break}n||(e=this.finalize(this.startNode(t),new a.SequenceExpression(r)))}if(!n){if(this.expect(")"),this.match("=>")&&(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<e.expressions.length;o++)this.reinterpretExpressionAsPattern(e.expressions[o]);else this.reinterpretExpressionAsPattern(e);var s=e.type===c.Syntax.SequenceExpression?e.expressions:[e];e={type:u,params:s,async:!1}}this.context.isBindingElement=!1}}}return e},e.prototype.parseArguments=function(){this.expect("(");var e=[];if(!this.match(")"))for(;;){var t=this.match("...")?this.parseSpreadElement():this.isolateCoverGrammar(this.parseAssignmentExpression);if(e.push(t),this.match(")"))break;if(this.expectCommaSeparator(),this.match(")"))break}return this.expect(")"),e},e.prototype.isIdentifierName=function(e){return 3===e.type||4===e.type||1===e.type||5===e.type},e.prototype.parseIdentifierName=function(){var e=this.createNode(),t=this.nextToken();return this.isIdentifierName(t)||this.throwUnexpectedToken(t),this.finalize(e,new a.Identifier(t.value))},e.prototype.parseNewExpression=function(){var e,t=this.createNode(),i=this.parseIdentifierName();if(n.assert("new"===i.name,"New expression must start with `new`"),this.match("."))if(this.nextToken(),3===this.lookahead.type&&this.context.inFunctionBody&&"target"===this.lookahead.value){var r=this.parseIdentifierName();e=new a.MetaProperty(i,r)}else this.throwUnexpectedToken(this.lookahead);else{var o=this.isolateCoverGrammar(this.parseLeftHandSideExpression),s=this.match("(")?this.parseArguments():[];e=new a.NewExpression(o,s),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1}return this.finalize(t,e)},e.prototype.parseAsyncArgument=function(){var e=this.parseAssignmentExpression();return this.context.firstCoverInitializedNameError=null,e},e.prototype.parseAsyncArguments=function(){this.expect("(");var e=[];if(!this.match(")"))for(;;){var t=this.match("...")?this.parseSpreadElement():this.isolateCoverGrammar(this.parseAsyncArgument);if(e.push(t),this.match(")"))break;if(this.expectCommaSeparator(),this.match(")"))break}return this.expect(")"),e},e.prototype.parseLeftHandSideExpressionAllowCall=function(){var e,t=this.lookahead,i=this.matchContextualKeyword("async"),n=this.context.allowIn;for(this.context.allowIn=!0,this.matchKeyword("super")&&this.context.inFunctionBody?(e=this.createNode(),this.nextToken(),e=this.finalize(e,new a.Super),this.match("(")||this.match(".")||this.match("[")||this.throwUnexpectedToken(this.lookahead)):e=this.inheritCoverGrammar(this.matchKeyword("new")?this.parseNewExpression:this.parsePrimaryExpression);;)if(this.match(".")){this.context.isBindingElement=!1,this.context.isAssignmentTarget=!0,this.expect(".");var r=this.parseIdentifierName();e=this.finalize(this.startNode(t),new a.StaticMemberExpression(e,r))}else if(this.match("(")){var o=i&&t.lineNumber===this.lookahead.lineNumber;this.context.isBindingElement=!1,this.context.isAssignmentTarget=!1;var s=o?this.parseAsyncArguments():this.parseArguments();if(e=this.finalize(this.startNode(t),new a.CallExpression(e,s)),o&&this.match("=>")){for(var c=0;c<s.length;++c)this.reinterpretExpressionAsPattern(s[c]);e={type:u,params:s,async:!0}}}else if(this.match("["))this.context.isBindingElement=!1,this.context.isAssignmentTarget=!0,this.expect("["),r=this.isolateCoverGrammar(this.parseExpression),this.expect("]"),e=this.finalize(this.startNode(t),new a.ComputedMemberExpression(e,r));else{if(10!==this.lookahead.type||!this.lookahead.head)break;var l=this.parseTemplateLiteral();e=this.finalize(this.startNode(t),new a.TaggedTemplateExpression(e,l))}return this.context.allowIn=n,e},e.prototype.parseSuper=function(){var e=this.createNode();return this.expectKeyword("super"),this.match("[")||this.match(".")||this.throwUnexpectedToken(this.lookahead),this.finalize(e,new a.Super)},e.prototype.parseLeftHandSideExpression=function(){n.assert(this.context.allowIn,"callee of new expression always allow in keyword.");for(var e=this.startNode(this.lookahead),t=this.matchKeyword("super")&&this.context.inFunctionBody?this.parseSuper():this.inheritCoverGrammar(this.matchKeyword("new")?this.parseNewExpression:this.parsePrimaryExpression);;)if(this.match("[")){this.context.isBindingElement=!1,this.context.isAssignmentTarget=!0,this.expect("[");var i=this.isolateCoverGrammar(this.parseExpression);this.expect("]"),t=this.finalize(e,new a.ComputedMemberExpression(t,i))}else if(this.match("."))this.context.isBindingElement=!1,this.context.isAssignmentTarget=!0,this.expect("."),i=this.parseIdentifierName(),t=this.finalize(e,new a.StaticMemberExpression(t,i));else{if(10!==this.lookahead.type||!this.lookahead.head)break;var r=this.parseTemplateLiteral();t=this.finalize(e,new a.TaggedTemplateExpression(t,r))}return t},e.prototype.parseUpdateExpression=function(){var e,t=this.lookahead;if(this.match("++")||this.match("--")){var i=this.startNode(t),n=this.nextToken();e=this.inheritCoverGrammar(this.parseUnaryExpression),this.context.strict&&e.type===c.Syntax.Identifier&&this.scanner.isRestrictedWord(e.name)&&this.tolerateError(o.Messages.StrictLHSPrefix),this.context.isAssignmentTarget||this.tolerateError(o.Messages.InvalidLHSInAssignment);var r=!0;e=this.finalize(i,new a.UpdateExpression(n.value,e,r)),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1}else if(e=this.inheritCoverGrammar(this.parseLeftHandSideExpressionAllowCall),!this.hasLineTerminator&&7===this.lookahead.type&&(this.match("++")||this.match("--"))){this.context.strict&&e.type===c.Syntax.Identifier&&this.scanner.isRestrictedWord(e.name)&&this.tolerateError(o.Messages.StrictLHSPostfix),this.context.isAssignmentTarget||this.tolerateError(o.Messages.InvalidLHSInAssignment),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;var s=this.nextToken().value;r=!1,e=this.finalize(this.startNode(t),new a.UpdateExpression(s,e,r))}return e},e.prototype.parseAwaitExpression=function(){var e=this.createNode();this.nextToken();var t=this.parseUnaryExpression();return this.finalize(e,new a.AwaitExpression(t))},e.prototype.parseUnaryExpression=function(){var e;if(this.match("+")||this.match("-")||this.match("~")||this.match("!")||this.matchKeyword("delete")||this.matchKeyword("void")||this.matchKeyword("typeof")){var t=this.startNode(this.lookahead),i=this.nextToken();e=this.inheritCoverGrammar(this.parseUnaryExpression),e=this.finalize(t,new a.UnaryExpression(i.value,e)),this.context.strict&&"delete"===e.operator&&e.argument.type===c.Syntax.Identifier&&this.tolerateError(o.Messages.StrictDelete),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1}else e=this.context.await&&this.matchContextualKeyword("await")?this.parseAwaitExpression():this.parseUpdateExpression();return e},e.prototype.parseExponentiationExpression=function(){var e=this.lookahead,t=this.inheritCoverGrammar(this.parseUnaryExpression);if(t.type!==c.Syntax.UnaryExpression&&this.match("**")){this.nextToken(),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;var i=t,n=this.isolateCoverGrammar(this.parseExponentiationExpression);t=this.finalize(this.startNode(e),new a.BinaryExpression("**",i,n))}return t},e.prototype.binaryPrecedence=function(e){var t=e.value;return 7===e.type?this.operatorPrecedence[t]||0:4===e.type&&("instanceof"===t||this.context.allowIn&&"in"===t)?7:0},e.prototype.parseBinaryExpression=function(){var e=this.lookahead,t=this.inheritCoverGrammar(this.parseExponentiationExpression),i=this.lookahead,n=this.binaryPrecedence(i);if(n>0){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<t.elements.length;i++)null!==t.elements[i]&&this.checkPatternParam(e,t.elements[i]);break;case c.Syntax.ObjectPattern:for(i=0;i<t.properties.length;i++)this.checkPatternParam(e,t.properties[i].value)}e.simple=e.simple&&t instanceof a.Identifier},e.prototype.reinterpretAsCoverFormalsList=function(e){var t,i=[e],n=!1;switch(e.type){case c.Syntax.Identifier:break;case u:i=e.params,n=e.async;break;default:return null}t={simple:!0,paramSet:{}};for(var r=0;r<i.length;++r)(a=i[r]).type===c.Syntax.AssignmentPattern?a.right.type===c.Syntax.YieldExpression&&(a.right.argument&&this.throwUnexpectedToken(this.lookahead),a.right.type=c.Syntax.Identifier,a.right.name="yield",delete a.right.argument,delete a.right.delegate):n&&a.type===c.Syntax.Identifier&&"await"===a.name&&this.throwUnexpectedToken(this.lookahead),this.checkPatternParam(t,a),i[r]=a;if(this.context.strict||!this.context.allowYield)for(r=0;r<i.length;++r){var a;(a=i[r]).type===c.Syntax.YieldExpression&&this.throwUnexpectedToken(this.lookahead)}if(t.message===o.Messages.StrictParamDupe){var s=this.context.strict?t.stricted:t.firstRestricted;this.throwUnexpectedToken(s,t.message)}return{simple:t.simple,params:i,stricted:t.stricted,firstRestricted:t.firstRestricted,message:t.message}},e.prototype.parseAssignmentExpression=function(){var e;if(!this.context.allowYield&&this.matchKeyword("yield"))e=this.parseYieldExpression();else{var t=this.lookahead,i=t;if(e=this.parseConditionalExpression(),3===i.type&&i.lineNumber===this.lookahead.lineNumber&&"async"===i.value&&(3===this.lookahead.type||this.matchKeyword("yield"))){var n=this.parsePrimaryExpression();this.reinterpretExpressionAsPattern(n),e={type:u,params:[n],async:!0}}if(e.type===u||this.match("=>")){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;r<t.length;r++){var s="$"+t[r].value;Object.prototype.hasOwnProperty.call(n,s)&&this.tolerateError(o.Messages.DuplicateBinding,t[r].value),n[s]=!0}this.context.strict&&i.type===c.Syntax.Identifier&&this.scanner.isRestrictedWord(i.name)&&this.tolerateError(o.Messages.StrictCatchVariable),this.expect(")");var l=this.parseBlock();return this.finalize(e,new a.CatchClause(i,l))},e.prototype.parseFinallyClause=function(){return this.expectKeyword("finally"),this.parseBlock()},e.prototype.parseTryStatement=function(){var e=this.createNode();this.expectKeyword("try");var t=this.parseBlock(),i=this.matchKeyword("catch")?this.parseCatchClause():null,n=this.matchKeyword("finally")?this.parseFinallyClause():null;return i||n||this.throwError(o.Messages.NoCatchOrFinally),this.finalize(e,new a.TryStatement(t,i,n))},e.prototype.parseDebuggerStatement=function(){var e=this.createNode();return this.expectKeyword("debugger"),this.consumeSemicolon(),this.finalize(e,new a.DebuggerStatement)},e.prototype.parseStatement=function(){var e;switch(this.lookahead.type){case 1:case 5:case 6:case 8:case 10:case 9:e=this.parseExpressionStatement();break;case 7:var t=this.lookahead.value;e="{"===t?this.parseBlock():"("===t?this.parseExpressionStatement():";"===t?this.parseEmptyStatement():this.parseExpressionStatement();break;case 3:e=this.matchAsyncFunction()?this.parseFunctionDeclaration():this.parseLabelledStatement();break;case 4:switch(this.lookahead.value){case"break":e=this.parseBreakStatement();break;case"continue":e=this.parseContinueStatement();break;case"debugger":e=this.parseDebuggerStatement();break;case"do":e=this.parseDoWhileStatement();break;case"for":e=this.parseForStatement();break;case"function":e=this.parseFunctionDeclaration();break;case"if":e=this.parseIfStatement();break;case"return":e=this.parseReturnStatement();break;case"switch":e=this.parseSwitchStatement();break;case"throw":e=this.parseThrowStatement();break;case"try":e=this.parseTryStatement();break;case"var":e=this.parseVariableStatement();break;case"while":e=this.parseWhileStatement();break;case"with":e=this.parseWithStatement();break;default:e=this.parseExpressionStatement()}break;default:e=this.throwUnexpectedToken(this.lookahead)}return e},e.prototype.parseFunctionSourceElements=function(){var e=this.createNode();this.expect("{");var t=this.parseDirectivePrologues(),i=this.context.labelSet,n=this.context.inIteration,r=this.context.inSwitch,o=this.context.inFunctionBody;for(this.context.labelSet={},this.context.inIteration=!1,this.context.inSwitch=!1,this.context.inFunctionBody=!0;2!==this.lookahead.type&&!this.match("}");)t.push(this.parseStatementListItem());return this.expect("}"),this.context.labelSet=i,this.context.inIteration=n,this.context.inSwitch=r,this.context.inFunctionBody=o,this.finalize(e,new a.BlockStatement(t))},e.prototype.validateParam=function(e,t,i){var n="$"+i;this.context.strict?(this.scanner.isRestrictedWord(i)&&(e.stricted=t,e.message=o.Messages.StrictParamName),Object.prototype.hasOwnProperty.call(e.paramSet,n)&&(e.stricted=t,e.message=o.Messages.StrictParamDupe)):e.firstRestricted||(this.scanner.isRestrictedWord(i)?(e.firstRestricted=t,e.message=o.Messages.StrictParamName):this.scanner.isStrictModeReservedWord(i)?(e.firstRestricted=t,e.message=o.Messages.StrictReservedWord):Object.prototype.hasOwnProperty.call(e.paramSet,n)&&(e.stricted=t,e.message=o.Messages.StrictParamDupe)),"function"==typeof Object.defineProperty?Object.defineProperty(e.paramSet,n,{value:!0,enumerable:!0,writable:!0,configurable:!0}):e.paramSet[n]=!0},e.prototype.parseRestElement=function(e){var t=this.createNode();this.expect("...");var i=this.parsePattern(e);return this.match("=")&&this.throwError(o.Messages.DefaultRestParameter),this.match(")")||this.throwError(o.Messages.ParameterAfterRestParameter),this.finalize(t,new a.RestElement(i))},e.prototype.parseFormalParameter=function(e){for(var t=[],i=this.match("...")?this.parseRestElement(t):this.parsePatternWithDefault(t),n=0;n<t.length;n++)this.validateParam(e,t[n],t[n].value);e.simple=e.simple&&i instanceof a.Identifier,e.params.push(i)},e.prototype.parseFormalParameters=function(e){var t;if(t={simple:!0,params:[],firstRestricted:e},this.expect("("),!this.match(")"))for(t.paramSet={};2!==this.lookahead.type&&(this.parseFormalParameter(t),!this.match(")"))&&(this.expect(","),!this.match(")")););return this.expect(")"),{simple:t.simple,params:t.params,stricted:t.stricted,firstRestricted:t.firstRestricted,message:t.message}},e.prototype.matchAsyncFunction=function(){var e=this.matchContextualKeyword("async");if(e){var t=this.scanner.saveState();this.scanner.scanComments();var i=this.scanner.lex();this.scanner.restoreState(t),e=t.lineNumber===i.lineNumber&&4===i.type&&"function"===i.value}return e},e.prototype.parseFunctionDeclaration=function(e){var t=this.createNode(),i=this.matchContextualKeyword("async");i&&this.nextToken(),this.expectKeyword("function");var n,r=!i&&this.match("*");r&&this.nextToken();var s=null,c=null;if(!e||!this.match("(")){var l=this.lookahead;s=this.parseVariableIdentifier(),this.context.strict?this.scanner.isRestrictedWord(l.value)&&this.tolerateUnexpectedToken(l,o.Messages.StrictFunctionName):this.scanner.isRestrictedWord(l.value)?(c=l,n=o.Messages.StrictFunctionName):this.scanner.isStrictModeReservedWord(l.value)&&(c=l,n=o.Messages.StrictReservedWord)}var u=this.context.await,d=this.context.allowYield;this.context.await=i,this.context.allowYield=!r;var h=this.parseFormalParameters(c),p=h.params,m=h.stricted;c=h.firstRestricted,h.message&&(n=h.message);var f=this.context.strict,g=this.context.allowStrictDirective;this.context.allowStrictDirective=h.simple;var _=this.parseFunctionSourceElements();return this.context.strict&&c&&this.throwUnexpectedToken(c,n),this.context.strict&&m&&this.tolerateUnexpectedToken(m,n),this.context.strict=f,this.context.allowStrictDirective=g,this.context.await=u,this.context.allowYield=d,i?this.finalize(t,new a.AsyncFunctionDeclaration(s,p,_)):this.finalize(t,new a.FunctionDeclaration(s,p,_,r))},e.prototype.parseFunctionExpression=function(){var e=this.createNode(),t=this.matchContextualKeyword("async");t&&this.nextToken(),this.expectKeyword("function");var i,n=!t&&this.match("*");n&&this.nextToken();var r,s=null,c=this.context.await,l=this.context.allowYield;if(this.context.await=t,this.context.allowYield=!n,!this.match("(")){var u=this.lookahead;s=this.context.strict||n||!this.matchKeyword("yield")?this.parseVariableIdentifier():this.parseIdentifierName(),this.context.strict?this.scanner.isRestrictedWord(u.value)&&this.tolerateUnexpectedToken(u,o.Messages.StrictFunctionName):this.scanner.isRestrictedWord(u.value)?(r=u,i=o.Messages.StrictFunctionName):this.scanner.isStrictModeReservedWord(u.value)&&(r=u,i=o.Messages.StrictReservedWord)}var d=this.parseFormalParameters(r),h=d.params,p=d.stricted;r=d.firstRestricted,d.message&&(i=d.message);var m=this.context.strict,f=this.context.allowStrictDirective;this.context.allowStrictDirective=d.simple;var g=this.parseFunctionSourceElements();return this.context.strict&&r&&this.throwUnexpectedToken(r,i),this.context.strict&&p&&this.tolerateUnexpectedToken(p,i),this.context.strict=m,this.context.allowStrictDirective=f,this.context.await=c,this.context.allowYield=l,t?this.finalize(e,new a.AsyncFunctionExpression(s,h,g)):this.finalize(e,new a.FunctionExpression(s,h,g,n))},e.prototype.parseDirective=function(){var e=this.lookahead,t=this.createNode(),i=this.parseExpression(),n=i.type===c.Syntax.Literal?this.getTokenRaw(e).slice(1,-1):null;return this.consumeSemicolon(),this.finalize(t,n?new a.Directive(i,n):new a.ExpressionStatement(i))},e.prototype.parseDirectivePrologues=function(){for(var e=null,t=[];;){var i=this.lookahead;if(8!==i.type)break;var n=this.parseDirective();t.push(n);var r=n.directive;if("string"!=typeof r)break;"use strict"===r?(this.context.strict=!0,e&&this.tolerateUnexpectedToken(e,o.Messages.StrictOctalLiteral),this.context.allowStrictDirective||this.tolerateUnexpectedToken(i,o.Messages.IllegalLanguageModeDirective)):!e&&i.octal&&(e=i)}return t},e.prototype.qualifiedPropertyName=function(e){switch(e.type){case 3:case 8:case 1:case 5:case 6:case 4:return!0;case 7:return"["===e.value}return!1},e.prototype.parseGetterMethod=function(){var e=this.createNode(),t=this.context.allowYield;this.context.allowYield=!0;var i=this.parseFormalParameters();i.params.length>0&&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;n<t;++n){if(this.eof()||!r.Character.isHexDigit(this.source.charCodeAt(this.index)))return null;i=16*i+a(this.source[this.index++])}return String.fromCharCode(i)},e.prototype.scanUnicodeCodePointEscape=function(){var e=this.source[this.index],t=0;for("}"===e&&this.throwUnexpectedToken();!this.eof()&&(e=this.source[this.index++],r.Character.isHexDigit(e.charCodeAt(0)));)t=16*t+a(e);return(t>1114111||"}"!==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<this.length;++e){var t=this.source[e];if("8"===t||"9"===t)return!1;if(!r.Character.isOctalDigit(t.charCodeAt(0)))return!0}return!0},e.prototype.scanNumericLiteral=function(){var e=this.index,t=this.source[e];n.assert(r.Character.isDecimalDigit(t.charCodeAt(0))||"."===t,"Numeric literal must start with a decimal digit or a decimal point");var i="";if("."!==t){if(i=this.source[this.index++],t=this.source[this.index],"0"===i){if("x"===t||"X"===t)return++this.index,this.scanHexLiteral(e);if("b"===t||"B"===t)return++this.index,this.scanBinaryLiteral(e);if("o"===t||"O"===t)return this.scanOctalLiteral(t,e);if(t&&r.Character.isOctalDigit(t.charCodeAt(0))&&this.isImplicitOctalLiteral())return this.scanOctalLiteral(t,e)}for(;r.Character.isDecimalDigit(this.source.charCodeAt(this.index));)i+=this.source[this.index++];t=this.source[this.index]}if("."===t){for(i+=this.source[this.index++];r.Character.isDecimalDigit(this.source.charCodeAt(this.index));)i+=this.source[this.index++];t=this.source[this.index]}if("e"===t||"E"===t)if(i+=this.source[this.index++],"+"!==(t=this.source[this.index])&&"-"!==t||(i+=this.source[this.index++]),r.Character.isDecimalDigit(this.source.charCodeAt(this.index)))for(;r.Character.isDecimalDigit(this.source.charCodeAt(this.index));)i+=this.source[this.index++];else this.throwUnexpectedToken();return r.Character.isIdentifierStart(this.source.charCodeAt(this.index))&&this.throwUnexpectedToken(),{type:6,value:parseFloat(i),lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}},e.prototype.scanStringLiteral=function(){var e=this.index,t=this.source[e];n.assert("'"===t||'"'===t,"String literal must starts with a quote"),++this.index;for(var i=!1,a="";!this.eof();){var s=this.source[this.index++];if(s===t){t="";break}if("\\"===s)if((s=this.source[this.index++])&&r.Character.isLineTerminator(s.charCodeAt(0)))++this.lineNumber,"\r"===s&&"\n"===this.source[this.index]&&++this.index,this.lineStart=this.index;else switch(s){case"u":if("{"===this.source[this.index])++this.index,a+=this.scanUnicodeCodePointEscape();else{var c=this.scanHexEscape(s);null===c&&this.throwUnexpectedToken(),a+=c}break;case"x":var l=this.scanHexEscape(s);null===l&&this.throwUnexpectedToken(o.Messages.InvalidHexEscapeSequence),a+=l;break;case"n":a+="\n";break;case"r":a+="\r";break;case"t":a+="\t";break;case"b":a+="\b";break;case"f":a+="\f";break;case"v":a+="\v";break;case"8":case"9":a+=s,this.tolerateUnexpectedToken();break;default:if(s&&r.Character.isOctalDigit(s.charCodeAt(0))){var u=this.octalToDecimal(s);i=u.octal||i,a+=String.fromCharCode(u.code)}else a+=s}else{if(r.Character.isLineTerminator(s.charCodeAt(0)))break;a+=s}}return""!==t&&(this.index=e,this.throwUnexpectedToken()),{type:8,value:a,octal:i,lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}},e.prototype.scanTemplate=function(){var e="",t=!1,i=this.index,n="`"===this.source[i],a=!1,s=2;for(++this.index;!this.eof();){var c=this.source[this.index++];if("`"===c){s=1,a=!0,t=!0;break}if("$"===c){if("{"===this.source[this.index]){this.curlyStack.push("${"),++this.index,t=!0;break}e+=c}else if("\\"===c)if(c=this.source[this.index++],r.Character.isLineTerminator(c.charCodeAt(0)))++this.lineNumber,"\r"===c&&"\n"===this.source[this.index]&&++this.index,this.lineStart=this.index;else switch(c){case"n":e+="\n";break;case"r":e+="\r";break;case"t":e+="\t";break;case"u":if("{"===this.source[this.index])++this.index,e+=this.scanUnicodeCodePointEscape();else{var l=this.index,u=this.scanHexEscape(c);null!==u?e+=u:(this.index=l,e+=c)}break;case"x":var d=this.scanHexEscape(c);null===d&&this.throwUnexpectedToken(o.Messages.InvalidHexEscapeSequence),e+=d;break;case"b":e+="\b";break;case"f":e+="\f";break;case"v":e+="\v";break;default:"0"===c?(r.Character.isDecimalDigit(this.source.charCodeAt(this.index))&&this.throwUnexpectedToken(o.Messages.TemplateOctalLiteral),e+="\0"):r.Character.isOctalDigit(c.charCodeAt(0))?this.throwUnexpectedToken(o.Messages.TemplateOctalLiteral):e+=c}else r.Character.isLineTerminator(c.charCodeAt(0))?(++this.lineNumber,"\r"===c&&"\n"===this.source[this.index]&&++this.index,this.lineStart=this.index,e+="\n"):e+=c}return t||this.throwUnexpectedToken(),n||this.curlyStack.pop(),{type:10,value:this.source.slice(i+1,this.index-s),cooked:e,head:n,tail:a,lineNumber:this.lineNumber,lineStart:this.lineStart,start:i,end:this.index}},e.prototype.testRegExp=function(e,t){var i=e,n=this;t.indexOf("u")>=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<this.index;++i)this.source[i];else this.index=i,e+="u";this.tolerateUnexpectedToken()}else this.tolerateUnexpectedToken()}return e},e.prototype.scanRegExp=function(){var e=this.index,t=this.scanRegExpBody(),i=this.scanRegExpFlags();return{type:9,value:"",pattern:t,flags:i,regex:this.testRegExp(t,i),lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}},e.prototype.lex=function(){if(this.eof())return{type:2,value:"",lineNumber:this.lineNumber,lineStart:this.lineStart,start:this.index,end:this.index};var e=this.source.charCodeAt(this.index);return r.Character.isIdentifierStart(e)?this.scanIdentifier():40===e||41===e||59===e?this.scanPunctuator():39===e||34===e?this.scanStringLiteral():46===e?r.Character.isDecimalDigit(this.source.charCodeAt(this.index+1))?this.scanNumericLiteral():this.scanPunctuator():r.Character.isDecimalDigit(e)?this.scanNumericLiteral():96===e||125===e&&"${"===this.curlyStack[this.curlyStack.length-1]?this.scanTemplate():e>=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]="<end>",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;t<e.length;++t){var i=e[t],n=this.scanner.source.slice(i.slice[0],i.slice[1]),r={type:i.multiLine?"BlockComment":"LineComment",value:n};this.trackRange&&(r.range=i.range),this.trackLoc&&(r.loc=i.loc),this.buffer.push(r)}if(!this.scanner.eof()){var a=void 0;this.trackLoc&&(a={start:{line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart},end:{}});var s="/"===this.scanner.source[this.scanner.index]&&this.reader.isRegexStart()?this.scanner.scanRegExp():this.scanner.lex();this.reader.push(s);var c={type:o.TokenName[s.type],value:this.scanner.source.slice(s.start,s.end)};if(this.trackRange&&(c.range=[s.start,s.end]),this.trackLoc&&(a.end={line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart},c.loc=a),9===s.type){var l=s.pattern,u=s.flags;c.regex={pattern:l,flags:u}}this.buffer.push(c)}}return this.buffer.shift()},e}();t.Tokenizer=s}]);for(var gb={},_b={},bb={byteLength:function(e){var t=Ab(e),i=t[0],n=t[1];return 3*(i+n)/4-n},toByteArray:function(e){var t,i,n=Ab(e),r=n[0],o=n[1],a=new wb(function(e,t,i){return 3*(t+i)/4-i}(0,r,o)),s=0,c=o>0?r-4:r;for(i=0;i<c;i+=4)t=yb[e.charCodeAt(i)]<<18|yb[e.charCodeAt(i+1)]<<12|yb[e.charCodeAt(i+2)]<<6|yb[e.charCodeAt(i+3)],a[s++]=t>>16&255,a[s++]=t>>8&255,a[s++]=255&t;2===o&&(t=yb[e.charCodeAt(i)]<<2|yb[e.charCodeAt(i+1)]>>4,a[s++]=255&t);1===o&&(t=yb[e.charCodeAt(i)]<<10|yb[e.charCodeAt(i+1)]<<4|yb[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;a<s;a+=o)r.push(Cb(e,a,a+o>s?s:a+o));1===n?(t=e[i-1],r.push(vb[t>>2]+vb[t<<4&63]+"==")):2===n&&(t=(e[i-2]<<8)+e[i-1],r.push(vb[t>>10]+vb[t>>4&63]+vb[t<<2&63]+"="));return r.join("")}},vb=[],yb=[],wb="undefined"!=typeof Uint8Array?Uint8Array:Array,xb="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Nb=0,kb=xb.length;Nb<kb;++Nb)vb[Nb]=xb[Nb],yb[xb.charCodeAt(Nb)]=Nb;function Ab(e){var t=e.length;if(t%4>0)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 Cb(e,t,i){for(var n,r,o=[],a=t;a<i;a+=3)n=(e[a]<<16&16711680)+(e[a+1]<<8&65280)+(255&e[a+2]),o.push(vb[(r=n)>>18&63]+vb[r>>12&63]+vb[r>>6&63]+vb[63&r]);return o.join("")}yb["-".charCodeAt(0)]=62,yb["_".charCodeAt(0)]=63;var Ob={}; +/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */function Sb(e){return Object.prototype.toString.call(e)}Ob.read=function(e,t,i,n,r){var o,a,s=8*r-n-1,c=(1<<s)-1,l=c>>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)},Ob.write=function(e,t,i,n,r,o){var a,s,c,l=8*o-r-1,u=(1<<l)-1,d=u>>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<<r|s,l+=r;l>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 <https://feross.org> * @license MIT */ -function(e){const t=fb,i=kb,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(G(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(G(e,ArrayBuffer)||e&&G(e.buffer,ArrayBuffer))return d(e,t,i);if("undefined"!=typeof SharedArrayBuffer&&(G(e,SharedArrayBuffer)||e&&G(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||K(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<t;n+=1)i[n]=255&e[n];return i}function d(e,t,i){if(t<0||e.byteLength<t)throw new RangeError('"offset" is outside of buffer bounds');if(e.byteLength<t+(i||0))throw new RangeError('"length" is outside of buffer bounds');let n;return n=void 0===t&&void 0===i?new Uint8Array(e):void 0===i?new Uint8Array(e,t):new Uint8Array(e,t,i),Object.setPrototypeOf(n,a.prototype),n}function h(e){if(e>=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)||G(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 k(this,t,i);case"ascii":return C(this,t,i);case"latin1":case"binary":return O(this,t,i);case"base64":return N(this,t,i);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return E(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),K(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;o<s;o++)if(l(e,o)===l(t,-1===n?0:o-n)){if(-1===n&&(n=o),o-n+1===c)return n*a}else-1!==n&&(o-=o-n),n=-1}else for(i+c>s&&(i=s-c),o=i;o>=0;o--){let i=!0;for(let n=0;n<c;n++)if(l(e,o+n)!==l(t,n)){i=!1;break}if(i)return o}return-1}function b(e,t,i,n){i=Number(i)||0;const r=e.length-i;n?(n=Number(n))>r&&(n=r):n=r;const o=t.length;let a;for(n>o/2&&(n=o/2),a=0;a<n;++a){const n=parseInt(t.substr(2*a,2),16);if(K(n))return a;e[i+a]=n}return a}function v(e,t,i,n){return V(H(t,e.length-i),e,i,n)}function y(e,t,i,n){return V(function(e){const t=[];for(let i=0;i<e.length;++i)t.push(255&e.charCodeAt(i));return t}(t),e,i,n)}function w(e,t,i,n){return V(q(t),e,i,n)}function x(e,t,i,n){return V(function(e,t){let i,n,r;const o=[];for(let a=0;a<e.length&&!((t-=2)<0);++a)i=e.charCodeAt(a),n=i>>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 k(e,t,i){i=Math.min(e.length,i);const n=[];let r=t;for(;r<i;){const t=e[r];let o=null,a=t>239?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<=A)return String.fromCharCode.apply(String,e);let i="",n=0;for(;n<t;)i+=String.fromCharCode.apply(String,e.slice(n,n+=A));return i}(n)}e.kMaxLength=r,a.TYPED_ARRAY_SUPPORT=function(){try{const e=new Uint8Array(1),t={foo:function(){return 42}};return Object.setPrototypeOf(t,Uint8Array.prototype),Object.setPrototypeOf(e,t),42===e.foo()}catch(e){return!1}}(),a.TYPED_ARRAY_SUPPORT||"undefined"==typeof console||"function"!=typeof console.error||console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support."),Object.defineProperty(a.prototype,"parent",{enumerable:!0,get:function(){if(a.isBuffer(this))return this.buffer}}),Object.defineProperty(a.prototype,"offset",{enumerable:!0,get:function(){if(a.isBuffer(this))return this.byteOffset}}),a.poolSize=8192,a.from=function(e,t,i){return s(e,t,i)},Object.setPrototypeOf(a.prototype,Uint8Array.prototype),Object.setPrototypeOf(a,Uint8Array),a.alloc=function(e,t,i){return function(e,t,i){return c(e),e<=0?o(e):void 0!==t?"string"==typeof i?o(e).fill(t,i):o(e).fill(t):o(e)}(e,t,i)},a.allocUnsafe=function(e){return l(e)},a.allocUnsafeSlow=function(e){return l(e)},a.isBuffer=function(e){return null!=e&&!0===e._isBuffer&&e!==a.prototype},a.compare=function(e,t){if(G(e,Uint8Array)&&(e=a.from(e,e.offset,e.byteLength)),G(t,Uint8Array)&&(t=a.from(t,t.offset,t.byteLength)),!a.isBuffer(e)||!a.isBuffer(t))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(e===t)return 0;let i=e.length,n=t.length;for(let r=0,o=Math.min(i,n);r<o;++r)if(e[r]!==t[r]){i=e[r],n=t[r];break}return i<n?-1:n<i?1:0},a.isEncoding=function(e){switch(String(e).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},a.concat=function(e,t){if(!Array.isArray(e))throw new TypeError('"list" argument must be an Array of Buffers');if(0===e.length)return a.alloc(0);let i;if(void 0===t)for(t=0,i=0;i<e.length;++i)t+=e[i].length;const n=a.allocUnsafe(t);let r=0;for(i=0;i<e.length;++i){let t=e[i];if(G(t,Uint8Array))r+t.length>n.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;t<e;t+=2)f(this,t,t+1);return this},a.prototype.swap32=function(){const e=this.length;if(e%4!=0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(let t=0;t<e;t+=4)f(this,t,t+3),f(this,t+1,t+2);return this},a.prototype.swap64=function(){const e=this.length;if(e%8!=0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(let t=0;t<e;t+=8)f(this,t,t+7),f(this,t+1,t+6),f(this,t+2,t+5),f(this,t+3,t+4);return this},a.prototype.toString=function(){const e=this.length;return 0===e?"":0===arguments.length?k(this,0,e):m.apply(this,arguments)},a.prototype.toLocaleString=a.prototype.toString,a.prototype.equals=function(e){if(!a.isBuffer(e))throw new TypeError("Argument must be a Buffer");return this===e||0===a.compare(this,e)},a.prototype.inspect=function(){let t="";const i=e.INSPECT_MAX_BYTES;return t=this.toString("hex",0,i).replace(/(.{2})/g,"$1 ").trim(),this.length>i&&(t+=" ... "),"<Buffer "+t+">"},n&&(a.prototype[n]=a.prototype.inspect),a.prototype.compare=function(e,t,i,n,r){if(G(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<c;++a)if(l[a]!==u[a]){o=l[a],s=u[a];break}return o<s?-1:s<o?1:0},a.prototype.includes=function(e,t,i){return-1!==this.indexOf(e,t,i)},a.prototype.indexOf=function(e,t,i){return g(this,e,t,i,!0)},a.prototype.lastIndexOf=function(e,t,i){return g(this,e,t,i,!1)},a.prototype.write=function(e,t,i,n){if(void 0===t)n="utf8",i=this.length,t=0;else if(void 0===i&&"string"==typeof t)n=t,i=this.length,t=0;else{if(!isFinite(t))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");t>>>=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 A=4096;function C(e,t,i){let n="";i=Math.min(e.length,i);for(let r=t;r<i;++r)n+=String.fromCharCode(127&e[r]);return n}function O(e,t,i){let n="";i=Math.min(e.length,i);for(let r=t;r<i;++r)n+=String.fromCharCode(e[r]);return n}function S(e,t,i){const n=e.length;(!t||t<0)&&(t=0),(!i||i<0||i>n)&&(i=n);let r="";for(let o=t;o<i;++o)r+=X[e[o]];return r}function E(e,t,i){const n=e.slice(t,i);let r="";for(let o=0;o<n.length-1;o+=2)r+=String.fromCharCode(n[o]+256*n[o+1]);return r}function F(e,t,i){if(e%1!=0||e<0)throw new RangeError("offset is not uint");if(e+t>i)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||t<o)throw new RangeError('"value" argument is out of bounds');if(i+n>e.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 T(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 R(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<e&&(t=e);const n=this.subarray(e,t);return Object.setPrototypeOf(n,a.prototype),n},a.prototype.readUintLE=a.prototype.readUIntLE=function(e,t,i){e>>>=0,t>>>=0,i||F(e,t,this.length);let n=this[e],r=1,o=0;for(;++o<t&&(r*=256);)n+=this[e+o]*r;return n},a.prototype.readUintBE=a.prototype.readUIntBE=function(e,t,i){e>>>=0,t>>>=0,i||F(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||F(e,1,this.length),this[e]},a.prototype.readUint16LE=a.prototype.readUInt16LE=function(e,t){return e>>>=0,t||F(e,2,this.length),this[e]|this[e+1]<<8},a.prototype.readUint16BE=a.prototype.readUInt16BE=function(e,t){return e>>>=0,t||F(e,2,this.length),this[e]<<8|this[e+1]},a.prototype.readUint32LE=a.prototype.readUInt32LE=function(e,t){return e>>>=0,t||F(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||F(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)<<BigInt(32))})),a.prototype.readBigUInt64BE=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*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)<<BigInt(32))+BigInt(r)})),a.prototype.readIntLE=function(e,t,i){e>>>=0,t>>>=0,i||F(e,t,this.length);let n=this[e],r=1,o=0;for(;++o<t&&(r*=256);)n+=this[e+o]*r;return r*=128,n>=r&&(n-=Math.pow(2,8*t)),n},a.prototype.readIntBE=function(e,t,i){e>>>=0,t>>>=0,i||F(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||F(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},a.prototype.readInt16LE=function(e,t){e>>>=0,t||F(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||F(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||F(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||F(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)<<BigInt(32))+BigInt(t+256*this[++e]+65536*this[++e]+this[++e]*2**24)})),a.prototype.readBigInt64BE=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<<24)+65536*this[++e]+256*this[++e]+this[++e];return(BigInt(n)<<BigInt(32))+BigInt(this[++e]*2**24+65536*this[++e]+256*this[++e]+i)})),a.prototype.readFloatLE=function(e,t){return e>>>=0,t||F(e,4,this.length),i.read(this,e,!0,23,4)},a.prototype.readFloatBE=function(e,t){return e>>>=0,t||F(e,4,this.length),i.read(this,e,!1,23,4)},a.prototype.readDoubleLE=function(e,t){return e>>>=0,t||F(e,8,this.length),i.read(this,e,!0,52,8)},a.prototype.readDoubleBE=function(e,t){return e>>>=0,t||F(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<i&&(r*=256);)this[t+o]=e/r&255;return t+i},a.prototype.writeUintBE=a.prototype.writeUIntBE=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=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<i&&(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.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 T(this,e,t,!0,i)},a.prototype.writeFloatBE=function(e,t,i){return T(this,e,t,!1,i)},a.prototype.writeDoubleLE=function(e,t,i){return R(this,e,t,!0,i)},a.prototype.writeDoubleBE=function(e,t,i){return R(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<i&&(n=i),n===i)return 0;if(0===e.length||0===this.length)return 0;if(t<0)throw new RangeError("targetStart out of bounds");if(i<0||i>=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<n-i&&(n=e.length-t+i);const r=n-i;return this===e&&"function"==typeof Uint8Array.prototype.copyWithin?this.copyWithin(t,i,n):Uint8Array.prototype.set.call(e,this.subarray(i,n),t),r},a.prototype.fill=function(e,t,i,n){if("string"==typeof e){if("string"==typeof t?(n=t,t=0,i=this.length):"string"==typeof i&&(n=i,i=this.length),void 0!==n&&"string"!=typeof n)throw new TypeError("encoding must be a string");if("string"==typeof n&&!a.isEncoding(n))throw new TypeError("Unknown encoding: "+n);if(1===e.length){const t=e.charCodeAt(0);("utf8"===n&&t<128||"latin1"===n)&&(e=t)}}else"number"==typeof e?e&=255:"boolean"==typeof e&&(e=Number(e));if(t<0||this.length<t||this.length<i)throw new RangeError("Out of range index");if(i<=t)return this;let r;if(t>>>=0,i=void 0===i?this.length:i>>>0,e||(e=0),"number"==typeof e)for(r=t;r<i;++r)this[r]=e;else{const o=a.isBuffer(e)?e:a.from(e,n),s=o.length;if(0===s)throw new TypeError('The value "'+e+'" is invalid for argument "value"');for(r=0;r<i-t;++r)this[r+t]=o[r%s]}return this};const $={};function j(e,t,i){$[e]=class extends i{constructor(){super(),Object.defineProperty(this,"message",{value:t.apply(this,arguments),writable:!0,configurable:!0}),this.name=`${this.name} [${e}]`,this.stack,delete this.name}get code(){return e}set code(e){Object.defineProperty(this,"code",{configurable:!0,enumerable:!0,value:e,writable:!0})}toString(){return`${this.name} [${e}]: ${this.message}`}}}function I(e){let t="",i=e.length;const n="-"===e[0]?1:0;for(;i>=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||e<t){const n="bigint"==typeof t?"n":"";let r;throw r=o>3?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 $.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 $.ERR_INVALID_ARG_TYPE(t,"number",e)}function U(e,t,i){if(Math.floor(e)!==e)throw z(e,i),new $.ERR_OUT_OF_RANGE(i||"offset","an integer",e);if(t<0)throw new $.ERR_BUFFER_OUT_OF_BOUNDS;throw new $.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;a<n;++a){if(i=e.charCodeAt(a),i>55295&&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<n&&!(r+i>=t.length||r>=e.length);++r)t[r+i]=e[r];return r}function G(e,t){return e instanceof t||null!=e&&null!=e.constructor&&null!=e.constructor.name&&e.constructor.name===t.name}function K(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")}}(mb),pb.isArray=function(e){return Array.isArray?Array.isArray(e):"[object Array]"===Ab(e)},pb.isBoolean=function(e){return"boolean"==typeof e},pb.isNull=function(e){return null===e},pb.isNullOrUndefined=function(e){return null==e},pb.isNumber=function(e){return"number"==typeof e},pb.isString=function(e){return"string"==typeof e},pb.isSymbol=function(e){return"symbol"==typeof e},pb.isUndefined=function(e){return void 0===e},pb.isRegExp=function(e){return"[object RegExp]"===Ab(e)},pb.isObject=function(e){return"object"==typeof e&&null!==e},pb.isDate=function(e){return"[object Date]"===Ab(e)},pb.isError=function(e){return"[object Error]"===Ab(e)||e instanceof Error},pb.isFunction=function(e){return"function"==typeof e},pb.isPrimitive=function(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e},pb.isBuffer=mb.Buffer.isBuffer;const Cb=[1,10,100,1e3,1e4,1e5,1e6,1e7,1e8,1e9];let Ob;const Sb=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 Eb(e,t){if(e===t)return 0;if(~~e===e&&~~t===t){if(0===e||0===t)return e<t?-1:1;if(e<0||t<0){if(t>=0)return-1;if(e>=0)return 1;e=-e,t=-t}const i=Sb(e),n=Sb(t);let r=0;return i<n?(e*=Cb[n-i-1],t/=10,r=-1):i>n&&(t*=Cb[i-n-1],e/=10,r=1),e===t?r:e<t?-1:1}const i=String(e),n=String(t);return i===n?0:i<n?-1:1}function Fb(e,t,i,n){let r=t+1;if(r===i)return 1;if(n(e[r++],e[t])<0){for(;r<i&&n(e[r],e[r-1])<0;)r++;Db(e,t,r),Db(Ob,t,r)}else for(;r<i&&n(e[r],e[r-1])>=0;)r++;return r-t}function Db(e,t,i){for(i--;t<i;){const n=e[t];e[t++]=e[i],e[i--]=n}}function Bb(e,t,i,n,r){for(n===t&&n++;n<i;n++){const i=e[n],o=Ob[n];let a=t,s=n;for(;a<s;){const t=a+s>>>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],Ob[a+3]=Ob[a+2];case 2:e[a+2]=e[a+1],Ob[a+2]=Ob[a+1];case 1:e[a+1]=e[a],Ob[a+1]=Ob[a];break;default:for(;c>0;)e[a+c]=e[a+c-1],Ob[a+c]=Ob[a+c-1],c--}e[a]=i,Ob[a]=o}}function Lb(e,t,i,n,r,o){let a=0,s=0,c=1;if(o(e,t[i+r])>0){for(s=n-r;c<s&&o(e,t[i+r+c])>0;)a=c,c=1+(c<<1),c<=0&&(c=s);c>s&&(c=s),a+=r,c+=r}else{for(s=r+1;c<s&&o(e,t[i+r-c])<=0;)a=c,c=1+(c<<1),c<=0&&(c=s);c>s&&(c=s);const n=a;a=r-c,c=r-n}for(a++;a<c;){const n=a+(c-a>>>1);o(e,t[i+n])>0?a=n+1:c=n}return c}function Mb(e,t,i,n,r,o){let a=0,s=0,c=1;if(o(e,t[i+r])<0){for(s=r+1;c<s&&o(e,t[i+r-c])<0;)a=c,c=1+(c<<1),c<=0&&(c=s);c>s&&(c=s);const n=a;a=r-c,c=r-n}else{for(s=n-r;c<s&&o(e,t[i+r+c])>=0;)a=c,c=1+(c<<1),c<=0&&(c=s);c>s&&(c=s),a+=r,c+=r}for(a++;a<c;){const n=a+(c-a>>>1);o(e,t[i+n])<0?c=n:a=n+1}return c}class Tb{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]&&e--;else if(this.runLength[e]>this.runLength[e+1])break;this.mergeAt(e)}}forceMergeRuns(){for(;this.stackSize>1;){let e=this.stackSize-2;e>0&&this.runLength[e-1]<this.runLength[e+1]&&e--,this.mergeAt(e)}}mergeAt(e){const{compare:t}=this,{array:i}=this;let n=this.runStart[e],r=this.runLength[e];const o=this.runStart[e+1];let a=this.runLength[e+1];this.runLength[e]=r+a,e===this.stackSize-3&&(this.runStart[e+1]=this.runStart[e+2],this.runLength[e+1]=this.runLength[e+2]),this.stackSize--;const s=Mb(i[o],i,n,r,0,t);n+=s,r-=s,0!==r&&(a=Lb(i[n+r-1],i,o,a,a-1,t),0!==a&&(r<=a?this.mergeLow(n,r,o,a):this.mergeHigh(n,r,o,a)))}mergeLow(e,t,i,n){const{compare:r}=this,{array:o}=this,{tmp:a}=this,{tmpIndex:s}=this;let c=0;for(c=0;c<t;c++)a[c]=o[e+c],s[c]=Ob[e+c];let l=0,u=i,d=e;if(o[d]=o[u],Ob[d]=Ob[u],d++,u++,0==--n){for(c=0;c<t;c++)o[d+c]=a[l+c],Ob[d+c]=s[l+c];return}if(1===t){for(c=0;c<n;c++)o[d+c]=o[u+c],Ob[d+c]=Ob[u+c];return o[d+n]=a[l],void(Ob[d+n]=s[l])}let{minGallop:h}=this;for(;;){let e=0,i=0,p=!1;do{if(r(o[u],a[l])<0){if(o[d]=o[u],Ob[d]=Ob[u],d++,u++,i++,e=0,0==--n){p=!0;break}}else if(o[d]=a[l],Ob[d]=s[l],d++,l++,e++,i=0,1==--t){p=!0;break}}while((e|i)<h);if(p)break;do{if(e=Mb(o[u],a,l,t,0,r),0!==e){for(c=0;c<e;c++)o[d+c]=a[l+c],Ob[d+c]=s[l+c];if(d+=e,l+=e,(t-=e)<=1){p=!0;break}}if(o[d]=o[u],Ob[d]=Ob[u],d++,u++,0==--n){p=!0;break}if(i=Lb(a[l],o,u,n,0,r),0!==i){for(c=0;c<i;c++)o[d+c]=o[u+c],Ob[d+c]=Ob[u+c];if(d+=i,u+=i,0===(n-=i)){p=!0;break}}if(o[d]=a[l],Ob[d]=s[l],d++,l++,1==--t){p=!0;break}h--}while(e>=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<n;c++)o[d+c]=o[u+c],Ob[d+c]=Ob[u+c];o[d+n]=a[l],Ob[d+n]=s[l]}else{if(0===t)throw new Error("mergeLow preconditions were not respected");for(c=0;c<t;c++)o[d+c]=a[l+c],Ob[d+c]=s[l+c]}}mergeHigh(e,t,i,n){const{compare:r}=this,{array:o}=this,{tmp:a}=this,{tmpIndex:s}=this;let c=0;for(c=0;c<n;c++)a[c]=o[i+c],s[c]=Ob[i+c];let l=e+t-1,u=n-1,d=i+n-1,h=0,p=0;if(o[d]=o[l],Ob[d]=Ob[l],d--,l--,0==--t){for(h=d-(n-1),c=0;c<n;c++)o[h+c]=a[c],Ob[h+c]=s[c];return}if(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],Ob[p+c]=Ob[h+c];return o[d]=a[u],void(Ob[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],Ob[d]=Ob[l],d--,l--,i++,f=0,0==--t){g=!0;break}}else if(o[d]=a[u],Ob[d]=s[u],d--,u--,f++,i=0,1==--n){g=!0;break}}while((i|f)<m);if(g)break;do{if(i=t-Mb(a[u],o,e,t,t-1,r),0!==i){for(d-=i,l-=i,t-=i,p=d+1,h=l+1,c=i-1;c>=0;c--)o[p+c]=o[h+c],Ob[p+c]=Ob[h+c];if(0===t){g=!0;break}}if(o[d]=a[u],Ob[d]=s[u],d--,u--,1==--n){g=!0;break}if(f=n-Lb(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<f;c++)o[p+c]=a[h+c],Ob[p+c]=s[h+c];if(n<=1){g=!0;break}}if(o[d]=o[l],Ob[d]=Ob[l],d--,l--,0==--t){g=!0;break}m--}while(i>=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],Ob[p+c]=Ob[h+c];o[d]=a[u],Ob[d]=s[u]}else{if(0===n)throw new Error("mergeHigh preconditions were not respected");for(h=d-(n-1),c=0;c<n;c++)o[h+c]=a[c],Ob[h+c]=s[c]}}}var Rb={sort:function(e,t,i,n){if(!Array.isArray(e))throw new TypeError(`The "array" argument must be an array. Received ${e}`);Ob=[];const{length:r}=e;let o=0;for(;o<r;)Ob[o]=o++;t?"function"!=typeof t&&(n=i,i=t,t=Eb):t=Eb,i||(i=0),n||(n=r);let a=n-i;if(a<2)return Ob;let s=0;if(a<32)return s=Fb(e,i,n,t),Bb(e,i,n,i+s,t),Ob;const c=new Tb(e,t),l=function(e){let t=0;for(;e>=32;)t|=1&e,e>>=1;return e+t}(a);do{if(s=Fb(e,i,n,t),s<l){let n=a;n>l&&(n=l),Bb(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(),Ob}};const $b=Object.prototype.hasOwnProperty;const jb=(e,t)=>$b.call(e,t),{isObject:Ib,isArray:Pb}=pb,zb="before",Ub="before-all",Wb="after-all",Hb=[zb,"after-prop","after-colon","after-value","after"],qb=[zb,Ub,Wb].map(Symbol.for),Vb=(e,t)=>Symbol.for(e+":"+t),Gb=(e,t,i)=>Object.defineProperty(e,t,{value:i,writable:!0,configurable:!0}),Kb=(e,t,i,n,r,o)=>{const a=Vb(r,n);if(!jb(t,a))return;const s=i===n?a:Vb(r,i);Gb(e,s,t[a]),o&&delete t[a]},Xb=(e,t,i,n,r)=>{Hb.forEach((o=>{Kb(e,t,i,n,o,r)}))},Jb=(e,t)=>{qb.forEach((i=>{const n=t[i];n&&Gb(e,i,n)}))};var Yb={SYMBOL_PREFIXES:Hb,PREFIX_BEFORE:zb,PREFIX_AFTER_PROP:"after-prop",PREFIX_AFTER_COLON:"after-colon",PREFIX_AFTER_VALUE:"after-value",PREFIX_AFTER:"after",PREFIX_BEFORE_ALL:Ub,PREFIX_AFTER_ALL:Wb,BRACKET_OPEN:"[",BRACKET_CLOSE:"]",CURLY_BRACKET_OPEN:"{",CURLY_BRACKET_CLOSE:"}",COLON:":",COMMA:",",MINUS:"-",EMPTY:"",UNDEFINED:undefined,symbol:Vb,define:Gb,copy_comments:Xb,swap_comments:(e,t,i)=>{t!==i&&Hb.forEach((n=>{const r=Vb(n,i);if(!jb(e,r))return void Kb(e,e,i,t,n,!0);const o=e[r];delete e[r],Kb(e,e,i,t,n,!0),Gb(e,Vb(n,t),o)}))},assign_non_prop_comments:Jb,assign(e,t,i){if(!Ib(e))throw new TypeError("Cannot convert undefined or null to object");if(!Ib(t))return e;if(undefined===i)i=Object.keys(t),Jb(e,t);else{if(!Pb(i))throw new TypeError("keys must be array or undefined");0===i.length&&Jb(e,t)}return((e,t,i)=>(i.forEach((i=>{jb(t,i)&&(e[i]=t[i],Xb(e,t,i,i))})),e))(e,t,i)}};const{isArray:Zb}=pb,{sort:Qb}=Rb,{SYMBOL_PREFIXES:ev,UNDEFINED:tv,symbol:iv,copy_comments:nv,swap_comments:rv}=Yb,ov=(e,t,i,n,r)=>{nv(e,t,i+n,i,r)},av=(e,t,i,n,r,o)=>{if(r>0){let a=n;for(;a-- >0;)ov(e,t,i+a,r,o);return}let a=0;for(;a<n;){const n=a++;ov(e,t,i+n,r,o)}},sv=(e,t)=>{ev.forEach((i=>{const n=iv(i,t);delete e[n]}))};class cv 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 av(this,this,s,t-s,a-r,!0),i}slice(...e){const{length:t}=this,i=super.slice(...e);if(!i.length)return new cv;let[n,r]=e;return r===tv?r=t:r<0&&(r+=t),n<0?n+=t:n===tv&&(n=0),av(i,this,n,r-n,-n),i}unshift(...e){const{length:t}=this,i=super.unshift(...e),{length:n}=e;return n>0&&av(this,this,0,t,n,!0),i}shift(){const e=super.shift(),{length:t}=this;return sv(this,0),av(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<n;i++)rv(e,i,t-i-1)})(this),this}pop(){const e=super.pop();return sv(this,this.length),e}concat(...e){let{length:t}=this;const i=super.concat(...e);return e.length?(av(i,this,0,this.length,0),e.forEach((e=>{const n=t;t+=Zb(e)?e.length:1,e instanceof cv&&av(i,e,0,e.length,n)})),i):i}sort(...e){const t=Qb(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,rv(this,t,n))})),this}}var lv={CommentArray:cv};const uv=hb.exports,{CommentArray:dv}=lv,{PREFIX_BEFORE:hv,PREFIX_AFTER_PROP:pv,PREFIX_AFTER_COLON:mv,PREFIX_AFTER_VALUE:fv,PREFIX_AFTER:gv,PREFIX_BEFORE_ALL:_v,PREFIX_AFTER_ALL:bv,BRACKET_OPEN:vv,BRACKET_CLOSE:yv,CURLY_BRACKET_OPEN:wv,CURLY_BRACKET_CLOSE:xv,COLON:Nv,COMMA:kv,MINUS:Av,EMPTY:Cv,UNDEFINED:Ov,define:Sv,assign_non_prop_comments:Ev}=Yb,Fv=e=>uv.tokenize(e,{comment:!0,loc:!0}),Dv=[];let Bv=null,Lv=null;const Mv=[];let Tv,Rv,$v=!1,jv=!1,Iv=null,Pv=null,zv=null,Uv=null;const Wv=()=>{Mv.length=Dv.length=0,Pv=null,Tv=Ov},Hv=e=>Symbol.for(Tv!==Ov?e+Nv+Tv:e),qv=(e,t)=>Uv?Uv(e,t):t,Vv=()=>{const e=new SyntaxError(`Unexpected token ${zv.value.slice(0,1)}`);throw Object.assign(e,zv.loc.start),e},Gv=()=>{const e=new SyntaxError("Unexpected end of JSON input");throw Object.assign(e,Pv?Pv.loc.end:{line:1,column:0}),e},Kv=()=>{const e=Iv[++Rv];jv=zv&&e&&zv.loc.end.line===e.loc.start.line||!1,Pv=zv,zv=e},Xv=()=>(zv||Gv(),"Punctuator"===zv.type?zv.value:zv.type),Jv=e=>Xv()===e,Yv=e=>{Jv(e)||Vv()},Zv=e=>{Dv.push(Bv),Bv=e},Qv=()=>{Bv=Dv.pop()},ey=()=>{if(!Lv)return;const e=[];for(const i of Lv){if(!i.inline)break;e.push(i)}const{length:t}=e;t&&(t===Lv.length?Lv=null:Lv.splice(0,t),Sv(Bv,Hv(gv),e))},ty=e=>{Lv&&(Sv(Bv,Hv(e),Lv),Lv=null)},iy=e=>{const t=[];for(;zv&&(Jv("LineComment")||Jv("BlockComment"));){const e=c(s({},zv),{inline:jv});t.push(e),Kv()}$v||t.length&&(e?Sv(Bv,Hv(e),t):Lv=t)},ny=(e,t)=>{t&&Mv.push(Tv),Tv=e},ry=()=>{Tv=Mv.pop()};function oy(){let e=Xv();if(e===wv)return Kv(),(()=>{const e={};Zv(e),ny(Ov,!0);let t,i=!1;for(iy();!(Jv(xv)||i&&(ty(fv),Yv(kv),Kv(),iy(),ey(),Jv(xv)));)i=!0,Yv("String"),t=JSON.parse(zv.value),ny(t),ty(hv),Kv(),iy(pv),Yv(Nv),Kv(),iy(mv),e[t]=qv(t,oy()),iy();return i&&ty(gv),Kv(),Tv=void 0,i||ty(hv),Qv(),ry(),e})();if(e===vv)return Kv(),(()=>{const e=new dv;Zv(e),ny(Ov,!0);let t=!1,i=0;for(iy();!(Jv(yv)||t&&(ty(fv),Yv(kv),Kv(),iy(),ey(),Jv(yv)));)t=!0,ny(i),ty(hv),e[i]=qv(i,oy()),i++,iy();return t&&ty(gv),Kv(),Tv=void 0,t||ty(hv),Qv(),ry(),e})();let t,i=Cv;switch(e===Av&&(Kv(),e=Xv(),i=Av),e){case"String":case"Boolean":case"Null":case"Numeric":return t=zv.value,Kv(),JSON.parse(i+t)}}var ay,sy={parse:(e,t,i)=>{Wv(),Iv=Fv(e),Uv=t,$v=i,Iv.length||Gv(),Rv=-1,Kv(),Zv({}),iy(_v);let n=oy();var r;return iy(bv),zv&&Vv(),i||null===n||(r=n,Object(r)!==r&&(n=new Object(n)),Ev(n,Bv)),Qv(),n=qv("",n),Wv(),Iv.length=0,Lv=Bv=Iv=Pv=zv=Uv=null,n},tokenize:Fv},cy="",ly=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(ay!==e||void 0===ay)ay=e,cy="";else if(cy.length>=i)return cy.substr(0,i);for(;i>cy.length&&t>1;)1&t&&(cy+=e),t>>=1,e+=e;return cy=(cy+=e).substr(0,i)}; +function(e){const t=bb,i=Ob,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(G(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(G(e,ArrayBuffer)||e&&G(e.buffer,ArrayBuffer))return d(e,t,i);if("undefined"!=typeof SharedArrayBuffer&&(G(e,SharedArrayBuffer)||e&&G(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||K(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<t;n+=1)i[n]=255&e[n];return i}function d(e,t,i){if(t<0||e.byteLength<t)throw new RangeError('"offset" is outside of buffer bounds');if(e.byteLength<t+(i||0))throw new RangeError('"length" is outside of buffer bounds');let n;return n=void 0===t&&void 0===i?new Uint8Array(e):void 0===i?new Uint8Array(e,t):new Uint8Array(e,t,i),Object.setPrototypeOf(n,a.prototype),n}function h(e){if(e>=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)||G(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 k(this,t,i);case"ascii":return C(this,t,i);case"latin1":case"binary":return O(this,t,i);case"base64":return N(this,t,i);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return E(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),K(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;o<s;o++)if(l(e,o)===l(t,-1===n?0:o-n)){if(-1===n&&(n=o),o-n+1===c)return n*a}else-1!==n&&(o-=o-n),n=-1}else for(i+c>s&&(i=s-c),o=i;o>=0;o--){let i=!0;for(let n=0;n<c;n++)if(l(e,o+n)!==l(t,n)){i=!1;break}if(i)return o}return-1}function b(e,t,i,n){i=Number(i)||0;const r=e.length-i;n?(n=Number(n))>r&&(n=r):n=r;const o=t.length;let a;for(n>o/2&&(n=o/2),a=0;a<n;++a){const n=parseInt(t.substr(2*a,2),16);if(K(n))return a;e[i+a]=n}return a}function v(e,t,i,n){return V(H(t,e.length-i),e,i,n)}function y(e,t,i,n){return V(function(e){const t=[];for(let i=0;i<e.length;++i)t.push(255&e.charCodeAt(i));return t}(t),e,i,n)}function w(e,t,i,n){return V(q(t),e,i,n)}function x(e,t,i,n){return V(function(e,t){let i,n,r;const o=[];for(let a=0;a<e.length&&!((t-=2)<0);++a)i=e.charCodeAt(a),n=i>>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 k(e,t,i){i=Math.min(e.length,i);const n=[];let r=t;for(;r<i;){const t=e[r];let o=null,a=t>239?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<=A)return String.fromCharCode.apply(String,e);let i="",n=0;for(;n<t;)i+=String.fromCharCode.apply(String,e.slice(n,n+=A));return i}(n)}e.kMaxLength=r,a.TYPED_ARRAY_SUPPORT=function(){try{const e=new Uint8Array(1),t={foo:function(){return 42}};return Object.setPrototypeOf(t,Uint8Array.prototype),Object.setPrototypeOf(e,t),42===e.foo()}catch(e){return!1}}(),a.TYPED_ARRAY_SUPPORT||"undefined"==typeof console||"function"!=typeof console.error||console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support."),Object.defineProperty(a.prototype,"parent",{enumerable:!0,get:function(){if(a.isBuffer(this))return this.buffer}}),Object.defineProperty(a.prototype,"offset",{enumerable:!0,get:function(){if(a.isBuffer(this))return this.byteOffset}}),a.poolSize=8192,a.from=function(e,t,i){return s(e,t,i)},Object.setPrototypeOf(a.prototype,Uint8Array.prototype),Object.setPrototypeOf(a,Uint8Array),a.alloc=function(e,t,i){return function(e,t,i){return c(e),e<=0?o(e):void 0!==t?"string"==typeof i?o(e).fill(t,i):o(e).fill(t):o(e)}(e,t,i)},a.allocUnsafe=function(e){return l(e)},a.allocUnsafeSlow=function(e){return l(e)},a.isBuffer=function(e){return null!=e&&!0===e._isBuffer&&e!==a.prototype},a.compare=function(e,t){if(G(e,Uint8Array)&&(e=a.from(e,e.offset,e.byteLength)),G(t,Uint8Array)&&(t=a.from(t,t.offset,t.byteLength)),!a.isBuffer(e)||!a.isBuffer(t))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(e===t)return 0;let i=e.length,n=t.length;for(let r=0,o=Math.min(i,n);r<o;++r)if(e[r]!==t[r]){i=e[r],n=t[r];break}return i<n?-1:n<i?1:0},a.isEncoding=function(e){switch(String(e).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},a.concat=function(e,t){if(!Array.isArray(e))throw new TypeError('"list" argument must be an Array of Buffers');if(0===e.length)return a.alloc(0);let i;if(void 0===t)for(t=0,i=0;i<e.length;++i)t+=e[i].length;const n=a.allocUnsafe(t);let r=0;for(i=0;i<e.length;++i){let t=e[i];if(G(t,Uint8Array))r+t.length>n.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;t<e;t+=2)f(this,t,t+1);return this},a.prototype.swap32=function(){const e=this.length;if(e%4!=0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(let t=0;t<e;t+=4)f(this,t,t+3),f(this,t+1,t+2);return this},a.prototype.swap64=function(){const e=this.length;if(e%8!=0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(let t=0;t<e;t+=8)f(this,t,t+7),f(this,t+1,t+6),f(this,t+2,t+5),f(this,t+3,t+4);return this},a.prototype.toString=function(){const e=this.length;return 0===e?"":0===arguments.length?k(this,0,e):m.apply(this,arguments)},a.prototype.toLocaleString=a.prototype.toString,a.prototype.equals=function(e){if(!a.isBuffer(e))throw new TypeError("Argument must be a Buffer");return this===e||0===a.compare(this,e)},a.prototype.inspect=function(){let t="";const i=e.INSPECT_MAX_BYTES;return t=this.toString("hex",0,i).replace(/(.{2})/g,"$1 ").trim(),this.length>i&&(t+=" ... "),"<Buffer "+t+">"},n&&(a.prototype[n]=a.prototype.inspect),a.prototype.compare=function(e,t,i,n,r){if(G(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<c;++a)if(l[a]!==u[a]){o=l[a],s=u[a];break}return o<s?-1:s<o?1:0},a.prototype.includes=function(e,t,i){return-1!==this.indexOf(e,t,i)},a.prototype.indexOf=function(e,t,i){return g(this,e,t,i,!0)},a.prototype.lastIndexOf=function(e,t,i){return g(this,e,t,i,!1)},a.prototype.write=function(e,t,i,n){if(void 0===t)n="utf8",i=this.length,t=0;else if(void 0===i&&"string"==typeof t)n=t,i=this.length,t=0;else{if(!isFinite(t))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");t>>>=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 A=4096;function C(e,t,i){let n="";i=Math.min(e.length,i);for(let r=t;r<i;++r)n+=String.fromCharCode(127&e[r]);return n}function O(e,t,i){let n="";i=Math.min(e.length,i);for(let r=t;r<i;++r)n+=String.fromCharCode(e[r]);return n}function S(e,t,i){const n=e.length;(!t||t<0)&&(t=0),(!i||i<0||i>n)&&(i=n);let r="";for(let o=t;o<i;++o)r+=X[e[o]];return r}function E(e,t,i){const n=e.slice(t,i);let r="";for(let o=0;o<n.length-1;o+=2)r+=String.fromCharCode(n[o]+256*n[o+1]);return r}function F(e,t,i){if(e%1!=0||e<0)throw new RangeError("offset is not uint");if(e+t>i)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||t<o)throw new RangeError('"value" argument is out of bounds');if(i+n>e.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 T(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 R(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<e&&(t=e);const n=this.subarray(e,t);return Object.setPrototypeOf(n,a.prototype),n},a.prototype.readUintLE=a.prototype.readUIntLE=function(e,t,i){e>>>=0,t>>>=0,i||F(e,t,this.length);let n=this[e],r=1,o=0;for(;++o<t&&(r*=256);)n+=this[e+o]*r;return n},a.prototype.readUintBE=a.prototype.readUIntBE=function(e,t,i){e>>>=0,t>>>=0,i||F(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||F(e,1,this.length),this[e]},a.prototype.readUint16LE=a.prototype.readUInt16LE=function(e,t){return e>>>=0,t||F(e,2,this.length),this[e]|this[e+1]<<8},a.prototype.readUint16BE=a.prototype.readUInt16BE=function(e,t){return e>>>=0,t||F(e,2,this.length),this[e]<<8|this[e+1]},a.prototype.readUint32LE=a.prototype.readUInt32LE=function(e,t){return e>>>=0,t||F(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||F(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)<<BigInt(32))})),a.prototype.readBigUInt64BE=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*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)<<BigInt(32))+BigInt(r)})),a.prototype.readIntLE=function(e,t,i){e>>>=0,t>>>=0,i||F(e,t,this.length);let n=this[e],r=1,o=0;for(;++o<t&&(r*=256);)n+=this[e+o]*r;return r*=128,n>=r&&(n-=Math.pow(2,8*t)),n},a.prototype.readIntBE=function(e,t,i){e>>>=0,t>>>=0,i||F(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||F(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},a.prototype.readInt16LE=function(e,t){e>>>=0,t||F(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||F(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||F(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||F(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)<<BigInt(32))+BigInt(t+256*this[++e]+65536*this[++e]+this[++e]*2**24)})),a.prototype.readBigInt64BE=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<<24)+65536*this[++e]+256*this[++e]+this[++e];return(BigInt(n)<<BigInt(32))+BigInt(this[++e]*2**24+65536*this[++e]+256*this[++e]+i)})),a.prototype.readFloatLE=function(e,t){return e>>>=0,t||F(e,4,this.length),i.read(this,e,!0,23,4)},a.prototype.readFloatBE=function(e,t){return e>>>=0,t||F(e,4,this.length),i.read(this,e,!1,23,4)},a.prototype.readDoubleLE=function(e,t){return e>>>=0,t||F(e,8,this.length),i.read(this,e,!0,52,8)},a.prototype.readDoubleBE=function(e,t){return e>>>=0,t||F(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<i&&(r*=256);)this[t+o]=e/r&255;return t+i},a.prototype.writeUintBE=a.prototype.writeUIntBE=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=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<i&&(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.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 T(this,e,t,!0,i)},a.prototype.writeFloatBE=function(e,t,i){return T(this,e,t,!1,i)},a.prototype.writeDoubleLE=function(e,t,i){return R(this,e,t,!0,i)},a.prototype.writeDoubleBE=function(e,t,i){return R(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<i&&(n=i),n===i)return 0;if(0===e.length||0===this.length)return 0;if(t<0)throw new RangeError("targetStart out of bounds");if(i<0||i>=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<n-i&&(n=e.length-t+i);const r=n-i;return this===e&&"function"==typeof Uint8Array.prototype.copyWithin?this.copyWithin(t,i,n):Uint8Array.prototype.set.call(e,this.subarray(i,n),t),r},a.prototype.fill=function(e,t,i,n){if("string"==typeof e){if("string"==typeof t?(n=t,t=0,i=this.length):"string"==typeof i&&(n=i,i=this.length),void 0!==n&&"string"!=typeof n)throw new TypeError("encoding must be a string");if("string"==typeof n&&!a.isEncoding(n))throw new TypeError("Unknown encoding: "+n);if(1===e.length){const t=e.charCodeAt(0);("utf8"===n&&t<128||"latin1"===n)&&(e=t)}}else"number"==typeof e?e&=255:"boolean"==typeof e&&(e=Number(e));if(t<0||this.length<t||this.length<i)throw new RangeError("Out of range index");if(i<=t)return this;let r;if(t>>>=0,i=void 0===i?this.length:i>>>0,e||(e=0),"number"==typeof e)for(r=t;r<i;++r)this[r]=e;else{const o=a.isBuffer(e)?e:a.from(e,n),s=o.length;if(0===s)throw new TypeError('The value "'+e+'" is invalid for argument "value"');for(r=0;r<i-t;++r)this[r+t]=o[r%s]}return this};const $={};function j(e,t,i){$[e]=class extends i{constructor(){super(),Object.defineProperty(this,"message",{value:t.apply(this,arguments),writable:!0,configurable:!0}),this.name=`${this.name} [${e}]`,this.stack,delete this.name}get code(){return e}set code(e){Object.defineProperty(this,"code",{configurable:!0,enumerable:!0,value:e,writable:!0})}toString(){return`${this.name} [${e}]: ${this.message}`}}}function I(e){let t="",i=e.length;const n="-"===e[0]?1:0;for(;i>=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||e<t){const n="bigint"==typeof t?"n":"";let r;throw r=o>3?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 $.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 $.ERR_INVALID_ARG_TYPE(t,"number",e)}function U(e,t,i){if(Math.floor(e)!==e)throw z(e,i),new $.ERR_OUT_OF_RANGE(i||"offset","an integer",e);if(t<0)throw new $.ERR_BUFFER_OUT_OF_BOUNDS;throw new $.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;a<n;++a){if(i=e.charCodeAt(a),i>55295&&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<n&&!(r+i>=t.length||r>=e.length);++r)t[r+i]=e[r];return r}function G(e,t){return e instanceof t||null!=e&&null!=e.constructor&&null!=e.constructor.name&&e.constructor.name===t.name}function K(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")}}(_b),gb.isArray=function(e){return Array.isArray?Array.isArray(e):"[object Array]"===Sb(e)},gb.isBoolean=function(e){return"boolean"==typeof e},gb.isNull=function(e){return null===e},gb.isNullOrUndefined=function(e){return null==e},gb.isNumber=function(e){return"number"==typeof e},gb.isString=function(e){return"string"==typeof e},gb.isSymbol=function(e){return"symbol"==typeof e},gb.isUndefined=function(e){return void 0===e},gb.isRegExp=function(e){return"[object RegExp]"===Sb(e)},gb.isObject=function(e){return"object"==typeof e&&null!==e},gb.isDate=function(e){return"[object Date]"===Sb(e)},gb.isError=function(e){return"[object Error]"===Sb(e)||e instanceof Error},gb.isFunction=function(e){return"function"==typeof e},gb.isPrimitive=function(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e},gb.isBuffer=_b.Buffer.isBuffer;const Eb=[1,10,100,1e3,1e4,1e5,1e6,1e7,1e8,1e9];let Fb;const Db=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 Bb(e,t){if(e===t)return 0;if(~~e===e&&~~t===t){if(0===e||0===t)return e<t?-1:1;if(e<0||t<0){if(t>=0)return-1;if(e>=0)return 1;e=-e,t=-t}const i=Db(e),n=Db(t);let r=0;return i<n?(e*=Eb[n-i-1],t/=10,r=-1):i>n&&(t*=Eb[i-n-1],e/=10,r=1),e===t?r:e<t?-1:1}const i=String(e),n=String(t);return i===n?0:i<n?-1:1}function Lb(e,t,i,n){let r=t+1;if(r===i)return 1;if(n(e[r++],e[t])<0){for(;r<i&&n(e[r],e[r-1])<0;)r++;Mb(e,t,r),Mb(Fb,t,r)}else for(;r<i&&n(e[r],e[r-1])>=0;)r++;return r-t}function Mb(e,t,i){for(i--;t<i;){const n=e[t];e[t++]=e[i],e[i--]=n}}function Tb(e,t,i,n,r){for(n===t&&n++;n<i;n++){const i=e[n],o=Fb[n];let a=t,s=n;for(;a<s;){const t=a+s>>>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],Fb[a+3]=Fb[a+2];case 2:e[a+2]=e[a+1],Fb[a+2]=Fb[a+1];case 1:e[a+1]=e[a],Fb[a+1]=Fb[a];break;default:for(;c>0;)e[a+c]=e[a+c-1],Fb[a+c]=Fb[a+c-1],c--}e[a]=i,Fb[a]=o}}function Rb(e,t,i,n,r,o){let a=0,s=0,c=1;if(o(e,t[i+r])>0){for(s=n-r;c<s&&o(e,t[i+r+c])>0;)a=c,c=1+(c<<1),c<=0&&(c=s);c>s&&(c=s),a+=r,c+=r}else{for(s=r+1;c<s&&o(e,t[i+r-c])<=0;)a=c,c=1+(c<<1),c<=0&&(c=s);c>s&&(c=s);const n=a;a=r-c,c=r-n}for(a++;a<c;){const n=a+(c-a>>>1);o(e,t[i+n])>0?a=n+1:c=n}return c}function $b(e,t,i,n,r,o){let a=0,s=0,c=1;if(o(e,t[i+r])<0){for(s=r+1;c<s&&o(e,t[i+r-c])<0;)a=c,c=1+(c<<1),c<=0&&(c=s);c>s&&(c=s);const n=a;a=r-c,c=r-n}else{for(s=n-r;c<s&&o(e,t[i+r+c])>=0;)a=c,c=1+(c<<1),c<=0&&(c=s);c>s&&(c=s),a+=r,c+=r}for(a++;a<c;){const n=a+(c-a>>>1);o(e,t[i+n])<0?c=n:a=n+1}return c}class jb{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]&&e--;else if(this.runLength[e]>this.runLength[e+1])break;this.mergeAt(e)}}forceMergeRuns(){for(;this.stackSize>1;){let e=this.stackSize-2;e>0&&this.runLength[e-1]<this.runLength[e+1]&&e--,this.mergeAt(e)}}mergeAt(e){const{compare:t}=this,{array:i}=this;let n=this.runStart[e],r=this.runLength[e];const o=this.runStart[e+1];let a=this.runLength[e+1];this.runLength[e]=r+a,e===this.stackSize-3&&(this.runStart[e+1]=this.runStart[e+2],this.runLength[e+1]=this.runLength[e+2]),this.stackSize--;const s=$b(i[o],i,n,r,0,t);n+=s,r-=s,0!==r&&(a=Rb(i[n+r-1],i,o,a,a-1,t),0!==a&&(r<=a?this.mergeLow(n,r,o,a):this.mergeHigh(n,r,o,a)))}mergeLow(e,t,i,n){const{compare:r}=this,{array:o}=this,{tmp:a}=this,{tmpIndex:s}=this;let c=0;for(c=0;c<t;c++)a[c]=o[e+c],s[c]=Fb[e+c];let l=0,u=i,d=e;if(o[d]=o[u],Fb[d]=Fb[u],d++,u++,0==--n){for(c=0;c<t;c++)o[d+c]=a[l+c],Fb[d+c]=s[l+c];return}if(1===t){for(c=0;c<n;c++)o[d+c]=o[u+c],Fb[d+c]=Fb[u+c];return o[d+n]=a[l],void(Fb[d+n]=s[l])}let{minGallop:h}=this;for(;;){let e=0,i=0,p=!1;do{if(r(o[u],a[l])<0){if(o[d]=o[u],Fb[d]=Fb[u],d++,u++,i++,e=0,0==--n){p=!0;break}}else if(o[d]=a[l],Fb[d]=s[l],d++,l++,e++,i=0,1==--t){p=!0;break}}while((e|i)<h);if(p)break;do{if(e=$b(o[u],a,l,t,0,r),0!==e){for(c=0;c<e;c++)o[d+c]=a[l+c],Fb[d+c]=s[l+c];if(d+=e,l+=e,(t-=e)<=1){p=!0;break}}if(o[d]=o[u],Fb[d]=Fb[u],d++,u++,0==--n){p=!0;break}if(i=Rb(a[l],o,u,n,0,r),0!==i){for(c=0;c<i;c++)o[d+c]=o[u+c],Fb[d+c]=Fb[u+c];if(d+=i,u+=i,0===(n-=i)){p=!0;break}}if(o[d]=a[l],Fb[d]=s[l],d++,l++,1==--t){p=!0;break}h--}while(e>=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<n;c++)o[d+c]=o[u+c],Fb[d+c]=Fb[u+c];o[d+n]=a[l],Fb[d+n]=s[l]}else{if(0===t)throw new Error("mergeLow preconditions were not respected");for(c=0;c<t;c++)o[d+c]=a[l+c],Fb[d+c]=s[l+c]}}mergeHigh(e,t,i,n){const{compare:r}=this,{array:o}=this,{tmp:a}=this,{tmpIndex:s}=this;let c=0;for(c=0;c<n;c++)a[c]=o[i+c],s[c]=Fb[i+c];let l=e+t-1,u=n-1,d=i+n-1,h=0,p=0;if(o[d]=o[l],Fb[d]=Fb[l],d--,l--,0==--t){for(h=d-(n-1),c=0;c<n;c++)o[h+c]=a[c],Fb[h+c]=s[c];return}if(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],Fb[p+c]=Fb[h+c];return o[d]=a[u],void(Fb[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],Fb[d]=Fb[l],d--,l--,i++,f=0,0==--t){g=!0;break}}else if(o[d]=a[u],Fb[d]=s[u],d--,u--,f++,i=0,1==--n){g=!0;break}}while((i|f)<m);if(g)break;do{if(i=t-$b(a[u],o,e,t,t-1,r),0!==i){for(d-=i,l-=i,t-=i,p=d+1,h=l+1,c=i-1;c>=0;c--)o[p+c]=o[h+c],Fb[p+c]=Fb[h+c];if(0===t){g=!0;break}}if(o[d]=a[u],Fb[d]=s[u],d--,u--,1==--n){g=!0;break}if(f=n-Rb(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<f;c++)o[p+c]=a[h+c],Fb[p+c]=s[h+c];if(n<=1){g=!0;break}}if(o[d]=o[l],Fb[d]=Fb[l],d--,l--,0==--t){g=!0;break}m--}while(i>=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],Fb[p+c]=Fb[h+c];o[d]=a[u],Fb[d]=s[u]}else{if(0===n)throw new Error("mergeHigh preconditions were not respected");for(h=d-(n-1),c=0;c<n;c++)o[h+c]=a[c],Fb[h+c]=s[c]}}}var Ib={sort:function(e,t,i,n){if(!Array.isArray(e))throw new TypeError(`The "array" argument must be an array. Received ${e}`);Fb=[];const{length:r}=e;let o=0;for(;o<r;)Fb[o]=o++;t?"function"!=typeof t&&(n=i,i=t,t=Bb):t=Bb,i||(i=0),n||(n=r);let a=n-i;if(a<2)return Fb;let s=0;if(a<32)return s=Lb(e,i,n,t),Tb(e,i,n,i+s,t),Fb;const c=new jb(e,t),l=function(e){let t=0;for(;e>=32;)t|=1&e,e>>=1;return e+t}(a);do{if(s=Lb(e,i,n,t),s<l){let n=a;n>l&&(n=l),Tb(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(),Fb}};const Pb=Object.prototype.hasOwnProperty;const zb=(e,t)=>Pb.call(e,t),{isObject:Ub,isArray:Wb}=gb,Hb="before",qb="before-all",Vb="after-all",Gb=[Hb,"after-prop","after-colon","after-value","after"],Kb=[Hb,qb,Vb].map(Symbol.for),Xb=(e,t)=>Symbol.for(e+":"+t),Jb=(e,t,i)=>Object.defineProperty(e,t,{value:i,writable:!0,configurable:!0}),Yb=(e,t,i,n,r,o)=>{const a=Xb(r,n);if(!zb(t,a))return;const s=i===n?a:Xb(r,i);Jb(e,s,t[a]),o&&delete t[a]},Zb=(e,t,i,n,r)=>{Gb.forEach((o=>{Yb(e,t,i,n,o,r)}))},Qb=(e,t)=>{Kb.forEach((i=>{const n=t[i];n&&Jb(e,i,n)}))};var ev={SYMBOL_PREFIXES:Gb,PREFIX_BEFORE:Hb,PREFIX_AFTER_PROP:"after-prop",PREFIX_AFTER_COLON:"after-colon",PREFIX_AFTER_VALUE:"after-value",PREFIX_AFTER:"after",PREFIX_BEFORE_ALL:qb,PREFIX_AFTER_ALL:Vb,BRACKET_OPEN:"[",BRACKET_CLOSE:"]",CURLY_BRACKET_OPEN:"{",CURLY_BRACKET_CLOSE:"}",COLON:":",COMMA:",",MINUS:"-",EMPTY:"",UNDEFINED:undefined,symbol:Xb,define:Jb,copy_comments:Zb,swap_comments:(e,t,i)=>{t!==i&&Gb.forEach((n=>{const r=Xb(n,i);if(!zb(e,r))return void Yb(e,e,i,t,n,!0);const o=e[r];delete e[r],Yb(e,e,i,t,n,!0),Jb(e,Xb(n,t),o)}))},assign_non_prop_comments:Qb,assign(e,t,i){if(!Ub(e))throw new TypeError("Cannot convert undefined or null to object");if(!Ub(t))return e;if(undefined===i)i=Object.keys(t),Qb(e,t);else{if(!Wb(i))throw new TypeError("keys must be array or undefined");0===i.length&&Qb(e,t)}return((e,t,i)=>(i.forEach((i=>{zb(t,i)&&(e[i]=t[i],Zb(e,t,i,i))})),e))(e,t,i)}};const{isArray:tv}=gb,{sort:iv}=Ib,{SYMBOL_PREFIXES:nv,UNDEFINED:rv,symbol:ov,copy_comments:av,swap_comments:sv}=ev,cv=(e,t,i,n,r)=>{av(e,t,i+n,i,r)},lv=(e,t,i,n,r,o)=>{if(r>0){let a=n;for(;a-- >0;)cv(e,t,i+a,r,o);return}let a=0;for(;a<n;){const n=a++;cv(e,t,i+n,r,o)}},uv=(e,t)=>{nv.forEach((i=>{const n=ov(i,t);delete e[n]}))};class dv 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 lv(this,this,s,t-s,a-r,!0),i}slice(...e){const{length:t}=this,i=super.slice(...e);if(!i.length)return new dv;let[n,r]=e;return r===rv?r=t:r<0&&(r+=t),n<0?n+=t:n===rv&&(n=0),lv(i,this,n,r-n,-n),i}unshift(...e){const{length:t}=this,i=super.unshift(...e),{length:n}=e;return n>0&&lv(this,this,0,t,n,!0),i}shift(){const e=super.shift(),{length:t}=this;return uv(this,0),lv(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<n;i++)sv(e,i,t-i-1)})(this),this}pop(){const e=super.pop();return uv(this,this.length),e}concat(...e){let{length:t}=this;const i=super.concat(...e);return e.length?(lv(i,this,0,this.length,0),e.forEach((e=>{const n=t;t+=tv(e)?e.length:1,e instanceof dv&&lv(i,e,0,e.length,n)})),i):i}sort(...e){const t=iv(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,sv(this,t,n))})),this}}var hv={CommentArray:dv};const pv=fb.exports,{CommentArray:mv}=hv,{PREFIX_BEFORE:fv,PREFIX_AFTER_PROP:gv,PREFIX_AFTER_COLON:_v,PREFIX_AFTER_VALUE:bv,PREFIX_AFTER:vv,PREFIX_BEFORE_ALL:yv,PREFIX_AFTER_ALL:wv,BRACKET_OPEN:xv,BRACKET_CLOSE:Nv,CURLY_BRACKET_OPEN:kv,CURLY_BRACKET_CLOSE:Av,COLON:Cv,COMMA:Ov,MINUS:Sv,EMPTY:Ev,UNDEFINED:Fv,define:Dv,assign_non_prop_comments:Bv}=ev,Lv=e=>pv.tokenize(e,{comment:!0,loc:!0}),Mv=[];let Tv=null,Rv=null;const $v=[];let jv,Iv,Pv=!1,zv=!1,Uv=null,Wv=null,Hv=null,qv=null;const Vv=()=>{$v.length=Mv.length=0,Wv=null,jv=Fv},Gv=e=>Symbol.for(jv!==Fv?e+Cv+jv:e),Kv=(e,t)=>qv?qv(e,t):t,Xv=()=>{const e=new SyntaxError(`Unexpected token ${Hv.value.slice(0,1)}`);throw Object.assign(e,Hv.loc.start),e},Jv=()=>{const e=new SyntaxError("Unexpected end of JSON input");throw Object.assign(e,Wv?Wv.loc.end:{line:1,column:0}),e},Yv=()=>{const e=Uv[++Iv];zv=Hv&&e&&Hv.loc.end.line===e.loc.start.line||!1,Wv=Hv,Hv=e},Zv=()=>(Hv||Jv(),"Punctuator"===Hv.type?Hv.value:Hv.type),Qv=e=>Zv()===e,ey=e=>{Qv(e)||Xv()},ty=e=>{Mv.push(Tv),Tv=e},iy=()=>{Tv=Mv.pop()},ny=()=>{if(!Rv)return;const e=[];for(const i of Rv){if(!i.inline)break;e.push(i)}const{length:t}=e;t&&(t===Rv.length?Rv=null:Rv.splice(0,t),Dv(Tv,Gv(vv),e))},ry=e=>{Rv&&(Dv(Tv,Gv(e),Rv),Rv=null)},oy=e=>{const t=[];for(;Hv&&(Qv("LineComment")||Qv("BlockComment"));){const e=c(s({},Hv),{inline:zv});t.push(e),Yv()}Pv||t.length&&(e?Dv(Tv,Gv(e),t):Rv=t)},ay=(e,t)=>{t&&$v.push(jv),jv=e},sy=()=>{jv=$v.pop()};function cy(){let e=Zv();if(e===kv)return Yv(),(()=>{const e={};ty(e),ay(Fv,!0);let t,i=!1;for(oy();!(Qv(Av)||i&&(ry(bv),ey(Ov),Yv(),oy(),ny(),Qv(Av)));)i=!0,ey("String"),t=JSON.parse(Hv.value),ay(t),ry(fv),Yv(),oy(gv),ey(Cv),Yv(),oy(_v),e[t]=Kv(t,cy()),oy();return i&&ry(vv),Yv(),jv=void 0,i||ry(fv),iy(),sy(),e})();if(e===xv)return Yv(),(()=>{const e=new mv;ty(e),ay(Fv,!0);let t=!1,i=0;for(oy();!(Qv(Nv)||t&&(ry(bv),ey(Ov),Yv(),oy(),ny(),Qv(Nv)));)t=!0,ay(i),ry(fv),e[i]=Kv(i,cy()),i++,oy();return t&&ry(vv),Yv(),jv=void 0,t||ry(fv),iy(),sy(),e})();let t,i=Ev;switch(e===Sv&&(Yv(),e=Zv(),i=Sv),e){case"String":case"Boolean":case"Null":case"Numeric":return t=Hv.value,Yv(),JSON.parse(i+t)}}var ly,uy={parse:(e,t,i)=>{Vv(),Uv=Lv(e),qv=t,Pv=i,Uv.length||Jv(),Iv=-1,Yv(),ty({}),oy(yv);let n=cy();var r;return oy(wv),Hv&&Xv(),i||null===n||(r=n,Object(r)!==r&&(n=new Object(n)),Bv(n,Tv)),iy(),n=Kv("",n),Vv(),Uv.length=0,Rv=Tv=Uv=Wv=Hv=qv=null,n},tokenize:Lv},dy="",hy=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(ly!==e||void 0===ly)ly=e,dy="";else if(dy.length>=i)return dy.substr(0,i);for(;i>dy.length&&t>1;)1&t&&(dy+=e),t>>=1,e+=e;return dy=(dy+=e).substr(0,i)}; /*! * repeat-string <https://github.com/jonschlinkert/repeat-string> * * Copyright (c) 2014-2015, Jon Schlinkert. * Licensed under the MIT License. - */const{isArray:uy,isObject:dy,isFunction:hy,isNumber:py,isString:my}=pb,fy=ly,{PREFIX_BEFORE_ALL:gy,PREFIX_BEFORE:_y,PREFIX_AFTER_PROP:by,PREFIX_AFTER_COLON:vy,PREFIX_AFTER_VALUE:yy,PREFIX_AFTER:wy,PREFIX_AFTER_ALL:xy,BRACKET_OPEN:Ny,BRACKET_CLOSE:ky,CURLY_BRACKET_OPEN:Ay,CURLY_BRACKET_CLOSE:Cy,COLON:Oy,COMMA:Sy,EMPTY:Ey,UNDEFINED:Fy}=Yb,Dy=/[\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,By=e=>`${_y}:${e}`,Ly=e=>`${yy}:${e}`,My=e=>`${wy}:${e}`,Ty={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},Ry=e=>`"${(e=>(Dy.lastIndex=0,Dy.test(e)?e.replace(Dy,(e=>{const t=Ty[e];return"string"==typeof t?t:e})):e))(e)}"`,$y=(e,t,i,n)=>{const r=e[Symbol.for(t)];if(!r||!r.length)return Ey;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))),Ey);return n||o?a+"\n"+i:a};let jy=null,Iy=Ey;const Py=(e,t,i)=>e?t?e+t.trim()+"\n"+i:e.trimRight()+"\n"+i:t?t.trimRight()+"\n"+i:Ey,zy=(e,t,i)=>{const n=$y(t,_y,i+Iy,!0);return Py(n,e,i)},Uy=(e,t)=>{if(!e)return"null";const i=t+Iy;let n=Ey,r=Ey,o=!0;return(uy(jy)?jy:Object.keys(e)).forEach((t=>{const a=Wy(t,e,i);if(a===Fy)return;o||(n+=Sy),o=!1;const s=Py(r,$y(e,By(t),i),i);n+=s||"\n"+i,n+=Ry(t)+$y(e,`${by}:${t}`,i)+Oy+$y(e,(e=>`${vy}:${e}`)(t),i)+" "+a+$y(e,Ly(t),i),r=$y(e,My(t),i)})),n+=Py(r,$y(e,wy,i),i),Ay+zy(n,e,t)+Cy};function Wy(e,t,i){let n=t[e];switch(dy(n)&&hy(n.toJSON)&&(n=n.toJSON(e)),hy(jy)&&(n=jy.call(t,e,n)),typeof n){case"string":return Ry(n);case"number":return Number.isFinite(n)?String(n):"null";case"boolean":case"null":return String(n);case"object":return uy(n)?((e,t)=>{const i=t+Iy,{length:n}=e;let r=Ey,o=Ey;for(let a=0;a<n;a++)0!==a&&(r+=Sy),r+=Py(o,$y(e,By(a),i),i)||"\n"+i,r+=Wy(a,e,i)||"null",r+=$y(e,Ly(a),i),o=$y(e,My(a),i);return r+=Py(o,$y(e,wy,i),i),Ny+zy(r,e,t)+ky})(n,i):Uy(n,i)}}const{toString:Hy}=Object.prototype,qy=["[object Number]","[object String]","[object Boolean]"];const{parse:Vy,tokenize:Gy}=sy,Ky=(e,t,i)=>{const n=(e=>my(e)?e:py(e)?fy(" ",e):Ey)(i);if(!n)return JSON.stringify(e,t);hy(t)||uy(t)||(t=null),jy=t,Iy=n;const r=(e=>{if("object"!=typeof e)return!1;const t=Hy.call(e);return qy.includes(t)})(e)?JSON.stringify(e):Wy("",{"":e},Ey);return jy=null,Iy=Ey,dy(e)?$y(e,gy,Ey).trimLeft()+r+$y(e,xy,Ey).trimRight():r},{CommentArray:Xy}=lv,{assign:Jy}=Yb;var Yy={parse:Vy,stringify:Ky,tokenize:Gy,CommentArray:Xy,assign:Jy},Zy={},Qy={},ew={};function tw(e){return null==e}function iw(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||""}ew.isNothing=tw,ew.isObject=function(e){return"object"==typeof e&&null!==e},ew.toArray=function(e){return Array.isArray(e)?e:tw(e)?[]:[e]},ew.repeat=function(e,t){var i,n="";for(i=0;i<t;i+=1)n+=e;return n},ew.isNegativeZero=function(e){return 0===e&&Number.NEGATIVE_INFINITY===1/e},ew.extend=function(e,t){var i,n,r,o;if(t)for(i=0,n=(o=Object.keys(t)).length;i<n;i+=1)e[r=o[i]]=t[r];return e},iw.prototype=Object.create(Error.prototype),iw.prototype.constructor=iw,iw.prototype.toString=function(e){var t=this.name+": ";return t+=this.reason||"(unknown reason)",!e&&this.mark&&(t+=" "+this.mark.toString()),t};var nw=iw,rw=ew;function ow(e,t,i,n,r){this.name=e,this.buffer=t,this.position=i,this.line=n,this.column=r}ow.prototype.getSnippet=function(e,t){var i,n,r,o,a;if(!this.buffer)return null;for(e=e||4,t=t||75,i="",n=this.position;n>0&&-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;o<this.buffer.length&&-1==="\0\r\n…\u2028\u2029".indexOf(this.buffer.charAt(o));)if((o+=1)-this.position>t/2-1){r=" ... ",o-=5;break}return a=this.buffer.slice(n,o),rw.repeat(" ",e)+i+a+r+"\n"+rw.repeat(" ",e+this.position-n+i.length)+"^"},ow.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 aw=ow,sw=nw,cw=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],lw=["scalar","sequence","mapping"];var uw=function(e,t){var i,n;if(t=t||{},Object.keys(t).forEach((function(t){if(-1===cw.indexOf(t))throw new sw('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===lw.indexOf(this.kind))throw new sw('Unknown kind "'+this.kind+'" is specified for "'+e+'" YAML type.')},dw=ew,hw=nw,pw=uw;function mw(e,t,i){var n=[];return e.include.forEach((function(e){i=mw(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 fw(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 hw("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.")})),this.compiledImplicit=mw(this,"implicit",[]),this.compiledExplicit=mw(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<t;e+=1)arguments[e].forEach(n);return i}(this.compiledImplicit,this.compiledExplicit)}fw.DEFAULT=null,fw.create=function(){var e,t;switch(arguments.length){case 1:e=fw.DEFAULT,t=arguments[0];break;case 2:e=arguments[0],t=arguments[1];break;default:throw new hw("Wrong number of arguments for Schema.create function")}if(e=dw.toArray(e),t=dw.toArray(t),!e.every((function(e){return e instanceof fw})))throw new hw("Specified list of super schemas (or a single Schema object) contains a non-Schema object.");if(!t.every((function(e){return e instanceof pw})))throw new hw("Specified list of YAML types (or a single Type object) contains a non-Type object.");return new fw({include:e,explicit:t})};var gw=fw,_w=new gw({explicit:[new uw("tag:yaml.org,2002:str",{kind:"scalar",construct:function(e){return null!==e?e:""}}),new uw("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(e){return null!==e?e:[]}}),new uw("tag:yaml.org,2002:map",{kind:"mapping",construct:function(e){return null!==e?e:{}}})]});var bw=new uw("tag:yaml.org,2002:null",{kind:"scalar",resolve:function(e){if(null===e)return!0;var t=e.length;return 1===t&&"~"===e||4===t&&("null"===e||"Null"===e||"NULL"===e)},construct:function(){return null},predicate:function(e){return null===e},represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"}},defaultStyle:"lowercase"});var vw=new uw("tag:yaml.org,2002:bool",{kind:"scalar",resolve:function(e){if(null===e)return!1;var t=e.length;return 4===t&&("true"===e||"True"===e||"TRUE"===e)||5===t&&("false"===e||"False"===e||"FALSE"===e)},construct:function(e){return"true"===e||"True"===e||"TRUE"===e},predicate:function(e){return"[object Boolean]"===Object.prototype.toString.call(e)},represent:{lowercase:function(e){return e?"true":"false"},uppercase:function(e){return e?"TRUE":"FALSE"},camelcase:function(e){return e?"True":"False"}},defaultStyle:"lowercase"}),yw=ew;function ww(e){return 48<=e&&e<=55}function xw(e){return 48<=e&&e<=57}var Nw=new uw("tag:yaml.org,2002:int",{kind:"scalar",resolve:function(e){if(null===e)return!1;var t,i,n=e.length,r=0,o=!1;if(!n)return!1;if("-"!==(t=e[r])&&"+"!==t||(t=e[++r]),"0"===t){if(r+1===n)return!0;if("b"===(t=e[++r])){for(r++;r<n;r++)if("_"!==(t=e[r])){if("0"!==t&&"1"!==t)return!1;o=!0}return o&&"_"!==t}if("x"===t){for(r++;r<n;r++)if("_"!==(t=e[r])){if(!(48<=(i=e.charCodeAt(r))&&i<=57||65<=i&&i<=70||97<=i&&i<=102))return!1;o=!0}return o&&"_"!==t}for(;r<n;r++)if("_"!==(t=e[r])){if(!ww(e.charCodeAt(r)))return!1;o=!0}return o&&"_"!==t}if("_"===t)return!1;for(;r<n;r++)if("_"!==(t=e[r])){if(":"===t)break;if(!xw(e.charCodeAt(r)))return!1;o=!0}return!(!o||"_"===t)&&(":"!==t||/^(:[0-5]?[0-9])+$/.test(e.slice(r)))},construct:function(e){var t,i,n=e,r=1,o=[];return-1!==n.indexOf("_")&&(n=n.replace(/_/g,"")),"-"!==(t=n[0])&&"+"!==t||("-"===t&&(r=-1),t=(n=n.slice(1))[0]),"0"===n?0:"0"===t?"b"===n[1]?r*parseInt(n.slice(2),2):"x"===n[1]?r*parseInt(n,16):r*parseInt(n,8):-1!==n.indexOf(":")?(n.split(":").forEach((function(e){o.unshift(parseInt(e,10))})),n=0,i=1,o.forEach((function(e){n+=e*i,i*=60})),r*n):r*parseInt(n,10)},predicate:function(e){return"[object Number]"===Object.prototype.toString.call(e)&&e%1==0&&!yw.isNegativeZero(e)},represent:{binary:function(e){return 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"]}}),kw=ew,Aw=uw,Cw=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 Ow=/^[-+]?[0-9]+e/;var Sw=new gw({include:[_w],implicit:[bw,vw,Nw,new Aw("tag:yaml.org,2002:float",{kind:"scalar",resolve:function(e){return null!==e&&!(!Cw.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||kw.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(kw.isNegativeZero(e))return"-0.0";return i=e.toString(10),Ow.test(i)?i.replace("e",".e"):i},defaultStyle:"lowercase"})]}),Ew=new gw({include:[Sw]}),Fw=uw,Dw=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),Bw=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 Lw=new Fw("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:function(e){return null!==e&&(null!==Dw.exec(e)||null!==Bw.exec(e))},construct:function(e){var t,i,n,r,o,a,s,c,l=0,u=null;if(null===(t=Dw.exec(e))&&(t=Bw.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 Mw,Tw=new uw("tag:yaml.org,2002:merge",{kind:"scalar",resolve:function(e){return"<<"===e||null===e}});try{var Rw=require;Mw=Rw("buffer").Buffer}catch(Jk){}var $w="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r";var jw=new uw("tag:yaml.org,2002:binary",{kind:"scalar",resolve:function(e){if(null===e)return!1;var t,i,n=0,r=e.length,o=$w;for(i=0;i<r;i++)if(!((t=o.indexOf(e.charAt(i)))>64)){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=$w,a=0,s=[];for(t=0;t<r;t++)t%4==0&&t&&(s.push(a>>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),Mw?Mw.from?Mw.from(s):new Mw(s):s},predicate:function(e){return Mw&&Mw.isBuffer(e)},represent:function(e){var t,i,n="",r=0,o=e.length,a=$w;for(t=0;t<o;t++)t%3==0&&t&&(n+=a[r>>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}}),Iw=uw,Pw=Object.prototype.hasOwnProperty,zw=Object.prototype.toString;var Uw=new Iw("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;t<i;t+=1){if(n=s[t],o=!1,"[object Object]"!==zw.call(n))return!1;for(r in n)if(Pw.call(n,r)){if(o)return!1;o=!0}if(!o)return!1;if(-1!==a.indexOf(r))return!1;a.push(r)}return!0},construct:function(e){return null!==e?e:[]}}),Ww=uw,Hw=Object.prototype.toString;var qw=new Ww("tag:yaml.org,2002:pairs",{kind:"sequence",resolve:function(e){if(null===e)return!0;var t,i,n,r,o,a=e;for(o=new Array(a.length),t=0,i=a.length;t<i;t+=1){if(n=a[t],"[object Object]"!==Hw.call(n))return!1;if(1!==(r=Object.keys(n)).length)return!1;o[t]=[r[0],n[r[0]]]}return!0},construct:function(e){if(null===e)return[];var t,i,n,r,o,a=e;for(o=new Array(a.length),t=0,i=a.length;t<i;t+=1)n=a[t],r=Object.keys(n),o[t]=[r[0],n[r[0]]];return o}}),Vw=uw,Gw=Object.prototype.hasOwnProperty;var Kw=new gw({include:[Ew],implicit:[Lw,Tw],explicit:[jw,Uw,qw,new Vw("tag:yaml.org,2002:set",{kind:"mapping",resolve:function(e){if(null===e)return!0;var t,i=e;for(t in i)if(Gw.call(i,t)&&null!==i[t])return!1;return!0},construct:function(e){return null!==e?e:{}}})]});var Xw=new uw("tag:yaml.org,2002:js/undefined",{kind:"scalar",resolve:function(){return!0},construct:function(){},predicate:function(e){return void 0===e},represent:function(){return""}});var Jw,Yw=new uw("tag:yaml.org,2002:js/regexp",{kind:"scalar",resolve:function(e){if(null===e)return!1;if(0===e.length)return!1;var t=e,i=/\/([gim]*)$/.exec(e),n="";if("/"===t[0]){if(i&&(n=i[1]),n.length>3)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 Zw=require;Jw=Zw("esprima")}catch(Yk){"undefined"!=typeof window&&(Jw=window.esprima)}var Qw=new uw("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:function(e){if(null===e)return!1;try{var t="("+e+")",i=Jw.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=Jw.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()}}),ex=gw,tx=ex.DEFAULT=new ex({include:[Kw],explicit:[Xw,Yw,Qw]}),ix=ew,nx=nw,rx=aw,ox=Kw,ax=tx,sx=Object.prototype.hasOwnProperty,cx=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,lx=/[\x85\u2028\u2029]/,ux=/[,\[\]\{\}]/,dx=/^(?:!|!!|![a-z\-]+!)$/i,hx=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function px(e){return Object.prototype.toString.call(e)}function mx(e){return 10===e||13===e}function fx(e){return 9===e||32===e}function gx(e){return 9===e||32===e||10===e||13===e}function _x(e){return 44===e||91===e||93===e||123===e||125===e}function bx(e){var t;return 48<=e&&e<=57?e-48:97<=(t=32|e)&&t<=102?t-97+10:-1}function vx(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 yx(e){return e<=65535?String.fromCharCode(e):String.fromCharCode(55296+(e-65536>>10),56320+(e-65536&1023))}for(var wx=new Array(256),xx=new Array(256),Nx=0;Nx<256;Nx++)wx[Nx]=vx(Nx)?1:0,xx[Nx]=vx(Nx);function kx(e,t){this.input=e,this.filename=t.filename||null,this.schema=t.schema||ax,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 Ax(e,t){return new nx(t,new rx(e.filename,e.input,e.position,e.line,e.position-e.lineStart))}function Cx(e,t){throw Ax(e,t)}function Ox(e,t){e.onWarning&&e.onWarning.call(null,Ax(e,t))}var Sx={YAML:function(e,t,i){var n,r,o;null!==e.version&&Cx(e,"duplication of %YAML directive"),1!==i.length&&Cx(e,"YAML directive accepts exactly one argument"),null===(n=/^([0-9]+)\.([0-9]+)$/.exec(i[0]))&&Cx(e,"ill-formed argument of the YAML directive"),r=parseInt(n[1],10),o=parseInt(n[2],10),1!==r&&Cx(e,"unacceptable YAML version of the document"),e.version=i[0],e.checkLineBreaks=o<2,1!==o&&2!==o&&Ox(e,"unsupported YAML version of the document")},TAG:function(e,t,i){var n,r;2!==i.length&&Cx(e,"TAG directive accepts exactly two arguments"),n=i[0],r=i[1],dx.test(n)||Cx(e,"ill-formed tag handle (first argument) of the TAG directive"),sx.call(e.tagMap,n)&&Cx(e,'there is a previously declared suffix for "'+n+'" tag handle'),hx.test(r)||Cx(e,"ill-formed tag prefix (second argument) of the TAG directive"),e.tagMap[n]=r}};function Ex(e,t,i,n){var r,o,a,s;if(t<i){if(s=e.input.slice(t,i),n)for(r=0,o=s.length;r<o;r+=1)9===(a=s.charCodeAt(r))||32<=a&&a<=1114111||Cx(e,"expected valid JSON character");else cx.test(s)&&Cx(e,"the stream contains non-printable characters");e.result+=s}}function Fx(e,t,i,n){var r,o,a,s;for(ix.isObject(i)||Cx(e,"cannot merge mappings; the provided source object is unacceptable"),a=0,s=(r=Object.keys(i)).length;a<s;a+=1)o=r[a],sx.call(t,o)||(t[o]=i[o],n[o]=!0)}function Dx(e,t,i,n,r,o,a,s){var c,l;if(Array.isArray(r))for(c=0,l=(r=Array.prototype.slice.call(r)).length;c<l;c+=1)Array.isArray(r[c])&&Cx(e,"nested arrays are not supported inside keys"),"object"==typeof r&&"[object Object]"===px(r[c])&&(r[c]="[object Object]");if("object"==typeof r&&"[object Object]"===px(r)&&(r="[object Object]"),r=String(r),null===t&&(t={}),"tag:yaml.org,2002:merge"===n)if(Array.isArray(o))for(c=0,l=o.length;c<l;c+=1)Fx(e,t,o[c],i);else Fx(e,t,o,i);else e.json||sx.call(i,r)||!sx.call(t,r)||(e.line=a||e.line,e.position=s||e.position,Cx(e,"duplicated mapping key")),t[r]=o,delete i[r];return t}function Bx(e){var t;10===(t=e.input.charCodeAt(e.position))?e.position++:13===t?(e.position++,10===e.input.charCodeAt(e.position)&&e.position++):Cx(e,"a line break is expected"),e.line+=1,e.lineStart=e.position}function Lx(e,t,i){for(var n=0,r=e.input.charCodeAt(e.position);0!==r;){for(;fx(r);)r=e.input.charCodeAt(++e.position);if(t&&35===r)do{r=e.input.charCodeAt(++e.position)}while(10!==r&&13!==r&&0!==r);if(!mx(r))break;for(Bx(e),r=e.input.charCodeAt(e.position),n++,e.lineIndent=0;32===r;)e.lineIndent++,r=e.input.charCodeAt(++e.position)}return-1!==i&&0!==n&&e.lineIndent<i&&Ox(e,"deficient indentation"),n}function Mx(e){var t,i=e.position;return!(45!==(t=e.input.charCodeAt(i))&&46!==t||t!==e.input.charCodeAt(i+1)||t!==e.input.charCodeAt(i+2)||(i+=3,0!==(t=e.input.charCodeAt(i))&&!gx(t)))}function Tx(e,t){1===t?e.result+=" ":t>1&&(e.result+=ix.repeat("\n",t-1))}function Rx(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&&gx(e.input.charCodeAt(e.position+1));)if(s=!0,e.position++,Lx(e,!0,-1)&&e.lineIndent<=t)a.push(null),n=e.input.charCodeAt(e.position);else if(i=e.line,Ix(e,t,3,!1,!0),a.push(e.result),Lx(e,!0,-1),n=e.input.charCodeAt(e.position),(e.line===i||e.lineIndent>t)&&0!==n)Cx(e,"bad indentation of a sequence entry");else if(e.lineIndent<t)break;return!!s&&(e.tag=r,e.anchor=o,e.kind="sequence",e.result=a,!0)}function $x(e){var t,i,n,r,o=!1,a=!1;if(33!==(r=e.input.charCodeAt(e.position)))return!1;if(null!==e.tag&&Cx(e,"duplication of a tag property"),60===(r=e.input.charCodeAt(++e.position))?(o=!0,r=e.input.charCodeAt(++e.position)):33===r?(a=!0,i="!!",r=e.input.charCodeAt(++e.position)):i="!",t=e.position,o){do{r=e.input.charCodeAt(++e.position)}while(0!==r&&62!==r);e.position<e.length?(n=e.input.slice(t,e.position),r=e.input.charCodeAt(++e.position)):Cx(e,"unexpected end of the stream within a verbatim tag")}else{for(;0!==r&&!gx(r);)33===r&&(a?Cx(e,"tag suffix cannot contain exclamation marks"):(i=e.input.slice(t-1,e.position+1),dx.test(i)||Cx(e,"named tag handle cannot contain such characters"),a=!0,t=e.position+1)),r=e.input.charCodeAt(++e.position);n=e.input.slice(t,e.position),ux.test(n)&&Cx(e,"tag suffix cannot contain flow indicator characters")}return n&&!hx.test(n)&&Cx(e,"tag name cannot contain such characters: "+n),o?e.tag=n:sx.call(e.tagMap,i)?e.tag=e.tagMap[i]+n:"!"===i?e.tag="!"+n:"!!"===i?e.tag="tag:yaml.org,2002:"+n:Cx(e,'undeclared tag handle "'+i+'"'),!0}function jx(e){var t,i;if(38!==(i=e.input.charCodeAt(e.position)))return!1;for(null!==e.anchor&&Cx(e,"duplication of an anchor property"),i=e.input.charCodeAt(++e.position),t=e.position;0!==i&&!gx(i)&&!_x(i);)i=e.input.charCodeAt(++e.position);return e.position===t&&Cx(e,"name of an anchor node must contain at least one character"),e.anchor=e.input.slice(t,e.position),!0}function Ix(e,t,i,n,r){var o,a,s,c,l,u,d,h,p=1,m=!1,f=!1;if(null!==e.listener&&e.listener("open",e),e.tag=null,e.anchor=null,e.kind=null,e.result=null,o=a=s=4===i||3===i,n&&Lx(e,!0,-1)&&(m=!0,e.lineIndent>t?p=1:e.lineIndent===t?p=0:e.lineIndent<t&&(p=-1)),1===p)for(;$x(e)||jx(e);)Lx(e,!0,-1)?(m=!0,s=o,e.lineIndent>t?p=1:e.lineIndent===t?p=0:e.lineIndent<t&&(p=-1)):s=!1;if(s&&(s=m||r),1!==p&&4!==i||(d=1===i||2===i?t:t+1,h=e.position-e.lineStart,1===p?s&&(Rx(e,h)||function(e,t,i){var n,r,o,a,s,c=e.tag,l=e.anchor,u={},d={},h=null,p=null,m=null,f=!1,g=!1;for(null!==e.anchor&&(e.anchorMap[e.anchor]=u),s=e.input.charCodeAt(e.position);0!==s;){if(n=e.input.charCodeAt(e.position+1),o=e.line,a=e.position,63!==s&&58!==s||!gx(n)){if(!Ix(e,i,2,!1,!0))break;if(e.line===o){for(s=e.input.charCodeAt(e.position);fx(s);)s=e.input.charCodeAt(++e.position);if(58===s)gx(s=e.input.charCodeAt(++e.position))||Cx(e,"a whitespace character is expected after the key-value separator within a block mapping"),f&&(Dx(e,u,d,h,p,null),h=p=m=null),g=!0,f=!1,r=!1,h=e.tag,p=e.result;else{if(!g)return e.tag=c,e.anchor=l,!0;Cx(e,"can not read an implicit mapping pair; a colon is missed")}}else{if(!g)return e.tag=c,e.anchor=l,!0;Cx(e,"can not read a block mapping entry; a multiline key may not be an implicit key")}}else 63===s?(f&&(Dx(e,u,d,h,p,null),h=p=m=null),g=!0,f=!0,r=!0):f?(f=!1,r=!0):Cx(e,"incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line"),e.position+=1,s=n;if((e.line===o||e.lineIndent>t)&&(Ix(e,t,4,!0,r)&&(f?p=e.result:m=e.result),f||(Dx(e,u,d,h,p,m,o,a),h=p=m=null),Lx(e,!0,-1),s=e.input.charCodeAt(e.position)),e.lineIndent>t&&0!==s)Cx(e,"bad indentation of a mapping entry");else if(e.lineIndent<t)break}return f&&Dx(e,u,d,h,p,null),g&&(e.tag=c,e.anchor=l,e.kind="mapping",e.result=u),g}(e,h,d))||function(e,t){var i,n,r,o,a,s,c,l,u,d,h=!0,p=e.tag,m=e.anchor,f={};if(91===(d=e.input.charCodeAt(e.position)))r=93,s=!1,n=[];else{if(123!==d)return!1;r=125,s=!0,n={}}for(null!==e.anchor&&(e.anchorMap[e.anchor]=n),d=e.input.charCodeAt(++e.position);0!==d;){if(Lx(e,!0,t),(d=e.input.charCodeAt(e.position))===r)return e.position++,e.tag=p,e.anchor=m,e.kind=s?"mapping":"sequence",e.result=n,!0;h||Cx(e,"missed comma between flow collection entries"),u=null,o=a=!1,63===d&&gx(e.input.charCodeAt(e.position+1))&&(o=a=!0,e.position++,Lx(e,!0,t)),i=e.line,Ix(e,t,1,!1,!0),l=e.tag,c=e.result,Lx(e,!0,t),d=e.input.charCodeAt(e.position),!a&&e.line!==i||58!==d||(o=!0,d=e.input.charCodeAt(++e.position),Lx(e,!0,t),Ix(e,t,1,!1,!0),u=e.result),s?Dx(e,n,f,l,c,u):o?n.push(Dx(e,null,f,l,c,u)):n.push(c),Lx(e,!0,t),44===(d=e.input.charCodeAt(e.position))?(h=!0,d=e.input.charCodeAt(++e.position)):h=!1}Cx(e,"unexpected end of the stream within a flow collection")}(e,d)?f=!0:(a&&function(e,t){var i,n,r,o,a,s=1,c=!1,l=!1,u=t,d=0,h=!1;if(124===(o=e.input.charCodeAt(e.position)))n=!1;else{if(62!==o)return!1;n=!0}for(e.kind="scalar",e.result="";0!==o;)if(43===(o=e.input.charCodeAt(++e.position))||45===o)1===s?s=43===o?3:2:Cx(e,"repeat of a chomping mode identifier");else{if(!((r=48<=(a=o)&&a<=57?a-48:-1)>=0))break;0===r?Cx(e,"bad explicit indentation width of a block scalar; it cannot be less than one"):l?Cx(e,"repeat of an indentation width identifier"):(u=t+r-1,l=!0)}if(fx(o)){do{o=e.input.charCodeAt(++e.position)}while(fx(o));if(35===o)do{o=e.input.charCodeAt(++e.position)}while(!mx(o)&&0!==o)}for(;0!==o;){for(Bx(e),e.lineIndent=0,o=e.input.charCodeAt(e.position);(!l||e.lineIndent<u)&&32===o;)e.lineIndent++,o=e.input.charCodeAt(++e.position);if(!l&&e.lineIndent>u&&(u=e.lineIndent),mx(o))d++;else{if(e.lineIndent<u){3===s?e.result+=ix.repeat("\n",c?1+d:d):1===s&&c&&(e.result+="\n");break}for(n?fx(o)?(h=!0,e.result+=ix.repeat("\n",c?1+d:d)):h?(h=!1,e.result+=ix.repeat("\n",d+1)):0===d?c&&(e.result+=" "):e.result+=ix.repeat("\n",d):e.result+=ix.repeat("\n",c?1+d:d),c=!0,l=!0,d=0,i=e.position;!mx(o)&&0!==o;)o=e.input.charCodeAt(++e.position);Ex(e,i,e.position,!1)}}return!0}(e,d)||function(e,t){var i,n,r;if(39!==(i=e.input.charCodeAt(e.position)))return!1;for(e.kind="scalar",e.result="",e.position++,n=r=e.position;0!==(i=e.input.charCodeAt(e.position));)if(39===i){if(Ex(e,n,e.position,!0),39!==(i=e.input.charCodeAt(++e.position)))return!0;n=e.position,e.position++,r=e.position}else mx(i)?(Ex(e,n,r,!0),Tx(e,Lx(e,!1,t)),n=r=e.position):e.position===e.lineStart&&Mx(e)?Cx(e,"unexpected end of the document within a single quoted scalar"):(e.position++,r=e.position);Cx(e,"unexpected end of the stream within a single quoted scalar")}(e,d)||function(e,t){var i,n,r,o,a,s,c;if(34!==(s=e.input.charCodeAt(e.position)))return!1;for(e.kind="scalar",e.result="",e.position++,i=n=e.position;0!==(s=e.input.charCodeAt(e.position));){if(34===s)return Ex(e,i,e.position,!0),e.position++,!0;if(92===s){if(Ex(e,i,e.position,!0),mx(s=e.input.charCodeAt(++e.position)))Lx(e,!1,t);else if(s<256&&wx[s])e.result+=xx[s],e.position++;else if((a=120===(c=s)?2:117===c?4:85===c?8:0)>0){for(r=a,o=0;r>0;r--)(a=bx(s=e.input.charCodeAt(++e.position)))>=0?o=(o<<4)+a:Cx(e,"expected hexadecimal character");e.result+=yx(o),e.position++}else Cx(e,"unknown escape sequence");i=n=e.position}else mx(s)?(Ex(e,i,n,!0),Tx(e,Lx(e,!1,t)),i=n=e.position):e.position===e.lineStart&&Mx(e)?Cx(e,"unexpected end of the document within a double quoted scalar"):(e.position++,n=e.position)}Cx(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&&!gx(n)&&!_x(n);)n=e.input.charCodeAt(++e.position);return e.position===t&&Cx(e,"name of an alias node must contain at least one character"),i=e.input.slice(t,e.position),sx.call(e.anchorMap,i)||Cx(e,'unidentified alias "'+i+'"'),e.result=e.anchorMap[i],Lx(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(gx(u=e.input.charCodeAt(e.position))||_x(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)&&(gx(n=e.input.charCodeAt(e.position+1))||i&&_x(n)))return!1;for(e.kind="scalar",e.result="",r=o=e.position,a=!1;0!==u;){if(58===u){if(gx(n=e.input.charCodeAt(e.position+1))||i&&_x(n))break}else if(35===u){if(gx(e.input.charCodeAt(e.position-1)))break}else{if(e.position===e.lineStart&&Mx(e)||i&&_x(u))break;if(mx(u)){if(s=e.line,c=e.lineStart,l=e.lineIndent,Lx(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&&(Ex(e,r,o,!1),Tx(e,e.line-s),r=o=e.position,a=!1),fx(u)||(o=e.position+1),u=e.input.charCodeAt(++e.position)}return Ex(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||Cx(e,"alias node should not have any properties")),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):0===p&&(f=s&&Rx(e,h))),null!==e.tag&&"!"!==e.tag)if("?"===e.tag){for(null!==e.result&&"scalar"!==e.kind&&Cx(e,'unacceptable node kind for !<?> tag; it should be "scalar", not "'+e.kind+'"'),c=0,l=e.implicitTypes.length;c<l;c+=1)if((u=e.implicitTypes[c]).resolve(e.result)){e.result=u.construct(e.result),e.tag=u.tag,null!==e.anchor&&(e.anchorMap[e.anchor]=e.result);break}}else sx.call(e.typeMap[e.kind||"fallback"],e.tag)?(u=e.typeMap[e.kind||"fallback"][e.tag],null!==e.result&&u.kind!==e.kind&&Cx(e,"unacceptable node kind for !<"+e.tag+'> 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)):Cx(e,"cannot resolve a node with !<"+e.tag+"> explicit tag")):Cx(e,"unknown tag !<"+e.tag+">");return null!==e.listener&&e.listener("close",e),null!==e.tag||null!==e.anchor||f}function Px(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))&&(Lx(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&&!gx(r);)r=e.input.charCodeAt(++e.position);for(n=[],(i=e.input.slice(t,e.position)).length<1&&Cx(e,"directive name must not be less than one character in length");0!==r;){for(;fx(r);)r=e.input.charCodeAt(++e.position);if(35===r){do{r=e.input.charCodeAt(++e.position)}while(0!==r&&!mx(r));break}if(mx(r))break;for(t=e.position;0!==r&&!gx(r);)r=e.input.charCodeAt(++e.position);n.push(e.input.slice(t,e.position))}0!==r&&Bx(e),sx.call(Sx,i)?Sx[i](e,i,n):Ox(e,'unknown document directive "'+i+'"')}Lx(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,Lx(e,!0,-1)):a&&Cx(e,"directives end mark is expected"),Ix(e,e.lineIndent-1,4,!1,!0),Lx(e,!0,-1),e.checkLineBreaks&&lx.test(e.input.slice(o,e.position))&&Ox(e,"non-ASCII line breaks are interpreted as content"),e.documents.push(e.result),e.position===e.lineStart&&Mx(e)?46===e.input.charCodeAt(e.position)&&(e.position+=3,Lx(e,!0,-1)):e.position<e.length-1&&Cx(e,"end of the stream or a document separator is expected")}function zx(e,t){t=t||{},0!==(e=String(e)).length&&(10!==e.charCodeAt(e.length-1)&&13!==e.charCodeAt(e.length-1)&&(e+="\n"),65279===e.charCodeAt(0)&&(e=e.slice(1)));var i=new kx(e,t),n=e.indexOf("\0");for(-1!==n&&(i.position=n,Cx(i,"null byte is not allowed in input")),i.input+="\0";32===i.input.charCodeAt(i.position);)i.lineIndent+=1,i.position+=1;for(;i.position<i.length-1;)Px(i);return i.documents}function Ux(e,t,i){null!==t&&"object"==typeof t&&void 0===i&&(i=t,t=null);var n=zx(e,i);if("function"!=typeof t)return n;for(var r=0,o=n.length;r<o;r+=1)t(n[r])}function Wx(e,t){var i=zx(e,t);if(0!==i.length){if(1===i.length)return i[0];throw new nx("expected a single document in the stream, but found more")}}Qy.loadAll=Ux,Qy.load=Wx,Qy.safeLoadAll=function(e,t,i){return"object"==typeof t&&null!==t&&void 0===i&&(i=t,t=null),Ux(e,t,ix.extend({schema:ox},i))},Qy.safeLoad=function(e,t){return Wx(e,ix.extend({schema:ox},t))};var Hx={},qx=ew,Vx=nw,Gx=tx,Kx=Kw,Xx=Object.prototype.toString,Jx=Object.prototype.hasOwnProperty,Yx={0:"\\0",7:"\\a",8:"\\b",9:"\\t",10:"\\n",11:"\\v",12:"\\f",13:"\\r",27:"\\e",34:'\\"',92:"\\\\",133:"\\N",160:"\\_",8232:"\\L",8233:"\\P"},Zx=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"];function Qx(e){var t,i,n;if(t=e.toString(16).toUpperCase(),e<=255)i="x",n=2;else if(e<=65535)i="u",n=4;else{if(!(e<=4294967295))throw new Vx("code point within a string may not be greater than 0xFFFFFFFF");i="U",n=8}return"\\"+i+qx.repeat("0",n-t.length)+t}function eN(e){this.schema=e.schema||Gx,this.indent=Math.max(1,e.indent||2),this.noArrayIndent=e.noArrayIndent||!1,this.skipInvalid=e.skipInvalid||!1,this.flowLevel=qx.isNothing(e.flowLevel)?-1:e.flowLevel,this.styleMap=function(e,t){var i,n,r,o,a,s,c;if(null===t)return{};for(i={},r=0,o=(n=Object.keys(t)).length;r<o;r+=1)a=n[r],s=String(t[a]),"!!"===a.slice(0,2)&&(a="tag:yaml.org,2002:"+a.slice(2)),(c=e.compiledTypeMap.fallback[a])&&Jx.call(c.styleAliases,s)&&(s=c.styleAliases[s]),i[a]=s;return i}(this.schema,e.styles||null),this.sortKeys=e.sortKeys||!1,this.lineWidth=e.lineWidth||80,this.noRefs=e.noRefs||!1,this.noCompatMode=e.noCompatMode||!1,this.condenseFlow=e.condenseFlow||!1,this.implicitTypes=this.schema.compiledImplicit,this.explicitTypes=this.schema.compiledExplicit,this.tag=null,this.result="",this.duplicates=[],this.usedDuplicates=null}function tN(e,t){for(var i,n=qx.repeat(" ",t),r=0,o=-1,a="",s=e.length;r<s;)-1===(o=e.indexOf("\n",r))?(i=e.slice(r),r=s):(i=e.slice(r,o+1),r=o+1),i.length&&"\n"!==i&&(a+=n),a+=i;return a}function iN(e,t){return"\n"+qx.repeat(" ",e.indent*t)}function nN(e){return 32===e||9===e}function rN(e){return 32<=e&&e<=126||161<=e&&e<=55295&&8232!==e&&8233!==e||57344<=e&&e<=65533&&65279!==e||65536<=e&&e<=1114111}function oN(e,t){return rN(e)&&65279!==e&&44!==e&&91!==e&&93!==e&&123!==e&&125!==e&&58!==e&&(35!==e||t&&function(e){return rN(e)&&!nN(e)&&65279!==e&&13!==e&&10!==e}(t))}function aN(e){return/^\n* /.test(e)}function sN(e,t,i,n,r){var o,a,s,c,l=!1,u=!1,d=-1!==n,h=-1,p=rN(c=e.charCodeAt(0))&&65279!==c&&!nN(c)&&45!==c&&63!==c&&58!==c&&44!==c&&91!==c&&93!==c&&123!==c&&125!==c&&35!==c&&38!==c&&42!==c&&33!==c&&124!==c&&61!==c&&62!==c&&39!==c&&34!==c&&37!==c&&64!==c&&96!==c&&!nN(e.charCodeAt(e.length-1));if(t)for(o=0;o<e.length;o++){if(!rN(a=e.charCodeAt(o)))return 5;s=o>0?e.charCodeAt(o-1):null,p=p&&oN(a,s)}else{for(o=0;o<e.length;o++){if(10===(a=e.charCodeAt(o)))l=!0,d&&(u=u||o-h-1>n&&" "!==e[h+1],h=o);else if(!rN(a))return 5;s=o>0?e.charCodeAt(o-1):null,p=p&&oN(a,s)}u=u||d&&o-h-1>n&&" "!==e[h+1]}return l||u?i>9&&aN(e)?5:u?4:3:p&&!r(e)?1:2}function cN(e,t,i,n){e.dump=function(){if(0===t.length)return"''";if(!e.noCompatMode&&-1!==Zx.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(sN(t,a,e.indent,o,(function(t){return function(e,t){var i,n;for(i=0,n=e.implicitTypes.length;i<n;i+=1)if(e.implicitTypes[i].resolve(t))return!0;return!1}(e,t)}))){case 1:return t;case 2:return"'"+t.replace(/'/g,"''")+"'";case 3:return"|"+lN(t,e.indent)+uN(tN(t,r));case 4:return">"+lN(t,e.indent)+uN(tN(function(e,t){var i,n,r=/(\n+)([^\n]*)/g,o=(s=e.indexOf("\n"),s=-1!==s?s:e.length,r.lastIndex=s,dN(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")+dN(l,t),a=i}return o}(t,o),r));case 5:return'"'+function(e){for(var t,i,n,r="",o=0;o<e.length;o++)(t=e.charCodeAt(o))>=55296&&t<=56319&&(i=e.charCodeAt(o+1))>=56320&&i<=57343?(r+=Qx(1024*(t-55296)+i-56320+65536),o++):r+=!(n=Yx[t])&&rN(t)?e[o]:n||Qx(t);return r}(t)+'"';default:throw new Vx("impossible error: invalid scalar style")}}()}function lN(e,t){var i=aN(e)?String(t):"",n="\n"===e[e.length-1];return i+(n&&("\n"===e[e.length-2]||"\n"===e)?"+":n?"":"-")+"\n"}function uN(e){return"\n"===e[e.length-1]?e.slice(0,-1):e}function dN(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 hN(e,t,i){var n,r,o,a,s,c;for(o=0,a=(r=i?e.explicitTypes:e.implicitTypes).length;o<a;o+=1)if(((s=r[o]).instanceOf||s.predicate)&&(!s.instanceOf||"object"==typeof t&&t instanceof s.instanceOf)&&(!s.predicate||s.predicate(t))){if(e.tag=i?s.tag:"?",s.represent){if(c=e.styleMap[s.tag]||s.defaultStyle,"[object Function]"===Xx.call(s.represent))n=s.represent(t,c);else{if(!Jx.call(s.represent,c))throw new Vx("!<"+s.tag+'> tag resolver accepts not "'+c+'" style');n=s.represent[c](t,c)}e.dump=n}return!0}return!1}function pN(e,t,i,n,r,o){e.tag=null,e.dump=i,hN(e,i,!1)||hN(e,i,!0);var a=Xx.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 Vx("sortKeys must be a boolean or a function");for(r=0,o=h.length;r<o;r+=1)l="",n&&0===r||(l+=iN(e,t)),s=i[a=h[r]],pN(e,t+1,a,!0,!0,!0)&&((c=null!==e.tag&&"?"!==e.tag||e.dump&&e.dump.length>1024)&&(e.dump&&10===e.dump.charCodeAt(0)?l+="?":l+="? "),l+=e.dump,c&&(l+=iN(e,t)),pN(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;n<r;n+=1)s="",0!==n&&(s+=", "),e.condenseFlow&&(s+='"'),a=i[o=u[n]],pN(e,t,o,!1,!1)&&(e.dump.length>1024&&(s+="? "),s+=e.dump+(e.condenseFlow?'"':"")+":"+(e.condenseFlow?"":" "),pN(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<o;r+=1)pN(e,t+1,i[r],!0,!0)&&(n&&0===r||(a+=iN(e,t)),e.dump&&10===e.dump.charCodeAt(0)?a+="-":a+="- ",a+=e.dump);e.tag=s,e.dump=a||"[]"}(e,u,e.dump,r),c&&(e.dump="&ref_"+s+e.dump)):(!function(e,t,i){var n,r,o="",a=e.tag;for(n=0,r=i.length;n<r;n+=1)pN(e,t,i[n],!1,!1)&&(0!==n&&(o+=","+(e.condenseFlow?"":" ")),o+=e.dump);e.tag=a,e.dump="["+o+"]"}(e,u,e.dump),c&&(e.dump="&ref_"+s+" "+e.dump))}else{if("[object String]"!==a){if(e.skipInvalid)return!1;throw new Vx("unacceptable kind of an object to dump "+a)}"?"!==e.tag&&cN(e,e.dump,t,o)}null!==e.tag&&"?"!==e.tag&&(e.dump="!<"+e.tag+"> "+e.dump)}return!0}function mN(e,t){var i,n,r=[],o=[];for(fN(e,r,o),i=0,n=o.length;i<n;i+=1)t.duplicates.push(r[o[i]]);t.usedDuplicates=new Array(n)}function fN(e,t,i){var n,r,o;if(null!==e&&"object"==typeof e)if(-1!==(r=t.indexOf(e)))-1===i.indexOf(r)&&i.push(r);else if(t.push(e),Array.isArray(e))for(r=0,o=e.length;r<o;r+=1)fN(e[r],t,i);else for(r=0,o=(n=Object.keys(e)).length;r<o;r+=1)fN(e[n[r]],t,i)}function gN(e,t){var i=new eN(t=t||{});return i.noRefs||mN(e,i),pN(i,0,e,!0,!0)?i.dump+"\n":""}Hx.dump=gN,Hx.safeDump=function(e,t){return gN(e,qx.extend({schema:Kx},t))};var _N=Qy,bN=Hx;function vN(e){return function(){throw new Error("Function "+e+" is deprecated and cannot be used.")}}Zy.Type=uw,Zy.Schema=gw,Zy.FAILSAFE_SCHEMA=_w,Zy.JSON_SCHEMA=Sw,Zy.CORE_SCHEMA=Ew,Zy.DEFAULT_SAFE_SCHEMA=Kw,Zy.DEFAULT_FULL_SCHEMA=tx,Zy.load=_N.load,Zy.loadAll=_N.loadAll,Zy.safeLoad=_N.safeLoad,Zy.safeLoadAll=_N.safeLoadAll,Zy.dump=bN.dump,Zy.safeDump=bN.safeDump,Zy.YAMLException=nw,Zy.MINIMAL_SCHEMA=_w,Zy.SAFE_SCHEMA=Kw,Zy.DEFAULT_SCHEMA=tx,Zy.scan=vN("scan"),Zy.parse=vN("parse"),Zy.compose=vN("compose"),Zy.addConstructor=vN("addConstructor");var yN=Zy;function wN(e,t){for(var i in t)e[i]=t[i];return e}function xN(e,t){for(var i in e)if("__source"!==i&&!(i in t))return!0;for(var n in t)if("__source"!==n&&e[n]!==t[n])return!0;return!1}function NN(e){this.props=e}function kN(e,t){function i(e){var i=this.props.ref,n=i==e.ref;return!n&&i&&(i.call?i(null):i.current=null),t?!t(this.props,e)||!n:xN(this.props,e)}function n(t){return this.shouldComponentUpdate=i,w(e,t)}return n.displayName="Memo("+(e.displayName||e.name)+")",n.prototype.isReactComponent=!0,n.__f=!0,n}(NN.prototype=new k).isPureReactComponent=!0,NN.prototype.shouldComponentUpdate=function(e,t){return xN(this.props,e)||xN(this.state,t)};var AN=d.__b;d.__b=function(e){e.type&&e.type.__f&&e.ref&&(e.props.ref=e.ref,e.ref=null),AN&&AN(e)};var CN="undefined"!=typeof Symbol&&Symbol.for&&Symbol.for("react.forward_ref")||3911;var ON=function(e,t){return null==e?null:D(D(e).map(t))},SN={map:ON,forEach:ON,count:function(e){return e?D(e).length:0},only:function(e){var t=D(e);if(1!==t.length)throw"Children.only";return t[0]},toArray:D},EN=d.__e;d.__e=function(e,t,i){if(e.then)for(var n,r=t;r=r.__;)if((n=r.__c)&&n.__c)return null==t.__e&&(t.__e=i.__e,t.__k=i.__k),n.__c(e,t);EN(e,t,i)};var FN=d.unmount;function DN(){this.__u=0,this.t=null,this.__b=null}function BN(e){var t=e.__.__c;return t&&t.__e&&t.__e(e)}function LN(){this.u=null,this.o=null}d.unmount=function(e){var t=e.__c;t&&t.__R&&t.__R(),t&&!0===e.__h&&(e.type=null),FN&&FN(e)},(DN.prototype=new k).__c=function(e,t){var i=t.__c,n=this;null==n.t&&(n.t=[]),n.t.push(i);var r=BN(n.__v),o=!1,a=function(){o||(o=!0,i.__R=null,r?r(s):s())};i.__R=a;var s=function(){if(!--n.__u){if(n.state.__e){var e=n.state.__e;n.__v.__k[0]=function e(t,i,n){return t&&(t.__v=null,t.__k=t.__k&&t.__k.map((function(t){return e(t,i,n)})),t.__c&&t.__c.__P===i&&(t.__e&&n.insertBefore(t.__e,t.__d),t.__c.__e=!0,t.__c.__P=n)),t}(e,e.__c.__P,e.__c.__O)}var t;for(n.setState({__e:n.__b=null});t=n.t.pop();)t.forceUpdate()}},c=!0===t.__h;n.__u++||c||n.setState({__e:n.__b=n.__v.__k[0]}),e.then(a,a)},DN.prototype.componentWillUnmount=function(){this.t=[]},DN.prototype.render=function(e,t){if(this.__b){if(this.__v.__k){var i=document.createElement("div"),n=this.__v.__k[0].__c;this.__v.__k[0]=function e(t,i,n){return t&&(t.__c&&t.__c.__H&&(t.__c.__H.__.forEach((function(e){"function"==typeof e.__c&&e.__c()})),t.__c.__H=null),null!=(t=wN({},t)).__c&&(t.__c.__P===n&&(t.__c.__P=i),t.__c=null),t.__k=t.__k&&t.__k.map((function(t){return e(t,i,n)}))),t}(this.__b,i,n.__O=n.__P)}this.__b=null}var r=t.__e&&w(N,null,e.fallback);return r&&(r.__h=null),[w(N,null,t.__e?null:e.children),r]};var MN=function(e,t,i){if(++i[1]===i[0]&&e.o.delete(t),e.props.revealOrder&&("t"!==e.props.revealOrder[0]||!e.o.size))for(i=e.u;i;){for(;i.length>3;)i.pop()();if(i[1]<i[0])break;e.u=i=i[2]}};function TN(e){return this.getChildContext=function(){return e.context},e.children}function RN(e){var t=this,i=e.i;t.componentWillUnmount=function(){U(null,t.l),t.l=null,t.i=null},t.i&&t.i!==i&&t.componentWillUnmount(),e.__v?(t.l||(t.i=i,t.l={nodeType:1,parentNode:i,childNodes:[],appendChild:function(e){this.childNodes.push(e),t.i.appendChild(e)},insertBefore:function(e,i){this.childNodes.push(e),t.i.appendChild(e)},removeChild:function(e){this.childNodes.splice(this.childNodes.indexOf(e)>>>1,1),t.i.removeChild(e)}}),U(w(TN,{context:t.context},e.__v),t.l)):t.l&&t.componentWillUnmount()}(LN.prototype=new k).__e=function(e){var t=this,i=BN(t.__v),n=t.o.get(e);return n[0]++,function(r){var o=function(){t.props.revealOrder?(n.push(r),MN(t,e,n)):r()};i?i(o):o()}},LN.prototype.render=function(e){this.u=null,this.o=new Map;var t=D(e.children);e.revealOrder&&"b"===e.revealOrder[0]&&t.reverse();for(var i=t.length;i--;)this.o.set(t[i],this.u=[1,0,this.u]);return e.children},LN.prototype.componentDidUpdate=LN.prototype.componentDidMount=function(){var e=this;this.o.forEach((function(t,i){MN(e,i,t)}))};var $N="undefined"!=typeof Symbol&&Symbol.for&&Symbol.for("react.element")||60103,jN=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|fill|flood|font|glyph(?!R)|horiz|marker(?!H|W|U)|overline|paint|stop|strikethrough|stroke|text(?!L)|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,IN=function(e){return("undefined"!=typeof Symbol&&"symbol"==typeof Symbol()?/fil|che|rad/i:/fil|che|ra/i).test(e)};k.prototype.isReactComponent={},["componentWillMount","componentWillReceiveProps","componentWillUpdate"].forEach((function(e){Object.defineProperty(k.prototype,e,{configurable:!0,get:function(){return this["UNSAFE_"+e]},set:function(t){Object.defineProperty(this,e,{configurable:!0,writable:!0,value:t})}})}));var PN=d.event;function zN(){}function UN(){return this.cancelBubble}function WN(){return this.defaultPrevented}d.event=function(e){return PN&&(e=PN(e)),e.persist=zN,e.isPropagationStopped=UN,e.isDefaultPrevented=WN,e.nativeEvent=e};var HN,qN={configurable:!0,get:function(){return this.class}},VN=d.vnode;d.vnode=function(e){var t=e.type,i=e.props,n=i;if("string"==typeof t){for(var r in n={},i){var o=i[r];"value"===r&&"defaultValue"in i&&null==o||("defaultValue"===r&&"value"in i&&null==i.value?r="value":"download"===r&&!0===o?o="":/ondoubleclick/i.test(r)?r="ondblclick":/^onchange(textarea|input)/i.test(r+t)&&!IN(i.type)?r="oninput":/^on(Ani|Tra|Tou|BeforeInp)/.test(r)?r=r.toLowerCase():jN.test(r)?r=r.replace(/[A-Z0-9]/,"-$&").toLowerCase():null===o&&(o=void 0),n[r]=o)}"select"==t&&n.multiple&&Array.isArray(n.value)&&(n.value=D(i.children).forEach((function(e){e.props.selected=-1!=n.value.indexOf(e.props.value)}))),"select"==t&&null!=n.defaultValue&&(n.value=D(i.children).forEach((function(e){e.props.selected=n.multiple?-1!=n.defaultValue.indexOf(e.props.value):n.defaultValue==e.props.value}))),e.props=n}t&&i.class!=i.className&&(qN.enumerable="className"in i,null!=i.className&&(n.class=i.className),Object.defineProperty(n,"className",qN)),e.$$typeof=$N,VN&&VN(e)};var GN=d.__r;d.__r=function(e){GN&&GN(e),HN=e.__c};var KN={ReactCurrentDispatcher:{current:{readContext:function(e){return HN.__n[e.__c].props.value}}}};function XN(e){return!!e&&e.$$typeof===$N}"object"==typeof performance&&"function"==typeof performance.now&&performance.now.bind(performance);var JN={useState:ke,useReducer:Ae,useEffect:Ce,useLayoutEffect:Oe,useRef:Se,useImperativeHandle:function(e,t,i){ge=6,Oe((function(){"function"==typeof e?e(t()):e&&(e.current=t())}),null==i?i:i.concat(e))},useMemo:Ee,useCallback:Fe,useContext:De,useDebugValue:function(e,t){d.useDebugValue&&d.useDebugValue(t?t(e):e)},version:"16.8.0",Children:SN,render:function(e,t,i){return null==t.__k&&(t.textContent=""),U(e,t),"function"==typeof i&&i(),e?e.__c:null},hydrate:function(e,t,i){return W(e,t),"function"==typeof i&&i(),e?e.__c:null},unmountComponentAtNode:function(e){return!!e.__k&&(U(null,e),!0)},createPortal:function(e,t){return w(RN,{__v:e,i:t})},createElement:w,createContext:q,createFactory:function(e){return w.bind(null,e)},cloneElement:function(e){return XN(e)?H.apply(null,arguments):e},createRef:function(){return{current:null}},Fragment:N,isValidElement:XN,findDOMNode:function(e){return e&&(e.base||1===e.nodeType&&e)||null},Component:k,PureComponent:NN,memo:kN,forwardRef:function(e){function t(t,i){var n=wN({},t);return delete n.ref,e(n,(i=t.ref||i)&&("object"!=typeof i||"current"in i)?i:null)}return t.$$typeof=CN,t.render=t,t.prototype.isReactComponent=t.__f=!0,t.displayName="ForwardRef("+(e.displayName||e.name)+")",t},unstable_batchedUpdates:function(e,t){return e(t)},StrictMode:N,Suspense:DN,SuspenseList:LN,lazy:function(e){var t,i,n;function r(r){if(t||(t=e()).then((function(e){i=e.default||e}),(function(e){n=e})),n)throw n;if(!i)throw t;return w(i,r)}return r.displayName="Lazy",r.__f=!0,r},__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:KN},YN=Object.defineProperty,ZN=Object.defineProperties,QN=Object.getOwnPropertyDescriptors,ek=Object.getOwnPropertySymbols,tk=Object.prototype.hasOwnProperty,ik=Object.prototype.propertyIsEnumerable,nk=(e,t,i)=>t in e?YN(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,rk=(e,t)=>{for(var i in t||(t={}))tk.call(t,i)&&nk(e,i,t[i]);if(ek)for(var i of ek(t))ik.call(t,i)&&nk(e,i,t[i]);return e};const ok="Please consider reporting this error at https://github.com/laymonage/giscus/issues/new.";function ak(e){return`[giscus] An error occurred. Error message: "${e}".`}function sk(e){const t=document.querySelector(`meta[property='og:${e}'],meta[name='${e}']`);return t?t.content:""}function ck(){const e=document.getElementById("giscus-css")||document.createElement("style");e.id="giscus-css",e.textContent="\n .giscus, .giscus-frame {\n width: 100%;\n }\n .giscus-frame {\n border: none;\n color-scheme: normal;\n }\n ",document.head.prepend(e)}function lk(e){const[t,i]=ke(""),n=function({repo:e,repoId:t,category:i="",categoryId:n="",mapping:r,term:o="",theme:a="light",reactionsEnabled:s="1",emitMetadata:c="0",inputPosition:l="bottom",lang:u="en",session:d,origin:h}){const p=new URL(location.href);p.searchParams.delete("giscus");const m=p.toString(),f={origin:h=h||m,session:d,theme:a,reactionsEnabled:s,emitMetadata:c,inputPosition:l,repo:e,repoId:t,category:i,categoryId:n,description:sk("description")};switch(r){case"url":f.term=m;break;case"title":f.term=document.title;break;case"og:title":f.term=sk("title");break;case"specific":f.term=o;break;case"number":f.number=o;break;case"pathname":default:f.term=location.pathname.length<2?"index":location.pathname.substring(1).replace(/\.\w+$/,"")}return`https://giscus.app/${u}/widget?${new URLSearchParams(f)}`}((r=rk({},e),ZN(r,QN({session:t}))));var r;const o=Se(null);return Ce((()=>{const e=location.href,t=new URL(e),n=localStorage.getItem("giscus-session"),r=t.searchParams.get("giscus")||"";if(r)return localStorage.setItem("giscus-session",JSON.stringify(r)),i(r),t.searchParams.delete("giscus"),void history.replaceState(void 0,document.title,t.toString());if(n)try{i(JSON.parse(n||"")||"")}catch(o){i(""),localStorage.removeItem("giscus-session"),console.warn(`${ak(null==o?void 0:o.message)} Session has been cleared.`)}}),[]),Ce(ck,[]),Ce((()=>{const e=function(e,t=null){return function(i){if("https://giscus.app"!==i.origin)return;const{data:n}=i;if("object"!=typeof n||!n.giscus)return;if(t&&n.giscus.resizeHeight&&(t.style.height=`${n.giscus.resizeHeight}px`),!n.giscus.error)return;const r=n.giscus.error;if(r.includes("Bad credentials")||r.includes("Invalid state value")){if(null!==localStorage.getItem("giscus-session"))return localStorage.removeItem("giscus-session"),e(),void console.warn(`${ak(r)} Session has been cleared.`);console.error(`${ak(r)} No session is stored initially. ${ok}`)}r.includes("Discussion not found")?console.warn(`[giscus] ${r}. A new discussion will be created if a comment/reaction is submitted.`):console.error(`${ak(r)} ${ok}`)}}((()=>i("")),o.current);return window.addEventListener("message",e),()=>window.removeEventListener("message",e)}),[]),JN.createElement("div",{className:"giscus"},JN.createElement("iframe",{className:"giscus-frame",title:"Comments",scrolling:"no",src:n,ref:o}))}function uk(e){const[t,i]=ke(!1);return Ce((()=>i(!0)),[]),t?JN.createElement(lk,rk({},e)):null}var dk={}; + */const{isArray:py,isObject:my,isFunction:fy,isNumber:gy,isString:_y}=gb,by=hy,{PREFIX_BEFORE_ALL:vy,PREFIX_BEFORE:yy,PREFIX_AFTER_PROP:wy,PREFIX_AFTER_COLON:xy,PREFIX_AFTER_VALUE:Ny,PREFIX_AFTER:ky,PREFIX_AFTER_ALL:Ay,BRACKET_OPEN:Cy,BRACKET_CLOSE:Oy,CURLY_BRACKET_OPEN:Sy,CURLY_BRACKET_CLOSE:Ey,COLON:Fy,COMMA:Dy,EMPTY:By,UNDEFINED:Ly}=ev,My=/[\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,Ty=e=>`${yy}:${e}`,Ry=e=>`${Ny}:${e}`,$y=e=>`${ky}:${e}`,jy={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},Iy=e=>`"${(e=>(My.lastIndex=0,My.test(e)?e.replace(My,(e=>{const t=jy[e];return"string"==typeof t?t:e})):e))(e)}"`,Py=(e,t,i,n)=>{const r=e[Symbol.for(t)];if(!r||!r.length)return By;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))),By);return n||o?a+"\n"+i:a};let zy=null,Uy=By;const Wy=(e,t,i)=>e?t?e+t.trim()+"\n"+i:e.trimRight()+"\n"+i:t?t.trimRight()+"\n"+i:By,Hy=(e,t,i)=>{const n=Py(t,yy,i+Uy,!0);return Wy(n,e,i)},qy=(e,t)=>{if(!e)return"null";const i=t+Uy;let n=By,r=By,o=!0;return(py(zy)?zy:Object.keys(e)).forEach((t=>{const a=Vy(t,e,i);if(a===Ly)return;o||(n+=Dy),o=!1;const s=Wy(r,Py(e,Ty(t),i),i);n+=s||"\n"+i,n+=Iy(t)+Py(e,`${wy}:${t}`,i)+Fy+Py(e,(e=>`${xy}:${e}`)(t),i)+" "+a+Py(e,Ry(t),i),r=Py(e,$y(t),i)})),n+=Wy(r,Py(e,ky,i),i),Sy+Hy(n,e,t)+Ey};function Vy(e,t,i){let n=t[e];switch(my(n)&&fy(n.toJSON)&&(n=n.toJSON(e)),fy(zy)&&(n=zy.call(t,e,n)),typeof n){case"string":return Iy(n);case"number":return Number.isFinite(n)?String(n):"null";case"boolean":case"null":return String(n);case"object":return py(n)?((e,t)=>{const i=t+Uy,{length:n}=e;let r=By,o=By;for(let a=0;a<n;a++)0!==a&&(r+=Dy),r+=Wy(o,Py(e,Ty(a),i),i)||"\n"+i,r+=Vy(a,e,i)||"null",r+=Py(e,Ry(a),i),o=Py(e,$y(a),i);return r+=Wy(o,Py(e,ky,i),i),Cy+Hy(r,e,t)+Oy})(n,i):qy(n,i)}}const{toString:Gy}=Object.prototype,Ky=["[object Number]","[object String]","[object Boolean]"];const{parse:Xy,tokenize:Jy}=uy,Yy=(e,t,i)=>{const n=(e=>_y(e)?e:gy(e)?by(" ",e):By)(i);if(!n)return JSON.stringify(e,t);fy(t)||py(t)||(t=null),zy=t,Uy=n;const r=(e=>{if("object"!=typeof e)return!1;const t=Gy.call(e);return Ky.includes(t)})(e)?JSON.stringify(e):Vy("",{"":e},By);return zy=null,Uy=By,my(e)?Py(e,vy,By).trimLeft()+r+Py(e,Ay,By).trimRight():r},{CommentArray:Zy}=hv,{assign:Qy}=ev;var ew={parse:Xy,stringify:Yy,tokenize:Jy,CommentArray:Zy,assign:Qy},tw={},iw={},nw={};function rw(e){return null==e}function ow(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||""}nw.isNothing=rw,nw.isObject=function(e){return"object"==typeof e&&null!==e},nw.toArray=function(e){return Array.isArray(e)?e:rw(e)?[]:[e]},nw.repeat=function(e,t){var i,n="";for(i=0;i<t;i+=1)n+=e;return n},nw.isNegativeZero=function(e){return 0===e&&Number.NEGATIVE_INFINITY===1/e},nw.extend=function(e,t){var i,n,r,o;if(t)for(i=0,n=(o=Object.keys(t)).length;i<n;i+=1)e[r=o[i]]=t[r];return e},ow.prototype=Object.create(Error.prototype),ow.prototype.constructor=ow,ow.prototype.toString=function(e){var t=this.name+": ";return t+=this.reason||"(unknown reason)",!e&&this.mark&&(t+=" "+this.mark.toString()),t};var aw=ow,sw=nw;function cw(e,t,i,n,r){this.name=e,this.buffer=t,this.position=i,this.line=n,this.column=r}cw.prototype.getSnippet=function(e,t){var i,n,r,o,a;if(!this.buffer)return null;for(e=e||4,t=t||75,i="",n=this.position;n>0&&-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;o<this.buffer.length&&-1==="\0\r\n…\u2028\u2029".indexOf(this.buffer.charAt(o));)if((o+=1)-this.position>t/2-1){r=" ... ",o-=5;break}return a=this.buffer.slice(n,o),sw.repeat(" ",e)+i+a+r+"\n"+sw.repeat(" ",e+this.position-n+i.length)+"^"},cw.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 lw=cw,uw=aw,dw=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],hw=["scalar","sequence","mapping"];var pw=function(e,t){var i,n;if(t=t||{},Object.keys(t).forEach((function(t){if(-1===dw.indexOf(t))throw new uw('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===hw.indexOf(this.kind))throw new uw('Unknown kind "'+this.kind+'" is specified for "'+e+'" YAML type.')},mw=nw,fw=aw,gw=pw;function _w(e,t,i){var n=[];return e.include.forEach((function(e){i=_w(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 bw(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 fw("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.")})),this.compiledImplicit=_w(this,"implicit",[]),this.compiledExplicit=_w(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<t;e+=1)arguments[e].forEach(n);return i}(this.compiledImplicit,this.compiledExplicit)}bw.DEFAULT=null,bw.create=function(){var e,t;switch(arguments.length){case 1:e=bw.DEFAULT,t=arguments[0];break;case 2:e=arguments[0],t=arguments[1];break;default:throw new fw("Wrong number of arguments for Schema.create function")}if(e=mw.toArray(e),t=mw.toArray(t),!e.every((function(e){return e instanceof bw})))throw new fw("Specified list of super schemas (or a single Schema object) contains a non-Schema object.");if(!t.every((function(e){return e instanceof gw})))throw new fw("Specified list of YAML types (or a single Type object) contains a non-Type object.");return new bw({include:e,explicit:t})};var vw=bw,yw=new vw({explicit:[new pw("tag:yaml.org,2002:str",{kind:"scalar",construct:function(e){return null!==e?e:""}}),new pw("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(e){return null!==e?e:[]}}),new pw("tag:yaml.org,2002:map",{kind:"mapping",construct:function(e){return null!==e?e:{}}})]});var ww=new pw("tag:yaml.org,2002:null",{kind:"scalar",resolve:function(e){if(null===e)return!0;var t=e.length;return 1===t&&"~"===e||4===t&&("null"===e||"Null"===e||"NULL"===e)},construct:function(){return null},predicate:function(e){return null===e},represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"}},defaultStyle:"lowercase"});var xw=new pw("tag:yaml.org,2002:bool",{kind:"scalar",resolve:function(e){if(null===e)return!1;var t=e.length;return 4===t&&("true"===e||"True"===e||"TRUE"===e)||5===t&&("false"===e||"False"===e||"FALSE"===e)},construct:function(e){return"true"===e||"True"===e||"TRUE"===e},predicate:function(e){return"[object Boolean]"===Object.prototype.toString.call(e)},represent:{lowercase:function(e){return e?"true":"false"},uppercase:function(e){return e?"TRUE":"FALSE"},camelcase:function(e){return e?"True":"False"}},defaultStyle:"lowercase"}),Nw=nw;function kw(e){return 48<=e&&e<=55}function Aw(e){return 48<=e&&e<=57}var Cw=new pw("tag:yaml.org,2002:int",{kind:"scalar",resolve:function(e){if(null===e)return!1;var t,i,n=e.length,r=0,o=!1;if(!n)return!1;if("-"!==(t=e[r])&&"+"!==t||(t=e[++r]),"0"===t){if(r+1===n)return!0;if("b"===(t=e[++r])){for(r++;r<n;r++)if("_"!==(t=e[r])){if("0"!==t&&"1"!==t)return!1;o=!0}return o&&"_"!==t}if("x"===t){for(r++;r<n;r++)if("_"!==(t=e[r])){if(!(48<=(i=e.charCodeAt(r))&&i<=57||65<=i&&i<=70||97<=i&&i<=102))return!1;o=!0}return o&&"_"!==t}for(;r<n;r++)if("_"!==(t=e[r])){if(!kw(e.charCodeAt(r)))return!1;o=!0}return o&&"_"!==t}if("_"===t)return!1;for(;r<n;r++)if("_"!==(t=e[r])){if(":"===t)break;if(!Aw(e.charCodeAt(r)))return!1;o=!0}return!(!o||"_"===t)&&(":"!==t||/^(:[0-5]?[0-9])+$/.test(e.slice(r)))},construct:function(e){var t,i,n=e,r=1,o=[];return-1!==n.indexOf("_")&&(n=n.replace(/_/g,"")),"-"!==(t=n[0])&&"+"!==t||("-"===t&&(r=-1),t=(n=n.slice(1))[0]),"0"===n?0:"0"===t?"b"===n[1]?r*parseInt(n.slice(2),2):"x"===n[1]?r*parseInt(n,16):r*parseInt(n,8):-1!==n.indexOf(":")?(n.split(":").forEach((function(e){o.unshift(parseInt(e,10))})),n=0,i=1,o.forEach((function(e){n+=e*i,i*=60})),r*n):r*parseInt(n,10)},predicate:function(e){return"[object Number]"===Object.prototype.toString.call(e)&&e%1==0&&!Nw.isNegativeZero(e)},represent:{binary:function(e){return 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"]}}),Ow=nw,Sw=pw,Ew=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 Fw=/^[-+]?[0-9]+e/;var Dw=new vw({include:[yw],implicit:[ww,xw,Cw,new Sw("tag:yaml.org,2002:float",{kind:"scalar",resolve:function(e){return null!==e&&!(!Ew.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||Ow.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(Ow.isNegativeZero(e))return"-0.0";return i=e.toString(10),Fw.test(i)?i.replace("e",".e"):i},defaultStyle:"lowercase"})]}),Bw=new vw({include:[Dw]}),Lw=pw,Mw=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),Tw=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 Rw=new Lw("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:function(e){return null!==e&&(null!==Mw.exec(e)||null!==Tw.exec(e))},construct:function(e){var t,i,n,r,o,a,s,c,l=0,u=null;if(null===(t=Mw.exec(e))&&(t=Tw.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 $w,jw=new pw("tag:yaml.org,2002:merge",{kind:"scalar",resolve:function(e){return"<<"===e||null===e}});try{var Iw=require;$w=Iw("buffer").Buffer}catch(Qk){}var Pw="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r";var zw=new pw("tag:yaml.org,2002:binary",{kind:"scalar",resolve:function(e){if(null===e)return!1;var t,i,n=0,r=e.length,o=Pw;for(i=0;i<r;i++)if(!((t=o.indexOf(e.charAt(i)))>64)){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=Pw,a=0,s=[];for(t=0;t<r;t++)t%4==0&&t&&(s.push(a>>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),$w?$w.from?$w.from(s):new $w(s):s},predicate:function(e){return $w&&$w.isBuffer(e)},represent:function(e){var t,i,n="",r=0,o=e.length,a=Pw;for(t=0;t<o;t++)t%3==0&&t&&(n+=a[r>>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}}),Uw=pw,Ww=Object.prototype.hasOwnProperty,Hw=Object.prototype.toString;var qw=new Uw("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;t<i;t+=1){if(n=s[t],o=!1,"[object Object]"!==Hw.call(n))return!1;for(r in n)if(Ww.call(n,r)){if(o)return!1;o=!0}if(!o)return!1;if(-1!==a.indexOf(r))return!1;a.push(r)}return!0},construct:function(e){return null!==e?e:[]}}),Vw=pw,Gw=Object.prototype.toString;var Kw=new Vw("tag:yaml.org,2002:pairs",{kind:"sequence",resolve:function(e){if(null===e)return!0;var t,i,n,r,o,a=e;for(o=new Array(a.length),t=0,i=a.length;t<i;t+=1){if(n=a[t],"[object Object]"!==Gw.call(n))return!1;if(1!==(r=Object.keys(n)).length)return!1;o[t]=[r[0],n[r[0]]]}return!0},construct:function(e){if(null===e)return[];var t,i,n,r,o,a=e;for(o=new Array(a.length),t=0,i=a.length;t<i;t+=1)n=a[t],r=Object.keys(n),o[t]=[r[0],n[r[0]]];return o}}),Xw=pw,Jw=Object.prototype.hasOwnProperty;var Yw=new vw({include:[Bw],implicit:[Rw,jw],explicit:[zw,qw,Kw,new Xw("tag:yaml.org,2002:set",{kind:"mapping",resolve:function(e){if(null===e)return!0;var t,i=e;for(t in i)if(Jw.call(i,t)&&null!==i[t])return!1;return!0},construct:function(e){return null!==e?e:{}}})]});var Zw=new pw("tag:yaml.org,2002:js/undefined",{kind:"scalar",resolve:function(){return!0},construct:function(){},predicate:function(e){return void 0===e},represent:function(){return""}});var Qw,ex=new pw("tag:yaml.org,2002:js/regexp",{kind:"scalar",resolve:function(e){if(null===e)return!1;if(0===e.length)return!1;var t=e,i=/\/([gim]*)$/.exec(e),n="";if("/"===t[0]){if(i&&(n=i[1]),n.length>3)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 tx=require;Qw=tx("esprima")}catch(eA){"undefined"!=typeof window&&(Qw=window.esprima)}var ix=new pw("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:function(e){if(null===e)return!1;try{var t="("+e+")",i=Qw.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=Qw.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()}}),nx=vw,rx=nx.DEFAULT=new nx({include:[Yw],explicit:[Zw,ex,ix]}),ox=nw,ax=aw,sx=lw,cx=Yw,lx=rx,ux=Object.prototype.hasOwnProperty,dx=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,hx=/[\x85\u2028\u2029]/,px=/[,\[\]\{\}]/,mx=/^(?:!|!!|![a-z\-]+!)$/i,fx=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function gx(e){return Object.prototype.toString.call(e)}function _x(e){return 10===e||13===e}function bx(e){return 9===e||32===e}function vx(e){return 9===e||32===e||10===e||13===e}function yx(e){return 44===e||91===e||93===e||123===e||125===e}function wx(e){var t;return 48<=e&&e<=57?e-48:97<=(t=32|e)&&t<=102?t-97+10:-1}function xx(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 Nx(e){return e<=65535?String.fromCharCode(e):String.fromCharCode(55296+(e-65536>>10),56320+(e-65536&1023))}for(var kx=new Array(256),Ax=new Array(256),Cx=0;Cx<256;Cx++)kx[Cx]=xx(Cx)?1:0,Ax[Cx]=xx(Cx);function Ox(e,t){this.input=e,this.filename=t.filename||null,this.schema=t.schema||lx,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 Sx(e,t){return new ax(t,new sx(e.filename,e.input,e.position,e.line,e.position-e.lineStart))}function Ex(e,t){throw Sx(e,t)}function Fx(e,t){e.onWarning&&e.onWarning.call(null,Sx(e,t))}var Dx={YAML:function(e,t,i){var n,r,o;null!==e.version&&Ex(e,"duplication of %YAML directive"),1!==i.length&&Ex(e,"YAML directive accepts exactly one argument"),null===(n=/^([0-9]+)\.([0-9]+)$/.exec(i[0]))&&Ex(e,"ill-formed argument of the YAML directive"),r=parseInt(n[1],10),o=parseInt(n[2],10),1!==r&&Ex(e,"unacceptable YAML version of the document"),e.version=i[0],e.checkLineBreaks=o<2,1!==o&&2!==o&&Fx(e,"unsupported YAML version of the document")},TAG:function(e,t,i){var n,r;2!==i.length&&Ex(e,"TAG directive accepts exactly two arguments"),n=i[0],r=i[1],mx.test(n)||Ex(e,"ill-formed tag handle (first argument) of the TAG directive"),ux.call(e.tagMap,n)&&Ex(e,'there is a previously declared suffix for "'+n+'" tag handle'),fx.test(r)||Ex(e,"ill-formed tag prefix (second argument) of the TAG directive"),e.tagMap[n]=r}};function Bx(e,t,i,n){var r,o,a,s;if(t<i){if(s=e.input.slice(t,i),n)for(r=0,o=s.length;r<o;r+=1)9===(a=s.charCodeAt(r))||32<=a&&a<=1114111||Ex(e,"expected valid JSON character");else dx.test(s)&&Ex(e,"the stream contains non-printable characters");e.result+=s}}function Lx(e,t,i,n){var r,o,a,s;for(ox.isObject(i)||Ex(e,"cannot merge mappings; the provided source object is unacceptable"),a=0,s=(r=Object.keys(i)).length;a<s;a+=1)o=r[a],ux.call(t,o)||(t[o]=i[o],n[o]=!0)}function Mx(e,t,i,n,r,o,a,s){var c,l;if(Array.isArray(r))for(c=0,l=(r=Array.prototype.slice.call(r)).length;c<l;c+=1)Array.isArray(r[c])&&Ex(e,"nested arrays are not supported inside keys"),"object"==typeof r&&"[object Object]"===gx(r[c])&&(r[c]="[object Object]");if("object"==typeof r&&"[object Object]"===gx(r)&&(r="[object Object]"),r=String(r),null===t&&(t={}),"tag:yaml.org,2002:merge"===n)if(Array.isArray(o))for(c=0,l=o.length;c<l;c+=1)Lx(e,t,o[c],i);else Lx(e,t,o,i);else e.json||ux.call(i,r)||!ux.call(t,r)||(e.line=a||e.line,e.position=s||e.position,Ex(e,"duplicated mapping key")),t[r]=o,delete i[r];return t}function Tx(e){var t;10===(t=e.input.charCodeAt(e.position))?e.position++:13===t?(e.position++,10===e.input.charCodeAt(e.position)&&e.position++):Ex(e,"a line break is expected"),e.line+=1,e.lineStart=e.position}function Rx(e,t,i){for(var n=0,r=e.input.charCodeAt(e.position);0!==r;){for(;bx(r);)r=e.input.charCodeAt(++e.position);if(t&&35===r)do{r=e.input.charCodeAt(++e.position)}while(10!==r&&13!==r&&0!==r);if(!_x(r))break;for(Tx(e),r=e.input.charCodeAt(e.position),n++,e.lineIndent=0;32===r;)e.lineIndent++,r=e.input.charCodeAt(++e.position)}return-1!==i&&0!==n&&e.lineIndent<i&&Fx(e,"deficient indentation"),n}function $x(e){var t,i=e.position;return!(45!==(t=e.input.charCodeAt(i))&&46!==t||t!==e.input.charCodeAt(i+1)||t!==e.input.charCodeAt(i+2)||(i+=3,0!==(t=e.input.charCodeAt(i))&&!vx(t)))}function jx(e,t){1===t?e.result+=" ":t>1&&(e.result+=ox.repeat("\n",t-1))}function Ix(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&&vx(e.input.charCodeAt(e.position+1));)if(s=!0,e.position++,Rx(e,!0,-1)&&e.lineIndent<=t)a.push(null),n=e.input.charCodeAt(e.position);else if(i=e.line,Ux(e,t,3,!1,!0),a.push(e.result),Rx(e,!0,-1),n=e.input.charCodeAt(e.position),(e.line===i||e.lineIndent>t)&&0!==n)Ex(e,"bad indentation of a sequence entry");else if(e.lineIndent<t)break;return!!s&&(e.tag=r,e.anchor=o,e.kind="sequence",e.result=a,!0)}function Px(e){var t,i,n,r,o=!1,a=!1;if(33!==(r=e.input.charCodeAt(e.position)))return!1;if(null!==e.tag&&Ex(e,"duplication of a tag property"),60===(r=e.input.charCodeAt(++e.position))?(o=!0,r=e.input.charCodeAt(++e.position)):33===r?(a=!0,i="!!",r=e.input.charCodeAt(++e.position)):i="!",t=e.position,o){do{r=e.input.charCodeAt(++e.position)}while(0!==r&&62!==r);e.position<e.length?(n=e.input.slice(t,e.position),r=e.input.charCodeAt(++e.position)):Ex(e,"unexpected end of the stream within a verbatim tag")}else{for(;0!==r&&!vx(r);)33===r&&(a?Ex(e,"tag suffix cannot contain exclamation marks"):(i=e.input.slice(t-1,e.position+1),mx.test(i)||Ex(e,"named tag handle cannot contain such characters"),a=!0,t=e.position+1)),r=e.input.charCodeAt(++e.position);n=e.input.slice(t,e.position),px.test(n)&&Ex(e,"tag suffix cannot contain flow indicator characters")}return n&&!fx.test(n)&&Ex(e,"tag name cannot contain such characters: "+n),o?e.tag=n:ux.call(e.tagMap,i)?e.tag=e.tagMap[i]+n:"!"===i?e.tag="!"+n:"!!"===i?e.tag="tag:yaml.org,2002:"+n:Ex(e,'undeclared tag handle "'+i+'"'),!0}function zx(e){var t,i;if(38!==(i=e.input.charCodeAt(e.position)))return!1;for(null!==e.anchor&&Ex(e,"duplication of an anchor property"),i=e.input.charCodeAt(++e.position),t=e.position;0!==i&&!vx(i)&&!yx(i);)i=e.input.charCodeAt(++e.position);return e.position===t&&Ex(e,"name of an anchor node must contain at least one character"),e.anchor=e.input.slice(t,e.position),!0}function Ux(e,t,i,n,r){var o,a,s,c,l,u,d,h,p=1,m=!1,f=!1;if(null!==e.listener&&e.listener("open",e),e.tag=null,e.anchor=null,e.kind=null,e.result=null,o=a=s=4===i||3===i,n&&Rx(e,!0,-1)&&(m=!0,e.lineIndent>t?p=1:e.lineIndent===t?p=0:e.lineIndent<t&&(p=-1)),1===p)for(;Px(e)||zx(e);)Rx(e,!0,-1)?(m=!0,s=o,e.lineIndent>t?p=1:e.lineIndent===t?p=0:e.lineIndent<t&&(p=-1)):s=!1;if(s&&(s=m||r),1!==p&&4!==i||(d=1===i||2===i?t:t+1,h=e.position-e.lineStart,1===p?s&&(Ix(e,h)||function(e,t,i){var n,r,o,a,s,c=e.tag,l=e.anchor,u={},d={},h=null,p=null,m=null,f=!1,g=!1;for(null!==e.anchor&&(e.anchorMap[e.anchor]=u),s=e.input.charCodeAt(e.position);0!==s;){if(n=e.input.charCodeAt(e.position+1),o=e.line,a=e.position,63!==s&&58!==s||!vx(n)){if(!Ux(e,i,2,!1,!0))break;if(e.line===o){for(s=e.input.charCodeAt(e.position);bx(s);)s=e.input.charCodeAt(++e.position);if(58===s)vx(s=e.input.charCodeAt(++e.position))||Ex(e,"a whitespace character is expected after the key-value separator within a block mapping"),f&&(Mx(e,u,d,h,p,null),h=p=m=null),g=!0,f=!1,r=!1,h=e.tag,p=e.result;else{if(!g)return e.tag=c,e.anchor=l,!0;Ex(e,"can not read an implicit mapping pair; a colon is missed")}}else{if(!g)return e.tag=c,e.anchor=l,!0;Ex(e,"can not read a block mapping entry; a multiline key may not be an implicit key")}}else 63===s?(f&&(Mx(e,u,d,h,p,null),h=p=m=null),g=!0,f=!0,r=!0):f?(f=!1,r=!0):Ex(e,"incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line"),e.position+=1,s=n;if((e.line===o||e.lineIndent>t)&&(Ux(e,t,4,!0,r)&&(f?p=e.result:m=e.result),f||(Mx(e,u,d,h,p,m,o,a),h=p=m=null),Rx(e,!0,-1),s=e.input.charCodeAt(e.position)),e.lineIndent>t&&0!==s)Ex(e,"bad indentation of a mapping entry");else if(e.lineIndent<t)break}return f&&Mx(e,u,d,h,p,null),g&&(e.tag=c,e.anchor=l,e.kind="mapping",e.result=u),g}(e,h,d))||function(e,t){var i,n,r,o,a,s,c,l,u,d,h=!0,p=e.tag,m=e.anchor,f={};if(91===(d=e.input.charCodeAt(e.position)))r=93,s=!1,n=[];else{if(123!==d)return!1;r=125,s=!0,n={}}for(null!==e.anchor&&(e.anchorMap[e.anchor]=n),d=e.input.charCodeAt(++e.position);0!==d;){if(Rx(e,!0,t),(d=e.input.charCodeAt(e.position))===r)return e.position++,e.tag=p,e.anchor=m,e.kind=s?"mapping":"sequence",e.result=n,!0;h||Ex(e,"missed comma between flow collection entries"),u=null,o=a=!1,63===d&&vx(e.input.charCodeAt(e.position+1))&&(o=a=!0,e.position++,Rx(e,!0,t)),i=e.line,Ux(e,t,1,!1,!0),l=e.tag,c=e.result,Rx(e,!0,t),d=e.input.charCodeAt(e.position),!a&&e.line!==i||58!==d||(o=!0,d=e.input.charCodeAt(++e.position),Rx(e,!0,t),Ux(e,t,1,!1,!0),u=e.result),s?Mx(e,n,f,l,c,u):o?n.push(Mx(e,null,f,l,c,u)):n.push(c),Rx(e,!0,t),44===(d=e.input.charCodeAt(e.position))?(h=!0,d=e.input.charCodeAt(++e.position)):h=!1}Ex(e,"unexpected end of the stream within a flow collection")}(e,d)?f=!0:(a&&function(e,t){var i,n,r,o,a,s=1,c=!1,l=!1,u=t,d=0,h=!1;if(124===(o=e.input.charCodeAt(e.position)))n=!1;else{if(62!==o)return!1;n=!0}for(e.kind="scalar",e.result="";0!==o;)if(43===(o=e.input.charCodeAt(++e.position))||45===o)1===s?s=43===o?3:2:Ex(e,"repeat of a chomping mode identifier");else{if(!((r=48<=(a=o)&&a<=57?a-48:-1)>=0))break;0===r?Ex(e,"bad explicit indentation width of a block scalar; it cannot be less than one"):l?Ex(e,"repeat of an indentation width identifier"):(u=t+r-1,l=!0)}if(bx(o)){do{o=e.input.charCodeAt(++e.position)}while(bx(o));if(35===o)do{o=e.input.charCodeAt(++e.position)}while(!_x(o)&&0!==o)}for(;0!==o;){for(Tx(e),e.lineIndent=0,o=e.input.charCodeAt(e.position);(!l||e.lineIndent<u)&&32===o;)e.lineIndent++,o=e.input.charCodeAt(++e.position);if(!l&&e.lineIndent>u&&(u=e.lineIndent),_x(o))d++;else{if(e.lineIndent<u){3===s?e.result+=ox.repeat("\n",c?1+d:d):1===s&&c&&(e.result+="\n");break}for(n?bx(o)?(h=!0,e.result+=ox.repeat("\n",c?1+d:d)):h?(h=!1,e.result+=ox.repeat("\n",d+1)):0===d?c&&(e.result+=" "):e.result+=ox.repeat("\n",d):e.result+=ox.repeat("\n",c?1+d:d),c=!0,l=!0,d=0,i=e.position;!_x(o)&&0!==o;)o=e.input.charCodeAt(++e.position);Bx(e,i,e.position,!1)}}return!0}(e,d)||function(e,t){var i,n,r;if(39!==(i=e.input.charCodeAt(e.position)))return!1;for(e.kind="scalar",e.result="",e.position++,n=r=e.position;0!==(i=e.input.charCodeAt(e.position));)if(39===i){if(Bx(e,n,e.position,!0),39!==(i=e.input.charCodeAt(++e.position)))return!0;n=e.position,e.position++,r=e.position}else _x(i)?(Bx(e,n,r,!0),jx(e,Rx(e,!1,t)),n=r=e.position):e.position===e.lineStart&&$x(e)?Ex(e,"unexpected end of the document within a single quoted scalar"):(e.position++,r=e.position);Ex(e,"unexpected end of the stream within a single quoted scalar")}(e,d)||function(e,t){var i,n,r,o,a,s,c;if(34!==(s=e.input.charCodeAt(e.position)))return!1;for(e.kind="scalar",e.result="",e.position++,i=n=e.position;0!==(s=e.input.charCodeAt(e.position));){if(34===s)return Bx(e,i,e.position,!0),e.position++,!0;if(92===s){if(Bx(e,i,e.position,!0),_x(s=e.input.charCodeAt(++e.position)))Rx(e,!1,t);else if(s<256&&kx[s])e.result+=Ax[s],e.position++;else if((a=120===(c=s)?2:117===c?4:85===c?8:0)>0){for(r=a,o=0;r>0;r--)(a=wx(s=e.input.charCodeAt(++e.position)))>=0?o=(o<<4)+a:Ex(e,"expected hexadecimal character");e.result+=Nx(o),e.position++}else Ex(e,"unknown escape sequence");i=n=e.position}else _x(s)?(Bx(e,i,n,!0),jx(e,Rx(e,!1,t)),i=n=e.position):e.position===e.lineStart&&$x(e)?Ex(e,"unexpected end of the document within a double quoted scalar"):(e.position++,n=e.position)}Ex(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&&!vx(n)&&!yx(n);)n=e.input.charCodeAt(++e.position);return e.position===t&&Ex(e,"name of an alias node must contain at least one character"),i=e.input.slice(t,e.position),ux.call(e.anchorMap,i)||Ex(e,'unidentified alias "'+i+'"'),e.result=e.anchorMap[i],Rx(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(vx(u=e.input.charCodeAt(e.position))||yx(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)&&(vx(n=e.input.charCodeAt(e.position+1))||i&&yx(n)))return!1;for(e.kind="scalar",e.result="",r=o=e.position,a=!1;0!==u;){if(58===u){if(vx(n=e.input.charCodeAt(e.position+1))||i&&yx(n))break}else if(35===u){if(vx(e.input.charCodeAt(e.position-1)))break}else{if(e.position===e.lineStart&&$x(e)||i&&yx(u))break;if(_x(u)){if(s=e.line,c=e.lineStart,l=e.lineIndent,Rx(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&&(Bx(e,r,o,!1),jx(e,e.line-s),r=o=e.position,a=!1),bx(u)||(o=e.position+1),u=e.input.charCodeAt(++e.position)}return Bx(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||Ex(e,"alias node should not have any properties")),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):0===p&&(f=s&&Ix(e,h))),null!==e.tag&&"!"!==e.tag)if("?"===e.tag){for(null!==e.result&&"scalar"!==e.kind&&Ex(e,'unacceptable node kind for !<?> tag; it should be "scalar", not "'+e.kind+'"'),c=0,l=e.implicitTypes.length;c<l;c+=1)if((u=e.implicitTypes[c]).resolve(e.result)){e.result=u.construct(e.result),e.tag=u.tag,null!==e.anchor&&(e.anchorMap[e.anchor]=e.result);break}}else ux.call(e.typeMap[e.kind||"fallback"],e.tag)?(u=e.typeMap[e.kind||"fallback"][e.tag],null!==e.result&&u.kind!==e.kind&&Ex(e,"unacceptable node kind for !<"+e.tag+'> 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)):Ex(e,"cannot resolve a node with !<"+e.tag+"> explicit tag")):Ex(e,"unknown tag !<"+e.tag+">");return null!==e.listener&&e.listener("close",e),null!==e.tag||null!==e.anchor||f}function Wx(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))&&(Rx(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&&!vx(r);)r=e.input.charCodeAt(++e.position);for(n=[],(i=e.input.slice(t,e.position)).length<1&&Ex(e,"directive name must not be less than one character in length");0!==r;){for(;bx(r);)r=e.input.charCodeAt(++e.position);if(35===r){do{r=e.input.charCodeAt(++e.position)}while(0!==r&&!_x(r));break}if(_x(r))break;for(t=e.position;0!==r&&!vx(r);)r=e.input.charCodeAt(++e.position);n.push(e.input.slice(t,e.position))}0!==r&&Tx(e),ux.call(Dx,i)?Dx[i](e,i,n):Fx(e,'unknown document directive "'+i+'"')}Rx(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,Rx(e,!0,-1)):a&&Ex(e,"directives end mark is expected"),Ux(e,e.lineIndent-1,4,!1,!0),Rx(e,!0,-1),e.checkLineBreaks&&hx.test(e.input.slice(o,e.position))&&Fx(e,"non-ASCII line breaks are interpreted as content"),e.documents.push(e.result),e.position===e.lineStart&&$x(e)?46===e.input.charCodeAt(e.position)&&(e.position+=3,Rx(e,!0,-1)):e.position<e.length-1&&Ex(e,"end of the stream or a document separator is expected")}function Hx(e,t){t=t||{},0!==(e=String(e)).length&&(10!==e.charCodeAt(e.length-1)&&13!==e.charCodeAt(e.length-1)&&(e+="\n"),65279===e.charCodeAt(0)&&(e=e.slice(1)));var i=new Ox(e,t),n=e.indexOf("\0");for(-1!==n&&(i.position=n,Ex(i,"null byte is not allowed in input")),i.input+="\0";32===i.input.charCodeAt(i.position);)i.lineIndent+=1,i.position+=1;for(;i.position<i.length-1;)Wx(i);return i.documents}function qx(e,t,i){null!==t&&"object"==typeof t&&void 0===i&&(i=t,t=null);var n=Hx(e,i);if("function"!=typeof t)return n;for(var r=0,o=n.length;r<o;r+=1)t(n[r])}function Vx(e,t){var i=Hx(e,t);if(0!==i.length){if(1===i.length)return i[0];throw new ax("expected a single document in the stream, but found more")}}iw.loadAll=qx,iw.load=Vx,iw.safeLoadAll=function(e,t,i){return"object"==typeof t&&null!==t&&void 0===i&&(i=t,t=null),qx(e,t,ox.extend({schema:cx},i))},iw.safeLoad=function(e,t){return Vx(e,ox.extend({schema:cx},t))};var Gx={},Kx=nw,Xx=aw,Jx=rx,Yx=Yw,Zx=Object.prototype.toString,Qx=Object.prototype.hasOwnProperty,eN={0:"\\0",7:"\\a",8:"\\b",9:"\\t",10:"\\n",11:"\\v",12:"\\f",13:"\\r",27:"\\e",34:'\\"',92:"\\\\",133:"\\N",160:"\\_",8232:"\\L",8233:"\\P"},tN=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"];function iN(e){var t,i,n;if(t=e.toString(16).toUpperCase(),e<=255)i="x",n=2;else if(e<=65535)i="u",n=4;else{if(!(e<=4294967295))throw new Xx("code point within a string may not be greater than 0xFFFFFFFF");i="U",n=8}return"\\"+i+Kx.repeat("0",n-t.length)+t}function nN(e){this.schema=e.schema||Jx,this.indent=Math.max(1,e.indent||2),this.noArrayIndent=e.noArrayIndent||!1,this.skipInvalid=e.skipInvalid||!1,this.flowLevel=Kx.isNothing(e.flowLevel)?-1:e.flowLevel,this.styleMap=function(e,t){var i,n,r,o,a,s,c;if(null===t)return{};for(i={},r=0,o=(n=Object.keys(t)).length;r<o;r+=1)a=n[r],s=String(t[a]),"!!"===a.slice(0,2)&&(a="tag:yaml.org,2002:"+a.slice(2)),(c=e.compiledTypeMap.fallback[a])&&Qx.call(c.styleAliases,s)&&(s=c.styleAliases[s]),i[a]=s;return i}(this.schema,e.styles||null),this.sortKeys=e.sortKeys||!1,this.lineWidth=e.lineWidth||80,this.noRefs=e.noRefs||!1,this.noCompatMode=e.noCompatMode||!1,this.condenseFlow=e.condenseFlow||!1,this.implicitTypes=this.schema.compiledImplicit,this.explicitTypes=this.schema.compiledExplicit,this.tag=null,this.result="",this.duplicates=[],this.usedDuplicates=null}function rN(e,t){for(var i,n=Kx.repeat(" ",t),r=0,o=-1,a="",s=e.length;r<s;)-1===(o=e.indexOf("\n",r))?(i=e.slice(r),r=s):(i=e.slice(r,o+1),r=o+1),i.length&&"\n"!==i&&(a+=n),a+=i;return a}function oN(e,t){return"\n"+Kx.repeat(" ",e.indent*t)}function aN(e){return 32===e||9===e}function sN(e){return 32<=e&&e<=126||161<=e&&e<=55295&&8232!==e&&8233!==e||57344<=e&&e<=65533&&65279!==e||65536<=e&&e<=1114111}function cN(e,t){return sN(e)&&65279!==e&&44!==e&&91!==e&&93!==e&&123!==e&&125!==e&&58!==e&&(35!==e||t&&function(e){return sN(e)&&!aN(e)&&65279!==e&&13!==e&&10!==e}(t))}function lN(e){return/^\n* /.test(e)}function uN(e,t,i,n,r){var o,a,s,c,l=!1,u=!1,d=-1!==n,h=-1,p=sN(c=e.charCodeAt(0))&&65279!==c&&!aN(c)&&45!==c&&63!==c&&58!==c&&44!==c&&91!==c&&93!==c&&123!==c&&125!==c&&35!==c&&38!==c&&42!==c&&33!==c&&124!==c&&61!==c&&62!==c&&39!==c&&34!==c&&37!==c&&64!==c&&96!==c&&!aN(e.charCodeAt(e.length-1));if(t)for(o=0;o<e.length;o++){if(!sN(a=e.charCodeAt(o)))return 5;s=o>0?e.charCodeAt(o-1):null,p=p&&cN(a,s)}else{for(o=0;o<e.length;o++){if(10===(a=e.charCodeAt(o)))l=!0,d&&(u=u||o-h-1>n&&" "!==e[h+1],h=o);else if(!sN(a))return 5;s=o>0?e.charCodeAt(o-1):null,p=p&&cN(a,s)}u=u||d&&o-h-1>n&&" "!==e[h+1]}return l||u?i>9&&lN(e)?5:u?4:3:p&&!r(e)?1:2}function dN(e,t,i,n){e.dump=function(){if(0===t.length)return"''";if(!e.noCompatMode&&-1!==tN.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(uN(t,a,e.indent,o,(function(t){return function(e,t){var i,n;for(i=0,n=e.implicitTypes.length;i<n;i+=1)if(e.implicitTypes[i].resolve(t))return!0;return!1}(e,t)}))){case 1:return t;case 2:return"'"+t.replace(/'/g,"''")+"'";case 3:return"|"+hN(t,e.indent)+pN(rN(t,r));case 4:return">"+hN(t,e.indent)+pN(rN(function(e,t){var i,n,r=/(\n+)([^\n]*)/g,o=(s=e.indexOf("\n"),s=-1!==s?s:e.length,r.lastIndex=s,mN(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")+mN(l,t),a=i}return o}(t,o),r));case 5:return'"'+function(e){for(var t,i,n,r="",o=0;o<e.length;o++)(t=e.charCodeAt(o))>=55296&&t<=56319&&(i=e.charCodeAt(o+1))>=56320&&i<=57343?(r+=iN(1024*(t-55296)+i-56320+65536),o++):r+=!(n=eN[t])&&sN(t)?e[o]:n||iN(t);return r}(t)+'"';default:throw new Xx("impossible error: invalid scalar style")}}()}function hN(e,t){var i=lN(e)?String(t):"",n="\n"===e[e.length-1];return i+(n&&("\n"===e[e.length-2]||"\n"===e)?"+":n?"":"-")+"\n"}function pN(e){return"\n"===e[e.length-1]?e.slice(0,-1):e}function mN(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 fN(e,t,i){var n,r,o,a,s,c;for(o=0,a=(r=i?e.explicitTypes:e.implicitTypes).length;o<a;o+=1)if(((s=r[o]).instanceOf||s.predicate)&&(!s.instanceOf||"object"==typeof t&&t instanceof s.instanceOf)&&(!s.predicate||s.predicate(t))){if(e.tag=i?s.tag:"?",s.represent){if(c=e.styleMap[s.tag]||s.defaultStyle,"[object Function]"===Zx.call(s.represent))n=s.represent(t,c);else{if(!Qx.call(s.represent,c))throw new Xx("!<"+s.tag+'> tag resolver accepts not "'+c+'" style');n=s.represent[c](t,c)}e.dump=n}return!0}return!1}function gN(e,t,i,n,r,o){e.tag=null,e.dump=i,fN(e,i,!1)||fN(e,i,!0);var a=Zx.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 Xx("sortKeys must be a boolean or a function");for(r=0,o=h.length;r<o;r+=1)l="",n&&0===r||(l+=oN(e,t)),s=i[a=h[r]],gN(e,t+1,a,!0,!0,!0)&&((c=null!==e.tag&&"?"!==e.tag||e.dump&&e.dump.length>1024)&&(e.dump&&10===e.dump.charCodeAt(0)?l+="?":l+="? "),l+=e.dump,c&&(l+=oN(e,t)),gN(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;n<r;n+=1)s="",0!==n&&(s+=", "),e.condenseFlow&&(s+='"'),a=i[o=u[n]],gN(e,t,o,!1,!1)&&(e.dump.length>1024&&(s+="? "),s+=e.dump+(e.condenseFlow?'"':"")+":"+(e.condenseFlow?"":" "),gN(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<o;r+=1)gN(e,t+1,i[r],!0,!0)&&(n&&0===r||(a+=oN(e,t)),e.dump&&10===e.dump.charCodeAt(0)?a+="-":a+="- ",a+=e.dump);e.tag=s,e.dump=a||"[]"}(e,u,e.dump,r),c&&(e.dump="&ref_"+s+e.dump)):(!function(e,t,i){var n,r,o="",a=e.tag;for(n=0,r=i.length;n<r;n+=1)gN(e,t,i[n],!1,!1)&&(0!==n&&(o+=","+(e.condenseFlow?"":" ")),o+=e.dump);e.tag=a,e.dump="["+o+"]"}(e,u,e.dump),c&&(e.dump="&ref_"+s+" "+e.dump))}else{if("[object String]"!==a){if(e.skipInvalid)return!1;throw new Xx("unacceptable kind of an object to dump "+a)}"?"!==e.tag&&dN(e,e.dump,t,o)}null!==e.tag&&"?"!==e.tag&&(e.dump="!<"+e.tag+"> "+e.dump)}return!0}function _N(e,t){var i,n,r=[],o=[];for(bN(e,r,o),i=0,n=o.length;i<n;i+=1)t.duplicates.push(r[o[i]]);t.usedDuplicates=new Array(n)}function bN(e,t,i){var n,r,o;if(null!==e&&"object"==typeof e)if(-1!==(r=t.indexOf(e)))-1===i.indexOf(r)&&i.push(r);else if(t.push(e),Array.isArray(e))for(r=0,o=e.length;r<o;r+=1)bN(e[r],t,i);else for(r=0,o=(n=Object.keys(e)).length;r<o;r+=1)bN(e[n[r]],t,i)}function vN(e,t){var i=new nN(t=t||{});return i.noRefs||_N(e,i),gN(i,0,e,!0,!0)?i.dump+"\n":""}Gx.dump=vN,Gx.safeDump=function(e,t){return vN(e,Kx.extend({schema:Yx},t))};var yN=iw,wN=Gx;function xN(e){return function(){throw new Error("Function "+e+" is deprecated and cannot be used.")}}tw.Type=pw,tw.Schema=vw,tw.FAILSAFE_SCHEMA=yw,tw.JSON_SCHEMA=Dw,tw.CORE_SCHEMA=Bw,tw.DEFAULT_SAFE_SCHEMA=Yw,tw.DEFAULT_FULL_SCHEMA=rx,tw.load=yN.load,tw.loadAll=yN.loadAll,tw.safeLoad=yN.safeLoad,tw.safeLoadAll=yN.safeLoadAll,tw.dump=wN.dump,tw.safeDump=wN.safeDump,tw.YAMLException=aw,tw.MINIMAL_SCHEMA=yw,tw.SAFE_SCHEMA=Yw,tw.DEFAULT_SCHEMA=rx,tw.scan=xN("scan"),tw.parse=xN("parse"),tw.compose=xN("compose"),tw.addConstructor=xN("addConstructor");var NN=tw;function kN(e,t){for(var i in t)e[i]=t[i];return e}function AN(e,t){for(var i in e)if("__source"!==i&&!(i in t))return!0;for(var n in t)if("__source"!==n&&e[n]!==t[n])return!0;return!1}function CN(e){this.props=e}function ON(e,t){function i(e){var i=this.props.ref,n=i==e.ref;return!n&&i&&(i.call?i(null):i.current=null),t?!t(this.props,e)||!n:AN(this.props,e)}function n(t){return this.shouldComponentUpdate=i,w(e,t)}return n.displayName="Memo("+(e.displayName||e.name)+")",n.prototype.isReactComponent=!0,n.__f=!0,n}(CN.prototype=new k).isPureReactComponent=!0,CN.prototype.shouldComponentUpdate=function(e,t){return AN(this.props,e)||AN(this.state,t)};var SN=d.__b;d.__b=function(e){e.type&&e.type.__f&&e.ref&&(e.props.ref=e.ref,e.ref=null),SN&&SN(e)};var EN="undefined"!=typeof Symbol&&Symbol.for&&Symbol.for("react.forward_ref")||3911;var FN=function(e,t){return null==e?null:D(D(e).map(t))},DN={map:FN,forEach:FN,count:function(e){return e?D(e).length:0},only:function(e){var t=D(e);if(1!==t.length)throw"Children.only";return t[0]},toArray:D},BN=d.__e;d.__e=function(e,t,i){if(e.then)for(var n,r=t;r=r.__;)if((n=r.__c)&&n.__c)return null==t.__e&&(t.__e=i.__e,t.__k=i.__k),n.__c(e,t);BN(e,t,i)};var LN=d.unmount;function MN(){this.__u=0,this.t=null,this.__b=null}function TN(e){var t=e.__.__c;return t&&t.__e&&t.__e(e)}function RN(){this.u=null,this.o=null}d.unmount=function(e){var t=e.__c;t&&t.__R&&t.__R(),t&&!0===e.__h&&(e.type=null),LN&&LN(e)},(MN.prototype=new k).__c=function(e,t){var i=t.__c,n=this;null==n.t&&(n.t=[]),n.t.push(i);var r=TN(n.__v),o=!1,a=function(){o||(o=!0,i.__R=null,r?r(s):s())};i.__R=a;var s=function(){if(!--n.__u){if(n.state.__e){var e=n.state.__e;n.__v.__k[0]=function e(t,i,n){return t&&(t.__v=null,t.__k=t.__k&&t.__k.map((function(t){return e(t,i,n)})),t.__c&&t.__c.__P===i&&(t.__e&&n.insertBefore(t.__e,t.__d),t.__c.__e=!0,t.__c.__P=n)),t}(e,e.__c.__P,e.__c.__O)}var t;for(n.setState({__e:n.__b=null});t=n.t.pop();)t.forceUpdate()}},c=!0===t.__h;n.__u++||c||n.setState({__e:n.__b=n.__v.__k[0]}),e.then(a,a)},MN.prototype.componentWillUnmount=function(){this.t=[]},MN.prototype.render=function(e,t){if(this.__b){if(this.__v.__k){var i=document.createElement("div"),n=this.__v.__k[0].__c;this.__v.__k[0]=function e(t,i,n){return t&&(t.__c&&t.__c.__H&&(t.__c.__H.__.forEach((function(e){"function"==typeof e.__c&&e.__c()})),t.__c.__H=null),null!=(t=kN({},t)).__c&&(t.__c.__P===n&&(t.__c.__P=i),t.__c=null),t.__k=t.__k&&t.__k.map((function(t){return e(t,i,n)}))),t}(this.__b,i,n.__O=n.__P)}this.__b=null}var r=t.__e&&w(N,null,e.fallback);return r&&(r.__h=null),[w(N,null,t.__e?null:e.children),r]};var $N=function(e,t,i){if(++i[1]===i[0]&&e.o.delete(t),e.props.revealOrder&&("t"!==e.props.revealOrder[0]||!e.o.size))for(i=e.u;i;){for(;i.length>3;)i.pop()();if(i[1]<i[0])break;e.u=i=i[2]}};function jN(e){return this.getChildContext=function(){return e.context},e.children}function IN(e){var t=this,i=e.i;t.componentWillUnmount=function(){U(null,t.l),t.l=null,t.i=null},t.i&&t.i!==i&&t.componentWillUnmount(),e.__v?(t.l||(t.i=i,t.l={nodeType:1,parentNode:i,childNodes:[],appendChild:function(e){this.childNodes.push(e),t.i.appendChild(e)},insertBefore:function(e,i){this.childNodes.push(e),t.i.appendChild(e)},removeChild:function(e){this.childNodes.splice(this.childNodes.indexOf(e)>>>1,1),t.i.removeChild(e)}}),U(w(jN,{context:t.context},e.__v),t.l)):t.l&&t.componentWillUnmount()}(RN.prototype=new k).__e=function(e){var t=this,i=TN(t.__v),n=t.o.get(e);return n[0]++,function(r){var o=function(){t.props.revealOrder?(n.push(r),$N(t,e,n)):r()};i?i(o):o()}},RN.prototype.render=function(e){this.u=null,this.o=new Map;var t=D(e.children);e.revealOrder&&"b"===e.revealOrder[0]&&t.reverse();for(var i=t.length;i--;)this.o.set(t[i],this.u=[1,0,this.u]);return e.children},RN.prototype.componentDidUpdate=RN.prototype.componentDidMount=function(){var e=this;this.o.forEach((function(t,i){$N(e,i,t)}))};var PN="undefined"!=typeof Symbol&&Symbol.for&&Symbol.for("react.element")||60103,zN=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|fill|flood|font|glyph(?!R)|horiz|marker(?!H|W|U)|overline|paint|stop|strikethrough|stroke|text(?!L)|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,UN=function(e){return("undefined"!=typeof Symbol&&"symbol"==typeof Symbol()?/fil|che|rad/i:/fil|che|ra/i).test(e)};k.prototype.isReactComponent={},["componentWillMount","componentWillReceiveProps","componentWillUpdate"].forEach((function(e){Object.defineProperty(k.prototype,e,{configurable:!0,get:function(){return this["UNSAFE_"+e]},set:function(t){Object.defineProperty(this,e,{configurable:!0,writable:!0,value:t})}})}));var WN=d.event;function HN(){}function qN(){return this.cancelBubble}function VN(){return this.defaultPrevented}d.event=function(e){return WN&&(e=WN(e)),e.persist=HN,e.isPropagationStopped=qN,e.isDefaultPrevented=VN,e.nativeEvent=e};var GN,KN={configurable:!0,get:function(){return this.class}},XN=d.vnode;d.vnode=function(e){var t=e.type,i=e.props,n=i;if("string"==typeof t){for(var r in n={},i){var o=i[r];"value"===r&&"defaultValue"in i&&null==o||("defaultValue"===r&&"value"in i&&null==i.value?r="value":"download"===r&&!0===o?o="":/ondoubleclick/i.test(r)?r="ondblclick":/^onchange(textarea|input)/i.test(r+t)&&!UN(i.type)?r="oninput":/^on(Ani|Tra|Tou|BeforeInp)/.test(r)?r=r.toLowerCase():zN.test(r)?r=r.replace(/[A-Z0-9]/,"-$&").toLowerCase():null===o&&(o=void 0),n[r]=o)}"select"==t&&n.multiple&&Array.isArray(n.value)&&(n.value=D(i.children).forEach((function(e){e.props.selected=-1!=n.value.indexOf(e.props.value)}))),"select"==t&&null!=n.defaultValue&&(n.value=D(i.children).forEach((function(e){e.props.selected=n.multiple?-1!=n.defaultValue.indexOf(e.props.value):n.defaultValue==e.props.value}))),e.props=n}t&&i.class!=i.className&&(KN.enumerable="className"in i,null!=i.className&&(n.class=i.className),Object.defineProperty(n,"className",KN)),e.$$typeof=PN,XN&&XN(e)};var JN=d.__r;d.__r=function(e){JN&&JN(e),GN=e.__c};var YN={ReactCurrentDispatcher:{current:{readContext:function(e){return GN.__n[e.__c].props.value}}}};function ZN(e){return!!e&&e.$$typeof===PN}"object"==typeof performance&&"function"==typeof performance.now&&performance.now.bind(performance);var QN={useState:ke,useReducer:Ae,useEffect:Ce,useLayoutEffect:Oe,useRef:Se,useImperativeHandle:function(e,t,i){ge=6,Oe((function(){"function"==typeof e?e(t()):e&&(e.current=t())}),null==i?i:i.concat(e))},useMemo:Ee,useCallback:Fe,useContext:De,useDebugValue:function(e,t){d.useDebugValue&&d.useDebugValue(t?t(e):e)},version:"16.8.0",Children:DN,render:function(e,t,i){return null==t.__k&&(t.textContent=""),U(e,t),"function"==typeof i&&i(),e?e.__c:null},hydrate:function(e,t,i){return W(e,t),"function"==typeof i&&i(),e?e.__c:null},unmountComponentAtNode:function(e){return!!e.__k&&(U(null,e),!0)},createPortal:function(e,t){return w(IN,{__v:e,i:t})},createElement:w,createContext:q,createFactory:function(e){return w.bind(null,e)},cloneElement:function(e){return ZN(e)?H.apply(null,arguments):e},createRef:function(){return{current:null}},Fragment:N,isValidElement:ZN,findDOMNode:function(e){return e&&(e.base||1===e.nodeType&&e)||null},Component:k,PureComponent:CN,memo:ON,forwardRef:function(e){function t(t,i){var n=kN({},t);return delete n.ref,e(n,(i=t.ref||i)&&("object"!=typeof i||"current"in i)?i:null)}return t.$$typeof=EN,t.render=t,t.prototype.isReactComponent=t.__f=!0,t.displayName="ForwardRef("+(e.displayName||e.name)+")",t},unstable_batchedUpdates:function(e,t){return e(t)},StrictMode:N,Suspense:MN,SuspenseList:RN,lazy:function(e){var t,i,n;function r(r){if(t||(t=e()).then((function(e){i=e.default||e}),(function(e){n=e})),n)throw n;if(!i)throw t;return w(i,r)}return r.displayName="Lazy",r.__f=!0,r},__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:YN},ek=Object.defineProperty,tk=Object.defineProperties,ik=Object.getOwnPropertyDescriptors,nk=Object.getOwnPropertySymbols,rk=Object.prototype.hasOwnProperty,ok=Object.prototype.propertyIsEnumerable,ak=(e,t,i)=>t in e?ek(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,sk=(e,t)=>{for(var i in t||(t={}))rk.call(t,i)&&ak(e,i,t[i]);if(nk)for(var i of nk(t))ok.call(t,i)&&ak(e,i,t[i]);return e};const ck="Please consider reporting this error at https://github.com/laymonage/giscus/issues/new.";function lk(e){return`[giscus] An error occurred. Error message: "${e}".`}function uk(e){const t=document.querySelector(`meta[property='og:${e}'],meta[name='${e}']`);return t?t.content:""}function dk(){const e=document.getElementById("giscus-css")||document.createElement("style");e.id="giscus-css",e.textContent="\n .giscus, .giscus-frame {\n width: 100%;\n }\n .giscus-frame {\n border: none;\n color-scheme: normal;\n }\n ",document.head.prepend(e)}function hk(e){const[t,i]=ke(""),n=function({repo:e,repoId:t,category:i="",categoryId:n="",mapping:r,term:o="",theme:a="light",reactionsEnabled:s="1",emitMetadata:c="0",inputPosition:l="bottom",lang:u="en",session:d,origin:h}){const p=new URL(location.href);p.searchParams.delete("giscus");const m=p.toString(),f={origin:h=h||m,session:d,theme:a,reactionsEnabled:s,emitMetadata:c,inputPosition:l,repo:e,repoId:t,category:i,categoryId:n,description:uk("description")};switch(r){case"url":f.term=m;break;case"title":f.term=document.title;break;case"og:title":f.term=uk("title");break;case"specific":f.term=o;break;case"number":f.number=o;break;case"pathname":default:f.term=location.pathname.length<2?"index":location.pathname.substring(1).replace(/\.\w+$/,"")}return`https://giscus.app/${u}/widget?${new URLSearchParams(f)}`}((r=sk({},e),tk(r,ik({session:t}))));var r;const o=Se(null);return Ce((()=>{const e=location.href,t=new URL(e),n=localStorage.getItem("giscus-session"),r=t.searchParams.get("giscus")||"";if(r)return localStorage.setItem("giscus-session",JSON.stringify(r)),i(r),t.searchParams.delete("giscus"),void history.replaceState(void 0,document.title,t.toString());if(n)try{i(JSON.parse(n||"")||"")}catch(o){i(""),localStorage.removeItem("giscus-session"),console.warn(`${lk(null==o?void 0:o.message)} Session has been cleared.`)}}),[]),Ce(dk,[]),Ce((()=>{const e=function(e,t=null){return function(i){if("https://giscus.app"!==i.origin)return;const{data:n}=i;if("object"!=typeof n||!n.giscus)return;if(t&&n.giscus.resizeHeight&&(t.style.height=`${n.giscus.resizeHeight}px`),!n.giscus.error)return;const r=n.giscus.error;if(r.includes("Bad credentials")||r.includes("Invalid state value")){if(null!==localStorage.getItem("giscus-session"))return localStorage.removeItem("giscus-session"),e(),void console.warn(`${lk(r)} Session has been cleared.`);console.error(`${lk(r)} No session is stored initially. ${ck}`)}r.includes("Discussion not found")?console.warn(`[giscus] ${r}. A new discussion will be created if a comment/reaction is submitted.`):console.error(`${lk(r)} ${ck}`)}}((()=>i("")),o.current);return window.addEventListener("message",e),()=>window.removeEventListener("message",e)}),[]),QN.createElement("div",{className:"giscus"},QN.createElement("iframe",{className:"giscus-frame",title:"Comments",scrolling:"no",src:n,ref:o}))}function pk(e){const[t,i]=ke(!1);return Ce((()=>i(!0)),[]),t?QN.createElement(hk,sk({},e)):null}var mk={}; /*! * howler.js v2.2.3 * howlerjs.com @@ -22,7 +22,7 @@ function(e){const t=fb,i=kb,n="function"==typeof Symbol&&"function"==typeof Symb * goldfirestudios.com * * MIT License - */function hk(){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<t._howls.length;n++)if(!t._howls[n]._webAudio)for(var r=t._howls[n]._getSoundIds(),o=0;o<r.length;o++){var a=t._howls[n]._soundById(r[o]);a&&a._node&&(a._node.volume=a._volume*e)}return t}return t._volume},mute:function(e){var t=this||i;t.ctx||u(),t._muted=e,t.usingWebAudio&&t.masterGain.gain.setValueAtTime(e?0:t._volume,i.ctx.currentTime);for(var n=0;n<t._howls.length;n++)if(!t._howls[n]._webAudio)for(var r=t._howls[n]._getSoundIds(),o=0;o<r.length;o++){var a=t._howls[n]._soundById(r[o]);a&&a._node&&(a._node.muted=!!e||a._muted)}return t},stop:function(){for(var e=this||i,t=0;t<e._howls.length;t++)e._howls[t].stop();return e},unload:function(){for(var e=this||i,t=e._howls.length-1;t>=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.length<e.html5PoolSize;)try{var n=new Audio;n._unlocked=!0,e._releaseHtml5Audio(n)}catch(l){e.noAudio=!0;break}for(var r=0;r<e._howls.length;r++)if(!e._howls[r]._webAudio)for(var o=e._howls[r]._getSoundIds(),a=0;a<o.length;a++){var s=e._howls[r]._soundById(o[a]);s&&s._node&&!s._node._unlocked&&(s._node._unlocked=!0,s._node.load())}e._autoResume();var c=e.ctx.createBufferSource();c.buffer=e._scratchBuffer,c.connect(e.ctx.destination),void 0===c.start?c.noteOn(0):c.start(0),"function"==typeof e.ctx.resume&&e.ctx.resume(),c.onended=function(){c.disconnect(0),e._audioUnlocked=!0,document.removeEventListener("touchstart",t,!0),document.removeEventListener("touchend",t,!0),document.removeEventListener("click",t,!0),document.removeEventListener("keydown",t,!0);for(var i=0;i<e._howls.length;i++)e._howls[i]._emit("unlock")}};return document.addEventListener("touchstart",t,!0),document.addEventListener("touchend",t,!0),document.addEventListener("click",t,!0),document.addEventListener("keydown",t,!0),e}},_obtainHtml5Audio:function(){var e=this||i;if(e._html5AudioPool.length)return e._html5AudioPool.pop();var t=(new Audio).play();return t&&"undefined"!=typeof Promise&&(t instanceof Promise||"function"==typeof t.then)&&t.catch((function(){console.warn("HTML5 Audio pool exhausted, returning potentially locked audio object.")})),new Audio},_releaseHtml5Audio:function(e){var t=this||i;return e._unlocked&&t._html5AudioPool.push(e),t},_autoSuspend:function(){var e=this;if(e.autoSuspend&&e.ctx&&void 0!==e.ctx.suspend&&i.usingWebAudio){for(var t=0;t<e._howls.length;t++)if(e._howls[t]._webAudio)for(var n=0;n<e._howls[t]._sounds.length;n++)if(!e._howls[t]._sounds[n]._paused)return e;return e._suspendTimer&&clearTimeout(e._suspendTimer),e._suspendTimer=setTimeout((function(){if(e.autoSuspend){e._suspendTimer=null,e.state="suspending";var t=function(){e.state="suspended",e._resumeAfterSuspend&&(delete e._resumeAfterSuspend,e._autoResume())};e.ctx.suspend().then(t,t)}}),3e4),e}},_autoResume:function(){var e=this;if(e.ctx&&void 0!==e.ctx.resume&&i.usingWebAudio)return"running"===e.state&&"interrupted"!==e.ctx.state&&e._suspendTimer?(clearTimeout(e._suspendTimer),e._suspendTimer=null):"suspended"===e.state||"running"===e.state&&"interrupted"===e.ctx.state?(e.ctx.resume().then((function(){e.state="running";for(var t=0;t<e._howls.length;t++)e._howls[t]._emit("resume")})),e._suspendTimer&&(clearTimeout(e._suspendTimer),e._suspendTimer=null)):"suspending"===e.state&&(e._resumeAfterSuspend=!0),e}};var i=new t,n=function(e){e.src&&0!==e.src.length?this.init(e):console.error("An array of source files must be passed with any new Howl.")};n.prototype={init:function(e){var t=this;return i.ctx||u(),t._autoplay=e.autoplay||!1,t._format="string"!=typeof e.format?e.format:[e.format],t._html5=e.html5||!1,t._muted=e.mute||!1,t._loop=e.loop||!1,t._pool=e.pool||5,t._preload="boolean"!=typeof e.preload&&"metadata"!==e.preload||e.preload,t._rate=e.rate||1,t._sprite=e.sprite||{},t._src="string"!=typeof e.src?e.src:[e.src],t._volume=void 0!==e.volume?e.volume:1,t._xhr={method:e.xhr&&e.xhr.method?e.xhr.method:"GET",headers:e.xhr&&e.xhr.headers?e.xhr.headers:null,withCredentials:!(!e.xhr||!e.xhr.withCredentials)&&e.xhr.withCredentials},t._duration=0,t._state="unloaded",t._sounds=[],t._endTimers={},t._queue=[],t._playLock=!1,t._onend=e.onend?[{fn:e.onend}]:[],t._onfade=e.onfade?[{fn:e.onfade}]:[],t._onload=e.onload?[{fn:e.onload}]:[],t._onloaderror=e.onloaderror?[{fn:e.onloaderror}]:[],t._onplayerror=e.onplayerror?[{fn:e.onplayerror}]:[],t._onpause=e.onpause?[{fn:e.onpause}]:[],t._onplay=e.onplay?[{fn:e.onplay}]:[],t._onstop=e.onstop?[{fn:e.onstop}]:[],t._onmute=e.onmute?[{fn:e.onmute}]:[],t._onvolume=e.onvolume?[{fn:e.onvolume}]:[],t._onrate=e.onrate?[{fn:e.onrate}]:[],t._onseek=e.onseek?[{fn:e.onseek}]:[],t._onunlock=e.onunlock?[{fn:e.onunlock}]:[],t._onresume=[],t._webAudio=i.usingWebAudio&&!t._html5,void 0!==i.ctx&&i.ctx&&i.autoUnlock&&i._unlockAudio(),i._howls.push(t),t._autoplay&&t._queue.push({event:"play",action:function(){t.play()}}),t._preload&&"none"!==t._preload&&t.load(),t},load:function(){var e=this,t=null;if(i.noAudio)e._emit("loaderror",null,"No audio support.");else{"string"==typeof e._src&&(e._src=[e._src]);for(var n=0;n<e._src.length;n++){var o,s;if(e._format&&e._format[n])o=e._format[n];else{if("string"!=typeof(s=e._src[n])){e._emit("loaderror",null,"Non-string found in selected audio sources - ignoring.");continue}(o=/^data:audio\/([^;,]+);/i.exec(s))||(o=/\.([^.]+)$/.exec(s.split("?",1)[0])),o&&(o=o[1].toLowerCase())}if(o||console.warn('No file extension was found. Consider using the "format" property or specify an extension.'),o&&i.codecs(o)){t=e._src[n];break}}if(t)return e._src=t,e._state="loading","https:"===window.location.protocol&&"http:"===t.slice(0,5)&&(e._html5=!0,e._webAudio=!1),new r(e),e._webAudio&&a(e),e;e._emit("loaderror",null,"No codec support for selected audio sources.")}},play:function(e,t){var n=this,r=null;if("number"==typeof e)r=e,e=null;else{if("string"==typeof e&&"loaded"===n._state&&!n._sprite[e])return null;if(void 0===e&&(e="__default",!n._playLock)){for(var o=0,a=0;a<n._sounds.length;a++)n._sounds[a]._paused&&!n._sounds[a]._ended&&(o++,r=n._sounds[a]._id);1===o?e=null:r=null}}var s=r?n._soundById(r):n._inactiveSound();if(!s)return null;if(r&&!e&&(e=s._sprite||"__default"),"loaded"!==n._state){s._sprite=e,s._ended=!1;var c=s._id;return n._queue.push({event:"play",action:function(){n.play(c)}}),c}if(r&&!s._paused)return t||n._loadQueue("play"),s._id;n._webAudio&&i._autoResume();var l=Math.max(0,s._seek>0?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<i.length;n++){t._clearTimer(i[n]);var r=t._soundById(i[n]);if(r&&!r._paused&&(r._seek=t.seek(i[n]),r._rateSeek=0,r._paused=!0,t._stopFade(i[n]),r._node))if(t._webAudio){if(!r._node.bufferSource)continue;void 0===r._node.bufferSource.stop?r._node.bufferSource.noteOff(0):r._node.bufferSource.stop(0),t._cleanBuffer(r._node)}else isNaN(r._node.duration)&&r._node.duration!==1/0||r._node.pause();arguments[1]||t._emit("pause",r?r._id:null)}return t},stop:function(e,t){var i=this;if("loaded"!==i._state||i._playLock)return i._queue.push({event:"stop",action:function(){i.stop(e)}}),i;for(var n=i._getSoundIds(e),r=0;r<n.length;r++){i._clearTimer(n[r]);var o=i._soundById(n[r]);o&&(o._seek=o._start||0,o._rateSeek=0,o._paused=!0,o._ended=!0,i._stopFade(n[r]),o._node&&(i._webAudio?o._node.bufferSource&&(void 0===o._node.bufferSource.stop?o._node.bufferSource.noteOff(0):o._node.bufferSource.stop(0),i._cleanBuffer(o._node)):isNaN(o._node.duration)&&o._node.duration!==1/0||(o._node.currentTime=o._start||0,o._node.pause(),o._node.duration===1/0&&i._clearSound(o._node))),t||i._emit("stop",o._id))}return i},mute:function(e,t){var n=this;if("loaded"!==n._state||n._playLock)return n._queue.push({event:"mute",action:function(){n.mute(e,t)}}),n;if(void 0===t){if("boolean"!=typeof e)return n._muted;n._muted=e}for(var r=n._getSoundIds(t),o=0;o<r.length;o++){var a=n._soundById(r[o]);a&&(a._muted=e,a._interval&&n._stopFade(a._id),n._webAudio&&a._node?a._node.gain.setValueAtTime(e?0:a._volume,i.ctx.currentTime):a._node&&(a._node.muted=!!i._muted||e),n._emit("mute",a._id))}return n},volume:function(){var e,t,n,r=this,o=arguments;if(0===o.length)return r._volume;if(1===o.length||2===o.length&&void 0===o[1]){var a=r._getSoundIds(),s=a.indexOf(o[0]);s>=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;c<t.length;c++)(n=r._soundById(t[c]))&&(n._volume=e,o[2]||r._stopFade(t[c]),r._webAudio&&n._node&&!n._muted?n._node.gain.setValueAtTime(e,i.ctx.currentTime):n._node&&!n._muted&&(n._node.volume=e*i.volume()),r._emit("volume",n._id));return r},fade:function(e,t,n,r){var o=this;if("loaded"!==o._state||o._playLock)return o._queue.push({event:"fade",action:function(){o.fade(e,t,n,r)}}),o;e=Math.min(Math.max(0,parseFloat(e)),1),t=Math.min(Math.max(0,parseFloat(t)),1),n=parseFloat(n),o.volume(e,r);for(var a=o._getSoundIds(r),s=0;s<a.length;s++){var c=o._soundById(a[s]);if(c){if(r||o._stopFade(a[s]),o._webAudio&&!c._muted){var l=i.ctx.currentTime,u=l+n/1e3;c._volume=e,c._node.gain.setValueAtTime(e,l),c._node.gain.linearRampToValueAtTime(t,u)}o._startFadeInterval(c,e,t,n,a[s],void 0===r)}}return o},_startFadeInterval:function(e,t,i,n,r,o){var a=this,s=t,c=i-t,l=Math.abs(c/.01),u=Math.max(4,l>0?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),(i<t&&s<=i||i>t&&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<o.length;a++)(i=n._soundById(o[a]))&&(i._loop=e,n._webAudio&&i._node&&i._node.bufferSource&&(i._node.bufferSource.loop=e,e&&(i._node.bufferSource.loopStart=i._start||0,i._node.bufferSource.loopEnd=i._stop,n.playing(o[a])&&(n.pause(o[a],!0),n.play(o[a],!0)))));return n},rate:function(){var e,t,n,r=this,o=arguments;if(0===o.length)t=r._sounds[0]._id;else if(1===o.length){var a=r._getSoundIds(),s=a.indexOf(o[0]);s>=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<t.length;c++)if(n=r._soundById(t[c])){r.playing(t[c])&&(n._rateSeek=r.seek(t[c]),n._playStart=r._webAudio?i.ctx.currentTime:n._playStart),n._rate=e,r._webAudio&&n._node&&n._node.bufferSource?n._node.bufferSource.playbackRate.setValueAtTime(e,i.ctx.currentTime):n._node&&(n._node.playbackRate=e);var l=r.seek(t[c]),u=(r._sprite[n._sprite][0]+r._sprite[n._sprite][1])/1e3-l,d=1e3*u/Math.abs(n._rate);!r._endTimers[t[c]]&&n._paused||(r._clearTimer(t[c]),r._endTimers[t[c]]=setTimeout(r._ended.bind(r,n),d)),r._emit("rate",n._id)}return r},seek:function(){var e,t,n=this,r=arguments;if(0===r.length)n._sounds.length&&(t=n._sounds[0]._id);else if(1===r.length){var o=n._getSoundIds(),a=o.indexOf(r[0]);a>=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<t._sounds.length;n++)if(!t._sounds[n]._paused)return!0;return!1},duration:function(e){var t=this,i=t._duration,n=t._soundById(e);return n&&(i=t._sprite[n._sprite][1]/1e3),i},state:function(){return this._state},unload:function(){for(var e=this,t=e._sounds,n=0;n<t.length;n++)t[n]._paused||e.stop(t[n]._id),e._webAudio||(e._clearSound(t[n]._node),t[n]._node.removeEventListener("error",t[n]._errorFn,!1),t[n]._node.removeEventListener(i._canPlayEvent,t[n]._loadFn,!1),t[n]._node.removeEventListener("ended",t[n]._endFn,!1),i._releaseHtml5Audio(t[n]._node)),delete t[n]._node,e._clearTimer(t[n]._id);var r=i._howls.indexOf(e);r>=0&&i._howls.splice(r,1);var a=!0;for(n=0;n<i._howls.length;n++)if(i._howls[n]._src===e._src||e._src.indexOf(i._howls[n]._src)>=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<r.length;o++){var a=i===r[o].id;if(t===r[o].fn&&a||!t&&a){r.splice(o,1);break}}else if(e)n["_on"+e]=[];else{var s=Object.keys(n);for(o=0;o<s.length;o++)0===s[o].indexOf("_on")&&Array.isArray(n[s[o]])&&(n[s[o]]=[])}return n},once:function(e,t,i){return this.on(e,t,i,1),this},_emit:function(e,t,i){for(var n=this,r=n["_on"+e],o=r.length-1;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<e._stop)return setTimeout(t._ended.bind(t,e),100),t;var r=!(!e._loop&&!t._sprite[n][2]);if(t._emit("end",e._id),!t._webAudio&&r&&t.stop(e._id,!0).play(e._id),t._webAudio&&r){t._emit("play",e._id),e._seek=e._start||0,e._rateSeek=0,e._playStart=i.ctx.currentTime;var o=1e3*(e._stop-e._start)/Math.abs(e._rate);t._endTimers[e._id]=setTimeout(t._ended.bind(t,e),o)}return t._webAudio&&!r&&(e._paused=!0,e._ended=!0,e._seek=e._start||0,e._rateSeek=0,t._clearTimer(e._id),t._cleanBuffer(e._node),i._autoSuspend()),t._webAudio||r||t.stop(e._id,!0),t},_clearTimer:function(e){var t=this;if(t._endTimers[e]){if("function"!=typeof t._endTimers[e])clearTimeout(t._endTimers[e]);else{var i=t._soundById(e);i&&i._node&&i._node.removeEventListener("ended",t._endTimers[e],!1)}delete t._endTimers[e]}return t},_soundById:function(e){for(var t=this,i=0;i<t._sounds.length;i++)if(e===t._sounds[i]._id)return t._sounds[i];return null},_inactiveSound:function(){var e=this;e._drain();for(var t=0;t<e._sounds.length;t++)if(e._sounds[t]._ended)return e._sounds[t].reset();return new r(e)},_drain:function(){var e=this,t=e._pool,i=0,n=0;if(!(e._sounds.length<t)){for(n=0;n<e._sounds.length;n++)e._sounds[n]._ended&&i++;for(n=e._sounds.length-1;n>=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<this._sounds.length;i++)t.push(this._sounds[i]._id);return t}return[e]},_refreshBuffer:function(e){return e._node.bufferSource=i.ctx.createBufferSource(),e._node.bufferSource.buffer=o[this._src],e._panner?e._node.bufferSource.connect(e._panner):e._node.bufferSource.connect(e._node),e._node.bufferSource.loop=e._loop,e._loop&&(e._node.bufferSource.loopStart=e._start||0,e._node.bufferSource.loopEnd=e._stop||0),e._node.bufferSource.playbackRate.setValueAtTime(e._rate,i.ctx.currentTime),this},_cleanBuffer:function(e){var t=i._navigator&&i._navigator.vendor.indexOf("Apple")>=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;r<i.length;++r)n[r]=i.charCodeAt(r);c(n.buffer,e)}else{var a=new XMLHttpRequest;a.open(e._xhr.method,t,!0),a.withCredentials=e._xhr.withCredentials,a.responseType="arraybuffer",e._xhr.headers&&Object.keys(e._xhr.headers).forEach((function(t){a.setRequestHeader(t,e._xhr.headers[t])})),a.onload=function(){var t=(a.status+"")[0];"0"===t||"2"===t||"3"===t?c(a.response,e):e._emit("loaderror",null,"Failed loading audio file with status: "+a.status+".")},a.onerror=function(){e._webAudio&&(e._html5=!0,e._webAudio=!1,e._sounds=[],delete o[t],e.load())},s(a)}},s=function(e){try{e.send()}catch(t){e.onerror()}},c=function(e,t){var n=function(){t._emit("loaderror",null,"Decoding audio data failed.")},r=function(e){e&&t._sounds.length>0?(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!==Ie?(Ie.HowlerGlobal=t,Ie.Howler=i,Ie.Howl=n,Ie.Sound=r):"undefined"!=typeof window&&(window.HowlerGlobal=t,window.Howler=i,window.Howl=n,window.Sound=r)}(), + */function fk(){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<t._howls.length;n++)if(!t._howls[n]._webAudio)for(var r=t._howls[n]._getSoundIds(),o=0;o<r.length;o++){var a=t._howls[n]._soundById(r[o]);a&&a._node&&(a._node.volume=a._volume*e)}return t}return t._volume},mute:function(e){var t=this||i;t.ctx||u(),t._muted=e,t.usingWebAudio&&t.masterGain.gain.setValueAtTime(e?0:t._volume,i.ctx.currentTime);for(var n=0;n<t._howls.length;n++)if(!t._howls[n]._webAudio)for(var r=t._howls[n]._getSoundIds(),o=0;o<r.length;o++){var a=t._howls[n]._soundById(r[o]);a&&a._node&&(a._node.muted=!!e||a._muted)}return t},stop:function(){for(var e=this||i,t=0;t<e._howls.length;t++)e._howls[t].stop();return e},unload:function(){for(var e=this||i,t=e._howls.length-1;t>=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.length<e.html5PoolSize;)try{var n=new Audio;n._unlocked=!0,e._releaseHtml5Audio(n)}catch(l){e.noAudio=!0;break}for(var r=0;r<e._howls.length;r++)if(!e._howls[r]._webAudio)for(var o=e._howls[r]._getSoundIds(),a=0;a<o.length;a++){var s=e._howls[r]._soundById(o[a]);s&&s._node&&!s._node._unlocked&&(s._node._unlocked=!0,s._node.load())}e._autoResume();var c=e.ctx.createBufferSource();c.buffer=e._scratchBuffer,c.connect(e.ctx.destination),void 0===c.start?c.noteOn(0):c.start(0),"function"==typeof e.ctx.resume&&e.ctx.resume(),c.onended=function(){c.disconnect(0),e._audioUnlocked=!0,document.removeEventListener("touchstart",t,!0),document.removeEventListener("touchend",t,!0),document.removeEventListener("click",t,!0),document.removeEventListener("keydown",t,!0);for(var i=0;i<e._howls.length;i++)e._howls[i]._emit("unlock")}};return document.addEventListener("touchstart",t,!0),document.addEventListener("touchend",t,!0),document.addEventListener("click",t,!0),document.addEventListener("keydown",t,!0),e}},_obtainHtml5Audio:function(){var e=this||i;if(e._html5AudioPool.length)return e._html5AudioPool.pop();var t=(new Audio).play();return t&&"undefined"!=typeof Promise&&(t instanceof Promise||"function"==typeof t.then)&&t.catch((function(){console.warn("HTML5 Audio pool exhausted, returning potentially locked audio object.")})),new Audio},_releaseHtml5Audio:function(e){var t=this||i;return e._unlocked&&t._html5AudioPool.push(e),t},_autoSuspend:function(){var e=this;if(e.autoSuspend&&e.ctx&&void 0!==e.ctx.suspend&&i.usingWebAudio){for(var t=0;t<e._howls.length;t++)if(e._howls[t]._webAudio)for(var n=0;n<e._howls[t]._sounds.length;n++)if(!e._howls[t]._sounds[n]._paused)return e;return e._suspendTimer&&clearTimeout(e._suspendTimer),e._suspendTimer=setTimeout((function(){if(e.autoSuspend){e._suspendTimer=null,e.state="suspending";var t=function(){e.state="suspended",e._resumeAfterSuspend&&(delete e._resumeAfterSuspend,e._autoResume())};e.ctx.suspend().then(t,t)}}),3e4),e}},_autoResume:function(){var e=this;if(e.ctx&&void 0!==e.ctx.resume&&i.usingWebAudio)return"running"===e.state&&"interrupted"!==e.ctx.state&&e._suspendTimer?(clearTimeout(e._suspendTimer),e._suspendTimer=null):"suspended"===e.state||"running"===e.state&&"interrupted"===e.ctx.state?(e.ctx.resume().then((function(){e.state="running";for(var t=0;t<e._howls.length;t++)e._howls[t]._emit("resume")})),e._suspendTimer&&(clearTimeout(e._suspendTimer),e._suspendTimer=null)):"suspending"===e.state&&(e._resumeAfterSuspend=!0),e}};var i=new t,n=function(e){e.src&&0!==e.src.length?this.init(e):console.error("An array of source files must be passed with any new Howl.")};n.prototype={init:function(e){var t=this;return i.ctx||u(),t._autoplay=e.autoplay||!1,t._format="string"!=typeof e.format?e.format:[e.format],t._html5=e.html5||!1,t._muted=e.mute||!1,t._loop=e.loop||!1,t._pool=e.pool||5,t._preload="boolean"!=typeof e.preload&&"metadata"!==e.preload||e.preload,t._rate=e.rate||1,t._sprite=e.sprite||{},t._src="string"!=typeof e.src?e.src:[e.src],t._volume=void 0!==e.volume?e.volume:1,t._xhr={method:e.xhr&&e.xhr.method?e.xhr.method:"GET",headers:e.xhr&&e.xhr.headers?e.xhr.headers:null,withCredentials:!(!e.xhr||!e.xhr.withCredentials)&&e.xhr.withCredentials},t._duration=0,t._state="unloaded",t._sounds=[],t._endTimers={},t._queue=[],t._playLock=!1,t._onend=e.onend?[{fn:e.onend}]:[],t._onfade=e.onfade?[{fn:e.onfade}]:[],t._onload=e.onload?[{fn:e.onload}]:[],t._onloaderror=e.onloaderror?[{fn:e.onloaderror}]:[],t._onplayerror=e.onplayerror?[{fn:e.onplayerror}]:[],t._onpause=e.onpause?[{fn:e.onpause}]:[],t._onplay=e.onplay?[{fn:e.onplay}]:[],t._onstop=e.onstop?[{fn:e.onstop}]:[],t._onmute=e.onmute?[{fn:e.onmute}]:[],t._onvolume=e.onvolume?[{fn:e.onvolume}]:[],t._onrate=e.onrate?[{fn:e.onrate}]:[],t._onseek=e.onseek?[{fn:e.onseek}]:[],t._onunlock=e.onunlock?[{fn:e.onunlock}]:[],t._onresume=[],t._webAudio=i.usingWebAudio&&!t._html5,void 0!==i.ctx&&i.ctx&&i.autoUnlock&&i._unlockAudio(),i._howls.push(t),t._autoplay&&t._queue.push({event:"play",action:function(){t.play()}}),t._preload&&"none"!==t._preload&&t.load(),t},load:function(){var e=this,t=null;if(i.noAudio)e._emit("loaderror",null,"No audio support.");else{"string"==typeof e._src&&(e._src=[e._src]);for(var n=0;n<e._src.length;n++){var o,s;if(e._format&&e._format[n])o=e._format[n];else{if("string"!=typeof(s=e._src[n])){e._emit("loaderror",null,"Non-string found in selected audio sources - ignoring.");continue}(o=/^data:audio\/([^;,]+);/i.exec(s))||(o=/\.([^.]+)$/.exec(s.split("?",1)[0])),o&&(o=o[1].toLowerCase())}if(o||console.warn('No file extension was found. Consider using the "format" property or specify an extension.'),o&&i.codecs(o)){t=e._src[n];break}}if(t)return e._src=t,e._state="loading","https:"===window.location.protocol&&"http:"===t.slice(0,5)&&(e._html5=!0,e._webAudio=!1),new r(e),e._webAudio&&a(e),e;e._emit("loaderror",null,"No codec support for selected audio sources.")}},play:function(e,t){var n=this,r=null;if("number"==typeof e)r=e,e=null;else{if("string"==typeof e&&"loaded"===n._state&&!n._sprite[e])return null;if(void 0===e&&(e="__default",!n._playLock)){for(var o=0,a=0;a<n._sounds.length;a++)n._sounds[a]._paused&&!n._sounds[a]._ended&&(o++,r=n._sounds[a]._id);1===o?e=null:r=null}}var s=r?n._soundById(r):n._inactiveSound();if(!s)return null;if(r&&!e&&(e=s._sprite||"__default"),"loaded"!==n._state){s._sprite=e,s._ended=!1;var c=s._id;return n._queue.push({event:"play",action:function(){n.play(c)}}),c}if(r&&!s._paused)return t||n._loadQueue("play"),s._id;n._webAudio&&i._autoResume();var l=Math.max(0,s._seek>0?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<i.length;n++){t._clearTimer(i[n]);var r=t._soundById(i[n]);if(r&&!r._paused&&(r._seek=t.seek(i[n]),r._rateSeek=0,r._paused=!0,t._stopFade(i[n]),r._node))if(t._webAudio){if(!r._node.bufferSource)continue;void 0===r._node.bufferSource.stop?r._node.bufferSource.noteOff(0):r._node.bufferSource.stop(0),t._cleanBuffer(r._node)}else isNaN(r._node.duration)&&r._node.duration!==1/0||r._node.pause();arguments[1]||t._emit("pause",r?r._id:null)}return t},stop:function(e,t){var i=this;if("loaded"!==i._state||i._playLock)return i._queue.push({event:"stop",action:function(){i.stop(e)}}),i;for(var n=i._getSoundIds(e),r=0;r<n.length;r++){i._clearTimer(n[r]);var o=i._soundById(n[r]);o&&(o._seek=o._start||0,o._rateSeek=0,o._paused=!0,o._ended=!0,i._stopFade(n[r]),o._node&&(i._webAudio?o._node.bufferSource&&(void 0===o._node.bufferSource.stop?o._node.bufferSource.noteOff(0):o._node.bufferSource.stop(0),i._cleanBuffer(o._node)):isNaN(o._node.duration)&&o._node.duration!==1/0||(o._node.currentTime=o._start||0,o._node.pause(),o._node.duration===1/0&&i._clearSound(o._node))),t||i._emit("stop",o._id))}return i},mute:function(e,t){var n=this;if("loaded"!==n._state||n._playLock)return n._queue.push({event:"mute",action:function(){n.mute(e,t)}}),n;if(void 0===t){if("boolean"!=typeof e)return n._muted;n._muted=e}for(var r=n._getSoundIds(t),o=0;o<r.length;o++){var a=n._soundById(r[o]);a&&(a._muted=e,a._interval&&n._stopFade(a._id),n._webAudio&&a._node?a._node.gain.setValueAtTime(e?0:a._volume,i.ctx.currentTime):a._node&&(a._node.muted=!!i._muted||e),n._emit("mute",a._id))}return n},volume:function(){var e,t,n,r=this,o=arguments;if(0===o.length)return r._volume;if(1===o.length||2===o.length&&void 0===o[1]){var a=r._getSoundIds(),s=a.indexOf(o[0]);s>=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;c<t.length;c++)(n=r._soundById(t[c]))&&(n._volume=e,o[2]||r._stopFade(t[c]),r._webAudio&&n._node&&!n._muted?n._node.gain.setValueAtTime(e,i.ctx.currentTime):n._node&&!n._muted&&(n._node.volume=e*i.volume()),r._emit("volume",n._id));return r},fade:function(e,t,n,r){var o=this;if("loaded"!==o._state||o._playLock)return o._queue.push({event:"fade",action:function(){o.fade(e,t,n,r)}}),o;e=Math.min(Math.max(0,parseFloat(e)),1),t=Math.min(Math.max(0,parseFloat(t)),1),n=parseFloat(n),o.volume(e,r);for(var a=o._getSoundIds(r),s=0;s<a.length;s++){var c=o._soundById(a[s]);if(c){if(r||o._stopFade(a[s]),o._webAudio&&!c._muted){var l=i.ctx.currentTime,u=l+n/1e3;c._volume=e,c._node.gain.setValueAtTime(e,l),c._node.gain.linearRampToValueAtTime(t,u)}o._startFadeInterval(c,e,t,n,a[s],void 0===r)}}return o},_startFadeInterval:function(e,t,i,n,r,o){var a=this,s=t,c=i-t,l=Math.abs(c/.01),u=Math.max(4,l>0?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),(i<t&&s<=i||i>t&&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<o.length;a++)(i=n._soundById(o[a]))&&(i._loop=e,n._webAudio&&i._node&&i._node.bufferSource&&(i._node.bufferSource.loop=e,e&&(i._node.bufferSource.loopStart=i._start||0,i._node.bufferSource.loopEnd=i._stop,n.playing(o[a])&&(n.pause(o[a],!0),n.play(o[a],!0)))));return n},rate:function(){var e,t,n,r=this,o=arguments;if(0===o.length)t=r._sounds[0]._id;else if(1===o.length){var a=r._getSoundIds(),s=a.indexOf(o[0]);s>=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<t.length;c++)if(n=r._soundById(t[c])){r.playing(t[c])&&(n._rateSeek=r.seek(t[c]),n._playStart=r._webAudio?i.ctx.currentTime:n._playStart),n._rate=e,r._webAudio&&n._node&&n._node.bufferSource?n._node.bufferSource.playbackRate.setValueAtTime(e,i.ctx.currentTime):n._node&&(n._node.playbackRate=e);var l=r.seek(t[c]),u=(r._sprite[n._sprite][0]+r._sprite[n._sprite][1])/1e3-l,d=1e3*u/Math.abs(n._rate);!r._endTimers[t[c]]&&n._paused||(r._clearTimer(t[c]),r._endTimers[t[c]]=setTimeout(r._ended.bind(r,n),d)),r._emit("rate",n._id)}return r},seek:function(){var e,t,n=this,r=arguments;if(0===r.length)n._sounds.length&&(t=n._sounds[0]._id);else if(1===r.length){var o=n._getSoundIds(),a=o.indexOf(r[0]);a>=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<t._sounds.length;n++)if(!t._sounds[n]._paused)return!0;return!1},duration:function(e){var t=this,i=t._duration,n=t._soundById(e);return n&&(i=t._sprite[n._sprite][1]/1e3),i},state:function(){return this._state},unload:function(){for(var e=this,t=e._sounds,n=0;n<t.length;n++)t[n]._paused||e.stop(t[n]._id),e._webAudio||(e._clearSound(t[n]._node),t[n]._node.removeEventListener("error",t[n]._errorFn,!1),t[n]._node.removeEventListener(i._canPlayEvent,t[n]._loadFn,!1),t[n]._node.removeEventListener("ended",t[n]._endFn,!1),i._releaseHtml5Audio(t[n]._node)),delete t[n]._node,e._clearTimer(t[n]._id);var r=i._howls.indexOf(e);r>=0&&i._howls.splice(r,1);var a=!0;for(n=0;n<i._howls.length;n++)if(i._howls[n]._src===e._src||e._src.indexOf(i._howls[n]._src)>=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<r.length;o++){var a=i===r[o].id;if(t===r[o].fn&&a||!t&&a){r.splice(o,1);break}}else if(e)n["_on"+e]=[];else{var s=Object.keys(n);for(o=0;o<s.length;o++)0===s[o].indexOf("_on")&&Array.isArray(n[s[o]])&&(n[s[o]]=[])}return n},once:function(e,t,i){return this.on(e,t,i,1),this},_emit:function(e,t,i){for(var n=this,r=n["_on"+e],o=r.length-1;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<e._stop)return setTimeout(t._ended.bind(t,e),100),t;var r=!(!e._loop&&!t._sprite[n][2]);if(t._emit("end",e._id),!t._webAudio&&r&&t.stop(e._id,!0).play(e._id),t._webAudio&&r){t._emit("play",e._id),e._seek=e._start||0,e._rateSeek=0,e._playStart=i.ctx.currentTime;var o=1e3*(e._stop-e._start)/Math.abs(e._rate);t._endTimers[e._id]=setTimeout(t._ended.bind(t,e),o)}return t._webAudio&&!r&&(e._paused=!0,e._ended=!0,e._seek=e._start||0,e._rateSeek=0,t._clearTimer(e._id),t._cleanBuffer(e._node),i._autoSuspend()),t._webAudio||r||t.stop(e._id,!0),t},_clearTimer:function(e){var t=this;if(t._endTimers[e]){if("function"!=typeof t._endTimers[e])clearTimeout(t._endTimers[e]);else{var i=t._soundById(e);i&&i._node&&i._node.removeEventListener("ended",t._endTimers[e],!1)}delete t._endTimers[e]}return t},_soundById:function(e){for(var t=this,i=0;i<t._sounds.length;i++)if(e===t._sounds[i]._id)return t._sounds[i];return null},_inactiveSound:function(){var e=this;e._drain();for(var t=0;t<e._sounds.length;t++)if(e._sounds[t]._ended)return e._sounds[t].reset();return new r(e)},_drain:function(){var e=this,t=e._pool,i=0,n=0;if(!(e._sounds.length<t)){for(n=0;n<e._sounds.length;n++)e._sounds[n]._ended&&i++;for(n=e._sounds.length-1;n>=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<this._sounds.length;i++)t.push(this._sounds[i]._id);return t}return[e]},_refreshBuffer:function(e){return e._node.bufferSource=i.ctx.createBufferSource(),e._node.bufferSource.buffer=o[this._src],e._panner?e._node.bufferSource.connect(e._panner):e._node.bufferSource.connect(e._node),e._node.bufferSource.loop=e._loop,e._loop&&(e._node.bufferSource.loopStart=e._start||0,e._node.bufferSource.loopEnd=e._stop||0),e._node.bufferSource.playbackRate.setValueAtTime(e._rate,i.ctx.currentTime),this},_cleanBuffer:function(e){var t=i._navigator&&i._navigator.vendor.indexOf("Apple")>=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;r<i.length;++r)n[r]=i.charCodeAt(r);c(n.buffer,e)}else{var a=new XMLHttpRequest;a.open(e._xhr.method,t,!0),a.withCredentials=e._xhr.withCredentials,a.responseType="arraybuffer",e._xhr.headers&&Object.keys(e._xhr.headers).forEach((function(t){a.setRequestHeader(t,e._xhr.headers[t])})),a.onload=function(){var t=(a.status+"")[0];"0"===t||"2"===t||"3"===t?c(a.response,e):e._emit("loaderror",null,"Failed loading audio file with status: "+a.status+".")},a.onerror=function(){e._webAudio&&(e._html5=!0,e._webAudio=!1,e._sounds=[],delete o[t],e.load())},s(a)}},s=function(e){try{e.send()}catch(t){e.onerror()}},c=function(e,t){var n=function(){t._emit("loaderror",null,"Decoding audio data failed.")},r=function(e){e&&t._sounds.length>0?(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!==Ie?(Ie.HowlerGlobal=t,Ie.Howler=i,Ie.Howl=n,Ie.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=fb,i=kb,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<o.length;a++){var s=n._soundById(o[a]);if(s){if("number"!=typeof e)return s._stereo;s._stereo=e,s._pos=[e,0,0],s._node&&(s._pannerAttr.panningModel="equalpower",s._panner&&s._panner.pan||t(s,r),"spatial"===r?void 0!==s._panner.positionX?(s._panner.positionX.setValueAtTime(e,Howler.ctx.currentTime),s._panner.positionY.setValueAtTime(0,Howler.ctx.currentTime),s._panner.positionZ.setValueAtTime(0,Howler.ctx.currentTime)):s._panner.setPosition(e,0,0):s._panner.pan.setValueAtTime(e,Howler.ctx.currentTime)),n._emit("stereo",s._id)}}return n},Howl.prototype.pos=function(e,i,n,r){var o=this;if(!o._webAudio)return o;if("loaded"!==o._state)return o._queue.push({event:"pos",action:function(){o.pos(e,i,n,r)}}),o;if(i="number"!=typeof i?0:i,n="number"!=typeof n?-.5:n,void 0===r){if("number"!=typeof e)return o._pos;o._pos=[e,i,n]}for(var a=o._getSoundIds(r),s=0;s<a.length;s++){var c=o._soundById(a[s]);if(c){if("number"!=typeof e)return c._pos;c._pos=[e,i,n],c._node&&(c._panner&&!c._panner.pan||t(c,"spatial"),void 0!==c._panner.positionX?(c._panner.positionX.setValueAtTime(e,Howler.ctx.currentTime),c._panner.positionY.setValueAtTime(i,Howler.ctx.currentTime),c._panner.positionZ.setValueAtTime(n,Howler.ctx.currentTime)):c._panner.setPosition(e,i,n)),o._emit("pos",c._id)}}return o},Howl.prototype.orientation=function(e,i,n,r){var o=this;if(!o._webAudio)return o;if("loaded"!==o._state)return o._queue.push({event:"orientation",action:function(){o.orientation(e,i,n,r)}}),o;if(i="number"!=typeof i?o._orientation[1]:i,n="number"!=typeof n?o._orientation[2]:n,void 0===r){if("number"!=typeof e)return o._orientation;o._orientation=[e,i,n]}for(var a=o._getSoundIds(r),s=0;s<a.length;s++){var c=o._soundById(a[s]);if(c){if("number"!=typeof e)return c._orientation;c._orientation=[e,i,n],c._node&&(c._panner||(c._pos||(c._pos=o._pos||[0,0,-.5]),t(c,"spatial")),void 0!==c._panner.orientationX?(c._panner.orientationX.setValueAtTime(e,Howler.ctx.currentTime),c._panner.orientationY.setValueAtTime(i,Howler.ctx.currentTime),c._panner.orientationZ.setValueAtTime(n,Howler.ctx.currentTime)):c._panner.setOrientation(e,i,n)),o._emit("orientation",c._id)}}return o},Howl.prototype.pannerAttr=function(){var e,i,n,r=this,o=arguments;if(!r._webAudio)return r;if(0===o.length)return r._pannerAttr;if(1===o.length){if("object"!=typeof o[0])return(n=r._soundById(parseInt(o[0],10)))?n._pannerAttr:r._pannerAttr;e=o[0],void 0===i&&(e.pannerAttr||(e.pannerAttr={coneInnerAngle:e.coneInnerAngle,coneOuterAngle:e.coneOuterAngle,coneOuterGain:e.coneOuterGain,distanceModel:e.distanceModel,maxDistance:e.maxDistance,refDistance:e.refDistance,rolloffFactor:e.rolloffFactor,panningModel:e.panningModel}),r._pannerAttr={coneInnerAngle:void 0!==e.pannerAttr.coneInnerAngle?e.pannerAttr.coneInnerAngle:r._coneInnerAngle,coneOuterAngle:void 0!==e.pannerAttr.coneOuterAngle?e.pannerAttr.coneOuterAngle:r._coneOuterAngle,coneOuterGain:void 0!==e.pannerAttr.coneOuterGain?e.pannerAttr.coneOuterGain:r._coneOuterGain,distanceModel:void 0!==e.pannerAttr.distanceModel?e.pannerAttr.distanceModel:r._distanceModel,maxDistance:void 0!==e.pannerAttr.maxDistance?e.pannerAttr.maxDistance:r._maxDistance,refDistance:void 0!==e.pannerAttr.refDistance?e.pannerAttr.refDistance:r._refDistance,rolloffFactor:void 0!==e.pannerAttr.rolloffFactor?e.pannerAttr.rolloffFactor:r._rolloffFactor,panningModel:void 0!==e.pannerAttr.panningModel?e.pannerAttr.panningModel:r._panningModel})}else 2===o.length&&(e=o[0],i=parseInt(o[1],10));for(var a=r._getSoundIds(i),s=0;s<a.length;s++)if(n=r._soundById(a[s])){var c=n._pannerAttr;c={coneInnerAngle:void 0!==e.coneInnerAngle?e.coneInnerAngle:c.coneInnerAngle,coneOuterAngle:void 0!==e.coneOuterAngle?e.coneOuterAngle:c.coneOuterAngle,coneOuterGain:void 0!==e.coneOuterGain?e.coneOuterGain:c.coneOuterGain,distanceModel:void 0!==e.distanceModel?e.distanceModel:c.distanceModel,maxDistance:void 0!==e.maxDistance?e.maxDistance:c.maxDistance,refDistance:void 0!==e.refDistance?e.refDistance:c.refDistance,rolloffFactor:void 0!==e.rolloffFactor?e.rolloffFactor:c.rolloffFactor,panningModel:void 0!==e.panningModel?e.panningModel:c.panningModel};var l=n._panner;l?(l.coneInnerAngle=c.coneInnerAngle,l.coneOuterAngle=c.coneOuterAngle,l.coneOuterGain=c.coneOuterGain,l.distanceModel=c.distanceModel,l.maxDistance=c.maxDistance,l.refDistance=c.refDistance,l.rolloffFactor=c.rolloffFactor,l.panningModel=c.panningModel):(n._pos||(n._pos=r._pos||[0,0,-.5]),t(n,"spatial"))}return r},Sound.prototype.init=function(e){return function(){var t=this,i=t._parent;t._orientation=i._orientation,t._stereo=i._stereo,t._pos=i._pos,t._pannerAttr=i._pannerAttr,e.call(this),t._stereo?i.stereo(t._stereo):t._pos&&i.pos(t._pos[0],t._pos[1],t._pos[2],t._id)}}(Sound.prototype.init),Sound.prototype.reset=function(e){return function(){var t=this,i=t._parent;return t._orientation=i._orientation,t._stereo=i._stereo,t._pos=i._pos,t._pannerAttr=i._pannerAttr,t._stereo?i.stereo(t._stereo):t._pos?i.pos(t._pos[0],t._pos[1],t._pos[2],t._id):t._panner&&(t._panner.disconnect(0),t._panner=void 0,i._refreshBuffer(t)),e.call(this)}}(Sound.prototype.reset);var t=function(e,t){"spatial"===(t=t||"spatial")?(e._panner=Howler.ctx.createPanner(),e._panner.coneInnerAngle=e._pannerAttr.coneInnerAngle,e._panner.coneOuterAngle=e._pannerAttr.coneOuterAngle,e._panner.coneOuterGain=e._pannerAttr.coneOuterGain,e._panner.distanceModel=e._pannerAttr.distanceModel,e._panner.maxDistance=e._pannerAttr.maxDistance,e._panner.refDistance=e._pannerAttr.refDistance,e._panner.rolloffFactor=e._pannerAttr.rolloffFactor,e._panner.panningModel=e._pannerAttr.panningModel,void 0!==e._panner.positionX?(e._panner.positionX.setValueAtTime(e._pos[0],Howler.ctx.currentTime),e._panner.positionY.setValueAtTime(e._pos[1],Howler.ctx.currentTime),e._panner.positionZ.setValueAtTime(e._pos[2],Howler.ctx.currentTime)):e._panner.setPosition(e._pos[0],e._pos[1],e._pos[2]),void 0!==e._panner.orientationX?(e._panner.orientationX.setValueAtTime(e._orientation[0],Howler.ctx.currentTime),e._panner.orientationY.setValueAtTime(e._orientation[1],Howler.ctx.currentTime),e._panner.orientationZ.setValueAtTime(e._orientation[2],Howler.ctx.currentTime)):e._panner.setOrientation(e._orientation[0],e._orientation[1],e._orientation[2])):(e._panner=Howler.ctx.createStereoPanner(),e._panner.pan.setValueAtTime(e._stereo,Howler.ctx.currentTime)),e._panner.connect(e._node),e._paused||e._parent.pause(e._id,!0).play(e._id,!0)}}()}(dk);let pk={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};const mk=/[&<>"']/,fk=/[&<>"']/g,gk=/[<>"']|&(?!#?\w+;)/,_k=/[<>"']|&(?!#?\w+;)/g,bk={"&":"&","<":"<",">":">",'"':""","'":"'"},vk=e=>bk[e];function yk(e,t){if(t){if(mk.test(e))return e.replace(fk,vk)}else if(gk.test(e))return e.replace(_k,vk);return e}const wk=/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/gi;function xk(e){return e.replace(wk,((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 Nk=/(^|[^\[])\^/g;function kk(e,t){e=e.source||e,t=t||"";const i={replace:(t,n)=>(n=(n=n.source||n).replace(Nk,"$1"),e=e.replace(t,n),i),getRegex:()=>new RegExp(e,t)};return i}const Ak=/[^\w:]/g,Ck=/^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;function Ok(e,t,i){if(e){let e;try{e=decodeURIComponent(xk(i)).replace(Ak,"").toLowerCase()}catch(n){return null}if(0===e.indexOf("javascript:")||0===e.indexOf("vbscript:")||0===e.indexOf("data:"))return null}t&&!Ck.test(i)&&(i=function(e,t){Sk[" "+e]||(Ek.test(e)?Sk[" "+e]=e+"/":Sk[" "+e]=Tk(e,"/",!0));const i=-1===(e=Sk[" "+e]).indexOf(":");return"//"===t.substring(0,2)?i?t:e.replace(Fk,"$1")+t:"/"===t.charAt(0)?i?t:e.replace(Dk,"$1")+t:e+t}(t,i));try{i=encodeURI(i).replace(/%25/g,"%")}catch(n){return null}return i}const Sk={},Ek=/^[^:]+:\/*[^/]*$/,Fk=/^([^:]+:)[\s\S]*$/,Dk=/^([^:]+:\/*[^/]*)[\s\S]*$/;const Bk={exec:function(){}};function Lk(e){let t,i,n=1;for(;n<arguments.length;n++)for(i in t=arguments[n],t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e}function Mk(e,t){const i=e.replace(/\|/g,((e,t,i)=>{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.length<t;)i.push("");for(;n<i.length;n++)i[n]=i[n].trim().replace(/\\\|/g,"|");return i}function Tk(e,t,i){const n=e.length;if(0===n)return"";let r=0;for(;r<n;){const o=e.charAt(n-r-1);if(o!==t||i){if(o===t||!i)break;r++}else r++}return e.substr(0,n-r)}function Rk(e){e&&e.sanitize&&!e.silent&&console.warn("marked(): sanitize and sanitizer parameters are deprecated since version 0.7.0, should not be used and will be removed in the future. Read more here: https://marked.js.org/#/USING_ADVANCED.md#options")}function $k(e,t){if(t<1)return"";let i="";for(;t>1;)1&t&&(i+=e),t>>=1,e+=e;return i+e}function jk(e,t,i,n){const r=t.href,o=t.title?yk(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:yk(a)}}class Ik{constructor(e){this.options=e||pk}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:Tk(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=Tk(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<b;a++){this.lexer.state.top=!1,g.items[a].tokens=this.lexer.blockTokens(g.items[a].text,[]);const e=g.items[a].tokens.filter((e=>"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]):yk(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:Mk(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<a;i++)/^ *-+: *$/.test(e.align[i])?e.align[i]="right":/^ *:-+: *$/.test(e.align[i])?e.align[i]="center":/^ *:-+ *$/.test(e.align[i])?e.align[i]="left":e.align[i]=null;for(a=e.rows.length,i=0;i<a;i++)e.rows[i]=Mk(e.rows[i],e.header.length).map((e=>({text:e})));for(a=e.header.length,n=0;n<a;n++)e.header[n].tokens=[],this.lexer.inlineTokens(e.header[n].text,e.header[n].tokens);for(a=e.rows.length,n=0;n<a;n++)for(o=e.rows[n],r=0;r<o.length;r++)o[r].tokens=[],this.lexer.inlineTokens(o[r].text,o[r].tokens);return e}}}lheading(e){const t=this.rules.block.lheading.exec(e);if(t){const e={type:"heading",raw:t[0],depth:"="===t[2].charAt(0)?1:2,text:t[1],tokens:[]};return this.lexer.inline(e.text,e.tokens),e}}paragraph(e){const t=this.rules.block.paragraph.exec(e);if(t){const e={type:"paragraph",raw:t[0],text:"\n"===t[1].charAt(t[1].length-1)?t[1].slice(0,-1):t[1],tokens:[]};return this.lexer.inline(e.text,e.tokens),e}}text(e){const t=this.rules.block.text.exec(e);if(t){const e={type:"text",raw:t[0],text:t[0],tokens:[]};return this.lexer.inline(e.text,e.tokens),e}}escape(e){const t=this.rules.inline.escape.exec(e);if(t)return{type:"escape",raw:t[0],text:yk(t[1])}}tag(e){const t=this.rules.inline.tag.exec(e);if(t)return!this.lexer.state.inLink&&/^<a /i.test(t[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&/^<\/a>/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]):yk(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)){if(!/>$/.test(e))return;const t=Tk(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<i;r++)if("\\"===e[r])r++;else if(e[r]===t[0])n++;else if(e[r]===t[1]&&(n--,n<0))return r;return-1}(t[2],"()");if(e>-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(i)&&(i=this.options.pedantic&&!/>$/.test(e)?i.slice(1):i.slice(1,-1)),jk(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 jk(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=yk(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=yk(this.options.mangle?t(i[1]):i[1]),n="mailto:"+e):(e=yk(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=yk(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=yk(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]):yk(i[0]):i[0]:yk(this.options.smartypants?t(i[0]):i[0]),{type:"text",raw:i[0],text:e}}}}const Pk={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]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|<![A-Z][\\s\\S]*?(?:>\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n *)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$))",def:/^ {0,3}\[(label)\]: *(?:\n *)?<?([^\s>]+)>?(?:(?: +(?:\n *)?| *\n *)(title))? *(?:\n+|$)/,table:Bk,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?'|\([^()]*\))/};Pk.def=kk(Pk.def).replace("label",Pk._label).replace("title",Pk._title).getRegex(),Pk.bullet=/(?:[*+-]|\d{1,9}[.)])/,Pk.listItemStart=kk(/^( *)(bull) */).replace("bull",Pk.bullet).getRegex(),Pk.list=kk(Pk.list).replace(/bull/g,Pk.bullet).replace("hr","\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))").replace("def","\\n+(?="+Pk.def.source+")").getRegex(),Pk._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",Pk._comment=/<!--(?!-?>)[\s\S]*?(?:-->|$)/,Pk.html=kk(Pk.html,"i").replace("comment",Pk._comment).replace("tag",Pk._tag).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),Pk.paragraph=kk(Pk._paragraph).replace("hr",Pk.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","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",Pk._tag).getRegex(),Pk.blockquote=kk(Pk.blockquote).replace("paragraph",Pk.paragraph).getRegex(),Pk.normal=Lk({},Pk),Pk.gfm=Lk({},Pk.normal,{table:"^ *([^\\n ].*\\|.*)\\n {0,3}(?:\\| *)?(:?-+:? *(?:\\| *:?-+:? *)*)(?:\\| *)?(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)"}),Pk.gfm.table=kk(Pk.gfm.table).replace("hr",Pk.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","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",Pk._tag).getRegex(),Pk.gfm.paragraph=kk(Pk._paragraph).replace("hr",Pk.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("table",Pk.gfm.table).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",Pk._tag).getRegex(),Pk.pedantic=Lk({},Pk.normal,{html:kk("^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:\"[^\"]*\"|'[^']*'|\\s[^'\"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))").replace("comment",Pk._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:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:Bk,paragraph:kk(Pk.normal._paragraph).replace("hr",Pk.hr).replace("heading"," *#{1,6} *[^\n]").replace("lheading",Pk.lheading).replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").getRegex()});const zk={escape:/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:Bk,tag:"^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\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:Bk,text:/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,punctuation:/^([\spunctuation])/};function Uk(e){return e.replace(/---/g,"—").replace(/--/g,"–").replace(/(^|[-\u2014/(\[{"\s])'/g,"$1‘").replace(/'/g,"’").replace(/(^|[-\u2014/(\[{\u2018\s])"/g,"$1“").replace(/"/g,"”").replace(/\.{3}/g,"…")}function Wk(e){let t,i,n="";const r=e.length;for(t=0;t<r;t++)i=e.charCodeAt(t),Math.random()>.5&&(i="x"+i.toString(16)),n+="&#"+i+";";return n}zk._punctuation="!\"#$%&'()+\\-.,/:;<=>?@\\[\\]`^{|}~",zk.punctuation=kk(zk.punctuation).replace(/punctuation/g,zk._punctuation).getRegex(),zk.blockSkip=/\[[^\]]*?\]\([^\)]*?\)|`[^`]*?`|<[^>]*?>/g,zk.escapedEmSt=/\\\*|\\_/g,zk._comment=kk(Pk._comment).replace("(?:--\x3e|$)","--\x3e").getRegex(),zk.emStrong.lDelim=kk(zk.emStrong.lDelim).replace(/punct/g,zk._punctuation).getRegex(),zk.emStrong.rDelimAst=kk(zk.emStrong.rDelimAst,"g").replace(/punct/g,zk._punctuation).getRegex(),zk.emStrong.rDelimUnd=kk(zk.emStrong.rDelimUnd,"g").replace(/punct/g,zk._punctuation).getRegex(),zk._escapes=/\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/g,zk._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/,zk._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])?)+(?![-_])/,zk.autolink=kk(zk.autolink).replace("scheme",zk._scheme).replace("email",zk._email).getRegex(),zk._attribute=/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/,zk.tag=kk(zk.tag).replace("comment",zk._comment).replace("attribute",zk._attribute).getRegex(),zk._label=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,zk._href=/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/,zk._title=/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/,zk.link=kk(zk.link).replace("label",zk._label).replace("href",zk._href).replace("title",zk._title).getRegex(),zk.reflink=kk(zk.reflink).replace("label",zk._label).replace("ref",Pk._label).getRegex(),zk.nolink=kk(zk.nolink).replace("ref",Pk._label).getRegex(),zk.reflinkSearch=kk(zk.reflinkSearch,"g").replace("reflink",zk.reflink).replace("nolink",zk.nolink).getRegex(),zk.normal=Lk({},zk),zk.pedantic=Lk({},zk.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:kk(/^!?\[(label)\]\((.*?)\)/).replace("label",zk._label).getRegex(),reflink:kk(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",zk._label).getRegex()}),zk.gfm=Lk({},zk.normal,{escape:kk(zk.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]*?(?:(?=[\\<!\[`*~_]|\b_|https?:\/\/|ftp:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/}),zk.gfm.url=kk(zk.gfm.url,"i").replace("email",zk.gfm._extended_email).getRegex(),zk.breaks=Lk({},zk.gfm,{br:kk(zk.br).replace("{2,}","*").getRegex(),text:kk(zk.gfm.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()});class Hk{constructor(e){this.tokens=[],this.tokens.links=Object.create(null),this.options=e||pk,this.options.tokenizer=this.options.tokenizer||new Ik,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};const t={block:Pk.normal,inline:zk.normal};this.options.pedantic?(t.block=Pk.pedantic,t.inline=zk.pedantic):this.options.gfm&&(t.block=Pk.gfm,this.options.breaks?t.inline=zk.breaks:t.inline=zk.gfm),this.tokenizer.rules=t}static get rules(){return{block:Pk,inline:zk}}static lex(e,t){return new Hk(t).lex(e)}static lexInline(e,t){return new Hk(t).inlineTokens(e)}lex(e){let t;for(e=e.replace(/\r\n|\r/g,"\n").replace(/\t/g," "),this.blockTokens(e,this.tokens);t=this.inlineQueue.shift();)this.inlineTokens(t.src,t.tokens);return this.tokens}blockTokens(e,t=[]){let i,n,r,o;for(this.options.pedantic&&(e=e.replace(/^ +$/gm,""));e;)if(!(this.options.extensions&&this.options.extensions.block&&this.options.extensions.block.some((n=>!!(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)+"["+$k("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)+"["+$k("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,Wk))e=e.substring(i.raw.length),t.push(i);else if(this.state.inLink||!(i=this.tokenizer.url(e,Wk))){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,Uk))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 qk{constructor(e){this.options=e||pk}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?'<pre><code class="'+this.options.langPrefix+yk(n,!0)+'">'+(i?e:yk(e,!0))+"</code></pre>\n":"<pre><code>"+(i?e:yk(e,!0))+"</code></pre>\n"}blockquote(e){return"<blockquote>\n"+e+"</blockquote>\n"}html(e){return e}heading(e,t,i,n){return this.options.headerIds?"<h"+t+' id="'+this.options.headerPrefix+n.slug(i)+'">'+e+"</h"+t+">\n":"<h"+t+">"+e+"</h"+t+">\n"}hr(){return this.options.xhtml?"<hr/>\n":"<hr>\n"}list(e,t,i){const n=t?"ol":"ul";return"<"+n+(t&&1!==i?' start="'+i+'"':"")+">\n"+e+"</"+n+">\n"}listitem(e){return"<li>"+e+"</li>\n"}checkbox(e){return"<input "+(e?'checked="" ':"")+'disabled="" type="checkbox"'+(this.options.xhtml?" /":"")+"> "}paragraph(e){return"<p>"+e+"</p>\n"}table(e,t){return t&&(t="<tbody>"+t+"</tbody>"),"<table>\n<thead>\n"+e+"</thead>\n"+t+"</table>\n"}tablerow(e){return"<tr>\n"+e+"</tr>\n"}tablecell(e,t){const i=t.header?"th":"td";return(t.align?"<"+i+' align="'+t.align+'">':"<"+i+">")+e+"</"+i+">\n"}strong(e){return"<strong>"+e+"</strong>"}em(e){return"<em>"+e+"</em>"}codespan(e){return"<code>"+e+"</code>"}br(){return this.options.xhtml?"<br/>":"<br>"}del(e){return"<del>"+e+"</del>"}link(e,t,i){if(null===(e=Ok(this.options.sanitize,this.options.baseUrl,e)))return i;let n='<a href="'+yk(e)+'"';return t&&(n+=' title="'+t+'"'),n+=">"+i+"</a>",n}image(e,t,i){if(null===(e=Ok(this.options.sanitize,this.options.baseUrl,e)))return i;let n='<img src="'+e+'" alt="'+i+'"';return t&&(n+=' title="'+t+'"'),n+=this.options.xhtml?"/>":">",n}text(e){return e}}class Vk{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 Gk{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 Kk{constructor(e){this.options=e||pk,this.options.renderer=this.options.renderer||new qk,this.renderer=this.options.renderer,this.renderer.options=this.options,this.textRenderer=new Vk,this.slugger=new Gk}static parse(e,t){return new Kk(t).parse(e)}static parseInline(e,t){return new Kk(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;i<x;i++)if(d=e[i],this.options.extensions&&this.options.extensions.renderers&&this.options.extensions.renderers[d.type]&&(y=this.options.extensions.renderers[d.type].call({parser:this},d),!1!==y||!["space","hr","heading","code","table","blockquote","list","html","paragraph","text"].includes(d.type)))w+=y||"";else switch(d.type){case"space":continue;case"hr":w+=this.renderer.hr();continue;case"heading":w+=this.renderer.heading(this.parseInline(d.tokens),d.depth,xk(this.parseInline(d.tokens,this.textRenderer)),this.slugger);continue;case"code":w+=this.renderer.code(d.text,d.lang,d.escaped);continue;case"table":for(l="",c="",o=d.header.length,n=0;n<o;n++)c+=this.renderer.tablecell(this.parseInline(d.header[n].tokens),{header:!0,align:d.align[n]});for(l+=this.renderer.tablerow(c),u="",o=d.rows.length,n=0;n<o;n++){for(s=d.rows[n],c="",a=s.length,r=0;r<a;r++)c+=this.renderer.tablecell(this.parseInline(s[r].tokens),{header:!1,align:d.align[r]});u+=this.renderer.tablerow(c)}w+=this.renderer.table(l,u);continue;case"blockquote":u=this.parse(d.tokens),w+=this.renderer.blockquote(u);continue;case"list":for(h=d.ordered,p=d.start,m=d.loose,o=d.items.length,u="",n=0;n<o;n++)g=d.items[n],_=g.checked,b=g.task,f="",g.task&&(v=this.renderer.checkbox(_),m?g.tokens.length>0&&"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<x&&"text"===e[i+1].type;)d=e[++i],u+="\n"+(d.tokens?this.parseInline(d.tokens):d.text);w+=t?this.renderer.paragraph(u):u;continue;default:{const e='Token with "'+d.type+'" type was not found.';if(this.options.silent)return void console.error(e);throw new Error(e)}}return w}parseInline(e,t){t=t||this.renderer;let i,n,r,o="";const a=e.length;for(i=0;i<a;i++)if(n=e[i],this.options.extensions&&this.options.extensions.renderers&&this.options.extensions.renderers[n.type]&&(r=this.options.extensions.renderers[n.type].call({parser:this},n),!1!==r||!["escape","html","link","image","strong","em","codespan","br","del","text"].includes(n.type)))o+=r||"";else switch(n.type){case"escape":o+=t.text(n.text);break;case"html":o+=t.html(n.text);break;case"link":o+=t.link(n.href,n.title,this.parseInline(n.tokens,t));break;case"image":o+=t.image(n.href,n.title,n.text);break;case"strong":o+=t.strong(this.parseInline(n.tokens,t));break;case"em":o+=t.em(this.parseInline(n.tokens,t));break;case"codespan":o+=t.codespan(n.text);break;case"br":o+=t.br();break;case"del":o+=t.del(this.parseInline(n.tokens,t));break;case"text":o+=t.text(n.text);break;default:{const e='Token with "'+n.type+'" type was not found.';if(this.options.silent)return void console.error(e);throw new Error(e)}}return o}}function Xk(e,t,i){if(null==e)throw new Error("marked(): input parameter is undefined or null");if("string"!=typeof e)throw new Error("marked(): input parameter is of type "+Object.prototype.toString.call(e)+", string expected");if("function"==typeof t&&(i=t,t=null),Rk(t=Lk({},Xk.defaults,t||{})),i){const r=t.highlight;let o;try{o=Hk.lex(e,t)}catch(n){return i(n)}const a=function(e){let a;if(!e)try{t.walkTokens&&Xk.walkTokens(o,t.walkTokens),a=Kk.parse(o,t)}catch(n){e=n}return t.highlight=r,e?i(e):i(null,a)};if(!r||r.length<3)return a();if(delete t.highlight,!o.length)return a();let s=0;return Xk.walkTokens(o,(function(e){"code"===e.type&&(s++,setTimeout((()=>{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=Hk.lex(e,t);return t.walkTokens&&Xk.walkTokens(i,t.walkTokens),Kk.parse(i,t)}catch(n){if(n.message+="\nPlease report this to https://github.com/markedjs/marked.",t.silent)return"<p>An error occurred:</p><pre>"+yk(n.message+"",!0)+"</pre>";throw n}}Xk.options=Xk.setOptions=function(e){var t;return Lk(Xk.defaults,e),t=Xk.defaults,pk=t,Xk},Xk.getDefaults=hk,Xk.defaults=pk,Xk.use=function(...e){const t=Lk({},...e),i=Xk.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=Xk.defaults.renderer||new qk;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=Xk.defaults.tokenizer||new Ik;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=Xk.defaults.walkTokens;t.walkTokens=function(t){e.walkTokens.call(this,t),i&&i.call(this,t)}}n&&(t.extensions=i),Xk.setOptions(t)}))},Xk.walkTokens=function(e,t){for(const i of e)switch(t.call(Xk,i),i.type){case"table":for(const e of i.header)Xk.walkTokens(e.tokens,t);for(const e of i.rows)for(const i of e)Xk.walkTokens(i.tokens,t);break;case"list":Xk.walkTokens(i.items,t);break;default:Xk.defaults.extensions&&Xk.defaults.extensions.childTokens&&Xk.defaults.extensions.childTokens[i.type]?Xk.defaults.extensions.childTokens[i.type].forEach((function(e){Xk.walkTokens(i[e],t)})):i.tokens&&Xk.walkTokens(i.tokens,t)}},Xk.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");Rk(t=Lk({},Xk.defaults,t||{}));try{const i=Hk.lexInline(e,t);return t.walkTokens&&Xk.walkTokens(i,t.walkTokens),Kk.parseInline(i,t)}catch(i){if(i.message+="\nPlease report this to https://github.com/markedjs/marked.",t.silent)return"<p>An error occurred:</p><pre>"+yk(i.message+"",!0)+"</pre>";throw i}},Xk.Parser=Kk,Xk.parser=Kk.parse,Xk.Renderer=qk,Xk.TextRenderer=Vk,Xk.Lexer=Hk,Xk.lexer=Hk.lex,Xk.Tokenizer=Ik,Xk.Slugger=Gk,Xk.parse=Xk,Kk.parse,Hk.lex;export{he as $,Fe as A,l_ as B,ff as C,sf as D,bg as E,De as F,Uf as G,Jf as H,og as I,dg as J,wg as K,Df as L,mg as M,Og as N,Ig as O,lb as P,Of as Q,ag as R,ub as S,Yy as T,yN as U,kN as V,Be as W,Sf as X,uk as Y,ib as Z,tg as _,w as a,dk as a0,Xk as a1,de as a2,U as a3,re as b,ke as c,Ft as d,Ee as e,N as f,ne as g,_r as h,da as i,Si as j,rc as k,Pe as l,ou as m,hh as n,mh as o,e_ as p,q,St as r,Se as s,t_ as t,n_ as u,r_ as v,Gf as w,yg as x,Ce as y,s_ as z}; -//# sourceMappingURL=vendor.273f4765.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<o.length;a++){var s=n._soundById(o[a]);if(s){if("number"!=typeof e)return s._stereo;s._stereo=e,s._pos=[e,0,0],s._node&&(s._pannerAttr.panningModel="equalpower",s._panner&&s._panner.pan||t(s,r),"spatial"===r?void 0!==s._panner.positionX?(s._panner.positionX.setValueAtTime(e,Howler.ctx.currentTime),s._panner.positionY.setValueAtTime(0,Howler.ctx.currentTime),s._panner.positionZ.setValueAtTime(0,Howler.ctx.currentTime)):s._panner.setPosition(e,0,0):s._panner.pan.setValueAtTime(e,Howler.ctx.currentTime)),n._emit("stereo",s._id)}}return n},Howl.prototype.pos=function(e,i,n,r){var o=this;if(!o._webAudio)return o;if("loaded"!==o._state)return o._queue.push({event:"pos",action:function(){o.pos(e,i,n,r)}}),o;if(i="number"!=typeof i?0:i,n="number"!=typeof n?-.5:n,void 0===r){if("number"!=typeof e)return o._pos;o._pos=[e,i,n]}for(var a=o._getSoundIds(r),s=0;s<a.length;s++){var c=o._soundById(a[s]);if(c){if("number"!=typeof e)return c._pos;c._pos=[e,i,n],c._node&&(c._panner&&!c._panner.pan||t(c,"spatial"),void 0!==c._panner.positionX?(c._panner.positionX.setValueAtTime(e,Howler.ctx.currentTime),c._panner.positionY.setValueAtTime(i,Howler.ctx.currentTime),c._panner.positionZ.setValueAtTime(n,Howler.ctx.currentTime)):c._panner.setPosition(e,i,n)),o._emit("pos",c._id)}}return o},Howl.prototype.orientation=function(e,i,n,r){var o=this;if(!o._webAudio)return o;if("loaded"!==o._state)return o._queue.push({event:"orientation",action:function(){o.orientation(e,i,n,r)}}),o;if(i="number"!=typeof i?o._orientation[1]:i,n="number"!=typeof n?o._orientation[2]:n,void 0===r){if("number"!=typeof e)return o._orientation;o._orientation=[e,i,n]}for(var a=o._getSoundIds(r),s=0;s<a.length;s++){var c=o._soundById(a[s]);if(c){if("number"!=typeof e)return c._orientation;c._orientation=[e,i,n],c._node&&(c._panner||(c._pos||(c._pos=o._pos||[0,0,-.5]),t(c,"spatial")),void 0!==c._panner.orientationX?(c._panner.orientationX.setValueAtTime(e,Howler.ctx.currentTime),c._panner.orientationY.setValueAtTime(i,Howler.ctx.currentTime),c._panner.orientationZ.setValueAtTime(n,Howler.ctx.currentTime)):c._panner.setOrientation(e,i,n)),o._emit("orientation",c._id)}}return o},Howl.prototype.pannerAttr=function(){var e,i,n,r=this,o=arguments;if(!r._webAudio)return r;if(0===o.length)return r._pannerAttr;if(1===o.length){if("object"!=typeof o[0])return(n=r._soundById(parseInt(o[0],10)))?n._pannerAttr:r._pannerAttr;e=o[0],void 0===i&&(e.pannerAttr||(e.pannerAttr={coneInnerAngle:e.coneInnerAngle,coneOuterAngle:e.coneOuterAngle,coneOuterGain:e.coneOuterGain,distanceModel:e.distanceModel,maxDistance:e.maxDistance,refDistance:e.refDistance,rolloffFactor:e.rolloffFactor,panningModel:e.panningModel}),r._pannerAttr={coneInnerAngle:void 0!==e.pannerAttr.coneInnerAngle?e.pannerAttr.coneInnerAngle:r._coneInnerAngle,coneOuterAngle:void 0!==e.pannerAttr.coneOuterAngle?e.pannerAttr.coneOuterAngle:r._coneOuterAngle,coneOuterGain:void 0!==e.pannerAttr.coneOuterGain?e.pannerAttr.coneOuterGain:r._coneOuterGain,distanceModel:void 0!==e.pannerAttr.distanceModel?e.pannerAttr.distanceModel:r._distanceModel,maxDistance:void 0!==e.pannerAttr.maxDistance?e.pannerAttr.maxDistance:r._maxDistance,refDistance:void 0!==e.pannerAttr.refDistance?e.pannerAttr.refDistance:r._refDistance,rolloffFactor:void 0!==e.pannerAttr.rolloffFactor?e.pannerAttr.rolloffFactor:r._rolloffFactor,panningModel:void 0!==e.pannerAttr.panningModel?e.pannerAttr.panningModel:r._panningModel})}else 2===o.length&&(e=o[0],i=parseInt(o[1],10));for(var a=r._getSoundIds(i),s=0;s<a.length;s++)if(n=r._soundById(a[s])){var c=n._pannerAttr;c={coneInnerAngle:void 0!==e.coneInnerAngle?e.coneInnerAngle:c.coneInnerAngle,coneOuterAngle:void 0!==e.coneOuterAngle?e.coneOuterAngle:c.coneOuterAngle,coneOuterGain:void 0!==e.coneOuterGain?e.coneOuterGain:c.coneOuterGain,distanceModel:void 0!==e.distanceModel?e.distanceModel:c.distanceModel,maxDistance:void 0!==e.maxDistance?e.maxDistance:c.maxDistance,refDistance:void 0!==e.refDistance?e.refDistance:c.refDistance,rolloffFactor:void 0!==e.rolloffFactor?e.rolloffFactor:c.rolloffFactor,panningModel:void 0!==e.panningModel?e.panningModel:c.panningModel};var l=n._panner;l?(l.coneInnerAngle=c.coneInnerAngle,l.coneOuterAngle=c.coneOuterAngle,l.coneOuterGain=c.coneOuterGain,l.distanceModel=c.distanceModel,l.maxDistance=c.maxDistance,l.refDistance=c.refDistance,l.rolloffFactor=c.rolloffFactor,l.panningModel=c.panningModel):(n._pos||(n._pos=r._pos||[0,0,-.5]),t(n,"spatial"))}return r},Sound.prototype.init=function(e){return function(){var t=this,i=t._parent;t._orientation=i._orientation,t._stereo=i._stereo,t._pos=i._pos,t._pannerAttr=i._pannerAttr,e.call(this),t._stereo?i.stereo(t._stereo):t._pos&&i.pos(t._pos[0],t._pos[1],t._pos[2],t._id)}}(Sound.prototype.init),Sound.prototype.reset=function(e){return function(){var t=this,i=t._parent;return t._orientation=i._orientation,t._stereo=i._stereo,t._pos=i._pos,t._pannerAttr=i._pannerAttr,t._stereo?i.stereo(t._stereo):t._pos?i.pos(t._pos[0],t._pos[1],t._pos[2],t._id):t._panner&&(t._panner.disconnect(0),t._panner=void 0,i._refreshBuffer(t)),e.call(this)}}(Sound.prototype.reset);var t=function(e,t){"spatial"===(t=t||"spatial")?(e._panner=Howler.ctx.createPanner(),e._panner.coneInnerAngle=e._pannerAttr.coneInnerAngle,e._panner.coneOuterAngle=e._pannerAttr.coneOuterAngle,e._panner.coneOuterGain=e._pannerAttr.coneOuterGain,e._panner.distanceModel=e._pannerAttr.distanceModel,e._panner.maxDistance=e._pannerAttr.maxDistance,e._panner.refDistance=e._pannerAttr.refDistance,e._panner.rolloffFactor=e._pannerAttr.rolloffFactor,e._panner.panningModel=e._pannerAttr.panningModel,void 0!==e._panner.positionX?(e._panner.positionX.setValueAtTime(e._pos[0],Howler.ctx.currentTime),e._panner.positionY.setValueAtTime(e._pos[1],Howler.ctx.currentTime),e._panner.positionZ.setValueAtTime(e._pos[2],Howler.ctx.currentTime)):e._panner.setPosition(e._pos[0],e._pos[1],e._pos[2]),void 0!==e._panner.orientationX?(e._panner.orientationX.setValueAtTime(e._orientation[0],Howler.ctx.currentTime),e._panner.orientationY.setValueAtTime(e._orientation[1],Howler.ctx.currentTime),e._panner.orientationZ.setValueAtTime(e._orientation[2],Howler.ctx.currentTime)):e._panner.setOrientation(e._orientation[0],e._orientation[1],e._orientation[2])):(e._panner=Howler.ctx.createStereoPanner(),e._panner.pan.setValueAtTime(e._stereo,Howler.ctx.currentTime)),e._panner.connect(e._node),e._paused||e._parent.pause(e._id,!0).play(e._id,!0)}}()}(mk);let gk={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};const _k=/[&<>"']/,bk=/[&<>"']/g,vk=/[<>"']|&(?!#?\w+;)/,yk=/[<>"']|&(?!#?\w+;)/g,wk={"&":"&","<":"<",">":">",'"':""","'":"'"},xk=e=>wk[e];function Nk(e,t){if(t){if(_k.test(e))return e.replace(bk,xk)}else if(vk.test(e))return e.replace(yk,xk);return e}const kk=/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/gi;function Ak(e){return e.replace(kk,((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 Ck=/(^|[^\[])\^/g;function Ok(e,t){e=e.source||e,t=t||"";const i={replace:(t,n)=>(n=(n=n.source||n).replace(Ck,"$1"),e=e.replace(t,n),i),getRegex:()=>new RegExp(e,t)};return i}const Sk=/[^\w:]/g,Ek=/^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;function Fk(e,t,i){if(e){let e;try{e=decodeURIComponent(Ak(i)).replace(Sk,"").toLowerCase()}catch(n){return null}if(0===e.indexOf("javascript:")||0===e.indexOf("vbscript:")||0===e.indexOf("data:"))return null}t&&!Ek.test(i)&&(i=function(e,t){Dk[" "+e]||(Bk.test(e)?Dk[" "+e]=e+"/":Dk[" "+e]=jk(e,"/",!0));const i=-1===(e=Dk[" "+e]).indexOf(":");return"//"===t.substring(0,2)?i?t:e.replace(Lk,"$1")+t:"/"===t.charAt(0)?i?t:e.replace(Mk,"$1")+t:e+t}(t,i));try{i=encodeURI(i).replace(/%25/g,"%")}catch(n){return null}return i}const Dk={},Bk=/^[^:]+:\/*[^/]*$/,Lk=/^([^:]+:)[\s\S]*$/,Mk=/^([^:]+:\/*[^/]*)[\s\S]*$/;const Tk={exec:function(){}};function Rk(e){let t,i,n=1;for(;n<arguments.length;n++)for(i in t=arguments[n],t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e}function $k(e,t){const i=e.replace(/\|/g,((e,t,i)=>{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.length<t;)i.push("");for(;n<i.length;n++)i[n]=i[n].trim().replace(/\\\|/g,"|");return i}function jk(e,t,i){const n=e.length;if(0===n)return"";let r=0;for(;r<n;){const o=e.charAt(n-r-1);if(o!==t||i){if(o===t||!i)break;r++}else r++}return e.substr(0,n-r)}function Ik(e){e&&e.sanitize&&!e.silent&&console.warn("marked(): sanitize and sanitizer parameters are deprecated since version 0.7.0, should not be used and will be removed in the future. Read more here: https://marked.js.org/#/USING_ADVANCED.md#options")}function Pk(e,t){if(t<1)return"";let i="";for(;t>1;)1&t&&(i+=e),t>>=1,e+=e;return i+e}function zk(e,t,i,n){const r=t.href,o=t.title?Nk(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:Nk(a)}}class Uk{constructor(e){this.options=e||gk}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:jk(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=jk(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<b;a++){this.lexer.state.top=!1,g.items[a].tokens=this.lexer.blockTokens(g.items[a].text,[]);const e=g.items[a].tokens.filter((e=>"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]):Nk(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:$k(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<a;i++)/^ *-+: *$/.test(e.align[i])?e.align[i]="right":/^ *:-+: *$/.test(e.align[i])?e.align[i]="center":/^ *:-+ *$/.test(e.align[i])?e.align[i]="left":e.align[i]=null;for(a=e.rows.length,i=0;i<a;i++)e.rows[i]=$k(e.rows[i],e.header.length).map((e=>({text:e})));for(a=e.header.length,n=0;n<a;n++)e.header[n].tokens=[],this.lexer.inlineTokens(e.header[n].text,e.header[n].tokens);for(a=e.rows.length,n=0;n<a;n++)for(o=e.rows[n],r=0;r<o.length;r++)o[r].tokens=[],this.lexer.inlineTokens(o[r].text,o[r].tokens);return e}}}lheading(e){const t=this.rules.block.lheading.exec(e);if(t){const e={type:"heading",raw:t[0],depth:"="===t[2].charAt(0)?1:2,text:t[1],tokens:[]};return this.lexer.inline(e.text,e.tokens),e}}paragraph(e){const t=this.rules.block.paragraph.exec(e);if(t){const e={type:"paragraph",raw:t[0],text:"\n"===t[1].charAt(t[1].length-1)?t[1].slice(0,-1):t[1],tokens:[]};return this.lexer.inline(e.text,e.tokens),e}}text(e){const t=this.rules.block.text.exec(e);if(t){const e={type:"text",raw:t[0],text:t[0],tokens:[]};return this.lexer.inline(e.text,e.tokens),e}}escape(e){const t=this.rules.inline.escape.exec(e);if(t)return{type:"escape",raw:t[0],text:Nk(t[1])}}tag(e){const t=this.rules.inline.tag.exec(e);if(t)return!this.lexer.state.inLink&&/^<a /i.test(t[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&/^<\/a>/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]):Nk(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)){if(!/>$/.test(e))return;const t=jk(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<i;r++)if("\\"===e[r])r++;else if(e[r]===t[0])n++;else if(e[r]===t[1]&&(n--,n<0))return r;return-1}(t[2],"()");if(e>-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(i)&&(i=this.options.pedantic&&!/>$/.test(e)?i.slice(1):i.slice(1,-1)),zk(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 zk(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=Nk(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=Nk(this.options.mangle?t(i[1]):i[1]),n="mailto:"+e):(e=Nk(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=Nk(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=Nk(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]):Nk(i[0]):i[0]:Nk(this.options.smartypants?t(i[0]):i[0]),{type:"text",raw:i[0],text:e}}}}const Wk={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]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|<![A-Z][\\s\\S]*?(?:>\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n *)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$))",def:/^ {0,3}\[(label)\]: *(?:\n *)?<?([^\s>]+)>?(?:(?: +(?:\n *)?| *\n *)(title))? *(?:\n+|$)/,table:Tk,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?'|\([^()]*\))/};Wk.def=Ok(Wk.def).replace("label",Wk._label).replace("title",Wk._title).getRegex(),Wk.bullet=/(?:[*+-]|\d{1,9}[.)])/,Wk.listItemStart=Ok(/^( *)(bull) */).replace("bull",Wk.bullet).getRegex(),Wk.list=Ok(Wk.list).replace(/bull/g,Wk.bullet).replace("hr","\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))").replace("def","\\n+(?="+Wk.def.source+")").getRegex(),Wk._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",Wk._comment=/<!--(?!-?>)[\s\S]*?(?:-->|$)/,Wk.html=Ok(Wk.html,"i").replace("comment",Wk._comment).replace("tag",Wk._tag).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),Wk.paragraph=Ok(Wk._paragraph).replace("hr",Wk.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","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",Wk._tag).getRegex(),Wk.blockquote=Ok(Wk.blockquote).replace("paragraph",Wk.paragraph).getRegex(),Wk.normal=Rk({},Wk),Wk.gfm=Rk({},Wk.normal,{table:"^ *([^\\n ].*\\|.*)\\n {0,3}(?:\\| *)?(:?-+:? *(?:\\| *:?-+:? *)*)(?:\\| *)?(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)"}),Wk.gfm.table=Ok(Wk.gfm.table).replace("hr",Wk.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","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",Wk._tag).getRegex(),Wk.gfm.paragraph=Ok(Wk._paragraph).replace("hr",Wk.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("table",Wk.gfm.table).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",Wk._tag).getRegex(),Wk.pedantic=Rk({},Wk.normal,{html:Ok("^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:\"[^\"]*\"|'[^']*'|\\s[^'\"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))").replace("comment",Wk._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:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:Tk,paragraph:Ok(Wk.normal._paragraph).replace("hr",Wk.hr).replace("heading"," *#{1,6} *[^\n]").replace("lheading",Wk.lheading).replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").getRegex()});const Hk={escape:/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:Tk,tag:"^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\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:Tk,text:/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,punctuation:/^([\spunctuation])/};function qk(e){return e.replace(/---/g,"—").replace(/--/g,"–").replace(/(^|[-\u2014/(\[{"\s])'/g,"$1‘").replace(/'/g,"’").replace(/(^|[-\u2014/(\[{\u2018\s])"/g,"$1“").replace(/"/g,"”").replace(/\.{3}/g,"…")}function Vk(e){let t,i,n="";const r=e.length;for(t=0;t<r;t++)i=e.charCodeAt(t),Math.random()>.5&&(i="x"+i.toString(16)),n+="&#"+i+";";return n}Hk._punctuation="!\"#$%&'()+\\-.,/:;<=>?@\\[\\]`^{|}~",Hk.punctuation=Ok(Hk.punctuation).replace(/punctuation/g,Hk._punctuation).getRegex(),Hk.blockSkip=/\[[^\]]*?\]\([^\)]*?\)|`[^`]*?`|<[^>]*?>/g,Hk.escapedEmSt=/\\\*|\\_/g,Hk._comment=Ok(Wk._comment).replace("(?:--\x3e|$)","--\x3e").getRegex(),Hk.emStrong.lDelim=Ok(Hk.emStrong.lDelim).replace(/punct/g,Hk._punctuation).getRegex(),Hk.emStrong.rDelimAst=Ok(Hk.emStrong.rDelimAst,"g").replace(/punct/g,Hk._punctuation).getRegex(),Hk.emStrong.rDelimUnd=Ok(Hk.emStrong.rDelimUnd,"g").replace(/punct/g,Hk._punctuation).getRegex(),Hk._escapes=/\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/g,Hk._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/,Hk._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])?)+(?![-_])/,Hk.autolink=Ok(Hk.autolink).replace("scheme",Hk._scheme).replace("email",Hk._email).getRegex(),Hk._attribute=/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/,Hk.tag=Ok(Hk.tag).replace("comment",Hk._comment).replace("attribute",Hk._attribute).getRegex(),Hk._label=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,Hk._href=/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/,Hk._title=/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/,Hk.link=Ok(Hk.link).replace("label",Hk._label).replace("href",Hk._href).replace("title",Hk._title).getRegex(),Hk.reflink=Ok(Hk.reflink).replace("label",Hk._label).replace("ref",Wk._label).getRegex(),Hk.nolink=Ok(Hk.nolink).replace("ref",Wk._label).getRegex(),Hk.reflinkSearch=Ok(Hk.reflinkSearch,"g").replace("reflink",Hk.reflink).replace("nolink",Hk.nolink).getRegex(),Hk.normal=Rk({},Hk),Hk.pedantic=Rk({},Hk.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:Ok(/^!?\[(label)\]\((.*?)\)/).replace("label",Hk._label).getRegex(),reflink:Ok(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",Hk._label).getRegex()}),Hk.gfm=Rk({},Hk.normal,{escape:Ok(Hk.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]*?(?:(?=[\\<!\[`*~_]|\b_|https?:\/\/|ftp:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/}),Hk.gfm.url=Ok(Hk.gfm.url,"i").replace("email",Hk.gfm._extended_email).getRegex(),Hk.breaks=Rk({},Hk.gfm,{br:Ok(Hk.br).replace("{2,}","*").getRegex(),text:Ok(Hk.gfm.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()});class Gk{constructor(e){this.tokens=[],this.tokens.links=Object.create(null),this.options=e||gk,this.options.tokenizer=this.options.tokenizer||new Uk,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};const t={block:Wk.normal,inline:Hk.normal};this.options.pedantic?(t.block=Wk.pedantic,t.inline=Hk.pedantic):this.options.gfm&&(t.block=Wk.gfm,this.options.breaks?t.inline=Hk.breaks:t.inline=Hk.gfm),this.tokenizer.rules=t}static get rules(){return{block:Wk,inline:Hk}}static lex(e,t){return new Gk(t).lex(e)}static lexInline(e,t){return new Gk(t).inlineTokens(e)}lex(e){let t;for(e=e.replace(/\r\n|\r/g,"\n").replace(/\t/g," "),this.blockTokens(e,this.tokens);t=this.inlineQueue.shift();)this.inlineTokens(t.src,t.tokens);return this.tokens}blockTokens(e,t=[]){let i,n,r,o;for(this.options.pedantic&&(e=e.replace(/^ +$/gm,""));e;)if(!(this.options.extensions&&this.options.extensions.block&&this.options.extensions.block.some((n=>!!(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)+"["+Pk("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)+"["+Pk("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,Vk))e=e.substring(i.raw.length),t.push(i);else if(this.state.inLink||!(i=this.tokenizer.url(e,Vk))){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,qk))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 Kk{constructor(e){this.options=e||gk}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?'<pre><code class="'+this.options.langPrefix+Nk(n,!0)+'">'+(i?e:Nk(e,!0))+"</code></pre>\n":"<pre><code>"+(i?e:Nk(e,!0))+"</code></pre>\n"}blockquote(e){return"<blockquote>\n"+e+"</blockquote>\n"}html(e){return e}heading(e,t,i,n){return this.options.headerIds?"<h"+t+' id="'+this.options.headerPrefix+n.slug(i)+'">'+e+"</h"+t+">\n":"<h"+t+">"+e+"</h"+t+">\n"}hr(){return this.options.xhtml?"<hr/>\n":"<hr>\n"}list(e,t,i){const n=t?"ol":"ul";return"<"+n+(t&&1!==i?' start="'+i+'"':"")+">\n"+e+"</"+n+">\n"}listitem(e){return"<li>"+e+"</li>\n"}checkbox(e){return"<input "+(e?'checked="" ':"")+'disabled="" type="checkbox"'+(this.options.xhtml?" /":"")+"> "}paragraph(e){return"<p>"+e+"</p>\n"}table(e,t){return t&&(t="<tbody>"+t+"</tbody>"),"<table>\n<thead>\n"+e+"</thead>\n"+t+"</table>\n"}tablerow(e){return"<tr>\n"+e+"</tr>\n"}tablecell(e,t){const i=t.header?"th":"td";return(t.align?"<"+i+' align="'+t.align+'">':"<"+i+">")+e+"</"+i+">\n"}strong(e){return"<strong>"+e+"</strong>"}em(e){return"<em>"+e+"</em>"}codespan(e){return"<code>"+e+"</code>"}br(){return this.options.xhtml?"<br/>":"<br>"}del(e){return"<del>"+e+"</del>"}link(e,t,i){if(null===(e=Fk(this.options.sanitize,this.options.baseUrl,e)))return i;let n='<a href="'+Nk(e)+'"';return t&&(n+=' title="'+t+'"'),n+=">"+i+"</a>",n}image(e,t,i){if(null===(e=Fk(this.options.sanitize,this.options.baseUrl,e)))return i;let n='<img src="'+e+'" alt="'+i+'"';return t&&(n+=' title="'+t+'"'),n+=this.options.xhtml?"/>":">",n}text(e){return e}}class Xk{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 Jk{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 Yk{constructor(e){this.options=e||gk,this.options.renderer=this.options.renderer||new Kk,this.renderer=this.options.renderer,this.renderer.options=this.options,this.textRenderer=new Xk,this.slugger=new Jk}static parse(e,t){return new Yk(t).parse(e)}static parseInline(e,t){return new Yk(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;i<x;i++)if(d=e[i],this.options.extensions&&this.options.extensions.renderers&&this.options.extensions.renderers[d.type]&&(y=this.options.extensions.renderers[d.type].call({parser:this},d),!1!==y||!["space","hr","heading","code","table","blockquote","list","html","paragraph","text"].includes(d.type)))w+=y||"";else switch(d.type){case"space":continue;case"hr":w+=this.renderer.hr();continue;case"heading":w+=this.renderer.heading(this.parseInline(d.tokens),d.depth,Ak(this.parseInline(d.tokens,this.textRenderer)),this.slugger);continue;case"code":w+=this.renderer.code(d.text,d.lang,d.escaped);continue;case"table":for(l="",c="",o=d.header.length,n=0;n<o;n++)c+=this.renderer.tablecell(this.parseInline(d.header[n].tokens),{header:!0,align:d.align[n]});for(l+=this.renderer.tablerow(c),u="",o=d.rows.length,n=0;n<o;n++){for(s=d.rows[n],c="",a=s.length,r=0;r<a;r++)c+=this.renderer.tablecell(this.parseInline(s[r].tokens),{header:!1,align:d.align[r]});u+=this.renderer.tablerow(c)}w+=this.renderer.table(l,u);continue;case"blockquote":u=this.parse(d.tokens),w+=this.renderer.blockquote(u);continue;case"list":for(h=d.ordered,p=d.start,m=d.loose,o=d.items.length,u="",n=0;n<o;n++)g=d.items[n],_=g.checked,b=g.task,f="",g.task&&(v=this.renderer.checkbox(_),m?g.tokens.length>0&&"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<x&&"text"===e[i+1].type;)d=e[++i],u+="\n"+(d.tokens?this.parseInline(d.tokens):d.text);w+=t?this.renderer.paragraph(u):u;continue;default:{const e='Token with "'+d.type+'" type was not found.';if(this.options.silent)return void console.error(e);throw new Error(e)}}return w}parseInline(e,t){t=t||this.renderer;let i,n,r,o="";const a=e.length;for(i=0;i<a;i++)if(n=e[i],this.options.extensions&&this.options.extensions.renderers&&this.options.extensions.renderers[n.type]&&(r=this.options.extensions.renderers[n.type].call({parser:this},n),!1!==r||!["escape","html","link","image","strong","em","codespan","br","del","text"].includes(n.type)))o+=r||"";else switch(n.type){case"escape":o+=t.text(n.text);break;case"html":o+=t.html(n.text);break;case"link":o+=t.link(n.href,n.title,this.parseInline(n.tokens,t));break;case"image":o+=t.image(n.href,n.title,n.text);break;case"strong":o+=t.strong(this.parseInline(n.tokens,t));break;case"em":o+=t.em(this.parseInline(n.tokens,t));break;case"codespan":o+=t.codespan(n.text);break;case"br":o+=t.br();break;case"del":o+=t.del(this.parseInline(n.tokens,t));break;case"text":o+=t.text(n.text);break;default:{const e='Token with "'+n.type+'" type was not found.';if(this.options.silent)return void console.error(e);throw new Error(e)}}return o}}function Zk(e,t,i){if(null==e)throw new Error("marked(): input parameter is undefined or null");if("string"!=typeof e)throw new Error("marked(): input parameter is of type "+Object.prototype.toString.call(e)+", string expected");if("function"==typeof t&&(i=t,t=null),Ik(t=Rk({},Zk.defaults,t||{})),i){const r=t.highlight;let o;try{o=Gk.lex(e,t)}catch(n){return i(n)}const a=function(e){let a;if(!e)try{t.walkTokens&&Zk.walkTokens(o,t.walkTokens),a=Yk.parse(o,t)}catch(n){e=n}return t.highlight=r,e?i(e):i(null,a)};if(!r||r.length<3)return a();if(delete t.highlight,!o.length)return a();let s=0;return Zk.walkTokens(o,(function(e){"code"===e.type&&(s++,setTimeout((()=>{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=Gk.lex(e,t);return t.walkTokens&&Zk.walkTokens(i,t.walkTokens),Yk.parse(i,t)}catch(n){if(n.message+="\nPlease report this to https://github.com/markedjs/marked.",t.silent)return"<p>An error occurred:</p><pre>"+Nk(n.message+"",!0)+"</pre>";throw n}}Zk.options=Zk.setOptions=function(e){var t;return Rk(Zk.defaults,e),t=Zk.defaults,gk=t,Zk},Zk.getDefaults=fk,Zk.defaults=gk,Zk.use=function(...e){const t=Rk({},...e),i=Zk.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=Zk.defaults.renderer||new Kk;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=Zk.defaults.tokenizer||new Uk;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=Zk.defaults.walkTokens;t.walkTokens=function(t){e.walkTokens.call(this,t),i&&i.call(this,t)}}n&&(t.extensions=i),Zk.setOptions(t)}))},Zk.walkTokens=function(e,t){for(const i of e)switch(t.call(Zk,i),i.type){case"table":for(const e of i.header)Zk.walkTokens(e.tokens,t);for(const e of i.rows)for(const i of e)Zk.walkTokens(i.tokens,t);break;case"list":Zk.walkTokens(i.items,t);break;default:Zk.defaults.extensions&&Zk.defaults.extensions.childTokens&&Zk.defaults.extensions.childTokens[i.type]?Zk.defaults.extensions.childTokens[i.type].forEach((function(e){Zk.walkTokens(i[e],t)})):i.tokens&&Zk.walkTokens(i.tokens,t)}},Zk.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");Ik(t=Rk({},Zk.defaults,t||{}));try{const i=Gk.lexInline(e,t);return t.walkTokens&&Zk.walkTokens(i,t.walkTokens),Yk.parseInline(i,t)}catch(i){if(i.message+="\nPlease report this to https://github.com/markedjs/marked.",t.silent)return"<p>An error occurred:</p><pre>"+Nk(i.message+"",!0)+"</pre>";throw i}},Zk.Parser=Yk,Zk.parser=Yk.parse,Zk.Renderer=Kk,Zk.TextRenderer=Xk,Zk.Lexer=Gk,Zk.lexer=Gk.lex,Zk.Tokenizer=Uk,Zk.Slugger=Jk,Zk.parse=Zk,Yk.parse,Gk.lex;export{he as $,Fe as A,h_ as B,bf as C,uf as D,wg as E,De as F,qf as G,Qf as H,cg as I,mg as J,kg as K,Mf as L,_g as M,Fg as N,Ug as O,hb as P,Ff as Q,lg as R,pb as S,ew as T,NN as U,ON as V,Be as W,Df as X,pk as Y,ob as Z,rg as _,w as a,mk as a0,Zk as a1,de as a2,U as a3,re as b,ke as c,Ft as d,Ee as e,N as f,ne as g,_r as h,da as i,Si as j,rc as k,Pe as l,ou as m,fh as n,_h as o,n_ as p,q,St as r,Se as s,r_ as t,a_ as u,s_ as v,Jf as w,Ng as x,Ce as y,u_ as z}; +//# sourceMappingURL=vendor.6465e0ff.js.map diff --git a/assets/vendor.6465e0ff.js.map b/assets/vendor.6465e0ff.js.map new file mode 100644 index 00000000..7f9c68a8 --- /dev/null +++ b/assets/vendor.6465e0ff.js.map @@ -0,0 +1 @@ +{"version":3,"file":"vendor.6465e0ff.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/index.js","../../node_modules/@mcschema/core/lib/ValidationOption.js","../../node_modules/rfdc/index.js","../../node_modules/sourcemapped-stacktrace/dist/sourcemapped-stacktrace.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/@mcschema/java-1.19/lib/Collections.js","../../node_modules/@mcschema/java-1.19/lib/schemas/Advancement.js","../../node_modules/@mcschema/java-1.19/lib/schemas/assets/Model.js","../../node_modules/@mcschema/java-1.19/lib/schemas/assets/BlockDefinition.js","../../node_modules/@mcschema/java-1.19/lib/schemas/assets/index.js","../../node_modules/@mcschema/java-1.19/lib/schemas/ChatType.js","../../node_modules/@mcschema/java-1.19/lib/schemas/Common.js","../../node_modules/@mcschema/java-1.19/lib/schemas/Condition.js","../../node_modules/@mcschema/java-1.19/lib/schemas/Dimension.js","../../node_modules/@mcschema/java-1.19/lib/schemas/DimensionType.js","../../node_modules/@mcschema/java-1.19/lib/schemas/ItemModifier.js","../../node_modules/@mcschema/java-1.19/lib/LootContext.js","../../node_modules/@mcschema/java-1.19/lib/schemas/LootTable.js","../../node_modules/@mcschema/java-1.19/lib/schemas/PackMcmeta.js","../../node_modules/@mcschema/java-1.19/lib/schemas/Predicates.js","../../node_modules/@mcschema/java-1.19/lib/schemas/Recipe.js","../../node_modules/@mcschema/java-1.19/lib/schemas/Tags.js","../../node_modules/@mcschema/java-1.19/lib/schemas/TextComponent.js","../../node_modules/@mcschema/java-1.19/lib/schemas/worldgen/Biome.js","../../node_modules/@mcschema/java-1.19/lib/schemas/worldgen/Carver.js","../../node_modules/@mcschema/java-1.19/lib/schemas/worldgen/Decorator.js","../../node_modules/@mcschema/java-1.19/lib/schemas/worldgen/DensityFunction.js","../../node_modules/@mcschema/java-1.19/lib/schemas/worldgen/ProcessorList.js","../../node_modules/@mcschema/java-1.19/lib/schemas/worldgen/Feature.js","../../node_modules/@mcschema/java-1.19/lib/schemas/worldgen/NoiseSettings.js","../../node_modules/@mcschema/java-1.19/lib/schemas/worldgen/Structure.js","../../node_modules/@mcschema/java-1.19/lib/schemas/worldgen/StructureSet.js","../../node_modules/@mcschema/java-1.19/lib/schemas/worldgen/SurfaceRule.js","../../node_modules/@mcschema/java-1.19/lib/schemas/worldgen/TemplatePool.js","../../node_modules/@mcschema/java-1.19/lib/schemas/worldgen/WorldPreset.js","../../node_modules/@mcschema/java-1.19/lib/schemas/worldgen/index.js","../../node_modules/@mcschema/java-1.19/lib/schemas/WorldSettings.js","../../node_modules/@mcschema/java-1.19/lib/schemas/index.js","../../node_modules/@mcschema/java-1.19/lib/index.js","../../node_modules/lz-string/libs/lz-string.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/deepslate-1.18/dist/deepslate.esm.js","../../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/@giscus/react/dist/index.es.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;o<arguments.length;o++)u.push(r[o]);if(null!=u&&(f.children=u),\"function\"==typeof n&&null!=n.defaultProps)for(o in n.defaultProps)void 0===f[o]&&(f[o]=n.defaultProps[o]);return v(n,f,i,t,null)}function v(l,u,i,t,o){var r={type:l,props:u,key:i,ref:t,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:null==o?++n.__v:o};return null!=n.vnode&&n.vnode(r),r}function h(){return{current:null}}function y(n){return n.children}function p(n,l){this.props=n,this.context=l}function d(n,l){if(null==l)return n.__?d(n.__,n.__.__k.indexOf(n)+1):null;for(var u;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e)return u.__e;return\"function\"==typeof n.type?d(n):null}function _(n){var l,u;if(null!=(n=n.__)&&null!=n.__c){for(n.__e=n.__c.base=null,l=0;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e){n.__e=n.__c.base=u.__e;break}return _(n)}}function k(l){(!l.__d&&(l.__d=!0)&&u.push(l)&&!b.__r++||t!==n.debounceRendering)&&((t=n.debounceRendering)||i)(b)}function b(){for(var n;b.__r=u.length;)n=u.sort(function(n,l){return n.__v.__b-l.__v.__b}),u=[],n.some(function(n){var l,u,i,t,o,r;n.__d&&(o=(t=(l=n).__v).__e,(r=l.__P)&&(u=[],(i=c({},t)).__v=t.__v+1,I(r,t,i,l.__n,void 0!==r.ownerSVGElement,null!=t.__h?[o]:null,u,null==o?d(t):o,t.__h),T(u,t),t.__e!=o&&_(t)))})}function m(n,l,u,i,t,o,e,c,s,a){var h,p,_,k,b,m,w,A=i&&i.__k||f,P=A.length;for(u.__k=[],h=0;h<l.length;h++)if(null!=(k=u.__k[h]=null==(k=l[h])||\"boolean\"==typeof k?null:\"string\"==typeof k||\"number\"==typeof k||\"bigint\"==typeof k?v(null,k,null,null,k):Array.isArray(k)?v(y,{children:k},null,null,null):k.__b>0?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;p<P;p++){if((_=A[p])&&k.key==_.key&&k.type===_.type){A[p]=void 0;break}_=null}I(n,k,_=_||r,t,o,e,c,s,a),b=k.__e,(p=k.ref)&&_.ref!=p&&(w||(w=[]),_.ref&&w.push(_.ref,null,k),w.push(p,k.__c||b,k)),null!=b?(null==m&&(m=b),\"function\"==typeof k.type&&null!=k.__k&&k.__k===_.__k?k.__d=s=g(k,s,n):s=x(n,k,_,A,b,s),a||\"option\"!==u.type?\"function\"==typeof u.type&&(u.__d=s):n.value=\"\"):s&&_.__e==s&&s.parentNode!=n&&(s=d(_))}for(u.__e=m,h=P;h--;)null!=A[h]&&(\"function\"==typeof u.type&&null!=A[h].__e&&A[h].__e==u.__d&&(u.__d=d(i,h+1)),L(A[h],A[h]));if(w)for(h=0;h<w.length;h++)z(w[h],w[++h],w[++h])}function g(n,l,u){var i,t;for(i=0;i<n.__k.length;i++)(t=n.__k[i])&&(t.__=n,l=\"function\"==typeof t.type?g(t,l,u):x(u,t,t,n.__k,t.__e,l));return l}function w(n,l){return l=l||[],null==n||\"boolean\"==typeof n||(Array.isArray(n)?n.some(function(n){w(n,l)}):l.push(n)),l}function x(n,l,u,i,t,o){var r,f,e;if(void 0!==l.__d)r=l.__d,l.__d=void 0;else if(null==u||t!=o||null==t.parentNode)n:if(null==o||o.parentNode!==n)n.appendChild(t),r=null;else{for(f=o,e=0;(f=f.nextSibling)&&e<i.length;e+=2)if(f==t)break n;n.insertBefore(t,o),r=o}return void 0!==r?r:t.nextSibling}function A(n,l,u,i,t){var o;for(o in u)\"children\"===o||\"key\"===o||o in l||C(n,o,null,u[o],i);for(o in l)t&&\"function\"!=typeof l[o]||\"children\"===o||\"key\"===o||\"value\"===o||\"checked\"===o||u[o]===l[o]||C(n,o,l[o],u[o],i)}function P(n,l,u){\"-\"===l[0]?n.setProperty(l,u):n[l]=null==u?\"\":\"number\"!=typeof u||e.test(l)?u:u+\"px\"}function C(n,l,u,i,t){var o;n:if(\"style\"===l)if(\"string\"==typeof u)n.style.cssText=u;else{if(\"string\"==typeof i&&(n.style.cssText=i=\"\"),i)for(l in i)u&&l in u||P(n.style,l,\"\");if(u)for(l in u)i&&u[l]===i[l]||P(n.style,l,u[l])}else if(\"o\"===l[0]&&\"n\"===l[1])o=l!==(l=l.replace(/Capture$/,\"\")),l=l.toLowerCase()in n?l.toLowerCase().slice(2):l.slice(2),n.l||(n.l={}),n.l[l+o]=u,u?i||n.addEventListener(l,o?H:$,o):n.removeEventListener(l,o?H:$,o);else if(\"dangerouslySetInnerHTML\"!==l){if(t)l=l.replace(/xlink[H:h]/,\"h\").replace(/sName$/,\"s\");else if(\"href\"!==l&&\"list\"!==l&&\"form\"!==l&&\"tabIndex\"!==l&&\"download\"!==l&&l in n)try{n[l]=null==u?\"\":u;break n}catch(n){}\"function\"==typeof u||(null!=u&&(!1!==u||\"a\"===l[0]&&\"r\"===l[1])?n.setAttribute(l,u):n.removeAttribute(l))}}function $(l){this.l[l.type+!1](n.event?n.event(l):l)}function H(l){this.l[l.type+!0](n.event?n.event(l):l)}function I(l,u,i,t,o,r,f,e,s){var a,v,h,d,_,k,b,g,w,x,A,P=u.type;if(void 0!==u.constructor)return null;null!=i.__h&&(s=i.__h,e=u.__e=i.__e,u.__h=null,r=[e]),(a=n.__b)&&a(u);try{n:if(\"function\"==typeof P){if(g=u.props,w=(a=P.contextType)&&t[a.__c],x=a?w?w.props.value:a.__:t,i.__c?b=(v=u.__c=i.__c).__=v.__E:(\"prototype\"in P&&P.prototype.render?u.__c=v=new P(g,x):(u.__c=v=new p(g,x),v.constructor=P,v.render=M),w&&w.sub(v),v.props=g,v.state||(v.state={}),v.context=x,v.__n=t,h=v.__d=!0,v.__h=[]),null==v.__s&&(v.__s=v.state),null!=P.getDerivedStateFromProps&&(v.__s==v.state&&(v.__s=c({},v.__s)),c(v.__s,P.getDerivedStateFromProps(g,v.__s))),d=v.props,_=v.state,h)null==P.getDerivedStateFromProps&&null!=v.componentWillMount&&v.componentWillMount(),null!=v.componentDidMount&&v.__h.push(v.componentDidMount);else{if(null==P.getDerivedStateFromProps&&g!==d&&null!=v.componentWillReceiveProps&&v.componentWillReceiveProps(g,x),!v.__e&&null!=v.shouldComponentUpdate&&!1===v.shouldComponentUpdate(g,v.__s,x)||u.__v===i.__v){v.props=g,v.state=v.__s,u.__v!==i.__v&&(v.__d=!1),v.__v=u,u.__e=i.__e,u.__k=i.__k,u.__k.forEach(function(n){n&&(n.__=u)}),v.__h.length&&f.push(v);break n}null!=v.componentWillUpdate&&v.componentWillUpdate(g,v.__s,x),null!=v.componentDidUpdate&&v.__h.push(function(){v.componentDidUpdate(d,_,k)})}v.context=x,v.props=g,v.state=v.__s,(a=n.__r)&&a(u),v.__d=!1,v.__v=u,v.__P=l,a=v.render(v.props,v.state,v.context),v.state=v.__s,null!=v.getChildContext&&(t=c(c({},t),v.getChildContext())),h||null==v.getSnapshotBeforeUpdate||(k=v.getSnapshotBeforeUpdate(d,_)),A=null!=a&&a.type===y&&null==a.key?a.props.children:a,m(l,Array.isArray(A)?A:[A],u,i,t,o,r,f,e,s),v.base=u.__e,u.__h=null,v.__h.length&&f.push(v),b&&(v.__E=v.__=null),v.__e=!1}else null==r&&u.__v===i.__v?(u.__k=i.__k,u.__e=i.__e):u.__e=j(i.__e,u,i,t,o,r,f,s);(a=n.diffed)&&a(u)}catch(l){u.__v=null,(s||null!=r)&&(u.__e=e,u.__h=!!s,r[r.indexOf(e)]=null),n.__e(l,u,i)}}function T(l,u){n.__c&&n.__c(u,l),l.some(function(u){try{l=u.__h,u.__h=[],l.some(function(n){n.call(u)})}catch(l){n.__e(l,u.__v)}})}function j(n,l,u,i,t,o,e,c){var a,v,h,y,p=u.props,d=l.props,_=l.type,k=0;if(\"svg\"===_&&(t=!0),null!=o)for(;k<o.length;k++)if((a=o[k])&&(a===n||(_?a.localName==_:3==a.nodeType))){n=a,o[k]=null;break}if(null==n){if(null===_)return document.createTextNode(d);n=t?document.createElementNS(\"http://www.w3.org/2000/svg\",_):document.createElement(_,d.is&&d),o=null,c=!1}if(null===_)p===d||c&&n.data===d||(n.data=d);else{if(o=o&&f.slice.call(n.childNodes),v=(p=u.props||r).dangerouslySetInnerHTML,h=d.dangerouslySetInnerHTML,!c){if(null!=o)for(p={},y=0;y<n.attributes.length;y++)p[n.attributes[y].name]=n.attributes[y].value;(h||v)&&(h&&(v&&h.__html==v.__html||h.__html===n.innerHTML)||(n.innerHTML=h&&h.__html||\"\"))}if(A(n,d,p,t,c),h)l.__k=[];else if(k=l.props.children,m(n,Array.isArray(k)?k:[k],l,u,i,t&&\"foreignObject\"!==_,o,e,n.firstChild,c),null!=o)for(k=o.length;k--;)null!=o[k]&&s(o[k]);c||(\"value\"in d&&void 0!==(k=d.value)&&(k!==n.value||\"progress\"===_&&!k)&&C(n,\"value\",k,p.value,!1),\"checked\"in d&&void 0!==(k=d.checked)&&k!==n.checked&&C(n,\"checked\",k,p.checked,!1))}return n}function z(l,u,i){try{\"function\"==typeof l?l(u):l.current=u}catch(l){n.__e(l,i)}}function L(l,u,i){var t,o,r;if(n.unmount&&n.unmount(l),(t=l.ref)&&(t.current&&t.current!==l.__e||z(t,null,u)),i||\"function\"==typeof l.type||(i=null!=(o=l.__e)),l.__e=l.__d=void 0,null!=(t=l.__c)){if(t.componentWillUnmount)try{t.componentWillUnmount()}catch(l){n.__e(l,u)}t.base=t.__P=null}if(t=l.__k)for(r=0;r<t.length;r++)t[r]&&L(t[r],u,i);null!=o&&s(o)}function M(n,l,u){return this.constructor(n,u)}function N(l,u,i){var t,o,e;n.__&&n.__(l,u),o=(t=\"function\"==typeof i)?null:i&&i.__k||u.__k,e=[],I(u,l=(!t&&i||u).__k=a(y,null,[l]),o||r,r,void 0!==u.ownerSVGElement,!t&&i?[i]:o?null:u.firstChild?f.slice.call(u.childNodes):null,e,!t&&i?i:o?o.__e:u.firstChild,t),T(e,l)}function O(n,l){N(n,l,O)}function S(n,l,u){var i,t,o,r=arguments,f=c({},n.props);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;o<arguments.length;o++)u.push(r[o]);return null!=u&&(f.children=u),v(n.type,f,i||n.key,t||n.ref,null)}function q(n,l){var u={__c:l=\"__cC\"+o++,__:n,Consumer:function(n,l){return n.children(l)},Provider:function(n){var u,i;return this.getChildContext||(u=[],(i={})[l]=this,this.getChildContext=function(){return i},this.shouldComponentUpdate=function(n){this.props.value!==n.value&&u.some(k)},this.sub=function(n){u.push(n);var l=n.componentWillUnmount;n.componentWillUnmount=function(){u.splice(u.indexOf(n),1),l&&l.call(n)}}),n.children}};return u.Provider.__=u.Consumer.contextType=u}n={__e:function(n,l){for(var u,i,t;l=l.__;)if((u=l.__c)&&!u.__)try{if((i=u.constructor)&&null!=i.getDerivedStateFromError&&(u.setState(i.getDerivedStateFromError(n)),t=u.__d),null!=u.componentDidCatch&&(u.componentDidCatch(n),t=u.__d),t)return u.__E=u}catch(l){n=l}throw n},__v:0},l=function(n){return null!=n&&void 0===n.constructor},p.prototype.setState=function(n,l){var u;u=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=c({},this.state),\"function\"==typeof n&&(n=n(c({},u),this.props)),n&&c(u,n),null!=n&&this.__v&&(l&&this.__h.push(l),k(this))},p.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),k(this))},p.prototype.render=y,u=[],i=\"function\"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,b.__r=0,o=0;export{N as render,O as hydrate,a as createElement,a as h,y as Fragment,h as createRef,l as isValidElement,p as Component,S as cloneElement,q as createContext,w as toChildArray,n as options};\n//# sourceMappingURL=preact.module.js.map\n","import { Component, cloneElement, createElement, toChildArray } from 'preact';\n\nvar EMPTY$1 = {};\n\nfunction assign(obj, props) {\n\t// eslint-disable-next-line guard-for-in\n\tfor (var i in props) {\n\t\tobj[i] = props[i];\n\t}\n\treturn obj;\n}\n\nfunction exec(url, route, opts) {\n\tvar reg = /(?:\\?([^#]*))?(#.*)?$/,\n\t\tc = url.match(reg),\n\t\tmatches = {},\n\t\tret;\n\tif (c && c[1]) {\n\t\tvar p = c[1].split('&');\n\t\tfor (var i=0; i<p.length; i++) {\n\t\t\tvar r = p[i].split('=');\n\t\t\tmatches[decodeURIComponent(r[0])] = decodeURIComponent(r.slice(1).join('='));\n\t\t}\n\t}\n\turl = segmentize(url.replace(reg, ''));\n\troute = segmentize(route || '');\n\tvar max = Math.max(url.length, route.length);\n\tfor (var i$1=0; i$1<max; i$1++) {\n\t\tif (route[i$1] && route[i$1].charAt(0)===':') {\n\t\t\tvar param = route[i$1].replace(/(^:|[+*?]+$)/g, ''),\n\t\t\t\tflags = (route[i$1].match(/[+*?]+$/) || EMPTY$1)[0] || '',\n\t\t\t\tplus = ~flags.indexOf('+'),\n\t\t\t\tstar = ~flags.indexOf('*'),\n\t\t\t\tval = url[i$1] || '';\n\t\t\tif (!val && !star && (flags.indexOf('?')<0 || plus)) {\n\t\t\t\tret = false;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tmatches[param] = decodeURIComponent(val);\n\t\t\tif (plus || star) {\n\t\t\t\tmatches[param] = url.slice(i$1).map(decodeURIComponent).join('/');\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\telse if (route[i$1]!==url[i$1]) {\n\t\t\tret = false;\n\t\t\tbreak;\n\t\t}\n\t}\n\tif (opts.default!==true && ret===false) { return false; }\n\treturn matches;\n}\n\nfunction pathRankSort(a, b) {\n\treturn (\n\t\t(a.rank < b.rank) ? 1 :\n\t\t\t(a.rank > 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<ROUTERS.length; i++) {\n\t\tif (ROUTERS[i].routeTo(url)===true) {\n\t\t\tdidRoute = true;\n\t\t}\n\t}\n\tfor (var i$1=subscribers.length; i$1--; ) {\n\t\tsubscribers[i$1](url);\n\t}\n\treturn didRoute;\n}\n\n\nfunction routeFromLink(node) {\n\t// only valid elements\n\tif (!node || !node.getAttribute) { return; }\n\n\tvar href = node.getAttribute('href'),\n\t\ttarget = node.getAttribute('target');\n\n\t// ignore links with targets and non-path URLs\n\tif (!href || !href.match(/^\\//g) || (target && !target.match(/^_?self$/i))) { return; }\n\n\t// attempt to route, if no match simply cede control to browser\n\treturn route(href);\n}\n\n\nfunction handleLinkClick(e) {\n\tif (e.ctrlKey || e.metaKey || e.altKey || e.shiftKey || e.button!==0) { return; }\n\trouteFromLink(e.currentTarget || e.target || this);\n\treturn prevent(e);\n}\n\n\nfunction prevent(e) {\n\tif (e) {\n\t\tif (e.stopImmediatePropagation) { e.stopImmediatePropagation(); }\n\t\tif (e.stopPropagation) { e.stopPropagation(); }\n\t\te.preventDefault();\n\t}\n\treturn false;\n}\n\n\nfunction delegateLinkHandler(e) {\n\t// ignore events the browser takes care of already:\n\tif (e.ctrlKey || e.metaKey || e.altKey || e.shiftKey || e.button!==0) { return; }\n\n\tvar t = e.target;\n\tdo {\n\t\tif (String(t.nodeName).toUpperCase()==='A' && t.getAttribute('href')) {\n\t\t\tif (t.hasAttribute('native')) { return; }\n\t\t\t// if link is handled by the router, prevent browser defaults\n\t\t\tif (routeFromLink(t)) {\n\t\t\t\treturn prevent(e);\n\t\t\t}\n\t\t}\n\t} while ((t=t.parentNode));\n}\n\n\nvar eventListenersInitialized = false;\n\nfunction initEventListeners() {\n\tif (eventListenersInitialized) { return; }\n\n\tif (typeof addEventListener==='function') {\n\t\tif (!customHistory) {\n\t\t\taddEventListener('popstate', function () {\n\t\t\t\trouteTo(getCurrentUrl());\n\t\t\t});\n\t\t}\n\t\taddEventListener('click', delegateLinkHandler);\n\t}\n\teventListenersInitialized = true;\n}\n\n\nvar Router = (function (Component$$1) {\n\tfunction Router(props) {\n\t\tComponent$$1.call(this, props);\n\t\tif (props.history) {\n\t\t\tcustomHistory = props.history;\n\t\t}\n\n\t\tthis.state = {\n\t\t\turl: props.url || getCurrentUrl()\n\t\t};\n\n\t\tinitEventListeners();\n\t}\n\n\tif ( Component$$1 ) Router.__proto__ = Component$$1;\n\tRouter.prototype = Object.create( Component$$1 && Component$$1.prototype );\n\tRouter.prototype.constructor = Router;\n\n\tRouter.prototype.shouldComponentUpdate = function shouldComponentUpdate (props) {\n\t\tif (props.static!==true) { return true; }\n\t\treturn props.url!==this.props.url || props.onChange!==this.props.onChange;\n\t};\n\n\t/** Check if the given URL can be matched against any children */\n\tRouter.prototype.canRoute = function canRoute (url) {\n\t\tvar children = toChildArray(this.props.children);\n\t\treturn this.getMatchingChildren(children, url, false).length > 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: (0, 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: (0, 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: (0, 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\nconst Mod = (node, mods) => ({\r\n ...node, ...(typeof mods === 'function' ? mods(node) : mods)\r\n});\r\nexports.Mod = Mod;\r\nconst Has = (key, node) => (0, exports.Mod)(node, {\r\n enabled: (p) => p.push(key).get() !== undefined\r\n});\r\nexports.Has = Has;\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\nconst 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\nexports.BooleanNode = BooleanNode;\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\nconst 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\nexports.ListNode = ListNode;\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\nconst 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\nexports.SwitchNode = SwitchNode;\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\nconst 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 = (0, 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\nexports.ChoiceNode = ChoiceNode;\r\nconst XOrList = (x) => ((node, config) => {\r\n return (0, 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: (0, 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\nconst ObjectOrPreset = (presetNode, objectNode, presets) => {\r\n return (0, 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\nexports.ObjectOrPreset = ObjectOrPreset;\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\nconst 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\nexports.MapNode = MapNode;\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\nconst 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.NumberNode = NumberNode;\r\nconst NumberEnum = ({ integer, values }) => (0, __1.Mod)((0, 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\nexports.NumberEnum = NumberEnum;\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\nconst 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 = (0, 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 ? (0, 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 = (0, 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\nexports.ObjectNode = ObjectNode;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Reference = void 0;\r\nconst 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\nexports.Reference = Reference;\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 return !!(value === null || value === void 0 ? void 0 : value.enum);\r\n};\r\nconst isValidator = (value) => {\r\n return !!(value === null || value === void 0 ? void 0 : value.validator);\r\n};\r\n/**\r\n * Simple string node with one text field\r\n */\r\nconst 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\nexports.StringNode = StringNode;\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\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\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\" && !Object.prototype.hasOwnProperty.call(exports, 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\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\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","(function webpackUniversalModuleDefinition(root, factory) {\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\telse if(typeof exports === 'object')\n\t\texports[\"sourceMappedStackTrace\"] = factory();\n\telse\n\t\troot[\"sourceMappedStackTrace\"] = 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/******/ \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\tvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*\n\t * sourcemapped-stacktrace.js\n\t * created by James Salter <iteration@gmail.com> (2014)\n\t *\n\t * https://github.com/novocaine/sourcemapped-stacktrace\n\t *\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\n\t/*global define */\n\n\t// note we only include source-map-consumer, not the whole source-map library,\n\t// which includes gear for generating source maps that we don't need\n\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(1)], __WEBPACK_AMD_DEFINE_RESULT__ = function(source_map_consumer) {\n\n\t var global_mapForUri = {};\n\n\t /**\n\t * Re-map entries in a stacktrace using sourcemaps if available.\n\t *\n\t * @param {str} stack - The stacktrace from the browser.\n\t * @param {function} done - Callback invoked with the transformed stacktrace\n\t * (an Array of Strings) passed as the first\n\t * argument\n\t * @param {Object} [opts] - Optional options object.\n\t * @param {Function} [opts.filter] - Filter function applied to each stackTrace line.\n\t * Lines which do not pass the filter won't be processesd.\n\t * @param {boolean} [opts.cacheGlobally] - Whether to cache sourcemaps globally across multiple calls.\n\t * @param {boolean} [opts.sync] - Whether to use synchronous ajax to load the sourcemaps.\n\t * @param {string} [opts.traceFormat] - If `error.stack` is formatted according to chrome or\n\t * Firefox's style. Can be either `\"chrome\"`, `\"firefox\"`\n\t * or `undefined` (default). If `undefined`, this library\n\t * will guess based on `navigator.userAgent`.\n\t */\n\t var mapStackTrace = function(stack, done, opts) {\n\t var lines;\n\t var line;\n\t var mapForUri = {};\n\t var rows = {};\n\t var fields;\n\t var uri;\n\t var expected_fields;\n\t var regex;\n\t var skip_lines;\n\n\t var fetcher = new Fetcher(opts);\n\n\t var traceFormat = opts && opts.traceFormat;\n\t if (traceFormat !== \"chrome\" && traceFormat !== \"firefox\") {\n\t if (traceFormat) {\n\t throw new Error(\"unknown traceFormat \\\"\" + traceFormat + \"\\\" :(\");\n\t } else if (isChromeOrEdge() || isIE11Plus()) {\n\t traceFormat = \"chrome\";\n\t } else if (isFirefox() || isSafari()) {\n\t traceFormat = \"firefox\";\n\t } else {\n\t throw new Error(\"unknown browser :(\");\n\t }\n\t }\n\n\t if (traceFormat === \"chrome\") {\n\t regex = /^ +at.+\\((.*):([0-9]+):([0-9]+)/;\n\t expected_fields = 4;\n\t // (skip first line containing exception message)\n\t skip_lines = 1;\n\t } else {\n\t regex = /@(.*):([0-9]+):([0-9]+)/;\n\t expected_fields = 4;\n\t skip_lines = 0;\n\t }\n\n\t lines = stack.split(\"\\n\").slice(skip_lines);\n\n\t for (var i=0; i < lines.length; i++) {\n\t line = lines[i];\n\t if ( opts && opts.filter && !opts.filter(line) ) continue;\n\t \n\t fields = line.match(regex);\n\t if (fields && fields.length === expected_fields) {\n\t rows[i] = fields;\n\t uri = fields[1];\n\t if (!uri.match(/<anonymous>/)) {\n\t fetcher.fetchScript(uri);\n\t }\n\t }\n\t }\n\n\t fetcher.sem.whenReady(function() {\n\t var result = processSourceMaps(lines, rows, fetcher.mapForUri, traceFormat);\n\t done(result);\n\t });\n\t };\n\n\t var isChromeOrEdge = function() {\n\t return navigator.userAgent.toLowerCase().indexOf('chrome') > -1;\n\t };\n\n\t var isFirefox = function() {\n\t return navigator.userAgent.toLowerCase().indexOf('firefox') > -1;\n\t }; \n\n\t var isSafari = function() {\n\t return navigator.userAgent.toLowerCase().indexOf('safari') > -1;\n\t };\n\t\t\t\n\t var isIE11Plus = function() {\n\t \treturn document.documentMode && document.documentMode >= 11;\n\t };\n\n\n\t var Semaphore = function() {\n\t this.count = 0;\n\t this.pending = [];\n\t };\n\n\t Semaphore.prototype.incr = function() {\n\t this.count++;\n\t };\n\n\t Semaphore.prototype.decr = function() {\n\t this.count--;\n\t this.flush();\n\t };\n\n\t Semaphore.prototype.whenReady = function(fn) {\n\t this.pending.push(fn);\n\t this.flush();\n\t };\n\n\t Semaphore.prototype.flush = function() {\n\t if (this.count === 0) {\n\t this.pending.forEach(function(fn) { fn(); });\n\t this.pending = [];\n\t }\n\t };\n\n\n\t var Fetcher = function(opts) {\n\t this.sem = new Semaphore();\n\t this.sync = opts && opts.sync;\n\t this.mapForUri = opts && opts.cacheGlobally ? global_mapForUri : {};\n\t };\n\n\t Fetcher.prototype.ajax = function(uri, callback) {\n\t var xhr = createXMLHTTPObject();\n\t var that = this;\n\t xhr.onreadystatechange = function() {\n\t if (xhr.readyState == 4) {\n\t callback.call(that, xhr, uri);\n\t }\n\t };\n\t xhr.open(\"GET\", uri, !this.sync);\n\t xhr.send();\n\t }\n\n\t Fetcher.prototype.fetchScript = function(uri) {\n\t if (!(uri in this.mapForUri)) {\n\t this.sem.incr();\n\t this.mapForUri[uri] = null;\n\t } else {\n\t return;\n\t }\n\n\t this.ajax(uri, this.onScriptLoad);\n\t };\n\n\t var absUrlRegex = new RegExp('^(?:[a-z]+:)?//', 'i');\n\n\t Fetcher.prototype.onScriptLoad = function(xhr, uri) {\n\t if (xhr.status === 200 || (uri.slice(0, 7) === \"file://\" && xhr.status === 0)) {\n\t // find .map in file.\n\t //\n\t // attempt to find it at the very end of the file, but tolerate trailing\n\t // whitespace inserted by some packers.\n\t var match = xhr.responseText.match(\"//# [s]ourceMappingURL=(.*)[\\\\s]*$\", \"m\");\n\t if (match && match.length === 2) {\n\t // get the map\n\t var mapUri = match[1];\n\n\t var embeddedSourceMap = mapUri.match(\"data:application/json;(charset=[^;]+;)?base64,(.*)\");\n\n\t if (embeddedSourceMap && embeddedSourceMap[2]) {\n\t this.mapForUri[uri] = new source_map_consumer.SourceMapConsumer(atob(embeddedSourceMap[2]));\n\t this.sem.decr();\n\t } else {\n\t if (!absUrlRegex.test(mapUri)) {\n\t // relative url; according to sourcemaps spec is 'source origin'\n\t var origin;\n\t var lastSlash = uri.lastIndexOf('/');\n\t if (lastSlash !== -1) {\n\t origin = uri.slice(0, lastSlash + 1);\n\t mapUri = origin + mapUri;\n\t // note if lastSlash === -1, actual script uri has no slash\n\t // somehow, so no way to use it as a prefix... we give up and try\n\t // as absolute\n\t }\n\t }\n\n\t this.ajax(mapUri, function(xhr) {\n\t if (xhr.status === 200 || (mapUri.slice(0, 7) === \"file://\" && xhr.status === 0)) {\n\t this.mapForUri[uri] = new source_map_consumer.SourceMapConsumer(xhr.responseText);\n\t }\n\t this.sem.decr();\n\t });\n\t }\n\t } else {\n\t // no map\n\t this.sem.decr();\n\t }\n\t } else {\n\t // HTTP error fetching uri of the script\n\t this.sem.decr();\n\t }\n\t };\n\n\t var processSourceMaps = function(lines, rows, mapForUri, traceFormat) {\n\t var result = [];\n\t var map;\n\t var origName = traceFormat === \"chrome\" ? origNameChrome : origNameFirefox;\n\t for (var i=0; i < lines.length; i++) {\n\t var row = rows[i];\n\t if (row) {\n\t var uri = row[1];\n\t var line = parseInt(row[2], 10);\n\t var column = parseInt(row[3], 10);\n\t map = mapForUri[uri];\n\n\t if (map) {\n\t // we think we have a map for that uri. call source-map library\n\t var origPos = map.originalPositionFor(\n\t { line: line, column: column });\n\t result.push(formatOriginalPosition(origPos.source,\n\t origPos.line, origPos.column, origPos.name || origName(lines[i])));\n\t } else {\n\t // we can't find a map for that url, but we parsed the row.\n\t // reformat unchanged line for consistency with the sourcemapped\n\t // lines.\n\t result.push(formatOriginalPosition(uri, line, column, origName(lines[i])));\n\t }\n\t } else {\n\t // we weren't able to parse the row, push back what we were given\n\t result.push(lines[i]);\n\t }\n\t }\n\n\t return result;\n\t };\n\n\t function origNameChrome(origLine) {\n\t var match = / +at +([^ ]*).*/.exec(origLine);\n\t return match && match[1];\n\t }\n\n\t function origNameFirefox(origLine) {\n\t var match = /([^@]*)@.*/.exec(origLine);\n\t return match && match[1];\n\t }\n\n\t var formatOriginalPosition = function(source, line, column, name) {\n\t // mimic chrome's format\n\t return \" at \" + (name ? name : \"(unknown)\") +\n\t \" (\" + source + \":\" + line + \":\" + column + \")\";\n\t };\n\n\t // xmlhttprequest boilerplate\n\t var XMLHttpFactories = [\n\t\tfunction () {return new XMLHttpRequest();},\n\t\tfunction () {return new ActiveXObject(\"Msxml2.XMLHTTP\");},\n\t\tfunction () {return new ActiveXObject(\"Msxml3.XMLHTTP\");},\n\t\tfunction () {return new ActiveXObject(\"Microsoft.XMLHTTP\");}\n\t ];\n\n\t function createXMLHTTPObject() {\n\t var xmlhttp = false;\n\t for (var i=0;i<XMLHttpFactories.length;i++) {\n\t try {\n\t xmlhttp = XMLHttpFactories[i]();\n\t }\n\t catch (e) {\n\t continue;\n\t }\n\t break;\n\t }\n\t return xmlhttp;\n\t }\n\n\t return {\n\t mapStackTrace: mapStackTrace\n\t }\n\t}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\n\tvar util = __webpack_require__(2);\n\tvar binarySearch = __webpack_require__(3);\n\tvar ArraySet = __webpack_require__(4).ArraySet;\n\tvar base64VLQ = __webpack_require__(5);\n\tvar quickSort = __webpack_require__(7).quickSort;\n\n\tfunction SourceMapConsumer(aSourceMap) {\n\t var sourceMap = aSourceMap;\n\t if (typeof aSourceMap === 'string') {\n\t sourceMap = JSON.parse(aSourceMap.replace(/^\\)\\]\\}'/, ''));\n\t }\n\n\t return sourceMap.sections != null\n\t ? new IndexedSourceMapConsumer(sourceMap)\n\t : new BasicSourceMapConsumer(sourceMap);\n\t}\n\n\tSourceMapConsumer.fromSourceMap = function(aSourceMap) {\n\t return BasicSourceMapConsumer.fromSourceMap(aSourceMap);\n\t}\n\n\t/**\n\t * The version of the source mapping spec that we are consuming.\n\t */\n\tSourceMapConsumer.prototype._version = 3;\n\n\t// `__generatedMappings` and `__originalMappings` are arrays that hold the\n\t// parsed mapping coordinates from the source map's \"mappings\" attribute. They\n\t// are lazily instantiated, accessed via the `_generatedMappings` and\n\t// `_originalMappings` getters respectively, and we only parse the mappings\n\t// and create these arrays once queried for a source location. We jump through\n\t// these hoops because there can be many thousands of mappings, and parsing\n\t// them is expensive, so we only want to do it if we must.\n\t//\n\t// Each object in the arrays is of the form:\n\t//\n\t// {\n\t// generatedLine: The line number in the generated code,\n\t// generatedColumn: The column number in the generated code,\n\t// source: The path to the original source file that generated this\n\t// chunk of code,\n\t// originalLine: The line number in the original source that\n\t// corresponds to this chunk of generated code,\n\t// originalColumn: The column number in the original source that\n\t// corresponds to this chunk of generated code,\n\t// name: The name of the original symbol which generated this chunk of\n\t// code.\n\t// }\n\t//\n\t// All properties except for `generatedLine` and `generatedColumn` can be\n\t// `null`.\n\t//\n\t// `_generatedMappings` is ordered by the generated positions.\n\t//\n\t// `_originalMappings` is ordered by the original positions.\n\n\tSourceMapConsumer.prototype.__generatedMappings = null;\n\tObject.defineProperty(SourceMapConsumer.prototype, '_generatedMappings', {\n\t get: function () {\n\t if (!this.__generatedMappings) {\n\t this._parseMappings(this._mappings, this.sourceRoot);\n\t }\n\n\t return this.__generatedMappings;\n\t }\n\t});\n\n\tSourceMapConsumer.prototype.__originalMappings = null;\n\tObject.defineProperty(SourceMapConsumer.prototype, '_originalMappings', {\n\t get: function () {\n\t if (!this.__originalMappings) {\n\t this._parseMappings(this._mappings, this.sourceRoot);\n\t }\n\n\t return this.__originalMappings;\n\t }\n\t});\n\n\tSourceMapConsumer.prototype._charIsMappingSeparator =\n\t function SourceMapConsumer_charIsMappingSeparator(aStr, index) {\n\t var c = aStr.charAt(index);\n\t return c === \";\" || c === \",\";\n\t };\n\n\t/**\n\t * Parse the mappings in a string in to a data structure which we can easily\n\t * query (the ordered arrays in the `this.__generatedMappings` and\n\t * `this.__originalMappings` properties).\n\t */\n\tSourceMapConsumer.prototype._parseMappings =\n\t function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n\t throw new Error(\"Subclasses must implement _parseMappings\");\n\t };\n\n\tSourceMapConsumer.GENERATED_ORDER = 1;\n\tSourceMapConsumer.ORIGINAL_ORDER = 2;\n\n\tSourceMapConsumer.GREATEST_LOWER_BOUND = 1;\n\tSourceMapConsumer.LEAST_UPPER_BOUND = 2;\n\n\t/**\n\t * Iterate over each mapping between an original source/line/column and a\n\t * generated line/column in this source map.\n\t *\n\t * @param Function aCallback\n\t * The function that is called with each mapping.\n\t * @param Object aContext\n\t * Optional. If specified, this object will be the value of `this` every\n\t * time that `aCallback` is called.\n\t * @param aOrder\n\t * Either `SourceMapConsumer.GENERATED_ORDER` or\n\t * `SourceMapConsumer.ORIGINAL_ORDER`. Specifies whether you want to\n\t * iterate over the mappings sorted by the generated file's line/column\n\t * order or the original's source/line/column order, respectively. Defaults to\n\t * `SourceMapConsumer.GENERATED_ORDER`.\n\t */\n\tSourceMapConsumer.prototype.eachMapping =\n\t function SourceMapConsumer_eachMapping(aCallback, aContext, aOrder) {\n\t var context = aContext || null;\n\t var order = aOrder || SourceMapConsumer.GENERATED_ORDER;\n\n\t var mappings;\n\t switch (order) {\n\t case SourceMapConsumer.GENERATED_ORDER:\n\t mappings = this._generatedMappings;\n\t break;\n\t case SourceMapConsumer.ORIGINAL_ORDER:\n\t mappings = this._originalMappings;\n\t break;\n\t default:\n\t throw new Error(\"Unknown order of iteration.\");\n\t }\n\n\t var sourceRoot = this.sourceRoot;\n\t mappings.map(function (mapping) {\n\t var source = mapping.source === null ? null : this._sources.at(mapping.source);\n\t if (source != null && sourceRoot != null) {\n\t source = util.join(sourceRoot, source);\n\t }\n\t return {\n\t source: source,\n\t generatedLine: mapping.generatedLine,\n\t generatedColumn: mapping.generatedColumn,\n\t originalLine: mapping.originalLine,\n\t originalColumn: mapping.originalColumn,\n\t name: mapping.name === null ? null : this._names.at(mapping.name)\n\t };\n\t }, this).forEach(aCallback, context);\n\t };\n\n\t/**\n\t * Returns all generated line and column information for the original source,\n\t * line, and column provided. If no column is provided, returns all mappings\n\t * corresponding to a either the line we are searching for or the next\n\t * closest line that has any mappings. Otherwise, returns all mappings\n\t * corresponding to the given line and either the column we are searching for\n\t * or the next closest column that has any offsets.\n\t *\n\t * The only argument is an object with the following properties:\n\t *\n\t * - source: The filename of the original source.\n\t * - line: The line number in the original source.\n\t * - column: Optional. the column number in the original source.\n\t *\n\t * and an array of objects is returned, each with the following properties:\n\t *\n\t * - line: The line number in the generated source, or null.\n\t * - column: The column number in the generated source, or null.\n\t */\n\tSourceMapConsumer.prototype.allGeneratedPositionsFor =\n\t function SourceMapConsumer_allGeneratedPositionsFor(aArgs) {\n\t var line = util.getArg(aArgs, 'line');\n\n\t // When there is no exact match, BasicSourceMapConsumer.prototype._findMapping\n\t // returns the index of the closest mapping less than the needle. By\n\t // setting needle.originalColumn to 0, we thus find the last mapping for\n\t // the given line, provided such a mapping exists.\n\t var needle = {\n\t source: util.getArg(aArgs, 'source'),\n\t originalLine: line,\n\t originalColumn: util.getArg(aArgs, 'column', 0)\n\t };\n\n\t if (this.sourceRoot != null) {\n\t needle.source = util.relative(this.sourceRoot, needle.source);\n\t }\n\t if (!this._sources.has(needle.source)) {\n\t return [];\n\t }\n\t needle.source = this._sources.indexOf(needle.source);\n\n\t var mappings = [];\n\n\t var index = this._findMapping(needle,\n\t this._originalMappings,\n\t \"originalLine\",\n\t \"originalColumn\",\n\t util.compareByOriginalPositions,\n\t binarySearch.LEAST_UPPER_BOUND);\n\t if (index >= 0) {\n\t var mapping = this._originalMappings[index];\n\n\t if (aArgs.column === undefined) {\n\t var originalLine = mapping.originalLine;\n\n\t // Iterate until either we run out of mappings, or we run into\n\t // a mapping for a different line than the one we found. Since\n\t // mappings are sorted, this is guaranteed to find all mappings for\n\t // the line we found.\n\t while (mapping && mapping.originalLine === originalLine) {\n\t mappings.push({\n\t line: util.getArg(mapping, 'generatedLine', null),\n\t column: util.getArg(mapping, 'generatedColumn', null),\n\t lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n\t });\n\n\t mapping = this._originalMappings[++index];\n\t }\n\t } else {\n\t var originalColumn = mapping.originalColumn;\n\n\t // Iterate until either we run out of mappings, or we run into\n\t // a mapping for a different line than the one we were searching for.\n\t // Since mappings are sorted, this is guaranteed to find all mappings for\n\t // the line we are searching for.\n\t while (mapping &&\n\t mapping.originalLine === line &&\n\t mapping.originalColumn == originalColumn) {\n\t mappings.push({\n\t line: util.getArg(mapping, 'generatedLine', null),\n\t column: util.getArg(mapping, 'generatedColumn', null),\n\t lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n\t });\n\n\t mapping = this._originalMappings[++index];\n\t }\n\t }\n\t }\n\n\t return mappings;\n\t };\n\n\texports.SourceMapConsumer = SourceMapConsumer;\n\n\t/**\n\t * A BasicSourceMapConsumer instance represents a parsed source map which we can\n\t * query for information about the original file positions by giving it a file\n\t * position in the generated source.\n\t *\n\t * The only parameter is the raw source map (either as a JSON string, or\n\t * already parsed to an object). According to the spec, source maps have the\n\t * following attributes:\n\t *\n\t * - version: Which version of the source map spec this map is following.\n\t * - sources: An array of URLs to the original source files.\n\t * - names: An array of identifiers which can be referrenced by individual mappings.\n\t * - sourceRoot: Optional. The URL root from which all sources are relative.\n\t * - sourcesContent: Optional. An array of contents of the original source files.\n\t * - mappings: A string of base64 VLQs which contain the actual mappings.\n\t * - file: Optional. The generated file this source map is associated with.\n\t *\n\t * Here is an example source map, taken from the source map spec[0]:\n\t *\n\t * {\n\t * version : 3,\n\t * file: \"out.js\",\n\t * sourceRoot : \"\",\n\t * sources: [\"foo.js\", \"bar.js\"],\n\t * names: [\"src\", \"maps\", \"are\", \"fun\"],\n\t * mappings: \"AA,AB;;ABCDE;\"\n\t * }\n\t *\n\t * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit?pli=1#\n\t */\n\tfunction BasicSourceMapConsumer(aSourceMap) {\n\t var sourceMap = aSourceMap;\n\t if (typeof aSourceMap === 'string') {\n\t sourceMap = JSON.parse(aSourceMap.replace(/^\\)\\]\\}'/, ''));\n\t }\n\n\t var version = util.getArg(sourceMap, 'version');\n\t var sources = util.getArg(sourceMap, 'sources');\n\t // Sass 3.3 leaves out the 'names' array, so we deviate from the spec (which\n\t // requires the array) to play nice here.\n\t var names = util.getArg(sourceMap, 'names', []);\n\t var sourceRoot = util.getArg(sourceMap, 'sourceRoot', null);\n\t var sourcesContent = util.getArg(sourceMap, 'sourcesContent', null);\n\t var mappings = util.getArg(sourceMap, 'mappings');\n\t var file = util.getArg(sourceMap, 'file', null);\n\n\t // Once again, Sass deviates from the spec and supplies the version as a\n\t // string rather than a number, so we use loose equality checking here.\n\t if (version != this._version) {\n\t throw new Error('Unsupported version: ' + version);\n\t }\n\n\t sources = sources\n\t .map(String)\n\t // Some source maps produce relative source paths like \"./foo.js\" instead of\n\t // \"foo.js\". Normalize these first so that future comparisons will succeed.\n\t // See bugzil.la/1090768.\n\t .map(util.normalize)\n\t // Always ensure that absolute sources are internally stored relative to\n\t // the source root, if the source root is absolute. Not doing this would\n\t // be particularly problematic when the source root is a prefix of the\n\t // source (valid, but why??). See github issue #199 and bugzil.la/1188982.\n\t .map(function (source) {\n\t return sourceRoot && util.isAbsolute(sourceRoot) && util.isAbsolute(source)\n\t ? util.relative(sourceRoot, source)\n\t : source;\n\t });\n\n\t // Pass `true` below to allow duplicate names and sources. While source maps\n\t // are intended to be compressed and deduplicated, the TypeScript compiler\n\t // sometimes generates source maps with duplicates in them. See Github issue\n\t // #72 and bugzil.la/889492.\n\t this._names = ArraySet.fromArray(names.map(String), true);\n\t this._sources = ArraySet.fromArray(sources, true);\n\n\t this.sourceRoot = sourceRoot;\n\t this.sourcesContent = sourcesContent;\n\t this._mappings = mappings;\n\t this.file = file;\n\t}\n\n\tBasicSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);\n\tBasicSourceMapConsumer.prototype.consumer = SourceMapConsumer;\n\n\t/**\n\t * Create a BasicSourceMapConsumer from a SourceMapGenerator.\n\t *\n\t * @param SourceMapGenerator aSourceMap\n\t * The source map that will be consumed.\n\t * @returns BasicSourceMapConsumer\n\t */\n\tBasicSourceMapConsumer.fromSourceMap =\n\t function SourceMapConsumer_fromSourceMap(aSourceMap) {\n\t var smc = Object.create(BasicSourceMapConsumer.prototype);\n\n\t var names = smc._names = ArraySet.fromArray(aSourceMap._names.toArray(), true);\n\t var sources = smc._sources = ArraySet.fromArray(aSourceMap._sources.toArray(), true);\n\t smc.sourceRoot = aSourceMap._sourceRoot;\n\t smc.sourcesContent = aSourceMap._generateSourcesContent(smc._sources.toArray(),\n\t smc.sourceRoot);\n\t smc.file = aSourceMap._file;\n\n\t // Because we are modifying the entries (by converting string sources and\n\t // names to indices into the sources and names ArraySets), we have to make\n\t // a copy of the entry or else bad things happen. Shared mutable state\n\t // strikes again! See github issue #191.\n\n\t var generatedMappings = aSourceMap._mappings.toArray().slice();\n\t var destGeneratedMappings = smc.__generatedMappings = [];\n\t var destOriginalMappings = smc.__originalMappings = [];\n\n\t for (var i = 0, length = generatedMappings.length; i < length; i++) {\n\t var srcMapping = generatedMappings[i];\n\t var destMapping = new Mapping;\n\t destMapping.generatedLine = srcMapping.generatedLine;\n\t destMapping.generatedColumn = srcMapping.generatedColumn;\n\n\t if (srcMapping.source) {\n\t destMapping.source = sources.indexOf(srcMapping.source);\n\t destMapping.originalLine = srcMapping.originalLine;\n\t destMapping.originalColumn = srcMapping.originalColumn;\n\n\t if (srcMapping.name) {\n\t destMapping.name = names.indexOf(srcMapping.name);\n\t }\n\n\t destOriginalMappings.push(destMapping);\n\t }\n\n\t destGeneratedMappings.push(destMapping);\n\t }\n\n\t quickSort(smc.__originalMappings, util.compareByOriginalPositions);\n\n\t return smc;\n\t };\n\n\t/**\n\t * The version of the source mapping spec that we are consuming.\n\t */\n\tBasicSourceMapConsumer.prototype._version = 3;\n\n\t/**\n\t * The list of original sources.\n\t */\n\tObject.defineProperty(BasicSourceMapConsumer.prototype, 'sources', {\n\t get: function () {\n\t return this._sources.toArray().map(function (s) {\n\t return this.sourceRoot != null ? util.join(this.sourceRoot, s) : s;\n\t }, this);\n\t }\n\t});\n\n\t/**\n\t * Provide the JIT with a nice shape / hidden class.\n\t */\n\tfunction Mapping() {\n\t this.generatedLine = 0;\n\t this.generatedColumn = 0;\n\t this.source = null;\n\t this.originalLine = null;\n\t this.originalColumn = null;\n\t this.name = null;\n\t}\n\n\t/**\n\t * Parse the mappings in a string in to a data structure which we can easily\n\t * query (the ordered arrays in the `this.__generatedMappings` and\n\t * `this.__originalMappings` properties).\n\t */\n\tBasicSourceMapConsumer.prototype._parseMappings =\n\t function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n\t var generatedLine = 1;\n\t var previousGeneratedColumn = 0;\n\t var previousOriginalLine = 0;\n\t var previousOriginalColumn = 0;\n\t var previousSource = 0;\n\t var previousName = 0;\n\t var length = aStr.length;\n\t var index = 0;\n\t var cachedSegments = {};\n\t var temp = {};\n\t var originalMappings = [];\n\t var generatedMappings = [];\n\t var mapping, str, segment, end, value;\n\n\t while (index < length) {\n\t if (aStr.charAt(index) === ';') {\n\t generatedLine++;\n\t index++;\n\t previousGeneratedColumn = 0;\n\t }\n\t else if (aStr.charAt(index) === ',') {\n\t index++;\n\t }\n\t else {\n\t mapping = new Mapping();\n\t mapping.generatedLine = generatedLine;\n\n\t // Because each offset is encoded relative to the previous one,\n\t // many segments often have the same encoding. We can exploit this\n\t // fact by caching the parsed variable length fields of each segment,\n\t // allowing us to avoid a second parse if we encounter the same\n\t // segment again.\n\t for (end = index; end < length; end++) {\n\t if (this._charIsMappingSeparator(aStr, end)) {\n\t break;\n\t }\n\t }\n\t str = aStr.slice(index, end);\n\n\t segment = cachedSegments[str];\n\t if (segment) {\n\t index += str.length;\n\t } else {\n\t segment = [];\n\t while (index < end) {\n\t base64VLQ.decode(aStr, index, temp);\n\t value = temp.value;\n\t index = temp.rest;\n\t segment.push(value);\n\t }\n\n\t if (segment.length === 2) {\n\t throw new Error('Found a source, but no line and column');\n\t }\n\n\t if (segment.length === 3) {\n\t throw new Error('Found a source and line, but no column');\n\t }\n\n\t cachedSegments[str] = segment;\n\t }\n\n\t // Generated column.\n\t mapping.generatedColumn = previousGeneratedColumn + segment[0];\n\t previousGeneratedColumn = mapping.generatedColumn;\n\n\t if (segment.length > 1) {\n\t // Original source.\n\t mapping.source = previousSource + segment[1];\n\t previousSource += segment[1];\n\n\t // Original line.\n\t mapping.originalLine = previousOriginalLine + segment[2];\n\t previousOriginalLine = mapping.originalLine;\n\t // Lines are stored 0-based\n\t mapping.originalLine += 1;\n\n\t // Original column.\n\t mapping.originalColumn = previousOriginalColumn + segment[3];\n\t previousOriginalColumn = mapping.originalColumn;\n\n\t if (segment.length > 4) {\n\t // Original name.\n\t mapping.name = previousName + segment[4];\n\t previousName += segment[4];\n\t }\n\t }\n\n\t generatedMappings.push(mapping);\n\t if (typeof mapping.originalLine === 'number') {\n\t originalMappings.push(mapping);\n\t }\n\t }\n\t }\n\n\t quickSort(generatedMappings, util.compareByGeneratedPositionsDeflated);\n\t this.__generatedMappings = generatedMappings;\n\n\t quickSort(originalMappings, util.compareByOriginalPositions);\n\t this.__originalMappings = originalMappings;\n\t };\n\n\t/**\n\t * Find the mapping that best matches the hypothetical \"needle\" mapping that\n\t * we are searching for in the given \"haystack\" of mappings.\n\t */\n\tBasicSourceMapConsumer.prototype._findMapping =\n\t function SourceMapConsumer_findMapping(aNeedle, aMappings, aLineName,\n\t aColumnName, aComparator, aBias) {\n\t // To return the position we are searching for, we must first find the\n\t // mapping for the given position and then return the opposite position it\n\t // points to. Because the mappings are sorted, we can use binary search to\n\t // find the best mapping.\n\n\t if (aNeedle[aLineName] <= 0) {\n\t throw new TypeError('Line must be greater than or equal to 1, got '\n\t + aNeedle[aLineName]);\n\t }\n\t if (aNeedle[aColumnName] < 0) {\n\t throw new TypeError('Column must be greater than or equal to 0, got '\n\t + aNeedle[aColumnName]);\n\t }\n\n\t return binarySearch.search(aNeedle, aMappings, aComparator, aBias);\n\t };\n\n\t/**\n\t * Compute the last column for each generated mapping. The last column is\n\t * inclusive.\n\t */\n\tBasicSourceMapConsumer.prototype.computeColumnSpans =\n\t function SourceMapConsumer_computeColumnSpans() {\n\t for (var index = 0; index < this._generatedMappings.length; ++index) {\n\t var mapping = this._generatedMappings[index];\n\n\t // Mappings do not contain a field for the last generated columnt. We\n\t // can come up with an optimistic estimate, however, by assuming that\n\t // mappings are contiguous (i.e. given two consecutive mappings, the\n\t // first mapping ends where the second one starts).\n\t if (index + 1 < this._generatedMappings.length) {\n\t var nextMapping = this._generatedMappings[index + 1];\n\n\t if (mapping.generatedLine === nextMapping.generatedLine) {\n\t mapping.lastGeneratedColumn = nextMapping.generatedColumn - 1;\n\t continue;\n\t }\n\t }\n\n\t // The last mapping for each line spans the entire line.\n\t mapping.lastGeneratedColumn = Infinity;\n\t }\n\t };\n\n\t/**\n\t * Returns the original source, line, and column information for the generated\n\t * source's line and column positions provided. The only argument is an object\n\t * with the following properties:\n\t *\n\t * - line: The line number in the generated source.\n\t * - column: The column number in the generated source.\n\t * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or\n\t * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the\n\t * closest element that is smaller than or greater than the one we are\n\t * searching for, respectively, if the exact element cannot be found.\n\t * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.\n\t *\n\t * and an object is returned with the following properties:\n\t *\n\t * - source: The original source file, or null.\n\t * - line: The line number in the original source, or null.\n\t * - column: The column number in the original source, or null.\n\t * - name: The original identifier, or null.\n\t */\n\tBasicSourceMapConsumer.prototype.originalPositionFor =\n\t function SourceMapConsumer_originalPositionFor(aArgs) {\n\t var needle = {\n\t generatedLine: util.getArg(aArgs, 'line'),\n\t generatedColumn: util.getArg(aArgs, 'column')\n\t };\n\n\t var index = this._findMapping(\n\t needle,\n\t this._generatedMappings,\n\t \"generatedLine\",\n\t \"generatedColumn\",\n\t util.compareByGeneratedPositionsDeflated,\n\t util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)\n\t );\n\n\t if (index >= 0) {\n\t var mapping = this._generatedMappings[index];\n\n\t if (mapping.generatedLine === needle.generatedLine) {\n\t var source = util.getArg(mapping, 'source', null);\n\t if (source !== null) {\n\t source = this._sources.at(source);\n\t if (this.sourceRoot != null) {\n\t source = util.join(this.sourceRoot, source);\n\t }\n\t }\n\t var name = util.getArg(mapping, 'name', null);\n\t if (name !== null) {\n\t name = this._names.at(name);\n\t }\n\t return {\n\t source: source,\n\t line: util.getArg(mapping, 'originalLine', null),\n\t column: util.getArg(mapping, 'originalColumn', null),\n\t name: name\n\t };\n\t }\n\t }\n\n\t return {\n\t source: null,\n\t line: null,\n\t column: null,\n\t name: null\n\t };\n\t };\n\n\t/**\n\t * Return true if we have the source content for every source in the source\n\t * map, false otherwise.\n\t */\n\tBasicSourceMapConsumer.prototype.hasContentsOfAllSources =\n\t function BasicSourceMapConsumer_hasContentsOfAllSources() {\n\t if (!this.sourcesContent) {\n\t return false;\n\t }\n\t return this.sourcesContent.length >= this._sources.size() &&\n\t !this.sourcesContent.some(function (sc) { return sc == null; });\n\t };\n\n\t/**\n\t * Returns the original source content. The only argument is the url of the\n\t * original source file. Returns null if no original source content is\n\t * available.\n\t */\n\tBasicSourceMapConsumer.prototype.sourceContentFor =\n\t function SourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {\n\t if (!this.sourcesContent) {\n\t return null;\n\t }\n\n\t if (this.sourceRoot != null) {\n\t aSource = util.relative(this.sourceRoot, aSource);\n\t }\n\n\t if (this._sources.has(aSource)) {\n\t return this.sourcesContent[this._sources.indexOf(aSource)];\n\t }\n\n\t var url;\n\t if (this.sourceRoot != null\n\t && (url = util.urlParse(this.sourceRoot))) {\n\t // XXX: file:// URIs and absolute paths lead to unexpected behavior for\n\t // many users. We can help them out when they expect file:// URIs to\n\t // behave like it would if they were running a local HTTP server. See\n\t // https://bugzilla.mozilla.org/show_bug.cgi?id=885597.\n\t var fileUriAbsPath = aSource.replace(/^file:\\/\\//, \"\");\n\t if (url.scheme == \"file\"\n\t && this._sources.has(fileUriAbsPath)) {\n\t return this.sourcesContent[this._sources.indexOf(fileUriAbsPath)]\n\t }\n\n\t if ((!url.path || url.path == \"/\")\n\t && this._sources.has(\"/\" + aSource)) {\n\t return this.sourcesContent[this._sources.indexOf(\"/\" + aSource)];\n\t }\n\t }\n\n\t // This function is used recursively from\n\t // IndexedSourceMapConsumer.prototype.sourceContentFor. In that case, we\n\t // don't want to throw if we can't find the source - we just want to\n\t // return null, so we provide a flag to exit gracefully.\n\t if (nullOnMissing) {\n\t return null;\n\t }\n\t else {\n\t throw new Error('\"' + aSource + '\" is not in the SourceMap.');\n\t }\n\t };\n\n\t/**\n\t * Returns the generated line and column information for the original source,\n\t * line, and column positions provided. The only argument is an object with\n\t * the following properties:\n\t *\n\t * - source: The filename of the original source.\n\t * - line: The line number in the original source.\n\t * - column: The column number in the original source.\n\t * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or\n\t * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the\n\t * closest element that is smaller than or greater than the one we are\n\t * searching for, respectively, if the exact element cannot be found.\n\t * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.\n\t *\n\t * and an object is returned with the following properties:\n\t *\n\t * - line: The line number in the generated source, or null.\n\t * - column: The column number in the generated source, or null.\n\t */\n\tBasicSourceMapConsumer.prototype.generatedPositionFor =\n\t function SourceMapConsumer_generatedPositionFor(aArgs) {\n\t var source = util.getArg(aArgs, 'source');\n\t if (this.sourceRoot != null) {\n\t source = util.relative(this.sourceRoot, source);\n\t }\n\t if (!this._sources.has(source)) {\n\t return {\n\t line: null,\n\t column: null,\n\t lastColumn: null\n\t };\n\t }\n\t source = this._sources.indexOf(source);\n\n\t var needle = {\n\t source: source,\n\t originalLine: util.getArg(aArgs, 'line'),\n\t originalColumn: util.getArg(aArgs, 'column')\n\t };\n\n\t var index = this._findMapping(\n\t needle,\n\t this._originalMappings,\n\t \"originalLine\",\n\t \"originalColumn\",\n\t util.compareByOriginalPositions,\n\t util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)\n\t );\n\n\t if (index >= 0) {\n\t var mapping = this._originalMappings[index];\n\n\t if (mapping.source === needle.source) {\n\t return {\n\t line: util.getArg(mapping, 'generatedLine', null),\n\t column: util.getArg(mapping, 'generatedColumn', null),\n\t lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n\t };\n\t }\n\t }\n\n\t return {\n\t line: null,\n\t column: null,\n\t lastColumn: null\n\t };\n\t };\n\n\texports.BasicSourceMapConsumer = BasicSourceMapConsumer;\n\n\t/**\n\t * An IndexedSourceMapConsumer instance represents a parsed source map which\n\t * we can query for information. It differs from BasicSourceMapConsumer in\n\t * that it takes \"indexed\" source maps (i.e. ones with a \"sections\" field) as\n\t * input.\n\t *\n\t * The only parameter is a raw source map (either as a JSON string, or already\n\t * parsed to an object). According to the spec for indexed source maps, they\n\t * have the following attributes:\n\t *\n\t * - version: Which version of the source map spec this map is following.\n\t * - file: Optional. The generated file this source map is associated with.\n\t * - sections: A list of section definitions.\n\t *\n\t * Each value under the \"sections\" field has two fields:\n\t * - offset: The offset into the original specified at which this section\n\t * begins to apply, defined as an object with a \"line\" and \"column\"\n\t * field.\n\t * - map: A source map definition. This source map could also be indexed,\n\t * but doesn't have to be.\n\t *\n\t * Instead of the \"map\" field, it's also possible to have a \"url\" field\n\t * specifying a URL to retrieve a source map from, but that's currently\n\t * unsupported.\n\t *\n\t * Here's an example source map, taken from the source map spec[0], but\n\t * modified to omit a section which uses the \"url\" field.\n\t *\n\t * {\n\t * version : 3,\n\t * file: \"app.js\",\n\t * sections: [{\n\t * offset: {line:100, column:10},\n\t * map: {\n\t * version : 3,\n\t * file: \"section.js\",\n\t * sources: [\"foo.js\", \"bar.js\"],\n\t * names: [\"src\", \"maps\", \"are\", \"fun\"],\n\t * mappings: \"AAAA,E;;ABCDE;\"\n\t * }\n\t * }],\n\t * }\n\t *\n\t * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit#heading=h.535es3xeprgt\n\t */\n\tfunction IndexedSourceMapConsumer(aSourceMap) {\n\t var sourceMap = aSourceMap;\n\t if (typeof aSourceMap === 'string') {\n\t sourceMap = JSON.parse(aSourceMap.replace(/^\\)\\]\\}'/, ''));\n\t }\n\n\t var version = util.getArg(sourceMap, 'version');\n\t var sections = util.getArg(sourceMap, 'sections');\n\n\t if (version != this._version) {\n\t throw new Error('Unsupported version: ' + version);\n\t }\n\n\t this._sources = new ArraySet();\n\t this._names = new ArraySet();\n\n\t var lastOffset = {\n\t line: -1,\n\t column: 0\n\t };\n\t this._sections = sections.map(function (s) {\n\t if (s.url) {\n\t // The url field will require support for asynchronicity.\n\t // See https://github.com/mozilla/source-map/issues/16\n\t throw new Error('Support for url field in sections not implemented.');\n\t }\n\t var offset = util.getArg(s, 'offset');\n\t var offsetLine = util.getArg(offset, 'line');\n\t var offsetColumn = util.getArg(offset, 'column');\n\n\t if (offsetLine < lastOffset.line ||\n\t (offsetLine === lastOffset.line && offsetColumn < lastOffset.column)) {\n\t throw new Error('Section offsets must be ordered and non-overlapping.');\n\t }\n\t lastOffset = offset;\n\n\t return {\n\t generatedOffset: {\n\t // The offset fields are 0-based, but we use 1-based indices when\n\t // encoding/decoding from VLQ.\n\t generatedLine: offsetLine + 1,\n\t generatedColumn: offsetColumn + 1\n\t },\n\t consumer: new SourceMapConsumer(util.getArg(s, 'map'))\n\t }\n\t });\n\t}\n\n\tIndexedSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);\n\tIndexedSourceMapConsumer.prototype.constructor = SourceMapConsumer;\n\n\t/**\n\t * The version of the source mapping spec that we are consuming.\n\t */\n\tIndexedSourceMapConsumer.prototype._version = 3;\n\n\t/**\n\t * The list of original sources.\n\t */\n\tObject.defineProperty(IndexedSourceMapConsumer.prototype, 'sources', {\n\t get: function () {\n\t var sources = [];\n\t for (var i = 0; i < this._sections.length; i++) {\n\t for (var j = 0; j < this._sections[i].consumer.sources.length; j++) {\n\t sources.push(this._sections[i].consumer.sources[j]);\n\t }\n\t }\n\t return sources;\n\t }\n\t});\n\n\t/**\n\t * Returns the original source, line, and column information for the generated\n\t * source's line and column positions provided. The only argument is an object\n\t * with the following properties:\n\t *\n\t * - line: The line number in the generated source.\n\t * - column: The column number in the generated source.\n\t *\n\t * and an object is returned with the following properties:\n\t *\n\t * - source: The original source file, or null.\n\t * - line: The line number in the original source, or null.\n\t * - column: The column number in the original source, or null.\n\t * - name: The original identifier, or null.\n\t */\n\tIndexedSourceMapConsumer.prototype.originalPositionFor =\n\t function IndexedSourceMapConsumer_originalPositionFor(aArgs) {\n\t var needle = {\n\t generatedLine: util.getArg(aArgs, 'line'),\n\t generatedColumn: util.getArg(aArgs, 'column')\n\t };\n\n\t // Find the section containing the generated position we're trying to map\n\t // to an original position.\n\t var sectionIndex = binarySearch.search(needle, this._sections,\n\t function(needle, section) {\n\t var cmp = needle.generatedLine - section.generatedOffset.generatedLine;\n\t if (cmp) {\n\t return cmp;\n\t }\n\n\t return (needle.generatedColumn -\n\t section.generatedOffset.generatedColumn);\n\t });\n\t var section = this._sections[sectionIndex];\n\n\t if (!section) {\n\t return {\n\t source: null,\n\t line: null,\n\t column: null,\n\t name: null\n\t };\n\t }\n\n\t return section.consumer.originalPositionFor({\n\t line: needle.generatedLine -\n\t (section.generatedOffset.generatedLine - 1),\n\t column: needle.generatedColumn -\n\t (section.generatedOffset.generatedLine === needle.generatedLine\n\t ? section.generatedOffset.generatedColumn - 1\n\t : 0),\n\t bias: aArgs.bias\n\t });\n\t };\n\n\t/**\n\t * Return true if we have the source content for every source in the source\n\t * map, false otherwise.\n\t */\n\tIndexedSourceMapConsumer.prototype.hasContentsOfAllSources =\n\t function IndexedSourceMapConsumer_hasContentsOfAllSources() {\n\t return this._sections.every(function (s) {\n\t return s.consumer.hasContentsOfAllSources();\n\t });\n\t };\n\n\t/**\n\t * Returns the original source content. The only argument is the url of the\n\t * original source file. Returns null if no original source content is\n\t * available.\n\t */\n\tIndexedSourceMapConsumer.prototype.sourceContentFor =\n\t function IndexedSourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {\n\t for (var i = 0; i < this._sections.length; i++) {\n\t var section = this._sections[i];\n\n\t var content = section.consumer.sourceContentFor(aSource, true);\n\t if (content) {\n\t return content;\n\t }\n\t }\n\t if (nullOnMissing) {\n\t return null;\n\t }\n\t else {\n\t throw new Error('\"' + aSource + '\" is not in the SourceMap.');\n\t }\n\t };\n\n\t/**\n\t * Returns the generated line and column information for the original source,\n\t * line, and column positions provided. The only argument is an object with\n\t * the following properties:\n\t *\n\t * - source: The filename of the original source.\n\t * - line: The line number in the original source.\n\t * - column: The column number in the original source.\n\t *\n\t * and an object is returned with the following properties:\n\t *\n\t * - line: The line number in the generated source, or null.\n\t * - column: The column number in the generated source, or null.\n\t */\n\tIndexedSourceMapConsumer.prototype.generatedPositionFor =\n\t function IndexedSourceMapConsumer_generatedPositionFor(aArgs) {\n\t for (var i = 0; i < this._sections.length; i++) {\n\t var section = this._sections[i];\n\n\t // Only consider this section if the requested source is in the list of\n\t // sources of the consumer.\n\t if (section.consumer.sources.indexOf(util.getArg(aArgs, 'source')) === -1) {\n\t continue;\n\t }\n\t var generatedPosition = section.consumer.generatedPositionFor(aArgs);\n\t if (generatedPosition) {\n\t var ret = {\n\t line: generatedPosition.line +\n\t (section.generatedOffset.generatedLine - 1),\n\t column: generatedPosition.column +\n\t (section.generatedOffset.generatedLine === generatedPosition.line\n\t ? section.generatedOffset.generatedColumn - 1\n\t : 0)\n\t };\n\t return ret;\n\t }\n\t }\n\n\t return {\n\t line: null,\n\t column: null\n\t };\n\t };\n\n\t/**\n\t * Parse the mappings in a string in to a data structure which we can easily\n\t * query (the ordered arrays in the `this.__generatedMappings` and\n\t * `this.__originalMappings` properties).\n\t */\n\tIndexedSourceMapConsumer.prototype._parseMappings =\n\t function IndexedSourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n\t this.__generatedMappings = [];\n\t this.__originalMappings = [];\n\t for (var i = 0; i < this._sections.length; i++) {\n\t var section = this._sections[i];\n\t var sectionMappings = section.consumer._generatedMappings;\n\t for (var j = 0; j < sectionMappings.length; j++) {\n\t var mapping = sectionMappings[j];\n\n\t var source = section.consumer._sources.at(mapping.source);\n\t if (section.consumer.sourceRoot !== null) {\n\t source = util.join(section.consumer.sourceRoot, source);\n\t }\n\t this._sources.add(source);\n\t source = this._sources.indexOf(source);\n\n\t var name = section.consumer._names.at(mapping.name);\n\t this._names.add(name);\n\t name = this._names.indexOf(name);\n\n\t // The mappings coming from the consumer for the section have\n\t // generated positions relative to the start of the section, so we\n\t // need to offset them to be relative to the start of the concatenated\n\t // generated file.\n\t var adjustedMapping = {\n\t source: source,\n\t generatedLine: mapping.generatedLine +\n\t (section.generatedOffset.generatedLine - 1),\n\t generatedColumn: mapping.generatedColumn +\n\t (section.generatedOffset.generatedLine === mapping.generatedLine\n\t ? section.generatedOffset.generatedColumn - 1\n\t : 0),\n\t originalLine: mapping.originalLine,\n\t originalColumn: mapping.originalColumn,\n\t name: name\n\t };\n\n\t this.__generatedMappings.push(adjustedMapping);\n\t if (typeof adjustedMapping.originalLine === 'number') {\n\t this.__originalMappings.push(adjustedMapping);\n\t }\n\t }\n\t }\n\n\t quickSort(this.__generatedMappings, util.compareByGeneratedPositionsDeflated);\n\t quickSort(this.__originalMappings, util.compareByOriginalPositions);\n\t };\n\n\texports.IndexedSourceMapConsumer = IndexedSourceMapConsumer;\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\n\t/**\n\t * This is a helper function for getting values from parameter/options\n\t * objects.\n\t *\n\t * @param args The object we are extracting values from\n\t * @param name The name of the property we are getting.\n\t * @param defaultValue An optional value to return if the property is missing\n\t * from the object. If this is not specified and the property is missing, an\n\t * error will be thrown.\n\t */\n\tfunction getArg(aArgs, aName, aDefaultValue) {\n\t if (aName in aArgs) {\n\t return aArgs[aName];\n\t } else if (arguments.length === 3) {\n\t return aDefaultValue;\n\t } else {\n\t throw new Error('\"' + aName + '\" is a required argument.');\n\t }\n\t}\n\texports.getArg = getArg;\n\n\tvar urlRegexp = /^(?:([\\w+\\-.]+):)?\\/\\/(?:(\\w+:\\w+)@)?([\\w.]*)(?::(\\d+))?(\\S*)$/;\n\tvar dataUrlRegexp = /^data:.+\\,.+$/;\n\n\tfunction urlParse(aUrl) {\n\t var match = aUrl.match(urlRegexp);\n\t if (!match) {\n\t return null;\n\t }\n\t return {\n\t scheme: match[1],\n\t auth: match[2],\n\t host: match[3],\n\t port: match[4],\n\t path: match[5]\n\t };\n\t}\n\texports.urlParse = urlParse;\n\n\tfunction urlGenerate(aParsedUrl) {\n\t var url = '';\n\t if (aParsedUrl.scheme) {\n\t url += aParsedUrl.scheme + ':';\n\t }\n\t url += '//';\n\t if (aParsedUrl.auth) {\n\t url += aParsedUrl.auth + '@';\n\t }\n\t if (aParsedUrl.host) {\n\t url += aParsedUrl.host;\n\t }\n\t if (aParsedUrl.port) {\n\t url += \":\" + aParsedUrl.port\n\t }\n\t if (aParsedUrl.path) {\n\t url += aParsedUrl.path;\n\t }\n\t return url;\n\t}\n\texports.urlGenerate = urlGenerate;\n\n\t/**\n\t * Normalizes a path, or the path portion of a URL:\n\t *\n\t * - Replaces consecutive slashes with one slash.\n\t * - Removes unnecessary '.' parts.\n\t * - Removes unnecessary '<dir>/..' parts.\n\t *\n\t * Based on code in the Node.js 'path' core module.\n\t *\n\t * @param aPath The path or url to normalize.\n\t */\n\tfunction normalize(aPath) {\n\t var path = aPath;\n\t var url = urlParse(aPath);\n\t if (url) {\n\t if (!url.path) {\n\t return aPath;\n\t }\n\t path = url.path;\n\t }\n\t var isAbsolute = exports.isAbsolute(path);\n\n\t var parts = path.split(/\\/+/);\n\t for (var part, up = 0, i = parts.length - 1; i >= 0; i--) {\n\t part = parts[i];\n\t if (part === '.') {\n\t parts.splice(i, 1);\n\t } else if (part === '..') {\n\t up++;\n\t } else if (up > 0) {\n\t if (part === '') {\n\t // The first part is blank if the path is absolute. Trying to go\n\t // above the root is a no-op. Therefore we can remove all '..' parts\n\t // directly after the root.\n\t parts.splice(i + 1, up);\n\t up = 0;\n\t } else {\n\t parts.splice(i, 2);\n\t up--;\n\t }\n\t }\n\t }\n\t path = parts.join('/');\n\n\t if (path === '') {\n\t path = isAbsolute ? '/' : '.';\n\t }\n\n\t if (url) {\n\t url.path = path;\n\t return urlGenerate(url);\n\t }\n\t return path;\n\t}\n\texports.normalize = normalize;\n\n\t/**\n\t * Joins two paths/URLs.\n\t *\n\t * @param aRoot The root path or URL.\n\t * @param aPath The path or URL to be joined with the root.\n\t *\n\t * - If aPath is a URL or a data URI, aPath is returned, unless aPath is a\n\t * scheme-relative URL: Then the scheme of aRoot, if any, is prepended\n\t * first.\n\t * - Otherwise aPath is a path. If aRoot is a URL, then its path portion\n\t * is updated with the result and aRoot is returned. Otherwise the result\n\t * is returned.\n\t * - If aPath is absolute, the result is aPath.\n\t * - Otherwise the two paths are joined with a slash.\n\t * - Joining for example 'http://' and 'www.example.com' is also supported.\n\t */\n\tfunction join(aRoot, aPath) {\n\t if (aRoot === \"\") {\n\t aRoot = \".\";\n\t }\n\t if (aPath === \"\") {\n\t aPath = \".\";\n\t }\n\t var aPathUrl = urlParse(aPath);\n\t var aRootUrl = urlParse(aRoot);\n\t if (aRootUrl) {\n\t aRoot = aRootUrl.path || '/';\n\t }\n\n\t // `join(foo, '//www.example.org')`\n\t if (aPathUrl && !aPathUrl.scheme) {\n\t if (aRootUrl) {\n\t aPathUrl.scheme = aRootUrl.scheme;\n\t }\n\t return urlGenerate(aPathUrl);\n\t }\n\n\t if (aPathUrl || aPath.match(dataUrlRegexp)) {\n\t return aPath;\n\t }\n\n\t // `join('http://', 'www.example.com')`\n\t if (aRootUrl && !aRootUrl.host && !aRootUrl.path) {\n\t aRootUrl.host = aPath;\n\t return urlGenerate(aRootUrl);\n\t }\n\n\t var joined = aPath.charAt(0) === '/'\n\t ? aPath\n\t : normalize(aRoot.replace(/\\/+$/, '') + '/' + aPath);\n\n\t if (aRootUrl) {\n\t aRootUrl.path = joined;\n\t return urlGenerate(aRootUrl);\n\t }\n\t return joined;\n\t}\n\texports.join = join;\n\n\texports.isAbsolute = function (aPath) {\n\t return aPath.charAt(0) === '/' || !!aPath.match(urlRegexp);\n\t};\n\n\t/**\n\t * Make a path relative to a URL or another path.\n\t *\n\t * @param aRoot The root path or URL.\n\t * @param aPath The path or URL to be made relative to aRoot.\n\t */\n\tfunction relative(aRoot, aPath) {\n\t if (aRoot === \"\") {\n\t aRoot = \".\";\n\t }\n\n\t aRoot = aRoot.replace(/\\/$/, '');\n\n\t // It is possible for the path to be above the root. In this case, simply\n\t // checking whether the root is a prefix of the path won't work. Instead, we\n\t // need to remove components from the root one by one, until either we find\n\t // a prefix that fits, or we run out of components to remove.\n\t var level = 0;\n\t while (aPath.indexOf(aRoot + '/') !== 0) {\n\t var index = aRoot.lastIndexOf(\"/\");\n\t if (index < 0) {\n\t return aPath;\n\t }\n\n\t // If the only part of the root that is left is the scheme (i.e. http://,\n\t // file:///, etc.), one or more slashes (/), or simply nothing at all, we\n\t // have exhausted all components, so the path is not relative to the root.\n\t aRoot = aRoot.slice(0, index);\n\t if (aRoot.match(/^([^\\/]+:\\/)?\\/*$/)) {\n\t return aPath;\n\t }\n\n\t ++level;\n\t }\n\n\t // Make sure we add a \"../\" for each component we removed from the root.\n\t return Array(level + 1).join(\"../\") + aPath.substr(aRoot.length + 1);\n\t}\n\texports.relative = relative;\n\n\tvar supportsNullProto = (function () {\n\t var obj = Object.create(null);\n\t return !('__proto__' in obj);\n\t}());\n\n\tfunction identity (s) {\n\t return s;\n\t}\n\n\t/**\n\t * Because behavior goes wacky when you set `__proto__` on objects, we\n\t * have to prefix all the strings in our set with an arbitrary character.\n\t *\n\t * See https://github.com/mozilla/source-map/pull/31 and\n\t * https://github.com/mozilla/source-map/issues/30\n\t *\n\t * @param String aStr\n\t */\n\tfunction toSetString(aStr) {\n\t if (isProtoString(aStr)) {\n\t return '$' + aStr;\n\t }\n\n\t return aStr;\n\t}\n\texports.toSetString = supportsNullProto ? identity : toSetString;\n\n\tfunction fromSetString(aStr) {\n\t if (isProtoString(aStr)) {\n\t return aStr.slice(1);\n\t }\n\n\t return aStr;\n\t}\n\texports.fromSetString = supportsNullProto ? identity : fromSetString;\n\n\tfunction isProtoString(s) {\n\t if (!s) {\n\t return false;\n\t }\n\n\t var length = s.length;\n\n\t if (length < 9 /* \"__proto__\".length */) {\n\t return false;\n\t }\n\n\t if (s.charCodeAt(length - 1) !== 95 /* '_' */ ||\n\t s.charCodeAt(length - 2) !== 95 /* '_' */ ||\n\t s.charCodeAt(length - 3) !== 111 /* 'o' */ ||\n\t s.charCodeAt(length - 4) !== 116 /* 't' */ ||\n\t s.charCodeAt(length - 5) !== 111 /* 'o' */ ||\n\t s.charCodeAt(length - 6) !== 114 /* 'r' */ ||\n\t s.charCodeAt(length - 7) !== 112 /* 'p' */ ||\n\t s.charCodeAt(length - 8) !== 95 /* '_' */ ||\n\t s.charCodeAt(length - 9) !== 95 /* '_' */) {\n\t return false;\n\t }\n\n\t for (var i = length - 10; i >= 0; i--) {\n\t if (s.charCodeAt(i) !== 36 /* '$' */) {\n\t return false;\n\t }\n\t }\n\n\t return true;\n\t}\n\n\t/**\n\t * Comparator between two mappings where the original positions are compared.\n\t *\n\t * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n\t * mappings with the same original source/line/column, but different generated\n\t * line and column the same. Useful when searching for a mapping with a\n\t * stubbed out mapping.\n\t */\n\tfunction compareByOriginalPositions(mappingA, mappingB, onlyCompareOriginal) {\n\t var cmp = mappingA.source - mappingB.source;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.originalLine - mappingB.originalLine;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.originalColumn - mappingB.originalColumn;\n\t if (cmp !== 0 || onlyCompareOriginal) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.generatedLine - mappingB.generatedLine;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t return mappingA.name - mappingB.name;\n\t}\n\texports.compareByOriginalPositions = compareByOriginalPositions;\n\n\t/**\n\t * Comparator between two mappings with deflated source and name indices where\n\t * the generated positions are compared.\n\t *\n\t * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n\t * mappings with the same generated line and column, but different\n\t * source/name/original line and column the same. Useful when searching for a\n\t * mapping with a stubbed out mapping.\n\t */\n\tfunction compareByGeneratedPositionsDeflated(mappingA, mappingB, onlyCompareGenerated) {\n\t var cmp = mappingA.generatedLine - mappingB.generatedLine;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n\t if (cmp !== 0 || onlyCompareGenerated) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.source - mappingB.source;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.originalLine - mappingB.originalLine;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.originalColumn - mappingB.originalColumn;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t return mappingA.name - mappingB.name;\n\t}\n\texports.compareByGeneratedPositionsDeflated = compareByGeneratedPositionsDeflated;\n\n\tfunction strcmp(aStr1, aStr2) {\n\t if (aStr1 === aStr2) {\n\t return 0;\n\t }\n\n\t if (aStr1 > aStr2) {\n\t return 1;\n\t }\n\n\t return -1;\n\t}\n\n\t/**\n\t * Comparator between two mappings with inflated source and name strings where\n\t * the generated positions are compared.\n\t */\n\tfunction compareByGeneratedPositionsInflated(mappingA, mappingB) {\n\t var cmp = mappingA.generatedLine - mappingB.generatedLine;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = strcmp(mappingA.source, mappingB.source);\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.originalLine - mappingB.originalLine;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.originalColumn - mappingB.originalColumn;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t return strcmp(mappingA.name, mappingB.name);\n\t}\n\texports.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflated;\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\n\texports.GREATEST_LOWER_BOUND = 1;\n\texports.LEAST_UPPER_BOUND = 2;\n\n\t/**\n\t * Recursive implementation of binary search.\n\t *\n\t * @param aLow Indices here and lower do not contain the needle.\n\t * @param aHigh Indices here and higher do not contain the needle.\n\t * @param aNeedle The element being searched for.\n\t * @param aHaystack The non-empty array being searched.\n\t * @param aCompare Function which takes two elements and returns -1, 0, or 1.\n\t * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n\t * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the\n\t * closest element that is smaller than or greater than the one we are\n\t * searching for, respectively, if the exact element cannot be found.\n\t */\n\tfunction recursiveSearch(aLow, aHigh, aNeedle, aHaystack, aCompare, aBias) {\n\t // This function terminates when one of the following is true:\n\t //\n\t // 1. We find the exact element we are looking for.\n\t //\n\t // 2. We did not find the exact element, but we can return the index of\n\t // the next-closest element.\n\t //\n\t // 3. We did not find the exact element, and there is no next-closest\n\t // element than the one we are searching for, so we return -1.\n\t var mid = Math.floor((aHigh - aLow) / 2) + aLow;\n\t var cmp = aCompare(aNeedle, aHaystack[mid], true);\n\t if (cmp === 0) {\n\t // Found the element we are looking for.\n\t return mid;\n\t }\n\t else if (cmp > 0) {\n\t // Our needle is greater than aHaystack[mid].\n\t if (aHigh - mid > 1) {\n\t // The element is in the upper half.\n\t return recursiveSearch(mid, aHigh, aNeedle, aHaystack, aCompare, aBias);\n\t }\n\n\t // The exact needle element was not found in this haystack. Determine if\n\t // we are in termination case (3) or (2) and return the appropriate thing.\n\t if (aBias == exports.LEAST_UPPER_BOUND) {\n\t return aHigh < aHaystack.length ? aHigh : -1;\n\t } else {\n\t return mid;\n\t }\n\t }\n\t else {\n\t // Our needle is less than aHaystack[mid].\n\t if (mid - aLow > 1) {\n\t // The element is in the lower half.\n\t return recursiveSearch(aLow, mid, aNeedle, aHaystack, aCompare, aBias);\n\t }\n\n\t // we are in termination case (3) or (2) and return the appropriate thing.\n\t if (aBias == exports.LEAST_UPPER_BOUND) {\n\t return mid;\n\t } else {\n\t return aLow < 0 ? -1 : aLow;\n\t }\n\t }\n\t}\n\n\t/**\n\t * This is an implementation of binary search which will always try and return\n\t * the index of the closest element if there is no exact hit. This is because\n\t * mappings between original and generated line/col pairs are single points,\n\t * and there is an implicit region between each of them, so a miss just means\n\t * that you aren't on the very start of a region.\n\t *\n\t * @param aNeedle The element you are looking for.\n\t * @param aHaystack The array that is being searched.\n\t * @param aCompare A function which takes the needle and an element in the\n\t * array and returns -1, 0, or 1 depending on whether the needle is less\n\t * than, equal to, or greater than the element, respectively.\n\t * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n\t * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the\n\t * closest element that is smaller than or greater than the one we are\n\t * searching for, respectively, if the exact element cannot be found.\n\t * Defaults to 'binarySearch.GREATEST_LOWER_BOUND'.\n\t */\n\texports.search = function search(aNeedle, aHaystack, aCompare, aBias) {\n\t if (aHaystack.length === 0) {\n\t return -1;\n\t }\n\n\t var index = recursiveSearch(-1, aHaystack.length, aNeedle, aHaystack,\n\t aCompare, aBias || exports.GREATEST_LOWER_BOUND);\n\t if (index < 0) {\n\t return -1;\n\t }\n\n\t // We have found either the exact element, or the next-closest element than\n\t // the one we are searching for. However, there may be more than one such\n\t // element. Make sure we always return the smallest of these.\n\t while (index - 1 >= 0) {\n\t if (aCompare(aHaystack[index], aHaystack[index - 1], true) !== 0) {\n\t break;\n\t }\n\t --index;\n\t }\n\n\t return index;\n\t};\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\n\tvar util = __webpack_require__(2);\n\tvar has = Object.prototype.hasOwnProperty;\n\n\t/**\n\t * A data structure which is a combination of an array and a set. Adding a new\n\t * member is O(1), testing for membership is O(1), and finding the index of an\n\t * element is O(1). Removing elements from the set is not supported. Only\n\t * strings are supported for membership.\n\t */\n\tfunction ArraySet() {\n\t this._array = [];\n\t this._set = Object.create(null);\n\t}\n\n\t/**\n\t * Static method for creating ArraySet instances from an existing array.\n\t */\n\tArraySet.fromArray = function ArraySet_fromArray(aArray, aAllowDuplicates) {\n\t var set = new ArraySet();\n\t for (var i = 0, len = aArray.length; i < len; i++) {\n\t set.add(aArray[i], aAllowDuplicates);\n\t }\n\t return set;\n\t};\n\n\t/**\n\t * Return how many unique items are in this ArraySet. If duplicates have been\n\t * added, than those do not count towards the size.\n\t *\n\t * @returns Number\n\t */\n\tArraySet.prototype.size = function ArraySet_size() {\n\t return Object.getOwnPropertyNames(this._set).length;\n\t};\n\n\t/**\n\t * Add the given string to this set.\n\t *\n\t * @param String aStr\n\t */\n\tArraySet.prototype.add = function ArraySet_add(aStr, aAllowDuplicates) {\n\t var sStr = util.toSetString(aStr);\n\t var isDuplicate = has.call(this._set, sStr);\n\t var idx = this._array.length;\n\t if (!isDuplicate || aAllowDuplicates) {\n\t this._array.push(aStr);\n\t }\n\t if (!isDuplicate) {\n\t this._set[sStr] = idx;\n\t }\n\t};\n\n\t/**\n\t * Is the given string a member of this set?\n\t *\n\t * @param String aStr\n\t */\n\tArraySet.prototype.has = function ArraySet_has(aStr) {\n\t var sStr = util.toSetString(aStr);\n\t return has.call(this._set, sStr);\n\t};\n\n\t/**\n\t * What is the index of the given string in the array?\n\t *\n\t * @param String aStr\n\t */\n\tArraySet.prototype.indexOf = function ArraySet_indexOf(aStr) {\n\t var sStr = util.toSetString(aStr);\n\t if (has.call(this._set, sStr)) {\n\t return this._set[sStr];\n\t }\n\t throw new Error('\"' + aStr + '\" is not in the set.');\n\t};\n\n\t/**\n\t * What is the element at the given index?\n\t *\n\t * @param Number aIdx\n\t */\n\tArraySet.prototype.at = function ArraySet_at(aIdx) {\n\t if (aIdx >= 0 && aIdx < this._array.length) {\n\t return this._array[aIdx];\n\t }\n\t throw new Error('No element indexed by ' + aIdx);\n\t};\n\n\t/**\n\t * Returns the array representation of this set (which has the proper indices\n\t * indicated by indexOf). Note that this is a copy of the internal array used\n\t * for storing the members so that no one can mess with internal state.\n\t */\n\tArraySet.prototype.toArray = function ArraySet_toArray() {\n\t return this._array.slice();\n\t};\n\n\texports.ArraySet = ArraySet;\n\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t *\n\t * Based on the Base 64 VLQ implementation in Closure Compiler:\n\t * https://code.google.com/p/closure-compiler/source/browse/trunk/src/com/google/debugging/sourcemap/Base64VLQ.java\n\t *\n\t * Copyright 2011 The Closure Compiler Authors. All rights reserved.\n\t * Redistribution and use in source and binary forms, with or without\n\t * modification, are permitted provided that the following conditions are\n\t * met:\n\t *\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\n\t * copyright notice, this list of conditions and the following\n\t * disclaimer in the documentation and/or other materials provided\n\t * with the distribution.\n\t * * Neither the name of Google Inc. nor the names of its\n\t * contributors may be used to endorse or promote products derived\n\t * from this software without specific prior written permission.\n\t *\n\t * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\t * \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n\t * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n\t * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n\t * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n\t * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n\t * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n\t * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n\t * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n\t * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n\t * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\t */\n\n\tvar base64 = __webpack_require__(6);\n\n\t// A single base 64 digit can contain 6 bits of data. For the base 64 variable\n\t// length quantities we use in the source map spec, the first bit is the sign,\n\t// the next four bits are the actual value, and the 6th bit is the\n\t// continuation bit. The continuation bit tells us whether there are more\n\t// digits in this value following this digit.\n\t//\n\t// Continuation\n\t// | Sign\n\t// | |\n\t// V V\n\t// 101011\n\n\tvar VLQ_BASE_SHIFT = 5;\n\n\t// binary: 100000\n\tvar VLQ_BASE = 1 << VLQ_BASE_SHIFT;\n\n\t// binary: 011111\n\tvar VLQ_BASE_MASK = VLQ_BASE - 1;\n\n\t// binary: 100000\n\tvar VLQ_CONTINUATION_BIT = VLQ_BASE;\n\n\t/**\n\t * Converts from a two-complement value to a value where the sign bit is\n\t * placed in the least significant bit. For example, as decimals:\n\t * 1 becomes 2 (10 binary), -1 becomes 3 (11 binary)\n\t * 2 becomes 4 (100 binary), -2 becomes 5 (101 binary)\n\t */\n\tfunction toVLQSigned(aValue) {\n\t return aValue < 0\n\t ? ((-aValue) << 1) + 1\n\t : (aValue << 1) + 0;\n\t}\n\n\t/**\n\t * Converts to a two-complement value from a value where the sign bit is\n\t * placed in the least significant bit. For example, as decimals:\n\t * 2 (10 binary) becomes 1, 3 (11 binary) becomes -1\n\t * 4 (100 binary) becomes 2, 5 (101 binary) becomes -2\n\t */\n\tfunction fromVLQSigned(aValue) {\n\t var isNegative = (aValue & 1) === 1;\n\t var shifted = aValue >> 1;\n\t return isNegative\n\t ? -shifted\n\t : shifted;\n\t}\n\n\t/**\n\t * Returns the base 64 VLQ encoded value.\n\t */\n\texports.encode = function base64VLQ_encode(aValue) {\n\t var encoded = \"\";\n\t var digit;\n\n\t var vlq = toVLQSigned(aValue);\n\n\t do {\n\t digit = vlq & VLQ_BASE_MASK;\n\t vlq >>>= VLQ_BASE_SHIFT;\n\t if (vlq > 0) {\n\t // There are still more digits in this value, so we must make sure the\n\t // continuation bit is marked.\n\t digit |= VLQ_CONTINUATION_BIT;\n\t }\n\t encoded += base64.encode(digit);\n\t } while (vlq > 0);\n\n\t return encoded;\n\t};\n\n\t/**\n\t * Decodes the next base 64 VLQ value from the given string and returns the\n\t * value and the rest of the string via the out parameter.\n\t */\n\texports.decode = function base64VLQ_decode(aStr, aIndex, aOutParam) {\n\t var strLen = aStr.length;\n\t var result = 0;\n\t var shift = 0;\n\t var continuation, digit;\n\n\t do {\n\t if (aIndex >= strLen) {\n\t throw new Error(\"Expected more digits in base 64 VLQ value.\");\n\t }\n\n\t digit = base64.decode(aStr.charCodeAt(aIndex++));\n\t if (digit === -1) {\n\t throw new Error(\"Invalid base64 digit: \" + aStr.charAt(aIndex - 1));\n\t }\n\n\t continuation = !!(digit & VLQ_CONTINUATION_BIT);\n\t digit &= VLQ_BASE_MASK;\n\t result = result + (digit << shift);\n\t shift += VLQ_BASE_SHIFT;\n\t } while (continuation);\n\n\t aOutParam.value = fromVLQSigned(result);\n\t aOutParam.rest = aIndex;\n\t};\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\n\tvar intToCharMap = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split('');\n\n\t/**\n\t * Encode an integer in the range of 0 to 63 to a single base 64 digit.\n\t */\n\texports.encode = function (number) {\n\t if (0 <= number && number < intToCharMap.length) {\n\t return intToCharMap[number];\n\t }\n\t throw new TypeError(\"Must be between 0 and 63: \" + number);\n\t};\n\n\t/**\n\t * Decode a single base 64 character code digit to an integer. Returns -1 on\n\t * failure.\n\t */\n\texports.decode = function (charCode) {\n\t var bigA = 65; // 'A'\n\t var bigZ = 90; // 'Z'\n\n\t var littleA = 97; // 'a'\n\t var littleZ = 122; // 'z'\n\n\t var zero = 48; // '0'\n\t var nine = 57; // '9'\n\n\t var plus = 43; // '+'\n\t var slash = 47; // '/'\n\n\t var littleOffset = 26;\n\t var numberOffset = 52;\n\n\t // 0 - 25: ABCDEFGHIJKLMNOPQRSTUVWXYZ\n\t if (bigA <= charCode && charCode <= bigZ) {\n\t return (charCode - bigA);\n\t }\n\n\t // 26 - 51: abcdefghijklmnopqrstuvwxyz\n\t if (littleA <= charCode && charCode <= littleZ) {\n\t return (charCode - littleA + littleOffset);\n\t }\n\n\t // 52 - 61: 0123456789\n\t if (zero <= charCode && charCode <= nine) {\n\t return (charCode - zero + numberOffset);\n\t }\n\n\t // 62: +\n\t if (charCode == plus) {\n\t return 62;\n\t }\n\n\t // 63: /\n\t if (charCode == slash) {\n\t return 63;\n\t }\n\n\t // Invalid base64 digit.\n\t return -1;\n\t};\n\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\n\t// It turns out that some (most?) JavaScript engines don't self-host\n\t// `Array.prototype.sort`. This makes sense because C++ will likely remain\n\t// faster than JS when doing raw CPU-intensive sorting. However, when using a\n\t// custom comparator function, calling back and forth between the VM's C++ and\n\t// JIT'd JS is rather slow *and* loses JIT type information, resulting in\n\t// worse generated code for the comparator function than would be optimal. In\n\t// fact, when sorting with a comparator, these costs outweigh the benefits of\n\t// sorting in C++. By using our own JS-implemented Quick Sort (below), we get\n\t// a ~3500ms mean speed-up in `bench/bench.html`.\n\n\t/**\n\t * Swap the elements indexed by `x` and `y` in the array `ary`.\n\t *\n\t * @param {Array} ary\n\t * The array.\n\t * @param {Number} x\n\t * The index of the first item.\n\t * @param {Number} y\n\t * The index of the second item.\n\t */\n\tfunction swap(ary, x, y) {\n\t var temp = ary[x];\n\t ary[x] = ary[y];\n\t ary[y] = temp;\n\t}\n\n\t/**\n\t * Returns a random integer within the range `low .. high` inclusive.\n\t *\n\t * @param {Number} low\n\t * The lower bound on the range.\n\t * @param {Number} high\n\t * The upper bound on the range.\n\t */\n\tfunction randomIntInRange(low, high) {\n\t return Math.round(low + (Math.random() * (high - low)));\n\t}\n\n\t/**\n\t * The Quick Sort algorithm.\n\t *\n\t * @param {Array} ary\n\t * An array to sort.\n\t * @param {function} comparator\n\t * Function to use to compare two items.\n\t * @param {Number} p\n\t * Start index of the array\n\t * @param {Number} r\n\t * End index of the array\n\t */\n\tfunction doQuickSort(ary, comparator, p, r) {\n\t // If our lower bound is less than our upper bound, we (1) partition the\n\t // array into two pieces and (2) recurse on each half. If it is not, this is\n\t // the empty array and our base case.\n\n\t if (p < r) {\n\t // (1) Partitioning.\n\t //\n\t // The partitioning chooses a pivot between `p` and `r` and moves all\n\t // elements that are less than or equal to the pivot to the before it, and\n\t // all the elements that are greater than it after it. The effect is that\n\t // once partition is done, the pivot is in the exact place it will be when\n\t // the array is put in sorted order, and it will not need to be moved\n\t // again. This runs in O(n) time.\n\n\t // Always choose a random pivot so that an input array which is reverse\n\t // sorted does not cause O(n^2) running time.\n\t var pivotIndex = randomIntInRange(p, r);\n\t var i = p - 1;\n\n\t swap(ary, pivotIndex, r);\n\t var pivot = ary[r];\n\n\t // Immediately after `j` is incremented in this loop, the following hold\n\t // true:\n\t //\n\t // * Every element in `ary[p .. i]` is less than or equal to the pivot.\n\t //\n\t // * Every element in `ary[i+1 .. j-1]` is greater than the pivot.\n\t for (var j = p; j < r; j++) {\n\t if (comparator(ary[j], pivot) <= 0) {\n\t i += 1;\n\t swap(ary, i, j);\n\t }\n\t }\n\n\t swap(ary, i + 1, j);\n\t var q = i + 1;\n\n\t // (2) Recurse on each half.\n\n\t doQuickSort(ary, comparator, p, q - 1);\n\t doQuickSort(ary, comparator, q + 1, r);\n\t }\n\t}\n\n\t/**\n\t * Sort the given array in-place with the given comparator function.\n\t *\n\t * @param {Array} ary\n\t * An array to sort.\n\t * @param {function} comparator\n\t * Function to use to compare two items.\n\t */\n\texports.quickSort = function (ary, comparator) {\n\t doQuickSort(ary, comparator, 0, ary.length - 1);\n\t};\n\n\n/***/ })\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 collections.register('cat_texture', [\r\n 'textures/entity/cat/tabby.png',\r\n 'textures/entity/cat/black.png',\r\n 'textures/entity/cat/red.png',\r\n 'textures/entity/cat/siamese.png',\r\n 'textures/entity/cat/british_shorthair.png',\r\n 'textures/entity/cat/calico.png',\r\n 'textures/entity/cat/persian.png',\r\n 'textures/entity/cat/ragdoll.png',\r\n 'textures/entity/cat/white.png',\r\n 'textures/entity/cat/jellie.png',\r\n 'textures/entity/cat/all_black.png'\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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n Properties: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'fluid' } }),\r\n Properties: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ListNode)((0, core_1.NumberNode)({ integer: true })), {\r\n default: () => [0, 0, 0]\r\n }));\r\n exports.Range = (config) => (0, core_1.ChoiceNode)([\r\n ...((config === null || config === void 0 ? void 0 : config.forceRange) ? [] : [{\r\n type: 'number',\r\n node: (0, 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: (0, core_1.ObjectNode)({\r\n min: (config === null || config === void 0 ? void 0 : config.bounds) ? (0, core_1.NumberNode)(config) : (0, core_1.Opt)((0, core_1.NumberNode)(config)),\r\n max: (config === null || config === void 0 ? void 0 : config.bounds) ? (0, core_1.NumberNode)(config) : (0, core_1.Opt)((0, 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: (0, core_1.ObjectNode)({\r\n type: StringNode({ enum: ['minecraft:binomial'] }),\r\n n: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n p: (0, 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: (0, 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: (0, 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: (0, core_1.MapNode)(StringNode({ validator: 'objective' }), (0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:location_check': {\r\n offsetX: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n offsetY: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n offsetZ: (0, core_1.Opt)((0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_chance_with_looting': {\r\n chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n looting_multiplier: (0, 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: (0, core_1.ListNode)((0, core_1.NumberNode)({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:time_check': {\r\n value: (0, exports.Range)(),\r\n period: (0, core_1.Opt)((0, core_1.NumberNode)())\r\n },\r\n 'minecraft:weather_check': {\r\n raining: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n thundering: (0, core_1.Opt)((0, 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 = (0, 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: (0, core_1.NumberNode)(),\r\n change: v => (typeof v === 'string') ? parseInt(v) : 0\r\n },\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)({\r\n min: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n max: (0, core_1.Opt)((0, 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: (0, core_1.BooleanNode)(),\r\n change: v => v === 'true' || v === 1\r\n }\r\n ]);\r\n schemas.register('item_predicate', (0, core_1.ObjectNode)({\r\n item: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$tag/item' } })),\r\n count: (0, core_1.Opt)((0, Common_1.Range)()),\r\n durability: (0, core_1.Opt)((0, Common_1.Range)()),\r\n potion: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'potion' } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } })),\r\n enchantments: (0, core_1.Opt)((0, core_1.ListNode)(Reference('enchantment_predicate')))\r\n }, { context: 'item' }));\r\n schemas.register('enchantment_predicate', (0, core_1.ObjectNode)({\r\n enchantment: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })),\r\n levels: (0, core_1.Opt)((0, Common_1.Range)())\r\n }, { context: 'enchantment' }));\r\n schemas.register('block_predicate', (0, core_1.ObjectNode)({\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n tag: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$tag/block' } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block', id: ['pop', { push: 'block' }] } } })),\r\n state: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n fluid: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'fluid' } })),\r\n tag: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$tag/fluid' } })),\r\n state: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), StateChoice))\r\n }, { context: 'fluid' }));\r\n exports.LocationFields = {\r\n position: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n x: (0, core_1.Opt)((0, Common_1.Range)()),\r\n y: (0, core_1.Opt)((0, Common_1.Range)()),\r\n z: (0, core_1.Opt)((0, Common_1.Range)())\r\n })),\r\n biome: (0, core_1.Opt)(StringNode({ enum: 'biome' })),\r\n feature: (0, core_1.Opt)(StringNode({ enum: 'structure_feature' })),\r\n dimension: (0, core_1.Opt)(StringNode({ enum: 'dimension' })),\r\n light: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n light: (0, core_1.Opt)((0, Common_1.Range)({ integer: true, min: 0, max: 15 }))\r\n })),\r\n block: (0, core_1.Opt)(Reference('block_predicate')),\r\n fluid: (0, core_1.Opt)(Reference('fluid_predicate'))\r\n };\r\n schemas.register('location_predicate', (0, core_1.ObjectNode)(exports.LocationFields, { context: 'location' }));\r\n schemas.register('statistic_predicate', (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'stat_type' } }),\r\n stat: StringNode(),\r\n value: (0, 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', (0, core_1.ObjectNode)({\r\n gamemode: (0, core_1.Opt)(StringNode({ enum: 'gamemode' })),\r\n level: (0, core_1.Opt)((0, Common_1.Range)()),\r\n advancements: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: '$advancement' } }), (0, core_1.ChoiceNode)([\r\n { type: 'boolean', node: (0, core_1.BooleanNode)(), change: _ => true },\r\n {\r\n type: 'object', node: (0, core_1.MapNode)(StringNode(), (0, core_1.BooleanNode)())\r\n }\r\n ]))),\r\n recipes: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: '$recipe' } }), (0, core_1.BooleanNode)())),\r\n stats: (0, core_1.Opt)((0, core_1.ListNode)(Reference('statistic_predicate')))\r\n }, { context: 'player' }));\r\n schemas.register('status_effect_predicate', (0, core_1.ObjectNode)({\r\n amplifier: (0, core_1.Opt)((0, Common_1.Range)()),\r\n duration: (0, core_1.Opt)((0, Common_1.Range)()),\r\n ambient: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n visible: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n }, { context: 'status_effect' }));\r\n schemas.register('distance_predicate', (0, core_1.ObjectNode)({\r\n x: (0, core_1.Opt)((0, Common_1.Range)()),\r\n y: (0, core_1.Opt)((0, Common_1.Range)()),\r\n z: (0, core_1.Opt)((0, Common_1.Range)()),\r\n absolute: (0, core_1.Opt)((0, Common_1.Range)()),\r\n horizontal: (0, core_1.Opt)((0, Common_1.Range)())\r\n }, { context: 'distance' }));\r\n schemas.register('entity_predicate', (0, core_1.ObjectNode)({\r\n type: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'entity_type', allowTag: true } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:entity', id: ['pop', { push: 'type' }] } } })),\r\n team: (0, core_1.Opt)(StringNode({ validator: 'team' })),\r\n location: (0, core_1.Opt)(Reference('location_predicate')),\r\n distance: (0, core_1.Opt)(Reference('distance_predicate')),\r\n flags: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n is_on_fire: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_sneaking: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_sprinting: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_swimming: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_baby: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n })),\r\n equipment: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ enum: 'slot' }), Reference('item_predicate'))),\r\n player: (0, core_1.Opt)(Reference('player_predicate')),\r\n catType: (0, core_1.Opt)(StringNode({ enum: 'cat_texture' })),\r\n effects: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n is_explosion: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_fire: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_magic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_projectile: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_lightning: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_armor: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_invulnerability: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_magic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n source_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n direct_entity: (0, core_1.Opt)(Reference('entity_predicate'))\r\n }, { context: 'damage_source' }));\r\n schemas.register('damage_predicate', (0, core_1.ObjectNode)({\r\n dealt: (0, core_1.Opt)((0, Common_1.Range)()),\r\n taken: (0, core_1.Opt)((0, Common_1.Range)()),\r\n blocked: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n source_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n type: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n display: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n icon: (0, core_1.ObjectNode)({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n nbt: (0, 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: (0, core_1.Opt)(StringNode()),\r\n frame: (0, core_1.Opt)(StringNode({ enum: ['task', 'challenge', 'goal'] })),\r\n show_toast: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n announce_to_chat: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n hidden: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$advancement' } })),\r\n criteria: (0, core_1.MapNode)(StringNode(), Reference('advancement_criteria')),\r\n requirements: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ListNode)(StringNode() // TODO: add validation\r\n ))),\r\n rewards: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n function: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$function' } })),\r\n loot: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$loot_table' } }))),\r\n recipes: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$recipe' } }))),\r\n experience: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n trigger: StringNode({ validator: 'resource', params: { pool: collections.get('advancement_trigger') } }),\r\n conditions: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n num_bees_inside: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:bred_animals': {\r\n parent: (0, core_1.Opt)(Reference('entity_predicate')),\r\n partner: (0, core_1.Opt)(Reference('entity_predicate')),\r\n child: (0, core_1.Opt)(Reference('entity_predicate'))\r\n },\r\n 'minecraft:brewed_potion': {\r\n potion: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'potion' } }))\r\n },\r\n 'minecraft:changed_dimension': {\r\n from: (0, core_1.Opt)(StringNode({ enum: 'dimension' })),\r\n to: (0, core_1.Opt)(StringNode({ enum: 'dimension' }))\r\n },\r\n 'minecraft:channeled_lightning': {\r\n victims: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.Opt)(Reference('entity_predicate'))))\r\n },\r\n 'minecraft:construct_beacon': {\r\n level: (0, core_1.Opt)((0, Common_1.Range)())\r\n },\r\n 'minecraft:consume_item': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:cured_zombie_villager': {\r\n villager: (0, core_1.Opt)(Reference('entity_predicate')),\r\n zombie: (0, core_1.Opt)(Reference('entity_predicate'))\r\n },\r\n 'minecraft:effects_changed': {\r\n effects: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), Reference('status_effect_predicate')))\r\n },\r\n 'minecraft:enter_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, Common_1.Range)()),\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:entity_hurt_player': {\r\n damage: (0, core_1.Opt)(Reference('damage_predicate'))\r\n },\r\n 'minecraft:entity_killed_player': {\r\n entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n killing_blow: (0, core_1.Opt)(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:filled_bucket': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:fishing_rod_hooked': {\r\n entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n item: (0, 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: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n empty: (0, core_1.Opt)((0, Common_1.Range)()),\r\n occupied: (0, core_1.Opt)((0, Common_1.Range)()),\r\n full: (0, core_1.Opt)((0, Common_1.Range)())\r\n })),\r\n items: (0, core_1.Opt)((0, core_1.ListNode)(Reference('item_predicate')))\r\n },\r\n 'minecraft:item_durability_changed': {\r\n delta: (0, core_1.Opt)((0, Common_1.Range)()),\r\n durability: (0, core_1.Opt)((0, Common_1.Range)()),\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:killed_by_crossbow': {\r\n unique_entity_types: (0, core_1.Opt)((0, Common_1.Range)()),\r\n victims: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.Opt)(Reference('entity_predicate'))))\r\n },\r\n 'minecraft:levitation': {\r\n distance: (0, core_1.Opt)((0, Common_1.Range)()),\r\n duration: (0, core_1.Opt)((0, Common_1.Range)())\r\n },\r\n 'minecraft:location': Predicates_1.LocationFields,\r\n 'minecraft:nether_travel': {\r\n distance: (0, core_1.Opt)((0, Common_1.Range)()),\r\n entered: (0, core_1.Opt)(Reference('location_predicate')),\r\n exited: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:placed_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })),\r\n item: (0, core_1.Opt)(Reference('item_predicate')),\r\n location: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:player_hurt_entity': {\r\n damage: (0, core_1.Opt)(Reference('damage_predicate')),\r\n entity: (0, core_1.Opt)(Reference('entity_predicate'))\r\n },\r\n 'minecraft:player_killed_entity': {\r\n entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n killing_blow: (0, 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: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n tag: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$tag/block' } }))\r\n })),\r\n item: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:shot_crossbow': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:summoned_entity': {\r\n entity: (0, core_1.Opt)(Reference('entity_predicate'))\r\n },\r\n 'minecraft:tame_animal': {\r\n entity: (0, core_1.Opt)(Reference('entity_predicate'))\r\n },\r\n 'minecraft:used_ender_eye': {\r\n distance: (0, core_1.Opt)((0, Common_1.Range)())\r\n },\r\n 'minecraft:used_totem': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:villager_trade': {\r\n villager: (0, core_1.Opt)(Reference('entity_predicate')),\r\n item: (0, 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) => (0, core_1.ListNode)((0, core_1.NumberNode)({ min, max }), { minLength: length, maxLength: length });\r\n const Texture = (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n parent: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$model' } })),\r\n ambientocclusion: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n gui_light: (0, core_1.Opt)(StringNode({ enum: 'gui_light' })),\r\n textures: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), Texture)),\r\n elements: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n from: Vec(3, -16, 32),\r\n to: Vec(3, -16, 32),\r\n rotation: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n origin: Vec(3),\r\n axis: StringNode({ enum: 'axis' }),\r\n angle: (0, core_1.NumberEnum)({ values: [-45, -22.5, 0, 22.5, 45] }),\r\n rescale: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n })),\r\n shade: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n faces: (0, core_1.MapNode)(StringNode({ enum: 'direction' }), (0, core_1.ObjectNode)({\r\n texture: Texture,\r\n uv: (0, core_1.Opt)(Vec(4)),\r\n cullface: (0, core_1.Opt)(StringNode({ enum: 'direction' })),\r\n rotation: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n tintindex: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n }))\r\n }, { context: 'model_element' }))),\r\n display: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ enum: 'display_position' }), (0, 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: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n predicate: (0, core_1.MapNode)(StringNode({ enum: 'item_model_predicates' }), (0, 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', (0, core_1.Mod)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'variants',\r\n match: (v) => v.variants !== undefined,\r\n node: (0, core_1.ObjectNode)({\r\n variants: (0, 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: (0, core_1.ObjectNode)({\r\n multipart: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n when: (0, 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: (0, core_1.Opt)((0, core_1.NumberEnum)({ integer: true, values: [0, 90, 180, 270] })),\r\n y: (0, core_1.Opt)((0, core_1.NumberEnum)({ integer: true, values: [0, 90, 180, 270] })),\r\n uvlock: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n };\r\n schemas.register('model_variant', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n node: (0, 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: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n ...VariantChildren,\r\n weight: (0, core_1.Opt)((0, 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', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n priority: -1,\r\n match: () => true,\r\n node: (0, 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: (0, core_1.ObjectNode)({\r\n OR: (0, 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 (0, BlockDefinition_1.initBlockDefinitionSchemas)(schemas, collections);\r\n (0, 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', (0, core_1.ObjectOrList)(Reference('condition'), { choiceContext: 'condition' }));\r\n schemas.register('condition', (0, core_1.Mod)((0, 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: (0, core_1.Opt)((0, core_1.ListNode)(Reference('loot_condition')))\r\n };\r\n const functionsAndConditions = {\r\n functions: (0, core_1.Opt)((0, 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 (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: (0, core_1.Opt)(StringNode({ validator: \"resource\", params: { pool: collections.get('loot_context_type') } })),\r\n pools: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n rolls: (0, Common_1.Range)({ allowBinomial: true, integer: true }),\r\n bonus_rolls: (0, core_1.Opt)((0, Common_1.Range)({ integer: true })),\r\n entries: (0, 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: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'loot_pool_entry_type' } }),\r\n weight: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true, min: 1 }), weightMod)),\r\n quality: (0, core_1.Opt)((0, core_1.Mod)((0, 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: (0, 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: (0, 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: (0, 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: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, 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: (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n bonusMultiplier: (0, core_1.Mod)((0, core_1.NumberNode)(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:uniform_bonus_count'\r\n }),\r\n extra: (0, core_1.Mod)((0, core_1.NumberNode)(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n }),\r\n probability: (0, core_1.Mod)((0, 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: (0, core_1.ListNode)((0, 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: (0, core_1.ListNode)(StringNode({ validator: 'block_state_key', params: { id: ['pop', 'pop', { push: 'block' }] } }))\r\n },\r\n 'minecraft:enchant_randomly': {\r\n enchantments: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })))\r\n },\r\n 'minecraft:enchant_with_levels': {\r\n levels: (0, Common_1.Range)({ allowBinomial: true }),\r\n treasure: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:exploration_map': {\r\n destination: (0, core_1.Opt)(StringNode({ enum: 'structure_feature' })),\r\n decoration: (0, core_1.Opt)(StringNode({ enum: 'map_decoration' })),\r\n zoom: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n search_radius: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n skip_existing_chunks: (0, core_1.Opt)((0, 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: (0, Common_1.Range)({ bounds: true })\r\n },\r\n 'minecraft:looting_enchant': {\r\n count: (0, Common_1.Range)({ bounds: true }),\r\n limit: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:set_attributes': {\r\n modifiers: (0, core_1.ListNode)(Reference('attribute_modifier'))\r\n },\r\n 'minecraft:set_contents': {\r\n entries: (0, core_1.ListNode)(Reference('loot_entry'))\r\n },\r\n 'minecraft:set_count': {\r\n count: (0, Common_1.Range)({ allowBinomial: true })\r\n },\r\n 'minecraft:set_damage': {\r\n damage: (0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:set_lore': {\r\n entity: (0, core_1.Opt)(entitySourceSwtichNode),\r\n lore: (0, core_1.ListNode)(Reference('text_component')),\r\n replace: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_name': {\r\n entity: (0, core_1.Opt)(entitySourceSwtichNode),\r\n name: (0, 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: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }),\r\n duration: (0, 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', (0, core_1.Mod)((0, 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: (0, core_1.MapNode)(StringNode({ validator: 'objective' }), (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n attribute: StringNode({ validator: 'resource', params: { pool: 'attribute' } }),\r\n name: StringNode(),\r\n amount: (0, Common_1.Range)({ bounds: true }),\r\n operation: StringNode({ enum: ['addition', 'multiply_base', 'multiply_total'] }),\r\n slot: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n pack: (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n pack_format: (0, core_1.Mod)((0, core_1.NumberNode)({ integer: true, min: 5, max: 5 }), { default: () => 5 }),\r\n description: (0, 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', (0, core_1.Mod)((0, 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: (0, core_1.Opt)(StringNode({ enum: 'recipe_group', additional: true })),\r\n pattern: (0, core_1.ListNode)(StringNode()),\r\n key: (0, 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: (0, core_1.Opt)(StringNode()),\r\n ingredients: (0, core_1.ListNode)(Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:smelting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 200 }))\r\n },\r\n 'minecraft:blasting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:smoking': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:campfire_cooking': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:stonecutting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:smithing': {\r\n group: (0, 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', (0, core_1.Mod)((0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n item: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.Opt)((0, core_1.Mod)((0, 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) => (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n replace: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n values: (0, core_1.ListNode)((0, 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: (0, core_1.ObjectNode)({\r\n id: StringNode({ validator: 'resource', params: { pool: type, allowTag: true, allowUnknown: true } }),\r\n required: (0, 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', (0, core_1.Mod)((0, 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: (0, 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: (0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n italic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n underlined: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n strikethrough: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n obfuscated: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n insertion: (0, core_1.Opt)(StringNode()),\r\n clickEvent: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(Reference('text_component'))\r\n },\r\n 'show_item': {\r\n value: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { module: 'util::InventoryItem' } }))\r\n },\r\n 'show_entity': {\r\n value: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n name: (0, core_1.Opt)(StringNode()),\r\n type: (0, core_1.Opt)(StringNode()),\r\n id: (0, core_1.Opt)(StringNode())\r\n }))\r\n }\r\n }\r\n })),\r\n extra: (0, core_1.Opt)(Reference('text_component_list'))\r\n };\r\n schemas.register('text_component_object', (0, core_1.Mod)((0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n translate: StringNode(),\r\n with: (0, 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: (0, core_1.ObjectNode)({\r\n score: (0, 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: (0, 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: (0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n nbt: StringNode({ validator: 'nbt_path' }),\r\n block: (0, core_1.Opt)(StringNode({ validator: 'vector', params: { dimension: 3, isInteger: true } })),\r\n entity: (0, core_1.Opt)(StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } })),\r\n storage: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$storage' } })),\r\n interpret: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, 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 (0, Common_1.initCommonSchemas)(schemas, collections);\r\n (0, Predicates_1.initPredicatesSchemas)(schemas, collections);\r\n (0, Advancement_1.initAdvancementSchemas)(schemas, collections);\r\n (0, assets_1.initAssetsSchemas)(schemas, collections);\r\n (0, Condition_1.initConditionSchemas)(schemas, collections);\r\n (0, LootTable_1.initLootTableSchemas)(schemas, collections);\r\n (0, PackMcmeta_1.initPackMcmetaSchemas)(schemas, collections);\r\n (0, Recipe_1.initRecipeSchemas)(schemas, collections);\r\n (0, Tags_1.initTagsSchemas)(schemas, collections);\r\n (0, 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 var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\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.prototype.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 = exports.lootContext = 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 (0, 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 (0, 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 collections.register('cat_texture', [\r\n 'textures/entity/cat/tabby.png',\r\n 'textures/entity/cat/black.png',\r\n 'textures/entity/cat/red.png',\r\n 'textures/entity/cat/siamese.png',\r\n 'textures/entity/cat/british_shorthair.png',\r\n 'textures/entity/cat/calico.png',\r\n 'textures/entity/cat/persian.png',\r\n 'textures/entity/cat/ragdoll.png',\r\n 'textures/entity/cat/white.png',\r\n 'textures/entity/cat/jellie.png',\r\n 'textures/entity/cat/all_black.png'\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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n Properties: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'fluid' } }),\r\n Properties: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ListNode)((0, core_1.NumberNode)({ integer: true }), { minLength: 3, maxLength: 3 }), {\r\n default: () => [0, 0, 0]\r\n }));\r\n exports.Range = (config) => (0, core_1.ChoiceNode)([\r\n ...((config === null || config === void 0 ? void 0 : config.forceRange) ? [] : [{\r\n type: 'number',\r\n node: (0, 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: (0, core_1.ObjectNode)({\r\n min: (config === null || config === void 0 ? void 0 : config.bounds) ? (0, core_1.NumberNode)(config) : (0, core_1.Opt)((0, core_1.NumberNode)(config)),\r\n max: (config === null || config === void 0 ? void 0 : config.bounds) ? (0, core_1.NumberNode)(config) : (0, core_1.Opt)((0, 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: (0, core_1.ObjectNode)({\r\n type: StringNode({ enum: ['minecraft:binomial'] }),\r\n n: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n p: (0, 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) => (0, core_1.ChoiceNode)([\r\n {\r\n type: 'number',\r\n node: (0, 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: (0, core_1.ObjectNode)({\r\n base: (0, 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: (0, 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: (0, 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: (0, 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: (0, core_1.MapNode)(StringNode({ validator: 'objective' }), (0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:location_check': {\r\n offsetX: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n offsetY: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n offsetZ: (0, core_1.Opt)((0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_chance_with_looting': {\r\n chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n looting_multiplier: (0, 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: (0, core_1.ListNode)((0, core_1.NumberNode)({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:time_check': {\r\n value: (0, exports.Range)(),\r\n period: (0, core_1.Opt)((0, core_1.NumberNode)())\r\n },\r\n 'minecraft:weather_check': {\r\n raining: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n thundering: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n }\r\n };\r\n exports.DimensionTypePresets = (node) => (0, 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) => (0, 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 = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n node: (0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n display: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n icon: (0, core_1.ObjectNode)({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n nbt: (0, 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: (0, core_1.Opt)(StringNode()),\r\n frame: (0, core_1.Opt)(StringNode({ enum: ['task', 'challenge', 'goal'] })),\r\n show_toast: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n announce_to_chat: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n hidden: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$advancement' } })),\r\n criteria: (0, core_1.MapNode)(StringNode(), Reference('advancement_criteria')),\r\n requirements: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ListNode)(StringNode() // TODO: add validation\r\n ))),\r\n rewards: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n function: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$function' } })),\r\n loot: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$loot_table' } }))),\r\n recipes: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$recipe' } }))),\r\n experience: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n trigger: StringNode({ validator: 'resource', params: { pool: collections.get('advancement_trigger') } }),\r\n conditions: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n player: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n num_bees_inside: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n item: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'potion' } }))\r\n },\r\n 'minecraft:changed_dimension': {\r\n from: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n to: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$dimension' } }))\r\n },\r\n 'minecraft:channeled_lightning': {\r\n victims: (0, core_1.Opt)((0, core_1.ListNode)(EntityPredicate))\r\n },\r\n 'minecraft:construct_beacon': {\r\n level: (0, core_1.Opt)((0, Common_1.Range)())\r\n },\r\n 'minecraft:consume_item': {\r\n item: (0, 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: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), Reference('status_effect_predicate')))\r\n },\r\n 'minecraft:enter_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, Common_1.Range)()),\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:entity_hurt_player': {\r\n damage: (0, core_1.Opt)(Reference('damage_predicate'))\r\n },\r\n 'minecraft:entity_killed_player': {\r\n entity: EntityPredicate,\r\n killing_blow: (0, core_1.Opt)(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:filled_bucket': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:fishing_rod_hooked': {\r\n entity: EntityPredicate,\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:hero_of_the_village': {\r\n location: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:inventory_changed': {\r\n slots: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n empty: (0, core_1.Opt)((0, Common_1.Range)()),\r\n occupied: (0, core_1.Opt)((0, Common_1.Range)()),\r\n full: (0, core_1.Opt)((0, Common_1.Range)())\r\n })),\r\n items: (0, core_1.Opt)((0, core_1.ListNode)(Reference('item_predicate')))\r\n },\r\n 'minecraft:item_durability_changed': {\r\n delta: (0, core_1.Opt)((0, Common_1.Range)()),\r\n durability: (0, core_1.Opt)((0, Common_1.Range)()),\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:item_used_on_block': {\r\n item: (0, core_1.Opt)(Reference('item_predicate')),\r\n location: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:killed_by_crossbow': {\r\n unique_entity_types: (0, core_1.Opt)((0, Common_1.Range)()),\r\n victims: (0, core_1.Opt)((0, core_1.ListNode)(EntityPredicate))\r\n },\r\n 'minecraft:levitation': {\r\n distance: (0, core_1.Opt)((0, Common_1.Range)()),\r\n duration: (0, core_1.Opt)((0, Common_1.Range)())\r\n },\r\n 'minecraft:location': {\r\n location: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:nether_travel': {\r\n distance: (0, core_1.Opt)((0, Common_1.Range)()),\r\n entered: (0, core_1.Opt)(Reference('location_predicate')),\r\n exited: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:placed_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })),\r\n item: (0, core_1.Opt)(Reference('item_predicate')),\r\n location: (0, 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: (0, core_1.Opt)(Reference('damage_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_interacted_with_entity': {\r\n item: (0, 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: (0, 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: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:slide_down_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:shot_crossbow': {\r\n item: (0, 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: (0, core_1.Opt)((0, Common_1.Range)({ integer: true }))\r\n },\r\n 'minecraft:thrown_item_picked_up_by_entity': {\r\n entity: EntityPredicate,\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:used_ender_eye': {\r\n distance: (0, core_1.Opt)((0, Common_1.Range)())\r\n },\r\n 'minecraft:used_totem': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:villager_trade': {\r\n villager: EntityPredicate,\r\n item: (0, 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) => (0, core_1.ListNode)((0, core_1.NumberNode)({ min, max }), { minLength: length, maxLength: length });\r\n const Texture = (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n parent: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$model' } })),\r\n ambientocclusion: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n gui_light: (0, core_1.Opt)(StringNode({ enum: 'gui_light' })),\r\n textures: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), Texture)),\r\n elements: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n from: Vec(3, -16, 32),\r\n to: Vec(3, -16, 32),\r\n rotation: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n origin: Vec(3),\r\n axis: StringNode({ enum: 'axis' }),\r\n angle: (0, core_1.NumberEnum)({ values: [-45, -22.5, 0, 22.5, 45] }),\r\n rescale: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n })),\r\n shade: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n faces: (0, core_1.MapNode)(StringNode({ enum: 'direction' }), (0, core_1.ObjectNode)({\r\n texture: Texture,\r\n uv: (0, core_1.Opt)(Vec(4)),\r\n cullface: (0, core_1.Opt)(StringNode({ enum: 'direction' })),\r\n rotation: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n tintindex: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n }))\r\n }, { context: 'model_element' }))),\r\n display: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ enum: 'display_position' }), (0, 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: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n predicate: (0, core_1.MapNode)(StringNode({ enum: 'item_model_predicates' }), (0, 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', (0, core_1.Mod)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'variants',\r\n match: (v) => v.variants !== undefined,\r\n node: (0, core_1.ObjectNode)({\r\n variants: (0, 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: (0, core_1.ObjectNode)({\r\n multipart: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n when: (0, 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: (0, core_1.Opt)((0, core_1.NumberEnum)({ integer: true, values: [0, 90, 180, 270] })),\r\n y: (0, core_1.Opt)((0, core_1.NumberEnum)({ integer: true, values: [0, 90, 180, 270] })),\r\n uvlock: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n };\r\n schemas.register('model_variant', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n node: (0, 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: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n ...VariantChildren,\r\n weight: (0, core_1.Opt)((0, 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', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n priority: -1,\r\n match: () => true,\r\n node: (0, 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: (0, core_1.ObjectNode)({\r\n OR: (0, 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 (0, BlockDefinition_1.initBlockDefinitionSchemas)(schemas, collections);\r\n (0, 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', (0, core_1.ObjectOrList)(Reference('condition'), { choiceContext: 'condition' }));\r\n schemas.register('condition', (0, core_1.Mod)((0, 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) => (0, core_1.Mod)(node, {\r\n enabled: path => path.push('preset').get() === undefined\r\n });\r\n schemas.register('dimension', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: (0, Common_1.DimensionTypePresets)(Reference('dimension_type')),\r\n generator: (0, 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: (0, core_1.NumberNode)({ integer: true }),\r\n settings: (0, Common_1.NoiseSettingsPresets)(Reference('noise_settings')),\r\n biome_source: (0, 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: (0, core_1.NumberNode)({ integer: true }),\r\n preset: (0, 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((0, core_1.Mod)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 62 })),\r\n biomes: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }))\r\n },\r\n 'minecraft:the_end': {\r\n seed: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:vanilla_layered': {\r\n seed: (0, core_1.NumberNode)({ integer: true }),\r\n large_biomes: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n legacy_biome_init_layer: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n }\r\n }\r\n }, { category: 'predicate', disableSwitchContext: true })\r\n },\r\n 'minecraft:flat': {\r\n settings: (0, core_1.ObjectNode)({\r\n biome: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n lakes: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n features: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n layers: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }),\r\n parameters: (0, core_1.ObjectNode)({\r\n altitude: (0, core_1.NumberNode)(),\r\n temperature: (0, core_1.NumberNode)(),\r\n humidity: (0, core_1.NumberNode)(),\r\n weirdness: (0, core_1.NumberNode)(),\r\n offset: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n firstOctave: (0, core_1.NumberNode)({ integer: true }),\r\n amplitudes: (0, core_1.ListNode)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n name: (0, 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: (0, core_1.BooleanNode)(),\r\n natural: (0, core_1.BooleanNode)(),\r\n piglin_safe: (0, core_1.BooleanNode)(),\r\n respawn_anchor_works: (0, core_1.BooleanNode)(),\r\n bed_works: (0, core_1.BooleanNode)(),\r\n has_raids: (0, core_1.BooleanNode)(),\r\n has_skylight: (0, core_1.BooleanNode)(),\r\n has_ceiling: (0, core_1.BooleanNode)(),\r\n coordinate_scale: (0, core_1.NumberNode)({ min: 0.00001, max: 30000000 }),\r\n ambient_light: (0, core_1.NumberNode)(),\r\n fixed_time: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n logical_height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 256 }),\r\n effects: (0, 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: (0, core_1.Opt)((0, core_1.ListNode)(Reference('loot_condition')))\r\n };\r\n const functionsAndConditions = {\r\n functions: (0, core_1.Opt)((0, 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 (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: (0, core_1.Opt)(StringNode({ validator: \"resource\", params: { pool: collections.get('loot_context_type') } })),\r\n pools: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n rolls: (0, Common_1.Range)({ allowBinomial: true, integer: true }),\r\n bonus_rolls: (0, core_1.Opt)((0, Common_1.Range)({ integer: true })),\r\n entries: (0, 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: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'loot_pool_entry_type' } }),\r\n weight: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true, min: 1 }), weightMod)),\r\n quality: (0, core_1.Opt)((0, core_1.Mod)((0, 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: (0, 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: (0, 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: (0, 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: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, 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: (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n bonusMultiplier: (0, core_1.Mod)((0, core_1.NumberNode)(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:uniform_bonus_count'\r\n }),\r\n extra: (0, core_1.Mod)((0, core_1.NumberNode)(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n }),\r\n probability: (0, core_1.Mod)((0, 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: (0, core_1.ListNode)((0, 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: (0, core_1.ListNode)(StringNode({ validator: 'block_state_key', params: { id: ['pop', 'pop', { push: 'block' }] } }))\r\n },\r\n 'minecraft:enchant_randomly': {\r\n enchantments: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })))\r\n },\r\n 'minecraft:enchant_with_levels': {\r\n levels: (0, Common_1.Range)({ allowBinomial: true }),\r\n treasure: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:exploration_map': {\r\n destination: (0, core_1.Opt)(StringNode({ enum: 'map_feature' })),\r\n decoration: (0, core_1.Opt)(StringNode({ enum: 'map_decoration' })),\r\n zoom: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n search_radius: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n skip_existing_chunks: (0, core_1.Opt)((0, 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: (0, Common_1.Range)({ bounds: true })\r\n },\r\n 'minecraft:looting_enchant': {\r\n count: (0, Common_1.Range)({ bounds: true }),\r\n limit: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:set_attributes': {\r\n modifiers: (0, core_1.ListNode)(Reference('attribute_modifier'))\r\n },\r\n 'minecraft:set_contents': {\r\n entries: (0, core_1.ListNode)(Reference('loot_entry'))\r\n },\r\n 'minecraft:set_count': {\r\n count: (0, Common_1.Range)({ allowBinomial: true })\r\n },\r\n 'minecraft:set_damage': {\r\n damage: (0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:set_lore': {\r\n entity: (0, core_1.Opt)(entitySourceSwtichNode),\r\n lore: (0, core_1.ListNode)(Reference('text_component')),\r\n replace: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_name': {\r\n entity: (0, core_1.Opt)(entitySourceSwtichNode),\r\n name: (0, 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: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }),\r\n duration: (0, 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', (0, core_1.Mod)((0, 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: (0, core_1.MapNode)(StringNode({ validator: 'objective' }), (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n attribute: StringNode({ validator: 'resource', params: { pool: 'attribute' } }),\r\n name: StringNode(),\r\n amount: (0, Common_1.Range)({ bounds: true }),\r\n operation: StringNode({ enum: ['addition', 'multiply_base', 'multiply_total'] }),\r\n slot: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n pack: (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n pack_format: (0, core_1.Mod)((0, core_1.NumberNode)({ integer: true, min: 6, max: 6 }), { default: () => 6 }),\r\n description: (0, 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 = (0, 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: (0, core_1.NumberNode)(),\r\n change: v => (typeof v === 'string') ? parseInt(v) : 0\r\n },\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)({\r\n min: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n max: (0, core_1.Opt)((0, 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: (0, core_1.BooleanNode)(),\r\n change: v => v === 'true' || v === 1\r\n }\r\n ]);\r\n schemas.register('item_predicate', (0, core_1.ObjectNode)({\r\n item: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$tag/item' } })),\r\n count: (0, core_1.Opt)((0, Common_1.Range)()),\r\n durability: (0, core_1.Opt)((0, Common_1.Range)()),\r\n potion: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'potion' } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } })),\r\n enchantments: (0, core_1.Opt)((0, core_1.ListNode)(Reference('enchantment_predicate')))\r\n }, { context: 'item' }));\r\n schemas.register('enchantment_predicate', (0, core_1.ObjectNode)({\r\n enchantment: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })),\r\n levels: (0, core_1.Opt)((0, Common_1.Range)())\r\n }, { context: 'enchantment' }));\r\n schemas.register('block_predicate', (0, core_1.ObjectNode)({\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n tag: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$tag/block' } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block', id: ['pop', { push: 'block' }] } } })),\r\n state: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n fluid: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'fluid' } })),\r\n tag: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$tag/fluid' } })),\r\n state: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), StateChoice))\r\n }, { context: 'fluid' }));\r\n schemas.register('location_predicate', (0, core_1.ObjectNode)({\r\n position: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n x: (0, core_1.Opt)((0, Common_1.Range)()),\r\n y: (0, core_1.Opt)((0, Common_1.Range)()),\r\n z: (0, core_1.Opt)((0, Common_1.Range)())\r\n })),\r\n biome: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n feature: (0, core_1.Opt)(StringNode({ enum: collections.get('worldgen/structure_feature').map(v => v.slice(10)) })),\r\n dimension: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n light: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n light: (0, core_1.Opt)((0, Common_1.Range)({ integer: true, min: 0, max: 15 }))\r\n })),\r\n smokey: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n block: (0, core_1.Opt)(Reference('block_predicate')),\r\n fluid: (0, core_1.Opt)(Reference('fluid_predicate'))\r\n }, { context: 'location' }));\r\n schemas.register('statistic_predicate', (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'stat_type' } }),\r\n stat: StringNode(),\r\n value: (0, 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', (0, core_1.ObjectNode)({\r\n gamemode: (0, core_1.Opt)(StringNode({ enum: 'gamemode' })),\r\n level: (0, core_1.Opt)((0, Common_1.Range)()),\r\n advancements: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: '$advancement' } }), (0, core_1.ChoiceNode)([\r\n { type: 'boolean', node: (0, core_1.BooleanNode)(), change: _ => true },\r\n {\r\n type: 'object', node: (0, core_1.MapNode)(StringNode(), (0, core_1.BooleanNode)())\r\n }\r\n ]))),\r\n recipes: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: '$recipe' } }), (0, core_1.BooleanNode)())),\r\n stats: (0, core_1.Opt)((0, core_1.ListNode)(Reference('statistic_predicate')))\r\n }, { context: 'player' }));\r\n schemas.register('status_effect_predicate', (0, core_1.ObjectNode)({\r\n amplifier: (0, core_1.Opt)((0, Common_1.Range)()),\r\n duration: (0, core_1.Opt)((0, Common_1.Range)()),\r\n ambient: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n visible: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n }, { context: 'status_effect' }));\r\n schemas.register('distance_predicate', (0, core_1.ObjectNode)({\r\n x: (0, core_1.Opt)((0, Common_1.Range)()),\r\n y: (0, core_1.Opt)((0, Common_1.Range)()),\r\n z: (0, core_1.Opt)((0, Common_1.Range)()),\r\n absolute: (0, core_1.Opt)((0, Common_1.Range)()),\r\n horizontal: (0, core_1.Opt)((0, Common_1.Range)())\r\n }, { context: 'distance' }));\r\n schemas.register('entity_predicate', (0, core_1.ObjectNode)({\r\n type: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'entity_type', allowTag: true } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:entity', id: ['pop', { push: 'type' }] } } })),\r\n team: (0, core_1.Opt)(StringNode({ validator: 'team' })),\r\n location: (0, core_1.Opt)(Reference('location_predicate')),\r\n distance: (0, core_1.Opt)(Reference('distance_predicate')),\r\n flags: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n is_on_fire: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_sneaking: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_sprinting: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_swimming: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_baby: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n })),\r\n equipment: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ enum: 'slot' }), Reference('item_predicate'))),\r\n vehicle: (0, core_1.Opt)(Reference('entity_predicate')),\r\n targeted_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n player: (0, core_1.Opt)(Reference('player_predicate')),\r\n fishing_hook: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n in_open_water: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n })),\r\n catType: (0, core_1.Opt)(StringNode({ enum: 'cat_texture' })),\r\n effects: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n is_explosion: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_fire: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_magic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_projectile: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_lightning: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_armor: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_invulnerability: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_magic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n source_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n direct_entity: (0, core_1.Opt)(Reference('entity_predicate'))\r\n }, { context: 'damage_source' }));\r\n schemas.register('damage_predicate', (0, core_1.ObjectNode)({\r\n dealt: (0, core_1.Opt)((0, Common_1.Range)()),\r\n taken: (0, core_1.Opt)((0, Common_1.Range)()),\r\n blocked: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n source_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n type: (0, 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', (0, core_1.Mod)((0, 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: (0, core_1.Opt)(StringNode({ enum: 'recipe_group', additional: true })),\r\n pattern: (0, core_1.ListNode)(StringNode()),\r\n key: (0, 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: (0, core_1.Opt)(StringNode()),\r\n ingredients: (0, core_1.ListNode)(Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:smelting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 200 }))\r\n },\r\n 'minecraft:blasting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:smoking': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:campfire_cooking': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:stonecutting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:smithing': {\r\n group: (0, 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', (0, core_1.Mod)((0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n item: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.Opt)((0, core_1.Mod)((0, 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) => (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n replace: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n values: (0, core_1.ListNode)((0, 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: (0, core_1.ObjectNode)({\r\n id: StringNode({ validator: 'resource', params: { pool: type, allowTag: true, allowUnknown: true } }),\r\n required: (0, 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', (0, core_1.Mod)((0, 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: (0, 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: (0, 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: (0, core_1.Opt)(StringNode()) /* TODO */,\r\n font: (0, core_1.Opt)(StringNode()),\r\n bold: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n italic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n underlined: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n strikethrough: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n obfuscated: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n insertion: (0, core_1.Opt)(StringNode()),\r\n clickEvent: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(Reference('text_component')),\r\n contents: (0, core_1.Opt)(Reference('text_component'))\r\n },\r\n 'show_item': {\r\n value: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { module: 'util::InventoryItem' } })),\r\n contents: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n id: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n tag: (0, 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: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n name: (0, core_1.Opt)(StringNode()),\r\n type: (0, core_1.Opt)(StringNode()),\r\n id: (0, core_1.Opt)(StringNode())\r\n })),\r\n contents: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n name: (0, 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: (0, core_1.Opt)(Reference('text_component_list'))\r\n };\r\n schemas.register('text_component_object', (0, core_1.Mod)((0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n translate: StringNode(),\r\n with: (0, 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: (0, core_1.ObjectNode)({\r\n score: (0, 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: (0, 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: (0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n nbt: StringNode({ validator: 'nbt_path' }),\r\n block: (0, core_1.Opt)(StringNode({ validator: 'vector', params: { dimension: 3, isInteger: true } })),\r\n entity: (0, core_1.Opt)(StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } })),\r\n storage: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$storage' } })),\r\n interpret: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n surface_builder: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_surface_builder' } }),\r\n depth: (0, core_1.NumberNode)(),\r\n scale: (0, core_1.NumberNode)(),\r\n temperature: (0, core_1.NumberNode)(),\r\n downfall: (0, core_1.NumberNode)(),\r\n precipitation: StringNode({ enum: ['none', 'rain', 'snow'] }),\r\n temperature_modifier: (0, core_1.Opt)(StringNode({ enum: ['none', 'frozen'] })),\r\n category: StringNode({ enum: 'biome_category' }),\r\n player_spawn_friendly: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n creature_spawn_probability: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n effects: (0, core_1.ObjectNode)({\r\n sky_color: (0, core_1.NumberNode)({ color: true }),\r\n fog_color: (0, core_1.NumberNode)({ color: true }),\r\n water_color: (0, core_1.NumberNode)({ color: true }),\r\n water_fog_color: (0, core_1.NumberNode)({ color: true }),\r\n grass_color: (0, core_1.Opt)((0, core_1.NumberNode)({ color: true })),\r\n foliage_color: (0, core_1.Opt)((0, core_1.NumberNode)({ color: true })),\r\n grass_color_modifier: (0, core_1.Opt)(StringNode({ enum: ['none', 'dark_forest', 'swamp'] })),\r\n ambient_sound: (0, core_1.Opt)(StringNode()),\r\n mood_sound: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n sound: StringNode(),\r\n tick_delay: (0, core_1.NumberNode)({ integer: true }),\r\n block_search_extent: (0, core_1.NumberNode)({ integer: true }),\r\n offset: (0, core_1.NumberNode)()\r\n })),\r\n additions_sound: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n sound: StringNode(),\r\n tick_chance: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n })),\r\n music: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n sound: StringNode(),\r\n min_delay: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n max_delay: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n replace_current_music: (0, core_1.BooleanNode)()\r\n })),\r\n particle: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n options: (0, core_1.ObjectNode)({\r\n type: StringNode()\r\n }),\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n }))\r\n }),\r\n starts: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_structure_feature' } })),\r\n spawners: (0, 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 ] }), (0, core_1.Mod)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n weight: (0, core_1.NumberNode)({ integer: true }),\r\n minCount: (0, core_1.NumberNode)({ integer: true }),\r\n maxCount: (0, 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: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'entity_type' } }), (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n energy_budget: (0, core_1.NumberNode)(),\r\n charge: (0, 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: (0, core_1.MapNode)(StringNode({ enum: ['air', 'liquid'] }), (0, core_1.Mod)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_carver' } })), {\r\n default: () => ['minecraft:cave']\r\n })),\r\n features: (0, core_1.ListNode)((0, core_1.Mod)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/carver' } }),\r\n config: (0, core_1.ObjectNode)({\r\n probability: (0, 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: (0, core_1.NumberNode)({ integer: true }),\r\n bottom_offset: (0, core_1.NumberNode)({ integer: true }),\r\n top_offset: (0, core_1.NumberNode)({ integer: true })\r\n };\r\n const ChanceConfig = {\r\n chance: (0, core_1.NumberNode)({ integer: true, min: 0 })\r\n };\r\n const CountConfig = {\r\n count: (0, Common_1.UniformInt)({ min: -10, max: 128, maxSpread: 128 })\r\n };\r\n schemas.register('configured_decorator', (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/decorator' } }),\r\n config: (0, 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: (0, 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: (0, core_1.NumberNode)({ integer: true }),\r\n extra_count: (0, core_1.NumberNode)({ integer: true }),\r\n extra_chance: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:count_multilayer': CountConfig,\r\n 'minecraft:count_noise': {\r\n noise_level: (0, core_1.NumberNode)(),\r\n below_noise: (0, core_1.NumberNode)({ integer: true }),\r\n above_noise: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:count_noise_biased': {\r\n noise_to_count_ratio: (0, core_1.NumberNode)({ integer: true }),\r\n noise_factor: (0, core_1.NumberNode)(),\r\n noise_offset: (0, core_1.Opt)((0, 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: (0, core_1.NumberNode)({ integer: true }),\r\n spread: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n processors: (0, 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', (0, core_1.Mod)((0, 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: (0, core_1.NumberNode)()\r\n },\r\n 'minecraft:block_ignore': {\r\n blocks: (0, core_1.ListNode)(Reference('block_state'))\r\n },\r\n 'minecraft:block_rot': {\r\n integrity: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:gravity': {\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n offset: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:rule': {\r\n rules: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n position_predicate: (0, 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: (0, 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: (0, core_1.NumberNode)({ min: 0, max: 255, integer: true }),\r\n max_dist: (0, core_1.NumberNode)({ min: 0, max: 255, integer: true }),\r\n min_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n max_chance: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n };\r\n schemas.register('pos_rule_test', (0, 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', (0, 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: (0, 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: (0, 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: (0, core_1.BooleanNode)(),\r\n project: (0, core_1.BooleanNode)(),\r\n need_water: (0, core_1.BooleanNode)(),\r\n xspread: (0, core_1.NumberNode)({ integer: true }),\r\n yspread: (0, core_1.NumberNode)({ integer: true }),\r\n zspread: (0, core_1.NumberNode)({ integer: true }),\r\n tries: (0, core_1.NumberNode)({ integer: true }),\r\n state_provider: Reference('block_state_provider'),\r\n block_placer: Reference('block_placer'),\r\n whitelist: (0, core_1.ListNode)(Reference('block_state')),\r\n blacklist: (0, core_1.ListNode)(Reference('block_state'))\r\n };\r\n const DiskConfig = {\r\n state: Reference('block_state'),\r\n radius: (0, Common_1.UniformInt)({ min: 0, max: 4, maxSpread: 4 }),\r\n half_height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4 }),\r\n targets: (0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n };\r\n const OreConfig = {\r\n state: Reference('block_state'),\r\n size: (0, core_1.NumberNode)({ integer: true, min: 0, max: 64 }),\r\n target: Reference('rule_test')\r\n };\r\n const CountConfig = {\r\n count: (0, Common_1.UniformInt)({ min: -10, max: 128, maxSpread: 128 })\r\n };\r\n const Feature = (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature' } }),\r\n config: (0, core_1.ObjectNode)({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bamboo': {\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:basalt_columns': {\r\n reach: (0, Common_1.UniformInt)({ min: 0, max: 2, maxSpread: 1 }),\r\n height: (0, 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: (0, Common_1.UniformInt)({ min: 0, max: 8, maxSpread: 8 }),\r\n rim_size: (0, 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: (0, core_1.BooleanNode)(),\r\n exit: (0, core_1.Opt)(Reference('block_pos'))\r\n },\r\n 'minecraft:end_spike': {\r\n crystal_invulnerable: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n crystal_beam_target: (0, core_1.Opt)(Reference('block_pos')),\r\n spikes: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n centerX: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n centerZ: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n radius: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n height: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n guarded: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n }))\r\n },\r\n 'minecraft:fill_layer': {\r\n state: Reference('block_state'),\r\n height: (0, 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: (0, core_1.Opt)((0, 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: (0, 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: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n chance: (0, 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: (0, 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: (0, core_1.ListNode)(Reference('block_state')),\r\n place_in: (0, core_1.ListNode)(Reference('block_state')),\r\n place_under: (0, core_1.ListNode)(Reference('block_state'))\r\n },\r\n 'minecraft:simple_random_selector': {\r\n features: (0, core_1.ListNode)(Feature)\r\n },\r\n 'minecraft:spring_feature': {\r\n state: Reference('fluid_state'),\r\n rock_count: (0, core_1.NumberNode)({ integer: true }),\r\n hole_count: (0, core_1.NumberNode)({ integer: true }),\r\n requires_block_below: (0, core_1.BooleanNode)(),\r\n valid_blocks: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:tree': {\r\n max_water_depth: (0, core_1.NumberNode)({ integer: true }),\r\n ignore_vines: (0, 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: (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/trunk_placer_type' } }),\r\n base_height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 32 }),\r\n height_rand_a: (0, core_1.NumberNode)({ integer: true, min: 0, max: 24 }),\r\n height_rand_b: (0, core_1.NumberNode)({ integer: true, min: 0, max: 24 })\r\n }, { context: 'trunk_placer' }),\r\n foliage_placer: (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/foliage_placer_type' } }),\r\n radius: (0, Common_1.UniformInt)({ min: 0, max: 8, maxSpread: 8 }),\r\n offset: (0, 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: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:bush_foliage_placer': {\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:fancy_foliage_placer': {\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:jungle_foliage_placer': {\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:mega_pine_foliage_placer': {\r\n crown_height: (0, Common_1.UniformInt)({ min: 0, max: 16, maxSpread: 8 })\r\n },\r\n 'minecraft:pine_foliage_placer': {\r\n height: (0, Common_1.UniformInt)({ min: 0, max: 16, maxSpread: 8 })\r\n },\r\n 'minecraft:spruce_foliage_placer': {\r\n trunk_height: (0, Common_1.UniformInt)({ min: 0, max: 16, maxSpread: 8 })\r\n }\r\n }\r\n }, { context: 'foliage_placer', disableSwitchContext: true }),\r\n decorators: (0, core_1.ListNode)((0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:cocoa': {\r\n probability: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature_size_type' } }),\r\n min_clipped_height: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 81 })),\r\n lower_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })),\r\n upper_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 }))\r\n },\r\n 'minecraft:three_layers_feature_size': {\r\n limit: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 80 })),\r\n upper_limit: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 80 })),\r\n lower_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })),\r\n middle_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })),\r\n upper_size: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, 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: (0, core_1.ListNode)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n weight: (0, 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', (0, core_1.Mod)((0, 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: (0, core_1.NumberNode)({ integer: true }),\r\n extra_size: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n name: (0, 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: (0, core_1.NumberNode)({ integer: true }),\r\n bedrock_floor_position: (0, core_1.NumberNode)({ integer: true }),\r\n sea_level: (0, core_1.NumberNode)({ integer: true }),\r\n disable_mob_generation: (0, core_1.BooleanNode)(),\r\n default_block: Reference('block_state'),\r\n default_fluid: Reference('block_state'),\r\n noise: (0, core_1.ObjectNode)({\r\n height: (0, core_1.NumberNode)({ integer: true }),\r\n density_factor: (0, core_1.NumberNode)(),\r\n density_offset: (0, core_1.NumberNode)(),\r\n size_horizontal: (0, core_1.NumberNode)({ integer: true }),\r\n size_vertical: (0, core_1.NumberNode)({ integer: true }),\r\n simplex_surface_noise: (0, core_1.BooleanNode)(),\r\n random_density_offset: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n island_noise_override: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n amplified: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n sampling: (0, core_1.ObjectNode)({\r\n xz_scale: (0, core_1.NumberNode)(),\r\n y_scale: (0, core_1.NumberNode)(),\r\n xz_factor: (0, core_1.NumberNode)(),\r\n y_factor: (0, core_1.NumberNode)()\r\n }),\r\n bottom_slide: (0, core_1.ObjectNode)({\r\n target: (0, core_1.NumberNode)({ integer: true }),\r\n size: (0, core_1.NumberNode)({ integer: true }),\r\n offset: (0, core_1.NumberNode)({ integer: true })\r\n }),\r\n top_slide: (0, core_1.ObjectNode)({\r\n target: (0, core_1.NumberNode)({ integer: true }),\r\n size: (0, core_1.NumberNode)({ integer: true }),\r\n offset: (0, 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', (0, core_1.ObjectNode)({\r\n stronghold: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n distance: (0, core_1.NumberNode)({ integer: true, min: 0, max: 1023 }),\r\n spread: (0, core_1.NumberNode)({ integer: true, min: 0, max: 1023 }),\r\n count: (0, core_1.NumberNode)({ integer: true, min: 1, max: 4095 })\r\n })),\r\n structures: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }), (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n spacing: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4096 }),\r\n separation: (0, core_1.Mod)((0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n height: (0, 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: (0, core_1.NumberNode)({ integer: true })\r\n };\r\n schemas.register('configured_structure_feature', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }),\r\n config: (0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:mineshaft': {\r\n type: StringNode({ enum: ['normal', 'mesa'] }),\r\n probability: (0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n cluster_probability: (0, 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: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/surface_builder' } }),\r\n config: (0, 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 = (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n name: StringNode(),\r\n fallback: StringNode(),\r\n elements: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n weight: (0, 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', (0, core_1.Mod)((0, 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: (0, 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 (0, Biome_1.initBiomeSchemas)(schemas, collections);\r\n (0, Carver_1.initCarverSchemas)(schemas, collections);\r\n (0, Decorator_1.initDecoratorSchemas)(schemas, collections);\r\n (0, Feature_1.initFeatureSchemas)(schemas, collections);\r\n (0, NoiseSettings_1.initNoiseSettingsSchemas)(schemas, collections);\r\n (0, ProcessorList_1.initProcessorListSchemas)(schemas, collections);\r\n (0, StructureFeature_1.initStructureFeatureSchemas)(schemas, collections);\r\n (0, SurfaceBuilder_1.initSurfaceBuilderSchemas)(schemas, collections);\r\n (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n generate_features: (0, core_1.BooleanNode)(),\r\n bonus_chest: (0, core_1.BooleanNode)(),\r\n seed: (0, core_1.NumberNode)({ integer: true }),\r\n dimensions: (0, 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 (0, Common_1.initCommonSchemas)(schemas, collections);\r\n (0, Advancement_1.initAdvancementSchemas)(schemas, collections);\r\n (0, assets_1.initAssetsSchemas)(schemas, collections);\r\n (0, Condition_1.initConditionSchemas)(schemas, collections);\r\n (0, DimensionType_1.initDimensionTypeSchemas)(schemas, collections);\r\n (0, Dimension_1.initDimensionSchemas)(schemas, collections);\r\n (0, LootTable_1.initLootTableSchemas)(schemas, collections);\r\n (0, PackMcmeta_1.initPackMcmetaSchemas)(schemas, collections);\r\n (0, Predicates_1.initPredicatesSchemas)(schemas, collections);\r\n (0, Recipe_1.initRecipeSchemas)(schemas, collections);\r\n (0, Tags_1.initTagsSchemas)(schemas, collections);\r\n (0, TextComponent_1.initTextComponentSchemas)(schemas, collections);\r\n (0, worldgen_1.initWorldgenSchemas)(schemas, collections);\r\n (0, 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 var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\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.prototype.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 = exports.lootContext = 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 (0, 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 (0, 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 collections.register('cat_texture', [\r\n 'textures/entity/cat/tabby.png',\r\n 'textures/entity/cat/black.png',\r\n 'textures/entity/cat/red.png',\r\n 'textures/entity/cat/siamese.png',\r\n 'textures/entity/cat/british_shorthair.png',\r\n 'textures/entity/cat/calico.png',\r\n 'textures/entity/cat/persian.png',\r\n 'textures/entity/cat/ragdoll.png',\r\n 'textures/entity/cat/white.png',\r\n 'textures/entity/cat/jellie.png',\r\n 'textures/entity/cat/all_black.png'\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 = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n node: (0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n display: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n icon: (0, core_1.ObjectNode)({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n nbt: (0, 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: (0, core_1.Opt)(StringNode()),\r\n frame: (0, core_1.Opt)(StringNode({ enum: ['task', 'challenge', 'goal'] })),\r\n show_toast: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n announce_to_chat: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n hidden: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$advancement' } })),\r\n criteria: (0, core_1.MapNode)(StringNode(), Reference('advancement_criteria')),\r\n requirements: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ListNode)(StringNode() // TODO: add validation\r\n ))),\r\n rewards: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n function: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$function' } })),\r\n loot: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$loot_table' } }))),\r\n recipes: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$recipe' } }))),\r\n experience: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n trigger: StringNode({ validator: 'resource', params: { pool: collections.get('advancement_trigger') } }),\r\n conditions: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n player: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n num_bees_inside: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n item: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'potion' } }))\r\n },\r\n 'minecraft:changed_dimension': {\r\n from: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n to: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$dimension' } }))\r\n },\r\n 'minecraft:channeled_lightning': {\r\n victims: (0, core_1.Opt)((0, 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: (0, 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: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), (0, core_1.ObjectNode)({\r\n amplifier: Reference('int_bounds'),\r\n duration: Reference('int_bounds')\r\n }))),\r\n source: (0, core_1.Opt)(EntityPredicate)\r\n },\r\n 'minecraft:enter_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:entity_hurt_player': {\r\n damage: (0, core_1.Opt)(Reference('damage_predicate'))\r\n },\r\n 'minecraft:entity_killed_player': {\r\n entity: EntityPredicate,\r\n killing_blow: (0, core_1.Opt)(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:filled_bucket': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:fishing_rod_hooked': {\r\n entity: EntityPredicate,\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:hero_of_the_village': {\r\n location: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:inventory_changed': {\r\n slots: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:item_used_on_block': {\r\n item: (0, core_1.Opt)(Reference('item_predicate')),\r\n location: (0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:nether_travel': {\r\n distance: Reference('distance_predicate'),\r\n entered: (0, core_1.Opt)(Reference('location_predicate')),\r\n exited: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:placed_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })),\r\n item: (0, core_1.Opt)(Reference('item_predicate')),\r\n location: (0, 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: (0, core_1.Opt)(Reference('damage_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_interacted_with_entity': {\r\n item: (0, 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: (0, 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: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:slide_down_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:shot_crossbow': {\r\n item: (0, 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: EntityPredicate,\r\n item: (0, 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: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:using_item': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:villager_trade': {\r\n villager: EntityPredicate,\r\n item: (0, 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) => (0, core_1.ListNode)((0, core_1.NumberNode)({ min, max }), { minLength: length, maxLength: length });\r\n const Texture = (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n parent: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$model' } })),\r\n ambientocclusion: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n gui_light: (0, core_1.Opt)(StringNode({ enum: 'gui_light' })),\r\n textures: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), Texture)),\r\n elements: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n from: Vec(3, -16, 32),\r\n to: Vec(3, -16, 32),\r\n rotation: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n origin: Vec(3),\r\n axis: StringNode({ enum: 'axis' }),\r\n angle: (0, core_1.NumberEnum)({ values: [-45, -22.5, 0, 22.5, 45] }),\r\n rescale: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n })),\r\n shade: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n faces: (0, core_1.MapNode)(StringNode({ enum: 'direction' }), (0, core_1.ObjectNode)({\r\n texture: Texture,\r\n uv: (0, core_1.Opt)(Vec(4)),\r\n cullface: (0, core_1.Opt)(StringNode({ enum: 'direction' })),\r\n rotation: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n tintindex: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n }))\r\n }, { context: 'model_element' }))),\r\n display: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ enum: 'display_position' }), (0, 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: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n predicate: (0, core_1.MapNode)(StringNode({ enum: 'item_model_predicates' }), (0, 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', (0, core_1.Mod)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'variants',\r\n match: (v) => v.variants !== undefined,\r\n node: (0, core_1.ObjectNode)({\r\n variants: (0, 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: (0, core_1.ObjectNode)({\r\n multipart: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n when: (0, 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: (0, core_1.Opt)((0, core_1.NumberEnum)({ integer: true, values: [0, 90, 180, 270] })),\r\n y: (0, core_1.Opt)((0, core_1.NumberEnum)({ integer: true, values: [0, 90, 180, 270] })),\r\n uvlock: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n };\r\n schemas.register('model_variant', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n node: (0, 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: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n ...VariantChildren,\r\n weight: (0, core_1.Opt)((0, 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', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n priority: -1,\r\n match: () => true,\r\n node: (0, 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: (0, core_1.ObjectNode)({\r\n OR: (0, 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 (0, BlockDefinition_1.initBlockDefinitionSchemas)(schemas, collections);\r\n (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n Properties: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'fluid' } }),\r\n Properties: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ListNode)((0, core_1.NumberNode)({ integer: true }), { minLength: 3, maxLength: 3 }), {\r\n default: () => [0, 0, 0]\r\n }));\r\n const Bounds = (integer) => (0, core_1.Opt)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'number',\r\n node: (0, 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: (0, core_1.ObjectNode)({\r\n min: (0, core_1.Opt)((0, core_1.NumberNode)({ integer })),\r\n max: (0, core_1.Opt)((0, 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', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)({\r\n min: (0, core_1.Opt)(Reference('number_provider')),\r\n max: (0, core_1.Opt)(Reference('number_provider'))\r\n })\r\n },\r\n {\r\n type: 'number',\r\n node: (0, 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] = (0, 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 = (0, core_1.ObjectNode)({\r\n type: (0, core_1.Mod)((0, 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 (0, 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: (0, 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: (0, core_1.Opt)((0, 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: (0, 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: (0, 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: (0, core_1.NumberNode)(config)\r\n },\r\n 'minecraft:uniform': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)(config),\r\n max_exclusive: (0, core_1.NumberNode)(config)\r\n })\r\n },\r\n 'minecraft:clamped_normal': {\r\n value: (0, core_1.ObjectNode)({\r\n min: (0, core_1.NumberNode)(),\r\n max: (0, core_1.NumberNode)(),\r\n mean: (0, core_1.NumberNode)(),\r\n deviation: (0, core_1.NumberNode)()\r\n })\r\n },\r\n 'minecraft:trapezoid': {\r\n value: (0, core_1.ObjectNode)({\r\n min: (0, core_1.NumberNode)(),\r\n max: (0, core_1.NumberNode)(),\r\n plateau: (0, core_1.NumberNode)()\r\n })\r\n }\r\n });\r\n schemas.register('float_provider', (0, 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: (0, core_1.NumberNode)({ integer: true, ...config })\r\n },\r\n 'minecraft:uniform': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:biased_to_bottom': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:clamped': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n source: Reference('int_provider')\r\n })\r\n }\r\n });\r\n schemas.register('int_provider', (0, exports.IntProvider)());\r\n schemas.register('vertical_anchor', (0, 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: (0, core_1.ObjectNode)({\r\n [t]: (0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, 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: (0, 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: (0, 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: (0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:location_check': {\r\n offsetX: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n offsetY: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n offsetZ: (0, core_1.Opt)((0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_chance_with_looting': {\r\n chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n looting_multiplier: (0, 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: (0, core_1.ListNode)((0, core_1.NumberNode)({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:time_check': {\r\n value: Reference('int_range'),\r\n period: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n thundering: (0, core_1.Opt)((0, 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: (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n bonusMultiplier: (0, core_1.Mod)((0, core_1.NumberNode)(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:uniform_bonus_count'\r\n }),\r\n extra: (0, core_1.Mod)((0, core_1.NumberNode)(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n }),\r\n probability: (0, core_1.Mod)((0, 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: (0, core_1.ListNode)((0, 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: (0, core_1.ListNode)(StringNode({ validator: 'block_state_key', params: { id: ['pop', 'pop', { push: 'block' }] } }))\r\n },\r\n 'minecraft:enchant_randomly': {\r\n enchantments: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:exploration_map': {\r\n destination: (0, core_1.Opt)(StringNode({ enum: 'map_feature' })),\r\n decoration: (0, core_1.Opt)(StringNode({ enum: 'map_decoration' })),\r\n zoom: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n search_radius: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n skip_existing_chunks: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:set_attributes': {\r\n modifiers: (0, core_1.ListNode)(Reference('attribute_modifier'))\r\n },\r\n 'minecraft:set_banner_pattern': {\r\n patterns: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n pattern: StringNode({ enum: 'banner_pattern' }),\r\n color: StringNode({ enum: 'dye_color' })\r\n })),\r\n append: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_contents': {\r\n entries: (0, core_1.ListNode)(Reference('loot_entry'))\r\n },\r\n 'minecraft:set_count': {\r\n count: Reference('number_provider'),\r\n add: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_damage': {\r\n damage: Reference('number_provider'),\r\n add: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_enchantments': {\r\n enchantments: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'enchantment' } }), Reference('number_provider')),\r\n add: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_loot_table': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n seed: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:set_lore': {\r\n entity: (0, core_1.Opt)(entitySourceNode),\r\n lore: (0, core_1.ListNode)(Reference('text_component')),\r\n replace: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_name': {\r\n entity: (0, core_1.Opt)(entitySourceNode),\r\n name: (0, 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: (0, core_1.Opt)((0, core_1.ListNode)((0, 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) => (0, 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) => (0, 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', (0, core_1.ObjectOrList)(Reference('condition'), { choiceContext: 'condition' }));\r\n schemas.register('condition', (0, core_1.Mod)((0, 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]: (0, 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) => (0, core_1.Mod)(node, {\r\n enabled: path => path.push('preset').get() === undefined\r\n });\r\n schemas.register('dimension', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: (0, Common_1.DimensionTypePresets)(Reference('dimension_type')),\r\n generator: (0, 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: (0, core_1.NumberNode)({ integer: true }),\r\n settings: (0, Common_1.NoiseSettingsPresets)(Reference('noise_settings')),\r\n biome_source: (0, 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: (0, core_1.NumberNode)({ integer: true }),\r\n preset: (0, 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((0, core_1.Mod)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 62 })),\r\n biomes: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }))\r\n },\r\n 'minecraft:the_end': {\r\n seed: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:vanilla_layered': {\r\n seed: (0, core_1.NumberNode)({ integer: true }),\r\n large_biomes: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n legacy_biome_init_layer: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n }\r\n }\r\n }, { category: 'predicate', disableSwitchContext: true })\r\n },\r\n 'minecraft:flat': {\r\n settings: (0, core_1.ObjectNode)({\r\n biome: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n lakes: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n features: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n layers: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }),\r\n parameters: (0, core_1.ObjectNode)({\r\n altitude: (0, core_1.NumberNode)(),\r\n temperature: (0, core_1.NumberNode)(),\r\n humidity: (0, core_1.NumberNode)(),\r\n weirdness: (0, core_1.NumberNode)(),\r\n offset: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n firstOctave: (0, core_1.NumberNode)({ integer: true }),\r\n amplitudes: (0, core_1.ListNode)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n name: (0, 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: (0, core_1.BooleanNode)(),\r\n natural: (0, core_1.BooleanNode)(),\r\n piglin_safe: (0, core_1.BooleanNode)(),\r\n respawn_anchor_works: (0, core_1.BooleanNode)(),\r\n bed_works: (0, core_1.BooleanNode)(),\r\n has_raids: (0, core_1.BooleanNode)(),\r\n has_skylight: (0, core_1.BooleanNode)(),\r\n has_ceiling: (0, core_1.BooleanNode)(),\r\n coordinate_scale: (0, core_1.NumberNode)({ min: 0.00001, max: 30000000 }),\r\n ambient_light: (0, core_1.NumberNode)(),\r\n fixed_time: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n logical_height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4096 }),\r\n effects: (0, 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: (0, core_1.NumberNode)({ integer: true, min: -2048, max: 2047 }),\r\n height: (0, 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', (0, core_1.ObjectOrList)(Reference('function'), { choiceContext: 'function' }));\r\n const conditions = {\r\n conditions: (0, core_1.Opt)((0, core_1.ListNode)(Reference('condition')))\r\n };\r\n schemas.register('function', (0, core_1.Mod)((0, 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]: (0, 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: (0, core_1.Opt)((0, core_1.ListNode)(Reference('loot_condition')))\r\n };\r\n const functionsAndConditions = {\r\n functions: (0, core_1.Opt)((0, 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 (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: (0, core_1.Opt)(StringNode({ validator: \"resource\", params: { pool: collections.get('loot_context_type') } })),\r\n pools: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n rolls: Reference('number_provider'),\r\n bonus_rolls: (0, core_1.Opt)(Reference('number_provider')),\r\n entries: (0, 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: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'loot_pool_entry_type' } }),\r\n weight: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true, min: 1 }), weightMod)),\r\n quality: (0, core_1.Opt)((0, core_1.Mod)((0, 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: (0, 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: (0, 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: (0, 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: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n function: functionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'function' }],\r\n [core_1.Case]: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n condition: conditionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: (0, 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', (0, core_1.Mod)((0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n pack: (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n pack_format: (0, core_1.Mod)((0, 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: (0, 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 = (0, 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: (0, core_1.NumberNode)(),\r\n change: v => (typeof v === 'string') ? parseInt(v) : 0\r\n },\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)({\r\n min: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n max: (0, core_1.Opt)((0, 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: (0, core_1.BooleanNode)(),\r\n change: v => v === 'true' || v === 1\r\n }\r\n ]);\r\n schemas.register('item_predicate', (0, core_1.ObjectNode)({\r\n items: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'item' } }))),\r\n tag: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'potion' } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } })),\r\n enchantments: (0, core_1.Opt)((0, core_1.ListNode)(Reference('enchantment_predicate')))\r\n }, { context: 'item' }));\r\n schemas.register('enchantment_predicate', (0, core_1.ObjectNode)({\r\n enchantment: (0, 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', (0, core_1.ObjectNode)({\r\n blocks: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'block' } }))),\r\n tag: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$tag/block' } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block', id: ['pop', { push: 'block' }] } } })),\r\n state: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n fluid: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'fluid' } })),\r\n tag: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$tag/fluid' } })),\r\n state: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), StateChoice))\r\n }, { context: 'fluid' }));\r\n schemas.register('location_predicate', (0, core_1.ObjectNode)({\r\n position: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n feature: (0, core_1.Opt)(StringNode({ enum: collections.get('worldgen/structure_feature').map(v => v.slice(10)) })),\r\n dimension: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n light: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n light: Reference('int_bounds')\r\n })),\r\n smokey: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n block: (0, core_1.Opt)(Reference('block_predicate')),\r\n fluid: (0, core_1.Opt)(Reference('fluid_predicate'))\r\n }, { context: 'location' }));\r\n schemas.register('statistic_predicate', (0, 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', (0, core_1.ObjectNode)({\r\n gamemode: (0, core_1.Opt)(StringNode({ enum: 'gamemode' })),\r\n level: Reference('int_bounds'),\r\n advancements: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: '$advancement' } }), (0, core_1.ChoiceNode)([\r\n { type: 'boolean', node: (0, core_1.BooleanNode)(), change: _ => true },\r\n {\r\n type: 'object', node: (0, core_1.MapNode)(StringNode(), (0, core_1.BooleanNode)())\r\n }\r\n ]))),\r\n recipes: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: '$recipe' } }), (0, core_1.BooleanNode)())),\r\n stats: (0, core_1.Opt)((0, core_1.ListNode)(Reference('statistic_predicate'))),\r\n looking_at: (0, core_1.Opt)(Reference('entity_predicate'))\r\n }, { context: 'player' }));\r\n schemas.register('status_effect_predicate', (0, core_1.ObjectNode)({\r\n amplifier: Reference('int_bounds'),\r\n duration: Reference('int_bounds'),\r\n ambient: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n visible: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n }, { context: 'status_effect' }));\r\n schemas.register('distance_predicate', (0, 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', (0, core_1.ObjectNode)({\r\n type: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'entity_type', allowTag: true } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:entity', id: ['pop', { push: 'type' }] } } })),\r\n team: (0, core_1.Opt)(StringNode({ validator: 'team' })),\r\n location: (0, core_1.Opt)(Reference('location_predicate')),\r\n stepping_on: (0, core_1.Opt)(Reference('location_predicate')),\r\n distance: (0, core_1.Opt)(Reference('distance_predicate')),\r\n flags: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n is_on_fire: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_sneaking: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_sprinting: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_swimming: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_baby: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n })),\r\n equipment: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ enum: 'slot' }), Reference('item_predicate'))),\r\n vehicle: (0, core_1.Opt)(Reference('entity_predicate')),\r\n passenger: (0, core_1.Opt)(Reference('entity_predicate')),\r\n targeted_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n player: (0, core_1.Opt)(Reference('player_predicate')),\r\n lightning_bolt: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n blocks_set_on_fire: (0, core_1.Opt)(Reference('int_bounds')),\r\n entity_struck: (0, core_1.Opt)(Reference('entity_predicate'))\r\n })),\r\n fishing_hook: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n in_open_water: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n })),\r\n catType: (0, core_1.Opt)(StringNode({ enum: 'cat_texture' })),\r\n effects: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n is_explosion: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_fire: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_magic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_projectile: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_lightning: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_armor: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_invulnerability: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_magic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n source_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n direct_entity: (0, core_1.Opt)(Reference('entity_predicate'))\r\n }, { context: 'damage_source' }));\r\n schemas.register('damage_predicate', (0, core_1.ObjectNode)({\r\n dealt: Reference('float_bounds'),\r\n taken: Reference('float_bounds'),\r\n blocked: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n source_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n type: (0, 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', (0, core_1.Mod)((0, 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: (0, core_1.Opt)(StringNode({ enum: 'recipe_group', additional: true })),\r\n pattern: (0, core_1.ListNode)(StringNode()),\r\n key: (0, 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: (0, core_1.Opt)(StringNode()),\r\n ingredients: (0, core_1.ListNode)(Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:smelting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 200 }))\r\n },\r\n 'minecraft:blasting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:smoking': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:campfire_cooking': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:stonecutting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:smithing': {\r\n group: (0, 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', (0, core_1.Mod)((0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n item: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.Opt)((0, core_1.Mod)((0, 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) => (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n replace: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n values: (0, core_1.ListNode)((0, 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: (0, core_1.ObjectNode)({\r\n id: StringNode({ validator: 'resource', params: { pool: type, allowTag: true, allowUnknown: true } }),\r\n required: (0, 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', (0, core_1.Mod)((0, 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: (0, 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: (0, 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: (0, core_1.Opt)(StringNode()) /* TODO */,\r\n font: (0, core_1.Opt)(StringNode()),\r\n bold: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n italic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n underlined: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n strikethrough: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n obfuscated: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n insertion: (0, core_1.Opt)(StringNode()),\r\n clickEvent: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(Reference('text_component')),\r\n contents: (0, core_1.Opt)(Reference('text_component'))\r\n },\r\n 'show_item': {\r\n value: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { module: 'util::InventoryItem' } })),\r\n contents: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n id: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n tag: (0, 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: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n name: (0, core_1.Opt)(StringNode()),\r\n type: (0, core_1.Opt)(StringNode()),\r\n id: (0, core_1.Opt)(StringNode())\r\n })),\r\n contents: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n name: (0, 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: (0, core_1.Opt)(Reference('text_component_list'))\r\n };\r\n schemas.register('text_component_object', (0, core_1.Mod)((0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n translate: StringNode(),\r\n with: (0, 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: (0, core_1.ObjectNode)({\r\n score: (0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n selector: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } }),\r\n separator: (0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n nbt: StringNode({ validator: 'nbt_path' }),\r\n block: (0, core_1.Opt)(StringNode({ validator: 'vector', params: { dimension: 3, isInteger: true } })),\r\n entity: (0, core_1.Opt)(StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } })),\r\n storage: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$storage' } })),\r\n interpret: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n separator: (0, 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', (0, core_1.Mod)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n surface_builder: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_surface_builder' } }),\r\n depth: (0, core_1.NumberNode)(),\r\n scale: (0, core_1.NumberNode)(),\r\n temperature: (0, core_1.NumberNode)(),\r\n downfall: (0, core_1.NumberNode)(),\r\n precipitation: StringNode({ enum: ['none', 'rain', 'snow'] }),\r\n temperature_modifier: (0, core_1.Opt)(StringNode({ enum: ['none', 'frozen'] })),\r\n category: StringNode({ enum: 'biome_category' }),\r\n player_spawn_friendly: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n creature_spawn_probability: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n effects: (0, core_1.ObjectNode)({\r\n sky_color: (0, core_1.NumberNode)({ color: true }),\r\n fog_color: (0, core_1.NumberNode)({ color: true }),\r\n water_color: (0, core_1.NumberNode)({ color: true }),\r\n water_fog_color: (0, core_1.NumberNode)({ color: true }),\r\n grass_color: (0, core_1.Opt)((0, core_1.NumberNode)({ color: true })),\r\n foliage_color: (0, core_1.Opt)((0, core_1.NumberNode)({ color: true })),\r\n grass_color_modifier: (0, core_1.Opt)(StringNode({ enum: ['none', 'dark_forest', 'swamp'] })),\r\n ambient_sound: (0, core_1.Opt)(StringNode()),\r\n mood_sound: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n sound: StringNode(),\r\n tick_delay: (0, core_1.NumberNode)({ integer: true }),\r\n block_search_extent: (0, core_1.NumberNode)({ integer: true }),\r\n offset: (0, core_1.NumberNode)()\r\n })),\r\n additions_sound: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n sound: StringNode(),\r\n tick_chance: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n })),\r\n music: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n sound: StringNode(),\r\n min_delay: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n max_delay: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n replace_current_music: (0, core_1.BooleanNode)()\r\n })),\r\n particle: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n options: (0, core_1.ObjectNode)({\r\n type: StringNode()\r\n }),\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n }))\r\n }),\r\n starts: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_structure_feature' } })),\r\n spawners: (0, 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 ] }), (0, core_1.Mod)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n weight: (0, core_1.NumberNode)({ integer: true }),\r\n minCount: (0, core_1.NumberNode)({ integer: true }),\r\n maxCount: (0, 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: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'entity_type' } }), (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n energy_budget: (0, core_1.NumberNode)(),\r\n charge: (0, 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: (0, core_1.MapNode)(StringNode({ enum: ['air', 'liquid'] }), (0, core_1.Mod)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_carver' } })), {\r\n default: () => ['minecraft:cave']\r\n })),\r\n features: (0, core_1.ListNode)((0, core_1.Mod)((0, 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: (0, Common_1.FloatProvider)(),\r\n shape: (0, core_1.ObjectNode)({\r\n distance_factor: (0, Common_1.FloatProvider)(),\r\n thickness: (0, Common_1.FloatProvider)(),\r\n width_smoothness: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n horizontal_radius_factor: (0, Common_1.FloatProvider)(),\r\n vertical_radius_default_factor: (0, core_1.NumberNode)(),\r\n vertical_radius_center_factor: (0, core_1.NumberNode)()\r\n })\r\n };\r\n const CaveConfig = {\r\n horizontal_radius_multiplier: (0, Common_1.FloatProvider)(),\r\n vertical_radius_multiplier: (0, Common_1.FloatProvider)(),\r\n floor_level: (0, Common_1.FloatProvider)({ min: -1, max: 1 }),\r\n };\r\n schemas.register('configured_carver', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/carver' } }),\r\n config: (0, core_1.ObjectNode)({\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n y: Reference('height_provider'),\r\n yScale: (0, Common_1.FloatProvider)(),\r\n lava_level: Reference('vertical_anchor'),\r\n aquifers_enabled: (0, core_1.BooleanNode)(),\r\n debug_settings: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n debug_mode: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n air_state: (0, core_1.Opt)(Reference('block_state')),\r\n water_state: (0, core_1.Opt)(Reference('block_state')),\r\n lava_state: (0, core_1.Opt)(Reference('block_state')),\r\n barrier_state: (0, 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: (0, Common_1.IntProvider)({ min: 0, max: 256 })\r\n };\r\n schemas.register('configured_decorator', (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/decorator' } }),\r\n config: (0, 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: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:chance': {\r\n chance: (0, core_1.NumberNode)({ integer: true, min: 0 })\r\n },\r\n 'minecraft:count': CountConfig,\r\n 'minecraft:count_extra': {\r\n count: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n extra_count: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n extra_chance: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:count_multilayer': CountConfig,\r\n 'minecraft:count_noise': {\r\n noise_level: (0, core_1.NumberNode)(),\r\n below_noise: (0, core_1.NumberNode)({ integer: true }),\r\n above_noise: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:count_noise_biased': {\r\n noise_to_count_ratio: (0, core_1.NumberNode)({ integer: true }),\r\n noise_factor: (0, core_1.NumberNode)(),\r\n noise_offset: (0, core_1.Opt)((0, 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: (0, 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: (0, 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 = (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n processors: (0, 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', (0, core_1.Mod)((0, 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: (0, core_1.NumberNode)()\r\n },\r\n 'minecraft:block_ignore': {\r\n blocks: (0, core_1.ListNode)(Reference('block_state'))\r\n },\r\n 'minecraft:block_rot': {\r\n integrity: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:gravity': {\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n offset: (0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n position_predicate: (0, 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: (0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 255, integer: true })),\r\n max_dist: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 255, integer: true })),\r\n min_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n max_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 }))\r\n };\r\n schemas.register('pos_rule_test', (0, 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', (0, 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: (0, 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: (0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n project: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n need_water: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n xspread: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0 })),\r\n yspread: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0 })),\r\n zspread: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0 })),\r\n tries: (0, core_1.Opt)((0, 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: (0, core_1.ListNode)(Reference('block_state')),\r\n blacklist: (0, core_1.ListNode)(Reference('block_state'))\r\n };\r\n const DiskConfig = {\r\n state: Reference('block_state'),\r\n radius: (0, Common_1.IntProvider)({ min: 0, max: 8 }),\r\n half_height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4 }),\r\n targets: (0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n };\r\n const TargetBlockState = (0, core_1.ObjectNode)({\r\n target: Reference('rule_test'),\r\n state: Reference('block_state')\r\n });\r\n const OreConfig = {\r\n size: (0, core_1.NumberNode)({ integer: true, min: 0, max: 64 }),\r\n discard_chance_on_air_exposure: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n targets: (0, core_1.ListNode)(TargetBlockState)\r\n };\r\n const Feature = (0, 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: (0, Common_1.IntProvider)({ min: 1, max: 128 }),\r\n vertical_range: (0, core_1.NumberNode)({ integer: true, min: 1, max: 256 }),\r\n extra_bottom_block_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n extra_edge_column_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n vegetation_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n xz_radius: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature' } }),\r\n config: (0, core_1.ObjectNode)({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bamboo': {\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:basalt_columns': {\r\n reach: (0, Common_1.IntProvider)({ min: 0, max: 3 }),\r\n height: (0, 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: (0, Common_1.IntProvider)({ min: 0, max: 16 }),\r\n rim_size: (0, 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: (0, core_1.NumberNode)({ integer: true, min: 1, max: 512 }),\r\n height: (0, Common_1.IntProvider)({ min: 0, max: 128 }),\r\n radius: (0, Common_1.IntProvider)({ min: 0, max: 128 }),\r\n max_stalagmite_stalactite_height_diff: (0, core_1.NumberNode)({ integer: true, min: 0, max: 64 }),\r\n height_deviation: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n dripstone_block_layer_thickness: (0, Common_1.IntProvider)({ min: 0, max: 128 }),\r\n density: (0, Common_1.FloatProvider)({ min: 0, max: 2 }),\r\n wetness: (0, Common_1.FloatProvider)({ min: 0, max: 2 }),\r\n chance_of_dripstone_column_at_max_distance_from_center: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n max_distance_from_edge_affecting_chance_of_dripstone_column: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n max_distance_from_center_affecting_height_bias: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 })\r\n },\r\n 'minecraft:end_gateway': {\r\n exact: (0, core_1.BooleanNode)(),\r\n exit: (0, core_1.Opt)(Reference('block_pos'))\r\n },\r\n 'minecraft:end_spike': {\r\n crystal_invulnerable: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n crystal_beam_target: (0, core_1.Opt)(Reference('block_pos')),\r\n spikes: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n centerX: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n centerZ: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n radius: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n height: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n guarded: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n }))\r\n },\r\n 'minecraft:fill_layer': {\r\n state: Reference('block_state'),\r\n height: (0, 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: (0, core_1.NumberNode)({ integer: true, min: 0, max: 7 }),\r\n fossil_structures: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$structure' } })),\r\n overlay_structures: (0, 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: (0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n filling: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n inner_layer: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n middle_layer: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n outer_layer: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n }),\r\n crack: (0, core_1.ObjectNode)({\r\n generate_crack_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n base_crack_size: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 5 })),\r\n crack_point_offset: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 10 })),\r\n }),\r\n noise_multiplier: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n use_potential_placements_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n use_alternate_layer0_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n placements_require_layer0_alternate: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n outer_wall_distance: (0, core_1.Opt)((0, Common_1.IntProvider)({ min: 1, max: 20 })),\r\n distribution_points: (0, core_1.Opt)((0, Common_1.IntProvider)({ min: 1, max: 20 })),\r\n point_offset: (0, core_1.Opt)((0, Common_1.IntProvider)({ min: 0, max: 10 })),\r\n min_gen_offset: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n max_gen_offset: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n invalid_blocks_threshold: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:glow_lichen': {\r\n search_range: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 1, max: 64, integer: true })),\r\n chance_of_spreading: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n can_place_on_floor: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n can_place_on_ceiling: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n can_place_on_wall: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n can_be_placed_on: (0, 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: (0, core_1.BooleanNode)(),\r\n height_distribution: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n weight: (0, core_1.NumberNode)({ integer: true }),\r\n data: (0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 1, max: 512 })),\r\n column_radius: (0, Common_1.IntProvider)({ min: 0, max: 60 }),\r\n height_scale: (0, Common_1.FloatProvider)({ min: 0, max: 20 }),\r\n max_column_radius_to_cave_height_ratio: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n stalactite_bluntness: (0, Common_1.FloatProvider)({ min: 0.1, max: 10 }),\r\n stalagmite_bluntness: (0, Common_1.FloatProvider)({ min: 0.1, max: 10 }),\r\n wind_speed: (0, Common_1.FloatProvider)({ min: 0, max: 2 }),\r\n min_radius_for_wind: (0, core_1.NumberNode)({ integer: true, min: 0, max: 100 }),\r\n min_bluntness_for_wind: (0, 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: (0, 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: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n chance: (0, 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: (0, core_1.ListNode)(TargetBlockState)\r\n },\r\n 'minecraft:root_system': {\r\n required_vertical_space_for_tree: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n root_radius: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n root_placement_attempts: (0, core_1.NumberNode)({ integer: true, min: 1, max: 256 }),\r\n root_column_max_height: (0, core_1.NumberNode)({ integer: true, min: 1, max: 4096 }),\r\n hanging_root_radius: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n hanging_roots_vertical_span: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 }),\r\n hanging_root_placement_attempts: (0, core_1.NumberNode)({ integer: true, min: 0, max: 256 }),\r\n allowed_vertical_water_for_tree: (0, 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: (0, Common_1.IntProvider)({ min: 0, max: 256 })\r\n },\r\n 'minecraft:seagrass': {\r\n probability: (0, 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: (0, core_1.Opt)((0, core_1.ListNode)(Reference('block_state'))),\r\n place_in: (0, core_1.Opt)((0, core_1.ListNode)(Reference('block_state'))),\r\n place_under: (0, core_1.Opt)((0, core_1.ListNode)(Reference('block_state')))\r\n },\r\n 'minecraft:simple_random_selector': {\r\n features: (0, core_1.ListNode)(Feature)\r\n },\r\n 'minecraft:small_dripstone': {\r\n max_placements: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 100 })),\r\n empty_space_search_radius: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 20 })),\r\n max_offset_from_origin: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 20 })),\r\n chance_of_taller_dripstone: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:spring_feature': {\r\n state: Reference('fluid_state'),\r\n rock_count: (0, core_1.NumberNode)({ integer: true }),\r\n hole_count: (0, core_1.NumberNode)({ integer: true }),\r\n requires_block_below: (0, core_1.BooleanNode)(),\r\n valid_blocks: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:tree': {\r\n ignore_vines: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n force_dirt: (0, core_1.Opt)((0, 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: (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/trunk_placer_type' } }),\r\n base_height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 32 }),\r\n height_rand_a: (0, core_1.NumberNode)({ integer: true, min: 0, max: 24 }),\r\n height_rand_b: (0, 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: (0, Common_1.IntProvider)({ min: 1, max: 64 }),\r\n min_height_for_leaves: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 1 }))\r\n }\r\n }\r\n }, { context: 'trunk_placer' }),\r\n foliage_placer: (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/foliage_placer_type' } }),\r\n radius: (0, Common_1.IntProvider)({ min: 0, max: 16 }),\r\n offset: (0, 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: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:bush_foliage_placer': {\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:fancy_foliage_placer': {\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:jungle_foliage_placer': {\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:mega_pine_foliage_placer': {\r\n crown_height: (0, Common_1.IntProvider)({ min: 0, max: 24 })\r\n },\r\n 'minecraft:pine_foliage_placer': {\r\n height: (0, Common_1.IntProvider)({ min: 0, max: 24 })\r\n },\r\n 'minecraft:random_spread_foliage_placer': {\r\n foliage_height: (0, Common_1.IntProvider)({ min: 1, max: 512 }),\r\n leaf_placement_attempts: (0, core_1.NumberNode)({ integer: true, min: 0, max: 256 })\r\n },\r\n 'minecraft:spruce_foliage_placer': {\r\n trunk_height: (0, Common_1.IntProvider)({ min: 0, max: 24 })\r\n }\r\n }\r\n }, { context: 'foliage_placer', disableSwitchContext: true }),\r\n decorators: (0, core_1.ListNode)((0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:cocoa': {\r\n probability: (0, 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: (0, core_1.NumberNode)({ integer: true, min: 0, max: 512 }),\r\n placement_radius_around_floor: (0, core_1.NumberNode)({ integer: true, min: 0, max: 64 }),\r\n placement_probability_per_valid_position: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature_size_type' } }),\r\n min_clipped_height: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 81 })),\r\n lower_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })),\r\n upper_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 }))\r\n },\r\n 'minecraft:three_layers_feature_size': {\r\n limit: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 80 })),\r\n upper_limit: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 80 })),\r\n lower_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })),\r\n middle_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })),\r\n upper_size: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, 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: (0, 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: (0, core_1.ListNode)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n weight: (0, 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', (0, core_1.Mod)((0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n name: (0, 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: (0, core_1.NumberNode)({ integer: true }),\r\n bedrock_floor_position: (0, core_1.NumberNode)({ integer: true }),\r\n sea_level: (0, core_1.NumberNode)({ integer: true }),\r\n min_surface_level: (0, core_1.NumberNode)({ integer: true }),\r\n disable_mob_generation: (0, core_1.BooleanNode)(),\r\n noise_caves_enabled: (0, core_1.BooleanNode)(),\r\n noodle_caves_enabled: (0, core_1.BooleanNode)(),\r\n aquifers_enabled: (0, core_1.BooleanNode)(),\r\n deepslate_enabled: (0, core_1.BooleanNode)(),\r\n ore_veins_enabled: (0, core_1.BooleanNode)(),\r\n default_block: Reference('block_state'),\r\n default_fluid: Reference('block_state'),\r\n noise: (0, core_1.ObjectNode)({\r\n min_y: (0, core_1.NumberNode)({ integer: true, min: -2048, max: 2047 }),\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4096 }),\r\n density_factor: (0, core_1.NumberNode)(),\r\n density_offset: (0, core_1.NumberNode)(),\r\n size_horizontal: (0, core_1.NumberNode)({ integer: true }),\r\n size_vertical: (0, core_1.NumberNode)({ integer: true }),\r\n simplex_surface_noise: (0, core_1.BooleanNode)(),\r\n random_density_offset: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n island_noise_override: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n amplified: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n sampling: (0, core_1.ObjectNode)({\r\n xz_scale: (0, core_1.NumberNode)(),\r\n y_scale: (0, core_1.NumberNode)(),\r\n xz_factor: (0, core_1.NumberNode)(),\r\n y_factor: (0, core_1.NumberNode)()\r\n }),\r\n bottom_slide: (0, core_1.ObjectNode)({\r\n target: (0, core_1.NumberNode)({ integer: true }),\r\n size: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n offset: (0, core_1.NumberNode)({ integer: true })\r\n }),\r\n top_slide: (0, core_1.ObjectNode)({\r\n target: (0, core_1.NumberNode)({ integer: true }),\r\n size: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n offset: (0, 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', (0, core_1.ObjectNode)({\r\n stronghold: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n distance: (0, core_1.NumberNode)({ integer: true, min: 0, max: 1023 }),\r\n spread: (0, core_1.NumberNode)({ integer: true, min: 0, max: 1023 }),\r\n count: (0, core_1.NumberNode)({ integer: true, min: 1, max: 4095 })\r\n })),\r\n structures: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }), (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n spacing: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4096 }),\r\n separation: (0, core_1.Mod)((0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n height: (0, 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: (0, core_1.NumberNode)({ integer: true })\r\n };\r\n schemas.register('configured_structure_feature', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }),\r\n config: (0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:mineshaft': {\r\n type: StringNode({ enum: ['normal', 'mesa'] }),\r\n probability: (0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n cluster_probability: (0, 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: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/surface_builder' } }),\r\n config: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n name: StringNode(),\r\n fallback: StringNode(),\r\n elements: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n weight: (0, 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', (0, core_1.Mod)((0, 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: (0, 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 (0, ProcessorList_1.initProcessorListSchemas)(schemas, collections);\r\n (0, Biome_1.initBiomeSchemas)(schemas, collections);\r\n (0, Carver_1.initCarverSchemas)(schemas, collections);\r\n (0, Decorator_1.initDecoratorSchemas)(schemas, collections);\r\n (0, Feature_1.initFeatureSchemas)(schemas, collections);\r\n (0, NoiseSettings_1.initNoiseSettingsSchemas)(schemas, collections);\r\n (0, StructureFeature_1.initStructureFeatureSchemas)(schemas, collections);\r\n (0, SurfaceBuilder_1.initSurfaceBuilderSchemas)(schemas, collections);\r\n (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n generate_features: (0, core_1.BooleanNode)(),\r\n bonus_chest: (0, core_1.BooleanNode)(),\r\n seed: (0, core_1.NumberNode)({ integer: true }),\r\n dimensions: (0, 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 (0, Common_1.initCommonSchemas)(schemas, collections);\r\n (0, Advancement_1.initAdvancementSchemas)(schemas, collections);\r\n (0, assets_1.initAssetsSchemas)(schemas, collections);\r\n (0, Condition_1.initConditionSchemas)(schemas, collections);\r\n (0, DimensionType_1.initDimensionTypeSchemas)(schemas, collections);\r\n (0, Dimension_1.initDimensionSchemas)(schemas, collections);\r\n (0, ItemModifier_1.initItemModifierSchemas)(schemas, collections);\r\n (0, LootTable_1.initLootTableSchemas)(schemas, collections);\r\n (0, PackMcmeta_1.initPackMcmetaSchemas)(schemas, collections);\r\n (0, Predicates_1.initPredicatesSchemas)(schemas, collections);\r\n (0, Recipe_1.initRecipeSchemas)(schemas, collections);\r\n (0, Tags_1.initTagsSchemas)(schemas, collections);\r\n (0, TextComponent_1.initTextComponentSchemas)(schemas, collections);\r\n (0, worldgen_1.initWorldgenSchemas)(schemas, collections);\r\n (0, 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 var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\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.prototype.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 = exports.lootContext = 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 (0, 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 (0, 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('cat_texture', [\r\n 'textures/entity/cat/tabby.png',\r\n 'textures/entity/cat/black.png',\r\n 'textures/entity/cat/red.png',\r\n 'textures/entity/cat/siamese.png',\r\n 'textures/entity/cat/british_shorthair.png',\r\n 'textures/entity/cat/calico.png',\r\n 'textures/entity/cat/persian.png',\r\n 'textures/entity/cat/ragdoll.png',\r\n 'textures/entity/cat/white.png',\r\n 'textures/entity/cat/jellie.png',\r\n 'textures/entity/cat/all_black.png'\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 = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n node: (0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n display: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n icon: (0, core_1.ObjectNode)({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n nbt: (0, 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: (0, core_1.Opt)(StringNode()),\r\n frame: (0, core_1.Opt)(StringNode({ enum: ['task', 'challenge', 'goal'] })),\r\n show_toast: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n announce_to_chat: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n hidden: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$advancement' } })),\r\n criteria: (0, core_1.MapNode)(StringNode(), Reference('advancement_criteria')),\r\n requirements: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ListNode)(StringNode() // TODO: add validation\r\n ))),\r\n rewards: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n function: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$function' } })),\r\n loot: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$loot_table' } }))),\r\n recipes: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$recipe' } }))),\r\n experience: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n trigger: StringNode({ validator: 'resource', params: { pool: collections.get('advancement_trigger') } }),\r\n conditions: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n player: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n num_bees_inside: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n item: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'potion' } }))\r\n },\r\n 'minecraft:changed_dimension': {\r\n from: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n to: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$dimension' } }))\r\n },\r\n 'minecraft:channeled_lightning': {\r\n victims: (0, core_1.Opt)((0, 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: (0, 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: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), (0, core_1.ObjectNode)({\r\n amplifier: Reference('int_bounds'),\r\n duration: Reference('int_bounds')\r\n }))),\r\n source: (0, core_1.Opt)(EntityPredicate)\r\n },\r\n 'minecraft:enter_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:entity_hurt_player': {\r\n damage: (0, core_1.Opt)(Reference('damage_predicate'))\r\n },\r\n 'minecraft:entity_killed_player': {\r\n entity: EntityPredicate,\r\n killing_blow: (0, core_1.Opt)(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:fall_from_height': {\r\n start_position: (0, core_1.Opt)(Reference('location_predicate')),\r\n distance: (0, core_1.Opt)(Reference('distance_predicate'))\r\n },\r\n 'minecraft:filled_bucket': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:fishing_rod_hooked': {\r\n entity: EntityPredicate,\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:hero_of_the_village': {\r\n location: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:inventory_changed': {\r\n slots: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:item_used_on_block': {\r\n item: (0, core_1.Opt)(Reference('item_predicate')),\r\n location: (0, 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: (0, core_1.Opt)((0, core_1.ListNode)(EntityPredicate))\r\n },\r\n 'minecraft:levitation': {\r\n distance: (0, 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: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:nether_travel': {\r\n start_position: (0, core_1.Opt)(Reference('location_predicate')),\r\n distance: (0, core_1.Opt)(Reference('distance_predicate')),\r\n },\r\n 'minecraft:placed_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })),\r\n item: (0, core_1.Opt)(Reference('item_predicate')),\r\n location: (0, 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: (0, core_1.Opt)(Reference('damage_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_interacted_with_entity': {\r\n item: (0, 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: (0, 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: (0, core_1.Opt)(Reference('location_predicate')),\r\n distance: (0, core_1.Opt)(Reference('distance_predicate'))\r\n },\r\n 'minecraft:slept_in_bed': {\r\n location: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:slide_down_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:shot_crossbow': {\r\n item: (0, 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: EntityPredicate,\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:used_ender_eye': {\r\n distance: (0, core_1.Opt)(Reference('float_bounds'))\r\n },\r\n 'minecraft:used_totem': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:using_item': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:villager_trade': {\r\n villager: EntityPredicate,\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:voluntary_exile': {\r\n location: (0, 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) => (0, core_1.ListNode)((0, core_1.NumberNode)({ min, max }), { minLength: length, maxLength: length });\r\n const Texture = (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n parent: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$model' } })),\r\n ambientocclusion: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n gui_light: (0, core_1.Opt)(StringNode({ enum: 'gui_light' })),\r\n textures: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), Texture)),\r\n elements: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n from: Vec(3, -16, 32),\r\n to: Vec(3, -16, 32),\r\n rotation: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n origin: Vec(3),\r\n axis: StringNode({ enum: 'axis' }),\r\n angle: (0, core_1.NumberEnum)({ values: [-45, -22.5, 0, 22.5, 45] }),\r\n rescale: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n })),\r\n shade: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n faces: (0, core_1.MapNode)(StringNode({ enum: 'direction' }), (0, core_1.ObjectNode)({\r\n texture: Texture,\r\n uv: (0, core_1.Opt)(Vec(4)),\r\n cullface: (0, core_1.Opt)(StringNode({ enum: 'direction' })),\r\n rotation: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n tintindex: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n }))\r\n }, { context: 'model_element' }))),\r\n display: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ enum: 'display_position' }), (0, 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: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n predicate: (0, core_1.MapNode)(StringNode({ enum: 'item_model_predicates' }), (0, 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', (0, core_1.Mod)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'variants',\r\n match: (v) => v.variants !== undefined,\r\n node: (0, core_1.ObjectNode)({\r\n variants: (0, 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: (0, core_1.ObjectNode)({\r\n multipart: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n when: (0, 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: (0, core_1.Opt)((0, core_1.NumberEnum)({ integer: true, values: [0, 90, 180, 270] })),\r\n y: (0, core_1.Opt)((0, core_1.NumberEnum)({ integer: true, values: [0, 90, 180, 270] })),\r\n uvlock: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n };\r\n schemas.register('model_variant', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n node: (0, 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: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n ...VariantChildren,\r\n weight: (0, core_1.Opt)((0, 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', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n priority: -1,\r\n match: () => true,\r\n node: (0, 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: (0, core_1.ObjectNode)({\r\n OR: (0, 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 (0, BlockDefinition_1.initBlockDefinitionSchemas)(schemas, collections);\r\n (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n Properties: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'fluid' } }),\r\n Properties: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ListNode)((0, core_1.NumberNode)({ integer: true }), { minLength: 3, maxLength: 3 }), {\r\n default: () => [0, 0, 0]\r\n }));\r\n const Bounds = (integer) => (0, core_1.Opt)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'number',\r\n node: (0, 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: (0, core_1.ObjectNode)({\r\n min: (0, core_1.Opt)((0, core_1.NumberNode)({ integer })),\r\n max: (0, core_1.Opt)((0, 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', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)({\r\n min: (0, core_1.Opt)(Reference('number_provider')),\r\n max: (0, core_1.Opt)(Reference('number_provider'))\r\n })\r\n },\r\n {\r\n type: 'number',\r\n node: (0, 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] = (0, 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 = (0, core_1.ObjectNode)({\r\n type: (0, core_1.Mod)((0, 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 (0, 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: (0, 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: (0, core_1.Opt)((0, 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: (0, 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: (0, 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: (0, core_1.NumberNode)(config)\r\n },\r\n 'minecraft:uniform': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)(config),\r\n max_exclusive: (0, core_1.NumberNode)(config)\r\n })\r\n },\r\n 'minecraft:clamped_normal': {\r\n value: (0, core_1.ObjectNode)({\r\n min: (0, core_1.NumberNode)(),\r\n max: (0, core_1.NumberNode)(),\r\n mean: (0, core_1.NumberNode)(),\r\n deviation: (0, core_1.NumberNode)()\r\n })\r\n },\r\n 'minecraft:trapezoid': {\r\n value: (0, core_1.ObjectNode)({\r\n min: (0, core_1.NumberNode)(),\r\n max: (0, core_1.NumberNode)(),\r\n plateau: (0, core_1.NumberNode)()\r\n })\r\n }\r\n });\r\n schemas.register('float_provider', (0, 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: (0, core_1.NumberNode)({ integer: true, ...config })\r\n },\r\n 'minecraft:uniform': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:biased_to_bottom': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:clamped': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n source: Reference('int_provider')\r\n })\r\n },\r\n 'minecraft:clamped_normal': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n mean: (0, core_1.NumberNode)(),\r\n deviation: (0, core_1.NumberNode)()\r\n })\r\n },\r\n 'minecraft:weighted_list': {\r\n distribution: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n weight: (0, core_1.NumberNode)({ integer: true }),\r\n data: Reference('int_provider'),\r\n }))\r\n }\r\n });\r\n schemas.register('int_provider', (0, exports.IntProvider)());\r\n schemas.register('vertical_anchor', (0, 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: (0, core_1.ObjectNode)({\r\n [t]: (0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:weighted_list': {\r\n distribution: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n weight: (0, core_1.NumberNode)({ integer: true }),\r\n data: Reference('height_provider'),\r\n }))\r\n }\r\n }));\r\n exports.InclusiveRange = (config) => (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)(config),\r\n max_inclusive: (0, core_1.NumberNode)(config)\r\n }, { context: 'range' });\r\n schemas.register('noise_parameters', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n firstOctave: (0, core_1.NumberNode)({ integer: true }),\r\n amplitudes: (0, core_1.ListNode)((0, 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: (0, 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: (0, 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: (0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:location_check': {\r\n offsetX: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n offsetY: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n offsetZ: (0, core_1.Opt)((0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_chance_with_looting': {\r\n chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n looting_multiplier: (0, 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: (0, core_1.ListNode)((0, core_1.NumberNode)({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:time_check': {\r\n value: Reference('int_range'),\r\n period: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n thundering: (0, core_1.Opt)((0, 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: (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n bonusMultiplier: (0, core_1.Mod)((0, core_1.NumberNode)(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:uniform_bonus_count'\r\n }),\r\n extra: (0, core_1.Mod)((0, core_1.NumberNode)(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n }),\r\n probability: (0, core_1.Mod)((0, 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: (0, core_1.ListNode)((0, 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: (0, core_1.ListNode)(StringNode({ validator: 'block_state_key', params: { id: ['pop', 'pop', { push: 'block' }] } }))\r\n },\r\n 'minecraft:enchant_randomly': {\r\n enchantments: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:exploration_map': {\r\n destination: (0, core_1.Opt)(StringNode({ enum: 'map_feature' })),\r\n decoration: (0, core_1.Opt)(StringNode({ enum: 'map_decoration' })),\r\n zoom: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n search_radius: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n skip_existing_chunks: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:set_attributes': {\r\n modifiers: (0, core_1.ListNode)(Reference('attribute_modifier'))\r\n },\r\n 'minecraft:set_banner_pattern': {\r\n patterns: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n pattern: StringNode({ enum: 'banner_pattern' }),\r\n color: StringNode({ enum: 'dye_color' })\r\n })),\r\n append: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_contents': {\r\n type: StringNode({ validator: 'resource', params: { pool: 'block_entity_type' } }),\r\n entries: (0, core_1.ListNode)(Reference('loot_entry'))\r\n },\r\n 'minecraft:set_count': {\r\n count: Reference('number_provider'),\r\n add: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_damage': {\r\n damage: Reference('number_provider'),\r\n add: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_enchantments': {\r\n enchantments: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'enchantment' } }), Reference('number_provider')),\r\n add: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:set_lore': {\r\n entity: (0, core_1.Opt)(entitySourceNode),\r\n lore: (0, core_1.ListNode)(Reference('text_component')),\r\n replace: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_name': {\r\n entity: (0, core_1.Opt)(entitySourceNode),\r\n name: (0, 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: (0, core_1.Opt)((0, core_1.ListNode)((0, 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) => (0, 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) => (0, 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', (0, core_1.ObjectOrList)(Reference('condition'), { choiceContext: 'condition' }));\r\n schemas.register('condition', (0, core_1.Mod)((0, 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]: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: (0, Common_1.DimensionTypePresets)(Reference('dimension_type')),\r\n generator: (0, 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: (0, core_1.NumberNode)({ integer: true }),\r\n settings: (0, Common_1.NoiseSettingsPresets)(Reference('noise_settings')),\r\n biome_source: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: ['minecraft:overworld', 'minecraft:nether'] } })),\r\n biomes: (0, core_1.Mod)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 62 })),\r\n biomes: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }))\r\n },\r\n 'minecraft:the_end': {\r\n seed: (0, core_1.NumberNode)({ integer: true })\r\n }\r\n }\r\n }, { category: 'predicate', disableSwitchContext: true })\r\n },\r\n 'minecraft:flat': {\r\n settings: (0, core_1.ObjectNode)({\r\n biome: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n lakes: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n features: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n layers: (0, 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 = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'number',\r\n node: (0, 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: (0, core_1.ListNode)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }),\r\n parameters: (0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n ultrawarm: (0, core_1.BooleanNode)(),\r\n natural: (0, core_1.BooleanNode)(),\r\n piglin_safe: (0, core_1.BooleanNode)(),\r\n respawn_anchor_works: (0, core_1.BooleanNode)(),\r\n bed_works: (0, core_1.BooleanNode)(),\r\n has_raids: (0, core_1.BooleanNode)(),\r\n has_skylight: (0, core_1.BooleanNode)(),\r\n has_ceiling: (0, core_1.BooleanNode)(),\r\n coordinate_scale: (0, core_1.NumberNode)({ min: 0.00001, max: 30000000 }),\r\n ambient_light: (0, core_1.NumberNode)(),\r\n fixed_time: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n logical_height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4096 }),\r\n effects: (0, 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: (0, core_1.NumberNode)({ integer: true, min: -2048, max: 2047 }),\r\n height: (0, 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', (0, core_1.ObjectOrList)(Reference('function'), { choiceContext: 'function' }));\r\n const conditions = {\r\n conditions: (0, core_1.Opt)((0, core_1.ListNode)(Reference('condition')))\r\n };\r\n schemas.register('function', (0, core_1.Mod)((0, 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]: (0, 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: (0, core_1.Opt)((0, core_1.ListNode)(Reference('loot_condition')))\r\n };\r\n const functionsAndConditions = {\r\n functions: (0, core_1.Opt)((0, 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 (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: (0, core_1.Opt)(StringNode({ validator: \"resource\", params: { pool: collections.get('loot_context_type') } })),\r\n pools: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n rolls: Reference('number_provider'),\r\n bonus_rolls: (0, core_1.Opt)(Reference('number_provider')),\r\n entries: (0, 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: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'loot_pool_entry_type' } }),\r\n weight: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true, min: 1 }), weightMod)),\r\n quality: (0, core_1.Opt)((0, core_1.Mod)((0, 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: (0, 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: (0, 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: (0, 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: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n function: functionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'function' }],\r\n [core_1.Case]: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n condition: conditionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: (0, 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', (0, core_1.Mod)((0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n pack: (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n pack_format: (0, core_1.Mod)((0, 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: (0, 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 = (0, 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: (0, core_1.NumberNode)(),\r\n change: v => (typeof v === 'string') ? parseInt(v) : 0\r\n },\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)({\r\n min: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n max: (0, core_1.Opt)((0, 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: (0, core_1.BooleanNode)(),\r\n change: v => v === 'true' || v === 1\r\n }\r\n ]);\r\n schemas.register('item_predicate', (0, core_1.ObjectNode)({\r\n items: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'item' } }))),\r\n tag: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'potion' } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } })),\r\n enchantments: (0, core_1.Opt)((0, core_1.ListNode)(Reference('enchantment_predicate')))\r\n }, { context: 'item' }));\r\n schemas.register('enchantment_predicate', (0, core_1.ObjectNode)({\r\n enchantment: (0, 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', (0, core_1.ObjectNode)({\r\n blocks: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'block' } }))),\r\n tag: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$tag/block' } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block', id: ['pop', { push: 'block' }] } } })),\r\n state: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n fluid: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'fluid' } })),\r\n tag: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$tag/fluid' } })),\r\n state: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), StateChoice))\r\n }, { context: 'fluid' }));\r\n schemas.register('location_predicate', (0, core_1.ObjectNode)({\r\n position: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n feature: (0, core_1.Opt)(StringNode({ enum: collections.get('worldgen/structure_feature').map(v => v.slice(10)) })),\r\n dimension: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n light: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n light: Reference('int_bounds')\r\n })),\r\n smokey: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n block: (0, core_1.Opt)(Reference('block_predicate')),\r\n fluid: (0, core_1.Opt)(Reference('fluid_predicate'))\r\n }, { context: 'location' }));\r\n schemas.register('statistic_predicate', (0, 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', (0, core_1.ObjectNode)({\r\n gamemode: (0, core_1.Opt)(StringNode({ enum: 'gamemode' })),\r\n level: Reference('int_bounds'),\r\n advancements: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: '$advancement' } }), (0, core_1.ChoiceNode)([\r\n { type: 'boolean', node: (0, core_1.BooleanNode)(), change: _ => true },\r\n {\r\n type: 'object', node: (0, core_1.MapNode)(StringNode(), (0, core_1.BooleanNode)())\r\n }\r\n ]))),\r\n recipes: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: '$recipe' } }), (0, core_1.BooleanNode)())),\r\n stats: (0, core_1.Opt)((0, core_1.ListNode)(Reference('statistic_predicate'))),\r\n looking_at: (0, core_1.Opt)(Reference('entity_predicate'))\r\n }, { context: 'player' }));\r\n schemas.register('status_effect_predicate', (0, core_1.ObjectNode)({\r\n amplifier: Reference('int_bounds'),\r\n duration: Reference('int_bounds'),\r\n ambient: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n visible: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n }, { context: 'status_effect' }));\r\n schemas.register('distance_predicate', (0, 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', (0, core_1.ObjectNode)({\r\n type: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'entity_type', allowTag: true } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:entity', id: ['pop', { push: 'type' }] } } })),\r\n team: (0, core_1.Opt)(StringNode({ validator: 'team' })),\r\n location: (0, core_1.Opt)(Reference('location_predicate')),\r\n stepping_on: (0, core_1.Opt)(Reference('location_predicate')),\r\n distance: (0, core_1.Opt)(Reference('distance_predicate')),\r\n flags: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n is_on_fire: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_sneaking: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_sprinting: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_swimming: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_baby: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n })),\r\n equipment: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ enum: 'slot' }), Reference('item_predicate'))),\r\n vehicle: (0, core_1.Opt)(Reference('entity_predicate')),\r\n passenger: (0, core_1.Opt)(Reference('entity_predicate')),\r\n targeted_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n player: (0, core_1.Opt)(Reference('player_predicate')),\r\n lightning_bolt: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n blocks_set_on_fire: (0, core_1.Opt)(Reference('int_bounds')),\r\n entity_struck: (0, core_1.Opt)(Reference('entity_predicate'))\r\n })),\r\n fishing_hook: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n in_open_water: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n })),\r\n catType: (0, core_1.Opt)(StringNode({ enum: 'cat_texture' })),\r\n effects: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n is_explosion: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_fire: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_magic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_projectile: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_lightning: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_armor: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_invulnerability: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_magic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n source_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n direct_entity: (0, core_1.Opt)(Reference('entity_predicate'))\r\n }, { context: 'damage_source' }));\r\n schemas.register('damage_predicate', (0, core_1.ObjectNode)({\r\n dealt: Reference('float_bounds'),\r\n taken: Reference('float_bounds'),\r\n blocked: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n source_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n type: (0, 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', (0, core_1.Mod)((0, 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: (0, core_1.Opt)(StringNode({ enum: 'recipe_group', additional: true })),\r\n pattern: (0, core_1.ListNode)(StringNode()),\r\n key: (0, 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: (0, core_1.Opt)(StringNode()),\r\n ingredients: (0, core_1.ListNode)(Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:smelting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 200 }))\r\n },\r\n 'minecraft:blasting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:smoking': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:campfire_cooking': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:stonecutting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:smithing': {\r\n group: (0, 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', (0, core_1.Mod)((0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n item: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.Opt)((0, core_1.Mod)((0, 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) => (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n replace: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n values: (0, core_1.ListNode)((0, 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: (0, core_1.ObjectNode)({\r\n id: StringNode({ validator: 'resource', params: { pool: type, allowTag: true, allowUnknown: true } }),\r\n required: (0, 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', (0, core_1.Mod)((0, 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: (0, 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: (0, 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: (0, core_1.Opt)(StringNode()) /* TODO */,\r\n font: (0, core_1.Opt)(StringNode()),\r\n bold: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n italic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n underlined: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n strikethrough: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n obfuscated: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n insertion: (0, core_1.Opt)(StringNode()),\r\n clickEvent: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(Reference('text_component')),\r\n contents: (0, core_1.Opt)(Reference('text_component'))\r\n },\r\n 'show_item': {\r\n value: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { module: 'util::InventoryItem' } })),\r\n contents: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n id: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n tag: (0, 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: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n name: (0, core_1.Opt)(StringNode()),\r\n type: (0, core_1.Opt)(StringNode()),\r\n id: (0, core_1.Opt)(StringNode())\r\n })),\r\n contents: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n name: (0, 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: (0, core_1.Opt)(Reference('text_component_list'))\r\n };\r\n schemas.register('text_component_object', (0, core_1.Mod)((0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n translate: StringNode(),\r\n with: (0, 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: (0, core_1.ObjectNode)({\r\n score: (0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n selector: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } }),\r\n separator: (0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n nbt: StringNode({ validator: 'nbt_path' }),\r\n block: (0, core_1.Opt)(StringNode({ validator: 'vector', params: { dimension: 3, isInteger: true } })),\r\n entity: (0, core_1.Opt)(StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } })),\r\n storage: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$storage' } })),\r\n interpret: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n separator: (0, 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', (0, core_1.Mod)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n temperature: (0, core_1.NumberNode)(),\r\n downfall: (0, core_1.NumberNode)(),\r\n precipitation: StringNode({ enum: ['none', 'rain', 'snow'] }),\r\n temperature_modifier: (0, core_1.Opt)(StringNode({ enum: ['none', 'frozen'] })),\r\n category: StringNode({ enum: 'biome_category' }),\r\n creature_spawn_probability: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n effects: (0, core_1.ObjectNode)({\r\n sky_color: (0, core_1.NumberNode)({ color: true }),\r\n fog_color: (0, core_1.NumberNode)({ color: true }),\r\n water_color: (0, core_1.NumberNode)({ color: true }),\r\n water_fog_color: (0, core_1.NumberNode)({ color: true }),\r\n grass_color: (0, core_1.Opt)((0, core_1.NumberNode)({ color: true })),\r\n foliage_color: (0, core_1.Opt)((0, core_1.NumberNode)({ color: true })),\r\n grass_color_modifier: (0, core_1.Opt)(StringNode({ enum: ['none', 'dark_forest', 'swamp'] })),\r\n ambient_sound: (0, core_1.Opt)(StringNode()),\r\n mood_sound: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n sound: StringNode(),\r\n tick_delay: (0, core_1.NumberNode)({ integer: true }),\r\n block_search_extent: (0, core_1.NumberNode)({ integer: true }),\r\n offset: (0, core_1.NumberNode)()\r\n })),\r\n additions_sound: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n sound: StringNode(),\r\n tick_chance: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n })),\r\n music: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n sound: StringNode(),\r\n min_delay: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n max_delay: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n replace_current_music: (0, core_1.BooleanNode)()\r\n })),\r\n particle: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n options: (0, core_1.ObjectNode)({\r\n type: StringNode()\r\n }),\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n }))\r\n }),\r\n spawners: (0, 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 ] }), (0, core_1.Mod)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n weight: (0, core_1.NumberNode)({ integer: true }),\r\n minCount: (0, core_1.NumberNode)({ integer: true }),\r\n maxCount: (0, 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: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'entity_type' } }), (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n energy_budget: (0, core_1.NumberNode)(),\r\n charge: (0, 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: (0, core_1.MapNode)(StringNode({ enum: ['air', 'liquid'] }), (0, core_1.Mod)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_carver' } })), {\r\n default: () => ['minecraft:cave']\r\n })),\r\n features: (0, core_1.ListNode)((0, core_1.Mod)((0, 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: (0, Common_1.FloatProvider)(),\r\n shape: (0, core_1.ObjectNode)({\r\n distance_factor: (0, Common_1.FloatProvider)(),\r\n thickness: (0, Common_1.FloatProvider)(),\r\n width_smoothness: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n horizontal_radius_factor: (0, Common_1.FloatProvider)(),\r\n vertical_radius_default_factor: (0, core_1.NumberNode)(),\r\n vertical_radius_center_factor: (0, core_1.NumberNode)()\r\n })\r\n };\r\n const CaveConfig = {\r\n horizontal_radius_multiplier: (0, Common_1.FloatProvider)(),\r\n vertical_radius_multiplier: (0, Common_1.FloatProvider)(),\r\n floor_level: (0, Common_1.FloatProvider)({ min: -1, max: 1 }),\r\n };\r\n schemas.register('configured_carver', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/carver' } }),\r\n config: (0, core_1.ObjectNode)({\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n y: Reference('height_provider'),\r\n yScale: (0, Common_1.FloatProvider)(),\r\n lava_level: Reference('vertical_anchor'),\r\n debug_settings: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n debug_mode: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n air_state: (0, core_1.Opt)(Reference('block_state')),\r\n water_state: (0, core_1.Opt)(Reference('block_state')),\r\n lava_state: (0, core_1.Opt)(Reference('block_state')),\r\n barrier_state: (0, 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', (0, 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: (0, core_1.NumberNode)({ integer: true, min: 0 })\r\n },\r\n 'minecraft:count': {\r\n count: (0, Common_1.IntProvider)({ min: 0, max: 256 })\r\n },\r\n 'minecraft:count_on_every_layer': {\r\n count: (0, Common_1.IntProvider)({ min: 0, max: 256 })\r\n },\r\n 'minecraft:noise_threshold_count': {\r\n noise_level: (0, core_1.NumberNode)(),\r\n below_noise: (0, core_1.NumberNode)({ integer: true }),\r\n above_noise: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:noise_based_count': {\r\n noise_to_count_ratio: (0, core_1.NumberNode)({ integer: true }),\r\n noise_factor: (0, core_1.NumberNode)(),\r\n noise_offset: (0, core_1.Opt)((0, core_1.NumberNode)())\r\n },\r\n 'minecraft:environment_scan': {\r\n direction_of_search: StringNode({ enum: ['up', 'down'] }),\r\n max_steps: (0, core_1.NumberNode)({ integer: true, min: 1, max: 32 }),\r\n target_condition: Reference('block_predicate_worldgen'),\r\n allowed_search_condition: (0, 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: (0, Common_1.IntProvider)({ min: -16, max: 16 }),\r\n y_spread: (0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n max_inclusive: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:surface_water_depth_filter': {\r\n max_water_depth: (0, 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 = (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n processors: (0, 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', (0, core_1.Mod)((0, 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: (0, core_1.NumberNode)()\r\n },\r\n 'minecraft:block_ignore': {\r\n blocks: (0, core_1.ListNode)(Reference('block_state'))\r\n },\r\n 'minecraft:block_rot': {\r\n integrity: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:gravity': {\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n offset: (0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n position_predicate: (0, 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: (0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 255, integer: true })),\r\n max_dist: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 255, integer: true })),\r\n min_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n max_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 }))\r\n };\r\n schemas.register('pos_rule_test', (0, 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', (0, 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: (0, 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: (0, 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 = (0, 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 = (0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 1 })),\r\n xz_spread: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0 })),\r\n y_spread: (0, core_1.Opt)((0, 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: (0, Common_1.IntProvider)({ min: 0, max: 8 }),\r\n half_height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4 }),\r\n targets: (0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n };\r\n const TargetBlockState = (0, core_1.ObjectNode)({\r\n target: Reference('rule_test'),\r\n state: Reference('block_state')\r\n });\r\n const OreConfig = {\r\n size: (0, core_1.NumberNode)({ integer: true, min: 0, max: 64 }),\r\n discard_chance_on_air_exposure: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n targets: (0, core_1.ListNode)(TargetBlockState)\r\n };\r\n const VegetationPatchConfig = {\r\n surface: StringNode({ enum: 'cave_surface' }),\r\n depth: (0, Common_1.IntProvider)({ min: 1, max: 128 }),\r\n vertical_range: (0, core_1.NumberNode)({ integer: true, min: 1, max: 256 }),\r\n extra_bottom_block_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n extra_edge_column_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n vegetation_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n xz_radius: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature' } }),\r\n config: (0, core_1.ObjectNode)({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bamboo': {\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:basalt_columns': {\r\n reach: (0, Common_1.IntProvider)({ min: 0, max: 3 }),\r\n height: (0, 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: (0, core_1.BooleanNode)(),\r\n layers: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n height: (0, 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: (0, Common_1.IntProvider)({ min: 0, max: 16 }),\r\n rim_size: (0, 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: (0, core_1.NumberNode)({ integer: true, min: 1, max: 512 }),\r\n height: (0, Common_1.IntProvider)({ min: 0, max: 128 }),\r\n radius: (0, Common_1.IntProvider)({ min: 0, max: 128 }),\r\n max_stalagmite_stalactite_height_diff: (0, core_1.NumberNode)({ integer: true, min: 0, max: 64 }),\r\n height_deviation: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n dripstone_block_layer_thickness: (0, Common_1.IntProvider)({ min: 0, max: 128 }),\r\n density: (0, Common_1.FloatProvider)({ min: 0, max: 2 }),\r\n wetness: (0, Common_1.FloatProvider)({ min: 0, max: 2 }),\r\n chance_of_dripstone_column_at_max_distance_from_center: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n max_distance_from_edge_affecting_chance_of_dripstone_column: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n max_distance_from_center_affecting_height_bias: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 })\r\n },\r\n 'minecraft:end_gateway': {\r\n exact: (0, core_1.BooleanNode)(),\r\n exit: (0, core_1.Opt)(Reference('block_pos'))\r\n },\r\n 'minecraft:end_spike': {\r\n crystal_invulnerable: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n crystal_beam_target: (0, core_1.Opt)(Reference('block_pos')),\r\n spikes: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n centerX: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n centerZ: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n radius: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n height: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n guarded: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n }))\r\n },\r\n 'minecraft:fill_layer': {\r\n state: Reference('block_state'),\r\n height: (0, 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: (0, core_1.NumberNode)({ integer: true, min: 0, max: 7 }),\r\n fossil_structures: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$structure' } })),\r\n overlay_structures: (0, 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: (0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n filling: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n inner_layer: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n middle_layer: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n outer_layer: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n }),\r\n crack: (0, core_1.ObjectNode)({\r\n generate_crack_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n base_crack_size: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 5 })),\r\n crack_point_offset: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 10 })),\r\n }),\r\n noise_multiplier: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n use_potential_placements_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n use_alternate_layer0_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n placements_require_layer0_alternate: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n outer_wall_distance: (0, core_1.Opt)((0, Common_1.IntProvider)({ min: 1, max: 20 })),\r\n distribution_points: (0, core_1.Opt)((0, Common_1.IntProvider)({ min: 1, max: 20 })),\r\n point_offset: (0, core_1.Opt)((0, Common_1.IntProvider)({ min: 0, max: 10 })),\r\n min_gen_offset: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n max_gen_offset: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n invalid_blocks_threshold: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:glow_lichen': {\r\n search_range: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 1, max: 64, integer: true })),\r\n chance_of_spreading: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n can_place_on_floor: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n can_place_on_ceiling: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n can_place_on_wall: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n can_be_placed_on: (0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 1, max: 512 })),\r\n column_radius: (0, Common_1.IntProvider)({ min: 0, max: 60 }),\r\n height_scale: (0, Common_1.FloatProvider)({ min: 0, max: 20 }),\r\n max_column_radius_to_cave_height_ratio: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n stalactite_bluntness: (0, Common_1.FloatProvider)({ min: 0.1, max: 10 }),\r\n stalagmite_bluntness: (0, Common_1.FloatProvider)({ min: 0.1, max: 10 }),\r\n wind_speed: (0, Common_1.FloatProvider)({ min: 0, max: 2 }),\r\n min_radius_for_wind: (0, core_1.NumberNode)({ integer: true, min: 0, max: 100 }),\r\n min_bluntness_for_wind: (0, 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: (0, core_1.NumberNode)({ integer: true, min: 1 }),\r\n spread_height: (0, 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: (0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n chance_of_directional_spread: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n chance_of_spread_radius2: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n chance_of_spread_radius3: (0, core_1.Opt)((0, 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: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n chance: (0, 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: (0, core_1.ListNode)(TargetBlockState)\r\n },\r\n 'minecraft:root_system': {\r\n required_vertical_space_for_tree: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n root_radius: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n root_placement_attempts: (0, core_1.NumberNode)({ integer: true, min: 1, max: 256 }),\r\n root_column_max_height: (0, core_1.NumberNode)({ integer: true, min: 1, max: 4096 }),\r\n hanging_root_radius: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n hanging_roots_vertical_span: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 }),\r\n hanging_root_placement_attempts: (0, core_1.NumberNode)({ integer: true, min: 0, max: 256 }),\r\n allowed_vertical_water_for_tree: (0, 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: (0, Common_1.IntProvider)({ min: 0, max: 256 })\r\n },\r\n 'minecraft:seagrass': {\r\n probability: (0, 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: (0, core_1.ListNode)(PlacedFeature)\r\n },\r\n 'minecraft:spring_feature': {\r\n state: Reference('fluid_state'),\r\n rock_count: (0, core_1.NumberNode)({ integer: true }),\r\n hole_count: (0, core_1.NumberNode)({ integer: true }),\r\n requires_block_below: (0, core_1.BooleanNode)(),\r\n valid_blocks: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:tree': {\r\n ignore_vines: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n force_dirt: (0, core_1.Opt)((0, 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: (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/trunk_placer_type' } }),\r\n base_height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 32 }),\r\n height_rand_a: (0, core_1.NumberNode)({ integer: true, min: 0, max: 24 }),\r\n height_rand_b: (0, 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: (0, Common_1.IntProvider)({ min: 1, max: 64 }),\r\n min_height_for_leaves: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 1 }))\r\n }\r\n }\r\n }, { context: 'trunk_placer' }),\r\n foliage_placer: (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/foliage_placer_type' } }),\r\n radius: (0, Common_1.IntProvider)({ min: 0, max: 16 }),\r\n offset: (0, 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: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:bush_foliage_placer': {\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:fancy_foliage_placer': {\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:jungle_foliage_placer': {\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:mega_pine_foliage_placer': {\r\n crown_height: (0, Common_1.IntProvider)({ min: 0, max: 24 })\r\n },\r\n 'minecraft:pine_foliage_placer': {\r\n height: (0, Common_1.IntProvider)({ min: 0, max: 24 })\r\n },\r\n 'minecraft:random_spread_foliage_placer': {\r\n foliage_height: (0, Common_1.IntProvider)({ min: 1, max: 512 }),\r\n leaf_placement_attempts: (0, core_1.NumberNode)({ integer: true, min: 0, max: 256 })\r\n },\r\n 'minecraft:spruce_foliage_placer': {\r\n trunk_height: (0, Common_1.IntProvider)({ min: 0, max: 24 })\r\n }\r\n }\r\n }, { context: 'foliage_placer', disableSwitchContext: true }),\r\n decorators: (0, core_1.ListNode)((0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:cocoa': {\r\n probability: (0, 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: (0, core_1.NumberNode)({ integer: true, min: 1 }),\r\n spread_height: (0, core_1.NumberNode)({ integer: true, min: 1 }),\r\n max_height: (0, core_1.NumberNode)({ integer: true, min: 1 }),\r\n },\r\n 'minecraft:underwater_magma': {\r\n floor_search_range: (0, core_1.NumberNode)({ integer: true, min: 0, max: 512 }),\r\n placement_radius_around_floor: (0, core_1.NumberNode)({ integer: true, min: 0, max: 64 }),\r\n placement_probability_per_valid_position: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n feature: ConfiguredFeature,\r\n placement: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature_size_type' } }),\r\n min_clipped_height: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 81 })),\r\n lower_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })),\r\n upper_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 }))\r\n },\r\n 'minecraft:three_layers_feature_size': {\r\n limit: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 80 })),\r\n upper_limit: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 80 })),\r\n lower_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })),\r\n middle_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })),\r\n upper_size: (0, core_1.Opt)((0, 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: (0, core_1.NumberNode)({ integer: true }),\r\n noise: Reference('noise_parameters'),\r\n scale: (0, core_1.Mod)((0, core_1.NumberNode)({ min: Number.MIN_VALUE }), { default: () => 1 })\r\n };\r\n schemas.register('block_state_provider', (0, core_1.Mod)((0, 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: (0, Common_1.InclusiveRange)({ integer: true, min: 1, max: 64 }),\r\n slow_noise: Reference('noise_parameters'),\r\n slow_scale: (0, core_1.Mod)((0, core_1.NumberNode)({ min: Number.MIN_VALUE }), { default: () => 1 }),\r\n states: (0, core_1.ListNode)(Reference('block_state'))\r\n },\r\n 'minecraft:noise_threshold_provider': {\r\n ...NoiseProvider,\r\n threshold: (0, core_1.NumberNode)({ min: -1, max: 1 }),\r\n high_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n default_state: Reference('block_state'),\r\n low_states: (0, core_1.ListNode)(Reference('block_state')),\r\n high_states: (0, core_1.ListNode)(Reference('block_state'))\r\n },\r\n 'minecraft:noise_provider': {\r\n ...NoiseProvider,\r\n states: (0, core_1.ListNode)(Reference('block_state'))\r\n },\r\n 'minecraft:randomized_int_state_provider': {\r\n property: StringNode(),\r\n values: (0, 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: (0, core_1.ListNode)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n weight: (0, 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: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.NumberNode)({ integer: true, min: -16, max: 16 }), { minLength: 3, maxLength: 3 }))\r\n };\r\n schemas.register('block_predicate_worldgen', (0, core_1.Mod)((0, 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: (0, core_1.ListNode)(Reference('block_predicate_worldgen'))\r\n },\r\n 'minecraft:any_of': {\r\n predicates: (0, 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: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:matching_fluids': {\r\n ...Offset,\r\n fluids: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n sea_level: (0, core_1.NumberNode)({ integer: true }),\r\n disable_mob_generation: (0, core_1.BooleanNode)(),\r\n noise_caves_enabled: (0, core_1.BooleanNode)(),\r\n noodle_caves_enabled: (0, core_1.BooleanNode)(),\r\n aquifers_enabled: (0, core_1.BooleanNode)(),\r\n ore_veins_enabled: (0, core_1.BooleanNode)(),\r\n legacy_random_source: (0, core_1.BooleanNode)(),\r\n default_block: Reference('block_state'),\r\n default_fluid: Reference('block_state'),\r\n noise: (0, core_1.ObjectNode)({\r\n min_y: (0, core_1.NumberNode)({ integer: true, min: -2048, max: 2047 }),\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4096 }),\r\n size_horizontal: (0, core_1.NumberNode)({ integer: true }),\r\n size_vertical: (0, core_1.NumberNode)({ integer: true }),\r\n island_noise_override: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n amplified: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n large_biomes: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n sampling: (0, core_1.ObjectNode)({\r\n xz_scale: (0, core_1.NumberNode)(),\r\n y_scale: (0, core_1.NumberNode)(),\r\n xz_factor: (0, core_1.NumberNode)(),\r\n y_factor: (0, 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', (0, core_1.ObjectNode)({\r\n target: (0, core_1.NumberNode)(),\r\n size: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n offset: (0, core_1.NumberNode)({ integer: true })\r\n }));\r\n schemas.register('generator_structures', (0, core_1.ObjectNode)({\r\n stronghold: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n distance: (0, core_1.NumberNode)({ integer: true, min: 0, max: 1023 }),\r\n spread: (0, core_1.NumberNode)({ integer: true, min: 0, max: 1023 }),\r\n count: (0, core_1.NumberNode)({ integer: true, min: 1, max: 4095 })\r\n })),\r\n structures: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }), (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n spacing: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4096 }),\r\n separation: (0, core_1.Mod)((0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n height: (0, 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', (0, core_1.Mod)((0, 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', (0, core_1.Mod)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'number',\r\n node: (0, core_1.NumberNode)()\r\n },\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)({\r\n coordinate: (0, core_1.Mod)(StringNode({ enum: ['continents', 'erosion', 'weirdness', 'ridges'] }), { default: () => 'continents' }),\r\n points: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n location: (0, core_1.NumberNode)(),\r\n derivative: (0, 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: (0, core_1.NumberNode)({ integer: true })\r\n };\r\n schemas.register('configured_structure_feature', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }),\r\n config: (0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:mineshaft': {\r\n type: StringNode({ enum: ['normal', 'mesa'] }),\r\n probability: (0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n cluster_probability: (0, 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: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, 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: (0, 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', (0, core_1.Mod)((0, 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: (0, 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: (0, core_1.NumberNode)(),\r\n max_threshold: (0, 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: (0, core_1.NumberNode)({ integer: true }),\r\n surface_type: StringNode({ enum: 'cave_surface' }),\r\n add_surface_depth: (0, core_1.BooleanNode)(),\r\n add_surface_secondary_depth: (0, 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: (0, core_1.NumberNode)({ integer: true }),\r\n surface_depth_multiplier: (0, core_1.NumberNode)({ integer: true, min: -20, max: 20 }),\r\n add_stone_depth: (0, core_1.BooleanNode)()\r\n },\r\n 'minecraft:y_above': {\r\n anchor: Reference('vertical_anchor'),\r\n surface_depth_multiplier: (0, core_1.NumberNode)({ integer: true, min: -20, max: 20 }),\r\n add_stone_depth: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n name: StringNode(),\r\n fallback: StringNode(),\r\n elements: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n weight: (0, 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', (0, core_1.Mod)((0, 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: (0, 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 (0, ProcessorList_1.initProcessorListSchemas)(schemas, collections);\r\n (0, Biome_1.initBiomeSchemas)(schemas, collections);\r\n (0, Carver_1.initCarverSchemas)(schemas, collections);\r\n (0, Decorator_1.initDecoratorSchemas)(schemas, collections);\r\n (0, Feature_1.initFeatureSchemas)(schemas, collections);\r\n (0, NoiseSettings_1.initNoiseSettingsSchemas)(schemas, collections);\r\n (0, StructureFeature_1.initStructureFeatureSchemas)(schemas, collections);\r\n (0, SurfaceRule_1.initSurfaceRuleSchemas)(schemas, collections);\r\n (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n generate_features: (0, core_1.BooleanNode)(),\r\n bonus_chest: (0, core_1.BooleanNode)(),\r\n seed: (0, core_1.NumberNode)({ integer: true }),\r\n dimensions: (0, 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 (0, Common_1.initCommonSchemas)(schemas, collections);\r\n (0, Advancement_1.initAdvancementSchemas)(schemas, collections);\r\n (0, assets_1.initAssetsSchemas)(schemas, collections);\r\n (0, Condition_1.initConditionSchemas)(schemas, collections);\r\n (0, DimensionType_1.initDimensionTypeSchemas)(schemas, collections);\r\n (0, Dimension_1.initDimensionSchemas)(schemas, collections);\r\n (0, ItemModifier_1.initItemModifierSchemas)(schemas, collections);\r\n (0, LootTable_1.initLootTableSchemas)(schemas, collections);\r\n (0, PackMcmeta_1.initPackMcmetaSchemas)(schemas, collections);\r\n (0, Predicates_1.initPredicatesSchemas)(schemas, collections);\r\n (0, Recipe_1.initRecipeSchemas)(schemas, collections);\r\n (0, Tags_1.initTagsSchemas)(schemas, collections);\r\n (0, TextComponent_1.initTextComponentSchemas)(schemas, collections);\r\n (0, worldgen_1.initWorldgenSchemas)(schemas, collections);\r\n (0, 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 var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\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.prototype.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 = exports.lootContext = 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 (0, 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 (0, 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 collections.register('cat_texture', [\r\n 'textures/entity/cat/tabby.png',\r\n 'textures/entity/cat/black.png',\r\n 'textures/entity/cat/red.png',\r\n 'textures/entity/cat/siamese.png',\r\n 'textures/entity/cat/british_shorthair.png',\r\n 'textures/entity/cat/calico.png',\r\n 'textures/entity/cat/persian.png',\r\n 'textures/entity/cat/ragdoll.png',\r\n 'textures/entity/cat/white.png',\r\n 'textures/entity/cat/jellie.png',\r\n 'textures/entity/cat/all_black.png'\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 = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n node: (0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n display: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n icon: (0, core_1.ObjectNode)({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n nbt: (0, 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: (0, core_1.Opt)(StringNode()),\r\n frame: (0, core_1.Opt)(StringNode({ enum: ['task', 'challenge', 'goal'] })),\r\n show_toast: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n announce_to_chat: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n hidden: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$advancement' } })),\r\n criteria: (0, core_1.MapNode)(StringNode(), Reference('advancement_criteria')),\r\n requirements: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ListNode)(StringNode() // TODO: add validation\r\n ))),\r\n rewards: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n function: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$function' } })),\r\n loot: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$loot_table' } }))),\r\n recipes: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$recipe' } }))),\r\n experience: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n trigger: StringNode({ validator: 'resource', params: { pool: collections.get('advancement_trigger') } }),\r\n conditions: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n player: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n num_bees_inside: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n item: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'potion' } }))\r\n },\r\n 'minecraft:changed_dimension': {\r\n from: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n to: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$dimension' } }))\r\n },\r\n 'minecraft:channeled_lightning': {\r\n victims: (0, core_1.Opt)((0, 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: (0, 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: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), (0, core_1.ObjectNode)({\r\n amplifier: Reference('int_bounds'),\r\n duration: Reference('int_bounds')\r\n }))),\r\n source: (0, core_1.Opt)(EntityPredicate)\r\n },\r\n 'minecraft:enter_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:entity_hurt_player': {\r\n damage: (0, core_1.Opt)(Reference('damage_predicate'))\r\n },\r\n 'minecraft:entity_killed_player': {\r\n entity: EntityPredicate,\r\n killing_blow: (0, core_1.Opt)(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:fall_from_height': {\r\n start_position: (0, core_1.Opt)(Reference('location_predicate')),\r\n distance: (0, core_1.Opt)(Reference('distance_predicate'))\r\n },\r\n 'minecraft:filled_bucket': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:fishing_rod_hooked': {\r\n entity: EntityPredicate,\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:hero_of_the_village': {\r\n location: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:inventory_changed': {\r\n slots: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:item_used_on_block': {\r\n item: (0, core_1.Opt)(Reference('item_predicate')),\r\n location: (0, 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: (0, core_1.Opt)((0, core_1.ListNode)(EntityPredicate))\r\n },\r\n 'minecraft:levitation': {\r\n distance: (0, 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: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:nether_travel': {\r\n start_position: (0, core_1.Opt)(Reference('location_predicate')),\r\n distance: (0, core_1.Opt)(Reference('distance_predicate')),\r\n },\r\n 'minecraft:placed_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })),\r\n item: (0, core_1.Opt)(Reference('item_predicate')),\r\n location: (0, 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: (0, core_1.Opt)(Reference('damage_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_interacted_with_entity': {\r\n item: (0, 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: (0, 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: (0, core_1.Opt)(Reference('location_predicate')),\r\n distance: (0, core_1.Opt)(Reference('distance_predicate'))\r\n },\r\n 'minecraft:slept_in_bed': {\r\n location: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:slide_down_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:shot_crossbow': {\r\n item: (0, 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: EntityPredicate,\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:used_ender_eye': {\r\n distance: (0, core_1.Opt)(Reference('float_bounds'))\r\n },\r\n 'minecraft:used_totem': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:using_item': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:villager_trade': {\r\n villager: EntityPredicate,\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:voluntary_exile': {\r\n location: (0, 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) => (0, core_1.ListNode)((0, core_1.NumberNode)({ min, max }), { minLength: length, maxLength: length });\r\n const Texture = (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n parent: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$model' } })),\r\n ambientocclusion: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n gui_light: (0, core_1.Opt)(StringNode({ enum: 'gui_light' })),\r\n textures: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), Texture)),\r\n elements: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n from: Vec(3, -16, 32),\r\n to: Vec(3, -16, 32),\r\n rotation: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n origin: Vec(3),\r\n axis: StringNode({ enum: 'axis' }),\r\n angle: (0, core_1.NumberEnum)({ values: [-45, -22.5, 0, 22.5, 45] }),\r\n rescale: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n })),\r\n shade: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n faces: (0, core_1.MapNode)(StringNode({ enum: 'direction' }), (0, core_1.ObjectNode)({\r\n texture: Texture,\r\n uv: (0, core_1.Opt)(Vec(4)),\r\n cullface: (0, core_1.Opt)(StringNode({ enum: 'direction' })),\r\n rotation: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n tintindex: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n }))\r\n }, { context: 'model_element' }))),\r\n display: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ enum: 'display_position' }), (0, 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: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n predicate: (0, core_1.MapNode)(StringNode({ enum: 'item_model_predicates' }), (0, 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', (0, core_1.Mod)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'variants',\r\n match: (v) => v.variants !== undefined,\r\n node: (0, core_1.ObjectNode)({\r\n variants: (0, 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: (0, core_1.ObjectNode)({\r\n multipart: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n when: (0, 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: (0, core_1.Opt)((0, core_1.NumberEnum)({ integer: true, values: [0, 90, 180, 270] })),\r\n y: (0, core_1.Opt)((0, core_1.NumberEnum)({ integer: true, values: [0, 90, 180, 270] })),\r\n uvlock: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n };\r\n schemas.register('model_variant', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n node: (0, 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: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n ...VariantChildren,\r\n weight: (0, core_1.Opt)((0, 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', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n priority: -1,\r\n match: () => true,\r\n node: (0, 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: (0, core_1.ObjectNode)({\r\n OR: (0, 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 (0, BlockDefinition_1.initBlockDefinitionSchemas)(schemas, collections);\r\n (0, 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 sea_level: 63,\r\n ore_veins_enabled: true,\r\n disable_mob_generation: false,\r\n aquifers_enabled: true,\r\n legacy_random_source: 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: -64,\r\n height: 384,\r\n size_horizontal: 1,\r\n size_vertical: 2,\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 noise_router: {\r\n barrier: 0,\r\n fluid_level_floodedness: 0,\r\n fluid_level_spread: 0,\r\n lava: 0,\r\n temperature: 0,\r\n vegetation: 0,\r\n continents: 0,\r\n erosion: 0,\r\n depth: 0,\r\n ridges: 0,\r\n initial_density_without_jaggedness: 0,\r\n final_density: {\r\n type: 'minecraft:interpolated',\r\n argument: 'minecraft:overworld/base_3d_noise'\r\n },\r\n vein_toggle: 0,\r\n vein_ridged: 0,\r\n vein_gap: 0,\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n Properties: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'fluid' } }),\r\n Properties: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ListNode)((0, core_1.NumberNode)({ integer: true }), { minLength: 3, maxLength: 3 }), {\r\n default: () => [0, 0, 0]\r\n }));\r\n const Bounds = (integer) => (0, core_1.Opt)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'number',\r\n node: (0, 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: (0, core_1.ObjectNode)({\r\n min: (0, core_1.Opt)((0, core_1.NumberNode)({ integer })),\r\n max: (0, core_1.Opt)((0, 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', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)({\r\n min: (0, core_1.Opt)(Reference('number_provider')),\r\n max: (0, core_1.Opt)(Reference('number_provider'))\r\n })\r\n },\r\n {\r\n type: 'number',\r\n node: (0, 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] = (0, 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 = (0, core_1.ObjectNode)({\r\n type: (0, core_1.Mod)((0, 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 (0, 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: (0, 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: (0, core_1.Opt)((0, 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: (0, 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: (0, 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: (0, core_1.NumberNode)(config)\r\n },\r\n 'minecraft:uniform': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)(config),\r\n max_exclusive: (0, core_1.NumberNode)(config)\r\n })\r\n },\r\n 'minecraft:clamped_normal': {\r\n value: (0, core_1.ObjectNode)({\r\n min: (0, core_1.NumberNode)(),\r\n max: (0, core_1.NumberNode)(),\r\n mean: (0, core_1.NumberNode)(),\r\n deviation: (0, core_1.NumberNode)()\r\n })\r\n },\r\n 'minecraft:trapezoid': {\r\n value: (0, core_1.ObjectNode)({\r\n min: (0, core_1.NumberNode)(),\r\n max: (0, core_1.NumberNode)(),\r\n plateau: (0, core_1.NumberNode)()\r\n })\r\n }\r\n });\r\n schemas.register('float_provider', (0, 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: (0, core_1.NumberNode)({ integer: true, ...config })\r\n },\r\n 'minecraft:uniform': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:biased_to_bottom': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:clamped': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n source: Reference('int_provider')\r\n })\r\n },\r\n 'minecraft:clamped_normal': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n mean: (0, core_1.NumberNode)(),\r\n deviation: (0, core_1.NumberNode)()\r\n })\r\n },\r\n 'minecraft:weighted_list': {\r\n distribution: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n weight: (0, core_1.NumberNode)({ integer: true }),\r\n data: Reference('int_provider'),\r\n }))\r\n }\r\n });\r\n schemas.register('int_provider', (0, exports.IntProvider)());\r\n schemas.register('vertical_anchor', (0, 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: (0, core_1.ObjectNode)({\r\n [t]: (0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:weighted_list': {\r\n distribution: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n weight: (0, core_1.NumberNode)({ integer: true }),\r\n data: Reference('int_provider'),\r\n }))\r\n }\r\n }));\r\n exports.InclusiveRange = (config) => (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)(config),\r\n max_inclusive: (0, core_1.NumberNode)(config)\r\n }, { context: 'range' });\r\n schemas.register('noise_parameters', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n firstOctave: (0, core_1.NumberNode)({ integer: true }),\r\n amplitudes: (0, core_1.ListNode)((0, 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) => (0, 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: (0, core_1.ListNode)(config.inlineSchema\r\n ? (0, 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: (0, 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: (0, 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: (0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:location_check': {\r\n offsetX: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n offsetY: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n offsetZ: (0, core_1.Opt)((0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_chance_with_looting': {\r\n chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n looting_multiplier: (0, 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: (0, core_1.ListNode)((0, core_1.NumberNode)({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:time_check': {\r\n value: Reference('int_range'),\r\n period: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n thundering: (0, core_1.Opt)((0, 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: (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n bonusMultiplier: (0, core_1.Mod)((0, core_1.NumberNode)(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:uniform_bonus_count'\r\n }),\r\n extra: (0, core_1.Mod)((0, core_1.NumberNode)(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n }),\r\n probability: (0, core_1.Mod)((0, 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: (0, core_1.ListNode)((0, 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: (0, core_1.ListNode)(StringNode({ validator: 'block_state_key', params: { id: ['pop', 'pop', { push: 'block' }] } }))\r\n },\r\n 'minecraft:enchant_randomly': {\r\n enchantments: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:exploration_map': {\r\n destination: (0, core_1.Opt)((0, exports.Tag)({ resource: '$worldgen/configured_structure_feature' })),\r\n decoration: (0, core_1.Opt)(StringNode({ enum: 'map_decoration' })),\r\n zoom: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n search_radius: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n skip_existing_chunks: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:set_attributes': {\r\n modifiers: (0, core_1.ListNode)(Reference('attribute_modifier'))\r\n },\r\n 'minecraft:set_banner_pattern': {\r\n patterns: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n pattern: StringNode({ enum: 'banner_pattern' }),\r\n color: StringNode({ enum: 'dye_color' })\r\n })),\r\n append: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_contents': {\r\n type: StringNode({ validator: 'resource', params: { pool: 'block_entity_type' } }),\r\n entries: (0, core_1.ListNode)(Reference('loot_entry'))\r\n },\r\n 'minecraft:set_count': {\r\n count: Reference('number_provider'),\r\n add: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_damage': {\r\n damage: Reference('number_provider'),\r\n add: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_enchantments': {\r\n enchantments: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'enchantment' } }), Reference('number_provider')),\r\n add: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:set_lore': {\r\n entity: (0, core_1.Opt)(entitySourceNode),\r\n lore: (0, core_1.ListNode)(Reference('text_component')),\r\n replace: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_name': {\r\n entity: (0, core_1.Opt)(entitySourceNode),\r\n name: (0, 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: (0, core_1.Opt)((0, core_1.ListNode)((0, 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) => (0, 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) => (0, core_1.ObjectOrPreset)(StringNode({ validator: 'resource', params: { pool: '$worldgen/noise_settings' } }), node, {\r\n 'minecraft:overworld': exports.DefaultNoiseSettings,\r\n 'minecraft:nether': {\r\n sea_level: 32,\r\n ore_veins_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n legacy_random_source: true,\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 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 noise_router: {\r\n barrier: 0,\r\n fluid_level_floodedness: 0,\r\n fluid_level_spread: 0,\r\n lava: 0,\r\n temperature: 0,\r\n vegetation: 0,\r\n continents: 0,\r\n erosion: 0,\r\n depth: 0,\r\n ridges: 0,\r\n initial_density_without_jaggedness: 0,\r\n final_density: {\r\n type: 'minecraft:interpolated',\r\n argument: 'minecraft:overworld/base_3d_noise'\r\n },\r\n vein_toggle: 0,\r\n vein_ridged: 0,\r\n vein_gap: 0,\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n }\r\n },\r\n 'minecraft:end': {\r\n sea_level: 0,\r\n ore_veins_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n legacy_random_source: true,\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 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 noise_router: {\r\n barrier: 0,\r\n fluid_level_floodedness: 0,\r\n fluid_level_spread: 0,\r\n lava: 0,\r\n temperature: 0,\r\n vegetation: 0,\r\n continents: 0,\r\n erosion: 0,\r\n depth: 0,\r\n ridges: 0,\r\n initial_density_without_jaggedness: 0,\r\n final_density: {\r\n type: 'minecraft:interpolated',\r\n argument: 'minecraft:overworld/base_3d_noise'\r\n },\r\n vein_toggle: 0,\r\n vein_ridged: 0,\r\n vein_gap: 0,\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n }\r\n },\r\n 'minecraft:amplified': {\r\n sea_level: 63,\r\n ore_veins_enabled: true,\r\n disable_mob_generation: false,\r\n aquifers_enabled: true,\r\n legacy_random_source: 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: -64,\r\n height: 384,\r\n size_horizontal: 1,\r\n size_vertical: 2,\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 noise_router: {\r\n barrier: 0,\r\n fluid_level_floodedness: 0,\r\n fluid_level_spread: 0,\r\n lava: 0,\r\n temperature: 0,\r\n vegetation: 0,\r\n continents: 0,\r\n erosion: 0,\r\n depth: 0,\r\n ridges: 0,\r\n initial_density_without_jaggedness: 0,\r\n final_density: {\r\n type: 'minecraft:interpolated',\r\n argument: 'minecraft:overworld/base_3d_noise'\r\n },\r\n vein_toggle: 0,\r\n vein_ridged: 0,\r\n vein_gap: 0,\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n },\r\n },\r\n 'minecraft:caves': {\r\n sea_level: 32,\r\n ore_veins_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n legacy_random_source: 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: 0,\r\n height: 128,\r\n size_horizontal: 1,\r\n size_vertical: 2,\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 noise_router: {\r\n barrier: 0,\r\n fluid_level_floodedness: 0,\r\n fluid_level_spread: 0,\r\n lava: 0,\r\n temperature: 0,\r\n vegetation: 0,\r\n continents: 0,\r\n erosion: 0,\r\n depth: 0,\r\n ridges: 0,\r\n initial_density_without_jaggedness: 0,\r\n final_density: {\r\n type: 'minecraft:interpolated',\r\n argument: 'minecraft:overworld/base_3d_noise'\r\n },\r\n vein_toggle: 0,\r\n vein_ridged: 0,\r\n vein_gap: 0,\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n }\r\n },\r\n 'minecraft:floating_islands': {\r\n sea_level: 0,\r\n ore_veins_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n legacy_random_source: 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: 0,\r\n height: 128,\r\n size_horizontal: 2,\r\n size_vertical: 1,\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 noise_router: {\r\n barrier: 0,\r\n fluid_level_floodedness: 0,\r\n fluid_level_spread: 0,\r\n lava: 0,\r\n temperature: 0,\r\n vegetation: 0,\r\n continents: 0,\r\n erosion: 0,\r\n depth: 0,\r\n ridges: 0,\r\n initial_density_without_jaggedness: 0,\r\n final_density: {\r\n type: 'minecraft:interpolated',\r\n argument: 'minecraft:overworld/base_3d_noise'\r\n },\r\n vein_toggle: 0,\r\n vein_ridged: 0,\r\n vein_gap: 0,\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\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', (0, core_1.ObjectOrList)(Reference('condition'), { choiceContext: 'condition' }));\r\n schemas.register('condition', (0, core_1.Mod)((0, 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]: (0, 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 StructureSet = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'string',\r\n priority: 1,\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/structure_set' } }),\r\n change: () => undefined\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('structure_set'),\r\n change: () => ({})\r\n }\r\n ], { choiceContext: 'structure_set' });\r\n schemas.register('dimension', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: (0, Common_1.DimensionTypePresets)(Reference('dimension_type')),\r\n generator: (0, 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: (0, core_1.NumberNode)({ integer: true }),\r\n settings: (0, Common_1.NoiseSettingsPresets)(Reference('noise_settings')),\r\n biome_source: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: ['minecraft:overworld', 'minecraft:nether'] } })),\r\n biomes: (0, core_1.Mod)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 62 })),\r\n biomes: (0, Common_1.Tag)({ resource: '$worldgen/biome' })\r\n },\r\n 'minecraft:the_end': {\r\n seed: (0, core_1.NumberNode)({ integer: true })\r\n }\r\n }\r\n }, { category: 'predicate', disableSwitchContext: true })\r\n },\r\n 'minecraft:flat': {\r\n settings: (0, core_1.ObjectNode)({\r\n biome: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n lakes: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n features: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n layers: (0, core_1.ListNode)(Reference('generator_layer')),\r\n structure_overrides: (0, core_1.ListNode)(StructureSet)\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 = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'number',\r\n node: (0, 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: (0, core_1.ListNode)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }),\r\n parameters: (0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n ultrawarm: (0, core_1.BooleanNode)(),\r\n natural: (0, core_1.BooleanNode)(),\r\n piglin_safe: (0, core_1.BooleanNode)(),\r\n respawn_anchor_works: (0, core_1.BooleanNode)(),\r\n bed_works: (0, core_1.BooleanNode)(),\r\n has_raids: (0, core_1.BooleanNode)(),\r\n has_skylight: (0, core_1.BooleanNode)(),\r\n has_ceiling: (0, core_1.BooleanNode)(),\r\n coordinate_scale: (0, core_1.NumberNode)({ min: 0.00001, max: 30000000 }),\r\n ambient_light: (0, core_1.NumberNode)(),\r\n fixed_time: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n logical_height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4064 }),\r\n effects: (0, 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: (0, core_1.NumberNode)({ integer: true, min: -2032, max: 2031 }),\r\n height: (0, 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', (0, core_1.ObjectOrList)(Reference('function'), { choiceContext: 'function' }));\r\n const conditions = {\r\n conditions: (0, core_1.Opt)((0, core_1.ListNode)(Reference('condition')))\r\n };\r\n schemas.register('function', (0, core_1.Mod)((0, 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]: (0, 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: (0, core_1.Opt)((0, core_1.ListNode)(Reference('loot_condition')))\r\n };\r\n const functionsAndConditions = {\r\n functions: (0, core_1.Opt)((0, 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 (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: (0, core_1.Opt)(StringNode({ validator: \"resource\", params: { pool: collections.get('loot_context_type') } })),\r\n pools: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n rolls: Reference('number_provider'),\r\n bonus_rolls: (0, core_1.Opt)(Reference('number_provider')),\r\n entries: (0, 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: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'loot_pool_entry_type' } }),\r\n weight: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true, min: 1 }), weightMod)),\r\n quality: (0, core_1.Opt)((0, core_1.Mod)((0, 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: (0, 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: (0, 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: (0, 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: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n function: functionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'function' }],\r\n [core_1.Case]: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n condition: conditionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: (0, 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', (0, core_1.Mod)((0, 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: (0, 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 = 9;\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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n pack: (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n pack_format: (0, core_1.Mod)((0, 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: (0, 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 = (0, 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: (0, core_1.NumberNode)(),\r\n change: v => (typeof v === 'string') ? parseInt(v) : 0\r\n },\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)({\r\n min: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n max: (0, core_1.Opt)((0, 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: (0, core_1.BooleanNode)(),\r\n change: v => v === 'true' || v === 1\r\n }\r\n ]);\r\n schemas.register('item_predicate', (0, core_1.ObjectNode)({\r\n items: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'item' } }))),\r\n tag: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'potion' } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } })),\r\n enchantments: (0, core_1.Opt)((0, core_1.ListNode)(Reference('enchantment_predicate')))\r\n }, { context: 'item' }));\r\n schemas.register('enchantment_predicate', (0, core_1.ObjectNode)({\r\n enchantment: (0, 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', (0, core_1.ObjectNode)({\r\n blocks: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'block' } }))),\r\n tag: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$tag/block' } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block', id: ['pop', { push: 'block' }] } } })),\r\n state: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n fluid: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'fluid' } })),\r\n tag: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$tag/fluid' } })),\r\n state: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), StateChoice))\r\n }, { context: 'fluid' }));\r\n schemas.register('location_predicate', (0, core_1.ObjectNode)({\r\n position: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n feature: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_structure_feature' } })),\r\n dimension: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n light: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n light: Reference('int_bounds')\r\n })),\r\n smokey: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n block: (0, core_1.Opt)(Reference('block_predicate')),\r\n fluid: (0, core_1.Opt)(Reference('fluid_predicate'))\r\n }, { context: 'location' }));\r\n schemas.register('statistic_predicate', (0, 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', (0, core_1.ObjectNode)({\r\n gamemode: (0, core_1.Opt)(StringNode({ enum: 'gamemode' })),\r\n level: Reference('int_bounds'),\r\n advancements: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: '$advancement' } }), (0, core_1.ChoiceNode)([\r\n { type: 'boolean', node: (0, core_1.BooleanNode)(), change: _ => true },\r\n {\r\n type: 'object', node: (0, core_1.MapNode)(StringNode(), (0, core_1.BooleanNode)())\r\n }\r\n ]))),\r\n recipes: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: '$recipe' } }), (0, core_1.BooleanNode)())),\r\n stats: (0, core_1.Opt)((0, core_1.ListNode)(Reference('statistic_predicate'))),\r\n looking_at: (0, core_1.Opt)(Reference('entity_predicate'))\r\n }, { context: 'player' }));\r\n schemas.register('status_effect_predicate', (0, core_1.ObjectNode)({\r\n amplifier: Reference('int_bounds'),\r\n duration: Reference('int_bounds'),\r\n ambient: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n visible: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n }, { context: 'status_effect' }));\r\n schemas.register('distance_predicate', (0, 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', (0, core_1.ObjectNode)({\r\n type: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'entity_type', allowTag: true } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:entity', id: ['pop', { push: 'type' }] } } })),\r\n team: (0, core_1.Opt)(StringNode({ validator: 'team' })),\r\n location: (0, core_1.Opt)(Reference('location_predicate')),\r\n stepping_on: (0, core_1.Opt)(Reference('location_predicate')),\r\n distance: (0, core_1.Opt)(Reference('distance_predicate')),\r\n flags: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n is_on_fire: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_sneaking: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_sprinting: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_swimming: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_baby: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n })),\r\n equipment: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ enum: 'slot' }), Reference('item_predicate'))),\r\n player: (0, core_1.Opt)(Reference('player_predicate')),\r\n vehicle: (0, core_1.Opt)(Reference('entity_predicate')),\r\n passenger: (0, core_1.Opt)(Reference('entity_predicate')),\r\n targeted_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n lightning_bolt: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n blocks_set_on_fire: (0, core_1.Opt)(Reference('int_bounds')),\r\n entity_struck: (0, core_1.Opt)(Reference('entity_predicate'))\r\n })),\r\n fishing_hook: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n in_open_water: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n })),\r\n catType: (0, core_1.Opt)(StringNode({ enum: 'cat_texture' })),\r\n effects: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n is_explosion: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_fire: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_magic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_projectile: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_lightning: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_armor: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_invulnerability: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_magic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n source_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n direct_entity: (0, core_1.Opt)(Reference('entity_predicate'))\r\n }, { context: 'damage_source' }));\r\n schemas.register('damage_predicate', (0, core_1.ObjectNode)({\r\n dealt: Reference('float_bounds'),\r\n taken: Reference('float_bounds'),\r\n blocked: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n source_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n type: (0, 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', (0, core_1.Mod)((0, 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: (0, core_1.Opt)(StringNode({ enum: 'recipe_group', additional: true })),\r\n pattern: (0, core_1.ListNode)(StringNode()),\r\n key: (0, 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: (0, core_1.Opt)(StringNode()),\r\n ingredients: (0, core_1.ListNode)(Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:smelting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 200 }))\r\n },\r\n 'minecraft:blasting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:smoking': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:campfire_cooking': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:stonecutting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:smithing': {\r\n group: (0, 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', (0, core_1.Mod)((0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n item: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.Opt)((0, core_1.Mod)((0, 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) => (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n replace: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n values: (0, core_1.ListNode)((0, 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: (0, core_1.ObjectNode)({\r\n id: StringNode({ validator: 'resource', params: { pool: type, allowTag: true, allowUnknown: true } }),\r\n required: (0, 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 schemas.register('advancement_tag', TagBase('$advancement'));\r\n schemas.register('dimension_tag', TagBase('$dimension'));\r\n schemas.register('dimension_type_tag', TagBase('$dimension_type'));\r\n schemas.register('function_tag', TagBase('$function'));\r\n schemas.register('item_modifier_tag', TagBase('$item_modifier'));\r\n schemas.register('loot_table_tag', TagBase('$loot_table'));\r\n schemas.register('predicate_tag', TagBase('$predicate'));\r\n schemas.register('recipe_tag', TagBase('$recipe'));\r\n schemas.register('structure_tag', TagBase('$structure'));\r\n schemas.register('biome_tag', TagBase('$worldgen/biome'));\r\n schemas.register('configured_carver_tag', TagBase('$worldgen/configured_carver'));\r\n schemas.register('configured_decorator_tag', TagBase('$worldgen/configured_decorator'));\r\n schemas.register('configured_feature_tag', TagBase('$worldgen/configured_feature'));\r\n schemas.register('configured_structure_feature_tag', TagBase('$worldgen/configured_structure_feature'));\r\n schemas.register('configured_surface_builder_tag', TagBase('$worldgen/configured_surface_builder'));\r\n schemas.register('density_function_tag', TagBase('$worldgen/density_function'));\r\n schemas.register('noise_tag', TagBase('$worldgen/noise'));\r\n schemas.register('noise_settings_tag', TagBase('$worldgen/noise_settings'));\r\n schemas.register('placed_feature_tag', TagBase('$worldgen/placed_feature'));\r\n schemas.register('processor_list_tag', TagBase('$worldgen/processor_list'));\r\n schemas.register('structure_set_tag', TagBase('$worldgen/structure_set'));\r\n schemas.register('template_pool_tag', TagBase('$worldgen/template_pool'));\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', (0, core_1.Mod)((0, 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: (0, 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: (0, 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: (0, core_1.Opt)(StringNode()) /* TODO */,\r\n font: (0, core_1.Opt)(StringNode()),\r\n bold: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n italic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n underlined: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n strikethrough: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n obfuscated: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n insertion: (0, core_1.Opt)(StringNode()),\r\n clickEvent: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(Reference('text_component')),\r\n contents: (0, core_1.Opt)(Reference('text_component'))\r\n },\r\n 'show_item': {\r\n value: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { module: 'util::InventoryItem' } })),\r\n contents: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n id: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n tag: (0, 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: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n name: (0, core_1.Opt)(StringNode()),\r\n type: (0, core_1.Opt)(StringNode()),\r\n id: (0, core_1.Opt)(StringNode())\r\n })),\r\n contents: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n name: (0, 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: (0, core_1.Opt)(Reference('text_component_list'))\r\n };\r\n schemas.register('text_component_object', (0, core_1.Mod)((0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n translate: StringNode(),\r\n with: (0, 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: (0, core_1.ObjectNode)({\r\n score: (0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n selector: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } }),\r\n separator: (0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n nbt: StringNode({ validator: 'nbt_path' }),\r\n block: (0, core_1.Opt)(StringNode({ validator: 'vector', params: { dimension: 3, isInteger: true } })),\r\n entity: (0, core_1.Opt)(StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } })),\r\n storage: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$storage' } })),\r\n interpret: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n separator: (0, 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', (0, core_1.Mod)((0, 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.MobCategorySpawnSettings = 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.MobCategorySpawnSettings = (0, core_1.Mod)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n weight: (0, core_1.NumberNode)({ integer: true }),\r\n minCount: (0, core_1.NumberNode)({ integer: true }),\r\n maxCount: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n temperature: (0, core_1.NumberNode)(),\r\n downfall: (0, core_1.NumberNode)(),\r\n precipitation: StringNode({ enum: ['none', 'rain', 'snow'] }),\r\n temperature_modifier: (0, core_1.Opt)(StringNode({ enum: ['none', 'frozen'] })),\r\n category: StringNode({ enum: 'biome_category' }),\r\n creature_spawn_probability: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n effects: (0, core_1.ObjectNode)({\r\n sky_color: (0, core_1.NumberNode)({ color: true }),\r\n fog_color: (0, core_1.NumberNode)({ color: true }),\r\n water_color: (0, core_1.NumberNode)({ color: true }),\r\n water_fog_color: (0, core_1.NumberNode)({ color: true }),\r\n grass_color: (0, core_1.Opt)((0, core_1.NumberNode)({ color: true })),\r\n foliage_color: (0, core_1.Opt)((0, core_1.NumberNode)({ color: true })),\r\n grass_color_modifier: (0, core_1.Opt)(StringNode({ enum: ['none', 'dark_forest', 'swamp'] })),\r\n ambient_sound: (0, core_1.Opt)(StringNode()),\r\n mood_sound: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n sound: StringNode(),\r\n tick_delay: (0, core_1.NumberNode)({ integer: true }),\r\n block_search_extent: (0, core_1.NumberNode)({ integer: true }),\r\n offset: (0, core_1.NumberNode)()\r\n })),\r\n additions_sound: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n sound: StringNode(),\r\n tick_chance: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n })),\r\n music: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n sound: StringNode(),\r\n min_delay: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n max_delay: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n replace_current_music: (0, core_1.BooleanNode)()\r\n })),\r\n particle: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n options: (0, core_1.ObjectNode)({\r\n type: StringNode()\r\n }),\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n }))\r\n }),\r\n spawners: (0, core_1.MapNode)(StringNode({ enum: 'mob_category' }), exports.MobCategorySpawnSettings),\r\n spawn_costs: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'entity_type' } }), (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n energy_budget: (0, core_1.NumberNode)(),\r\n charge: (0, 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: (0, core_1.MapNode)(StringNode({ enum: ['air', 'liquid'] }), (0, core_1.Mod)((0, Common_1.Tag)({ resource: '$worldgen/configured_carver', inlineSchema: 'configured_carver' }), {\r\n default: () => ['minecraft:cave']\r\n })),\r\n features: (0, core_1.ListNode)((0, core_1.Mod)((0, 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: (0, Common_1.FloatProvider)(),\r\n shape: (0, core_1.ObjectNode)({\r\n distance_factor: (0, Common_1.FloatProvider)(),\r\n thickness: (0, Common_1.FloatProvider)(),\r\n width_smoothness: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n horizontal_radius_factor: (0, Common_1.FloatProvider)(),\r\n vertical_radius_default_factor: (0, core_1.NumberNode)(),\r\n vertical_radius_center_factor: (0, core_1.NumberNode)()\r\n })\r\n };\r\n const CaveConfig = {\r\n horizontal_radius_multiplier: (0, Common_1.FloatProvider)(),\r\n vertical_radius_multiplier: (0, Common_1.FloatProvider)(),\r\n floor_level: (0, Common_1.FloatProvider)({ min: -1, max: 1 }),\r\n };\r\n schemas.register('configured_carver', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/carver' } }),\r\n config: (0, core_1.ObjectNode)({\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n y: Reference('height_provider'),\r\n yScale: (0, Common_1.FloatProvider)(),\r\n lava_level: Reference('vertical_anchor'),\r\n debug_settings: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n debug_mode: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n air_state: (0, core_1.Opt)(Reference('block_state')),\r\n water_state: (0, core_1.Opt)(Reference('block_state')),\r\n lava_state: (0, core_1.Opt)(Reference('block_state')),\r\n barrier_state: (0, 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', (0, 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: (0, core_1.NumberNode)({ integer: true, min: 0 })\r\n },\r\n 'minecraft:count': {\r\n count: (0, Common_1.IntProvider)({ min: 0, max: 256 })\r\n },\r\n 'minecraft:count_on_every_layer': {\r\n count: (0, Common_1.IntProvider)({ min: 0, max: 256 })\r\n },\r\n 'minecraft:noise_threshold_count': {\r\n noise_level: (0, core_1.NumberNode)(),\r\n below_noise: (0, core_1.NumberNode)({ integer: true }),\r\n above_noise: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:noise_based_count': {\r\n noise_to_count_ratio: (0, core_1.NumberNode)({ integer: true }),\r\n noise_factor: (0, core_1.NumberNode)(),\r\n noise_offset: (0, core_1.Opt)((0, core_1.NumberNode)())\r\n },\r\n 'minecraft:environment_scan': {\r\n direction_of_search: StringNode({ enum: ['up', 'down'] }),\r\n max_steps: (0, core_1.NumberNode)({ integer: true, min: 1, max: 32 }),\r\n target_condition: Reference('block_predicate_worldgen'),\r\n allowed_search_condition: (0, 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: (0, Common_1.IntProvider)({ min: -16, max: 16 }),\r\n y_spread: (0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n max_inclusive: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:surface_water_depth_filter': {\r\n max_water_depth: (0, 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 = (0, core_1.Mod)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'number',\r\n node: (0, 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 = (0, 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 = (0, core_1.NumberNode)({ min: -1000000, max: 1000000 });\r\n const YRange = (0, core_1.NumberNode)({ integer: true, min: -2032 * 2, max: 2031 * 2 });\r\n schemas.register('density_function', (0, core_1.Mod)((0, 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:blend_density': {\r\n argument: 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:constant': {\r\n argument: (0, core_1.NumberNode)(),\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: (0, core_1.NumberNode)(),\r\n y_scale: (0, 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: (0, core_1.NumberNode)(),\r\n y_scale: (0, 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:spline': {\r\n spline: Reference('cubic_spline'),\r\n min_value: NoiseRange,\r\n max_value: NoiseRange,\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 }), {\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 }));\r\n schemas.register('cubic_spline', (0, core_1.Mod)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'number',\r\n node: (0, core_1.NumberNode)()\r\n },\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)({\r\n coordinate: exports.DensityFunction,\r\n points: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n location: (0, core_1.NumberNode)(),\r\n derivative: (0, core_1.NumberNode)(),\r\n value: Reference('cubic_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.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 = (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n processors: (0, 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', (0, core_1.Mod)((0, 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: (0, core_1.NumberNode)()\r\n },\r\n 'minecraft:block_ignore': {\r\n blocks: (0, core_1.ListNode)(Reference('block_state'))\r\n },\r\n 'minecraft:block_rot': {\r\n integrity: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:gravity': {\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n offset: (0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n position_predicate: (0, 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: (0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 255, integer: true })),\r\n max_dist: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 255, integer: true })),\r\n min_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n max_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 }))\r\n };\r\n schemas.register('pos_rule_test', (0, 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', (0, 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: (0, 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: (0, 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 = (0, 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 = (0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 1 })),\r\n xz_spread: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0 })),\r\n y_spread: (0, core_1.Opt)((0, 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: (0, Common_1.IntProvider)({ min: 0, max: 8 }),\r\n half_height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4 }),\r\n targets: (0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n };\r\n const TargetBlockState = (0, core_1.ObjectNode)({\r\n target: Reference('rule_test'),\r\n state: Reference('block_state')\r\n });\r\n const OreConfig = {\r\n size: (0, core_1.NumberNode)({ integer: true, min: 0, max: 64 }),\r\n discard_chance_on_air_exposure: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n targets: (0, core_1.ListNode)(TargetBlockState)\r\n };\r\n const VegetationPatchConfig = {\r\n surface: StringNode({ enum: 'cave_surface' }),\r\n depth: (0, Common_1.IntProvider)({ min: 1, max: 128 }),\r\n vertical_range: (0, core_1.NumberNode)({ integer: true, min: 1, max: 256 }),\r\n extra_bottom_block_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n extra_edge_column_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n vegetation_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n xz_radius: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature' } }),\r\n config: (0, core_1.ObjectNode)({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bamboo': {\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:basalt_columns': {\r\n reach: (0, Common_1.IntProvider)({ min: 0, max: 3 }),\r\n height: (0, 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: (0, core_1.BooleanNode)(),\r\n layers: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n height: (0, 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: (0, Common_1.IntProvider)({ min: 0, max: 16 }),\r\n rim_size: (0, 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: (0, core_1.NumberNode)({ integer: true, min: 1, max: 512 }),\r\n height: (0, Common_1.IntProvider)({ min: 0, max: 128 }),\r\n radius: (0, Common_1.IntProvider)({ min: 0, max: 128 }),\r\n max_stalagmite_stalactite_height_diff: (0, core_1.NumberNode)({ integer: true, min: 0, max: 64 }),\r\n height_deviation: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n dripstone_block_layer_thickness: (0, Common_1.IntProvider)({ min: 0, max: 128 }),\r\n density: (0, Common_1.FloatProvider)({ min: 0, max: 2 }),\r\n wetness: (0, Common_1.FloatProvider)({ min: 0, max: 2 }),\r\n chance_of_dripstone_column_at_max_distance_from_center: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n max_distance_from_edge_affecting_chance_of_dripstone_column: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n max_distance_from_center_affecting_height_bias: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 })\r\n },\r\n 'minecraft:end_gateway': {\r\n exact: (0, core_1.BooleanNode)(),\r\n exit: (0, core_1.Opt)(Reference('block_pos'))\r\n },\r\n 'minecraft:end_spike': {\r\n crystal_invulnerable: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n crystal_beam_target: (0, core_1.Opt)(Reference('block_pos')),\r\n spikes: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n centerX: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n centerZ: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n radius: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n height: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n guarded: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n }))\r\n },\r\n 'minecraft:fill_layer': {\r\n state: Reference('block_state'),\r\n height: (0, 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: (0, core_1.NumberNode)({ integer: true, min: 0, max: 7 }),\r\n fossil_structures: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$structure' } })),\r\n overlay_structures: (0, 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: (0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n filling: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n inner_layer: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n middle_layer: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n outer_layer: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n }),\r\n crack: (0, core_1.ObjectNode)({\r\n generate_crack_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n base_crack_size: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 5 })),\r\n crack_point_offset: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 10 })),\r\n }),\r\n noise_multiplier: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n use_potential_placements_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n use_alternate_layer0_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n placements_require_layer0_alternate: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n outer_wall_distance: (0, core_1.Opt)((0, Common_1.IntProvider)({ min: 1, max: 20 })),\r\n distribution_points: (0, core_1.Opt)((0, Common_1.IntProvider)({ min: 1, max: 20 })),\r\n point_offset: (0, core_1.Opt)((0, Common_1.IntProvider)({ min: 0, max: 10 })),\r\n min_gen_offset: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n max_gen_offset: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n invalid_blocks_threshold: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:glow_lichen': {\r\n search_range: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 1, max: 64, integer: true })),\r\n chance_of_spreading: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n can_place_on_floor: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n can_place_on_ceiling: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n can_place_on_wall: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n can_be_placed_on: (0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 1, max: 512 })),\r\n column_radius: (0, Common_1.IntProvider)({ min: 0, max: 60 }),\r\n height_scale: (0, Common_1.FloatProvider)({ min: 0, max: 20 }),\r\n max_column_radius_to_cave_height_ratio: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n stalactite_bluntness: (0, Common_1.FloatProvider)({ min: 0.1, max: 10 }),\r\n stalagmite_bluntness: (0, Common_1.FloatProvider)({ min: 0.1, max: 10 }),\r\n wind_speed: (0, Common_1.FloatProvider)({ min: 0, max: 2 }),\r\n min_radius_for_wind: (0, core_1.NumberNode)({ integer: true, min: 0, max: 100 }),\r\n min_bluntness_for_wind: (0, 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: (0, core_1.NumberNode)({ integer: true, min: 1 }),\r\n spread_height: (0, 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: (0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n chance_of_directional_spread: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n chance_of_spread_radius2: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n chance_of_spread_radius3: (0, core_1.Opt)((0, 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: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n chance: (0, 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: (0, core_1.ListNode)(TargetBlockState)\r\n },\r\n 'minecraft:root_system': {\r\n required_vertical_space_for_tree: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n root_radius: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n root_placement_attempts: (0, core_1.NumberNode)({ integer: true, min: 1, max: 256 }),\r\n root_column_max_height: (0, core_1.NumberNode)({ integer: true, min: 1, max: 4096 }),\r\n hanging_root_radius: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n hanging_roots_vertical_span: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 }),\r\n hanging_root_placement_attempts: (0, core_1.NumberNode)({ integer: true, min: 0, max: 256 }),\r\n allowed_vertical_water_for_tree: (0, 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: (0, Common_1.IntProvider)({ min: 0, max: 256 })\r\n },\r\n 'minecraft:seagrass': {\r\n probability: (0, 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: (0, 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: (0, core_1.NumberNode)({ integer: true }),\r\n hole_count: (0, core_1.NumberNode)({ integer: true }),\r\n requires_block_below: (0, core_1.BooleanNode)(),\r\n valid_blocks: (0, Common_1.Tag)({ resource: 'block' })\r\n },\r\n 'minecraft:tree': {\r\n ignore_vines: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n force_dirt: (0, core_1.Opt)((0, 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: (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/trunk_placer_type' } }),\r\n base_height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 32 }),\r\n height_rand_a: (0, core_1.NumberNode)({ integer: true, min: 0, max: 24 }),\r\n height_rand_b: (0, 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: (0, Common_1.IntProvider)({ min: 1, max: 64 }),\r\n min_height_for_leaves: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 1 }))\r\n }\r\n }\r\n }, { context: 'trunk_placer' }),\r\n foliage_placer: (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/foliage_placer_type' } }),\r\n radius: (0, Common_1.IntProvider)({ min: 0, max: 16 }),\r\n offset: (0, 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: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:bush_foliage_placer': {\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:fancy_foliage_placer': {\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:jungle_foliage_placer': {\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:mega_pine_foliage_placer': {\r\n crown_height: (0, Common_1.IntProvider)({ min: 0, max: 24 })\r\n },\r\n 'minecraft:pine_foliage_placer': {\r\n height: (0, Common_1.IntProvider)({ min: 0, max: 24 })\r\n },\r\n 'minecraft:random_spread_foliage_placer': {\r\n foliage_height: (0, Common_1.IntProvider)({ min: 1, max: 512 }),\r\n leaf_placement_attempts: (0, core_1.NumberNode)({ integer: true, min: 0, max: 256 })\r\n },\r\n 'minecraft:spruce_foliage_placer': {\r\n trunk_height: (0, Common_1.IntProvider)({ min: 0, max: 24 })\r\n }\r\n }\r\n }, { context: 'foliage_placer', disableSwitchContext: true }),\r\n decorators: (0, core_1.ListNode)((0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:cocoa': {\r\n probability: (0, 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: (0, core_1.NumberNode)({ integer: true, min: 1 }),\r\n spread_height: (0, core_1.NumberNode)({ integer: true, min: 1 }),\r\n max_height: (0, core_1.NumberNode)({ integer: true, min: 1 }),\r\n },\r\n 'minecraft:underwater_magma': {\r\n floor_search_range: (0, core_1.NumberNode)({ integer: true, min: 0, max: 512 }),\r\n placement_radius_around_floor: (0, core_1.NumberNode)({ integer: true, min: 0, max: 64 }),\r\n placement_probability_per_valid_position: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n feature: ConfiguredFeature,\r\n placement: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature_size_type' } }),\r\n min_clipped_height: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 81 })),\r\n lower_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })),\r\n upper_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 }))\r\n },\r\n 'minecraft:three_layers_feature_size': {\r\n limit: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 80 })),\r\n upper_limit: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 80 })),\r\n lower_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })),\r\n middle_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })),\r\n upper_size: (0, core_1.Opt)((0, 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: (0, core_1.NumberNode)({ integer: true }),\r\n noise: Reference('noise_parameters'),\r\n scale: (0, core_1.Mod)((0, core_1.NumberNode)({ min: Number.MIN_VALUE }), { default: () => 1 })\r\n };\r\n schemas.register('block_state_provider', (0, core_1.Mod)((0, 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: (0, Common_1.InclusiveRange)({ integer: true, min: 1, max: 64 }),\r\n slow_noise: Reference('noise_parameters'),\r\n slow_scale: (0, core_1.Mod)((0, core_1.NumberNode)({ min: Number.MIN_VALUE }), { default: () => 1 }),\r\n states: (0, core_1.ListNode)(Reference('block_state'))\r\n },\r\n 'minecraft:noise_threshold_provider': {\r\n ...NoiseProvider,\r\n threshold: (0, core_1.NumberNode)({ min: -1, max: 1 }),\r\n high_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n default_state: Reference('block_state'),\r\n low_states: (0, core_1.ListNode)(Reference('block_state')),\r\n high_states: (0, core_1.ListNode)(Reference('block_state'))\r\n },\r\n 'minecraft:noise_provider': {\r\n ...NoiseProvider,\r\n states: (0, core_1.ListNode)(Reference('block_state'))\r\n },\r\n 'minecraft:randomized_int_state_provider': {\r\n property: StringNode(),\r\n values: (0, 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: (0, core_1.ListNode)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n weight: (0, 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: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.NumberNode)({ integer: true, min: -16, max: 16 }), { minLength: 3, maxLength: 3 }))\r\n };\r\n schemas.register('block_predicate_worldgen', (0, core_1.Mod)((0, 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: (0, core_1.ListNode)(Reference('block_predicate_worldgen'))\r\n },\r\n 'minecraft:any_of': {\r\n predicates: (0, 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: (0, Common_1.Tag)({ resource: 'block' })\r\n },\r\n 'minecraft:matching_fluids': {\r\n ...Offset,\r\n fluids: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n sea_level: (0, core_1.NumberNode)({ integer: true }),\r\n disable_mob_generation: (0, core_1.BooleanNode)(),\r\n aquifers_enabled: (0, core_1.BooleanNode)(),\r\n ore_veins_enabled: (0, core_1.BooleanNode)(),\r\n legacy_random_source: (0, core_1.BooleanNode)(),\r\n default_block: Reference('block_state'),\r\n default_fluid: Reference('block_state'),\r\n noise: (0, core_1.ObjectNode)({\r\n min_y: (0, core_1.NumberNode)({ integer: true, min: -2048, max: 2047 }),\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4096 }),\r\n size_horizontal: (0, core_1.NumberNode)({ integer: true }),\r\n size_vertical: (0, core_1.NumberNode)({ integer: true }),\r\n sampling: (0, core_1.ObjectNode)({\r\n xz_scale: (0, core_1.NumberNode)(),\r\n y_scale: (0, core_1.NumberNode)(),\r\n xz_factor: (0, core_1.NumberNode)(),\r\n y_factor: (0, 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: (0, 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 ridges: 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', (0, core_1.ObjectNode)({\r\n target: (0, core_1.NumberNode)(),\r\n size: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n offset: (0, core_1.NumberNode)({ integer: true })\r\n }));\r\n schemas.register('generator_layer', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n height: (0, 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', (0, core_1.Mod)((0, 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', (0, core_1.Mod)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'number',\r\n node: (0, core_1.NumberNode)()\r\n },\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)({\r\n coordinate: (0, core_1.Mod)(StringNode({ enum: ['continents', 'erosion', 'weirdness', 'ridges'] }), { default: () => 'continents' }),\r\n points: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n location: (0, core_1.NumberNode)(),\r\n derivative: (0, 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: (0, core_1.NumberNode)({ integer: true })\r\n };\r\n schemas.register('configured_structure_feature', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }),\r\n biomes: (0, Common_1.Tag)({ resource: '$worldgen/biome' }),\r\n adapt_noise: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n spawn_overrides: (0, core_1.MapNode)(StringNode({ enum: 'mob_category' }), (0, core_1.ObjectNode)({\r\n bounding_box: StringNode({ enum: ['piece', 'full'] }),\r\n spawns: Biome_1.MobCategorySpawnSettings,\r\n })),\r\n config: (0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:mineshaft': {\r\n type: StringNode({ enum: ['normal', 'mesa'] }),\r\n probability: (0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n cluster_probability: (0, 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: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n structures: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n structure: (0, Common_1.Tag)({ resource: '$worldgen/configured_structure_feature' }),\r\n weight: (0, 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', (0, core_1.Mod)((0, 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: (0, core_1.NumberNode)({ integer: true, min: 0, max: 1023 }),\r\n spread: (0, core_1.NumberNode)({ integer: true, min: 0, max: 1023 }),\r\n count: (0, core_1.NumberNode)({ integer: true, min: 1, max: 4095 })\r\n },\r\n 'minecraft:random_spread': {\r\n spread_type: (0, core_1.Opt)(StringNode({ enum: ['linear', 'triangular'] })),\r\n spacing: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4096 }),\r\n separation: (0, core_1.Mod)((0, 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: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n locate_offset: (0, core_1.Opt)((0, core_1.ListNode)((0, 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', (0, core_1.Mod)((0, 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: (0, 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', (0, core_1.Mod)((0, 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: (0, 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: (0, core_1.NumberNode)(),\r\n max_threshold: (0, 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: (0, core_1.NumberNode)({ integer: true }),\r\n surface_type: StringNode({ enum: 'cave_surface' }),\r\n add_surface_depth: (0, core_1.BooleanNode)(),\r\n secondary_depth_range: (0, 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: (0, core_1.NumberNode)({ integer: true }),\r\n surface_depth_multiplier: (0, core_1.NumberNode)({ integer: true, min: -20, max: 20 }),\r\n add_stone_depth: (0, core_1.BooleanNode)()\r\n },\r\n 'minecraft:y_above': {\r\n anchor: Reference('vertical_anchor'),\r\n surface_depth_multiplier: (0, core_1.NumberNode)({ integer: true, min: -20, max: 20 }),\r\n add_stone_depth: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n name: StringNode(),\r\n fallback: StringNode(),\r\n elements: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n weight: (0, 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', (0, core_1.Mod)((0, 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: (0, 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 (0, ProcessorList_1.initProcessorListSchemas)(schemas, collections);\r\n (0, DensityFunction_1.initDensityFunctionSchemas)(schemas, collections);\r\n (0, Biome_1.initBiomeSchemas)(schemas, collections);\r\n (0, Carver_1.initCarverSchemas)(schemas, collections);\r\n (0, Decorator_1.initDecoratorSchemas)(schemas, collections);\r\n (0, Feature_1.initFeatureSchemas)(schemas, collections);\r\n (0, NoiseSettings_1.initNoiseSettingsSchemas)(schemas, collections);\r\n (0, StructureFeature_1.initStructureFeatureSchemas)(schemas, collections);\r\n (0, StructureSet_1.initStructureSetSchemas)(schemas, collections);\r\n (0, SurfaceRule_1.initSurfaceRuleSchemas)(schemas, collections);\r\n (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n generate_features: (0, core_1.BooleanNode)(),\r\n bonus_chest: (0, core_1.BooleanNode)(),\r\n seed: (0, core_1.NumberNode)({ integer: true }),\r\n dimensions: (0, 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 (0, Common_1.initCommonSchemas)(schemas, collections);\r\n (0, Advancement_1.initAdvancementSchemas)(schemas, collections);\r\n (0, assets_1.initAssetsSchemas)(schemas, collections);\r\n (0, Condition_1.initConditionSchemas)(schemas, collections);\r\n (0, DimensionType_1.initDimensionTypeSchemas)(schemas, collections);\r\n (0, Dimension_1.initDimensionSchemas)(schemas, collections);\r\n (0, ItemModifier_1.initItemModifierSchemas)(schemas, collections);\r\n (0, LootTable_1.initLootTableSchemas)(schemas, collections);\r\n (0, PackMcmeta_1.initPackMcmetaSchemas)(schemas, collections);\r\n (0, Predicates_1.initPredicatesSchemas)(schemas, collections);\r\n (0, Recipe_1.initRecipeSchemas)(schemas, collections);\r\n (0, Tags_1.initTagsSchemas)(schemas, collections);\r\n (0, TextComponent_1.initTextComponentSchemas)(schemas, collections);\r\n (0, worldgen_1.initWorldgenSchemas)(schemas, collections);\r\n (0, 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 var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\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.prototype.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 = exports.lootContext = 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 (0, 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 (0, 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:allay_drop_item_on_block',\r\n 'minecraft:avoid_vibration',\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:kill_mob_near_sculk_catalyst',\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:thrown_item_picked_up_by_player',\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('decoration_step', [\r\n 'raw_generation',\r\n 'lakes',\r\n 'local_modifications',\r\n 'underground_structures',\r\n 'surface_structures',\r\n 'strongholds',\r\n 'underground_ores',\r\n 'underground_decoration',\r\n 'fluid_springs',\r\n 'vegetal_decoration',\r\n 'top_layer_modification'\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 = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n node: (0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n display: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n icon: (0, core_1.ObjectNode)({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n nbt: (0, 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: (0, core_1.Opt)(StringNode()),\r\n frame: (0, core_1.Opt)(StringNode({ enum: ['task', 'challenge', 'goal'] })),\r\n show_toast: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n announce_to_chat: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n hidden: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$advancement' } })),\r\n criteria: (0, core_1.MapNode)(StringNode(), Reference('advancement_criteria')),\r\n requirements: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ListNode)(StringNode() // TODO: add validation\r\n ))),\r\n rewards: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n function: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$function' } })),\r\n loot: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$loot_table' } }))),\r\n recipes: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$recipe' } }))),\r\n experience: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n trigger: StringNode({ validator: 'resource', params: { pool: collections.get('advancement_trigger') } }),\r\n conditions: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n player: (0, 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:allay_drop_item_on_block': {\r\n item: (0, core_1.Opt)(Reference('item_predicate')),\r\n location: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:bee_nest_destroyed': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n num_bees_inside: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n item: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'potion' } }))\r\n },\r\n 'minecraft:changed_dimension': {\r\n from: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n to: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$dimension' } }))\r\n },\r\n 'minecraft:channeled_lightning': {\r\n victims: (0, core_1.Opt)((0, 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: (0, 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: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), (0, core_1.ObjectNode)({\r\n amplifier: Reference('int_bounds'),\r\n duration: Reference('int_bounds')\r\n }))),\r\n source: (0, core_1.Opt)(EntityPredicate)\r\n },\r\n 'minecraft:enter_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:entity_hurt_player': {\r\n damage: (0, core_1.Opt)(Reference('damage_predicate'))\r\n },\r\n 'minecraft:entity_killed_player': {\r\n entity: EntityPredicate,\r\n killing_blow: (0, core_1.Opt)(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:fall_from_height': {\r\n start_position: (0, core_1.Opt)(Reference('location_predicate')),\r\n distance: (0, core_1.Opt)(Reference('distance_predicate'))\r\n },\r\n 'minecraft:filled_bucket': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:fishing_rod_hooked': {\r\n entity: EntityPredicate,\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:inventory_changed': {\r\n slots: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:item_used_on_block': {\r\n item: (0, core_1.Opt)(Reference('item_predicate')),\r\n location: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:kill_mob_near_sculk_catalyst': {\r\n entity: EntityPredicate,\r\n killing_blow: (0, core_1.Opt)(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:killed_by_crossbow': {\r\n unique_entity_types: Reference('int_bounds'),\r\n victims: (0, core_1.Opt)((0, core_1.ListNode)(EntityPredicate))\r\n },\r\n 'minecraft:levitation': {\r\n distance: (0, 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:nether_travel': {\r\n start_position: (0, core_1.Opt)(Reference('location_predicate')),\r\n distance: (0, core_1.Opt)(Reference('distance_predicate')),\r\n },\r\n 'minecraft:placed_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })),\r\n item: (0, core_1.Opt)(Reference('item_predicate')),\r\n location: (0, 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: (0, core_1.Opt)(Reference('damage_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_interacted_with_entity': {\r\n item: (0, 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: (0, 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: (0, core_1.Opt)(Reference('location_predicate')),\r\n distance: (0, core_1.Opt)(Reference('distance_predicate'))\r\n },\r\n 'minecraft:slide_down_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:shot_crossbow': {\r\n item: (0, 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: EntityPredicate,\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:thrown_item_picked_up_by_player': {\r\n entity: EntityPredicate,\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:used_ender_eye': {\r\n distance: (0, core_1.Opt)(Reference('float_bounds'))\r\n },\r\n 'minecraft:used_totem': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:using_item': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:villager_trade': {\r\n villager: EntityPredicate,\r\n item: (0, core_1.Opt)(Reference('item_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) => (0, core_1.ListNode)((0, core_1.NumberNode)({ min, max }), { minLength: length, maxLength: length });\r\n const Texture = (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n parent: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$model' } })),\r\n ambientocclusion: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n gui_light: (0, core_1.Opt)(StringNode({ enum: 'gui_light' })),\r\n textures: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), Texture)),\r\n elements: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n from: Vec(3, -16, 32),\r\n to: Vec(3, -16, 32),\r\n rotation: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n origin: Vec(3),\r\n axis: StringNode({ enum: 'axis' }),\r\n angle: (0, core_1.NumberEnum)({ values: [-45, -22.5, 0, 22.5, 45] }),\r\n rescale: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n })),\r\n shade: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n faces: (0, core_1.MapNode)(StringNode({ enum: 'direction' }), (0, core_1.ObjectNode)({\r\n texture: Texture,\r\n uv: (0, core_1.Opt)(Vec(4)),\r\n cullface: (0, core_1.Opt)(StringNode({ enum: 'direction' })),\r\n rotation: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n tintindex: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n }))\r\n }, { context: 'model_element' }))),\r\n display: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ enum: 'display_position' }), (0, 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: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n predicate: (0, core_1.MapNode)(StringNode({ enum: 'item_model_predicates' }), (0, 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', (0, core_1.Mod)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'variants',\r\n match: (v) => v.variants !== undefined,\r\n node: (0, core_1.ObjectNode)({\r\n variants: (0, 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: (0, core_1.ObjectNode)({\r\n multipart: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n when: (0, 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: (0, core_1.Opt)((0, core_1.NumberEnum)({ integer: true, values: [0, 90, 180, 270] })),\r\n y: (0, core_1.Opt)((0, core_1.NumberEnum)({ integer: true, values: [0, 90, 180, 270] })),\r\n uvlock: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n };\r\n schemas.register('model_variant', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n node: (0, 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: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n ...VariantChildren,\r\n weight: (0, core_1.Opt)((0, 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', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n priority: -1,\r\n match: () => true,\r\n node: (0, 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: (0, core_1.ObjectNode)({\r\n OR: (0, 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 (0, BlockDefinition_1.initBlockDefinitionSchemas)(schemas, collections);\r\n (0, Model_1.initModelSchemas)(schemas, collections);\r\n}\r\nexports.initAssetsSchemas = initAssetsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initChatTypeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initChatTypeSchemas(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('chat_type', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n chat: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n decoration: (0, core_1.Opt)(Reference('text_decoration')),\r\n })),\r\n overlay: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n decoration: (0, core_1.Opt)(Reference('text_decoration')),\r\n })),\r\n narration: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n decoration: (0, core_1.Opt)(Reference('text_decoration')),\r\n priority: StringNode({ enum: ['chat', 'system'] }),\r\n })),\r\n }, { context: 'chat_type' }), {\r\n default: () => ({\r\n chat: {\r\n decoration: {\r\n parameters: ['sender', 'content'],\r\n translation_key: 'chat.type.text',\r\n style: {},\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('text_decoration', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n translation_key: StringNode(),\r\n parameters: (0, core_1.ListNode)(StringNode({ enum: ['sender', 'team_name', 'content'] })),\r\n style: Reference('text_style')\r\n }, { context: 'text_decoration' }), {\r\n default: () => ({\r\n translation_key: 'chat.type.text',\r\n parameters: ['sender', 'content'],\r\n style: {},\r\n })\r\n }));\r\n}\r\nexports.initChatTypeSchemas = initChatTypeSchemas;\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 sea_level: 63,\r\n ore_veins_enabled: true,\r\n disable_mob_generation: false,\r\n aquifers_enabled: true,\r\n legacy_random_source: 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: -64,\r\n height: 384,\r\n size_horizontal: 1,\r\n size_vertical: 2,\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 noise_router: {\r\n barrier: 0,\r\n fluid_level_floodedness: 0,\r\n fluid_level_spread: 0,\r\n lava: 0,\r\n temperature: 0,\r\n vegetation: 0,\r\n continents: 0,\r\n erosion: 0,\r\n depth: 0,\r\n ridges: 0,\r\n initial_density_without_jaggedness: 0,\r\n final_density: {\r\n type: 'minecraft:interpolated',\r\n argument: 'minecraft:overworld/base_3d_noise'\r\n },\r\n vein_toggle: 0,\r\n vein_ridged: 0,\r\n vein_gap: 0,\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n Properties: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'fluid' } }),\r\n Properties: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ListNode)((0, core_1.NumberNode)({ integer: true }), { minLength: 3, maxLength: 3 }), {\r\n default: () => [0, 0, 0]\r\n }));\r\n const Bounds = (integer) => (0, core_1.Opt)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'number',\r\n node: (0, 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: (0, core_1.ObjectNode)({\r\n min: (0, core_1.Opt)((0, core_1.NumberNode)({ integer })),\r\n max: (0, core_1.Opt)((0, 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', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)({\r\n min: (0, core_1.Opt)(Reference('number_provider')),\r\n max: (0, core_1.Opt)(Reference('number_provider'))\r\n })\r\n },\r\n {\r\n type: 'number',\r\n node: (0, 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] = (0, 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 = (0, core_1.ObjectNode)({\r\n type: (0, core_1.Mod)((0, 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 (0, 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: (0, 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: (0, core_1.Opt)((0, 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: (0, 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: (0, 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: (0, core_1.NumberNode)(config)\r\n },\r\n 'minecraft:uniform': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)(config),\r\n max_exclusive: (0, core_1.NumberNode)(config)\r\n })\r\n },\r\n 'minecraft:clamped_normal': {\r\n value: (0, core_1.ObjectNode)({\r\n min: (0, core_1.NumberNode)(),\r\n max: (0, core_1.NumberNode)(),\r\n mean: (0, core_1.NumberNode)(),\r\n deviation: (0, core_1.NumberNode)()\r\n })\r\n },\r\n 'minecraft:trapezoid': {\r\n value: (0, core_1.ObjectNode)({\r\n min: (0, core_1.NumberNode)(),\r\n max: (0, core_1.NumberNode)(),\r\n plateau: (0, core_1.NumberNode)()\r\n })\r\n }\r\n });\r\n schemas.register('float_provider', (0, 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: (0, core_1.NumberNode)({ integer: true, ...config })\r\n },\r\n 'minecraft:uniform': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:biased_to_bottom': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:clamped': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n source: Reference('int_provider')\r\n })\r\n },\r\n 'minecraft:clamped_normal': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n mean: (0, core_1.NumberNode)(),\r\n deviation: (0, core_1.NumberNode)()\r\n })\r\n },\r\n 'minecraft:weighted_list': {\r\n distribution: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n weight: (0, core_1.NumberNode)({ integer: true }),\r\n data: Reference('int_provider'),\r\n }))\r\n }\r\n });\r\n schemas.register('int_provider', (0, exports.IntProvider)());\r\n schemas.register('vertical_anchor', (0, 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: (0, core_1.ObjectNode)({\r\n [t]: (0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:weighted_list': {\r\n distribution: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n weight: (0, core_1.NumberNode)({ integer: true }),\r\n data: Reference('int_provider'),\r\n }))\r\n }\r\n }));\r\n exports.InclusiveRange = (config) => (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)(config),\r\n max_inclusive: (0, core_1.NumberNode)(config)\r\n }, { context: 'range' });\r\n schemas.register('noise_parameters', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n firstOctave: (0, core_1.NumberNode)({ integer: true }),\r\n amplitudes: (0, core_1.ListNode)((0, 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) => (0, 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: (0, core_1.ListNode)(config.inlineSchema\r\n ? (0, 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: (0, 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: (0, 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: (0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:location_check': {\r\n offsetX: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n offsetY: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n offsetZ: (0, core_1.Opt)((0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_chance_with_looting': {\r\n chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n looting_multiplier: (0, 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: (0, core_1.ListNode)((0, core_1.NumberNode)({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:time_check': {\r\n value: Reference('int_range'),\r\n period: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n thundering: (0, core_1.Opt)((0, 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: (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n bonusMultiplier: (0, core_1.Mod)((0, core_1.NumberNode)(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:uniform_bonus_count'\r\n }),\r\n extra: (0, core_1.Mod)((0, core_1.NumberNode)(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n }),\r\n probability: (0, core_1.Mod)((0, 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: (0, core_1.ListNode)((0, 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: (0, core_1.ListNode)(StringNode({ validator: 'block_state_key', params: { id: ['pop', 'pop', { push: 'block' }] } }))\r\n },\r\n 'minecraft:enchant_randomly': {\r\n enchantments: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:exploration_map': {\r\n destination: (0, core_1.Opt)((0, exports.Tag)({ resource: '$worldgen/structure' })),\r\n decoration: (0, core_1.Opt)(StringNode({ enum: 'map_decoration' })),\r\n zoom: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n search_radius: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n skip_existing_chunks: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:set_attributes': {\r\n modifiers: (0, core_1.ListNode)(Reference('attribute_modifier'))\r\n },\r\n 'minecraft:set_banner_pattern': {\r\n patterns: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n pattern: StringNode({ enum: 'banner_pattern' }),\r\n color: StringNode({ enum: 'dye_color' })\r\n })),\r\n append: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_contents': {\r\n type: StringNode({ validator: 'resource', params: { pool: 'block_entity_type' } }),\r\n entries: (0, core_1.ListNode)(Reference('loot_entry'))\r\n },\r\n 'minecraft:set_count': {\r\n count: Reference('number_provider'),\r\n add: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_damage': {\r\n damage: Reference('number_provider'),\r\n add: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_enchantments': {\r\n enchantments: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'enchantment' } }), Reference('number_provider')),\r\n add: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_instrument': {\r\n options: StringNode({ validator: 'resource', params: { pool: 'instrument', requireTag: true } })\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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:set_lore': {\r\n entity: (0, core_1.Opt)(entitySourceNode),\r\n lore: (0, core_1.ListNode)(Reference('text_component')),\r\n replace: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_name': {\r\n entity: (0, core_1.Opt)(entitySourceNode),\r\n name: (0, 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: (0, core_1.Opt)((0, core_1.ListNode)((0, 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) => (0, 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) => (0, core_1.ObjectOrPreset)(StringNode({ validator: 'resource', params: { pool: '$worldgen/noise_settings' } }), node, {\r\n 'minecraft:overworld': exports.DefaultNoiseSettings,\r\n 'minecraft:nether': {\r\n sea_level: 32,\r\n ore_veins_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n legacy_random_source: true,\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 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 noise_router: {\r\n barrier: 0,\r\n fluid_level_floodedness: 0,\r\n fluid_level_spread: 0,\r\n lava: 0,\r\n temperature: 0,\r\n vegetation: 0,\r\n continents: 0,\r\n erosion: 0,\r\n depth: 0,\r\n ridges: 0,\r\n initial_density_without_jaggedness: 0,\r\n final_density: {\r\n type: 'minecraft:interpolated',\r\n argument: 'minecraft:overworld/base_3d_noise'\r\n },\r\n vein_toggle: 0,\r\n vein_ridged: 0,\r\n vein_gap: 0,\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n }\r\n },\r\n 'minecraft:end': {\r\n sea_level: 0,\r\n ore_veins_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n legacy_random_source: true,\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 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 noise_router: {\r\n barrier: 0,\r\n fluid_level_floodedness: 0,\r\n fluid_level_spread: 0,\r\n lava: 0,\r\n temperature: 0,\r\n vegetation: 0,\r\n continents: 0,\r\n erosion: 0,\r\n depth: 0,\r\n ridges: 0,\r\n initial_density_without_jaggedness: 0,\r\n final_density: {\r\n type: 'minecraft:interpolated',\r\n argument: 'minecraft:overworld/base_3d_noise'\r\n },\r\n vein_toggle: 0,\r\n vein_ridged: 0,\r\n vein_gap: 0,\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n }\r\n },\r\n 'minecraft:amplified': {\r\n sea_level: 63,\r\n ore_veins_enabled: true,\r\n disable_mob_generation: false,\r\n aquifers_enabled: true,\r\n legacy_random_source: 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: -64,\r\n height: 384,\r\n size_horizontal: 1,\r\n size_vertical: 2,\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 noise_router: {\r\n barrier: 0,\r\n fluid_level_floodedness: 0,\r\n fluid_level_spread: 0,\r\n lava: 0,\r\n temperature: 0,\r\n vegetation: 0,\r\n continents: 0,\r\n erosion: 0,\r\n depth: 0,\r\n ridges: 0,\r\n initial_density_without_jaggedness: 0,\r\n final_density: {\r\n type: 'minecraft:interpolated',\r\n argument: 'minecraft:overworld/base_3d_noise'\r\n },\r\n vein_toggle: 0,\r\n vein_ridged: 0,\r\n vein_gap: 0,\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n },\r\n },\r\n 'minecraft:caves': {\r\n sea_level: 32,\r\n ore_veins_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n legacy_random_source: 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: 0,\r\n height: 128,\r\n size_horizontal: 1,\r\n size_vertical: 2,\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 noise_router: {\r\n barrier: 0,\r\n fluid_level_floodedness: 0,\r\n fluid_level_spread: 0,\r\n lava: 0,\r\n temperature: 0,\r\n vegetation: 0,\r\n continents: 0,\r\n erosion: 0,\r\n depth: 0,\r\n ridges: 0,\r\n initial_density_without_jaggedness: 0,\r\n final_density: {\r\n type: 'minecraft:interpolated',\r\n argument: 'minecraft:overworld/base_3d_noise'\r\n },\r\n vein_toggle: 0,\r\n vein_ridged: 0,\r\n vein_gap: 0,\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n }\r\n },\r\n 'minecraft:floating_islands': {\r\n sea_level: 0,\r\n ore_veins_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n legacy_random_source: 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: 0,\r\n height: 128,\r\n size_horizontal: 2,\r\n size_vertical: 1,\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 noise_router: {\r\n barrier: 0,\r\n fluid_level_floodedness: 0,\r\n fluid_level_spread: 0,\r\n lava: 0,\r\n temperature: 0,\r\n vegetation: 0,\r\n continents: 0,\r\n erosion: 0,\r\n depth: 0,\r\n ridges: 0,\r\n initial_density_without_jaggedness: 0,\r\n final_density: {\r\n type: 'minecraft:interpolated',\r\n argument: 'minecraft:overworld/base_3d_noise'\r\n },\r\n vein_toggle: 0,\r\n vein_ridged: 0,\r\n vein_gap: 0,\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\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', (0, core_1.ObjectOrList)(Reference('condition'), { choiceContext: 'condition' }));\r\n schemas.register('condition', (0, core_1.Mod)((0, 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]: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: (0, Common_1.DimensionTypePresets)(Reference('dimension_type')),\r\n generator: (0, 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 settings: (0, Common_1.NoiseSettingsPresets)(Reference('noise_settings')),\r\n biome_source: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: ['minecraft:overworld', 'minecraft:nether'] } })),\r\n biomes: (0, core_1.Mod)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 62 })),\r\n biomes: (0, Common_1.Tag)({ resource: '$worldgen/biome' })\r\n },\r\n }\r\n }, { category: 'predicate', disableSwitchContext: true })\r\n },\r\n 'minecraft:flat': {\r\n settings: Reference('flat_generator_settings')\r\n }\r\n }\r\n }, { disableSwitchContext: true })\r\n }, { category: 'pool', context: 'dimension' }), {\r\n default: () => {\r\n return {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n biome_source: {\r\n type: 'minecraft:fixed',\r\n biome: 'minecraft:plains'\r\n },\r\n settings: 'minecraft:overworld'\r\n }\r\n };\r\n }\r\n }));\r\n schemas.register('flat_generator_settings', (0, core_1.ObjectNode)({\r\n biome: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n lakes: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n features: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n layers: (0, core_1.ListNode)(Reference('generator_layer')),\r\n structure_overrides: (0, Common_1.Tag)({ resource: '$worldgen/structure_set', inlineSchema: 'structure_set' })\r\n }));\r\n const ClimateParameter = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'number',\r\n node: (0, 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: (0, core_1.ListNode)((0, 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('parameter_point', (0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n }));\r\n schemas.register('generator_biome', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }),\r\n parameters: Reference('parameter_point'),\r\n }, { context: 'generator_biome' }), {\r\n default: () => ({\r\n biome: 'minecraft:plains',\r\n parameters: {\r\n temperature: 0,\r\n humidity: 0,\r\n continentalness: 0,\r\n erosion: 0,\r\n weirdness: 0,\r\n depth: 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n ultrawarm: (0, core_1.BooleanNode)(),\r\n natural: (0, core_1.BooleanNode)(),\r\n piglin_safe: (0, core_1.BooleanNode)(),\r\n respawn_anchor_works: (0, core_1.BooleanNode)(),\r\n bed_works: (0, core_1.BooleanNode)(),\r\n has_raids: (0, core_1.BooleanNode)(),\r\n has_skylight: (0, core_1.BooleanNode)(),\r\n has_ceiling: (0, core_1.BooleanNode)(),\r\n coordinate_scale: (0, core_1.NumberNode)({ min: 0.00001, max: 30000000 }),\r\n ambient_light: (0, core_1.NumberNode)(),\r\n fixed_time: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n logical_height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4064 }),\r\n effects: (0, 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: (0, core_1.NumberNode)({ integer: true, min: -2032, max: 2031 }),\r\n height: (0, 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', (0, core_1.ObjectOrList)(Reference('function'), { choiceContext: 'function' }));\r\n const conditions = {\r\n conditions: (0, core_1.Opt)((0, core_1.ListNode)(Reference('condition')))\r\n };\r\n schemas.register('function', (0, core_1.Mod)((0, 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]: (0, 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: (0, core_1.Opt)((0, core_1.ListNode)(Reference('loot_condition')))\r\n };\r\n const functionsAndConditions = {\r\n functions: (0, core_1.Opt)((0, 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 (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: (0, core_1.Opt)(StringNode({ validator: \"resource\", params: { pool: collections.get('loot_context_type') } })),\r\n pools: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n rolls: Reference('number_provider'),\r\n bonus_rolls: (0, core_1.Opt)(Reference('number_provider')),\r\n entries: (0, 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: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'loot_pool_entry_type' } }),\r\n weight: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true, min: 1 }), weightMod)),\r\n quality: (0, core_1.Opt)((0, core_1.Mod)((0, 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: (0, 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: (0, 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: (0, 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: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n function: functionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'function' }],\r\n [core_1.Case]: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n condition: conditionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: (0, 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', (0, core_1.Mod)((0, 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: (0, 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 = 10;\r\nfunction initPackMcmetaSchemas(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('pack_mcmeta', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n pack: (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n pack_format: (0, core_1.Mod)((0, 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: Reference('text_component')\r\n }), {\r\n default: () => ({\r\n pack_format: CURRENT_PACK_FORMAT,\r\n description: ''\r\n })\r\n }),\r\n filter: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n block: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n namespace: (0, core_1.Opt)(StringNode({ validator: 'regex_pattern' })),\r\n path: (0, core_1.Opt)(StringNode({ validator: 'regex_pattern' })),\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 = (0, 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: (0, core_1.NumberNode)(),\r\n change: v => (typeof v === 'string') ? parseInt(v) : 0\r\n },\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)({\r\n min: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n max: (0, core_1.Opt)((0, 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: (0, core_1.BooleanNode)(),\r\n change: v => v === 'true' || v === 1\r\n }\r\n ]);\r\n schemas.register('item_predicate', (0, core_1.ObjectNode)({\r\n items: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'item' } }))),\r\n tag: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'potion' } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } })),\r\n enchantments: (0, core_1.Opt)((0, core_1.ListNode)(Reference('enchantment_predicate')))\r\n }, { context: 'item' }));\r\n schemas.register('enchantment_predicate', (0, core_1.ObjectNode)({\r\n enchantment: (0, 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', (0, core_1.ObjectNode)({\r\n blocks: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'block' } }))),\r\n tag: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$tag/block' } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block', id: ['pop', { push: 'block' }] } } })),\r\n state: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n fluid: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'fluid' } })),\r\n tag: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$tag/fluid' } })),\r\n state: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), StateChoice))\r\n }, { context: 'fluid' }));\r\n schemas.register('location_predicate', (0, core_1.ObjectNode)({\r\n position: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n structure: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$worldgen/structure' } })),\r\n dimension: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n light: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n light: Reference('int_bounds')\r\n })),\r\n smokey: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n block: (0, core_1.Opt)(Reference('block_predicate')),\r\n fluid: (0, core_1.Opt)(Reference('fluid_predicate'))\r\n }, { context: 'location' }));\r\n schemas.register('statistic_predicate', (0, 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('status_effect_predicate', (0, core_1.ObjectNode)({\r\n amplifier: Reference('int_bounds'),\r\n duration: Reference('int_bounds'),\r\n ambient: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n visible: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n }, { context: 'status_effect' }));\r\n schemas.register('distance_predicate', (0, 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', (0, core_1.ObjectNode)({\r\n type: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'entity_type', allowTag: true } })),\r\n type_specific: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n type: StringNode({ enum: ['any', 'cat', 'fishing_hook', 'frog', 'lightning', 'player', 'slime'] }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'cat': {\r\n variant: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'cat_variant' } }))\r\n },\r\n 'fishing_hook': {\r\n in_open_water: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'frog': {\r\n variant: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'frog_variant' } }))\r\n },\r\n 'lightning': {\r\n blocks_set_on_fire: (0, core_1.Opt)(Reference('int_bounds')),\r\n entity_struck: (0, core_1.Opt)(Reference('entity_predicate'))\r\n },\r\n 'player': {\r\n gamemode: (0, core_1.Opt)(StringNode({ enum: 'gamemode' })),\r\n level: Reference('int_bounds'),\r\n advancements: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: '$advancement' } }), (0, core_1.ChoiceNode)([\r\n {\r\n type: 'boolean',\r\n node: (0, core_1.BooleanNode)(),\r\n change: () => true\r\n },\r\n {\r\n type: 'object',\r\n node: (0, core_1.MapNode)(StringNode(), (0, core_1.BooleanNode)())\r\n }\r\n ]))),\r\n recipes: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: '$recipe' } }), (0, core_1.BooleanNode)())),\r\n stats: (0, core_1.Opt)((0, core_1.ListNode)(Reference('statistic_predicate'))),\r\n looking_at: (0, core_1.Opt)(Reference('entity_predicate'))\r\n },\r\n 'slime': {\r\n size: Reference('int_bounds')\r\n },\r\n }\r\n })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:entity', id: ['pop', { push: 'type' }] } } })),\r\n team: (0, core_1.Opt)(StringNode({ validator: 'team' })),\r\n location: (0, core_1.Opt)(Reference('location_predicate')),\r\n stepping_on: (0, core_1.Opt)(Reference('location_predicate')),\r\n distance: (0, core_1.Opt)(Reference('distance_predicate')),\r\n flags: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n is_on_fire: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_sneaking: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_sprinting: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_swimming: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_baby: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n })),\r\n equipment: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ enum: 'slot' }), Reference('item_predicate'))),\r\n vehicle: (0, core_1.Opt)(Reference('entity_predicate')),\r\n passenger: (0, core_1.Opt)(Reference('entity_predicate')),\r\n targeted_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n effects: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n is_explosion: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_fire: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_magic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_projectile: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_lightning: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_armor: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_invulnerability: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_magic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n source_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n direct_entity: (0, core_1.Opt)(Reference('entity_predicate'))\r\n }, { context: 'damage_source' }));\r\n schemas.register('damage_predicate', (0, core_1.ObjectNode)({\r\n dealt: Reference('float_bounds'),\r\n taken: Reference('float_bounds'),\r\n blocked: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n source_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n type: (0, 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', (0, core_1.Mod)((0, 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: (0, core_1.Opt)(StringNode({ enum: 'recipe_group', additional: true })),\r\n pattern: (0, core_1.ListNode)(StringNode()),\r\n key: (0, 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: (0, core_1.Opt)(StringNode()),\r\n ingredients: (0, core_1.ListNode)(Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:smelting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 200 }))\r\n },\r\n 'minecraft:blasting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:smoking': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:campfire_cooking': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:stonecutting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:smithing': {\r\n group: (0, 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', (0, core_1.Mod)((0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n item: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.Opt)((0, core_1.Mod)((0, 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) => (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n replace: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n values: (0, core_1.ListNode)((0, 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: (0, core_1.ObjectNode)({\r\n id: StringNode({ validator: 'resource', params: { pool: type, allowTag: true, allowUnknown: true } }),\r\n required: (0, 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 schemas.register('advancement_tag', TagBase('$advancement'));\r\n schemas.register('dimension_tag', TagBase('$dimension'));\r\n schemas.register('dimension_type_tag', TagBase('$dimension_type'));\r\n schemas.register('function_tag', TagBase('$function'));\r\n schemas.register('item_modifier_tag', TagBase('$item_modifier'));\r\n schemas.register('loot_table_tag', TagBase('$loot_table'));\r\n schemas.register('predicate_tag', TagBase('$predicate'));\r\n schemas.register('recipe_tag', TagBase('$recipe'));\r\n schemas.register('structure_tag', TagBase('$structure'));\r\n schemas.register('biome_tag', TagBase('$worldgen/biome'));\r\n schemas.register('configured_carver_tag', TagBase('$worldgen/configured_carver'));\r\n schemas.register('configured_feature_tag', TagBase('$worldgen/configured_feature'));\r\n schemas.register('structure_tag', TagBase('$worldgen/structure'));\r\n schemas.register('configured_surface_builder_tag', TagBase('$worldgen/configured_surface_builder'));\r\n schemas.register('density_function_tag', TagBase('$worldgen/density_function'));\r\n schemas.register('flat_level_generator_preset_tag', TagBase('$worldgen/flat_level_generator_preset'));\r\n schemas.register('noise_tag', TagBase('$worldgen/noise'));\r\n schemas.register('noise_settings_tag', TagBase('$worldgen/noise_settings'));\r\n schemas.register('placed_feature_tag', TagBase('$worldgen/placed_feature'));\r\n schemas.register('processor_list_tag', TagBase('$worldgen/processor_list'));\r\n schemas.register('structure_set_tag', TagBase('$worldgen/structure_set'));\r\n schemas.register('template_pool_tag', TagBase('$worldgen/template_pool'));\r\n schemas.register('world_preset_tag', TagBase('$worldgen/world_preset'));\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', (0, core_1.Mod)((0, 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: (0, 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: (0, 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 StyleFields = {\r\n color: (0, core_1.Opt)(StringNode()) /* TODO */,\r\n font: (0, core_1.Opt)(StringNode()),\r\n bold: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n italic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n underlined: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n strikethrough: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n obfuscated: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n insertion: (0, core_1.Opt)(StringNode()),\r\n };\r\n schemas.register('text_style', (0, core_1.ObjectNode)({\r\n ...StyleFields\r\n }, { context: 'text_component_object' }));\r\n const CommonFields = {\r\n ...StyleFields,\r\n clickEvent: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(Reference('text_component')),\r\n contents: (0, core_1.Opt)(Reference('text_component'))\r\n },\r\n 'show_item': {\r\n value: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { module: 'util::InventoryItem' } })),\r\n contents: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n id: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n tag: (0, 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: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n name: (0, core_1.Opt)(StringNode()),\r\n type: (0, core_1.Opt)(StringNode()),\r\n id: (0, core_1.Opt)(StringNode())\r\n })),\r\n contents: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n name: (0, 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: (0, core_1.Opt)(Reference('text_component_list'))\r\n };\r\n schemas.register('text_component_object', (0, core_1.Mod)((0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n translate: StringNode(),\r\n with: (0, 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: (0, core_1.ObjectNode)({\r\n score: (0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n selector: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } }),\r\n separator: (0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n nbt: StringNode({ validator: 'nbt_path' }),\r\n block: (0, core_1.Opt)(StringNode({ validator: 'vector', params: { dimension: 3, isInteger: true } })),\r\n entity: (0, core_1.Opt)(StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } })),\r\n storage: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$storage' } })),\r\n interpret: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n separator: (0, 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', (0, core_1.Mod)((0, 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.MobCategorySpawnSettings = 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.MobCategorySpawnSettings = (0, core_1.Mod)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n weight: (0, core_1.NumberNode)({ integer: true }),\r\n minCount: (0, core_1.NumberNode)({ integer: true }),\r\n maxCount: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n temperature: (0, core_1.NumberNode)(),\r\n downfall: (0, core_1.NumberNode)(),\r\n precipitation: StringNode({ enum: ['none', 'rain', 'snow'] }),\r\n temperature_modifier: (0, core_1.Opt)(StringNode({ enum: ['none', 'frozen'] })),\r\n creature_spawn_probability: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n effects: (0, core_1.ObjectNode)({\r\n sky_color: (0, core_1.NumberNode)({ color: true }),\r\n fog_color: (0, core_1.NumberNode)({ color: true }),\r\n water_color: (0, core_1.NumberNode)({ color: true }),\r\n water_fog_color: (0, core_1.NumberNode)({ color: true }),\r\n grass_color: (0, core_1.Opt)((0, core_1.NumberNode)({ color: true })),\r\n foliage_color: (0, core_1.Opt)((0, core_1.NumberNode)({ color: true })),\r\n grass_color_modifier: (0, core_1.Opt)(StringNode({ enum: ['none', 'dark_forest', 'swamp'] })),\r\n ambient_sound: (0, core_1.Opt)(StringNode()),\r\n mood_sound: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n sound: StringNode(),\r\n tick_delay: (0, core_1.NumberNode)({ integer: true }),\r\n block_search_extent: (0, core_1.NumberNode)({ integer: true }),\r\n offset: (0, core_1.NumberNode)()\r\n })),\r\n additions_sound: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n sound: StringNode(),\r\n tick_chance: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n })),\r\n music: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n sound: StringNode(),\r\n min_delay: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n max_delay: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n replace_current_music: (0, core_1.BooleanNode)()\r\n })),\r\n particle: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n options: (0, core_1.ObjectNode)({\r\n type: StringNode()\r\n }),\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n }))\r\n }),\r\n spawners: (0, core_1.MapNode)(StringNode({ enum: 'mob_category' }), exports.MobCategorySpawnSettings),\r\n spawn_costs: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'entity_type' } }), (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n energy_budget: (0, core_1.NumberNode)(),\r\n charge: (0, 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: (0, core_1.MapNode)(StringNode({ enum: ['air', 'liquid'] }), (0, core_1.Mod)((0, Common_1.Tag)({ resource: '$worldgen/configured_carver', inlineSchema: 'configured_carver' }), {\r\n default: () => ['minecraft:cave']\r\n })),\r\n features: (0, core_1.ListNode)((0, core_1.Mod)((0, 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: (0, Common_1.FloatProvider)(),\r\n shape: (0, core_1.ObjectNode)({\r\n distance_factor: (0, Common_1.FloatProvider)(),\r\n thickness: (0, Common_1.FloatProvider)(),\r\n width_smoothness: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n horizontal_radius_factor: (0, Common_1.FloatProvider)(),\r\n vertical_radius_default_factor: (0, core_1.NumberNode)(),\r\n vertical_radius_center_factor: (0, core_1.NumberNode)()\r\n })\r\n };\r\n const CaveConfig = {\r\n horizontal_radius_multiplier: (0, Common_1.FloatProvider)(),\r\n vertical_radius_multiplier: (0, Common_1.FloatProvider)(),\r\n floor_level: (0, Common_1.FloatProvider)({ min: -1, max: 1 }),\r\n };\r\n schemas.register('configured_carver', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/carver' } }),\r\n config: (0, core_1.ObjectNode)({\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n y: Reference('height_provider'),\r\n yScale: (0, Common_1.FloatProvider)(),\r\n lava_level: Reference('vertical_anchor'),\r\n replaceable: (0, Common_1.Tag)({ resource: 'block' }),\r\n debug_settings: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n debug_mode: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n air_state: (0, core_1.Opt)(Reference('block_state')),\r\n water_state: (0, core_1.Opt)(Reference('block_state')),\r\n lava_state: (0, core_1.Opt)(Reference('block_state')),\r\n barrier_state: (0, 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', (0, 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: (0, core_1.NumberNode)({ integer: true, min: 0 })\r\n },\r\n 'minecraft:count': {\r\n count: (0, Common_1.IntProvider)({ min: 0, max: 256 })\r\n },\r\n 'minecraft:count_on_every_layer': {\r\n count: (0, Common_1.IntProvider)({ min: 0, max: 256 })\r\n },\r\n 'minecraft:noise_threshold_count': {\r\n noise_level: (0, core_1.NumberNode)(),\r\n below_noise: (0, core_1.NumberNode)({ integer: true }),\r\n above_noise: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:noise_based_count': {\r\n noise_to_count_ratio: (0, core_1.NumberNode)({ integer: true }),\r\n noise_factor: (0, core_1.NumberNode)(),\r\n noise_offset: (0, core_1.Opt)((0, core_1.NumberNode)())\r\n },\r\n 'minecraft:environment_scan': {\r\n direction_of_search: StringNode({ enum: ['up', 'down'] }),\r\n max_steps: (0, core_1.NumberNode)({ integer: true, min: 1, max: 32 }),\r\n target_condition: Reference('block_predicate_worldgen'),\r\n allowed_search_condition: (0, 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: (0, Common_1.IntProvider)({ min: -16, max: 16 }),\r\n y_spread: (0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n max_inclusive: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:surface_water_depth_filter': {\r\n max_water_depth: (0, 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 = (0, core_1.Mod)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'number',\r\n node: (0, 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 = (0, 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 = (0, core_1.NumberNode)({ min: -1000000, max: 1000000 });\r\n const YRange = (0, core_1.NumberNode)({ integer: true, min: -2032 * 2, max: 2031 * 2 });\r\n schemas.register('density_function', (0, core_1.Mod)((0, 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:blend_density': {\r\n argument: 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:constant': {\r\n argument: (0, core_1.NumberNode)(),\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: (0, core_1.NumberNode)(),\r\n y_scale: (0, core_1.NumberNode)(),\r\n },\r\n 'minecraft:old_blended_noise': {\r\n xz_scale: (0, core_1.NumberNode)(),\r\n y_scale: (0, core_1.NumberNode)(),\r\n xz_factor: (0, core_1.NumberNode)(),\r\n y_factor: (0, core_1.NumberNode)(),\r\n smear_scale_multiplier: (0, core_1.NumberNode)({ min: 1, max: 8 }),\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: (0, core_1.NumberNode)(),\r\n y_scale: (0, 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:spline': {\r\n spline: Reference('cubic_spline'),\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: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 }), {\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 }));\r\n schemas.register('cubic_spline', (0, core_1.Mod)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'number',\r\n node: (0, core_1.NumberNode)()\r\n },\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)({\r\n coordinate: exports.DensityFunction,\r\n points: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n location: (0, core_1.NumberNode)(),\r\n derivative: (0, core_1.NumberNode)(),\r\n value: Reference('cubic_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.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\nconst Common_1 = require(\"../Common\");\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 = (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n processors: (0, 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', (0, core_1.Mod)((0, 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: (0, core_1.NumberNode)()\r\n },\r\n 'minecraft:block_ignore': {\r\n blocks: (0, core_1.ListNode)(Reference('block_state'))\r\n },\r\n 'minecraft:block_rot': {\r\n integrity: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n rottable_blocks: (0, core_1.Opt)((0, Common_1.Tag)({ resource: 'block' }))\r\n },\r\n 'minecraft:gravity': {\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n offset: (0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n position_predicate: (0, 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: (0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 255, integer: true })),\r\n max_dist: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 255, integer: true })),\r\n min_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n max_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 }))\r\n };\r\n schemas.register('pos_rule_test', (0, 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', (0, 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: (0, 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: (0, 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 = (0, 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 = (0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 1 })),\r\n xz_spread: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0 })),\r\n y_spread: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0 })),\r\n feature: PlacedFeature,\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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n };\r\n const TargetBlockState = (0, core_1.ObjectNode)({\r\n target: Reference('rule_test'),\r\n state: Reference('block_state')\r\n });\r\n const OreConfig = {\r\n size: (0, core_1.NumberNode)({ integer: true, min: 0, max: 64 }),\r\n discard_chance_on_air_exposure: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n targets: (0, core_1.ListNode)(TargetBlockState)\r\n };\r\n const VegetationPatchConfig = {\r\n surface: StringNode({ enum: 'cave_surface' }),\r\n depth: (0, Common_1.IntProvider)({ min: 1, max: 128 }),\r\n vertical_range: (0, core_1.NumberNode)({ integer: true, min: 1, max: 256 }),\r\n extra_bottom_block_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n extra_edge_column_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n vegetation_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n xz_radius: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature' } }),\r\n config: (0, core_1.ObjectNode)({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bamboo': {\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:basalt_columns': {\r\n reach: (0, Common_1.IntProvider)({ min: 0, max: 3 }),\r\n height: (0, 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: (0, core_1.BooleanNode)(),\r\n layers: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n height: (0, 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: (0, Common_1.IntProvider)({ min: 0, max: 16 }),\r\n rim_size: (0, Common_1.IntProvider)({ min: 0, max: 16 })\r\n },\r\n 'minecraft:disk': {\r\n state_provider: Reference('rule_based_block_state_provider'),\r\n target: Reference('block_predicate_worldgen'),\r\n radius: (0, Common_1.IntProvider)({ min: 0, max: 8 }),\r\n half_height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4 }),\r\n },\r\n 'minecraft:dripstone_cluster': {\r\n floor_to_ceiling_search_range: (0, core_1.NumberNode)({ integer: true, min: 1, max: 512 }),\r\n height: (0, Common_1.IntProvider)({ min: 0, max: 128 }),\r\n radius: (0, Common_1.IntProvider)({ min: 0, max: 128 }),\r\n max_stalagmite_stalactite_height_diff: (0, core_1.NumberNode)({ integer: true, min: 0, max: 64 }),\r\n height_deviation: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n dripstone_block_layer_thickness: (0, Common_1.IntProvider)({ min: 0, max: 128 }),\r\n density: (0, Common_1.FloatProvider)({ min: 0, max: 2 }),\r\n wetness: (0, Common_1.FloatProvider)({ min: 0, max: 2 }),\r\n chance_of_dripstone_column_at_max_distance_from_center: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n max_distance_from_edge_affecting_chance_of_dripstone_column: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n max_distance_from_center_affecting_height_bias: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 })\r\n },\r\n 'minecraft:end_gateway': {\r\n exact: (0, core_1.BooleanNode)(),\r\n exit: (0, core_1.Opt)(Reference('block_pos'))\r\n },\r\n 'minecraft:end_spike': {\r\n crystal_invulnerable: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n crystal_beam_target: (0, core_1.Opt)(Reference('block_pos')),\r\n spikes: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n centerX: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n centerZ: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n radius: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n height: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n guarded: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n }))\r\n },\r\n 'minecraft:fill_layer': {\r\n state: Reference('block_state'),\r\n height: (0, 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: (0, core_1.NumberNode)({ integer: true, min: 0, max: 7 }),\r\n fossil_structures: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$structure' } })),\r\n overlay_structures: (0, 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: (0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n filling: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n inner_layer: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n middle_layer: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n outer_layer: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n }),\r\n crack: (0, core_1.ObjectNode)({\r\n generate_crack_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n base_crack_size: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 5 })),\r\n crack_point_offset: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 10 })),\r\n }),\r\n noise_multiplier: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n use_potential_placements_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n use_alternate_layer0_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n placements_require_layer0_alternate: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n outer_wall_distance: (0, core_1.Opt)((0, Common_1.IntProvider)({ min: 1, max: 20 })),\r\n distribution_points: (0, core_1.Opt)((0, Common_1.IntProvider)({ min: 1, max: 20 })),\r\n point_offset: (0, core_1.Opt)((0, Common_1.IntProvider)({ min: 0, max: 10 })),\r\n min_gen_offset: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n max_gen_offset: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n invalid_blocks_threshold: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:multiface_growth': {\r\n search_range: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 1, max: 64, integer: true })),\r\n chance_of_spreading: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n can_place_on_floor: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n can_place_on_ceiling: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n can_place_on_wall: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n can_be_placed_on: (0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:huge_red_mushroom': HugeMushroomConfig,\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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 1, max: 512 })),\r\n column_radius: (0, Common_1.IntProvider)({ min: 0, max: 60 }),\r\n height_scale: (0, Common_1.FloatProvider)({ min: 0, max: 20 }),\r\n max_column_radius_to_cave_height_ratio: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n stalactite_bluntness: (0, Common_1.FloatProvider)({ min: 0.1, max: 10 }),\r\n stalagmite_bluntness: (0, Common_1.FloatProvider)({ min: 0.1, max: 10 }),\r\n wind_speed: (0, Common_1.FloatProvider)({ min: 0, max: 2 }),\r\n min_radius_for_wind: (0, core_1.NumberNode)({ integer: true, min: 0, max: 100 }),\r\n min_bluntness_for_wind: (0, 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: (0, core_1.NumberNode)({ integer: true, min: 1 }),\r\n spread_height: (0, 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: (0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n chance_of_directional_spread: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n chance_of_spread_radius2: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n chance_of_spread_radius3: (0, core_1.Opt)((0, 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: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n chance: (0, 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: (0, core_1.ListNode)(TargetBlockState)\r\n },\r\n 'minecraft:root_system': {\r\n required_vertical_space_for_tree: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n root_radius: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n root_placement_attempts: (0, core_1.NumberNode)({ integer: true, min: 1, max: 256 }),\r\n root_column_max_height: (0, core_1.NumberNode)({ integer: true, min: 1, max: 4096 }),\r\n hanging_root_radius: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n hanging_roots_vertical_span: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 }),\r\n hanging_root_placement_attempts: (0, core_1.NumberNode)({ integer: true, min: 0, max: 256 }),\r\n allowed_vertical_water_for_tree: (0, 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:sculk_patch': {\r\n charge_count: (0, core_1.NumberNode)({ integer: true, min: 1, max: 32 }),\r\n amount_per_charge: (0, core_1.NumberNode)({ integer: true, min: 1, max: 500 }),\r\n spread_attempts: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n growth_rounds: (0, core_1.NumberNode)({ integer: true, min: 0, max: 8 }),\r\n spread_rounds: (0, core_1.NumberNode)({ integer: true, min: 0, max: 8 }),\r\n extra_rare_growths: (0, Common_1.IntProvider)(),\r\n catalyst_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n },\r\n 'minecraft:sea_pickle': {\r\n count: (0, Common_1.IntProvider)({ min: 0, max: 256 })\r\n },\r\n 'minecraft:seagrass': {\r\n probability: (0, 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: (0, 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: (0, core_1.NumberNode)({ integer: true }),\r\n hole_count: (0, core_1.NumberNode)({ integer: true }),\r\n requires_block_below: (0, core_1.BooleanNode)(),\r\n valid_blocks: (0, Common_1.Tag)({ resource: 'block' })\r\n },\r\n 'minecraft:tree': {\r\n ignore_vines: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n force_dirt: (0, core_1.Opt)((0, 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 root_placer: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/root_placer_type' } }),\r\n root_provider: Reference('block_state_provider'),\r\n trunk_offset_y: (0, Common_1.IntProvider)(),\r\n above_root_placement: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n above_root_provider: Reference('block_state_provider'),\r\n above_root_placement_chance: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n })),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:mangrove_root_placer': {\r\n mangrove_root_placement: (0, core_1.ObjectNode)({\r\n max_root_width: (0, core_1.NumberNode)({ integer: true, min: 1, max: 12 }),\r\n max_root_length: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n random_skew_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n can_grow_through: (0, Common_1.Tag)({ resource: 'block' }),\r\n muddy_roots_in: (0, Common_1.Tag)({ resource: 'block' }),\r\n muddy_roots_provider: Reference('block_state_provider'),\r\n })\r\n }\r\n }\r\n }, { context: 'root_placer' })),\r\n trunk_placer: (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/trunk_placer_type' } }),\r\n base_height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 32 }),\r\n height_rand_a: (0, core_1.NumberNode)({ integer: true, min: 0, max: 24 }),\r\n height_rand_b: (0, 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: (0, Common_1.IntProvider)({ min: 1, max: 64 }),\r\n min_height_for_leaves: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 1 }))\r\n },\r\n 'minecraft:upwards_branching_trunk_placer': {\r\n extra_branch_steps: (0, Common_1.IntProvider)({ min: 1 }),\r\n extra_branch_length: (0, Common_1.IntProvider)({ min: 0 }),\r\n place_branch_per_log_probability: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n can_grow_through: (0, Common_1.Tag)({ resource: 'block' })\r\n }\r\n }\r\n }, { context: 'trunk_placer' }),\r\n foliage_placer: (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/foliage_placer_type' } }),\r\n radius: (0, Common_1.IntProvider)({ min: 0, max: 16 }),\r\n offset: (0, 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: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:bush_foliage_placer': {\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:fancy_foliage_placer': {\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:jungle_foliage_placer': {\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:mega_pine_foliage_placer': {\r\n crown_height: (0, Common_1.IntProvider)({ min: 0, max: 24 })\r\n },\r\n 'minecraft:pine_foliage_placer': {\r\n height: (0, Common_1.IntProvider)({ min: 0, max: 24 })\r\n },\r\n 'minecraft:random_spread_foliage_placer': {\r\n foliage_height: (0, Common_1.IntProvider)({ min: 1, max: 512 }),\r\n leaf_placement_attempts: (0, core_1.NumberNode)({ integer: true, min: 0, max: 256 })\r\n },\r\n 'minecraft:spruce_foliage_placer': {\r\n trunk_height: (0, Common_1.IntProvider)({ min: 0, max: 24 })\r\n }\r\n }\r\n }, { context: 'foliage_placer', disableSwitchContext: true }),\r\n decorators: (0, core_1.ListNode)((0, 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:attached_to_leaves': {\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n exclusion_radius_xz: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 }),\r\n exclusion_radius_y: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 }),\r\n required_empty_blocks: (0, core_1.NumberNode)({ integer: true, min: 1, max: 16 }),\r\n block_provider: Reference('block_state_provider'),\r\n directions: (0, core_1.ListNode)(StringNode({ enum: 'direction' }))\r\n },\r\n 'minecraft:beehive': {\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:cocoa': {\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:leave_vine': {\r\n probability: (0, 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: (0, core_1.NumberNode)({ integer: true, min: 1 }),\r\n spread_height: (0, core_1.NumberNode)({ integer: true, min: 1 }),\r\n max_height: (0, core_1.NumberNode)({ integer: true, min: 1 }),\r\n },\r\n 'minecraft:underwater_magma': {\r\n floor_search_range: (0, core_1.NumberNode)({ integer: true, min: 0, max: 512 }),\r\n placement_radius_around_floor: (0, core_1.NumberNode)({ integer: true, min: 0, max: 64 }),\r\n placement_probability_per_valid_position: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n feature: ConfiguredFeature,\r\n placement: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature_size_type' } }),\r\n min_clipped_height: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 81 })),\r\n lower_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })),\r\n upper_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 }))\r\n },\r\n 'minecraft:three_layers_feature_size': {\r\n limit: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 80 })),\r\n upper_limit: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 80 })),\r\n lower_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })),\r\n middle_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })),\r\n upper_size: (0, core_1.Opt)((0, 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: (0, core_1.NumberNode)({ integer: true }),\r\n noise: Reference('noise_parameters'),\r\n scale: (0, core_1.Mod)((0, core_1.NumberNode)({ min: Number.MIN_VALUE }), { default: () => 1 })\r\n };\r\n schemas.register('block_state_provider', (0, core_1.Mod)((0, 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: (0, Common_1.InclusiveRange)({ integer: true, min: 1, max: 64 }),\r\n slow_noise: Reference('noise_parameters'),\r\n slow_scale: (0, core_1.Mod)((0, core_1.NumberNode)({ min: Number.MIN_VALUE }), { default: () => 1 }),\r\n states: (0, core_1.ListNode)(Reference('block_state'))\r\n },\r\n 'minecraft:noise_threshold_provider': {\r\n ...NoiseProvider,\r\n threshold: (0, core_1.NumberNode)({ min: -1, max: 1 }),\r\n high_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n default_state: Reference('block_state'),\r\n low_states: (0, core_1.ListNode)(Reference('block_state')),\r\n high_states: (0, core_1.ListNode)(Reference('block_state'))\r\n },\r\n 'minecraft:noise_provider': {\r\n ...NoiseProvider,\r\n states: (0, core_1.ListNode)(Reference('block_state'))\r\n },\r\n 'minecraft:randomized_int_state_provider': {\r\n property: StringNode(),\r\n values: (0, 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: (0, core_1.ListNode)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n weight: (0, 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('rule_based_block_state_provider', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n fallback: Reference('block_state_provider'),\r\n rules: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n if_true: Reference('block_predicate_worldgen'),\r\n then: Reference('block_state_provider')\r\n }))\r\n }, { context: 'block_state_provider' }), {\r\n default: () => ({\r\n fallback: {\r\n type: 'minecraft:simple_state_provider'\r\n }\r\n })\r\n }));\r\n const Offset = {\r\n offset: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.NumberNode)({ integer: true, min: -16, max: 16 }), { minLength: 3, maxLength: 3 }))\r\n };\r\n schemas.register('block_predicate_worldgen', (0, core_1.Mod)((0, 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: (0, core_1.ListNode)(Reference('block_predicate_worldgen'))\r\n },\r\n 'minecraft:any_of': {\r\n predicates: (0, 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: (0, Common_1.Tag)({ resource: 'block' })\r\n },\r\n 'minecraft:matching_fluids': {\r\n ...Offset,\r\n fluids: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n sea_level: (0, core_1.NumberNode)({ integer: true }),\r\n disable_mob_generation: (0, core_1.BooleanNode)(),\r\n aquifers_enabled: (0, core_1.BooleanNode)(),\r\n ore_veins_enabled: (0, core_1.BooleanNode)(),\r\n legacy_random_source: (0, core_1.BooleanNode)(),\r\n default_block: Reference('block_state'),\r\n default_fluid: Reference('block_state'),\r\n noise: (0, core_1.ObjectNode)({\r\n min_y: (0, core_1.NumberNode)({ integer: true, min: -2048, max: 2047 }),\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4096 }),\r\n size_horizontal: (0, core_1.NumberNode)({ integer: true }),\r\n size_vertical: (0, core_1.NumberNode)({ integer: true }),\r\n }),\r\n noise_router: (0, 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 ridges: 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 spawn_target: (0, core_1.ListNode)(Reference('parameter_point')),\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', (0, core_1.ObjectNode)({\r\n target: (0, core_1.NumberNode)(),\r\n size: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n offset: (0, core_1.NumberNode)({ integer: true })\r\n }));\r\n schemas.register('generator_layer', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n height: (0, 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.initStructureSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nconst Biome_1 = require(\"./Biome\");\r\nfunction initStructureSchemas(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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_type' } }),\r\n biomes: (0, Common_1.Tag)({ resource: '$worldgen/biome' }),\r\n step: StringNode({ enum: 'decoration_step' }),\r\n spawn_overrides: (0, core_1.MapNode)(StringNode({ enum: 'mob_category' }), (0, core_1.ObjectNode)({\r\n bounding_box: StringNode({ enum: ['piece', 'full'] }),\r\n spawns: Biome_1.MobCategorySpawnSettings,\r\n })),\r\n terrain_adaptation: (0, core_1.Opt)(StringNode({ enum: ['none', 'beard_thin', 'beard_box', 'bury'] })),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:jigsaw': {\r\n start_pool: StringNode({ validator: 'resource', params: { pool: '$worldgen/template_pool' } }),\r\n size: (0, core_1.NumberNode)({ integer: true }),\r\n start_height: Reference('height_provider'),\r\n start_jigsaw_name: (0, core_1.Opt)(StringNode()),\r\n project_start_to_heightmap: (0, core_1.Opt)(StringNode({ enum: 'heightmap_type' })),\r\n max_distance_from_center: (0, core_1.NumberNode)({ integer: true, min: 1, max: 128 }),\r\n use_expansion_hack: (0, core_1.BooleanNode)(),\r\n },\r\n 'minecraft:mineshaft': {\r\n mineshaft_type: StringNode({ enum: ['normal', 'mesa'] }),\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: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n cluster_probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:ruined_portal': {\r\n setups: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n placement: StringNode({ enum: ['on_land_surface', 'partly_buried', 'on_ocean_floor', 'in_mountain', 'underground', 'in_nether'] }),\r\n air_pocket_probability: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n mossiness: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n overgrown: (0, core_1.BooleanNode)(),\r\n vines: (0, core_1.BooleanNode)(),\r\n can_be_cold: (0, core_1.BooleanNode)(),\r\n replace_with_blackstone: (0, core_1.BooleanNode)(),\r\n weight: (0, core_1.NumberNode)({ min: 0 })\r\n }))\r\n },\r\n 'minecraft:shipwreck': {\r\n is_beached: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n }\r\n }\r\n }, { context: 'structure_feature' }), {\r\n default: () => ({\r\n type: 'minecraft:jigsaw',\r\n step: 'surface_structures',\r\n size: 6,\r\n })\r\n }));\r\n}\r\nexports.initStructureSchemas = initStructureSchemas;\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 const StructureSet = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/structure_set' } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('structure_set')\r\n }\r\n ], { choiceContext: 'structure_set' });\r\n schemas.register('structure_set', (0, core_1.ObjectNode)({\r\n structures: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n structure: (0, Common_1.Tag)({ resource: '$worldgen/structure' }),\r\n weight: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_placement' } }),\r\n salt: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n frequency_reduction_method: (0, core_1.Opt)(StringNode({ enum: ['default', 'legacy_type_1', 'legacy_type_2', 'legacy_type_3'] })),\r\n frequency: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n exclusion_zone: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n other_set: StructureSet,\r\n chunk_count: (0, core_1.NumberNode)({ integer: true, min: 1, max: 16 })\r\n })),\r\n locate_offset: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.NumberNode)({ integer: true, min: -16, max: 16 }), { minLength: 3, maxLength: 3 })),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:concentric_rings': {\r\n distance: (0, core_1.NumberNode)({ integer: true, min: 0, max: 1023 }),\r\n spread: (0, core_1.NumberNode)({ integer: true, min: 0, max: 1023 }),\r\n count: (0, core_1.NumberNode)({ integer: true, min: 1, max: 4095 }),\r\n preferred_biomes: (0, Common_1.Tag)({ resource: '$worldgen/biome' })\r\n },\r\n 'minecraft:random_spread': {\r\n spread_type: (0, core_1.Opt)(StringNode({ enum: ['linear', 'triangular'] })),\r\n spacing: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4096 }),\r\n separation: (0, core_1.Mod)((0, 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 }\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', (0, core_1.Mod)((0, 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: (0, 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', (0, core_1.Mod)((0, 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: (0, 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: (0, core_1.NumberNode)(),\r\n max_threshold: (0, 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: (0, core_1.NumberNode)({ integer: true }),\r\n surface_type: StringNode({ enum: 'cave_surface' }),\r\n add_surface_depth: (0, core_1.BooleanNode)(),\r\n secondary_depth_range: (0, 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: (0, core_1.NumberNode)({ integer: true }),\r\n surface_depth_multiplier: (0, core_1.NumberNode)({ integer: true, min: -20, max: 20 }),\r\n add_stone_depth: (0, core_1.BooleanNode)()\r\n },\r\n 'minecraft:y_above': {\r\n anchor: Reference('vertical_anchor'),\r\n surface_depth_multiplier: (0, core_1.NumberNode)({ integer: true, min: -20, max: 20 }),\r\n add_stone_depth: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n name: StringNode(),\r\n fallback: StringNode(),\r\n elements: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n weight: (0, 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', (0, core_1.Mod)((0, 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: (0, 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.initWorldPresetSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initWorldPresetSchemas(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('world_preset', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n dimensions: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: '$dimension', isDefinition: true } }), Reference('dimension'))\r\n }, { context: 'world_preset' }), {\r\n default: () => ({\r\n dimensions: {\r\n 'minecraft:overworld': {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\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 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 biome_source: {\r\n type: 'minecraft:the_end',\r\n },\r\n settings: 'minecraft:end',\r\n },\r\n },\r\n }\r\n })\r\n }));\r\n schemas.register('flat_level_generator_preset', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n display: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n settings: Reference('flat_generator_settings'),\r\n }), {\r\n default: () => ({\r\n display: 'minecraft:grass_block',\r\n settings: {\r\n lakes: false,\r\n features: false,\r\n biome: 'minecraft:plains',\r\n structure_overrides: [],\r\n layers: [\r\n {\r\n height: 3,\r\n block: 'minecraft:dirt'\r\n },\r\n {\r\n height: 1,\r\n block: 'minecraft:grass_block'\r\n }\r\n ]\r\n }\r\n })\r\n }));\r\n}\r\nexports.initWorldPresetSchemas = initWorldPresetSchemas;\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 Structure_1 = require(\"./Structure\");\r\nconst StructureSet_1 = require(\"./StructureSet\");\r\nconst SurfaceRule_1 = require(\"./SurfaceRule\");\r\nconst TemplatePool_1 = require(\"./TemplatePool\");\r\nconst WorldPreset_1 = require(\"./WorldPreset\");\r\nfunction initWorldgenSchemas(schemas, collections) {\r\n // `ProcessorList.ts`, `DensityFunction.ts`, and `Biome.ts` have exports. They should be initialized first. \r\n (0, ProcessorList_1.initProcessorListSchemas)(schemas, collections);\r\n (0, DensityFunction_1.initDensityFunctionSchemas)(schemas, collections);\r\n (0, Biome_1.initBiomeSchemas)(schemas, collections);\r\n (0, Carver_1.initCarverSchemas)(schemas, collections);\r\n (0, Decorator_1.initDecoratorSchemas)(schemas, collections);\r\n (0, Feature_1.initFeatureSchemas)(schemas, collections);\r\n (0, NoiseSettings_1.initNoiseSettingsSchemas)(schemas, collections);\r\n (0, Structure_1.initStructureSchemas)(schemas, collections);\r\n (0, StructureSet_1.initStructureSetSchemas)(schemas, collections);\r\n (0, SurfaceRule_1.initSurfaceRuleSchemas)(schemas, collections);\r\n (0, TemplatePool_1.initTemplatePoolSchemas)(schemas, collections);\r\n (0, WorldPreset_1.initWorldPresetSchemas)(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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n generate_features: (0, core_1.BooleanNode)(),\r\n bonus_chest: (0, core_1.BooleanNode)(),\r\n seed: (0, core_1.NumberNode)({ integer: true }),\r\n dimensions: (0, 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 ChatType_1 = require(\"./ChatType\");\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 (0, Common_1.initCommonSchemas)(schemas, collections);\r\n (0, ChatType_1.initChatTypeSchemas)(schemas, collections);\r\n (0, Advancement_1.initAdvancementSchemas)(schemas, collections);\r\n (0, assets_1.initAssetsSchemas)(schemas, collections);\r\n (0, Condition_1.initConditionSchemas)(schemas, collections);\r\n (0, DimensionType_1.initDimensionTypeSchemas)(schemas, collections);\r\n (0, Dimension_1.initDimensionSchemas)(schemas, collections);\r\n (0, ItemModifier_1.initItemModifierSchemas)(schemas, collections);\r\n (0, LootTable_1.initLootTableSchemas)(schemas, collections);\r\n (0, PackMcmeta_1.initPackMcmetaSchemas)(schemas, collections);\r\n (0, Predicates_1.initPredicatesSchemas)(schemas, collections);\r\n (0, Recipe_1.initRecipeSchemas)(schemas, collections);\r\n (0, Tags_1.initTagsSchemas)(schemas, collections);\r\n (0, TextComponent_1.initTextComponentSchemas)(schemas, collections);\r\n (0, worldgen_1.initWorldgenSchemas)(schemas, collections);\r\n (0, 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 var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\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.prototype.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 = exports.lootContext = 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 (0, 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 (0, schemas_1.initSchemas)(schemas, collections);\r\n return schemas;\r\n}\r\nexports.getSchemas = getSchemas;\r\n","// Copyright (c) 2013 Pieroxy <pieroxy@pieroxy.net>\n// This work is free. You can redistribute it and/or modify it\n// under the terms of the WTFPL, Version 2\n// For more information see LICENSE.txt or http://www.wtfpl.net/\n//\n// For more information, the home page:\n// http://pieroxy.net/blog/pages/lz-string/testing.html\n//\n// LZ-based compression algorithm, version 1.4.4\nvar LZString = (function() {\n\n// private property\nvar f = String.fromCharCode;\nvar keyStrBase64 = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\nvar keyStrUriSafe = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$\";\nvar baseReverseDic = {};\n\nfunction getBaseValue(alphabet, character) {\n if (!baseReverseDic[alphabet]) {\n baseReverseDic[alphabet] = {};\n for (var i=0 ; i<alphabet.length ; i++) {\n baseReverseDic[alphabet][alphabet.charAt(i)] = i;\n }\n }\n return baseReverseDic[alphabet][character];\n}\n\nvar LZString = {\n compressToBase64 : function (input) {\n if (input == null) return \"\";\n var res = LZString._compress(input, 6, function(a){return keyStrBase64.charAt(a);});\n switch (res.length % 4) { // To produce valid Base64\n default: // When could this happen ?\n case 0 : return res;\n case 1 : return res+\"===\";\n case 2 : return res+\"==\";\n case 3 : return res+\"=\";\n }\n },\n\n decompressFromBase64 : function (input) {\n if (input == null) return \"\";\n if (input == \"\") return null;\n return LZString._decompress(input.length, 32, function(index) { return getBaseValue(keyStrBase64, input.charAt(index)); });\n },\n\n compressToUTF16 : function (input) {\n if (input == null) return \"\";\n return LZString._compress(input, 15, function(a){return f(a+32);}) + \" \";\n },\n\n decompressFromUTF16: function (compressed) {\n if (compressed == null) return \"\";\n if (compressed == \"\") return null;\n return LZString._decompress(compressed.length, 16384, function(index) { return compressed.charCodeAt(index) - 32; });\n },\n\n //compress into uint8array (UCS-2 big endian format)\n compressToUint8Array: function (uncompressed) {\n var compressed = LZString.compress(uncompressed);\n var buf=new Uint8Array(compressed.length*2); // 2 bytes per character\n\n for (var i=0, TotalLen=compressed.length; i<TotalLen; i++) {\n var current_value = compressed.charCodeAt(i);\n buf[i*2] = current_value >>> 8;\n buf[i*2+1] = current_value % 256;\n }\n return buf;\n },\n\n //decompress from uint8array (UCS-2 big endian format)\n decompressFromUint8Array:function (compressed) {\n if (compressed===null || compressed===undefined){\n return LZString.decompress(compressed);\n } else {\n var buf=new Array(compressed.length/2); // 2 bytes per character\n for (var i=0, TotalLen=buf.length; i<TotalLen; i++) {\n buf[i]=compressed[i*2]*256+compressed[i*2+1];\n }\n\n var result = [];\n buf.forEach(function (c) {\n result.push(f(c));\n });\n return LZString.decompress(result.join(''));\n\n }\n\n },\n\n\n //compress into a string that is already URI encoded\n compressToEncodedURIComponent: function (input) {\n if (input == null) return \"\";\n return LZString._compress(input, 6, function(a){return keyStrUriSafe.charAt(a);});\n },\n\n //decompress from an output of compressToEncodedURIComponent\n decompressFromEncodedURIComponent:function (input) {\n if (input == null) return \"\";\n if (input == \"\") return null;\n input = input.replace(/ /g, \"+\");\n return LZString._decompress(input.length, 32, function(index) { return getBaseValue(keyStrUriSafe, input.charAt(index)); });\n },\n\n compress: function (uncompressed) {\n return LZString._compress(uncompressed, 16, function(a){return f(a);});\n },\n _compress: function (uncompressed, bitsPerChar, getCharFromInt) {\n if (uncompressed == null) return \"\";\n var i, value,\n context_dictionary= {},\n context_dictionaryToCreate= {},\n context_c=\"\",\n context_wc=\"\",\n context_w=\"\",\n context_enlargeIn= 2, // Compensate for the first entry which should not count\n context_dictSize= 3,\n context_numBits= 2,\n context_data=[],\n context_data_val=0,\n context_data_position=0,\n ii;\n\n for (ii = 0; ii < uncompressed.length; ii += 1) {\n context_c = uncompressed.charAt(ii);\n if (!Object.prototype.hasOwnProperty.call(context_dictionary,context_c)) {\n context_dictionary[context_c] = context_dictSize++;\n context_dictionaryToCreate[context_c] = true;\n }\n\n context_wc = context_w + context_c;\n if (Object.prototype.hasOwnProperty.call(context_dictionary,context_wc)) {\n context_w = context_wc;\n } else {\n if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate,context_w)) {\n if (context_w.charCodeAt(0)<256) {\n for (i=0 ; i<context_numBits ; i++) {\n context_data_val = (context_data_val << 1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n }\n value = context_w.charCodeAt(0);\n for (i=0 ; i<8 ; i++) {\n context_data_val = (context_data_val << 1) | (value&1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = value >> 1;\n }\n } else {\n value = 1;\n for (i=0 ; i<context_numBits ; i++) {\n context_data_val = (context_data_val << 1) | value;\n if (context_data_position ==bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = 0;\n }\n value = context_w.charCodeAt(0);\n for (i=0 ; i<16 ; i++) {\n context_data_val = (context_data_val << 1) | (value&1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = value >> 1;\n }\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n delete context_dictionaryToCreate[context_w];\n } else {\n value = context_dictionary[context_w];\n for (i=0 ; i<context_numBits ; i++) {\n context_data_val = (context_data_val << 1) | (value&1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = value >> 1;\n }\n\n\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n // Add wc to the dictionary.\n context_dictionary[context_wc] = context_dictSize++;\n context_w = String(context_c);\n }\n }\n\n // Output the code for w.\n if (context_w !== \"\") {\n if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate,context_w)) {\n if (context_w.charCodeAt(0)<256) {\n for (i=0 ; i<context_numBits ; i++) {\n context_data_val = (context_data_val << 1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n }\n value = context_w.charCodeAt(0);\n for (i=0 ; i<8 ; i++) {\n context_data_val = (context_data_val << 1) | (value&1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = value >> 1;\n }\n } else {\n value = 1;\n for (i=0 ; i<context_numBits ; i++) {\n context_data_val = (context_data_val << 1) | value;\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = 0;\n }\n value = context_w.charCodeAt(0);\n for (i=0 ; i<16 ; i++) {\n context_data_val = (context_data_val << 1) | (value&1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = value >> 1;\n }\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n delete context_dictionaryToCreate[context_w];\n } else {\n value = context_dictionary[context_w];\n for (i=0 ; i<context_numBits ; i++) {\n context_data_val = (context_data_val << 1) | (value&1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = value >> 1;\n }\n\n\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n }\n\n // Mark the end of the stream\n value = 2;\n for (i=0 ; i<context_numBits ; i++) {\n context_data_val = (context_data_val << 1) | (value&1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = value >> 1;\n }\n\n // Flush the last char\n while (true) {\n context_data_val = (context_data_val << 1);\n if (context_data_position == bitsPerChar-1) {\n context_data.push(getCharFromInt(context_data_val));\n break;\n }\n else context_data_position++;\n }\n return context_data.join('');\n },\n\n decompress: function (compressed) {\n if (compressed == null) return \"\";\n if (compressed == \"\") return null;\n return LZString._decompress(compressed.length, 32768, function(index) { return compressed.charCodeAt(index); });\n },\n\n _decompress: function (length, resetValue, getNextValue) {\n var dictionary = [],\n next,\n enlargeIn = 4,\n dictSize = 4,\n numBits = 3,\n entry = \"\",\n result = [],\n i,\n w,\n bits, resb, maxpower, power,\n c,\n data = {val:getNextValue(0), position:resetValue, index:1};\n\n for (i = 0; i < 3; i += 1) {\n dictionary[i] = i;\n }\n\n bits = 0;\n maxpower = Math.pow(2,2);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n\n switch (next = bits) {\n case 0:\n bits = 0;\n maxpower = Math.pow(2,8);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n c = f(bits);\n break;\n case 1:\n bits = 0;\n maxpower = Math.pow(2,16);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n c = f(bits);\n break;\n case 2:\n return \"\";\n }\n dictionary[3] = c;\n w = c;\n result.push(c);\n while (true) {\n if (data.index > length) {\n return \"\";\n }\n\n bits = 0;\n maxpower = Math.pow(2,numBits);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n\n switch (c = bits) {\n case 0:\n bits = 0;\n maxpower = Math.pow(2,8);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n\n dictionary[dictSize++] = f(bits);\n c = dictSize-1;\n enlargeIn--;\n break;\n case 1:\n bits = 0;\n maxpower = Math.pow(2,16);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n dictionary[dictSize++] = f(bits);\n c = dictSize-1;\n enlargeIn--;\n break;\n case 2:\n return result.join('');\n }\n\n if (enlargeIn == 0) {\n enlargeIn = Math.pow(2, numBits);\n numBits++;\n }\n\n if (dictionary[c]) {\n entry = dictionary[c];\n } else {\n if (c === dictSize) {\n entry = w + w.charAt(0);\n } else {\n return null;\n }\n }\n result.push(entry);\n\n // Add w+entry[0] to the dictionary.\n dictionary[dictSize++] = w + entry.charAt(0);\n enlargeIn--;\n\n w = entry;\n\n if (enlargeIn == 0) {\n enlargeIn = Math.pow(2, numBits);\n numBits++;\n }\n\n }\n }\n};\n return LZString;\n})();\n\nif (typeof define === 'function' && define.amd) {\n define(function () { return LZString; });\n} else if( typeof module !== 'undefined' && module != null ) {\n module.exports = LZString\n}\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<<MAX_BITS)-1,\n // \"inconsistent bit counts\");\n //Tracev((stderr,\"\\ngen_codes: max_code %d \", max_code));\n\n for (n = 0; n <= max_code; n++) {\n let len = tree[n * 2 + 1]/*.Len*/;\n if (len === 0) { continue; }\n /* Now reverse the bits */\n tree[n * 2]/*.Code*/ = bi_reverse(next_code[len]++, len);\n\n //Tracecv(tree != static_ltree, (stderr,\"\\nn %3d %c l %2d c %4x (%x) \",\n // n, (isgraph(n) ? n : ' '), len, tree[n].Code, next_code[len]-1));\n }\n};\n\n\n/* ===========================================================================\n * Initialize the various 'constant' tables.\n */\nconst tr_static_init = () => {\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 <https://feross.org>\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 s,mat4 as r,glMatrix as i}from\"gl-matrix\";var n,o;(o=n||(n={})).UP=\"up\",o.DOWN=\"down\",o.NORTH=\"north\",o.EAST=\"east\",o.SOUTH=\"south\",o.WEST=\"west\";const a={[n.UP]:[0,1,0],[n.DOWN]:[0,-1,0],[n.NORTH]:[0,0,-1],[n.EAST]:[1,0,0],[n.SOUTH]:[0,0,1],[n.WEST]:[-1,0,0]};var l,u;!function(t){t.ALL=[t.UP,t.DOWN,t.NORTH,t.EAST,t.SOUTH,t.WEST],t.normal=function(t){return a[t]}}(n||(n={})),(u=l||(l={})).create=function(t,e,s){return[t,e,s]},u.ZERO=u.create(0,0,0),u.offset=function(t,e,s,r){return[t[0]+e,t[1]+s,t[2]+r]},u.towards=function(t,e){return u.offset(t,...n.normal(e))},u.equals=function(t,e){return t===e||t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]},u.magnitude=function(t){return t[0]*t[0]+t[1]*t[1]+t[2]*t[2]};const h={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},c=[\"end\",\"byte\",\"short\",\"int\",\"long\",\"float\",\"double\",\"byteArray\",\"string\",\"list\",\"compound\",\"intArray\",\"longArray\"];class f{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 s=this.dataView[t](this.offset,this.littleEndian);return this.offset+=e,s}long(){return[this.int(),this.int()]}byteArray(){const t=this.int(),e=[];for(let s=0;s<t;s++)e.push(this.byte());return e}intArray(){const t=this.int(),e=[];for(let s=0;s<t;s++)e.push(this.int());return e}longArray(){const t=this.int(),e=[];for(let s=0;s<t;s++)e.push(this.long());return e}string(){const t=this.short(),e=this.arrayView.slice(this.offset,this.offset+t);return this.offset+=t,function(t){var e,s=[];for(e=0;e<t.length;e++)0==(128&t[e])?s.push(127&t[e]):e+1<t.length&&192==(224&t[e])&&128==(192&t[e+1])?s.push((31&t[e])<<6|63&t[e+1]):e+2<t.length&&224==(240&t[e])&&128==(192&t[e+1])&&128==(192&t[e+2])?s.push((15&t[e])<<12|(63&t[e+1])<<6|63&t[e+2]):e+3<t.length&&240==(248&t[e])&&128==(192&t[e+1])&&128==(192&t[e+2])&&128==(192&t[e+3])&&s.push((7&t[e])<<18|(63&t[e+1])<<12|(63&t[e+2])<<6|63&t[e+3]);return String.fromCharCode.apply(null,s)}(e)}list(){const t=c[this.byte()],e=this.int(),s=[];for(let r=0;r<e;r++)s.push(this[t]());return{type:t,value:s}}compound(){const t={};for(;;){const e=c[this.byte()];if(\"end\"===e)break;const s=this.string(),r=this[e]();t[s]={type:e,value:r}}return t}}class m{constructor(t=!1){this.byte=this.writeNum.bind(this,\"setInt8\",1),this.short=this.writeNum.bind(this,\"setInt16\",2),this.int=this.writeNum.bind(this,\"setInt32\",4),this.float=this.writeNum.bind(this,\"setFloat32\",4),this.double=this.writeNum.bind(this,\"setFloat64\",8),this.offset=0,this.littleEndian=t,this.buffer=new ArrayBuffer(1024),this.arrayView=new Uint8Array(this.buffer),this.dataView=new DataView(this.buffer)}accommodate(t){const e=this.offset+t;if(this.buffer.byteLength>=e)return;let s=this.buffer.byteLength;for(;s<e;)s*=2;const r=new ArrayBuffer(s),i=new Uint8Array(r);i.set(this.arrayView),this.offset>this.buffer.byteLength&&i.fill(0,this.buffer.byteLength,this.offset),this.buffer=r,this.dataView=new DataView(r),this.arrayView=i}getData(){return this.accommodate(0),this.arrayView.slice(0,this.offset)}end(t){}writeNum(t,e,s){this.accommodate(e),this.dataView[t](this.offset,s,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<t.length;e++)this.int(t[e])}longArray(t){this.int(t.length);for(let e=0;e<t.length;e++)this.long(t[e])}string(t){const e=function(t){var e,s,r=[];for(e=0;e<t.length;e++)(s=t.charCodeAt(e))<128?r.push(s):s<2048?(r.push(192|s>>6),r.push(128|63&s)):s<65536?(r.push(224|s>>12),r.push(128|s>>6&63),r.push(128|63&s)):(r.push(240|s>>18&7),r.push(128|s>>12&63),r.push(128|s>>6&63),r.push(128|63&s));return r}(t);this.short(e.length),this.accommodate(e.length),this.arrayView.set(e,this.offset),this.offset+=e.length}list(t){this.byte(h[t.type]),this.int(t.value.length),t.value;for(let e=0;e<t.value.length;e++)this[t.type](t.value[e])}compound(t){for(const e in t)this.byte(h[t[e].type]),this.string(e),this[t[e].type](t[e].value);this.byte(h.end)}}function d(t,e){const s=new f(t,e);if(s.byte()!==h.compound)throw new Error(\"Top tag should be a compound\");return{name:s.string(),value:s.compound()}}function p(e,s){return d(t.inflate(e),s)}function g(t,e){return 2===(s=new Uint8Array(t.slice(0,2))).length&&31===s[0]&&139===s[1]?{compressed:!0,result:p(t,e)}:{compressed:!1,result:d(t,e)};var s}function v(t){const e=[];for(let s=0;s<32;s+=1)for(let r=0;r<32;r+=1){const i=4*((31&s)+32*(31&r));if(0===t[i+3])continue;const n=(t[i]<<16)+(t[i+1]<<8)+t[i+2],o=(t[i+4096]<<24)+(t[i+4097]<<16)+(t[i+4098]<<8)+t[i+4099],a=4096*n,l=(t[a]<<24)+(t[a+1]<<16)+(t[a+2]<<8)+t[a+3],u=t[a+4],h=t.slice(a+5,a+4+l);e.push({x:s,z:r,timestamp:o,compression:u,data:h})}return e}function w(t,e,s){const r=y(t,e,s);switch(r.compression){case 1:case 2:r.nbt=p(r.data);break;case 3:r.nbt=d(r.data);break;default:throw new Error(`Invalid compression mode ${r.compression}`)}return r}function b(t,e){const s=new m(e);return s.byte(h.compound),s.string(t.name),s.compound(t.value),s.getData()}function x(e,s,r){const i=b(e,s);return t[r?\"deflate\":\"gzip\"](i)}function S(t,e,s){return e?x(t,s):b(t,s)}function _(t){let e=0;for(const s of t)e+=Math.ceil(s.data.length/4096);const s=new Uint8Array(8192+4096*e),r=new DataView(s.buffer);let i=2;for(const e of t){const t=4*((31&e.x)+32*(31&e.z)),n=Math.ceil(e.data.length/4096);r.setInt8(t,i>>16),r.setInt16(t+1,65535&i),r.setInt8(t+3,n),r.setInt32(t+4096,e.timestamp);const o=4096*i;r.setInt32(o,e.data.length+1),r.setInt8(o+4,e.compression),s.set(e.data,o+5),i+=n}return s}function A(t,e,s,r){const i=y(t,e,s);switch(i.compression){case 1:i.data=x(r);break;case 2:i.data=x(r,!1,!0);break;case 3:i.data=b(r);break;default:throw new Error(`Invalid compression mode ${i.compression}`)}return i}function y(t,e,s){const r=t.find((t=>t.x===e&&t.z===s));if(void 0===r)throw new Error(`Cannot find chunk [${e}, ${s}]`);return r}function E(t,e,s){if(!t[e])throw new Error(`Missing ${e} tag`);if(t[e].type!==s)throw new Error(`Expected ${e} to be of type ${s}, but found ${t[e].type}`);return t[e].value}function I(t,e,s,r){const i=E(t,e,\"list\");if(i.type!==s)throw new Error(`Expected ${e} to be a list of ${s}s, but found ${i.type}s`);if(r&&i.value.length!==r)throw new Error(`Expected ${e} to be a list of length ${r}, but found length ${i.value.length}`);return i.value}function N(t,e){try{return t()}catch(t){return e}}var B;function R(t){let e=null;return()=>(null==e&&(e=t()),e)}function T(t,e,s){const r=t.get(e);if(r)return r;const i=s(e);return t.set(e,i),i}!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,s){var r;const i=null!=(r=e(t))?r:{};return Object.fromEntries(Object.entries(i).map((([t,e])=>[t,s(e)])))},t.compose=function(t,e,s){const r=e(t);return r?s(r):void 0},t.readEnum=function(t,e){return\"string\"!=typeof t?e[0]:e.includes(t)?t:e[0]}}(B||(B={}));const M=class{constructor(t,e){if(this.namespace=t,this.path=e,!t.match(/^[a-z0-9._-]+$/))throw new Error(`Non [a-z0-9._-] character in namespace of ${t}:${e}`);if(!e.match(/^[a-z0-9/._-]+$/))throw new Error(`Non [a-z0-9/._-] character in path of ${t}:${e}`)}equals(t){return this===t||this.namespace===t.namespace&&this.path===t.path}toString(){return`${this.namespace}:${this.path}`}static create(t){return new M(this.DEFAULT_NAMESPACE,t)}static parse(t){const e=t.indexOf(this.SEPARATOR);if(e>=0){const s=e>=1?t.substring(0,e):this.DEFAULT_NAMESPACE,r=t.substring(e+1);return new M(s,r)}return new M(this.DEFAULT_NAMESPACE,t)}};let C=M;C.DEFAULT_NAMESPACE=\"minecraft\",C.SEPARATOR=\":\";var O=Object.defineProperty,k=Object.defineProperties,P=Object.getOwnPropertyDescriptors,L=Object.getOwnPropertySymbols,F=Object.prototype.hasOwnProperty,V=Object.prototype.propertyIsEnumerable,D=(t,e,s)=>e in t?O(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s;const U=class{constructor(t,e={}){this.properties=e,this.name=\"string\"==typeof t?C.parse(t):t}getName(){return this.name}getProperties(){return this.properties}getProperty(t){return this.properties[t]}isFluid(){return this.is(U.WATER)||this.is(U.LAVA)}equals(t){return!!this.name.equals(t.name)&&Object.keys(this.properties).every((e=>t.properties[e]===this.properties[e]))}is(t){return this.name.equals(t.name)}toString(){return 0===Object.keys(this.properties).length?this.name.toString():`${this.name.toString()}[${Object.entries(this.properties).map((([t,e])=>t+\"=\"+e)).join(\",\")}]`}static fromNbt(t){const e=C.parse(E(t.value,\"Name\",\"string\")),s=N((()=>E(t.value,\"Properties\",\"compound\")),{}),r=Object.keys(s).reduce(((t,e)=>{return r=((t,e)=>{for(var s in e||(e={}))F.call(e,s)&&D(t,s,e[s]);if(L)for(var s of L(e))V.call(e,s)&&D(t,s,e[s]);return t})({},t),i={[e]:E(s,e,\"string\")},k(r,P(i));var r,i}),{});return new U(e,r)}static fromJson(t){var e,s;const r=null!=(e=B.readObject(t))?e:{},i=C.parse(null!=(s=B.readString(r.Name))?s:U.STONE.name.toString()),n=B.readMap(r.Properties,(t=>{var e;return null!=(e=B.readString(t))?e:\"\"}));return new U(i,n)}};let G=U;G.AIR=new U(C.create(\"air\")),G.STONE=new U(C.create(\"stone\")),G.WATER=new U(C.create(\"water\"),{level:\"0\"}),G.LAVA=new U(C.create(\"lava\"),{level:\"0\"});const z=class{constructor(t){this.minY=t,this.storage=Array(z.SIZE).fill(0),this.palette=[G.AIR]}get minBlockY(){return this.minY<<4}index(t,e,s){return(t<<8)+(e<<4)+s}getBlockState(t,e,s){var r;const i=this.storage[this.index(t,e,s)];return null!=(r=this.palette[i])?r:G.AIR}setBlockState(t,e,s,r){let i=this.palette.findIndex((t=>t.equals(r)));-1===i&&(i=this.palette.length,this.palette.push(r)),this.storage[this.index(t,e,s)]=i}};let Y=z;Y.WIDTH=16,Y.SIZE=z.WIDTH*z.WIDTH*z.WIDTH;class H{constructor(t,e,s){this.minY=t,this.height=e,this.pos=s,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[s,r,i]=t,n=this.sections[this.getSectionIndex(r)];return null!=(e=null==n?void 0:n.getBlockState(15&s,15&r,15&i))?e:G.AIR}setBlockState(t,e){const[s,r,i]=t,n=this.getSectionIndex(r);let o=this.sections[n];if(null===o){if(e.equals(G.AIR))return;o=this.getOrCreateSection(n)}o.setBlockState(15&s,15&r,15&i,e)}getOrCreateSection(t){return null==this.sections[t]&&(this.sections[t]=new Y(this.minSection+t)),this.sections[t]}}var X,j;!function(t){function e(t,e){return BigInt(4294967295&t)|BigInt(4294967295&e)<<BigInt(32)}t.create=function(t,e){return[t,e]},t.fromBlockPos=function(t){return[t[0]>>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)}}(X||(X={})),function(t){function e(t){return{value:()=>t,key:()=>{}}}function s(t,e){return{value:()=>t.getOrThrow(e),key:()=>e}}t.parser=function(t,r){return i=>\"string\"==typeof i?s(t,C.parse(i)):e(r(i))},t.direct=e,t.reference=s}(j||(j={}));const Z=class{constructor(t,e){this.key=t,this.parser=e,this.storage=new Map,this.builtin=new Map}register(t,e,s){return this.storage.set(t.toString(),e),s&&this.builtin.set(t.toString(),e),j.reference(this,t)}keys(){return[...this.storage.keys()].map((t=>C.parse(t)))}get(t){return this.storage.get(t.toString())}getOrThrow(t){const e=this.storage.get(t.toString());if(void 0===e)throw new Error(`Missing key in ${this.key.toString()}: ${t.toString()}`);return e}parse(t){if(!this.parser)throw new Error(`No parser exists for ${this.key.toString()}`);return this.parser(t)}clear(){this.storage.clear();for(const[t,e]of this.builtin.entries())this.storage.set(t,e);return this}assign(t){if(!this.key.equals(t.key))throw new Error(`Cannot assign registry of type ${t.key.toString()} to registry of type ${this.key.toString()}`);for(const e of t.keys())this.storage.set(e.toString(),t.getOrThrow(e));return this}cloneEmpty(){return new Z(this.key,this.parser)}};let q=Z;q.REGISTRY=new Z(C.create(\"root\"));class J{constructor(t,e=[],s=[]){this.size=t,this.palette=e,this.blocks=s,this.blocksMap=[],s.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,s,r){if(!this.isInside(t))throw new Error(`Cannot add block at ${t} outside the structure bounds ${this.size}`);const i=new G(e,s);let n=this.palette.findIndex((t=>t.equals(i)));return-1===n&&(n=this.palette.length,this.palette.push(i)),this.blocks.push({pos:t,state:n,nbt:r}),this.blocksMap[t[0]*this.size[1]*this.size[2]+t[1]*this.size[2]+t[2]]={pos:t,state:n,nbt:r},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]<this.size[0]&&t[1]>=0&&t[1]<this.size[1]&&t[2]>=0&&t[2]<this.size[2]}static fromNbt(t){const e=I(t.value,\"size\",\"int\",3),s=I(t.value,\"palette\",\"compound\").map((t=>G.fromNbt({name:\"\",value:t}))),r=I(t.value,\"blocks\",\"compound\").map((t=>({pos:I(t,\"pos\",\"int\",3),state:E(t,\"state\",\"int\"),nbt:N((()=>E(t,\"nbt\",\"compound\")),void 0)})));return new J(e,s,r)}}function W(t){return t*t}function $(t,e,s){return Math.max(e,Math.min(s,t))}function K(t,e,s){return e+t*(s-e)}function Q(t,e,s,r,i,n){return K(e,K(t,s,r),K(t,i,n))}function tt(t,e,s,r,i,n,o,a,l,u,h){return K(s,Q(t,e,r,i,n,o),Q(t,e,a,l,u,h))}function et(t,e,s){return 0===t?e():1===t?s():e()+t*(s()-e())}function st(t,e,s,r,i,n){return et(e,(()=>et(t,s,r)),(()=>et(t,i,n)))}function rt(t,e,s,r,i,n,o,a,l,u,h){return et(s,(()=>st(t,e,r,i,n,o)),(()=>st(t,e,a,l,u,h)))}function it(t,e,s){return s<0?t:s>1?e:K(s,t,e)}function nt(t,e,s){return(t-e)/(s-e)}function ot(t){return t*t*t*(t*(6*t-15)+10)}function at(t,e,s,r,i){return K(nt(t,e,s),r,i)}function lt(t,e,s,r,i){return it(r,i,nt(t,e,s))}function ut(t,e,s){let r=e-t;for(;r>0;){const e=Math.floor(r/2),i=t+e;s(i)?r=e:(t=i+1,r-=e+1)}return t}function ht(t,e,s){let r=BigInt(3129871*t)^BigInt(s)*BigInt(116129781)^BigInt(e);return r=r*r*BigInt(42317861)+r*BigInt(11),r>>BigInt(16)}function ct(t,e,s,r,i,n,o,a){return BigInt(t)<<BigInt(56)|BigInt(e)<<BigInt(48)|BigInt(s)<<BigInt(40)|BigInt(r)<<BigInt(32)|BigInt(i)<<BigInt(24)|BigInt(n)<<BigInt(16)|BigInt(o)<<BigInt(8)|BigInt(a)}var ft;!function(t){t.fromJson=function t(r,i){var n,o,a,l;if(\"number\"==typeof r)return new e(r);const u=null!=(n=B.readObject(r))?n:{},h=new s(i(u.coordinate)),c=null!=(o=B.readArray(u.points,(t=>{var e;return null!=(e=B.readObject(t))?e:{}})))?o:[];if(0===c.length)return new e(0);for(const e of c){const s=null!=(a=B.readNumber(e.location))?a:0,r=t(e.value,i),n=null!=(l=B.readNumber(e.derivative))?l:0;h.addPoint(s,r,n)}return h};class e{constructor(t){this.value=t}compute(){return this.value}min(){return this.value}max(){return this.value}mapAll(){return this}}t.Constant=e;class s{constructor(t,e=[],s=[],r=[]){this.coordinate=t,this.locations=e,this.values=s,this.derivatives=r}compute(t){const e=this.coordinate.compute(t),s=ut(0,this.locations.length,(t=>e<this.locations[t]))-1,r=this.locations.length-1;if(s<0)return this.values[0].compute(t)+this.derivatives[0]*(e-this.locations[0]);if(s===r)return this.values[r].compute(t)+this.derivatives[r]*(e-this.locations[r]);const i=this.locations[s],n=this.locations[s+1],o=this.derivatives[s],a=this.derivatives[s+1],l=(e-i)/(n-i),u=this.values[s].compute(t),h=this.values[s+1].compute(t),c=o*(n-i)-(h-u),f=-a*(n-i)+(h-u);return K(l,u,h)+l*(1-l)*K(l,c,f)}min(){return Math.min(...this.values.map((t=>t.min())))}max(){return Math.max(...this.values.map((t=>t.max())))}mapAll(t){return new s(t(this.coordinate),this.locations,this.values.map((e=>e.mapAll(t))),this.derivatives)}addPoint(e,s,r=0){return this.locations.push(e),this.values.push(\"number\"==typeof s?new t.Constant(s):s),this.derivatives.push(r),this}}t.MultiPoint=s}(ft||(ft={}));const mt=class{constructor(t){this.seed=BigInt(0),this.setSeed(t)}fork(){return new mt(this.nextLong())}forkPositional(){return new pt(this.nextLong())}setSeed(t){this.seed=t^mt.MULTIPLIER&mt.MODULUS_MASK}advance(){this.seed=this.seed*mt.MULTIPLIER+mt.INCREMENT&mt.MODULUS_MASK}consume(t){for(let e=0;e<t;e+=1)this.advance()}next(t){this.advance();const e=Number(this.seed>>BigInt(mt.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,s;for(;(e=this.next(31))-(s=e%t)+(t-1)<0;);return s}nextLong(){return(BigInt(this.next(32))<<BigInt(32))+BigInt(this.next(32))}nextFloat(){return this.next(24)*mt.FLOAT_MULTIPLIER}nextDouble(){const t=this.next(30);return this.advance(),t*mt.DOUBLE_MULTIPLIER}};let dt=mt;dt.MODULUS_BITS=48,dt.MODULUS_MASK=BigInt(\"281474976710655\"),dt.MULTIPLIER=BigInt(\"25214903917\"),dt.INCREMENT=BigInt(\"11\"),dt.FLOAT_MULTIPLIER=1/Math.pow(2,24),dt.DOUBLE_MULTIPLIER=1/Math.pow(2,30);class pt{constructor(t){this.seed=t}at(t,e,s){const r=ht(t,e,s);return new dt(r^this.seed)}fromHashOf(t){const s=e(t,{asBytes:!0}),r=ct(s[0],s[1],s[2],s[3],s[4],s[5],s[6],s[7]);return new dt(r^this.seed)}seedKey(){return[this.seed,BigInt(0)]}}const gt=class{constructor(t){this.seed=[BigInt(0),BigInt(0)],this.seed=t}static create(t){return new gt(gt.upgradeSeedTo128bit(t))}static mixStafford13(t){return((t=((t=(t^t>>gt.BIGINT_30)*gt.STAFFORD_1>.MAX_ULONG)^t>>gt.BIGINT_27)*gt.STAFFORD_2>.MAX_ULONG)^t>>gt.BIGINT_31)>.MAX_ULONG}static upgradeSeedTo128bit(t){t<0&&(t+=gt.POW2_60);const e=t^gt.SILVER_RATIO_64,s=e+gt.GOLDEN_RATIO_64>.MAX_ULONG;return[gt.mixStafford13(e),gt.mixStafford13(s)]}static rotateLeft(t,e){return t<<e>.MAX_ULONG|t>>gt.BIGINT_64-e}setSeed(t){this.seed=gt.upgradeSeedTo128bit(t)}fork(){return new gt([this.next(),this.next()])}forkPositional(){return new wt(this.next(),this.next())}next(){const t=this.seed[0];let e=this.seed[1];const s=gt.rotateLeft(t+e>.MAX_ULONG,gt.BIGINT_17)+t>.MAX_ULONG;return e^=t,this.seed=[gt.rotateLeft(t,gt.BIGINT_49)^e^e<<gt.BIGINT_21>.MAX_ULONG,gt.rotateLeft(e,gt.BIGINT_28)],s}nextLong(){let t=this.next();return t>gt.POW2_63&&(t-=gt.POW2_60),t}consume(t){let e=this.seed[0],s=this.seed[1];for(let r=0;r<t;r+=1)s^=e,e=gt.rotateLeft(e,gt.BIGINT_49)^s^s<<gt.BIGINT_21,s=gt.rotateLeft(s,gt.BIGINT_28);this.seed=[e,s]}nextBits(t){return this.next()>>BigInt(64-t)}nextInt(t){let e=this.next()>.MAX_UINT;if(t){const s=BigInt(t);let r=e*s,i=r>.MAX_UINT;if(i<s){const t=((~s>.MAX_UINT)+gt.BIGINT_1)%s;for(;i<t;)e=this.next()>.MAX_UINT,r=e*s,i=r>.MAX_UINT}const n=r>>gt.BIGINT_32;return Number(n)}{let t=Number(e);return t>=2147483648&&(t-=4294967296),t}}nextFloat(){return Number(this.nextBits(24))*gt.FLOAT_MULTIPLIER}nextDouble(){return Number(this.nextBits(53))*gt.DOUBLE_MULTIPLIER}parityConfigString(){return\"seedLo: \"+this.seed[0]+\", seedHi: \"+this.seed[1]}};let vt=gt;vt.SILVER_RATIO_64=BigInt(\"7640891576956012809\"),vt.GOLDEN_RATIO_64=BigInt(\"-7046029254386353131\"),vt.FLOAT_MULTIPLIER=1/Math.pow(2,24),vt.DOUBLE_MULTIPLIER=11102230246251565e-32,vt.BIGINT_1=BigInt(1),vt.BIGINT_17=BigInt(17),vt.BIGINT_21=BigInt(21),vt.BIGINT_27=BigInt(27),vt.BIGINT_28=BigInt(28),vt.BIGINT_30=BigInt(30),vt.BIGINT_31=BigInt(31),vt.BIGINT_32=BigInt(32),vt.BIGINT_49=BigInt(49),vt.BIGINT_64=BigInt(64),vt.STAFFORD_1=BigInt(\"-4658895280553007687\"),vt.STAFFORD_2=BigInt(\"-7723592293110705685\"),vt.MAX_ULONG=BigInt(\"0xFFFFFFFFFFFFFFFF\"),vt.POW2_60=BigInt(\"0x10000000000000000\"),vt.POW2_63=BigInt(\"0x8000000000000000\"),vt.MAX_UINT=BigInt(4294967295);class wt{constructor(t,e){this.seedLo=t,this.seedHi=e}at(t,e,s){const r=ht(t,e,s)^this.seedLo;return new vt([r,this.seedHi])}fromHashOf(t){const s=e(t,{asBytes:!0}),r=ct(s[0],s[1],s[2],s[3],s[4],s[5],s[6],s[7]),i=ct(s[8],s[9],s[10],s[11],s[12],s[13],s[14],s[15]);return new vt([r^this.seedLo,i^this.seedHi])}seedKey(){return[this.seedLo,this.seedHi]}}const bt=class{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 s=t.nextInt(256-e),r=this.p[e];this.p[e]=this.p[e+s],this.p[e+s]=r}}sample2D(t,e){let s,r,i;const n=(t+e)*bt.F2,o=Math.floor(t+n),a=t-(o-(s=(o+(r=Math.floor(e+n)))*bt.G2));let l,u;a>(i=e-(r-s))?(l=1,u=0):(l=0,u=1);const h=a-l+bt.G2,c=i-u+bt.G2,f=a-1+2*bt.G2,m=i-1+2*bt.G2,d=255&o,p=255&r,g=this.P(d+this.P(p))%12,v=this.P(d+l+this.P(p+u))%12,w=this.P(d+1+this.P(p+1))%12;return 70*(this.getCornerNoise3D(g,a,i,0,.5)+this.getCornerNoise3D(v,h,c,0,.5)+this.getCornerNoise3D(w,f,m,0,.5))}sample(t,e,s){const r=.3333333333333333*(t+e+s),i=Math.floor(t+r),n=Math.floor(e+r),o=Math.floor(s+r),a=.16666666666666666*(i+n+o),l=t-(i-a),u=e-(n-a),h=s-(o-a);let c,f,m,d,p,g;l>=u?u>=h?(c=1,f=0,m=0,d=1,p=1,g=0):l>=h?(c=1,f=0,m=0,d=1,p=0,g=1):(c=0,f=0,m=1,d=1,p=0,g=1):u<h?(c=0,f=0,m=1,d=0,p=1,g=1):l<h?(c=0,f=1,m=0,d=0,p=1,g=1):(c=0,f=1,m=0,d=1,p=1,g=0);const v=l-c+.16666666666666666,w=u-f+.16666666666666666,b=h-m+.16666666666666666,x=l-d+.3333333333333333,S=u-p+.3333333333333333,_=h-g+.3333333333333333,A=l-.5,y=u-.5,E=h-.5,I=255&i,N=255&n,B=255&o,R=this.P(I+this.P(N+this.P(B)))%12,T=this.P(I+c+this.P(N+f+this.P(B+m)))%12,M=this.P(I+d+this.P(N+p+this.P(B+g)))%12,C=this.P(I+1+this.P(N+1+this.P(B+1)))%12;return 32*(this.getCornerNoise3D(R,l,u,h,.6)+this.getCornerNoise3D(T,v,w,b,.6)+this.getCornerNoise3D(M,x,S,_,.6)+this.getCornerNoise3D(C,A,y,E,.6))}P(t){return this.p[255&t]}getCornerNoise3D(t,e,s,r,i){let n,o=i-e*e-s*s-r*r;return o<0?n=0:(o*=o,n=o*o*bt.gradDot(t,e,s,r)),n}static gradDot(t,e,s,r){const i=bt.GRADIENT[15&t];return i[0]*e+i[1]*s+i[2]*r}};let xt=bt;xt.GRADIENT=[[1,1,0],[-1,1,0],[1,-1,0],[-1,-1,0],[1,0,1],[-1,0,1],[1,0,-1],[-1,0,-1],[0,1,1],[0,-1,1],[0,1,-1],[0,-1,-1],[1,1,0],[0,-1,1],[-1,1,0],[0,-1,-1]],xt.F2=.5*(Math.sqrt(3)-1),xt.G2=(3-Math.sqrt(3))/6;class St{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>127?t-256:t;for(let e=0;e<256;e+=1){const s=t.nextInt(256-e),r=this.p[e];this.p[e]=this.p[e+s],this.p[e+s]=r}}sample(t,e,s,r=0,i=0){const n=t+this.xo,o=e+this.yo,a=s+this.zo,l=Math.floor(n),u=Math.floor(o),h=Math.floor(a),c=n-l,f=o-u,m=a-h;let d=0;if(0!==r){const t=i>=0&&i<f?i:f;d=Math.floor(t/r+1e-7)*r}return this.sampleAndLerp(l,u,h,c,f-d,m,f)}sampleAndLerp(t,e,s,r,i,n,o){const a=this.P(t),l=this.P(t+1),u=this.P(a+e),h=this.P(a+e+1),c=this.P(l+e),f=this.P(l+e+1),m=xt.gradDot(this.P(u+s),r,i,n),d=xt.gradDot(this.P(c+s),r-1,i,n),p=xt.gradDot(this.P(h+s),r,i-1,n),g=xt.gradDot(this.P(f+s),r-1,i-1,n),v=xt.gradDot(this.P(u+s+1),r,i,n-1),w=xt.gradDot(this.P(c+s+1),r-1,i,n-1),b=xt.gradDot(this.P(h+s+1),r,i-1,n-1),x=xt.gradDot(this.P(f+s+1),r-1,i-1,n-1);return tt(ot(r),ot(o),ot(n),m,d,p,g,v,w,b,x)}P(t){return 255&this.p[255&t]}}class _t{constructor(t,e,s){if(t instanceof vt){const r=t.forkPositional();this.noiseLevels=Array(s.length);for(let t=0;t<s.length;t++)if(0!==s[t]){const s=e+t;this.noiseLevels[t]=new St(r.fromHashOf(\"octave_\"+s))}}else{if(1-e<s.length)throw new Error(\"Positive octaves are not allowed when using LegacyRandom\");this.noiseLevels=Array(s.length);for(let r=-e;r>=0;r-=1)r<s.length&&0!==s[r]?this.noiseLevels[r]=new St(t):t.consume(262)}this.amplitudes=s,this.lowestFreqInputFactor=Math.pow(2,e),this.lowestFreqValueFactor=Math.pow(2,s.length-1)/(Math.pow(2,s.length)-1),this.maxValue=this.edgeValue(2)}sample(t,e,s,r=0,i=0,n=!1){let o=0,a=this.lowestFreqInputFactor,l=this.lowestFreqValueFactor;for(let u=0;u<this.noiseLevels.length;u+=1){const h=this.noiseLevels[u];h&&(o+=this.amplitudes[u]*l*h.sample(_t.wrap(t*a),n?-h.yo:_t.wrap(e*a),_t.wrap(s*a),r*a,i*a)),a*=2,l/=2}return o}getOctaveNoise(t){return this.noiseLevels[this.noiseLevels.length-1-t]}edgeValue(t){let e=0,s=this.lowestFreqValueFactor;for(let r=0;r<this.noiseLevels.length;r+=1)this.noiseLevels[r]&&(e+=this.amplitudes[r]*t*s),s/=2;return e}static wrap(t){return t-33554432*Math.floor(t/33554432+.5)}}class At{constructor(t,e,s,r){this.cellWidth=s,this.cellHeight=r,this.minLimitNoise=new _t(t,-15,[1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0]),this.maxLimitNoise=new _t(t,-15,[1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0]),this.mainNoise=new _t(t,-7,[1,1,1,1,1,0,0,0]),this.xzScale=684.412*e.xzScale,this.yScale=684.412*e.yScale,this.xzMainScale=this.xzScale/e.xzFactor,this.yMainScale=this.yScale/e.yFactor,this.maxValue=this.minLimitNoise.edgeValue(this.yScale+2)}sample(t,e,s){let r;t=Math.floor(t/this.cellWidth),e=Math.floor(e/this.cellHeight),s=Math.floor(s/this.cellWidth);let i=0,n=1;for(let o=0;o<8;o+=1){if(r=this.mainNoise.getOctaveNoise(o),r){const o=this.xzMainScale*n,a=this.yMainScale*n,l=_t.wrap(t*o),u=_t.wrap(e*a),h=_t.wrap(s*o);i+=r.sample(l,u,h,a,e*a)/n}n/=2}i=(i/10+1)/2,n=1;let o=0,a=0;for(let l=0;l<16;l+=1){const u=this.xzScale*n,h=this.yScale*n,c=_t.wrap(t*u),f=_t.wrap(e*h),m=_t.wrap(s*u);i<1&&(r=this.minLimitNoise.getOctaveNoise(l))&&(o+=r.sample(c,f,m,h,e*h)/n),i>0&&(r=this.maxLimitNoise.getOctaveNoise(l))&&(a+=r.sample(c,f,m,h,e*h)/n),n/=2}return it(o/512,a/512,i)/128}}var yt;(yt||(yt={})).fromJson=function(t){var e,s,r,i,n;const o=null!=(e=B.readObject(t))?e:{};return{xzScale:null!=(s=B.readNumber(o.xz_scale))?s:1,yScale:null!=(r=B.readNumber(o.y_scale))?r:1,xzFactor:null!=(i=B.readNumber(o.xz_factor))?i:80,yFactor:null!=(n=B.readNumber(o.y_factor))?n:80}};const Et=class{constructor(t,{firstOctave:e,amplitudes:s}){this.first=new _t(t,e,s),this.second=new _t(t,e,s);let r=1/0,i=-1/0;for(let t=0;t<s.length;t+=1)0!==s[t]&&(r=Math.min(r,t),i=Math.max(i,t));const n=.1*(1+1/(i-r+1));this.valueFactor=1/6/n,this.maxValue=(this.first.maxValue+this.second.maxValue)*this.valueFactor}sample(t,e,s){const r=t*Et.INPUT_FACTOR,i=e*Et.INPUT_FACTOR,n=s*Et.INPUT_FACTOR;return(this.first.sample(t,e,s)+this.second.sample(r,i,n))*this.valueFactor}};let It=Et;var Nt,Bt;It.INPUT_FACTOR=1.0181268882175227,(Bt=Nt||(Nt={})).create=function(t,e){return{firstOctave:t,amplitudes:e}},Bt.fromJson=function(t){var e,s,r;const i=null!=(e=B.readObject(t))?e:{};return{firstOctave:null!=(s=B.readInt(i.firstOctave))?s:0,amplitudes:null!=(r=B.readArray(i.amplitudes,(t=>{var e;return null!=(e=B.readNumber(t))?e:0})))?r:[]}};class Rt{constructor(t,e){const s=e[e.length-1],r=-e[0]+s+1,i=new Set(e),n=new xt(t);this.noiseLevels=Array(r),s>=0&&s<r&&i.has(0)&&(this.noiseLevels[s]=n);for(let e=s+1;e<r;e+=1)e>=0&&i.has(s-e)?this.noiseLevels[e]=new xt(t):t.consume(262);if(s>0)throw new Error(\"Positive octaves are not allowed\");this.highestFreqInputFactor=Math.pow(2,s),this.highestFreqValueFactor=1/(Math.pow(2,r)-1)}sample(t,e,s){let r=0,i=this.highestFreqInputFactor,n=this.highestFreqValueFactor;for(let o=0;o<this.noiseLevels.length;o+=1){const a=this.noiseLevels[o];a&&(r+=n*a.sample2D(t*i+(s?a.xo:0),e*i+(s?a.yo:0))),i/=2,n*=2}return r}}const Tt=t=>[(t>>16&255)/256,(t>>8&255)/256,(255&t)/256],Mt=[124/256,189/256,107/256],Ct=Tt(6396257),Ot=Tt(8431445),kt=Tt(4764952),Pt=Tt(4159204),Lt=Tt(8431445),Ft=Tt(2129968),Vt=t=>[t/8,1-t/32,64*t],Dt={large_fern:()=>Mt,tall_grass:()=>Mt,grass_block:()=>Mt,fern:()=>Mt,grass:()=>Mt,potted_fern:()=>Mt,spruce_leaves:()=>Ct,birch_leaves:()=>Ot,oak_leaves:()=>kt,jungle_leaves:()=>kt,acacia_leaves:()=>kt,dark_oak_leaves:()=>kt,vine:()=>kt,water:()=>Pt,bubble_column:()=>Pt,cauldron:()=>Pt,redstone_wire:t=>{var e;return(t=>{const e=t/15;return[.6*e+(e>0?.4:.3),$(e*e*.7-.5,0,1),$(e*e*.6-.7,0,1)]})(parseInt(null!=(e=t.power)?e:\"0\"))},sugar_cane:()=>Mt,attached_melon_stem:()=>Lt,attached_pumpkin_stem:()=>Lt,melon_stem:t=>{var e;return Vt(parseInt(null!=(e=t.age)?e:\"0\"))},pumpkin_stem:t=>{var e;return Vt(parseInt(null!=(e=t.age)?e:\"0\"))},lily_pad:()=>Ft};var Ut;function Gt(...t){let e=0;for(const s of t)e+=s.length;const s=new Float32Array(e);let r=0;for(const e of t)s.set(e,r),r+=e.length;return s}function zt(t,e){const r=s.create();for(let i=0;i<t.length;i+=3)r[0]=t[i],r[1]=t[i+1],r[2]=t[i+2],s.transformMat4(r,r,e),t[i]=r[0],t[i+1]=r[1],t[i+2]=r[2]}(Ut||(Ut={})).rotate=function(t,e,s){let{up:r,down:i,north:n,east:o,south:a,west:l}=t;switch(s){case 90:[n,o,a,l]=[o,a,l,n];break;case 180:[n,o,a,l]=[a,l,n,o];break;case 270:[n,o,a,l]=[l,n,o,a]}switch(e){case 90:[r,n,i,a]=[n,i,a,r];break;case 180:[r,n,i,a]=[i,a,r,n];break;case 270:[r,n,i,a]=[a,r,n,i]}return{up:r,down:i,north:n,east:o,south:a,west:l}};class Yt{constructor(t,e,s){this.id=t,this.variants=e,this.multipart=s,this.variants=e}getModelVariants(t){if(this.variants){const e=Object.keys(this.variants).filter((e=>this.matchesVariant(e,t)));if(0===e.length)return[];const s=this.variants[e[0]];return[Array.isArray(s)?s[0]:s]}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,s,n,o,a){var l,u,h,c;const f=this.getModelVariants(e),m=[],d=[],p=[],g=[];for(const v of f){const f=Ut.rotate(a,null!=(l=v.x)?l:0,null!=(u=v.y)?u:0),w=n.getBlockModel(v.model).getBuffers(t,e,s,o,f);if(v.x||v.y){const t=r.create();r.identity(t),r.translate(t,t,[8,8,8]),r.rotateY(t,t,-i.toRadian(null!=(h=v.y)?h:0)),r.rotateX(t,t,-i.toRadian(null!=(c=v.x)?c:0)),r.translate(t,t,[-8,-8,-8]),zt(w.position,t)}m.push(w.position),d.push(...w.texCoord),p.push(...w.tintColor),g.push(...w.index),o+=w.texCoord.length/2}const v=r.create();r.identity(v),r.scale(v,v,[.0625,.0625,.0625]);const w=Gt(...m);return zt(w,v),{position:w,texCoord:d,tintColor:p,index:g}}matchesVariant(t,e){return t.split(\",\").every((t=>{const[s,r]=t.split(\"=\");return e[s]===r}))}matchesCase(t,e){if(Array.isArray(t.OR))return t.OR.some((t=>this.matchesCase(t,e)));const s=t;return Object.keys(s).every((t=>s[t].split(\"|\").includes(e[t])))}static fromJson(t,e){return new Yt(t,e.variants,e.multipart)}}const Ht={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]},Xt={x:[1,0,0],y:[0,1,0],z:[0,0,1]},jt=1.41421356237,Zt={x:[1,jt,jt],y:[jt,1,jt],z:[jt,jt,1]};class qt{constructor(t,e,s,r){this.id=t,this.parent=e,this.textures=s,this.elements=r,this.flattened=!1}getBuffers(t,e,s,r,i){var n;const o=[],a=[],l=[],u=[];for(const h of null!=(n=this.elements)?n:[]){const n=this.getElementBuffers(t,e,h,r,s,i);o.push(n.position),a.push(...n.texCoord),l.push(...n.tintColor),u.push(...n.index),r+=n.texCoord.length/2}return{position:Gt(...o),texCoord:a,tintColor:l,index:u}}getElementBuffers(t,e,n,o,a,l){var u,h,c,f,m,d,p,g,v,w,b,x;const S=n.from[0],_=n.from[1],A=n.from[2],y=n.to[0],E=n.to[1],I=n.to[2],N=[],B=[],R=[],T=[],M=(s,r,i)=>{var n,l,u,h,c,f,m,d,p,g,v,w,b;const[x,S,_,A]=a.getTextureUV(this.getTexture(s.texture)),y=(_-x)/16,E=(A-S)/16,I=y/16,M=E/16;r[0]=(null!=(l=null==(n=s.uv)?void 0:n[0])?l:r[0])*y+I,r[1]=(null!=(h=null==(u=s.uv)?void 0:u[1])?h:r[1])*E+M,r[2]=(null!=(f=null==(c=s.uv)?void 0:c[2])?f:r[2])*y-I,r[3]=(null!=(d=null==(m=s.uv)?void 0:m[3])?d:r[3])*E-M;const C=Ht[null!=(p=s.rotation)?p:0];B.push(x+r[C[0]],S+r[C[1]],x+r[C[2]],S+r[C[3]],x+r[C[4]],S+r[C[5]],x+r[C[6]],S+r[C[7]]);const O=(null!=(g=s.tintindex)?g:-1)>=0&&null!=(b=null==(w=(v=Dt)[t.path])?void 0:w.call(v,e))?b:[1,1,1];R.push(...O,...O,...O,...O),N.push(...i),T.push(o,o+1,o+2,o,o+2,o+3),o+=4};!(null==(h=null==(u=n.faces)?void 0:u.up)?void 0:h.texture)||n.faces.up.cullface&&l[n.faces.up.cullface]||M(n.faces.up,[S,16-I,y,16-A],[S,E,I,y,E,I,y,E,A,S,E,A]),!(null==(f=null==(c=n.faces)?void 0:c.down)?void 0:f.texture)||n.faces.down.cullface&&l[n.faces.down.cullface]||M(n.faces.down,[16-I,16-y,16-A,16-S],[S,_,A,y,_,A,y,_,I,S,_,I]),!(null==(d=null==(m=n.faces)?void 0:m.south)?void 0:d.texture)||n.faces.south.cullface&&l[n.faces.south.cullface]||M(n.faces.south,[S,16-E,y,16-_],[S,_,I,y,_,I,y,E,I,S,E,I]),!(null==(g=null==(p=n.faces)?void 0:p.north)?void 0:g.texture)||n.faces.north.cullface&&l[n.faces.north.cullface]||M(n.faces.north,[16-y,16-E,16-S,16-_],[y,_,A,S,_,A,S,E,A,y,E,A]),!(null==(w=null==(v=n.faces)?void 0:v.east)?void 0:w.texture)||n.faces.east.cullface&&l[n.faces.east.cullface]||M(n.faces.east,[16-I,16-E,16-A,16-_],[y,_,I,y,_,A,y,E,A,y,E,I]),!(null==(x=null==(b=n.faces)?void 0:b.west)?void 0:x.texture)||n.faces.west.cullface&&l[n.faces.west.cullface]||M(n.faces.west,[A,16-E,I,16-_],[S,_,A,S,_,I,S,E,I,S,E,A]);const C=r.create();if(r.identity(C),n.rotation){const t=s.fromValues(...n.rotation.origin);r.translate(C,C,t),r.rotate(C,C,i.toRadian(n.rotation.angle),Xt[n.rotation.axis]),n.rotation.rescale&&r.scale(C,C,Zt[n.rotation.axis]),s.negate(t,t),r.translate(C,C,t)}const O=new Float32Array(N);return zt(O,C),{position:O,texCoord:B,tintColor:R,index:T}}getTexture(t){for(var e,s;t.startsWith(\"#\");)t=null!=(s=null==(e=this.textures)?void 0:e[t.slice(1)])?s:\"\";return t.startsWith(\"minecraft:\")||(t=\"minecraft:\"+t),t}flatten(t){var e;if(!this.flattened&&this.parent){const s=t.getBlockModel(this.parent);if(!s)return console.warn(`parent ${this.parent} does not exist!`),void(this.flattened=!0);s.flatten(t),this.elements||(this.elements=s.elements),this.textures||(this.textures={}),Object.keys(null!=(e=s.textures)?e:{}).forEach((t=>{this.textures[t]||(this.textures[t]=s.textures[t])})),this.flattened=!0}}static fromJson(t,e){let s=e.parent;return s&&!s.startsWith(\"minecraft:\")&&(s=\"minecraft:\"+s),new qt(t,s,e.textures,e.elements)}}class Jt{constructor(t,e,s){this.gl=t,this.program=this.initShaderProgram(e,s)}getProgram(){return this.program}initShaderProgram(t,e){const s=this.loadShader(this.gl.VERTEX_SHADER,t),r=this.loadShader(this.gl.FRAGMENT_SHADER,e),i=this.gl.createProgram();if(this.gl.attachShader(i,s),this.gl.attachShader(i,r),this.gl.linkProgram(i),!this.gl.getProgramParameter(i,this.gl.LINK_STATUS))throw new Error(`Unable to link shader program: ${this.gl.getProgramInfoLog(i)}`);return i}loadShader(t,e){const s=this.gl.createShader(t);if(this.gl.shaderSource(s,e),this.gl.compileShader(s),!this.gl.getShaderParameter(s,this.gl.COMPILE_STATUS)){const e=new Error(`Compiling ${t===this.gl.VERTEX_SHADER?\"vertex\":\"fragment\"} shader: ${this.gl.getShaderInfoLog(s)}`);throw this.gl.deleteShader(s),e}return s}}function Wt(t,e,s,r,i){const n=new Yt(\"\",{\"\":{model:\"\"}},void 0),o={getBlockModel:()=>i};return i.flatten(o),n.getBuffers(t,{},e,o,s,r)}function $t(t,e,s,r,i,o){const a=i.up?16:[14.2,12.5,10.5,9,7,5.3,3.7,1.9,16,16,16,16,16,16,16,16][s];return Wt(C.create(t),r,e,i,new qt(\"\",\"\",{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:n.UP},down:{texture:\"#still\",tintindex:o,cullface:n.DOWN},north:{texture:\"#flow\",tintindex:o,cullface:n.NORTH},east:{texture:\"#flow\",tintindex:o,cullface:n.EAST},south:{texture:\"#flow\",tintindex:o,cullface:n.SOUTH},west:{texture:\"#flow\",tintindex:o,cullface:n.WEST}}}]))}const Kt={\"minecraft:water\":(t,e,s,r)=>$t(\"water\",t,parseInt(e.level),s,r,0),\"minecraft:lava\":(t,e,s,r)=>$t(\"lava\",t,parseInt(e.level),s,r),\"minecraft:chest\":(t,e,s)=>function(t,e,s,r){return Wt(C.create(\"chest\"),r,t,{},new qt(\"\",\"\",{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,s)},Qt=new Set(Object.keys(Kt));class te{constructor(t,e,s,r){var i,n;this.gl=t,this.structure=e,this.resources=s,this.chunks=[],(null==r?void 0:r.facesPerBuffer)&&console.warn(\"webgl render warning: facesPerBuffer option has been removed in favor of chunkSize\"),this.chunkSize=null!=(i=null==r?void 0:r.chunkSize)?i:16,this.useInvisibleBlockBuffer=null==(n=null==r?void 0:r.useInvisibleBlockBuffer)||n,this.shaderProgram=new Jt(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 Jt(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 Jt(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,s=r.create();return r.perspective(s,t,e,.1,500),s}getChunk(t){const e=2*Math.abs(t[0])+(t[0]<0?1:0),s=2*Math.abs(t[1])+(t[1]<0?1:0),r=2*Math.abs(t[2])+(t[2]<0?1:0);return this.chunks[e]||(this.chunks[e]=[]),this.chunks[e][s]||(this.chunks[e][s]=[]),this.chunks[e][s][r]||(this.chunks[e][s][r]={positions:[],textureCoordinates:[],tintColors:[],blockPositions:[],normals:[],indices:[],indexOffset:0}),this.chunks[e][s][r]}updateStructureBuffers(t){var e;const i=(t,e,i)=>{const n=r.create();r.translate(n,n,e),zt(t.position,n),i.positions.push(t.position),i.textureCoordinates.push(...t.texCoord),i.tintColors.push(...t.tintColor);for(let e=0;e<t.position.length;e+=12){const r=s.fromValues(t.position[e],t.position[e+1],t.position[e+2]),n=s.fromValues(t.position[e+3],t.position[e+4],t.position[e+5]),o=s.fromValues(t.position[e+6],t.position[e+7],t.position[e+8]);s.subtract(n,n,r),s.subtract(o,o,r),s.cross(n,n,o),s.normalize(n,n),i.normals.push(...n,...n,...n,...n)}for(let s=0;s<t.texCoord.length/2;s+=1)i.blockPositions.push(...e);i.indices.push(...t.index),i.indexOffset+=t.texCoord.length/2},o=t=>{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,Gt(...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,Gt(...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 r of this.structure.getBlocks()){const o=r.state.getName(),a=r.state.getProperties(),u=null!=(e=this.resources.getDefaultBlockProperties(o))?e:{};Object.entries(u).forEach((([t,e])=>{a[t]||(a[t]=e)}));const h=[Math.floor(r.pos[0]/this.chunkSize),Math.floor(r.pos[1]/this.chunkSize),Math.floor(r.pos[2]/this.chunkSize)];if(t&&!t.some((t=>s.equals(t,h))))continue;const c=this.getChunk(h);try{const t=this.resources.getBlockDefinition(o),e={up:this.needsCull(r,n.UP),down:this.needsCull(r,n.DOWN),west:this.needsCull(r,n.WEST),east:this.needsCull(r,n.EAST),north:this.needsCull(r,n.NORTH),south:this.needsCull(r,n.SOUTH)};t&&(l=t.getBuffers(o,a,this.resources,this.resources,c.indexOffset,e),i(l,r.pos,c)),Qt.has(o.toString())&&(l=Kt[o.toString()](c.indexOffset,a,this.resources,e),i(l,r.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 s,r;const i=null==(s=this.structure.getBlock(l.towards(t.pos,e)))?void 0:s.state;return!!i&&((null==(r=this.resources.getBlockFlags(i.getName()))?void 0:r.opaque)?!(e===n.UP&&t.state.isFluid()):t.state.isFluid()&&i.isFluid())}getGridBuffers(){const[t,e,s]=this.structure.getSize(),r=[],i=[];r.push(0,0,0,t,0,0),i.push(1,0,0,1,0,0),r.push(0,0,0,0,0,s),i.push(0,0,1,0,0,1),r.push(0,0,0,0,e,0),r.push(t,0,0,t,e,0),r.push(0,0,s,0,e,s),r.push(t,0,s,t,e,s),r.push(0,e,0,0,e,s),r.push(t,e,0,t,e,s),r.push(0,e,0,t,e,0),r.push(0,e,s,t,e,s);for(let e=1;e<=t;e+=1)r.push(e,0,0,e,0,s);for(let e=1;e<=s;e+=1)r.push(0,0,e,t,0,e);for(let e=0;e<8+t+s;e+=1)i.push(.8,.8,.8,.8,.8,.8);return{position:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(r)),color:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(i)),length:r.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=[],s=[];for(let r=0;r<t[0];r+=1)for(let i=0;i<t[1];i+=1)for(let n=0;n<t[2];n+=1){const t=this.structure.getBlock([r,i,n]);void 0!==t&&(null===t?this.addCube(e,s,[1,.25,.25],[r+.4375,i+.4375,n+.4375],[r+.5625,i+.5625,n+.5625]):t.state.is(G.AIR)?this.addCube(e,s,[.5,.5,1],[r+.375,i+.375,n+.375],[r+.625,i+.625,n+.625]):t.state.is(new G(\"cave_air\"))&&this.addCube(e,s,[.5,1,.5],[r+.375,i+.375,n+.375],[r+.625,i+.625,n+.625]))}return{position:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(e)),color:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(s)),length:e.length/3}}addCube(t,e,s,r,i){t.push(r[0],r[1],r[2],r[0],r[1],i[2]),t.push(i[0],r[1],r[2],i[0],r[1],i[2]),t.push(r[0],r[1],r[2],i[0],r[1],r[2]),t.push(r[0],r[1],i[2],i[0],r[1],i[2]),t.push(r[0],r[1],r[2],r[0],i[1],r[2]),t.push(i[0],r[1],r[2],i[0],i[1],r[2]),t.push(r[0],r[1],i[2],r[0],i[1],i[2]),t.push(i[0],r[1],i[2],i[0],i[1],i[2]),t.push(r[0],i[1],r[2],r[0],i[1],i[2]),t.push(i[0],i[1],r[2],i[0],i[1],i[2]),t.push(r[0],i[1],r[2],i[0],i[1],r[2]),t.push(r[0],i[1],i[2],i[0],i[1],i[2]);for(let t=0;t<24;t+=1)e.push(...s)}createBuffer(t,e){const s=this.gl.createBuffer();return this.gl.bindBuffer(t,s),this.gl.bufferData(t,e,this.gl.DYNAMIC_DRAW),s}updateBuffer(t,e,s){this.gl.bindBuffer(e,t),this.gl.bufferData(e,s,this.gl.STATIC_DRAW)}drawGrid(t){this.setShader(this.gridShaderProgram),this.setVertexAttr(\"vertPos\",3,this.gridBuffers.position),this.setVertexAttr(\"vertColor\",3,this.gridBuffers.color),this.setUniform(\"mView\",t),this.setUniform(\"mProj\",this.projMatrix),this.gl.drawArrays(this.gl.LINES,0,this.gridBuffers.length)}drawInvisibleBlocks(t){this.useInvisibleBlockBuffer&&(this.setShader(this.gridShaderProgram),this.setVertexAttr(\"vertPos\",3,this.invisibleBlockBuffers.position),this.setVertexAttr(\"vertColor\",3,this.invisibleBlockBuffers.color),this.setUniform(\"mView\",t),this.setUniform(\"mProj\",this.projMatrix),this.gl.drawArrays(this.gl.LINES,0,this.invisibleBlockBuffers.length))}drawStructure(t){this.setShader(this.shaderProgram),this.gl.activeTexture(this.gl.TEXTURE0),this.gl.bindTexture(this.gl.TEXTURE_2D,this.atlasTexture),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(\"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 s=r.create();r.copy(s,t),r.translate(s,s,e),this.setUniform(\"mView\",s),this.setUniform(\"mProj\",this.projMatrix),this.gl.drawArrays(this.gl.LINES,0,this.outlineBuffers.length)}setViewport(t,e,s,r){this.gl.viewport(t,e,s,r),this.projMatrix=this.getPerspective()}setShader(t){this.gl.useProgram(t),this.activeShader=t}setVertexAttr(t,e,s){const r=this.gl.getAttribLocation(this.activeShader,t);this.gl.bindBuffer(this.gl.ARRAY_BUFFER,s),this.gl.vertexAttribPointer(r,e,this.gl.FLOAT,!1,0,0),this.gl.enableVertexAttribArray(r)}setUniform(t,e){const s=this.gl.getUniformLocation(this.activeShader,t);this.gl.uniformMatrix4fv(s,!1,e)}}var ee=(t,e,s)=>new Promise(((r,i)=>{var n=t=>{try{a(s.next(t))}catch(t){i(t)}},o=t=>{try{a(s.throw(t))}catch(t){i(t)}},a=t=>t.done?r(t.value):Promise.resolve(t.value).then(n,o);a((s=s.apply(t,e)).next())}));class se{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])?e:[0,0,this.part,this.part]}static fromBlobs(t){return ee(this,null,(function*(){const e=Math.sqrt(Object.keys(t).length+1),s=Math.pow(2,Math.ceil(Math.log(e)/Math.log(2))),r=16*s,i=1/s,n=document.createElement(\"canvas\");n.width=r,n.height=r;const o=n.getContext(\"2d\");this.drawInvalidTexture(o);const a={};let l=1;return yield Promise.all(Object.keys(t).map((e=>ee(this,null,(function*(){const r=l%s,n=Math.floor(l/s);l+=1,a[e]=[i*r,i*n,i*r+i,i*n+i];const u=yield createImageBitmap(t[e]);o.drawImage(u,0,0,16,16,16*r,16*n,16,16)}))))),new se(o.getImageData(0,0,r,r),a)}))}static empty(){const t=document.createElement(\"canvas\");t.width=16,t.height=16;const e=t.getContext(\"2d\");return se.drawInvalidTexture(e),new se(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)}}const re=class{constructor(t,e,s){this.offsetSampler=t,this.factorSampler=e,this.jaggednessSampler=s}static extractor(t){return{compute:e=>e[t]}}static fromJson(t){var e;const s=null!=(e=B.readObject(t))?e:{};return new re(ft.fromJson(s.offset,this.EXTRACTOR),ft.fromJson(s.factor,this.EXTRACTOR),ft.fromJson(s.jaggedness,this.EXTRACTOR))}offset(t){return this.offsetSampler.compute(t)+re.GLOBAL_OFFSET}factor(t){return this.factorSampler.compute(t)}jaggedness(t){return this.jaggednessSampler.compute(t)}static point(t,e,s){return{continents:t,erosion:e,weirdness:s,ridges:this.peaksAndValleys(s)}}static peaksAndValleys(t){return 3*-(Math.abs(Math.abs(t)-.6666667)-.33333334)}};let ie=re;var ne,oe,ae,le,ue;ie.GLOBAL_OFFSET=-.50375,ie.EXTRACTOR=t=>{var e;const s=null!=(e=B.readString(t))?e:\"continents\";return re.extractor(s)},ie.CONTINENTS=re.extractor(\"continents\"),ie.EROSION=re.extractor(\"erosion\"),ie.WEIRDNESS=re.extractor(\"weirdness\"),ie.RIDGES=re.extractor(\"ridges\"),function(t){function e(t){return t.ySize<<2}t.fromJson=function(t){var e,s,r,i,n;const o=null!=(e=B.readObject(t))?e:{};return{minY:null!=(s=B.readInt(o.min_y))?s:0,height:null!=(r=B.readInt(o.height))?r:256,xzSize:null!=(i=B.readInt(o.size_horizontal))?i:1,ySize:null!=(n=B.readInt(o.size_vertical))?n:1,sampling:yt.fromJson(o.sampling),topSlide:oe.fromJson(o.top_slide),bottomSlide:oe.fromJson(o.bottom_slide),terrainShaper:ie.fromJson(o.terrain_shaper)}},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))},t.applySlides=function(s,r,i){const n=Math.floor(i/e(s))-t.minCellY(s);return r=oe.apply(s.topSlide,r,t.cellCountY(s)-n),r=oe.apply(s.bottomSlide,r,n)}}(ne||(ne={})),(ae=oe||(oe={})).fromJson=function(t){var e,s,r,i;const n=null!=(e=B.readObject(t))?e:{};return{target:null!=(s=B.readNumber(n.target))?s:0,size:null!=(r=B.readInt(n.size))?r:0,offset:null!=(i=B.readInt(n.offset))?i:0}},ae.apply=function(t,e,s){if(t.size<=0)return e;const r=(s-t.offset)/t.size;return it(t.target,e,r)},function(t){function e(t){const e=new q(C.create(t));return q.REGISTRY.register(e.key,e),e}t.NOISE=e(\"worldgen/noise\"),t.DENSITY_FUNCTION=e(\"worldgen/density_function\")}(le||(le={}));class he{minValue(){return-this.maxValue()}mapAll(t){return t.map(this)}}!function(t){t.context=function(t,e,s){return{x:t,y:e,z:s}};class e extends t{constructor(t){super(),this.input=t}compute(t){return this.transform(t,this.input.compute(t))}}const s=j.parser(le.NOISE,Nt.fromJson);t.fromJson=function t(e,r=t){var l,v,S,N,T,D,U,G,z,Y,H,X,Z,q,J,W,$,K,Q;if(\"string\"==typeof e)return new n(j.reference(le.DENSITY_FUNCTION,C.parse(e)));if(\"number\"==typeof e)return new i(e);const tt=null!=(l=B.readObject(e))?l:{},et=null==(v=B.readString(tt.type))?void 0:v.replace(/^minecraft:/,\"\");switch(et){case\"blend_alpha\":return new o(1,0,1);case\"blend_offset\":case\"beardifier\":return new o(0,-1/0,1/0);case\"old_blended_noise\":return new a;case\"flat_cache\":return new u(r(tt.argument));case\"interpolated\":return new m(r(tt.argument));case\"cache_2d\":return new c(r(tt.argument));case\"cache_once\":return new f(r(tt.argument));case\"cache_all_in_cell\":return new h(r(tt.argument));case\"noise\":return new d(null!=(S=B.readNumber(tt.xz_scale))?S:1,null!=(N=B.readNumber(tt.y_scale))?N:1,s(tt.noise));case\"end_islands\":return new p;case\"weird_scaled_sampler\":return new w(r(tt.input),B.readEnum(tt.rarity_value_mapper,g),s(tt.noise));case\"shifted_noise\":return new b(r(tt.shift_x),r(tt.shift_y),r(tt.shift_z),null!=(T=B.readNumber(tt.xz_scale))?T:1,null!=(D=B.readNumber(tt.y_scale))?D:1,s(tt.noise));case\"range_choice\":return new x(r(tt.input),null!=(U=B.readNumber(tt.min_inclusive))?U:0,null!=(G=B.readNumber(tt.max_exclusive))?G:1,r(tt.when_in_range),r(tt.when_out_of_range));case\"shift_a\":return new _(s(tt.argument));case\"shift_b\":return new A(s(tt.argument));case\"shift\":return new y(s(tt.argument));case\"blend_density\":return new E(r(tt.argument));case\"clamp\":return new I(r(tt.input),null!=(z=B.readNumber(tt.min))?z:0,null!=(Y=B.readNumber(tt.max))?Y:1);case\"abs\":case\"square\":case\"cube\":case\"half_negative\":case\"quarter_negative\":case\"squeeze\":return new R(et,r(tt.argument));case\"slide\":return new M(r(tt.argument));case\"add\":case\"mul\":case\"min\":case\"max\":return new k(B.readEnum(et,O),r(tt.argument1),r(tt.argument2));case\"spline\":return new P(ft.fromJson(tt.spline,r),null!=(H=B.readNumber(tt.min_value))?H:0,null!=(X=B.readNumber(tt.max_value))?X:1);case\"terrain_shaper_spline\":return new F(r(tt.continentalness),r(tt.erosion),r(tt.weirdness),B.readEnum(tt.spline,L),null!=(Z=B.readNumber(tt.min_value))?Z:0,null!=(q=B.readNumber(tt.max_value))?q:1);case\"constant\":return new i(null!=(J=B.readNumber(tt.argument))?J:0);case\"y_clamped_gradient\":return new V(null!=(W=B.readInt(tt.from_y))?W:-4064,null!=($=B.readInt(tt.to_y))?$:4062,null!=(K=B.readNumber(tt.from_value))?K:-4064,null!=(Q=B.readNumber(tt.to_value))?Q:4062)}return i.ZERO};const r=class extends t{constructor(t){super(),this.value=t}compute(){return this.value}minValue(){return this.value}maxValue(){return this.value}};let i=r;i.ZERO=new r(0),i.ONE=new r(1),t.Constant=i;class n extends t{constructor(t){super(),this.holder=t}compute(t){return this.holder.value().compute(t)}minValue(){return this.holder.value().minValue()}maxValue(){return this.holder.value().maxValue()}}t.HolderHolder=n;class o extends t.Constant{constructor(t,e,s){super(t),this.min=e,this.max=s}minValue(){return this.min}maxValue(){return this.max}}t.ConstantMinMax=o;class a extends t{constructor(t){super(),this.blendedNoise=null!=t?t:new At(vt.create(BigInt(0)),{xzScale:1,yScale:1,xzFactor:80,yFactor:160},4,8)}compute(t){return this.blendedNoise.sample(t.x,t.y,t.z)}maxValue(){return this.blendedNoise.maxValue}}t.OldBlendedNoise=a;class l extends t{constructor(t){super(),this.wrapped=t}minValue(){return this.wrapped.minValue()}maxValue(){return this.wrapped.maxValue()}}class u extends l{constructor(t){super(t),this.lastValue=0}compute(e){const s=e.x>>2,r=e.z>>2;return this.lastQuartX===s&&this.lastQuartZ===r||(this.lastValue=this.wrapped.compute(t.context(s<<2,0,r<<2)),this.lastQuartX=s,this.lastQuartZ=r),this.lastValue}mapAll(t){return t.map(new u(this.wrapped.mapAll(t)))}}t.FlatCache=u;class h extends l{constructor(t){super(t)}compute(t){return this.wrapped.compute(t)}mapAll(t){return t.map(new h(this.wrapped.mapAll(t)))}}t.CacheAllInCell=h;class c extends l{constructor(t){super(t),this.lastValue=0}compute(t){const e=t.x,s=t.z;return this.lastBlockX===e&&this.lastBlockZ===s||(this.lastValue=this.wrapped.compute(t),this.lastBlockX=e,this.lastBlockZ=s),this.lastValue}mapAll(t){return t.map(new c(this.wrapped.mapAll(t)))}}t.Cache2D=c;class f extends l{constructor(t){super(t),this.lastValue=0}compute(t){const e=t.x,s=t.y,r=t.z;return this.lastBlockX===e&&this.lastBlockY===s&&this.lastBlockZ===r||(this.lastValue=this.wrapped.compute(t),this.lastBlockX=e,this.lastBlockY=s,this.lastBlockZ=r),this.lastValue}mapAll(t){return t.map(new f(this.wrapped.mapAll(t)))}}t.CacheOnce=f;class m extends l{constructor(t,e=4,s=4){super(t),this.cellWidth=e,this.cellHeight=s,this.values=new Map}compute({x:t,y:e,z:s}){const r=this.cellWidth,i=this.cellHeight,n=(t%r+r)%r/r,o=(e%i+i)%i/i,a=(s%r+r)%r/r,l=Math.floor(t/r)*r,u=Math.floor(e/i)*i,h=Math.floor(s/r)*r;return rt(n,o,a,(()=>this.computeCorner(l,u,h)),(()=>this.computeCorner(l+r,u,h)),(()=>this.computeCorner(l,u+i,h)),(()=>this.computeCorner(l+r,u+i,h)),(()=>this.computeCorner(l,u,h+r)),(()=>this.computeCorner(l+r,u,h+r)),(()=>this.computeCorner(l,u+i,h+r)),(()=>this.computeCorner(l+r,u+i,h+r)))}computeCorner(e,s,r){return T(this.values,`${e} ${s} ${r}`,(()=>this.wrapped.compute(t.context(e,s,r))))}mapAll(t){return t.map(new m(this.wrapped.mapAll(t)))}withCellSize(t,e){return new m(this.wrapped,t,e)}}t.Interpolated=m;class d extends t{constructor(t,e,s,r){super(),this.xzScale=t,this.yScale=e,this.noiseData=s,this.noise=r}compute(t){var e,s;return null!=(s=null==(e=this.noise)?void 0:e.sample(t.x*this.xzScale,t.y*this.yScale,t.z*this.xzScale))?s:0}maxValue(){var t,e;return null!=(e=null==(t=this.noise)?void 0:t.maxValue)?e:2}}t.Noise=d;class p extends t{compute(){return 0}minValue(){return-.84375}maxValue(){return.5625}}const g=[\"type_1\",\"type_2\"],v=class extends e{constructor(t,e,s,r){super(t),this.rarityValueMapper=e,this.noiseData=s,this.noise=r,this.mapper=v.ValueMapper[this.rarityValueMapper]}transform(t,e){if(!this.noise)return 0;const s=this.mapper(e);return s*Math.abs(this.noise.sample(t.x/s,t.y/s,t.z/s))}mapAll(t){return t.map(new v(this.input.mapAll(t),this.rarityValueMapper,this.noiseData,this.noise))}minValue(){return 0}maxValue(){return\"type_1\"===this.rarityValueMapper?2:3}static rarityValueMapper1(t){return t<-.5?.75:t<0?1:t<.5?1.5:2}static rarityValueMapper2(t){return t<-.75?.5:t<-.5?.75:t<.5?1:t<.75?2:3}};let w=v;w.ValueMapper={type_1:v.rarityValueMapper1,type_2:v.rarityValueMapper2},t.WeirdScaledSampler=w;class b extends d{constructor(t,e,s,r,i,n,o){super(r,i,n,o),this.shiftX=t,this.shiftY=e,this.shiftZ=s}compute(t){var e,s;const r=t.x*this.xzScale+this.shiftX.compute(t),i=t.y*this.yScale+this.shiftY.compute(t),n=t.z*this.xzScale+this.shiftZ.compute(t);return null!=(s=null==(e=this.noise)?void 0:e.sample(r,i,n))?s:0}mapAll(t){return t.map(new b(this.shiftX.mapAll(t),this.shiftY.mapAll(t),this.shiftZ.mapAll(t),this.xzScale,this.yScale,this.noiseData,this.noise))}}t.ShiftedNoise=b;class x extends t{constructor(t,e,s,r,i){super(),this.input=t,this.minInclusive=e,this.maxExclusive=s,this.whenInRange=r,this.whenOutOfRange=i}compute(t){const e=this.input.compute(t);return this.minInclusive<=e&&e<this.maxExclusive?this.whenInRange.compute(t):this.whenOutOfRange.compute(t)}mapAll(t){return t.map(new x(this.input.mapAll(t),this.minInclusive,this.maxExclusive,this.whenInRange.mapAll(t),this.whenOutOfRange.mapAll(t)))}minValue(){return Math.min(this.whenInRange.minValue(),this.whenOutOfRange.minValue())}maxValue(){return Math.max(this.whenInRange.maxValue(),this.whenOutOfRange.maxValue())}}t.RangeChoice=x;class S extends t{constructor(t,e){super(),this.noiseData=t,this.offsetNoise=e}compute(t){var e,s;return null!=(s=null==(e=this.offsetNoise)?void 0:e.sample(.25*t.x,.25*t.y,.25*t.z))?s:0}maxValue(){var t,e;return 4*(null!=(e=null==(t=this.offsetNoise)?void 0:t.maxValue)?e:2)}}t.ShiftNoise=S;class _ extends S{constructor(t,e){super(t,e)}compute(e){return super.compute(t.context(e.x,0,e.z))}withNewNoise(t){return new _(this.noiseData,t)}}t.ShiftA=_;class A extends S{constructor(t,e){super(t,e)}compute(e){return super.compute(t.context(e.z,e.x,0))}withNewNoise(t){return new A(this.noiseData,t)}}t.ShiftB=A;class y extends S{constructor(t,e){super(t,e)}withNewNoise(t){return new y(this.noiseData,t)}}t.Shift=y;class E extends e{constructor(t){super(t)}transform(t,e){return e}mapAll(t){return t.map(new E(this.input.mapAll(t)))}minValue(){return-1/0}maxValue(){return 1/0}}t.BlendDensity=E;class I extends e{constructor(t,e,s){super(t),this.min=e,this.max=s}transform(t,e){return $(e,this.min,this.max)}mapAll(t){return t.map(new I(this.input.mapAll(t),this.min,this.max))}minValue(){return this.min}maxValue(){return this.max}}t.Clamp=I;const N=class extends e{constructor(t,e,s,r){super(e),this.type=t,this.min=s,this.max=r,this.transformer=N.MappedTypes[this.type]}transform(t,e){return this.transformer(e)}mapAll(t){return t.map(new N(this.type,this.input.mapAll(t)))}minValue(){var t;return null!=(t=this.min)?t:-1/0}maxValue(){var t;return null!=(t=this.max)?t:1/0}withMinMax(){const t=this.input.minValue();let e=this.transformer(t),s=this.transformer(this.input.maxValue());return\"abs\"!==this.type&&\"square\"!==this.type||(s=Math.max(e,s),e=Math.max(0,t)),new N(this.type,this.input,e,s)}};let R=N;R.MappedTypes={abs:t=>Math.abs(t),square:t=>t*t,cube:t=>t*t*t,half_negative:t=>t>0?t:.5*t,quarter_negative:t=>t>0?t:.25*t,squeeze:t=>{const e=$(t,-1,1);return e/2-e*e*e/24}},t.Mapped=R;class M extends e{constructor(t,e){super(t),this.settings=e}transform(t,e){return this.settings?ne.applySlides(this.settings,e,t.y):e}mapAll(t){return t.map(new M(this.input.mapAll(t),this.settings))}minValue(){return this.settings?Math.min(this.input.minValue(),this.settings.bottomSlide.target,this.settings.topSlide.target):this.input.minValue()}maxValue(){return this.settings?Math.max(this.input.maxValue(),this.settings.bottomSlide.target,this.settings.topSlide.target):this.input.maxValue()}}t.Slide=M;const O=[\"add\",\"mul\",\"min\",\"max\"];class k extends t{constructor(t,e,s,r,i){super(),this.type=t,this.argument1=e,this.argument2=s,this.min=r,this.max=i}compute(t){const e=this.argument1.compute(t);switch(this.type){case\"add\":return e+this.argument2.compute(t);case\"mul\":return 0===e?0:e*this.argument2.compute(t);case\"min\":return e<this.argument2.minValue()?e:Math.min(e,this.argument2.compute(t));case\"max\":return e>this.argument2.maxValue()?e:Math.max(e,this.argument2.compute(t))}}mapAll(t){return t.map(new k(this.type,this.argument1.mapAll(t),this.argument2.mapAll(t)))}minValue(){var t;return null!=(t=this.min)?t:-1/0}maxValue(){var t;return null!=(t=this.max)?t:1/0}withMinMax(){const t=this.argument1.minValue(),e=this.argument2.minValue(),s=this.argument1.maxValue(),r=this.argument2.maxValue();let i,n;switch(\"min\"!==this.type&&\"max\"!==this.type||!(t>=r||e>=s)||console.warn(`Creating a ${this.type} function between two non-overlapping inputs`),this.type){case\"add\":i=t+e,n=s+r;break;case\"mul\":i=t>0&&e>0?t*e||0:s<0&&r<0?s*r||0:Math.min(t*r||0,e*s||0),n=t>0&&e>0?s*r||0:s<0&&r<0?t*e||0:Math.max(t*e||0,s*r||0);break;case\"min\":i=Math.min(t,e),n=Math.min(s,r);break;case\"max\":i=Math.max(t,e),n=Math.max(s,r)}return new k(this.type,this.argument1,this.argument2,i,n)}}t.Ap2=k;class P extends t{constructor(t,e,s){super(),this.spline=t,this.min=e,this.max=s}compute(t){return $(this.spline.compute(t),this.min,this.max)}mapAll(e){return e.map(new P(this.spline.mapAll((s=>s instanceof t?s.mapAll(e):s)),this.min,this.max))}minValue(){return this.min}maxValue(){return this.max}}t.Spline=P;const L=[\"offset\",\"factor\",\"jaggedness\"];class F extends t{constructor(t,e,s,r,i,n,o){super(),this.continentalness=t,this.erosion=e,this.weirdness=s,this.spline=r,this.min=i,this.max=n,this.shaper=o}compute(t){if(!this.shaper)return 0;const e=ie.point(this.continentalness.compute(t),this.erosion.compute(t),this.weirdness.compute(t));return $(this.shaper[this.spline](e),this.min,this.max)}mapAll(t){return t.map(new F(this.continentalness.mapAll(t),this.erosion.mapAll(t),this.weirdness.mapAll(t),this.spline,this.min,this.max,this.shaper))}minValue(){return this.min}maxValue(){return this.max}}t.TerrainShaperSpline=F;class V extends t{constructor(t,e,s,r){super(),this.fromY=t,this.toY=e,this.fromValue=s,this.toValue=r}compute(t){return lt(t.y,this.fromY,this.toY,this.fromValue,this.toValue)}minValue(){return Math.min(this.fromValue,this.toValue)}maxValue(){return Math.max(this.fromValue,this.toValue)}}t.YClampedGradient=V}(he||(he={}));class ce{constructor(t,e){this.level=t,this.type=e}at(t){return t<this.level?this.type:G.AIR}}(ue||(ue={})).createDisabled=function(t){return{compute({x:e,y:s,z:r},i){if(!(i>0))return t(e,s,r).at(s)}}};const fe=class{constructor(t,e,s,r,i,n,o,a,u,h){this.noiseChunk=t,this.barrierNoise=s,this.fluidLevelFloodednessNoise=r,this.fluidLevelSpreadNoise=i,this.lavaNoise=n,this.random=o,this.globalFluidPicker=h,this.minGridX=this.gridX(X.minBlockX(e))-1,this.gridSizeX=this.gridX(X.maxBlockX(e))+1-this.minGridX+1,this.minGridY=this.gridY(a)-1,this.minGridZ=this.gridZ(X.minBlockZ(e))-1,this.gridSizeZ=this.gridZ(X.maxBlockZ(e))+1-this.minGridZ+1;const c=this.gridY(a+u)+1-this.minGridY+1;this.gridSize=this.gridSizeX*c*this.gridSizeZ,this.aquiferCache=Array(this.gridSize).fill(void 0),this.aquiferLocationCache=Array(this.gridSize).fill(l.ZERO)}compute({x:t,y:e,z:s},r){if(r<=0){if(this.globalFluidPicker(t,e,s).at(e).is(G.LAVA))return G.LAVA;{const i=this.gridX(t-5),n=this.gridY(e+1),o=this.gridZ(s-5);let a=Number.MAX_SAFE_INTEGER,u=Number.MAX_SAFE_INTEGER,h=Number.MAX_SAFE_INTEGER,c=l.ZERO,f=l.ZERO,m=l.ZERO;for(let t=0;t<=1;t+=1)for(let e=-1;e<=1;e+=1)for(let s=0;s<=1;s+=1){const r=this.getLocation(i+t,n+e,o+s),d=l.magnitude(r);a>=d?(m=f,f=c,c=r,h=u,u=a,a=d):u>=d?(m=f,f=r,h=u,u=d):h>=d&&(m=r,h=d)}const d=this.getStatus(c),p=this.getStatus(f),g=this.getStatus(m),v=fe.similarity(a,u),w=fe.similarity(a,h),b=fe.similarity(u,h);let x;if(d.at(e).is(G.WATER)&&this.globalFluidPicker(t,e-1,s).at(e-1).is(G.LAVA))x=1;else if(v>-1){const r=R((()=>this.barrierNoise.compute(he.context(t,.5*e,s)))),i=this.calculatePressure(e,d,p,r),n=this.calculatePressure(e,d,g,r),o=this.calculatePressure(e,p,g,r),a=Math.max(i,n*Math.max(0,w),o*Math.max(b));x=Math.max(0,2*Math.max(0,v)*a)}else x=0;if(r+x<=0)return d.at(e)}}}static similarity(t,e){return 1-Math.abs(e-t)/25}calculatePressure(t,e,s,r){const i=e.at(t),n=s.at(t);if(i.is(G.LAVA)&&n.is(G.WATER)||i.is(G.WATER)&&n.is(G.LAVA))return 1;const o=Math.abs(e.level-s.level);if(0===o)return 0;const a=t+.5-(e.level+s.level)/2,l=o/2-Math.abs(a),u=a>0?l>0?l/1.5:l/2.5:l>-3?(l+3)/3:(l+3)/10;return u<-2||u>2?u:u+r()}getStatus(t){const[e,s,r]=t,i=this.getIndex(this.gridX(e),this.gridY(s),this.gridZ(r)),n=this.aquiferCache[i];if(void 0!==n)return n;const o=this.computeStatus(e,s,r);return this.aquiferCache[i]=o,o}computeStatus(t,e,s){const r=this.globalFluidPicker(t,e,s);let i=Number.MAX_SAFE_INTEGER,n=!1;for(const[o,a]of fe.SURFACE_SAMPLING){const l=t+(a<<4),u=s+(a<<4),h=this.noiseChunk.getPreliminarySurfaceLevel(l,u);i=Math.min(i,h);const c=0===o&&0===a;if(c&&e-12>h+8)return r;if(c||e+12>h+8){const t=this.globalFluidPicker(l,h+8,u);if(!t.at(h+8).is(G.AIR)){if(c)return t;n=!0}}}const o=n?lt(i+8-e,0,64,1,0):0,a=$(this.fluidLevelFloodednessNoise.compute(he.context(t,.67*e,s)),-1,1);if(a>at(o,1,0,-.3,.8))return r;if(a<=at(o,1,0,-.8,.4))return new ce(Number.MIN_SAFE_INTEGER,r.type);const l=Math.floor(e/40),u=this.fluidLevelSpreadNoise.compute(he.context(Math.floor(t/16),l,Math.floor(s/16))),h=40*l+20+3*Math.floor(u/3),c=Math.min(i,h),f=this.getFluidType(t,e,s,r.type,h);return new ce(c,f)}getFluidType(t,e,s,r,i){if(i<=-10){const r=this.lavaNoise.compute(he.context(Math.floor(t/64),Math.floor(e/40),Math.floor(s/64)));if(Math.abs(r)>.3)return G.LAVA}return r}getLocation(t,e,s){const r=this.getIndex(t,e,s),i=this.aquiferLocationCache[r];if(l.equals(i,l.ZERO))return i;const n=this.random.at(t,e,s),o=l.create(t*fe.X_SPACING+n.nextInt(10),e*fe.Y_SPACING+n.nextInt(9),s*fe.Z_SPACING+n.nextInt(10));return this.aquiferLocationCache[r]=o,o}getIndex(t,e,s){const r=t-this.minGridX,i=e-this.minGridY,n=s-this.minGridZ,o=(i*this.gridSizeZ+n)*this.gridSizeX+r;if(o<0||o>=this.gridSize)throw new Error(`Invalid aquifer index at ${t} ${e} ${s}: 0 <= ${o} < ${this.gridSize}`);return o}gridX(t){return Math.floor(t/fe.X_SPACING)}gridY(t){return Math.floor(t/fe.Y_SPACING)}gridZ(t){return Math.floor(t/fe.Z_SPACING)}};let me=fe;var de,pe;me.X_SPACING=16,me.Y_SPACING=12,me.Z_SPACING=16,me.SURFACE_SAMPLING=[[-2,-1],[-1,-1],[0,-1],[1,-1],[-3,0],[-2,0],[-1,0],[0,0],[1,0],[-2,1],[-1,1],[0,1],[1,1]],function(t){function e(t,e){return\"number\"==typeof t?new s(t,null!=e?e:t):t}t.target=function(t,e,s,r,n,o){return new i(t,e,s,r,n,o)},t.parameters=function(t,s,i,n,o,a,l){return new r(e(t),e(s),e(i),e(n),e(o),e(a),l)},t.param=e;class s{constructor(t,e){this.min=t,this.max=e}distance(t){const e=(\"number\"==typeof t?t:t.min)-this.max,s=this.min-(\"number\"==typeof t?t:t.max);return e>0?e:Math.max(s,0)}union(t){return new s(Math.min(this.min,t.min),Math.max(this.max,t.max))}static fromJson(t){var e;if(\"number\"==typeof t)return new s(t,t);const[r,i]=null!=(e=B.readArray(t,(t=>B.readNumber(t))))?e:[];return new s(null!=r?r:0,null!=i?i:0)}}t.Param=s;class r{constructor(t,e,s,r,i,n,o){this.temperature=t,this.humidity=e,this.continentalness=s,this.erosion=r,this.depth=i,this.weirdness=n,this.offset=o}fittness(t){return W(this.temperature.distance(t.temperature))+W(this.humidity.distance(t.humidity))+W(this.continentalness.distance(t.continentalness))+W(this.erosion.distance(t.erosion))+W(this.depth.distance(t.depth))+W(this.weirdness.distance(t.weirdness))+W(this.offset-t.offset)}space(){return[this.temperature,this.humidity,this.continentalness,this.erosion,this.depth,this.weirdness,new s(this.offset,this.offset)]}static fromJson(t){var e,i;const n=null!=(e=B.readObject(t))?e:{};return new r(s.fromJson(n.temperature),s.fromJson(n.humidity),s.fromJson(n.continentalness),s.fromJson(n.erosion),s.fromJson(n.depth),s.fromJson(n.weirdness),null!=(i=B.readInt(n.offset))?i:0)}}t.ParamPoint=r;class i{constructor(t,e,s,r,i,n){this.temperature=t,this.humidity=e,this.continentalness=s,this.erosion=r,this.depth=i,this.weirdness=n}get offset(){return 0}toArray(){return[this.temperature,this.humidity,this.continentalness,this.erosion,this.depth,this.weirdness,this.offset]}}t.TargetPoint=i;t.Parameters=class{constructor(t){this.things=t,this.index=new o(t)}find(t){return this.index.search(t,((t,e)=>t.distance(e)))}};t.Sampler=class{constructor(t,e,s,r,i,n){this.temperature=t,this.humidity=e,this.continentalness=s,this.erosion=r,this.depth=i,this.weirdness=n}static fromRouter(e){return new t.Sampler(e.temperature,e.vegetation,e.continents,e.erosion,e.depth,e.ridges)}sample(e,s,r){const i=he.context(e<<2,s<<2,r<<2);return t.target(this.temperature.compute(i),this.humidity.compute(i),this.continentalness.compute(i),this.erosion.compute(i),this.depth.compute(i),this.weirdness.compute(i))}};const n=class{constructor(t){this.root=n.build(t.map((([t,e])=>new u(t,e))))}static build(t){if(1===t.length)return t[0];if(t.length<=n.CHILDREN_PER_NODE){const e=t.map((t=>{let e=0;for(let s=0;s<7;s+=1){const r=t.space[s];e+=Math.abs((r.min+r.max)/2)}return{key:e,node:t}})).sort(((t,e)=>t.key-e.key)).map((({node:t})=>t));return new l(e)}let e=1/0,s=-1,r=[];for(let i=0;i<7;++i){t=n.sort(t,i,!1),r=n.bucketize(t);let o=0;for(const t of r)o+=n.area(t.space);e>o&&(e=o,s=i)}return t=n.sort(t,s,!1),r=n.bucketize(t),r=n.sort(r,s,!0),new l(r.map((t=>n.build(t.children))))}static sort(t,e,s){return t.map((t=>{const r=t.space[e],i=(r.min+r.max)/2;return{key:s?Math.abs(i):i,node:t}})).sort(((t,e)=>t.key-e.key)).map((({node:t})=>t))}static bucketize(t){const e=[];let s=[];const r=Math.pow(10,Math.floor(Math.log(t.length-.01)/Math.log(10)));for(const i of t)s.push(i),s.length<r||(e.push(new l(s)),s=[]);return 0!==s.length&&e.push(new l(s)),e}static area(t){let e=0;for(const s of t)e+=Math.abs(s.max-s.min);return e}search(t,e){return this.root.search(t.toArray(),e).thing()}};let o=n;o.CHILDREN_PER_NODE=10,t.RTree=o;class a{constructor(t){this.space=t}distance(t){let e=0;for(let s=0;s<7;s+=1)e+=W(this.space[s].distance(t[s]));return e}}t.RNode=a;class l extends a{constructor(t){super(l.buildSpace(t)),this.children=t}static buildSpace(t){let e=[...Array(7)].map((()=>new s(1/0,-1/0)));for(const s of t)e=[...Array(7)].map(((t,r)=>e[r].union(s.space[r])));return e}search(t,e){let s=1/0,r=null;for(const i of this.children){const n=e(i,t);if(s<=n)continue;const o=i.search(t,e),a=i==o?n:e(o,t);s<=a||(s=a,r=o)}return r}}t.RSubTree=l;class u extends a{constructor(t,e){super(t.space()),this.thing=e}search(){return this}}t.RLeaf=u}(de||(de={}));class ge{constructor(t){this.biome=t}getBiome(){return this.biome}static fromJson(t){var e,s;const r=null!=(e=B.readObject(t))?e:{},i=C.parse(null!=(s=B.readString(r.biome))?s:\"minecraft:the_void\");return new ge(i)}}class ve{constructor(t){this.parameters=t}getBiome(t,e,s,r){const i=r.sample(t,e,s);return this.parameters.find(i)}static fromJson(t){var e,s;const r=null!=(e=B.readObject(t))?e:{},i=(null!=(s=B.readArray(r.biomes,(t=>{var e,s,r;return s=null!=(e=B.readObject(t))?e:{},{biome:C.parse(null!=(r=B.readString(s.biome))?r:\"minecraft:the_void\"),parameters:de.ParamPoint.fromJson(s.parameters)}})))?s:[]).map((t=>[t.parameters,()=>t.biome]));return new ve(new de.Parameters(i))}}!function(t){function e(t,e,s){return le.NOISE.register(C.create(t),Nt.create(e,s))}t.TEMPERATURE=e(\"temperature\",-10,[1.5,0,1,0,0,0]),t.VEGETATION=e(\"vegetation\",-8,[1,1,0,0,0,0]),t.CONTINENTALNESS=e(\"continentalness\",-9,[1,1,2,2,2,1,1,1,1]),t.EROSION=e(\"erosion\",-9,[1,1,0,1,1]),t.TEMPERATURE_LARGE=e(\"temperature_large\",-12,[1.5,0,1,0,0,0]),t.VEGETATION_LARGE=e(\"vegetation_large\",-10,[1,1,0,0,0,0]),t.CONTINENTALNESS_LARGE=e(\"continentalness_large\",-11,[1,1,2,2,2,1,1,1,1]),t.EROSION_LARGE=e(\"erosion_large\",-11,[1,1,0,1,1]),t.RIDGE=e(\"ridge\",-7,[1,2,1,0,0,0]),t.SHIFT=e(\"offset\",-3,[1,1,1,0]),t.AQUIFER_BARRIER=e(\"aquifer_barrier\",-3,[1]),t.AQUIFER_FLUID_LEVEL_FLOODEDNESS=e(\"aquifer_fluid_level_floodedness\",-7,[1]),t.AQUIFER_FLUID_LEVEL_SPREAD=e(\"aquifer_fluid_level_spread\",-5,[1]),t.AQUIFER_LAVA=e(\"aquifer_lava\",-1,[1]),t.PILLAR=e(\"pillar\",-7,[1,1]),t.PILLAR_RARENESS=e(\"pillar_rareness\",-8,[1]),t.PILLAR_THICKNESS=e(\"pillar_thickness\",-8,[1]),t.SPAGHETTI_2D=e(\"spaghetti_2d\",-8,[1]),t.SPAGHETTI_2D_ELEVATION=e(\"spaghetti_2d_elevation\",-8,[1]),t.SPAGHETTI_2D_MODULATOR=e(\"spaghetti_2d_modulator\",-8,[1]),t.SPAGHETTI_2D_THICKNESS=e(\"spaghetti_2d_thickness\",-8,[1]),t.SPAGHETTI_3D_1=e(\"spaghetti_3d_1\",-8,[1]),t.SPAGHETTI_3D_2=e(\"spaghetti_3d_2\",-8,[1]),t.SPAGHETTI_3D_RARITY=e(\"spaghetti_3d_rarity\",-8,[1]),t.SPAGHETTI_3D_THICKNESS=e(\"spaghetti_3d_thickness\",-8,[1]),t.SPAGHETTI_ROUGHNESS=e(\"spaghetti_roughness\",-8,[1]),t.SPAGHETTI_ROUGHNESS_MODULATOR=e(\"spaghetti_roughness_modulator\",-8,[1]),t.CAVE_ENTRANCE=e(\"cave_entrance\",-7,[.4,.5,1]),t.CAVE_LAYER=e(\"cave_layer\",-8,[1]),t.CAVE_CHEESE=e(\"cave_cheese\",-8,[.5,1,2,1,2,1,0,2,0]),t.NOODLE=e(\"noodle\",-8,[1]),t.NOODLE_THICKNESS=e(\"noodle_thickness\",-8,[1]),t.NOODLE_RIDGE_A=e(\"noodle_ridge_a\",-7,[1]),t.NOODLE_RIDGE_B=e(\"noodle_ridge_b\",-7,[1]),t.JAGGED=e(\"jagged\",-16,[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]),t.SURFACE=e(\"surface\",-6,[1,1,1]),t.SURFACE_SECONDARY=e(\"surface_secondary\",-6,[1,1,0,1]);const s=new Map;t.instantiate=function(t,e){var r;const i=null==(r=e.key())?void 0:r.toString();if(!i)throw new Error(\"Cannot instantiate noise from direct holder\");const n=t.seedKey(),o=s.get(i);if(o&&o[0]===n[0]&&o[1]===n[1])return o[2];const a=new It(t.fromHashOf(i),e.value());return s.set(i,[n[0],n[1],a]),a}}(pe||(pe={}));var we,be,xe,Se,_e,Ae,ye,Ee=Object.defineProperty,Ie=Object.defineProperties,Ne=Object.getOwnPropertyDescriptors,Be=Object.getOwnPropertySymbols,Re=Object.prototype.hasOwnProperty,Te=Object.prototype.propertyIsEnumerable,Me=(t,e,s)=>e in t?Ee(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s,Ce=(t,e)=>{for(var s in e||(e={}))Re.call(e,s)&&Me(t,s,e[s]);if(Be)for(var s of Be(e))Te.call(e,s)&&Me(t,s,e[s]);return t};!function(t){const e=t=>j.parser(le.DENSITY_FUNCTION,he.fromJson)(t).value();t.fromJson=function(t){var s;const r=null!=(s=B.readObject(t))?s:{};return{barrier:e(r.barrier),fluidLevelFloodedness:e(r.fluid_level_floodedness),fluidLevelSpread:e(r.fluid_level_spread),lava:e(r.lava),temperature:e(r.temperature),vegetation:e(r.vegetation),continents:e(r.continents),erosion:e(r.erosion),depth:e(r.depth),ridges:e(r.ridges),initialDensityWithoutJaggedness:e(r.initial_density_without_jaggedness),finalDensity:e(r.final_density),veinToggle:e(r.vein_toggle),veinRidged:e(r.vein_ridged),veinGap:e(r.vein_gap)}},t.create=function(t){return Ce({barrier:he.Constant.ZERO,fluidLevelFloodedness:he.Constant.ZERO,fluidLevelSpread:he.Constant.ZERO,lava:he.Constant.ZERO,temperature:he.Constant.ZERO,vegetation:he.Constant.ZERO,continents:he.Constant.ZERO,erosion:he.Constant.ZERO,depth:he.Constant.ZERO,ridges:he.Constant.ZERO,initialDensityWithoutJaggedness:he.Constant.ZERO,finalDensity:he.Constant.ZERO,veinToggle:he.Constant.ZERO,veinRidged:he.Constant.ZERO,veinGap:he.Constant.ZERO},t)},t.withSettings=function(t,e,r,i=!1){const n=(i?new dt(r):vt.create(r)).forkPositional(),o=new s(n,e);return a=Ce({},o.mapAll(t)),l={aquiferPositionalRandomFactory:n.fromHashOf(C.create(\"aquifer\").toString()).forkPositional(),oreVeinsPositionalRandomFactory:n.fromHashOf(C.create(\"ore\").toString()).forkPositional()},Ie(a,Ne(l));var a,l};class s{constructor(t,e){this.random=t,this.settings=e,this.mapped=new Map}map(t){if(t instanceof he.HolderHolder){const e=t.holder.key();if(void 0!==e&&this.mapped.has(e.toString()))return this.mapped.get(e.toString());{const s=t.holder.value().mapAll(this);return void 0!==e&&this.mapped.set(e.toString(),s),s}}if(t instanceof he.Interpolated)return t.withCellSize(ne.cellWidth(this.settings),ne.cellHeight(this.settings));if(t instanceof he.Noise)return new he.Noise(t.xzScale,t.yScale,t.noiseData,pe.instantiate(this.random,t.noiseData));if(t instanceof he.ShiftNoise)return t.withNewNoise(pe.instantiate(this.random,t.noiseData));if(t instanceof he.ShiftedNoise){const e=pe.instantiate(this.random,t.noiseData);return new he.ShiftedNoise(t.shiftX,t.shiftY,t.shiftZ,t.xzScale,t.yScale,t.noiseData,e)}return t instanceof he.WeirdScaledSampler?new he.WeirdScaledSampler(t.input,t.rarityValueMapper,t.noiseData,pe.instantiate(this.random,t.noiseData)):t instanceof he.OldBlendedNoise?new he.OldBlendedNoise(new At(this.random.fromHashOf(C.create(\"terrain\").toString()),this.settings.sampling,ne.cellWidth(this.settings),ne.cellHeight(this.settings))):t instanceof he.Mapped||t instanceof he.Ap2?t.withMinMax():t instanceof he.TerrainShaperSpline?new he.TerrainShaperSpline(t.continentalness,t.erosion,t.weirdness,t.spline,t.min,t.max,this.settings.terrainShaper):t instanceof he.Slide?new he.Slide(t.input,this.settings):t}mapAll(t){return{barrier:t.barrier.mapAll(this),fluidLevelFloodedness:t.fluidLevelFloodedness.mapAll(this),fluidLevelSpread:t.fluidLevelSpread.mapAll(this),lava:t.lava.mapAll(this),temperature:t.temperature.mapAll(this),vegetation:t.vegetation.mapAll(this),continents:t.continents.mapAll(this),erosion:t.erosion.mapAll(this),depth:t.depth.mapAll(this),ridges:t.ridges.mapAll(this),initialDensityWithoutJaggedness:t.initialDensityWithoutJaggedness.mapAll(this),finalDensity:t.finalDensity.mapAll(this),veinToggle:t.veinToggle.mapAll(this),veinRidged:t.veinRidged.mapAll(this),veinGap:t.veinGap.mapAll(this)}}}t.Visitor=s,t.computePreliminarySurfaceLevelScanning=function(t,e,s,r){const i=ne.minCellY(t)+ne.cellCountY(t),n=ne.minCellY(t),o=ne.cellHeight(t);for(let a=i;a>=n;a-=1){const i=a*o,n=$(e.compute(he.context(s,i,r)),-64,64);if(ne.applySlides(t,n,i)>=.390625)return i}return Number.MAX_SAFE_INTEGER}}(we||(we={}));class Oe{constructor(t,e,s,r,i,n,o,a,l){this.cellCountXZ=t,this.cellCountY=e,this.cellNoiseMinY=s,this.router=r,this.minX=i,this.minZ=n,this.settings=o,this.preliminarySurfaceLevel=new Map,this.cellWidth=ne.cellWidth(o),this.cellHeight=ne.cellHeight(o),this.firstCellX=Math.floor(i/this.cellWidth),this.firstCellZ=Math.floor(n/this.cellWidth),this.firstNoiseX=i>>2,this.firstNoiseZ=n>>2,this.noiseSizeXZ=t*this.cellWidth>>2,this.aquifer=ue.createDisabled(l);const u=this.router.finalDensity;this.materialRule=be.fromList([t=>this.aquifer.compute(t,u.compute(t))]),this.initialDensityWithoutJaggedness=this.router.initialDensityWithoutJaggedness}getFinalState(t,e,s){return this.materialRule({x:t,y:e,z:s})}getPreliminarySurfaceLevel(t,e){return T(this.preliminarySurfaceLevel,X.asLong(t,e),(()=>we.computePreliminarySurfaceLevelScanning(this.settings,this.initialDensityWithoutJaggedness,t<<2,e<<2)))}getAquifer(){return this.aquifer}}(be||(be={})).fromList=function(t){return e=>{for(const s of t){const t=s(e);if(t)return t}}},(xe||(xe={})).fromJson=function(t){var e,s,r,i;const n=null!=(e=B.readObject(t))?e:{};return void 0!==n.absolute?(o=null!=(s=B.readNumber(n.absolute))?s:0,()=>o):void 0!==n.above_bottom?function(t){return e=>e.minY+t}(null!=(r=B.readNumber(n.above_bottom))?r:0):void 0!==n.below_top?function(t){return e=>e.maxY-t}(null!=(i=B.readNumber(n.below_top))?i:0):()=>0;var o},(Se||(Se={})).create=function(t,e){return{minY:t,height:e,maxY:t+e-1}};class ke{constructor(t,e,s){this.rule=t,this.defaultBlock=e,this.random=vt.create(s).forkPositional(),this.surfaceNoise=pe.instantiate(this.random,pe.SURFACE),this.surfaceSecondaryNoise=pe.instantiate(this.random,pe.SURFACE_SECONDARY),this.positionalRandoms=new Map}buildSurface(t,e,s,r){const i=X.minBlockX(t.pos),n=X.minBlockZ(t.pos),o=new Pe(this,t,e,s,r),a=this.rule(o);for(let e=0;e<16;e+=1){const s=i+e;for(let e=0;e<1;e+=1){const r=n+e;o.updateXZ(s,r);let i=0,u=Number.MIN_SAFE_INTEGER,h=Number.MAX_SAFE_INTEGER;for(let e=t.maxY;e>=t.minY;e-=1){const n=l.create(s,e,r),c=t.getBlockState(n);if(c.equals(G.AIR)){i=0,u=Number.MIN_SAFE_INTEGER;continue}if(c.isFluid()){u===Number.MIN_SAFE_INTEGER&&(u=e+1);continue}if(h>=e){h=Number.MIN_SAFE_INTEGER;for(let i=e-1;i>=t.minY;i-=1){const e=t.getBlockState(l.create(s,i,r));if(e.equals(G.AIR)||e.isFluid()){h=i+1;break}}}i+=1;const f=e-h+1;if(!c.equals(this.defaultBlock))continue;o.updateY(i,f,u,e);const m=a(s,e,r);m&&t.setBlockState(n,m)}}}}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 T(this.positionalRandoms,t,(()=>this.random.fromHashOf(t)))}}class Pe{constructor(t,e,s,r,i){this.system=t,this.chunk=e,this.noiseChunk=s,this.context=r,this.getBiome=i,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=R((()=>this.system.getSurfaceSecondary(t,e))),this.minSurfaceLevel=R((()=>this.calculateMinSurfaceLevel(t,e)))}updateY(t,e,s,r){this.blockY=r,this.stoneDepthAbove=t,this.stoneDepthBelow=e,this.waterHeight=s,this.biome=R((()=>this.getBiome(l.create(this.blockX,this.blockY,this.blockZ))))}calculateMinSurfaceLevel(t,e){const s=t>>4,r=e>>4,i=this.noiseChunk.getPreliminarySurfaceLevel(s<<4,r<<4),n=this.noiseChunk.getPreliminarySurfaceLevel(s+1<<4,r<<4),o=this.noiseChunk.getPreliminarySurfaceLevel(s<<4,r+1<<4),a=this.noiseChunk.getPreliminarySurfaceLevel(s+1<<4,r+1<<4);return Math.floor(Q((15&t)/16,(15&e)/16,i,n,o,a))+this.surfaceDepth-8}}!function(t){function e(t){return()=>()=>t}function s(t){return e=>{const s=t.map((t=>t(e)));return(t,e,r)=>{for(const i of s){const s=i(t,e,r);if(s)return s}}}}function r(t,e){return s=>(r,i,n)=>{if(t(s))return e(s)(r,i,n)}}t.NOOP=()=>()=>{},t.fromJson=function(i){var n,o,a;const l=null!=(n=B.readObject(i))?n:{};switch(null==(o=B.readString(l.type))?void 0:o.replace(/^minecraft:/,\"\")){case\"block\":return e(G.fromJson(l.result_state));case\"sequence\":return s(null!=(a=B.readArray(l.sequence,t.fromJson))?a:[]);case\"condition\":return r(Ae.fromJson(l.if_true),t.fromJson(l.then_run))}return t.NOOP},t.block=e,t.sequence=s,t.condition=r}(_e||(_e={})),function(t){function e(){return t=>t.blockY>=t.minSurfaceLevel()}function s(t){const e=new Set(t);return t=>e.has(t.biome())}function r(t){return e=>!t(e)}function i(t,e,s,r){return i=>{const n=r?i.stoneDepthBelow:i.stoneDepthAbove,o=e?i.surfaceDepth:0,a=0===s?0:at(i.surfaceSecondary(),-1,1,0,s);return n<=1+t+o+a}}function n(t,e,s){return r=>{const i=e(r.context),n=s(r.context);if(r.blockY<=i)return!0;if(r.blockY>=n)return!1;const o=r.system.getRandom(t),a=at(r.blockY,i,n,1,0);return o.nextFloat()<a}}function o(t,e,s){return r=>{if(r.waterHeight===Number.MIN_SAFE_INTEGER)return!0;const i=s?r.stoneDepthAbove:0;return r.blockY+i>=r.waterHeight+t+r.surfaceDepth*e}}function a(t,e,s){return r=>{const i=s?r.stoneDepthAbove:0;return r.blockY+i>=t(r.context)+r.surfaceDepth*e}}t.FALSE=()=>!1,t.TRUE=()=>!0,t.fromJson=function(e){var l,u,h,c,f,m,d,p,g,v,w,b;const x=null!=(l=B.readObject(e))?l:{};switch(null==(u=B.readString(x.type))?void 0:u.replace(/^minecraft:/,\"\")){case\"above_preliminary_surface\":return t=>t.blockY>=t.minSurfaceLevel();case\"biome\":return s(null!=(h=B.readArray(x.biome_is,(t=>{var e;return null!=(e=B.readString(t))?e:\"\"})))?h:[]);case\"not\":return r(t.fromJson(x.invert));case\"stone_depth\":return i(null!=(c=B.readInt(x.offset))?c:0,null!=(f=B.readBoolean(x.add_surface_depth))&&f,null!=(m=B.readInt(x.secondary_depth_range))?m:0,\"ceiling\"===B.readString(x.surface_type));case\"vertical_gradient\":return n(null!=(d=B.readString(x.random_name))?d:\"\",xe.fromJson(x.true_at_and_below),xe.fromJson(x.false_at_and_above));case\"water\":return o(null!=(p=B.readInt(x.offset))?p:0,null!=(g=B.readInt(x.surface_depth_multiplier))?g:0,null!=(v=B.readBoolean(x.add_surface_depth))&&v);case\"y_above\":return a(xe.fromJson(x.anchor),null!=(w=B.readInt(x.surface_depth_multiplier))?w:0,null!=(b=B.readBoolean(x.add_surface_depth))&&b)}return t.FALSE},t.abovePreliminarySurface=e,t.biome=s,t.not=r,t.stoneDepth=i,t.verticalGradient=n,t.water=o,t.yAbove=a}(Ae||(Ae={}));class Le{constructor(t,e,s){this.biomeSource=e,this.settings=s,this.router=we.withSettings(s.noiseRouter,s.noise,t,s.legacyRandomSource),this.noiseChunkCache=new Map,this.surfaceSystem=new ke(s.surfaceRule,s.defaultBlock,t);const r=new ce(-54,G.LAVA),i=new ce(s.seaLevel,s.defaultFluid);this.globalFluidPicker=(t,e,n)=>e<Math.min(-54,s.seaLevel)?r:i}fill(t,e=!1){var s;const r=Math.max(t.minY,this.settings.noise.minY),i=Math.min(t.maxY,this.settings.noise.minY+this.settings.noise.height),n=ne.cellWidth(this.settings.noise),o=ne.cellHeight(this.settings.noise),a=Math.floor(16/n),l=Math.floor(r/o),u=Math.floor((i-r)/o),h=X.minBlockX(t.pos),c=X.minBlockZ(t.pos),f=this.getNoiseChunk(t);for(let r=0;r<a;r+=1)for(let i=0;i<(e?1:a);i+=1){let a=t.getOrCreateSection(t.sectionsCount-1);for(let m=u-1;m>=0;m-=1)for(let u=o-1;u>=0;u-=1){const d=(l+m)*o+u,p=15&d,g=t.getSectionIndex(d);t.getSectionIndex(a.minBlockY)!==g&&(a=t.getOrCreateSection(g));for(let t=0;t<n;t+=1){const o=h+r*n+t,l=15&o;for(let t=0;t<(e?1:n);t+=1){const e=c+i*n+t,r=15&e,u=null!=(s=f.getFinalState(o,d,e))?s:this.settings.defaultBlock;a.setBlockState(l,p,r,u)}}}}}buildSurface(t,e=\"minecraft:plains\"){const s=this.getNoiseChunk(t),r=Se.create(this.settings.noise.minY,this.settings.noise.height);this.surfaceSystem.buildSurface(t,s,r,(()=>e))}getNoiseChunk(t){return T(this.noiseChunkCache,X.toLong(t.pos),(()=>{const e=Math.max(t.minY,this.settings.noise.minY),s=Math.min(t.maxY,this.settings.noise.minY+this.settings.noise.height),r=ne.cellWidth(this.settings.noise),i=ne.cellHeight(this.settings.noise),n=Math.floor(16/r),o=Math.floor(e/i),a=Math.floor((s-e)/i),l=X.minBlockX(t.pos),u=X.minBlockZ(t.pos);return new Oe(n,a,o,this.router,l,u,this.settings.noise,this.settings.aquifersEnabled,this.globalFluidPicker)}))}}(ye||(ye={})).fromJson=function(t){var e,s,r,i,n,o;const a=null!=(e=B.readObject(t))?e:{};return{surfaceRule:_e.fromJson(a.surface_rule),noise:ne.fromJson(a.noise),defaultBlock:G.fromJson(a.default_block),defaultFluid:G.fromJson(a.default_fluid),noiseRouter:we.fromJson(a.noise_router),seaLevel:null!=(s=B.readInt(a.sea_level))?s:0,disableMobGeneration:null!=(r=B.readBoolean(a.disable_mob_generation))&&r,aquifersEnabled:null!=(i=B.readBoolean(a.aquifers_enabled))&&i,oreVeinsEnabled:null!=(n=B.readBoolean(a.ore_veins_enabled))&&n,legacyRandomSource:null!=(o=B.readBoolean(a.legacy_random_source))&&o}};export{ue as Aquifer,At as BlendedNoise,Dt as BlockColors,Yt as BlockDefinition,qt as BlockModel,l as BlockPos,G as BlockState,H as Chunk,X as ChunkPos,Y as ChunkSection,de as Climate,ft as CubicSpline,he as DensityFunction,n as Direction,ge as FixedBiome,ce as FluidStatus,j as Holder,C as Identifier,St as ImprovedNoise,pt as LegacyPositionalRandom,dt as LegacyRandom,be as MaterialRule,ve as MultiNoise,f as NbtReader,m as NbtWriter,me as NoiseAquifer,Oe as NoiseChunk,Le as NoiseChunkGenerator,ye as NoiseGeneratorSettings,Nt as NoiseParameters,we as NoiseRouter,yt as NoiseSamplingSettings,ne as NoiseSettings,oe as NoiseSlideSettings,pe as Noises,It as NormalNoise,_t as PerlinNoise,Rt as PerlinSimplexNoise,q as Registry,xt as SimplexNoise,J as Structure,te as StructureRenderer,Ae as SurfaceCondition,Pe as SurfaceContext,_e as SurfaceRule,ke as SurfaceSystem,ie as TerrainShaper,se as TextureAtlas,xe as VerticalAnchor,Se as WorldgenContext,le as WorldgenRegistries,wt as XoroshiroPositionalRandom,vt as XoroshiroRandom,ut as binarySearch,$ as clamp,it as clampedLerp,lt as clampedMap,I as getListTag,N as getOptional,ht as getSeed,E as getTag,nt as inverseLerp,et as lazyLerp,st as lazyLerp2,rt as lazyLerp3,K as lerp,Q as lerp2,tt as lerp3,ct as longfromBytes,at as map,g as read,w as readChunk,p as readCompressed,v as readRegion,d as readUncompressed,ot as smoothstep,W as square,c as tagNames,h as tagTypes,S as write,A as writeChunk,x as writeCompressed,_ as writeRegion,b 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__\"","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<t;i++)e.push(this.byte());return e}intArray(){const t=this.int(),e=[];for(let i=0;i<t;i++)e.push(this.int());return e}longArray(){const t=this.int(),e=[];for(let i=0;i<t;i++)e.push(this.long());return e}string(){const t=this.short(),e=this.arrayView.slice(this.offset,this.offset+t);return this.offset+=t,function(t){var e,i=[];for(e=0;e<t.length;e++)0==(128&t[e])?i.push(127&t[e]):e+1<t.length&&192==(224&t[e])&&128==(192&t[e+1])?i.push((31&t[e])<<6|63&t[e+1]):e+2<t.length&&224==(240&t[e])&&128==(192&t[e+1])&&128==(192&t[e+2])?i.push((15&t[e])<<12|(63&t[e+1])<<6|63&t[e+2]):e+3<t.length&&240==(248&t[e])&&128==(192&t[e+1])&&128==(192&t[e+2])&&128==(192&t[e+3])&&i.push((7&t[e])<<18|(63&t[e+1])<<12|(63&t[e+2])<<6|63&t[e+3]);return String.fromCharCode.apply(null,i)}(e)}list(){const t=h[this.byte()],e=this.int(),i=[];for(let s=0;s<e;s++)i.push(this[t]());return{type:t,value:i}}compound(){const t={};for(;;){const e=h[this.byte()];if(\"end\"===e)break;const i=this.string(),s=this[e]();t[i]={type:e,value:s}}return t}}class c{constructor(t=!1){this.byte=this.writeNum.bind(this,\"setInt8\",1),this.short=this.writeNum.bind(this,\"setInt16\",2),this.int=this.writeNum.bind(this,\"setInt32\",4),this.float=this.writeNum.bind(this,\"setFloat32\",4),this.double=this.writeNum.bind(this,\"setFloat64\",8),this.offset=0,this.littleEndian=t,this.buffer=new ArrayBuffer(1024),this.arrayView=new Uint8Array(this.buffer),this.dataView=new DataView(this.buffer)}accommodate(t){const e=this.offset+t;if(this.buffer.byteLength>=e)return;let i=this.buffer.byteLength;for(;i<e;)i*=2;const s=new ArrayBuffer(i),n=new Uint8Array(s);n.set(this.arrayView),this.offset>this.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<t.length;e++)this.int(t[e])}longArray(t){this.int(t.length);for(let e=0;e<t.length;e++)this.long(t[e])}string(t){const e=function(t){var e,i,s=[];for(e=0;e<t.length;e++)(i=t.charCodeAt(e))<128?s.push(i):i<2048?(s.push(192|i>>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<t.value.length;e++)this[t.type](t.value[e])}compound(t){for(const e in t)this.byte(l[t[e].type]),this.string(e),this[t[e].type](t[e].value);this.byte(l.end)}}function d(t,e){const i=new u(t,e);if(i.byte()!==l.compound)throw new Error(\"Top tag should be a compound\");return{name:i.string(),value:i.compound()}}function f(e,i){return d(t.inflate(e),i)}function g(t,e){return 2===(i=new Uint8Array(t.slice(0,2))).length&&31===i[0]&&139===i[1]?{compressed:!0,result:f(t,e)}:{compressed:!1,result:d(t,e)};var i}function p(t){const e=[];for(let i=0;i<32;i+=1)for(let s=0;s<32;s+=1){const n=4*((31&i)+32*(31&s));if(0===t[n+3])continue;const r=(t[n]<<16)+(t[n+1]<<8)+t[n+2],o=(t[n+4096]<<24)+(t[n+4097]<<16)+(t[n+4098]<<8)+t[n+4099],a=4096*r,l=(t[a]<<24)+(t[a+1]<<16)+(t[a+2]<<8)+t[a+3],h=t[a+4],u=t.slice(a+5,a+4+l);e.push({x:i,z:s,timestamp:o,compression:h,data:u})}return e}function m(t,e,i){const s=w(t,e,i);switch(s.compression){case 1:case 2:s.nbt=f(s.data);break;case 3:s.nbt=d(s.data);break;default:throw new Error(`Invalid compression mode ${s.compression}`)}return s}function v(t,e){const i=new c(e);return i.byte(l.compound),i.string(t.name),i.compound(t.value),i.getData()}function b(e,i,s){const n=v(e,i);return t[s?\"deflate\":\"gzip\"](n)}function S(t,e,i){return e?b(t,i):v(t,i)}function E(t){let e=0;for(const i of t)e+=Math.ceil(i.data.length/4096);const i=new Uint8Array(8192+4096*e),s=new DataView(i.buffer);let n=2;for(const e of t){const t=4*((31&e.x)+32*(31&e.z)),r=Math.ceil(e.data.length/4096);s.setInt8(t,n>>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)<<BigInt(32)}t.create=function(t,e){return[t,e]},t.fromBlockPos=function(t){return[t[0]>>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]<this.size[0]&&t[1]>=0&&t[1]<this.size[1]&&t[2]>=0&&t[2]<this.size[2]}static fromNbt(t){const e=N(t.value,\"size\",\"int\",3),i=N(t.value,\"palette\",\"compound\").map((t=>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(56)|BigInt(e)<<BigInt(48)|BigInt(i)<<BigInt(40)|BigInt(s)<<BigInt(32)|BigInt(n)<<BigInt(24)|BigInt(r)<<BigInt(16)|BigInt(o)<<BigInt(8)|BigInt(a)}class q{constructor(t){this.seed=BigInt(0),this.setSeed(t)}fork(){return new q(this.nextLong())}forkPositional(){return new $(this.seed)}setSeed(t){this.seed=t^q.MULTIPLIER&q.MODULUS_MASK}advance(){this.seed=this.seed*q.MULTIPLIER+q.INCREMENT&q.MODULUS_MASK}consume(t){for(let e=0;e<t;e+=1)this.advance()}next(t){this.advance();const e=Number(this.seed>>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(32))+BigInt(this.next(32))}nextFloat(){return this.next(24)*q.FLOAT_MULTIPLIER}nextDouble(){const t=this.next(30);return this.advance(),t*q.DOUBLE_MULTIPLIER}}q.MODULUS_BITS=48,q.MODULUS_MASK=BigInt(\"281474976710655\"),q.MULTIPLIER=BigInt(\"25214903917\"),q.INCREMENT=BigInt(\"11\"),q.FLOAT_MULTIPLIER=1/Math.pow(2,24),q.DOUBLE_MULTIPLIER=1/Math.pow(2,30);class ${constructor(t){this.seed=t}at(t,e,i){const s=Z(t,e,i);return new q(s^this.seed)}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]);return new q(s^this.seed)}}class K{constructor(t){this.seed=[BigInt(0),BigInt(0)],this.seed=t}static create(t){return new K(K.upgradeSeedTo128bit(t))}static mixStafford13(t){return((t=((t=(t^t>>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<<e&BigInt(\"0xFFFFFFFFFFFFFFFF\")|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(21)&BigInt(\"0xFFFFFFFFFFFFFFFF\"),K.rotateLeft(e,BigInt(28))],i}nextLong(){let t=this.next();return t>BigInt(\"0x8000000000000000\")&&(t-=BigInt(\"0x10000000000000000\")),t}consume(t){let e=this.seed[0],i=this.seed[1];for(let s=0;s<t;s+=1)i^=e,e=K.rotateLeft(e,BigInt(49))^i^i<<BigInt(21),i=K.rotateLeft(i,BigInt(28));this.seed=[e,i]}nextBits(t){return this.next()>>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<i){const t=((~i&BigInt(4294967295))+BigInt(1))%i;for(;n<t;)e=this.next()&BigInt(4294967295),s=e*i,n=s&BigInt(4294967295)}const r=s>>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):h<u?(c=0,d=0,f=1,g=0,p=1,m=1):l<u?(c=0,d=1,f=0,g=0,p=1,m=1):(c=0,d=1,f=0,g=1,p=1,m=0);const v=l-c+.16666666666666666,b=h-d+.16666666666666666,S=u-f+.16666666666666666,E=l-g+.3333333333333333,I=h-p+.3333333333333333,w=u-m+.3333333333333333,A=l-.5,N=h-.5,F=u-.5,_=255&n,y=255&r,P=255&o,R=this.P(_+this.P(y+this.P(P)))%12,B=this.P(_+c+this.P(y+d+this.P(P+f)))%12,x=this.P(_+g+this.P(y+p+this.P(P+m)))%12,T=this.P(_+1+this.P(y+1+this.P(P+1)))%12;return 32*(this.getCornerNoise3D(R,l,h,u,.6)+this.getCornerNoise3D(B,v,b,S,.6)+this.getCornerNoise3D(x,E,I,w,.6)+this.getCornerNoise3D(T,A,N,F,.6))}P(t){return this.p[255&t]}getCornerNoise3D(t,e,i,s,n){let r,o=n-e*e-i*i-s*s;return o<0?r=0:(o*=o,r=o*o*tt.gradDot(t,e,i,s)),r}static gradDot(t,e,i,s){const n=tt.GRADIENT[15&t];return n[0]*e+n[1]*i+n[2]*s}}tt.GRADIENT=[[1,1,0],[-1,1,0],[1,-1,0],[-1,-1,0],[1,0,1],[-1,0,1],[1,0,-1],[-1,0,-1],[0,1,1],[0,-1,1],[0,1,-1],[0,-1,-1],[1,1,0],[0,-1,1],[-1,1,0],[0,-1,-1]],tt.F2=.5*(Math.sqrt(3)-1),tt.G2=(3-Math.sqrt(3))/6;class et{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>127?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<d?n:d;g=Math.floor(t/s+1e-7)*s}return this.sampleAndLerp(l,h,u,c,d-g,f,d)}sampleAndLerp(t,e,i,s,n,r,o){const a=this.P(t),l=this.P(t+1),h=this.P(a+e),u=this.P(a+e+1),c=this.P(l+e),d=this.P(l+e+1),f=tt.gradDot(this.P(h+i),s,n,r),g=tt.gradDot(this.P(c+i),s-1,n,r),p=tt.gradDot(this.P(u+i),s,n-1,r),m=tt.gradDot(this.P(d+i),s-1,n-1,r),v=tt.gradDot(this.P(h+i+1),s,n,r-1),b=tt.gradDot(this.P(c+i+1),s-1,n,r-1),S=tt.gradDot(this.P(u+i+1),s,n-1,r-1),E=tt.gradDot(this.P(d+i+1),s-1,n-1,r-1);return G(z(s),z(o),z(r),f,g,p,m,v,b,S,E)}P(t){return 255&this.p[255&t]}}class it{constructor(t,e,i){if(t instanceof K){const s=t.forkPositional();this.noiseLevels=Array(i.length);for(let t=0;t<i.length;t++)if(0!==i[t]){const i=e+t;this.noiseLevels[t]=new et(s.fromHashOf(\"octave_\"+i))}}else{if(1-e<i.length)throw new Error(\"Positive octaves are not allowed when using LegacyRandom\");this.noiseLevels=Array(i.length);for(let s=-e;s>=0;s-=1)s<i.length&&0!==i[s]?this.noiseLevels[s]=new et(t):t.consume(262)}this.amplitudes=i,this.lowestFreqInputFactor=Math.pow(2,e),this.lowestFreqValueFactor=Math.pow(2,i.length-1)/(Math.pow(2,i.length)-1)}sample(t,e,i,s=0,n=0,r=!1){let o=0,a=this.lowestFreqInputFactor,l=this.lowestFreqValueFactor;for(let h=0;h<this.noiseLevels.length;h+=1){const u=this.noiseLevels[h];u&&(o+=this.amplitudes[h]*l*u.sample(it.wrap(t*a),r?-u.yo:it.wrap(e*a),it.wrap(i*a),s*a,n*a)),a*=2,l/=2}return o}getOctaveNoise(t){return this.noiseLevels[this.noiseLevels.length-1-t]}static wrap(t){return t-33554432*Math.floor(t/33554432+.5)}}class st{constructor(t,e,i,s){this.cellWidth=i,this.cellHeight=s,this.minLimitNoise=new it(t,-15,[1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0]),this.maxLimitNoise=new it(t,-15,[1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0]),this.mainNoise=new it(t,-7,[1,1,1,1,1,0,0,0]),this.xzScale=684.412*e.xzScale,this.yScale=684.412*e.yScale,this.xzMainScale=this.xzScale/e.xzFactor,this.yMainScale=this.yScale/e.yFactor}sample(t,e,i){let s;t=Math.floor(t/this.cellWidth),e=Math.floor(e/this.cellHeight),i=Math.floor(i/this.cellWidth);let n=0,r=1;for(let o=0;o<8;o+=1){if(s=this.mainNoise.getOctaveNoise(o),s){const o=this.xzMainScale*r,a=this.yMainScale*r,l=it.wrap(t*o),h=it.wrap(e*a),u=it.wrap(i*o);n+=s.sample(l,h,u,a,e*a)/r}r/=2}n=(n/10+1)/2,r=1;let o=0,a=0;for(let l=0;l<16;l+=1){const h=this.xzScale*r,u=this.yScale*r,c=it.wrap(t*h),d=it.wrap(e*u),f=it.wrap(i*h);n<1&&(s=this.minLimitNoise.getOctaveNoise(l))&&(o+=s.sample(c,d,f,u,e*u)/r),n>0&&(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<i.length;t+=1)0!==i[t]&&(s=Math.min(s,t),n=Math.max(n,t));const r=.1*(1+1/(n-s+1));this.valueFactor=1/6/r}sample(t,e,i){const s=t*nt.INPUT_FACTOR,n=e*nt.INPUT_FACTOR,r=i*nt.INPUT_FACTOR;return(this.first.sample(t,e,i)+this.second.sample(s,n,r))*this.valueFactor}}nt.INPUT_FACTOR=1.0181268882175227,function(t){t.create=function(t,e){return{firstOctave:t,amplitudes:e}},t.fromJson=function(t){var e,i,s;const n=null!==(e=_.readObject(t))&&void 0!==e?e:{};return{firstOctave:null!==(i=_.readInt(n.firstOctave))&&void 0!==i?i:0,amplitudes:null!==(s=_.readArray(n.amplitudes,(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<s&&n.has(0)&&(this.noiseLevels[i]=r);for(let e=i+1;e<s;e+=1)e>=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<this.noiseLevels.length;o+=1){const a=this.noiseLevels[o];a&&(s+=r*a.sample2D(t*n+(i?a.xo:0),e*n+(i?a.yo:0))),n/=2,r*=2}return s}}!function(t){t.fromJson=function(e,i){var s,n,r,o;if(\"number\"==typeof e)return new ot(e);const a=null!==(s=_.readObject(e))&&void 0!==s?s:{},l=new at(i(a.coordinate)),h=null!==(n=_.readArray(a.points,(t=>{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<this.locations[t]))-1,s=this.locations.length-1;if(i<0)return this.values[0].apply(t)+this.derivatives[0]*(e-this.locations[0]);if(i===s)return this.values[s].apply(t)+this.derivatives[s]*(e-this.locations[s]);const n=this.locations[i],r=this.locations[i+1],o=this.derivatives[i],a=this.derivatives[i+1],l=(e-n)/(r-n),h=this.values[i].apply(t),u=this.values[i+1].apply(t),c=o*(r-n)-(u-h),d=-a*(r-n)+(u-h);return U(l,h,u)+l*(1-l)*U(l,c,d)}addPoint(t,e,i=0){return this.locations.push(t),this.values.push(\"number\"==typeof e?new ot(e):e),this.derivatives.push(i),this}toJson(){return{coordinate:this.coordinate.toJson(),points:this.locations.map(((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;n<t.length;n+=3)s[0]=t[n],s[1]=t[n+1],s[2]=t[n+2],i.transformMat4(s,s,e),t[n]=s[0],t[n+1]=s[1],t[n+2]=s[2]}!function(t){t.rotate=function(t,e,i){let{up:s,down:n,north:r,east:o,south:a,west:l}=t;switch(i){case 90:[r,o,a,l]=[o,a,l,r];break;case 180:[r,o,a,l]=[a,l,r,o];break;case 270:[r,o,a,l]=[l,r,o,a]}switch(e){case 90:[s,r,n,a]=[r,n,a,s];break;case 180:[s,r,n,a]=[n,a,s,r];break;case 270:[s,r,n,a]=[a,s,r,n]}return{up:s,down:n,north:r,east:o,south:a,west:l}}}(bt||(bt={}));class It{constructor(t,e,i){this.id=t,this.variants=e,this.multipart=i,this.variants=e}getModelVariants(t){if(this.variants){const e=Object.keys(this.variants).filter((e=>this.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.position.length;e+=12){const s=i.fromValues(t.position[e],t.position[e+1],t.position[e+2]),r=i.fromValues(t.position[e+3],t.position[e+4],t.position[e+5]),o=i.fromValues(t.position[e+6],t.position[e+7],t.position[e+8]);i.subtract(r,r,s),i.subtract(o,o,s),i.cross(r,r,o),i.normalize(r,r),n.normals.push(...r,...r,...r,...r)}for(let i=0;i<t.texCoord.length/2;i+=1)n.blockPositions.push(...e);n.indices.push(...t.index),n.indexOffset+=t.texCoord.length/2},o=t=>{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[0];s+=1)for(let n=0;n<t[1];n+=1)for(let r=0;r<t[2];r+=1){const t=this.structure.getBlock([s,n,r]);void 0!==t&&(null===t?this.addCube(e,i,[1,.25,.25],[s+.4375,n+.4375,r+.4375],[s+.5625,n+.5625,r+.5625]):\"minecraft:air\"===t.state.getName()?this.addCube(e,i,[.5,.5,1],[s+.375,n+.375,r+.375],[s+.625,n+.625,r+.625]):\"minecraft:cave_air\"===t.state.getName()&&this.addCube(e,i,[.5,1,.5],[s+.375,n+.375,r+.375],[s+.625,n+.625,r+.625]))}return{position:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(e)),color:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(i)),length:e.length/3}}addCube(t,e,i,s,n){t.push(s[0],s[1],s[2],s[0],s[1],n[2]),t.push(n[0],s[1],s[2],n[0],s[1],n[2]),t.push(s[0],s[1],s[2],n[0],s[1],s[2]),t.push(s[0],s[1],n[2],n[0],s[1],n[2]),t.push(s[0],s[1],s[2],s[0],n[1],s[2]),t.push(n[0],s[1],s[2],n[0],n[1],s[2]),t.push(s[0],s[1],n[2],s[0],n[1],n[2]),t.push(n[0],s[1],n[2],n[0],n[1],n[2]),t.push(s[0],n[1],s[2],s[0],n[1],n[2]),t.push(n[0],n[1],s[2],n[0],n[1],n[2]),t.push(s[0],n[1],s[2],n[0],n[1],s[2]),t.push(s[0],n[1],n[2],n[0],n[1],n[2]);for(let t=0;t<24;t+=1)e.push(...i)}createBuffer(t,e){const i=this.gl.createBuffer();return this.gl.bindBuffer(t,i),this.gl.bufferData(t,e,this.gl.DYNAMIC_DRAW),i}updateBuffer(t,e,i){this.gl.bindBuffer(e,t),this.gl.bufferData(e,i,this.gl.STATIC_DRAW)}drawGrid(t){this.setShader(this.gridShaderProgram),this.setVertexAttr(\"vertPos\",3,this.gridBuffers.position),this.setVertexAttr(\"vertColor\",3,this.gridBuffers.color),this.setUniform(\"mView\",t),this.setUniform(\"mProj\",this.projMatrix),this.gl.drawArrays(this.gl.LINES,0,this.gridBuffers.length)}drawInvisibleBlocks(t){this.useInvisibleBlockBuffer&&(this.setShader(this.gridShaderProgram),this.setVertexAttr(\"vertPos\",3,this.invisibleBlockBuffers.position),this.setVertexAttr(\"vertColor\",3,this.invisibleBlockBuffers.color),this.setUniform(\"mView\",t),this.setUniform(\"mProj\",this.projMatrix),this.gl.drawArrays(this.gl.LINES,0,this.invisibleBlockBuffers.length))}drawStructure(t){this.setShader(this.shaderProgram),this.gl.activeTexture(this.gl.TEXTURE0),this.gl.bindTexture(this.gl.TEXTURE_2D,this.atlasTexture),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(\"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.length<s||(e.push(new a(i)),i=[]);return 0!==i.length&&e.push(new a(i)),e}static area(t){let e=0;for(const i of t)e+=Math.abs(i.max-i.min);return e}search(t,e){return this.root.search(t.toArray(),e).thing()}}r.CHILDREN_PER_NODE=10,t.RTree=r;class o{constructor(t){this.space=t}distance(t){let e=0;for(let i=0;i<7;i+=1)e+=O(this.space[i].distance(t[i]));return e}}t.RNode=o;class a extends o{constructor(t){super(a.buildSpace(t)),this.children=t}static buildSpace(t){let e=[...Array(7)].map((()=>new 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(-.65<r&&r<1){const e=this.mountainContinentalness(-.65,t,-.7),o=this.mountainContinentalness(-.75,t,-.7),a=this.calculateSlope(s,o,-1,-.75);i.addPoint(-1,s,a),i.addPoint(-.75,o),i.addPoint(-.65,e);const l=this.mountainContinentalness(r,t,-.7),h=this.calculateSlope(l,n,r,1);i.addPoint(r-.01,l),i.addPoint(r,l,h),i.addPoint(1,n,h)}else{const t=this.calculateSlope(s,n,-1,1);e?(i.addPoint(-1,Math.max(.2,s)),i.addPoint(0,U(.5,s,n),t)):i.addPoint(-1,s,t),i.addPoint(1,n,t)}return i}static mountainContinentalness(t,e,i){const s=.46082947*(t+1.17)*(1-.5*(1-e))-.5*(1-e);return t<i?Math.max(s,-.2222):Math.max(s,0)}static calculateMountainRidgeZeroContinentalnessPoint(t){return.5*(1-t)/(.46082947*(1-.5*(1-t)))-1.17}static calculateSlope(t,e,i,s){return(e-t)/(s-i)}static ridgeSpline(t,e,i,s,n,r){const o=Math.max(.5*(e-t),r),a=5*(i-e);return new at(this.RIDGES).addPoint(-1,t,o).addPoint(-.4,e,Math.min(o,a)).addPoint(0,i,a).addPoint(.4,s,2*(s-i)).addPoint(1,n,.7*(n-s))}static buildErosionJaggednessSpline(t,e,i,s){const n=this.buildRidgeJaggednessSpline(t,i),r=this.buildRidgeJaggednessSpline(e,s);return new at(this.EROSION).addPoint(-1,n).addPoint(-.78,r).addPoint(-.5775,r).addPoint(-.375,0)}static buildRidgeJaggednessSpline(t,e){const i=qt.peaksAndValleys(.4),s=(i+qt.peaksAndValleys(.56666666))/2;return new at(this.RIDGES).addPoint(i,0).addPoint(s,e>0?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<e+1;s+=1)i[s]=Array(t+1);return i}initializeForFirstCellX(){this.fillSlice(this.slice0,this.chunk.firstCellX)}advanceCellX(t){this.fillSlice(this.slice1,this.chunk.firstCellX+t+1)}fillSlice(t,e){const i=Ot.cellWidth(this.chunk.settings.noise),s=Ot.cellHeight(this.chunk.settings.noise),n=e*i;for(let e=0;e<this.chunk.cellCountXZ+1;e+=1){const r=(this.chunk.firstCellZ+e)*i;for(let i=0;i<this.chunk.cellCountY+1;i+=1){const o=(this.chunk.cellCountNoiseMinY+i)*s;t[e][i]=this.filler(n,o,r)}}}selectCellYZ(t,e){this.noise000=this.slice0[e][t],this.noise001=this.slice0[e+1][t],this.noise100=this.slice1[e][t],this.noise101=this.slice1[e+1][t],this.noise010=this.slice0[e][t+1],this.noise011=this.slice0[e+1][t+1],this.noise110=this.slice1[e][t+1],this.noise111=this.slice1[e+1][t+1]}updateForY(t){this.valueXZ00=U(t,this.noise000,this.noise010),this.valueXZ10=U(t,this.noise100,this.noise110),this.valueXZ01=U(t,this.noise001,this.noise011),this.valueXZ11=U(t,this.noise101,this.noise111)}updateForX(t){this.valueZ0=U(t,this.valueXZ00,this.valueXZ10),this.valueZ1=U(t,this.valueXZ01,this.valueXZ11)}updateForZ(t){this.value=U(t,this.valueZ0,this.valueZ1)}sample(){return this.value}swapSlices(){[this.slice0,this.slice1]=[this.slice1,this.slice0]}}class Kt{constructor(t,e,i,s,n,r,o,a){this.cellCountXZ=t,this.cellCountY=e,this.cellCountNoiseMinY=i,this.sampler=s,this.settings=a;const l=Ot.cellWidth(a.noise);this.firstCellX=Math.floor(n/l),this.firstCellZ=Math.floor(r/l),this.firstNoiseX=n>>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&&i<n&&s<n?this.noiseData[i][s].terrainInfo:this.sampler.noiseData(t,e).terrainInfo;return this.sampler.getPreliminarySurfaceLevel(t<<2,e<<2,r)}))}createNoiseInterpolator(t){const e=new $t(this,t);return this.interpolators.push(e),e.sample.bind(e)}initializeForFirstCellX(){this.interpolators.forEach((t=>t.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||o<e?s:t.sample(r*n,o*n,a*n);return t=>t.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()<a}}function o(t,e,i){return s=>{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<o;i+=1){c.advanceCellX(i);for(let s=0;s<o;s+=1){let o=t.getOrCreateSection(t.sectionsCount-1);for(let d=l-1;d>=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;t<n;t+=1){const r=h+i*n+t,a=15&r,l=t/n;c.updateForX(l);for(let t=0;t<n;t+=1){const i=u+s*n+t,l=15&i,h=t/n;c.updateForZ(h);let d=null!==(e=this.materialRule(c,r,f,i))&&void 0!==e?e:this.settings.defaultBlock;if(d.equals(x.AIR)){if(!(f<this.settings.seaLevel))continue;d=this.settings.defaultFluid}o.setBlockState(a,g,l,d)}}}}}c.swapSlices()}}buildSurface(t,e=\"minecraft:plains\"){const i=this.getNoiseChunk(t),s=Vt.create(this.settings.noise.minY,this.settings.noise.height);this.surfaceSystem.buildSurface(t,i,s,(()=>e))}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","/* ***** 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<l; i++) {\n if (array[i] && typeof array[i] == \"object\")\n copy[i] = this.copyObject(array[i]);\n else \n copy[i] = array[i];\n }\n return copy;\n};\n\nexports.deepCopy = function deepCopy(obj) {\n if (typeof obj !== \"object\" || !obj)\n return obj;\n var copy;\n if (Array.isArray(obj)) {\n copy = [];\n for (var key = 0; key < obj.length; key++) {\n copy[key] = deepCopy(obj[key]);\n }\n return copy;\n }\n if (Object.prototype.toString.call(obj) !== \"[object Object]\")\n return obj;\n \n copy = {};\n for (var key in obj)\n copy[key] = deepCopy(obj[key]);\n return copy;\n};\n\nexports.arrayToMap = function(arr) {\n var map = {};\n for (var i=0; i<arr.length; i++) {\n map[arr[i]] = 1;\n }\n return map;\n\n};\n\nexports.createMap = function(props) {\n var map = Object.create(null);\n for (var i in props) {\n map[i] = props[i];\n }\n return map;\n};\nexports.arrayRemove = function(array, value) {\n for (var i = 0; i <= array.length; i++) {\n if (value === array[i]) {\n array.splice(i, 1);\n }\n }\n};\n\nexports.escapeRegExp = function(str) {\n return str.replace(/([.*+?^${}()|[\\]\\/\\\\])/g, '\\\\$1');\n};\n\nexports.escapeHTML = function(str) {\n return str.replace(/&/g, \"&\").replace(/\"/g, \""\").replace(/'/g, \"'\").replace(/</g, \"<\");\n};\n\nexports.getMatchOffsets = function(string, regExp) {\n var matches = [];\n\n string.replace(regExp, function(str) {\n matches.push({\n offset: arguments[arguments.length-2],\n length: str.length\n });\n });\n\n return matches;\n};\nexports.deferredCall = function(fcn) {\n var timer = null;\n var callback = function() {\n timer = null;\n fcn();\n };\n\n var deferred = function(timeout) {\n deferred.cancel();\n timer = setTimeout(callback, timeout || 0);\n return deferred;\n };\n\n deferred.schedule = deferred;\n\n deferred.call = function() {\n this.cancel();\n fcn();\n return deferred;\n };\n\n deferred.cancel = function() {\n clearTimeout(timer);\n timer = null;\n return deferred;\n };\n \n deferred.isPending = function() {\n return timer;\n };\n\n return deferred;\n};\n\n\nexports.delayedCall = function(fcn, defaultTimeout) {\n var timer = null;\n var callback = function() {\n timer = null;\n fcn();\n };\n\n var _self = function(timeout) {\n if (timer == null)\n timer = setTimeout(callback, timeout || defaultTimeout);\n };\n\n _self.delay = function(timeout) {\n timer && clearTimeout(timer);\n timer = setTimeout(callback, timeout || defaultTimeout);\n };\n _self.schedule = _self;\n\n _self.call = function() {\n this.cancel();\n fcn();\n };\n\n _self.cancel = function() {\n timer && clearTimeout(timer);\n timer = null;\n };\n\n _self.isPending = function() {\n return timer;\n };\n\n return _self;\n};\n});\n\nace.define(\"ace/keyboard/textinput_ios\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/keys\"], 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 KEYS = acequire(\"../lib/keys\");\nvar MODS = KEYS.KEY_MODS;\nvar BROKEN_SETDATA = useragent.isChrome < 18;\nvar USE_IE_MIME_TYPE = useragent.isIE;\n\nvar TextInput = function(parentNode, host) {\n var self = this;\n var text = dom.createElement(\"textarea\");\n text.className = useragent.isIOS ? \"ace_text-input ace_text-input-ios\" : \"ace_text-input\";\n\n if (useragent.isTouchPad)\n text.setAttribute(\"x-palm-disable-auto-cap\", true);\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 = \"\\n aaaa a\\n\";\n\n var copied = false;\n var cut = 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 text.style.position = \"fixed\";\n text.focus();\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 selectionStart = 0;\n selectionEnd = isEmpty ? 0 : text.value.length - 1;\n } else {\n var selectionStart = 4;\n var selectionEnd = 5;\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 (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 (text.selectionStart === 4 && text.selectionEnd === 5) {\n return;\n }\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.substr(0) && text.selectionStart === 4) {\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 if (!copied) {\n if (data.substring(0, 9) == PLACEHOLDER && data.length > 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(\"<br/>\");\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<listeners.length; i++) {\n listeners[i](e, this);\n if (e.propagationStopped)\n break;\n }\n \n if (defaultHandler && !e.defaultPrevented)\n return defaultHandler(e, this);\n};\n\n\nEventEmitter._signal = function(eventName, e) {\n var listeners = (this._eventRegistry || {})[eventName];\n if (!listeners)\n return;\n listeners = listeners.slice();\n for (var i=0; i<listeners.length; i++)\n listeners[i](e, this);\n};\n\nEventEmitter.once = function(eventName, callback) {\n var _self = this;\n callback && this.addEventListener(eventName, function newCallback() {\n _self.removeEventListener(eventName, newCallback);\n callback.apply(null, arguments);\n });\n};\n\n\nEventEmitter.setDefaultHandler = function(eventName, callback) {\n var handlers = this._defaultHandlers;\n if (!handlers)\n handlers = this._defaultHandlers = {_disabled_: {}};\n \n if (handlers[eventName]) {\n var old = handlers[eventName];\n var disabled = handlers._disabled_[eventName];\n if (!disabled)\n handlers._disabled_[eventName] = disabled = [];\n disabled.push(old);\n var i = disabled.indexOf(callback);\n if (i != -1) \n disabled.splice(i, 1);\n }\n handlers[eventName] = callback;\n};\nEventEmitter.removeDefaultHandler = function(eventName, callback) {\n var handlers = this._defaultHandlers;\n if (!handlers)\n return;\n var disabled = handlers._disabled_[eventName];\n \n if (handlers[eventName] == callback) {\n var old = handlers[eventName];\n if (disabled)\n this.setDefaultHandler(eventName, disabled.pop());\n } else if (disabled) {\n var i = disabled.indexOf(callback);\n if (i != -1)\n disabled.splice(i, 1);\n }\n};\n\nEventEmitter.on =\nEventEmitter.addEventListener = function(eventName, callback, capturing) {\n this._eventRegistry = this._eventRegistry || {};\n\n var listeners = this._eventRegistry[eventName];\n if (!listeners)\n listeners = this._eventRegistry[eventName] = [];\n\n if (listeners.indexOf(callback) == -1)\n listeners[capturing ? \"unshift\" : \"push\"](callback);\n return callback;\n};\n\nEventEmitter.off =\nEventEmitter.removeListener =\nEventEmitter.removeEventListener = function(eventName, callback) {\n this._eventRegistry = this._eventRegistry || {};\n\n var listeners = this._eventRegistry[eventName];\n if (!listeners)\n return;\n\n var index = listeners.indexOf(callback);\n if (index !== -1)\n listeners.splice(index, 1);\n};\n\nEventEmitter.removeAllListeners = function(eventName) {\n if (this._eventRegistry) this._eventRegistry[eventName] = [];\n};\n\nexports.EventEmitter = EventEmitter;\n\n});\n\nace.define(\"ace/lib/app_config\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"], function(acequire, exports, module) {\n\"no use strict\";\n\nvar oop = acequire(\"./oop\");\nvar EventEmitter = acequire(\"./event_emitter\").EventEmitter;\n\nvar optionsProvider = {\n setOptions: function(optList) {\n Object.keys(optList).forEach(function(key) {\n this.setOption(key, optList[key]);\n }, this);\n },\n getOptions: function(optionNames) {\n var result = {};\n if (!optionNames) {\n optionNames = Object.keys(this.$options);\n } else if (!Array.isArray(optionNames)) {\n result = optionNames;\n optionNames = Object.keys(result);\n }\n optionNames.forEach(function(key) {\n result[key] = this.getOption(key);\n }, this);\n return result;\n },\n setOption: function(name, value) {\n if (this[\"$\" + name] === value)\n return;\n var opt = this.$options[name];\n if (!opt) {\n return warn('misspelled option \"' + name + '\"');\n }\n if (opt.forwardTo)\n return this[opt.forwardTo] && this[opt.forwardTo].setOption(name, value);\n\n if (!opt.handlesSet)\n this[\"$\" + name] = value;\n if (opt && opt.set)\n opt.set.call(this, value);\n },\n getOption: function(name) {\n var opt = this.$options[name];\n if (!opt) {\n return warn('misspelled option \"' + name + '\"');\n }\n if (opt.forwardTo)\n return this[opt.forwardTo] && this[opt.forwardTo].getOption(name);\n return opt && opt.get ? opt.get.call(this) : this[\"$\" + name];\n }\n};\n\nfunction warn(message) {\n if (typeof console != \"undefined\" && console.warn)\n console.warn.apply(console, arguments);\n}\n\nfunction reportError(msg, data) {\n var e = new Error(msg);\n e.data = data;\n if (typeof console == \"object\" && console.error)\n console.error(e);\n setTimeout(function() { throw e; });\n}\n\nvar AppConfig = function() {\n this.$defaultOptions = {};\n};\n\n(function() {\n oop.implement(this, EventEmitter);\n this.defineOptions = function(obj, path, options) {\n if (!obj.$options)\n this.$defaultOptions[path] = obj.$options = {};\n\n Object.keys(options).forEach(function(key) {\n var opt = options[key];\n if (typeof opt == \"string\")\n opt = {forwardTo: opt};\n\n opt.name || (opt.name = key);\n obj.$options[opt.name] = opt;\n if (\"initialValue\" in opt)\n obj[\"$\" + opt.name] = opt.initialValue;\n });\n oop.implement(obj, optionsProvider);\n\n return this;\n };\n\n this.resetOptions = function(obj) {\n Object.keys(obj.$options).forEach(function(key) {\n var opt = obj.$options[key];\n if (\"value\" in opt)\n obj.setOption(key, opt.value);\n });\n };\n\n this.setDefaultValue = function(path, name, value) {\n var opts = this.$defaultOptions[path] || (this.$defaultOptions[path] = {});\n if (opts[name]) {\n if (opts.forwardTo)\n this.setDefaultValue(opts.forwardTo, name, value);\n else\n opts[name].value = value;\n }\n };\n\n this.setDefaultValues = function(path, optionHash) {\n Object.keys(optionHash).forEach(function(key) {\n this.setDefaultValue(path, key, optionHash[key]);\n }, this);\n };\n \n this.warn = warn;\n this.reportError = reportError;\n \n}).call(AppConfig.prototype);\n\nexports.AppConfig = AppConfig;\n\n});\n\nace.define(\"ace/config\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/lib/oop\",\"ace/lib/net\",\"ace/lib/app_config\"], function(acequire, exports, module) {\n\"no use strict\";\n\nvar lang = acequire(\"./lib/lang\");\nvar oop = acequire(\"./lib/oop\");\nvar net = acequire(\"./lib/net\");\nvar AppConfig = acequire(\"./lib/app_config\").AppConfig;\n\nmodule.exports = exports = new AppConfig();\n\nvar global = (function() {\n return this || typeof window != \"undefined\" && window;\n})();\n\nvar options = {\n packaged: false,\n workerPath: null,\n modePath: null,\n themePath: null,\n basePath: \"\",\n suffix: \".js\",\n $moduleUrls: {}\n};\n\nexports.get = function(key) {\n if (!options.hasOwnProperty(key))\n throw new Error(\"Unknown config key: \" + key);\n\n return options[key];\n};\n\nexports.set = function(key, value) {\n if (!options.hasOwnProperty(key))\n throw new Error(\"Unknown config key: \" + key);\n\n options[key] = value;\n};\n\nexports.all = function() {\n return lang.copyObject(options);\n};\nexports.moduleUrl = function(name, component) {\n if (options.$moduleUrls[name])\n return options.$moduleUrls[name];\n\n var parts = name.split(\"/\");\n component = component || parts[parts.length - 2] || \"\";\n var sep = component == \"snippets\" ? \"/\" : \"-\";\n var base = parts[parts.length - 1];\n if (component == \"worker\" && sep == \"-\") {\n var re = new RegExp(\"^\" + component + \"[\\\\-_]|[\\\\-_]\" + component + \"$\", \"g\");\n base = base.replace(re, \"\");\n }\n\n if ((!base || base == component) && parts.length > 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<scripts.length; i++) {\n var script = scripts[i];\n\n var src = script.src || script.getAttribute(\"src\");\n if (!src)\n continue;\n\n var attributes = script.attributes;\n for (var j=0, l=attributes.length; j < l; j++) {\n var attr = attributes[j];\n if (attr.name.indexOf(\"data-ace-\") === 0) {\n scriptOptions[deHyphenate(attr.name.replace(/^data-ace-/, \"\"))] = attr.value;\n }\n }\n\n var m = src.match(/^(.*)\\/ace(\\-\\w+)?\\.js(\\?|$)/);\n if (m)\n scriptUrl = m[1];\n }\n\n if (scriptUrl) {\n scriptOptions.base = scriptOptions.base || scriptUrl;\n scriptOptions.packaged = true;\n }\n\n scriptOptions.basePath = scriptOptions.base;\n scriptOptions.workerPath = scriptOptions.workerPath || scriptOptions.base;\n scriptOptions.modePath = scriptOptions.modePath || scriptOptions.base;\n scriptOptions.themePath = scriptOptions.themePath || scriptOptions.base;\n delete scriptOptions.base;\n\n for (var key in scriptOptions)\n if (typeof scriptOptions[key] !== \"undefined\")\n exports.set(key, scriptOptions[key]);\n}\n\nexports.init = init;\n\nfunction deHyphenate(str) {\n return str.replace(/-(.)/g, function(m, m1) { return m1.toUpperCase(); });\n}\n\n});\n\nace.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(acequire, exports, module) {\n\"use strict\";\n\nvar event = acequire(\"../lib/event\");\nvar useragent = acequire(\"../lib/useragent\");\nvar DefaultHandlers = acequire(\"./default_handlers\").DefaultHandlers;\nvar DefaultGutterHandler = acequire(\"./default_gutter_handler\").GutterHandler;\nvar MouseEvent = acequire(\"./mouse_event\").MouseEvent;\nvar DragdropHandler = acequire(\"./dragdrop_handler\").DragdropHandler;\nvar config = acequire(\"../config\");\n\nvar MouseHandler = function(editor) {\n var _self = this;\n this.editor = editor;\n\n new DefaultHandlers(this);\n new DefaultGutterHandler(this);\n new DragdropHandler(this);\n\n var focusEditor = function(e) {\n var windowBlurred = !document.hasFocus || !document.hasFocus()\n || !editor.isFocused() && document.activeElement == (editor.textInput && editor.textInput.getElement());\n if (windowBlurred)\n window.focus();\n editor.focus();\n };\n\n var mouseTarget = editor.renderer.getMouseEventTarget();\n event.addListener(mouseTarget, \"click\", this.onMouseEvent.bind(this, \"click\"));\n event.addListener(mouseTarget, \"mousemove\", this.onMouseMove.bind(this, \"mousemove\"));\n event.addMultiMouseDownListener([\n mouseTarget,\n editor.renderer.scrollBarV && editor.renderer.scrollBarV.inner,\n editor.renderer.scrollBarH && editor.renderer.scrollBarH.inner,\n editor.textInput && editor.textInput.getElement()\n ].filter(Boolean), [400, 300, 250], this, \"onMouseEvent\");\n event.addMouseWheelListener(editor.container, this.onMouseWheel.bind(this, \"mousewheel\"));\n event.addTouchMoveListener(editor.container, this.onTouchMove.bind(this, \"touchmove\"));\n\n var gutterEl = editor.renderer.$gutter;\n event.addListener(gutterEl, \"mousedown\", this.onMouseEvent.bind(this, \"guttermousedown\"));\n event.addListener(gutterEl, \"click\", this.onMouseEvent.bind(this, \"gutterclick\"));\n event.addListener(gutterEl, \"dblclick\", this.onMouseEvent.bind(this, \"gutterdblclick\"));\n event.addListener(gutterEl, \"mousemove\", this.onMouseEvent.bind(this, \"guttermousemove\"));\n\n event.addListener(mouseTarget, \"mousedown\", focusEditor);\n event.addListener(gutterEl, \"mousedown\", focusEditor);\n if (useragent.isIE && editor.renderer.scrollBarV) {\n event.addListener(editor.renderer.scrollBarV.element, \"mousedown\", focusEditor);\n event.addListener(editor.renderer.scrollBarH.element, \"mousedown\", focusEditor);\n }\n\n editor.on(\"mousemove\", function(e){\n if (_self.state || _self.$dragDelay || !_self.$dragEnabled)\n return;\n\n var character = editor.renderer.screenToTextCoordinates(e.x, e.y);\n var range = editor.session.selection.getRange();\n var renderer = editor.renderer;\n\n if (!range.isEmpty() && range.insideStart(character.row, character.column)) {\n renderer.setCursorStyle(\"default\");\n } else {\n renderer.setCursorStyle(\"\");\n }\n });\n};\n\n(function() {\n this.onMouseEvent = function(name, e) {\n this.editor._emit(name, new MouseEvent(e, this.editor));\n };\n\n this.onMouseMove = function(name, e) {\n var listeners = this.editor._eventRegistry && this.editor._eventRegistry.mousemove;\n if (!listeners || !listeners.length)\n return;\n\n this.editor._emit(name, new MouseEvent(e, this.editor));\n };\n\n this.onMouseWheel = function(name, e) {\n var mouseEvent = new MouseEvent(e, this.editor);\n mouseEvent.speed = this.$scrollSpeed * 2;\n mouseEvent.wheelX = e.wheelX;\n mouseEvent.wheelY = e.wheelY;\n\n this.editor._emit(name, mouseEvent);\n };\n \n this.onTouchMove = function (name, e) {\n var mouseEvent = new MouseEvent(e, this.editor);\n mouseEvent.speed = 1;//this.$scrollSpeed * 2;\n mouseEvent.wheelX = e.wheelX;\n mouseEvent.wheelY = e.wheelY;\n this.editor._emit(name, mouseEvent);\n };\n\n this.setState = function(state) {\n this.state = state;\n };\n\n this.captureMouse = function(ev, mouseMoveHandler) {\n this.x = ev.x;\n this.y = ev.y;\n\n this.isMousePressed = true;\n var renderer = this.editor.renderer;\n if (renderer.$keepTextAreaAtCursor)\n renderer.$keepTextAreaAtCursor = null;\n\n var self = this;\n var onMouseMove = function(e) {\n if (!e) return;\n if (useragent.isWebKit && !e.which && self.releaseMouse)\n return self.releaseMouse();\n\n self.x = e.clientX;\n self.y = e.clientY;\n mouseMoveHandler && mouseMoveHandler(e);\n self.mouseEvent = new MouseEvent(e, self.editor);\n self.$mouseMoved = true;\n };\n\n var onCaptureEnd = function(e) {\n clearInterval(timerId);\n onCaptureInterval();\n self[self.state + \"End\"] && self[self.state + \"End\"](e);\n self.state = \"\";\n if (renderer.$keepTextAreaAtCursor == null) {\n renderer.$keepTextAreaAtCursor = true;\n renderer.$moveTextAreaToCursor();\n }\n self.isMousePressed = false;\n self.$onCaptureMouseMove = self.releaseMouse = null;\n e && self.onMouseEvent(\"mouseup\", e);\n };\n\n var onCaptureInterval = function() {\n self[self.state] && self[self.state]();\n self.$mouseMoved = false;\n };\n\n if (useragent.isOldIE && ev.domEvent.type == \"dblclick\") {\n return setTimeout(function() {onCaptureEnd(ev);});\n }\n\n self.$onCaptureMouseMove = onMouseMove;\n self.releaseMouse = event.capture(this.editor.container, onMouseMove, onCaptureEnd);\n var timerId = setInterval(onCaptureInterval, 20);\n };\n this.releaseMouse = null;\n this.cancelContextMenu = function() {\n var stop = function(e) {\n if (e && e.domEvent && e.domEvent.type != \"contextmenu\")\n return;\n this.editor.off(\"nativecontextmenu\", stop);\n if (e && e.domEvent)\n event.stopEvent(e.domEvent);\n }.bind(this);\n setTimeout(stop, 10);\n this.editor.on(\"nativecontextmenu\", stop);\n };\n}).call(MouseHandler.prototype);\n\nconfig.defineOptions(MouseHandler.prototype, \"mouseHandler\", {\n scrollSpeed: {initialValue: 2},\n dragDelay: {initialValue: (useragent.isMac ? 150 : 0)},\n dragEnabled: {initialValue: true},\n focusTimout: {initialValue: 0},\n tooltipFollowsMouse: {initialValue: true}\n});\n\n\nexports.MouseHandler = MouseHandler;\n});\n\nace.define(\"ace/mouse/fold_handler\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\n\nfunction FoldHandler(editor) {\n\n editor.on(\"click\", function(e) {\n var position = e.getDocumentPosition();\n var session = editor.session;\n var fold = session.getFoldAt(position.row, position.column, 1);\n if (fold) {\n if (e.getAccelKey())\n session.removeFold(fold);\n else\n session.expandFold(fold);\n\n e.stop();\n }\n });\n\n editor.on(\"gutterclick\", function(e) {\n var gutterRegion = editor.renderer.$gutterLayer.getRegion(e);\n\n if (gutterRegion == \"foldWidgets\") {\n var row = e.getDocumentPosition().row;\n var session = editor.session;\n if (session.foldWidgets && session.foldWidgets[row])\n editor.session.onFoldWidgetClick(row, e);\n if (!editor.isFocused())\n editor.focus();\n e.stop();\n }\n });\n\n editor.on(\"gutterdblclick\", function(e) {\n var gutterRegion = editor.renderer.$gutterLayer.getRegion(e);\n\n if (gutterRegion == \"foldWidgets\") {\n var row = e.getDocumentPosition().row;\n var session = editor.session;\n var data = session.getParentFoldRangeData(row, true);\n var range = data.range || data.firstRange;\n\n if (range) {\n row = range.start.row;\n var fold = session.getFoldAt(row, session.getLine(row).length, 1);\n\n if (fold) {\n session.removeFold(fold);\n } else {\n session.addFold(\"...\", range);\n editor.renderer.scrollCursorIntoView({row: range.start.row, column: 0});\n }\n }\n e.stop();\n }\n });\n}\n\nexports.FoldHandler = FoldHandler;\n\n});\n\nace.define(\"ace/keyboard/keybinding\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/lib/event\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar keyUtil = acequire(\"../lib/keys\");\nvar event = acequire(\"../lib/event\");\n\nvar KeyBinding = function(editor) {\n this.$editor = editor;\n this.$data = {editor: editor};\n this.$handlers = [];\n this.setDefaultHandler(editor.commands);\n};\n\n(function() {\n this.setDefaultHandler = function(kb) {\n this.removeKeyboardHandler(this.$defaultHandler);\n this.$defaultHandler = kb;\n this.addKeyboardHandler(kb, 0);\n };\n\n this.setKeyboardHandler = function(kb) {\n var h = this.$handlers;\n if (h[h.length - 1] == kb)\n return;\n\n while (h[h.length - 1] && h[h.length - 1] != this.$defaultHandler)\n this.removeKeyboardHandler(h[h.length - 1]);\n\n this.addKeyboardHandler(kb, 1);\n };\n\n this.addKeyboardHandler = function(kb, pos) {\n if (!kb)\n return;\n if (typeof kb == \"function\" && !kb.handleKeyboard)\n kb.handleKeyboard = kb;\n var i = this.$handlers.indexOf(kb);\n if (i != -1)\n this.$handlers.splice(i, 1);\n\n if (pos == undefined)\n this.$handlers.push(kb);\n else\n this.$handlers.splice(pos, 0, kb);\n\n if (i == -1 && kb.attach)\n kb.attach(this.$editor);\n };\n\n this.removeKeyboardHandler = function(kb) {\n var i = this.$handlers.indexOf(kb);\n if (i == -1)\n return false;\n this.$handlers.splice(i, 1);\n kb.detach && kb.detach(this.$editor);\n return true;\n };\n\n this.getKeyboardHandler = function() {\n return this.$handlers[this.$handlers.length - 1];\n };\n \n this.getStatusText = function() {\n var data = this.$data;\n var editor = data.editor;\n return this.$handlers.map(function(h) {\n return h.getStatusText && h.getStatusText(editor, data) || \"\";\n }).filter(Boolean).join(\" \");\n };\n\n this.$callKeyboardHandlers = function(hashId, keyString, keyCode, e) {\n var toExecute;\n var success = false;\n var commands = this.$editor.commands;\n\n for (var i = this.$handlers.length; i--;) {\n toExecute = this.$handlers[i].handleKeyboard(\n this.$data, hashId, keyString, keyCode, e\n );\n if (!toExecute || !toExecute.command)\n continue;\n if (toExecute.command == \"null\") {\n success = true;\n } else {\n success = commands.exec(toExecute.command, this.$editor, toExecute.args, e);\n }\n if (success && e && hashId != -1 && \n toExecute.passEvent != true && toExecute.command.passEvent != true\n ) {\n event.stopEvent(e);\n }\n if (success)\n break;\n }\n \n if (!success && hashId == -1) {\n toExecute = {command: \"insertstring\"};\n success = commands.exec(\"insertstring\", this.$editor, keyString);\n }\n \n if (success && this.$editor._signal)\n this.$editor._signal(\"keyboardActivity\", toExecute);\n \n return success;\n };\n\n this.onCommandKey = function(e, hashId, keyCode) {\n var keyString = keyUtil.keyCodeToString(keyCode);\n this.$callKeyboardHandlers(hashId, keyString, keyCode, e);\n };\n\n this.onTextInput = function(text) {\n this.$callKeyboardHandlers(-1, text);\n };\n\n}).call(KeyBinding.prototype);\n\nexports.KeyBinding = KeyBinding;\n});\n\nace.define(\"ace/lib/bidiutil\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar ArabicAlefBetIntervalsBegine = ['\\u0621', '\\u0641'];\nvar ArabicAlefBetIntervalsEnd = ['\\u063A', '\\u064a'];\nvar dir = 0, hiLevel = 0;\nvar lastArabic = false, hasUBAT_AL = false, hasUBAT_B = false, hasUBAT_S = false, hasBlockSep = false, hasSegSep = false;\n\nvar impTab_LTR = [\t[\t0,\t\t3,\t\t0,\t\t1,\t\t0,\t\t0,\t\t0\t],\t[\t0,\t\t3,\t\t0,\t\t1,\t\t2,\t\t2,\t\t0\t],\t[\t0,\t\t3,\t\t0,\t\t0x11,\t\t2,\t\t0,\t\t1\t],\t[\t0,\t\t3,\t\t5,\t\t5,\t\t4,\t\t1,\t\t0\t],\t[\t0,\t\t3,\t\t0x15,\t\t0x15,\t\t4,\t\t0,\t\t1\t],\t[\t0,\t\t3,\t\t5,\t\t5,\t\t4,\t\t2,\t\t0\t]\n];\n\nvar impTab_RTL = [\t[\t2,\t\t0,\t\t1,\t\t1,\t\t0,\t\t1,\t\t0\t],\t[\t2,\t\t0,\t\t1,\t\t1,\t\t0,\t\t2,\t\t0\t],\t[\t2,\t\t0,\t\t2,\t\t1,\t\t3,\t\t2,\t\t0\t],\t[\t2,\t\t0,\t\t2,\t\t0x21,\t\t3,\t\t1,\t\t1\t]\n];\n\nvar LTR = 0, RTL = 1;\n\nvar L = 0;\nvar R = 1;\nvar EN = 2;\nvar AN = 3;\nvar ON = 4;\nvar B = 5;\nvar S = 6;\nvar AL = 7;\nvar WS = 8;\nvar CS = 9;\nvar ES = 10;\nvar ET = 11;\nvar NSM = 12;\nvar LRE = 13;\nvar RLE = 14;\nvar PDF = 15;\nvar LRO = 16;\nvar RLO = 17;\nvar BN = 18;\n\nvar UnicodeTBL00 = [\nBN,BN,BN,BN,BN,BN,BN,BN,BN,S,B,S,WS,B,BN,BN,\nBN,BN,BN,BN,BN,BN,BN,BN,BN,BN,BN,BN,B,B,B,S,\nWS,ON,ON,ET,ET,ET,ON,ON,ON,ON,ON,ES,CS,ES,CS,CS,\nEN,EN,EN,EN,EN,EN,EN,EN,EN,EN,CS,ON,ON,ON,ON,ON,\nON,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,\nL,L,L,L,L,L,L,L,L,L,L,ON,ON,ON,ON,ON,\nON,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,\nL,L,L,L,L,L,L,L,L,L,L,ON,ON,ON,ON,BN,\nBN,BN,BN,BN,BN,B,BN,BN,BN,BN,BN,BN,BN,BN,BN,BN,\nBN,BN,BN,BN,BN,BN,BN,BN,BN,BN,BN,BN,BN,BN,BN,BN,\nCS,ON,ET,ET,ET,ET,ON,ON,ON,ON,L,ON,ON,BN,ON,ON,\nET,ET,EN,EN,ON,L,ON,ON,ON,EN,L,ON,ON,ON,ON,ON\n];\n\nvar UnicodeTBL20 = [\nWS,WS,WS,WS,WS,WS,WS,WS,WS,WS,WS,BN,BN,BN,L,R\t,\nON,ON,ON,ON,ON,ON,ON,ON,ON,ON,ON,ON,ON,ON,ON,ON,\nON,ON,ON,ON,ON,ON,ON,ON,WS,B,LRE,RLE,PDF,LRO,RLO,CS,\nET,ET,ET,ET,ET,ON,ON,ON,ON,ON,ON,ON,ON,ON,ON,ON,\nON,ON,ON,ON,CS,ON,ON,ON,ON,ON,ON,ON,ON,ON,ON,ON,\nON,ON,ON,ON,ON,ON,ON,ON,ON,ON,ON,ON,ON,ON,ON,WS\n];\n\nfunction _computeLevels(chars, levels, len, charTypes) {\n\tvar impTab = dir ? impTab_RTL : impTab_LTR\n\t\t, prevState = null, newClass = null, newLevel = null, newState = 0\n\t\t, action = null, cond = null, condPos = -1, i = null, ix = null, classes = [];\n\n\tif (!charTypes) {\n\t\tfor (i = 0, charTypes = []; i < len; i++) {\n\t\t\tcharTypes[i] = _getCharacterType(chars[i]);\n\t\t}\n\t}\n\thiLevel = dir;\n\tlastArabic = false;\n\thasUBAT_AL = false;\n\thasUBAT_B = false;\n\thasUBAT_S = false;\n\tfor (ix = 0; ix < len; ix++){\n\t\tprevState = newState;\n\t\tclasses[ix] = newClass = _getCharClass(chars, charTypes, classes, ix);\n\t\tnewState = impTab[prevState][newClass];\n\t\taction = newState & 0xF0;\n\t\tnewState &= 0x0F;\n\t\tlevels[ix] = newLevel = impTab[newState][5];\n\t\tif (action > 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<deltas.length; i++) {\n this.applyDelta(deltas[i]);\n }\n };\n this.revertDeltas = function(deltas) {\n for (var i=deltas.length-1; 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<rows.length; i++) {\n this.$breakpoints[rows[i]] = \"ace_breakpoint\";\n }\n this._signal(\"changeBreakpoint\", {});\n };\n this.clearBreakpoints = function() {\n this.$breakpoints = [];\n this._signal(\"changeBreakpoint\", {});\n };\n this.setBreakpoint = function(row, className) {\n if (className === undefined)\n className = \"ace_breakpoint\";\n if (className)\n this.$breakpoints[row] = className;\n else\n delete this.$breakpoints[row];\n this._signal(\"changeBreakpoint\", {});\n };\n this.clearBreakpoint = function(row) {\n delete this.$breakpoints[row];\n this._signal(\"changeBreakpoint\", {});\n };\n this.addMarker = function(range, clazz, type, inFront) {\n var id = this.$markerId++;\n\n var marker = {\n range : range,\n type : type || \"line\",\n renderer: typeof type == \"function\" ? type : null,\n clazz : clazz,\n inFront: !!inFront,\n id: id\n };\n\n if (inFront) {\n this.$frontMarkers[id] = marker;\n this._signal(\"changeFrontMarker\");\n } else {\n this.$backMarkers[id] = marker;\n this._signal(\"changeBackMarker\");\n }\n\n return id;\n };\n this.addDynamicMarker = function(marker, inFront) {\n if (!marker.update)\n return;\n var id = this.$markerId++;\n marker.id = id;\n marker.inFront = !!inFront;\n\n if (inFront) {\n this.$frontMarkers[id] = marker;\n this._signal(\"changeFrontMarker\");\n } else {\n this.$backMarkers[id] = marker;\n this._signal(\"changeBackMarker\");\n }\n\n return marker;\n };\n this.removeMarker = function(markerId) {\n var marker = this.$frontMarkers[markerId] || this.$backMarkers[markerId];\n if (!marker)\n return;\n\n var markers = marker.inFront ? this.$frontMarkers : this.$backMarkers;\n if (marker) {\n delete (markers[markerId]);\n this._signal(marker.inFront ? \"changeFrontMarker\" : \"changeBackMarker\");\n }\n };\n this.getMarkers = function(inFront) {\n return inFront ? this.$frontMarkers : this.$backMarkers;\n };\n\n this.highlight = function(re) {\n if (!this.$searchHighlight) {\n var highlight = new SearchHighlight(null, \"ace_selected-word\", \"text\");\n this.$searchHighlight = this.addDynamicMarker(highlight);\n }\n this.$searchHighlight.setRegexp(re);\n };\n this.highlightLines = function(startRow, endRow, clazz, inFront) {\n if (typeof endRow != \"number\") {\n clazz = endRow;\n endRow = startRow;\n }\n if (!clazz)\n clazz = \"ace_step\";\n\n var range = new Range(startRow, 0, endRow, Infinity);\n range.id = this.addMarker(range, clazz, \"fullLine\", inFront);\n return range;\n };\n this.setAnnotations = function(annotations) {\n this.$annotations = annotations;\n this._signal(\"changeAnnotation\", {});\n };\n this.getAnnotations = function() {\n return this.$annotations || [];\n };\n this.clearAnnotations = function() {\n this.setAnnotations([]);\n };\n this.$detectNewLine = function(text) {\n var match = text.match(/^.*?(\\r?\\n)/m);\n if (match) {\n this.$autoNewLine = match[1];\n } else {\n this.$autoNewLine = \"\\n\";\n }\n };\n this.getWordRange = function(row, column) {\n var line = this.getLine(row);\n\n var inToken = false;\n if (column > 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 === '</'){\n depth--;\n }\n }\n \n } while (token && depth >= 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 === '</') {\n depth--;\n }\n }\n } while (prevToken && depth <= 0);\n iterator.stepForward();\n }\n \n if (!token) {\n session.removeMarker(session.$tagHighlight);\n session.$tagHighlight = null;\n return;\n }\n \n var row = iterator.getCurrentTokenRow();\n var column = iterator.getCurrentTokenColumn();\n var range = new Range(row, column, row, column+token.value.length);\n var sbm = session.$backMarkers[session.$tagHighlight];\n if (session.$tagHighlight && sbm != undefined && range.compareRange(sbm.range) !== 0) {\n session.removeMarker(session.$tagHighlight);\n session.$tagHighlight = null;\n }\n \n if (range && !session.$tagHighlight)\n session.$tagHighlight = session.addMarker(range, \"ace_bracket\", \"text\");\n }, 50);\n };\n this.focus = function() {\n var _self = this;\n setTimeout(function() {\n _self.textInput.focus();\n });\n this.textInput.focus();\n };\n this.isFocused = function() {\n return this.textInput.isFocused();\n };\n this.blur = function() {\n this.textInput.blur();\n };\n this.onFocus = function(e) {\n if (this.$isFocused)\n return;\n this.$isFocused = true;\n this.renderer.showCursor();\n this.renderer.visualizeFocus();\n this._emit(\"focus\", e);\n };\n this.onBlur = function(e) {\n if (!this.$isFocused)\n return;\n this.$isFocused = false;\n this.renderer.hideCursor();\n this.renderer.visualizeBlur();\n this._emit(\"blur\", e);\n };\n\n this.$cursorChange = function() {\n this.renderer.updateCursor();\n };\n this.onDocumentChange = function(delta) {\n var wrap = this.session.$useWrapMode;\n var lastRow = (delta.start.row == delta.end.row ? delta.end.row : Infinity);\n this.renderer.updateLines(delta.start.row, lastRow, wrap);\n\n this._signal(\"change\", delta);\n this.$cursorChange();\n this.$updateHighlightActiveLine();\n };\n\n this.onTokenizerUpdate = function(e) {\n var rows = e.data;\n this.renderer.updateLines(rows.first, rows.last);\n };\n\n\n this.onScrollTopChange = function() {\n this.renderer.scrollToY(this.session.getScrollTop());\n };\n\n this.onScrollLeftChange = function() {\n this.renderer.scrollToX(this.session.getScrollLeft());\n };\n this.onCursorChange = function() {\n this.$cursorChange();\n\n if (!this.$blockScrolling) {\n config.warn(\"Automatically scrolling cursor into view after selection change\",\n \"this will be disabled in the next version\",\n \"set editor.$blockScrolling = Infinity to disable this message\"\n );\n this.renderer.scrollCursorIntoView();\n }\n\n this.$highlightBrackets();\n this.$highlightTags();\n this.$updateHighlightActiveLine();\n this._signal(\"changeSelection\");\n };\n\n this.$updateHighlightActiveLine = function() {\n var session = this.getSession();\n\n var highlight;\n if (this.$highlightActiveLine) {\n if ((this.$selectionStyle != \"line\" || !this.selection.isMultiLine()))\n highlight = this.getCursorPosition();\n if (this.renderer.$maxLines && this.session.getLength() === 1 && !(this.renderer.$minLines > 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 === '</') {\n depth[token.value]--;\n }\n \n if (depth[token.value] === -1) {\n matchType = 'tag';\n found = true;\n }\n }\n\n if (!found) {\n prevToken = token;\n token = iterator.stepForward();\n i = 0;\n }\n } while (token && !found);\n if (!matchType)\n return;\n\n var range, pos;\n if (matchType === 'bracket') {\n range = this.session.getBracketRange(cursor);\n if (!range) {\n range = new Range(\n iterator.getCurrentTokenRow(),\n iterator.getCurrentTokenColumn() + i - 1,\n iterator.getCurrentTokenRow(),\n iterator.getCurrentTokenColumn() + i - 1\n );\n pos = range.start;\n if (expand || pos.row === cursor.row && Math.abs(pos.column - cursor.column) < 2)\n range = this.session.getBracketRange(pos);\n }\n }\n else if (matchType === 'tag') {\n if (token && token.type.indexOf('tag-name') !== -1) \n var tag = token.value;\n else\n return;\n\n range = new Range(\n iterator.getCurrentTokenRow(),\n iterator.getCurrentTokenColumn() - 2,\n iterator.getCurrentTokenRow(),\n iterator.getCurrentTokenColumn() - 2\n );\n if (range.compare(cursor.row, cursor.column) === 0) {\n found = false;\n do {\n token = prevToken;\n prevToken = iterator.stepBackward();\n \n if (prevToken) {\n if (prevToken.type.indexOf('tag-close') !== -1) {\n range.setEnd(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 1);\n }\n\n if (token.value === tag && token.type.indexOf('tag-name') !== -1) {\n if (prevToken.value === '<') {\n depth[tag]++;\n }\n else if (prevToken.value === '</') {\n depth[tag]--;\n }\n \n if (depth[tag] === 0)\n found = true;\n }\n }\n } while (prevToken && !found);\n }\n if (token && token.type.indexOf('tag-name')) {\n pos = range.start;\n if (pos.row == cursor.row && Math.abs(pos.column - cursor.column) < 2)\n pos = range.end;\n }\n }\n\n pos = range && range.cursor || pos;\n if (pos) {\n if (select) {\n if (range && expand) {\n this.selection.setRange(range);\n } else if (range && range.isEqual(this.getSelectionRange())) {\n this.clearSelection();\n } else {\n this.selection.selectTo(pos.row, pos.column);\n }\n } else {\n this.selection.moveTo(pos.row, pos.column);\n }\n }\n };\n this.gotoLine = function(lineNumber, column, animate) {\n this.selection.clearSelection();\n this.session.unfold({row: lineNumber - 1, column: column || 0});\n\n this.$blockScrolling += 1;\n this.exitMultiSelectMode && this.exitMultiSelectMode();\n this.moveCursorTo(lineNumber - 1, column || 0);\n this.$blockScrolling -= 1;\n\n if (!this.isRowFullyVisible(lineNumber - 1))\n this.scrollToLine(lineNumber - 1, true, animate);\n };\n this.navigateTo = function(row, column) {\n this.selection.moveTo(row, column);\n };\n this.navigateUp = function(times) {\n if (this.selection.isMultiLine() && !this.selection.isBackwards()) {\n var selectionStart = this.selection.anchor.getPosition();\n return this.moveCursorToPosition(selectionStart);\n }\n this.selection.clearSelection();\n this.selection.moveCursorBy(-times || -1, 0);\n };\n this.navigateDown = function(times) {\n if (this.selection.isMultiLine() && this.selection.isBackwards()) {\n var selectionEnd = this.selection.anchor.getPosition();\n return this.moveCursorToPosition(selectionEnd);\n }\n this.selection.clearSelection();\n this.selection.moveCursorBy(times || 1, 0);\n };\n this.navigateLeft = function(times) {\n if (!this.selection.isEmpty()) {\n var selectionStart = this.getSelectionRange().start;\n this.moveCursorToPosition(selectionStart);\n }\n else {\n times = times || 1;\n while (times--) {\n this.selection.moveCursorLeft();\n }\n }\n this.clearSelection();\n };\n this.navigateRight = function(times) {\n if (!this.selection.isEmpty()) {\n var selectionEnd = this.getSelectionRange().end;\n this.moveCursorToPosition(selectionEnd);\n }\n else {\n times = times || 1;\n while (times--) {\n this.selection.moveCursorRight();\n }\n }\n this.clearSelection();\n };\n this.navigateLineStart = function() {\n this.selection.moveCursorLineStart();\n this.clearSelection();\n };\n this.navigateLineEnd = function() {\n this.selection.moveCursorLineEnd();\n this.clearSelection();\n };\n this.navigateFileEnd = function() {\n this.selection.moveCursorFileEnd();\n this.clearSelection();\n };\n this.navigateFileStart = function() {\n this.selection.moveCursorFileStart();\n this.clearSelection();\n };\n this.navigateWordRight = function() {\n this.selection.moveCursorWordRight();\n this.clearSelection();\n };\n this.navigateWordLeft = function() {\n this.selection.moveCursorWordLeft();\n this.clearSelection();\n };\n this.replace = function(replacement, options) {\n if (options)\n this.$search.set(options);\n\n var range = this.$search.find(this.session);\n var replaced = 0;\n if (!range)\n return replaced;\n\n if (this.$tryReplace(range, replacement)) {\n replaced = 1;\n }\n if (range !== null) {\n this.selection.setSelectionRange(range);\n this.renderer.scrollSelectionIntoView(range.start, range.end);\n }\n\n return replaced;\n };\n this.replaceAll = function(replacement, options) {\n if (options) {\n this.$search.set(options);\n }\n\n var ranges = this.$search.findAll(this.session);\n var replaced = 0;\n if (!ranges.length)\n return replaced;\n\n this.$blockScrolling += 1;\n\n var selection = this.getSelectionRange();\n this.selection.moveTo(0, 0);\n\n for (var i = ranges.length - 1; i >= 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 \"<div class='\", clazz, \" ace_br1 ace_start' style='\",\n \"height:\", height, \"px;\",\n \"right:0;\",\n \"top:\", top, \"px;\",\n \"left:\", left, \"px;\", extraStyle, \"'></div>\"\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 \"<div class='\", clazz, \" ace_br12' style='\",\n \"height:\", height, \"px;\",\n \"width:\", width, \"px;\",\n \"top:\", top, \"px;\",\n \"left:\", padding, \"px;\", extraStyle, \"'></div>\"\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 \"<div class='\", clazz, (radiusClass ? \" ace_br\" + radiusClass : \"\"), \"' style='\",\n \"height:\", height, \"px;\",\n \"right:0;\",\n \"top:\", top, \"px;\",\n \"left:\", padding, \"px;\", extraStyle, \"'></div>\"\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 \"<div class='\", clazz, \"' style='\",\n \"height:\", height, \"px;\",\n \"width:\", width, \"px;\",\n \"top:\", top, \"px;\",\n \"left:\", left, \"px;\", extraStyle || \"\", \"'></div>\"\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 \"<div class='\", clazz, \"' style='\",\n \"height:\", height, \"px;\",\n \"width:\", selection.width + (extraLength || 0), \"px;\",\n \"top:\", top, \"px;\",\n \"left:\", padding + selection.left, \"px;\", extraStyle || \"\", \"'></div>\"\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 \"<div class='\", clazz, \"' style='\",\n \"height:\", height, \"px;\",\n \"top:\", top, \"px;\",\n \"left:0;right:0;\", extraStyle || \"\", \"'></div>\"\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 \"<div class='\", clazz, \"' style='\",\n \"height:\", height, \"px;\",\n \"top:\", top, \"px;\",\n \"left:0;right:0;\", extraStyle || \"\", \"'></div>\"\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(\"<span class='ace_invisible ace_invisible_tab'>\"\n + lang.stringRepeat(this.TAB_CHAR, i)\n + \"</span>\");\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[\" \"] = \"<span class='\" + className + spaceClass + \"'>\" + spaceContent + \"</span>\";\n this.$tabStrings[\"\\t\"] = \"<span class='\" + className + tabClass + \"'>\" + tabContent + \"</span>\";\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(\"<div class='ace_line_group' style='height:\", config.lineHeight*this.session.getRowLength(row), \"px'>\");\n\n this.$renderLine(html, row, false, row == foldStart ? foldLine : false);\n\n if (this.$useLineGroups())\n html.push(\"</div>\"); // 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 ? \"<span class='ace_invisible ace_invisible_space'>\" + lang.stringRepeat(self.SPACE_CHAR, c.length) + \"</span>\"\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 \"<span class='\" + classToUse + \"' style='width:\" +\n (self.config.characterWidth * 2) +\n \"px'>\" + space + \"</span>\";\n } else if (b) {\n return \"<span class='ace_invisible ace_invisible_space ace_invalid'>\" + self.SPACE_CHAR + \"</span>\";\n } else {\n screenColumn += 1;\n return \"<span class='ace_cjk' style='width:\" +\n (self.config.characterWidth * 2) +\n \"px'>\" + c + \"</span>\";\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(\"<span class='\", classes, \"'\", style, \">\", output, \"</span>\");\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(\"</div>\",\n \"<div class='ace_line' style='height:\",\n this.config.lineHeight, \"px'>\"\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 \"<div class='ace_line' style='height:\", \n this.config.lineHeight * (\n this.$useLineGroups() ? 1 :this.session.getRowLength(row)\n ), \"px'>\"\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 \"<span class='ace_invisible ace_invisible_eol'>\",\n row == this.session.getLength() - 1 ? this.EOF_CHAR : this.EOL_CHAR,\n \"</span>\"\n );\n }\n if (!onlyContents)\n stringBuilder.push(\"</div>\");\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(\"<br>\");\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.column<point2.column;return point1.row<point2.row||point1.row==point2.row&&bColIsAfter}function $getTransformedPoint(delta,point,moveIfEqual){var deltaIsInsert=\\\"insert\\\"==delta.action,deltaRowShift=(deltaIsInsert?1:-1)*(delta.end.row-delta.start.row),deltaColShift=(deltaIsInsert?1:-1)*(delta.end.column-delta.start.column),deltaStart=delta.start,deltaEnd=deltaIsInsert?deltaStart:delta.end;return $pointsInOrder(point,deltaStart,moveIfEqual)?{row:point.row,column:point.column}:$pointsInOrder(deltaEnd,point,!moveIfEqual)?{row:point.row+deltaRowShift,column:point.column+(point.row==deltaEnd.row?deltaColShift:0)}:{row:deltaStart.row,column:deltaStart.column}}oop.implement(this,EventEmitter),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.$insertRight=!1,this.onChange=function(delta){if(!(delta.start.row==delta.end.row&&delta.start.row!=this.row||delta.start.row>this.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(/</g,\\\"<\\\")},exports.getMatchOffsets=function(string,regExp){var matches=[];return string.replace(regExp,function(str){matches.push({offset:arguments[arguments.length-2],length:str.length})}),matches},exports.deferredCall=function(fcn){var timer=null,callback=function(){timer=null,fcn()},deferred=function(timeout){return deferred.cancel(),timer=setTimeout(callback,timeout||0),deferred};return deferred.schedule=deferred,deferred.call=function(){return this.cancel(),fcn(),deferred},deferred.cancel=function(){return clearTimeout(timer),timer=null,deferred},deferred.isPending=function(){return timer},deferred},exports.delayedCall=function(fcn,defaultTimeout){var timer=null,callback=function(){timer=null,fcn()},_self=function(timeout){null==timer&&(timer=setTimeout(callback,timeout||defaultTimeout))};return _self.delay=function(timeout){timer&&clearTimeout(timer),timer=setTimeout(callback,timeout||defaultTimeout)},_self.schedule=_self,_self.call=function(){this.cancel(),fcn()},_self.cancel=function(){timer&&clearTimeout(timer),timer=null},_self.isPending=function(){return timer},_self}}),ace.define(\\\"ace/worker/mirror\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\",\\\"ace/range\\\",\\\"ace/document\\\",\\\"ace/lib/lang\\\"],function(acequire,exports){\\\"use strict\\\";acequire(\\\"../range\\\").Range;var Document=acequire(\\\"../document\\\").Document,lang=acequire(\\\"../lib/lang\\\"),Mirror=exports.Mirror=function(sender){this.sender=sender;var doc=this.doc=new Document(\\\"\\\"),deferredUpdate=this.deferredUpdate=lang.delayedCall(this.onUpdate.bind(this)),_self=this;sender.on(\\\"change\\\",function(e){var data=e.data;if(data[0].start)doc.applyDeltas(data);else for(var i=0;data.length>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 <COPYRIGHT HOLDER> 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. <svg:path> 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 {<foo as bar>} ...;\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 <foo> ...;\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; // `<!--`\n\t var comment = this.skipSingleLineComment(4);\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 {\n\t break;\n\t }\n\t }\n\t return comments;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-future-reserved-words\n\t Scanner.prototype.isFutureReservedWord = function (id) {\n\t switch (id) {\n\t case 'enum':\n\t case 'export':\n\t case 'import':\n\t case 'super':\n\t return true;\n\t default:\n\t return false;\n\t }\n\t };\n\t Scanner.prototype.isStrictModeReservedWord = function (id) {\n\t switch (id) {\n\t case 'implements':\n\t case 'interface':\n\t case 'package':\n\t case 'private':\n\t case 'protected':\n\t case 'public':\n\t case 'static':\n\t case 'yield':\n\t case 'let':\n\t return true;\n\t default:\n\t return false;\n\t }\n\t };\n\t Scanner.prototype.isRestrictedWord = function (id) {\n\t return id === 'eval' || id === 'arguments';\n\t };\n\t // https://tc39.github.io/ecma262/#sec-keywords\n\t Scanner.prototype.isKeyword = function (id) {\n\t switch (id.length) {\n\t case 2:\n\t return (id === 'if') || (id === 'in') || (id === 'do');\n\t case 3:\n\t return (id === 'var') || (id === 'for') || (id === 'new') ||\n\t (id === 'try') || (id === 'let');\n\t case 4:\n\t return (id === 'this') || (id === 'else') || (id === 'case') ||\n\t (id === 'void') || (id === 'with') || (id === 'enum');\n\t case 5:\n\t return (id === 'while') || (id === 'break') || (id === 'catch') ||\n\t (id === 'throw') || (id === 'const') || (id === 'yield') ||\n\t (id === 'class') || (id === 'super');\n\t case 6:\n\t return (id === 'return') || (id === 'typeof') || (id === 'delete') ||\n\t (id === 'switch') || (id === 'export') || (id === 'import');\n\t case 7:\n\t return (id === 'default') || (id === 'finally') || (id === 'extends');\n\t case 8:\n\t return (id === 'function') || (id === 'continue') || (id === 'debugger');\n\t case 10:\n\t return (id === 'instanceof');\n\t default:\n\t return false;\n\t }\n\t };\n\t Scanner.prototype.codePointAt = function (i) {\n\t var cp = this.source.charCodeAt(i);\n\t if (cp >= 0xD800 && cp <= 0xDBFF) {\n\t var second = this.source.charCodeAt(i + 1);\n\t if (second >= 0xDC00 && second <= 0xDFFF) {\n\t var first = cp;\n\t cp = (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n\t }\n\t }\n\t return cp;\n\t };\n\t Scanner.prototype.scanHexEscape = function (prefix) {\n\t var len = (prefix === 'u') ? 4 : 2;\n\t var code = 0;\n\t for (var i = 0; i < len; ++i) {\n\t if (!this.eof() && character_1.Character.isHexDigit(this.source.charCodeAt(this.index))) {\n\t code = code * 16 + hexValue(this.source[this.index++]);\n\t }\n\t else {\n\t return null;\n\t }\n\t }\n\t return String.fromCharCode(code);\n\t };\n\t Scanner.prototype.scanUnicodeCodePointEscape = function () {\n\t var ch = this.source[this.index];\n\t var code = 0;\n\t // At least, one hex digit is required.\n\t if (ch === '}') {\n\t this.throwUnexpectedToken();\n\t }\n\t while (!this.eof()) {\n\t ch = this.source[this.index++];\n\t if (!character_1.Character.isHexDigit(ch.charCodeAt(0))) {\n\t break;\n\t }\n\t code = code * 16 + hexValue(ch);\n\t }\n\t if (code > 0x10FFFF || ch !== '}') {\n\t this.throwUnexpectedToken();\n\t }\n\t return character_1.Character.fromCodePoint(code);\n\t };\n\t Scanner.prototype.getIdentifier = function () {\n\t var start = this.index++;\n\t while (!this.eof()) {\n\t var ch = this.source.charCodeAt(this.index);\n\t if (ch === 0x5C) {\n\t // Blackslash (U+005C) marks Unicode escape sequence.\n\t this.index = start;\n\t return this.getComplexIdentifier();\n\t }\n\t else if (ch >= 0xD800 && ch < 0xDFFF) {\n\t // Need to handle surrogate pairs.\n\t this.index = start;\n\t return this.getComplexIdentifier();\n\t }\n\t if (character_1.Character.isIdentifierPart(ch)) {\n\t ++this.index;\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t return this.source.slice(start, this.index);\n\t };\n\t Scanner.prototype.getComplexIdentifier = function () {\n\t var cp = this.codePointAt(this.index);\n\t var id = character_1.Character.fromCodePoint(cp);\n\t this.index += id.length;\n\t // '\\u' (U+005C, U+0075) denotes an escaped character.\n\t var ch;\n\t if (cp === 0x5C) {\n\t if (this.source.charCodeAt(this.index) !== 0x75) {\n\t this.throwUnexpectedToken();\n\t }\n\t ++this.index;\n\t if (this.source[this.index] === '{') {\n\t ++this.index;\n\t ch = this.scanUnicodeCodePointEscape();\n\t }\n\t else {\n\t ch = this.scanHexEscape('u');\n\t if (ch === null || ch === '\\\\' || !character_1.Character.isIdentifierStart(ch.charCodeAt(0))) {\n\t this.throwUnexpectedToken();\n\t }\n\t }\n\t id = ch;\n\t }\n\t while (!this.eof()) {\n\t cp = this.codePointAt(this.index);\n\t if (!character_1.Character.isIdentifierPart(cp)) {\n\t break;\n\t }\n\t ch = character_1.Character.fromCodePoint(cp);\n\t id += ch;\n\t this.index += ch.length;\n\t // '\\u' (U+005C, U+0075) denotes an escaped character.\n\t if (cp === 0x5C) {\n\t id = id.substr(0, id.length - 1);\n\t if (this.source.charCodeAt(this.index) !== 0x75) {\n\t this.throwUnexpectedToken();\n\t }\n\t ++this.index;\n\t if (this.source[this.index] === '{') {\n\t ++this.index;\n\t ch = this.scanUnicodeCodePointEscape();\n\t }\n\t else {\n\t ch = this.scanHexEscape('u');\n\t if (ch === null || ch === '\\\\' || !character_1.Character.isIdentifierPart(ch.charCodeAt(0))) {\n\t this.throwUnexpectedToken();\n\t }\n\t }\n\t id += ch;\n\t }\n\t }\n\t return id;\n\t };\n\t Scanner.prototype.octalToDecimal = function (ch) {\n\t // \\0 is not octal escape sequence\n\t var octal = (ch !== '0');\n\t var code = octalValue(ch);\n\t if (!this.eof() && character_1.Character.isOctalDigit(this.source.charCodeAt(this.index))) {\n\t octal = true;\n\t code = code * 8 + octalValue(this.source[this.index++]);\n\t // 3 digits are only allowed when string starts\n\t // with 0, 1, 2, 3\n\t if ('0123'.indexOf(ch) >= 0 && !this.eof() && character_1.Character.isOctalDigit(this.source.charCodeAt(this.index))) {\n\t code = code * 8 + octalValue(this.source[this.index++]);\n\t }\n\t }\n\t return {\n\t code: code,\n\t octal: octal\n\t };\n\t };\n\t // https://tc39.github.io/ecma262/#sec-names-and-keywords\n\t Scanner.prototype.scanIdentifier = function () {\n\t var type;\n\t var start = this.index;\n\t // Backslash (U+005C) starts an escaped character.\n\t var id = (this.source.charCodeAt(start) === 0x5C) ? this.getComplexIdentifier() : this.getIdentifier();\n\t // There is no keyword or literal with only one character.\n\t // Thus, it must be an identifier.\n\t if (id.length === 1) {\n\t type = 3 /* Identifier */;\n\t }\n\t else if (this.isKeyword(id)) {\n\t type = 4 /* Keyword */;\n\t }\n\t else if (id === 'null') {\n\t type = 5 /* NullLiteral */;\n\t }\n\t else if (id === 'true' || id === 'false') {\n\t type = 1 /* BooleanLiteral */;\n\t }\n\t else {\n\t type = 3 /* Identifier */;\n\t }\n\t if (type !== 3 /* Identifier */ && (start + id.length !== this.index)) {\n\t var restore = this.index;\n\t this.index = start;\n\t this.tolerateUnexpectedToken(messages_1.Messages.InvalidEscapedReservedWord);\n\t this.index = restore;\n\t }\n\t return {\n\t type: type,\n\t value: id,\n\t lineNumber: this.lineNumber,\n\t lineStart: this.lineStart,\n\t start: start,\n\t end: this.index\n\t };\n\t };\n\t // https://tc39.github.io/ecma262/#sec-punctuators\n\t Scanner.prototype.scanPunctuator = function () {\n\t var start = this.index;\n\t // Check for most common single-character punctuators.\n\t var str = this.source[this.index];\n\t switch (str) {\n\t case '(':\n\t case '{':\n\t if (str === '{') {\n\t this.curlyStack.push('{');\n\t }\n\t ++this.index;\n\t break;\n\t case '.':\n\t ++this.index;\n\t if (this.source[this.index] === '.' && this.source[this.index + 1] === '.') {\n\t // Spread operator: ...\n\t this.index += 2;\n\t str = '...';\n\t }\n\t break;\n\t case '}':\n\t ++this.index;\n\t this.curlyStack.pop();\n\t break;\n\t case ')':\n\t case ';':\n\t case ',':\n\t case '[':\n\t case ']':\n\t case ':':\n\t case '?':\n\t case '~':\n\t ++this.index;\n\t break;\n\t default:\n\t // 4-character punctuator.\n\t str = this.source.substr(this.index, 4);\n\t if (str === '>>>=') {\n\t this.index += 4;\n\t }\n\t else {\n\t // 3-character punctuators.\n\t str = str.substr(0, 3);\n\t if (str === '===' || str === '!==' || str === '>>>' ||\n\t str === '<<=' || str === '>>=' || str === '**=') {\n\t this.index += 3;\n\t }\n\t else {\n\t // 2-character punctuators.\n\t str = str.substr(0, 2);\n\t if (str === '&&' || str === '||' || str === '==' || str === '!=' ||\n\t str === '+=' || str === '-=' || str === '*=' || str === '/=' ||\n\t str === '++' || str === '--' || str === '<<' || str === '>>' ||\n\t str === '&=' || str === '|=' || str === '^=' || str === '%=' ||\n\t str === '<=' || str === '>=' || str === '=>' || str === '**') {\n\t this.index += 2;\n\t }\n\t else {\n\t // 1-character punctuators.\n\t str = this.source[this.index];\n\t if ('<>=!+-*%&|^/'.indexOf(str) >= 0) {\n\t ++this.index;\n\t }\n\t }\n\t }\n\t }\n\t }\n\t if (this.index === start) {\n\t this.throwUnexpectedToken();\n\t }\n\t return {\n\t type: 7 /* Punctuator */,\n\t value: str,\n\t lineNumber: this.lineNumber,\n\t lineStart: this.lineStart,\n\t start: start,\n\t end: this.index\n\t };\n\t };\n\t // https://tc39.github.io/ecma262/#sec-literals-numeric-literals\n\t Scanner.prototype.scanHexLiteral = function (start) {\n\t var num = '';\n\t while (!this.eof()) {\n\t if (!character_1.Character.isHexDigit(this.source.charCodeAt(this.index))) {\n\t break;\n\t }\n\t num += this.source[this.index++];\n\t }\n\t if (num.length === 0) {\n\t this.throwUnexpectedToken();\n\t }\n\t if (character_1.Character.isIdentifierStart(this.source.charCodeAt(this.index))) {\n\t this.throwUnexpectedToken();\n\t }\n\t return {\n\t type: 6 /* NumericLiteral */,\n\t value: parseInt('0x' + num, 16),\n\t lineNumber: this.lineNumber,\n\t lineStart: this.lineStart,\n\t start: start,\n\t end: this.index\n\t };\n\t };\n\t Scanner.prototype.scanBinaryLiteral = function (start) {\n\t var num = '';\n\t var ch;\n\t while (!this.eof()) {\n\t ch = this.source[this.index];\n\t if (ch !== '0' && ch !== '1') {\n\t break;\n\t }\n\t num += this.source[this.index++];\n\t }\n\t if (num.length === 0) {\n\t // only 0b or 0B\n\t this.throwUnexpectedToken();\n\t }\n\t if (!this.eof()) {\n\t ch = this.source.charCodeAt(this.index);\n\t /* istanbul ignore else */\n\t if (character_1.Character.isIdentifierStart(ch) || character_1.Character.isDecimalDigit(ch)) {\n\t this.throwUnexpectedToken();\n\t }\n\t }\n\t return {\n\t type: 6 /* NumericLiteral */,\n\t value: parseInt(num, 2),\n\t lineNumber: this.lineNumber,\n\t lineStart: this.lineStart,\n\t start: start,\n\t end: this.index\n\t };\n\t };\n\t Scanner.prototype.scanOctalLiteral = function (prefix, start) {\n\t var num = '';\n\t var octal = false;\n\t if (character_1.Character.isOctalDigit(prefix.charCodeAt(0))) {\n\t octal = true;\n\t num = '0' + this.source[this.index++];\n\t }\n\t else {\n\t ++this.index;\n\t }\n\t while (!this.eof()) {\n\t if (!character_1.Character.isOctalDigit(this.source.charCodeAt(this.index))) {\n\t break;\n\t }\n\t num += this.source[this.index++];\n\t }\n\t if (!octal && num.length === 0) {\n\t // only 0o or 0O\n\t this.throwUnexpectedToken();\n\t }\n\t if (character_1.Character.isIdentifierStart(this.source.charCodeAt(this.index)) || character_1.Character.isDecimalDigit(this.source.charCodeAt(this.index))) {\n\t this.throwUnexpectedToken();\n\t }\n\t return {\n\t type: 6 /* NumericLiteral */,\n\t value: parseInt(num, 8),\n\t octal: octal,\n\t lineNumber: this.lineNumber,\n\t lineStart: this.lineStart,\n\t start: start,\n\t end: this.index\n\t };\n\t };\n\t Scanner.prototype.isImplicitOctalLiteral = function () {\n\t // Implicit octal, unless there is a non-octal digit.\n\t // (Annex B.1.1 on Numeric Literals)\n\t for (var i = this.index + 1; i < this.length; ++i) {\n\t var ch = this.source[i];\n\t if (ch === '8' || ch === '9') {\n\t return false;\n\t }\n\t if (!character_1.Character.isOctalDigit(ch.charCodeAt(0))) {\n\t return true;\n\t }\n\t }\n\t return true;\n\t };\n\t Scanner.prototype.scanNumericLiteral = function () {\n\t var start = this.index;\n\t var ch = this.source[start];\n\t assert_1.assert(character_1.Character.isDecimalDigit(ch.charCodeAt(0)) || (ch === '.'), 'Numeric literal must start with a decimal digit or a decimal point');\n\t var num = '';\n\t if (ch !== '.') {\n\t num = this.source[this.index++];\n\t ch = this.source[this.index];\n\t // Hex number starts with '0x'.\n\t // Octal number starts with '0'.\n\t // Octal number in ES6 starts with '0o'.\n\t // Binary number in ES6 starts with '0b'.\n\t if (num === '0') {\n\t if (ch === 'x' || ch === 'X') {\n\t ++this.index;\n\t return this.scanHexLiteral(start);\n\t }\n\t if (ch === 'b' || ch === 'B') {\n\t ++this.index;\n\t return this.scanBinaryLiteral(start);\n\t }\n\t if (ch === 'o' || ch === 'O') {\n\t return this.scanOctalLiteral(ch, start);\n\t }\n\t if (ch && character_1.Character.isOctalDigit(ch.charCodeAt(0))) {\n\t if (this.isImplicitOctalLiteral()) {\n\t return this.scanOctalLiteral(ch, start);\n\t }\n\t }\n\t }\n\t while (character_1.Character.isDecimalDigit(this.source.charCodeAt(this.index))) {\n\t num += this.source[this.index++];\n\t }\n\t ch = this.source[this.index];\n\t }\n\t if (ch === '.') {\n\t num += this.source[this.index++];\n\t while (character_1.Character.isDecimalDigit(this.source.charCodeAt(this.index))) {\n\t num += this.source[this.index++];\n\t }\n\t ch = this.source[this.index];\n\t }\n\t if (ch === 'e' || ch === 'E') {\n\t num += this.source[this.index++];\n\t ch = this.source[this.index];\n\t if (ch === '+' || ch === '-') {\n\t num += this.source[this.index++];\n\t }\n\t if (character_1.Character.isDecimalDigit(this.source.charCodeAt(this.index))) {\n\t while (character_1.Character.isDecimalDigit(this.source.charCodeAt(this.index))) {\n\t num += this.source[this.index++];\n\t }\n\t }\n\t else {\n\t this.throwUnexpectedToken();\n\t }\n\t }\n\t if (character_1.Character.isIdentifierStart(this.source.charCodeAt(this.index))) {\n\t this.throwUnexpectedToken();\n\t }\n\t return {\n\t type: 6 /* NumericLiteral */,\n\t value: parseFloat(num),\n\t lineNumber: this.lineNumber,\n\t lineStart: this.lineStart,\n\t start: start,\n\t end: this.index\n\t };\n\t };\n\t // https://tc39.github.io/ecma262/#sec-literals-string-literals\n\t Scanner.prototype.scanStringLiteral = function () {\n\t var start = this.index;\n\t var quote = this.source[start];\n\t assert_1.assert((quote === '\\'' || quote === '\"'), 'String literal must starts with a quote');\n\t ++this.index;\n\t var octal = false;\n\t var str = '';\n\t while (!this.eof()) {\n\t var ch = this.source[this.index++];\n\t if (ch === quote) {\n\t quote = '';\n\t break;\n\t }\n\t else if (ch === '\\\\') {\n\t ch = this.source[this.index++];\n\t if (!ch || !character_1.Character.isLineTerminator(ch.charCodeAt(0))) {\n\t switch (ch) {\n\t case 'u':\n\t if (this.source[this.index] === '{') {\n\t ++this.index;\n\t str += this.scanUnicodeCodePointEscape();\n\t }\n\t else {\n\t var unescaped_1 = this.scanHexEscape(ch);\n\t if (unescaped_1 === null) {\n\t this.throwUnexpectedToken();\n\t }\n\t str += unescaped_1;\n\t }\n\t break;\n\t case 'x':\n\t var unescaped = this.scanHexEscape(ch);\n\t if (unescaped === null) {\n\t this.throwUnexpectedToken(messages_1.Messages.InvalidHexEscapeSequence);\n\t }\n\t str += unescaped;\n\t break;\n\t case 'n':\n\t str += '\\n';\n\t break;\n\t case 'r':\n\t str += '\\r';\n\t break;\n\t case 't':\n\t str += '\\t';\n\t break;\n\t case 'b':\n\t str += '\\b';\n\t break;\n\t case 'f':\n\t str += '\\f';\n\t break;\n\t case 'v':\n\t str += '\\x0B';\n\t break;\n\t case '8':\n\t case '9':\n\t str += ch;\n\t this.tolerateUnexpectedToken();\n\t break;\n\t default:\n\t if (ch && character_1.Character.isOctalDigit(ch.charCodeAt(0))) {\n\t var octToDec = this.octalToDecimal(ch);\n\t octal = octToDec.octal || octal;\n\t str += String.fromCharCode(octToDec.code);\n\t }\n\t else {\n\t str += ch;\n\t }\n\t break;\n\t }\n\t }\n\t else {\n\t ++this.lineNumber;\n\t if (ch === '\\r' && this.source[this.index] === '\\n') {\n\t ++this.index;\n\t }\n\t this.lineStart = this.index;\n\t }\n\t }\n\t else if (character_1.Character.isLineTerminator(ch.charCodeAt(0))) {\n\t break;\n\t }\n\t else {\n\t str += ch;\n\t }\n\t }\n\t if (quote !== '') {\n\t this.index = start;\n\t this.throwUnexpectedToken();\n\t }\n\t return {\n\t type: 8 /* StringLiteral */,\n\t value: str,\n\t octal: octal,\n\t lineNumber: this.lineNumber,\n\t lineStart: this.lineStart,\n\t start: start,\n\t end: this.index\n\t };\n\t };\n\t // https://tc39.github.io/ecma262/#sec-template-literal-lexical-components\n\t Scanner.prototype.scanTemplate = function () {\n\t var cooked = '';\n\t var terminated = false;\n\t var start = this.index;\n\t var head = (this.source[start] === '`');\n\t var tail = false;\n\t var rawOffset = 2;\n\t ++this.index;\n\t while (!this.eof()) {\n\t var ch = this.source[this.index++];\n\t if (ch === '`') {\n\t rawOffset = 1;\n\t tail = true;\n\t terminated = true;\n\t break;\n\t }\n\t else if (ch === '$') {\n\t if (this.source[this.index] === '{') {\n\t this.curlyStack.push('${');\n\t ++this.index;\n\t terminated = true;\n\t break;\n\t }\n\t cooked += ch;\n\t }\n\t else if (ch === '\\\\') {\n\t ch = this.source[this.index++];\n\t if (!character_1.Character.isLineTerminator(ch.charCodeAt(0))) {\n\t switch (ch) {\n\t case 'n':\n\t cooked += '\\n';\n\t break;\n\t case 'r':\n\t cooked += '\\r';\n\t break;\n\t case 't':\n\t cooked += '\\t';\n\t break;\n\t case 'u':\n\t if (this.source[this.index] === '{') {\n\t ++this.index;\n\t cooked += this.scanUnicodeCodePointEscape();\n\t }\n\t else {\n\t var restore = this.index;\n\t var unescaped_2 = this.scanHexEscape(ch);\n\t if (unescaped_2 !== null) {\n\t cooked += unescaped_2;\n\t }\n\t else {\n\t this.index = restore;\n\t cooked += ch;\n\t }\n\t }\n\t break;\n\t case 'x':\n\t var unescaped = this.scanHexEscape(ch);\n\t if (unescaped === null) {\n\t this.throwUnexpectedToken(messages_1.Messages.InvalidHexEscapeSequence);\n\t }\n\t cooked += unescaped;\n\t break;\n\t case 'b':\n\t cooked += '\\b';\n\t break;\n\t case 'f':\n\t cooked += '\\f';\n\t break;\n\t case 'v':\n\t cooked += '\\v';\n\t break;\n\t default:\n\t if (ch === '0') {\n\t if (character_1.Character.isDecimalDigit(this.source.charCodeAt(this.index))) {\n\t // Illegal: \\01 \\02 and so on\n\t this.throwUnexpectedToken(messages_1.Messages.TemplateOctalLiteral);\n\t }\n\t cooked += '\\0';\n\t }\n\t else if (character_1.Character.isOctalDigit(ch.charCodeAt(0))) {\n\t // Illegal: \\1 \\2\n\t this.throwUnexpectedToken(messages_1.Messages.TemplateOctalLiteral);\n\t }\n\t else {\n\t cooked += ch;\n\t }\n\t break;\n\t }\n\t }\n\t else {\n\t ++this.lineNumber;\n\t if (ch === '\\r' && this.source[this.index] === '\\n') {\n\t ++this.index;\n\t }\n\t this.lineStart = this.index;\n\t }\n\t }\n\t else if (character_1.Character.isLineTerminator(ch.charCodeAt(0))) {\n\t ++this.lineNumber;\n\t if (ch === '\\r' && this.source[this.index] === '\\n') {\n\t ++this.index;\n\t }\n\t this.lineStart = this.index;\n\t cooked += '\\n';\n\t }\n\t else {\n\t cooked += ch;\n\t }\n\t }\n\t if (!terminated) {\n\t this.throwUnexpectedToken();\n\t }\n\t if (!head) {\n\t this.curlyStack.pop();\n\t }\n\t return {\n\t type: 10 /* Template */,\n\t value: this.source.slice(start + 1, this.index - rawOffset),\n\t cooked: cooked,\n\t head: head,\n\t tail: tail,\n\t lineNumber: this.lineNumber,\n\t lineStart: this.lineStart,\n\t start: start,\n\t end: this.index\n\t };\n\t };\n\t // https://tc39.github.io/ecma262/#sec-literals-regular-expression-literals\n\t Scanner.prototype.testRegExp = function (pattern, flags) {\n\t // The BMP character to use as a replacement for astral symbols when\n\t // translating an ES6 \"u\"-flagged pattern to an ES5-compatible\n\t // approximation.\n\t // Note: replacing with '\\uFFFF' enables false positives in unlikely\n\t // scenarios. For example, `[\\u{1044f}-\\u{10440}]` is an invalid\n\t // pattern that would not be detected by this substitution.\n\t var astralSubstitute = '\\uFFFF';\n\t var tmp = pattern;\n\t var self = this;\n\t if (flags.indexOf('u') >= 0) {\n\t tmp = tmp\n\t .replace(/\\\\u\\{([0-9a-fA-F]+)\\}|\\\\u([a-fA-F0-9]{4})/g, function ($0, $1, $2) {\n\t var codePoint = parseInt($1 || $2, 16);\n\t if (codePoint > 0x10FFFF) {\n\t self.throwUnexpectedToken(messages_1.Messages.InvalidRegExp);\n\t }\n\t if (codePoint <= 0xFFFF) {\n\t return String.fromCharCode(codePoint);\n\t }\n\t return astralSubstitute;\n\t })\n\t .replace(/[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g, astralSubstitute);\n\t }\n\t // First, detect invalid regular expressions.\n\t try {\n\t RegExp(tmp);\n\t }\n\t catch (e) {\n\t this.throwUnexpectedToken(messages_1.Messages.InvalidRegExp);\n\t }\n\t // Return a regular expression object for this pattern-flag pair, or\n\t // `null` in case the current environment doesn't support the flags it\n\t // uses.\n\t try {\n\t return new RegExp(pattern, flags);\n\t }\n\t catch (exception) {\n\t /* istanbul ignore next */\n\t return null;\n\t }\n\t };\n\t Scanner.prototype.scanRegExpBody = function () {\n\t var ch = this.source[this.index];\n\t assert_1.assert(ch === '/', 'Regular expression literal must start with a slash');\n\t var str = this.source[this.index++];\n\t var classMarker = false;\n\t var terminated = false;\n\t while (!this.eof()) {\n\t ch = this.source[this.index++];\n\t str += ch;\n\t if (ch === '\\\\') {\n\t ch = this.source[this.index++];\n\t // https://tc39.github.io/ecma262/#sec-literals-regular-expression-literals\n\t if (character_1.Character.isLineTerminator(ch.charCodeAt(0))) {\n\t this.throwUnexpectedToken(messages_1.Messages.UnterminatedRegExp);\n\t }\n\t str += ch;\n\t }\n\t else if (character_1.Character.isLineTerminator(ch.charCodeAt(0))) {\n\t this.throwUnexpectedToken(messages_1.Messages.UnterminatedRegExp);\n\t }\n\t else if (classMarker) {\n\t if (ch === ']') {\n\t classMarker = false;\n\t }\n\t }\n\t else {\n\t if (ch === '/') {\n\t terminated = true;\n\t break;\n\t }\n\t else if (ch === '[') {\n\t classMarker = true;\n\t }\n\t }\n\t }\n\t if (!terminated) {\n\t this.throwUnexpectedToken(messages_1.Messages.UnterminatedRegExp);\n\t }\n\t // Exclude leading and trailing slash.\n\t return str.substr(1, str.length - 2);\n\t };\n\t Scanner.prototype.scanRegExpFlags = function () {\n\t var str = '';\n\t var flags = '';\n\t while (!this.eof()) {\n\t var ch = this.source[this.index];\n\t if (!character_1.Character.isIdentifierPart(ch.charCodeAt(0))) {\n\t break;\n\t }\n\t ++this.index;\n\t if (ch === '\\\\' && !this.eof()) {\n\t ch = this.source[this.index];\n\t if (ch === 'u') {\n\t ++this.index;\n\t var restore = this.index;\n\t var char = this.scanHexEscape('u');\n\t if (char !== null) {\n\t flags += char;\n\t for (str += '\\\\u'; restore < this.index; ++restore) {\n\t str += this.source[restore];\n\t }\n\t }\n\t else {\n\t this.index = restore;\n\t flags += 'u';\n\t str += '\\\\u';\n\t }\n\t this.tolerateUnexpectedToken();\n\t }\n\t else {\n\t str += '\\\\';\n\t this.tolerateUnexpectedToken();\n\t }\n\t }\n\t else {\n\t flags += ch;\n\t str += ch;\n\t }\n\t }\n\t return flags;\n\t };\n\t Scanner.prototype.scanRegExp = function () {\n\t var start = this.index;\n\t var pattern = this.scanRegExpBody();\n\t var flags = this.scanRegExpFlags();\n\t var value = this.testRegExp(pattern, flags);\n\t return {\n\t type: 9 /* RegularExpression */,\n\t value: '',\n\t pattern: pattern,\n\t flags: flags,\n\t regex: value,\n\t lineNumber: this.lineNumber,\n\t lineStart: this.lineStart,\n\t start: start,\n\t end: this.index\n\t };\n\t };\n\t Scanner.prototype.lex = function () {\n\t if (this.eof()) {\n\t return {\n\t type: 2 /* EOF */,\n\t value: '',\n\t lineNumber: this.lineNumber,\n\t lineStart: this.lineStart,\n\t start: this.index,\n\t end: this.index\n\t };\n\t }\n\t var cp = this.source.charCodeAt(this.index);\n\t if (character_1.Character.isIdentifierStart(cp)) {\n\t return this.scanIdentifier();\n\t }\n\t // Very common: ( and ) and ;\n\t if (cp === 0x28 || cp === 0x29 || cp === 0x3B) {\n\t return this.scanPunctuator();\n\t }\n\t // String literal starts with single quote (U+0027) or double quote (U+0022).\n\t if (cp === 0x27 || cp === 0x22) {\n\t return this.scanStringLiteral();\n\t }\n\t // Dot (.) U+002E can also start a floating-point number, hence the need\n\t // to check the next character.\n\t if (cp === 0x2E) {\n\t if (character_1.Character.isDecimalDigit(this.source.charCodeAt(this.index + 1))) {\n\t return this.scanNumericLiteral();\n\t }\n\t return this.scanPunctuator();\n\t }\n\t if (character_1.Character.isDecimalDigit(cp)) {\n\t return this.scanNumericLiteral();\n\t }\n\t // Template literals start with ` (U+0060) for template head\n\t // or } (U+007D) for template middle or template tail.\n\t if (cp === 0x60 || (cp === 0x7D && this.curlyStack[this.curlyStack.length - 1] === '${')) {\n\t return this.scanTemplate();\n\t }\n\t // Possible identifier start in a surrogate pair.\n\t if (cp >= 0xD800 && cp < 0xDFFF) {\n\t if (character_1.Character.isIdentifierStart(this.codePointAt(this.index))) {\n\t return this.scanIdentifier();\n\t }\n\t }\n\t return this.scanPunctuator();\n\t };\n\t return Scanner;\n\t}());\n\texports.Scanner = Scanner;\n\n\n/***/ },\n/* 13 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\texports.TokenName = {};\n\texports.TokenName[1 /* BooleanLiteral */] = 'Boolean';\n\texports.TokenName[2 /* EOF */] = '<end>';\n\texports.TokenName[3 /* Identifier */] = 'Identifier';\n\texports.TokenName[4 /* Keyword */] = 'Keyword';\n\texports.TokenName[5 /* NullLiteral */] = 'Null';\n\texports.TokenName[6 /* NumericLiteral */] = 'Numeric';\n\texports.TokenName[7 /* Punctuator */] = 'Punctuator';\n\texports.TokenName[8 /* StringLiteral */] = 'String';\n\texports.TokenName[9 /* RegularExpression */] = 'RegularExpression';\n\texports.TokenName[10 /* Template */] = 'Template';\n\n\n/***/ },\n/* 14 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t// Generated by generate-xhtml-entities.js. DO NOT MODIFY!\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\texports.XHTMLEntities = {\n\t quot: '\\u0022',\n\t amp: '\\u0026',\n\t apos: '\\u0027',\n\t gt: '\\u003E',\n\t nbsp: '\\u00A0',\n\t iexcl: '\\u00A1',\n\t cent: '\\u00A2',\n\t pound: '\\u00A3',\n\t curren: '\\u00A4',\n\t yen: '\\u00A5',\n\t brvbar: '\\u00A6',\n\t sect: '\\u00A7',\n\t uml: '\\u00A8',\n\t copy: '\\u00A9',\n\t ordf: '\\u00AA',\n\t laquo: '\\u00AB',\n\t not: '\\u00AC',\n\t shy: '\\u00AD',\n\t reg: '\\u00AE',\n\t macr: '\\u00AF',\n\t deg: '\\u00B0',\n\t plusmn: '\\u00B1',\n\t sup2: '\\u00B2',\n\t sup3: '\\u00B3',\n\t acute: '\\u00B4',\n\t micro: '\\u00B5',\n\t para: '\\u00B6',\n\t middot: '\\u00B7',\n\t cedil: '\\u00B8',\n\t sup1: '\\u00B9',\n\t ordm: '\\u00BA',\n\t raquo: '\\u00BB',\n\t frac14: '\\u00BC',\n\t frac12: '\\u00BD',\n\t frac34: '\\u00BE',\n\t iquest: '\\u00BF',\n\t Agrave: '\\u00C0',\n\t Aacute: '\\u00C1',\n\t Acirc: '\\u00C2',\n\t Atilde: '\\u00C3',\n\t Auml: '\\u00C4',\n\t Aring: '\\u00C5',\n\t AElig: '\\u00C6',\n\t Ccedil: '\\u00C7',\n\t Egrave: '\\u00C8',\n\t Eacute: '\\u00C9',\n\t Ecirc: '\\u00CA',\n\t Euml: '\\u00CB',\n\t Igrave: '\\u00CC',\n\t Iacute: '\\u00CD',\n\t Icirc: '\\u00CE',\n\t Iuml: '\\u00CF',\n\t ETH: '\\u00D0',\n\t Ntilde: '\\u00D1',\n\t Ograve: '\\u00D2',\n\t Oacute: '\\u00D3',\n\t Ocirc: '\\u00D4',\n\t Otilde: '\\u00D5',\n\t Ouml: '\\u00D6',\n\t times: '\\u00D7',\n\t Oslash: '\\u00D8',\n\t Ugrave: '\\u00D9',\n\t Uacute: '\\u00DA',\n\t Ucirc: '\\u00DB',\n\t Uuml: '\\u00DC',\n\t Yacute: '\\u00DD',\n\t THORN: '\\u00DE',\n\t szlig: '\\u00DF',\n\t agrave: '\\u00E0',\n\t aacute: '\\u00E1',\n\t acirc: '\\u00E2',\n\t atilde: '\\u00E3',\n\t auml: '\\u00E4',\n\t aring: '\\u00E5',\n\t aelig: '\\u00E6',\n\t ccedil: '\\u00E7',\n\t egrave: '\\u00E8',\n\t eacute: '\\u00E9',\n\t ecirc: '\\u00EA',\n\t euml: '\\u00EB',\n\t igrave: '\\u00EC',\n\t iacute: '\\u00ED',\n\t icirc: '\\u00EE',\n\t iuml: '\\u00EF',\n\t eth: '\\u00F0',\n\t ntilde: '\\u00F1',\n\t ograve: '\\u00F2',\n\t oacute: '\\u00F3',\n\t ocirc: '\\u00F4',\n\t otilde: '\\u00F5',\n\t ouml: '\\u00F6',\n\t divide: '\\u00F7',\n\t oslash: '\\u00F8',\n\t ugrave: '\\u00F9',\n\t uacute: '\\u00FA',\n\t ucirc: '\\u00FB',\n\t uuml: '\\u00FC',\n\t yacute: '\\u00FD',\n\t thorn: '\\u00FE',\n\t yuml: '\\u00FF',\n\t OElig: '\\u0152',\n\t oelig: '\\u0153',\n\t Scaron: '\\u0160',\n\t scaron: '\\u0161',\n\t Yuml: '\\u0178',\n\t fnof: '\\u0192',\n\t circ: '\\u02C6',\n\t tilde: '\\u02DC',\n\t Alpha: '\\u0391',\n\t Beta: '\\u0392',\n\t Gamma: '\\u0393',\n\t Delta: '\\u0394',\n\t Epsilon: '\\u0395',\n\t Zeta: '\\u0396',\n\t Eta: '\\u0397',\n\t Theta: '\\u0398',\n\t Iota: '\\u0399',\n\t Kappa: '\\u039A',\n\t Lambda: '\\u039B',\n\t Mu: '\\u039C',\n\t Nu: '\\u039D',\n\t Xi: '\\u039E',\n\t Omicron: '\\u039F',\n\t Pi: '\\u03A0',\n\t Rho: '\\u03A1',\n\t Sigma: '\\u03A3',\n\t Tau: '\\u03A4',\n\t Upsilon: '\\u03A5',\n\t Phi: '\\u03A6',\n\t Chi: '\\u03A7',\n\t Psi: '\\u03A8',\n\t Omega: '\\u03A9',\n\t alpha: '\\u03B1',\n\t beta: '\\u03B2',\n\t gamma: '\\u03B3',\n\t delta: '\\u03B4',\n\t epsilon: '\\u03B5',\n\t zeta: '\\u03B6',\n\t eta: '\\u03B7',\n\t theta: '\\u03B8',\n\t iota: '\\u03B9',\n\t kappa: '\\u03BA',\n\t lambda: '\\u03BB',\n\t mu: '\\u03BC',\n\t nu: '\\u03BD',\n\t xi: '\\u03BE',\n\t omicron: '\\u03BF',\n\t pi: '\\u03C0',\n\t rho: '\\u03C1',\n\t sigmaf: '\\u03C2',\n\t sigma: '\\u03C3',\n\t tau: '\\u03C4',\n\t upsilon: '\\u03C5',\n\t phi: '\\u03C6',\n\t chi: '\\u03C7',\n\t psi: '\\u03C8',\n\t omega: '\\u03C9',\n\t thetasym: '\\u03D1',\n\t upsih: '\\u03D2',\n\t piv: '\\u03D6',\n\t ensp: '\\u2002',\n\t emsp: '\\u2003',\n\t thinsp: '\\u2009',\n\t zwnj: '\\u200C',\n\t zwj: '\\u200D',\n\t lrm: '\\u200E',\n\t rlm: '\\u200F',\n\t ndash: '\\u2013',\n\t mdash: '\\u2014',\n\t lsquo: '\\u2018',\n\t rsquo: '\\u2019',\n\t sbquo: '\\u201A',\n\t ldquo: '\\u201C',\n\t rdquo: '\\u201D',\n\t bdquo: '\\u201E',\n\t dagger: '\\u2020',\n\t Dagger: '\\u2021',\n\t bull: '\\u2022',\n\t hellip: '\\u2026',\n\t permil: '\\u2030',\n\t prime: '\\u2032',\n\t Prime: '\\u2033',\n\t lsaquo: '\\u2039',\n\t rsaquo: '\\u203A',\n\t oline: '\\u203E',\n\t frasl: '\\u2044',\n\t euro: '\\u20AC',\n\t image: '\\u2111',\n\t weierp: '\\u2118',\n\t real: '\\u211C',\n\t trade: '\\u2122',\n\t alefsym: '\\u2135',\n\t larr: '\\u2190',\n\t uarr: '\\u2191',\n\t rarr: '\\u2192',\n\t darr: '\\u2193',\n\t harr: '\\u2194',\n\t crarr: '\\u21B5',\n\t lArr: '\\u21D0',\n\t uArr: '\\u21D1',\n\t rArr: '\\u21D2',\n\t dArr: '\\u21D3',\n\t hArr: '\\u21D4',\n\t forall: '\\u2200',\n\t part: '\\u2202',\n\t exist: '\\u2203',\n\t empty: '\\u2205',\n\t nabla: '\\u2207',\n\t isin: '\\u2208',\n\t notin: '\\u2209',\n\t ni: '\\u220B',\n\t prod: '\\u220F',\n\t sum: '\\u2211',\n\t minus: '\\u2212',\n\t lowast: '\\u2217',\n\t radic: '\\u221A',\n\t prop: '\\u221D',\n\t infin: '\\u221E',\n\t ang: '\\u2220',\n\t and: '\\u2227',\n\t or: '\\u2228',\n\t cap: '\\u2229',\n\t cup: '\\u222A',\n\t int: '\\u222B',\n\t there4: '\\u2234',\n\t sim: '\\u223C',\n\t cong: '\\u2245',\n\t asymp: '\\u2248',\n\t ne: '\\u2260',\n\t equiv: '\\u2261',\n\t le: '\\u2264',\n\t ge: '\\u2265',\n\t sub: '\\u2282',\n\t sup: '\\u2283',\n\t nsub: '\\u2284',\n\t sube: '\\u2286',\n\t supe: '\\u2287',\n\t oplus: '\\u2295',\n\t otimes: '\\u2297',\n\t perp: '\\u22A5',\n\t sdot: '\\u22C5',\n\t lceil: '\\u2308',\n\t rceil: '\\u2309',\n\t lfloor: '\\u230A',\n\t rfloor: '\\u230B',\n\t loz: '\\u25CA',\n\t spades: '\\u2660',\n\t clubs: '\\u2663',\n\t hearts: '\\u2665',\n\t diams: '\\u2666',\n\t lang: '\\u27E8',\n\t rang: '\\u27E9'\n\t};\n\n\n/***/ },\n/* 15 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar error_handler_1 = __webpack_require__(10);\n\tvar scanner_1 = __webpack_require__(12);\n\tvar token_1 = __webpack_require__(13);\n\tvar Reader = (function () {\n\t function Reader() {\n\t this.values = [];\n\t this.curly = this.paren = -1;\n\t }\n\t // A function following one of those tokens is an expression.\n\t Reader.prototype.beforeFunctionExpression = function (t) {\n\t return ['(', '{', '[', 'in', 'typeof', 'instanceof', 'new',\n\t 'return', 'case', 'delete', 'throw', 'void',\n\t // assignment operators\n\t '=', '+=', '-=', '*=', '**=', '/=', '%=', '<<=', '>>=', '>>>=',\n\t '&=', '|=', '^=', ',',\n\t // binary/unary operators\n\t '+', '-', '*', '**', '/', '%', '++', '--', '<<', '>>', '>>>', '&',\n\t '|', '^', '!', '~', '&&', '||', '?', ':', '===', '==', '>=',\n\t '<=', '<', '>', '!=', '!=='].indexOf(t) >= 0;\n\t };\n\t // Determine if forward slash (/) is an operator or part of a regular expression\n\t // https://github.com/mozilla/sweet.js/wiki/design\n\t Reader.prototype.isRegexStart = function () {\n\t var previous = this.values[this.values.length - 1];\n\t var regex = (previous !== null);\n\t switch (previous) {\n\t case 'this':\n\t case ']':\n\t regex = false;\n\t break;\n\t case ')':\n\t var keyword = this.values[this.paren - 1];\n\t regex = (keyword === 'if' || keyword === 'while' || keyword === 'for' || keyword === 'with');\n\t break;\n\t case '}':\n\t // Dividing a function by anything makes little sense,\n\t // but we have to check for that.\n\t regex = false;\n\t if (this.values[this.curly - 3] === 'function') {\n\t // Anonymous function, e.g. function(){} /42\n\t var check = this.values[this.curly - 4];\n\t regex = check ? !this.beforeFunctionExpression(check) : false;\n\t }\n\t else if (this.values[this.curly - 4] === 'function') {\n\t // Named function, e.g. function f(){} /42/\n\t var check = this.values[this.curly - 5];\n\t regex = check ? !this.beforeFunctionExpression(check) : true;\n\t }\n\t break;\n\t default:\n\t break;\n\t }\n\t return regex;\n\t };\n\t Reader.prototype.push = function (token) {\n\t if (token.type === 7 /* Punctuator */ || token.type === 4 /* Keyword */) {\n\t if (token.value === '{') {\n\t this.curly = this.values.length;\n\t }\n\t else if (token.value === '(') {\n\t this.paren = this.values.length;\n\t }\n\t this.values.push(token.value);\n\t }\n\t else {\n\t this.values.push(null);\n\t }\n\t };\n\t return Reader;\n\t}());\n\tvar Tokenizer = (function () {\n\t function Tokenizer(code, config) {\n\t this.errorHandler = new error_handler_1.ErrorHandler();\n\t this.errorHandler.tolerant = config ? (typeof config.tolerant === 'boolean' && config.tolerant) : false;\n\t this.scanner = new scanner_1.Scanner(code, this.errorHandler);\n\t this.scanner.trackComment = config ? (typeof config.comment === 'boolean' && config.comment) : false;\n\t this.trackRange = config ? (typeof config.range === 'boolean' && config.range) : false;\n\t this.trackLoc = config ? (typeof config.loc === 'boolean' && config.loc) : false;\n\t this.buffer = [];\n\t this.reader = new Reader();\n\t }\n\t Tokenizer.prototype.errors = function () {\n\t return this.errorHandler.errors;\n\t };\n\t Tokenizer.prototype.getNextToken = function () {\n\t if (this.buffer.length === 0) {\n\t var comments = this.scanner.scanComments();\n\t if (this.scanner.trackComment) {\n\t for (var i = 0; i < comments.length; ++i) {\n\t var e = comments[i];\n\t var value = this.scanner.source.slice(e.slice[0], e.slice[1]);\n\t var comment = {\n\t type: e.multiLine ? 'BlockComment' : 'LineComment',\n\t value: value\n\t };\n\t if (this.trackRange) {\n\t comment.range = e.range;\n\t }\n\t if (this.trackLoc) {\n\t comment.loc = e.loc;\n\t }\n\t this.buffer.push(comment);\n\t }\n\t }\n\t if (!this.scanner.eof()) {\n\t var loc = void 0;\n\t if (this.trackLoc) {\n\t loc = {\n\t start: {\n\t line: this.scanner.lineNumber,\n\t column: this.scanner.index - this.scanner.lineStart\n\t },\n\t end: {}\n\t };\n\t }\n\t var startRegex = (this.scanner.source[this.scanner.index] === '/') && this.reader.isRegexStart();\n\t var token = startRegex ? this.scanner.scanRegExp() : this.scanner.lex();\n\t this.reader.push(token);\n\t var entry = {\n\t type: token_1.TokenName[token.type],\n\t value: this.scanner.source.slice(token.start, token.end)\n\t };\n\t if (this.trackRange) {\n\t entry.range = [token.start, token.end];\n\t }\n\t if (this.trackLoc) {\n\t loc.end = {\n\t line: this.scanner.lineNumber,\n\t column: this.scanner.index - this.scanner.lineStart\n\t };\n\t entry.loc = loc;\n\t }\n\t if (token.type === 9 /* RegularExpression */) {\n\t var pattern = token.pattern;\n\t var flags = token.flags;\n\t entry.regex = { pattern: pattern, flags: flags };\n\t }\n\t this.buffer.push(entry);\n\t }\n\t }\n\t return this.buffer.shift();\n\t };\n\t return Tokenizer;\n\t}());\n\texports.Tokenizer = Tokenizer;\n\n\n/***/ }\n/******/ ])\n});\n;","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\n\nfunction isArray(arg) {\n if (Array.isArray) {\n return Array.isArray(arg);\n }\n return objectToString(arg) === '[object Array]';\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n return (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = require('buffer').Buffer.isBuffer;\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh <https://feross.org>\n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nconst base64 = require('base64-js')\nconst ieee754 = require('ieee754')\nconst customInspectSymbol =\n (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n : null\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nconst K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n typeof console.error === 'function') {\n console.error(\n 'This browser lacks typed array (Uint8Array) support which is required by ' +\n '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n )\n}\n\nfunction typedArraySupport () {\n // Can typed array instances can be augmented?\n try {\n const arr = new Uint8Array(1)\n const proto = { foo: function () { return 42 } }\n Object.setPrototypeOf(proto, Uint8Array.prototype)\n Object.setPrototypeOf(arr, proto)\n return arr.foo() === 42\n } catch (e) {\n return false\n }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.buffer\n }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.byteOffset\n }\n})\n\nfunction createBuffer (length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n }\n // Return an augmented `Uint8Array` instance\n const buf = new Uint8Array(length)\n Object.setPrototypeOf(buf, Buffer.prototype)\n return buf\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new TypeError(\n 'The \"string\" argument must be of type string. Received type number'\n )\n }\n return allocUnsafe(arg)\n }\n return from(arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction from (value, encodingOrOffset, length) {\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value)\n }\n\n if (value == null) {\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n }\n\n if (isInstance(value, ArrayBuffer) ||\n (value && isInstance(value.buffer, ArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof SharedArrayBuffer !== 'undefined' &&\n (isInstance(value, SharedArrayBuffer) ||\n (value && isInstance(value.buffer, SharedArrayBuffer)))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'number') {\n throw new TypeError(\n 'The \"value\" argument must not be of type number. Received type number'\n )\n }\n\n const valueOf = value.valueOf && value.valueOf()\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length)\n }\n\n const b = fromObject(value)\n if (b) return b\n\n if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n typeof value[Symbol.toPrimitive] === 'function') {\n return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length)\n }\n\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype)\nObject.setPrototypeOf(Buffer, Uint8Array)\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be of type number')\n } else if (size < 0) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n}\n\nfunction alloc (size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpreted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(size).fill(fill, encoding)\n : createBuffer(size).fill(fill)\n }\n return createBuffer(size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n assertSize(size)\n return createBuffer(size < 0 ? 0 : checked(size) | 0)\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(size)\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n\n const length = byteLength(string, encoding) | 0\n let buf = createBuffer(length)\n\n const actual = buf.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n buf = buf.slice(0, actual)\n }\n\n return buf\n}\n\nfunction fromArrayLike (array) {\n const length = array.length < 0 ? 0 : checked(array.length) | 0\n const buf = createBuffer(length)\n for (let i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayView (arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n const copy = new Uint8Array(arrayView)\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n }\n return fromArrayLike(arrayView)\n}\n\nfunction fromArrayBuffer (array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\"offset\" is outside of buffer bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\"length\" is outside of buffer bounds')\n }\n\n let buf\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array)\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset)\n } else {\n buf = new Uint8Array(array, byteOffset, length)\n }\n\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(buf, Buffer.prototype)\n\n return buf\n}\n\nfunction fromObject (obj) {\n if (Buffer.isBuffer(obj)) {\n const len = checked(obj.length) | 0\n const buf = createBuffer(len)\n\n if (buf.length === 0) {\n return buf\n }\n\n obj.copy(buf, 0, 0, len)\n return buf\n }\n\n if (obj.length !== undefined) {\n if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n return createBuffer(0)\n }\n return fromArrayLike(obj)\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data)\n }\n}\n\nfunction checked (length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return b != null && b._isBuffer === true &&\n b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n}\n\nBuffer.compare = function compare (a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength)\n if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength)\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError(\n 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n )\n }\n\n if (a === b) return 0\n\n let x = a.length\n let y = b.length\n\n for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n let i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n const buffer = Buffer.allocUnsafe(length)\n let pos = 0\n for (i = 0; i < list.length; ++i) {\n let buf = list[i]\n if (isInstance(buf, Uint8Array)) {\n if (pos + buf.length > buffer.length) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n buf.copy(buffer, pos)\n } else {\n Uint8Array.prototype.set.call(\n buffer,\n buf,\n pos\n )\n }\n } else if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n } else {\n buf.copy(buffer, pos)\n }\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n throw new TypeError(\n 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n 'Received type ' + typeof string\n )\n }\n\n const len = string.length\n const mustMatch = (arguments.length > 2 && arguments[2] === true)\n if (!mustMatch && len === 0) return 0\n\n // Use a for loop to avoid recursion\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n }\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n let loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n const i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n const len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (let i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n const len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (let i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n const len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (let i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n const length = this.length\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.toLocaleString = Buffer.prototype.toString\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n let str = ''\n const max = exports.INSPECT_MAX_BYTES\n str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim()\n if (this.length > max) str += ' ... '\n return '<Buffer ' + str + '>'\n}\nif (customInspectSymbol) {\n Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer.from(target, target.offset, target.byteLength)\n }\n if (!Buffer.isBuffer(target)) {\n throw new TypeError(\n 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n 'Received type ' + (typeof target)\n )\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n let x = thisEnd - thisStart\n let y = end - start\n const len = Math.min(x, y)\n\n const thisCopy = this.slice(thisStart, thisEnd)\n const targetCopy = target.slice(start, end)\n\n for (let i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (numberIsNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n let indexSize = 1\n let arrLength = arr.length\n let valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n let i\n if (dir) {\n let foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n let found = true\n for (let j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n const remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n const strLen = string.length\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n let i\n for (i = 0; i < length; ++i) {\n const parsed = parseInt(string.substr(i * 2, 2), 16)\n if (numberIsNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset >>> 0\n if (isFinite(length)) {\n length = length >>> 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n const remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n case 'latin1':\n case 'binary':\n return asciiWrite(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n const res = []\n\n let i = start\n while (i < end) {\n const firstByte = buf[i]\n let codePoint = null\n let bytesPerSequence = (firstByte > 0xEF)\n ? 4\n : (firstByte > 0xDF)\n ? 3\n : (firstByte > 0xBF)\n ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n let secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nconst MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n const len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n let res = ''\n let i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n const len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n let out = ''\n for (let i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]]\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n const bytes = buf.slice(start, end)\n let res = ''\n // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n for (let i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256))\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n const len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n const newBuf = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(newBuf, Buffer.prototype)\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUintLE =\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUintBE =\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n let val = this[offset + --byteLength]\n let mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUint8 =\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUint16LE =\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUint16BE =\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUint32LE =\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUint32BE =\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const lo = first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24\n\n const hi = this[++offset] +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n last * 2 ** 24\n\n return BigInt(lo) + (BigInt(hi) << BigInt(32))\n})\n\nBuffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const hi = first * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n const lo = this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last\n\n return (BigInt(hi) << BigInt(32)) + BigInt(lo)\n})\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let i = byteLength\n let mul = 1\n let val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = this[offset + 4] +\n this[offset + 5] * 2 ** 8 +\n this[offset + 6] * 2 ** 16 +\n (last << 24) // Overflow\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24)\n})\n\nBuffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = (first << 24) + // Overflow\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last)\n})\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUintLE =\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let mul = 1\n let i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUintBE =\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let i = byteLength - 1\n let mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUint8 =\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeUint16LE =\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeUint16BE =\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeUint32LE =\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeUint32BE =\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nfunction wrtBigUInt64LE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n return offset\n}\n\nfunction wrtBigUInt64BE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset + 7] = lo\n lo = lo >> 8\n buf[offset + 6] = lo\n lo = lo >> 8\n buf[offset + 5] = lo\n lo = lo >> 8\n buf[offset + 4] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset + 3] = hi\n hi = hi >> 8\n buf[offset + 2] = hi\n hi = hi >> 8\n buf[offset + 1] = hi\n hi = hi >> 8\n buf[offset] = hi\n return offset + 8\n}\n\nBuffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = 0\n let mul = 1\n let sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = byteLength - 1\n let mul = 1\n let sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nBuffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n const len = end - start\n\n if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n // Use built-in when available, missing from IE11\n this.copyWithin(targetStart, start, end)\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, end),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n if (val.length === 1) {\n const code = val.charCodeAt(0)\n if ((encoding === 'utf8' && code < 128) ||\n encoding === 'latin1') {\n // Fast path: If `val` fits into a single byte, use that numeric value.\n val = code\n }\n }\n } else if (typeof val === 'number') {\n val = val & 255\n } else if (typeof val === 'boolean') {\n val = Number(val)\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n let i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n const bytes = Buffer.isBuffer(val)\n ? val\n : Buffer.from(val, encoding)\n const len = bytes.length\n if (len === 0) {\n throw new TypeError('The value \"' + val +\n '\" is invalid for argument \"value\"')\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// CUSTOM ERRORS\n// =============\n\n// Simplified versions from Node, changed for Buffer-only usage\nconst errors = {}\nfunction E (sym, getMessage, Base) {\n errors[sym] = class NodeError extends Base {\n constructor () {\n super()\n\n Object.defineProperty(this, 'message', {\n value: getMessage.apply(this, arguments),\n writable: true,\n configurable: true\n })\n\n // Add the error code to the name to include it in the stack trace.\n this.name = `${this.name} [${sym}]`\n // Access the stack to generate the error message including the error code\n // from the name.\n this.stack // eslint-disable-line no-unused-expressions\n // Reset the name to the actual name.\n delete this.name\n }\n\n get code () {\n return sym\n }\n\n set code (value) {\n Object.defineProperty(this, 'code', {\n configurable: true,\n enumerable: true,\n value,\n writable: true\n })\n }\n\n toString () {\n return `${this.name} [${sym}]: ${this.message}`\n }\n }\n}\n\nE('ERR_BUFFER_OUT_OF_BOUNDS',\n function (name) {\n if (name) {\n return `${name} is outside of buffer bounds`\n }\n\n return 'Attempt to access memory outside buffer bounds'\n }, RangeError)\nE('ERR_INVALID_ARG_TYPE',\n function (name, actual) {\n return `The \"${name}\" argument must be of type number. Received type ${typeof actual}`\n }, TypeError)\nE('ERR_OUT_OF_RANGE',\n function (str, range, input) {\n let msg = `The value of \"${str}\" is out of range.`\n let received = input\n if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n received = addNumericalSeparator(String(input))\n } else if (typeof input === 'bigint') {\n received = String(input)\n if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n received = addNumericalSeparator(received)\n }\n received += 'n'\n }\n msg += ` It must be ${range}. Received ${received}`\n return msg\n }, RangeError)\n\nfunction addNumericalSeparator (val) {\n let res = ''\n let i = val.length\n const start = val[0] === '-' ? 1 : 0\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`\n }\n return `${val.slice(0, i)}${res}`\n}\n\n// CHECK FUNCTIONS\n// ===============\n\nfunction checkBounds (buf, offset, byteLength) {\n validateNumber(offset, 'offset')\n if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n boundsError(offset, buf.length - (byteLength + 1))\n }\n}\n\nfunction checkIntBI (value, min, max, buf, offset, byteLength) {\n if (value > max || value < min) {\n const n = typeof min === 'bigint' ? 'n' : ''\n let range\n if (byteLength > 3) {\n if (min === 0 || min === BigInt(0)) {\n range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}`\n } else {\n range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` +\n `${(byteLength + 1) * 8 - 1}${n}`\n }\n } else {\n range = `>= ${min}${n} and <= ${max}${n}`\n }\n throw new errors.ERR_OUT_OF_RANGE('value', range, value)\n }\n checkBounds(buf, offset, byteLength)\n}\n\nfunction validateNumber (value, name) {\n if (typeof value !== 'number') {\n throw new errors.ERR_INVALID_ARG_TYPE(name, 'number', value)\n }\n}\n\nfunction boundsError (value, length, type) {\n if (Math.floor(value) !== value) {\n validateNumber(value, type)\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset', 'an integer', value)\n }\n\n if (length < 0) {\n throw new errors.ERR_BUFFER_OUT_OF_BOUNDS()\n }\n\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset',\n `>= ${type ? 1 : 0} and <= ${length}`,\n value)\n}\n\n// HELPER FUNCTIONS\n// ================\n\nconst INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split('=')[0]\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = str.trim().replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n let codePoint\n const length = string.length\n let leadSurrogate = null\n const bytes = []\n\n for (let i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n let c, hi, lo\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n let i\n for (i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\n// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\nfunction isInstance (obj, type) {\n return obj instanceof type ||\n (obj != null && obj.constructor != null && obj.constructor.name != null &&\n obj.constructor.name === type.name)\n}\nfunction numberIsNaN (obj) {\n // For IE11 support\n return obj !== obj // eslint-disable-line no-self-compare\n}\n\n// Create lookup table for `toString('hex')`\n// See: https://github.com/feross/buffer/issues/219\nconst hexSliceLookupTable = (function () {\n const alphabet = '0123456789abcdef'\n const table = new Array(256)\n for (let i = 0; i < 16; ++i) {\n const i16 = i * 16\n for (let j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j]\n }\n }\n return table\n})()\n\n// Return not function with Error if BigInt not supported\nfunction defineBigIntMethod (fn) {\n return typeof BigInt === 'undefined' ? BufferBigIntNotDefined : fn\n}\n\nfunction BufferBigIntNotDefined () {\n throw new Error('BigInt not supported')\n}\n","/**\n * Default minimum size of a run.\n */\nconst DEFAULT_MIN_MERGE = 32\n\n/**\n * Minimum ordered subsequece required to do galloping.\n */\nconst DEFAULT_MIN_GALLOPING = 7\n\n/**\n * Default tmp storage length. Can increase depending on the size of the\n * smallest run to merge.\n */\nconst DEFAULT_TMP_STORAGE_LENGTH = 256\n\n/**\n * Pre-computed powers of 10 for efficient lexicographic comparison of\n * small integers.\n */\nconst POWERS_OF_TEN = [1e0, 1e1, 1e2, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9]\n\nlet results\n\n/**\n * Estimate the logarithm base 10 of a small integer.\n *\n * @param {number} x - The integer to estimate the logarithm of.\n * @return {number} - The estimated logarithm of the integer.\n */\nconst log10 = x => x < 1e5\n ? x < 1e2\n ? x < 1e1\n ? 0\n : 1\n : x < 1e4\n ? x < 1e3\n ? 2\n : 3\n : 4\n : x < 1e7\n ? x < 1e6\n ? 5\n : 6\n : x < 1e9\n ? x < 1e8\n ? 7\n : 8\n : 9\n\n/**\n * Default alphabetical comparison of items.\n *\n * @param {string|object|number} a - First element to compare.\n * @param {string|object|number} b - Second element to compare.\n * @return {number} - A positive number if a.toString() > b.toString(), a\n * negative number if .toString() < b.toString(), 0 otherwise.\n */\nfunction alphabeticalCompare (a, b) {\n if (a === b) {\n return 0\n }\n\n if (~ ~ a === a && ~ ~ b === b) {\n if (a === 0 || b === 0) {\n return a < b ? - 1 : 1\n }\n\n if (a < 0 || b < 0) {\n if (b >= 0) {\n return - 1\n }\n\n if (a >= 0) {\n return 1\n }\n\n a = - a\n b = - b\n }\n\n const al = log10(a)\n const bl = log10(b)\n\n let t = 0\n\n if (al < bl) {\n a *= POWERS_OF_TEN[bl - al - 1]\n b /= 10\n t = - 1\n } else if (al > bl) {\n b *= POWERS_OF_TEN[al - bl - 1]\n a /= 10\n t = 1\n }\n\n if (a === b) {\n return t\n }\n\n return a < b ? - 1 : 1\n }\n\n const aStr = String(a)\n const bStr = String(b)\n\n if (aStr === bStr) {\n return 0\n }\n\n return aStr < bStr ? - 1 : 1\n}\n\n/**\n * Compute minimum run length for TimSort\n *\n * @param {number} n - The size of the array to sort.\n */\nfunction minRunLength (n) {\n let r = 0\n\n while (n >= DEFAULT_MIN_MERGE) {\n r |= (n & 1)\n n >>= 1\n }\n\n return n + r\n}\n\n/**\n * Counts the length of a monotonically ascending or strictly monotonically\n * descending sequence (run) starting at array[lo] in the range [lo, hi). If\n * the run is descending it is made ascending.\n *\n * @param {array} array - The array to reverse.\n * @param {number} lo - First element in the range (inclusive).\n * @param {number} hi - Last element in the range.\n * @param {function} compare - Item comparison function.\n * @return {number} - The length of the run.\n */\nfunction makeAscendingRun (array, lo, hi, compare) {\n let runHi = lo + 1\n\n if (runHi === hi) {\n return 1\n }\n\n // Descending\n if (compare(array[runHi ++], array[lo]) < 0) {\n while (runHi < hi && compare(array[runHi], array[runHi - 1]) < 0) {\n runHi ++\n }\n\n reverseRun(array, lo, runHi)\n reverseRun(results, lo, runHi)\n // Ascending\n } else {\n while (runHi < hi && compare(array[runHi], array[runHi - 1]) >= 0) {\n runHi ++\n }\n }\n\n return runHi - lo\n}\n\n/**\n * Reverse an array in the range [lo, hi).\n *\n * @param {array} array - The array to reverse.\n * @param {number} lo - First element in the range (inclusive).\n * @param {number} hi - Last element in the range.\n */\nfunction reverseRun (array, lo, hi) {\n hi --\n\n while (lo < hi) {\n const t = array[lo]\n array[lo ++] = array[hi]\n array[hi --] = t\n }\n}\n\n/**\n * Perform the binary sort of the array in the range [lo, hi) where start is\n * the first element possibly out of order.\n *\n * @param {array} array - The array to sort.\n * @param {number} lo - First element in the range (inclusive).\n * @param {number} hi - Last element in the range.\n * @param {number} start - First element possibly out of order.\n * @param {function} compare - Item comparison function.\n */\nfunction binaryInsertionSort (array, lo, hi, start, compare) {\n if (start === lo) {\n start ++\n }\n\n for (; start < hi; start ++) {\n const pivot = array[start]\n const pivotIndex = results[start]\n\n // Ranges of the array where pivot belongs\n let left = lo\n let right = start\n\n /*\n * pivot >= array[i] for i in [lo, left)\n * pivot < array[i] for i in in [right, start)\n */\n while (left < right) {\n const mid = (left + right) >>> 1\n\n if (compare(pivot, array[mid]) < 0) {\n right = mid\n } else {\n left = mid + 1\n }\n }\n\n /*\n * Move elements right to make room for the pivot. If there are elements\n * equal to pivot, left points to the first slot after them: this is also\n * a reason for which TimSort is stable\n */\n let n = start - left\n // Switch is just an optimization for small arrays\n switch (n) {\n case 3:\n array[left + 3] = array[left + 2]\n results[left + 3] = results[left + 2]\n /* falls through */\n case 2:\n array[left + 2] = array[left + 1]\n results[left + 2] = results[left + 1]\n /* falls through */\n case 1:\n array[left + 1] = array[left]\n results[left + 1] = results[left]\n break\n default:\n while (n > 0) {\n array[left + n] = array[left + n - 1]\n results[left + n] = results[left + n - 1]\n n --\n }\n }\n\n array[left] = pivot\n results[left] = pivotIndex\n }\n}\n\n/**\n * Find the position at which to insert a value in a sorted range. If the range\n * contains elements equal to the value the leftmost element index is returned\n * (for stability).\n *\n * @param {number} value - Value to insert.\n * @param {array} array - The array in which to insert value.\n * @param {number} start - First element in the range.\n * @param {number} length - Length of the range.\n * @param {number} hint - The index at which to begin the search.\n * @param {function} compare - Item comparison function.\n * @return {number} - The index where to insert value.\n */\nfunction gallopLeft (value, array, start, length, hint, compare) {\n let lastOffset = 0\n let maxOffset = 0\n let offset = 1\n\n if (compare(value, array[start + hint]) > 0) {\n maxOffset = length - hint\n\n while (\n offset < maxOffset\n && compare(value, array[start + hint + offset]) > 0\n ) {\n lastOffset = offset\n offset = (offset << 1) + 1\n\n if (offset <= 0) {\n offset = maxOffset\n }\n }\n\n if (offset > maxOffset) {\n offset = maxOffset\n }\n\n // Make offsets relative to start\n lastOffset += hint\n offset += hint\n\n // value <= array[start + hint]\n } else {\n maxOffset = hint + 1\n while (\n offset < maxOffset\n && compare(value, array[start + hint - offset]) <= 0\n ) {\n lastOffset = offset\n offset = (offset << 1) + 1\n\n if (offset <= 0) {\n offset = maxOffset\n }\n }\n if (offset > maxOffset) {\n offset = maxOffset\n }\n\n // Make offsets relative to start\n const tmp = lastOffset\n lastOffset = hint - offset\n offset = hint - tmp\n }\n\n /*\n * Now array[start+lastOffset] < value <= array[start+offset], so value\n * belongs somewhere in the range (start + lastOffset, start + offset]. Do a\n * binary search, with invariant array[start + lastOffset - 1] < value <=\n * array[start + offset].\n */\n lastOffset ++\n while (lastOffset < offset) {\n const m = lastOffset + ((offset - lastOffset) >>> 1)\n\n if (compare(value, array[start + m]) > 0) {\n lastOffset = m + 1\n } else {\n offset = m\n }\n }\n return offset\n}\n\n/**\n * Find the position at which to insert a value in a sorted range. If the range\n * contains elements equal to the value the rightmost element index is returned\n * (for stability).\n *\n * @param {number} value - Value to insert.\n * @param {array} array - The array in which to insert value.\n * @param {number} start - First element in the range.\n * @param {number} length - Length of the range.\n * @param {number} hint - The index at which to begin the search.\n * @param {function} compare - Item comparison function.\n * @return {number} - The index where to insert value.\n */\nfunction gallopRight (value, array, start, length, hint, compare) {\n let lastOffset = 0\n let maxOffset = 0\n let offset = 1\n\n if (compare(value, array[start + hint]) < 0) {\n maxOffset = hint + 1\n\n while (\n offset < maxOffset\n && compare(value, array[start + hint - offset]) < 0\n ) {\n lastOffset = offset\n offset = (offset << 1) + 1\n\n if (offset <= 0) {\n offset = maxOffset\n }\n }\n\n if (offset > maxOffset) {\n offset = maxOffset\n }\n\n // Make offsets relative to start\n const tmp = lastOffset\n lastOffset = hint - offset\n offset = hint - tmp\n\n // value >= array[start + hint]\n } else {\n maxOffset = length - hint\n\n while (\n offset < maxOffset\n && compare(value, array[start + hint + offset]) >= 0\n ) {\n lastOffset = offset\n offset = (offset << 1) + 1\n\n if (offset <= 0) {\n offset = maxOffset\n }\n }\n\n if (offset > maxOffset) {\n offset = maxOffset\n }\n\n // Make offsets relative to start\n lastOffset += hint\n offset += hint\n }\n\n /*\n * Now array[start+lastOffset] < value <= array[start+offset], so value\n * belongs somewhere in the range (start + lastOffset, start + offset]. Do a\n * binary search, with invariant array[start + lastOffset - 1] < value <=\n * array[start + offset].\n */\n lastOffset ++\n\n while (lastOffset < offset) {\n const m = lastOffset + ((offset - lastOffset) >>> 1)\n\n if (compare(value, array[start + m]) < 0) {\n offset = m\n } else {\n lastOffset = m + 1\n }\n }\n\n return offset\n}\n\nclass TimSort {\n constructor (array, compare) {\n this.array = array\n this.compare = compare\n\n const {length} = array\n\n this.length = length\n this.minGallop = DEFAULT_MIN_GALLOPING\n\n this.tmpStorageLength = length < 2 * DEFAULT_TMP_STORAGE_LENGTH\n ? length >>> 1\n : DEFAULT_TMP_STORAGE_LENGTH\n\n this.tmp = new Array(this.tmpStorageLength)\n this.tmpIndex = new Array(this.tmpStorageLength)\n\n this.stackLength = length < 120\n ? 5\n : length < 1542\n ? 10\n : length < 119151\n ? 19\n : 40\n\n this.runStart = new Array(this.stackLength)\n this.runLength = new Array(this.stackLength)\n\n this.stackSize = 0\n }\n\n /**\n * Push a new run on TimSort's stack.\n *\n * @param {number} runStart - Start index of the run in the original array.\n * @param {number} runLength - Length of the run;\n */\n pushRun (runStart, runLength) {\n this.runStart[this.stackSize] = runStart\n this.runLength[this.stackSize] = runLength\n this.stackSize += 1\n }\n\n /**\n * Merge runs on TimSort's stack so that the following holds for all i:\n * 1) runLength[i - 3] > runLength[i - 2] + runLength[i - 1]\n * 2) runLength[i - 2] > runLength[i - 1]\n */\n mergeRuns () {\n while (this.stackSize > 1) {\n let n = this.stackSize - 2\n\n if (\n (\n n >= 1\n && this.runLength[n - 1] <= this.runLength[n] + this.runLength[n + 1]\n )\n || (\n n >= 2\n && this.runLength[n - 2] <= this.runLength[n] + this.runLength[n - 1]\n )\n ) {\n if (this.runLength[n - 1] < this.runLength[n + 1]) {\n n --\n }\n } else if (this.runLength[n] > this.runLength[n + 1]) {\n break\n }\n this.mergeAt(n)\n }\n }\n\n /**\n * Merge all runs on TimSort's stack until only one remains.\n */\n forceMergeRuns () {\n while (this.stackSize > 1) {\n let n = this.stackSize - 2\n\n if (n > 0 && this.runLength[n - 1] < this.runLength[n + 1]) {\n n --\n }\n\n this.mergeAt(n)\n }\n }\n\n /**\n * Merge the runs on the stack at positions i and i+1. Must be always be called\n * with i=stackSize-2 or i=stackSize-3 (that is, we merge on top of the stack).\n *\n * @param {number} i - Index of the run to merge in TimSort's stack.\n */\n mergeAt (i) {\n const {compare} = this\n const {array} = this\n\n let start1 = this.runStart[i]\n let length1 = this.runLength[i]\n const start2 = this.runStart[i + 1]\n let length2 = this.runLength[i + 1]\n\n this.runLength[i] = length1 + length2\n\n if (i === this.stackSize - 3) {\n this.runStart[i + 1] = this.runStart[i + 2]\n this.runLength[i + 1] = this.runLength[i + 2]\n }\n\n this.stackSize --\n\n /*\n * Find where the first element in the second run goes in run1. Previous\n * elements in run1 are already in place\n */\n const k = gallopRight(array[start2], array, start1, length1, 0, compare)\n start1 += k\n length1 -= k\n\n if (length1 === 0) {\n return\n }\n\n /*\n * Find where the last element in the first run goes in run2. Next elements\n * in run2 are already in place\n */\n length2 = gallopLeft(\n array[start1 + length1 - 1],\n array,\n start2,\n length2,\n length2 - 1,\n compare\n )\n\n if (length2 === 0) {\n return\n }\n\n /*\n * Merge remaining runs. A tmp array with length = min(length1, length2) is\n * used\n */\n if (length1 <= length2) {\n this.mergeLow(start1, length1, start2, length2)\n } else {\n this.mergeHigh(start1, length1, start2, length2)\n }\n }\n\n /**\n * Merge two adjacent runs in a stable way. The runs must be such that the\n * first element of run1 is bigger than the first element in run2 and the\n * last element of run1 is greater than all the elements in run2.\n * The method should be called when run1.length <= run2.length as it uses\n * TimSort temporary array to store run1. Use mergeHigh if run1.length >\n * run2.length.\n *\n * @param {number} start1 - First element in run1.\n * @param {number} length1 - Length of run1.\n * @param {number} start2 - First element in run2.\n * @param {number} length2 - Length of run2.\n */\n mergeLow (start1, length1, start2, length2) {\n const {compare} = this\n const {array} = this\n const {tmp} = this\n const {tmpIndex} = this\n let i = 0\n\n for (i = 0; i < length1; i ++) {\n tmp[i] = array[start1 + i]\n tmpIndex[i] = results[start1 + i]\n }\n\n let cursor1 = 0\n let cursor2 = start2\n let dest = start1\n\n array[dest] = array[cursor2]\n results[dest] = results[cursor2]\n\n dest ++\n cursor2 ++\n\n if (-- length2 === 0) {\n for (i = 0; i < length1; i ++) {\n array[dest + i] = tmp[cursor1 + i]\n results[dest + i] = tmpIndex[cursor1 + i]\n }\n return\n }\n\n if (length1 === 1) {\n for (i = 0; i < length2; i ++) {\n array[dest + i] = array[cursor2 + i]\n results[dest + i] = results[cursor2 + i]\n }\n array[dest + length2] = tmp[cursor1]\n results[dest + length2] = tmpIndex[cursor1]\n return\n }\n\n let {minGallop} = this\n\n while (true) {\n let count1 = 0\n let count2 = 0\n let exit = false\n\n do {\n if (compare(array[cursor2], tmp[cursor1]) < 0) {\n array[dest] = array[cursor2]\n results[dest] = results[cursor2]\n dest ++\n cursor2 ++\n count2 ++\n count1 = 0\n\n if (-- length2 === 0) {\n exit = true\n break\n }\n } else {\n array[dest] = tmp[cursor1]\n results[dest] = tmpIndex[cursor1]\n dest ++\n cursor1 ++\n count1 ++\n count2 = 0\n if (-- length1 === 1) {\n exit = true\n break\n }\n }\n } while ((count1 | count2) < minGallop)\n\n if (exit) {\n break\n }\n\n do {\n count1 = gallopRight(array[cursor2], tmp, cursor1, length1, 0, compare)\n\n if (count1 !== 0) {\n for (i = 0; i < count1; i ++) {\n array[dest + i] = tmp[cursor1 + i]\n results[dest + i] = tmpIndex[cursor1 + i]\n }\n\n dest += count1\n cursor1 += count1\n length1 -= count1\n if (length1 <= 1) {\n exit = true\n break\n }\n }\n\n array[dest] = array[cursor2]\n results[dest] = results[cursor2]\n\n dest ++\n cursor2 ++\n\n if (-- length2 === 0) {\n exit = true\n break\n }\n\n count2 = gallopLeft(tmp[cursor1], array, cursor2, length2, 0, compare)\n\n if (count2 !== 0) {\n for (i = 0; i < count2; i ++) {\n array[dest + i] = array[cursor2 + i]\n results[dest + i] = results[cursor2 + i]\n }\n\n dest += count2\n cursor2 += count2\n length2 -= count2\n\n if (length2 === 0) {\n exit = true\n break\n }\n }\n array[dest] = tmp[cursor1]\n results[dest] = tmpIndex[cursor1]\n dest ++\n cursor1 ++\n\n if (-- length1 === 1) {\n exit = true\n break\n }\n\n minGallop --\n } while (\n count1 >= DEFAULT_MIN_GALLOPING\n || count2 >= DEFAULT_MIN_GALLOPING\n )\n\n if (exit) {\n break\n }\n\n if (minGallop < 0) {\n minGallop = 0\n }\n\n minGallop += 2\n }\n\n this.minGallop = minGallop\n\n if (minGallop < 1) {\n this.minGallop = 1\n }\n\n if (length1 === 1) {\n for (i = 0; i < length2; i ++) {\n array[dest + i] = array[cursor2 + i]\n results[dest + i] = results[cursor2 + i]\n }\n array[dest + length2] = tmp[cursor1]\n results[dest + length2] = tmpIndex[cursor1]\n } else if (length1 === 0) {\n throw new Error('mergeLow preconditions were not respected')\n } else {\n for (i = 0; i < length1; i ++) {\n array[dest + i] = tmp[cursor1 + i]\n results[dest + i] = tmpIndex[cursor1 + i]\n }\n }\n }\n\n /**\n * Merge two adjacent runs in a stable way. The runs must be such that the\n * first element of run1 is bigger than the first element in run2 and the\n * last element of run1 is greater than all the elements in run2.\n * The method should be called when run1.length > run2.length as it uses\n * TimSort temporary array to store run2. Use mergeLow if run1.length <=\n * run2.length.\n *\n * @param {number} start1 - First element in run1.\n * @param {number} length1 - Length of run1.\n * @param {number} start2 - First element in run2.\n * @param {number} length2 - Length of run2.\n */\n mergeHigh (start1, length1, start2, length2) {\n const {compare} = this\n const {array} = this\n const {tmp} = this\n const {tmpIndex} = this\n let i = 0\n\n for (i = 0; i < length2; i ++) {\n tmp[i] = array[start2 + i]\n tmpIndex[i] = results[start2 + i]\n }\n\n let cursor1 = start1 + length1 - 1\n let cursor2 = length2 - 1\n let dest = start2 + length2 - 1\n let customCursor = 0\n let customDest = 0\n\n array[dest] = array[cursor1]\n results[dest] = results[cursor1]\n\n dest --\n cursor1 --\n\n if (-- length1 === 0) {\n customCursor = dest - (length2 - 1)\n\n for (i = 0; i < length2; i ++) {\n array[customCursor + i] = tmp[i]\n results[customCursor + i] = tmpIndex[i]\n }\n\n return\n }\n\n if (length2 === 1) {\n dest -= length1\n cursor1 -= length1\n customDest = dest + 1\n customCursor = cursor1 + 1\n\n for (i = length1 - 1; i >= 0; i --) {\n array[customDest + i] = array[customCursor + i]\n results[customDest + i] = results[customCursor + i]\n }\n\n array[dest] = tmp[cursor2]\n results[dest] = tmpIndex[cursor2]\n return\n }\n\n let {minGallop} = this\n\n while (true) {\n let count1 = 0\n let count2 = 0\n let exit = false\n\n do {\n if (compare(tmp[cursor2], array[cursor1]) < 0) {\n array[dest] = array[cursor1]\n results[dest] = results[cursor1]\n dest --\n cursor1 --\n count1 ++\n count2 = 0\n if (-- length1 === 0) {\n exit = true\n break\n }\n } else {\n array[dest] = tmp[cursor2]\n results[dest] = tmpIndex[cursor2]\n dest --\n cursor2 --\n count2 ++\n count1 = 0\n if (-- length2 === 1) {\n exit = true\n break\n }\n }\n } while ((count1 | count2) < minGallop)\n\n if (exit) {\n break\n }\n\n do {\n count1 = length1 - gallopRight(\n tmp[cursor2],\n array,\n start1,\n length1,\n length1 - 1,\n compare\n )\n\n if (count1 !== 0) {\n dest -= count1\n cursor1 -= count1\n length1 -= count1\n customDest = dest + 1\n customCursor = cursor1 + 1\n\n for (i = count1 - 1; i >= 0; i --) {\n array[customDest + i] = array[customCursor + i]\n results[customDest + i] = results[customCursor + i]\n }\n\n if (length1 === 0) {\n exit = true\n break\n }\n }\n\n array[dest] = tmp[cursor2]\n results[dest] = tmpIndex[cursor2]\n dest --\n cursor2 --\n\n if (-- length2 === 1) {\n exit = true\n break\n }\n\n count2 = length2 - gallopLeft(\n array[cursor1],\n tmp,\n 0,\n length2,\n length2 - 1,\n compare\n )\n\n if (count2 !== 0) {\n dest -= count2\n cursor2 -= count2\n length2 -= count2\n customDest = dest + 1\n customCursor = cursor2 + 1\n\n for (i = 0; i < count2; i ++) {\n array[customDest + i] = tmp[customCursor + i]\n results[customDest + i] = tmpIndex[customCursor + i]\n }\n\n if (length2 <= 1) {\n exit = true\n break\n }\n }\n\n array[dest] = array[cursor1]\n results[dest] = results[cursor1]\n dest --\n cursor1 --\n\n if (-- length1 === 0) {\n exit = true\n break\n }\n\n minGallop --\n } while (\n count1 >= DEFAULT_MIN_GALLOPING\n || count2 >= DEFAULT_MIN_GALLOPING\n )\n\n if (exit) {\n break\n }\n\n if (minGallop < 0) {\n minGallop = 0\n }\n\n minGallop += 2\n }\n\n this.minGallop = minGallop\n\n if (minGallop < 1) {\n this.minGallop = 1\n }\n\n if (length2 === 1) {\n dest -= length1\n cursor1 -= length1\n customDest = dest + 1\n customCursor = cursor1 + 1\n\n for (i = length1 - 1; i >= 0; i --) {\n array[customDest + i] = array[customCursor + i]\n results[customDest + i] = results[customCursor + i]\n }\n\n array[dest] = tmp[cursor2]\n results[dest] = tmpIndex[cursor2]\n } else if (length2 === 0) {\n throw new Error('mergeHigh preconditions were not respected')\n } else {\n customCursor = dest - (length2 - 1)\n for (i = 0; i < length2; i ++) {\n array[customCursor + i] = tmp[i]\n results[customCursor + i] = tmpIndex[i]\n }\n }\n }\n}\n\n/**\n * Sort an array in the range [lo, hi) using TimSort.\n *\n * @param {array} array - The array to sort.\n * @param {function=} compare - Item comparison function. Default is\n * alphabetical\n * @param {number} lo - First element in the range (inclusive).\n * @param {number} hi - Last element in the range.\n * comparator.\n */\nfunction sort (array, compare, lo, hi) {\n if (!Array.isArray(array)) {\n throw new TypeError(\n `The \"array\" argument must be an array. Received ${array}`\n )\n }\n\n results = []\n\n const {length} = array\n\n let i = 0\n\n while (i < length) {\n results[i] = i ++\n }\n\n /*\n * Handle the case where a comparison function is not provided. We do\n * lexicographic sorting\n */\n if (!compare) {\n compare = alphabeticalCompare\n } else if (typeof compare !== 'function') {\n hi = lo\n lo = compare\n compare = alphabeticalCompare\n }\n\n if (!lo) {\n lo = 0\n }\n if (!hi) {\n hi = length\n }\n\n let remaining = hi - lo\n\n // The array is already sorted\n if (remaining < 2) {\n return results\n }\n\n let runLength = 0\n // On small arrays binary sort can be used directly\n if (remaining < DEFAULT_MIN_MERGE) {\n runLength = makeAscendingRun(array, lo, hi, compare)\n binaryInsertionSort(array, lo, hi, lo + runLength, compare)\n return results\n }\n\n const ts = new TimSort(array, compare)\n\n const minRun = minRunLength(remaining)\n\n do {\n runLength = makeAscendingRun(array, lo, hi, compare)\n if (runLength < minRun) {\n let force = remaining\n if (force > minRun) {\n force = minRun\n }\n\n binaryInsertionSort(array, lo, lo + force, lo + runLength, compare)\n runLength = force\n }\n // Push new run and merge if necessary\n ts.pushRun(lo, runLength)\n ts.mergeRuns()\n\n // Go find next run\n remaining -= runLength\n lo += runLength\n } while (remaining !== 0)\n\n // Force merging of remaining runs\n ts.forceMergeRuns()\n\n return results\n}\n\nmodule.exports = {\n sort\n}\n","'use strict';\nconst hasOwnProp = Object.prototype.hasOwnProperty;\n\nmodule.exports = (object, property) => hasOwnProp.call(object, property);\n","const hasOwnProperty = require('has-own-prop')\nconst {isObject, isArray} = require('core-util-is')\n\n\nconst PREFIX_BEFORE = 'before'\nconst PREFIX_AFTER_PROP = 'after-prop'\nconst PREFIX_AFTER_COLON = 'after-colon'\nconst PREFIX_AFTER_VALUE = 'after-value'\nconst PREFIX_AFTER = 'after'\n\nconst PREFIX_BEFORE_ALL = 'before-all'\nconst PREFIX_AFTER_ALL = 'after-all'\n\nconst BRACKET_OPEN = '['\nconst BRACKET_CLOSE = ']'\nconst CURLY_BRACKET_OPEN = '{'\nconst CURLY_BRACKET_CLOSE = '}'\nconst COMMA = ','\nconst EMPTY = ''\nconst MINUS = '-'\n\nconst SYMBOL_PREFIXES = [\n PREFIX_BEFORE,\n PREFIX_AFTER_PROP,\n PREFIX_AFTER_COLON,\n PREFIX_AFTER_VALUE,\n PREFIX_AFTER\n]\n\nconst NON_PROP_SYMBOL_KEYS = [\n PREFIX_BEFORE,\n PREFIX_BEFORE_ALL,\n PREFIX_AFTER_ALL\n].map(Symbol.for)\n\nconst COLON = ':'\nconst UNDEFINED = undefined\n\n\nconst symbol = (prefix, key) => Symbol.for(prefix + COLON + key)\n\nconst define = (target, key, value) => Object.defineProperty(target, key, {\n value,\n writable: true,\n configurable: true\n})\n\nconst copy_comments_by_kind = (\n target, source, target_key, source_key, prefix, remove_source\n) => {\n const source_prop = symbol(prefix, source_key)\n if (!hasOwnProperty(source, source_prop)) {\n return\n }\n\n const target_prop = target_key === source_key\n ? source_prop\n : symbol(prefix, target_key)\n\n define(target, target_prop, source[source_prop])\n\n if (remove_source) {\n delete source[source_prop]\n }\n}\n\nconst copy_comments = (\n target, source, target_key, source_key, remove_source\n) => {\n SYMBOL_PREFIXES.forEach(prefix => {\n copy_comments_by_kind(\n target, source, target_key, source_key, prefix, remove_source\n )\n })\n}\n\nconst swap_comments = (array, from, to) => {\n if (from === to) {\n return\n }\n\n SYMBOL_PREFIXES.forEach(prefix => {\n const target_prop = symbol(prefix, to)\n if (!hasOwnProperty(array, target_prop)) {\n copy_comments_by_kind(array, array, to, from, prefix, true)\n return\n }\n\n const comments = array[target_prop]\n delete array[target_prop]\n\n copy_comments_by_kind(array, array, to, from, prefix, true)\n define(array, symbol(prefix, from), comments)\n })\n}\n\nconst assign_non_prop_comments = (target, source) => {\n NON_PROP_SYMBOL_KEYS.forEach(key => {\n const comments = source[key]\n\n if (comments) {\n define(target, key, comments)\n }\n })\n}\n\n// Assign keys and comments\nconst assign = (target, source, keys) => {\n keys.forEach(key => {\n if (!hasOwnProperty(source, key)) {\n return\n }\n\n target[key] = source[key]\n copy_comments(target, source, key, key)\n })\n\n return target\n}\n\n\nmodule.exports = {\n SYMBOL_PREFIXES,\n\n PREFIX_BEFORE,\n PREFIX_AFTER_PROP,\n PREFIX_AFTER_COLON,\n PREFIX_AFTER_VALUE,\n PREFIX_AFTER,\n\n PREFIX_BEFORE_ALL,\n PREFIX_AFTER_ALL,\n\n BRACKET_OPEN,\n BRACKET_CLOSE,\n CURLY_BRACKET_OPEN,\n CURLY_BRACKET_CLOSE,\n\n COLON,\n COMMA,\n MINUS,\n EMPTY,\n\n UNDEFINED,\n\n symbol,\n define,\n copy_comments,\n swap_comments,\n assign_non_prop_comments,\n\n assign (target, source, keys) {\n if (!isObject(target)) {\n throw new TypeError('Cannot convert undefined or null to object')\n }\n\n if (!isObject(source)) {\n return target\n }\n\n if (keys === UNDEFINED) {\n keys = Object.keys(source)\n // We assign non-property comments\n // if argument `keys` is not specified\n assign_non_prop_comments(target, source)\n } else if (!isArray(keys)) {\n throw new TypeError('keys must be array or undefined')\n } else if (keys.length === 0) {\n // Or argument `keys` is an empty array\n assign_non_prop_comments(target, source)\n }\n\n return assign(target, source, keys)\n }\n}\n","const {isArray} = require('core-util-is')\nconst {sort} = require('array-timsort')\n\nconst {\n SYMBOL_PREFIXES,\n\n UNDEFINED,\n\n symbol,\n copy_comments,\n swap_comments\n} = require('./common')\n\n\nconst reverse_comments = array => {\n const {length} = array\n let i = 0\n const max = length / 2\n\n for (; i < max; i ++) {\n swap_comments(array, i, length - i - 1)\n }\n}\n\nconst move_comment = (target, source, i, offset, remove) => {\n copy_comments(target, source, i + offset, i, remove)\n}\n\nconst move_comments = (\n // `Array` target array\n target,\n // `Array` source array\n source,\n // `number` start index\n start,\n // `number` number of indexes to move\n count,\n // `number` offset to move\n offset,\n // `boolean` whether should remove the comments from source\n remove\n) => {\n if (offset > 0) {\n let i = count\n // | count | offset |\n // source: -------------\n // target: -------------\n // | remove |\n // => remove === offset\n\n // From [count - 1, 0]\n while (i -- > 0) {\n move_comment(target, source, start + i, offset, remove)\n }\n return\n }\n\n let i = 0\n // | remove | count |\n // -------------\n // -------------\n // | offset |\n\n // From [0, count - 1]\n while (i < count) {\n const ii = i ++\n move_comment(target, source, start + ii, offset, remove)\n }\n}\n\nconst remove_comments = (array, key) => {\n SYMBOL_PREFIXES.forEach(prefix => {\n const prop = symbol(prefix, key)\n delete array[prop]\n })\n}\n\nconst get_mapped = (map, key) => {\n let mapped = key\n\n while (mapped in map) {\n mapped = map[mapped]\n }\n\n return mapped\n}\n\n\nclass CommentArray extends Array {\n // - deleteCount + items.length\n\n // We should avoid `splice(begin, deleteCount, ...items)`,\n // because `splice(0, undefined)` is not equivalent to `splice(0)`,\n // as well as:\n // - slice\n splice (...args) {\n const {length} = this\n const ret = super.splice(...args)\n\n // #16\n // If no element removed, we might still need to move comments,\n // because splice could add new items\n\n // if (!ret.length) {\n // return ret\n // }\n\n // JavaScript syntax is silly\n // eslint-disable-next-line prefer-const\n let [begin, deleteCount, ...items] = args\n\n if (begin < 0) {\n begin += length\n }\n\n if (arguments.length === 1) {\n deleteCount = length - begin\n } else {\n deleteCount = Math.min(length - begin, deleteCount)\n }\n\n const {\n length: item_length\n } = items\n\n // itemsToDelete: -\n // itemsToAdd: +\n // | dc | count |\n // =======-------------============\n // =======++++++============\n // | il |\n const offset = item_length - deleteCount\n const start = begin + deleteCount\n const count = length - start\n\n move_comments(this, this, start, count, offset, true)\n\n return ret\n }\n\n slice (...args) {\n const {length} = this\n const array = super.slice(...args)\n if (!array.length) {\n return new CommentArray()\n }\n\n let [begin, before] = args\n\n // Ref:\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/slice\n if (before === UNDEFINED) {\n before = length\n } else if (before < 0) {\n before += length\n }\n\n if (begin < 0) {\n begin += length\n } else if (begin === UNDEFINED) {\n begin = 0\n }\n\n move_comments(array, this, begin, before - begin, - begin)\n\n return array\n }\n\n unshift (...items) {\n const {length} = this\n const ret = super.unshift(...items)\n const {\n length: items_length\n } = items\n\n if (items_length > 0) {\n move_comments(this, this, 0, length, items_length, true)\n }\n\n return ret\n }\n\n shift () {\n const ret = super.shift()\n const {length} = this\n\n remove_comments(this, 0)\n move_comments(this, this, 1, length, - 1, true)\n\n return ret\n }\n\n reverse () {\n super.reverse()\n\n reverse_comments(this)\n\n return this\n }\n\n pop () {\n const ret = super.pop()\n\n // Removes comments\n remove_comments(this, this.length)\n\n return ret\n }\n\n concat (...items) {\n let {length} = this\n const ret = super.concat(...items)\n\n if (!items.length) {\n return ret\n }\n\n move_comments(ret, this, 0, this.length, 0)\n\n items.forEach(item => {\n const prev = length\n length += isArray(item)\n ? item.length\n : 1\n\n if (!(item instanceof CommentArray)) {\n return\n }\n\n move_comments(ret, item, 0, item.length, prev)\n })\n\n return ret\n }\n\n sort (...args) {\n const result = sort(\n this,\n // Make sure there is no more than one argument\n ...args.slice(0, 1)\n )\n\n // For example,\n // if we sort ['b', 'd', 'c', 'a'],\n // then `result` will be [3, 0, 2, 1], and the array is ['a', 'b', 'c', 'd']\n\n // First, we swap index 0 (b) and index 3 (a), then the array comments are\n // ['a.comments', 'd.comments', 'c.comments', 'b.comments']\n // index 0 is finalized\n // index 3 is actually mapped to original index 0, we present as 0 -> 3\n\n // Then swap index 1 (d) and index 0 (-> 3, b)\n // 1 (index) -> 0 (new index) -> 3 (real_index)\n // ['d.comments', 'b.comments', 'c.comments', 'd.comments']\n // index 1 is finalized\n // index 3 is contains the item of original index 1\n // - we present as 1 -> 3\n // - it is ok that we don't remove mapping 0 -> 3\n\n // Then index 2 should be skipped\n\n // Then swap index 3 (d) and index 1 (-> 3, b), skipped\n\n const map = Object.create(null)\n\n result.forEach((source_index, index) => {\n if (source_index === index) {\n return\n }\n\n const real_source_index = get_mapped(map, source_index)\n\n if (real_source_index === index) {\n return\n }\n\n // The item of index `index` gets the final value\n // delete map[index]\n map[index] = real_source_index\n\n swap_comments(this, index, real_source_index)\n })\n\n return this\n }\n}\n\n\nmodule.exports = {\n CommentArray\n}\n","// JSON formatting\n\nconst esprima = require('esprima')\n\nconst {\n CommentArray,\n} = require('./array')\n\nconst {\n PREFIX_BEFORE,\n PREFIX_AFTER_PROP,\n PREFIX_AFTER_COLON,\n PREFIX_AFTER_VALUE,\n PREFIX_AFTER,\n\n PREFIX_BEFORE_ALL,\n PREFIX_AFTER_ALL,\n\n BRACKET_OPEN,\n BRACKET_CLOSE,\n CURLY_BRACKET_OPEN,\n CURLY_BRACKET_CLOSE,\n\n COLON,\n COMMA,\n MINUS,\n EMPTY,\n\n UNDEFINED,\n\n define,\n assign_non_prop_comments\n} = require('./common')\n\nconst tokenize = code => esprima.tokenize(code, {\n comment: true,\n loc: true\n})\n\nconst previous_hosts = []\nlet comments_host = null\nlet unassigned_comments = null\n\nconst previous_props = []\nlet last_prop\n\nlet remove_comments = false\nlet inline = false\nlet tokens = null\nlet last = null\nlet current = null\nlet index\nlet reviver = null\n\nconst clean = () => {\n previous_props.length =\n previous_hosts.length = 0\n\n last = null\n last_prop = UNDEFINED\n}\n\nconst free = () => {\n clean()\n\n tokens.length = 0\n\n unassigned_comments =\n comments_host =\n tokens =\n last =\n current =\n reviver = null\n}\n\nconst symbolFor = prefix => Symbol.for(\n last_prop !== UNDEFINED\n ? prefix + COLON + last_prop\n : prefix\n)\n\nconst transform = (k, v) => reviver\n ? reviver(k, v)\n : v\n\nconst unexpected = () => {\n const error = new SyntaxError(`Unexpected token ${current.value.slice(0, 1)}`)\n Object.assign(error, current.loc.start)\n\n throw error\n}\n\nconst unexpected_end = () => {\n const error = new SyntaxError('Unexpected end of JSON input')\n Object.assign(error, last\n ? last.loc.end\n // Empty string\n : {\n line: 1,\n column: 0\n })\n\n throw error\n}\n\n// Move the reader to the next\nconst next = () => {\n const new_token = tokens[++ index]\n inline = current\n && new_token\n && current.loc.end.line === new_token.loc.start.line\n || false\n\n last = current\n current = new_token\n}\n\nconst type = () => {\n if (!current) {\n unexpected_end()\n }\n\n return current.type === 'Punctuator'\n ? current.value\n : current.type\n}\n\nconst is = t => type() === t\n\nconst expect = a => {\n if (!is(a)) {\n unexpected()\n }\n}\n\nconst set_comments_host = new_host => {\n previous_hosts.push(comments_host)\n comments_host = new_host\n}\n\nconst restore_comments_host = () => {\n comments_host = previous_hosts.pop()\n}\n\nconst assign_after_comments = () => {\n if (!unassigned_comments) {\n return\n }\n\n const after_comments = []\n\n for (const comment of unassigned_comments) {\n // If the comment is inline, then it is an after-comma comment\n if (comment.inline) {\n after_comments.push(comment)\n // Otherwise, all comments are before:<next-prop> comment\n } else {\n break\n }\n }\n\n const {length} = after_comments\n if (!length) {\n return\n }\n\n if (length === unassigned_comments.length) {\n // If unassigned_comments are all consumed\n unassigned_comments = null\n } else {\n unassigned_comments.splice(0, length)\n }\n\n define(comments_host, symbolFor(PREFIX_AFTER), after_comments)\n}\n\nconst assign_comments = prefix => {\n if (!unassigned_comments) {\n return\n }\n\n define(comments_host, symbolFor(prefix), unassigned_comments)\n\n unassigned_comments = null\n}\n\nconst parse_comments = prefix => {\n const comments = []\n\n while (\n current\n && (\n is('LineComment')\n || is('BlockComment')\n )\n ) {\n const comment = {\n ...current,\n inline\n }\n\n // delete comment.loc\n comments.push(comment)\n\n next()\n }\n\n if (remove_comments) {\n return\n }\n\n if (!comments.length) {\n return\n }\n\n if (prefix) {\n define(comments_host, symbolFor(prefix), comments)\n return\n }\n\n unassigned_comments = comments\n}\n\nconst set_prop = (prop, push) => {\n if (push) {\n previous_props.push(last_prop)\n }\n\n last_prop = prop\n}\n\nconst restore_prop = () => {\n last_prop = previous_props.pop()\n}\n\nconst parse_object = () => {\n const obj = {}\n set_comments_host(obj)\n set_prop(UNDEFINED, true)\n\n let started = false\n let name\n\n parse_comments()\n\n while (!is(CURLY_BRACKET_CLOSE)) {\n if (started) {\n assign_comments(PREFIX_AFTER_VALUE)\n\n // key-value pair delimiter\n expect(COMMA)\n next()\n parse_comments()\n\n assign_after_comments()\n\n // If there is a trailing comma, we might reach the end\n // ```\n // {\n // \"a\": 1,\n // }\n // ```\n if (is(CURLY_BRACKET_CLOSE)) {\n break\n }\n }\n\n started = true\n expect('String')\n name = JSON.parse(current.value)\n\n set_prop(name)\n assign_comments(PREFIX_BEFORE)\n\n next()\n parse_comments(PREFIX_AFTER_PROP)\n\n expect(COLON)\n\n next()\n parse_comments(PREFIX_AFTER_COLON)\n\n obj[name] = transform(name, walk())\n parse_comments()\n }\n\n if (started) {\n // If there are properties,\n // then the unassigned comments are after comments\n assign_comments(PREFIX_AFTER)\n }\n\n // bypass }\n next()\n last_prop = undefined\n\n if (!started) {\n // Otherwise, they are before comments\n assign_comments(PREFIX_BEFORE)\n }\n\n restore_comments_host()\n restore_prop()\n\n return obj\n}\n\nconst parse_array = () => {\n const array = new CommentArray()\n set_comments_host(array)\n set_prop(UNDEFINED, true)\n\n let started = false\n let i = 0\n\n parse_comments()\n\n while (!is(BRACKET_CLOSE)) {\n if (started) {\n assign_comments(PREFIX_AFTER_VALUE)\n expect(COMMA)\n next()\n parse_comments()\n\n assign_after_comments()\n\n if (is(BRACKET_CLOSE)) {\n break\n }\n }\n\n started = true\n\n set_prop(i)\n assign_comments(PREFIX_BEFORE)\n\n array[i] = transform(i, walk())\n i ++\n\n parse_comments()\n }\n\n if (started) {\n assign_comments(PREFIX_AFTER)\n }\n\n next()\n last_prop = undefined\n\n if (!started) {\n assign_comments(PREFIX_BEFORE)\n }\n\n restore_comments_host()\n restore_prop()\n\n return array\n}\n\nfunction walk () {\n let tt = type()\n\n if (tt === CURLY_BRACKET_OPEN) {\n next()\n return parse_object()\n }\n\n if (tt === BRACKET_OPEN) {\n next()\n return parse_array()\n }\n\n let negative = EMPTY\n\n // -1\n if (tt === MINUS) {\n next()\n tt = type()\n negative = MINUS\n }\n\n let v\n\n switch (tt) {\n case 'String':\n case 'Boolean':\n case 'Null':\n case 'Numeric':\n v = current.value\n next()\n return JSON.parse(negative + v)\n default:\n }\n}\n\nconst isObject = subject => Object(subject) === subject\n\nconst parse = (code, rev, no_comments) => {\n // Clean variables in closure\n clean()\n\n tokens = tokenize(code)\n reviver = rev\n remove_comments = no_comments\n\n if (!tokens.length) {\n unexpected_end()\n }\n\n index = - 1\n next()\n\n set_comments_host({})\n\n parse_comments(PREFIX_BEFORE_ALL)\n\n let result = walk()\n\n parse_comments(PREFIX_AFTER_ALL)\n\n if (current) {\n unexpected()\n }\n\n if (!no_comments && result !== null) {\n if (!isObject(result)) {\n // 1 -> new Number(1)\n // true -> new Boolean(1)\n // \"foo\" -> new String(\"foo\")\n\n // eslint-disable-next-line no-new-object\n result = new Object(result)\n }\n\n assign_non_prop_comments(result, comments_host)\n }\n\n restore_comments_host()\n\n // reviver\n result = transform('', result)\n\n free()\n\n return result\n}\n\nmodule.exports = {\n parse,\n tokenize\n}\n","/*!\n * repeat-string <https://github.com/jonschlinkert/repeat-string>\n *\n * Copyright (c) 2014-2015, Jon Schlinkert.\n * Licensed under the MIT License.\n */\n\n'use strict';\n\n/**\n * Results cache\n */\n\nvar res = '';\nvar cache;\n\n/**\n * Expose `repeat`\n */\n\nmodule.exports = repeat;\n\n/**\n * Repeat the given `string` the specified `number`\n * of times.\n *\n * **Example:**\n *\n * ```js\n * var repeat = require('repeat-string');\n * repeat('A', 5);\n * //=> AAAAA\n * ```\n *\n * @param {String} `string` The string to repeat\n * @param {Number} `number` The number of times to repeat the string\n * @return {String} Repeated string\n * @api public\n */\n\nfunction repeat(str, num) {\n if (typeof str !== 'string') {\n throw new TypeError('expected a string');\n }\n\n // cover common, quick use cases\n if (num === 1) return str;\n if (num === 2) return str + str;\n\n var max = str.length * num;\n if (cache !== str || typeof cache === 'undefined') {\n cache = str;\n res = '';\n } else if (res.length >= max) {\n return res.substr(0, max);\n }\n\n while (max > res.length && num > 1) {\n if (num & 1) {\n res += str;\n }\n\n num >>= 1;\n str += str;\n }\n\n res += str;\n res = res.substr(0, max);\n return res;\n}\n","const {\n isArray, isObject, isFunction, isNumber, isString\n} = require('core-util-is')\nconst repeat = require('repeat-string')\n\nconst {\n PREFIX_BEFORE_ALL,\n PREFIX_BEFORE,\n PREFIX_AFTER_PROP,\n PREFIX_AFTER_COLON,\n PREFIX_AFTER_VALUE,\n PREFIX_AFTER,\n PREFIX_AFTER_ALL,\n\n BRACKET_OPEN,\n BRACKET_CLOSE,\n CURLY_BRACKET_OPEN,\n CURLY_BRACKET_CLOSE,\n COLON,\n COMMA,\n EMPTY,\n\n UNDEFINED\n} = require('./common')\n\n// eslint-disable-next-line no-control-regex, no-misleading-character-class\nconst ESCAPABLE = /[\\\\\"\\x00-\\x1f\\x7f-\\x9f\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]/g\n\n// String constants\nconst SPACE = ' '\nconst LF = '\\n'\nconst STR_NULL = 'null'\n\n// Symbol tags\nconst BEFORE = prop => `${PREFIX_BEFORE}:${prop}`\nconst AFTER_PROP = prop => `${PREFIX_AFTER_PROP}:${prop}`\nconst AFTER_COLON = prop => `${PREFIX_AFTER_COLON}:${prop}`\nconst AFTER_VALUE = prop => `${PREFIX_AFTER_VALUE}:${prop}`\nconst AFTER = prop => `${PREFIX_AFTER}:${prop}`\n\n// table of character substitutions\nconst meta = {\n '\\b': '\\\\b',\n '\\t': '\\\\t',\n '\\n': '\\\\n',\n '\\f': '\\\\f',\n '\\r': '\\\\r',\n '\"': '\\\\\"',\n '\\\\': '\\\\\\\\'\n}\n\nconst escape = string => {\n ESCAPABLE.lastIndex = 0\n\n if (!ESCAPABLE.test(string)) {\n return string\n }\n\n return string.replace(ESCAPABLE, a => {\n const c = meta[a]\n return typeof c === 'string'\n ? c\n : a\n })\n}\n\n// Escape no control characters, no quote characters,\n// and no backslash characters,\n// then we can safely slap some quotes around it.\nconst quote = string => `\"${escape(string)}\"`\nconst comment_stringify = (value, line) => line\n ? `//${value}`\n : `/*${value}*/`\n\n// display_block `boolean` whether the\n// WHOLE block of comments is always a block group\nconst process_comments = (host, symbol_tag, deeper_gap, display_block) => {\n const comments = host[Symbol.for(symbol_tag)]\n if (!comments || !comments.length) {\n return EMPTY\n }\n\n let is_line_comment = false\n\n const str = comments.reduce((prev, {\n inline,\n type,\n value\n }) => {\n const delimiter = inline\n ? SPACE\n : LF + deeper_gap\n\n is_line_comment = type === 'LineComment'\n\n return prev + delimiter + comment_stringify(value, is_line_comment)\n }, EMPTY)\n\n\n return display_block\n // line comment should always end with a LF\n || is_line_comment\n ? str + LF + deeper_gap\n : str\n}\n\nlet replacer = null\nlet indent = EMPTY\n\nconst clean = () => {\n replacer = null\n indent = EMPTY\n}\n\nconst join = (one, two, gap) =>\n one\n ? two\n // Symbol.for('before') and Symbol.for('before:prop')\n // might both exist if user mannually add comments to the object\n // and make a mistake.\n // SO, we are not to only trimRight but trim for both sides\n ? one + two.trim() + LF + gap\n : one.trimRight() + LF + gap\n : two\n ? two.trimRight() + LF + gap\n : EMPTY\n\nconst join_content = (inside, value, gap) => {\n const comment = process_comments(value, PREFIX_BEFORE, gap + indent, true)\n\n return join(comment, inside, gap)\n}\n\n// | deeper_gap |\n// | gap | indent |\n// [\n// \"foo\",\n// \"bar\"\n// ]\nconst array_stringify = (value, gap) => {\n const deeper_gap = gap + indent\n\n const {length} = value\n\n // From the item to before close\n let inside = EMPTY\n let after_comma = EMPTY\n\n // Never use Array.prototype.forEach,\n // that we should iterate all items\n for (let i = 0; i < length; i ++) {\n if (i !== 0) {\n inside += COMMA\n }\n\n const before = join(\n after_comma,\n process_comments(value, BEFORE(i), deeper_gap),\n deeper_gap\n )\n\n inside += before || (LF + deeper_gap)\n\n // JSON.stringify([undefined]) => [null]\n inside += stringify(i, value, deeper_gap) || STR_NULL\n\n inside += process_comments(value, AFTER_VALUE(i), deeper_gap)\n\n after_comma = process_comments(value, AFTER(i), deeper_gap)\n }\n\n inside += join(\n after_comma,\n process_comments(value, PREFIX_AFTER, deeper_gap),\n deeper_gap\n )\n\n return BRACKET_OPEN\n + join_content(inside, value, gap)\n + BRACKET_CLOSE\n}\n\n// | deeper_gap |\n// | gap | indent |\n// {\n// \"foo\": 1,\n// \"bar\": 2\n// }\nconst object_stringify = (value, gap) => {\n // Due to a specification blunder in ECMAScript, typeof null is 'object',\n // so watch out for that case.\n if (!value) {\n return 'null'\n }\n\n const deeper_gap = gap + indent\n\n // From the first element to before close\n let inside = EMPTY\n let after_comma = EMPTY\n let first = true\n\n const keys = isArray(replacer)\n ? replacer\n : Object.keys(value)\n\n const iteratee = key => {\n // Stringified value\n const sv = stringify(key, value, deeper_gap)\n\n // If a value is undefined, then the key-value pair should be ignored\n if (sv === UNDEFINED) {\n return\n }\n\n // The treat ment\n if (!first) {\n inside += COMMA\n }\n\n first = false\n\n const before = join(\n after_comma,\n process_comments(value, BEFORE(key), deeper_gap),\n deeper_gap\n )\n\n inside += before || (LF + deeper_gap)\n\n inside += quote(key)\n + process_comments(value, AFTER_PROP(key), deeper_gap)\n + COLON\n + process_comments(value, AFTER_COLON(key), deeper_gap)\n + SPACE\n + sv\n + process_comments(value, AFTER_VALUE(key), deeper_gap)\n\n after_comma = process_comments(value, AFTER(key), deeper_gap)\n }\n\n keys.forEach(iteratee)\n\n // if (after_comma) {\n // inside += COMMA\n // }\n\n inside += join(\n after_comma,\n process_comments(value, PREFIX_AFTER, deeper_gap),\n deeper_gap\n )\n\n return CURLY_BRACKET_OPEN\n + join_content(inside, value, gap)\n + CURLY_BRACKET_CLOSE\n}\n\n// @param {string} key\n// @param {Object} holder\n// @param {function()|Array} replacer\n// @param {string} indent\n// @param {string} gap\nfunction stringify (key, holder, gap) {\n let value = holder[key]\n\n // If the value has a toJSON method, call it to obtain a replacement value.\n if (isObject(value) && isFunction(value.toJSON)) {\n value = value.toJSON(key)\n }\n\n // If we were called with a replacer function, then call the replacer to\n // obtain a replacement value.\n if (isFunction(replacer)) {\n value = replacer.call(holder, key, value)\n }\n\n switch (typeof value) {\n case 'string':\n return quote(value)\n\n case 'number':\n // JSON numbers must be finite. Encode non-finite numbers as null.\n return Number.isFinite(value) ? String(value) : STR_NULL\n\n case 'boolean':\n case 'null':\n\n // If the value is a boolean or null, convert it to a string. Note:\n // typeof null does not produce 'null'. The case is included here in\n // the remote chance that this gets fixed someday.\n return String(value)\n\n // If the type is 'object', we might be dealing with an object or an array or\n // null.\n case 'object':\n return isArray(value)\n ? array_stringify(value, gap)\n : object_stringify(value, gap)\n\n // undefined\n default:\n // JSON.stringify(undefined) === undefined\n // JSON.stringify('foo', () => undefined) === undefined\n }\n}\n\nconst get_indent = space => isString(space)\n // If the space parameter is a string, it will be used as the indent string.\n ? space\n : isNumber(space)\n ? repeat(SPACE, space)\n : EMPTY\n\nconst {toString} = Object.prototype\nconst PRIMITIVE_OBJECT_TYPES = [\n '[object Number]',\n '[object String]',\n '[object Boolean]'\n]\n\nconst is_primitive_object = subject => {\n if (typeof subject !== 'object') {\n return false\n }\n\n const str = toString.call(subject)\n return PRIMITIVE_OBJECT_TYPES.includes(str)\n}\n\n// @param {function()|Array} replacer\n// @param {string|number} space\nmodule.exports = (value, replacer_, space) => {\n // The stringify method takes a value and an optional replacer, and an optional\n // space parameter, and returns a JSON text. The replacer can be a function\n // that can replace values, or an array of strings that will select the keys.\n // A default replacer method can be provided. Use of the space parameter can\n // produce text that is more easily readable.\n\n // If the space parameter is a number, make an indent string containing that\n // many spaces.\n const indent_ = get_indent(space)\n\n if (!indent_) {\n return JSON.stringify(value, replacer_)\n }\n\n // vanilla `JSON.parse` allow invalid replacer\n if (!isFunction(replacer_) && !isArray(replacer_)) {\n replacer_ = null\n }\n\n replacer = replacer_\n indent = indent_\n\n const str = is_primitive_object(value)\n ? JSON.stringify(value)\n : stringify('', {'': value}, EMPTY)\n\n clean()\n\n return isObject(value)\n ? process_comments(value, PREFIX_BEFORE_ALL, EMPTY).trimLeft()\n + str\n + process_comments(value, PREFIX_AFTER_ALL, EMPTY).trimRight()\n : str\n}\n","const {parse, tokenize} = require('./parse')\nconst stringify = require('./stringify')\nconst {CommentArray} = require('./array')\nconst {assign} = require('./common')\n\nmodule.exports = {\n parse,\n stringify,\n tokenize,\n\n CommentArray,\n assign\n}\n","'use strict';\n\n\nfunction isNothing(subject) {\n return (typeof subject === 'undefined') || (subject === null);\n}\n\n\nfunction isObject(subject) {\n return (typeof subject === 'object') && (subject !== null);\n}\n\n\nfunction toArray(sequence) {\n if (Array.isArray(sequence)) return sequence;\n else if (isNothing(sequence)) return [];\n\n return [ sequence ];\n}\n\n\nfunction extend(target, source) {\n var index, length, key, sourceKeys;\n\n if (source) {\n sourceKeys = Object.keys(source);\n\n for (index = 0, length = sourceKeys.length; index < length; index += 1) {\n key = sourceKeys[index];\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\n\nfunction repeat(string, count) {\n var result = '', cycle;\n\n for (cycle = 0; cycle < count; cycle += 1) {\n result += string;\n }\n\n return result;\n}\n\n\nfunction isNegativeZero(number) {\n return (number === 0) && (Number.NEGATIVE_INFINITY === 1 / number);\n}\n\n\nmodule.exports.isNothing = isNothing;\nmodule.exports.isObject = isObject;\nmodule.exports.toArray = toArray;\nmodule.exports.repeat = repeat;\nmodule.exports.isNegativeZero = isNegativeZero;\nmodule.exports.extend = extend;\n","// YAML error class. http://stackoverflow.com/questions/8458984\n//\n'use strict';\n\nfunction YAMLException(reason, mark) {\n // Super constructor\n Error.call(this);\n\n this.name = 'YAMLException';\n this.reason = reason;\n this.mark = mark;\n this.message = (this.reason || '(unknown reason)') + (this.mark ? ' ' + this.mark.toString() : '');\n\n // Include stack trace in error object\n if (Error.captureStackTrace) {\n // Chrome and NodeJS\n Error.captureStackTrace(this, this.constructor);\n } else {\n // FF, IE 10+ and Safari 6+. Fallback for others\n this.stack = (new Error()).stack || '';\n }\n}\n\n\n// Inherit from Error\nYAMLException.prototype = Object.create(Error.prototype);\nYAMLException.prototype.constructor = YAMLException;\n\n\nYAMLException.prototype.toString = function toString(compact) {\n var result = this.name + ': ';\n\n result += this.reason || '(unknown reason)';\n\n if (!compact && this.mark) {\n result += ' ' + this.mark.toString();\n }\n\n return result;\n};\n\n\nmodule.exports = YAMLException;\n","'use strict';\n\n\nvar common = require('./common');\n\n\nfunction Mark(name, buffer, position, line, column) {\n this.name = name;\n this.buffer = buffer;\n this.position = position;\n this.line = line;\n this.column = column;\n}\n\n\nMark.prototype.getSnippet = function getSnippet(indent, maxLength) {\n var head, start, tail, end, snippet;\n\n if (!this.buffer) return null;\n\n indent = indent || 4;\n maxLength = maxLength || 75;\n\n head = '';\n start = this.position;\n\n while (start > 0 && '\\x00\\r\\n\\x85\\u2028\\u2029'.indexOf(this.buffer.charAt(start - 1)) === -1) {\n start -= 1;\n if (this.position - start > (maxLength / 2 - 1)) {\n head = ' ... ';\n start += 5;\n break;\n }\n }\n\n tail = '';\n end = this.position;\n\n while (end < this.buffer.length && '\\x00\\r\\n\\x85\\u2028\\u2029'.indexOf(this.buffer.charAt(end)) === -1) {\n end += 1;\n if (end - this.position > (maxLength / 2 - 1)) {\n tail = ' ... ';\n end -= 5;\n break;\n }\n }\n\n snippet = this.buffer.slice(start, end);\n\n return common.repeat(' ', indent) + head + snippet + tail + '\\n' +\n common.repeat(' ', indent + this.position - start + head.length) + '^';\n};\n\n\nMark.prototype.toString = function toString(compact) {\n var snippet, where = '';\n\n if (this.name) {\n where += 'in \"' + this.name + '\" ';\n }\n\n where += 'at line ' + (this.line + 1) + ', column ' + (this.column + 1);\n\n if (!compact) {\n snippet = this.getSnippet();\n\n if (snippet) {\n where += ':\\n' + snippet;\n }\n }\n\n return where;\n};\n\n\nmodule.exports = Mark;\n","'use strict';\n\nvar YAMLException = require('./exception');\n\nvar TYPE_CONSTRUCTOR_OPTIONS = [\n 'kind',\n 'resolve',\n 'construct',\n 'instanceOf',\n 'predicate',\n 'represent',\n 'defaultStyle',\n 'styleAliases'\n];\n\nvar YAML_NODE_KINDS = [\n 'scalar',\n 'sequence',\n 'mapping'\n];\n\nfunction compileStyleAliases(map) {\n var result = {};\n\n if (map !== null) {\n Object.keys(map).forEach(function (style) {\n map[style].forEach(function (alias) {\n result[String(alias)] = style;\n });\n });\n }\n\n return result;\n}\n\nfunction Type(tag, options) {\n options = options || {};\n\n Object.keys(options).forEach(function (name) {\n if (TYPE_CONSTRUCTOR_OPTIONS.indexOf(name) === -1) {\n throw new YAMLException('Unknown option \"' + name + '\" is met in definition of \"' + tag + '\" YAML type.');\n }\n });\n\n // TODO: Add tag format check.\n this.tag = tag;\n this.kind = options['kind'] || null;\n this.resolve = options['resolve'] || function () { return true; };\n this.construct = options['construct'] || function (data) { return data; };\n this.instanceOf = options['instanceOf'] || null;\n this.predicate = options['predicate'] || null;\n this.represent = options['represent'] || null;\n this.defaultStyle = options['defaultStyle'] || null;\n this.styleAliases = compileStyleAliases(options['styleAliases'] || null);\n\n if (YAML_NODE_KINDS.indexOf(this.kind) === -1) {\n throw new YAMLException('Unknown kind \"' + this.kind + '\" is specified for \"' + tag + '\" YAML type.');\n }\n}\n\nmodule.exports = Type;\n","'use strict';\n\n/*eslint-disable max-len*/\n\nvar common = require('./common');\nvar YAMLException = require('./exception');\nvar Type = require('./type');\n\n\nfunction compileList(schema, name, result) {\n var exclude = [];\n\n schema.include.forEach(function (includedSchema) {\n result = compileList(includedSchema, name, result);\n });\n\n schema[name].forEach(function (currentType) {\n result.forEach(function (previousType, previousIndex) {\n if (previousType.tag === currentType.tag && previousType.kind === currentType.kind) {\n exclude.push(previousIndex);\n }\n });\n\n result.push(currentType);\n });\n\n return result.filter(function (type, index) {\n return exclude.indexOf(index) === -1;\n });\n}\n\n\nfunction compileMap(/* lists... */) {\n var result = {\n scalar: {},\n sequence: {},\n mapping: {},\n fallback: {}\n }, index, length;\n\n function collectType(type) {\n result[type.kind][type.tag] = result['fallback'][type.tag] = type;\n }\n\n for (index = 0, length = arguments.length; index < length; index += 1) {\n arguments[index].forEach(collectType);\n }\n return result;\n}\n\n\nfunction Schema(definition) {\n this.include = definition.include || [];\n this.implicit = definition.implicit || [];\n this.explicit = definition.explicit || [];\n\n this.implicit.forEach(function (type) {\n if (type.loadKind && type.loadKind !== 'scalar') {\n throw new YAMLException('There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.');\n }\n });\n\n this.compiledImplicit = compileList(this, 'implicit', []);\n this.compiledExplicit = compileList(this, 'explicit', []);\n this.compiledTypeMap = compileMap(this.compiledImplicit, this.compiledExplicit);\n}\n\n\nSchema.DEFAULT = null;\n\n\nSchema.create = function createSchema() {\n var schemas, types;\n\n switch (arguments.length) {\n case 1:\n schemas = Schema.DEFAULT;\n types = arguments[0];\n break;\n\n case 2:\n schemas = arguments[0];\n types = arguments[1];\n break;\n\n default:\n throw new YAMLException('Wrong number of arguments for Schema.create function');\n }\n\n schemas = common.toArray(schemas);\n types = common.toArray(types);\n\n if (!schemas.every(function (schema) { return schema instanceof Schema; })) {\n throw new YAMLException('Specified list of super schemas (or a single Schema object) contains a non-Schema object.');\n }\n\n if (!types.every(function (type) { return type instanceof Type; })) {\n throw new YAMLException('Specified list of YAML types (or a single Type object) contains a non-Type object.');\n }\n\n return new Schema({\n include: schemas,\n explicit: types\n });\n};\n\n\nmodule.exports = Schema;\n","// Standard YAML's Failsafe schema.\n// http://www.yaml.org/spec/1.2/spec.html#id2802346\n\n\n'use strict';\n\n\nvar Schema = require('../schema');\n\n\nmodule.exports = new Schema({\n explicit: [\n require('../type/str'),\n require('../type/seq'),\n require('../type/map')\n ]\n});\n","'use strict';\n\nvar Type = require('../type');\n\nmodule.exports = new Type('tag:yaml.org,2002:str', {\n kind: 'scalar',\n construct: function (data) { return data !== null ? data : ''; }\n});\n","'use strict';\n\nvar Type = require('../type');\n\nmodule.exports = new Type('tag:yaml.org,2002:seq', {\n kind: 'sequence',\n construct: function (data) { return data !== null ? data : []; }\n});\n","'use strict';\n\nvar Type = require('../type');\n\nmodule.exports = new Type('tag:yaml.org,2002:map', {\n kind: 'mapping',\n construct: function (data) { return data !== null ? data : {}; }\n});\n","'use strict';\n\nvar Type = require('../type');\n\nfunction resolveYamlNull(data) {\n if (data === null) return true;\n\n var max = data.length;\n\n return (max === 1 && data === '~') ||\n (max === 4 && (data === 'null' || data === 'Null' || data === 'NULL'));\n}\n\nfunction constructYamlNull() {\n return null;\n}\n\nfunction isNull(object) {\n return object === null;\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:null', {\n kind: 'scalar',\n resolve: resolveYamlNull,\n construct: constructYamlNull,\n predicate: isNull,\n represent: {\n canonical: function () { return '~'; },\n lowercase: function () { return 'null'; },\n uppercase: function () { return 'NULL'; },\n camelcase: function () { return 'Null'; }\n },\n defaultStyle: 'lowercase'\n});\n","'use strict';\n\nvar Type = require('../type');\n\nfunction resolveYamlBoolean(data) {\n if (data === null) return false;\n\n var max = data.length;\n\n return (max === 4 && (data === 'true' || data === 'True' || data === 'TRUE')) ||\n (max === 5 && (data === 'false' || data === 'False' || data === 'FALSE'));\n}\n\nfunction constructYamlBoolean(data) {\n return data === 'true' ||\n data === 'True' ||\n data === 'TRUE';\n}\n\nfunction isBoolean(object) {\n return Object.prototype.toString.call(object) === '[object Boolean]';\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:bool', {\n kind: 'scalar',\n resolve: resolveYamlBoolean,\n construct: constructYamlBoolean,\n predicate: isBoolean,\n represent: {\n lowercase: function (object) { return object ? 'true' : 'false'; },\n uppercase: function (object) { return object ? 'TRUE' : 'FALSE'; },\n camelcase: function (object) { return object ? 'True' : 'False'; }\n },\n defaultStyle: 'lowercase'\n});\n","'use strict';\n\nvar common = require('../common');\nvar Type = require('../type');\n\nfunction isHexCode(c) {\n return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) ||\n ((0x41/* A */ <= c) && (c <= 0x46/* F */)) ||\n ((0x61/* a */ <= c) && (c <= 0x66/* f */));\n}\n\nfunction isOctCode(c) {\n return ((0x30/* 0 */ <= c) && (c <= 0x37/* 7 */));\n}\n\nfunction isDecCode(c) {\n return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */));\n}\n\nfunction resolveYamlInteger(data) {\n if (data === null) return false;\n\n var max = data.length,\n index = 0,\n hasDigits = false,\n ch;\n\n if (!max) return false;\n\n ch = data[index];\n\n // sign\n if (ch === '-' || ch === '+') {\n ch = data[++index];\n }\n\n if (ch === '0') {\n // 0\n if (index + 1 === max) return true;\n ch = data[++index];\n\n // base 2, base 8, base 16\n\n if (ch === 'b') {\n // base 2\n index++;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (ch !== '0' && ch !== '1') return false;\n hasDigits = true;\n }\n return hasDigits && ch !== '_';\n }\n\n\n if (ch === 'x') {\n // base 16\n index++;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (!isHexCode(data.charCodeAt(index))) return false;\n hasDigits = true;\n }\n return hasDigits && ch !== '_';\n }\n\n // base 8\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (!isOctCode(data.charCodeAt(index))) return false;\n hasDigits = true;\n }\n return hasDigits && ch !== '_';\n }\n\n // base 10 (except 0) or base 60\n\n // value should not start with `_`;\n if (ch === '_') return false;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (ch === ':') break;\n if (!isDecCode(data.charCodeAt(index))) {\n return false;\n }\n hasDigits = true;\n }\n\n // Should have digits and should not end with `_`\n if (!hasDigits || ch === '_') return false;\n\n // if !base60 - done;\n if (ch !== ':') return true;\n\n // base60 almost not used, no needs to optimize\n return /^(:[0-5]?[0-9])+$/.test(data.slice(index));\n}\n\nfunction constructYamlInteger(data) {\n var value = data, sign = 1, ch, base, digits = [];\n\n if (value.indexOf('_') !== -1) {\n value = value.replace(/_/g, '');\n }\n\n ch = value[0];\n\n if (ch === '-' || ch === '+') {\n if (ch === '-') sign = -1;\n value = value.slice(1);\n ch = value[0];\n }\n\n if (value === '0') return 0;\n\n if (ch === '0') {\n if (value[1] === 'b') return sign * parseInt(value.slice(2), 2);\n if (value[1] === 'x') return sign * parseInt(value, 16);\n return sign * parseInt(value, 8);\n }\n\n if (value.indexOf(':') !== -1) {\n value.split(':').forEach(function (v) {\n digits.unshift(parseInt(v, 10));\n });\n\n value = 0;\n base = 1;\n\n digits.forEach(function (d) {\n value += (d * base);\n base *= 60;\n });\n\n return sign * value;\n\n }\n\n return sign * parseInt(value, 10);\n}\n\nfunction isInteger(object) {\n return (Object.prototype.toString.call(object)) === '[object Number]' &&\n (object % 1 === 0 && !common.isNegativeZero(object));\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:int', {\n kind: 'scalar',\n resolve: resolveYamlInteger,\n construct: constructYamlInteger,\n predicate: isInteger,\n represent: {\n binary: function (obj) { return obj >= 0 ? '0b' + obj.toString(2) : '-0b' + obj.toString(2).slice(1); },\n octal: function (obj) { return obj >= 0 ? '0' + obj.toString(8) : '-0' + obj.toString(8).slice(1); },\n decimal: function (obj) { return obj.toString(10); },\n /* eslint-disable max-len */\n hexadecimal: function (obj) { return obj >= 0 ? '0x' + obj.toString(16).toUpperCase() : '-0x' + obj.toString(16).toUpperCase().slice(1); }\n },\n defaultStyle: 'decimal',\n styleAliases: {\n binary: [ 2, 'bin' ],\n octal: [ 8, 'oct' ],\n decimal: [ 10, 'dec' ],\n hexadecimal: [ 16, 'hex' ]\n }\n});\n","'use strict';\n\nvar common = require('../common');\nvar Type = require('../type');\n\nvar YAML_FLOAT_PATTERN = new RegExp(\n // 2.5e4, 2.5 and integers\n '^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?' +\n // .2e4, .2\n // special case, seems not from spec\n '|\\\\.[0-9_]+(?:[eE][-+]?[0-9]+)?' +\n // 20:59\n '|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\\\.[0-9_]*' +\n // .inf\n '|[-+]?\\\\.(?:inf|Inf|INF)' +\n // .nan\n '|\\\\.(?:nan|NaN|NAN))$');\n\nfunction resolveYamlFloat(data) {\n if (data === null) return false;\n\n if (!YAML_FLOAT_PATTERN.test(data) ||\n // Quick hack to not allow integers end with `_`\n // Probably should update regexp & check speed\n data[data.length - 1] === '_') {\n return false;\n }\n\n return true;\n}\n\nfunction constructYamlFloat(data) {\n var value, sign, base, digits;\n\n value = data.replace(/_/g, '').toLowerCase();\n sign = value[0] === '-' ? -1 : 1;\n digits = [];\n\n if ('+-'.indexOf(value[0]) >= 0) {\n value = value.slice(1);\n }\n\n if (value === '.inf') {\n return (sign === 1) ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY;\n\n } else if (value === '.nan') {\n return NaN;\n\n } else if (value.indexOf(':') >= 0) {\n value.split(':').forEach(function (v) {\n digits.unshift(parseFloat(v, 10));\n });\n\n value = 0.0;\n base = 1;\n\n digits.forEach(function (d) {\n value += d * base;\n base *= 60;\n });\n\n return sign * value;\n\n }\n return sign * parseFloat(value, 10);\n}\n\n\nvar SCIENTIFIC_WITHOUT_DOT = /^[-+]?[0-9]+e/;\n\nfunction representYamlFloat(object, style) {\n var res;\n\n if (isNaN(object)) {\n switch (style) {\n case 'lowercase': return '.nan';\n case 'uppercase': return '.NAN';\n case 'camelcase': return '.NaN';\n }\n } else if (Number.POSITIVE_INFINITY === object) {\n switch (style) {\n case 'lowercase': return '.inf';\n case 'uppercase': return '.INF';\n case 'camelcase': return '.Inf';\n }\n } else if (Number.NEGATIVE_INFINITY === object) {\n switch (style) {\n case 'lowercase': return '-.inf';\n case 'uppercase': return '-.INF';\n case 'camelcase': return '-.Inf';\n }\n } else if (common.isNegativeZero(object)) {\n return '-0.0';\n }\n\n res = object.toString(10);\n\n // JS stringifier can build scientific format without dots: 5e-100,\n // while YAML requres dot: 5.e-100. Fix it with simple hack\n\n return SCIENTIFIC_WITHOUT_DOT.test(res) ? res.replace('e', '.e') : res;\n}\n\nfunction isFloat(object) {\n return (Object.prototype.toString.call(object) === '[object Number]') &&\n (object % 1 !== 0 || common.isNegativeZero(object));\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:float', {\n kind: 'scalar',\n resolve: resolveYamlFloat,\n construct: constructYamlFloat,\n predicate: isFloat,\n represent: representYamlFloat,\n defaultStyle: 'lowercase'\n});\n","// Standard YAML's JSON schema.\n// http://www.yaml.org/spec/1.2/spec.html#id2803231\n//\n// NOTE: JS-YAML does not support schema-specific tag resolution restrictions.\n// So, this schema is not such strict as defined in the YAML specification.\n// It allows numbers in binary notaion, use `Null` and `NULL` as `null`, etc.\n\n\n'use strict';\n\n\nvar Schema = require('../schema');\n\n\nmodule.exports = new Schema({\n include: [\n require('./failsafe')\n ],\n implicit: [\n require('../type/null'),\n require('../type/bool'),\n require('../type/int'),\n require('../type/float')\n ]\n});\n","// Standard YAML's Core schema.\n// http://www.yaml.org/spec/1.2/spec.html#id2804923\n//\n// NOTE: JS-YAML does not support schema-specific tag resolution restrictions.\n// So, Core schema has no distinctions from JSON schema is JS-YAML.\n\n\n'use strict';\n\n\nvar Schema = require('../schema');\n\n\nmodule.exports = new Schema({\n include: [\n require('./json')\n ]\n});\n","'use strict';\n\nvar Type = require('../type');\n\nvar YAML_DATE_REGEXP = new RegExp(\n '^([0-9][0-9][0-9][0-9])' + // [1] year\n '-([0-9][0-9])' + // [2] month\n '-([0-9][0-9])$'); // [3] day\n\nvar YAML_TIMESTAMP_REGEXP = new RegExp(\n '^([0-9][0-9][0-9][0-9])' + // [1] year\n '-([0-9][0-9]?)' + // [2] month\n '-([0-9][0-9]?)' + // [3] day\n '(?:[Tt]|[ \\\\t]+)' + // ...\n '([0-9][0-9]?)' + // [4] hour\n ':([0-9][0-9])' + // [5] minute\n ':([0-9][0-9])' + // [6] second\n '(?:\\\\.([0-9]*))?' + // [7] fraction\n '(?:[ \\\\t]*(Z|([-+])([0-9][0-9]?)' + // [8] tz [9] tz_sign [10] tz_hour\n '(?::([0-9][0-9]))?))?$'); // [11] tz_minute\n\nfunction resolveYamlTimestamp(data) {\n if (data === null) return false;\n if (YAML_DATE_REGEXP.exec(data) !== null) return true;\n if (YAML_TIMESTAMP_REGEXP.exec(data) !== null) return true;\n return false;\n}\n\nfunction constructYamlTimestamp(data) {\n var match, year, month, day, hour, minute, second, fraction = 0,\n delta = null, tz_hour, tz_minute, date;\n\n match = YAML_DATE_REGEXP.exec(data);\n if (match === null) match = YAML_TIMESTAMP_REGEXP.exec(data);\n\n if (match === null) throw new Error('Date resolve error');\n\n // match: [1] year [2] month [3] day\n\n year = +(match[1]);\n month = +(match[2]) - 1; // JS month starts with 0\n day = +(match[3]);\n\n if (!match[4]) { // no hour\n return new Date(Date.UTC(year, month, day));\n }\n\n // match: [4] hour [5] minute [6] second [7] fraction\n\n hour = +(match[4]);\n minute = +(match[5]);\n second = +(match[6]);\n\n if (match[7]) {\n fraction = match[7].slice(0, 3);\n while (fraction.length < 3) { // milli-seconds\n fraction += '0';\n }\n fraction = +fraction;\n }\n\n // match: [8] tz [9] tz_sign [10] tz_hour [11] tz_minute\n\n if (match[9]) {\n tz_hour = +(match[10]);\n tz_minute = +(match[11] || 0);\n delta = (tz_hour * 60 + tz_minute) * 60000; // delta in mili-seconds\n if (match[9] === '-') delta = -delta;\n }\n\n date = new Date(Date.UTC(year, month, day, hour, minute, second, fraction));\n\n if (delta) date.setTime(date.getTime() - delta);\n\n return date;\n}\n\nfunction representYamlTimestamp(object /*, style*/) {\n return object.toISOString();\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:timestamp', {\n kind: 'scalar',\n resolve: resolveYamlTimestamp,\n construct: constructYamlTimestamp,\n instanceOf: Date,\n represent: representYamlTimestamp\n});\n","'use strict';\n\n/*eslint-disable no-bitwise*/\n\nvar NodeBuffer;\n\ntry {\n // A trick for browserified version, to not include `Buffer` shim\n var _require = require;\n NodeBuffer = _require('buffer').Buffer;\n} catch (__) {}\n\nvar Type = require('../type');\n\n\n// [ 64, 65, 66 ] -> [ padding, CR, LF ]\nvar BASE64_MAP = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\\n\\r';\n\n\nfunction resolveYamlBinary(data) {\n if (data === null) return false;\n\n var code, idx, bitlen = 0, max = data.length, map = BASE64_MAP;\n\n // Convert one by one.\n for (idx = 0; idx < max; idx++) {\n code = map.indexOf(data.charAt(idx));\n\n // Skip CR/LF\n if (code > 64) continue;\n\n // Fail on illegal characters\n if (code < 0) return false;\n\n bitlen += 6;\n }\n\n // If there are any bits left, source was corrupted\n return (bitlen % 8) === 0;\n}\n\nfunction constructYamlBinary(data) {\n var idx, tailbits,\n input = data.replace(/[\\r\\n=]/g, ''), // remove CR/LF & padding to simplify scan\n max = input.length,\n map = BASE64_MAP,\n bits = 0,\n result = [];\n\n // Collect by 6*4 bits (3 bytes)\n\n for (idx = 0; idx < max; idx++) {\n if ((idx % 4 === 0) && idx) {\n result.push((bits >> 16) & 0xFF);\n result.push((bits >> 8) & 0xFF);\n result.push(bits & 0xFF);\n }\n\n bits = (bits << 6) | map.indexOf(input.charAt(idx));\n }\n\n // Dump tail\n\n tailbits = (max % 4) * 6;\n\n if (tailbits === 0) {\n result.push((bits >> 16) & 0xFF);\n result.push((bits >> 8) & 0xFF);\n result.push(bits & 0xFF);\n } else if (tailbits === 18) {\n result.push((bits >> 10) & 0xFF);\n result.push((bits >> 2) & 0xFF);\n } else if (tailbits === 12) {\n result.push((bits >> 4) & 0xFF);\n }\n\n // Wrap into Buffer for NodeJS and leave Array for browser\n if (NodeBuffer) {\n // Support node 6.+ Buffer API when available\n return NodeBuffer.from ? NodeBuffer.from(result) : new NodeBuffer(result);\n }\n\n return result;\n}\n\nfunction representYamlBinary(object /*, style*/) {\n var result = '', bits = 0, idx, tail,\n max = object.length,\n map = BASE64_MAP;\n\n // Convert every three bytes to 4 ASCII characters.\n\n for (idx = 0; idx < max; idx++) {\n if ((idx % 3 === 0) && idx) {\n result += map[(bits >> 18) & 0x3F];\n result += map[(bits >> 12) & 0x3F];\n result += map[(bits >> 6) & 0x3F];\n result += map[bits & 0x3F];\n }\n\n bits = (bits << 8) + object[idx];\n }\n\n // Dump tail\n\n tail = max % 3;\n\n if (tail === 0) {\n result += map[(bits >> 18) & 0x3F];\n result += map[(bits >> 12) & 0x3F];\n result += map[(bits >> 6) & 0x3F];\n result += map[bits & 0x3F];\n } else if (tail === 2) {\n result += map[(bits >> 10) & 0x3F];\n result += map[(bits >> 4) & 0x3F];\n result += map[(bits << 2) & 0x3F];\n result += map[64];\n } else if (tail === 1) {\n result += map[(bits >> 2) & 0x3F];\n result += map[(bits << 4) & 0x3F];\n result += map[64];\n result += map[64];\n }\n\n return result;\n}\n\nfunction isBinary(object) {\n return NodeBuffer && NodeBuffer.isBuffer(object);\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:binary', {\n kind: 'scalar',\n resolve: resolveYamlBinary,\n construct: constructYamlBinary,\n predicate: isBinary,\n represent: representYamlBinary\n});\n","'use strict';\n\nvar Type = require('../type');\n\nfunction resolveYamlMerge(data) {\n return data === '<<' || data === null;\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:merge', {\n kind: 'scalar',\n resolve: resolveYamlMerge\n});\n","'use strict';\n\nvar Type = require('../type');\n\nvar _hasOwnProperty = Object.prototype.hasOwnProperty;\nvar _toString = Object.prototype.toString;\n\nfunction resolveYamlOmap(data) {\n if (data === null) return true;\n\n var objectKeys = [], index, length, pair, pairKey, pairHasKey,\n object = data;\n\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n pairHasKey = false;\n\n if (_toString.call(pair) !== '[object Object]') return false;\n\n for (pairKey in pair) {\n if (_hasOwnProperty.call(pair, pairKey)) {\n if (!pairHasKey) pairHasKey = true;\n else return false;\n }\n }\n\n if (!pairHasKey) return false;\n\n if (objectKeys.indexOf(pairKey) === -1) objectKeys.push(pairKey);\n else return false;\n }\n\n return true;\n}\n\nfunction constructYamlOmap(data) {\n return data !== null ? data : [];\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:omap', {\n kind: 'sequence',\n resolve: resolveYamlOmap,\n construct: constructYamlOmap\n});\n","'use strict';\n\nvar Type = require('../type');\n\nvar _toString = Object.prototype.toString;\n\nfunction resolveYamlPairs(data) {\n if (data === null) return true;\n\n var index, length, pair, keys, result,\n object = data;\n\n result = new Array(object.length);\n\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n\n if (_toString.call(pair) !== '[object Object]') return false;\n\n keys = Object.keys(pair);\n\n if (keys.length !== 1) return false;\n\n result[index] = [ keys[0], pair[keys[0]] ];\n }\n\n return true;\n}\n\nfunction constructYamlPairs(data) {\n if (data === null) return [];\n\n var index, length, pair, keys, result,\n object = data;\n\n result = new Array(object.length);\n\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n\n keys = Object.keys(pair);\n\n result[index] = [ keys[0], pair[keys[0]] ];\n }\n\n return result;\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:pairs', {\n kind: 'sequence',\n resolve: resolveYamlPairs,\n construct: constructYamlPairs\n});\n","'use strict';\n\nvar Type = require('../type');\n\nvar _hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction resolveYamlSet(data) {\n if (data === null) return true;\n\n var key, object = data;\n\n for (key in object) {\n if (_hasOwnProperty.call(object, key)) {\n if (object[key] !== null) return false;\n }\n }\n\n return true;\n}\n\nfunction constructYamlSet(data) {\n return data !== null ? data : {};\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:set', {\n kind: 'mapping',\n resolve: resolveYamlSet,\n construct: constructYamlSet\n});\n","// JS-YAML's default schema for `safeLoad` function.\n// It is not described in the YAML specification.\n//\n// This schema is based on standard YAML's Core schema and includes most of\n// extra types described at YAML tag repository. (http://yaml.org/type/)\n\n\n'use strict';\n\n\nvar Schema = require('../schema');\n\n\nmodule.exports = new Schema({\n include: [\n require('./core')\n ],\n implicit: [\n require('../type/timestamp'),\n require('../type/merge')\n ],\n explicit: [\n require('../type/binary'),\n require('../type/omap'),\n require('../type/pairs'),\n require('../type/set')\n ]\n});\n","'use strict';\n\nvar Type = require('../../type');\n\nfunction resolveJavascriptUndefined() {\n return true;\n}\n\nfunction constructJavascriptUndefined() {\n /*eslint-disable no-undefined*/\n return undefined;\n}\n\nfunction representJavascriptUndefined() {\n return '';\n}\n\nfunction isUndefined(object) {\n return typeof object === 'undefined';\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:js/undefined', {\n kind: 'scalar',\n resolve: resolveJavascriptUndefined,\n construct: constructJavascriptUndefined,\n predicate: isUndefined,\n represent: representJavascriptUndefined\n});\n","'use strict';\n\nvar esprima;\n\n// Browserified version does not have esprima\n//\n// 1. For node.js just require module as deps\n// 2. For browser try to require mudule via external AMD system.\n// If not found - try to fallback to window.esprima. If not\n// found too - then fail to parse.\n//\ntry {\n // workaround to exclude package from browserify list.\n var _require = require;\n esprima = _require('esprima');\n} catch (_) {\n /* eslint-disable no-redeclare */\n /* global window */\n if (typeof window !== 'undefined') esprima = window.esprima;\n}\n\nvar Type = require('../../type');\n\nfunction resolveJavascriptFunction(data) {\n if (data === null) return false;\n\n try {\n var source = '(' + data + ')',\n ast = esprima.parse(source, { range: true });\n\n if (ast.type !== 'Program' ||\n ast.body.length !== 1 ||\n ast.body[0].type !== 'ExpressionStatement' ||\n (ast.body[0].expression.type !== 'ArrowFunctionExpression' &&\n ast.body[0].expression.type !== 'FunctionExpression')) {\n return false;\n }\n\n return true;\n } catch (err) {\n return false;\n }\n}\n\nfunction constructJavascriptFunction(data) {\n /*jslint evil:true*/\n\n var source = '(' + data + ')',\n ast = esprima.parse(source, { range: true }),\n params = [],\n body;\n\n if (ast.type !== 'Program' ||\n ast.body.length !== 1 ||\n ast.body[0].type !== 'ExpressionStatement' ||\n (ast.body[0].expression.type !== 'ArrowFunctionExpression' &&\n ast.body[0].expression.type !== 'FunctionExpression')) {\n throw new Error('Failed to resolve function');\n }\n\n ast.body[0].expression.params.forEach(function (param) {\n params.push(param.name);\n });\n\n body = ast.body[0].expression.body.range;\n\n // Esprima's ranges include the first '{' and the last '}' characters on\n // function expressions. So cut them out.\n if (ast.body[0].expression.body.type === 'BlockStatement') {\n /*eslint-disable no-new-func*/\n return new Function(params, source.slice(body[0] + 1, body[1] - 1));\n }\n // ES6 arrow functions can omit the BlockStatement. In that case, just return\n // the body.\n /*eslint-disable no-new-func*/\n return new Function(params, 'return ' + source.slice(body[0], body[1]));\n}\n\nfunction representJavascriptFunction(object /*, style*/) {\n return object.toString();\n}\n\nfunction isFunction(object) {\n return Object.prototype.toString.call(object) === '[object Function]';\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:js/function', {\n kind: 'scalar',\n resolve: resolveJavascriptFunction,\n construct: constructJavascriptFunction,\n predicate: isFunction,\n represent: representJavascriptFunction\n});\n","'use strict';\n\nvar Type = require('../../type');\n\nfunction resolveJavascriptRegExp(data) {\n if (data === null) return false;\n if (data.length === 0) return false;\n\n var regexp = data,\n tail = /\\/([gim]*)$/.exec(data),\n modifiers = '';\n\n // if regexp starts with '/' it can have modifiers and must be properly closed\n // `/foo/gim` - modifiers tail can be maximum 3 chars\n if (regexp[0] === '/') {\n if (tail) modifiers = tail[1];\n\n if (modifiers.length > 3) return false;\n // if expression starts with /, is should be properly terminated\n if (regexp[regexp.length - modifiers.length - 1] !== '/') return false;\n }\n\n return true;\n}\n\nfunction constructJavascriptRegExp(data) {\n var regexp = data,\n tail = /\\/([gim]*)$/.exec(data),\n modifiers = '';\n\n // `/foo/gim` - tail can be maximum 4 chars\n if (regexp[0] === '/') {\n if (tail) modifiers = tail[1];\n regexp = regexp.slice(1, regexp.length - modifiers.length - 1);\n }\n\n return new RegExp(regexp, modifiers);\n}\n\nfunction representJavascriptRegExp(object /*, style*/) {\n var result = '/' + object.source + '/';\n\n if (object.global) result += 'g';\n if (object.multiline) result += 'm';\n if (object.ignoreCase) result += 'i';\n\n return result;\n}\n\nfunction isRegExp(object) {\n return Object.prototype.toString.call(object) === '[object RegExp]';\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:js/regexp', {\n kind: 'scalar',\n resolve: resolveJavascriptRegExp,\n construct: constructJavascriptRegExp,\n predicate: isRegExp,\n represent: representJavascriptRegExp\n});\n","// JS-YAML's default schema for `load` function.\n// It is not described in the YAML specification.\n//\n// This schema is based on JS-YAML's default safe schema and includes\n// JavaScript-specific types: !!js/undefined, !!js/regexp and !!js/function.\n//\n// Also this schema is used as default base schema at `Schema.create` function.\n\n\n'use strict';\n\n\nvar Schema = require('../schema');\n\n\nmodule.exports = Schema.DEFAULT = new Schema({\n include: [\n require('./default_safe')\n ],\n explicit: [\n require('../type/js/undefined'),\n require('../type/js/regexp'),\n require('../type/js/function')\n ]\n});\n","'use strict';\n\n/*eslint-disable max-len,no-use-before-define*/\n\nvar common = require('./common');\nvar YAMLException = require('./exception');\nvar Mark = require('./mark');\nvar DEFAULT_SAFE_SCHEMA = require('./schema/default_safe');\nvar DEFAULT_FULL_SCHEMA = require('./schema/default_full');\n\n\nvar _hasOwnProperty = Object.prototype.hasOwnProperty;\n\n\nvar CONTEXT_FLOW_IN = 1;\nvar CONTEXT_FLOW_OUT = 2;\nvar CONTEXT_BLOCK_IN = 3;\nvar CONTEXT_BLOCK_OUT = 4;\n\n\nvar CHOMPING_CLIP = 1;\nvar CHOMPING_STRIP = 2;\nvar CHOMPING_KEEP = 3;\n\n\nvar PATTERN_NON_PRINTABLE = /[\\x00-\\x08\\x0B\\x0C\\x0E-\\x1F\\x7F-\\x84\\x86-\\x9F\\uFFFE\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/;\nvar PATTERN_NON_ASCII_LINE_BREAKS = /[\\x85\\u2028\\u2029]/;\nvar PATTERN_FLOW_INDICATORS = /[,\\[\\]\\{\\}]/;\nvar PATTERN_TAG_HANDLE = /^(?:!|!!|![a-z\\-]+!)$/i;\nvar PATTERN_TAG_URI = /^(?:!|[^,\\[\\]\\{\\}])(?:%[0-9a-f]{2}|[0-9a-z\\-#;\\/\\?:@&=\\+\\$,_\\.!~\\*'\\(\\)\\[\\]])*$/i;\n\n\nfunction _class(obj) { return Object.prototype.toString.call(obj); }\n\nfunction is_EOL(c) {\n return (c === 0x0A/* LF */) || (c === 0x0D/* CR */);\n}\n\nfunction is_WHITE_SPACE(c) {\n return (c === 0x09/* Tab */) || (c === 0x20/* Space */);\n}\n\nfunction is_WS_OR_EOL(c) {\n return (c === 0x09/* Tab */) ||\n (c === 0x20/* Space */) ||\n (c === 0x0A/* LF */) ||\n (c === 0x0D/* CR */);\n}\n\nfunction is_FLOW_INDICATOR(c) {\n return c === 0x2C/* , */ ||\n c === 0x5B/* [ */ ||\n c === 0x5D/* ] */ ||\n c === 0x7B/* { */ ||\n c === 0x7D/* } */;\n}\n\nfunction fromHexCode(c) {\n var lc;\n\n if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) {\n return c - 0x30;\n }\n\n /*eslint-disable no-bitwise*/\n lc = c | 0x20;\n\n if ((0x61/* a */ <= lc) && (lc <= 0x66/* f */)) {\n return lc - 0x61 + 10;\n }\n\n return -1;\n}\n\nfunction escapedHexLen(c) {\n if (c === 0x78/* x */) { return 2; }\n if (c === 0x75/* u */) { return 4; }\n if (c === 0x55/* U */) { return 8; }\n return 0;\n}\n\nfunction fromDecimalCode(c) {\n if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) {\n return c - 0x30;\n }\n\n return -1;\n}\n\nfunction simpleEscapeSequence(c) {\n /* eslint-disable indent */\n return (c === 0x30/* 0 */) ? '\\x00' :\n (c === 0x61/* a */) ? '\\x07' :\n (c === 0x62/* b */) ? '\\x08' :\n (c === 0x74/* t */) ? '\\x09' :\n (c === 0x09/* Tab */) ? '\\x09' :\n (c === 0x6E/* n */) ? '\\x0A' :\n (c === 0x76/* v */) ? '\\x0B' :\n (c === 0x66/* f */) ? '\\x0C' :\n (c === 0x72/* r */) ? '\\x0D' :\n (c === 0x65/* e */) ? '\\x1B' :\n (c === 0x20/* Space */) ? ' ' :\n (c === 0x22/* \" */) ? '\\x22' :\n (c === 0x2F/* / */) ? '/' :\n (c === 0x5C/* \\ */) ? '\\x5C' :\n (c === 0x4E/* N */) ? '\\x85' :\n (c === 0x5F/* _ */) ? '\\xA0' :\n (c === 0x4C/* L */) ? '\\u2028' :\n (c === 0x50/* P */) ? '\\u2029' : '';\n}\n\nfunction charFromCodepoint(c) {\n if (c <= 0xFFFF) {\n return String.fromCharCode(c);\n }\n // Encode UTF-16 surrogate pair\n // https://en.wikipedia.org/wiki/UTF-16#Code_points_U.2B010000_to_U.2B10FFFF\n return String.fromCharCode(\n ((c - 0x010000) >> 10) + 0xD800,\n ((c - 0x010000) & 0x03FF) + 0xDC00\n );\n}\n\nvar simpleEscapeCheck = new Array(256); // integer, for fast access\nvar simpleEscapeMap = new Array(256);\nfor (var i = 0; i < 256; i++) {\n simpleEscapeCheck[i] = simpleEscapeSequence(i) ? 1 : 0;\n simpleEscapeMap[i] = simpleEscapeSequence(i);\n}\n\n\nfunction State(input, options) {\n this.input = input;\n\n this.filename = options['filename'] || null;\n this.schema = options['schema'] || DEFAULT_FULL_SCHEMA;\n this.onWarning = options['onWarning'] || null;\n this.legacy = options['legacy'] || false;\n this.json = options['json'] || false;\n this.listener = options['listener'] || null;\n\n this.implicitTypes = this.schema.compiledImplicit;\n this.typeMap = this.schema.compiledTypeMap;\n\n this.length = input.length;\n this.position = 0;\n this.line = 0;\n this.lineStart = 0;\n this.lineIndent = 0;\n\n this.documents = [];\n\n /*\n this.version;\n this.checkLineBreaks;\n this.tagMap;\n this.anchorMap;\n this.tag;\n this.anchor;\n this.kind;\n this.result;*/\n\n}\n\n\nfunction generateError(state, message) {\n return new YAMLException(\n message,\n new Mark(state.filename, state.input, state.position, state.line, (state.position - state.lineStart)));\n}\n\nfunction throwError(state, message) {\n throw generateError(state, message);\n}\n\nfunction throwWarning(state, message) {\n if (state.onWarning) {\n state.onWarning.call(null, generateError(state, message));\n }\n}\n\n\nvar directiveHandlers = {\n\n YAML: function handleYamlDirective(state, name, args) {\n\n var match, major, minor;\n\n if (state.version !== null) {\n throwError(state, 'duplication of %YAML directive');\n }\n\n if (args.length !== 1) {\n throwError(state, 'YAML directive accepts exactly one argument');\n }\n\n match = /^([0-9]+)\\.([0-9]+)$/.exec(args[0]);\n\n if (match === null) {\n throwError(state, 'ill-formed argument of the YAML directive');\n }\n\n major = parseInt(match[1], 10);\n minor = parseInt(match[2], 10);\n\n if (major !== 1) {\n throwError(state, 'unacceptable YAML version of the document');\n }\n\n state.version = args[0];\n state.checkLineBreaks = (minor < 2);\n\n if (minor !== 1 && minor !== 2) {\n throwWarning(state, 'unsupported YAML version of the document');\n }\n },\n\n TAG: function handleTagDirective(state, name, args) {\n\n var handle, prefix;\n\n if (args.length !== 2) {\n throwError(state, 'TAG directive accepts exactly two arguments');\n }\n\n handle = args[0];\n prefix = args[1];\n\n if (!PATTERN_TAG_HANDLE.test(handle)) {\n throwError(state, 'ill-formed tag handle (first argument) of the TAG directive');\n }\n\n if (_hasOwnProperty.call(state.tagMap, handle)) {\n throwError(state, 'there is a previously declared suffix for \"' + handle + '\" tag handle');\n }\n\n if (!PATTERN_TAG_URI.test(prefix)) {\n throwError(state, 'ill-formed tag prefix (second argument) of the TAG directive');\n }\n\n state.tagMap[handle] = prefix;\n }\n};\n\n\nfunction captureSegment(state, start, end, checkJson) {\n var _position, _length, _character, _result;\n\n if (start < end) {\n _result = state.input.slice(start, end);\n\n if (checkJson) {\n for (_position = 0, _length = _result.length; _position < _length; _position += 1) {\n _character = _result.charCodeAt(_position);\n if (!(_character === 0x09 ||\n (0x20 <= _character && _character <= 0x10FFFF))) {\n throwError(state, 'expected valid JSON character');\n }\n }\n } else if (PATTERN_NON_PRINTABLE.test(_result)) {\n throwError(state, 'the stream contains non-printable characters');\n }\n\n state.result += _result;\n }\n}\n\nfunction mergeMappings(state, destination, source, overridableKeys) {\n var sourceKeys, key, index, quantity;\n\n if (!common.isObject(source)) {\n throwError(state, 'cannot merge mappings; the provided source object is unacceptable');\n }\n\n sourceKeys = Object.keys(source);\n\n for (index = 0, quantity = sourceKeys.length; index < quantity; index += 1) {\n key = sourceKeys[index];\n\n if (!_hasOwnProperty.call(destination, key)) {\n destination[key] = source[key];\n overridableKeys[key] = true;\n }\n }\n}\n\nfunction storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, startLine, startPos) {\n var index, quantity;\n\n // The output is a plain object here, so keys can only be strings.\n // We need to convert keyNode to a string, but doing so can hang the process\n // (deeply nested arrays that explode exponentially using aliases).\n if (Array.isArray(keyNode)) {\n keyNode = Array.prototype.slice.call(keyNode);\n\n for (index = 0, quantity = keyNode.length; index < quantity; index += 1) {\n if (Array.isArray(keyNode[index])) {\n throwError(state, 'nested arrays are not supported inside keys');\n }\n\n if (typeof keyNode === 'object' && _class(keyNode[index]) === '[object Object]') {\n keyNode[index] = '[object Object]';\n }\n }\n }\n\n // Avoid code execution in load() via toString property\n // (still use its own toString for arrays, timestamps,\n // and whatever user schema extensions happen to have @@toStringTag)\n if (typeof keyNode === 'object' && _class(keyNode) === '[object Object]') {\n keyNode = '[object Object]';\n }\n\n\n keyNode = String(keyNode);\n\n if (_result === null) {\n _result = {};\n }\n\n if (keyTag === 'tag:yaml.org,2002:merge') {\n if (Array.isArray(valueNode)) {\n for (index = 0, quantity = valueNode.length; index < quantity; index += 1) {\n mergeMappings(state, _result, valueNode[index], overridableKeys);\n }\n } else {\n mergeMappings(state, _result, valueNode, overridableKeys);\n }\n } else {\n if (!state.json &&\n !_hasOwnProperty.call(overridableKeys, keyNode) &&\n _hasOwnProperty.call(_result, keyNode)) {\n state.line = startLine || state.line;\n state.position = startPos || state.position;\n throwError(state, 'duplicated mapping key');\n }\n _result[keyNode] = valueNode;\n delete overridableKeys[keyNode];\n }\n\n return _result;\n}\n\nfunction readLineBreak(state) {\n var ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x0A/* LF */) {\n state.position++;\n } else if (ch === 0x0D/* CR */) {\n state.position++;\n if (state.input.charCodeAt(state.position) === 0x0A/* LF */) {\n state.position++;\n }\n } else {\n throwError(state, 'a line break is expected');\n }\n\n state.line += 1;\n state.lineStart = state.position;\n}\n\nfunction skipSeparationSpace(state, allowComments, checkIndent) {\n var lineBreaks = 0,\n ch = state.input.charCodeAt(state.position);\n\n while (ch !== 0) {\n while (is_WHITE_SPACE(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (allowComments && ch === 0x23/* # */) {\n do {\n ch = state.input.charCodeAt(++state.position);\n } while (ch !== 0x0A/* LF */ && ch !== 0x0D/* CR */ && ch !== 0);\n }\n\n if (is_EOL(ch)) {\n readLineBreak(state);\n\n ch = state.input.charCodeAt(state.position);\n lineBreaks++;\n state.lineIndent = 0;\n\n while (ch === 0x20/* Space */) {\n state.lineIndent++;\n ch = state.input.charCodeAt(++state.position);\n }\n } else {\n break;\n }\n }\n\n if (checkIndent !== -1 && lineBreaks !== 0 && state.lineIndent < checkIndent) {\n throwWarning(state, 'deficient indentation');\n }\n\n return lineBreaks;\n}\n\nfunction testDocumentSeparator(state) {\n var _position = state.position,\n ch;\n\n ch = state.input.charCodeAt(_position);\n\n // Condition state.position === state.lineStart is tested\n // in parent on each call, for efficiency. No needs to test here again.\n if ((ch === 0x2D/* - */ || ch === 0x2E/* . */) &&\n ch === state.input.charCodeAt(_position + 1) &&\n ch === state.input.charCodeAt(_position + 2)) {\n\n _position += 3;\n\n ch = state.input.charCodeAt(_position);\n\n if (ch === 0 || is_WS_OR_EOL(ch)) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction writeFoldedLines(state, count) {\n if (count === 1) {\n state.result += ' ';\n } else if (count > 1) {\n state.result += common.repeat('\\n', count - 1);\n }\n}\n\n\nfunction readPlainScalar(state, nodeIndent, withinFlowCollection) {\n var preceding,\n following,\n captureStart,\n captureEnd,\n hasPendingContent,\n _line,\n _lineStart,\n _lineIndent,\n _kind = state.kind,\n _result = state.result,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (is_WS_OR_EOL(ch) ||\n is_FLOW_INDICATOR(ch) ||\n ch === 0x23/* # */ ||\n ch === 0x26/* & */ ||\n ch === 0x2A/* * */ ||\n ch === 0x21/* ! */ ||\n ch === 0x7C/* | */ ||\n ch === 0x3E/* > */ ||\n ch === 0x27/* ' */ ||\n ch === 0x22/* \" */ ||\n ch === 0x25/* % */ ||\n ch === 0x40/* @ */ ||\n ch === 0x60/* ` */) {\n return false;\n }\n\n if (ch === 0x3F/* ? */ || ch === 0x2D/* - */) {\n following = state.input.charCodeAt(state.position + 1);\n\n if (is_WS_OR_EOL(following) ||\n withinFlowCollection && is_FLOW_INDICATOR(following)) {\n return false;\n }\n }\n\n state.kind = 'scalar';\n state.result = '';\n captureStart = captureEnd = state.position;\n hasPendingContent = false;\n\n while (ch !== 0) {\n if (ch === 0x3A/* : */) {\n following = state.input.charCodeAt(state.position + 1);\n\n if (is_WS_OR_EOL(following) ||\n withinFlowCollection && is_FLOW_INDICATOR(following)) {\n break;\n }\n\n } else if (ch === 0x23/* # */) {\n preceding = state.input.charCodeAt(state.position - 1);\n\n if (is_WS_OR_EOL(preceding)) {\n break;\n }\n\n } else if ((state.position === state.lineStart && testDocumentSeparator(state)) ||\n withinFlowCollection && is_FLOW_INDICATOR(ch)) {\n break;\n\n } else if (is_EOL(ch)) {\n _line = state.line;\n _lineStart = state.lineStart;\n _lineIndent = state.lineIndent;\n skipSeparationSpace(state, false, -1);\n\n if (state.lineIndent >= nodeIndent) {\n hasPendingContent = true;\n ch = state.input.charCodeAt(state.position);\n continue;\n } else {\n state.position = captureEnd;\n state.line = _line;\n state.lineStart = _lineStart;\n state.lineIndent = _lineIndent;\n break;\n }\n }\n\n if (hasPendingContent) {\n captureSegment(state, captureStart, captureEnd, false);\n writeFoldedLines(state, state.line - _line);\n captureStart = captureEnd = state.position;\n hasPendingContent = false;\n }\n\n if (!is_WHITE_SPACE(ch)) {\n captureEnd = state.position + 1;\n }\n\n ch = state.input.charCodeAt(++state.position);\n }\n\n captureSegment(state, captureStart, captureEnd, false);\n\n if (state.result) {\n return true;\n }\n\n state.kind = _kind;\n state.result = _result;\n return false;\n}\n\nfunction readSingleQuotedScalar(state, nodeIndent) {\n var ch,\n captureStart, captureEnd;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x27/* ' */) {\n return false;\n }\n\n state.kind = 'scalar';\n state.result = '';\n state.position++;\n captureStart = captureEnd = state.position;\n\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n if (ch === 0x27/* ' */) {\n captureSegment(state, captureStart, state.position, true);\n ch = state.input.charCodeAt(++state.position);\n\n if (ch === 0x27/* ' */) {\n captureStart = state.position;\n state.position++;\n captureEnd = state.position;\n } else {\n return true;\n }\n\n } else if (is_EOL(ch)) {\n captureSegment(state, captureStart, captureEnd, true);\n writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent));\n captureStart = captureEnd = state.position;\n\n } else if (state.position === state.lineStart && testDocumentSeparator(state)) {\n throwError(state, 'unexpected end of the document within a single quoted scalar');\n\n } else {\n state.position++;\n captureEnd = state.position;\n }\n }\n\n throwError(state, 'unexpected end of the stream within a single quoted scalar');\n}\n\nfunction readDoubleQuotedScalar(state, nodeIndent) {\n var captureStart,\n captureEnd,\n hexLength,\n hexResult,\n tmp,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x22/* \" */) {\n return false;\n }\n\n state.kind = 'scalar';\n state.result = '';\n state.position++;\n captureStart = captureEnd = state.position;\n\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n if (ch === 0x22/* \" */) {\n captureSegment(state, captureStart, state.position, true);\n state.position++;\n return true;\n\n } else if (ch === 0x5C/* \\ */) {\n captureSegment(state, captureStart, state.position, true);\n ch = state.input.charCodeAt(++state.position);\n\n if (is_EOL(ch)) {\n skipSeparationSpace(state, false, nodeIndent);\n\n // TODO: rework to inline fn with no type cast?\n } else if (ch < 256 && simpleEscapeCheck[ch]) {\n state.result += simpleEscapeMap[ch];\n state.position++;\n\n } else if ((tmp = escapedHexLen(ch)) > 0) {\n hexLength = tmp;\n hexResult = 0;\n\n for (; hexLength > 0; hexLength--) {\n ch = state.input.charCodeAt(++state.position);\n\n if ((tmp = fromHexCode(ch)) >= 0) {\n hexResult = (hexResult << 4) + tmp;\n\n } else {\n throwError(state, 'expected hexadecimal character');\n }\n }\n\n state.result += charFromCodepoint(hexResult);\n\n state.position++;\n\n } else {\n throwError(state, 'unknown escape sequence');\n }\n\n captureStart = captureEnd = state.position;\n\n } else if (is_EOL(ch)) {\n captureSegment(state, captureStart, captureEnd, true);\n writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent));\n captureStart = captureEnd = state.position;\n\n } else if (state.position === state.lineStart && testDocumentSeparator(state)) {\n throwError(state, 'unexpected end of the document within a double quoted scalar');\n\n } else {\n state.position++;\n captureEnd = state.position;\n }\n }\n\n throwError(state, 'unexpected end of the stream within a double quoted scalar');\n}\n\nfunction readFlowCollection(state, nodeIndent) {\n var readNext = true,\n _line,\n _tag = state.tag,\n _result,\n _anchor = state.anchor,\n following,\n terminator,\n isPair,\n isExplicitPair,\n isMapping,\n overridableKeys = {},\n keyNode,\n keyTag,\n valueNode,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x5B/* [ */) {\n terminator = 0x5D;/* ] */\n isMapping = false;\n _result = [];\n } else if (ch === 0x7B/* { */) {\n terminator = 0x7D;/* } */\n isMapping = true;\n _result = {};\n } else {\n return false;\n }\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n\n ch = state.input.charCodeAt(++state.position);\n\n while (ch !== 0) {\n skipSeparationSpace(state, true, nodeIndent);\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === terminator) {\n state.position++;\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = isMapping ? 'mapping' : 'sequence';\n state.result = _result;\n return true;\n } else if (!readNext) {\n throwError(state, 'missed comma between flow collection entries');\n }\n\n keyTag = keyNode = valueNode = null;\n isPair = isExplicitPair = false;\n\n if (ch === 0x3F/* ? */) {\n following = state.input.charCodeAt(state.position + 1);\n\n if (is_WS_OR_EOL(following)) {\n isPair = isExplicitPair = true;\n state.position++;\n skipSeparationSpace(state, true, nodeIndent);\n }\n }\n\n _line = state.line;\n composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true);\n keyTag = state.tag;\n keyNode = state.result;\n skipSeparationSpace(state, true, nodeIndent);\n\n ch = state.input.charCodeAt(state.position);\n\n if ((isExplicitPair || state.line === _line) && ch === 0x3A/* : */) {\n isPair = true;\n ch = state.input.charCodeAt(++state.position);\n skipSeparationSpace(state, true, nodeIndent);\n composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true);\n valueNode = state.result;\n }\n\n if (isMapping) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode);\n } else if (isPair) {\n _result.push(storeMappingPair(state, null, overridableKeys, keyTag, keyNode, valueNode));\n } else {\n _result.push(keyNode);\n }\n\n skipSeparationSpace(state, true, nodeIndent);\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x2C/* , */) {\n readNext = true;\n ch = state.input.charCodeAt(++state.position);\n } else {\n readNext = false;\n }\n }\n\n throwError(state, 'unexpected end of the stream within a flow collection');\n}\n\nfunction readBlockScalar(state, nodeIndent) {\n var captureStart,\n folding,\n chomping = CHOMPING_CLIP,\n didReadContent = false,\n detectedIndent = false,\n textIndent = nodeIndent,\n emptyLines = 0,\n atMoreIndented = false,\n tmp,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x7C/* | */) {\n folding = false;\n } else if (ch === 0x3E/* > */) {\n folding = true;\n } else {\n return false;\n }\n\n state.kind = 'scalar';\n state.result = '';\n\n while (ch !== 0) {\n ch = state.input.charCodeAt(++state.position);\n\n if (ch === 0x2B/* + */ || ch === 0x2D/* - */) {\n if (CHOMPING_CLIP === chomping) {\n chomping = (ch === 0x2B/* + */) ? CHOMPING_KEEP : CHOMPING_STRIP;\n } else {\n throwError(state, 'repeat of a chomping mode identifier');\n }\n\n } else if ((tmp = fromDecimalCode(ch)) >= 0) {\n if (tmp === 0) {\n throwError(state, 'bad explicit indentation width of a block scalar; it cannot be less than one');\n } else if (!detectedIndent) {\n textIndent = nodeIndent + tmp - 1;\n detectedIndent = true;\n } else {\n throwError(state, 'repeat of an indentation width identifier');\n }\n\n } else {\n break;\n }\n }\n\n if (is_WHITE_SPACE(ch)) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (is_WHITE_SPACE(ch));\n\n if (ch === 0x23/* # */) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (!is_EOL(ch) && (ch !== 0));\n }\n }\n\n while (ch !== 0) {\n readLineBreak(state);\n state.lineIndent = 0;\n\n ch = state.input.charCodeAt(state.position);\n\n while ((!detectedIndent || state.lineIndent < textIndent) &&\n (ch === 0x20/* Space */)) {\n state.lineIndent++;\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (!detectedIndent && state.lineIndent > textIndent) {\n textIndent = state.lineIndent;\n }\n\n if (is_EOL(ch)) {\n emptyLines++;\n continue;\n }\n\n // End of the scalar.\n if (state.lineIndent < textIndent) {\n\n // Perform the chomping.\n if (chomping === CHOMPING_KEEP) {\n state.result += common.repeat('\\n', didReadContent ? 1 + emptyLines : emptyLines);\n } else if (chomping === CHOMPING_CLIP) {\n if (didReadContent) { // i.e. only if the scalar is not empty.\n state.result += '\\n';\n }\n }\n\n // Break this `while` cycle and go to the funciton's epilogue.\n break;\n }\n\n // Folded style: use fancy rules to handle line breaks.\n if (folding) {\n\n // Lines starting with white space characters (more-indented lines) are not folded.\n if (is_WHITE_SPACE(ch)) {\n atMoreIndented = true;\n // except for the first content line (cf. Example 8.1)\n state.result += common.repeat('\\n', didReadContent ? 1 + emptyLines : emptyLines);\n\n // End of more-indented block.\n } else if (atMoreIndented) {\n atMoreIndented = false;\n state.result += common.repeat('\\n', emptyLines + 1);\n\n // Just one line break - perceive as the same line.\n } else if (emptyLines === 0) {\n if (didReadContent) { // i.e. only if we have already read some scalar content.\n state.result += ' ';\n }\n\n // Several line breaks - perceive as different lines.\n } else {\n state.result += common.repeat('\\n', emptyLines);\n }\n\n // Literal style: just add exact number of line breaks between content lines.\n } else {\n // Keep all line breaks except the header line break.\n state.result += common.repeat('\\n', didReadContent ? 1 + emptyLines : emptyLines);\n }\n\n didReadContent = true;\n detectedIndent = true;\n emptyLines = 0;\n captureStart = state.position;\n\n while (!is_EOL(ch) && (ch !== 0)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n captureSegment(state, captureStart, state.position, false);\n }\n\n return true;\n}\n\nfunction readBlockSequence(state, nodeIndent) {\n var _line,\n _tag = state.tag,\n _anchor = state.anchor,\n _result = [],\n following,\n detected = false,\n ch;\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n\n ch = state.input.charCodeAt(state.position);\n\n while (ch !== 0) {\n\n if (ch !== 0x2D/* - */) {\n break;\n }\n\n following = state.input.charCodeAt(state.position + 1);\n\n if (!is_WS_OR_EOL(following)) {\n break;\n }\n\n detected = true;\n state.position++;\n\n if (skipSeparationSpace(state, true, -1)) {\n if (state.lineIndent <= nodeIndent) {\n _result.push(null);\n ch = state.input.charCodeAt(state.position);\n continue;\n }\n }\n\n _line = state.line;\n composeNode(state, nodeIndent, CONTEXT_BLOCK_IN, false, true);\n _result.push(state.result);\n skipSeparationSpace(state, true, -1);\n\n ch = state.input.charCodeAt(state.position);\n\n if ((state.line === _line || state.lineIndent > nodeIndent) && (ch !== 0)) {\n throwError(state, 'bad indentation of a sequence entry');\n } else if (state.lineIndent < nodeIndent) {\n break;\n }\n }\n\n if (detected) {\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = 'sequence';\n state.result = _result;\n return true;\n }\n return false;\n}\n\nfunction readBlockMapping(state, nodeIndent, flowIndent) {\n var following,\n allowCompact,\n _line,\n _pos,\n _tag = state.tag,\n _anchor = state.anchor,\n _result = {},\n overridableKeys = {},\n keyTag = null,\n keyNode = null,\n valueNode = null,\n atExplicitKey = false,\n detected = false,\n ch;\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n\n ch = state.input.charCodeAt(state.position);\n\n while (ch !== 0) {\n following = state.input.charCodeAt(state.position + 1);\n _line = state.line; // Save the current line.\n _pos = state.position;\n\n //\n // Explicit notation case. There are two separate blocks:\n // first for the key (denoted by \"?\") and second for the value (denoted by \":\")\n //\n if ((ch === 0x3F/* ? */ || ch === 0x3A/* : */) && is_WS_OR_EOL(following)) {\n\n if (ch === 0x3F/* ? */) {\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null);\n keyTag = keyNode = valueNode = null;\n }\n\n detected = true;\n atExplicitKey = true;\n allowCompact = true;\n\n } else if (atExplicitKey) {\n // i.e. 0x3A/* : */ === character after the explicit key.\n atExplicitKey = false;\n allowCompact = true;\n\n } else {\n throwError(state, 'incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line');\n }\n\n state.position += 1;\n ch = following;\n\n //\n // Implicit notation case. Flow-style node as the key first, then \":\", and the value.\n //\n } else if (composeNode(state, flowIndent, CONTEXT_FLOW_OUT, false, true)) {\n\n if (state.line === _line) {\n ch = state.input.charCodeAt(state.position);\n\n while (is_WHITE_SPACE(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (ch === 0x3A/* : */) {\n ch = state.input.charCodeAt(++state.position);\n\n if (!is_WS_OR_EOL(ch)) {\n throwError(state, 'a whitespace character is expected after the key-value separator within a block mapping');\n }\n\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null);\n keyTag = keyNode = valueNode = null;\n }\n\n detected = true;\n atExplicitKey = false;\n allowCompact = false;\n keyTag = state.tag;\n keyNode = state.result;\n\n } else if (detected) {\n throwError(state, 'can not read an implicit mapping pair; a colon is missed');\n\n } else {\n state.tag = _tag;\n state.anchor = _anchor;\n return true; // Keep the result of `composeNode`.\n }\n\n } else if (detected) {\n throwError(state, 'can not read a block mapping entry; a multiline key may not be an implicit key');\n\n } else {\n state.tag = _tag;\n state.anchor = _anchor;\n return true; // Keep the result of `composeNode`.\n }\n\n } else {\n break; // Reading is done. Go to the epilogue.\n }\n\n //\n // Common reading code for both explicit and implicit notations.\n //\n if (state.line === _line || state.lineIndent > nodeIndent) {\n if (composeNode(state, nodeIndent, CONTEXT_BLOCK_OUT, true, allowCompact)) {\n if (atExplicitKey) {\n keyNode = state.result;\n } else {\n valueNode = state.result;\n }\n }\n\n if (!atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _line, _pos);\n keyTag = keyNode = valueNode = null;\n }\n\n skipSeparationSpace(state, true, -1);\n ch = state.input.charCodeAt(state.position);\n }\n\n if (state.lineIndent > nodeIndent && (ch !== 0)) {\n throwError(state, 'bad indentation of a mapping entry');\n } else if (state.lineIndent < nodeIndent) {\n break;\n }\n }\n\n //\n // Epilogue.\n //\n\n // Special case: last mapping's node contains only the key in explicit notation.\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null);\n }\n\n // Expose the resulting mapping.\n if (detected) {\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = 'mapping';\n state.result = _result;\n }\n\n return detected;\n}\n\nfunction readTagProperty(state) {\n var _position,\n isVerbatim = false,\n isNamed = false,\n tagHandle,\n tagName,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x21/* ! */) return false;\n\n if (state.tag !== null) {\n throwError(state, 'duplication of a tag property');\n }\n\n ch = state.input.charCodeAt(++state.position);\n\n if (ch === 0x3C/* < */) {\n isVerbatim = true;\n ch = state.input.charCodeAt(++state.position);\n\n } else if (ch === 0x21/* ! */) {\n isNamed = true;\n tagHandle = '!!';\n ch = state.input.charCodeAt(++state.position);\n\n } else {\n tagHandle = '!';\n }\n\n _position = state.position;\n\n if (isVerbatim) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (ch !== 0 && ch !== 0x3E/* > */);\n\n if (state.position < state.length) {\n tagName = state.input.slice(_position, state.position);\n ch = state.input.charCodeAt(++state.position);\n } else {\n throwError(state, 'unexpected end of the stream within a verbatim tag');\n }\n } else {\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n\n if (ch === 0x21/* ! */) {\n if (!isNamed) {\n tagHandle = state.input.slice(_position - 1, state.position + 1);\n\n if (!PATTERN_TAG_HANDLE.test(tagHandle)) {\n throwError(state, 'named tag handle cannot contain such characters');\n }\n\n isNamed = true;\n _position = state.position + 1;\n } else {\n throwError(state, 'tag suffix cannot contain exclamation marks');\n }\n }\n\n ch = state.input.charCodeAt(++state.position);\n }\n\n tagName = state.input.slice(_position, state.position);\n\n if (PATTERN_FLOW_INDICATORS.test(tagName)) {\n throwError(state, 'tag suffix cannot contain flow indicator characters');\n }\n }\n\n if (tagName && !PATTERN_TAG_URI.test(tagName)) {\n throwError(state, 'tag name cannot contain such characters: ' + tagName);\n }\n\n if (isVerbatim) {\n state.tag = tagName;\n\n } else if (_hasOwnProperty.call(state.tagMap, tagHandle)) {\n state.tag = state.tagMap[tagHandle] + tagName;\n\n } else if (tagHandle === '!') {\n state.tag = '!' + tagName;\n\n } else if (tagHandle === '!!') {\n state.tag = 'tag:yaml.org,2002:' + tagName;\n\n } else {\n throwError(state, 'undeclared tag handle \"' + tagHandle + '\"');\n }\n\n return true;\n}\n\nfunction readAnchorProperty(state) {\n var _position,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x26/* & */) return false;\n\n if (state.anchor !== null) {\n throwError(state, 'duplication of an anchor property');\n }\n\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (state.position === _position) {\n throwError(state, 'name of an anchor node must contain at least one character');\n }\n\n state.anchor = state.input.slice(_position, state.position);\n return true;\n}\n\nfunction readAlias(state) {\n var _position, alias,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x2A/* * */) return false;\n\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (state.position === _position) {\n throwError(state, 'name of an alias node must contain at least one character');\n }\n\n alias = state.input.slice(_position, state.position);\n\n if (!_hasOwnProperty.call(state.anchorMap, alias)) {\n throwError(state, 'unidentified alias \"' + alias + '\"');\n }\n\n state.result = state.anchorMap[alias];\n skipSeparationSpace(state, true, -1);\n return true;\n}\n\nfunction composeNode(state, parentIndent, nodeContext, allowToSeek, allowCompact) {\n var allowBlockStyles,\n allowBlockScalars,\n allowBlockCollections,\n indentStatus = 1, // 1: this>parent, 0: this=parent, -1: this<parent\n atNewLine = false,\n hasContent = false,\n typeIndex,\n typeQuantity,\n type,\n flowIndent,\n blockIndent;\n\n if (state.listener !== null) {\n state.listener('open', state);\n }\n\n state.tag = null;\n state.anchor = null;\n state.kind = null;\n state.result = null;\n\n allowBlockStyles = allowBlockScalars = allowBlockCollections =\n CONTEXT_BLOCK_OUT === nodeContext ||\n CONTEXT_BLOCK_IN === nodeContext;\n\n if (allowToSeek) {\n if (skipSeparationSpace(state, true, -1)) {\n atNewLine = true;\n\n if (state.lineIndent > parentIndent) {\n indentStatus = 1;\n } else if (state.lineIndent === parentIndent) {\n indentStatus = 0;\n } else if (state.lineIndent < parentIndent) {\n indentStatus = -1;\n }\n }\n }\n\n if (indentStatus === 1) {\n while (readTagProperty(state) || readAnchorProperty(state)) {\n if (skipSeparationSpace(state, true, -1)) {\n atNewLine = true;\n allowBlockCollections = allowBlockStyles;\n\n if (state.lineIndent > parentIndent) {\n indentStatus = 1;\n } else if (state.lineIndent === parentIndent) {\n indentStatus = 0;\n } else if (state.lineIndent < parentIndent) {\n indentStatus = -1;\n }\n } else {\n allowBlockCollections = false;\n }\n }\n }\n\n if (allowBlockCollections) {\n allowBlockCollections = atNewLine || allowCompact;\n }\n\n if (indentStatus === 1 || CONTEXT_BLOCK_OUT === nodeContext) {\n if (CONTEXT_FLOW_IN === nodeContext || CONTEXT_FLOW_OUT === nodeContext) {\n flowIndent = parentIndent;\n } else {\n flowIndent = parentIndent + 1;\n }\n\n blockIndent = state.position - state.lineStart;\n\n if (indentStatus === 1) {\n if (allowBlockCollections &&\n (readBlockSequence(state, blockIndent) ||\n readBlockMapping(state, blockIndent, flowIndent)) ||\n readFlowCollection(state, flowIndent)) {\n hasContent = true;\n } else {\n if ((allowBlockScalars && readBlockScalar(state, flowIndent)) ||\n readSingleQuotedScalar(state, flowIndent) ||\n readDoubleQuotedScalar(state, flowIndent)) {\n hasContent = true;\n\n } else if (readAlias(state)) {\n hasContent = true;\n\n if (state.tag !== null || state.anchor !== null) {\n throwError(state, 'alias node should not have any properties');\n }\n\n } else if (readPlainScalar(state, flowIndent, CONTEXT_FLOW_IN === nodeContext)) {\n hasContent = true;\n\n if (state.tag === null) {\n state.tag = '?';\n }\n }\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n }\n } else if (indentStatus === 0) {\n // Special case: block sequences are allowed to have same indentation level as the parent.\n // http://www.yaml.org/spec/1.2/spec.html#id2799784\n hasContent = allowBlockCollections && readBlockSequence(state, blockIndent);\n }\n }\n\n if (state.tag !== null && state.tag !== '!') {\n if (state.tag === '?') {\n // Implicit resolving is not allowed for non-scalar types, and '?'\n // non-specific tag is only automatically assigned to plain scalars.\n //\n // We only need to check kind conformity in case user explicitly assigns '?'\n // tag, for example like this: \"!<?> [0]\"\n //\n if (state.result !== null && state.kind !== 'scalar') {\n throwError(state, 'unacceptable node kind for !<?> tag; it should be \"scalar\", not \"' + state.kind + '\"');\n }\n\n for (typeIndex = 0, typeQuantity = state.implicitTypes.length; typeIndex < typeQuantity; typeIndex += 1) {\n type = state.implicitTypes[typeIndex];\n\n if (type.resolve(state.result)) { // `state.result` updated in resolver if matched\n state.result = type.construct(state.result);\n state.tag = type.tag;\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n break;\n }\n }\n } else if (_hasOwnProperty.call(state.typeMap[state.kind || 'fallback'], state.tag)) {\n type = state.typeMap[state.kind || 'fallback'][state.tag];\n\n if (state.result !== null && type.kind !== state.kind) {\n throwError(state, 'unacceptable node kind for !<' + state.tag + '> tag; it should be \"' + type.kind + '\", not \"' + state.kind + '\"');\n }\n\n if (!type.resolve(state.result)) { // `state.result` updated in resolver if matched\n throwError(state, 'cannot resolve a node with !<' + state.tag + '> explicit tag');\n } else {\n state.result = type.construct(state.result);\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n }\n } else {\n throwError(state, 'unknown tag !<' + state.tag + '>');\n }\n }\n\n if (state.listener !== null) {\n state.listener('close', state);\n }\n return state.tag !== null || state.anchor !== null || hasContent;\n}\n\nfunction readDocument(state) {\n var documentStart = state.position,\n _position,\n directiveName,\n directiveArgs,\n hasDirectives = false,\n ch;\n\n state.version = null;\n state.checkLineBreaks = state.legacy;\n state.tagMap = {};\n state.anchorMap = {};\n\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n skipSeparationSpace(state, true, -1);\n\n ch = state.input.charCodeAt(state.position);\n\n if (state.lineIndent > 0 || ch !== 0x25/* % */) {\n break;\n }\n\n hasDirectives = true;\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n directiveName = state.input.slice(_position, state.position);\n directiveArgs = [];\n\n if (directiveName.length < 1) {\n throwError(state, 'directive name must not be less than one character in length');\n }\n\n while (ch !== 0) {\n while (is_WHITE_SPACE(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (ch === 0x23/* # */) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (ch !== 0 && !is_EOL(ch));\n break;\n }\n\n if (is_EOL(ch)) break;\n\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n directiveArgs.push(state.input.slice(_position, state.position));\n }\n\n if (ch !== 0) readLineBreak(state);\n\n if (_hasOwnProperty.call(directiveHandlers, directiveName)) {\n directiveHandlers[directiveName](state, directiveName, directiveArgs);\n } else {\n throwWarning(state, 'unknown document directive \"' + directiveName + '\"');\n }\n }\n\n skipSeparationSpace(state, true, -1);\n\n if (state.lineIndent === 0 &&\n state.input.charCodeAt(state.position) === 0x2D/* - */ &&\n state.input.charCodeAt(state.position + 1) === 0x2D/* - */ &&\n state.input.charCodeAt(state.position + 2) === 0x2D/* - */) {\n state.position += 3;\n skipSeparationSpace(state, true, -1);\n\n } else if (hasDirectives) {\n throwError(state, 'directives end mark is expected');\n }\n\n composeNode(state, state.lineIndent - 1, CONTEXT_BLOCK_OUT, false, true);\n skipSeparationSpace(state, true, -1);\n\n if (state.checkLineBreaks &&\n PATTERN_NON_ASCII_LINE_BREAKS.test(state.input.slice(documentStart, state.position))) {\n throwWarning(state, 'non-ASCII line breaks are interpreted as content');\n }\n\n state.documents.push(state.result);\n\n if (state.position === state.lineStart && testDocumentSeparator(state)) {\n\n if (state.input.charCodeAt(state.position) === 0x2E/* . */) {\n state.position += 3;\n skipSeparationSpace(state, true, -1);\n }\n return;\n }\n\n if (state.position < (state.length - 1)) {\n throwError(state, 'end of the stream or a document separator is expected');\n } else {\n return;\n }\n}\n\n\nfunction loadDocuments(input, options) {\n input = String(input);\n options = options || {};\n\n if (input.length !== 0) {\n\n // Add tailing `\\n` if not exists\n if (input.charCodeAt(input.length - 1) !== 0x0A/* LF */ &&\n input.charCodeAt(input.length - 1) !== 0x0D/* CR */) {\n input += '\\n';\n }\n\n // Strip BOM\n if (input.charCodeAt(0) === 0xFEFF) {\n input = input.slice(1);\n }\n }\n\n var state = new State(input, options);\n\n var nullpos = input.indexOf('\\0');\n\n if (nullpos !== -1) {\n state.position = nullpos;\n throwError(state, 'null byte is not allowed in input');\n }\n\n // Use 0 as string terminator. That significantly simplifies bounds check.\n state.input += '\\0';\n\n while (state.input.charCodeAt(state.position) === 0x20/* Space */) {\n state.lineIndent += 1;\n state.position += 1;\n }\n\n while (state.position < (state.length - 1)) {\n readDocument(state);\n }\n\n return state.documents;\n}\n\n\nfunction loadAll(input, iterator, options) {\n if (iterator !== null && typeof iterator === 'object' && typeof options === 'undefined') {\n options = iterator;\n iterator = null;\n }\n\n var documents = loadDocuments(input, options);\n\n if (typeof iterator !== 'function') {\n return documents;\n }\n\n for (var index = 0, length = documents.length; index < length; index += 1) {\n iterator(documents[index]);\n }\n}\n\n\nfunction load(input, options) {\n var documents = loadDocuments(input, options);\n\n if (documents.length === 0) {\n /*eslint-disable no-undefined*/\n return undefined;\n } else if (documents.length === 1) {\n return documents[0];\n }\n throw new YAMLException('expected a single document in the stream, but found more');\n}\n\n\nfunction safeLoadAll(input, iterator, options) {\n if (typeof iterator === 'object' && iterator !== null && typeof options === 'undefined') {\n options = iterator;\n iterator = null;\n }\n\n return loadAll(input, iterator, common.extend({ schema: DEFAULT_SAFE_SCHEMA }, options));\n}\n\n\nfunction safeLoad(input, options) {\n return load(input, common.extend({ schema: DEFAULT_SAFE_SCHEMA }, options));\n}\n\n\nmodule.exports.loadAll = loadAll;\nmodule.exports.load = load;\nmodule.exports.safeLoadAll = safeLoadAll;\nmodule.exports.safeLoad = safeLoad;\n","'use strict';\n\n/*eslint-disable no-use-before-define*/\n\nvar common = require('./common');\nvar YAMLException = require('./exception');\nvar DEFAULT_FULL_SCHEMA = require('./schema/default_full');\nvar DEFAULT_SAFE_SCHEMA = require('./schema/default_safe');\n\nvar _toString = Object.prototype.toString;\nvar _hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar CHAR_TAB = 0x09; /* Tab */\nvar CHAR_LINE_FEED = 0x0A; /* LF */\nvar CHAR_CARRIAGE_RETURN = 0x0D; /* CR */\nvar CHAR_SPACE = 0x20; /* Space */\nvar CHAR_EXCLAMATION = 0x21; /* ! */\nvar CHAR_DOUBLE_QUOTE = 0x22; /* \" */\nvar CHAR_SHARP = 0x23; /* # */\nvar CHAR_PERCENT = 0x25; /* % */\nvar CHAR_AMPERSAND = 0x26; /* & */\nvar CHAR_SINGLE_QUOTE = 0x27; /* ' */\nvar CHAR_ASTERISK = 0x2A; /* * */\nvar CHAR_COMMA = 0x2C; /* , */\nvar CHAR_MINUS = 0x2D; /* - */\nvar CHAR_COLON = 0x3A; /* : */\nvar CHAR_EQUALS = 0x3D; /* = */\nvar CHAR_GREATER_THAN = 0x3E; /* > */\nvar CHAR_QUESTION = 0x3F; /* ? */\nvar CHAR_COMMERCIAL_AT = 0x40; /* @ */\nvar CHAR_LEFT_SQUARE_BRACKET = 0x5B; /* [ */\nvar CHAR_RIGHT_SQUARE_BRACKET = 0x5D; /* ] */\nvar CHAR_GRAVE_ACCENT = 0x60; /* ` */\nvar CHAR_LEFT_CURLY_BRACKET = 0x7B; /* { */\nvar CHAR_VERTICAL_LINE = 0x7C; /* | */\nvar CHAR_RIGHT_CURLY_BRACKET = 0x7D; /* } */\n\nvar ESCAPE_SEQUENCES = {};\n\nESCAPE_SEQUENCES[0x00] = '\\\\0';\nESCAPE_SEQUENCES[0x07] = '\\\\a';\nESCAPE_SEQUENCES[0x08] = '\\\\b';\nESCAPE_SEQUENCES[0x09] = '\\\\t';\nESCAPE_SEQUENCES[0x0A] = '\\\\n';\nESCAPE_SEQUENCES[0x0B] = '\\\\v';\nESCAPE_SEQUENCES[0x0C] = '\\\\f';\nESCAPE_SEQUENCES[0x0D] = '\\\\r';\nESCAPE_SEQUENCES[0x1B] = '\\\\e';\nESCAPE_SEQUENCES[0x22] = '\\\\\"';\nESCAPE_SEQUENCES[0x5C] = '\\\\\\\\';\nESCAPE_SEQUENCES[0x85] = '\\\\N';\nESCAPE_SEQUENCES[0xA0] = '\\\\_';\nESCAPE_SEQUENCES[0x2028] = '\\\\L';\nESCAPE_SEQUENCES[0x2029] = '\\\\P';\n\nvar DEPRECATED_BOOLEANS_SYNTAX = [\n 'y', 'Y', 'yes', 'Yes', 'YES', 'on', 'On', 'ON',\n 'n', 'N', 'no', 'No', 'NO', 'off', 'Off', 'OFF'\n];\n\nfunction compileStyleMap(schema, map) {\n var result, keys, index, length, tag, style, type;\n\n if (map === null) return {};\n\n result = {};\n keys = Object.keys(map);\n\n for (index = 0, length = keys.length; index < length; index += 1) {\n tag = keys[index];\n style = String(map[tag]);\n\n if (tag.slice(0, 2) === '!!') {\n tag = 'tag:yaml.org,2002:' + tag.slice(2);\n }\n type = schema.compiledTypeMap['fallback'][tag];\n\n if (type && _hasOwnProperty.call(type.styleAliases, style)) {\n style = type.styleAliases[style];\n }\n\n result[tag] = style;\n }\n\n return result;\n}\n\nfunction encodeHex(character) {\n var string, handle, length;\n\n string = character.toString(16).toUpperCase();\n\n if (character <= 0xFF) {\n handle = 'x';\n length = 2;\n } else if (character <= 0xFFFF) {\n handle = 'u';\n length = 4;\n } else if (character <= 0xFFFFFFFF) {\n handle = 'U';\n length = 8;\n } else {\n throw new YAMLException('code point within a string may not be greater than 0xFFFFFFFF');\n }\n\n return '\\\\' + handle + common.repeat('0', length - string.length) + string;\n}\n\nfunction State(options) {\n this.schema = options['schema'] || DEFAULT_FULL_SCHEMA;\n this.indent = Math.max(1, (options['indent'] || 2));\n this.noArrayIndent = options['noArrayIndent'] || false;\n this.skipInvalid = options['skipInvalid'] || false;\n this.flowLevel = (common.isNothing(options['flowLevel']) ? -1 : options['flowLevel']);\n this.styleMap = compileStyleMap(this.schema, options['styles'] || null);\n this.sortKeys = options['sortKeys'] || false;\n this.lineWidth = options['lineWidth'] || 80;\n this.noRefs = options['noRefs'] || false;\n this.noCompatMode = options['noCompatMode'] || false;\n this.condenseFlow = options['condenseFlow'] || false;\n\n this.implicitTypes = this.schema.compiledImplicit;\n this.explicitTypes = this.schema.compiledExplicit;\n\n this.tag = null;\n this.result = '';\n\n this.duplicates = [];\n this.usedDuplicates = null;\n}\n\n// Indents every line in a string. Empty lines (\\n only) are not indented.\nfunction indentString(string, spaces) {\n var ind = common.repeat(' ', spaces),\n position = 0,\n next = -1,\n result = '',\n line,\n length = string.length;\n\n while (position < length) {\n next = string.indexOf('\\n', position);\n if (next === -1) {\n line = string.slice(position);\n position = length;\n } else {\n line = string.slice(position, next + 1);\n position = next + 1;\n }\n\n if (line.length && line !== '\\n') result += ind;\n\n result += line;\n }\n\n return result;\n}\n\nfunction generateNextLine(state, level) {\n return '\\n' + common.repeat(' ', state.indent * level);\n}\n\nfunction testImplicitResolving(state, str) {\n var index, length, type;\n\n for (index = 0, length = state.implicitTypes.length; index < length; index += 1) {\n type = state.implicitTypes[index];\n\n if (type.resolve(str)) {\n return true;\n }\n }\n\n return false;\n}\n\n// [33] s-white ::= s-space | s-tab\nfunction isWhitespace(c) {\n return c === CHAR_SPACE || c === CHAR_TAB;\n}\n\n// Returns true if the character can be printed without escaping.\n// From YAML 1.2: \"any allowed characters known to be non-printable\n// should also be escaped. [However,] This isn’t mandatory\"\n// Derived from nb-char - \\t - #x85 - #xA0 - #x2028 - #x2029.\nfunction isPrintable(c) {\n return (0x00020 <= c && c <= 0x00007E)\n || ((0x000A1 <= c && c <= 0x00D7FF) && c !== 0x2028 && c !== 0x2029)\n || ((0x0E000 <= c && c <= 0x00FFFD) && c !== 0xFEFF /* BOM */)\n || (0x10000 <= c && c <= 0x10FFFF);\n}\n\n// [34] ns-char ::= nb-char - s-white\n// [27] nb-char ::= c-printable - b-char - c-byte-order-mark\n// [26] b-char ::= b-line-feed | b-carriage-return\n// [24] b-line-feed ::= #xA /* LF */\n// [25] b-carriage-return ::= #xD /* CR */\n// [3] c-byte-order-mark ::= #xFEFF\nfunction isNsChar(c) {\n return isPrintable(c) && !isWhitespace(c)\n // byte-order-mark\n && c !== 0xFEFF\n // b-char\n && c !== CHAR_CARRIAGE_RETURN\n && c !== CHAR_LINE_FEED;\n}\n\n// Simplified test for values allowed after the first character in plain style.\nfunction isPlainSafe(c, prev) {\n // Uses a subset of nb-char - c-flow-indicator - \":\" - \"#\"\n // where nb-char ::= c-printable - b-char - c-byte-order-mark.\n return isPrintable(c) && c !== 0xFEFF\n // - c-flow-indicator\n && c !== CHAR_COMMA\n && c !== CHAR_LEFT_SQUARE_BRACKET\n && c !== CHAR_RIGHT_SQUARE_BRACKET\n && c !== CHAR_LEFT_CURLY_BRACKET\n && c !== CHAR_RIGHT_CURLY_BRACKET\n // - \":\" - \"#\"\n // /* An ns-char preceding */ \"#\"\n && c !== CHAR_COLON\n && ((c !== CHAR_SHARP) || (prev && isNsChar(prev)));\n}\n\n// Simplified test for values allowed as the first character in plain style.\nfunction isPlainSafeFirst(c) {\n // Uses a subset of ns-char - c-indicator\n // where ns-char = nb-char - s-white.\n return isPrintable(c) && c !== 0xFEFF\n && !isWhitespace(c) // - s-white\n // - (c-indicator ::=\n // “-” | “?” | “:” | “,” | “[” | “]” | “{” | “}”\n && c !== CHAR_MINUS\n && c !== CHAR_QUESTION\n && c !== CHAR_COLON\n && c !== CHAR_COMMA\n && c !== CHAR_LEFT_SQUARE_BRACKET\n && c !== CHAR_RIGHT_SQUARE_BRACKET\n && c !== CHAR_LEFT_CURLY_BRACKET\n && c !== CHAR_RIGHT_CURLY_BRACKET\n // | “#” | “&” | “*” | “!” | “|” | “=” | “>” | “'” | “\"”\n && c !== CHAR_SHARP\n && c !== CHAR_AMPERSAND\n && c !== CHAR_ASTERISK\n && c !== CHAR_EXCLAMATION\n && c !== CHAR_VERTICAL_LINE\n && c !== CHAR_EQUALS\n && c !== CHAR_GREATER_THAN\n && c !== CHAR_SINGLE_QUOTE\n && c !== CHAR_DOUBLE_QUOTE\n // | “%” | “@” | “`”)\n && c !== CHAR_PERCENT\n && c !== CHAR_COMMERCIAL_AT\n && c !== CHAR_GRAVE_ACCENT;\n}\n\n// Determines whether block indentation indicator is required.\nfunction needIndentIndicator(string) {\n var leadingSpaceRe = /^\\n* /;\n return leadingSpaceRe.test(string);\n}\n\nvar STYLE_PLAIN = 1,\n STYLE_SINGLE = 2,\n STYLE_LITERAL = 3,\n STYLE_FOLDED = 4,\n STYLE_DOUBLE = 5;\n\n// Determines which scalar styles are possible and returns the preferred style.\n// lineWidth = -1 => no limit.\n// Pre-conditions: str.length > 0.\n// Post-conditions:\n// STYLE_PLAIN or STYLE_SINGLE => no \\n are in the string.\n// STYLE_LITERAL => no lines are suitable for folding (or lineWidth is -1).\n// STYLE_FOLDED => a line > lineWidth and can be folded (and lineWidth != -1).\nfunction chooseScalarStyle(string, singleLineOnly, indentPerLevel, lineWidth, testAmbiguousType) {\n var i;\n var char, prev_char;\n var hasLineBreak = false;\n var hasFoldableLine = false; // only checked if shouldTrackWidth\n var shouldTrackWidth = lineWidth !== -1;\n var previousLineBreak = -1; // count the first line correctly\n var plain = isPlainSafeFirst(string.charCodeAt(0))\n && !isWhitespace(string.charCodeAt(string.length - 1));\n\n if (singleLineOnly) {\n // Case: no block styles.\n // Check for disallowed characters to rule out plain and single.\n for (i = 0; i < string.length; i++) {\n char = string.charCodeAt(i);\n if (!isPrintable(char)) {\n return STYLE_DOUBLE;\n }\n prev_char = i > 0 ? string.charCodeAt(i - 1) : null;\n plain = plain && isPlainSafe(char, prev_char);\n }\n } else {\n // Case: block styles permitted.\n for (i = 0; i < string.length; i++) {\n char = string.charCodeAt(i);\n if (char === CHAR_LINE_FEED) {\n hasLineBreak = true;\n // Check if any line can be folded.\n if (shouldTrackWidth) {\n hasFoldableLine = hasFoldableLine ||\n // Foldable line = too long, and not more-indented.\n (i - previousLineBreak - 1 > lineWidth &&\n string[previousLineBreak + 1] !== ' ');\n previousLineBreak = i;\n }\n } else if (!isPrintable(char)) {\n return STYLE_DOUBLE;\n }\n prev_char = i > 0 ? string.charCodeAt(i - 1) : null;\n plain = plain && isPlainSafe(char, prev_char);\n }\n // in case the end is missing a \\n\n hasFoldableLine = hasFoldableLine || (shouldTrackWidth &&\n (i - previousLineBreak - 1 > lineWidth &&\n string[previousLineBreak + 1] !== ' '));\n }\n // Although every style can represent \\n without escaping, prefer block styles\n // for multiline, since they're more readable and they don't add empty lines.\n // Also prefer folding a super-long line.\n if (!hasLineBreak && !hasFoldableLine) {\n // Strings interpretable as another type have to be quoted;\n // e.g. the string 'true' vs. the boolean true.\n return plain && !testAmbiguousType(string)\n ? STYLE_PLAIN : STYLE_SINGLE;\n }\n // Edge case: block indentation indicator can only have one digit.\n if (indentPerLevel > 9 && needIndentIndicator(string)) {\n return STYLE_DOUBLE;\n }\n // At this point we know block styles are valid.\n // Prefer literal style unless we want to fold.\n return hasFoldableLine ? STYLE_FOLDED : STYLE_LITERAL;\n}\n\n// Note: line breaking/folding is implemented for only the folded style.\n// NB. We drop the last trailing newline (if any) of a returned block scalar\n// since the dumper adds its own newline. This always works:\n// • No ending newline => unaffected; already using strip \"-\" chomping.\n// • Ending newline => removed then restored.\n// Importantly, this keeps the \"+\" chomp indicator from gaining an extra line.\nfunction writeScalar(state, string, level, iskey) {\n state.dump = (function () {\n if (string.length === 0) {\n return \"''\";\n }\n if (!state.noCompatMode &&\n DEPRECATED_BOOLEANS_SYNTAX.indexOf(string) !== -1) {\n return \"'\" + string + \"'\";\n }\n\n var indent = state.indent * Math.max(1, level); // no 0-indent scalars\n // As indentation gets deeper, let the width decrease monotonically\n // to the lower bound min(state.lineWidth, 40).\n // Note that this implies\n // state.lineWidth ≤ 40 + state.indent: width is fixed at the lower bound.\n // state.lineWidth > 40 + state.indent: width decreases until the lower bound.\n // This behaves better than a constant minimum width which disallows narrower options,\n // or an indent threshold which causes the width to suddenly increase.\n var lineWidth = state.lineWidth === -1\n ? -1 : Math.max(Math.min(state.lineWidth, 40), state.lineWidth - indent);\n\n // Without knowing if keys are implicit/explicit, assume implicit for safety.\n var singleLineOnly = iskey\n // No block styles in flow mode.\n || (state.flowLevel > -1 && level >= state.flowLevel);\n function testAmbiguity(string) {\n return testImplicitResolving(state, string);\n }\n\n switch (chooseScalarStyle(string, singleLineOnly, state.indent, lineWidth, testAmbiguity)) {\n case STYLE_PLAIN:\n return string;\n case STYLE_SINGLE:\n return \"'\" + string.replace(/'/g, \"''\") + \"'\";\n case STYLE_LITERAL:\n return '|' + blockHeader(string, state.indent)\n + dropEndingNewline(indentString(string, indent));\n case STYLE_FOLDED:\n return '>' + blockHeader(string, state.indent)\n + dropEndingNewline(indentString(foldString(string, lineWidth), indent));\n case STYLE_DOUBLE:\n return '\"' + escapeString(string, lineWidth) + '\"';\n default:\n throw new YAMLException('impossible error: invalid scalar style');\n }\n }());\n}\n\n// Pre-conditions: string is valid for a block scalar, 1 <= indentPerLevel <= 9.\nfunction blockHeader(string, indentPerLevel) {\n var indentIndicator = needIndentIndicator(string) ? String(indentPerLevel) : '';\n\n // note the special case: the string '\\n' counts as a \"trailing\" empty line.\n var clip = string[string.length - 1] === '\\n';\n var keep = clip && (string[string.length - 2] === '\\n' || string === '\\n');\n var chomp = keep ? '+' : (clip ? '' : '-');\n\n return indentIndicator + chomp + '\\n';\n}\n\n// (See the note for writeScalar.)\nfunction dropEndingNewline(string) {\n return string[string.length - 1] === '\\n' ? string.slice(0, -1) : string;\n}\n\n// Note: a long line without a suitable break point will exceed the width limit.\n// Pre-conditions: every char in str isPrintable, str.length > 0, width > 0.\nfunction foldString(string, width) {\n // In folded style, $k$ consecutive newlines output as $k+1$ newlines—\n // unless they're before or after a more-indented line, or at the very\n // beginning or end, in which case $k$ maps to $k$.\n // Therefore, parse each chunk as newline(s) followed by a content line.\n var lineRe = /(\\n+)([^\\n]*)/g;\n\n // first line (possibly an empty line)\n var result = (function () {\n var nextLF = string.indexOf('\\n');\n nextLF = nextLF !== -1 ? nextLF : string.length;\n lineRe.lastIndex = nextLF;\n return foldLine(string.slice(0, nextLF), width);\n }());\n // If we haven't reached the first content line yet, don't add an extra \\n.\n var prevMoreIndented = string[0] === '\\n' || string[0] === ' ';\n var moreIndented;\n\n // rest of the lines\n var match;\n while ((match = lineRe.exec(string))) {\n var prefix = match[1], line = match[2];\n moreIndented = (line[0] === ' ');\n result += prefix\n + (!prevMoreIndented && !moreIndented && line !== ''\n ? '\\n' : '')\n + foldLine(line, width);\n prevMoreIndented = moreIndented;\n }\n\n return result;\n}\n\n// Greedy line breaking.\n// Picks the longest line under the limit each time,\n// otherwise settles for the shortest line over the limit.\n// NB. More-indented lines *cannot* be folded, as that would add an extra \\n.\nfunction foldLine(line, width) {\n if (line === '' || line[0] === ' ') return line;\n\n // Since a more-indented line adds a \\n, breaks can't be followed by a space.\n var breakRe = / [^ ]/g; // note: the match index will always be <= length-2.\n var match;\n // start is an inclusive index. end, curr, and next are exclusive.\n var start = 0, end, curr = 0, next = 0;\n var result = '';\n\n // Invariants: 0 <= start <= length-1.\n // 0 <= curr <= next <= max(0, length-2). curr - start <= width.\n // Inside the loop:\n // A match implies length >= 2, so curr and next are <= length-2.\n while ((match = breakRe.exec(line))) {\n next = match.index;\n // maintain invariant: curr - start <= width\n if (next - start > width) {\n end = (curr > start) ? curr : next; // derive end <= length-2\n result += '\\n' + line.slice(start, end);\n // skip the space that was output as \\n\n start = end + 1; // derive start <= length-1\n }\n curr = next;\n }\n\n // By the invariants, start <= length-1, so there is something left over.\n // It is either the whole string or a part starting from non-whitespace.\n result += '\\n';\n // Insert a break if the remainder is too long and there is a break available.\n if (line.length - start > width && curr > start) {\n result += line.slice(start, curr) + '\\n' + line.slice(curr + 1);\n } else {\n result += line.slice(start);\n }\n\n return result.slice(1); // drop extra \\n joiner\n}\n\n// Escapes a double-quoted string.\nfunction escapeString(string) {\n var result = '';\n var char, nextChar;\n var escapeSeq;\n\n for (var i = 0; i < string.length; i++) {\n char = string.charCodeAt(i);\n // Check for surrogate pairs (reference Unicode 3.0 section \"3.7 Surrogates\").\n if (char >= 0xD800 && char <= 0xDBFF/* high surrogate */) {\n nextChar = string.charCodeAt(i + 1);\n if (nextChar >= 0xDC00 && nextChar <= 0xDFFF/* low surrogate */) {\n // Combine the surrogate pair and store it escaped.\n result += encodeHex((char - 0xD800) * 0x400 + nextChar - 0xDC00 + 0x10000);\n // Advance index one extra since we already used that char here.\n i++; continue;\n }\n }\n escapeSeq = ESCAPE_SEQUENCES[char];\n result += !escapeSeq && isPrintable(char)\n ? string[i]\n : escapeSeq || encodeHex(char);\n }\n\n return result;\n}\n\nfunction writeFlowSequence(state, level, object) {\n var _result = '',\n _tag = state.tag,\n index,\n length;\n\n for (index = 0, length = object.length; index < length; index += 1) {\n // Write only valid elements.\n if (writeNode(state, level, object[index], false, false)) {\n if (index !== 0) _result += ',' + (!state.condenseFlow ? ' ' : '');\n _result += state.dump;\n }\n }\n\n state.tag = _tag;\n state.dump = '[' + _result + ']';\n}\n\nfunction writeBlockSequence(state, level, object, compact) {\n var _result = '',\n _tag = state.tag,\n index,\n length;\n\n for (index = 0, length = object.length; index < length; index += 1) {\n // Write only valid elements.\n if (writeNode(state, level + 1, object[index], true, true)) {\n if (!compact || index !== 0) {\n _result += generateNextLine(state, level);\n }\n\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n _result += '-';\n } else {\n _result += '- ';\n }\n\n _result += state.dump;\n }\n }\n\n state.tag = _tag;\n state.dump = _result || '[]'; // Empty sequence if no valid values.\n}\n\nfunction writeFlowMapping(state, level, object) {\n var _result = '',\n _tag = state.tag,\n objectKeyList = Object.keys(object),\n index,\n length,\n objectKey,\n objectValue,\n pairBuffer;\n\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n\n pairBuffer = '';\n if (index !== 0) pairBuffer += ', ';\n\n if (state.condenseFlow) pairBuffer += '\"';\n\n objectKey = objectKeyList[index];\n objectValue = object[objectKey];\n\n if (!writeNode(state, level, objectKey, false, false)) {\n continue; // Skip this pair because of invalid key;\n }\n\n if (state.dump.length > 1024) pairBuffer += '? ';\n\n pairBuffer += state.dump + (state.condenseFlow ? '\"' : '') + ':' + (state.condenseFlow ? '' : ' ');\n\n if (!writeNode(state, level, objectValue, false, false)) {\n continue; // Skip this pair because of invalid value.\n }\n\n pairBuffer += state.dump;\n\n // Both key and value are valid.\n _result += pairBuffer;\n }\n\n state.tag = _tag;\n state.dump = '{' + _result + '}';\n}\n\nfunction writeBlockMapping(state, level, object, compact) {\n var _result = '',\n _tag = state.tag,\n objectKeyList = Object.keys(object),\n index,\n length,\n objectKey,\n objectValue,\n explicitPair,\n pairBuffer;\n\n // Allow sorting keys so that the output file is deterministic\n if (state.sortKeys === true) {\n // Default sorting\n objectKeyList.sort();\n } else if (typeof state.sortKeys === 'function') {\n // Custom sort function\n objectKeyList.sort(state.sortKeys);\n } else if (state.sortKeys) {\n // Something is wrong\n throw new YAMLException('sortKeys must be a boolean or a function');\n }\n\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n pairBuffer = '';\n\n if (!compact || index !== 0) {\n pairBuffer += generateNextLine(state, level);\n }\n\n objectKey = objectKeyList[index];\n objectValue = object[objectKey];\n\n if (!writeNode(state, level + 1, objectKey, true, true, true)) {\n continue; // Skip this pair because of invalid key.\n }\n\n explicitPair = (state.tag !== null && state.tag !== '?') ||\n (state.dump && state.dump.length > 1024);\n\n if (explicitPair) {\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n pairBuffer += '?';\n } else {\n pairBuffer += '? ';\n }\n }\n\n pairBuffer += state.dump;\n\n if (explicitPair) {\n pairBuffer += generateNextLine(state, level);\n }\n\n if (!writeNode(state, level + 1, objectValue, true, explicitPair)) {\n continue; // Skip this pair because of invalid value.\n }\n\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n pairBuffer += ':';\n } else {\n pairBuffer += ': ';\n }\n\n pairBuffer += state.dump;\n\n // Both key and value are valid.\n _result += pairBuffer;\n }\n\n state.tag = _tag;\n state.dump = _result || '{}'; // Empty mapping if no valid pairs.\n}\n\nfunction detectType(state, object, explicit) {\n var _result, typeList, index, length, type, style;\n\n typeList = explicit ? state.explicitTypes : state.implicitTypes;\n\n for (index = 0, length = typeList.length; index < length; index += 1) {\n type = typeList[index];\n\n if ((type.instanceOf || type.predicate) &&\n (!type.instanceOf || ((typeof object === 'object') && (object instanceof type.instanceOf))) &&\n (!type.predicate || type.predicate(object))) {\n\n state.tag = explicit ? type.tag : '?';\n\n if (type.represent) {\n style = state.styleMap[type.tag] || type.defaultStyle;\n\n if (_toString.call(type.represent) === '[object Function]') {\n _result = type.represent(object, style);\n } else if (_hasOwnProperty.call(type.represent, style)) {\n _result = type.represent[style](object, style);\n } else {\n throw new YAMLException('!<' + type.tag + '> tag resolver accepts not \"' + style + '\" style');\n }\n\n state.dump = _result;\n }\n\n return true;\n }\n }\n\n return false;\n}\n\n// Serializes `object` and writes it to global `result`.\n// Returns true on success, or false on invalid object.\n//\nfunction writeNode(state, level, object, block, compact, iskey) {\n state.tag = null;\n state.dump = object;\n\n if (!detectType(state, object, false)) {\n detectType(state, object, true);\n }\n\n var type = _toString.call(state.dump);\n\n if (block) {\n block = (state.flowLevel < 0 || state.flowLevel > level);\n }\n\n var objectOrArray = type === '[object Object]' || type === '[object Array]',\n duplicateIndex,\n duplicate;\n\n if (objectOrArray) {\n duplicateIndex = state.duplicates.indexOf(object);\n duplicate = duplicateIndex !== -1;\n }\n\n if ((state.tag !== null && state.tag !== '?') || duplicate || (state.indent !== 2 && level > 0)) {\n compact = false;\n }\n\n if (duplicate && state.usedDuplicates[duplicateIndex]) {\n state.dump = '*ref_' + duplicateIndex;\n } else {\n if (objectOrArray && duplicate && !state.usedDuplicates[duplicateIndex]) {\n state.usedDuplicates[duplicateIndex] = true;\n }\n if (type === '[object Object]') {\n if (block && (Object.keys(state.dump).length !== 0)) {\n writeBlockMapping(state, level, state.dump, compact);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + state.dump;\n }\n } else {\n writeFlowMapping(state, level, state.dump);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + ' ' + state.dump;\n }\n }\n } else if (type === '[object Array]') {\n var arrayLevel = (state.noArrayIndent && (level > 0)) ? level - 1 : level;\n if (block && (state.dump.length !== 0)) {\n writeBlockSequence(state, arrayLevel, state.dump, compact);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + state.dump;\n }\n } else {\n writeFlowSequence(state, arrayLevel, state.dump);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + ' ' + state.dump;\n }\n }\n } else if (type === '[object String]') {\n if (state.tag !== '?') {\n writeScalar(state, state.dump, level, iskey);\n }\n } else {\n if (state.skipInvalid) return false;\n throw new YAMLException('unacceptable kind of an object to dump ' + type);\n }\n\n if (state.tag !== null && state.tag !== '?') {\n state.dump = '!<' + state.tag + '> ' + state.dump;\n }\n }\n\n return true;\n}\n\nfunction getDuplicateReferences(object, state) {\n var objects = [],\n duplicatesIndexes = [],\n index,\n length;\n\n inspectNode(object, objects, duplicatesIndexes);\n\n for (index = 0, length = duplicatesIndexes.length; index < length; index += 1) {\n state.duplicates.push(objects[duplicatesIndexes[index]]);\n }\n state.usedDuplicates = new Array(length);\n}\n\nfunction inspectNode(object, objects, duplicatesIndexes) {\n var objectKeyList,\n index,\n length;\n\n if (object !== null && typeof object === 'object') {\n index = objects.indexOf(object);\n if (index !== -1) {\n if (duplicatesIndexes.indexOf(index) === -1) {\n duplicatesIndexes.push(index);\n }\n } else {\n objects.push(object);\n\n if (Array.isArray(object)) {\n for (index = 0, length = object.length; index < length; index += 1) {\n inspectNode(object[index], objects, duplicatesIndexes);\n }\n } else {\n objectKeyList = Object.keys(object);\n\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n inspectNode(object[objectKeyList[index]], objects, duplicatesIndexes);\n }\n }\n }\n }\n}\n\nfunction dump(input, options) {\n options = options || {};\n\n var state = new State(options);\n\n if (!state.noRefs) getDuplicateReferences(input, state);\n\n if (writeNode(state, 0, input, true, true)) return state.dump + '\\n';\n\n return '';\n}\n\nfunction safeDump(input, options) {\n return dump(input, common.extend({ schema: DEFAULT_SAFE_SCHEMA }, options));\n}\n\nmodule.exports.dump = dump;\nmodule.exports.safeDump = safeDump;\n","'use strict';\n\n\nvar loader = require('./js-yaml/loader');\nvar dumper = require('./js-yaml/dumper');\n\n\nfunction deprecated(name) {\n return function () {\n throw new Error('Function ' + name + ' is deprecated and cannot be used.');\n };\n}\n\n\nmodule.exports.Type = require('./js-yaml/type');\nmodule.exports.Schema = require('./js-yaml/schema');\nmodule.exports.FAILSAFE_SCHEMA = require('./js-yaml/schema/failsafe');\nmodule.exports.JSON_SCHEMA = require('./js-yaml/schema/json');\nmodule.exports.CORE_SCHEMA = require('./js-yaml/schema/core');\nmodule.exports.DEFAULT_SAFE_SCHEMA = require('./js-yaml/schema/default_safe');\nmodule.exports.DEFAULT_FULL_SCHEMA = require('./js-yaml/schema/default_full');\nmodule.exports.load = loader.load;\nmodule.exports.loadAll = loader.loadAll;\nmodule.exports.safeLoad = loader.safeLoad;\nmodule.exports.safeLoadAll = loader.safeLoadAll;\nmodule.exports.dump = dumper.dump;\nmodule.exports.safeDump = dumper.safeDump;\nmodule.exports.YAMLException = require('./js-yaml/exception');\n\n// Deprecated schema names from JS-YAML 2.0.x\nmodule.exports.MINIMAL_SCHEMA = require('./js-yaml/schema/failsafe');\nmodule.exports.SAFE_SCHEMA = require('./js-yaml/schema/default_safe');\nmodule.exports.DEFAULT_SCHEMA = require('./js-yaml/schema/default_full');\n\n// Deprecated functions from JS-YAML 1.x.x\nmodule.exports.scan = deprecated('scan');\nmodule.exports.parse = deprecated('parse');\nmodule.exports.compose = deprecated('compose');\nmodule.exports.addConstructor = deprecated('addConstructor');\n","'use strict';\n\n\nvar yaml = require('./lib/js-yaml.js');\n\n\nmodule.exports = yaml;\n","import{useState as n,useReducer as t,useEffect as e,useLayoutEffect as r,useRef as u,useImperativeHandle as o,useMemo as i,useCallback as l,useContext as f,useDebugValue as c}from\"preact/hooks\";export*from\"preact/hooks\";import{Component as a,createElement as s,options as h,toChildArray as p,Fragment as v,render as d,hydrate as m,cloneElement as y,createRef as b,createContext as _}from\"preact\";export{createElement,createContext,createRef,Fragment,Component}from\"preact\";function C(n,t){for(var e in t)n[e]=t[e];return n}function S(n,t){for(var e in n)if(\"__source\"!==e&&!(e in t))return!0;for(var r in t)if(\"__source\"!==r&&n[r]!==t[r])return!0;return!1}function E(n){this.props=n}function g(n,t){function e(n){var e=this.props.ref,r=e==n.ref;return!r&&e&&(e.call?e(null):e.current=null),t?!t(this.props,n)||!r:S(this.props,n)}function r(t){return this.shouldComponentUpdate=e,s(n,t)}return r.displayName=\"Memo(\"+(n.displayName||n.name)+\")\",r.prototype.isReactComponent=!0,r.__f=!0,r}(E.prototype=new a).isPureReactComponent=!0,E.prototype.shouldComponentUpdate=function(n,t){return S(this.props,n)||S(this.state,t)};var w=h.__b;h.__b=function(n){n.type&&n.type.__f&&n.ref&&(n.props.ref=n.ref,n.ref=null),w&&w(n)};var R=\"undefined\"!=typeof Symbol&&Symbol.for&&Symbol.for(\"react.forward_ref\")||3911;function x(n){function t(t,e){var r=C({},t);return delete r.ref,n(r,(e=t.ref||e)&&(\"object\"!=typeof e||\"current\"in e)?e:null)}return t.$$typeof=R,t.render=t,t.prototype.isReactComponent=t.__f=!0,t.displayName=\"ForwardRef(\"+(n.displayName||n.name)+\")\",t}var N=function(n,t){return null==n?null:p(p(n).map(t))},k={map:N,forEach:N,count:function(n){return n?p(n).length:0},only:function(n){var t=p(n);if(1!==t.length)throw\"Children.only\";return t[0]},toArray:p},A=h.__e;h.__e=function(n,t,e){if(n.then)for(var r,u=t;u=u.__;)if((r=u.__c)&&r.__c)return null==t.__e&&(t.__e=e.__e,t.__k=e.__k),r.__c(n,t);A(n,t,e)};var O=h.unmount;function L(){this.__u=0,this.t=null,this.__b=null}function U(n){var t=n.__.__c;return t&&t.__e&&t.__e(n)}function D(n){var t,e,r;function u(u){if(t||(t=n()).then(function(n){e=n.default||n},function(n){r=n}),r)throw r;if(!e)throw t;return s(e,u)}return u.displayName=\"Lazy\",u.__f=!0,u}function F(){this.u=null,this.o=null}h.unmount=function(n){var t=n.__c;t&&t.__R&&t.__R(),t&&!0===n.__h&&(n.type=null),O&&O(n)},(L.prototype=new a).__c=function(n,t){var e=t.__c,r=this;null==r.t&&(r.t=[]),r.t.push(e);var u=U(r.__v),o=!1,i=function(){o||(o=!0,e.__R=null,u?u(l):l())};e.__R=i;var l=function(){if(!--r.__u){if(r.state.__e){var n=r.state.__e;r.__v.__k[0]=function n(t,e,r){return t&&(t.__v=null,t.__k=t.__k&&t.__k.map(function(t){return n(t,e,r)}),t.__c&&t.__c.__P===e&&(t.__e&&r.insertBefore(t.__e,t.__d),t.__c.__e=!0,t.__c.__P=r)),t}(n,n.__c.__P,n.__c.__O)}var t;for(r.setState({__e:r.__b=null});t=r.t.pop();)t.forceUpdate()}},f=!0===t.__h;r.__u++||f||r.setState({__e:r.__b=r.__v.__k[0]}),n.then(i,i)},L.prototype.componentWillUnmount=function(){this.t=[]},L.prototype.render=function(n,t){if(this.__b){if(this.__v.__k){var e=document.createElement(\"div\"),r=this.__v.__k[0].__c;this.__v.__k[0]=function n(t,e,r){return t&&(t.__c&&t.__c.__H&&(t.__c.__H.__.forEach(function(n){\"function\"==typeof n.__c&&n.__c()}),t.__c.__H=null),null!=(t=C({},t)).__c&&(t.__c.__P===r&&(t.__c.__P=e),t.__c=null),t.__k=t.__k&&t.__k.map(function(t){return n(t,e,r)})),t}(this.__b,e,r.__O=r.__P)}this.__b=null}var u=t.__e&&s(v,null,n.fallback);return u&&(u.__h=null),[s(v,null,t.__e?null:n.children),u]};var M=function(n,t,e){if(++e[1]===e[0]&&n.o.delete(t),n.props.revealOrder&&(\"t\"!==n.props.revealOrder[0]||!n.o.size))for(e=n.u;e;){for(;e.length>3;)e.pop()();if(e[1]<e[0])break;n.u=e=e[2]}};function T(n){return this.getChildContext=function(){return n.context},n.children}function j(n){var t=this,e=n.i;t.componentWillUnmount=function(){d(null,t.l),t.l=null,t.i=null},t.i&&t.i!==e&&t.componentWillUnmount(),n.__v?(t.l||(t.i=e,t.l={nodeType:1,parentNode:e,childNodes:[],appendChild:function(n){this.childNodes.push(n),t.i.appendChild(n)},insertBefore:function(n,e){this.childNodes.push(n),t.i.appendChild(n)},removeChild:function(n){this.childNodes.splice(this.childNodes.indexOf(n)>>>1,1),t.i.removeChild(n)}}),d(s(T,{context:t.context},n.__v),t.l)):t.l&&t.componentWillUnmount()}function I(n,t){return s(j,{__v:n,i:t})}(F.prototype=new a).__e=function(n){var t=this,e=U(t.__v),r=t.o.get(n);return r[0]++,function(u){var o=function(){t.props.revealOrder?(r.push(u),M(t,n,r)):u()};e?e(o):o()}},F.prototype.render=function(n){this.u=null,this.o=new Map;var t=p(n.children);n.revealOrder&&\"b\"===n.revealOrder[0]&&t.reverse();for(var e=t.length;e--;)this.o.set(t[e],this.u=[1,0,this.u]);return n.children},F.prototype.componentDidUpdate=F.prototype.componentDidMount=function(){var n=this;this.o.forEach(function(t,e){M(n,e,t)})};var W=\"undefined\"!=typeof Symbol&&Symbol.for&&Symbol.for(\"react.element\")||60103,P=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|fill|flood|font|glyph(?!R)|horiz|marker(?!H|W|U)|overline|paint|stop|strikethrough|stroke|text(?!L)|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,V=function(n){return(\"undefined\"!=typeof Symbol&&\"symbol\"==typeof Symbol()?/fil|che|rad/i:/fil|che|ra/i).test(n)};function z(n,t,e){return null==t.__k&&(t.textContent=\"\"),d(n,t),\"function\"==typeof e&&e(),n?n.__c:null}function B(n,t,e){return m(n,t),\"function\"==typeof e&&e(),n?n.__c:null}a.prototype.isReactComponent={},[\"componentWillMount\",\"componentWillReceiveProps\",\"componentWillUpdate\"].forEach(function(n){Object.defineProperty(a.prototype,n,{configurable:!0,get:function(){return this[\"UNSAFE_\"+n]},set:function(t){Object.defineProperty(this,n,{configurable:!0,writable:!0,value:t})}})});var H=h.event;function Z(){}function Y(){return this.cancelBubble}function $(){return this.defaultPrevented}h.event=function(n){return H&&(n=H(n)),n.persist=Z,n.isPropagationStopped=Y,n.isDefaultPrevented=$,n.nativeEvent=n};var q,G={configurable:!0,get:function(){return this.class}},J=h.vnode;h.vnode=function(n){var t=n.type,e=n.props,r=e;if(\"string\"==typeof t){for(var u in r={},e){var o=e[u];\"value\"===u&&\"defaultValue\"in e&&null==o||(\"defaultValue\"===u&&\"value\"in e&&null==e.value?u=\"value\":\"download\"===u&&!0===o?o=\"\":/ondoubleclick/i.test(u)?u=\"ondblclick\":/^onchange(textarea|input)/i.test(u+t)&&!V(e.type)?u=\"oninput\":/^on(Ani|Tra|Tou|BeforeInp)/.test(u)?u=u.toLowerCase():P.test(u)?u=u.replace(/[A-Z0-9]/,\"-$&\").toLowerCase():null===o&&(o=void 0),r[u]=o)}\"select\"==t&&r.multiple&&Array.isArray(r.value)&&(r.value=p(e.children).forEach(function(n){n.props.selected=-1!=r.value.indexOf(n.props.value)})),\"select\"==t&&null!=r.defaultValue&&(r.value=p(e.children).forEach(function(n){n.props.selected=r.multiple?-1!=r.defaultValue.indexOf(n.props.value):r.defaultValue==n.props.value})),n.props=r}t&&e.class!=e.className&&(G.enumerable=\"className\"in e,null!=e.className&&(r.class=e.className),Object.defineProperty(r,\"className\",G)),n.$$typeof=W,J&&J(n)};var K=h.__r;h.__r=function(n){K&&K(n),q=n.__c};var Q={ReactCurrentDispatcher:{current:{readContext:function(n){return q.__n[n.__c].props.value}}}},X=1,nn=2,tn=3,en=4,rn=5;function un(n,t){return t()}var on=\"object\"==typeof performance&&\"function\"==typeof performance.now?performance.now.bind(performance):function(){return Date.now()},ln=\"16.8.0\";function fn(n){return s.bind(null,n)}function cn(n){return!!n&&n.$$typeof===W}function an(n){return cn(n)?y.apply(null,arguments):n}function sn(n){return!!n.__k&&(d(null,n),!0)}function hn(n){return n&&(n.base||1===n.nodeType&&n)||null}var pn=function(n,t){return n(t)},vn=v;export default{useState:n,useReducer:t,useEffect:e,useLayoutEffect:r,useRef:u,useImperativeHandle:o,useMemo:i,useCallback:l,useContext:f,useDebugValue:c,version:\"16.8.0\",Children:k,render:z,hydrate:B,unmountComponentAtNode:sn,createPortal:I,createElement:s,createContext:_,createFactory:fn,cloneElement:an,createRef:b,Fragment:v,isValidElement:cn,findDOMNode:hn,Component:a,PureComponent:E,memo:g,forwardRef:x,unstable_batchedUpdates:pn,StrictMode:v,Suspense:L,SuspenseList:F,lazy:D,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:Q};export{ln as version,k as Children,z as render,B as hydrate,sn as unmountComponentAtNode,I as createPortal,fn as createFactory,an as cloneElement,cn as isValidElement,hn as findDOMNode,E as PureComponent,g as memo,x as forwardRef,pn as unstable_batchedUpdates,vn as StrictMode,L as Suspense,F as SuspenseList,D as lazy,Q as __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,X as unstable_ImmediatePriority,nn as unstable_UserBlockingPriority,tn as unstable_NormalPriority,en as unstable_LowPriority,rn as unstable_IdlePriority,un as unstable_runWithPriority,on as unstable_now};\n//# sourceMappingURL=compat.module.js.map\n","var e=Object.defineProperty,t=Object.defineProperties,s=Object.getOwnPropertyDescriptors,r=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,o=Object.prototype.propertyIsEnumerable,i=(t,s,r)=>s in t?e(t,s,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[s]=r,c=(e,t)=>{for(var s in t||(t={}))n.call(t,s)&&i(e,s,t[s]);if(r)for(var s of r(t))o.call(t,s)&&i(e,s,t[s]);return e};import a,{useState as l,useEffect as u,useRef as m}from\"react\";const g=\"Please consider reporting this error at https://github.com/laymonage/giscus/issues/new.\";function d(e){return`[giscus] An error occurred. Error message: \"${e}\".`}function p(e){const t=document.querySelector(`meta[property='og:${e}'],meta[name='${e}']`);return t?t.content:\"\"}function f(){const e=document.getElementById(\"giscus-css\")||document.createElement(\"style\");e.id=\"giscus-css\",e.textContent=\"\\n .giscus, .giscus-frame {\\n width: 100%;\\n }\\n .giscus-frame {\\n border: none;\\n color-scheme: normal;\\n }\\n \",document.head.prepend(e)}function h(e){const[r,n]=l(\"\"),o=function({repo:e,repoId:t,category:s=\"\",categoryId:r=\"\",mapping:n,term:o=\"\",theme:i=\"light\",reactionsEnabled:c=\"1\",emitMetadata:a=\"0\",inputPosition:l=\"bottom\",lang:u=\"en\",session:m,origin:g}){const d=new URL(location.href);d.searchParams.delete(\"giscus\");const f=d.toString(),h={origin:g=g||f,session:m,theme:i,reactionsEnabled:c,emitMetadata:a,inputPosition:l,repo:e,repoId:t,category:s,categoryId:r,description:p(\"description\")};switch(n){case\"url\":h.term=f;break;case\"title\":h.term=document.title;break;case\"og:title\":h.term=p(\"title\");break;case\"specific\":h.term=o;break;case\"number\":h.number=o;break;case\"pathname\":default:h.term=location.pathname.length<2?\"index\":location.pathname.substring(1).replace(/\\.\\w+$/,\"\")}return`https://giscus.app/${u}/widget?${new URLSearchParams(h)}`}((i=c({},e),t(i,s({session:r}))));var i;const h=m(null);return u((()=>{const e=location.href,t=new URL(e),s=localStorage.getItem(\"giscus-session\"),r=t.searchParams.get(\"giscus\")||\"\";if(r)return localStorage.setItem(\"giscus-session\",JSON.stringify(r)),n(r),t.searchParams.delete(\"giscus\"),void history.replaceState(void 0,document.title,t.toString());if(s)try{n(JSON.parse(s||\"\")||\"\")}catch(o){n(\"\"),localStorage.removeItem(\"giscus-session\"),console.warn(`${d(null==o?void 0:o.message)} Session has been cleared.`)}}),[]),u(f,[]),u((()=>{const e=function(e,t=null){return function(s){if(\"https://giscus.app\"!==s.origin)return;const{data:r}=s;if(\"object\"!=typeof r||!r.giscus)return;if(t&&r.giscus.resizeHeight&&(t.style.height=`${r.giscus.resizeHeight}px`),!r.giscus.error)return;const n=r.giscus.error;if(n.includes(\"Bad credentials\")||n.includes(\"Invalid state value\")){if(null!==localStorage.getItem(\"giscus-session\"))return localStorage.removeItem(\"giscus-session\"),e(),void console.warn(`${d(n)} Session has been cleared.`);console.error(`${d(n)} No session is stored initially. ${g}`)}n.includes(\"Discussion not found\")?console.warn(`[giscus] ${n}. A new discussion will be created if a comment/reaction is submitted.`):console.error(`${d(n)} ${g}`)}}((()=>n(\"\")),h.current);return window.addEventListener(\"message\",e),()=>window.removeEventListener(\"message\",e)}),[]),a.createElement(\"div\",{className:\"giscus\"},a.createElement(\"iframe\",{className:\"giscus-frame\",title:\"Comments\",scrolling:\"no\",src:o,ref:h}))}function b(e){const[t,s]=l(!1);return u((()=>s(!0)),[]),t?a.createElement(h,c({},e)):null}export{b as Giscus};\n","/**\n * marked - a markdown parser\n * Copyright (c) 2011-2022, Christopher Jeffrey. (MIT Licensed)\n * https://github.com/markedjs/marked\n */\n\n/**\n * DO NOT EDIT THIS FILE\n * The code in this file is generated from files in ./src/\n */\n\nfunction getDefaults() {\n return {\n baseUrl: null,\n breaks: false,\n extensions: null,\n gfm: true,\n headerIds: true,\n headerPrefix: '',\n highlight: null,\n langPrefix: 'language-',\n mangle: true,\n pedantic: false,\n renderer: null,\n sanitize: false,\n sanitizer: null,\n silent: false,\n smartLists: false,\n smartypants: false,\n tokenizer: null,\n walkTokens: null,\n xhtml: false\n };\n}\n\nlet defaults = getDefaults();\n\nfunction changeDefaults(newDefaults) {\n defaults = newDefaults;\n}\n\n/**\n * Helpers\n */\nconst escapeTest = /[&<>\"']/;\nconst escapeReplace = /[&<>\"']/g;\nconst escapeTestNoEncode = /[<>\"']|&(?!#?\\w+;)/;\nconst escapeReplaceNoEncode = /[<>\"']|&(?!#?\\w+;)/g;\nconst escapeReplacements = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": '''\n};\nconst getEscapeReplacement = (ch) => escapeReplacements[ch];\nfunction escape(html, encode) {\n if (encode) {\n if (escapeTest.test(html)) {\n return html.replace(escapeReplace, getEscapeReplacement);\n }\n } else {\n if (escapeTestNoEncode.test(html)) {\n return html.replace(escapeReplaceNoEncode, getEscapeReplacement);\n }\n }\n\n return html;\n}\n\nconst unescapeTest = /&(#(?:\\d+)|(?:#x[0-9A-Fa-f]+)|(?:\\w+));?/ig;\n\nfunction unescape(html) {\n // explicitly match decimal, hex, and named HTML entities\n return html.replace(unescapeTest, (_, n) => {\n n = n.toLowerCase();\n if (n === 'colon') return ':';\n if (n.charAt(0) === '#') {\n return n.charAt(1) === 'x'\n ? String.fromCharCode(parseInt(n.substring(2), 16))\n : String.fromCharCode(+n.substring(1));\n }\n return '';\n });\n}\n\nconst caret = /(^|[^\\[])\\^/g;\nfunction edit(regex, opt) {\n regex = regex.source || regex;\n opt = opt || '';\n const obj = {\n replace: (name, val) => {\n val = val.source || val;\n val = val.replace(caret, '$1');\n regex = regex.replace(name, val);\n return obj;\n },\n getRegex: () => {\n return new RegExp(regex, opt);\n }\n };\n return obj;\n}\n\nconst nonWordAndColonTest = /[^\\w:]/g;\nconst originIndependentUrl = /^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;\nfunction cleanUrl(sanitize, base, href) {\n if (sanitize) {\n let prot;\n try {\n prot = decodeURIComponent(unescape(href))\n .replace(nonWordAndColonTest, '')\n .toLowerCase();\n } catch (e) {\n return null;\n }\n if (prot.indexOf('javascript:') === 0 || prot.indexOf('vbscript:') === 0 || prot.indexOf('data:') === 0) {\n return null;\n }\n }\n if (base && !originIndependentUrl.test(href)) {\n href = resolveUrl(base, href);\n }\n try {\n href = encodeURI(href).replace(/%25/g, '%');\n } catch (e) {\n return null;\n }\n return href;\n}\n\nconst baseUrls = {};\nconst justDomain = /^[^:]+:\\/*[^/]*$/;\nconst protocol = /^([^:]+:)[\\s\\S]*$/;\nconst domain = /^([^:]+:\\/*[^/]*)[\\s\\S]*$/;\n\nfunction resolveUrl(base, href) {\n if (!baseUrls[' ' + base]) {\n // we can ignore everything in base after the last slash of its path component,\n // but we might need to add _that_\n // https://tools.ietf.org/html/rfc3986#section-3\n if (justDomain.test(base)) {\n baseUrls[' ' + base] = base + '/';\n } else {\n baseUrls[' ' + base] = rtrim(base, '/', true);\n }\n }\n base = baseUrls[' ' + base];\n const relativeBase = base.indexOf(':') === -1;\n\n if (href.substring(0, 2) === '//') {\n if (relativeBase) {\n return href;\n }\n return base.replace(protocol, '$1') + href;\n } else if (href.charAt(0) === '/') {\n if (relativeBase) {\n return href;\n }\n return base.replace(domain, '$1') + href;\n } else {\n return base + href;\n }\n}\n\nconst noopTest = { exec: function noopTest() {} };\n\nfunction merge(obj) {\n let i = 1,\n target,\n key;\n\n for (; i < arguments.length; i++) {\n target = arguments[i];\n for (key in target) {\n if (Object.prototype.hasOwnProperty.call(target, key)) {\n obj[key] = target[key];\n }\n }\n }\n\n return obj;\n}\n\nfunction splitCells(tableRow, count) {\n // ensure that every cell-delimiting pipe has a space\n // before it to distinguish it from an escaped pipe\n const row = tableRow.replace(/\\|/g, (match, offset, str) => {\n let escaped = false,\n curr = offset;\n while (--curr >= 0 && str[curr] === '\\\\') escaped = !escaped;\n if (escaped) {\n // odd number of slashes means | is escaped\n // so we leave it alone\n return '|';\n } else {\n // add space before unescaped |\n return ' |';\n }\n }),\n cells = row.split(/ \\|/);\n let i = 0;\n\n // First/last cell in a row cannot be empty if it has no leading/trailing pipe\n if (!cells[0].trim()) { cells.shift(); }\n if (!cells[cells.length - 1].trim()) { cells.pop(); }\n\n if (cells.length > count) {\n cells.splice(count);\n } else {\n while (cells.length < count) cells.push('');\n }\n\n for (; i < cells.length; i++) {\n // leading or trailing whitespace is ignored per the gfm spec\n cells[i] = cells[i].trim().replace(/\\\\\\|/g, '|');\n }\n return cells;\n}\n\n// Remove trailing 'c's. Equivalent to str.replace(/c*$/, '').\n// /c*$/ is vulnerable to REDOS.\n// invert: Remove suffix of non-c chars instead. Default falsey.\nfunction rtrim(str, c, invert) {\n const l = str.length;\n if (l === 0) {\n return '';\n }\n\n // Length of suffix matching the invert condition.\n let suffLen = 0;\n\n // Step left until we fail to match the invert condition.\n while (suffLen < l) {\n const currChar = str.charAt(l - suffLen - 1);\n if (currChar === c && !invert) {\n suffLen++;\n } else if (currChar !== c && invert) {\n suffLen++;\n } else {\n break;\n }\n }\n\n return str.substr(0, l - suffLen);\n}\n\nfunction findClosingBracket(str, b) {\n if (str.indexOf(b[1]) === -1) {\n return -1;\n }\n const l = str.length;\n let level = 0,\n i = 0;\n for (; i < l; i++) {\n if (str[i] === '\\\\') {\n i++;\n } else if (str[i] === b[0]) {\n level++;\n } else if (str[i] === b[1]) {\n level--;\n if (level < 0) {\n return i;\n }\n }\n }\n return -1;\n}\n\nfunction checkSanitizeDeprecation(opt) {\n if (opt && opt.sanitize && !opt.silent) {\n console.warn('marked(): sanitize and sanitizer parameters are deprecated since version 0.7.0, should not be used and will be removed in the future. Read more here: https://marked.js.org/#/USING_ADVANCED.md#options');\n }\n}\n\n// copied from https://stackoverflow.com/a/5450113/806777\nfunction repeatString(pattern, count) {\n if (count < 1) {\n return '';\n }\n let result = '';\n while (count > 1) {\n if (count & 1) {\n result += pattern;\n }\n count >>= 1;\n pattern += pattern;\n }\n return result + pattern;\n}\n\nfunction outputLink(cap, link, raw, lexer) {\n const href = link.href;\n const title = link.title ? escape(link.title) : null;\n const text = cap[1].replace(/\\\\([\\[\\]])/g, '$1');\n\n if (cap[0].charAt(0) !== '!') {\n lexer.state.inLink = true;\n const token = {\n type: 'link',\n raw,\n href,\n title,\n text,\n tokens: lexer.inlineTokens(text, [])\n };\n lexer.state.inLink = false;\n return token;\n } else {\n return {\n type: 'image',\n raw,\n href,\n title,\n text: escape(text)\n };\n }\n}\n\nfunction indentCodeCompensation(raw, text) {\n const matchIndentToCode = raw.match(/^(\\s+)(?:```)/);\n\n if (matchIndentToCode === null) {\n return text;\n }\n\n const indentToCode = matchIndentToCode[1];\n\n return text\n .split('\\n')\n .map(node => {\n const matchIndentInNode = node.match(/^\\s+/);\n if (matchIndentInNode === null) {\n return node;\n }\n\n const [indentInNode] = matchIndentInNode;\n\n if (indentInNode.length >= indentToCode.length) {\n return node.slice(indentToCode.length);\n }\n\n return node;\n })\n .join('\\n');\n}\n\n/**\n * Tokenizer\n */\nclass Tokenizer {\n constructor(options) {\n this.options = options || defaults;\n }\n\n space(src) {\n const cap = this.rules.block.newline.exec(src);\n if (cap && cap[0].length > 0) {\n return {\n type: 'space',\n raw: cap[0]\n };\n }\n }\n\n code(src) {\n const cap = this.rules.block.code.exec(src);\n if (cap) {\n const text = cap[0].replace(/^ {1,4}/gm, '');\n return {\n type: 'code',\n raw: cap[0],\n codeBlockStyle: 'indented',\n text: !this.options.pedantic\n ? rtrim(text, '\\n')\n : text\n };\n }\n }\n\n fences(src) {\n const cap = this.rules.block.fences.exec(src);\n if (cap) {\n const raw = cap[0];\n const text = indentCodeCompensation(raw, cap[3] || '');\n\n return {\n type: 'code',\n raw,\n lang: cap[2] ? cap[2].trim() : cap[2],\n text\n };\n }\n }\n\n heading(src) {\n const cap = this.rules.block.heading.exec(src);\n if (cap) {\n let text = cap[2].trim();\n\n // remove trailing #s\n if (/#$/.test(text)) {\n const trimmed = rtrim(text, '#');\n if (this.options.pedantic) {\n text = trimmed.trim();\n } else if (!trimmed || / $/.test(trimmed)) {\n // CommonMark requires space before trailing #s\n text = trimmed.trim();\n }\n }\n\n const token = {\n type: 'heading',\n raw: cap[0],\n depth: cap[1].length,\n text: text,\n tokens: []\n };\n this.lexer.inline(token.text, token.tokens);\n return token;\n }\n }\n\n hr(src) {\n const cap = this.rules.block.hr.exec(src);\n if (cap) {\n return {\n type: 'hr',\n raw: cap[0]\n };\n }\n }\n\n blockquote(src) {\n const cap = this.rules.block.blockquote.exec(src);\n if (cap) {\n const text = cap[0].replace(/^ *> ?/gm, '');\n\n return {\n type: 'blockquote',\n raw: cap[0],\n tokens: this.lexer.blockTokens(text, []),\n text\n };\n }\n }\n\n list(src) {\n let cap = this.rules.block.list.exec(src);\n if (cap) {\n let raw, istask, ischecked, indent, i, blankLine, endsWithBlankLine,\n line, nextLine, rawLine, itemContents, endEarly;\n\n let bull = cap[1].trim();\n const isordered = bull.length > 1;\n\n const list = {\n type: 'list',\n raw: '',\n ordered: isordered,\n start: isordered ? +bull.slice(0, -1) : '',\n loose: false,\n items: []\n };\n\n bull = isordered ? `\\\\d{1,9}\\\\${bull.slice(-1)}` : `\\\\${bull}`;\n\n if (this.options.pedantic) {\n bull = isordered ? bull : '[*+-]';\n }\n\n // Get next list item\n const itemRegex = new RegExp(`^( {0,3}${bull})((?: [^\\\\n]*)?(?:\\\\n|$))`);\n\n // Check if current bullet point can start a new List Item\n while (src) {\n endEarly = false;\n if (!(cap = itemRegex.exec(src))) {\n break;\n }\n\n if (this.rules.block.hr.test(src)) { // End list if bullet was actually HR (possibly move into itemRegex?)\n break;\n }\n\n raw = cap[0];\n src = src.substring(raw.length);\n\n line = cap[2].split('\\n', 1)[0];\n nextLine = src.split('\\n', 1)[0];\n\n if (this.options.pedantic) {\n indent = 2;\n itemContents = line.trimLeft();\n } else {\n indent = cap[2].search(/[^ ]/); // Find first non-space char\n indent = indent > 4 ? 1 : indent; // Treat indented code blocks (> 4 spaces) as having only 1 indent\n itemContents = line.slice(indent);\n indent += cap[1].length;\n }\n\n blankLine = false;\n\n if (!line && /^ *$/.test(nextLine)) { // Items begin with at most one blank line\n raw += nextLine + '\\n';\n src = src.substring(nextLine.length + 1);\n endEarly = true;\n }\n\n if (!endEarly) {\n const nextBulletRegex = new RegExp(`^ {0,${Math.min(3, indent - 1)}}(?:[*+-]|\\\\d{1,9}[.)])`);\n\n // Check if following lines should be included in List Item\n while (src) {\n rawLine = src.split('\\n', 1)[0];\n line = rawLine;\n\n // Re-align to follow commonmark nesting rules\n if (this.options.pedantic) {\n line = line.replace(/^ {1,4}(?=( {4})*[^ ])/g, ' ');\n }\n\n // End list item if found start of new bullet\n if (nextBulletRegex.test(line)) {\n break;\n }\n\n if (line.search(/[^ ]/) >= indent || !line.trim()) { // Dedent if possible\n itemContents += '\\n' + line.slice(indent);\n } else if (!blankLine) { // Until blank line, item doesn't need indentation\n itemContents += '\\n' + line;\n } else { // Otherwise, improper indentation ends this item\n break;\n }\n\n if (!blankLine && !line.trim()) { // Check if current line is blank\n blankLine = true;\n }\n\n raw += rawLine + '\\n';\n src = src.substring(rawLine.length + 1);\n }\n }\n\n if (!list.loose) {\n // If the previous item ended with a blank line, the list is loose\n if (endsWithBlankLine) {\n list.loose = true;\n } else if (/\\n *\\n *$/.test(raw)) {\n endsWithBlankLine = true;\n }\n }\n\n // Check for task list items\n if (this.options.gfm) {\n istask = /^\\[[ xX]\\] /.exec(itemContents);\n if (istask) {\n ischecked = istask[0] !== '[ ] ';\n itemContents = itemContents.replace(/^\\[[ xX]\\] +/, '');\n }\n }\n\n list.items.push({\n type: 'list_item',\n raw: raw,\n task: !!istask,\n checked: ischecked,\n loose: false,\n text: itemContents\n });\n\n list.raw += raw;\n }\n\n // Do not consume newlines at end of final item. Alternatively, make itemRegex *start* with any newlines to simplify/speed up endsWithBlankLine logic\n list.items[list.items.length - 1].raw = raw.trimRight();\n list.items[list.items.length - 1].text = itemContents.trimRight();\n list.raw = list.raw.trimRight();\n\n const l = list.items.length;\n\n // Item child tokens handled here at end because we needed to have the final item to trim it first\n for (i = 0; i < l; i++) {\n this.lexer.state.top = false;\n list.items[i].tokens = this.lexer.blockTokens(list.items[i].text, []);\n const spacers = list.items[i].tokens.filter(t => t.type === 'space');\n const hasMultipleLineBreaks = spacers.every(t => {\n const chars = t.raw.split('');\n let lineBreaks = 0;\n for (const char of chars) {\n if (char === '\\n') {\n lineBreaks += 1;\n }\n if (lineBreaks > 1) {\n return true;\n }\n }\n\n return false;\n });\n\n if (!list.loose && spacers.length && hasMultipleLineBreaks) {\n // Having a single line break doesn't mean a list is loose. A single line break is terminating the last list item\n list.loose = true;\n list.items[i].loose = true;\n }\n }\n\n return list;\n }\n }\n\n html(src) {\n const cap = this.rules.block.html.exec(src);\n if (cap) {\n const token = {\n type: 'html',\n raw: cap[0],\n pre: !this.options.sanitizer\n && (cap[1] === 'pre' || cap[1] === 'script' || cap[1] === 'style'),\n text: cap[0]\n };\n if (this.options.sanitize) {\n token.type = 'paragraph';\n token.text = this.options.sanitizer ? this.options.sanitizer(cap[0]) : escape(cap[0]);\n token.tokens = [];\n this.lexer.inline(token.text, token.tokens);\n }\n return token;\n }\n }\n\n def(src) {\n const cap = this.rules.block.def.exec(src);\n if (cap) {\n if (cap[3]) cap[3] = cap[3].substring(1, cap[3].length - 1);\n const tag = cap[1].toLowerCase().replace(/\\s+/g, ' ');\n return {\n type: 'def',\n tag,\n raw: cap[0],\n href: cap[2],\n title: cap[3]\n };\n }\n }\n\n table(src) {\n const cap = this.rules.block.table.exec(src);\n if (cap) {\n const item = {\n type: 'table',\n header: splitCells(cap[1]).map(c => { return { text: c }; }),\n align: cap[2].replace(/^ *|\\| *$/g, '').split(/ *\\| */),\n rows: cap[3] ? cap[3].replace(/\\n[ \\t]*$/, '').split('\\n') : []\n };\n\n if (item.header.length === item.align.length) {\n item.raw = cap[0];\n\n let l = item.align.length;\n let i, j, k, row;\n for (i = 0; i < l; i++) {\n if (/^ *-+: *$/.test(item.align[i])) {\n item.align[i] = 'right';\n } else if (/^ *:-+: *$/.test(item.align[i])) {\n item.align[i] = 'center';\n } else if (/^ *:-+ *$/.test(item.align[i])) {\n item.align[i] = 'left';\n } else {\n item.align[i] = null;\n }\n }\n\n l = item.rows.length;\n for (i = 0; i < l; i++) {\n item.rows[i] = splitCells(item.rows[i], item.header.length).map(c => { return { text: c }; });\n }\n\n // parse child tokens inside headers and cells\n\n // header child tokens\n l = item.header.length;\n for (j = 0; j < l; j++) {\n item.header[j].tokens = [];\n this.lexer.inlineTokens(item.header[j].text, item.header[j].tokens);\n }\n\n // cell child tokens\n l = item.rows.length;\n for (j = 0; j < l; j++) {\n row = item.rows[j];\n for (k = 0; k < row.length; k++) {\n row[k].tokens = [];\n this.lexer.inlineTokens(row[k].text, row[k].tokens);\n }\n }\n\n return item;\n }\n }\n }\n\n lheading(src) {\n const cap = this.rules.block.lheading.exec(src);\n if (cap) {\n const token = {\n type: 'heading',\n raw: cap[0],\n depth: cap[2].charAt(0) === '=' ? 1 : 2,\n text: cap[1],\n tokens: []\n };\n this.lexer.inline(token.text, token.tokens);\n return token;\n }\n }\n\n paragraph(src) {\n const cap = this.rules.block.paragraph.exec(src);\n if (cap) {\n const token = {\n type: 'paragraph',\n raw: cap[0],\n text: cap[1].charAt(cap[1].length - 1) === '\\n'\n ? cap[1].slice(0, -1)\n : cap[1],\n tokens: []\n };\n this.lexer.inline(token.text, token.tokens);\n return token;\n }\n }\n\n text(src) {\n const cap = this.rules.block.text.exec(src);\n if (cap) {\n const token = {\n type: 'text',\n raw: cap[0],\n text: cap[0],\n tokens: []\n };\n this.lexer.inline(token.text, token.tokens);\n return token;\n }\n }\n\n escape(src) {\n const cap = this.rules.inline.escape.exec(src);\n if (cap) {\n return {\n type: 'escape',\n raw: cap[0],\n text: escape(cap[1])\n };\n }\n }\n\n tag(src) {\n const cap = this.rules.inline.tag.exec(src);\n if (cap) {\n if (!this.lexer.state.inLink && /^<a /i.test(cap[0])) {\n this.lexer.state.inLink = true;\n } else if (this.lexer.state.inLink && /^<\\/a>/i.test(cap[0])) {\n this.lexer.state.inLink = false;\n }\n if (!this.lexer.state.inRawBlock && /^<(pre|code|kbd|script)(\\s|>)/i.test(cap[0])) {\n this.lexer.state.inRawBlock = true;\n } else if (this.lexer.state.inRawBlock && /^<\\/(pre|code|kbd|script)(\\s|>)/i.test(cap[0])) {\n this.lexer.state.inRawBlock = false;\n }\n\n return {\n type: this.options.sanitize\n ? 'text'\n : 'html',\n raw: cap[0],\n inLink: this.lexer.state.inLink,\n inRawBlock: this.lexer.state.inRawBlock,\n text: this.options.sanitize\n ? (this.options.sanitizer\n ? this.options.sanitizer(cap[0])\n : escape(cap[0]))\n : cap[0]\n };\n }\n }\n\n link(src) {\n const cap = this.rules.inline.link.exec(src);\n if (cap) {\n const trimmedUrl = cap[2].trim();\n if (!this.options.pedantic && /^</.test(trimmedUrl)) {\n // commonmark requires matching angle brackets\n if (!(/>$/.test(trimmedUrl))) {\n return;\n }\n\n // ending angle bracket cannot be escaped\n const rtrimSlash = rtrim(trimmedUrl.slice(0, -1), '\\\\');\n if ((trimmedUrl.length - rtrimSlash.length) % 2 === 0) {\n return;\n }\n } else {\n // find closing parenthesis\n const lastParenIndex = findClosingBracket(cap[2], '()');\n if (lastParenIndex > -1) {\n const start = cap[0].indexOf('!') === 0 ? 5 : 4;\n const linkLen = start + cap[1].length + lastParenIndex;\n cap[2] = cap[2].substring(0, lastParenIndex);\n cap[0] = cap[0].substring(0, linkLen).trim();\n cap[3] = '';\n }\n }\n let href = cap[2];\n let title = '';\n if (this.options.pedantic) {\n // split pedantic href and title\n const link = /^([^'\"]*[^\\s])\\s+(['\"])(.*)\\2/.exec(href);\n\n if (link) {\n href = link[1];\n title = link[3];\n }\n } else {\n title = cap[3] ? cap[3].slice(1, -1) : '';\n }\n\n href = href.trim();\n if (/^</.test(href)) {\n if (this.options.pedantic && !(/>$/.test(trimmedUrl))) {\n // pedantic allows starting angle bracket without ending angle bracket\n href = href.slice(1);\n } else {\n href = href.slice(1, -1);\n }\n }\n return outputLink(cap, {\n href: href ? href.replace(this.rules.inline._escapes, '$1') : href,\n title: title ? title.replace(this.rules.inline._escapes, '$1') : title\n }, cap[0], this.lexer);\n }\n }\n\n reflink(src, links) {\n let cap;\n if ((cap = this.rules.inline.reflink.exec(src))\n || (cap = this.rules.inline.nolink.exec(src))) {\n let link = (cap[2] || cap[1]).replace(/\\s+/g, ' ');\n link = links[link.toLowerCase()];\n if (!link || !link.href) {\n const text = cap[0].charAt(0);\n return {\n type: 'text',\n raw: text,\n text\n };\n }\n return outputLink(cap, link, cap[0], this.lexer);\n }\n }\n\n emStrong(src, maskedSrc, prevChar = '') {\n let match = this.rules.inline.emStrong.lDelim.exec(src);\n if (!match) return;\n\n // _ can't be between two alphanumerics. \\p{L}\\p{N} includes non-english alphabet/numbers as well\n if (match[3] && prevChar.match(/[\\p{L}\\p{N}]/u)) return;\n\n const nextChar = match[1] || match[2] || '';\n\n if (!nextChar || (nextChar && (prevChar === '' || this.rules.inline.punctuation.exec(prevChar)))) {\n const lLength = match[0].length - 1;\n let rDelim, rLength, delimTotal = lLength, midDelimTotal = 0;\n\n const endReg = match[0][0] === '*' ? this.rules.inline.emStrong.rDelimAst : this.rules.inline.emStrong.rDelimUnd;\n endReg.lastIndex = 0;\n\n // Clip maskedSrc to same section of string as src (move to lexer?)\n maskedSrc = maskedSrc.slice(-1 * src.length + lLength);\n\n while ((match = endReg.exec(maskedSrc)) != null) {\n rDelim = match[1] || match[2] || match[3] || match[4] || match[5] || match[6];\n\n if (!rDelim) continue; // skip single * in __abc*abc__\n\n rLength = rDelim.length;\n\n if (match[3] || match[4]) { // found another Left Delim\n delimTotal += rLength;\n continue;\n } else if (match[5] || match[6]) { // either Left or Right Delim\n if (lLength % 3 && !((lLength + rLength) % 3)) {\n midDelimTotal += rLength;\n continue; // CommonMark Emphasis Rules 9-10\n }\n }\n\n delimTotal -= rLength;\n\n if (delimTotal > 0) continue; // Haven't found enough closing delimiters\n\n // Remove extra characters. *a*** -> *a*\n rLength = Math.min(rLength, rLength + delimTotal + midDelimTotal);\n\n // Create `em` if smallest delimiter has odd char count. *a***\n if (Math.min(lLength, rLength) % 2) {\n const text = src.slice(1, lLength + match.index + rLength);\n return {\n type: 'em',\n raw: src.slice(0, lLength + match.index + rLength + 1),\n text,\n tokens: this.lexer.inlineTokens(text, [])\n };\n }\n\n // Create 'strong' if smallest delimiter has even char count. **a***\n const text = src.slice(2, lLength + match.index + rLength - 1);\n return {\n type: 'strong',\n raw: src.slice(0, lLength + match.index + rLength + 1),\n text,\n tokens: this.lexer.inlineTokens(text, [])\n };\n }\n }\n }\n\n codespan(src) {\n const cap = this.rules.inline.code.exec(src);\n if (cap) {\n let text = cap[2].replace(/\\n/g, ' ');\n const hasNonSpaceChars = /[^ ]/.test(text);\n const hasSpaceCharsOnBothEnds = /^ /.test(text) && / $/.test(text);\n if (hasNonSpaceChars && hasSpaceCharsOnBothEnds) {\n text = text.substring(1, text.length - 1);\n }\n text = escape(text, true);\n return {\n type: 'codespan',\n raw: cap[0],\n text\n };\n }\n }\n\n br(src) {\n const cap = this.rules.inline.br.exec(src);\n if (cap) {\n return {\n type: 'br',\n raw: cap[0]\n };\n }\n }\n\n del(src) {\n const cap = this.rules.inline.del.exec(src);\n if (cap) {\n return {\n type: 'del',\n raw: cap[0],\n text: cap[2],\n tokens: this.lexer.inlineTokens(cap[2], [])\n };\n }\n }\n\n autolink(src, mangle) {\n const cap = this.rules.inline.autolink.exec(src);\n if (cap) {\n let text, href;\n if (cap[2] === '@') {\n text = escape(this.options.mangle ? mangle(cap[1]) : cap[1]);\n href = 'mailto:' + text;\n } else {\n text = escape(cap[1]);\n href = text;\n }\n\n return {\n type: 'link',\n raw: cap[0],\n text,\n href,\n tokens: [\n {\n type: 'text',\n raw: text,\n text\n }\n ]\n };\n }\n }\n\n url(src, mangle) {\n let cap;\n if (cap = this.rules.inline.url.exec(src)) {\n let text, href;\n if (cap[2] === '@') {\n text = escape(this.options.mangle ? mangle(cap[0]) : cap[0]);\n href = 'mailto:' + text;\n } else {\n // do extended autolink path validation\n let prevCapZero;\n do {\n prevCapZero = cap[0];\n cap[0] = this.rules.inline._backpedal.exec(cap[0])[0];\n } while (prevCapZero !== cap[0]);\n text = escape(cap[0]);\n if (cap[1] === 'www.') {\n href = 'http://' + text;\n } else {\n href = text;\n }\n }\n return {\n type: 'link',\n raw: cap[0],\n text,\n href,\n tokens: [\n {\n type: 'text',\n raw: text,\n text\n }\n ]\n };\n }\n }\n\n inlineText(src, smartypants) {\n const cap = this.rules.inline.text.exec(src);\n if (cap) {\n let text;\n if (this.lexer.state.inRawBlock) {\n text = this.options.sanitize ? (this.options.sanitizer ? this.options.sanitizer(cap[0]) : escape(cap[0])) : cap[0];\n } else {\n text = escape(this.options.smartypants ? smartypants(cap[0]) : cap[0]);\n }\n return {\n type: 'text',\n raw: cap[0],\n text\n };\n }\n }\n}\n\n/**\n * Block-Level Grammar\n */\nconst block = {\n newline: /^(?: *(?:\\n|$))+/,\n code: /^( {4}[^\\n]+(?:\\n(?: *(?:\\n|$))*)?)+/,\n fences: /^ {0,3}(`{3,}(?=[^`\\n]*\\n)|~{3,})([^\\n]*)\\n(?:|([\\s\\S]*?)\\n)(?: {0,3}\\1[~`]* *(?=\\n|$)|$)/,\n hr: /^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)/,\n heading: /^ {0,3}(#{1,6})(?=\\s|$)(.*)(?:\\n+|$)/,\n blockquote: /^( {0,3}> ?(paragraph|[^\\n]*)(?:\\n|$))+/,\n list: /^( {0,3}bull)( [^\\n]+?)?(?:\\n|$)/,\n html: '^ {0,3}(?:' // optional indentation\n + '<(script|pre|style|textarea)[\\\\s>][\\\\s\\\\S]*?(?:</\\\\1>[^\\\\n]*\\\\n+|$)' // (1)\n + '|comment[^\\\\n]*(\\\\n+|$)' // (2)\n + '|<\\\\?[\\\\s\\\\S]*?(?:\\\\?>\\\\n*|$)' // (3)\n + '|<![A-Z][\\\\s\\\\S]*?(?:>\\\\n*|$)' // (4)\n + '|<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?(?:\\\\]\\\\]>\\\\n*|$)' // (5)\n + '|</?(tag)(?: +|\\\\n|/?>)[\\\\s\\\\S]*?(?:(?:\\\\n *)+\\\\n|$)' // (6)\n + '|<(?!script|pre|style|textarea)([a-z][\\\\w-]*)(?:attribute)*? */?>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n *)+\\\\n|$)' // (7) open tag\n + '|</(?!script|pre|style|textarea)[a-z][\\\\w-]*\\\\s*>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n *)+\\\\n|$)' // (7) closing tag\n + ')',\n def: /^ {0,3}\\[(label)\\]: *(?:\\n *)?<?([^\\s>]+)>?(?:(?: +(?:\\n *)?| *\\n *)(title))? *(?:\\n+|$)/,\n table: noopTest,\n lheading: /^([^\\n]+)\\n {0,3}(=+|-+) *(?:\\n+|$)/,\n // regex template, placeholders will be replaced according to different paragraph\n // interruption rules of commonmark and the original markdown spec:\n _paragraph: /^([^\\n]+(?:\\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\\n)[^\\n]+)*)/,\n text: /^[^\\n]+/\n};\n\nblock._label = /(?!\\s*\\])(?:\\\\.|[^\\[\\]\\\\])+/;\nblock._title = /(?:\"(?:\\\\\"?|[^\"\\\\])*\"|'[^'\\n]*(?:\\n[^'\\n]+)*\\n?'|\\([^()]*\\))/;\nblock.def = edit(block.def)\n .replace('label', block._label)\n .replace('title', block._title)\n .getRegex();\n\nblock.bullet = /(?:[*+-]|\\d{1,9}[.)])/;\nblock.listItemStart = edit(/^( *)(bull) */)\n .replace('bull', block.bullet)\n .getRegex();\n\nblock.list = edit(block.list)\n .replace(/bull/g, block.bullet)\n .replace('hr', '\\\\n+(?=\\\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\\\* *){3,})(?:\\\\n+|$))')\n .replace('def', '\\\\n+(?=' + block.def.source + ')')\n .getRegex();\n\nblock._tag = 'address|article|aside|base|basefont|blockquote|body|caption'\n + '|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption'\n + '|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe'\n + '|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option'\n + '|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr'\n + '|track|ul';\nblock._comment = /<!--(?!-?>)[\\s\\S]*?(?:-->|$)/;\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', '</?(?:tag)(?: +|\\\\n|/?>)|<(?: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', '</?(?:tag)(?: +|\\\\n|/?>)|<(?: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', '</?(?:tag)(?: +|\\\\n|/?>)|<(?: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]+?</\\\\1> *(?:\\\\n{2,}|\\\\s*$)' // closed tag\n + '|<tag(?:\"[^\"]*\"|\\'[^\\']*\\'|\\\\s[^\\'\"/>\\\\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: /^ *\\[([^\\]]+)\\]: *<?([^\\s>]+)>?(?: +([\"(][^\\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 + '|^</[a-zA-Z][\\\\w:-]*\\\\s*>' // self-closing tag\n + '|^<[a-zA-Z][\\\\w-]*(?:attribute)*?\\\\s*/?>' // open tag\n + '|^<\\\\?[\\\\s\\\\S]*?\\\\?>' // processing instruction, e.g. <?php ?>\n + '|^<![a-zA-Z]+\\\\s[\\\\s\\\\S]*?>' // declaration, e.g. <!DOCTYPE html>\n + '|^<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?\\\\]\\\\]>', // 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]*?(?:(?=[\\\\<!\\[`*_]|\\b_|$)|[^ ](?= {2,}\\n)))/,\n punctuation: /^([\\spunctuation])/\n};\n\n// list of punctuation marks from CommonMark spec\n// without * and _ to handle the different emphasis markers * and _\ninline._punctuation = '!\"#$%&\\'()+\\\\-.,/:;<=>?@\\\\[\\\\]`^{|}~';\ninline.punctuation = edit(inline.punctuation).replace(/punctuation/g, inline._punctuation).getRegex();\n\n// sequences em should skip over [title](link), `code`, <html>\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]*?(?:(?=[\\\\<!\\[`*~_]|\\b_|https?:\\/\\/|ftp:\\/\\/|www\\.|$)|[^ ](?= {2,}\\n)|[^a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-](?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@)))/\n});\n\ninline.gfm.url = edit(inline.gfm.url, 'i')\n .replace('email', inline.gfm._extended_email)\n .getRegex();\n/**\n * GFM + Line Breaks Inline Grammar\n */\n\ninline.breaks = merge({}, inline.gfm, {\n br: edit(inline.br).replace('{2,}', '*').getRegex(),\n text: edit(inline.gfm.text)\n .replace('\\\\b_', '\\\\b_| {2,}\\\\n')\n .replace(/\\{2,\\}/g, '*')\n .getRegex()\n});\n\n/**\n * smartypants text replacement\n */\nfunction smartypants(text) {\n return text\n // em-dashes\n .replace(/---/g, '\\u2014')\n // en-dashes\n .replace(/--/g, '\\u2013')\n // opening singles\n .replace(/(^|[-\\u2014/(\\[{\"\\s])'/g, '$1\\u2018')\n // closing singles & apostrophes\n .replace(/'/g, '\\u2019')\n // opening doubles\n .replace(/(^|[-\\u2014/(\\[{\\u2018\\s])\"/g, '$1\\u201c')\n // closing doubles\n .replace(/\"/g, '\\u201d')\n // ellipses\n .replace(/\\.{3}/g, '\\u2026');\n}\n\n/**\n * mangle email addresses\n */\nfunction mangle(text) {\n let out = '',\n i,\n ch;\n\n const l = text.length;\n for (i = 0; i < l; i++) {\n ch = text.charCodeAt(i);\n if (Math.random() > 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 '<pre><code>'\n + (escaped ? code : escape(code, true))\n + '</code></pre>\\n';\n }\n\n return '<pre><code class=\"'\n + this.options.langPrefix\n + escape(lang, true)\n + '\">'\n + (escaped ? code : escape(code, true))\n + '</code></pre>\\n';\n }\n\n blockquote(quote) {\n return '<blockquote>\\n' + quote + '</blockquote>\\n';\n }\n\n html(html) {\n return html;\n }\n\n heading(text, level, raw, slugger) {\n if (this.options.headerIds) {\n return '<h'\n + level\n + ' id=\"'\n + this.options.headerPrefix\n + slugger.slug(raw)\n + '\">'\n + text\n + '</h'\n + level\n + '>\\n';\n }\n // ignore IDs\n return '<h' + level + '>' + text + '</h' + level + '>\\n';\n }\n\n hr() {\n return this.options.xhtml ? '<hr/>\\n' : '<hr>\\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 + '</' + type + '>\\n';\n }\n\n listitem(text) {\n return '<li>' + text + '</li>\\n';\n }\n\n checkbox(checked) {\n return '<input '\n + (checked ? 'checked=\"\" ' : '')\n + 'disabled=\"\" type=\"checkbox\"'\n + (this.options.xhtml ? ' /' : '')\n + '> ';\n }\n\n paragraph(text) {\n return '<p>' + text + '</p>\\n';\n }\n\n table(header, body) {\n if (body) body = '<tbody>' + body + '</tbody>';\n\n return '<table>\\n'\n + '<thead>\\n'\n + header\n + '</thead>\\n'\n + body\n + '</table>\\n';\n }\n\n tablerow(content) {\n return '<tr>\\n' + content + '</tr>\\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 + '</' + type + '>\\n';\n }\n\n // span level renderer\n strong(text) {\n return '<strong>' + text + '</strong>';\n }\n\n em(text) {\n return '<em>' + text + '</em>';\n }\n\n codespan(text) {\n return '<code>' + text + '</code>';\n }\n\n br() {\n return this.options.xhtml ? '<br/>' : '<br>';\n }\n\n del(text) {\n return '<del>' + text + '</del>';\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 = '<a href=\"' + escape(href) + '\"';\n if (title) {\n out += ' title=\"' + title + '\"';\n }\n out += '>' + text + '</a>';\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 = '<img src=\"' + href + '\" alt=\"' + text + '\"';\n if (title) {\n out += ' title=\"' + title + '\"';\n }\n out += this.options.xhtml ? '/>' : '>';\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 '<p>An error occurred:</p><pre>'\n + escape(e.message + '', true)\n + '</pre>';\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 '<p>An error occurred:</p><pre>'\n + escape(e.message + '', true)\n + '</pre>';\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<self._howls.length; i++) {\n if (!self._howls[i]._webAudio) {\n // Get all of the sounds in this Howl group.\n var ids = self._howls[i]._getSoundIds();\n\n // Loop through all sounds and change the volumes.\n for (var j=0; j<ids.length; j++) {\n var sound = self._howls[i]._soundById(ids[j]);\n\n if (sound && sound._node) {\n sound._node.volume = sound._volume * vol;\n }\n }\n }\n }\n\n return self;\n }\n\n return self._volume;\n },\n\n /**\n * Handle muting and unmuting globally.\n * @param {Boolean} muted Is muted or not.\n */\n mute: function(muted) {\n var self = this || Howler;\n\n // If we don't have an AudioContext created yet, run the setup.\n if (!self.ctx) {\n setupAudioContext();\n }\n\n self._muted = muted;\n\n // With Web Audio, we just need to mute the master gain.\n if (self.usingWebAudio) {\n self.masterGain.gain.setValueAtTime(muted ? 0 : self._volume, Howler.ctx.currentTime);\n }\n\n // Loop through and mute all HTML5 Audio nodes.\n for (var i=0; i<self._howls.length; i++) {\n if (!self._howls[i]._webAudio) {\n // Get all of the sounds in this Howl group.\n var ids = self._howls[i]._getSoundIds();\n\n // Loop through all sounds and mark the audio node as muted.\n for (var j=0; j<ids.length; j++) {\n var sound = self._howls[i]._soundById(ids[j]);\n\n if (sound && sound._node) {\n sound._node.muted = (muted) ? true : sound._muted;\n }\n }\n }\n }\n\n return self;\n },\n\n /**\n * Handle stopping all sounds globally.\n */\n stop: function() {\n var self = this || Howler;\n\n // Loop through all Howls and stop them.\n for (var i=0; i<self._howls.length; i++) {\n self._howls[i].stop();\n }\n\n return self;\n },\n\n /**\n * Unload and destroy all currently loaded Howl objects.\n * @return {Howler}\n */\n unload: function() {\n var self = this || Howler;\n\n for (var i=self._howls.length-1; 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<self._howls.length; i++) {\n if (!self._howls[i]._webAudio) {\n // Get all of the sounds in this Howl group.\n var ids = self._howls[i]._getSoundIds();\n\n // Loop through all sounds and unlock the audio nodes.\n for (var j=0; j<ids.length; j++) {\n var sound = self._howls[i]._soundById(ids[j]);\n\n if (sound && sound._node && !sound._node._unlocked) {\n sound._node._unlocked = true;\n sound._node.load();\n }\n }\n }\n }\n\n // Fix Android can not play in suspend state.\n self._autoResume();\n\n // Create an empty buffer.\n var source = self.ctx.createBufferSource();\n source.buffer = self._scratchBuffer;\n source.connect(self.ctx.destination);\n\n // Play the empty buffer.\n if (typeof source.start === 'undefined') {\n source.noteOn(0);\n } else {\n source.start(0);\n }\n\n // Calling resume() on a stack initiated by user gesture is what actually unlocks the audio on Android Chrome >= 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<self._howls.length; i++) {\n self._howls[i]._emit('unlock');\n }\n };\n };\n\n // Setup a touch start listener to attempt an unlock in.\n document.addEventListener('touchstart', unlock, true);\n document.addEventListener('touchend', unlock, true);\n document.addEventListener('click', unlock, true);\n document.addEventListener('keydown', unlock, true);\n\n return self;\n },\n\n /**\n * Get an unlocked HTML5 Audio object from the pool. If none are left,\n * return a new Audio object and throw a warning.\n * @return {Audio} HTML5 Audio object.\n */\n _obtainHtml5Audio: function() {\n var self = this || Howler;\n\n // Return the next object from the pool if one exists.\n if (self._html5AudioPool.length) {\n return self._html5AudioPool.pop();\n }\n\n //.Check if the audio is locked and throw a warning.\n var testPlay = new Audio().play();\n if (testPlay && typeof Promise !== 'undefined' && (testPlay instanceof Promise || typeof testPlay.then === 'function')) {\n testPlay.catch(function() {\n console.warn('HTML5 Audio pool exhausted, returning potentially locked audio object.');\n });\n }\n\n return new Audio();\n },\n\n /**\n * Return an activated HTML5 Audio object to the pool.\n * @return {Howler}\n */\n _releaseHtml5Audio: function(audio) {\n var self = this || Howler;\n\n // Don't add audio to the pool if we don't know if it has been unlocked.\n if (audio._unlocked) {\n self._html5AudioPool.push(audio);\n }\n\n return self;\n },\n\n /**\n * Automatically suspend the Web Audio AudioContext after no sound has played for 30 seconds.\n * This saves processing/energy and fixes various browser-specific bugs with audio getting stuck.\n * @return {Howler}\n */\n _autoSuspend: function() {\n var self = this;\n\n if (!self.autoSuspend || !self.ctx || typeof self.ctx.suspend === 'undefined' || !Howler.usingWebAudio) {\n return;\n }\n\n // Check if any sounds are playing.\n for (var i=0; i<self._howls.length; i++) {\n if (self._howls[i]._webAudio) {\n for (var j=0; j<self._howls[i]._sounds.length; j++) {\n if (!self._howls[i]._sounds[j]._paused) {\n return self;\n }\n }\n }\n }\n\n if (self._suspendTimer) {\n clearTimeout(self._suspendTimer);\n }\n\n // If no sound has played after 30 seconds, suspend the context.\n self._suspendTimer = setTimeout(function() {\n if (!self.autoSuspend) {\n return;\n }\n\n self._suspendTimer = null;\n self.state = 'suspending';\n\n // Handle updating the state of the audio context after suspending.\n var handleSuspension = function() {\n self.state = 'suspended';\n\n if (self._resumeAfterSuspend) {\n delete self._resumeAfterSuspend;\n self._autoResume();\n }\n };\n\n // Either the state gets suspended or it is interrupted.\n // Either way, we need to update the state to suspended.\n self.ctx.suspend().then(handleSuspension, handleSuspension);\n }, 30000);\n\n return self;\n },\n\n /**\n * Automatically resume the Web Audio AudioContext when a new sound is played.\n * @return {Howler}\n */\n _autoResume: function() {\n var self = this;\n\n if (!self.ctx || typeof self.ctx.resume === 'undefined' || !Howler.usingWebAudio) {\n return;\n }\n\n if (self.state === 'running' && self.ctx.state !== 'interrupted' && self._suspendTimer) {\n clearTimeout(self._suspendTimer);\n self._suspendTimer = null;\n } else if (self.state === 'suspended' || self.state === 'running' && self.ctx.state === 'interrupted') {\n self.ctx.resume().then(function() {\n self.state = 'running';\n\n // Emit to all Howls that the audio has resumed.\n for (var i=0; i<self._howls.length; i++) {\n self._howls[i]._emit('resume');\n }\n });\n\n if (self._suspendTimer) {\n clearTimeout(self._suspendTimer);\n self._suspendTimer = null;\n }\n } else if (self.state === 'suspending') {\n self._resumeAfterSuspend = true;\n }\n\n return self;\n }\n };\n\n // Setup the global audio controller.\n var Howler = new HowlerGlobal();\n\n /** Group Methods **/\n /***************************************************************************/\n\n /**\n * Create an audio group controller.\n * @param {Object} o Passed in properties for this group.\n */\n var Howl = function(o) {\n var self = this;\n\n // Throw an error if no source is provided.\n if (!o.src || o.src.length === 0) {\n console.error('An array of source files must be passed with any new Howl.');\n return;\n }\n\n self.init(o);\n };\n Howl.prototype = {\n /**\n * Initialize a new Howl group object.\n * @param {Object} o Passed in properties for this group.\n * @return {Howl}\n */\n init: function(o) {\n var self = this;\n\n // If we don't have an AudioContext created yet, run the setup.\n if (!Howler.ctx) {\n setupAudioContext();\n }\n\n // Setup user-defined default properties.\n self._autoplay = o.autoplay || false;\n self._format = (typeof o.format !== 'string') ? o.format : [o.format];\n self._html5 = o.html5 || false;\n self._muted = o.mute || false;\n self._loop = o.loop || false;\n self._pool = o.pool || 5;\n self._preload = (typeof o.preload === 'boolean' || o.preload === 'metadata') ? o.preload : true;\n self._rate = o.rate || 1;\n self._sprite = o.sprite || {};\n self._src = (typeof o.src !== 'string') ? o.src : [o.src];\n self._volume = o.volume !== undefined ? o.volume : 1;\n self._xhr = {\n method: o.xhr && o.xhr.method ? o.xhr.method : 'GET',\n headers: o.xhr && o.xhr.headers ? o.xhr.headers : null,\n withCredentials: o.xhr && o.xhr.withCredentials ? o.xhr.withCredentials : false,\n };\n\n // Setup all other default properties.\n self._duration = 0;\n self._state = 'unloaded';\n self._sounds = [];\n self._endTimers = {};\n self._queue = [];\n self._playLock = false;\n\n // Setup event listeners.\n self._onend = o.onend ? [{fn: o.onend}] : [];\n self._onfade = o.onfade ? [{fn: o.onfade}] : [];\n self._onload = o.onload ? [{fn: o.onload}] : [];\n self._onloaderror = o.onloaderror ? [{fn: o.onloaderror}] : [];\n self._onplayerror = o.onplayerror ? [{fn: o.onplayerror}] : [];\n self._onpause = o.onpause ? [{fn: o.onpause}] : [];\n self._onplay = o.onplay ? [{fn: o.onplay}] : [];\n self._onstop = o.onstop ? [{fn: o.onstop}] : [];\n self._onmute = o.onmute ? [{fn: o.onmute}] : [];\n self._onvolume = o.onvolume ? [{fn: o.onvolume}] : [];\n self._onrate = o.onrate ? [{fn: o.onrate}] : [];\n self._onseek = o.onseek ? [{fn: o.onseek}] : [];\n self._onunlock = o.onunlock ? [{fn: o.onunlock}] : [];\n self._onresume = [];\n\n // Web Audio or HTML5 Audio?\n self._webAudio = Howler.usingWebAudio && !self._html5;\n\n // Automatically try to enable audio.\n if (typeof Howler.ctx !== 'undefined' && Howler.ctx && Howler.autoUnlock) {\n Howler._unlockAudio();\n }\n\n // Keep track of this Howl group in the global controller.\n Howler._howls.push(self);\n\n // If they selected autoplay, add a play event to the load queue.\n if (self._autoplay) {\n self._queue.push({\n event: 'play',\n action: function() {\n self.play();\n }\n });\n }\n\n // Load the source file unless otherwise specified.\n if (self._preload && self._preload !== 'none') {\n self.load();\n }\n\n return self;\n },\n\n /**\n * Load the audio file.\n * @return {Howler}\n */\n load: function() {\n var self = this;\n var url = null;\n\n // If no audio is available, quit immediately.\n if (Howler.noAudio) {\n self._emit('loaderror', null, 'No audio support.');\n return;\n }\n\n // Make sure our source is in an array.\n if (typeof self._src === 'string') {\n self._src = [self._src];\n }\n\n // Loop through the sources and pick the first one that is compatible.\n for (var i=0; i<self._src.length; i++) {\n var ext, str;\n\n if (self._format && self._format[i]) {\n // If an extension was specified, use that instead.\n ext = self._format[i];\n } else {\n // Make sure the source is a string.\n str = self._src[i];\n if (typeof str !== 'string') {\n self._emit('loaderror', null, 'Non-string found in selected audio sources - ignoring.');\n continue;\n }\n\n // Extract the file extension from the URL or base64 data URI.\n ext = /^data:audio\\/([^;,]+);/i.exec(str);\n if (!ext) {\n ext = /\\.([^.]+)$/.exec(str.split('?', 1)[0]);\n }\n\n if (ext) {\n ext = ext[1].toLowerCase();\n }\n }\n\n // Log a warning if no extension was found.\n if (!ext) {\n console.warn('No file extension was found. Consider using the \"format\" property or specify an extension.');\n }\n\n // Check if this extension is available.\n if (ext && Howler.codecs(ext)) {\n url = self._src[i];\n break;\n }\n }\n\n if (!url) {\n self._emit('loaderror', null, 'No codec support for selected audio sources.');\n return;\n }\n\n self._src = url;\n self._state = 'loading';\n\n // If the hosting page is HTTPS and the source isn't,\n // drop down to HTML5 Audio to avoid Mixed Content errors.\n if (window.location.protocol === 'https:' && url.slice(0, 5) === 'http:') {\n self._html5 = true;\n self._webAudio = false;\n }\n\n // Create a new sound object and add it to the pool.\n new Sound(self);\n\n // Load and decode the audio data for playback.\n if (self._webAudio) {\n loadBuffer(self);\n }\n\n return self;\n },\n\n /**\n * Play a sound or resume previous playback.\n * @param {String/Number} sprite Sprite name for sprite playback or sound id to continue previous.\n * @param {Boolean} internal Internal Use: true prevents event firing.\n * @return {Number} Sound ID.\n */\n play: function(sprite, internal) {\n var self = this;\n var id = null;\n\n // Determine if a sprite, sound id or nothing was passed\n if (typeof sprite === 'number') {\n id = sprite;\n sprite = null;\n } else if (typeof sprite === 'string' && self._state === 'loaded' && !self._sprite[sprite]) {\n // If the passed sprite doesn't exist, do nothing.\n return null;\n } else if (typeof sprite === 'undefined') {\n // Use the default sound sprite (plays the full audio length).\n sprite = '__default';\n\n // Check if there is a single paused sound that isn't ended.\n // If there is, play that sound. If not, continue as usual.\n if (!self._playLock) {\n var num = 0;\n for (var i=0; i<self._sounds.length; i++) {\n if (self._sounds[i]._paused && !self._sounds[i]._ended) {\n num++;\n id = self._sounds[i]._id;\n }\n }\n\n if (num === 1) {\n sprite = null;\n } else {\n id = null;\n }\n }\n }\n\n // Get the selected node, or get one from the pool.\n var sound = id ? self._soundById(id) : self._inactiveSound();\n\n // If the sound doesn't exist, do nothing.\n if (!sound) {\n return null;\n }\n\n // Select the sprite definition.\n if (id && !sprite) {\n sprite = sound._sprite || '__default';\n }\n\n // If the sound hasn't loaded, we must wait to get the audio's duration.\n // We also need to wait to make sure we don't run into race conditions with\n // the order of function calls.\n if (self._state !== 'loaded') {\n // Set the sprite value on this sound.\n sound._sprite = sprite;\n\n // Mark this sound as not ended in case another sound is played before this one loads.\n sound._ended = false;\n\n // Add the sound to the queue to be played on load.\n var soundId = sound._id;\n self._queue.push({\n event: 'play',\n action: function() {\n self.play(soundId);\n }\n });\n\n return soundId;\n }\n\n // Don't play the sound if an id was passed and it is already playing.\n if (id && !sound._paused) {\n // Trigger the play event, in order to keep iterating through queue.\n if (!internal) {\n self._loadQueue('play');\n }\n\n return sound._id;\n }\n\n // Make sure the AudioContext isn't suspended, and resume it if it is.\n if (self._webAudio) {\n Howler._autoResume();\n }\n\n // Determine how long to play for and where to start playing.\n var seek = Math.max(0, sound._seek > 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<ids.length; i++) {\n // Clear the end timer.\n self._clearTimer(ids[i]);\n\n // Get the sound.\n var sound = self._soundById(ids[i]);\n\n if (sound && !sound._paused) {\n // Reset the seek position.\n sound._seek = self.seek(ids[i]);\n sound._rateSeek = 0;\n sound._paused = true;\n\n // Stop currently running fades.\n self._stopFade(ids[i]);\n\n if (sound._node) {\n if (self._webAudio) {\n // Make sure the sound has been created.\n if (!sound._node.bufferSource) {\n continue;\n }\n\n if (typeof sound._node.bufferSource.stop === 'undefined') {\n sound._node.bufferSource.noteOff(0);\n } else {\n sound._node.bufferSource.stop(0);\n }\n\n // Clean up the buffer source.\n self._cleanBuffer(sound._node);\n } else if (!isNaN(sound._node.duration) || sound._node.duration === Infinity) {\n sound._node.pause();\n }\n }\n }\n\n // Fire the pause event, unless `true` is passed as the 2nd argument.\n if (!arguments[1]) {\n self._emit('pause', sound ? sound._id : null);\n }\n }\n\n return self;\n },\n\n /**\n * Stop playback and reset to start.\n * @param {Number} id The sound ID (empty to stop all in group).\n * @param {Boolean} internal Internal Use: true prevents event firing.\n * @return {Howl}\n */\n stop: function(id, internal) {\n var self = this;\n\n // If the sound hasn't loaded, add it to the load queue to stop when capable.\n if (self._state !== 'loaded' || self._playLock) {\n self._queue.push({\n event: 'stop',\n action: function() {\n self.stop(id);\n }\n });\n\n return self;\n }\n\n // If no id is passed, get all ID's to be stopped.\n var ids = self._getSoundIds(id);\n\n for (var i=0; i<ids.length; i++) {\n // Clear the end timer.\n self._clearTimer(ids[i]);\n\n // Get the sound.\n var sound = self._soundById(ids[i]);\n\n if (sound) {\n // Reset the seek position.\n sound._seek = sound._start || 0;\n sound._rateSeek = 0;\n sound._paused = true;\n sound._ended = true;\n\n // Stop currently running fades.\n self._stopFade(ids[i]);\n\n if (sound._node) {\n if (self._webAudio) {\n // Make sure the sound's AudioBufferSourceNode has been created.\n if (sound._node.bufferSource) {\n if (typeof sound._node.bufferSource.stop === 'undefined') {\n sound._node.bufferSource.noteOff(0);\n } else {\n sound._node.bufferSource.stop(0);\n }\n\n // Clean up the buffer source.\n self._cleanBuffer(sound._node);\n }\n } else if (!isNaN(sound._node.duration) || sound._node.duration === Infinity) {\n sound._node.currentTime = sound._start || 0;\n sound._node.pause();\n\n // If this is a live stream, stop download once the audio is stopped.\n if (sound._node.duration === Infinity) {\n self._clearSound(sound._node);\n }\n }\n }\n\n if (!internal) {\n self._emit('stop', sound._id);\n }\n }\n }\n\n return self;\n },\n\n /**\n * Mute/unmute a single sound or all sounds in this Howl group.\n * @param {Boolean} muted Set to true to mute and false to unmute.\n * @param {Number} id The sound ID to update (omit to mute/unmute all).\n * @return {Howl}\n */\n mute: function(muted, id) {\n var self = this;\n\n // If the sound hasn't loaded, add it to the load queue to mute when capable.\n if (self._state !== 'loaded'|| self._playLock) {\n self._queue.push({\n event: 'mute',\n action: function() {\n self.mute(muted, id);\n }\n });\n\n return self;\n }\n\n // If applying mute/unmute to all sounds, update the group's value.\n if (typeof id === 'undefined') {\n if (typeof muted === 'boolean') {\n self._muted = muted;\n } else {\n return self._muted;\n }\n }\n\n // If no id is passed, get all ID's to be muted.\n var ids = self._getSoundIds(id);\n\n for (var i=0; i<ids.length; i++) {\n // Get the sound.\n var sound = self._soundById(ids[i]);\n\n if (sound) {\n sound._muted = muted;\n\n // Cancel active fade and set the volume to the end value.\n if (sound._interval) {\n self._stopFade(sound._id);\n }\n\n if (self._webAudio && sound._node) {\n sound._node.gain.setValueAtTime(muted ? 0 : sound._volume, Howler.ctx.currentTime);\n } else if (sound._node) {\n sound._node.muted = Howler._muted ? true : muted;\n }\n\n self._emit('mute', sound._id);\n }\n }\n\n return self;\n },\n\n /**\n * Get/set the volume of this sound or of the Howl group. This method can optionally take 0, 1 or 2 arguments.\n * volume() -> 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<id.length; i++) {\n // Get the sound.\n sound = self._soundById(id[i]);\n\n if (sound) {\n sound._volume = vol;\n\n // Stop currently running fades.\n if (!args[2]) {\n self._stopFade(id[i]);\n }\n\n if (self._webAudio && sound._node && !sound._muted) {\n sound._node.gain.setValueAtTime(vol, Howler.ctx.currentTime);\n } else if (sound._node && !sound._muted) {\n sound._node.volume = vol * Howler.volume();\n }\n\n self._emit('volume', sound._id);\n }\n }\n } else {\n sound = id ? self._soundById(id) : self._sounds[0];\n return sound ? sound._volume : 0;\n }\n\n return self;\n },\n\n /**\n * Fade a currently playing sound between two volumes (if no id is passed, all sounds will fade).\n * @param {Number} from The value to fade from (0.0 to 1.0).\n * @param {Number} to The volume to fade to (0.0 to 1.0).\n * @param {Number} len Time in milliseconds to fade.\n * @param {Number} id The sound id (omit to fade all sounds).\n * @return {Howl}\n */\n fade: function(from, to, len, id) {\n var self = this;\n\n // If the sound hasn't loaded, add it to the load queue to fade when capable.\n if (self._state !== 'loaded' || self._playLock) {\n self._queue.push({\n event: 'fade',\n action: function() {\n self.fade(from, to, len, id);\n }\n });\n\n return self;\n }\n\n // Make sure the to/from/len values are numbers.\n from = Math.min(Math.max(0, parseFloat(from)), 1);\n to = Math.min(Math.max(0, parseFloat(to)), 1);\n len = parseFloat(len);\n\n // Set the volume to the start position.\n self.volume(from, id);\n\n // Fade the volume of one or all sounds.\n var ids = self._getSoundIds(id);\n for (var i=0; i<ids.length; i++) {\n // Get the sound.\n var sound = self._soundById(ids[i]);\n\n // Create a linear fade or fall back to timeouts with HTML5 Audio.\n if (sound) {\n // Stop the previous fade if no sprite is being used (otherwise, volume handles this).\n if (!id) {\n self._stopFade(ids[i]);\n }\n\n // If we are using Web Audio, let the native methods do the actual fade.\n if (self._webAudio && !sound._muted) {\n var currentTime = Howler.ctx.currentTime;\n var end = currentTime + (len / 1000);\n sound._volume = from;\n sound._node.gain.setValueAtTime(from, currentTime);\n sound._node.gain.linearRampToValueAtTime(to, end);\n }\n\n self._startFadeInterval(sound, from, to, len, ids[i], typeof id === 'undefined');\n }\n }\n\n return self;\n },\n\n /**\n * Starts the internal interval to fade a sound.\n * @param {Object} sound Reference to sound to fade.\n * @param {Number} from The value to fade from (0.0 to 1.0).\n * @param {Number} to The volume to fade to (0.0 to 1.0).\n * @param {Number} len Time in milliseconds to fade.\n * @param {Number} id The sound id to fade.\n * @param {Boolean} isGroup If true, set the volume on the group.\n */\n _startFadeInterval: function(sound, from, to, len, id, isGroup) {\n var self = this;\n var vol = from;\n var diff = to - from;\n var steps = Math.abs(diff / 0.01);\n var stepLen = Math.max(4, (steps > 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<ids.length; i++) {\n sound = self._soundById(ids[i]);\n\n if (sound) {\n sound._loop = loop;\n if (self._webAudio && sound._node && sound._node.bufferSource) {\n sound._node.bufferSource.loop = loop;\n if (loop) {\n sound._node.bufferSource.loopStart = sound._start || 0;\n sound._node.bufferSource.loopEnd = sound._stop;\n\n // If playing, restart playback to ensure looping updates.\n if (self.playing(ids[i])) {\n self.pause(ids[i], true);\n self.play(ids[i], true);\n }\n }\n }\n }\n }\n\n return self;\n },\n\n /**\n * Get/set the playback rate of a sound. This method can optionally take 0, 1 or 2 arguments.\n * rate() -> 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<id.length; i++) {\n // Get the sound.\n sound = self._soundById(id[i]);\n\n if (sound) {\n // Keep track of our position when the rate changed and update the playback\n // start position so we can properly adjust the seek position for time elapsed.\n if (self.playing(id[i])) {\n sound._rateSeek = self.seek(id[i]);\n sound._playStart = self._webAudio ? Howler.ctx.currentTime : sound._playStart;\n }\n sound._rate = rate;\n\n // Change the playback rate.\n if (self._webAudio && sound._node && sound._node.bufferSource) {\n sound._node.bufferSource.playbackRate.setValueAtTime(rate, Howler.ctx.currentTime);\n } else if (sound._node) {\n sound._node.playbackRate = rate;\n }\n\n // Reset the timers.\n var seek = self.seek(id[i]);\n var duration = ((self._sprite[sound._sprite][0] + self._sprite[sound._sprite][1]) / 1000) - seek;\n var timeout = (duration * 1000) / Math.abs(sound._rate);\n\n // Start a new end timer if sound is already playing.\n if (self._endTimers[id[i]] || !sound._paused) {\n self._clearTimer(id[i]);\n self._endTimers[id[i]] = setTimeout(self._ended.bind(self, sound), timeout);\n }\n\n self._emit('rate', sound._id);\n }\n }\n } else {\n sound = self._soundById(id);\n return sound ? sound._rate : self._rate;\n }\n\n return self;\n },\n\n /**\n * Get/set the seek position of a sound. This method can optionally take 0, 1 or 2 arguments.\n * seek() -> 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<self._sounds.length; i++) {\n if (!self._sounds[i]._paused) {\n return true;\n }\n }\n\n return false;\n },\n\n /**\n * Get the duration of this sound. Passing a sound id will return the sprite duration.\n * @param {Number} id The sound id to check. If none is passed, return full source duration.\n * @return {Number} Audio duration in seconds.\n */\n duration: function(id) {\n var self = this;\n var duration = self._duration;\n\n // If we pass an ID, get the sound and return the sprite length.\n var sound = self._soundById(id);\n if (sound) {\n duration = self._sprite[sound._sprite][1] / 1000;\n }\n\n return duration;\n },\n\n /**\n * Returns the current loaded state of this Howl.\n * @return {String} 'unloaded', 'loading', 'loaded'\n */\n state: function() {\n return this._state;\n },\n\n /**\n * Unload and destroy the current Howl object.\n * This will immediately stop all sound instances attached to this group.\n */\n unload: function() {\n var self = this;\n\n // Stop playing any active sounds.\n var sounds = self._sounds;\n for (var i=0; i<sounds.length; i++) {\n // Stop the sound if it is currently playing.\n if (!sounds[i]._paused) {\n self.stop(sounds[i]._id);\n }\n\n // Remove the source or disconnect.\n if (!self._webAudio) {\n // Set the source to 0-second silence to stop any downloading (except in IE).\n self._clearSound(sounds[i]._node);\n\n // Remove any event listeners.\n sounds[i]._node.removeEventListener('error', sounds[i]._errorFn, false);\n sounds[i]._node.removeEventListener(Howler._canPlayEvent, sounds[i]._loadFn, false);\n sounds[i]._node.removeEventListener('ended', sounds[i]._endFn, false);\n\n // Release the Audio object back to the pool.\n Howler._releaseHtml5Audio(sounds[i]._node);\n }\n\n // Empty out all of the nodes.\n delete sounds[i]._node;\n\n // Make sure all timers are cleared out.\n self._clearTimer(sounds[i]._id);\n }\n\n // Remove the references in the global Howler object.\n var index = Howler._howls.indexOf(self);\n if (index >= 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<Howler._howls.length; i++) {\n if (Howler._howls[i]._src === self._src || self._src.indexOf(Howler._howls[i]._src) >= 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<events.length; i++) {\n var isId = (id === events[i].id);\n if (fn === events[i].fn && isId || !fn && isId) {\n events.splice(i, 1);\n break;\n }\n }\n } else if (event) {\n // Clear out all events of this type.\n self['_on' + event] = [];\n } else {\n // Clear out all events of every type.\n var keys = Object.keys(self);\n for (i=0; i<keys.length; i++) {\n if ((keys[i].indexOf('_on') === 0) && Array.isArray(self[keys[i]])) {\n self[keys[i]] = [];\n }\n }\n }\n\n return self;\n },\n\n /**\n * Listen to a custom event and remove it once fired.\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 * @return {Howl}\n */\n once: function(event, fn, id) {\n var self = this;\n\n // Setup the event listener.\n self.on(event, fn, id, 1);\n\n return self;\n },\n\n /**\n * Emit all events of a specific type and pass the sound id.\n * @param {String} event Event name.\n * @param {Number} id Sound ID.\n * @param {Number} msg Message to go with event.\n * @return {Howl}\n */\n _emit: function(event, id, msg) {\n var self = this;\n var events = self['_on' + event];\n\n // Loop through event store and fire all functions.\n for (var i=events.length-1; 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<self._sounds.length; i++) {\n if (id === self._sounds[i]._id) {\n return self._sounds[i];\n }\n }\n\n return null;\n },\n\n /**\n * Return an inactive sound from the pool or create a new one.\n * @return {Sound} Sound playback object.\n */\n _inactiveSound: function() {\n var self = this;\n\n self._drain();\n\n // Find the first inactive node to recycle.\n for (var i=0; i<self._sounds.length; i++) {\n if (self._sounds[i]._ended) {\n return self._sounds[i].reset();\n }\n }\n\n // If no inactive node was found, create a new one.\n return new Sound(self);\n },\n\n /**\n * Drain excess inactive sounds from the pool.\n */\n _drain: function() {\n var self = this;\n var limit = self._pool;\n var cnt = 0;\n var i = 0;\n\n // If there are less sounds than the max pool size, we are done.\n if (self._sounds.length < limit) {\n return;\n }\n\n // Count the number of inactive sounds.\n for (i=0; i<self._sounds.length; i++) {\n if (self._sounds[i]._ended) {\n cnt++;\n }\n }\n\n // Remove excess inactive sounds, going in reverse order.\n for (i=self._sounds.length - 1; 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<self._sounds.length; i++) {\n ids.push(self._sounds[i]._id);\n }\n\n return ids;\n } else {\n return [id];\n }\n },\n\n /**\n * Load the sound back into the buffer source.\n * @param {Sound} sound The sound object to work with.\n * @return {Howl}\n */\n _refreshBuffer: function(sound) {\n var self = this;\n\n // Setup the buffer source for playback.\n sound._node.bufferSource = Howler.ctx.createBufferSource();\n sound._node.bufferSource.buffer = cache[self._src];\n\n // Connect to the correct node.\n if (sound._panner) {\n sound._node.bufferSource.connect(sound._panner);\n } else {\n sound._node.bufferSource.connect(sound._node);\n }\n\n // Setup looping and playback rate.\n sound._node.bufferSource.loop = sound._loop;\n if (sound._loop) {\n sound._node.bufferSource.loopStart = sound._start || 0;\n sound._node.bufferSource.loopEnd = sound._stop || 0;\n }\n sound._node.bufferSource.playbackRate.setValueAtTime(sound._rate, Howler.ctx.currentTime);\n\n return self;\n },\n\n /**\n * Prevent memory leaks by cleaning up the buffer source after playback.\n * @param {Object} node Sound's audio node containing the buffer source.\n * @return {Howl}\n */\n _cleanBuffer: function(node) {\n var self = this;\n var isIOS = Howler._navigator && Howler._navigator.vendor.indexOf('Apple') >= 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<data.length; ++i) {\n dataView[i] = data.charCodeAt(i);\n }\n\n decodeAudioData(dataView.buffer, self);\n } else {\n // Load the buffer from the URL.\n var xhr = new XMLHttpRequest();\n xhr.open(self._xhr.method, url, true);\n xhr.withCredentials = self._xhr.withCredentials;\n xhr.responseType = 'arraybuffer';\n\n // Apply any custom headers to the request.\n if (self._xhr.headers) {\n Object.keys(self._xhr.headers).forEach(function(key) {\n xhr.setRequestHeader(key, self._xhr.headers[key]);\n });\n }\n\n xhr.onload = function() {\n // Make sure we get a successful response back.\n var code = (xhr.status + '')[0];\n if (code !== '0' && code !== '2' && code !== '3') {\n self._emit('loaderror', null, 'Failed loading audio file with status: ' + xhr.status + '.');\n return;\n }\n\n decodeAudioData(xhr.response, self);\n };\n xhr.onerror = function() {\n // If there is an error, switch to HTML5 Audio.\n if (self._webAudio) {\n self._html5 = true;\n self._webAudio = false;\n self._sounds = [];\n delete cache[url];\n self.load();\n }\n };\n safeXhrSend(xhr);\n }\n };\n\n /**\n * Send the XHR request wrapped in a try/catch.\n * @param {Object} xhr XHR to send.\n */\n var safeXhrSend = function(xhr) {\n try {\n xhr.send();\n } catch (e) {\n xhr.onerror();\n }\n };\n\n /**\n * Decode audio data from an array buffer.\n * @param {ArrayBuffer} arraybuffer The audio data.\n * @param {Howl} self\n */\n var decodeAudioData = function(arraybuffer, self) {\n // Fire a load error if something broke.\n var error = function() {\n self._emit('loaderror', null, 'Decoding audio data failed.');\n };\n\n // Load the sound on success.\n var success = function(buffer) {\n if (buffer && self._sounds.length > 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<ids.length; i++) {\n // Get the sound.\n var sound = self._soundById(ids[i]);\n\n if (sound) {\n if (typeof pan === 'number') {\n sound._stereo = pan;\n sound._pos = [pan, 0, 0];\n\n if (sound._node) {\n // If we are falling back, make sure the panningModel is equalpower.\n sound._pannerAttr.panningModel = 'equalpower';\n\n // Check if there is a panner setup and create a new one if not.\n if (!sound._panner || !sound._panner.pan) {\n setupPanner(sound, pannerType);\n }\n\n if (pannerType === 'spatial') {\n if (typeof sound._panner.positionX !== 'undefined') {\n sound._panner.positionX.setValueAtTime(pan, Howler.ctx.currentTime);\n sound._panner.positionY.setValueAtTime(0, Howler.ctx.currentTime);\n sound._panner.positionZ.setValueAtTime(0, Howler.ctx.currentTime);\n } else {\n sound._panner.setPosition(pan, 0, 0);\n }\n } else {\n sound._panner.pan.setValueAtTime(pan, Howler.ctx.currentTime);\n }\n }\n\n self._emit('stereo', sound._id);\n } else {\n return sound._stereo;\n }\n }\n }\n\n return self;\n };\n\n /**\n * Get/set the 3D spatial position of the audio source for this sound or group relative to the global listener.\n * @param {Number} x The x-position of the audio source.\n * @param {Number} y The y-position of the audio source.\n * @param {Number} z The z-position of the audio source.\n * @param {Number} id (optional) The sound ID. If none is passed, all in group will be updated.\n * @return {Howl/Array} Returns self or the current 3D spatial position: [x, y, z].\n */\n Howl.prototype.pos = function(x, y, z, 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 position when capable.\n if (self._state !== 'loaded') {\n self._queue.push({\n event: 'pos',\n action: function() {\n self.pos(x, y, z, id);\n }\n });\n\n return self;\n }\n\n // Set the defaults for optional 'y' & 'z'.\n y = (typeof y !== 'number') ? 0 : y;\n z = (typeof z !== 'number') ? -0.5 : z;\n\n // Setup the group's spatial position if no ID is passed.\n if (typeof id === 'undefined') {\n // Return the group's spatial position if no parameters are passed.\n if (typeof x === 'number') {\n self._pos = [x, y, z];\n } else {\n return self._pos;\n }\n }\n\n // Change the spatial position of one or all sounds in group.\n var ids = self._getSoundIds(id);\n for (var i=0; i<ids.length; i++) {\n // Get the sound.\n var sound = self._soundById(ids[i]);\n\n if (sound) {\n if (typeof x === 'number') {\n sound._pos = [x, y, z];\n\n if (sound._node) {\n // Check if there is a panner setup and create a new one if not.\n if (!sound._panner || sound._panner.pan) {\n setupPanner(sound, 'spatial');\n }\n\n if (typeof sound._panner.positionX !== 'undefined') {\n sound._panner.positionX.setValueAtTime(x, Howler.ctx.currentTime);\n sound._panner.positionY.setValueAtTime(y, Howler.ctx.currentTime);\n sound._panner.positionZ.setValueAtTime(z, Howler.ctx.currentTime);\n } else {\n sound._panner.setPosition(x, y, z);\n }\n }\n\n self._emit('pos', sound._id);\n } else {\n return sound._pos;\n }\n }\n }\n\n return self;\n };\n\n /**\n * Get/set the direction the audio source is pointing in the 3D cartesian coordinate\n * space. Depending on how direction the sound is, based on the `cone` attributes,\n * a sound pointing away from the listener can be quiet or silent.\n * @param {Number} x The x-orientation of the source.\n * @param {Number} y The y-orientation of the source.\n * @param {Number} z The z-orientation of the source.\n * @param {Number} id (optional) The sound ID. If none is passed, all in group will be updated.\n * @return {Howl/Array} Returns self or the current 3D spatial orientation: [x, y, z].\n */\n Howl.prototype.orientation = function(x, y, z, 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 orientation when capable.\n if (self._state !== 'loaded') {\n self._queue.push({\n event: 'orientation',\n action: function() {\n self.orientation(x, y, z, id);\n }\n });\n\n return self;\n }\n\n // Set the defaults for optional 'y' & 'z'.\n y = (typeof y !== 'number') ? self._orientation[1] : y;\n z = (typeof z !== 'number') ? self._orientation[2] : z;\n\n // Setup the group's spatial orientation if no ID is passed.\n if (typeof id === 'undefined') {\n // Return the group's spatial orientation if no parameters are passed.\n if (typeof x === 'number') {\n self._orientation = [x, y, z];\n } else {\n return self._orientation;\n }\n }\n\n // Change the spatial orientation of one or all sounds in group.\n var ids = self._getSoundIds(id);\n for (var i=0; i<ids.length; i++) {\n // Get the sound.\n var sound = self._soundById(ids[i]);\n\n if (sound) {\n if (typeof x === 'number') {\n sound._orientation = [x, y, z];\n\n if (sound._node) {\n // Check if there is a panner setup and create a new one if not.\n if (!sound._panner) {\n // Make sure we have a position to setup the node with.\n if (!sound._pos) {\n sound._pos = self._pos || [0, 0, -0.5];\n }\n\n setupPanner(sound, 'spatial');\n }\n\n if (typeof sound._panner.orientationX !== 'undefined') {\n sound._panner.orientationX.setValueAtTime(x, Howler.ctx.currentTime);\n sound._panner.orientationY.setValueAtTime(y, Howler.ctx.currentTime);\n sound._panner.orientationZ.setValueAtTime(z, Howler.ctx.currentTime);\n } else {\n sound._panner.setOrientation(x, y, z);\n }\n }\n\n self._emit('orientation', sound._id);\n } else {\n return sound._orientation;\n }\n }\n }\n\n return self;\n };\n\n /**\n * Get/set the panner node's attributes for a sound or group of sounds.\n * This method can optionall take 0, 1 or 2 arguments.\n * pannerAttr() -> 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<ids.length; i++) {\n sound = self._soundById(ids[i]);\n\n if (sound) {\n // Merge the new values into the sound.\n var pa = sound._pannerAttr;\n pa = {\n coneInnerAngle: typeof o.coneInnerAngle !== 'undefined' ? o.coneInnerAngle : pa.coneInnerAngle,\n coneOuterAngle: typeof o.coneOuterAngle !== 'undefined' ? o.coneOuterAngle : pa.coneOuterAngle,\n coneOuterGain: typeof o.coneOuterGain !== 'undefined' ? o.coneOuterGain : pa.coneOuterGain,\n distanceModel: typeof o.distanceModel !== 'undefined' ? o.distanceModel : pa.distanceModel,\n maxDistance: typeof o.maxDistance !== 'undefined' ? o.maxDistance : pa.maxDistance,\n refDistance: typeof o.refDistance !== 'undefined' ? o.refDistance : pa.refDistance,\n rolloffFactor: typeof o.rolloffFactor !== 'undefined' ? o.rolloffFactor : pa.rolloffFactor,\n panningModel: typeof o.panningModel !== 'undefined' ? o.panningModel : pa.panningModel\n };\n\n // Update the panner values or create a new panner if none exists.\n var panner = sound._panner;\n if (panner) {\n panner.coneInnerAngle = pa.coneInnerAngle;\n panner.coneOuterAngle = pa.coneOuterAngle;\n panner.coneOuterGain = pa.coneOuterGain;\n panner.distanceModel = pa.distanceModel;\n panner.maxDistance = pa.maxDistance;\n panner.refDistance = pa.refDistance;\n panner.rolloffFactor = pa.rolloffFactor;\n panner.panningModel = pa.panningModel;\n } else {\n // Make sure we have a position to setup the node with.\n if (!sound._pos) {\n sound._pos = self._pos || [0, 0, -0.5];\n }\n\n // Create a new panner node.\n setupPanner(sound, 'spatial');\n }\n }\n }\n\n return self;\n };\n\n /** Single Sound Methods **/\n /***************************************************************************/\n\n /**\n * Add new properties to the core Sound init.\n * @param {Function} _super Core Sound init method.\n * @return {Sound}\n */\n Sound.prototype.init = (function(_super) {\n return function() {\n var self = this;\n var parent = self._parent;\n\n // Setup user-defined default properties.\n self._orientation = parent._orientation;\n self._stereo = parent._stereo;\n self._pos = parent._pos;\n self._pannerAttr = parent._pannerAttr;\n\n // Complete initilization with howler.js core Sound's init function.\n _super.call(this);\n\n // If a stereo or position was specified, set it up.\n if (self._stereo) {\n parent.stereo(self._stereo);\n } else if (self._pos) {\n parent.pos(self._pos[0], self._pos[1], self._pos[2], self._id);\n }\n };\n })(Sound.prototype.init);\n\n /**\n * Override the Sound.reset method to clean up properties from the spatial plugin.\n * @param {Function} _super Sound reset method.\n * @return {Sound}\n */\n Sound.prototype.reset = (function(_super) {\n return function() {\n var self = this;\n var parent = self._parent;\n\n // Reset all spatial plugin properties on this sound.\n self._orientation = parent._orientation;\n self._stereo = parent._stereo;\n self._pos = parent._pos;\n self._pannerAttr = parent._pannerAttr;\n\n // If a stereo or position was specified, set it up.\n if (self._stereo) {\n parent.stereo(self._stereo);\n } else if (self._pos) {\n parent.pos(self._pos[0], self._pos[1], self._pos[2], self._id);\n } else if (self._panner) {\n // Disconnect the panner.\n self._panner.disconnect(0);\n self._panner = undefined;\n parent._refreshBuffer(self);\n }\n\n // Complete resetting of the sound.\n return _super.call(this);\n };\n })(Sound.prototype.reset);\n\n /** Helper Methods **/\n /***************************************************************************/\n\n /**\n * Create a new panner node and save it on the sound.\n * @param {Sound} sound Specific sound to setup panning on.\n * @param {String} type Type of panner to create: 'stereo' or 'spatial'.\n */\n var setupPanner = function(sound, type) {\n type = type || 'spatial';\n\n // Create the new panner node.\n if (type === 'spatial') {\n sound._panner = Howler.ctx.createPanner();\n sound._panner.coneInnerAngle = sound._pannerAttr.coneInnerAngle;\n sound._panner.coneOuterAngle = sound._pannerAttr.coneOuterAngle;\n sound._panner.coneOuterGain = sound._pannerAttr.coneOuterGain;\n sound._panner.distanceModel = sound._pannerAttr.distanceModel;\n sound._panner.maxDistance = sound._pannerAttr.maxDistance;\n sound._panner.refDistance = sound._pannerAttr.refDistance;\n sound._panner.rolloffFactor = sound._pannerAttr.rolloffFactor;\n sound._panner.panningModel = sound._pannerAttr.panningModel;\n\n if (typeof sound._panner.positionX !== 'undefined') {\n sound._panner.positionX.setValueAtTime(sound._pos[0], Howler.ctx.currentTime);\n sound._panner.positionY.setValueAtTime(sound._pos[1], Howler.ctx.currentTime);\n sound._panner.positionZ.setValueAtTime(sound._pos[2], Howler.ctx.currentTime);\n } else {\n sound._panner.setPosition(sound._pos[0], sound._pos[1], sound._pos[2]);\n }\n\n if (typeof sound._panner.orientationX !== 'undefined') {\n sound._panner.orientationX.setValueAtTime(sound._orientation[0], Howler.ctx.currentTime);\n sound._panner.orientationY.setValueAtTime(sound._orientation[1], Howler.ctx.currentTime);\n sound._panner.orientationZ.setValueAtTime(sound._orientation[2], Howler.ctx.currentTime);\n } else {\n sound._panner.setOrientation(sound._orientation[0], sound._orientation[1], sound._orientation[2]);\n }\n } else {\n sound._panner = Howler.ctx.createStereoPanner();\n sound._panner.pan.setValueAtTime(sound._stereo, Howler.ctx.currentTime);\n }\n\n sound._panner.connect(sound._node);\n\n // Update the connections.\n if (!sound._paused) {\n sound._parent.pause(sound._id, true).play(sound._id, true);\n }\n };\n})();\n"],"names":["n","u","i","t","o","r","f","e","n2","l2","u2","parentNode","removeChild","i2","t2","o2","r2","arguments","f2","length","push","children","defaultProps","v","type","props","key","ref","__k","__","__b","__e","__d","__c","__h","constructor","__v","n$2","vnode","this","context","d","indexOf","base","_","b","__r","debounceRendering","sort","n3","some","__P","c","I","__n","ownerSVGElement","T","e2","c2","s2","a2","h2","p2","_2","k2","b2","m2","w2","A2","P2","Array","isArray","y","g","x","value","L","appendChild","nextSibling","insertBefore","setProperty","test","style","cssText","P","replace","toLowerCase","slice","l","addEventListener","H","$","removeEventListener","setAttribute","removeAttribute","event","v2","d2","g2","x2","contextType","__E","prototype","render","p","M","sub","state","__s","getDerivedStateFromProps","componentWillMount","componentDidMount","componentWillReceiveProps","shouldComponentUpdate","forEach","componentWillUpdate","componentDidUpdate","getChildContext","getSnapshotBeforeUpdate","m","y2","localName","nodeType","document","createTextNode","createElementNS","createElement","is","data","call","childNodes","dangerouslySetInnerHTML","attributes","name","__html","innerHTML","C","A","firstChild","s","checked","j","diffed","l3","u3","current","unmount","z","componentWillUnmount","a","O","Consumer","Provider","n4","k","splice","getDerivedStateFromError","setState","componentDidCatch","forceUpdate","Promise","then","bind","resolve","setTimeout","EMPTY$1","obj","url","route2","opts","ret","reg","match","matches","split","decodeURIComponent","join","segmentize","max","Math","i$1","charAt","param","flags","plus","star","val","map","default","rank","index","index2","path","rankSegment","rankChild","segment","customHistory","ROUTERS","subscribers","EMPTY","location","getCurrentLocation","pathname","search","canRoute","type2","history","routeTo","didRoute","node","getAttribute","href","target","route","ctrlKey","metaKey","altKey","shiftKey","button","currentTarget","prevent","stopImmediatePropagation","stopPropagation","preventDefault","String","nodeName","toUpperCase","hasAttribute","routeFromLink","eventListenersInitialized","Router","Component$$1","getCurrentUrl","delegateLinkHandler","__proto__","Object","create","Router2","static","onChange","toChildArray","getMatchingChildren","updating","this$1","unlisten","listen","location2","invoke","filter","prepareVNodeForRanking","pathRankSort","exec","newProps","cloneElement","Boolean","ref$1","active","current2","previous","previousUrl","router","Component","Link","assign","onClick","handleLinkClick","Route","component","__H","w","requestAnimationFrame","t3","cancelAnimationFrame","defineProperty","Path_1","start","relativePath2","reduce","pop","[object Object]","modelArr","contextArr","end","Path","element","modelPush","contextPush","copy","newElement","startsWith","model","ModelPath","other","every","offset","fn2","thisArg","_a","get","set","super","shift","Errors_1","errors","error","params","exact","equals","Symbol","iterator","Errors","str2","utils","escapeString","dec2hex","dec","toString","substr","arr","Uint8Array","crypto","getRandomValues","from","DataModel_1","require$$0","require$$1","utils_1","require$$2","schema2","options","_b","_c","_d","historyMax","verbose","wrapLists","schema","initialData","DataModel","listeners","JSON","stringify","historyIndex","listener","newHistory","silentInvalidate","invalidated","loose","validate","invalidate","silent","getArray","reset","id","hexId","isNaN","last","log","parse","withModel","clear","tempErrors","add","res2","getOwnPropertySymbols","entries","unwrapLists","exports","category","enabled","keep","optional","pathPush","suggest","validationOption","hook","args","canUpdate","update","mods","__spreadValues","Mod","__spreadProps","BooleanNode_1","Node_1","Base","boolean","ListNode_1","config","min","minLength","maxLength","Infinity","between","nextIndex","navigate","parseInt","newObj","_a2","list","SwitchNode_1","cases","activeCase","concat","fallback","sorter","priority","matchedCases","choices","switchNode","SwitchNode","choice","isValid","XOrList","ChoiceNode","change","ListNode","presetNode","objectNode","presets","keys","MapNode_1","validation","__1","DataModel_12","Node_12","integer","color","Number","isInteger","number","values","NumberNode","includes","Path_12","Errors_12","utils_12","require$$3","require$$4","fields","Switch","Case","defaultFields","__restKey","getActiveFields","switchValue","relativePath","getChildModelPath","childKey","caseFields","caseKeys","pathWithContext","getModel","disableSwitchContext","pathElements","activeFields","existingKeys","quoteString","filterPath","filterField","activeKeys","forcedKeys","Set","newValue","object","Reference_1","schemas2","transform","StringNode_1","isEnum","enum","isValidator","validator","collections","getValues","pool","requireTag","registry","allowTag","isDefinition","allowUnknown","additional","string","Hook","Registries","warn","__createBinding2","__exportStar","ValidationOption","__createBinding","k22","desc","getOwnPropertyDescriptor","__esModule","writable","configurable","enumerable","exports2","hasOwnProperty","require$$5","require$$6","require$$7","require$$8","require$$9","require$$10","require$$11","require$$12","require$$13","require$$14","require$$15","rfdc_1","circles","refs","refsNew","proto","Date","cloneArray","cloneProto","Map","o22","cur","ArrayBuffer","isView","copyBuffer","clone","a22","rfdcCircles","Buffer","buffer","byteOffset","modules","installedModules","moduleId","module2","loaded","__webpack_require__","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","source_map_consumer","global_mapForUri","isChromeOrEdge","navigator","userAgent","isFirefox","isSafari","isIE11Plus","documentMode","Semaphore","count","pending","incr","decr","flush","whenReady","Fetcher","sem","sync","mapForUri","cacheGlobally","ajax","uri","callback","xhr","xmlhttp","XMLHttpFactories","createXMLHTTPObject","that","onreadystatechange","readyState","open","send","fetchScript","onScriptLoad","absUrlRegex","RegExp","status","responseText","mapUri","embeddedSourceMap","SourceMapConsumer","atob","origin","lastSlash","lastIndexOf","xhr2","processSourceMaps","lines","rows","traceFormat","map2","result","origName","origNameChrome","origNameFirefox","row","line","column","origPos","originalPositionFor","formatOriginalPosition","source","origLine","XMLHttpRequest","ActiveXObject","mapStackTrace","stack","done","expected_fields","regex","skip_lines","fetcher","Error","apply","util2","binarySearch","ArraySet","base64VLQ","quickSort","aSourceMap","sourceMap","sections","IndexedSourceMapConsumer","BasicSourceMapConsumer","version","getArg","sources","names","sourceRoot","sourcesContent","mappings","file","_version","normalize","isAbsolute","relative","_names","fromArray","_sources","_mappings","generatedLine","generatedColumn","originalLine","originalColumn","lastOffset","_sections","offsetLine","offsetColumn","generatedOffset","consumer","fromSourceMap","__generatedMappings","_parseMappings","__originalMappings","_charIsMappingSeparator","aStr","aSourceRoot","GENERATED_ORDER","ORIGINAL_ORDER","GREATEST_LOWER_BOUND","LEAST_UPPER_BOUND","eachMapping","aCallback","aContext","aOrder","_generatedMappings","_originalMappings","mapping","at","allGeneratedPositionsFor","aArgs","needle","has","_findMapping","compareByOriginalPositions","lastColumn","smc","toArray","_sourceRoot","_generateSourcesContent","_file","generatedMappings","destGeneratedMappings","destOriginalMappings","srcMapping","destMapping","Mapping","previousGeneratedColumn","previousOriginalLine","previousOriginalColumn","previousSource","previousName","cachedSegments","temp","originalMappings","decode","rest","compareByGeneratedPositionsDeflated","aNeedle","aMappings","aLineName","aColumnName","aComparator","aBias","TypeError","computeColumnSpans","nextMapping","lastGeneratedColumn","hasContentsOfAllSources","size","sc","sourceContentFor","aSource","nullOnMissing","urlParse","fileUriAbsPath","scheme","generatedPositionFor","j2","sectionIndex","needle2","section2","cmp","section","bias","content","generatedPosition","sectionMappings","adjustedMapping","aName","aDefaultValue","urlRegexp","dataUrlRegexp","aUrl","auth","host","port","aParsedUrl","aPath","part","parts","up","urlGenerate","aRoot","aPathUrl","aRootUrl","joined","level","supportsNullProto","charCodeAt","aStr1","aStr2","toSetString","identity","isProtoString","fromSetString","mappingA","mappingB","onlyCompareOriginal","onlyCompareGenerated","compareByGeneratedPositionsInflated","strcmp","aLow","aHigh","aHaystack","aCompare","mid","floor","recursiveSearch","_array","_set","aArray","aAllowDuplicates","set2","len","getOwnPropertyNames","sStr","isDuplicate","idx","aIdx","base64","encode","aValue","digit","encoded","vlq","toVLQSigned","VLQ_BASE","aIndex","aOutParam","continuation","shifted","strLen","intToCharMap","charCode","ary","comparator","low","high","round","random","pivot","q2","Collections","register","core_12","StringNode2","StringNode","Reference2","Reference","ObjectNode","Name","Properties","Opt","MapNode","forceRange","bounds","allowBinomial","choiceContext","minecraft:alternative","terms","minecraft:block_state_property","block","properties","minecraft:damage_source_properties","predicate","minecraft:entity_properties","entity","minecraft:entity_scores","scores","Range","minecraft:inverted","term","minecraft:killed_by_player","inverse","BooleanNode","minecraft:location_check","offsetX","offsetY","offsetZ","minecraft:match_tool","minecraft:random_chance","chance","minecraft:random_chance_with_looting","looting_multiplier","minecraft:reference","minecraft:table_bonus","enchantment","chances","minecraft:time_check","period","minecraft:weather_check","raining","thundering","Common_12","StateChoice","item","tag","durability","potion","nbt","enchantments","levels","fluid","position","biome","feature","dimension","light","LocationFields","stat","minecraft:mined","minecraft:crafted","minecraft:used","minecraft:broken","minecraft:picked_up","minecraft:dropped","minecraft:killed","minecraft:killed_by","minecraft:custom","gamemode","advancements","recipes","stats","amplifier","duration","ambient","visible","absolute","horizontal","team","distance","is_on_fire","is_sneaking","is_sprinting","is_swimming","is_baby","equipment","player","catType","effects","is_explosion","is_fire","is_magic","is_projectile","is_lightning","bypasses_armor","bypasses_invulnerability","bypasses_magic","source_entity","direct_entity","dealt","taken","blocked","Advancement","core_1","Common_1","Predicates_1","display","icon","title","description","background","frame","show_toast","announce_to_chat","hidden","parent","criteria","requirements","rewards","function","loot","experience","requirement","trigger","conditions","minecraft:bee_nest_destroyed","num_bees_inside","minecraft:bred_animals","partner","child","minecraft:brewed_potion","minecraft:changed_dimension","to","minecraft:channeled_lightning","victims","minecraft:construct_beacon","minecraft:consume_item","minecraft:cured_zombie_villager","villager","zombie","minecraft:effects_changed","minecraft:enter_block","minecraft:enchanted_item","minecraft:entity_hurt_player","damage","minecraft:entity_killed_player","killing_blow","minecraft:filled_bucket","minecraft:fishing_rod_hooked","minecraft:hero_of_the_village","minecraft:inventory_changed","slots","empty","occupied","full","items","minecraft:item_durability_changed","delta","minecraft:killed_by_crossbow","unique_entity_types","minecraft:levitation","minecraft:location","minecraft:nether_travel","entered","exited","minecraft:placed_block","minecraft:player_hurt_entity","minecraft:player_killed_entity","minecraft:recipe_unlocked","recipe","minecraft:safely_harvest_honey","minecraft:slept_in_bed","minecraft:slide_down_block","minecraft:shot_crossbow","minecraft:summoned_entity","minecraft:tame_animal","minecraft:used_ender_eye","minecraft:used_totem","minecraft:villager_trade","minecraft:voluntary_exile","Model","Vec","Texture","ambientocclusion","gui_light","textures","elements","rotation","axis","angle","NumberEnum","rescale","shade","faces","texture","uv","cullface","tintindex","translation","scale","overrides","layer0","BlockDefinition","variants","multipart","when","VariantChildren","uvlock","weight","OR","assets","Model_1","BlockDefinition_1","initBlockDefinitionSchemas","initModelSchemas","Condition","ObjectOrList","condition","ConditionCases","LootContext","requires","allows","LootTable","LootContext_1","functionsAndConditions","functions","contextMap","collectionID","getNode","getAvailableOptions","providedContext","tableType","LootTableTypes","conditionSwtichNode","compileSwitchNode","LootConditions","functionSwtichNode","LootFunctions","entitySourceSwtichNode","LootEntitySources","copySourceSwtichNode","LootCopySources","pools","rolls","bonus_rolls","weightMod","quality","minecraft:alternatives","minecraft:dynamic","minecraft:group","minecraft:item","minecraft:loot_table","minecraft:sequence","minecraft:tag","expand","minecraft:apply_bonus","formula","parameters","bonusMultiplier","extra","probability","minecraft:copy_name","minecraft:copy_nbt","ops","getter","op","minecraft:copy_state","minecraft:enchant_randomly","minecraft:enchant_with_levels","treasure","minecraft:exploration_map","destination","decoration","zoom","search_radius","skip_existing_chunks","minecraft:fill_player_head","minecraft:limit_count","limit","minecraft:looting_enchant","minecraft:set_attributes","modifiers","minecraft:set_contents","minecraft:set_count","minecraft:set_damage","minecraft:set_loot_table","seed","minecraft:set_lore","lore","minecraft:set_name","minecraft:set_nbt","minecraft:set_stew_effect","attribute","amount","operation","slot","StringOrList","PackMcmeta","pack","pack_format","Recipe","minecraft:crafting_shaped","group","pattern","minecraft:crafting_shapeless","ingredients","minecraft:smelting","ingredient","cookingtime","minecraft:blasting","minecraft:smoking","minecraft:campfire_cooking","minecraft:stonecutting","minecraft:smithing","addition","Tags","TagBase","required","TextComponent","getSimpleString","text","parseFloat","isFinite","CommonFields","bold","italic","underlined","strikethrough","obfuscated","insertion","clickEvent","action","change_page","copy_to_clipboard","open_file","open_url","run_command","leadingSlash","allowPartial","suggest_command","hoverEvent","show_text","show_item","module","show_entity","translate","with","score","isScoreHolder","objective","selector","keybind","storage","interpret","schemas","Advancement_1","assets_1","Condition_1","LootTable_1","PackMcmeta_1","Recipe_1","Tags_1","TextComponent_1","initCommonSchemas","initPredicatesSchemas","initAdvancementSchemas","initAssetsSchemas","initConditionSchemas","initLootTableSchemas","initPackMcmetaSchemas","initRecipeSchemas","initTagsSchemas","initTextComponentSchemas","__setModuleDefault","__importStar","mod","lib","Collections_1","schemas_1","CollectionRegistry","initCollections","getSchemas_1","SchemaRegistry","initSchemas","ultrawarm","natural","piglin_safe","respawn_anchor_works","bed_works","has_raids","has_skylight","has_ceiling","coordinate_scale","ambient_light","logical_height","infiniburn","bedrock_roof_position","bedrock_floor_position","sea_level","disable_mob_generation","noise","density_factor","density_offset","simplex_surface_noise","random_density_offset","size_horizontal","size_vertical","height","sampling","xz_scale","y_scale","xz_factor","y_factor","top_slide","bottom_slide","default_block","default_fluid","spread","maxSpread","ObjectOrPreset","minecraft:overworld","DefaultDimensionType","minecraft:the_nether","shrunk","fixed_time","minecraft:the_end","DefaultNoiseSettings","minecraft:nether","minecraft:end","island_noise_override","minecraft:amplified","amplified","minecraft:caves","minecraft:floating_islands","EntityPredicate","minecraft:item_used_on_block","minecraft:player_generates_container_loot","loot_table","minecraft:player_interacted_with_entity","minecraft:target_hit","projectile","shooter","signal_strength","minecraft:thrown_item_picked_up_by_entity","Dimension","NoPreset","DimensionTypePresets","generator","minecraft:noise","settings","NoiseSettingsPresets","biome_source","minecraft:fixed","minecraft:multi_noise","preset","altitude_noise","temperature_noise","humidity_noise","weirdness_noise","biomes","minecraft:checkerboard","minecraft:vanilla_layered","large_biomes","legacy_biome_init_layer","minecraft:flat","lakes","features","layers","structures","altitude","temperature","humidity","weirdness","firstOctave","amplitudes","DimensionType","Predicates","smokey","vehicle","targeted_entity","fishing_hook","in_open_water","font","contents","Biome","surface_builder","depth","downfall","precipitation","temperature_modifier","player_spawn_friendly","creature_spawn_probability","sky_color","fog_color","water_color","water_fog_color","grass_color","foliage_color","grass_color_modifier","ambient_sound","mood_sound","sound","tick_delay","block_search_extent","additions_sound","tick_chance","music","min_delay","max_delay","replace_current_music","particle","starts","spawners","minCount","maxCount","spawn_costs","energy_budget","charge","carvers","Carver","Decorator","RangeConfig","maximum","bottom_offset","top_offset","ChanceConfig","CountConfig","UniformInt","minecraft:carving_mask","step","minecraft:chance","minecraft:count","minecraft:count_extra","extra_count","extra_chance","minecraft:count_multilayer","minecraft:count_noise","noise_level","below_noise","above_noise","minecraft:count_noise_biased","noise_to_count_ratio","noise_factor","noise_offset","minecraft:decorated","outer","inner","minecraft:depth_average","baseline","minecraft:fire","minecraft:glowstone","minecraft:lava_lake","minecraft:range","minecraft:range_biased","minecraft:range_very_biased","minecraft:water_lake","ProcessorList","processors","processor_type","rules","location_predicate","predicate_type","input_predicate","minecraft:block_age","mossiness","minecraft:block_ignore","blocks","minecraft:block_rot","integrity","minecraft:gravity","heightmap","minecraft:rule","position_predicate","output_state","output_nbt","posTestFields","min_dist","max_dist","min_chance","max_chance","minecraft:axis_aligned_linear_pos","minecraft:linear_pos","minecraft:block_match","minecraft:blockstate_match","block_state","minecraft:random_block_match","minecraft:random_blockstate_match","minecraft:tag_match","Feature","RandomPatchConfig","can_replace","project","need_water","xspread","yspread","zspread","tries","state_provider","block_placer","whitelist","blacklist","DiskConfig","radius","half_height","targets","HugeMushroomConfig","cap_provider","stem_provider","foliage_radius","OreConfig","Feature2","minecraft:bamboo","minecraft:basalt_columns","reach","minecraft:block_pile","decorator","minecraft:delta_feature","rim","rim_size","minecraft:disk","minecraft:emerald_ore","minecraft:end_gateway","exit","minecraft:end_spike","crystal_invulnerable","crystal_beam_target","spikes","centerX","centerZ","guarded","minecraft:fill_layer","minecraft:flower","minecraft:forest_rock","minecraft:huge_brown_mushroom","minecraft:huge_fungus","hat_state","decor_state","stem_state","valid_base_block","planted","minecraft:huge_red_mushroom","minecraft:ice_patch","minecraft:iceberg","minecraft:lake","minecraft:nether_forest_vegetation","minecraft:netherrack_replace_blobs","minecraft:no_bonemeal_flower","minecraft:no_surface_ore","minecraft:ore","minecraft:random_patch","minecraft:random_boolean_selector","feature_false","feature_true","minecraft:random_selector","minecraft:sea_pickle","minecraft:seagrass","minecraft:simple_block","to_place","place_on","place_in","place_under","minecraft:simple_random_selector","minecraft:spring_feature","rock_count","hole_count","requires_block_below","valid_blocks","minecraft:tree","max_water_depth","ignore_vines","minimum_size","trunk_provider","leaves_provider","trunk_placer","base_height","height_rand_a","height_rand_b","foliage_placer","minecraft:blob_foliage_placer","minecraft:bush_foliage_placer","minecraft:fancy_foliage_placer","minecraft:jungle_foliage_placer","minecraft:mega_pine_foliage_placer","crown_height","minecraft:pine_foliage_placer","minecraft:spruce_foliage_placer","trunk_height","decorators","minecraft:alter_ground","provider","minecraft:beehive","minecraft:cocoa","min_clipped_height","minecraft:two_layers_feature_size","lower_size","upper_size","minecraft:three_layers_feature_size","upper_limit","middle_size","minecraft:rotated_block_provider","minecraft:simple_state_provider","minecraft:weighted_state_provider","minecraft:column_placer","min_size","extra_size","NoiseSettings","stronghold","spacing","separation","salt","StructureFeature","templatePoolConfig","start_pool","minecraft:bastion_remnant","minecraft:buried_treasure","minecraft:mineshaft","minecraft:ocean_ruin","biome_temp","large_probability","cluster_probability","minecraft:pillager_outpost","minecraft:ruined_portal","portal_type","minecraft:shipwreck","is_beached","minecraft:village","SurfaceBuilder","top_material","under_material","underwater_material","snowy","TemplatePool","Processors","element_type","projection","minecraft:feature_pool_element","minecraft:legacy_single_pool_element","minecraft:list_pool_element","minecraft:single_pool_element","worldgen","Biome_1","Carver_1","Decorator_1","Feature_1","NoiseSettings_1","ProcessorList_1","StructureFeature_1","SurfaceBuilder_1","TemplatePool_1","initBiomeSchemas","initCarverSchemas","initDecoratorSchemas","initFeatureSchemas","initNoiseSettingsSchemas","initProcessorListSchemas","initStructureFeatureSchemas","initSurfaceBuilderSchemas","initTemplatePoolSchemas","WorldSettings","generate_features","bonus_chest","dimensions","Dimension_1","DimensionType_1","worldgen_1","WorldSettings_1","initDimensionTypeSchemas","initDimensionSchemas","initWorldgenSchemas","initWorldSettingsSchemas","minecraft:lightning_strike","lightning","bystander","minecraft:using_item","min_y","noise_caves_enabled","aquifers_enabled","deepslate_enabled","Bounds","ObjectWithType","directType","directPath","directDefault","objectDefault","defaultCase","minecraft:constant","minecraft:uniform","minecraft:binomial","minecraft:score","minecraft:context","minecraft:storage","min_inclusive","max_exclusive","minecraft:clamped_normal","mean","deviation","minecraft:trapezoid","plateau","FloatProvider","max_inclusive","minecraft:biased_to_bottom","minecraft:clamped","IntProvider","above_bottom","below_top","minecraft:very_biased_to_bottom","entitySourceNode","minecraft:value_check","range","copySourceNode","minecraft:set_banner_pattern","patterns","append","minecraft:set_enchantments","ItemModifier","FunctionCases","conditionIDSwtichNode","functionIDSwtichNode","_p","looking_at","stepping_on","passenger","lightning_bolt","blocks_set_on_fire","entity_struck","separator","CanyonConfig","vertical_rotation","shape","distance_factor","thickness","width_smoothness","horizontal_radius_factor","vertical_radius_default_factor","vertical_radius_center_factor","CaveConfig","horizontal_radius_multiplier","vertical_radius_multiplier","floor_level","yScale","lava_level","debug_settings","debug_mode","air_state","water_state","lava_state","barrier_state","minecraft:canyon","minecraft:cave","minecraft:nether_cave","minecraft:cave_surface","surface","floor_to_ceiling_search_range","minecraft:heightmap","minecraft:heightmap_spread_double","minecraft:water_depth_threshold","minecraft:protected_blocks","TargetBlockState","discard_chance_on_air_exposure","VegetationPatchConfig","vertical_range","extra_bottom_block_chance","extra_edge_column_chance","vegetation_chance","xz_radius","replaceable","ground_state","vegetation_feature","minecraft:decorated_flower","minecraft:dripstone_cluster","max_stalagmite_stalactite_height_diff","height_deviation","dripstone_block_layer_thickness","density","wetness","chance_of_dripstone_column_at_max_distance_from_center","max_distance_from_edge_affecting_chance_of_dripstone_column","max_distance_from_center_affecting_height_bias","minecraft:fossil","max_empty_corners_allowed","fossil_structures","overlay_structures","fossil_processors","overlay_processors","minecraft:geode","filling_provider","inner_layer_provider","alternate_inner_layer_provider","middle_layer_provider","outer_layer_provider","inner_placements","cannot_replace","invalid_blocks","filling","inner_layer","middle_layer","outer_layer","crack","generate_crack_chance","base_crack_size","crack_point_offset","noise_multiplier","use_potential_placements_chance","use_alternate_layer0_chance","placements_require_layer0_alternate","outer_wall_distance","distribution_points","point_offset","min_gen_offset","max_gen_offset","invalid_blocks_threshold","minecraft:glow_lichen","search_range","chance_of_spreading","can_place_on_floor","can_place_on_ceiling","can_place_on_wall","can_be_placed_on","minecraft:growing_plant","direction","allow_water","height_distribution","body_provider","head_provider","minecraft:large_dripstone","column_radius","height_scale","max_column_radius_to_cave_height_ratio","stalactite_bluntness","stalagmite_bluntness","wind_speed","min_radius_for_wind","min_bluntness_for_wind","minecraft:replace_single_block","minecraft:root_system","required_vertical_space_for_tree","root_radius","root_placement_attempts","root_column_max_height","hanging_root_radius","hanging_roots_vertical_span","hanging_root_placement_attempts","allowed_vertical_water_for_tree","root_replaceable","root_state_provider","hanging_root_state_provider","minecraft:scattered_ore","minecraft:small_dripstone","max_placements","empty_space_search_radius","max_offset_from_origin","chance_of_taller_dripstone","force_dirt","dirt_provider","sapling_provider","foliage_provider","minecraft:bending_trunk_placer","bend_length","min_height_for_leaves","minecraft:random_spread_foliage_placer","foliage_height","leaf_placement_attempts","minecraft:underwater_magma","floor_search_range","placement_radius_around_floor","placement_probability_per_valid_position","minecraft:vegetation_patch","minecraft:waterlogged_vegetation_patch","minecraft:randomized_int_state_provider","property","min_surface_level","noodle_caves_enabled","ore_veins_enabled","minecraft:nether_fossil","ItemModifier_1","initItemModifierSchemas","minecraft:fall_from_height","start_position","minecraft:ride_entity_in_lava","DefaultStructureSettings","minecraft:igloo","minecraft:mansion","minecraft:jungle_pyramid","minecraft:stronghold","minecraft:desert_pyramid","minecraft:fortress","minecraft:endcity","minecraft:swamp_hut","minecraft:monument","terrain_shaper","factor","jaggedness","surface_rule","sequence","minecraft:weighted_list","distribution","minecraft:set_potion","ClimateParameter","continentalness","erosion","minecraft:block_predicate_filter","minecraft:rarity_filter","minecraft:count_on_every_layer","minecraft:noise_threshold_count","minecraft:noise_based_count","minecraft:environment_scan","direction_of_search","max_steps","target_condition","allowed_search_condition","minecraft:height_range","minecraft:random_offset","xz_spread","y_spread","minecraft:surface_relative_threshold_filter","minecraft:surface_water_depth_filter","ConfiguredFeature","PlacedFeature","minecraft:block_column","allowed_placement","prioritize_tip","barrier","spread_width","spread_height","minecraft:pointed_dripstone","chance_of_directional_spread","chance_of_spread_radius2","chance_of_spread_radius3","allowed_tree_position","minecraft:twisting_vines","max_height","placement","NoiseProvider","MIN_VALUE","minecraft:dual_noise_provider","variety","InclusiveRange","slow_noise","slow_scale","states","minecraft:noise_threshold_provider","threshold","high_chance","default_state","low_states","high_states","minecraft:noise_provider","Offset","minecraft:all_of","predicates","minecraft:any_of","minecraft:has_sturdy_face","minecraft:inside_world_bounds","minecraft:matching_block_tag","minecraft:matching_blocks","minecraft:matching_fluids","fluids","minecraft:not","minecraft:would_survive","legacy_random_source","coordinate","points","derivative","SurfaceRule","minecraft:block","result_state","minecraft:condition","if_true","then_run","minecraft:biome","biome_is","minecraft:noise_threshold","min_threshold","max_threshold","invert","minecraft:stone_depth","surface_type","add_surface_depth","add_surface_secondary_depth","minecraft:vertical_gradient","random_name","true_at_and_below","false_at_and_above","minecraft:water","surface_depth_multiplier","add_stone_depth","minecraft:y_above","anchor","is_biome","SurfaceRule_1","initSurfaceRuleSchemas","noise_router","fluid_level_floodedness","fluid_level_spread","lava","vegetation","continents","ridges","initial_density_without_jaggedness","final_density","argument","vein_toggle","vein_ridged","vein_gap","resource","inlineSchema","Tag","StructureSet2","structure_overrides","MobCategorySpawnSettings","NoiseParameters","NoiseRange","YRange","minecraft:abs","DensityFunction","minecraft:add","argument1","argument2","minecraft:blend_density","minecraft:cache_2d","minecraft:cache_all_in_cell","minecraft:cache_once","minecraft:clamp","input","minecraft:cube","minecraft:flat_cache","minecraft:half_negative","minecraft:interpolated","minecraft:max","minecraft:min","minecraft:mul","minecraft:quarter_negative","minecraft:range_choice","when_in_range","when_out_of_range","minecraft:shift","minecraft:shift_a","minecraft:shift_b","minecraft:shifted_noise","shift_x","shift_y","shift_z","minecraft:slide","minecraft:spline","spline","min_value","max_value","minecraft:square","minecraft:squeeze","minecraft:terrain_shaper_spline","minecraft:weird_scaled_sampler","rarity_value_mapper","minecraft:y_clamped_gradient","from_y","to_y","from_value","to_value","DensityFunction_1","adapt_noise","spawn_overrides","bounding_box","spawns","StructureSet","structure","minecraft:concentric_rings","minecraft:random_spread","spread_type","locate_offset","secondary_depth_range","StructureSet_1","initDensityFunctionSchemas","initStructureSetSchemas","minecraft:allay_drop_item_on_block","minecraft:kill_mob_near_sculk_catalyst","minecraft:thrown_item_picked_up_by_player","ChatType","chat","overlay","narration","translation_key","minecraft:set_instrument","namespace","type_specific","cat","variant","frog","slime","StyleFields","minecraft:old_blended_noise","smear_scale_multiplier","rottable_blocks","minecraft:multiface_growth","minecraft:sculk_patch","charge_count","amount_per_charge","spread_attempts","growth_rounds","spread_rounds","extra_rare_growths","catalyst_chance","root_placer","root_provider","trunk_offset_y","above_root_placement","above_root_provider","above_root_placement_chance","minecraft:mangrove_root_placer","mangrove_root_placement","max_root_width","max_root_length","random_skew_chance","can_grow_through","muddy_roots_in","muddy_roots_provider","minecraft:upwards_branching_trunk_placer","extra_branch_steps","extra_branch_length","place_branch_per_log_probability","minecraft:attached_to_leaves","exclusion_radius_xz","exclusion_radius_y","required_empty_blocks","block_provider","directions","minecraft:leave_vine","spawn_target","Structure","terrain_adaptation","minecraft:jigsaw","start_height","start_jigsaw_name","project_start_to_heightmap","max_distance_from_center","use_expansion_hack","mineshaft_type","setups","air_pocket_probability","overgrown","vines","can_be_cold","replace_with_blackstone","frequency_reduction_method","frequency","exclusion_zone","other_set","chunk_count","preferred_biomes","WorldPreset","Structure_1","WorldPreset_1","initStructureSchemas","initWorldPresetSchemas","ChatType_1","initChatTypeSchemas","LZString","fromCharCode","keyStrBase64","keyStrUriSafe","baseReverseDic","alphabet","character","LZString2","compressToBase64","_compress","decompressFromBase64","_decompress","getBaseValue","compressToUTF16","decompressFromUTF16","compressed","compressToUint8Array","uncompressed","compress","buf","TotalLen","current_value","decompressFromUint8Array","decompress","compressToEncodedURIComponent","decompressFromEncodedURIComponent","bitsPerChar","getCharFromInt","ii","context_dictionary","context_dictionaryToCreate","context_c","context_wc","context_w","context_enlargeIn","context_dictSize","context_numBits","context_data","context_data_val","context_data_position","pow","resetValue","getNextValue","bits","resb","maxpower","power","dictionary","enlargeIn","dictSize","numBits","entry","extra_lbits","extra_dbits","extra_blbits","bl_order","static_ltree","zero$1","static_dtree","D_CODES$1","_dist_code","_length_code","MAX_MATCH$1","base_length","base_dist","static_tree","extra_bits","extra_base","elems","max_length","has_stree","static_l_desc","static_d_desc","static_bl_desc","dyn_tree","stat_desc","max_code","d_code","dist","put_short","pending_buf","send_bits","bi_valid","bi_buf","send_code","tree","bi_reverse","code2","gen_codes","bl_count","next_code","MAX_BITS$1","init_block","LITERALS$1","dyn_ltree","dyn_dtree","bl_tree","END_BLOCK","opt_len","static_len","last_lit","bi_windup","smaller","_n2","_m2","pqdownheap","heap","heap_len","compress_block","ltree","dtree","lc","lx","d_buf","l_buf","build_tree","stree","heap_max","xbits","overflow","scan_tree","curlen","prevlen","nextlen","max_count","min_count","REP_3_6","REPZ_3_10","REPZ_11_138","send_tree","static_init_done","_tr_stored_block$1","stored_len","last2","header","window","subarray","trees","_tr_init","LENGTH_CODES$1","L_CODES$1","StaticTreeDesc","l_desc","TreeDesc","d_desc","bl_desc","_tr_stored_block","_tr_flush_block","opt_lenb","static_lenb","max_blindex","strm","data_type","black_mask","detect_data_type","BL_CODES$1","build_bl_tree","strategy","lcodes","dcodes","blcodes","rank2","_tr_tally","lit_bufsize","_tr_align","STATIC_TREES","adler32_1","adler","pos","s1","crcTable","Uint32Array","table","makeTable","crc32_1","crc","messages","2","1","0","-1","-2","-3","-4","-5","-6","constants$2","Z_NO_FLUSH","Z_PARTIAL_FLUSH","Z_SYNC_FLUSH","Z_FULL_FLUSH","Z_FINISH","Z_BLOCK","Z_TREES","Z_OK","Z_STREAM_END","Z_NEED_DICT","Z_ERRNO","Z_STREAM_ERROR","Z_DATA_ERROR","Z_MEM_ERROR","Z_BUF_ERROR","Z_NO_COMPRESSION","Z_BEST_SPEED","Z_BEST_COMPRESSION","Z_DEFAULT_COMPRESSION","Z_FILTERED","Z_HUFFMAN_ONLY","Z_RLE","Z_FIXED","Z_DEFAULT_STRATEGY","Z_BINARY","Z_TEXT","Z_UNKNOWN","Z_DEFLATED","Z_NO_FLUSH$2","Z_FULL_FLUSH$1","Z_FINISH$3","Z_BLOCK$1","Z_OK$3","Z_STREAM_END$3","Z_STREAM_ERROR$2","Z_DATA_ERROR$2","Z_BUF_ERROR$1","Z_DEFAULT_COMPRESSION$1","Z_DEFAULT_STRATEGY$1","Z_DEFLATED$2","err","errorCode","msg","zero","HASH","prev","hash_shift","hash_mask","flush_pending","avail_out","output","pending_out","next_out","total_out","flush_block_only","block_start","strstart","put_byte","putShortMSB","read_buf","avail_in","next_in","wrap","total_in","longest_match","cur_match","chain_length","max_chain_length","scan","best_len","prev_length","nice_match","w_size","MAX_MATCH","_win","wmask","w_mask","strend","scan_end1","scan_end","good_match","lookahead","match_start","fill_window","_w_size","more","window_size","hash_size","head","insert","ins_h","deflate_fast","hash_head","bflush","match_length","max_lazy_match","MIN_MATCH","deflate_slow","max_insert","prev_match","match_available","good_length","max_lazy","nice_length","max_chain","func","configuration_table","Config","max_block_size","pending_buf_size","max_start","gzhead","gzindex","method","last_flush","w_bits","hash_bits","Uint16Array","HEAP_SIZE","MAX_BITS","deflateResetKeep","deflateReset","deflateInit2","windowBits","memLevel","DeflateState","deflate_1$2","deflateInit","deflateSetHeader","deflate","beg","old_flush","hcrc","comment","time","os","level_flags","bstate","deflate_huff","deflate_rle","deflateEnd","deflateSetDictionary","dictLength","tmpDict","avail","next2","deflateInfo","_has","common","chunks","chunk","STR_APPLY_UIA_OK","_utf8len","strings","TextEncoder","c22","m_pos","str_len","buf_len","TextDecoder","out","utf16buf","c_len","buf2binstring","zstream","toString$1","Z_NO_FLUSH$1","Z_FINISH$2","Z_OK$2","Z_STREAM_END$2","Z_DEFLATED$1","chunkSize","opt","raw","gzip","ended","dict","_dict_set","Deflate$1","flush_mode","_flush_mode","onData","onEnd","inffast","_in","_out","dmax","wsize","whave","wnext","s_window","hold","lcode","dcode","lmask","dmask","here","from_source","lencode","distcode","lenbits","distbits","mode","sane","lbase","lext","dbase","dext","inftrees","lens","lens_index","codes","table_index","work","fill","mask","sym","root","curr","drop","left","used","huff","base_index","MAXBITS","offs","here_bits","here_op","here_val","extra_index","Z_FINISH$1","Z_OK$1","Z_STREAM_END$1","Z_NEED_DICT$1","Z_STREAM_ERROR$1","Z_DATA_ERROR$1","Z_MEM_ERROR$1","zswap32","havedict","check","total","wbits","ncode","nlen","ndist","have","next","lendyn","distdyn","back","was","inflateResetKeep","Int32Array","inflateReset","inflateReset2","inflateInit2","InflateState","lenfix","distfix","virgin","fixedtables","updatewindow","src2","inflate_1$2","inflateInit","inflate","put","last_bits","last_op","last_val","hbuf","order","xflags","extra_len","inflateEnd","inflateGetHeader","inflateSetDictionary","dictid","inflateInfo","gzheader","Inflate$1","last_avail_out","next_out_utf8","tail","utf8str","base64map","crypt","rotl","rotr","endian","randomBytes","bytes","bytesToWords","words","wordsToBytes","bytesToHex","hex","hexToBytes","bytesToBase64","triplet","base64ToBytes","imod4","charenc","utf8","stringToBytes","bin","unescape","encodeURIComponent","bytesToString","escape","charenc_1","isBuffer_1","readFloatLE","isBuffer","isSlowBuffer","_isBuffer","isBuffer2","md5","message","encoding","FF","_ff","GG","_gg","HH","_hh","II","_ii","aa","bb","cc","dd","_blocksize","_digestsize","digestbytes","asBytes","asString","UP","DOWN","NORTH","EAST","SOUTH","WEST","B","ALL","normal","ZERO","towards","magnitude","readNumber","readInt","readString","readBoolean","readObject","readArray","e3","t4","readMap","fromEntries","compose","readEnum","DEFAULT_NAMESPACE","SEPARATOR","substring","defineProperties","getOwnPropertyDescriptors","F","V","propertyIsEnumerable","D","U","WATER","LAVA","E","N","r3","e4","s3","STONE","G","AIR","minY","SIZE","palette","findIndex","Y","WIDTH","sectionsCount","maxY","maxSection","minSection","getSectionIndex","getBlockState","getOrCreateSection","setBlockState","X","BigInt","fromBlockPos","fromLong","toLong","asLong","minBlockX","minBlockZ","maxBlockX","maxBlockZ","getOrThrow","parser","direct","reference","Z","builtin","q","K","et","nt","it","ft","REGISTRY","fromJson","addPoint","Constant","locations","derivatives","compute","ut","mapAll","MultiPoint","mt","setSeed","nextLong","pt","MULTIPLIER","MODULUS_MASK","INCREMENT","advance","MODULUS_BITS","FLOAT_MULTIPLIER","DOUBLE_MULTIPLIER","dt","ht","ct","gt","upgradeSeedTo128bit","BIGINT_30","STAFFORD_1","MAX_ULONG","BIGINT_27","STAFFORD_2","BIGINT_31","POW2_60","SILVER_RATIO_64","GOLDEN_RATIO_64","mixStafford13","BIGINT_64","wt","rotateLeft","BIGINT_17","BIGINT_49","BIGINT_21","BIGINT_28","POW2_63","MAX_UINT","BIGINT_1","BIGINT_32","nextBits","vt","seedLo","seedHi","bt","xo","nextDouble","yo","zo","nextInt","F2","G2","getCornerNoise3D","S2","E2","I2","N2","B2","R2","T2","M2","C2","gradDot","GRADIENT","xt","sqrt","sampleAndLerp","Q","tt","ot","forkPositional","noiseLevels","St","fromHashOf","consume","lowestFreqInputFactor","lowestFreqValueFactor","maxValue","edgeValue","sample","_t","cellWidth","cellHeight","minLimitNoise","maxLimitNoise","mainNoise","xzScale","xzMainScale","xzFactor","yMainScale","yFactor","o3","getOctaveNoise","o4","a3","yt","Et","first","second","valueFactor","INPUT_FACTOR","It","Nt","Bt","Ut","rotate","down","north","east","south","west","re","offsetSampler","factorSampler","jaggednessSampler","EXTRACTOR","GLOBAL_OFFSET","peaksAndValleys","abs","ie","ne","oe","ae","le","ue","de","pe","extractor","CONTINENTS","EROSION","WEIRDNESS","RIDGES","ySize","xzSize","topSlide","bottomSlide","terrainShaper","cellCountY","minCellY","applySlides","NOISE","DENSITY_FUNCTION","v3","S3","N3","D2","U2","z2","Y2","H2","X2","Z2","J2","W2","$2","K2","Q2","tt2","et2","O2","L2","V2","ONE","holder","minValue","HolderHolder","ConstantMinMax","blendedNoise","At","OldBlendedNoise","wrapped","lastValue","lastQuartX","lastQuartZ","FlatCache","CacheAllInCell","lastBlockX","lastBlockZ","Cache2D","lastBlockY","CacheOnce","i3","h3","st","rt","computeCorner","Interpolated","noiseData","Noise","rarityValueMapper","mapper","ValueMapper","type_1","rarityValueMapper1","type_2","rarityValueMapper2","WeirdScaledSampler","shiftX","shiftY","shiftZ","ShiftedNoise","minInclusive","maxExclusive","whenInRange","whenOutOfRange","RangeChoice","offsetNoise","ShiftNoise","ShiftA","ShiftB","Shift","BlendDensity","Clamp","transformer","MappedTypes","square","cube","half_negative","quarter_negative","squeeze","Mapped","Slide","console","Ap2","Spline","shaper","point","TerrainShaperSpline","fromY","toY","fromValue","toValue","lt","YClampedGradient","he","createDisabled","Param","W","ParamPoint","TargetPoint","Parameters","things","Sampler","build","CHILDREN_PER_NODE","e5","s4","r4","space","bucketize","area","thing","RTree","RNode","buildSpace","union","RSubTree","RLeaf","ge","TEMPERATURE","VEGETATION","CONTINENTALNESS","TEMPERATURE_LARGE","VEGETATION_LARGE","CONTINENTALNESS_LARGE","EROSION_LARGE","RIDGE","SHIFT","AQUIFER_BARRIER","AQUIFER_FLUID_LEVEL_FLOODEDNESS","AQUIFER_FLUID_LEVEL_SPREAD","AQUIFER_LAVA","PILLAR","PILLAR_RARENESS","PILLAR_THICKNESS","SPAGHETTI_2D","SPAGHETTI_2D_ELEVATION","SPAGHETTI_2D_MODULATOR","SPAGHETTI_2D_THICKNESS","SPAGHETTI_3D_1","SPAGHETTI_3D_2","SPAGHETTI_3D_RARITY","SPAGHETTI_3D_THICKNESS","SPAGHETTI_ROUGHNESS","SPAGHETTI_ROUGHNESS_MODULATOR","CAVE_ENTRANCE","CAVE_LAYER","CAVE_CHEESE","NOODLE","NOODLE_THICKNESS","NOODLE_RIDGE_A","NOODLE_RIDGE_B","JAGGED","SURFACE","SURFACE_SECONDARY","instantiate","seedKey","we","be","xe","Se","_e","Ae","ye","Ee","Ie","Ne","Be","Re","Te","Me","Ce","fluidLevelFloodedness","fluidLevelSpread","initialDensityWithoutJaggedness","finalDensity","veinToggle","veinRidged","veinGap","withSettings","aquiferPositionalRandomFactory","oreVeinsPositionalRandomFactory","mapped","withCellSize","withNewNoise","withMinMax","Visitor","computePreliminarySurfaceLevelScanning","MAX_SAFE_INTEGER","cellCountXZ","cellNoiseMinY","minX","minZ","preliminarySurfaceLevel","firstCellX","firstCellZ","firstNoiseX","firstNoiseZ","noiseSizeXZ","aquifer","materialRule","fromList","rule","defaultBlock","surfaceNoise","surfaceSecondaryNoise","positionalRandoms","Pe","updateXZ","MIN_SAFE_INTEGER","isFluid","i4","e6","updateY","system","noiseChunk","getBiome","blockX","blockY","blockZ","stoneDepthAbove","stoneDepthBelow","surfaceDepth","waterHeight","surfaceSecondary","minSurfaceLevel","getSurfaceDepth","R","getSurfaceSecondary","calculateMinSurfaceLevel","getPreliminarySurfaceLevel","NOOP","getRandom","nextFloat","FALSE","TRUE","abovePreliminarySurface","not","stoneDepth","verticalGradient","water","yAbove","biomeSource","noiseRouter","legacyRandomSource","noiseChunkCache","surfaceSystem","ke","surfaceRule","ce","seaLevel","defaultFluid","globalFluidPicker","getNoiseChunk","minBlockY","u4","getFinalState","buildSurface","Oe","aquifersEnabled","wasm","disableMobGeneration","oreVeinsEnabled","cachedTextDecoder","ignoreBOM","fatal","cachegetUint8Memory0","ptr","memory","u32CvtShim","int64CvtShim","BigInt64Array","cachegetInt32Memory0","cachegetFloat64Memory0","Float64Array","WASM_VECTOR_LEN","arg","malloc","cachegetUint32Memory0","t_min","t_max","h_min","h_max","c_min","c_max","e_min","e_max","w_min","w_max","d_min","d_max","ptr0","passArrayF64ToWasm0","__wbindgen_malloc","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","passArray32ToWasm0","len13","biome_parameters","ParameterList","__wrap","t_first","t_amplitudes","h_first","h_amplitudes","c_first","c_amplitudes","e_first","e_amplitudes","w_first","w_amplitudes","s_first","s_amplitudes","low0","high0","climate_sampler","instance","klass","sampler","x_from","x_to","x_step","y_from","y_to","y_step","z_from","z_to","z_step","retptr","__wbindgen_add_to_stack_pointer","multi_noise","r0","getInt32Memory0","r1","v0","getArrayI32FromWasm0","__wbindgen_free","climate_noise","getFloat64Memory0","getArrayF64FromWasm0","__destroy_into_raw","__wbg_parameterlist_free","__wbg_sampler_free","async","URL","import_meta","imports","wbg","__wbindgen_throw","arg0","arg1","getStringFromWasm0","Request","fetch","Response","WebAssembly","instantiateStreaming","headers","arrayBuffer","Instance","load","__wbindgen_wasm_module","Dt","Mt","Ot","Lt","Yt","Gt","Ht","Vt","zt","jt","Jt","Xt","toJson","Zt","qt","buildErosionOffsetSpline","getErosionFactor","buildErosionJaggednessSpline","buildMountainRidgeSplineWithPoints","ridgeSpline","mountainContinentalness","calculateMountainRidgeZeroContinentalnessPoint","calculateSlope","buildRidgeJaggednessSpline","buildWeirdnessJaggednessSpline","islandNoiseOverride","isAmplified","hasLargeBiomes","filler","noise000","noise001","noise100","noise101","noise010","noise011","noise110","noise111","valueXZ00","valueXZ10","valueXZ01","valueXZ11","valueZ0","valueZ1","slice0","$t","allocateSlice","slice1","fillSlice","cellCountNoiseMinY","interpolators","baseNoise","makeBaseNoiseFiller","noodleCavesEnabled","terrainInfo","initializeForFirstCellX","advanceCellX","selectCellYZ","updateForY","updateForX","updateForZ","swapSlices","isNoiseCavesEnabled","temperatureNoise","humidityNoise","continentalnessNoise","erosionNoise","weirdnessNoise","pillarNoise","pillarRarenessModulator","pillarThicknessModulator","spaghetti2DNoise","spaghetti2DElevationModulator","spaghetti2DRarityModulator","spaghetti2DThicknessModulator","spaghetti3DNoise1","spaghetti3DNoise2","spaghetti3DRarityModulator","spaghetti3DThicknessModulator","spaghettiRoughnessNoise","spaghettiRoughnessModulator","bigEntranceNoise","layerNoise","cheeseNoise","noodleToggleNoise","yLimitedInterpolatable","noodleThicknessNoise","noodleRidgeANoise","noodleRidgeBNoise","jaggedNoise","createNoiseInterpolator","calculateBlendedBaseNoise","getNoiseData","getOffset","getContinentalness","getErosion","getWeirdness","shiftedX","shiftedZ","getTemperature","getHumidity","computeDimensionDensity","J","calculateBaseNoise","sampleJaggedNoise","getBigEntrances","getSpaghettiRoughness","getSpaghetti3D","getLayerizedCaverns","getCheese","getSpaghetti2D","getPillars","applySlide","quantizeSpaghettiRarity2D","sampleWithRarity","quantizeSpaghettiRarity3D","ee","Qt","noiseCavesEnabled","updateNoiseAndGenerateBaseState","te","l4","l5","d3","Kt","bedrockRoofPosition","bedrockFloorPosition","deepslateEnabled","t5","global2","define2","deps","payload","payloads","original","trace","ns","_acequire","parentId","lookup2","dep","acequire","packagedModule","normalizeModule","moduleName","packaged","define","ace","real","compliantExecNpcg","compliantLastIndexIncrement","lastIndex","global","ignoreCase","multiline","extended","sticky","array2","getNativeFlags","_xregexp","captureNames","Function","bound","Empty","defineGetter","defineSetter","lookupGetter","lookupSetter","supportsAccessors","prototypeOfArray","prototypeOfObject","_toString2","owns","__defineGetter__","__defineSetter__","__lookupGetter__","__lookupSetter__","lengthBefore","makeArray","array_splice","deleteCount","removeCount","removed","remove","tailOldPos","tailNewPos","tailCount","lengthAfterRemove","createEmpty","freezeObject","boxedString","splitString","fun","toObject","self2","thisp","reduceRight","sought","toInteger","getPrototypeOf","descriptor","setter","isPrototypeOf","toLocaleString","valueOf","Type2","exception2","definePropertyWorksOnObject","doesDefinePropertyWork","definePropertyWorksOnDom","definePropertyFallback","seal","freeze","preventExtensions","isSealed","isFrozen","isExtensible","returnValue","hasDontEnumBug","dontEnums","dontEnumsLength","keys2","dontEnum","now","getTime","ws","trim","trimBeginRegexp","trimEndRegexp","getDocumentHead","doc","getElementsByTagName","documentElement","hasCssClass","el","className","addCssClass","removeCssClass","classes","toggleCssClass","setCssClass","include","hasCssString","sheets","createStyleSheet","styleSheets","owningElement","importCssString","importCssStylsheet","link","rel","getInnerWidth","computedStyle","clientWidth","getInnerHeight","clientHeight","scrollbarWidth","document2","width","minWidth","body","noScrollbar","offsetWidth","withScrollbar","pageYOffset","getPageScrollTop","getPageScrollLeft","pageXOffset","scrollTop","scrollLeft","getComputedStyle","currentStyle","setInnerHtml","innerHtml","cloneNode","replaceChild","setInnerText","innerText","textContent","getInnerText","getParentWindow","defaultView","parentWindow","inherits","ctor","superCtor","super_","mixin","implement","oop","Keys","MODIFIER_KEYS","16","17","18","224","KEY_MODS","ctrl","alt","option","meta","command","cmd","FUNCTION_KEYS","8","9","13","19","27","32","33","34","35","36","37","38","39","40","44","45","46","96","97","98","99","100","101","102","103","104","105","-13","112","113","114","115","116","117","118","119","120","121","122","123","144","145","PRINTABLE_KEYS","48","49","50","51","52","53","54","55","56","57","59","61","65","66","67","68","69","70","71","72","73","74","75","76","77","78","79","80","81","82","83","84","85","86","87","88","89","90","107","109","110","186","187","188","189","190","191","192","219","220","221","222","111","106","enter","esc","del","keyCodeToString","keyCode","keyString","OS","LINUX","MAC","WINDOWS","getOS","isMac","isLinux","platform","ua","isWin","isIE","appName","isOldIE","isGecko","isMozilla","Controllers","controllers","product","isOldGecko","isOpera","opera","isWebKit","isChrome","isAIR","isIPad","isChromeOS","isIOS","MSStream","useragent","pressedKeys","ts","addListener","elem","attachEvent","wrapper","_wrapper","removeListener","detachEvent","stopEvent","cancelBubble","getButton","4","capture","eventHandler","releaseCaptureHandler","onMouseUp","addTouchMoveListener","startx","starty","touchObj","touches","clientX","clientY","wheelX","wheelY","addMouseWheelListener","wheelDeltaX","wheelDeltaY","wheelDelta","deltaMode","DOM_DELTA_PIXEL","deltaX","deltaY","DOM_DELTA_LINE","DOM_DELTA_PAGE","HORIZONTAL_AXIS","detail","addMultiMouseDownListener","timeouts","callbackName","startX","startY","timer","clicks","eventNames","3","isNewClick","_clicks","onMousedown","onDblclick","getModifierHash","hashId","getModifierState","altGr","keyLocation","timeStamp","defaultPrevented","getModifierString","addCommandKeyListener","lastKeyDownKeyCode","normalizeCommandKeys","lastDefaultPrevented","resetPressedKeys","postMessage","nextTick","win","messageName","nextFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","msRequestAnimationFrame","oRequestAnimationFrame","stringReverse","reverse","stringRepeat","stringTrimLeft","stringTrimRight","copyObject","copyArray","deepCopy","arrayToMap","createMap","arrayRemove","escapeRegExp","escapeHTML","getMatchOffsets","regExp","deferredCall","fcn","deferred","timeout","cancel","schedule","isPending","delayedCall","defaultTimeout","_self","delay","clearTimeout","dom","lang","KEYS","MODS","BROKEN_SETDATA","USE_IE_MIME_TYPE","TextInput","isTouchPad","opacity","PLACEHOLDER","copied","cut","pasted","inComposition","tempStyle","isSelectionEmpty","isFocused","activeElement","onBlur","onFocus","focus","blur","syncSelection","resetSelection","syncValue","isEmpty","inputHandler","selectionStart","selectionEnd","setSelectionRange","selection","setInputHandler","cb","getInputHandler","afterContextMenu","sendText","onPaste","execCommand","onTextInput","onInput","handleClipboardData","forceIEMime","clipboardData","mime","setData","getData","doCopy","isCut","getCopyText","onCut","onCopy","select","onCommandKey","text2","selectAll","closeTimeout","onCompositionUpdate","$readOnly","undo","canUndo","getRange","session","markUndoGroup","setRange","clearSelection","onCompositionEnd","syncComposition","renderer","$keepTextAreaAtCursor","$moveTextAreaToCursor","onCompositionStart","$undoManager","on","getElement","setReadOnly","readOnly","onContextMenu","_emit","domEvent","moveToMouse","bringToFront","rect","container","getBoundingClientRect","top","borderTopWidth","borderLeftWidth","maxTop","bottom","move","onContextMenuClose","textInput","scroller","typingResetTimeout","typing","detectArrowKeys","home","right","TextInputIOS","mouseHandler","$clickSelection","editor","setDefaultHandler","onMouseDown","onDoubleClick","onTripleClick","onQuadClick","onMouseWheel","onTouchMove","selectByLines","extendSelectionBy","selectByWords","cursor","ev","inSelection","getDocumentPosition","mousedownEvent","selectionEmpty","getSelectionRange","$blockScrolling","moveToPosition","$focusTimout","inMultiSelectMode","captureMouse","startSelect","waitForClickSelection","screenToTextCoordinates","getShiftKey","selectToPosition","setCapture","setStyle","comparePoint","orientedRange","calcRangeOrientation","setSelectionAnchor","scrollCursorIntoView","unitName","cmpStart","cmpEnd","selectEnd","selectAllEnd","selectByWordsEnd","selectByLinesEnd","unsetStyle","releaseCapture","focusWait","ax","ay","bx","by","getBracketRange","getWordRange","isMultiLine","contains","getLineRange","getAccelKey","$lastScroll","vx","vy","allowed","prevScroll","dt2","canScroll","isScrollableBy","speed","scrollBy","stop","DefaultHandlers","isOpen","$element","$parentNode","$init","setText","setHtml","html","setPosition","setClassName","show","hide","getHeight","offsetHeight","getWidth","destroy","Tooltip","GutterTooltip","windowWidth","innerWidth","windowHeight","innerHeight","GutterHandler","tooltipTimeout","mouseEvent","tooltipAnnotation","gutter","$gutterLayer","tooltip","_signal","hideTooltip","getRegion","selectTo","srcElement","$tooltipFollowsMouse","isMousePressed","annotation","$annotations","getLength","screenRow","pixelToScreenCoordinates","$pos","documentToScreenRow","$gutter","MouseEvent","$inSelection","propagationStopped","selectionRange","blankImage","src","x3","dragSelectionMarker","timerId","dragCursor","dragOperation","isInternal","autoScrollStartTime","cursorMovedTime","cursorPointOnCaretMoved","mouseTarget","counter","prevCursor","vMovement","hMovement","moveCursorToPosition","calcDistance","lineHeight","layerConfig","characterWidth","editorRect","offsets","nearestXOffset","nearestYOffset","scrollCursor","vScroll","hScroll","toOrientedRange","addMarker","getSelectionStyle","$cursorLayer","setBlinking","setInterval","onDragInterval","onMouseMove","removeMarker","fromOrientedRange","getReadOnly","onDragStart","cancelDrag","draggable","dataTransfer","effectAllowed","setDragImage","clearData","getTextRange","onDragEnd","dropEffect","setCursorStyle","onDragEnter","canAccept","getDropEffect","onDragOver","onMouseMoveTimer","onDragLeave","onDrop","moveText","dropData","types","copyAllowed","copyModifierState","dragWait","getDragDelay","startDrag","dragWaitEnd","dragReadyEnd","cursorStyle","onMouseDrag","dragDrop","$dragEnabled","eventTarget","unselectable","DragdropHandler","loadScript","onload","isAbort","qualifyURL","EventEmitter","_dispatchEvent","eventName","_eventRegistry","_defaultHandlers","defaultHandler","once","newCallback","handlers","_disabled_","old","disabled","removeDefaultHandler","capturing","off","removeAllListeners","optionsProvider","setOptions","optList","setOption","getOptions","optionNames","$options","getOption","forwardTo","handlesSet","AppConfig","$defaultOptions","defineOptions","initialValue","resetOptions","setDefaultValue","setDefaultValues","optionHash","reportError","net","workerPath","modePath","themePath","basePath","suffix","$moduleUrls","scriptOptions","scriptUrl","currentScript","_currentScript","scripts","ownerDocument","script","attr","m1","all","moduleUrl","sep","re2","setModuleUrl","subst","$loading","loadModule","onLoad","moduleType","afterLoad","module3","onLoad2","init","init2","DefaultGutterHandler","MouseHandler","focusEditor","hasFocus","getMouseEventTarget","onMouseEvent","scrollBarV","scrollBarH","gutterEl","$dragDelay","insideStart","mousemove","$scrollSpeed","mouseMoveHandler","which","releaseMouse","$mouseMoved","onCaptureEnd","$onCaptureMouseMove","onCaptureInterval","cancelContextMenu","scrollSpeed","dragDelay","dragEnabled","focusTimout","tooltipFollowsMouse","FoldHandler","fold","getFoldAt","removeFold","expandFold","foldWidgets","onFoldWidgetClick","getParentFoldRangeData","firstRange","getLine","addFold","keyUtil","KeyBinding","$editor","$data","$handlers","commands","kb","removeKeyboardHandler","$defaultHandler","addKeyboardHandler","setKeyboardHandler","handleKeyboard","attach","detach","getKeyboardHandler","getStatusText","$callKeyboardHandlers","toExecute","success","passEvent","dir","hiLevel","lastArabic","hasUBAT_B","hasUBAT_S","impTab_LTR","impTab_RTL","ET","BN","UnicodeTBL00","UnicodeTBL20","lev","lo","hi","tmp","chars","ix","wType","nType","cType","rtlCandidate","ch","uc","EN","ON_R","AN","R_H","DOT","doBidiReorder","textCharTypes","isRtl","logicalFromVisual","bidiLevels","charTypes","impTab","prevState","newClass","newLevel","newState","condPos","_getCharacterType","_getCharClass","hasBidiCharacters","getVisualFromLogicalIdx","logIdx","rowMap","bidiUtil","bidiRE","BidiHandler","bidiMap","currentRow","charWidths","EOL","showInvisibles","isRtlDir","wrapIndent","isLastRow","EOF","seenBidi","isBidiRow","docRow","splitIndex","updateRowLine","updateBidiMap","getDocumentRow","rowCache","$screenRowCache","$getRowCacheIndex","$docRowCache","getSplitIndex","currentIndex","prevIndex","$useWrapMode","splits","$wrapData","indent","isFullWidth","getScreenTabSize","endOfLine","markAsDirty","updateCharacterWidths","fontMetrics","$characterSize","bidiCharWidth","$measureCharWidth","getShowInvisibles","setShowInvisibles","setEolChar","eolChar","setTextDir","getPosLeft","col","visualIdx","getSelections","startCol","endCol","selections","selColMin","selColMax","isSelected","isSelectedPrev","visIdx","offsetToCol","posX","logicalIdx","charWidth","startRow","startColumn","endRow","endColumn","isEqual","compare","compareRange","containsRange","intersects","isEnd","isStart","setStart","setEnd","inside","insideEnd","compareStart","compareEnd","compareInside","clipRows","firstRow","lastRow","fromPoints","extend","collapseRows","toScreenRange","screenPosStart","documentToScreenPosition","screenPosEnd","moveBy","comparePoints","p1","Selection","getDocument","lead","selectionLead","createAnchor","selectionAnchor","$isEmpty","$keepDesiredColumnOnChange","$desiredColumn","getCursor","getPosition","getSelectionAnchor","getSelectionLead","shiftSelection","columns","moveCursorTo","isBackwards","$moveSelection","mover","moveTo","selectUp","moveCursorUp","selectDown","moveCursorDown","selectRight","moveCursorRight","selectLeft","moveCursorLeft","selectLineStart","moveCursorLineStart","selectLineEnd","moveCursorLineEnd","selectFileEnd","moveCursorFileEnd","selectFileStart","moveCursorFileStart","selectWordRight","moveCursorWordRight","selectWordLeft","moveCursorWordLeft","selectWord","selectAWord","getAWordRange","excludeLastChar","rowEnd","rowStart","foldLine2","getFoldLine","selectLine","moveCursorBy","wouldMoveIntoSoftTab","tabSize","isTabStop","getTabSize","getNavigateWithinSoftTabs","firstColumnPosition","screenToDocumentPosition","leadingSpace","getDisplayLine","$useEmacsStyleLineStart","lineEnd","getDocumentLastRowColumnPosition","textEnd","moveCursorLongWordRight","rightOfCursor","nonTokenRe","tokenRe","moveCursorLongWordLeft","getFoldStringAt","leftOfCursor","$shortWordEndIndex","whitespaceRe","moveCursorShortWordRight","moveCursorShortWordLeft","$selectLongWords","screenPos","$bidiHandler","docPos","lineWidgets","keepDesiredColumn","moveCursorToScreen","desiredColumn","getRangeOfMovements","toJSON","rangeCount","ranges","fromJSON","rangeList","toSingleRange","addRange","MAX_TOKEN_COUNT","Tokenizer2","regExps","matchMappings","ruleRegExps","matchTotal","defaultToken","flag","splitterRurles","caseInsensitive","adjustedregex","matchcount","token","groupCount","tokenArray","onMatch","$arrayTokens","$applyToken","removeCapturingGroups","splitRegex","rule2","createSplitterRegexp","$setMaxTokenCount","tokens2","inChClass","lastCapture","parenOpen","parenClose","getLineTokens","startState","currentState","matchAttempts","skipped","consumeLineEnd","merge","unshift","tokens","Tokenizer","TextHighlightRules","$rules","addRules","prefix","nextState","getRules","embedRules","HighlightRules","escapeRules","$embeds","getEmbeds","pushState","popState","normalizeRules","processed","toInsert","stateName","includeName","noEscape","keywordMap","createKeywordMapper","splitChar","keywords","$keywordList","getKeywords","$keywords","Behaviour","$behaviours","addBehaviours","behaviours","inherit","getBehaviours","TokenIterator","initialRow","initialColumn","$session","$row","$rowTokens","getTokens","getTokenAt","$tokenIndex","stepBackward","stepForward","rowCount","getCurrentToken","getCurrentTokenRow","getCurrentTokenColumn","rowTokens","tokenIndex","getCurrentTokenPosition","getCurrentTokenRange","SAFE_INSERT_IN_TOKENS","SAFE_INSERT_BEFORE_TOKENS","contextCache","defaultQuotes","\"","'","initContext","multiSelect","autoInsertedBrackets","autoInsertedRow","autoInsertedLineEnd","maybeInsertedBrackets","maybeInsertedRow","maybeInsertedLineStart","maybeInsertedLineEnd","getWrapped","selected","opening","closing","rowDiff","CstyleBehaviour","getCursorPosition","getWrapBehavioursEnabled","isSaneInsertion","braces","recordAutoInsert","recordMaybeInsert","$findOpeningBracket","isAutoInsertedClosing","popAutoInsertedClosing","isMaybeInsertedClosing","clearMaybeInsertedClosing","openBracePos","findMatchingBracket","next_indent","$getIndent","indent2","getTabString","quotes","$mode","$quotes","lineCommentStart","quote2","leftChar","rightChar","rightToken","pair","stringBefore","stringAfter","wordRe","isWordBefore","isWordAfter","$matchTokenType","iterator2","bracket","packages","codePoint","Ll","Lu","Lm","Lo","Mn","Mc","Nd","Nl","No","Pd","Ps","Pi","Pf","Pc","Po","S","Sm","Sc","Sk","So","Zs","Zl","Zp","Cc","Cf","Co","Cs","Cn","unicode","Mode","$defaultBehaviour","getTokenizer","$tokenizer","$highlightRules","$highlightRuleConfig","blockComment","toggleCommentLines","ignoreBlankLines","shouldRemove","minIndent","insertAtTabStop","regexpStart","getUseSoftTabs","uncomment","shouldInsertSpace","removeInLine","commentWithSpace","insertInLine","testRemove","before","after","spaces","lineCommentEnd","regexpEnd","minEmptyLength","toggleBlockComment","colDiff","initialRange","startRange","endRange","getNextLineIndent","tab","checkOutdent","autoOutdent","createWorker","createModeDelegates","$modes","delegations","scope","functionName","$delegator","transformAction","$behaviour","completionKeywords","ruleItr","aLength","$createKeywordList","getCompletions","word","$id","applyDelta","docLines","doNotValidate","Anchor","$onChange","point1","point2","equalPointsInOrder","bColIsAfter","$clipPositionToDocument","$insertRight","moveIfEqual","deltaIsInsert","deltaRowShift","deltaColShift","deltaStart","deltaEnd","$pointsInOrder","$getTransformedPoint","noClip","Document","textOrLines","$lines","insertMergedLines","setValue","getValue","getAllLines","getNewLineCharacter","$split","$detectNewLine","$autoNewLine","$newLineMode","setNewLineMode","newLineMode","getNewLineMode","isNewLine","getLines","getLinesForRange","insertLines","insertFullLines","removeLines","removeFullLines","insertNewLine","clippedPos","clonePos","$clipPosition","deleteFirstNewLine","deleteLastNewLine","deletedLines","removeNewLine","applyDeltas","deltas","revertDeltas","revertDelta","isInsert","$splitAndapplyLargeDelta","MAX","indexToPosition","newlineLength","positionToIndex","BackgroundTokenizer","tokenizer","running","currentLine","$worker","workerStart","endLine","startLine","processedLines","$tokenizeRow","fireUpdateEvent","setTokenizer","setDocument","scheduleStart","$updateOnChange","getState","SearchHighlight","clazz","setRegexp","MAX_RANGES","cache","markerLayer","drawSingleLineMarker","foldData","folds","setFoldLine","shiftRow","sameRow","foldLine","containsRow","walk","lastEnd","isNewRow","placeholder","getNextFoldTo","kind","addRemoveChars","foldBefore","newFoldLine","FoldLine","foldLineNext","idxToPosition","lastFoldEndColumn","RangeList","pointIndex","excludeEdges","startIndex","endIndex","addList","substractPoint","containsPoint","rangeAtPoint","clipped","removeAll","lineDif","Fold","subFolds","subFold","collapseChildren","addSubFold","afterStart","restoreRange","Folding","side","getFoldsInRange","foldLines","$foldData","foundFolds","getFoldsInRangeList","getAllFolds","lastFold","startFoldLine","getNextFoldLine","getFoldedRowCount","$addFoldLine","added","$clipRangeToDocument","startFold","endFold","removeFolds","$updateWrapData","$updateRowLengthCache","$modified","addFolds","$updating","cloneFolds","foldAll","expandFolds","unfold","expandInner","isRowFolded","startFoldRow","getRowFoldEnd","getRowFoldStart","getFoldDisplayLine","textLine","$cloneFoldData","fd","toggleFold","tryToUnfold","bracketPos","getCommentFoldRange","getFoldWidget","getFoldWidgetRange","$foldStyles","manual","markbegin","markbeginend","$foldStyle","setFoldStyle","$foldMode","$setFolding","foldMode","$updateFoldWidgets","$tokenizerUpdateFoldWidgets","updateFoldWidgets","tokenizerUpdateFoldWidgets","ignoreCurrent","fw","siblings","$toggleFoldWidget","toggleFoldWidget","toggleParent","BracketMatch","chr","charBeforeCursor","$findClosingBracket","$brackets",")","(","]","[","{","}","typeRe","openBracket","valueIndex","closingBracket","valueLength","TextMode","EditSession","$breakpoints","$decorations","$frontMarkers","$backMarkers","$markerId","$undoSelect","$uid","onChangeFold","setMode","bgTokenizer","resetCaches","$resetRowCache","cacheArray","$rowLengthCache","removedFolds","$updateInternalDataOnChange","$fromUndo","ignore","$deltasDoc","$deltasFold","$informUndoManager","$deltas","setUndoManager","getUndoManager","getSelection","undoManager","$syncInformUndoManager","execute","mergeUndoDeltas","$defaultUndoManager","redo","setUseSoftTabs","$useSoftTabs","$indentWithTabs","setTabSize","$tabSize","setNavigateWithinSoftTabs","navigateWithinSoftTabs","$navigateWithinSoftTabs","$overwrite","setOverwrite","overwrite","getOverwrite","toggleOverwrite","addGutterDecoration","removeGutterDecoration","getBreakpoints","setBreakpoints","clearBreakpoints","setBreakpoint","clearBreakpoint","inFront","marker","addDynamicMarker","markerId","markers","getMarkers","highlight","$searchHighlight","highlightLines","setAnnotations","annotations","getAnnotations","clearAnnotations","inToken","wordRange","setUseWorker","useWorker","getUseWorker","$useWorker","onReloadTokenizer","$modeId","$onChangeMode","$isPlaceholder","$stopWorker","$startWorker","attachToSession","wrapMethod","$wrapMethod","foldingRules","terminate","getMode","$scrollTop","setScrollTop","getScrollTop","$scrollLeft","setScrollLeft","getScrollLeft","getScreenWidth","$computeWidth","getLineWidgetMaxWidth","screenWidth","lineWidgetsWidth","lineWidgetWidth","force","$wrapLimit","cache2","longestScreenLine","foldIndex","foldStart","$getStringScreenWidth","undoChanges","dontSelect","lastUndoRange","$getUndoSelection","foldDelta","redoChanges","setUndoSelect","enable","isUndo","delta2","fromRange","toPosition","toRange","collDiff","oldStart","newStart","indentRows","indentString2","outdentRows","rowRange","deleteRange","$moveLines","diff","$clipRowToDocument","MAX_VALUE","moveLinesUp","moveLinesDown","duplicateLines","$clipColumnToRow","$wrapLimitRange","setUseWrapMode","useWrapMode","getUseWrapMode","setWrapLimitRange","adjustWrapLimit","desiredLimit","$printMargin","limits","wrapLimit","$constrainWrapLimit","getWrapLimit","setWrapLimit","getWrapLimitRange","foldLineBefore","wrapData","row2","walkTokens","$getDisplayTokens","PLACEHOLDER_START","PLACEHOLDER_BODY","$computeWrapSplits","displayLength","lastSplit","lastDocSplit","isCode","$wrapAsCode","indentedSoftWrap","$indentedSoftWrap","maxIndent","displayed","indentation","getWrapIndent","minSplit","maxScreenColumn","screenColumn","getRowLength","getRowLineCount","getRowWrapIndent","getScreenLastRowColumn","documentToScreenColumn","getDocumentLastRowColumn","docColumn","getRowSplitData","screenToDocumentRow","screenToDocumentColumn","rowLength","doCache","maxRow","foldStartRow","wrapRow","screenRowOffset","getScreenLength","screenRows","$getWidgetScreenLength","$setFontMetrics","fm","$enableVarChar","getCharacterWidth","$wrap","firstLineNumber","useSoftTabs","Search","find","$matchIterator","sr","er","ec","skipCurrent","findAll","$assembleRegExp","$isMultiLine","prevRange","replacement","preserveCase","$disableFakeMultiline","wholeWord","wordBoundary","addWordBoundary","modifier","caseSensitive","$assembleMultilineRegExp","backwards","forEachInLine","commandKeyBinding","addCommands","$singleCommand","HashHandler","bindKey","isDefault","addCommand","removeCommand","_buildKeyHash","keepCommand","ckb","keyId","cmdGroup","keyPart","chain","keyPart2","binding2","parseKeys","id2","_addCommandToBinding","binding","removeCommands","bindKeys","keyList","findKeyCommand","$keyChain","MultiHashHandler","CommandManager","byName","isAvailable","toggleRecording","$inReplay","recording","macro","$addCommandToMacro","oldMacro","replay","trimMacro","mac","showSettingsMenu","showErrorMarker","scrollIntoView","centerSelection","prompt","gotoLine","multiSelectAction","getAllRanges","findNext","findPrevious","aceCommandGroup","navigateFileStart","navigateUp","times","navigateFileEnd","navigateDown","navigateWordLeft","navigateLineStart","navigateLeft","navigateWordRight","navigateLineEnd","navigateRight","selectPageDown","scrollPageDown","gotoPageDown","selectPageUp","scrollPageUp","gotoPageUp","jumpToMatching","$handlePaste","duplicateSelection","sortLines","modifyNumber","copyLinesUp","copyLinesDown","removeToLineStart","removeToLineEnd","removeWordLeft","removeWordRight","blockOutdent","blockIndent","splitLine","transposeLetters","transposeSelections","firstLineEndCol","selectedCount","insertLine","curLine","newRanges","exitMultiSelectMode","defaultCommands","Editor","getContainerElement","getTextAreaContainer","textarea","$mouseHandler","keyBinding","$search","$historyTracker","$initOperationListeners","_$emitInputEvent","setSession","startOperation","endOperation","$opResetTimer","curOp","docChanged","selectionChanged","prevOp","commadEvent","previousCommand","config2","scrollSelectionIntoView","animateScrolling","$mergeableCommands","$mergeUndoDeltas","mergeableCommands","shouldMerge","mergeNextCommand","sequenceStartTime","keyboardHandler","$keybindingId","handler","oldSession","$onDocumentChange","$onTokenizerUpdate","$onChangeTabSize","$onChangeWrapLimit","$onChangeWrapMode","$onChangeFold","$onChangeFrontMarker","$onChangeBackMarker","$onChangeBreakpoint","$onChangeAnnotation","$onCursorChange","$onScrollTopChange","$onScrollLeftChange","$onSelectionChange","onDocumentChange","onChangeMode","onTokenizerUpdate","onChangeTabSize","onChangeWrapLimit","onChangeWrapMode","onChangeFrontMarker","onChangeBackMarker","onChangeBreakpoint","onChangeAnnotation","onCursorChange","onScrollTopChange","onScrollLeftChange","onSelectionChange","updateFull","oldEditor","getSession","cursorPos","resize","onResize","setTheme","theme","getTheme","getFontSize","setFontSize","$highlightBrackets","$bracketHighlight","$highlightPending","getMatching","$highlightTags","$highlightTagPending","$tagHighlight","prevToken","sbm","$isFocused","showCursor","visualizeFocus","hideCursor","visualizeBlur","$cursorChange","updateCursor","updateLines","$updateHighlightActiveLine","scrollToY","scrollToX","$highlightActiveLine","$selectionStyle","$maxLines","$minLines","$highlightLineMarker","$selectionMarker","$highlightSelectedWord","$getSelectionHighLightRegexp","startOuter","endOuter","lineCols","updateFrontMarkers","updateBackMarkers","updateBreakpoints","updateText","getSelectedText","inVirtualSelectionMode","getBehavioursEnabled","transform2","$mergeNextCommand","lineState","shouldOutdent","lineIndent","setScrollSpeed","getScrollSpeed","setDragDelay","setSelectionStyle","setHighlightActiveLine","shouldHighlight","getHighlightActiveLine","setHighlightGutterLine","getHighlightGutterLine","setHighlightSelectedWord","getHighlightSelectedWord","setAnimatedScroll","shouldAnimate","getAnimatedScroll","setDisplayIndentGuides","getDisplayIndentGuides","setShowPrintMargin","showPrintMargin","getShowPrintMargin","setPrintMarginColumn","getPrintMarginColumn","setBehavioursEnabled","setWrapBehavioursEnabled","setShowFoldWidgets","getShowFoldWidgets","setFadeFoldWidgets","fade","getFadeFoldWidgets","new_range","swap","originalRange","$getSelectedRows","getNumberAt","_numberRx","charRange","nr","fp","decimals","nnr","toFixed","replaceRange","sel","endPoint","moved","totalDiff","rangeIndex","subRows","showComposition","setCompositionText","hideComposition","getFirstVisibleRow","getLastVisibleRow","isRowVisible","isRowFullyVisible","getFirstFullyVisibleRow","getLastFullyVisibleRow","$getVisibleRowCount","getScrollBottomRow","getScrollTopRow","$moveByPage","scrollToRow","scrollToLine","center","animate","alignCursor","getCursorPositionScreen","matchType","bracketType","found","brackets","lineNumber","navigateTo","replaced","$tryReplace","replaceAll","getLastSearchOptions","newRange","preventScroll","revealRange","setAutoScrollEditorIntoView","shouldScroll","$scrollAnchor","scrollAnchor","onChangeSelection","onBeforeRender","onAfterRender","searchBox","$pixelPos","enable2","$resetCursorStyle","$cursorStyle","cursorLayer","setSmoothBlinking","isBlinking","selectionStyle","highlightActiveLine","highlightSelectedWord","behavioursEnabled","wrapBehavioursEnabled","autoScrollEditorIntoView","keybindingId","hScrollBarAlwaysVisible","vScrollBarAlwaysVisible","highlightGutterLine","animatedScroll","printMarginColumn","printMargin","fadeFoldWidgets","showFoldWidgets","showLineNumbers","showGutter","displayIndentGuides","fontSize","fontFamily","maxLines","minLines","scrollPastEnd","fixedWidthGutter","foldStyle","UndoManager","deltaSets_old","fnGetModifiedDelta","deltaSets_new","deltaSet_old","deltaSet_new","delta_old","deltaSets","$doc","hasUndo","dirtyCounter","$undoStack","$redoStack","NaN","undoSelectionRange","redoSelectionRange","$deserializeDeltas","hasRedo","markClean","isClean","$serializeDeltas","cloneDeltaSetsObj","$serializeDelta","$deserializeDelta","Gutter","parentEl","$showFoldWidgets","gutterWidth","$updateAnnotations","$cells","rowInfo","annoText","gutterOffset","breakpoints","decorations","$firstLineNumber","lastLineNumber","gutterRenderer","$renderer","cell","textNode","foldWidget","getText","minHeight","$fixedWidth","padding","$padding","$computePadding","ceil","$showLineNumbers","setShowLineNumbers","getShowLineNumbers","paddingLeft","paddingRight","Marker","setPadding","setMarkers","$getTop","drawFullLineMarker","drawScreenLineMarker","drawTextMarker","drawMultiLineMarker","drawBidiSingleLineMarker","firstRowScreen","stringBuilder","extraStyle","clazzModified","lineRange","range1","radiusClass","extraLength","Text","$updateEolChar","EOF_CHAR","EOL_CHAR_LF","EOL_CHAR_CRLF","EOL_CHAR","TAB_CHAR","SPACE_CHAR","getLineHeight","$fontMetrics","measure","$pollSizeChanges","checkForSizeChanges","$pollSizeChangesTimer","$computeTabString","$tabStrings","tabStr","$indentGuideRe","spaceClass","tabClass","spaceContent","tabContent","scrollLines","lineElements","lineElementsIdx","lineElement","$renderLine","$useLineGroups","oldConfig","lastChild","fragment","$renderLinesFragment","createDocumentFragment","$textToken","rparen","lparen","$renderToken","tabIdx","idx4","classToUse","renderIndentGuide","cols","$renderWrappedLine","onlyContents","splitChars","$renderSimpleLine","$getFoldLineTokens","renderTokens","tokens3","$measureNode","isIE8","Cursor","isVisible","blinkInterval","smoothBlinking","cursors","addCursor","$updateCursors","$updateVisibility","$updateOpacity","visibility","blinking","restartTimer","setBlinkInterval","removeCursor","intervalId","timeoutId","blink","getPixelPosition","onScreen","$selectionMarkers","cursorIndex","pixelPos","drawCursor","$setOverwrite","MAX_SCROLL_H","ScrollBar","classSuffix","setVisible","skipEvent","onScroll","coeff","VScrollBar","scrollHeight","$scrollbarWidth","$minWidth","setHeight","setInnerHeight","setScrollHeight","HScrollBar","setWidth","setInnerWidth","setScrollWidth","ScrollBarV","ScrollBarH","RenderLoop","onRender","changes","CHAR_COUNT","FontMetrics","$setMeasureNodeStyles","$main","$testFractionalRect","isRoot","whiteSpace","$measureSizes","fontWeight","boldSize","charSizes","allowBoldFonts","setPolling","GutterLayer","MarkerLayer","TextLayer","CursorLayer","VirtualRenderer","onGutterResize","$markerBack","textLayer","$textLayer","canvas","$markerFront","$horizScroll","$vScroll","scrollBar","$scrollAnimation","scrollMargin","updateCharacterSize","$size","scrollerHeight","scrollerWidth","$dirty","maxHeight","h","$loop","$renderChanges","CHANGE_FULL","CHANGE_CURSOR","CHANGE_MARKER","CHANGE_GUTTER","CHANGE_SCROLL","CHANGE_LINES","CHANGE_TEXT","CHANGE_SIZE","CHANGE_MARKER_BACK","CHANGE_MARKER_FRONT","CHANGE_H_SCROLL","$allowBoldFonts","$updatePrintMargin","onChangeNewLineMode","$changedLines","updateFontSize","$changes","$updateSizeAsync","resizing","scrollWidth","$updateCachedSize","$extraHeight","oldSize","$showGutter","$computeLayerConfig","availableWidth","$showPrintMargin","$printMarginColumn","$animatedScroll","getShowGutter","setShowGutter","$updateGutterLineHighlight","$gutterLineHighlight","$printMarginEl","containerEl","posTop","posLeft","$composition","setScrollMargin","sm","getHScrollBarAlwaysVisible","$hScrollBarAlwaysVisible","setHScrollBarAlwaysVisible","alwaysVisible","getVScrollBarAlwaysVisible","$vScrollBarAlwaysVisible","setVScrollBarAlwaysVisible","$updateScrollBarV","$scrollPastEnd","$updateScrollBarH","$frozen","unfreeze","st2","marginTop","marginLeft","$highlightGutterLine","$updateLines","$autosize","desiredHeight","$maxPixelHeight","$gutterWidth","hideScrollbars","longestLine","$getLongestLine","horizScroll","hScrollChanged","vScrollBefore","vScrollChanged","firstRowHeight","lineCount","charCount","$viewMargin","topMargin","bottomMargin","alignment","STEPS","$calcSteps","steps","x_min","dx","initialScroll","oldSteps","$timer","clearInterval","scrollTo","canvasPos","textToScreenCoordinates","pageX","pageY","keepTextAreaAtCursor","$themeId","cssClass","$theme","isDark","setMouseCursor","maxPixelHeight","workerUrl","blob","Blob","blobBuilder","BlobBuilder","WebKitBlobBuilder","MozBlobBuilder","getBlob","$workerBlob","blobURL","webkitURL","createObjectURL","Worker","WorkerClient","topLevelNamespaces","classname","importScripts","$sendDeltaQueue","changeListener","onMessage","nameToUrl","toUrl","normalizePath","$normalizePath","tlns","callbackId","callbacks","onmessage","err2","deltaQueue","emit","ex","attachToDocument","UIWorkerClient","messageBuffer","main","emitSync","sender","processNext","setEmitSync","Main","PlaceHolder","others","mainClass","othersClass","$onUpdate","onUpdate","$others","undoStack","$undostack","$undoStackDepth","setup","selectionBefore","showOtherMarkers","othersActive","hideOtherMarkers","updateAnchors","lengthDiff","inMainRange","distanceFromStart","newPos","otherPos","updateMarkers","updateMarker","undosRequired","accel","selectionMode","isMultiSelect","isSamePoint","mouseX","mouseY","screenAnchor","screenCursor","$enableJumpToDef","$blockSelectEnabled","addSelectionMarker","oldRange","removeSelectionMarker","tmpSel","rectSel","onSelectionInterval","newCursor","cursor2","removeSelectionMarkers","rectangularRangeBlock","updateSelectionMarkers","selectMoreLines","selectMore","splitIntoLines","alignCursors","multiSelectCommands","getSelectionMarkers","$blockChangeEvents","$onAddRange","$onRemoveRange","mergeOverlappingRanges","lastRange","$initRangeList","toggleBlockSelection","includeEmptyLines","xBackwards","startOffsetX","endOffsetX","yBackwards","docEnd","$multiselectOnSessionChange","$onMultiSelect","$onSingleSelect","onSessionChange","$checkMultiselectChange","altCursor","altDown","selectionMarkerCount","markerList","$onMultiSelectExec","inVirtualMode","forEachSelection","keepOrder","$byLines","cmdResult","anim","nl","additive","skip","screenLead","toRemove","stopAtFirst","sameRowRanges","maxCol","minSpace","spaceOffsets","spaceOffset","fr","lr","guessRange","$reAlignText","forceLeft","startW","textW","endW","isLeftAligned","isRightAligned","alignLeft","MultiSelect","enableMultiselect","enableBlockSelect","FoldMode","foldingStartMarker","foldingStopMarker","indentationBlock","startLevel","openingBracketBlock","closingBracketBlock","widgetManager","updateOnChange","renderWidgets","measureWidgets","_changedWidgets","$onChangeEditor","updateOnFold","_inDocument","removeLineWidget","$updateRows","noWidgets","$oldWidget","addLineWidget","zIndex","coverGutter","pixelHeight","$fold","onWidgetChanged","w1","getWidgetsAtRow","changedWidgets","fixedWidth","coverLine","fullWidth","LineWidgets","oldWidget","w3","gutterAnno","matched","findAnnotations","arrow","onmousedown","Renderer2","edit","_id","getElementById","env","tagName","oldNode","createEditSession","brace","JsonHighlightRules","MatchingBraceOutdent","BaseFoldMode","commentRegex","singleLineBlockCommentRe","tripleStarBlockCommentRe","startRegionRe","_getFoldWidgetBase","forceMultiline","getCommentRegionBlock","getSectionRange","startIndent","subRange","CStyleFoldMode","$outdent","worker","YamlHighlightRules","mlString","prevIndent","nextIndent","comment_handler_1","jsx_parser_1","parser_1","tokenizer_1","delegate","commentHandler","proxyDelegate","metadata","visit","parserDelegate","collectComment","attachComment","CommentHandler","isModule","sourceType","jsx","JSXParser","Parser","ast","parseModule","parseScript","comments","tolerant","errorHandler","parse2","parsingOptions","tokenize","getNextToken","tolerate","syntax_1","Syntax","leading","trailing","insertInnerComments","BlockStatement","innerComments","findTrailingComments","trailingComments","entry_1","firstComment","findLeadingComments","leadingComments","visitNode","Program","visitComment","loc","CommentHandler2","AssignmentExpression","AssignmentPattern","ArrayExpression","ArrayPattern","ArrowFunctionExpression","AwaitExpression","BinaryExpression","BreakStatement","CallExpression","CatchClause","ClassBody","ClassDeclaration","ClassExpression","ConditionalExpression","ContinueStatement","DoWhileStatement","DebuggerStatement","EmptyStatement","ExportAllDeclaration","ExportDefaultDeclaration","ExportNamedDeclaration","ExportSpecifier","ExpressionStatement","ForStatement","ForOfStatement","ForInStatement","FunctionDeclaration","FunctionExpression","Identifier","IfStatement","ImportDeclaration","ImportDefaultSpecifier","ImportNamespaceSpecifier","ImportSpecifier","Literal","LabeledStatement","LogicalExpression","MemberExpression","MetaProperty","MethodDefinition","NewExpression","ObjectExpression","ObjectPattern","Property","RestElement","ReturnStatement","SequenceExpression","SpreadElement","Super","SwitchCase","SwitchStatement","TaggedTemplateExpression","TemplateElement","TemplateLiteral","ThisExpression","ThrowStatement","TryStatement","UnaryExpression","UpdateExpression","VariableDeclaration","VariableDeclarator","WhileStatement","WithStatement","YieldExpression","extendStatics","__extends","setPrototypeOf","character_1","JSXNode","jsx_syntax_1","Node2","token_1","xhtml_entities_1","elementName","qualifiedName","JSXSyntax","JSXIdentifier","JSXNamespacedName","getQualifiedElementName","JSXMemberExpression","expr","TokenName","_super","JSXParser2","parsePrimaryExpression","parseJSXRoot","startJSX","scanner","startMarker","lineStart","finishJSX","nextToken","reenterJSX","expectJSX","createJSXNode","collectComments","createJSXChildNode","scanXHTMLEntity","valid","terminated","numeric","eof","Character","isDecimalDigit","isHexDigit","XHTMLEntities","lexJSX","cp","n1","isIdentifierStart","isIdentifierPart","lex","nextJSXToken","lastMarker","convertToken","nextJSXText","isLineTerminator","peekJSXToken","saveState","scanComments","restoreState","throwUnexpectedToken","matchJSX","parseJSXIdentifier","finalize","parseJSXElementName","name_1","parseJSXAttributeName","attributeName","identifier","name_2","parseJSXStringLiteralAttribute","getTokenRaw","parseJSXExpressionAttribute","tolerateError","expression","parseAssignmentExpression","JSXExpressionContainer","parseJSXAttributeValue","parseJSXElement","parseJSXNameValueAttribute","JSXAttribute","parseJSXSpreadAttribute","JSXSpreadAttribute","parseJSXAttributes","parseJSXOpeningElement","selfClosing","JSXOpeningElement","parseJSXBoundaryElement","name_3","JSXClosingElement","parseJSXEmptyExpression","JSXEmptyExpression","parseJSXExpressionContainer","parseJSXChildren","JSXText","parseComplexJSXElement","JSXElement","open_1","isStartOfExpression","Regex","NonAsciiIdentifierStart","NonAsciiIdentifierPart","fromCodePoint","isWhiteSpace","isOctalDigit","openingElement","closingElement","operator","AsyncArrowFunctionExpression","AsyncFunctionDeclaration","AsyncFunctionExpression","logical","label","callee","superClass","ComputedMemberExpression","computed","consequent","alternate","Directive","directive","declaration","specifiers","local","exported","each","imported","meta2","isStatic","Module","shorthand","RegexLiteral","Script","expressions","StaticMemberExpression","discriminant","quasi","quasis","block2","finalizer","declarations","assert_1","error_handler_1","messages_1","scanner_1","ArrowParameterPlaceHolder","Parser2","ErrorHandler","Scanner","trackComment","operatorPrecedence",";",",","=","||","&&","|","^","&","==","!=","===","!==","<",">","<=",">=","<<",">>",">>>","+","-","*","/","%","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","scanRegExpBody","classMarker","scanRegExpFlags","char","Scanner2","quot","amp","apos","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","exist","nabla","isin","notin","ni","prod","sum","minus","lowast","radic","prop","infin","ang","and","or","cap","cup","int","there4","sim","cong","asymp","equiv","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","rt2","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","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","i16","BufferBigIntNotDefined","objectToString","POWERS_OF_TEN","results","log10","al","bl","bStr","runHi","pivotIndex","hint","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","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","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","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","only","__u","__R","__O","delete","revealOrder","persist","isPropagationStopped","isDefaultPrevented","nativeEvent","class","multiple","defaultValue","$$typeof","ReactCurrentDispatcher","readContext","performance","useState","useReducer","useEffect","useLayoutEffect","useRef","useImperativeHandle","useMemo","useCallback","useContext","useDebugValue","Children","hydrate","unmountComponentAtNode","createPortal","createContext","createFactory","cn","createRef","Fragment","isValidElement","findDOMNode","PureComponent","memo","forwardRef","unstable_batchedUpdates","StrictMode","Suspense","SuspenseList","lazy","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","querySelector","prepend","repo","repoId","categoryId","reactionsEnabled","emitMetadata","inputPosition","searchParams","URLSearchParams","localStorage","getItem","setItem","replaceState","removeItem","giscus","resizeHeight","scrolling","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","fn","_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","dataView","responseType","setRequestHeader","response","onerror","safeXhrSend","decodeAudioData","arraybuffer","loadSound","setupAudioContext","AudioContext","webkitAudioContext","iOS","appVersion","safari","HowlerGlobal","Howler","Howl","Sound","_orientation","stereo","pan","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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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,Q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,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,sBAEQA,SAAS,cAAe,CAChC,gCACA,gCACA,8BACA,kCACA,4CACA,iCACA,kCACA,kCACA,gCACA,iCACA,iFChhBDlhB,iBAAwB,aAAc,CAAEtM,OAAO,wBAC1BoS,aAAqBA,QAAgBA,uBAA+BA,uBAA+BA,uBAA+BA,uBAA+BA,sBAAyB,QAChNqb,EAAShe,0BACgB,CAC3Bu2B,WAAW,EACXC,SAAS,EACTC,aAAa,EACbC,sBAAsB,EACtBC,WAAW,EACXC,WAAW,EACXC,cAAc,EACdC,aAAa,EACbC,iBAAkB,EAClBC,cAAe,EACfC,eAAgB,IAChBC,WAAY,yDAEe,CAC3BjjC,KAAM,sBACNkjC,0BACAC,uBAAwB,EACxBC,UAAW,GACXC,wBAAwB,EACxBC,MAAO,CACHC,eAAgB,EAChBC,uBACAC,uBAAuB,EACvBC,uBAAuB,EACvBC,gBAAiB,EACjBC,cAAe,EACfC,OAAQ,IACRC,SAAU,CACNC,SAAU,EACVC,QAAS,EACTC,UAAW,GACXC,SAAU,KAEdC,UAAW,CACPp/B,WACAgf,KAAM,EACN9Z,OAAQ,GAEZm6B,aAAc,CACVr/B,WACAgf,KAAM,EACN9Z,OAAQ,IAGhBo6B,cAAe,CACXha,KAAM,mBAEVia,cAAe,CACXja,KAAM,kBACNC,WAAY,CACRjE,MAAO,oCAIQxR,EAASO,SAC1B4U,EAAaD,EAAOE,WAAWpoB,UAAK,EAAWuT,GAC/C8U,EAAYH,EAAOI,UAAUtoB,UAAK,EAAWgT,KAC3CiV,SAAS,iBAAmBC,EAAOva,QAASua,EAAOK,YAAY,CACnEC,KAAML,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,WAC1DgV,cAAgBP,EAAOQ,QAASR,EAAOS,SAASR,IAAcA,IAAc,CAAE/X,WAAY,CAAEkD,UAAW,kBAAmBvK,OAAQ,CAAEgD,GAAI,CAAC,MAAO,CAAE7U,KAAM,eACzJ,CAAEoB,QAAS,gBAAkB,CAC5BoJ,QAAS,KAAO,CACZ8mB,KAAM,yBAGNP,SAAS,iBAAmBC,EAAOva,QAASua,EAAOK,YAAY,CACnEC,KAAML,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,WAC1DgV,cAAgBP,EAAOQ,QAASR,EAAOS,SAASR,IAAcA,OAC/D,CAAE7vB,QAAS,gBAAkB,CAC5BoJ,QAAS,KAAO,CACZ8mB,KAAM,kBACNC,WAAY,CACRjE,MAAS,YAIbyD,SAAS,eAAiBC,EAAOva,QAASua,EAAOpY,aAAcoY,EAAOpX,YAAY,CAAEN,SAAS,IAAS,CAAEpC,UAAW,EAAGC,UAAW,IAAM,CAC3I3M,QAAS,IAAM,CAAC,EAAG,EAAG,cAETwM,MAAega,EAAOtY,YAAY,kBACH,EAAS1B,EAAO0a,YAAc,GAAK,CAAC,CACxEtxB,KAAM,SACNyL,QAAUmlB,EAAOpX,YAAY5C,GAC7B2B,OAAS/T,QAAYyM,EAAIiC,EAAIC,cAAiB,IAAN3O,EAAkB,EAA+G,UAAtC,UAAxC,UAAXA,EAAEqS,WAAwB,IAAP5F,EAAgBA,EAAKzM,EAAEkF,WAAwB,IAAPwJ,EAAgBA,EAAK1O,EAAEhG,SAAsB,IAAP2U,EAAgBA,EAAK,KAE9M,CACInT,KAAM,SACN8X,YACArM,QAAUmlB,EAAOK,YAAY,CACzBpa,kBAA6C,EAASD,EAAO2a,WAAcX,EAAOpX,YAAY5C,MAAcga,EAAOQ,QAASR,EAAOpX,YAAY5C,IAC/IlN,kBAA6C,EAASkN,EAAO2a,WAAcX,EAAOpX,YAAY5C,MAAcga,EAAOQ,QAASR,EAAOpX,YAAY5C,KAChJ,CAAE5V,QAAS,UACduX,OAAS/T,IAAO,CACZqS,IAAkB,iBAANrS,EAAiBA,OAAU,IAANA,EAAkB,EAAIA,EAAEhG,EACzDkL,IAAkB,iBAANlF,EAAiBA,OAAU,IAANA,EAAkB,EAAIA,EAAEhG,sBAGrB,EAASoY,EAAO4a,eAAiB,CAAC,CACtExxB,KAAM,WACNyL,QAAUmlB,EAAOK,YAAY,CACzBjxB,KAAM6wB,EAAW,CAAE/U,KAAM,CAAC,wBAC1Btd,KAAOoyB,EAAOpX,YAAY,CAAEN,SAAS,EAAMrC,IAAK,IAChD7R,KAAO4rB,EAAOpX,YAAY,CAAE3C,IAAK,EAAGnN,IAAK,KAC1C,CAAE1I,QAAS,UACdoI,MAAQ5E,QAAY,IAANA,GAA8B,uBAAXA,EAAExE,KACnCuY,OAAS/T,QACDyM,EAAIiC,QACA,CACJlT,KAAM,qBACNxB,EAAgB,iBAANgG,EAAiBA,OAAU,IAANA,EAAkB,EAAoE,UAAxC,UAAXA,EAAEqS,WAAwB,IAAP5F,EAAgBA,EAAKzM,EAAEkF,WAAwB,IAAPwJ,EAAgBA,EAAK,EAClJlO,EAAG,OAGV,IACV,CAAEysB,cAAe,uBACE7a,MAAega,EAAOtY,YAAY,CACpD,CACItY,KAAM,SACNyL,QAAUmlB,EAAOpX,YAAY,CAAEN,SAAS,EAAMrC,IAAKD,MAAAA,OAAuC,EAASA,EAAOC,IAAKnN,IAAKkN,MAAAA,OAAuC,EAASA,EAAOlN,MAC3K6O,UAAa/T,EAAErD,MAEnB,CACInB,KAAM,SACNyL,QAAUmlB,EAAOK,YAAY,CACzB9vB,QAAUyvB,EAAOpX,YAAY,CAAEN,SAAS,EAAMrC,IAAKD,MAAAA,OAAuC,EAASA,EAAOC,IAAKnN,IAAKkN,MAAAA,OAAuC,EAASA,EAAOlN,MAC3K0hC,UAAYxa,EAAOpX,YAAY,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAKkN,MAAAA,OAAuC,EAASA,EAAOy0B,cAExH9yB,WAAc,CACVpX,KAAMqD,EACN4mC,OAAQ,MAGjB,CAAEpqC,QAAS,iCACW,CACrB0wB,wBAAyB,CACrBC,SAAWf,EAAOpY,UAAUuY,EAAU,eAE1Ca,iCAAkC,CAC9BC,MAAOhB,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,WAC3D2V,cAAgBlB,EAAOS,SAASR,IAAcA,IAAc,CAAE/X,WAAY,CAAEkD,UAAW,kBAAmBvK,OAAQ,CAAEgD,GAAI,CAAC,MAAO,CAAE7U,KAAM,eAE5ImyB,qCAAsC,CAClCC,UAAWjB,EAAU,4BAEzBkB,8BAA+B,CAC3BC,OAAQrB,EAAW,CAAE/U,KAAM,kBAC3BkW,UAAWjB,EAAU,qBAEzBoB,0BAA2B,CACvBD,OAAQrB,EAAW,CAAE/U,KAAM,kBAC3BsW,UAAYxB,EAAOS,SAASR,EAAW,CAAE7U,UAAW,iBAAoBzG,EAAQ8c,OAAO,CAAEf,YAAY,MAEzGgB,qBAAsB,CAClBC,KAAMxB,EAAU,cAEpByB,6BAA8B,CAC1BC,WAAa7B,EAAOQ,QAASR,EAAO8B,iBAExCC,2BAA4B,CACxBC,WAAahC,EAAOQ,QAASR,EAAOpX,YAAY,CAAEN,SAAS,KAC3D2Z,WAAajC,EAAOQ,QAASR,EAAOpX,YAAY,CAAEN,SAAS,KAC3D4Z,WAAalC,EAAOQ,QAASR,EAAOpX,YAAY,CAAEN,SAAS,KAC3D8Y,UAAWjB,EAAU,uBAEzBgC,uBAAwB,CACpBf,UAAWjB,EAAU,mBAEzBiC,0BAA2B,CACvBC,UAAYrC,EAAOpX,YAAY,CAAE3C,IAAK,EAAGnN,IAAK,KAElDwpB,uCAAwC,CACpCD,UAAYrC,EAAOpX,YAAY,CAAE3C,IAAK,EAAGnN,IAAK,IAC9CypB,sBAAwBvC,EAAOpX,eAEnC4Z,sBAAuB,CACnBvsB,KAAMgqB,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,iBAE9DkX,wBAAyB,CACrBC,YAAazC,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,iBACjEoX,WAAa3C,EAAOpY,aAAcoY,EAAOpX,YAAY,CAAE3C,IAAK,EAAGnN,IAAK,MAExE8pB,uBAAwB,CACpBrwB,SAAWoS,EAAQ8c,SACnBoB,UAAY7C,EAAOQ,QAASR,EAAOpX,gBAEvCka,0BAA2B,CACvBC,WAAa/C,EAAOQ,QAASR,EAAO8B,gBACpCkB,cAAgBhD,EAAOQ,QAASR,EAAO8B,yCAGfjnB,MAAamlB,EAAO0a,gBAAgBza,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,qBAAwB1Q,EAAM,CAClJ8/B,sBAAuBh2B,EAAQi2B,qBAC/BC,uBAAwB,CACpB5kC,KAAM,uBACNsiC,WAAW,EACXC,SAAS,EACTsC,QAAQ,EACRrC,aAAa,EACbC,sBAAsB,EACtBC,WAAW,EACXC,WAAW,EACXC,cAAc,EACdC,aAAa,EACbE,cAAe,GACf+B,WAAY,KACZ9B,eAAgB,IAChBlT,QAAS,uBACTmT,WAAY,+BAEhB8B,oBAAqB,CACjB/kC,KAAM,oBACNsiC,WAAW,EACXC,SAAS,EACTsC,QAAQ,EACRrC,aAAa,EACbC,sBAAsB,EACtBC,WAAW,EACXC,WAAW,EACXC,cAAc,EACdC,aAAa,EACbE,cAAe,EACf+B,WAAY,IACZ9B,eAAgB,IAChBlT,QAAS,oBACTmT,WAAY,qDAGYr+B,MAAamlB,EAAO0a,gBAAgBza,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,8BAAiC1Q,EAAM,CAC3J8/B,sBAAuBh2B,EAAQs2B,qBAC/BC,mBAAoB,CAChBjlC,KAAM,mBACNkjC,sBAAuB,EACvBC,uBAAwB,EACxBC,UAAW,GACXC,wBAAwB,EACxBC,MAAO,CACHC,eAAgB,EAChBC,eAAgB,WAChBC,uBAAuB,EACvBC,uBAAuB,EACvBC,gBAAiB,EACjBC,cAAe,EACfC,OAAQ,IACRC,SAAU,CACNC,SAAU,EACVC,QAAS,EACTC,UAAW,GACXC,SAAU,IAEdC,UAAW,CACPp/B,OAAQ,IACRgf,KAAM,EACN9Z,OAAQ,GAEZm6B,aAAc,CACVr/B,OAAQ,IACRgf,KAAM,EACN9Z,YAGRo6B,cAAe,CACXha,KAAM,wBAEVia,cAAe,CACXja,KAAM,iBACNC,WAAY,CACRjE,MAAO,OAInB6e,gBAAiB,CACbllC,KAAM,gBACNkjC,0BACAC,2BACAC,UAAW,EACXC,wBAAwB,EACxBC,MAAO,CACHC,eAAgB,EAChBC,eAAgB,EAChBC,uBAAuB,EACvBC,uBAAuB,EACvByB,uBAAuB,EACvBxB,gBAAiB,EACjBC,cAAe,EACfC,OAAQ,IACRC,SAAU,CACNC,SAAU,EACVC,QAAS,EACTC,UAAW,GACXC,SAAU,KAEdC,UAAW,CACPp/B,YACAgf,KAAM,GACN9Z,YAEJm6B,aAAc,CACVr/B,WACAgf,KAAM,EACN9Z,OAAQ,IAGhBo6B,cAAe,CACXha,KAAM,uBAEVia,cAAe,CACXja,KAAM,kBAGd+a,sBAAuB,CACnBplC,KAAM,sBACNkjC,0BACAC,uBAAwB,EACxBC,UAAW,GACXC,wBAAwB,EACxBC,MAAO,CACHC,eAAgB,EAChBC,uBACAC,uBAAuB,EACvBC,uBAAuB,EACvB2B,WAAW,EACX1B,gBAAiB,EACjBC,cAAe,EACfC,OAAQ,IACRC,SAAU,CACNC,SAAU,EACVC,QAAS,EACTC,UAAW,GACXC,SAAU,KAEdC,UAAW,CACPp/B,WACAgf,KAAM,EACN9Z,OAAQ,GAEZm6B,aAAc,CACVr/B,WACAgf,KAAM,EACN9Z,OAAQ,IAGhBo6B,cAAe,CACXha,KAAM,mBAEVia,cAAe,CACXja,KAAM,kBACNC,WAAY,CACRjE,MAAO,OAInBif,kBAAmB,CACftlC,KAAM,kBACNkjC,sBAAuB,EACvBC,uBAAwB,EACxBC,UAAW,GACXC,wBAAwB,EACxBC,MAAO,CACHC,eAAgB,EAChBC,eAAgB,WAChBC,uBAAuB,EACvBC,uBAAuB,EACvBC,gBAAiB,EACjBC,cAAe,EACfC,OAAQ,IACRC,SAAU,CACNC,SAAU,EACVC,QAAS,EACTC,UAAW,GACXC,SAAU,IAEdC,UAAW,CACPp/B,OAAQ,IACRgf,KAAM,EACN9Z,OAAQ,GAEZm6B,aAAc,CACVr/B,OAAQ,IACRgf,KAAM,EACN9Z,YAGRo6B,cAAe,CACXha,KAAM,mBAEVia,cAAe,CACXja,KAAM,kBACNC,WAAY,CACRjE,MAAO,OAInBkf,6BAA8B,CAC1BvlC,KAAM,6BACNkjC,0BACAC,2BACAC,UAAW,EACXC,wBAAwB,EACxBC,MAAO,CACHC,eAAgB,EAChBC,eAAgB,EAChBC,uBAAuB,EACvBC,uBAAuB,EACvByB,uBAAuB,EACvBxB,gBAAiB,EACjBC,cAAe,EACfC,OAAQ,IACRC,SAAU,CACNC,SAAU,EACVC,QAAS,EACTC,UAAW,GACXC,SAAU,KAEdC,UAAW,CACPp/B,YACAgf,KAAM,GACN9Z,YAEJm6B,aAAc,CACVr/B,WACAgf,KAAM,EACN9Z,OAAQ,IAGhBo6B,cAAe,CACXha,KAAM,mBAEVia,cAAe,CACXja,KAAM,kBACNC,WAAY,CACRjE,MAAO,eClb3B/f,OAAOsC,eAAegoB,GAAS,aAAc,CAAEt0B,OAAO,mCACrB,EACjC,MAAMu0B,GAAS9kB,GACT+kB,GAAW9kB,6BACjB,SAAgC6I,EAASO,SAC/B8U,EAAY2G,GAAO1G,UAAUtoB,UAAK,EAAWgT,GAC7CmV,EAAa6G,GAAO5G,WAAWpoB,UAAK,EAAWuT,GAC/CowB,KAAsB3U,GAAOpf,YAAY,CAC3C,CACItY,KAAM,SACNyL,QAAUisB,GAAOtG,KAAKL,EAAU,qBAChCxY,eAAmBtH,EAAIiC,SAAoF,UAAnD,UAAV1O,EAAE,UAAuB,IAAPyM,OAAgB,EAASA,EAAG+gB,iBAA8B,IAAP9e,EAAgBA,EAAM,KAE7I,CACIlT,KAAM,OACNyL,QAAUisB,GAAOlf,UAAUuY,EAAU,cACrCxY,UAAa,CAAC,CACNqmB,UAAW,8BACX5M,UAAWxtB,MAGxB,CAAExD,QAAS,iBACN2vB,SAAS,iBAAmB+G,GAAOrhB,QAASqhB,GAAOzG,YAAY,CACnE4G,WAAaH,GAAOtG,QAASsG,GAAOrhB,QAASqhB,GAAOzG,YAAY,CAC5D6G,QAAUJ,GAAOzG,YAAY,CACzB8C,KAAMlD,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,UAC1DgY,OAASuD,GAAOtG,KAAKP,EAAW,CAAE7U,UAAW,MAAOvK,OAAQ,CAAE4K,SAAU,CAAE7G,SAAU,iBAAkBf,GAAI,CAAC,MAAO,CAAE7U,KAAM,gBAE9Hm4B,MAAOhH,EAAU,kBACjBiH,YAAajH,EAAU,kBACvBkH,cAAgBP,GAAOtG,KAAKP,KAC5BqH,SAAWR,GAAOtG,KAAKP,EAAW,CAAE/U,KAAM,CAAC,OAAQ,YAAa,WAChEqc,cAAgBT,GAAOtG,QAASsG,GAAOhF,gBACvC0F,oBAAsBV,GAAOtG,QAASsG,GAAOhF,gBAC7C2F,UAAYX,GAAOtG,QAASsG,GAAOhF,kBACnC,CACAtoB,QAAS,KAAO,CACZ0tB,KAAM,CACF/D,KAAM,mBAEVgE,MAAO,GACPC,YAAa,QAGrBM,UAAYZ,GAAOtG,KAAKP,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,mBAC5Eoc,YAAcb,GAAOrG,SAASR,IAAcE,EAAU,yBACtDyH,gBAAkBd,GAAOtG,QAASsG,GAAOlf,aAAckf,GAAOlf,UAAUqY,OAExE4H,WAAaf,GAAOtG,QAASsG,GAAOzG,YAAY,CAC5CyH,YAAchB,GAAOtG,KAAKP,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,gBAC9Ewc,QAAUjB,GAAOtG,QAASsG,GAAOlf,UAAUqY,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,mBAC/FsZ,WAAaiC,GAAOtG,QAASsG,GAAOlf,UAAUqY,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,eAClGyc,cAAgBlB,GAAOtG,QAASsG,GAAOle,YAAY,CAAEN,SAAS,SAEnE,CAAElY,QAAS,gBAAkB,CAC5BoJ,QAAS,KAAO,CACZmuB,SAAU,CACNM,YAAa,CACTC,QAAS,8BAKjBnI,SAAS,0BAA4B+G,GAAOzG,YAAY,CAC5D6H,QAASjI,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAMF,EAAY/K,IAAI,0BAC7E6nB,cAAgBrB,GAAOtG,QAASsG,GAAOzG,YAAY,CAC/CwF,UAAYiB,GAAOrhB,KAAKg2B,EAAiB,CACrC52B,WAAsD,yBAArCjL,EAAKsF,MAAMlQ,KAAK,WAAWsR,SAE/CwmB,GAAO1d,QAAS,CAAC,MAAO,CAAEpa,KAAM,aAChC83B,GAAOzd,MAAO,CACX+e,+BAAgC,CAC5BnH,SAAW6F,GAAOtG,KAAKP,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,YAC3E8c,mBAAqBvB,GAAOtG,QAASsG,GAAOle,YAAY,CAAEN,SAAS,KACnE6a,QAAU2D,GAAOtG,KAAKL,EAAU,oBAEpCmI,yBAA0B,CACtBZ,OAAQ+T,EACRlT,QAASkT,EACTjT,MAAOiT,GAEXhT,0BAA2B,CACvBnF,UAAYwD,GAAOtG,KAAKP,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,cAEhFmd,8BAA+B,CAC3B5mB,QAAUglB,GAAOtG,KAAKP,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,iBAC1Eod,MAAQ7B,GAAOtG,KAAKP,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,kBAE5Eqd,gCAAiC,CAC7BC,WAAa/B,GAAOtG,QAASsG,GAAOlf,UAAU6zB,KAElD3S,6BAA8B,CAC1BxM,SAAWwK,GAAOtG,QAASuG,GAAStF,WAExCsH,yBAA0B,CACtB5F,QAAU2D,GAAOtG,KAAKL,EAAU,oBAEpC6I,kCAAmC,CAC/BC,SAAUwS,EACVvS,OAAQuS,GAEZtS,4BAA6B,CACzBpD,WAAae,GAAOtG,QAASsG,GAAOrG,SAASR,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,gBAAmB4U,EAAU,8BAElIiJ,wBAAyB,CACrBnI,SAAW6F,GAAOtG,KAAKP,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,YAC3EhX,SAAWuyB,GAAOtG,QAASsG,GAAOrG,SAASR,IAAcA,IAAc,CAAE/X,WAAY,CAAEkD,UAAW,kBAAmBvK,OAAQ,CAAEgD,GAAI,CAAC,MAAO,CAAE7U,KAAM,gBAEvJq6B,2BAA4B,CACxB5F,UAAYqD,GAAOtG,QAASuG,GAAStF,UACrC0B,QAAU2D,GAAOtG,KAAKL,EAAU,oBAEpCmJ,+BAAgC,CAC5BC,UAAYzC,GAAOtG,KAAKL,EAAU,sBAEtCqJ,iCAAkC,CAC9BlI,OAAQma,EACRhS,gBAAkB3C,GAAOtG,KAAKL,EAAU,6BAE5CuJ,0BAA2B,CACvBvG,QAAU2D,GAAOtG,KAAKL,EAAU,oBAEpCwJ,+BAAgC,CAC5BrI,OAAQma,EACRtY,QAAU2D,GAAOtG,KAAKL,EAAU,oBAEpCyJ,gCAAiC,CAC7BxvB,YAAc0sB,GAAOtG,KAAKL,EAAU,wBAExC0J,8BAA+B,CAC3BC,SAAWhD,GAAOtG,QAASsG,GAAOzG,YAAY,CAC1C0J,SAAWjD,GAAOtG,QAASuG,GAAStF,UACpCuI,YAAclD,GAAOtG,QAASuG,GAAStF,UACvCwI,QAAUnD,GAAOtG,QAASuG,GAAStF,aAEvCyI,SAAWpD,GAAOtG,QAASsG,GAAOlf,UAAUuY,EAAU,qBAE1DgK,oCAAqC,CACjCC,SAAWtD,GAAOtG,QAASuG,GAAStF,UACpC4B,cAAgByD,GAAOtG,QAASuG,GAAStF,UACzC0B,QAAU2D,GAAOtG,KAAKL,EAAU,oBAEpCub,+BAAgC,CAC5BvY,QAAU2D,GAAOtG,KAAKL,EAAU,mBAChC/lB,YAAc0sB,GAAOtG,KAAKL,EAAU,wBAExCkK,+BAAgC,CAC5BC,uBAAyBxD,GAAOtG,QAASuG,GAAStF,UAClDoH,WAAa/B,GAAOtG,QAASsG,GAAOlf,UAAU6zB,KAElDlR,uBAAwB,CACpBjF,YAAcwB,GAAOtG,QAASuG,GAAStF,UACvCuD,YAAc8B,GAAOtG,QAASuG,GAAStF,WAE3C+I,qBAAsB,CAClBpwB,YAAc0sB,GAAOtG,KAAKL,EAAU,wBAExCsK,0BAA2B,CACvBnF,YAAcwB,GAAOtG,QAASuG,GAAStF,UACvCiJ,WAAa5D,GAAOtG,KAAKL,EAAU,uBACnCwK,UAAY7D,GAAOtG,KAAKL,EAAU,wBAEtCyK,yBAA0B,CACtB3J,SAAW6F,GAAOtG,KAAKP,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,YAC3EhX,SAAWuyB,GAAOtG,QAASsG,GAAOrG,SAASR,IAAcA,IAAc,CAAE/X,WAAY,CAAEkD,UAAW,kBAAmBvK,OAAQ,CAAEgD,GAAI,CAAC,MAAO,CAAE7U,KAAM,eACnJm0B,QAAU2D,GAAOtG,KAAKL,EAAU,mBAChC/lB,YAAc0sB,GAAOtG,KAAKL,EAAU,wBAExCwb,4CAA6C,CACzCC,WAAY3b,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,kBAEpEsf,+BAAgC,CAC5BtB,UAAYzC,GAAOtG,KAAKL,EAAU,qBAClCmB,OAAQma,GAEZI,0CAA2C,CACvC1Y,QAAU2D,GAAOtG,KAAKL,EAAU,mBAChCmB,OAAQma,GAEZ3Q,iCAAkC,CAC9BxJ,OAAQma,EACRhS,gBAAkB3C,GAAOtG,KAAKL,EAAU,6BAE5C4K,4BAA6B,CACzBC,OAAQ/K,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,cAEhE2f,yBAA0B,CACtB9wB,YAAc0sB,GAAOtG,KAAKL,EAAU,wBAExCgL,6BAA8B,CAC1BlK,SAAW6F,GAAOtG,KAAKP,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,aAE/E6f,0BAA2B,CACvBjI,QAAU2D,GAAOtG,KAAKL,EAAU,oBAEpCkL,4BAA6B,CACzB/J,OAAQma,GAEZnQ,wBAAyB,CACrBhK,OAAQma,GAEZK,uBAAwB,CACpBC,WAAYN,EACZO,QAASP,EACTQ,mBAAqBnV,GAAOtG,QAASuG,GAAStF,OAAO,CAAEnZ,SAAS,MAEpE4zB,4CAA6C,CACzC5a,OAAQma,EACRtY,QAAU2D,GAAOtG,KAAKL,EAAU,oBAEpCoL,2BAA4B,CACxBjG,YAAcwB,GAAOtG,QAASuG,GAAStF,WAE3C+J,uBAAwB,CACpBrI,QAAU2D,GAAOtG,KAAKL,EAAU,oBAEpCsL,2BAA4B,CACxBxC,SAAUwS,EACVtY,QAAU2D,GAAOtG,KAAKL,EAAU,oBAEpCuL,4BAA6B,CACzBtxB,SAAU+lB,EAAU,yBAG7B,CAAE/vB,QAAS,gBACf,CAAEwU,SAAU,YAAaxU,QAAS,gCCjOzCmM,OAAOsC,eAAe8sB,GAAS,aAAc,CAAEp5B,OAAO,6BAC3B,EAC3B,MAAMu0B,GAAS9kB,uBACf,SAA0B8I,EAASO,MACN+U,UAAUtoB,UAAK,EAAWgT,SAC7CmV,EAAa6G,GAAO5G,WAAWpoB,UAAK,EAAWuT,GAC/CugB,EAAM,CAAC78B,EAAQkX,EAAKnN,OAAYguB,GAAOlf,aAAckf,GAAOle,YAAY,CAAE3C,IAAAA,EAAKnN,IAAAA,IAAQ,CAAEoN,UAAWnX,EAAQoX,UAAWpX,IACvH88B,KAAc/E,GAAOpf,YAAY,CACnC,CACItY,KAAM,QACNoJ,MAAQ5E,GAAmB,iBAANA,GAAkBA,EAAEiM,WAAW,KACpDhF,KAAMolB,IACNtY,OAAS/T,GAAmB,iBAANA,EAAiB,IAAIA,IAAM,MAErD,CACIxE,KAAM,YACNoJ,MAAQ5E,GAAmB,iBAANA,EACrBiH,KAAMolB,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,cAC1D5D,OAAS/T,GAAmB,iBAANA,EAAiBA,EAAEX,QAAQ,KAAM,IAAM,KAElE,CAAE4tB,cAAe,cACZd,SAAS,WAAa+G,GAAOrhB,QAASqhB,GAAOzG,YAAY,CAC7DqH,UAAYZ,GAAOtG,KAAKP,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,aAC5EugB,oBAAsBhF,GAAOtG,QAASsG,GAAOhF,gBAC7CiK,aAAejF,GAAOtG,KAAKP,EAAW,CAAE/U,KAAM,eAC9C8gB,YAAclF,GAAOtG,QAASsG,GAAOrG,SAASR,IAAc4L,IAC5DI,YAAcnF,GAAOtG,QAASsG,GAAOlf,aAAckf,GAAOzG,YAAY,CAClEve,KAAM8pB,EAAI,MAAQ,IAClBjD,GAAIiD,EAAI,MAAQ,IAChBM,YAAcpF,GAAOtG,QAASsG,GAAOzG,YAAY,CAC7CpO,OAAQ2Z,EAAI,GACZO,KAAMlM,EAAW,CAAE/U,KAAM,SACzBkhB,SAAWtF,GAAOuF,YAAY,CAAE1jB,OAAQ,WAAa,EAAG,KAAM,MAC9D2jB,WAAaxF,GAAOtG,QAASsG,GAAOhF,mBAExCyK,SAAWzF,GAAOtG,QAASsG,GAAOhF,gBAClC0K,SAAW1F,GAAOrG,SAASR,EAAW,CAAE/U,KAAM,iBAAoB4b,GAAOzG,YAAY,CACjFoM,QAASZ,EACTa,MAAQ5F,GAAOtG,KAAKoL,EAAI,IACxBe,YAAc7F,GAAOtG,KAAKP,EAAW,CAAE/U,KAAM,eAC7CghB,YAAcpF,GAAOtG,QAASsG,GAAOle,YAAY,CAAEN,SAAS,KAC5DskB,aAAe9F,GAAOtG,QAASsG,GAAOle,YAAY,CAAEN,SAAS,SAElE,CAAElY,QAAS,oBACd62B,WAAaH,GAAOtG,QAASsG,GAAOrG,SAASR,EAAW,CAAE/U,KAAM,wBAA2B4b,GAAOzG,YAAY,CAC1G6L,SAAUN,EAAI,GACdiB,YAAajB,EAAI,MAAQ,IACzBkB,MAAOlB,EAAI,KAAO,IACnB,CAAEx7B,QAAS,qBACd28B,aAAejG,GAAOtG,QAASsG,GAAOlf,aAAckf,GAAOzG,YAAY,CACnEe,aAAe0F,GAAOrG,SAASR,EAAW,CAAE/U,KAAM,6BAAgC4b,GAAOle,eACzF9I,MAAOmgB,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,aAC5D,CAAEnb,QAAS,sBACf,CAAEA,QAAS,UAAY,CACtBoJ,QAAS,KAAO,CACZkuB,OAAQ,2BACRsE,SAAU,CACNgB,OAAQ,0CCzDxBzwB,OAAOsC,eAAeouB,GAAS,aAAc,CAAE16B,OAAO,uCACjB,EACrC,MAAMu0B,GAAS9kB,iCACf,SAAoC8I,EAASO,SACnC8U,EAAY2G,GAAO1G,UAAUtoB,UAAK,EAAWgT,GAC7CmV,EAAa6G,GAAO5G,WAAWpoB,UAAK,EAAWuT,KAC7C0U,SAAS,sBAAwB+G,GAAOrhB,QAASqhB,GAAOpf,YAAY,CACxE,CACItY,KAAM,WACNoJ,MAAQ5E,QAAqB,IAAfA,EAAEs5B,SAChBryB,QAAUisB,GAAOzG,YAAY,CACzB6M,YAAcpG,GAAOrG,SAASR,IAAcE,EAAU,oBAE1DxY,OAAS/T,IAAO,CAAEs5B,SAAU,CAAE,GAAI,OAEtC,CACI99B,KAAM,YACNoJ,MAAQ5E,QAAsB,IAAhBA,EAAEu5B,UAChBtyB,QAAUisB,GAAOzG,YAAY,CACzB8M,aAAerG,GAAOlf,aAAckf,GAAOzG,YAAY,CACnD+M,QAAUtG,GAAOtG,KAAKL,EAAU,wBAChCnM,MAAOmM,EAAU,sBAGzBxY,OAAS/T,IAAO,CAAEu5B,UAAW,CAAEC,KAAM,GAAIpZ,MAAO,QAErD,CAAE5jB,QAAS,qBAAuB,CACjCoJ,QAAS,KAAO,CACZ0zB,SAAU,CACN,GAAI,CACAptB,MAAO,qCAKjButB,EAAkB,CACpBvtB,MAAOmgB,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,YAC3DjZ,KAAOw0B,GAAOtG,QAASsG,GAAOuF,YAAY,CAAE/jB,SAAS,EAAMK,OAAQ,CAAC,EAAG,GAAI,IAAK,QAChFvW,KAAO00B,GAAOtG,QAASsG,GAAOuF,YAAY,CAAE/jB,SAAS,EAAMK,OAAQ,CAAC,EAAG,GAAI,IAAK,QAChF2kB,UAAYxG,GAAOtG,QAASsG,GAAOhF,mBAE/B/B,SAAS,mBAAqB+G,GAAOpf,YAAY,CACrD,CACItY,KAAM,SACNyL,QAAUisB,GAAOzG,YAAYgN,GAC7B1lB,OAAS/T,GAAM1B,MAAMC,QAAQyB,IAAMA,EAAE7E,OAAS,EAAI6E,EAAE,GAAM,IAE9D,CACIxE,KAAM,OACNyL,QAAUisB,GAAOlf,aAAckf,GAAOzG,YAAY3a,OAC3C2nB,GAD2C,CAE9CE,UAAYzG,GAAOtG,QAASsG,GAAOle,YAAY,CAAEN,SAAS,EAAMrC,IAAK,OACtE,CAAE7V,QAAS,mBACduX,OAAS/T,GAAM,CAAC4R,GAAE+nB,OAAQ,GAAM35B,MAErC,CAAExD,QAAS,qBACN2vB,SAAS,yBAA2B+G,GAAOpf,YAAY,CAC3D,CACItY,KAAM,SACN8X,YACA1O,MAAO,KAAM,EACbqC,QAAUisB,GAAOrG,SAASR,IAAcA,KACxCtY,OAAS/T,GAAmB,iBAANA,GAAkB1B,MAAMC,QAAQyB,MAAAA,OAA6B,EAASA,EAAE45B,KAAO55B,EAAE45B,GAAGz+B,OAAS,EAAI6E,EAAE45B,GAAG,GAAM,IAEtI,CACIp+B,KAAM,KACNoJ,MAAQ5E,GAAmB,iBAANA,QAAmE,kBAAnB,EAASA,EAAE45B,IAChF3yB,QAAUisB,GAAOzG,YAAY,CACzBmN,MAAQ1G,GAAOlf,UAAUuY,EAAU,0BAEvCxY,OAAS/T,IAAO,CAAE45B,GAAI,CAAC55B,MAAAA,EAA6BA,EAAI,QAE7D,CAAExD,QAAS,0BCxElBmM,OAAOsC,eAAe4uB,GAAS,aAAc,CAAEl7B,OAAO,8BAC1B,EAC5B,MAAMm7B,GAAU1rB,GACV2rB,GAAoB1rB,wBAC1B,SAA2B6I,EAASO,MAC5BsiB,GAAkBC,4BAA4B9iB,EAASO,MACvDqiB,GAAQG,kBAAkB/iB,EAASO,cCN3C9O,OAAOsC,eAAeivB,GAAS,aAAc,CAAEv7B,OAAO,iCACvB,EAC/B,MAAMu0B,GAAS9kB,GACT+kB,GAAW9kB,2BACjB,SAA8B6I,EAASO,SAC7B8U,EAAY2G,GAAO1G,UAAUtoB,UAAK,EAAWgT,GAC7CmV,EAAa6G,GAAO5G,WAAWpoB,UAAK,EAAWuT,KAC7C0U,SAAS,eAAiB+G,GAAOiH,cAAc5N,EAAU,aAAc,CAAEU,cAAe,iBACxFd,SAAS,eAAiB+G,GAAOrhB,QAASqhB,GAAOzG,YAAY,CACjE2N,UAAW/N,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,0BAC9Dub,GAAO1d,QAAS,CAAC,CAAEpa,KAAM,eACzB83B,GAAOzd,MAAO0d,GAASkH,gBACzB,CAAErpB,SAAU,YAAaxU,QAAS,cAAgB,CACjDoJ,QAAS,KAAO,CACZw0B,UAAW,8BACX1M,OAAQ,uBCfpB/kB,OAAOsC,eAAes9B,GAAS,aAAc,CAAE5pC,OAAO,iCACvB,EAC/B,MAAMu0B,GAAS9kB,GACT+kB,GAAW9kB,2BACjB,SAA8B6I,EAASO,SAC7B8U,EAAY2G,GAAO1G,UAAUtoB,UAAK,EAAWgT,GAC7CmV,EAAa6G,GAAO5G,WAAWpoB,UAAK,EAAWuT,GAC/C+wB,EAAYvhC,MAAaisB,GAAOrhB,KAAK5K,EAAM,CAC7CgK,gBAA+C,IAA9BjL,EAAK5K,KAAK,UAAUsR,UAEjCyf,SAAS,eAAiB+G,GAAOrhB,QAASqhB,GAAOzG,YAAY,CACjEjxB,QAAU23B,GAASsV,sBAAsBlc,EAAU,mBACnDmc,aAAexV,GAAOzG,YAAY,CAC9BjxB,KAAM6wB,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,+BACzDub,GAAO1d,QAAS,CAAC,CAAEpa,KAAM,UACzB83B,GAAOzd,MAAO,CACXkzB,kBAAmB,CACflK,QAAUvL,GAAOle,YAAY,CAAEN,SAAS,IACxCk0B,YAAczV,GAAS0V,sBAAsBtc,EAAU,mBACvDuc,gBAAkB5V,GAAOzG,YAAY,CACjCjxB,KAAM6wB,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,4BACzDub,GAAO1d,QAAS,CAAC,CAAEpa,KAAM,UACzB83B,GAAOzd,MAAO,CACXszB,kBAAmB,CACf/Y,MAAO3D,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,sBAE/DqxB,wBAAyB,CACrBvK,QAAUvL,GAAOle,YAAY,CAAEN,SAAS,IACxCu0B,UAAY/V,GAAOtG,KAAKP,EAAW,CAAE/U,KAAM,CAAC,aAC5C4xB,eAAgBV,EAASjc,EAAU,0BACnC4c,kBAAmBX,EAASjc,EAAU,0BACtC6c,eAAgBZ,EAASjc,EAAU,0BACnC8c,gBAAiBb,EAASjc,EAAU,0BACpC+c,OAAQd,KAAatV,GAAOrhB,QAASqhB,GAAOlf,UAAUuY,EAAU,oBAAqB,CACjF3mB,QAAS,IAAM,CAAC,CACRoqB,MAAO,yBAIvBuZ,yBAA0B,CACtBrQ,SAAWhG,GAAOtG,QAASsG,GAAOle,YAAY,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,MAC5EokC,UAAYpW,GAAOlf,UAAUqY,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,uBAErFyvB,oBAAqB,CACjB3I,QAAUvL,GAAOle,YAAY,CAAEN,SAAS,KAE5C80B,4BAA6B,CACzB/K,QAAUvL,GAAOle,YAAY,CAAEN,SAAS,IACxC+0B,gBAAkBvW,GAAOtG,QAASsG,GAAOhF,gBACzCwb,2BAA6BxW,GAAOtG,QAASsG,GAAOhF,mBAG7D,CAAEld,SAAU,YAAaqF,sBAAsB,KAEtDszB,iBAAkB,CACdf,YAAc1V,GAAOzG,YAAY,CAC7BuD,SAAWkD,GAAOtG,KAAKP,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,sBAC3EiyB,SAAW1W,GAAOtG,QAASsG,GAAOhF,gBAClC2b,YAAc3W,GAAOtG,QAASsG,GAAOhF,gBACrC4b,UAAY5W,GAAOlf,UAAUuY,EAAU,oBACvCwd,WAAYxd,EAAU,6BAInC,CAAElW,sBAAsB,KAC5B,CAAErF,SAAU,OAAQxU,QAAS,cAAgB,CAC5CoJ,QAAS,WACC64B,EAAOt5B,KAAK2kB,MAAuB,WAAjB3kB,KAAK4mB,UAA2B,iBACjD,CACHvwB,KAAM,sBACNktC,UAAW,CACPltC,KAAM,kBACNijC,KAAAA,EACAqK,aAAc,CACVttC,KAAM,kBACNijC,KAAAA,EACAzO,MAAO,oBAEX4Y,SAAU,8BAKlBzc,SAAS,qBAAuB+G,GAAOrhB,QAASqhB,GAAOzG,YAAY,CACvEuD,MAAO3D,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,qBAC3DilB,cAAgB1J,GAAOzG,YAAY,CAC/Bud,YAAc9W,GAAOle,cACrBi1B,eAAiB/W,GAAOle,cACxBk1B,YAAchX,GAAOle,cACrBm1B,aAAejX,GAAOle,cACtB1I,UAAY4mB,GAAOle,iBAExB,CAAExY,QAAS,oBAAsB,CAChCoJ,QAAS,KAAO,CACZoqB,MAAO,mBACP4M,WAAY,CACRoN,SAAU,EACVC,YAAa,EACbC,SAAU,EACVC,UAAW,EACX79B,OAAQ,UAIZ6f,SAAS,2BAA6B+G,GAAOrhB,QAASqhB,GAAOzG,YAAY,CAC7E2d,eAAiBlX,GAAOle,YAAY,CAAEN,SAAS,IAC/C21B,cAAgBnX,GAAOlf,aAAckf,GAAOle,gBAC7C,CAAExY,QAAS,0BAA4B,CACtCoJ,QAAS,KAAO,CACZwkC,eACAC,WAAY,CAAC,EAAG,mBC9G5B1hC,OAAOsC,eAAeq/B,GAAS,aAAc,CAAE3rC,OAAO,qCACnB,EACnC,MAAMu0B,GAAS9kB,GACT+kB,GAAW9kB,+BACjB,SAAkC6I,EAASO,SACjC4U,EAAa6G,GAAO5G,WAAWpoB,UAAK,EAAWuT,KAC7C0U,SAAS,oBAAsB+G,GAAOrhB,QAASqhB,GAAOzG,YAAY,CACtEpqB,QAAU6wB,GAAOrhB,KAAKwa,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,kBAAmBI,cAAc,KAAW,CAClH9G,QAAUjL,GAASA,EAAK+J,WAAW5U,OAAS,IAEhDwpC,aAAezR,GAAOhF,eACtB0W,WAAa1R,GAAOhF,eACpB2W,eAAiB3R,GAAOhF,eACxB4W,wBAA0B5R,GAAOhF,eACjC6W,aAAe7R,GAAOhF,eACtB8W,aAAe9R,GAAOhF,eACtB+W,gBAAkB/R,GAAOhF,eACzBgX,eAAiBhS,GAAOhF,eACxBiX,oBAAsBjS,GAAOle,YAAY,CAAE3C,IAAK,KAASnN,IAAK,MAC9DkgC,iBAAmBlS,GAAOle,cAC1BmyB,cAAgBjU,GAAOtG,QAASsG,GAAOle,YAAY,CAAEN,SAAS,KAC9D2wB,kBAAoBnS,GAAOle,YAAY,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,MACrEitB,WAAae,GAAOtG,KAAKP,EAAW,CAAE/U,KAAM,CAAC,sBAAuB,uBAAwB,wBAC5FguB,WAAYjZ,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,iBACjE,CAAEnb,QAAS,mBAAqB,CAC/BoJ,QAAS,IAAMutB,GAAS6T,yCCzBhCr+B,OAAOsC,eAAeqvB,GAAS,aAAc,CAAE37B,OAAO,sGAC0E,oBACvG,IAAI2b,IAAI,CAC7B,CAAC,+BAAgC,CAAEigB,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,IAAIlgB,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,yBAA0B,IAC3B,CAAC,sBAAuB,IACxB,CAAC,uBAAwB,IACzB,CAAC,2BAA4B,IAC7B,CAAC,qBAAsB,IACvB,CAAC,qBAAsB,IACvB,CAAC,oBAAqB,IACtB,CAAC,4BAA6B,MC/ElC3R,OAAOsC,eAAewvB,GAAS,aAAc,CAAE97B,OAAO,iCACvB,EAC/B,MAAMu0B,GAAS9kB,GACTssB,GAAgBrsB,GAChB8kB,GAAW5kB,2BACjB,SAA8B2I,EAASO,SAC7B8U,EAAY2G,GAAO1G,UAAUtoB,UAAK,EAAWgT,GAC7CmV,EAAa6G,GAAO5G,WAAWpoB,UAAK,EAAWuT,GAC/C8c,EAAa,CACfA,cAAgBrB,GAAOtG,QAASsG,GAAOlf,UAAUuY,EAAU,qBAEzDoO,EAAyB/oB,GAC3BgpB,aAAe1H,GAAOtG,QAASsG,GAAOlf,UAAUuY,EAAU,oBACvDgI,cAEoBsG,EAAYC,EAAcC,SAC3C9nB,EAAQ,GACR+nB,EAAuBC,GAAoBxjB,EAC5C/K,IAAIouB,GACJtxB,gBACGiD,SACiD,UAAvBouB,EAAWnuB,IAAI5R,UAAuB,IAAP2R,EAAgBA,EAAK,IAC3DJ,UAAW4uB,EAAgBhmB,SAASvX,kBAEnDw9B,GAAWV,OAAEA,WAAQD,MAAeG,GAAcS,eAAgB,OACpEF,EAAkB,IAAIT,KAAWD,KACjCn/B,KAAK,CACPwJ,SAAeoB,EAAKoQ,WAAW1J,IAAI,IAAIwmB,GAAOvnB,KAAK,CAAC,YAAcuvB,EAClEj0B,KAAM8zB,EAAQC,EAAoBC,eAGpC7/B,KAAK,CAAEwJ,UAAY,EAAMqC,KAAM8zB,EAAQD,QAClC5H,GAAOxf,YAAYT,SAE5BmoB,EAAsBC,EAAkBX,GAAcY,eAAgB,0BAA+BjP,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM9Q,aAAgBvI,MAAQuI,EAAO,2BACxL00B,EAAqBF,EAAkBX,GAAcc,cAAe,yBAA8BnP,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM9Q,aAAgBvI,MAAQuI,EAAO,0BACrL40B,EAAyBJ,EAAkBX,GAAcgB,kBAAmB,oBAAyBrP,EAAW,CAAE/U,KAAMzQ,MACxH80B,EAAuBN,EAAkBX,GAAckB,gBAAiB,kBAAuBvP,EAAW,CAAE/U,KAAMzQ,QAChHslB,SAAS,gBAAkB+G,GAAOrhB,QAASqhB,GAAOzG,YAAY,CAClEjxB,QAAU03B,GAAOtG,KAAKP,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAMF,EAAY/K,IAAI,yBAC1FmvB,SAAW3I,GAAOtG,QAASsG,GAAOlf,aAAckf,GAAOrhB,QAASqhB,GAAOzG,YAAY7a,GAC/EkqB,SAAW3I,GAAStF,OAAO,CAAEb,eAAe,EAAMtY,SAAS,IAC3DqnB,eAAiB7I,GAAOtG,QAASuG,GAAStF,OAAO,CAAEnZ,SAAS,KAC5D7D,WAAaqiB,GAAOlf,UAAUuY,EAAU,gBACrCoO,GACJ,CAAE3pB,SAAU,OAAQxU,QAAS,cAAgB,CAC5CoJ,QAAS,KAAO,CACZk2B,MAAO,EACPjrB,QAAS,CAAC,CACFrV,KAAM,iBACN6G,KAAM,0BAItBu4B,aAAe1H,GAAOtG,QAASsG,GAAOlf,UAAUuY,EAAU,oBAC3D,CAAE/vB,QAAS,eAAiB,CAC3BoJ,QAAS,KAAO,CACZi2B,MAAO,CAAC,CACAC,MAAO,EACPjrB,QAAS,CAAC,CACFrV,KAAM,iBACN6G,KAAM,iCAKxB25B,EAAY,CACd/qB,gBACQxE,SACgC,UAAtBzG,EAAKsF,MAAMoB,aAA0B,IAAPD,OAAgB,EAASA,EAAGtR,QAAU,IAC1E,CAAC,yBAA0B,kBAAmB,sBAAsB8Z,SAASjP,EAAK5K,KAAK,QAAQsR,WAGvGyf,SAAS,gBAAkB+G,GAAOrhB,QAASqhB,GAAOzG,YAAY,CAClEjxB,KAAM6wB,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,0BAC1DgiB,UAAYzG,GAAOtG,QAASsG,GAAOrhB,QAASqhB,GAAOle,YAAY,CAAEN,SAAS,EAAMrC,IAAK,IAAM2pB,IAC3FC,WAAa/I,GAAOtG,QAASsG,GAAOrhB,QAASqhB,GAAOle,YAAY,CAAEN,SAAS,IAASsnB,KACnF9I,GAAO1d,QAAS,CAAC,CAAEpa,KAAM,UACzB83B,GAAOzd,MAAO,CACXymB,yBAA0BtqB,GACtBvW,YAAc63B,GAAOlf,UAAUuY,EAAU,gBACtCoO,GAEPwB,oBAAqBvqB,GACjBvP,KAAMgqB,KACHsO,GAEPyB,kBAAmBxqB,GACfvW,YAAc63B,GAAOlf,UAAUuY,EAAU,gBACtCoO,GAEP0B,iBAAkBzqB,GACdvP,KAAMgqB,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,WACvDgjB,GAEP2B,uBAAwB1qB,GACpBvP,KAAMgqB,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,kBACvDgjB,GAEP4B,qBAAsB3qB,GAClBvW,YAAc63B,GAAOlf,UAAUuY,EAAU,gBACtCoO,GAEP6B,gBAAiB5qB,GACbvP,KAAMgqB,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,eAC1D8kB,UAAYvJ,GAAOtG,QAASsG,GAAOhF,iBAChCyM,KAGZ,CAAEn+B,QAAS,eAAiB,CAC3BoJ,QAAS,KAAO,CACZpK,KAAM,iBACN6G,KAAM,yBAGN8pB,SAAS,mBAAqB+G,GAAOrhB,QAASqhB,GAAOzG,YAAY,CACrEyH,SAAUqH,GACTrI,GAAO1d,QAAS,CAAC,CAAEpa,KAAM,cACzB83B,GAAOzd,MAAQ,YACNxC,EAAQ,CACVypB,wBAAyB,CACrB5N,YAAazC,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,iBACjEglB,QAAStQ,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAMF,EAAY/K,IAAI,qCAC7EkwB,cAAgB1J,GAAOrhB,QAASqhB,GAAOzG,YAAY,CAC/CoQ,mBAAqB3J,GAAOrhB,QAASqhB,GAAOle,cAAe,CACvD/D,WAAsD,kCAArCjL,EAAKsF,MAAMlQ,KAAK,WAAWsR,QAEhDowB,SAAW5J,GAAOrhB,QAASqhB,GAAOle,cAAe,CAC7C/D,WAAsD,wCAArCjL,EAAKsF,MAAMlQ,KAAK,WAAWsR,QAEhDqwB,eAAiB7J,GAAOrhB,QAASqhB,GAAOle,cAAe,CACnD/D,WAAsD,wCAArCjL,EAAKsF,MAAMlQ,KAAK,WAAWsR,UAEhD,CACAuE,WAAgD,wBAA/BjL,EAAK5K,KAAK,WAAWsR,SAG9CswB,sBAAuB,CACnBxd,OAAQmc,GAEZsB,qBAAsB,CAClBzd,OAAQmc,EACRuB,OAAShK,GAAOlf,aAAckf,GAAOzG,YAAY,CAC7CjN,OAAQ6M,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE+D,SAAU,CAAEmsB,OAAQ,cAAen3B,KAAM,CAAC,MAAO,MAAO,MAAO,CAAE5K,KAAM,eAC7HgM,OAAQilB,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE+D,SAAU,oBAChEosB,GAAI/Q,EAAW,CAAE/U,KAAM,CAAC,UAAW,SAAU,YAC9C,CAAE9a,QAAS,oBAElB6gC,uBAAwB,CACpBhQ,MAAOhB,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,WAC3D2V,cAAgB4F,GAAOlf,UAAUqY,EAAW,CAAE7U,UAAW,kBAAmBvK,OAAQ,CAAEgD,GAAI,CAAC,MAAO,MAAO,CAAE7U,KAAM,eAErHkiC,6BAA8B,CAC1B1N,gBAAkBsD,GAAOtG,QAASsG,GAAOlf,UAAUqY,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,oBAE3G4lB,gCAAiC,CAC7B1N,UAAYsD,GAAStF,OAAO,CAAEb,eAAe,IAC7CwQ,YAActK,GAAOtG,QAASsG,GAAOhF,iBAEzCuP,4BAA6B,CACzBC,eAAiBxK,GAAOtG,KAAKP,EAAW,CAAE/U,KAAM,iBAChDqmB,cAAgBzK,GAAOtG,KAAKP,EAAW,CAAE/U,KAAM,oBAC/CsmB,QAAU1K,GAAOtG,QAASsG,GAAOle,YAAY,CAAEN,SAAS,KACxDmpB,iBAAmB3K,GAAOtG,QAASsG,GAAOle,YAAY,CAAEN,SAAS,KACjEopB,wBAA0B5K,GAAOtG,QAASsG,GAAOhF,iBAErD6P,6BAA8B,CAC1BrQ,OAAQ+N,GAEZuC,wBAAyB,CACrBC,SAAW9K,GAAStF,OAAO,CAAEd,QAAQ,KAEzCmR,4BAA6B,CACzB9hB,SAAW+W,GAAStF,OAAO,CAAEd,QAAQ,IACrCkR,SAAW/K,GAAOtG,QAASsG,GAAOle,YAAY,CAAEN,SAAS,MAE7DypB,2BAA4B,CACxBC,aAAelL,GAAOlf,UAAUuY,EAAU,wBAE9C8R,yBAA0B,CACtBxtB,WAAaqiB,GAAOlf,UAAUuY,EAAU,gBAE5C+R,sBAAuB,CACnBliB,SAAW+W,GAAStF,OAAO,CAAEb,eAAe,KAEhDuR,uBAAwB,CACpB5I,UAAYxC,GAAStF,OAAO,CAAEf,YAAY,KAE9C0R,2BAA4B,CACxBn8B,KAAMgqB,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,iBAC1D8mB,QAAUvL,GAAOtG,QAASsG,GAAOle,YAAY,CAAEN,SAAS,MAE5DgqB,qBAAsB,CAClBhR,UAAYwF,GAAOtG,KAAK6O,GACxBkD,QAAUzL,GAAOlf,UAAUuY,EAAU,mBACrCltB,WAAa6zB,GAAOtG,QAASsG,GAAOhF,iBAExC0Q,qBAAsB,CAClBlR,UAAYwF,GAAOtG,KAAK6O,GACxBp5B,QAAU6wB,GAAOtG,KAAKL,EAAU,oBAEpCsS,oBAAqB,CACjBrP,IAAKnD,EAAW,CAAE7U,UAAW,MAAOvK,OAAQ,CAAE4K,SAAU,CAAE7G,SAAU,sBAExE8tB,4BAA6B,CACzB3M,WAAae,GAAOtG,QAASsG,GAAOlf,aAAckf,GAAOzG,YAAY,CACjEjxB,KAAM6wB,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,gBAC1DyZ,YAAc+B,GAAStF,eAI7Bld,EAAM,YACAjE,IAAI,sBAAsBxL,eAC9BhG,GAAK0W,OAAKqB,EAAM/X,IAAOq5B,MAExB5jB,GAjGK,IAmGjB,CAAEK,SAAU,WAAYxU,QAAS,aAAe,CAC/CoJ,QAAS,KAAO,CACZsuB,SAAU,sBACV9X,MAAO,SAGP+P,SAAS,oBAAsB+G,GAAOrhB,QAASqhB,GAAOzG,YAAY,CACtE2N,UAAWgB,GACVlI,GAAO1d,QAAS,CAAC,CAAEpa,KAAM,eACzB83B,GAAOzd,MAAO3D,OACRqhB,GAASkH,gBADD,CAEX5M,8BAA+B,CAC3BC,OAAQ+N,EACRjO,UAAWjB,EAAU,qBAEzBoB,0BAA2B,CACvBD,OAAQ+N,EACR7N,UAAYsF,GAAOrG,SAASR,EAAW,CAAE7U,UAAW,iBAAoB2b,GAAStF,OAAO,CAAEd,QAAQ,SAG3G,CAAE/b,SAAU,YAAaxU,QAAS,cAAgB,CACjDoJ,QAAS,KAAO,CACZw0B,UAAW,0BACX3L,OAAQ,UAGRtC,SAAS,wBAA0B+G,GAAOrhB,QAASqhB,GAAOzG,YAAY,CAC1EsS,UAAW1S,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,eAC/DtV,KAAMgqB,IACN2S,UAAY7L,GAAStF,OAAO,CAAEd,QAAQ,IACtCkS,UAAW5S,EAAW,CAAE/U,KAAM,CAAC,WAAY,gBAAiB,oBAC5D4nB,QAAUhM,GAAOiM,cAAc9S,EAAW,CAAE/U,KAAM,WACnD,CAAE9a,QAAS,uBAAyB,CACnCoJ,QAAS,KAAO,CACZm5B,UAAW,+BACX18B,KAAM,GACN28B,OAAQ,EACRC,UAAW,WACXC,KAAM,2BC/PlBv2B,OAAOsC,eAAem0B,GAAS,aAAc,CAAEzgC,OAAO,kCACtB,EAChC,MAAMu0B,GAAS9kB,4BACf,SAA+B8I,EAASnZ,KAE5BouB,SAAS,iBAAmB+G,GAAOrhB,QAASqhB,GAAOzG,YAAY,CACnE4S,QAAUnM,GAAOrhB,QAASqhB,GAAOzG,YAAY,CACzC6S,eAAiBpM,GAAOrhB,QAASqhB,GAAOle,YAAY,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,IAAM,CAAEU,QAAS,IAAM,IACzG4tB,eAAiBN,GAAO1G,WAAWtV,EAAS,oBAC5C,CACAtR,QAAS,KAAO,CACZ05B,YAAa,EACb9L,YAAa,SAGrB,CACA5tB,QAAS,KAAO,CACZy5B,KAAM,CACFC,YAAa,EACb9L,YAAa,oBCnB7B7qB,OAAOsC,eAAes/B,GAAS,aAAc,CAAE5rC,OAAO,kCACtB,EAChC,MAAMu0B,GAAS9kB,GACT+kB,GAAW9kB,4BACjB,SAA+B6I,EAASO,SAC9B8U,EAAY2G,GAAO1G,UAAUtoB,UAAK,EAAWgT,GAC7CmV,EAAa6G,GAAO5G,WAAWpoB,UAAK,EAAWuT,GAC/C6X,KAAkB4D,GAAOpf,YAAY,CACvC,CACItY,KAAM,SACNyL,KAAMolB,IACNtY,UAA2B,kBAAN/T,GAAgC,iBAANA,EAAkBA,EAAE4N,WAAa,IAEpF,CACIpS,KAAM,SACNyL,QAAUisB,GAAOle,cACjBjB,UAA2B,iBAAN/T,EAAkB4S,SAAS5S,GAAK,GAEzD,CACIxE,KAAM,SACNyL,QAAUisB,GAAOzG,YAAY,CACzBpa,OAAS6gB,GAAOtG,QAASsG,GAAOle,YAAY,CAAEN,SAAS,KACvDxP,OAASguB,GAAOtG,QAASsG,GAAOle,YAAY,CAAEN,SAAS,OAE3DX,UAA2B,iBAAN/T,EAAmB,CAAEqS,IAAKrS,EAAGkF,IAAKlF,GAAQ,IAEnE,CACIxE,KAAM,UACNyL,QAAUisB,GAAOhF,eACjBna,UAAmB,SAAN/T,GAAsB,IAANA,OAG7BmsB,SAAS,oBAAsB+G,GAAOzG,YAAY,CACtD8C,QAAU2D,GAAOtG,KAAKP,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,WAC1E6X,OAAS0D,GAAOtG,KAAKP,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,gBACzEyE,SAAW8W,GAAOtG,QAASuG,GAAStF,UACpC4B,cAAgByD,GAAOtG,QAASuG,GAAStF,UACzC6B,UAAYwD,GAAOtG,KAAKP,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,aAC5EgY,OAASuD,GAAOtG,KAAKP,EAAW,CAAE7U,UAAW,MAAOvK,OAAQ,CAAE4K,SAAU,CAAE7G,SAAU,iBAAkBf,GAAI,CAAC,MAAO,CAAE7U,KAAM,cAC1Hw0B,gBAAkBsD,GAAOtG,QAASsG,GAAOlf,UAAUuY,EAAU,4BAC9D,CAAE/vB,QAAS,YACN2vB,SAAS,2BAA6B+G,GAAOzG,YAAY,CAC7DqC,eAAiBoE,GAAOtG,KAAKP,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,kBACjFkY,UAAYqD,GAAOtG,QAASuG,GAAStF,WACtC,CAAErxB,QAAS,mBACN2vB,SAAS,qBAAuB+G,GAAOzG,YAAY,CACvDY,SAAW6F,GAAOtG,KAAKP,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,YAC3E6X,OAAS0D,GAAOtG,KAAKP,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,iBACzEgY,OAASuD,GAAOtG,KAAKP,EAAW,CAAE7U,UAAW,MAAOvK,OAAQ,CAAE4K,SAAU,CAAE7G,SAAU,kBAAmBf,GAAI,CAAC,MAAO,CAAE7U,KAAM,eAC3HuF,SAAWuyB,GAAOtG,QAASsG,GAAOrG,SAASR,IAAciD,EAAa,CAAEhb,WAAY,CAAEkD,UAAW,kBAAmBvK,OAAQ,CAAEgD,GAAI,CAAC,MAAO,CAAE7U,KAAM,gBACnJ,CAAEoB,QAAS,aACN2vB,SAAS,qBAAuB+G,GAAOzG,YAAY,CACvDqD,SAAWoD,GAAOtG,KAAKP,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,YAC3E6X,OAAS0D,GAAOtG,KAAKP,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,iBACzEhX,SAAWuyB,GAAOtG,QAASsG,GAAOrG,SAASR,IAAciD,KAC1D,CAAE9yB,QAAS,aACN2vB,SAAS,wBAA0B+G,GAAOzG,YAAY,CAC1DsD,YAAcmD,GAAOtG,QAASsG,GAAOzG,YAAY,CAC7C/tB,KAAOw0B,GAAOtG,QAASuG,GAAStF,UAChCrvB,KAAO00B,GAAOtG,QAASuG,GAAStF,UAChC1qB,KAAO+vB,GAAOtG,QAASuG,GAAStF,aAEpCmC,SAAWkD,GAAOtG,KAAKP,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,sBAC3EsY,WAAaiD,GAAOtG,KAAKP,EAAW,CAAE/U,KAAMG,EAAY/K,IAAI,8BAA8B/G,QAAS3F,EAAET,MAAM,SAC3G2wB,aAAegD,GAAOtG,KAAKP,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,iBAC/EwY,SAAW+C,GAAOtG,QAASsG,GAAOzG,YAAY,CAC1C0D,SAAW+C,GAAOtG,QAASuG,GAAStF,OAAO,CAAEnZ,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,SAE7EslC,UAAYtX,GAAOtG,QAASsG,GAAOhF,gBACnCb,SAAW6F,GAAOtG,KAAKL,EAAU,oBACjCuD,SAAWoD,GAAOtG,KAAKL,EAAU,qBAClC,CAAE/vB,QAAS,gBACN2vB,SAAS,yBAA2B+G,GAAOzG,YAAY,CAC3DjxB,KAAM6wB,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,eAC1D0Y,KAAMhE,IACN1tB,SAAWw0B,GAAStF,UACnBqF,GAAO1d,QAAS,CAAC,CAAEpa,KAAM,UACzB83B,GAAOzd,MAAO,CACX6a,kBAAmB,CACfD,KAAMhE,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,YAE9D4Y,oBAAqB,CACjBF,KAAMhE,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,WAE9D6Y,iBAAkB,CACdH,KAAMhE,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,WAE9D8Y,mBAAoB,CAChBJ,KAAMhE,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,WAE9D+Y,sBAAuB,CACnBL,KAAMhE,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,WAE9DgZ,oBAAqB,CACjBN,KAAMhE,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,WAE9DiZ,mBAAoB,CAChBP,KAAMhE,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,kBAE9DkZ,sBAAuB,CACnBR,KAAMhE,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,kBAE9DmZ,mBAAoB,CAChBT,KAAMhE,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,wBAI9DwU,SAAS,sBAAwB+G,GAAOzG,YAAY,CACxDsE,YAAcmC,GAAOtG,KAAKP,EAAW,CAAE/U,KAAM,cAC7CoR,SAAWwK,GAAOtG,QAASuG,GAAStF,UACpCmD,gBAAkBkC,GAAOtG,QAASsG,GAAOrG,SAASR,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,qBAAyBub,GAAOpf,YAAY,CAC9I,CAAEtY,KAAM,UAAWyL,QAAUisB,GAAOhF,eAAgBna,WAAa,GACjE,CACIvY,KAAM,SAAUyL,QAAUisB,GAAOrG,SAASR,OAAkB6G,GAAOhF,qBAG3E+C,WAAaiC,GAAOtG,QAASsG,GAAOrG,SAASR,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,gBAAoBub,GAAOhF,iBAC5HgD,SAAWgC,GAAOtG,QAASsG,GAAOlf,UAAUuY,EAAU,0BACvD,CAAE/vB,QAAS,cACN2vB,SAAS,6BAA+B+G,GAAOzG,YAAY,CAC/D0E,aAAe+B,GAAOtG,QAASuG,GAAStF,UACxCuD,YAAc8B,GAAOtG,QAASuG,GAAStF,UACvCwD,WAAa6B,GAAOtG,QAASsG,GAAOhF,gBACpCoD,WAAa4B,GAAOtG,QAASsG,GAAOhF,iBACrC,CAAE1xB,QAAS,qBACN2vB,SAAS,wBAA0B+G,GAAOzG,YAAY,CAC1D/tB,KAAOw0B,GAAOtG,QAASuG,GAAStF,UAChCrvB,KAAO00B,GAAOtG,QAASuG,GAAStF,UAChC1qB,KAAO+vB,GAAOtG,QAASuG,GAAStF,UAChC0D,YAAc2B,GAAOtG,QAASuG,GAAStF,UACvC2D,cAAgB0B,GAAOtG,QAASuG,GAAStF,WAC1C,CAAErxB,QAAS,gBACN2vB,SAAS,sBAAwB+G,GAAOzG,YAAY,CACxDjxB,QAAU03B,GAAOtG,KAAKP,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,cAAeG,UAAU,MACnG6X,OAASuD,GAAOtG,KAAKP,EAAW,CAAE7U,UAAW,MAAOvK,OAAQ,CAAE4K,SAAU,CAAE7G,SAAU,mBAAoBf,GAAI,CAAC,MAAO,CAAE7U,KAAM,cAC5Hq2B,QAAUyB,GAAOtG,KAAKP,EAAW,CAAE7U,UAAW,UAC9ChR,YAAc0sB,GAAOtG,KAAKL,EAAU,uBACpCmF,YAAcwB,GAAOtG,KAAKL,EAAU,uBACpChnB,SAAW2tB,GAAOtG,QAASsG,GAAOzG,YAAY,CAC1CkF,cAAgBuB,GAAOtG,QAASsG,GAAOhF,gBACvC0D,eAAiBsB,GAAOtG,QAASsG,GAAOhF,gBACxC2D,gBAAkBqB,GAAOtG,QAASsG,GAAOhF,gBACzC4D,eAAiBoB,GAAOtG,QAASsG,GAAOhF,gBACxC6D,WAAamB,GAAOtG,QAASsG,GAAOhF,mBAExC8D,aAAekB,GAAOtG,QAASsG,GAAOrG,SAASR,EAAW,CAAE/U,KAAM,SAAWiV,EAAU,oBACvFke,WAAavX,GAAOtG,KAAKL,EAAU,qBACnCme,mBAAqBxX,GAAOtG,KAAKL,EAAU,qBAC3C0F,UAAYiB,GAAOtG,KAAKL,EAAU,qBAClCoe,gBAAkBzX,GAAOtG,QAASsG,GAAOzG,YAAY,CACjDme,iBAAmB1X,GAAOtG,QAASsG,GAAOhF,mBAE9CgE,WAAagB,GAAOtG,KAAKP,EAAW,CAAE/U,KAAM,iBAC5C6a,WAAae,GAAOtG,QAASsG,GAAOrG,SAASR,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,gBAAmB4U,EAAU,8BAC/H,CAAE/vB,QAAS,cACN2vB,SAAS,6BAA+B+G,GAAOzG,YAAY,CAC/D2F,gBAAkBc,GAAOtG,QAASsG,GAAOhF,gBACzCmE,WAAaa,GAAOtG,QAASsG,GAAOhF,gBACpCoE,YAAcY,GAAOtG,QAASsG,GAAOhF,gBACrCqE,iBAAmBW,GAAOtG,QAASsG,GAAOhF,gBAC1CsE,gBAAkBU,GAAOtG,QAASsG,GAAOhF,gBACzCuE,kBAAoBS,GAAOtG,QAASsG,GAAOhF,gBAC3CwE,4BAA8BQ,GAAOtG,QAASsG,GAAOhF,gBACrDyE,kBAAoBO,GAAOtG,QAASsG,GAAOhF,gBAC3C0E,iBAAmBM,GAAOtG,KAAKL,EAAU,qBACzCsG,iBAAmBK,GAAOtG,KAAKL,EAAU,sBAC1C,CAAE/vB,QAAS,qBACN2vB,SAAS,sBAAwB+G,GAAOzG,YAAY,CACxDqG,SAAWI,GAAOtG,QAASuG,GAAStF,UACpCkF,SAAWG,GAAOtG,QAASuG,GAAStF,UACpCmF,WAAaE,GAAOtG,QAASsG,GAAOhF,gBACpC0E,iBAAmBM,GAAOtG,KAAKL,EAAU,qBACzC/wB,QAAU03B,GAAOtG,KAAKL,EAAU,6BACjC,CAAE/vB,QAAS,uBC7KlBmM,OAAOsC,eAAes0B,GAAS,aAAc,CAAE5gC,OAAO,8BAC1B,EAC5B,MAAMu0B,GAAS9kB,wBACf,SAA2B8I,EAASO,SAC1B8U,EAAY2G,GAAO1G,UAAUtoB,UAAK,EAAWgT,GAC7CmV,EAAa6G,GAAO5G,WAAWpoB,UAAK,EAAWuT,KAC7C0U,SAAS,YAAc+G,GAAOrhB,QAASqhB,GAAOzG,YAAY,CAC9DjxB,KAAM6wB,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,wBACzDub,GAAO1d,QAAS,CAAC,CAAEpa,KAAM,UACzB83B,GAAOzd,MAAO,CACX+pB,4BAA6B,CACzBC,SAAWvM,GAAOtG,KAAKP,EAAW,CAAE/U,KAAM,eAAgBW,YAAY,KACtEynB,WAAaxM,GAAOlf,UAAUqY,KAC9B3wB,OAASw3B,GAAOrG,SAASR,IACzBE,EAAU,sBACVzN,OAAQyN,EAAU,kBAEtBoT,+BAAgC,CAC5BF,SAAWvM,GAAOtG,KAAKP,KACvBuT,eAAiB1M,GAAOlf,UAAUuY,EAAU,sBAC5CzN,OAAQyN,EAAU,kBAEtBsT,qBAAsB,CAClBJ,SAAWvM,GAAOtG,KAAKP,KACvByT,WAAYvT,EAAU,qBACtBzN,OAAQuN,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,UAC5Dyc,cAAgBlB,GAAOtG,QAASsG,GAAOle,eACvC+qB,eAAiB7M,GAAOtG,QAASsG,GAAOrhB,QAASqhB,GAAOle,YAAY,CAAEN,SAAS,IAAS,CAAE9O,QAAS,IAAM,QAE7Go6B,qBAAsB,CAClBP,SAAWvM,GAAOtG,KAAKP,KACvByT,WAAYvT,EAAU,qBACtBzN,OAAQuN,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,UAC5Dyc,cAAgBlB,GAAOtG,QAASsG,GAAOle,eACvC+qB,eAAiB7M,GAAOtG,QAASsG,GAAOrhB,QAASqhB,GAAOle,YAAY,CAAEN,SAAS,IAAS,CAAE9O,QAAS,IAAM,QAE7Gq6B,oBAAqB,CACjBR,SAAWvM,GAAOtG,KAAKP,KACvByT,WAAYvT,EAAU,qBACtBzN,OAAQuN,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,UAC5Dyc,cAAgBlB,GAAOtG,QAASsG,GAAOle,eACvC+qB,eAAiB7M,GAAOtG,QAASsG,GAAOrhB,QAASqhB,GAAOle,YAAY,CAAEN,SAAS,IAAS,CAAE9O,QAAS,IAAM,QAE7Gs6B,6BAA8B,CAC1BT,SAAWvM,GAAOtG,KAAKP,KACvByT,WAAYvT,EAAU,qBACtBzN,OAAQuN,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,UAC5Dyc,cAAgBlB,GAAOtG,QAASsG,GAAOle,eACvC+qB,eAAiB7M,GAAOtG,QAASsG,GAAOrhB,QAASqhB,GAAOle,YAAY,CAAEN,SAAS,IAAS,CAAE9O,QAAS,IAAM,QAE7Gu6B,yBAA0B,CACtBV,SAAWvM,GAAOtG,KAAKP,KACvByT,WAAYvT,EAAU,qBACtBzN,OAAQuN,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,UAC5DyE,SAAW8W,GAAOle,YAAY,CAAEN,SAAS,KAE7C0rB,qBAAsB,CAClBX,SAAWvM,GAAOtG,KAAKP,KACvB1vB,KAAM4vB,EAAU,4BAChB8T,SAAU9T,EAAU,4BACpBzN,OAAQyN,EAAU,oBAG3B,CAAE/vB,QAAS,SAAU6Z,sBAAsB,IAAS,CACnDzQ,QAAS,KAAO,CACZpK,KAAM,mCAGN2wB,SAAS,uBAAyB+G,GAAOrhB,QAASqhB,GAAOpf,YAAY,CACzE,CACItY,KAAM,SACNyL,KAAMslB,EAAU,4BAChBxY,UAAa/T,EAAE,IAEnB,CACIxE,KAAM,OACNyL,QAAUisB,GAAOlf,UAAUuY,EAAU,6BACrCxY,UAAa,CAAC/T,MAElB,CACA4F,QAAS,KAAO,CACZ2pB,KAAM,yBAGNpD,SAAS,8BAAgC+G,GAAOrhB,QAASqhB,GAAOzG,YAAY,CAChF8C,QAAU2D,GAAOtG,KAAKP,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,WAC1E6X,OAAS0D,GAAOtG,KAAKP,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,kBACzE,CACA/R,QAAS,KAAO,CACZ2pB,KAAM,yBAGNpD,SAAS,mBAAqB+G,GAAOrhB,QAASqhB,GAAOzG,YAAY,CACrE8C,KAAMlD,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,UAC1DyE,SAAW8W,GAAOtG,QAASsG,GAAOrhB,QAASqhB,GAAOle,YAAY,CAAEN,SAAS,IAAS,CAAE9O,QAAS,IAAM,OACnG,CACAA,QAAS,KAAO,CACZ2pB,KAAM,kCCjGlB5mB,OAAOsC,eAAeq1B,GAAS,aAAc,CAAE3hC,OAAO,4BAC5B,EAC1B,MAAMu0B,GAAS9kB,sBACf,SAAyB8I,EAASO,SACxB4U,EAAa6G,GAAO5G,WAAWpoB,UAAK,EAAWuT,GAC/C8oB,EAAW15B,MAAaqsB,GAAOrhB,QAASqhB,GAAOzG,YAAY,CAC7DptB,WAAa6zB,GAAOtG,QAASsG,GAAOhF,gBACpCnZ,UAAYme,GAAOlf,aAAckf,GAAOpf,YAAY,CAChD,CACItY,KAAM,SACNyL,KAAMolB,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM9Q,EAAMiR,UAAU,KAC1E/D,UAAa/T,EAAEiQ,IAEnB,CACIzU,KAAM,SACNyL,QAAUisB,GAAOzG,YAAY,CACzBxc,GAAIoc,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM9Q,EAAMiR,UAAU,EAAME,cAAc,KAC5FwoB,YAActN,GAAOhF,iBAEzBna,WAAc,CAAE9D,GAAIjQ,SAG7B,CAAExD,QAAS,QAAU,CACpBoJ,QAAS,KAAO,CACZmP,OAAQ,SAGRoX,SAAS,YAAaoU,EAAQ,YAC9BpU,SAAS,kBAAmBoU,EAAQ,kBACpCpU,SAAS,YAAaoU,EAAQ,YAC9BpU,SAAS,eAAgBoU,EAAQ,gBACjCpU,SAAS,WAAYoU,EAAQ,oBC/BzC53B,OAAOsC,eAAew1B,GAAS,aAAc,CAAE9hC,OAAO,qCACnB,EACnC,MAAMu0B,GAAS9kB,+BACf,SAAkC8I,EAASO,SACjC8U,EAAY2G,GAAO1G,UAAUtoB,UAAK,EAAWgT,GAC7CmV,EAAa6G,GAAO5G,WAAWpoB,UAAK,EAAWuT,GAC/CipB,EAAmB1gC,QAAYyM,SAAWzM,aAAa1B,MAAQoiC,EAAgB1gC,EAAE,IAA8D,UAAlDA,MAAAA,OAA6B,EAASA,EAAE2gC,YAAyB,IAAPl0B,EAAgBA,EAAmB,iBAANzM,EAAiB,GAAKA,MAAAA,OAA6B,EAASA,EAAE4N,cAChPue,SAAS,oBAAsB+G,GAAOrhB,QAASqhB,GAAOpf,YAAY,CACtE,CACItY,KAAM,SACNyL,KAAMslB,EAAU,yBAChBxY,UAAa/T,aAAa1B,MAAyB,iBAAT0B,EAAE,GAAkBA,EAAE,GAAK,CAAE2gC,KAAMD,EAAgB1gC,EAAE,KAAsB,iBAANA,EAAiBA,EAAI,CAAE2gC,KAAMD,EAAgB1gC,KAEhK,CACIxE,KAAM,OACNyL,KAAMslB,EAAU,uBAChBxY,UAAa,CAAC/T,IAElB,CACIxE,KAAM,SACN8X,SAAU,EACVrM,KAAMolB,IACNtY,OAAQ2sB,GAEZ,CACIllC,KAAM,SACNyL,QAAUisB,GAAOle,cACjBjB,iBACUvZ,EAAIomC,WAAWF,EAAgB1gC,WAC9B6gC,SAASrmC,GAAKA,EAAOwF,EAAI,EAAI,IAG5C,CACIxE,KAAM,UACNyL,QAAUisB,GAAOhF,eACjBna,iBACUpW,EAAI+iC,EAAgB1gC,SACb,SAANrC,GAAsB,UAANA,EAAsB,SAANA,IAAiBA,KAGjE,CAAEnB,QAAS,mBAAqB,CAC/BoJ,QAAS,KAAO,CACZ+6B,KAAM,cAGRG,EAAe,CACjBnsB,SAAWue,GAAOtG,KAAKP,KACvBwe,QAAU3X,GAAOtG,KAAKP,KACtB0U,QAAU7N,GAAOtG,QAASsG,GAAOhF,gBACjC8S,UAAY9N,GAAOtG,QAASsG,GAAOhF,gBACnC+S,cAAgB/N,GAAOtG,QAASsG,GAAOhF,gBACvCgT,iBAAmBhO,GAAOtG,QAASsG,GAAOhF,gBAC1CiT,cAAgBjO,GAAOtG,QAASsG,GAAOhF,gBACvCkT,aAAelO,GAAOtG,KAAKP,KAC3BgV,cAAgBnO,GAAOtG,QAASsG,GAAOzG,YAAY,CAC/C6U,OAAQjV,EAAW,CAAE/U,KAAM,CAAC,WAAY,YAAa,cAAe,kBAAmB,cAAe,wBACrG4b,GAAO1d,QAAS,CAAC,CAAEpa,KAAM,YACzB83B,GAAOzd,MAAO,CACX8rB,YAAe,CACX5iC,MAAO0tB,KAEXmV,kBAAqB,CACjB7iC,MAAO0tB,KAEXoV,UAAa,CACT9iC,MAAO0tB,KAEXqV,SAAY,CACR/iC,MAAO0tB,KAEXsV,YAAe,CACXhjC,MAAO0tB,EAAW,CAAE7U,UAAW,UAAWvK,OAAQ,CAAE20B,cAAc,EAAMC,cAAc,MAE1FC,gBAAmB,CACfnjC,MAAO0tB,EAAW,CAAE7U,UAAW,UAAWvK,OAAQ,CAAE20B,cAAc,EAAMC,cAAc,UAIlGE,cAAgB7O,GAAOtG,QAASsG,GAAOzG,YAAY,CAC/C6U,OAAQjV,EAAW,CAAE/U,KAAM,CAAC,YAAa,YAAa,kBACrD4b,GAAO1d,QAAS,CAAC,CAAEpa,KAAM,YACzB83B,GAAOzd,MAAO,CACXusB,UAAa,CACTrjC,SAAWu0B,GAAOtG,KAAKL,EAAU,mBACjCue,YAAc5X,GAAOtG,KAAKL,EAAU,oBAExC0V,UAAa,CACTtjC,SAAWu0B,GAAOtG,KAAKP,EAAW,CAAE7U,UAAW,MAAOvK,OAAQ,CAAEi1B,OAAQ,0BACxE4I,YAAc5X,GAAOtG,QAASsG,GAAOzG,YAAY,CAC7Cxc,GAAIoc,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,UACxDyE,SAAW8W,GAAOtG,QAASsG,GAAOle,YAAY,CAAEN,SAAS,KACzD8a,OAAS0D,GAAOtG,KAAKP,EAAW,CAAE7U,UAAW,MAAOvK,OAAQ,CAAE4K,SAAU,CAAE7G,SAAU,iBAAkBf,GAAI,CAAC,MAAO,CAAE7U,KAAM,gBAGlI+mC,YAAe,CACXxjC,SAAWu0B,GAAOtG,QAASsG,GAAOzG,YAAY,CAC1CpqB,QAAU6wB,GAAOtG,KAAKP,KACtB7wB,QAAU03B,GAAOtG,KAAKP,KACtBpc,MAAQijB,GAAOtG,KAAKP,QAExBye,YAAc5X,GAAOtG,QAASsG,GAAOrhB,QAASqhB,GAAOzG,YAAY,CAC7DpqB,QAAU6wB,GAAOtG,KAAKL,EAAU,mBAChC/wB,KAAM6wB,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,iBAC1D1H,GAAIoc,EAAW,CAAE7U,UAAW,WAC5B,CACA5R,QAAS,KAAO,CACZpK,KAAM,gBACNyU,GAAI,iDAMxB6sB,SAAW5J,GAAOtG,KAAKL,EAAU,2BAE7BJ,SAAS,2BAA6B+G,GAAOrhB,QAASqhB,GAAOpf,YAAY,CAC7E,CACItY,KAAM,OACNoJ,SAAyB,iBAAN5E,EACnB+T,WAAc,CAAE4sB,KAAM,KACtBrtB,YACArM,QAAUisB,GAAOzG,YAAY7a,GACzB+uB,KAAMtU,KACHyU,KAGX,CACItlC,KAAM,cACNoJ,cAAoE,kBAA1B,EAAS5E,EAAEoiC,WACrDruB,WAAc,CAAEquB,UAAW,KAC3Bn7B,QAAUisB,GAAOzG,YAAY7a,GACzBwwB,UAAW/V,IACXgW,QAAUnP,GAAOtG,KAAKL,EAAU,yBAC7BuU,KAGX,CACItlC,KAAM,QACNoJ,cAAgE,kBAAtB,EAAS5E,EAAEsiC,OACrDvuB,WAAc,CAAEuuB,MAAO,KACvBr7B,QAAUisB,GAAOzG,YAAY7a,GACzB0wB,SAAWpP,GAAOzG,YAAY,CAC1BpqB,KAAMgqB,EAAW,CAAE7U,UAAW,SAAUvK,OAAQ,CAAE+xB,OAAQ,SAAUxjC,KAAM,WAAY+mC,eAAe,KACrGC,UAAWnW,EAAW,CAAE7U,UAAW,cACnC7Y,SAAWu0B,GAAOtG,KAAKP,QAExByU,KAGX,CACItlC,KAAM,WACNoJ,cAAmE,kBAAzB,EAAS5E,EAAEyiC,UACrD1uB,WAAc,CAAE0uB,SAAU,KAC1Bx7B,QAAUisB,GAAOzG,YAAY7a,GACzB6wB,SAAUpW,EAAW,CAAE7U,UAAW,SAAUvK,OAAQ,CAAE+xB,OAAQ,WAAYxjC,KAAM,eAC7EslC,KAGX,CACItlC,KAAM,UACNoJ,cAAkE,kBAAxB,EAAS5E,EAAE0iC,SACrD3uB,WAAc,CAAE2uB,QAAS,KACzBz7B,QAAUisB,GAAOzG,YAAY7a,GACzB8wB,QAASrW,EAAW,CAAE/U,KAAM,UAAWW,YAAY,KAChD6oB,KAGX,CACItlC,KAAM,MACNoJ,cAA8D,kBAApB,EAAS5E,EAAE2vB,KACrD5b,WAAc,CAAE4b,IAAK,KACrB1oB,QAAUisB,GAAOzG,YAAY7a,GACzB+d,IAAKtD,EAAW,CAAE7U,UAAW,aAC7B6V,SAAW6F,GAAOtG,KAAKP,EAAW,CAAE7U,UAAW,SAAUvK,OAAQ,CAAEijB,UAAW,EAAGrb,WAAW,MAC5F6Y,UAAYwF,GAAOtG,KAAKP,EAAW,CAAE7U,UAAW,SAAUvK,OAAQ,CAAE+xB,OAAQ,WAAYxjC,KAAM,eAC9FmnC,WAAazP,GAAOtG,KAAKP,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,eAC7EirB,aAAe1P,GAAOtG,QAASsG,GAAOhF,iBACnC4S,MAGZ,CAAEtkC,QAAS,wBAAyBywB,cAAe,0BAA4B,CAC9ErnB,QAAS,KAAO,CACZ+6B,KAAM,UAGNxU,SAAS,yBAA2B+G,GAAOrhB,QAASqhB,GAAOlf,UAAUuY,EAAU,mBAAoB,CACvG3mB,QAAS,IAAM,CAAC,CACR+6B,KAAM,yBC3LtBh4B,OAAOsC,eAAe8/B,GAAS,aAAc,CAAEpsC,OAAO,6BAC3B,EAC3B,MAAMu0B,GAAS9kB,uBACf,SAA0B8I,EAASO,SACzB4U,EAAa6G,GAAO5G,WAAWpoB,UAAK,EAAWuT,KAC7C0U,SAAS,WAAa+G,GAAOrhB,QAASqhB,GAAOzG,YAAY,CAC7Due,gBAAiB3e,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,0CACrEszB,SAAW/X,GAAOle,cAClBkkB,SAAWhG,GAAOle,cAClBi1B,eAAiB/W,GAAOle,cACxBk2B,YAAchY,GAAOle,cACrBm2B,cAAe9e,EAAW,CAAE/U,KAAM,CAAC,OAAQ,OAAQ,UACnD8zB,wBAA0BlY,GAAOtG,KAAKP,EAAW,CAAE/U,KAAM,CAAC,OAAQ,aAClEtG,SAAUqb,EAAW,CAAE/U,KAAM,mBAC7B+zB,yBAA2BnY,GAAOtG,QAASsG,GAAOhF,gBAClDod,8BAAgCpY,GAAOtG,QAASsG,GAAOle,YAAY,CAAE3C,IAAK,EAAGnN,IAAK,KAClFitB,WAAae,GAAOzG,YAAY,CAC5B8e,aAAerY,GAAOle,YAAY,CAAEL,OAAO,IAC3C62B,aAAetY,GAAOle,YAAY,CAAEL,OAAO,IAC3C82B,eAAiBvY,GAAOle,YAAY,CAAEL,OAAO,IAC7C+2B,mBAAqBxY,GAAOle,YAAY,CAAEL,OAAO,IACjDg3B,eAAiBzY,GAAOtG,QAASsG,GAAOle,YAAY,CAAEL,OAAO,KAC7Di3B,iBAAmB1Y,GAAOtG,QAASsG,GAAOle,YAAY,CAAEL,OAAO,KAC/Dk3B,wBAA0B3Y,GAAOtG,KAAKP,EAAW,CAAE/U,KAAM,CAAC,OAAQ,cAAe,YACjFw0B,iBAAmB5Y,GAAOtG,KAAKP,KAC/B0f,cAAgB7Y,GAAOtG,QAASsG,GAAOzG,YAAY,CAC/Cuf,MAAO3f,IACP4f,cAAgB/Y,GAAOle,YAAY,CAAEN,SAAS,IAC9Cw3B,uBAAyBhZ,GAAOle,YAAY,CAAEN,SAAS,IACvDpI,UAAY4mB,GAAOle,iBAEvBm3B,mBAAqBjZ,GAAOtG,QAASsG,GAAOzG,YAAY,CACpDuf,MAAO3f,IACP+f,eAAiBlZ,GAAOle,YAAY,CAAE3C,IAAK,EAAGnN,IAAK,OAEvDmnC,SAAWnZ,GAAOtG,QAASsG,GAAOzG,YAAY,CAC1Cuf,MAAO3f,IACPigB,aAAepZ,GAAOle,YAAY,CAAEN,SAAS,EAAMrC,IAAK,IACxDk6B,aAAerZ,GAAOle,YAAY,CAAEN,SAAS,EAAMrC,IAAK,IACxDm6B,yBAA2BtZ,GAAOhF,kBAEtCue,YAAcvZ,GAAOtG,QAASsG,GAAOzG,YAAY,CAC7Che,WAAaykB,GAAOzG,YAAY,CAC5BjxB,KAAM6wB,MAEV0Q,eAAiB7J,GAAOle,YAAY,CAAE3C,IAAK,EAAGnN,IAAK,SAG3DwnC,UAAYxZ,GAAOlf,UAAUqY,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,6CACjFg1B,YAAczZ,GAAOrG,SAASR,EAAW,CAAE/U,KAAM,CACzC,gBACA,UACA,OACA,iBACA,WACA,gBACM4b,GAAOrhB,QAASqhB,GAAOlf,aAAckf,GAAOzG,YAAY,CAClEjxB,KAAM6wB,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,iBAC1DgiB,UAAYzG,GAAOle,YAAY,CAAEN,SAAS,IAC1Ck4B,YAAc1Z,GAAOle,YAAY,CAAEN,SAAS,IAC5Cm4B,YAAc3Z,GAAOle,YAAY,CAAEN,SAAS,OAC3C,CACD1D,SAAU,IAAM,OAChBpL,QAAS,IAAM,CAAC,CACRpK,KAAM,gBACNm+B,OAAQ,OAGpBmT,eAAiB5Z,GAAOrG,SAASR,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,oBAAwBub,GAAOrhB,QAASqhB,GAAOzG,YAAY,CAC5IsgB,iBAAmB7Z,GAAOle,cAC1Bg4B,UAAY9Z,GAAOle,eACpB,CAAEhE,SAAU,aAAe,CAC1BpL,QAAS,KAAO,CACZmnC,cAAe,IACfC,OAAQ,OAGhBC,WAAa/Z,GAAOrG,SAASR,EAAW,CAAE/U,KAAM,CAAC,MAAO,eAAkB4b,GAAOrhB,QAASqhB,GAAOlf,UAAUqY,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,kCAAqC,CAChM/R,QAAS,IAAM,CAAC,qBAEpBikC,YAAc3W,GAAOlf,aAAckf,GAAOrhB,QAASqhB,GAAOlf,UAAUqY,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,mCAAsC,CAAE3G,SAAU,IAAM,cAAgB,CAAEuB,UAAW,MAC9M,CAAE/V,QAAS,UAAY,CACtBoJ,QAAS,KAAO,CACZolC,gBAAiB,kBACjBC,MAAO,KACP/R,MAAO,IACP+Q,YAAa,GACbiB,SAAU,GACVC,cAAe,OACfn6B,SAAU,SACVmhB,QAAS,CACLoZ,UAAW,QACXC,UAAW,SACXC,YAAa,QACbC,gBAAiB,wBC9FjC/iC,OAAOsC,eAAeiiC,GAAS,aAAc,CAAEvuC,OAAO,8BAC1B,EAC5B,MAAMu0B,GAAS9kB,wBACf,SAA2B8I,EAASO,SAC1B4U,EAAa6G,GAAO5G,WAAWpoB,UAAK,EAAWuT,KAC7C0U,SAAS,uBAAyB+G,GAAOrhB,QAASqhB,GAAOzG,YAAY,CACzEjxB,KAAM6wB,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,qBAC1DvF,UAAY8gB,GAAOzG,YAAY,CAC3BsQ,eAAiB7J,GAAOle,YAAY,CAAE3C,IAAK,EAAGnN,IAAK,OAExD,CAAE1I,QAAS,WAAa,CACvBoJ,QAAS,KAAO,CACZpK,KAAM,iBACN4W,OAAQ,CACJ2qB,YAAa,oBCd7Bp0B,OAAOsC,eAAekiC,GAAS,aAAc,CAAExuC,OAAO,iCACvB,EAC/B,MAAMu0B,GAAS9kB,GACT+kB,GAAW9kB,2BACjB,SAA8B6I,EAASO,SAC7B8U,EAAY2G,GAAO1G,UAAUtoB,UAAK,EAAWgT,GAC7CmV,EAAa6G,GAAO5G,WAAWpoB,UAAK,EAAWuT,GAC/C21B,EAAc,CAChBC,WAAana,GAAOle,YAAY,CAAEN,SAAS,IAC3C44B,iBAAmBpa,GAAOle,YAAY,CAAEN,SAAS,IACjD64B,cAAgBra,GAAOle,YAAY,CAAEN,SAAS,KAE5C84B,EAAe,CACjB/e,UAAYyE,GAAOle,YAAY,CAAEN,SAAS,EAAMrC,IAAK,KAEnDo7B,EAAc,CAChBrxB,SAAW+W,GAASua,YAAY,CAAEr7B,QAAUnN,IAAK,IAAK2hC,UAAW,SAE7D1a,SAAS,0BAA4B+G,GAAOzG,YAAY,CAC5DjxB,KAAM6wB,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,wBAC1DvF,UAAY8gB,GAAOzG,YAAY,EAC1ByG,GAAO1d,QAAS,CAAC,MAAO,CAAEpa,KAAM,UAChC83B,GAAOzd,MAAO,CACXk4B,yBAA0B,CACtBC,KAAMvhB,EAAW,CAAE/U,KAAM,oBACzBylB,eAAiB7J,GAAOle,YAAY,CAAE3C,IAAK,EAAGnN,IAAK,KAEvD2oC,mBAAoBL,EACpBM,kBAAmBL,EACnBM,wBAAyB,CACrB3xB,SAAW8W,GAAOle,YAAY,CAAEN,SAAS,IACzCs5B,eAAiB9a,GAAOle,YAAY,CAAEN,SAAS,IAC/Cu5B,gBAAkB/a,GAAOle,YAAY,CAAE3C,IAAK,EAAGnN,IAAK,KAExDgpC,6BAA8BT,EAC9BU,wBAAyB,CACrBC,eAAiBlb,GAAOle,cACxBq5B,eAAiBnb,GAAOle,YAAY,CAAEN,SAAS,IAC/C45B,eAAiBpb,GAAOle,YAAY,CAAEN,SAAS,KAEnD65B,+BAAgC,CAC5BC,wBAA0Btb,GAAOle,YAAY,CAAEN,SAAS,IACxD+5B,gBAAkBvb,GAAOle,cACzB05B,gBAAkBxb,GAAOtG,QAASsG,GAAOle,gBAE7C25B,sBAAuB,CACnBC,MAAOriB,EAAU,wBACjBsiB,MAAOtiB,EAAU,yBAErBuiB,0BAA2B,CACvBC,YAAc7b,GAAOle,YAAY,CAAEN,SAAS,IAC5CkyB,UAAY1T,GAAOle,YAAY,CAAEN,SAAS,KAE9Cs6B,iBAAkBvB,EAClBwB,sBAAuBxB,EACvByB,sBAAuB1B,EACvB2B,kBAAmB/B,EACnBgC,yBAA0BhC,EAC1BiC,8BAA+BjC,EAC/BkC,uBAAwB9B,IAE7B,CAAEhxC,QAAS,YAAawU,SAAU,eACtC,CAAExU,QAAS,YAAawU,SAAU,gCC9DzCrI,OAAOsC,eAAeskC,GAAS,aAAc,CAAE5wC,OAAO,qCACnB,EACnC,MAAMu0B,GAAS9kB,+BACf,SAAkC8I,EAASO,SACjC8U,EAAY2G,GAAO1G,UAAUtoB,UAAK,EAAWgT,GAC7CmV,EAAa6G,GAAO5G,WAAWpoB,UAAK,EAAWuT,KAC7C0U,SAAS,oBAAsB+G,GAAOrhB,QAASqhB,GAAOzG,YAAY,CACtE+iB,cAAgBtc,GAAOlf,UAAUuY,EAAU,eAC5C,CAAE/vB,QAAS,mBAAqB,CAC/BoJ,QAAS,KAAO,CACZ4pC,WAAY,CAAC,CACLC,eAAgB,iBAChBC,MAAO,CAAC,CACAC,mBAAoB,CAChBC,eAAgB,yBAEpBC,gBAAiB,CACbD,eAAgB,oCAMpCzjB,SAAS,eAAiB+G,GAAOrhB,QAASqhB,GAAOzG,YAAY,CACjEgjB,eAAgBpjB,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,mCACnEub,GAAO1d,QAAS,CAAC,CAAEpa,KAAM,oBACzB83B,GAAOzd,MAAO,CACXq6B,sBAAuB,CACnBC,aAAe7c,GAAOle,eAE1Bg7B,yBAA0B,CACtBC,UAAY/c,GAAOlf,UAAUuY,EAAU,iBAE3C2jB,sBAAuB,CACnBC,aAAejd,GAAOle,YAAY,CAAE3C,IAAK,EAAGnN,IAAK,KAErDkrC,oBAAqB,CACjBC,UAAWhkB,EAAW,CAAE/U,KAAM,mBAC9BhL,UAAY4mB,GAAOle,YAAY,CAAEN,SAAS,KAE9C47B,iBAAkB,CACdZ,SAAWxc,GAAOlf,UAAUuY,EAAU,sBAG/C,CAAEvb,SAAU,WAAYxU,QAAS,cAAgB,CAChDoJ,QAAS,KAAO,CACZ6pC,eAAgB,iBAChBC,MAAO,CAAC,CACAC,mBAAoB,CAChBC,eAAgB,yBAEpBC,gBAAiB,CACbD,eAAgB,kCAK5BzjB,SAAS,oBAAsB+G,GAAOrhB,QAASqhB,GAAOzG,YAAY,CACtE8jB,sBAAwBrd,GAAOtG,KAAKL,EAAU,kBAC9CojB,mBAAoBpjB,EAAU,aAC9BsjB,gBAAiBtjB,EAAU,aAC3BikB,aAAcjkB,EAAU,eACxBkkB,cAAgBvd,GAAOtG,KAAKP,EAAW,CAAE7U,UAAW,MAAOvK,OAAQ,CAAE4K,SAAU,CAAE7G,SAAU,wBAC5F,CAAEA,SAAU,YAAaxU,QAAS,mBAAqB,CACtDoJ,QAAS,KAAO,CACZ+pC,mBAAoB,CAChBC,eAAgB,yBAEpBC,gBAAiB,CACbD,eAAgB,oCAItBc,EAAgB,CAClBC,YAAczd,GAAOle,YAAY,CAAE3C,IAAK,EAAGnN,IAAK,IAAKwP,SAAS,IAC9Dk8B,YAAc1d,GAAOle,YAAY,CAAE3C,IAAK,EAAGnN,IAAK,IAAKwP,SAAS,IAC9Dm8B,cAAgB3d,GAAOle,YAAY,CAAE3C,IAAK,EAAGnN,IAAK,IAClD4rC,cAAgB5d,GAAOle,YAAY,CAAE3C,IAAK,EAAGnN,IAAK,OAE9CinB,SAAS,mBAAqB+G,GAAOzG,YAAY,CACrDmjB,eAAgBvjB,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,oBACnEub,GAAO1d,QAAS,CAAC,CAAEpa,KAAM,oBACzB83B,GAAOzd,MAAO,CACXs7B,oCAAqCn/B,GACjC2mB,KAAMlM,EAAW,CAAE/U,KAAM,CAAC,IAAK,IAAK,QACjCo5B,GAEPM,uBAAwBN,IAE7B,CAAEl0C,QAAS,gBAAiB6Z,sBAAsB,OAC7C8V,SAAS,eAAiB+G,GAAOzG,YAAY,CACjDmjB,eAAgBvjB,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,gBACnEub,GAAO1d,QAAS,CAAC,CAAEpa,KAAM,oBACzB83B,GAAOzd,MAAO,CACXw7B,wBAAyB,CACrB5jB,MAAOhB,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,YAE/Du5B,6BAA8B,CAC1BC,YAAa5kB,EAAU,gBAE3B6kB,+BAAgC,CAC5B/jB,MAAOhB,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,WAC3DolB,eAAiB7J,GAAOle,YAAY,CAAE3C,IAAK,EAAGnN,IAAK,KAEvDmsC,oCAAqC,CACjCF,YAAa5kB,EAAU,eACvBwQ,eAAiB7J,GAAOle,YAAY,CAAE3C,IAAK,EAAGnN,IAAK,KAEvDosC,sBAAuB,CACnB9hB,IAAKnD,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,mBAGlE,CAAEnb,QAAS,YAAa6Z,sBAAsB,MChHrD1N,OAAOsC,eAAesmC,GAAS,aAAc,CAAE5yC,OAAO,+BACzB,EAC7B,MAAMu0B,GAAS9kB,GACT+kB,GAAW9kB,yBAGjB,SAA4B6I,EAASO,SAC3B8U,EAAY2G,GAAO1G,UAAUtoB,UAAK,EAAWgT,GAC7CmV,EAAa6G,GAAO5G,WAAWpoB,UAAK,EAAWuT,GAC/C+5B,EAAoB,CACtBC,eAAiBve,GAAOhF,eACxBwjB,WAAaxe,GAAOhF,eACpByjB,cAAgBze,GAAOhF,eACvB0jB,WAAa1e,GAAOle,YAAY,CAAEN,SAAS,IAC3Cm9B,WAAa3e,GAAOle,YAAY,CAAEN,SAAS,IAC3Co9B,WAAa5e,GAAOle,YAAY,CAAEN,SAAS,IAC3Cq9B,SAAW7e,GAAOle,YAAY,CAAEN,SAAS,IACzCs9B,eAAgBzlB,EAAU,wBAC1B0lB,aAAc1lB,EAAU,gBACxB2lB,aAAehf,GAAOlf,UAAUuY,EAAU,gBAC1C4lB,aAAejf,GAAOlf,UAAUuY,EAAU,iBAExC6lB,EAAa,CACfzxC,MAAO4rB,EAAU,eACjB8lB,UAAYlf,GAASua,YAAY,CAAEr7B,IAAK,EAAGnN,IAAK,EAAG2hC,UAAW,IAC9DyL,eAAiBpf,GAAOle,YAAY,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,IAClEqtC,WAAarf,GAAOlf,UAAUuY,EAAU,iBAEtCimB,EAAqB,CACvBC,aAAclmB,EAAU,wBACxBmmB,cAAenmB,EAAU,wBACzBomB,kBAAoBzf,GAAOtG,QAASsG,GAAOle,YAAY,CAAEN,SAAS,MAEhEk+B,EAAY,CACdjyC,MAAO4rB,EAAU,eACjBnG,QAAU8M,GAAOle,YAAY,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,KAC3DkC,OAAQmlB,EAAU,cAEhBkhB,EAAc,CAChBrxB,SAAW+W,GAASua,YAAY,CAAEr7B,QAAUnN,IAAK,IAAK2hC,UAAW,OAE/DgM,KAAc3f,GAAOpf,YAAY,CACnC,CACItY,KAAM,SACNyL,KAAMolB,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,mCAE9D,CACInc,KAAM,SACNyL,KAAMslB,EAAU,wBAErB,CAAEU,cAAe,cACZd,SAAS,wBAA0B+G,GAAOrhB,QAASqhB,GAAOzG,YAAY,CAC1EjxB,KAAM6wB,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,sBAC1DvF,UAAY8gB,GAAOzG,YAAY,EAC1ByG,GAAO1d,QAAS,CAAC,MAAO,CAAEpa,KAAM,UAChC83B,GAAOzd,MAAO,CACXq9B,mBAAoB,CAChB/V,eAAiB7J,GAAOle,YAAY,CAAE3C,IAAK,EAAGnN,IAAK,KAEvD6tC,2BAA4B,CACxBC,SAAW7f,GAASua,YAAY,CAAEr7B,IAAK,EAAGnN,IAAK,EAAG2hC,UAAW,IAC7DX,UAAY/S,GAASua,YAAY,CAAEr7B,IAAK,EAAGnN,IAAK,EAAG2hC,UAAW,KAElEoM,uBAAwB,CACpBjB,eAAgBzlB,EAAU,yBAE9BoiB,sBAAuB,CACnBuE,UAAW3mB,EAAU,wBACrB0D,QAAS4iB,GAEbM,0BAA2B,CACvBrI,SAAUve,EAAU,eACpB6mB,IAAK7mB,EAAU,eACfnG,QAAU+M,GAASua,YAAY,CAAEr7B,IAAK,EAAGnN,IAAK,EAAG2hC,UAAW,IAC5DwM,YAAclgB,GAASua,YAAY,CAAEr7B,IAAK,EAAGnN,IAAK,EAAG2hC,UAAW,KAEpEyM,iBAAkBlB,EAClBmB,wBAAyB,CACrB5yC,MAAO4rB,EAAU,eACjBnlB,OAAQmlB,EAAU,gBAEtBinB,wBAAyB,CACrBtmC,SAAWgmB,GAAOhF,eAClBulB,QAAUvgB,GAAOtG,KAAKL,EAAU,eAEpCmnB,sBAAuB,CACnBC,wBAA0BzgB,GAAOtG,QAASsG,GAAOhF,gBACjD0lB,uBAAyB1gB,GAAOtG,KAAKL,EAAU,cAC/CsnB,UAAY3gB,GAAOlf,aAAckf,GAAOzG,YAAY,CAChDqnB,WAAa5gB,GAAOtG,QAASsG,GAAOle,YAAY,CAAEN,SAAS,KAC3Dq/B,WAAa7gB,GAAOtG,QAASsG,GAAOle,YAAY,CAAEN,SAAS,KAC3D29B,UAAYnf,GAAOtG,QAASsG,GAAOle,YAAY,CAAEN,SAAS,KAC1DwxB,UAAYhT,GAAOtG,QAASsG,GAAOle,YAAY,CAAEN,SAAS,KAC1Ds/B,WAAa9gB,GAAOtG,QAASsG,GAAOhF,oBAG5C+lB,uBAAwB,CACpBtzC,MAAO4rB,EAAU,eACjB2Z,UAAYhT,GAAOle,YAAY,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,OAEjEgvC,mBAAoB1C,EACpB2C,wBAAyB,CACrBxzC,MAAO4rB,EAAU,gBAErB6nB,gCAAiC5B,EACjC6B,wBAAyB,CACrBC,UAAW/nB,EAAU,eACrBgoB,YAAahoB,EAAU,eACvBioB,WAAYjoB,EAAU,eACtBkoB,iBAAkBloB,EAAU,eAC5BmoB,WAAaxhB,GAAOtG,QAASsG,GAAOhF,iBAExCymB,8BAA+BnC,EAC/BoC,sBAAuBxC,EACvByC,oBAAqB,CACjBl0C,MAAO4rB,EAAU,gBAErBuoB,iBAAkB,CACdn0C,MAAO4rB,EAAU,gBAErBwoB,qCAAsC,CAClC/C,eAAgBzlB,EAAU,yBAE9ByoB,qCAAsC,CAClCr0C,MAAO4rB,EAAU,eACjBnlB,OAAQmlB,EAAU,eAClB8lB,UAAYlf,GAASua,eAEzBuH,+BAAgCzD,EAChC0D,2BAA4BtC,EAC5BuC,gBAAiBvC,EACjBwC,yBAA0B5D,EAC1B6D,oCAAqC,CACjCC,cAAezC,EACf0C,aAAc1C,GAElB2C,4BAA6B,CACzB3L,YAAc3W,GAAOlf,aAAckf,GAAOzG,YAAY,CAClDgC,UAAYyE,GAAOle,YAAY,CAAE3C,IAAK,EAAGnN,IAAK,IAC9C+qB,QAAS4iB,KAEbjtC,QAASitC,GAEb4C,uBAAwBhI,EACxBiI,qBAAsB,CAClB3Y,eAAiB7J,GAAOle,YAAY,CAAE3C,IAAK,EAAGnN,IAAK,KAEvDywC,yBAA0B,CACtBC,SAAUrpB,EAAU,eACpBspB,YAAc3iB,GAAOlf,UAAUuY,EAAU,gBACzCupB,YAAc5iB,GAAOlf,UAAUuY,EAAU,gBACzCwpB,eAAiB7iB,GAAOlf,UAAUuY,EAAU,iBAEhDypB,mCAAoC,CAChCnM,YAAc3W,GAAOlf,UAAU6+B,IAEnCoD,2BAA4B,CACxBt1C,MAAO4rB,EAAU,eACjB2pB,cAAgBhjB,GAAOle,YAAY,CAAEN,SAAS,IAC9CyhC,cAAgBjjB,GAAOle,YAAY,CAAEN,SAAS,IAC9C0hC,wBAA0BljB,GAAOhF,eACjCmoB,gBAAkBnjB,GAAOlf,UAAUqY,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,aAE3F2+B,iBAAkB,CACdC,mBAAqBrjB,GAAOle,YAAY,CAAEN,SAAS,IACnD8hC,gBAAkBtjB,GAAOhF,eACzBmiB,UAAWhkB,EAAW,CAAE/U,KAAM,mBAC9Bm/B,aAAclqB,EAAU,gBACxBmqB,eAAgBnqB,EAAU,wBAC1BoqB,gBAAiBpqB,EAAU,wBAC3BqqB,gBAAkB1jB,GAAOzG,YAAY,CACjCjxB,KAAM6wB,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,gCAC1Dk/B,eAAiB3jB,GAAOle,YAAY,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,KAClE4xC,iBAAmB5jB,GAAOle,YAAY,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,KACpE6xC,iBAAmB7jB,GAAOle,YAAY,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,MACrE,CAAE1I,QAAS,iBACdw6C,kBAAoB9jB,GAAOzG,YAAY,CACnCjxB,KAAM6wB,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,kCAC1D06B,UAAYlf,GAASua,YAAY,CAAEr7B,IAAK,EAAGnN,IAAK,EAAG2hC,UAAW,IAC9Dv6B,UAAY6mB,GAASua,YAAY,CAAEr7B,IAAK,EAAGnN,IAAK,EAAG2hC,UAAW,KAC7D3T,GAAO1d,QAAS,CAAC,CAAEpa,KAAM,UACzB83B,GAAOzd,MAAO,CACXwhC,gCAAiC,CAC7B/Q,UAAYhT,GAAOle,YAAY,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,MAEjEgyC,gCAAiC,CAC7BhR,UAAYhT,GAAOle,YAAY,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,MAEjEiyC,iCAAkC,CAC9BjR,UAAYhT,GAAOle,YAAY,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,MAEjEkyC,kCAAmC,CAC/BlR,UAAYhT,GAAOle,YAAY,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,MAEjEmyC,qCAAsC,CAClCC,gBAAkBnkB,GAASua,YAAY,CAAEr7B,IAAK,EAAGnN,IAAK,GAAI2hC,UAAW,KAEzE0Q,gCAAiC,CAC7BrR,UAAY/S,GAASua,YAAY,CAAEr7B,IAAK,EAAGnN,IAAK,GAAI2hC,UAAW,KAEnE2Q,kCAAmC,CAC/BC,gBAAkBtkB,GAASua,YAAY,CAAEr7B,IAAK,EAAGnN,IAAK,GAAI2hC,UAAW,OAG9E,CAAErqC,QAAS,iBAAkB6Z,sBAAsB,IACtDqhC,cAAgBxkB,GAAOlf,aAAckf,GAAOzG,YAAY,CACpDjxB,KAAM6wB,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,mCACzDub,GAAO1d,QAAS,CAAC,CAAEpa,KAAM,UACzB83B,GAAOzd,MAAO,CACXkiC,yBAA0B,CACtBC,SAAUrrB,EAAU,yBAExBsrB,oBAAqB,CACjB9a,eAAiB7J,GAAOle,YAAY,CAAE3C,IAAK,EAAGnN,IAAK,KAEvD4yC,kBAAmB,CACf/a,eAAiB7J,GAAOle,YAAY,CAAE3C,IAAK,EAAGnN,IAAK,OAG5D,CAAE1I,QAAS,uBAGvB,CAAEA,QAAS,aACf,CAAEA,QAAS,YAAc,CACxBoJ,QAAS,KAAO,CACZpK,KAAM,sBACN4W,OAAQ,CACJ8gC,UAAW,CACP13C,KAAM,kBACN4W,OAAQ,CACJgK,MAAO,IAGf6T,QAAS,CACLz0B,KAAM,iBACN4W,OAAQ,CACJmkC,gBAAiB,EACjBC,cAAc,EACdC,aAAc,GACdG,aAAc,CACVC,YAAa,EACbC,cAAe,EACfC,cAAe,GAEnBC,eAAgB,CACZ3E,OAAQ,EACR/lC,OAAQ,EACR45B,OAAQ,aAOxB/Z,SAAS,kBAAoB+G,GAAOrhB,QAASqhB,GAAOzG,YAAY,CACpEjxB,KAAM6wB,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,gCAC1DogC,sBAAwB7kB,GAAOtG,QAASsG,GAAOle,YAAY,CAAE3C,IAAK,EAAGnN,IAAK,OACzEguB,GAAO1d,QAAS,CAAC,CAAEpa,KAAM,UACzB83B,GAAOzd,MAAO,CACXuiC,oCAAqC,CACjC/Z,SAAW/K,GAAOtG,QAASsG,GAAOle,YAAY,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,MAC5E+yC,cAAgB/kB,GAAOtG,QAASsG,GAAOle,YAAY,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,MACjFgzC,cAAgBhlB,GAAOtG,QAASsG,GAAOle,YAAY,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,OAErFizC,sCAAuC,CACnCla,SAAW/K,GAAOtG,QAASsG,GAAOle,YAAY,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,MAC5EkzC,eAAiBllB,GAAOtG,QAASsG,GAAOle,YAAY,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,MAClF+yC,cAAgB/kB,GAAOtG,QAASsG,GAAOle,YAAY,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,MACjFmzC,eAAiBnlB,GAAOtG,QAASsG,GAAOle,YAAY,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,MAClFgzC,cAAgBhlB,GAAOtG,QAASsG,GAAOle,YAAY,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,SAG1F,CAAEmR,sBAAsB,IAAS,CAChCzQ,QAAS,KAAO,CACZpK,KAAM,2CAGN2wB,SAAS,0BAA4B+G,GAAOrhB,QAASqhB,GAAOzG,YAAY,CAC5EjxB,KAAM6wB,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,yCACzDub,GAAO1d,QAAS,CAAC,CAAEpa,KAAM,UACzB83B,GAAOzd,MAAO,CACX6iC,mCAAoC,CAChC33C,MAAO4rB,EAAU,gBAErBgsB,kCAAmC,CAC/B53C,MAAO4rB,EAAU,gBAErBisB,oCAAqC,CACjC3nC,WAAaqiB,GAAOlf,aAAckf,GAAOrhB,QAASqhB,GAAOzG,YAAY,CACjEkN,UAAYzG,GAAOle,YAAY,CAAEN,SAAS,EAAMrC,IAAK,IACrDrQ,KAAMuqB,EAAU,iBAChB,CACA3mB,QAAS,KAAO,CACZ5D,KAAM,WAKvB,CAAExF,QAAS,yBAA2B,CACrCoJ,QAAS,KAAO,CACZpK,KAAM,yCAGN2wB,SAAS,kBAAoB+G,GAAOrhB,QAASqhB,GAAOzG,YAAY,CACpEjxB,KAAM6wB,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,iCACzDub,GAAO1d,QAAS,CAAC,CAAEpa,KAAM,UACzB83B,GAAOzd,MAAO,CACXgjC,0BAA2B,CACvBC,YAAcxlB,GAAOle,YAAY,CAAEN,SAAS,IAC5CikC,cAAgBzlB,GAAOle,YAAY,CAAEN,SAAS,OAGvD,CAAElY,QAAS,iBAAmB,CAC7BoJ,QAAS,KAAO,CACZpK,KAAM,gDC1TlBmN,OAAOsC,eAAe2tC,GAAS,aAAc,CAAEj6C,OAAO,qCACnB,EACnC,MAAMu0B,GAAS9kB,GACT+kB,GAAW9kB,+BACjB,SAAkC6I,EAASO,SACjC8U,EAAY2G,GAAO1G,UAAUtoB,UAAK,EAAWgT,GAC7CmV,EAAa6G,GAAO5G,WAAWpoB,UAAK,EAAWuT,KAC7C0U,SAAS,oBAAsB+G,GAAOrhB,QAASqhB,GAAOzG,YAAY,CACtEpqB,QAAU6wB,GAAOrhB,KAAKwa,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,2BAA4BI,cAAc,KAAW,CAC3H9G,QAAUjL,GAASA,EAAK+J,WAAW5U,OAAS,IAEhDoqC,yBAA2BrS,GAAOle,YAAY,CAAEN,SAAS,IACzD8wB,0BAA4BtS,GAAOle,YAAY,CAAEN,SAAS,IAC1D+wB,aAAevS,GAAOle,YAAY,CAAEN,SAAS,IAC7CgxB,0BAA4BxS,GAAOhF,eACnCwY,cAAena,EAAU,eACzBoa,cAAepa,EAAU,eACzBoZ,SAAWzS,GAAOzG,YAAY,CAC1ByZ,UAAYhT,GAAOle,YAAY,CAAEN,SAAS,IAC1CkxB,kBAAoB1S,GAAOle,cAC3B6wB,kBAAoB3S,GAAOle,cAC3BgxB,mBAAqB9S,GAAOle,YAAY,CAAEN,SAAS,IACnDuxB,iBAAmB/S,GAAOle,YAAY,CAAEN,SAAS,IACjDoxB,yBAA2B5S,GAAOhF,eAClC6X,yBAA2B7S,GAAOtG,QAASsG,GAAOhF,gBAClDsZ,yBAA2BtU,GAAOtG,QAASsG,GAAOhF,gBAClDwZ,aAAexU,GAAOtG,QAASsG,GAAOhF,gBACtCiY,YAAcjT,GAAOzG,YAAY,CAC7B2Z,YAAclT,GAAOle,cACrBqxB,WAAanT,GAAOle,cACpBsxB,aAAepT,GAAOle,cACtBuxB,YAAcrT,GAAOle,gBAEzByxB,gBAAkBvT,GAAOzG,YAAY,CACjCrlB,UAAY8rB,GAAOle,YAAY,CAAEN,SAAS,IAC1C0R,QAAU8M,GAAOle,YAAY,CAAEN,SAAS,IACxCpI,UAAY4mB,GAAOle,YAAY,CAAEN,SAAS,MAE9C8xB,aAAetT,GAAOzG,YAAY,CAC9BrlB,UAAY8rB,GAAOle,YAAY,CAAEN,SAAS,IAC1C0R,QAAU8M,GAAOle,YAAY,CAAEN,SAAS,IACxCpI,UAAY4mB,GAAOle,YAAY,CAAEN,SAAS,QAGlDq1B,WAAYxd,EAAU,yBACvB,CAAE/vB,QAAS,mBAAqB,CAC/BoJ,QAAS,IAAMutB,GAASkU,0BAEpBlb,SAAS,0BAA4B+G,GAAOzG,YAAY,CAC5DosB,cAAgB3lB,GAAOtG,QAASsG,GAAOzG,YAAY,CAC/CiF,YAAcwB,GAAOle,YAAY,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,OAC/D0hC,UAAY1T,GAAOle,YAAY,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,OAC7DkX,SAAW8W,GAAOle,YAAY,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,UAEhE6kC,cAAgB7W,GAAOrG,SAASR,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,mCAAuCub,GAAOrhB,QAASqhB,GAAOzG,YAAY,CAC1JqsB,WAAa5lB,GAAOle,YAAY,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,OAC9D6zC,cAAgB7lB,GAAOrhB,QAASqhB,GAAOle,YAAY,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,QAAU+B,IAAU,CACjG2I,SAAU,CAAC5J,EAAMrH,EAAOoO,EAAQ0B,KACxBzI,EAAKsF,MAAMlQ,KAAK,WAAWsR,OAAS/N,KAC7B+R,IAAI1K,EAAM,oCAEdiB,EAAK2I,SAAS5J,EAAMrH,EAAOoO,EAAQ0B,QAGlDuqC,QAAU9lB,GAAOle,YAAY,CAAEN,SAAS,EAAMrC,IAAK,KACpD,CAAE7V,QAAS,wBAA0B,CACpCoJ,QAAS,KAAO,CACZkzC,QAAS,GACTC,WAAY,EACZC,KAAM,YAIV7sB,SAAS,qBAAuB+G,GAAOrhB,QAASqhB,GAAOzG,YAAY,CACvEY,MAAOhB,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,WAC3DuuB,UAAYhT,GAAOle,YAAY,CAAEN,SAAS,EAAMrC,IAAK,MACrD,CACAzM,QAAS,KAAO,CACZynB,MAAO,kBACP6Y,OAAQ,kBC/EpBv9B,OAAOsC,eAAeguC,GAAS,aAAc,CAAEt6C,OAAO,wCAChB,EACtC,MAAMu0B,GAAS9kB,kCACf,SAAqC8I,EAASO,SACpC4U,EAAa6G,GAAO5G,WAAWpoB,UAAK,EAAWuT,GAC/CyhC,EAAqB,CACvBC,WAAY9sB,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,6BAChEyO,QAAU8M,GAAOle,YAAY,CAAEN,SAAS,OAEpCyX,SAAS,kCAAoC+G,GAAOrhB,QAASqhB,GAAOzG,YAAY,CACpFjxB,KAAM6wB,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,gCAC1DvF,UAAY8gB,GAAOzG,YAAY,EAC1ByG,GAAO1d,QAAS,CAAC,MAAO,CAAEpa,KAAM,UAChC83B,GAAOzd,MAAO,CACX2jC,4BAA6BF,EAC7BG,4BAA6B,CACzBtc,eAAiB7J,GAAOle,YAAY,CAAE3C,IAAK,EAAGnN,IAAK,KAEvDo0C,sBAAuB,CACnB99C,KAAM6wB,EAAW,CAAE/U,KAAM,CAAC,SAAU,UACpCylB,eAAiB7J,GAAOle,YAAY,CAAE3C,IAAK,EAAGnN,IAAK,KAEvDq0C,uBAAwB,CACpBC,WAAYntB,EAAW,CAAE/U,KAAM,CAAC,OAAQ,UACxCmiC,qBAAuBvmB,GAAOle,YAAY,CAAE3C,IAAK,EAAGnN,IAAK,IACzDw0C,uBAAyBxmB,GAAOle,YAAY,CAAE3C,IAAK,EAAGnN,IAAK,KAE/Dy0C,6BAA8BT,EAC9BU,0BAA2B,CACvBC,YAAaxtB,EAAW,CAAE/U,KAAM,CAAC,WAAY,SAAU,SAAU,WAAY,SAAU,QAAS,YAEpGwiC,sBAAuB,CACnBC,cAAgB7mB,GAAOtG,QAASsG,GAAOhF,iBAE3C8rB,oBAAqBd,IAE1B,CAAE18C,QAAS,oBAAqB6Z,sBAAsB,KAC1D,CAAE7Z,QAAS,sBAAwB,CAClCoJ,QAAS,KAAO,CACZpK,KAAM,4BACN4W,OAAQ,CACJ+mC,WAAY,2BACZ/yB,KAAM,mBC1CtBzd,OAAOsC,eAAegvC,GAAS,aAAc,CAAEt7C,OAAO,sCAClB,EACpC,MAAMu0B,GAAS9kB,gCACf,SAAmC8I,EAASO,SAClC4U,EAAa6G,GAAO5G,WAAWpoB,UAAK,EAAWuT,GAC/C8U,EAAY2G,GAAO1G,UAAUtoB,UAAK,EAAWgT,KAC3CiV,SAAS,gCAAkC+G,GAAOrhB,QAASqhB,GAAOzG,YAAY,CAClFjxB,KAAM6wB,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,8BAC1DvF,UAAY8gB,GAAOzG,YAAY,CAC3BytB,aAAc3tB,EAAU,eACxB4tB,eAAgB5tB,EAAU,eAC1B6tB,oBAAqB7tB,EAAU,gBAChC,CAAE/vB,QAAS,qBACf,CAAEA,QAAS,oBAAsB,CAChCoJ,QAAS,KAAO,CACZpK,KAAM,oBACN4W,OAAQ,CACJ8nC,aAAc,CACVxtB,KAAM,wBACNC,WAAY,CACR0tB,MAAO,UAGfF,eAAgB,CACZztB,KAAM,kBAEV0tB,oBAAqB,CACjB1tB,KAAM,qCC3B1B/jB,OAAOsC,eAAeqvC,GAAS,aAAc,CAAE37C,OAAO,oCACpB,EAClC,MAAMu0B,GAAS9kB,8BAEf,SAAiC8I,EAASO,SAChC8U,EAAY2G,GAAO1G,UAAUtoB,UAAK,EAAWgT,GAC7CmV,EAAa6G,GAAO5G,WAAWpoB,UAAK,EAAWuT,GAC/C8iC,KAAiBrnB,GAAOpf,YAAY,CACtC,CACItY,KAAM,SACNyL,KAAMolB,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,8BAC1D5D,cAEJ,CACIvY,KAAM,SACNyL,KAAMslB,EAAU,kBAChBxY,WAAc,CACVy7B,WAAY,CAAC,CACLC,eAAkB,yBAK9BtjB,SAAS,mBAAqB+G,GAAOrhB,QAASqhB,GAAOzG,YAAY,CACrEpqB,KAAMgqB,IACNjZ,SAAUiZ,IACVgM,YAAcnF,GAAOlf,UAAUuY,EAAU,+BAC1C,CAAE/vB,QAAS,kBAAoB,CAC9BoJ,QAAS,KAAO,CACZwN,SAAU,kBACVilB,SAAU,CACN,CACIsB,OAAQ,EACR/tB,QAAS,CACL4uC,aAAc,gCACdC,WAAY,QACZjL,WAAY,4BAMxBrjB,SAAS,+BAAiC+G,GAAOrhB,QAASqhB,GAAOzG,YAAY,CACjFkN,UAAYzG,GAAOle,YAAY,CAAEN,SAAS,EAAMrC,IAAK,IACrDzG,QAAS2gB,EAAU,qBACpB,CAAEvb,SAAU,SAAW,CACtBpL,QAAS,KAAO,CACZ+zB,OAAQ,EACR/tB,QAAS,CACL4uC,aAAc,gCACdC,WAAY,QACZjL,WAAY,0BAIhBrjB,SAAS,sBAAwB+G,GAAOrhB,QAASqhB,GAAOzG,YAAY,CACxE+tB,aAAcnuB,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,qCAClE8iC,WAAYpuB,EAAW,CAAE/U,KAAM,CAAC,QAAS,uBACxC4b,GAAO1d,QAAS,CAAC,CAAEpa,KAAM,kBACzB83B,GAAOzd,MAAO,CACXilC,iCAAkC,CAC9BzqB,QAAS5D,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,mCAEjEgjC,uCAAwC,CACpCn0C,SAAU6lB,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,gBAC9D63B,WAAY+K,GAEhBK,8BAA+B,CAC3BviB,YAAcnF,GAAOlf,UAAUuY,EAAU,sBAE7CsuB,gCAAiC,CAC7Br0C,SAAU6lB,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,gBAC9D63B,WAAY+K,KAGrB,CAAE/9C,QAAS,mBAAoB6Z,sBAAsB,IAAS,CAC7DzQ,QAAS,KAAO,CACZ40C,aAAc,gCACdC,WAAY,QACZjL,WAAY,wBC/ExB7mC,OAAOsC,eAAe6vC,GAAS,aAAc,CAAEn8C,OAAO,gCACxB,EAC9B,MAAMo8C,GAAU3sC,GACV4sC,GAAW3sC,GACX4sC,GAAc1sC,GACd2sC,GAAY7lC,GACZ8lC,GAAkB7lC,GAClB8lC,GAAkBjiC,GAClBkiC,GAAqBjiC,GACrBkiC,GAAmBjiC,GACnBkiC,GAAiBjiC,0BACvB,SAA6BpC,EAASO,MAC9BsjC,GAAQS,kBAAkBtkC,EAASO,MACnCujC,GAASS,mBAAmBvkC,EAASO,MACrCwjC,GAAYS,sBAAsBxkC,EAASO,MAC3CyjC,GAAUS,oBAAoBzkC,EAASO,MACvC0jC,GAAgBS,0BAA0B1kC,EAASO,MACnD2jC,GAAgBS,0BAA0B3kC,EAASO,MACnD4jC,GAAmBS,6BAA6B5kC,EAASO,MACzD6jC,GAAiBS,2BAA2B7kC,EAASO,MACrD8jC,GAAeS,yBAAyB9kC,EAASO,cCpBzD9O,OAAOsC,eAAegxC,GAAS,aAAc,CAAEt9C,OAAO,qCACnB,EACnC,MAAMu0B,GAAS9kB,+BACf,SAAkC8I,EAASO,SACjC8U,EAAY2G,GAAO1G,UAAUtoB,UAAK,EAAWgT,GAC7CmV,EAAa6G,GAAO5G,WAAWpoB,UAAK,EAAWuT,KAC7C0U,SAAS,oBAAsB+G,GAAOrhB,QAASqhB,GAAOzG,YAAY,CACtEyvB,qBAAuBhpB,GAAOhF,eAC9BiuB,eAAiBjpB,GAAOhF,eACxBuQ,QAAUvL,GAAOle,YAAY,CAAEN,SAAS,IACxC0nC,cAAgBlpB,GAAOrG,SAASR,EAAW,CAAE7U,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,gBAAmB4U,EAAU,eAClH,CAAE/vB,QAAS,mBAAqB,CAC/BoJ,QAAS,WACC64B,EAAOt5B,KAAK2kB,MAAuB,WAAjB3kB,KAAK4mB,UAA2B,iBACjD,CACHmwB,mBAAmB,EACnBC,aAAa,EACb1d,KAAAA,EACA2d,WAAY,CACRrV,sBAAuB,CACnBvrC,KAAM,sBACNktC,UAAW,CACPltC,KAAM,kBACNijC,KAAAA,EACAqK,aAAc,CACVttC,KAAM,4BACNijC,KAAAA,GAEJmK,SAAU,wBAGlB3B,uBAAwB,CACpBzrC,KAAM,uBACNktC,UAAW,CACPltC,KAAM,kBACNijC,KAAAA,EACAqK,aAAc,CACVttC,KAAM,wBACNijC,KAAAA,EACA2K,eAAgB,CACZgB,eACAC,WAAY,CAAC,EAAK,IAEtBnB,eAAgB,CACZkB,eACAC,WAAY,CAAC,EAAK,IAEtBhB,gBAAiB,CACbe,eACAC,WAAY,CAAC,EAAK,IAEtBlB,kBAAmB,CACfiB,eACAC,WAAY,CAAC,EAAK,IAEtBf,OAAQ,CACJ,CACI1M,WAAY,CAAEoN,SAAU,EAAKG,UAAW,EAAK79B,OAAQ,EAAK29B,YAAa,EAAKC,SAAU,GACtFla,MAAO,2BAEX,CACI4M,WAAY,CAAEoN,SAAU,EAAKG,UAAW,EAAK79B,OAAQ,EAAK29B,YAAa,EAAKC,cAC5Ela,MAAO,8BAEX,CACI4M,WAAY,CAAEoN,SAAU,EAAKG,UAAW,EAAK79B,OAAQ,EAAK29B,YAAa,GAAKC,SAAU,GACtFla,MAAO,4BAEX,CACI4M,WAAY,CAAEoN,SAAU,EAAKG,UAAW,EAAK79B,OAAQ,KAAO29B,YAAa,EAAKC,SAAU,IACxFla,MAAO,2BAEX,CACI4M,WAAY,CAAEoN,SAAU,EAAKG,UAAW,EAAK79B,OAAQ,KAAO29B,gBAAmBC,SAAU,GACzFla,MAAO,6BAInB4Y,SAAU,qBAGlBxB,oBAAqB,CACjB5rC,KAAM,oBACNktC,UAAW,CACPltC,KAAM,kBACNijC,KAAAA,EACAqK,aAAc,CACVttC,KAAM,oBACNijC,KAAAA,GAEJmK,SAAU,yBC1FtCjgC,OAAOsC,eAAe43B,GAAS,aAAc,CAAElkC,OAAO,wBAChC,EACtB,MAAMmkC,GAAgB10B,GAChB20B,GAAW10B,GACX8kB,GAAW5kB,GACXy0B,GAAc3tB,GACdgnC,GAAc/mC,GACdgnC,GAAkBnjC,GAClB8pB,GAAc7pB,GACd8pB,GAAe7pB,GACf+Z,GAAe9Z,GACf6pB,GAAW5pB,GACX6pB,GAAS5pB,GACT6pB,GAAkB5pB,GAClB8iC,GAAa7iC,GACb8iC,GAAkB7iC,kBACxB,SAAqBzC,EAASO,MAEtB0b,GAASmQ,mBAAmBpsB,EAASO,MACrCqrB,GAAcU,wBAAwBtsB,EAASO,MAC/CsrB,GAASU,mBAAmBvsB,EAASO,MACrCurB,GAAYU,sBAAsBxsB,EAASO,MAC3C6kC,GAAgBG,0BAA0BvlC,EAASO,MACnD4kC,GAAYK,sBAAsBxlC,EAASO,MAC3CwrB,GAAYU,sBAAsBzsB,EAASO,MAC3CyrB,GAAaU,uBAAuB1sB,EAASO,MAC7C2b,GAAamQ,uBAAuBrsB,EAASO,MAC7C0rB,GAASU,mBAAmB3sB,EAASO,MACrC2rB,GAAOU,iBAAiB5sB,EAASO,MACjC4rB,GAAgBU,0BAA0B7sB,EAASO,MACnD8kC,GAAWI,qBAAqBzlC,EAASO,MACzC+kC,GAAgBI,0BAA0B1lC,EAASO,IC/B3D,IAAIgB,GAAmBlc,IAAQA,GAAKkc,yBAA4B7P,OAAU,SAAS7N,EAAGmD,EAAGF,EAAG0a,QAC7E,IAAPA,MAAuB1a,OACvB2a,EAAOhQ,OAAOiQ,yBAAyB1a,EAAGF,GACzC2a,aAAkBA,GAAQza,EAAE2a,WAAaF,EAAKG,UAAYH,EAAKI,kBAC3D,CAAEC,YAAY,EAAMtM,IAAK,kBAAoBxO,EAAEF,aAEjDiN,eAAelQ,EAAG2d,EAAIC,IAC3B,SAAS5d,EAAGmD,EAAGF,EAAG0a,QACT,IAAPA,MAAuB1a,KACzB0a,GAAMxa,EAAEF,KAEVgmC,GAAsBznC,IAAQA,GAAKynC,4BAA+Bp7B,OAAU,SAAS7N,EAAGiF,UACjFiL,eAAelQ,EAAG,UAAW,CAAEie,YAAY,EAAMra,MAAOqB,KAC9D,SAASjF,EAAGiF,aACEA,IAEfikC,GAAgB1nC,IAAQA,GAAK0nC,cAAiB,SAAUC,MACpDA,GAAOA,EAAIrrB,kBAAmBqrB,MAC9BplB,EAAS,MACF,MAAPolB,UAAsBlmC,KAAKkmC,EAAe,YAANlmC,GAAmB2K,OAAOrI,UAAU4Y,eAAejX,KAAKiiC,EAAKlmC,OAAoB8gB,EAAQolB,EAAKlmC,aACnH8gB,EAAQolB,GACpBplB,GAEXnW,OAAOsC,eAAek5B,GAAS,aAAc,CAAExlC,OAAO,IACtD,2DAAoE,EACpE,MAAMu0B,GAAS9kB,GACTg2B,GAAgB/1B,GAChBg2B,GAAY91B,GAClB,sBAAsB01B,GAAa5uB,IAMnC,yBALA,iBACUoC,EAAc,IAAIyb,GAAOoR,4BAC3BF,GAAcG,iBAAiB9sB,GAC5BA,GAsBX+sB,iBALA,SAAoB/sB,SACVP,EAAU,IAAIgc,GAAOuR,wBACvBJ,GAAUK,aAAaxtB,EAASO,GAC7BP,+MCpDXvO,OAAOsC,eAAeihB,GAAS,aAAc,CAAEvtB,OAAO,4BAC5B,qBAC1B,SAAyB8Y,KACT0U,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,aACA,SACA,OACA,OACA,OACA,aACA,OACA,SACA,OACA,QACA,QACA,MACA,YAEQA,SAAS,cAAe,CAChC,gCACA,gCACA,8BACA,kCACA,4CACA,iCACA,kCACA,kCACA,gCACA,iCACA,uDCjlBRxjB,OAAOsC,eAAego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A,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,cAAe,CAChC,gCACA,gCACA,8BACA,kCACA,4CACA,iCACA,kCACA,kCACA,gCACA,iCACA,uDCvXRxjB,OAAOsC,eAAegoB,GAAS,aAAc,CAAEt0B,OAAO,mCACrB,EACjC,MAAMu0B,GAAS9kB,6BACf,SAAgC8I,EAASO,SAC/B8U,EAAY2G,GAAO1G,UAAUtoB,UAAK,EAAWgT,GAC7CmV,EAAa6G,GAAO5G,WAAWpoB,UAAK,EAAWuT,GAC/CowB,KAAsB3U,GAAOpf,YAAY,CAC3C,CACItY,K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rrB,kBAAmBqrB,MAC9BplB,EAAS,MACF,MAAPolB,UAAsBlmC,KAAKkmC,EAAe,YAANlmC,GAAmB2K,OAAOrI,UAAU4Y,eAAejX,KAAKiiC,EAAKlmC,OAAoB8gB,EAAQolB,EAAKlmC,aACnH8gB,EAAQolB,GACpBplB,GAEXnW,OAAOsC,eAAek5B,GAAS,aAAc,CAAExlC,OAAO,IACtD,2DAAoE,EACpE,MAAMu0B,GAAS9kB,GACTg2B,GAAgB/1B,GAChBg2B,GAAY91B,GAClB,sBAAsB01B,GAAa5uB,IAMnC,yBALA,iBACUoC,EAAc,IAAIyb,GAAOoR,4BAC3BF,GAAcG,iBAAiB9sB,GAC5BA,GAsBX+sB,iBALA,SAAoB/sB,SACVP,EAAU,IAAIgc,GAAOuR,wBACvBJ,GAAUK,aAAaxtB,EAASO,GAC7BP,+MCpDXvO,OAAOsC,eAAeihB,GAAS,aAAc,CAAEvtB,OAAO,4BAC5B,qBAC1B,SAAyB8Y,KACT0U,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,YA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GAEXnW,OAAOsC,eAAek5B,GAAS,aAAc,CAAExlC,OAAO,IACtD,2DAAoE,EACpE,MAAMu0B,GAAS9kB,GACTg2B,GAAgB/1B,GAChBg2B,GAAY91B,GAClB,sBAAsB01B,GAAa5uB,IAMnC,yBALA,iBACUoC,EAAc,IAAIyb,GAAOoR,4BAC3BF,GAAcG,iBAAiB9sB,GAC5BA,GAsBX+sB,iBALA,SAAoB/sB,SACVP,EAAU,IAAIgc,GAAOuR,wBACvBJ,GAAUK,aAAaxtB,EAASO,GAC7BP,+MCpDXvO,OAAOsC,eAAeihB,GAAS,aAAc,CAAEvtB,OAAO,4BAC5B,qBAC1B,SAAyB8Y,KACT0U,SAAS,sBAAuB,CACxC,qCACA,4BACA,+BACA,yBACA,0BACA,8BACA,gCACA,6BACA,yBACA,kCACA,4BACA,2BACA,wBACA,+BACA,iCACA,6BACA,0BACA,+BACA,gCACA,uBACA,8BACA,oCACA,+BACA,yCACA,+BACA,uBACA,6BACA,qBACA,0BACA,yBACA,4CACA,+BACA,0CACA,iCACA,4BACA,gCACA,0BACA,yBACA,6BACA,2BACA,4BACA,wBACA,uBACA,iBACA,4CACA,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,kBAAmB,CACpC,iBACA,QACA,sBACA,yBACA,qBACA,cACA,mBACA,yBACA,gBACA,qBACA,6BAEQA,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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"} \ No newline at end of file diff --git a/changelog/index.html b/changelog/index.html index bf8c6698..f9b8a4bf 100644 --- a/changelog/index.html +++ b/changelog/index.html @@ -29,8 +29,8 @@ BigInt64Array = function() { } } </script> -<script type="module" crossorigin src="/assets/index.5e882d57.js"></script> - <link rel="modulepreload" href="/assets/vendor.273f4765.js"> +<script type="module" crossorigin src="/assets/index.182fe7ed.js"></script> + <link rel="modulepreload" href="/assets/vendor.6465e0ff.js"> <link rel="stylesheet" href="/assets/index.2396f736.css"> </head> <body> diff --git a/chat-type/index.html b/chat-type/index.html new file mode 100644 index 00000000..c6ebc093 --- /dev/null +++ b/chat-type/index.html @@ -0,0 +1,40 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <script> + (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ + (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), + m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) + })(window,document,'script','https://www.google-analytics.com/analytics.js','ga'); + ga('create', 'UA-73024255-2', 'auto'); + ga('set', 'page', location.pathname); + ga('set', 'dimension1', localStorage.getItem('theme') || 'default'); + ga('set', 'dimension2', 'v2'); + ga('set', 'dimension3', localStorage.getItem('schema_version') || '1.18.2'); + ga('set', 'dimension4', localStorage.getItem('language') || 'en'); + ga('set', 'dimension5', 'none'); + ga('set', 'dimension7', matchMedia('(prefers-color-scheme: light)').matches ? 'light' : matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'none'); + ga('send', 'pageview'); + </script> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <title>Chat Type Generator Minecraft 1.19 + + + + + + + + +
+ + + diff --git a/dimension-type/index.html b/dimension-type/index.html index 20a3e3db..a2529a64 100644 --- a/dimension-type/index.html +++ b/dimension-type/index.html @@ -29,8 +29,8 @@ BigInt64Array = function() { } } - - + + diff --git a/dimension/index.html b/dimension/index.html index bca34eef..4204544c 100644 --- a/dimension/index.html +++ b/dimension/index.html @@ -29,8 +29,8 @@ BigInt64Array = function() { } } - - + + diff --git a/index.html b/index.html index cdf15711..4b8f32bc 100644 --- a/index.html +++ b/index.html @@ -29,8 +29,8 @@ BigInt64Array = function() { } } - - + + diff --git a/item-modifier/index.html b/item-modifier/index.html index bc67e1a1..09489dea 100644 --- a/item-modifier/index.html +++ b/item-modifier/index.html @@ -29,8 +29,8 @@ BigInt64Array = function() { } } - - + + diff --git a/loot-table/index.html b/loot-table/index.html index 9ae7333a..efa579fe 100644 --- a/loot-table/index.html +++ b/loot-table/index.html @@ -29,8 +29,8 @@ BigInt64Array = function() { } } - - + + diff --git a/predicate/index.html b/predicate/index.html index 72795554..467459db 100644 --- a/predicate/index.html +++ b/predicate/index.html @@ -29,8 +29,8 @@ BigInt64Array = function() { } } - - + + diff --git a/recipe/index.html b/recipe/index.html index 81ec8ca1..dcd2b654 100644 --- a/recipe/index.html +++ b/recipe/index.html @@ -29,8 +29,8 @@ BigInt64Array = function() { } } - - + + diff --git a/sitemap.txt b/sitemap.txt index 84f9f949..408de8d9 100644 --- a/sitemap.txt +++ b/sitemap.txt @@ -5,6 +5,7 @@ https://misode.github.io/item-modifier/ https://misode.github.io/advancement/ https://misode.github.io/recipe/ https://misode.github.io/text-component/ +https://misode.github.io/chat-type/ https://misode.github.io/dimension/ https://misode.github.io/dimension-type/ https://misode.github.io/world/ diff --git a/sitemap2.txt b/sitemap2.txt index 84f9f949..408de8d9 100644 --- a/sitemap2.txt +++ b/sitemap2.txt @@ -5,6 +5,7 @@ https://misode.github.io/item-modifier/ https://misode.github.io/advancement/ https://misode.github.io/recipe/ https://misode.github.io/text-component/ +https://misode.github.io/chat-type/ https://misode.github.io/dimension/ https://misode.github.io/dimension-type/ https://misode.github.io/world/ diff --git a/sounds/index.html b/sounds/index.html index b7d94bd9..256a7469 100644 --- a/sounds/index.html +++ b/sounds/index.html @@ -29,8 +29,8 @@ BigInt64Array = function() { } } - - + + diff --git a/text-component/index.html b/text-component/index.html index d2d99871..a743eacf 100644 --- a/text-component/index.html +++ b/text-component/index.html @@ -29,8 +29,8 @@ BigInt64Array = function() { } } - - + + diff --git a/versions/index.html b/versions/index.html index 9e61ee8d..4077ae4a 100644 --- a/versions/index.html +++ b/versions/index.html @@ -29,8 +29,8 @@ BigInt64Array = function() { } } - - + + diff --git a/world/index.html b/world/index.html index 455fb91c..1bc53e57 100644 --- a/world/index.html +++ b/world/index.html @@ -29,8 +29,8 @@ BigInt64Array = function() { } } - - + + diff --git a/worldgen/biome/index.html b/worldgen/biome/index.html index e8c15a53..0a21b709 100644 --- a/worldgen/biome/index.html +++ b/worldgen/biome/index.html @@ -29,8 +29,8 @@ BigInt64Array = function() { } } - - + + diff --git a/worldgen/carver/index.html b/worldgen/carver/index.html index bfc9f069..4eb00970 100644 --- a/worldgen/carver/index.html +++ b/worldgen/carver/index.html @@ -29,8 +29,8 @@ BigInt64Array = function() { } } - - + + diff --git a/worldgen/density-function/index.html b/worldgen/density-function/index.html index 8d59d8eb..ae3ed307 100644 --- a/worldgen/density-function/index.html +++ b/worldgen/density-function/index.html @@ -29,8 +29,8 @@ BigInt64Array = function() { } } - - + + diff --git a/worldgen/feature/index.html b/worldgen/feature/index.html index 6a21b9cd..baec69a4 100644 --- a/worldgen/feature/index.html +++ b/worldgen/feature/index.html @@ -29,8 +29,8 @@ BigInt64Array = function() { } } - - + + diff --git a/worldgen/flat-world-preset/index.html b/worldgen/flat-world-preset/index.html index af19096d..3271d950 100644 --- a/worldgen/flat-world-preset/index.html +++ b/worldgen/flat-world-preset/index.html @@ -29,8 +29,8 @@ BigInt64Array = function() { } } - - + + diff --git a/worldgen/index.html b/worldgen/index.html index dbc1008b..d1d8c2f3 100644 --- a/worldgen/index.html +++ b/worldgen/index.html @@ -29,8 +29,8 @@ BigInt64Array = function() { } } - - + + diff --git a/worldgen/noise-settings/index.html b/worldgen/noise-settings/index.html index b30d679d..4c19e57e 100644 --- a/worldgen/noise-settings/index.html +++ b/worldgen/noise-settings/index.html @@ -29,8 +29,8 @@ BigInt64Array = function() { } } - - + + diff --git a/worldgen/noise/index.html b/worldgen/noise/index.html index cd4668e9..4448e641 100644 --- a/worldgen/noise/index.html +++ b/worldgen/noise/index.html @@ -29,8 +29,8 @@ BigInt64Array = function() { } } - - + + diff --git a/worldgen/placed-feature/index.html b/worldgen/placed-feature/index.html index e995aaf0..767f5c86 100644 --- a/worldgen/placed-feature/index.html +++ b/worldgen/placed-feature/index.html @@ -29,8 +29,8 @@ BigInt64Array = function() { } } - - + + diff --git a/worldgen/processor-list/index.html b/worldgen/processor-list/index.html index f33a4872..e5164e7a 100644 --- a/worldgen/processor-list/index.html +++ b/worldgen/processor-list/index.html @@ -29,8 +29,8 @@ BigInt64Array = function() { } } - - + + diff --git a/worldgen/structure-feature/index.html b/worldgen/structure-feature/index.html index cb3736e2..3ee38dfa 100644 --- a/worldgen/structure-feature/index.html +++ b/worldgen/structure-feature/index.html @@ -29,8 +29,8 @@ BigInt64Array = function() { } } - - + + diff --git a/worldgen/structure-set/index.html b/worldgen/structure-set/index.html index bdeb1e2f..eaaf2de2 100644 --- a/worldgen/structure-set/index.html +++ b/worldgen/structure-set/index.html @@ -29,8 +29,8 @@ BigInt64Array = function() { } } - - + + diff --git a/worldgen/structure/index.html b/worldgen/structure/index.html index a0e6930f..4b03ae74 100644 --- a/worldgen/structure/index.html +++ b/worldgen/structure/index.html @@ -29,8 +29,8 @@ BigInt64Array = function() { } } - - + + diff --git a/worldgen/surface-builder/index.html b/worldgen/surface-builder/index.html index 4e4881f4..e73ff65d 100644 --- a/worldgen/surface-builder/index.html +++ b/worldgen/surface-builder/index.html @@ -29,8 +29,8 @@ BigInt64Array = function() { } } - - + + diff --git a/worldgen/template-pool/index.html b/worldgen/template-pool/index.html index 4610881a..024f05fe 100644 --- a/worldgen/template-pool/index.html +++ b/worldgen/template-pool/index.html @@ -29,8 +29,8 @@ BigInt64Array = function() { } } - - + + diff --git a/worldgen/world-preset/index.html b/worldgen/world-preset/index.html index 0fe39ad7..e335629e 100644 --- a/worldgen/world-preset/index.html +++ b/worldgen/world-preset/index.html @@ -29,8 +29,8 @@ BigInt64Array = function() { } } - - + +