DEADSOFTWARE

get rid of "rulez", "kastet" and "pulemet" in symbols; also some cosmetics and small...
authorDmitry D. Chernov <blackdoomer@yandex.ru>
Fri, 10 Nov 2023 15:15:44 +0000 (01:15 +1000)
committerDmitry D. Chernov <blackdoomer@yandex.ru>
Fri, 10 Nov 2023 15:15:44 +0000 (01:15 +1000)
16 files changed:
src/game/g_console.pas
src/game/g_game.pas
src/game/g_gui.pas
src/game/g_items.pas
src/game/g_language.pas
src/game/g_main.pas
src/game/g_menu.pas
src/game/g_monsters.pas
src/game/g_netmsg.pas
src/game/g_options.pas
src/game/g_player.pas
src/game/g_playermodel.pas
src/game/g_triggers.pas
src/game/g_weapons.pas
src/mapdef/mapdef.txt
src/shared/mapdef.inc

index 5315b351b7aa8d4999688a60b5cd9c456d65ee37..20b2b539d4757270aac580bf7bf4e51709ed7530 100644 (file)
@@ -1064,10 +1064,10 @@ begin
   AddCommand('p2_autoswitch', PlayerSettingsCVars);
   AddCommand('p1_switch_empty', PlayerSettingsCVars);
   AddCommand('p2_switch_empty', PlayerSettingsCVars);
-  AddCommand('p1_skip_fist', PlayerSettingsCVars);
-  AddCommand('p2_skip_fist', PlayerSettingsCVars);
-  AddCommand('p1_priority_kastet', PlayerSettingsCVars);
-  AddCommand('p2_priority_kastet', PlayerSettingsCVars);
+  AddCommand('p1_skip_ironfist', PlayerSettingsCVars);
+  AddCommand('p2_skip_ironfist', PlayerSettingsCVars);
+  AddCommand('p1_priority_ironfist', PlayerSettingsCVars);
+  AddCommand('p2_priority_ironfist', PlayerSettingsCVars);
   AddCommand('p1_priority_saw', PlayerSettingsCVars);
   AddCommand('p2_priority_saw', PlayerSettingsCVars);
   AddCommand('p1_priority_pistol', PlayerSettingsCVars);
@@ -1084,8 +1084,8 @@ begin
   AddCommand('p2_priority_plasma', PlayerSettingsCVars);
   AddCommand('p1_priority_bfg', PlayerSettingsCVars);
   AddCommand('p2_priority_bfg', PlayerSettingsCVars);
-  AddCommand('p1_priority_super', PlayerSettingsCVars);
-  AddCommand('p2_priority_super', PlayerSettingsCVars);
+  AddCommand('p1_priority_superchaingun', PlayerSettingsCVars);
+  AddCommand('p2_priority_superchaingun', PlayerSettingsCVars);
   AddCommand('p1_priority_flamethrower', PlayerSettingsCVars);
   AddCommand('p2_priority_flamethrower', PlayerSettingsCVars);
   AddCommand('p1_priority_berserk', PlayerSettingsCVars);
@@ -2251,15 +2251,15 @@ begin
   WriteLn(f, 'g_maxlives ', gsMaxLives);
   WriteLn(f, 'g_item_respawn_time ', gsItemRespawnTime);
   WriteLn(f, 'g_item_time_random ', gsItemRespawnRandom);
-  WriteLn(f, 'g_powerup_respawn_time ', gsRulezRespawnTime);
-  WriteLn(f, 'g_powerup_time_random ', gsRulezRespawnRandom);
+  WriteLn(f, 'g_powerup_respawn_time ', gsPowerupRespawnTime);
+  WriteLn(f, 'g_powerup_time_random ', gsPowerupRespawnRandom);
   WriteLn(f, 'g_spawn_invul ', gsSpawnInvul);
   WriteLn(f, 'g_warmup_time ', gsWarmupTime);
 
   WriteFlag('g_friendlyfire ', GAME_OPTION_TEAMDAMAGE);
   WriteFlag('g_friendly_hit_trace ', GAME_OPTION_TEAMHITTRACE);
   WriteFlag('g_friendly_hit_projectile ', GAME_OPTION_TEAMHITPROJECTILE);
-  WriteFlag('g_powerup_randomize_respawn ', GAME_OPTION_RULEZRANDOM);
+  WriteFlag('g_powerup_randomize_respawn ', GAME_OPTION_POWERUPRANDOM);
   WriteFlag('g_items_all_respawn_random ', GAME_OPTION_ITEMALLRANDOM);
   WriteFlag('g_items_help_respawn_random ', GAME_OPTION_ITEMHELPRANDOM);
   WriteFlag('g_items_ammo_respawn_random ', GAME_OPTION_ITEMAMMORANDOM);
@@ -2282,19 +2282,18 @@ begin
     WriteLn(f, 'p1_team ', FormatTeam(Team));
     WriteLn(f, 'p1_autoswitch ', WeaponSwitch);
     WriteLn(f, 'p1_switch_empty ', SwitchToEmpty);
-    WriteLn(f, 'p1_priority_kastet ', Max(0, WeaponPreferences[WEAPON_KASTET]));
+    WriteLn(f, 'p1_priority_ironfist ', Max(0, WeaponPreferences[WEAPON_IRONFIST]));
     WriteLn(f, 'p1_priority_saw ', Max(0, WeaponPreferences[WEAPON_SAW]));
     WriteLn(f, 'p1_priority_pistol ', Max(0, WeaponPreferences[WEAPON_PISTOL]));
     WriteLn(f, 'p1_priority_shotgun1 ', Max(0, WeaponPreferences[WEAPON_SHOTGUN1]));    
-    WriteLn(f, 'p1_priority_shotgun2 ', Max(0, WeaponPreferences[WEAPON_SHOTGUN2] ));
+    WriteLn(f, 'p1_priority_shotgun2 ', Max(0, WeaponPreferences[WEAPON_SHOTGUN2]));
     WriteLn(f, 'p1_priority_chaingun ', Max(0, WeaponPreferences[WEAPON_CHAINGUN]));    
     WriteLn(f, 'p1_priority_rocketlauncher ', Max(0, WeaponPreferences[WEAPON_ROCKETLAUNCHER]));    
     WriteLn(f, 'p1_priority_plasma ', Max(0, WeaponPreferences[WEAPON_PLASMA]));    
     WriteLn(f, 'p1_priority_bfg ', Max(0, WeaponPreferences[WEAPON_BFG]));
-    WriteLn(f, 'p1_priority_super ', Max(0, WeaponPreferences[WEAPON_SUPERPULEMET]));                         
+    WriteLn(f, 'p1_priority_superchaingun ', Max(0, WeaponPreferences[WEAPON_SUPERCHAINGUN]));                         
     WriteLn(f, 'p1_priority_flamethrower ', Max(0, WeaponPreferences[WEAPON_FLAMETHROWER]));
     WriteLn(f, 'p1_priority_berserk ', Max(0, WeaponPreferences[WP_LAST+1]));    
-    //
   end;
   with gPlayer2Settings do
   begin
@@ -2304,16 +2303,16 @@ begin
     WriteLn(f, 'p2_team ', FormatTeam(Team));
     WriteLn(f, 'p2_autoswitch ', WeaponSwitch);
     WriteLn(f, 'p2_switch_empty ', SwitchToEmpty);
-    WriteLn(f, 'p2_priority_kastet ', Max(0, WeaponPreferences[WEAPON_KASTET]));
+    WriteLn(f, 'p2_priority_ironfist ', Max(0, WeaponPreferences[WEAPON_IRONFIST]));
     WriteLn(f, 'p2_priority_saw ', Max(0, WeaponPreferences[WEAPON_SAW]));
     WriteLn(f, 'p2_priority_pistol ', Max(0, WeaponPreferences[WEAPON_PISTOL]));
     WriteLn(f, 'p2_priority_shotgun1 ', Max(0, WeaponPreferences[WEAPON_SHOTGUN1]));
-    WriteLn(f, 'p2_priority_shotgun2 ', Max(0, WeaponPreferences[WEAPON_SHOTGUN1]));
+    WriteLn(f, 'p2_priority_shotgun2 ', Max(0, WeaponPreferences[WEAPON_SHOTGUN2]));
     WriteLn(f, 'p2_priority_chaingun ', Max(0, WeaponPreferences[WEAPON_CHAINGUN]));
     WriteLn(f, 'p2_priority_rocketlauncher ', Max(0, WeaponPreferences[WEAPON_ROCKETLAUNCHER]));
     WriteLn(f, 'p2_priority_plasma ', Max(0, WeaponPreferences[WEAPON_PLASMA]));
     WriteLn(f, 'p2_priority_bfg ', Max(0, WeaponPreferences[WEAPON_BFG]));
-    WriteLn(f, 'p2_priority_super ', Max(0, WeaponPreferences[WEAPON_SUPERPULEMET]));
+    WriteLn(f, 'p2_priority_superchaingun ', Max(0, WeaponPreferences[WEAPON_SUPERCHAINGUN]));
     WriteLn(f, 'p2_priority_flamethrower ', Max(0, WeaponPreferences[WEAPON_FLAMETHROWER]));
     WriteLn(f, 'p2_priority_berserk ', Max(0, WeaponPreferences[WP_LAST+1]));       
   end;
index a35e2cba976e5c6c121c4d043cad3a8a169ca802..110fbe47c7e7435e82d8b5bede3ca16572e5f73f 100644 (file)
@@ -34,8 +34,8 @@ type
     SpawnInvul: Word;
     ItemRespawnTime: Word;
     ItemRespawnRandom: Word;
-    RulezRespawnTime: Word;
-    RulezRespawnRandom: Word;
+    PowerupRespawnTime: Word;
+    PowerupRespawnRandom: Word;
     MaxLives: Byte;
     Options: LongWord;
     WAD: String;
@@ -69,7 +69,7 @@ type
     WeaponSwitch: Byte;
     WeaponPreferences: Array[WP_FIRST..WP_LAST+1] of Byte;
     SwitchToEmpty: Byte;
-    SkipFist: Byte;
+    SkipIronFist: Byte;
   end;
 
   TMegaWADInfo = record
@@ -185,24 +185,24 @@ const
   EXIT_ENDLEVELSINGLE  = 4;
   EXIT_ENDLEVELCUSTOM  = 5;
 
-  GAME_OPTION_RESERVED          = 1;
-  GAME_OPTION_TEAMDAMAGE        = 2;
-  GAME_OPTION_ALLOWEXIT         = 4;
-  GAME_OPTION_WEAPONSTAY        = 8;
-  GAME_OPTION_MONSTERS          = 16;
-  GAME_OPTION_BOTVSPLAYER       = 32;
-  GAME_OPTION_BOTVSMONSTER      = 64;
-  GAME_OPTION_DMKEYS            = 128;
-  GAME_OPTION_TEAMHITTRACE      = 256;
-  GAME_OPTION_TEAMHITPROJECTILE = 512;
-  GAME_OPTION_TEAMABSORBDAMAGE  = 1024;
-  GAME_OPTION_ALLOWDROPFLAG     = 2048;
-  GAME_OPTION_THROWFLAG         = 4096;
-  GAME_OPTION_RULEZRANDOM       = 8192;
-  GAME_OPTION_ITEMALLRANDOM     = 16384;
-  GAME_OPTION_ITEMHELPRANDOM    = 32768;
-  GAME_OPTION_ITEMAMMORANDOM    = 65536;
-  GAME_OPTION_ITEMWEAPONRANDOM  = 131072;
+  GAME_OPTION_RESERVED          = 1 shl 0;
+  GAME_OPTION_TEAMDAMAGE        = 1 shl 1;
+  GAME_OPTION_ALLOWEXIT         = 1 shl 2;
+  GAME_OPTION_WEAPONSTAY        = 1 shl 3;
+  GAME_OPTION_MONSTERS          = 1 shl 4;
+  GAME_OPTION_BOTVSPLAYER       = 1 shl 5;
+  GAME_OPTION_BOTVSMONSTER      = 1 shl 6;
+  GAME_OPTION_DMKEYS            = 1 shl 7;
+  GAME_OPTION_TEAMHITTRACE      = 1 shl 8;
+  GAME_OPTION_TEAMHITPROJECTILE = 1 shl 9;
+  GAME_OPTION_TEAMABSORBDAMAGE  = 1 shl 10;
+  GAME_OPTION_ALLOWDROPFLAG     = 1 shl 11;
+  GAME_OPTION_THROWFLAG         = 1 shl 12;
+  GAME_OPTION_POWERUPRANDOM     = 1 shl 13;
+  GAME_OPTION_ITEMALLRANDOM     = 1 shl 14;
+  GAME_OPTION_ITEMHELPRANDOM    = 1 shl 15;
+  GAME_OPTION_ITEMAMMORANDOM    = 1 shl 16;
+  GAME_OPTION_ITEMWEAPONRANDOM  = 1 shl 17;
 
   STATE_NONE        = 0;
   STATE_MENU        = 1;
@@ -3873,7 +3873,7 @@ begin
 
   p.DrawPain();
   p.DrawPickup();
-  p.DrawRulez();
+  p.DrawOverlay();
   if gShowMap then DrawMinimap(p, _TRect(0, 0, 128, 128));
   if g_Debug_Player then
     g_Player_DrawDebug(p);
@@ -3885,9 +3885,20 @@ var
   px: Integer = -1;
   py: Integer = -1;
 begin
-  if g_profile_frame_draw and (profileFrameDraw <> nil) then px := px-drawProfiles(px, py, profileFrameDraw);
-  if g_profile_collision and (profMapCollision <> nil) then begin px := px-drawProfiles(px, py, profMapCollision); py -= calcProfilesHeight(profMonsLOS); end;
-  if g_profile_los and (profMonsLOS <> nil) then begin px := px-drawProfiles(px, py, profMonsLOS); py -= calcProfilesHeight(profMonsLOS); end;
+  if g_profile_frame_draw and (profileFrameDraw <> nil) then
+    px -= drawProfiles(px, py, profileFrameDraw);
+
+  if g_profile_collision and (profMapCollision <> nil) then
+  begin
+    px -= drawProfiles(px, py, profMapCollision);
+    py -= calcProfilesHeight(profMonsLOS);
+  end;
+
+  if g_profile_los and (profMonsLOS <> nil) then
+  begin
+    px -= drawProfiles(px, py, profMonsLOS);
+    py -= calcProfilesHeight(profMonsLOS);
+  end;
 end;
 
 procedure g_Game_Draw();
@@ -4376,7 +4387,7 @@ begin
       gPlayer1.WeapSwitchMode := gPlayer1Settings.WeaponSwitch;
       gPlayer1.setWeaponPrefs(gPlayer1Settings.WeaponPreferences);
       gPlayer1.SwitchToEmpty := gPlayer1Settings.SwitchToEmpty;
-      gPlayer1.SkipFist := gPlayer1Settings.SkipFist;
+      gPlayer1.SkipIronFist := gPlayer1Settings.SkipIronFist;
       g_Console_Add(Format(_lc[I_PLAYER_JOIN], [gPlayer1.Name]), True);
       if g_Game_IsServer and g_Game_IsNet then
         MH_SEND_PlayerCreate(gPlayer1.UID);
@@ -4410,7 +4421,7 @@ begin
       gPlayer2.WeapSwitchMode := gPlayer2Settings.WeaponSwitch;
       gPlayer2.setWeaponPrefs(gPlayer2Settings.WeaponPreferences);
       gPlayer2.SwitchToEmpty := gPlayer2Settings.SwitchToEmpty;
-      gPlayer2.SkipFist := gPlayer2Settings.SkipFist;
+      gPlayer2.SkipIronFist := gPlayer2Settings.SkipIronFist;
       g_Console_Add(Format(_lc[I_PLAYER_JOIN], [gPlayer2.Name]), True);
       if g_Game_IsServer and g_Game_IsNet then
         MH_SEND_PlayerCreate(gPlayer2.UID);
@@ -4493,21 +4504,21 @@ begin
   g_Game_ClearLoading();
 
 // Íàñòðîéêè èãðû:
-  FillByte(gGameSettings, SizeOf(TGameSettings), 0);
+  gGameSettings := Default(TGameSettings);
   gAimLine := False;
   gShowMap := False;
   gGameSettings.GameType := GT_SINGLE;
   gGameSettings.MaxLives := 0;
-  gGameSettings.Options := gGameSettings.Options + GAME_OPTION_ALLOWEXIT;
-  gGameSettings.Options := gGameSettings.Options + GAME_OPTION_MONSTERS;
-  gGameSettings.Options := gGameSettings.Options + GAME_OPTION_BOTVSMONSTER;
-  gGameSettings.Options := gGameSettings.Options + GAME_OPTION_TEAMHITPROJECTILE;
-  gGameSettings.Options := gGameSettings.Options + GAME_OPTION_TEAMHITTRACE;
-  gGameSettings.Options := gGameSettings.Options + GAME_OPTION_RULEZRANDOM;
-  gGameSettings.Options := gGameSettings.Options + GAME_OPTION_ITEMALLRANDOM;
-  gGameSettings.Options := gGameSettings.Options + GAME_OPTION_ITEMHELPRANDOM;
-  gGameSettings.Options := gGameSettings.Options + GAME_OPTION_ITEMAMMORANDOM;
-  gGameSettings.Options := gGameSettings.Options + GAME_OPTION_ITEMWEAPONRANDOM;
+  gGameSettings.Options := GAME_OPTION_ALLOWEXIT
+                        or GAME_OPTION_MONSTERS
+                        or GAME_OPTION_BOTVSMONSTER
+                        or GAME_OPTION_TEAMHITPROJECTILE
+                        or GAME_OPTION_TEAMHITTRACE
+                        or GAME_OPTION_POWERUPRANDOM
+                        or GAME_OPTION_ITEMALLRANDOM
+                        or GAME_OPTION_ITEMHELPRANDOM
+                        or GAME_OPTION_ITEMAMMORANDOM
+                        or GAME_OPTION_ITEMWEAPONRANDOM;
   gSwitchGameMode := GM_SINGLE;
 
   gLMSRespawn := LMS_RESPAWN_NONE;
@@ -4534,7 +4545,7 @@ begin
   gPlayer1.WeapSwitchMode := gPlayer1Settings.WeaponSwitch;
   gPlayer1.setWeaponPrefs(gPlayer1Settings.WeaponPreferences);
   gPlayer1.SwitchToEmpty := gPlayer1Settings.SwitchToEmpty;
-  gPlayer1.SkipFist := gPlayer1Settings.SkipFist;
+  gPlayer1.SkipIronFist := gPlayer1Settings.SkipIronFist;
   nPl := 1;
 
 // Ñîçäàíèå âòîðîãî èãðîêà, åñëè åñòü:
@@ -4553,7 +4564,7 @@ begin
     gPlayer2.WeapSwitchMode := gPlayer2Settings.WeaponSwitch;
     gPlayer2.setWeaponPrefs(gPlayer2Settings.WeaponPreferences);
     gPlayer2.SwitchToEmpty := gPlayer2Settings.SwitchToEmpty;
-    gPlayer2.SkipFist := gPlayer2Settings.SkipFist;
+    gPlayer2.SkipIronFist := gPlayer2Settings.SkipIronFist;
     Inc(nPl);
   end;
 
@@ -4636,7 +4647,7 @@ begin
     gPlayer1.WeapSwitchMode := gPlayer1Settings.WeaponSwitch;
     gPlayer1.setWeaponPrefs(gPlayer1Settings.WeaponPreferences);
     gPlayer1.SwitchToEmpty := gPlayer1Settings.SwitchToEmpty;
-    gPlayer1.SkipFist := gPlayer1Settings.SkipFist;
+    gPlayer1.SkipIronFist := gPlayer1Settings.SkipIronFist;
     Inc(nPl);
   end;
 
@@ -4656,7 +4667,7 @@ begin
     gPlayer2.WeapSwitchMode := gPlayer2Settings.WeaponSwitch;
     gPlayer2.setWeaponPrefs(gPlayer2Settings.WeaponPreferences);
     gPlayer2.SwitchToEmpty := gPlayer2Settings.SwitchToEmpty;
-    gPlayer2.SkipFist := gPlayer2Settings.SkipFist;
+    gPlayer2.SkipIronFist := gPlayer2Settings.SkipIronFist;
     Inc(nPl);
   end;
 
@@ -4749,7 +4760,7 @@ begin
     gPlayer1.WeapSwitchMode := gPlayer1Settings.WeaponSwitch;
     gPlayer1.setWeaponPrefs(gPlayer1Settings.WeaponPreferences);
     gPlayer1.SwitchToEmpty := gPlayer1Settings.SwitchToEmpty;
-    gPlayer1.SkipFist := gPlayer1Settings.SkipFist;
+    gPlayer1.SkipIronFist := gPlayer1Settings.SkipIronFist;
   end;
 
   if nPlayers >= 2 then
@@ -4768,7 +4779,7 @@ begin
     gPlayer2.WeapSwitchMode := gPlayer2Settings.WeaponSwitch;
     gPlayer2.setWeaponPrefs(gPlayer2Settings.WeaponPreferences);
     gPlayer2.SwitchToEmpty := gPlayer2Settings.SwitchToEmpty;
-    gPlayer2.SkipFist := gPlayer2Settings.SkipFist;
+    gPlayer2.SkipIronFist := gPlayer2Settings.SkipIronFist;
   end;
 
   g_Game_SetLoadingText(_lc[I_LOAD_HOST], 0, False);
@@ -4946,7 +4957,7 @@ begin
           gPlayer1.WeapSwitchMode := gPlayer1Settings.WeaponSwitch;
           gPlayer1.setWeaponPrefs(gPlayer1Settings.WeaponPreferences);
           gPlayer1.SwitchToEmpty := gPlayer1Settings.SwitchToEmpty;
-          gPlayer1.SkipFist := gPlayer1Settings.SkipFist;
+          gPlayer1.SkipIronFist := gPlayer1Settings.SkipIronFist;
           gPlayer1.UID := NetPlrUID1;
           gPlayer1.Reset(True);
 
@@ -5395,7 +5406,7 @@ begin
     if gGameSettings.GameMode = GM_COOP then
     begin
       gPlayers[i].Frags := 0;
-      gPlayers[i].RecallState;
+      gPlayers[i].RestoreState;
     end;
     if (gPlayer1 = nil) and (gSpectLatchPID1 > 0) then
       gPlayer1 := g_Player_Get(gSpectLatchPID1);
@@ -5582,403 +5593,371 @@ begin
   stat := nil;
   cmd := LowerCase(P[0]);
 
-  if cmd = 'g_gamemode' then
-  begin
-    if (Length(P) > 1) then
-    begin
-      a := g_Game_TextToMode(P[1]);
-      if a = GM_SINGLE then a := GM_COOP;
-      gsGameMode := g_Game_ModeToText(a);
-      if g_Game_IsServer then
+  case cmd of
+    'g_gamemode': begin
+      if (Length(P) > 1) then
       begin
-        gSwitchGameMode := a;
-        if (gGameOn and (gGameSettings.GameMode = GM_SINGLE)) or
-           (gState = STATE_INTERSINGLE) then
-          gSwitchGameMode := GM_SINGLE;
-        if not gGameOn then
-          gGameSettings.GameMode := gSwitchGameMode;
+        a := g_Game_TextToMode(P[1]);
+        if a = GM_SINGLE then a := GM_COOP;
+        gsGameMode := g_Game_ModeToText(a);
+        if g_Game_IsServer then
+        begin
+          gSwitchGameMode := a;
+          if (gGameOn and (gGameSettings.GameMode = GM_SINGLE)) or
+             (gState = STATE_INTERSINGLE) then
+            gSwitchGameMode := GM_SINGLE;
+          if not gGameOn then
+            gGameSettings.GameMode := gSwitchGameMode;
+        end;
       end;
-    end;
 
-    if gSwitchGameMode = gGameSettings.GameMode then
-      g_Console_Add(Format(_lc[I_MSG_GAMEMODE_CURRENT],
-                          [g_Game_ModeToText(gGameSettings.GameMode)]))
-    else
-      g_Console_Add(Format(_lc[I_MSG_GAMEMODE_CHANGE],
-                          [g_Game_ModeToText(gGameSettings.GameMode),
-                           g_Game_ModeToText(gSwitchGameMode)]));
-  end
-  else if cmd = 'g_friendlyfire' then
-  begin
-    ParseGameFlag(GAME_OPTION_TEAMDAMAGE, I_MSG_FRIENDLY_FIRE_OFF, I_MSG_FRIENDLY_FIRE_ON);
-  end
-  else if cmd = 'g_friendly_absorb_damage' then
-  begin
-    ParseGameFlag(GAME_OPTION_TEAMABSORBDAMAGE, I_MSG_FRIENDLY_ABSORB_DAMAGE_OFF, I_MSG_FRIENDLY_ABSORB_DAMAGE_ON);
-  end
-  else if cmd = 'g_friendly_hit_trace' then
-  begin
-    ParseGameFlag(GAME_OPTION_TEAMHITTRACE, I_MSG_FRIENDLY_HIT_TRACE_OFF, I_MSG_FRIENDLY_HIT_TRACE_ON);
-  end
-  else if cmd = 'g_friendly_hit_projectile' then
-  begin
-    ParseGameFlag(GAME_OPTION_TEAMHITPROJECTILE, I_MSG_FRIENDLY_PROJECT_TRACE_OFF, I_MSG_FRIENDLY_PROJECT_TRACE_ON);
-  end
-  else if cmd = 'g_items_all_respawn_random' then
-  begin
-    ParseGameFlag(GAME_OPTION_ITEMALLRANDOM, I_MSG_ITEM_ALL_RANDOM_OFF, I_MSG_ITEM_ALL_RANDOM_ON, False);
-  end
-  else if cmd = 'g_items_help_respawn_random' then
-  begin
-    ParseGameFlag(GAME_OPTION_ITEMHELPRANDOM, I_MSG_ITEM_HELP_RANDOM_OFF, I_MSG_ITEM_HELP_RANDOM_ON, False);
-  end
-  else if cmd = 'g_items_ammo_respawn_random' then
-  begin
-    ParseGameFlag(GAME_OPTION_ITEMAMMORANDOM, I_MSG_ITEM_AMMO_RANDOM_OFF, I_MSG_ITEM_AMMO_RANDOM_ON, False);
-  end
-  else if cmd = 'g_items_weapon_respawn_random' then
-  begin
-    ParseGameFlag(GAME_OPTION_ITEMWEAPONRANDOM, I_MSG_ITEM_WEAPON_RANDOM_OFF, I_MSG_ITEM_WEAPON_RANDOM_ON);
-  end
-  else if cmd = 'g_powerup_randomize_respawn' then
-  begin
-    ParseGameFlag(GAME_OPTION_RULEZRANDOM, I_MSG_RULEZ_RANDOM_OFF, I_MSG_RULEZ_RANDOM_ON, False);
-  end
-  else if cmd = 'g_weaponstay' then
-  begin
-    ParseGameFlag(GAME_OPTION_WEAPONSTAY, I_MSG_WEAPONSTAY_OFF, I_MSG_WEAPONSTAY_ON);
-  end
-  else if cmd = 'g_allow_exit' then
-  begin
-    ParseGameFlag(GAME_OPTION_ALLOWEXIT, I_MSG_ALLOWEXIT_OFF, I_MSG_ALLOWEXIT_ON, True);
-  end
-  else if cmd = 'g_allow_monsters' then
-  begin
-    ParseGameFlag(GAME_OPTION_MONSTERS, I_MSG_ALLOWMON_OFF, I_MSG_ALLOWMON_ON, True);
-  end
-  else if cmd = 'g_allow_dropflag' then
-  begin
-    ParseGameFlag(GAME_OPTION_ALLOWDROPFLAG, I_MSG_ALLOWDROPFLAG_OFF, I_MSG_ALLOWDROPFLAG_ON);
-  end
-  else if cmd = 'g_throw_flag' then
-  begin
-    ParseGameFlag(GAME_OPTION_THROWFLAG, I_MSG_THROWFLAG_OFF, I_MSG_THROWFLAG_ON);
-  end
-  else if cmd = 'g_bot_vsplayers' then
-  begin
-    ParseGameFlag(GAME_OPTION_BOTVSPLAYER, I_MSG_BOTSVSPLAYERS_OFF, I_MSG_BOTSVSPLAYERS_ON);
-  end
-  else if cmd = 'g_bot_vsmonsters' then
-  begin
-    ParseGameFlag(GAME_OPTION_BOTVSMONSTER, I_MSG_BOTSVSMONSTERS_OFF, I_MSG_BOTSVSMONSTERS_ON);
-  end
-  else if cmd = 'g_dm_keys' then
-  begin
-    ParseGameFlag(GAME_OPTION_DMKEYS, I_MSG_DMKEYS_OFF, I_MSG_DMKEYS_ON, True);
-  end
-  else if cmd = 'g_gameflags' then
-  begin
-    if Length(P) > 1 then
-    begin
-      gsGameFlags := StrToDWordDef(P[1], gsGameFlags);
-      if g_Game_IsServer then
+      if gSwitchGameMode = gGameSettings.GameMode then
+        g_Console_Add(Format(_lc[I_MSG_GAMEMODE_CURRENT],
+                            [g_Game_ModeToText(gGameSettings.GameMode)]))
+      else
+        g_Console_Add(Format(_lc[I_MSG_GAMEMODE_CHANGE],
+                            [g_Game_ModeToText(gGameSettings.GameMode),
+                             g_Game_ModeToText(gSwitchGameMode)]));
+    end;
+
+    'g_friendlyfire':
+      ParseGameFlag(GAME_OPTION_TEAMDAMAGE, I_MSG_FRIENDLY_FIRE_OFF, I_MSG_FRIENDLY_FIRE_ON);
+    'g_friendly_absorb_damage':
+      ParseGameFlag(GAME_OPTION_TEAMABSORBDAMAGE, I_MSG_FRIENDLY_ABSORB_DAMAGE_OFF, I_MSG_FRIENDLY_ABSORB_DAMAGE_ON);
+    'g_friendly_hit_trace':
+      ParseGameFlag(GAME_OPTION_TEAMHITTRACE, I_MSG_FRIENDLY_HIT_TRACE_OFF, I_MSG_FRIENDLY_HIT_TRACE_ON);
+    'g_friendly_hit_projectile':
+      ParseGameFlag(GAME_OPTION_TEAMHITPROJECTILE, I_MSG_FRIENDLY_PROJECT_TRACE_OFF, I_MSG_FRIENDLY_PROJECT_TRACE_ON);
+    'g_items_all_respawn_random':
+      ParseGameFlag(GAME_OPTION_ITEMALLRANDOM, I_MSG_ITEM_ALL_RANDOM_OFF, I_MSG_ITEM_ALL_RANDOM_ON, False);
+    'g_items_help_respawn_random':
+      ParseGameFlag(GAME_OPTION_ITEMHELPRANDOM, I_MSG_ITEM_HELP_RANDOM_OFF, I_MSG_ITEM_HELP_RANDOM_ON, False);
+    'g_items_ammo_respawn_random':
+      ParseGameFlag(GAME_OPTION_ITEMAMMORANDOM, I_MSG_ITEM_AMMO_RANDOM_OFF, I_MSG_ITEM_AMMO_RANDOM_ON, False);
+    'g_items_weapon_respawn_random':
+      ParseGameFlag(GAME_OPTION_ITEMWEAPONRANDOM, I_MSG_ITEM_WEAPON_RANDOM_OFF, I_MSG_ITEM_WEAPON_RANDOM_ON);
+    'g_powerup_randomize_respawn':
+      ParseGameFlag(GAME_OPTION_POWERUPRANDOM, I_MSG_POWERUP_RANDOM_OFF, I_MSG_POWERUP_RANDOM_ON, False);
+    'g_weaponstay':
+      ParseGameFlag(GAME_OPTION_WEAPONSTAY, I_MSG_WEAPONSTAY_OFF, I_MSG_WEAPONSTAY_ON);
+    'g_allow_exit':
+      ParseGameFlag(GAME_OPTION_ALLOWEXIT, I_MSG_ALLOWEXIT_OFF, I_MSG_ALLOWEXIT_ON, True);
+    'g_allow_monsters':
+      ParseGameFlag(GAME_OPTION_MONSTERS, I_MSG_ALLOWMON_OFF, I_MSG_ALLOWMON_ON, True);
+    'g_allow_dropflag':
+      ParseGameFlag(GAME_OPTION_ALLOWDROPFLAG, I_MSG_ALLOWDROPFLAG_OFF, I_MSG_ALLOWDROPFLAG_ON);
+    'g_throw_flag':
+      ParseGameFlag(GAME_OPTION_THROWFLAG, I_MSG_THROWFLAG_OFF, I_MSG_THROWFLAG_ON);
+    'g_bot_vsplayers':
+      ParseGameFlag(GAME_OPTION_BOTVSPLAYER, I_MSG_BOTSVSPLAYERS_OFF, I_MSG_BOTSVSPLAYERS_ON);
+    'g_bot_vsmonsters':
+      ParseGameFlag(GAME_OPTION_BOTVSMONSTER, I_MSG_BOTSVSMONSTERS_OFF, I_MSG_BOTSVSMONSTERS_ON);
+    'g_dm_keys':
+      ParseGameFlag(GAME_OPTION_DMKEYS, I_MSG_DMKEYS_OFF, I_MSG_DMKEYS_ON, True);
+
+    'g_gameflags': begin
+      if Length(P) > 1 then
       begin
-        gGameSettings.Options := gsGameFlags;
-        if g_Game_IsNet then MH_SEND_GameSettings;
+        gsGameFlags := StrToDWordDef(P[1], gsGameFlags);
+        if g_Game_IsServer then
+        begin
+          gGameSettings.Options := gsGameFlags;
+          if g_Game_IsNet then MH_SEND_GameSettings;
+        end;
       end;
+
+      g_Console_Add(Format('%s %u', [cmd, gsGameFlags]));
     end;
 
-    g_Console_Add(Format('%s %u', [cmd, gsGameFlags]));
-  end
-  else if cmd = 'g_warmup_time' then
-  begin
-    if Length(P) > 1 then
-    begin
-      gsWarmupTime := nclamp(StrToIntDef(P[1], gsWarmupTime), 0, $FFFF);
-      if g_Game_IsServer then
+    'g_warmup_time': begin
+      if Length(P) > 1 then
       begin
-        gGameSettings.WarmupTime := gsWarmupTime;
-        // extend warmup if it's already going
-        if gLMSRespawn = LMS_RESPAWN_WARMUP then
+        gsWarmupTime := nclamp(StrToIntDef(P[1], gsWarmupTime), 0, $FFFF);
+        if g_Game_IsServer then
         begin
-          gLMSRespawnTime := gTime + gsWarmupTime * 1000;
-          if g_Game_IsNet then MH_SEND_GameEvent(NET_EV_LMS_WARMUP, gLMSRespawnTime - gTime);
+          gGameSettings.WarmupTime := gsWarmupTime;
+          // extend warmup if it's already going
+          if gLMSRespawn = LMS_RESPAWN_WARMUP then
+          begin
+            gLMSRespawnTime := gTime + gsWarmupTime * 1000;
+            if g_Game_IsNet then MH_SEND_GameEvent(NET_EV_LMS_WARMUP, gLMSRespawnTime - gTime);
+          end;
+          if g_Game_IsNet then MH_SEND_GameSettings;
         end;
-        if g_Game_IsNet then MH_SEND_GameSettings;
       end;
+
+      g_Console_Add(Format(_lc[I_MSG_WARMUP], [Integer(gsWarmupTime)]));
+      if g_Game_IsServer then g_Console_Add(_lc[I_MSG_ONMAPCHANGE]);
     end;
 
-    g_Console_Add(Format(_lc[I_MSG_WARMUP], [Integer(gsWarmupTime)]));
-    if g_Game_IsServer then g_Console_Add(_lc[I_MSG_ONMAPCHANGE]);
-  end
-  else if cmd = 'g_spawn_invul' then
-  begin
-    if Length(P) > 1 then
-    begin
-      gsSpawnInvul := nclamp(StrToIntDef(P[1], gsSpawnInvul), 0, $FFFF);
-      if g_Game_IsServer then
+    'g_spawn_invul': begin
+      if Length(P) > 1 then
       begin
-        gGameSettings.SpawnInvul := gsSpawnInvul;
-        if g_Game_IsNet then MH_SEND_GameSettings;
+        gsSpawnInvul := nclamp(StrToIntDef(P[1], gsSpawnInvul), 0, $FFFF);
+        if g_Game_IsServer then
+        begin
+          gGameSettings.SpawnInvul := gsSpawnInvul;
+          if g_Game_IsNet then MH_SEND_GameSettings;
+        end;
       end;
+
+      g_Console_Add(Format('%s %d', [cmd, Integer(gsSpawnInvul)]));
     end;
 
-    g_Console_Add(Format('%s %d', [cmd, Integer(gsSpawnInvul)]));
-  end
-  else if cmd = 'g_item_respawn_time' then
-  begin
-    if Length(P) > 1 then
-    begin
-      gsItemRespawnTime := nclamp(StrToIntDef(P[1], gsItemRespawnTime), 0, $FFFF);
-      if g_Game_IsServer then
+    'g_item_respawn_time': begin
+      if Length(P) > 1 then
       begin
-        gGameSettings.ItemRespawnTime := gsItemRespawnTime;
-        if g_Game_IsNet then MH_SEND_GameSettings;
+        gsItemRespawnTime := nclamp(StrToIntDef(P[1], gsItemRespawnTime), 0, $FFFF);
+        if g_Game_IsServer then
+        begin
+          gGameSettings.ItemRespawnTime := gsItemRespawnTime;
+          if g_Game_IsNet then MH_SEND_GameSettings;
+        end;
       end;
+
+      g_Console_Add(Format('%s %d', [cmd, Integer(gsItemRespawnTime)]));
+      if g_Game_IsServer then g_Console_Add(_lc[I_MSG_ONMAPCHANGE]);
     end;
 
-    g_Console_Add(Format('%s %d', [cmd, Integer(gsItemRespawnTime)]));
-    if g_Game_IsServer then g_Console_Add(_lc[I_MSG_ONMAPCHANGE]);
-  end
-  else if cmd = 'g_item_time_random' then
-  begin
-    if Length(P) > 1 then
-    begin
-      gsItemRespawnRandom := nclamp(StrToIntDef(P[1], gsItemRespawnRandom), 0, $FFFF);
-      if g_Game_IsServer then
+    'g_item_time_random': begin
+      if Length(P) > 1 then
       begin
-        gGameSettings.ItemRespawnRandom := gsItemRespawnRandom;
-        if g_Game_IsNet then MH_SEND_GameSettings;
+        gsItemRespawnRandom := nclamp(StrToIntDef(P[1], gsItemRespawnRandom), 0, $FFFF);
+        if g_Game_IsServer then
+        begin
+          gGameSettings.ItemRespawnRandom := gsItemRespawnRandom;
+          if g_Game_IsNet then MH_SEND_GameSettings;
+        end;
       end;
+
+      g_Console_Add(Format('%s %d', [cmd, Integer(gsItemRespawnRandom)]));
+      if g_Game_IsServer then g_Console_Add(_lc[I_MSG_ONMAPCHANGE]);
     end;
 
-    g_Console_Add(Format('%s %d', [cmd, Integer(gsItemRespawnRandom)]));
-    if g_Game_IsServer then g_Console_Add(_lc[I_MSG_ONMAPCHANGE]);
-  end
-  else if cmd = 'g_powerup_respawn_time' then
-  begin
-    if Length(P) > 1 then
-    begin
-      gsRulezRespawnTime := nclamp(StrToIntDef(P[1], gsRulezRespawnTime), 0, $FFFF);
-      if g_Game_IsServer then
+    'g_powerup_respawn_time': begin
+      if Length(P) > 1 then
       begin
-        gGameSettings.RulezRespawnTime := gsRulezRespawnTime;
-        if g_Game_IsNet then MH_SEND_GameSettings;
+        gsPowerupRespawnTime := nclamp(StrToIntDef(P[1], gsPowerupRespawnTime), 0, $FFFF);
+        if g_Game_IsServer then
+        begin
+          gGameSettings.PowerupRespawnTime := gsPowerupRespawnTime;
+          if g_Game_IsNet then MH_SEND_GameSettings;
+        end;
       end;
+
+      g_Console_Add(Format('%s %d', [cmd, Integer(gsPowerupRespawnTime)]));
+      if g_Game_IsServer then g_Console_Add(_lc[I_MSG_ONMAPCHANGE]);
     end;
 
-    g_Console_Add(Format('%s %d', [cmd, Integer(gsRulezRespawnTime)]));
-    if g_Game_IsServer then g_Console_Add(_lc[I_MSG_ONMAPCHANGE]);
-  end
-  else if cmd = 'g_powerup_time_random' then
-  begin
-    if Length(P) > 1 then
-    begin
-      gsRulezRespawnRandom := nclamp(StrToIntDef(P[1], gsRulezRespawnRandom), 0, $FFFF);
-      if g_Game_IsServer then
+    'g_powerup_time_random': begin
+      if Length(P) > 1 then
       begin
-        gGameSettings.RulezRespawnRandom := gsRulezRespawnRandom;
-        if g_Game_IsNet then MH_SEND_GameSettings;
+        gsPowerupRespawnRandom := nclamp(StrToIntDef(P[1], gsPowerupRespawnRandom), 0, $FFFF);
+        if g_Game_IsServer then
+        begin
+          gGameSettings.PowerupRespawnRandom := gsPowerupRespawnRandom;
+          if g_Game_IsNet then MH_SEND_GameSettings;
+        end;
       end;
+
+      g_Console_Add(Format('%s %d', [cmd, Integer(gsPowerupRespawnRandom)]));
+      if g_Game_IsServer then g_Console_Add(_lc[I_MSG_ONMAPCHANGE]);
     end;
 
-    g_Console_Add(Format('%s %d', [cmd, Integer(gsRulezRespawnRandom)]));
-    if g_Game_IsServer then g_Console_Add(_lc[I_MSG_ONMAPCHANGE]);
-  end
-  else if cmd = 'sv_intertime' then
-  begin
-    if (Length(P) > 1) then
-      gDefInterTime := Min(Max(StrToIntDef(P[1], gDefInterTime), -1), 120);
+    'sv_intertime': begin
+      if (Length(P) > 1) then
+        gDefInterTime := Min(Max(StrToIntDef(P[1], gDefInterTime), -1), 120);
 
-    g_Console_Add(cmd + ' = ' + IntToStr(gDefInterTime));
-  end
-  else if cmd = 'g_max_particles' then
-  begin
-    if Length(p) = 2 then
-    begin
-      a := Max(0, StrToIntDef(p[1], 0));
-      g_GFX_SetMax(a)
-    end
-    else if Length(p) = 1 then
-    begin
-      e_LogWritefln('%s', [g_GFX_GetMax()])
-    end
-    else
-    begin
-      e_LogWritefln('usage: %s <n>', [cmd])
-    end
-  end
-  else if cmd = 'g_max_shells' then
-  begin
-    if Length(p) = 2 then
-    begin
-      a := Max(0, StrToIntDef(p[1], 0));
-      g_Shells_SetMax(a)
-    end
-    else if Length(p) = 1 then
-    begin
-      e_LogWritefln('%s', [g_Shells_GetMax()])
-    end
-    else
-    begin
-      e_LogWritefln('usage: %s <n>', [cmd])
-    end
-  end
-  else if cmd = 'g_max_gibs' then
-  begin
-    if Length(p) = 2 then
-    begin
-      a := Max(0, StrToIntDef(p[1], 0));
-      g_Gibs_SetMax(a)
-    end
-    else if Length(p) = 1 then
-    begin
-      e_LogWritefln('%s', [g_Gibs_GetMax()])
-    end
-    else
-    begin
-      e_LogWritefln('usage: %s <n>', [cmd])
-    end
-  end
-  else if cmd = 'g_max_corpses' then
-  begin
-    if Length(p) = 2 then
-    begin
-      a := Max(0, StrToIntDef(p[1], 0));
-      g_Corpses_SetMax(a)
-    end
-    else if Length(p) = 1 then
-    begin
-      e_LogWritefln('%s', [g_Corpses_GetMax()])
-    end
-    else
-    begin
-      e_LogWritefln('usage: %s <n>', [cmd])
-    end
-  end
-  else if cmd = 'g_force_model' then
-  begin
-    if Length(p) = 2 then
-    begin
-      a := StrToIntDef(p[1], 0);
-      g_Force_Model_Set(a);
-      if (g_Force_Model_Get() <> 0) and (gPlayers <> nil) then
+      g_Console_Add(cmd + ' = ' + IntToStr(gDefInterTime));
+    end;
+
+    'g_max_particles': begin
+      if Length(p) = 2 then
       begin
-        for a := Low(gPlayers) to High(gPlayers) do
+        a := Max(0, StrToIntDef(p[1], 0));
+        g_GFX_SetMax(a)
+      end
+      else if Length(p) = 1 then
+      begin
+        e_LogWritefln('%s', [g_GFX_GetMax()])
+      end
+      else
+      begin
+        e_LogWritefln('usage: %s <n>', [cmd])
+      end
+    end;
+
+    'g_max_shells': begin
+      if Length(p) = 2 then
+      begin
+        a := Max(0, StrToIntDef(p[1], 0));
+        g_Shells_SetMax(a)
+      end
+      else if Length(p) = 1 then
+      begin
+        e_LogWritefln('%s', [g_Shells_GetMax()])
+      end
+      else
+      begin
+        e_LogWritefln('usage: %s <n>', [cmd])
+      end
+    end;
+
+    'g_max_gibs': begin
+      if Length(p) = 2 then
+      begin
+        a := Max(0, StrToIntDef(p[1], 0));
+        g_Gibs_SetMax(a)
+      end
+      else if Length(p) = 1 then
+      begin
+        e_LogWritefln('%s', [g_Gibs_GetMax()])
+      end
+      else
+      begin
+        e_LogWritefln('usage: %s <n>', [cmd])
+      end
+    end;
+
+    'g_max_corpses': begin
+      if Length(p) = 2 then
+      begin
+        a := Max(0, StrToIntDef(p[1], 0));
+        g_Corpses_SetMax(a)
+      end
+      else if Length(p) = 1 then
+      begin
+        e_LogWritefln('%s', [g_Corpses_GetMax()])
+      end
+      else
+      begin
+        e_LogWritefln('usage: %s <n>', [cmd])
+      end
+    end;
+
+    'g_force_model': begin
+      if Length(p) = 2 then
+      begin
+        a := StrToIntDef(p[1], 0);
+        g_Force_Model_Set(a);
+        if (g_Force_Model_Get() <> 0) and (gPlayers <> nil) then
         begin
-          if (gPlayers[a] <> nil) then
+          for a := Low(gPlayers) to High(gPlayers) do
           begin
-            if (gPlayers[a].UID = gPlayer1.UID) then
-              continue
-            else if (gPlayer2 <> nil) and (gPlayers[a].UID = gPlayer2.UID) then
-              continue;
-            gPlayers[a].setModel(g_Forced_Model_GetName());
-          end;
+            if (gPlayers[a] <> nil) then
+            begin
+              if (gPlayers[a].UID = gPlayer1.UID) then
+                continue
+              else if (gPlayer2 <> nil) and (gPlayers[a].UID = gPlayer2.UID) then
+                continue;
+              gPlayers[a].setModel(g_Forced_Model_GetName());
+            end;
+          end
         end
-      end
-      else if (g_Force_Model_Get() = 0) and (gPlayers <> nil) then
-      begin
-        for a := Low(gPlayers) to High(gPlayers) do
+        else if (g_Force_Model_Get() = 0) and (gPlayers <> nil) then
         begin
-          if (gPlayers[a] <> nil) then
+          for a := Low(gPlayers) to High(gPlayers) do
           begin
-            if (gPlayers[a].UID = gPlayer1.UID) then
-              continue
-            else if (gPlayer2 <> nil) and (gPlayers[a].UID = gPlayer2.UID) then
-              continue;
-            gPlayers[a].setModel(gPlayers[a].FActualModelName);
-          end;
+            if (gPlayers[a] <> nil) then
+            begin
+              if (gPlayers[a].UID = gPlayer1.UID) then
+                continue
+              else if (gPlayer2 <> nil) and (gPlayers[a].UID = gPlayer2.UID) then
+                continue;
+              gPlayers[a].setModel(gPlayers[a].FActualModelName);
+            end;
+          end
         end
       end
-    end
-  end
-  else if cmd = 'g_force_model_name' then
-  begin
-    if (Length(P) > 1) then
-    begin
-      cmd := b_Text_Unformat(P[1]);
-      g_Forced_Model_SetName(cmd);
-      if (g_Force_Model_Get() <> 0) and (gPlayers <> nil) then
+    end;
+
+    'g_force_model_name': begin
+      if (Length(P) > 1) then
       begin
-        for a := Low(gPlayers) to High(gPlayers) do
+        cmd := b_Text_Unformat(P[1]);
+        g_Forced_Model_SetName(cmd);
+        if (g_Force_Model_Get() <> 0) and (gPlayers <> nil) then
         begin
-          if (gPlayers[a] <> nil) then
+          for a := Low(gPlayers) to High(gPlayers) do
           begin
-            if (gPlayers[a].UID = gPlayer1.UID) then
-              continue
-            else if (gPlayer2 <> nil) and (gPlayers[a].UID = gPlayer2.UID) then
-              continue;
-            gPlayers[a].setModel(g_Forced_Model_GetName());
-          end;
+            if (gPlayers[a] <> nil) then
+            begin
+              if (gPlayers[a].UID = gPlayer1.UID) then
+                continue
+              else if (gPlayer2 <> nil) and (gPlayers[a].UID = gPlayer2.UID) then
+                continue;
+              gPlayers[a].setModel(g_Forced_Model_GetName());
+            end;
+          end
         end
       end
-    end
-  end
-  else if cmd = 'g_scorelimit' then
-  begin
-    if Length(P) > 1 then
-    begin
-      gsScoreLimit := nclamp(StrToIntDef(P[1], gsScoreLimit), 0, $FFFF);
+    end;
 
-      if g_Game_IsServer then
+    'g_scorelimit': begin
+      if Length(P) > 1 then
       begin
-        b := 0;
-        if gGameSettings.GameMode = GM_DM then
-        begin // DM
-          stat := g_Player_GetStats();
-          if stat <> nil then
-            for a := 0 to High(stat) do
-              if stat[a].Frags > b then
-                b := stat[a].Frags;
-        end
-        else // TDM/CTF
-          b := Max(gTeamStat[TEAM_RED].Score, gTeamStat[TEAM_BLUE].Score);
+        gsScoreLimit := nclamp(StrToIntDef(P[1], gsScoreLimit), 0, $FFFF);
 
-        // if someone has a higher score, set it to that instead
-        gsScoreLimit := max(gsScoreLimit, b);
-        gGameSettings.ScoreLimit := gsScoreLimit;
+        if g_Game_IsServer then
+        begin
+          b := 0;
+          if gGameSettings.GameMode = GM_DM then
+          begin // DM
+            stat := g_Player_GetStats();
+            if stat <> nil then
+              for a := 0 to High(stat) do
+                if stat[a].Frags > b then
+                  b := stat[a].Frags;
+          end
+          else // TDM/CTF
+            b := Max(gTeamStat[TEAM_RED].Score, gTeamStat[TEAM_BLUE].Score);
 
-        if g_Game_IsNet then MH_SEND_GameSettings;
+          // if someone has a higher score, set it to that instead
+          gsScoreLimit := max(gsScoreLimit, b);
+          gGameSettings.ScoreLimit := gsScoreLimit;
+
+          if g_Game_IsNet then MH_SEND_GameSettings;
+        end;
       end;
+
+      g_Console_Add(Format(_lc[I_MSG_SCORE_LIMIT], [Integer(gsScoreLimit)]));
     end;
 
-    g_Console_Add(Format(_lc[I_MSG_SCORE_LIMIT], [Integer(gsScoreLimit)]));
-  end
-  else if cmd = 'g_timelimit' then
-  begin
-    if Length(P) > 1 then
-    begin
-      gsTimeLimit := nclamp(StrToIntDef(P[1], gsTimeLimit), 0, $FFFF);
-      if g_Game_IsServer then
+    'g_timelimit': begin
+      if Length(P) > 1 then
       begin
-        gGameSettings.TimeLimit := gsTimeLimit;
-        if g_Game_IsNet then MH_SEND_GameSettings;
+        gsTimeLimit := nclamp(StrToIntDef(P[1], gsTimeLimit), 0, $FFFF);
+        if g_Game_IsServer then
+        begin
+          gGameSettings.TimeLimit := gsTimeLimit;
+          if g_Game_IsNet then MH_SEND_GameSettings;
+        end;
       end;
+      g_Console_Add(Format(_lc[I_MSG_TIME_LIMIT],
+                           [gsTimeLimit div 3600,
+                           (gsTimeLimit div 60) mod 60,
+                            gsTimeLimit mod 60]));
     end;
-    g_Console_Add(Format(_lc[I_MSG_TIME_LIMIT],
-                         [gsTimeLimit div 3600,
-                         (gsTimeLimit div 60) mod 60,
-                          gsTimeLimit mod 60]));
-  end
-  else if cmd = 'g_max_bots' then
-  begin
-    if Length(P) > 1 then
-      gMaxBots := nclamp(StrToIntDef(P[1], gMaxBots), 0, 127);
-    g_Console_Add('g_max_bots = ' + IntToStr(gMaxBots));
-  end
-  else if cmd = 'g_maxlives' then
-  begin
-    if Length(P) > 1 then
-    begin
-      gsMaxLives := nclamp(StrToIntDef(P[1], gsMaxLives), 0, $FFFF);
-      if g_Game_IsServer then
+
+    'g_max_bots': begin
+      if Length(P) > 1 then
+        gMaxBots := nclamp(StrToIntDef(P[1], gMaxBots), 0, 127);
+      g_Console_Add('g_max_bots = ' + IntToStr(gMaxBots));
+    end;
+
+    'g_maxlives': begin
+      if Length(P) > 1 then
       begin
-        gGameSettings.MaxLives := gsMaxLives;
-        if g_Game_IsNet then MH_SEND_GameSettings;
+        gsMaxLives := nclamp(StrToIntDef(P[1], gsMaxLives), 0, $FFFF);
+        if g_Game_IsServer then
+        begin
+          gGameSettings.MaxLives := gsMaxLives;
+          if g_Game_IsNet then MH_SEND_GameSettings;
+        end;
       end;
-    end;
 
-    g_Console_Add(Format(_lc[I_MSG_LIVES], [Integer(gsMaxLives)]));
+      g_Console_Add(Format(_lc[I_MSG_LIVES], [Integer(gsMaxLives)]));
+    end;
   end;
 end;
 
@@ -6137,25 +6116,25 @@ begin
         if (Length(P) = 2) then
           gPlayer2Settings.SwitchToEmpty := EnsureRange(StrTointDef(P[1], 0), 0, 1);
         end;
-    'p1_skip_fist':
+    'p1_skip_ironfist':
       begin
         if (Length(P) = 2) then
-          gPlayer1Settings.SkipFist := EnsureRange(StrTointDef(P[1], 0), 0, 1);
+          gPlayer1Settings.SkipIronFist := EnsureRange(StrTointDef(P[1], 0), 0, 1);
         end;
-    'p2_skip_fist':
+    'p2_skip_ironfist':
       begin
         if (Length(P) = 2) then
-          gPlayer2Settings.SkipFist := EnsureRange(StrTointDef(P[1], 0), 0, 1);
+          gPlayer2Settings.SkipIronFist := EnsureRange(StrTointDef(P[1], 0), 0, 1);
         end;
-    'p1_priority_kastet':
+    'p1_priority_ironfist':
       begin
         if (Length(P) = 2) then
-          gPlayer1Settings.WeaponPreferences[WEAPON_KASTET] := EnsureRange(StrToIntDef(P[1], WP_FIRST), WP_FIRST, WP_LAST+1);
+          gPlayer1Settings.WeaponPreferences[WEAPON_IRONFIST] := EnsureRange(StrToIntDef(P[1], WP_FIRST), WP_FIRST, WP_LAST+1);
         end;
-    'p2_priority_kastet':
+    'p2_priority_ironfist':
       begin
         if (Length(P) = 2) then
-          gPlayer2Settings.WeaponPreferences[WEAPON_KASTET] := EnsureRange(StrToIntDef(P[1], WP_FIRST), WP_FIRST, WP_LAST+1);
+          gPlayer2Settings.WeaponPreferences[WEAPON_IRONFIST] := EnsureRange(StrToIntDef(P[1], WP_FIRST), WP_FIRST, WP_LAST+1);
       end;
     'p1_priority_saw':
       begin
@@ -6170,12 +6149,12 @@ begin
     'p1_priority_pistol':
       begin
         if (Length(P) = 2) then
-          gPlayer1Settings.WeaponPreferences[WEAPON_KASTET] := EnsureRange(StrToIntDef(P[1], WP_FIRST), WP_FIRST, WP_LAST+1);
+          gPlayer1Settings.WeaponPreferences[WEAPON_PISTOL] := EnsureRange(StrToIntDef(P[1], WP_FIRST), WP_FIRST, WP_LAST+1);
         end;
     'p2_priority_pistol':
       begin
         if (Length(P) = 2) then
-          gPlayer2Settings.WeaponPreferences[WEAPON_KASTET] := EnsureRange(StrToIntDef(P[1], WP_FIRST), WP_FIRST, WP_LAST+1);
+          gPlayer2Settings.WeaponPreferences[WEAPON_PISTOL] := EnsureRange(StrToIntDef(P[1], WP_FIRST), WP_FIRST, WP_LAST+1);
       end;
     'p1_priority_shotgun1':
       begin
@@ -6237,15 +6216,15 @@ begin
         if (Length(P) = 2) then
           gPlayer2Settings.WeaponPreferences[WEAPON_BFG] := EnsureRange(StrToIntDef(P[1], WP_FIRST), WP_FIRST, WP_LAST+1);
       end;
-    'p1_priority_super':
+    'p1_priority_superchaingun':
       begin
         if (Length(P) = 2) then
-          gPlayer1Settings.WeaponPreferences[WEAPON_SUPERPULEMET] := EnsureRange(StrToIntDef(P[1], WP_FIRST), WP_FIRST, WP_LAST+1);
+          gPlayer1Settings.WeaponPreferences[WEAPON_SUPERCHAINGUN] := EnsureRange(StrToIntDef(P[1], WP_FIRST), WP_FIRST, WP_LAST+1);
       end;
-    'p2_priority_super':
+    'p2_priority_superchaingun':
       begin
         if (Length(P) = 2) then
-          gPlayer2Settings.WeaponPreferences[WEAPON_SUPERPULEMET] := EnsureRange(StrToIntDef(P[1], WP_FIRST), WP_FIRST, WP_LAST+1);
+          gPlayer2Settings.WeaponPreferences[WEAPON_SUPERCHAINGUN] := EnsureRange(StrToIntDef(P[1], WP_FIRST), WP_FIRST, WP_LAST+1);
       end;
     'p1_priority_flamethrower':
       begin
@@ -6298,7 +6277,7 @@ begin
     if cmd = 'd_window' then
     begin
       g_Console_Add(Format('gScreenWidth = %d, gScreenHeight = %d', [gScreenWidth, gScreenHeight]));
-      g_Console_Add(Format('gScreenWidth = %d, gScreenHeight = %d', [gScreenWidth, gScreenHeight]));
+      g_Console_Add(Format('gWinSizeX = %d, gWinSizeY = %d', [gWinSizeX, gWinSizeY]));
     end
     else if cmd = 'd_sounds' then
     begin
@@ -6445,7 +6424,7 @@ begin
     begin
       cmd := LowerCase(P[f]);
       if cmd = 'health' then begin plr.RestoreHealthArmor(); g_Console_Add('player feels himself better'); continue; end;
-      if (cmd = 'all') {or (cmd = 'weapons')} then begin plr.AllRulez(False); g_Console_Add('player got the gifts'); continue; end;
+      if (cmd = 'all') {or (cmd = 'weapons')} then begin plr.TankRamboCheats(False); g_Console_Add('player got the gifts'); continue; end;
       if cmd = 'exit' then
       begin
         if gTriggers <> nil then
@@ -6504,8 +6483,8 @@ begin
       if cmd = 'plasmagunzz' then begin plr.GiveItem(ITEM_WEAPON_PLASMA); plr.GiveItem(ITEM_AMMO_CELL_BIG); g_Console_Add('player got a plasma gun'); continue; end;
       if cmd = 'bfgzz' then begin plr.GiveItem(ITEM_WEAPON_BFG); plr.GiveItem(ITEM_AMMO_CELL_BIG); g_Console_Add('player got a BFG-9000'); continue; end;
 
-      if cmd = 'superchaingun' then begin plr.GiveItem(ITEM_WEAPON_SUPERPULEMET); g_Console_Add('player got a superchaingun'); continue; end;
-      if cmd = 'superchaingunzz' then begin plr.GiveItem(ITEM_WEAPON_SUPERPULEMET); plr.GiveItem(ITEM_AMMO_BULLETS_BOX); g_Console_Add('player got a superchaingun'); continue; end;
+      if cmd = 'superchaingun' then begin plr.GiveItem(ITEM_WEAPON_SUPERCHAINGUN); g_Console_Add('player got a superchaingun'); continue; end;
+      if cmd = 'superchaingunzz' then begin plr.GiveItem(ITEM_WEAPON_SUPERCHAINGUN); plr.GiveItem(ITEM_AMMO_BULLETS_BOX); g_Console_Add('player got a superchaingun'); continue; end;
 
       if (cmd = 'flamer') or (cmd = 'flamethrower') or (cmd = 'ft') then begin plr.GiveItem(ITEM_WEAPON_FLAMETHROWER); g_Console_Add('player got a flame thrower'); continue; end;
       if (cmd = 'flamerzz') or (cmd = 'flamethrowerzz') or (cmd = 'ftzz') then begin plr.GiveItem(ITEM_WEAPON_FLAMETHROWER); plr.GiveItem(ITEM_AMMO_FUELCAN); g_Console_Add('player got a flame thrower'); continue; end;
@@ -7139,7 +7118,7 @@ begin
       g_Console_Add(cmd + ' <WAD> [MAP] [# players]');
       Exit;
     end;
-    // game not started yet, load fist map from some wad
+    // game not started yet, load first map from some wad
     found := false;
     s := addWadExtension(P[1]);
     found := e_FindResource(AllMapDirs, s);
index 2200703437db6be9fc693d2bdfbd83dc76a55b31..55302688c55c807547219faa4d47d2c81bf5d1e1 100644 (file)
@@ -2675,10 +2675,9 @@ begin
   if FModel = nil then
     Exit;
 
-  if FModel.Weapon < WP_LAST then
-    FModel.SetWeapon(FModel.Weapon+1)
-  else
-    FModel.SetWeapon(WEAPON_KASTET);
+  if FModel.Weapon < WP_LAST
+    then FModel.SetWeapon(FModel.Weapon+1)
+    else FModel.SetWeapon(WEAPON_IRONFIST);
 end;
 
 procedure TGUIModelView.OnMessage(var Msg: TMessage);
index 4f0bd805167ee1d9f615b0900da7b4c05d25b43e..9784d39d5384ba29959e89b7daad1397b5feba6f 100644 (file)
@@ -179,7 +179,7 @@ const
      ((62), (16)), // WEAPON_ROCKETLAUNCHER
      ((54), (16)), // WEAPON_PLASMA
      ((61), (36)), // WEAPON_BFG
-     ((54), (16)), // WEAPON_SUPERPULEMET
+     ((54), (16)), // WEAPON_SUPERCHAINGUN
      (( 9), (11)), // AMMO_BULLETS
      ((28), (16)), // AMMO_BULLETS_BOX
      ((15), ( 7)), // AMMO_SHELLS
@@ -192,7 +192,7 @@ const
      ((16), (16)), // KEY_RED
      ((16), (16)), // KEY_GREEN
      ((16), (16)), // KEY_BLUE
-     (( 1), ( 1)), // WEAPON_KASTET
+     (( 1), ( 1)), // WEAPON_IRONFIST
      ((43), (16)), // WEAPON_PISTOL
      ((14), (18)), // BOTTLE
      ((16), (15)), // HELMET
@@ -206,16 +206,16 @@ begin
   g_Texture_Get('ITEM_MEDKIT_SMALL',     gItemsTexturesID[ITEM_MEDKIT_SMALL]);
   g_Texture_Get('ITEM_MEDKIT_LARGE',     gItemsTexturesID[ITEM_MEDKIT_LARGE]);
   g_Texture_Get('ITEM_MEDKIT_BLACK',     gItemsTexturesID[ITEM_MEDKIT_BLACK]);
-  g_Texture_Get('ITEM_SUIT',             gItemsTexturesID[ITEM_SUIT]);
-  g_Texture_Get('ITEM_OXYGEN',           gItemsTexturesID[ITEM_OXYGEN]);
+  g_Texture_Get('ITEM_WEAPON_IRONFIST',  gItemsTexturesID[ITEM_WEAPON_IRONFIST]);
   g_Texture_Get('ITEM_WEAPON_SAW',       gItemsTexturesID[ITEM_WEAPON_SAW]);
+  g_Texture_Get('ITEM_WEAPON_PISTOL',    gItemsTexturesID[ITEM_WEAPON_PISTOL]);
   g_Texture_Get('ITEM_WEAPON_SHOTGUN1',  gItemsTexturesID[ITEM_WEAPON_SHOTGUN1]);
   g_Texture_Get('ITEM_WEAPON_SHOTGUN2',  gItemsTexturesID[ITEM_WEAPON_SHOTGUN2]);
   g_Texture_Get('ITEM_WEAPON_CHAINGUN',  gItemsTexturesID[ITEM_WEAPON_CHAINGUN]);
   g_Texture_Get('ITEM_WEAPON_ROCKETLAUNCHER', gItemsTexturesID[ITEM_WEAPON_ROCKETLAUNCHER]);
   g_Texture_Get('ITEM_WEAPON_PLASMA',    gItemsTexturesID[ITEM_WEAPON_PLASMA]);
   g_Texture_Get('ITEM_WEAPON_BFG',       gItemsTexturesID[ITEM_WEAPON_BFG]);
-  g_Texture_Get('ITEM_WEAPON_SUPERPULEMET', gItemsTexturesID[ITEM_WEAPON_SUPERPULEMET]);
+  g_Texture_Get('ITEM_WEAPON_SUPERCHAINGUN', gItemsTexturesID[ITEM_WEAPON_SUPERCHAINGUN]);
   g_Texture_Get('ITEM_WEAPON_FLAMETHROWER', gItemsTexturesID[ITEM_WEAPON_FLAMETHROWER]);
   g_Texture_Get('ITEM_AMMO_BULLETS',     gItemsTexturesID[ITEM_AMMO_BULLETS]);
   g_Texture_Get('ITEM_AMMO_BULLETS_BOX', gItemsTexturesID[ITEM_AMMO_BULLETS_BOX]);
@@ -230,8 +230,8 @@ begin
   g_Texture_Get('ITEM_KEY_RED',          gItemsTexturesID[ITEM_KEY_RED]);
   g_Texture_Get('ITEM_KEY_GREEN',        gItemsTexturesID[ITEM_KEY_GREEN]);
   g_Texture_Get('ITEM_KEY_BLUE',         gItemsTexturesID[ITEM_KEY_BLUE]);
-  g_Texture_Get('ITEM_WEAPON_KASTET',    gItemsTexturesID[ITEM_WEAPON_KASTET]);
-  g_Texture_Get('ITEM_WEAPON_PISTOL',    gItemsTexturesID[ITEM_WEAPON_PISTOL]);
+  g_Texture_Get('ITEM_OXYGEN',           gItemsTexturesID[ITEM_OXYGEN]);
+  g_Texture_Get('ITEM_SUIT',             gItemsTexturesID[ITEM_SUIT]);
 end;
 
 procedure g_Items_LoadData();
@@ -239,7 +239,7 @@ begin
   e_WriteLog('Loading items data...', TMsgType.Notify);
 
   g_Sound_CreateWADEx('SOUND_ITEM_RESPAWNITEM', GameWAD+':SOUNDS\RESPAWNITEM');
-  g_Sound_CreateWADEx('SOUND_ITEM_GETRULEZ', GameWAD+':SOUNDS\GETRULEZ');
+  g_Sound_CreateWADEx('SOUND_ITEM_GETPOWERUP', GameWAD+':SOUNDS\GETPOWERUP');
   g_Sound_CreateWADEx('SOUND_ITEM_GETWEAPON', GameWAD+':SOUNDS\GETWEAPON');
   g_Sound_CreateWADEx('SOUND_ITEM_GETITEM', GameWAD+':SOUNDS\GETITEM');
 
@@ -258,16 +258,17 @@ begin
   g_Frames_CreateWAD(nil, 'FRAMES_FLAG_DOM', GameWAD+':TEXTURES\FLAGDOM', 64, 64, 5, False);
   g_Texture_CreateWADEx('ITEM_MEDKIT_SMALL', GameWAD+':TEXTURES\MED1');
   g_Texture_CreateWADEx('ITEM_MEDKIT_LARGE', GameWAD+':TEXTURES\MED2');
+  g_Texture_CreateWADEx('ITEM_MEDKIT_BLACK', GameWAD+':TEXTURES\BMED');
+  g_Texture_CreateWADEx('ITEM_WEAPON_IRONFIST', GameWAD+':TEXTURES\IRONFIST');
   g_Texture_CreateWADEx('ITEM_WEAPON_SAW', GameWAD+':TEXTURES\SAW');
   g_Texture_CreateWADEx('ITEM_WEAPON_PISTOL', GameWAD+':TEXTURES\PISTOL');
-  g_Texture_CreateWADEx('ITEM_WEAPON_KASTET', GameWAD+':TEXTURES\KASTET');
   g_Texture_CreateWADEx('ITEM_WEAPON_SHOTGUN1', GameWAD+':TEXTURES\SHOTGUN1');
   g_Texture_CreateWADEx('ITEM_WEAPON_SHOTGUN2', GameWAD+':TEXTURES\SHOTGUN2');
   g_Texture_CreateWADEx('ITEM_WEAPON_CHAINGUN', GameWAD+':TEXTURES\MGUN');
   g_Texture_CreateWADEx('ITEM_WEAPON_ROCKETLAUNCHER', GameWAD+':TEXTURES\RLAUNCHER');
   g_Texture_CreateWADEx('ITEM_WEAPON_PLASMA', GameWAD+':TEXTURES\PGUN');
   g_Texture_CreateWADEx('ITEM_WEAPON_BFG', GameWAD+':TEXTURES\BFG');
-  g_Texture_CreateWADEx('ITEM_WEAPON_SUPERPULEMET', GameWAD+':TEXTURES\SPULEMET');
+  g_Texture_CreateWADEx('ITEM_WEAPON_SUPERCHAINGUN', GameWAD+':TEXTURES\SCHAINGUN');
   g_Texture_CreateWADEx('ITEM_WEAPON_FLAMETHROWER', GameWAD+':TEXTURES\FLAMETHROWER');
   g_Texture_CreateWADEx('ITEM_AMMO_BULLETS', GameWAD+':TEXTURES\CLIP');
   g_Texture_CreateWADEx('ITEM_AMMO_BULLETS_BOX', GameWAD+':TEXTURES\AMMO');
@@ -284,8 +285,6 @@ begin
   g_Texture_CreateWADEx('ITEM_KEY_BLUE', GameWAD+':TEXTURES\KEYB');
   g_Texture_CreateWADEx('ITEM_OXYGEN', GameWAD+':TEXTURES\OXYGEN');
   g_Texture_CreateWADEx('ITEM_SUIT', GameWAD+':TEXTURES\SUIT');
-  g_Texture_CreateWADEx('ITEM_WEAPON_KASTET', GameWAD+':TEXTURES\KASTET');
-  g_Texture_CreateWADEx('ITEM_MEDKIT_BLACK', GameWAD+':TEXTURES\BMED');
 
   InitTextures();
 
@@ -298,7 +297,7 @@ begin
   e_WriteLog('Releasing items data...', TMsgType.Notify);
 
   g_Sound_Delete('SOUND_ITEM_RESPAWNITEM');
-  g_Sound_Delete('SOUND_ITEM_GETRULEZ');
+  g_Sound_Delete('SOUND_ITEM_GETPOWERUP');
   g_Sound_Delete('SOUND_ITEM_GETWEAPON');
   g_Sound_Delete('SOUND_ITEM_GETITEM');
 
@@ -317,16 +316,17 @@ begin
   g_Frames_DeleteByName('FRAMES_FLAG_DOM');
   g_Texture_Delete('ITEM_MEDKIT_SMALL');
   g_Texture_Delete('ITEM_MEDKIT_LARGE');
+  g_Texture_Delete('ITEM_MEDKIT_BLACK');
+  g_Texture_Delete('ITEM_WEAPON_IRONFIST');
   g_Texture_Delete('ITEM_WEAPON_SAW');
   g_Texture_Delete('ITEM_WEAPON_PISTOL');
-  g_Texture_Delete('ITEM_WEAPON_KASTET');
   g_Texture_Delete('ITEM_WEAPON_SHOTGUN1');
   g_Texture_Delete('ITEM_WEAPON_SHOTGUN2');
   g_Texture_Delete('ITEM_WEAPON_CHAINGUN');
   g_Texture_Delete('ITEM_WEAPON_ROCKETLAUNCHER');
   g_Texture_Delete('ITEM_WEAPON_PLASMA');
   g_Texture_Delete('ITEM_WEAPON_BFG');
-  g_Texture_Delete('ITEM_WEAPON_SUPERPULEMET');
+  g_Texture_Delete('ITEM_WEAPON_SUPERCHAINGUN');
   g_Texture_Delete('ITEM_WEAPON_FLAMETHROWER');
   g_Texture_Delete('ITEM_AMMO_BULLETS');
   g_Texture_Delete('ITEM_AMMO_BULLETS_BOX');
@@ -343,8 +343,6 @@ begin
   g_Texture_Delete('ITEM_KEY_BLUE');
   g_Texture_Delete('ITEM_OXYGEN');
   g_Texture_Delete('ITEM_SUIT');
-  g_Texture_Delete('ITEM_WEAPON_KASTET');
-  g_Texture_Delete('ITEM_MEDKIT_BLACK');
 
   freeIds.Free();
   freeIds := nil;
@@ -546,14 +544,14 @@ var
   i, j, k: Integer;
   ID: DWord;
   Anim: TAnimation;
-  m, ItemRespawnTime, RulezRespawnTime: Word;
+  m, ItemRespawnTime{, PowerupRespawnTime}: Word;
   r, nxt: Boolean;
 begin
   if (ggItems = nil) then exit;
 
   // respawn items in 15 seconds regardless of settings during warmup
   ItemRespawnTime := IfThen(gLMSRespawn = LMS_RESPAWN_NONE, gGameSettings.ItemRespawnTime, 15);
-  RulezRespawnTime :=  IfThen(gLMSRespawn = LMS_RESPAWN_NONE, gGameSettings.RulezRespawnTime, 15);
+  //PowerupRespawnTime := IfThen(gLMSRespawn = LMS_RESPAWN_NONE, gGameSettings.PowerupRespawnTime, 15);
 
   for i := 0 to High(ggItems) do
   begin
@@ -744,26 +742,27 @@ begin
     // Items respawn timer
     ggItems[ID].RespawnTime := IfThen(gLMSRespawn = LMS_RESPAWN_NONE, gGameSettings.ItemRespawnTime, 15) * 36;
 
-    // Rulez respawn timer
+    // Powerup respawn timer
     if ggItems[ID].ItemType in [ITEM_SPHERE_BLUE, ITEM_SPHERE_WHITE, ITEM_INVUL,
                          ITEM_INVIS, ITEM_MEDKIT_BLACK, ITEM_JETPACK, ITEM_SUIT] then
     begin
-      ggItems[ID].RespawnTime := IfThen(gLMSRespawn = LMS_RESPAWN_NONE, gGameSettings.RulezRespawnTime, 15) * 36;
+      ggItems[ID].RespawnTime := IfThen(gLMSRespawn = LMS_RESPAWN_NONE, gGameSettings.PowerupRespawnTime, 15) * 36;
     end;
 
     // #### Random powerup respawn ####
-    if LongBool(gGameSettings.Options and GAME_OPTION_RULEZRANDOM) then
+    if LongBool(gGameSettings.Options and GAME_OPTION_POWERUPRANDOM) then
     begin
       if ggItems[ID].ItemType in [ITEM_SPHERE_BLUE, ITEM_SPHERE_WHITE, ITEM_INVUL,
                            ITEM_INVIS, ITEM_MEDKIT_BLACK, ITEM_JETPACK, ITEM_SUIT] then
       begin
-        ggItems[ID].RespawnTime := Max(1, (gGameSettings.RulezRespawnTime + RandomRange(-gGameSettings.RulezRespawnRandom, gGameSettings.RulezRespawnRandom + 1)) * 36);
-        //e_logwritefln ('Randomized rulez %s time: %s', [ggItems[ID].ItemType, ggItems[ID].RespawnTime]);
+        ggItems[ID].RespawnTime := Max(1, (gGameSettings.PowerupRespawnTime +
+          RandomRange(-gGameSettings.PowerupRespawnRandom, gGameSettings.PowerupRespawnRandom + 1)) * 36);
+        //e_logwritefln ('Randomized powerup %s time: %s', [ggItems[ID].ItemType, ggItems[ID].RespawnTime]);
       end;
     end;
 
     // #### Random item respawn ####
-    // Randomize respawn for all items (excluding rulez)
+    // Randomize respawn for all items (excluding powerups)
     if LongBool(gGameSettings.Options and GAME_OPTION_ITEMALLRANDOM) then
     begin
       if ggItems[ID].ItemType in [ITEM_MEDKIT_SMALL, ITEM_MEDKIT_LARGE, ITEM_ARMOR_GREEN,
@@ -773,7 +772,7 @@ begin
                                   ITEM_AMMO_CELL, ITEM_AMMO_CELL_BIG, ITEM_AMMO_FUELCAN,
                                   ITEM_AMMO_BACKPACK, ITEM_WEAPON_SAW, ITEM_WEAPON_SHOTGUN1,
                                   ITEM_WEAPON_SHOTGUN2, ITEM_WEAPON_CHAINGUN, ITEM_WEAPON_ROCKETLAUNCHER,
-                                  ITEM_WEAPON_PLASMA, ITEM_WEAPON_BFG, ITEM_WEAPON_SUPERPULEMET,
+                                  ITEM_WEAPON_PLASMA, ITEM_WEAPON_BFG, ITEM_WEAPON_SUPERCHAINGUN,
                                   ITEM_WEAPON_FLAMETHROWER] then
       begin
         ggItems[ID].RespawnTime := Max(1, (gGameSettings.ItemRespawnTime + RandomRange(-gGameSettings.ItemRespawnRandom, gGameSettings.ItemRespawnRandom + 1)) * 36);
@@ -810,7 +809,7 @@ begin
     begin
       if ggItems[ID].ItemType in [ITEM_WEAPON_SAW, ITEM_WEAPON_SHOTGUN1, ITEM_WEAPON_SHOTGUN2,
                                   ITEM_WEAPON_CHAINGUN, ITEM_WEAPON_ROCKETLAUNCHER, ITEM_WEAPON_PLASMA,
-                                  ITEM_WEAPON_BFG, ITEM_WEAPON_SUPERPULEMET, ITEM_WEAPON_FLAMETHROWER] then
+                                  ITEM_WEAPON_BFG, ITEM_WEAPON_SUPERCHAINGUN, ITEM_WEAPON_FLAMETHROWER] then
       begin
         ggItems[ID].RespawnTime := Max(1, (gGameSettings.ItemRespawnTime + RandomRange(-gGameSettings.ItemRespawnRandom, gGameSettings.ItemRespawnRandom + 1)) * 36);
         //e_logwritefln ('Randomized weapon %s time: %s', [ggItems[ID].ItemType, ggItems[ID].RespawnTime]);
@@ -1020,14 +1019,14 @@ begin
   it := @ggItems[idx];
   if gSoundEffectsDF then
   begin
-    if it.ItemType in [ITEM_SPHERE_BLUE, ITEM_SPHERE_WHITE, ITEM_INVUL,
-                       ITEM_INVIS, ITEM_MEDKIT_BLACK, ITEM_JETPACK] then
+    if it.ItemType in [ITEM_SPHERE_BLUE, ITEM_SPHERE_WHITE, ITEM_INVUL, ITEM_INVIS,
+                       ITEM_JETPACK, ITEM_MEDKIT_BLACK] then
     begin
-      g_Sound_PlayExAt('SOUND_ITEM_GETRULEZ', x, y);
+      g_Sound_PlayExAt('SOUND_ITEM_GETPOWERUP', x, y);
     end
     else if it.ItemType in [ITEM_WEAPON_SAW, ITEM_WEAPON_PISTOL, ITEM_WEAPON_SHOTGUN1, ITEM_WEAPON_SHOTGUN2,
                             ITEM_WEAPON_CHAINGUN, ITEM_WEAPON_ROCKETLAUNCHER, ITEM_WEAPON_PLASMA,
-                            ITEM_WEAPON_BFG, ITEM_WEAPON_SUPERPULEMET, ITEM_WEAPON_FLAMETHROWER,
+                            ITEM_WEAPON_BFG, ITEM_WEAPON_SUPERCHAINGUN, ITEM_WEAPON_FLAMETHROWER,
                             ITEM_AMMO_BACKPACK] then
     begin
       g_Sound_PlayExAt('SOUND_ITEM_GETWEAPON', x, y);
@@ -1039,14 +1038,14 @@ begin
   end
   else
   begin
-    if it.ItemType in [ITEM_SPHERE_BLUE, ITEM_SPHERE_WHITE, ITEM_SUIT,
-                       ITEM_MEDKIT_BLACK, ITEM_INVUL, ITEM_INVIS, ITEM_JETPACK] then
+    if it.ItemType in [ITEM_SPHERE_BLUE, ITEM_SPHERE_WHITE, ITEM_INVUL, ITEM_INVIS,
+                       ITEM_SUIT, ITEM_JETPACK, ITEM_MEDKIT_BLACK] then
     begin
-      g_Sound_PlayExAt('SOUND_ITEM_GETRULEZ', x, y);
+      g_Sound_PlayExAt('SOUND_ITEM_GETPOWERUP', x, y);
     end
     else if it.ItemType in [ITEM_WEAPON_SAW, ITEM_WEAPON_PISTOL, ITEM_WEAPON_SHOTGUN1, ITEM_WEAPON_SHOTGUN2,
                             ITEM_WEAPON_CHAINGUN, ITEM_WEAPON_ROCKETLAUNCHER, ITEM_WEAPON_PLASMA,
-                            ITEM_WEAPON_BFG, ITEM_WEAPON_SUPERPULEMET, ITEM_WEAPON_FLAMETHROWER] then
+                            ITEM_WEAPON_BFG, ITEM_WEAPON_SUPERCHAINGUN, ITEM_WEAPON_FLAMETHROWER] then
     begin
       g_Sound_PlayExAt('SOUND_ITEM_GETWEAPON', x, y);
     end
index 7fcf0dd1903f55813b848721e5e66d6109448b23..424e553cc7beb593ef8b8d4d5c53c1bfb830d91f 100644 (file)
@@ -186,10 +186,10 @@ type
     I_MENU_WEAPONS_STAY,
     I_MENU_ENABLE_TEAM_DAMAGE_ABSOBR,
     I_MENU_ENABLE_MONSTERS,
-    I_MENU_ENABLE_RULEZ_RANDOM,
+    I_MENU_ENABLE_POWERUP_RANDOM,
     I_MENU_ENABLE_ITEM_RANDOM,
-    I_MENU_RULEZ_RESPAWN_TIME,
-    I_MENU_RULEZ_RESPAWN_RANDOM,
+    I_MENU_POWERUP_RESPAWN_TIME,
+    I_MENU_POWERUP_RESPAWN_RANDOM,
     I_MENU_BOTS_VS,
     I_MENU_BOTS_VS_PLAYERS,
     I_MENU_BOTS_VS_MONSTERS,
@@ -340,9 +340,9 @@ type
     I_MENU_WEAPON_SWITCH_PREFERENCE,
     I_MENU_WEAPON_SWITCH_PRIORITY,
     I_MENU_WEAPON_ALLOW_EMPTY,
-    I_MENU_KASTET_ALLOW,
-    I_MENU_KASTET_ALLOW_BERSERK,
-    I_MENU_KASTET_ALLOW_ALWAYS,
+    I_MENU_IRONFIST_ALLOW,
+    I_MENU_IRONFIST_ALLOW_BERSERK,
+    I_MENU_IRONFIST_ALLOW_ALWAYS,
     I_MENU_WEAPON_PRIORITY_PLAYER_1,
     I_MENU_WEAPON_PRIORITY_PLAYER_2,
 
@@ -643,8 +643,8 @@ type
     I_MSG_SPECT_HUD_OFF,
     I_MSG_PING_ON,
     I_MSG_PING_OFF,
-    I_MSG_RULEZ_RANDOM_ON,
-    I_MSG_RULEZ_RANDOM_OFF,
+    I_MSG_POWERUP_RANDOM_ON,
+    I_MSG_POWERUP_RANDOM_OFF,
     I_MSG_ITEM_ALL_RANDOM_ON,
     I_MSG_ITEM_ALL_RANDOM_OFF,
     I_MSG_ITEM_HELP_RANDOM_ON,
@@ -866,7 +866,7 @@ const
     ('GAME CHEAT AUTOMAP',             'ID2DT',
                                        'ID2DT'),
 
-    ('GAME WEAPON0',                   'Fist',
+    ('GAME WEAPON0',                   'Iron Fist',
                                        'Êàñòåò'),
     ('GAME WEAPON1',                   'Chainsaw',
                                        'Áåíçîïèëà'),
@@ -1031,13 +1031,13 @@ const
                                        'Ïîãëîùåíèå óðîíà ñîþçíèêàìè:'),
     ('MENU ENABLE MONSTERS',           'Enable monsters:',
                                        'Ìîíñòðû:'),
-    ('MENU ENABLE RULEZ RANDOM',       'Enable random powerup respawn:',
+    ('MENU ENABLE POWERUP RANDOM',     'Enable random powerup respawn:',
                                        'Ñëó÷àéíîå âîñïîëíåíèå áîíóñîâ:'),
     ('MENU ENABLE ITEM RANDOM',        'Enable item powerup respawn:',
                                        'Ñëó÷àéíî âîñïîëíÿåìûå ïðåäìåòû:'),
-    ('MENU RULEZ RESPAWN TIME',        'Powerup respawn time:',
+    ('MENU POWERUP RESPAWN TIME',      'Powerup respawn time:',
                                        'Âðåìÿ îòñóòñòâèÿ áîíóñîâ:'),
-    ('MENU RULEZ RESPAWN RANDOM',      'Additive time for powerup timer:',
+    ('MENU POWERUP RESPAWN RANDOM',    'Additive time for powerup timer:',
                                        'Ðàçáðîñ îòñ÷¸òà äëÿ áîíóñîâ:'),
     ('MENU BOTS VS',                   'Bots fight with:',
                                        'Áîòû ïðîòèâ:'),
@@ -1328,11 +1328,11 @@ const
                                        'Ïðèîðèòåòíîñòü îðóæèÿ'),
     ('MENU WEAPON ALLOW EMPTY',        'Skip empty weapons',
                                        'Ïðîïóñêàòü ïóñòîå îðóæèå'),
-    ('MENU KASTET ALLOW',              'Switch to fist',
+    ('MENU IRON FIST ALLOW',           'Switch to Iron Fist',
                                        'Âûáèðàòü êàñòåò'),
-    ('MENU KASTET ALLOW BERSERK',      'Only with berserk',
+    ('MENU IRON FIST ALLOW BERSERK',   'Only with berserk',
                                        'Òîëüêî ñ áåðñåðêîì'),
-    ('MENU KASTET ALLOW ALWAYS',       'Always',
+    ('MENU IRON FIST ALLOW ALWAYS',    'Always',
                                        'Âñåãäà'),
     ('MENU WEAPON PRIORITY PLAYER 1',  'Player 1 Priority',
                                        'Ïðèîðèòåò îðóæèÿ (1)'),
@@ -1905,9 +1905,9 @@ const
                                        'Ïèíã êëèåíòà ïîêàçûâàåòñÿ'),
     ('MSG PING OFF',                   'Client ping display off',
                                        'Ïèíã êëèåíòà íå ïîêàçûâàåòñÿ'),
-    ('MSG RULEZ RANDOM ON',            'Random respawn enabled for powerups',
+    ('MSG POWERUP RANDOM ON',          'Random respawn enabled for powerups',
                                        'Ñëó÷àéíîå âîñïîëíåíèå âêëþ÷åíî äëÿ áîíóñîâ'),
-    ('MSG RULEZ RANDOM OFF',           'Random respawn for powerups disabled',
+    ('MSG POWERUP RANDOM OFF',         'Random respawn for powerups disabled',
                                        'Ñëó÷àéíîå âîñïîëíåíèå äëÿ áîíóñîâ âûêëþ÷åíî'),
     ('MSG ITEM ALL RANDOM ON',         'Random respawn enabled for all items',
                                        'Ñëó÷àéíîå âîñïîëíåíèå âêëþ÷åíî äëÿ âñåõ ïðåäìåòîâ'),
index 3d7ee91f60d0a6be08cd598f9aa79838943c1e71..80b5e7ae6a4f1a58cfea5eb3af24e37be5c1cffd 100644 (file)
@@ -797,15 +797,15 @@ begin
   // RAMBO
   if CheckCheat(I_GAME_CHEAT_WEAPONS) then
   begin
-    if gPlayer1 <> nil then gPlayer1.AllRulez(False);
-    if gPlayer2 <> nil then gPlayer2.AllRulez(False);
+    if gPlayer1 <> nil then gPlayer1.TankRamboCheats(False);
+    if gPlayer2 <> nil then gPlayer2.TankRamboCheats(False);
     goto Cheated;
   end;
   // TANK
   if CheckCheat(I_GAME_CHEAT_HEALTH) then
   begin
-    if gPlayer1 <> nil then gPlayer1.AllRulez(True);
-    if gPlayer2 <> nil then gPlayer2.AllRulez(True);
+    if gPlayer1 <> nil then gPlayer1.TankRamboCheats(True);
+    if gPlayer2 <> nil then gPlayer2.TankRamboCheats(True);
     goto Cheated;
   end;
   // IDDQD
index 80989a887ad4a2d8d46a91a3afc4e992fd4c0559..fac3ca78f40f161031fbcd68254909343f475a64 100644 (file)
@@ -353,7 +353,7 @@ begin
   menu := TGUIMenu(g_GUI_GetWindow('OptionsPlayersP1WeaponMenu').GetControl('mOptionsPlayersP1WeaponMenu'));
   gPlayer1Settings.WeaponSwitch := TGUISwitch(menu.GetControl('swWeaponAutoswitch')).ItemIndex;
   gPlayer1Settings.SwitchToEmpty := TGUISwitch(menu.GetControl('swWeaponAllowEmpty')).ItemIndex;
-  gPlayer1Settings.SkipFist := TGUISwitch(menu.GetControl('swWeaponAllowFist')).ItemIndex;
+  gPlayer1Settings.SkipIronFist := TGUISwitch(menu.GetControl('swWeaponAllowIronFist')).ItemIndex;
   menu := TGUIMenu(g_GUI_GetWindow('OptionsPreferencesP1WeaponMenu').GetControl('mOptionsPreferencesP1WeaponMenu'));
   with menu do
   begin
@@ -366,7 +366,7 @@ begin
   menu := TGUIMenu(g_GUI_GetWindow('OptionsPlayersP2WeaponMenu').GetControl('mOptionsPlayersP2WeaponMenu'));
   gPlayer2Settings.WeaponSwitch := TGUISwitch(menu.GetControl('swWeaponAutoswitch')).ItemIndex;
   gPlayer2Settings.SwitchToEmpty := TGUISwitch(menu.GetControl('swWeaponAllowEmpty')).ItemIndex;
-  gPlayer2Settings.SkipFist := TGUISwitch(menu.GetControl('swWeaponAllowFist')).ItemIndex;
+  gPlayer2Settings.SkipIronFist := TGUISwitch(menu.GetControl('swWeaponAllowIronFist')).ItemIndex;
   menu := TGUIMenu(g_GUI_GetWindow('OptionsPreferencesP2WeaponMenu').GetControl('mOptionsPreferencesP2WeaponMenu'));
   with menu do
   begin
@@ -393,7 +393,7 @@ begin
       gPlayer1.WeapSwitchMode := gPlayer1Settings.WeaponSwitch;
       gPlayer1.setWeaponPrefs(gPlayer1Settings.WeaponPreferences);
       gPlayer1.SwitchToEmpty := gPlayer1Settings.SwitchToEmpty;
-      gPlayer1.SkipFist := gPlayer1Settings.SkipFist;
+      gPlayer1.SkipIronFist := gPlayer1Settings.SkipIronFist;
       if g_Game_IsNet then MH_SEND_PlayerSettings(gPlayer1.UID);
     end;
 
@@ -409,7 +409,7 @@ begin
       gPlayer2.WeapSwitchMode := gPlayer2Settings.WeaponSwitch;
       gPlayer2.setWeaponPrefs(gPlayer2Settings.WeaponPreferences);
       gPlayer2.SwitchToEmpty := gPlayer2Settings.SwitchToEmpty;
-      gPlayer2.SkipFist := gPlayer2Settings.SkipFist;
+      gPlayer2.SkipIronFist := gPlayer2Settings.SkipIronFist;
       //if g_Game_IsNet then MH_SEND_PlayerSettings(gPlayer2.UID);
     end;
   end;
@@ -646,7 +646,7 @@ begin
   menu := TGUIMenu(g_GUI_GetWindow('OptionsPlayersP1WeaponMenu').GetControl('mOptionsPlayersP1WeaponMenu'));
   TGUISwitch(menu.GetControl('swWeaponAutoswitch')).ItemIndex := gPlayer1Settings.WeaponSwitch;
   TGUISwitch(menu.GetControl('swWeaponAllowEmpty')).ItemIndex := gPlayer1Settings.SwitchToEmpty;
-  TGUISwitch(menu.GetControl('swWeaponAllowFist')).ItemIndex := gPlayer1Settings.SkipFist;
+  TGUISwitch(menu.GetControl('swWeaponAllowIronFist')).ItemIndex := gPlayer1Settings.SkipIronFist;
   menu := TGUIMenu(g_GUI_GetWindow('OptionsPreferencesP1WeaponMenu').GetControl('mOptionsPreferencesP1WeaponMenu'));
   for i := WP_FIRST to WP_LAST+1 do
   begin
@@ -657,7 +657,7 @@ begin
   menu := TGUIMenu(g_GUI_GetWindow('OptionsPlayersP2WeaponMenu').GetControl('mOptionsPlayersP2WeaponMenu'));
   TGUISwitch(menu.GetControl('swWeaponAutoswitch')).ItemIndex := gPlayer2Settings.WeaponSwitch;
   TGUISwitch(menu.GetControl('swWeaponAllowEmpty')).ItemIndex := gPlayer2Settings.SwitchToEmpty;
-  TGUISwitch(menu.GetControl('swWeaponAllowFist')).ItemIndex := gPlayer2Settings.SkipFist;
+  TGUISwitch(menu.GetControl('swWeaponAllowIronFist')).ItemIndex := gPlayer2Settings.SkipIronFist;
   menu := TGUIMenu(g_GUI_GetWindow('OptionsPreferencesP2WeaponMenu').GetControl('mOptionsPreferencesP2WeaponMenu'));
   for i := WP_FIRST to WP_LAST+1 do
   begin
@@ -780,11 +780,11 @@ begin
   begin
     gsItemRespawnTime := StrToIntDef(TGUIEdit(GetControl('edItemRespawnTime')).Text, 0);
     gsItemRespawnRandom := StrToIntDef(TGUIEdit(GetControl('edItemRespawnRandom')).Text, 0);
-    gsRulezRespawnTime := StrToIntDef(TGUIEdit(GetControl('edRulezRespawnTime')).Text, 0);
-    gsRulezRespawnRandom := StrToIntDef(TGUIEdit(GetControl('edRulezRespawnRandom')).Text, 0);
+    gsPowerupRespawnTime := StrToIntDef(TGUIEdit(GetControl('edPowerupRespawnTime')).Text, 0);
+    gsPowerupRespawnRandom := StrToIntDef(TGUIEdit(GetControl('edPowerupRespawnRandom')).Text, 0);
 
-    if TGUISwitch(GetControl('swRulezRandom')).ItemIndex = 0 then
-      gsGameFlags := gsGameFlags or GAME_OPTION_RULEZRANDOM;
+    if TGUISwitch(GetControl('swPowerupRandom')).ItemIndex = 0 then
+      gsGameFlags := gsGameFlags or GAME_OPTION_POWERUPRANDOM;
 
     case TGUISwitch(GetControl('swItemsRandom')).ItemIndex of
       1: gsGameFlags := gsGameFlags or GAME_OPTION_ITEMHELPRANDOM;
@@ -799,8 +799,8 @@ begin
     // TODO: get this crap out of here
     gGameSettings.ItemRespawnTime := gsItemRespawnTime;
     gGameSettings.ItemRespawnRandom := gsItemRespawnRandom;
-    gGameSettings.RulezRespawnTime := gsRulezRespawnTime;
-    gGameSettings.RulezRespawnRandom := gsRulezRespawnRandom;
+    gGameSettings.PowerupRespawnTime := gsPowerupRespawnTime;
+    gGameSettings.PowerupRespawnRandom := gsPowerupRespawnRandom;
   end;
 end;
 
@@ -2870,12 +2870,12 @@ begin
     Name := 'mItemsRespawnMenu';
 
     // Switches separate from the time entry fields
-    with AddSwitch(_lc[I_MENU_ENABLE_RULEZ_RANDOM]) do
+    with AddSwitch(_lc[I_MENU_ENABLE_POWERUP_RANDOM]) do
     begin
-      Name := 'swRulezRandom';
+      Name := 'swPowerupRandom';
       AddItem(_lc[I_MENU_YES]);
       AddItem(_lc[I_MENU_NO]);
-      if LongBool(gsGameFlags and GAME_OPTION_RULEZRANDOM) then
+      if LongBool(gsGameFlags and GAME_OPTION_POWERUPRANDOM) then
         ItemIndex := 0
       else
         ItemIndex := 1;
@@ -2927,24 +2927,24 @@ begin
       if gsItemRespawnTime > 0 then
         Text := IntToStr(gsItemRespawnRandom);
     end;
-    // Rulez Respawn block
-    with AddEdit(_lc[I_MENU_RULEZ_RESPAWN_TIME]) do
+    // Powerup Respawn block
+    with AddEdit(_lc[I_MENU_POWERUP_RESPAWN_TIME]) do
     begin
-      Name := 'edRulezRespawnTime';
+      Name := 'edPowerupRespawnTime';
       OnlyDigits := True;
       Width := 4;
       MaxLength := 5;
-      if gsRulezRespawnTime > 0 then
-        Text := IntToStr(gsRulezRespawnTime);
+      if gsPowerupRespawnTime > 0 then
+        Text := IntToStr(gsPowerupRespawnTime);
     end;
-    with AddEdit(_lc[I_MENU_RULEZ_RESPAWN_RANDOM]) do
+    with AddEdit(_lc[I_MENU_POWERUP_RESPAWN_RANDOM]) do
     begin
-      Name := 'edRulezRespawnRandom';
+      Name := 'edPowerupRespawnRandom';
       OnlyDigits := True;
       Width := 4;
       MaxLength := 5;
-      if gsRulezRespawnRandom > 0 then
-        Text := IntToStr(gsRulezRespawnRandom);
+      if gsPowerupRespawnRandom > 0 then
+        Text := IntToStr(gsPowerupRespawnRandom);
     end;
     AddSpace();
   end;
@@ -3419,11 +3419,11 @@ begin
       AddItem(_lc[I_MENU_YES]);
       AddItem(_lc[I_MENU_NO]);
     end;
-    with AddSwitch(_lc[I_MENU_KASTET_ALLOW]) do
+    with AddSwitch(_lc[I_MENU_IRONFIST_ALLOW]) do
     begin
-      Name := 'swWeaponAllowFist';
-      AddItem(_lc[I_MENU_KASTET_ALLOW_ALWAYS]);
-      AddItem(_lc[I_MENU_KASTET_ALLOW_BERSERK]);
+      Name := 'swWeaponAllowIronFist';
+      AddItem(_lc[I_MENU_IRONFIST_ALLOW_ALWAYS]);
+      AddItem(_lc[I_MENU_IRONFIST_ALLOW_BERSERK]);
     end;
     AddButton(@ProcOptionsPlayerP1WeaponPreferencesMenu, _lc[I_MENU_WEAPON_SWITCH_PRIORITY]);
     ReAlign();
@@ -3478,11 +3478,11 @@ begin
       AddItem(_lc[I_MENU_YES]);
       AddItem(_lc[I_MENU_NO]);
     end;
-    with AddSwitch(_lc[I_MENU_KASTET_ALLOW]) do
+    with AddSwitch(_lc[I_MENU_IRONFIST_ALLOW]) do
     begin
-      Name := 'swWeaponAllowFist';
-      AddItem(_lc[I_MENU_KASTET_ALLOW_ALWAYS]);
-      AddItem(_lc[I_MENU_KASTET_ALLOW_BERSERK]);
+      Name := 'swWeaponAllowIronFist';
+      AddItem(_lc[I_MENU_IRONFIST_ALLOW_ALWAYS]);
+      AddItem(_lc[I_MENU_IRONFIST_ALLOW_BERSERK]);
     end;
     AddButton(@ProcOptionsPlayerP2WeaponPreferencesMenu, _lc[I_MENU_WEAPON_SWITCH_PRIORITY]);
     ReAlign();
index 875db7f0808e43f8f55293a62797790bad5704ca..4108d51a0cc611ef7987fd77b13f9f884fb6a047 100644 (file)
@@ -2681,7 +2681,7 @@ begin
           if (gPlayers <> nil) then
             for a := 0 to High(gPlayers) do
               if (gPlayers[a] <> nil) and (gPlayers[a].alive)
-              and (not gPlayers[a].NoTarget) and (gPlayers[a].FMegaRulez[MR_INVIS] < gTime) then
+              and (not gPlayers[a].NoTarget) and (gPlayers[a].FPowerups[MR_INVIS] < gTime) then
                 with gPlayers[a] do
                   if g_Look(@FObj, @Obj, FDirection) then
                   begin
@@ -4175,7 +4175,7 @@ begin
   (FBehaviour <> BH_CANNIBAL) and (FBehaviour <> BH_GOOD) then
     for a := 0 to High(gPlayers) do
       if (gPlayers[a] <> nil) and (gPlayers[a].alive)
-      and (not gPlayers[a].NoTarget) and (gPlayers[a].FMegaRulez[MR_INVIS] < gTime) then
+      and (not gPlayers[a].NoTarget) and (gPlayers[a].FPowerups[MR_INVIS] < gTime) then
       begin
         if g_Look(@FObj, @gPlayers[a].Obj, FDirection) then
         begin
index b090aa30e08bdb690b645389cd73d22cfd6a9549..15da1c62189407cd450f4673a0432427273d0826 100644 (file)
@@ -462,7 +462,7 @@ begin
     WeapSwitchMode := WeapSwitch;
     SetWeaponPrefs(TmpPrefArray);
     SwitchToEmpty := SwitchEmpty;
-    SkipFist := SkipF;
+    SkipIronFist := SkipF;
     if (g_Force_Model_Get() <> 0) then
       SetModel(g_Forced_Model_GetName());
     Reset(True);
@@ -776,8 +776,8 @@ begin
   if (TmpSwEmpty <> Pl.SwitchToEmpty) then
     Pl.SwitchToEmpty := TmpSwEmpty;
 
-  if (TmpSkipF <> Pl.SkipFist) then
-    Pl.SkipFist := TmpSkipF;
+  if (TmpSkipF <> Pl.SkipIronFist) then
+    Pl.SkipIronFist := TmpSkipF;
 
   MH_SEND_PlayerSettings(Pl.UID, TmpModel);
 end;
@@ -1323,13 +1323,13 @@ begin
       NetOut.Write(FMaxAmmo[I]);
 
     for I := MR_SUIT to MR_MAX do
-      NetOut.Write(LongWord(FMegaRulez[I]));
+      NetOut.Write(LongWord(FPowerups[I]));
 
-    NetOut.Write(Byte(R_ITEM_BACKPACK in FRulez));
-    NetOut.Write(Byte(R_KEY_RED in FRulez));
-    NetOut.Write(Byte(R_KEY_GREEN in FRulez));
-    NetOut.Write(Byte(R_KEY_BLUE in FRulez));
-    NetOut.Write(Byte(R_BERSERK in FRulez));
+    NetOut.Write(Byte(R_ITEM_BACKPACK in FInventory));
+    NetOut.Write(Byte(R_KEY_RED in FInventory));
+    NetOut.Write(Byte(R_KEY_GREEN in FInventory));
+    NetOut.Write(Byte(R_KEY_BLUE in FInventory));
+    NetOut.Write(Byte(R_BERSERK in FInventory));
 
     NetOut.Write(Frags);
     NetOut.Write(Death);
@@ -2527,19 +2527,14 @@ begin
       FMaxAmmo[I] := M.ReadWord();
 
     for I := MR_SUIT to MR_MAX do
-      FMegaRulez[I] := M.ReadLongWord();
-
-    FRulez := [];
-    if (M.ReadByte() <> 0) then
-      FRulez := FRulez + [R_ITEM_BACKPACK];
-    if (M.ReadByte() <> 0) then
-      FRulez := FRulez + [R_KEY_RED];
-    if (M.ReadByte() <> 0) then
-      FRulez := FRulez + [R_KEY_GREEN];
-    if (M.ReadByte() <> 0) then
-      FRulez := FRulez + [R_KEY_BLUE];
-    if (M.ReadByte() <> 0) then
-      FRulez := FRulez + [R_BERSERK];
+      FPowerups[I] := M.ReadLongWord();
+
+    FInventory := [];
+    if (M.ReadByte() <> 0) then FInventory += [R_ITEM_BACKPACK];
+    if (M.ReadByte() <> 0) then FInventory += [R_KEY_RED];
+    if (M.ReadByte() <> 0) then FInventory += [R_KEY_GREEN];
+    if (M.ReadByte() <> 0) then FInventory += [R_KEY_BLUE];
+    if (M.ReadByte() <> 0) then FInventory += [R_BERSERK];
 
     Frags := M.ReadLongInt();
     Death := M.ReadLongInt();
@@ -3181,7 +3176,7 @@ begin
   for i := WP_FIRST to WP_LAST + 1 do
     NetOut.Write(gPlayer1Settings.WeaponPreferences[i]);
   NetOut.Write(gPlayer1Settings.SwitchToEmpty);
-  NetOut.Write(gPlayer1Settings.SkipFist);
+  NetOut.Write(gPlayer1Settings.SkipIronFist);
 
   g_Net_Client_Send(True);
 end;
@@ -3334,7 +3329,7 @@ begin
   for i := WP_FIRST to WP_LAST + 1 do
     NetOut.Write(gPlayer1Settings.WeaponPreferences[i]);
   NetOut.Write(gPlayer1Settings.SwitchToEmpty);
-  NetOut.Write(gPlayer1Settings.SkipFist);
+  NetOut.Write(gPlayer1Settings.SkipIronFist);
 
   g_Net_Client_Send(True);
 end;
index 23bb91b30ed9ae2b1aaf091ba2d48f369c8f0e66..22ebe3e26e0da9f644d2bf142a33159a34350ec1 100644 (file)
@@ -75,8 +75,8 @@ var
   gsSpawnInvul: Integer = 0;
   gsItemRespawnTime: Word = 60;
   gsItemRespawnRandom: Word = 0;
-  gsRulezRespawnTime: Word = 60;
-  gsRulezRespawnRandom: Word = 0;
+  gsPowerupRespawnTime: Word = 60;
+  gsPowerupRespawnRandom: Word = 0;
   gsWarmupTime: Word = 30;
 
 implementation
@@ -271,8 +271,8 @@ begin
   gsSpawnInvul := 0;
   gsItemRespawnTime := 60;
   gsItemRespawnRandom := 0;
-  gsRulezRespawnTime := 60;
-  gsRulezRespawnRandom := 0;
+  gsPowerupRespawnTime := 60;
+  gsPowerupRespawnRandom := 0;
   gsGameFlags := GAME_OPTION_ALLOWEXIT or GAME_OPTION_DMKEYS or
     GAME_OPTION_BOTVSPLAYER or GAME_OPTION_BOTVSMONSTER or
     GAME_OPTION_TEAMHITTRACE or GAME_OPTION_TEAMHITPROJECTILE or
@@ -322,8 +322,8 @@ begin
     SpawnInvul := gsSpawnInvul;
     ItemRespawnTime := gsItemRespawnTime;
     ItemRespawnRandom := gsItemRespawnRandom;
-    RulezRespawnTime := gsRulezRespawnTime;
-    RulezRespawnRandom := gsRulezRespawnRandom;
+    PowerupRespawnTime := gsPowerupRespawnTime;
+    PowerupRespawnRandom := gsPowerupRespawnRandom;
     WarmupTime := gsWarmupTime;
     Options := gsGameFlags;
   end;
index 790d419283314680739cebf3093014f842c0a6de..6b0c4f5bd75028389a8c06772ccdd32f5acb1d5c 100644 (file)
@@ -133,7 +133,7 @@ type
     Ammo:       Array [A_BULLETS..A_HIGH] of Word;
     MaxAmmo:    Array [A_BULLETS..A_HIGH] of Word;
     Weapon:     Array [WP_FIRST..WP_LAST] of Boolean;
-    Rulez:      Set of R_ITEM_BACKPACK..R_BERSERK;
+    Inventory:  Set of R_ITEM_BACKPACK..R_BERSERK;
     Used:       Boolean;
   end;
 
@@ -237,7 +237,7 @@ type
     procedure Jump();
     procedure Use();
 
-    function getNextWeaponIndex (): Byte; // return 255 for "no switch"
+    function getNextWeaponIndex (): Byte;  // returns 255 for "no switch"
     procedure resetWeaponQueue ();
     function hasAmmoForWeapon (weapon: Byte): Boolean;
     function hasAmmoForShooting (weapon: Byte): Boolean;
@@ -253,16 +253,16 @@ type
     FAmmo:      Array [A_BULLETS..A_HIGH] of Word;
     FMaxAmmo:   Array [A_BULLETS..A_HIGH] of Word;
     FWeapon:    Array [WP_FIRST..WP_LAST] of Boolean;
-    FRulez:     Set of R_ITEM_BACKPACK..R_BERSERK;
+    FInventory: Set of R_ITEM_BACKPACK..R_BERSERK;
     FBerserk:   Integer;
-    FMegaRulez: Array [MR_SUIT..MR_MAX] of DWORD;
+    FPowerups:  Array [MR_SUIT..MR_MAX] of DWORD;
     FReloading: Array [WP_FIRST..WP_LAST] of Word;
     FTime:      Array [T_RESPAWN..T_FLAGCAP] of DWORD;
     FKeys:      Array [KEY_LEFT..KEY_CHAT] of TKeyState;
     FWeapSwitchMode: Byte;
     FWeapPreferences: Array [WP_FIRST .. WP_LAST+1] of Byte;
     FSwitchToEmpty: Byte;
-    FSkipFist: Byte;
+    FSkipIronFist: Byte;
     FColor:     TRGB;
     FPreferredTeam: Byte;
     FSpectator: Boolean;
@@ -323,7 +323,7 @@ type
     procedure   SetFlag(Flag: Byte);
     function    DropFlag(Silent: Boolean = True; DoThrow: Boolean = False): Boolean;
     function    TryDropFlag(): Boolean;
-    procedure   AllRulez(Health: Boolean);
+    procedure   TankRamboCheats(Health: Boolean);
     procedure   RestoreHealthArmor();
     procedure   FragCombo();
     procedure   GiveItem(ItemType: Byte);
@@ -339,15 +339,15 @@ type
     procedure   Draw(); virtual;
     procedure   DrawPain();
     procedure   DrawPickup();
-    procedure   DrawRulez();
+    procedure   DrawOverlay();
     procedure   DrawAim();
     procedure   DrawIndicator(Color: TRGB);
     procedure   DrawBubble();
     procedure   DrawGUI();
     procedure   PreUpdate();
     procedure   Update(); virtual;
-    procedure   RememberState();
-    procedure   RecallState();
+    procedure   PreserveState();
+    procedure   RestoreState();
     procedure   SaveState (st: TStream); virtual;
     procedure   LoadState (st: TStream); virtual;
     procedure   PauseSounds(Enable: Boolean);
@@ -388,7 +388,7 @@ type
     property    CurrWeap: Byte read FCurrWeap write FCurrWeap;
     property    WeapSwitchMode: Byte read FWeapSwitchMode write FWeapSwitchMode;
     property    SwitchToEmpty: Byte read FSwitchToEmpty write FSwitchToEmpty;
-    property    SkipFist: Byte read FSkipFist write FSkipFist;
+    property    SkipIronFist: Byte read FSkipIronFist write FSkipIronFist;
     property    MonsterKills: Integer read FMonsterKills write FMonsterKills;
     property    Secrets: Integer read FSecrets;
     property    GodMode: Boolean read FGodMode write FGodMode;
@@ -706,20 +706,20 @@ const
                                 FlyPrecision: 255; Cover: 255; CloseJump: 255;
                                 WeaponPrior:(0,0,0,0,0,0,0,0,0,0,0); CloseWeaponPrior:(0,0,0,0,0,0,0,0,0,0,0));
   WEAPON_PRIOR1: Array [WP_FIRST..WP_LAST] of Byte =
-                                (WEAPON_FLAMETHROWER, WEAPON_SUPERPULEMET,
+                                (WEAPON_FLAMETHROWER, WEAPON_SUPERCHAINGUN,
                                  WEAPON_SHOTGUN2, WEAPON_SHOTGUN1,
                                  WEAPON_CHAINGUN, WEAPON_PLASMA, WEAPON_ROCKETLAUNCHER,
-                                 WEAPON_BFG, WEAPON_PISTOL, WEAPON_SAW, WEAPON_KASTET);
+                                 WEAPON_BFG, WEAPON_PISTOL, WEAPON_SAW, WEAPON_IRONFIST);
   WEAPON_PRIOR2: Array [WP_FIRST..WP_LAST] of Byte =
-                                (WEAPON_FLAMETHROWER, WEAPON_SUPERPULEMET,
+                                (WEAPON_FLAMETHROWER, WEAPON_SUPERCHAINGUN,
                                  WEAPON_BFG, WEAPON_ROCKETLAUNCHER,
                                  WEAPON_SHOTGUN2, WEAPON_PLASMA, WEAPON_SHOTGUN1,
-                                 WEAPON_CHAINGUN, WEAPON_PISTOL, WEAPON_SAW, WEAPON_KASTET);
+                                 WEAPON_CHAINGUN, WEAPON_PISTOL, WEAPON_SAW, WEAPON_IRONFIST);
   //WEAPON_PRIOR3: Array [WP_FIRST..WP_LAST] of Byte =
-  //                              (WEAPON_FLAMETHROWER, WEAPON_SUPERPULEMET,
+  //                              (WEAPON_FLAMETHROWER, WEAPON_SUPERCHAINGUN,
   //                               WEAPON_BFG, WEAPON_PLASMA, WEAPON_SHOTGUN2,
   //                               WEAPON_CHAINGUN, WEAPON_SHOTGUN1, WEAPON_SAW,
-  //                               WEAPON_ROCKETLAUNCHER, WEAPON_PISTOL, WEAPON_KASTET);
+  //                               WEAPON_ROCKETLAUNCHER, WEAPON_PISTOL, WEAPON_IRONFIST);
   WEAPON_RELOAD: Array [WP_FIRST..WP_LAST] of Byte =
                                 (5, 2, 6, 18, 36, 2, 12, 2, 14, 2, 2);
 
@@ -1529,7 +1529,7 @@ var
 begin
   for i := Low(gPlayers) to High(gPlayers) do
     if (gPlayers[i] <> nil) and gPlayers[i].alive then
-      gPlayers[i].RememberState;
+      gPlayers[i].PreserveState;
 end;
 
 procedure g_Player_ResetAll(Force, Silent: Boolean);
@@ -2107,17 +2107,17 @@ begin
   for i := WP_FIRST to WP_LAST do
     if FWeapon[i] and maySwitch(i) and (FWeapPreferences[i] > FWeapPreferences[testedWeap]) then
       testedWeap := i;
-  if (R_BERSERK in FRulez) and (FWeapPreferences[WP_LAST + 1] > FWeapPreferences[testedWeap]) then
-    testedWeap := WEAPON_KASTET;
+  if (R_BERSERK in FInventory) and (FWeapPreferences[WP_LAST + 1] > FWeapPreferences[testedWeap]) then
+    testedWeap := WEAPON_IRONFIST;
   result := testedWeap;
 end;
 
 function TPlayer.maySwitch(Weapon: Byte) : Boolean;
 begin
   result := true;
-  if (Weapon = WEAPON_KASTET) and (FSkipFist <> 0) then
+  if (Weapon = WEAPON_IRONFIST) and (FSkipIronFist <> 0) then
   begin
-    if (FSkipFist = 1) and (not (R_BERSERK in FRulez)) then
+    if (FSkipIronFist = 1) and (not (R_BERSERK in FInventory)) then
       result := false;
   end
   else if (FSwitchToEmpty = 0) and (not hasAmmoForShooting(Weapon)) then
@@ -2185,12 +2185,12 @@ begin
     if not PickItem(ItemType, gItems[i].Respawnable, r) then Continue;
 
     if ItemType in [ITEM_SPHERE_BLUE, ITEM_SPHERE_WHITE, ITEM_INVUL] then
-     g_Sound_PlayExAt('SOUND_ITEM_GETRULEZ', FObj.X, FObj.Y)
+     g_Sound_PlayExAt('SOUND_ITEM_GETPOWERUP', FObj.X, FObj.Y)
     else if ItemType in [ITEM_MEDKIT_SMALL, ITEM_MEDKIT_LARGE, ITEM_MEDKIT_BLACK] then
      g_Sound_PlayExAt('SOUND_ITEM_GETMED', FObj.X, FObj.Y)
     else g_Sound_PlayExAt('SOUND_ITEM_GETITEM', FObj.X, FObj.Y);
 
-    // Íàäî óáðàòü ñ êàðòû, åñëè ýòî íå êëþ÷, êîòîðûì íóæíî ïîäåëèòñÿ ñ äðóãèì èãðîêîì:
+    // Íàäî óáðàòü ñ êàðòû, åñëè ýòî íå êëþ÷, êîòîðûì íóæíî ïîäåëèòüñÿ ñ äðóãèì èãðîêîì:
     if r and not ((ItemType in [ITEM_KEY_RED, ITEM_KEY_GREEN, ITEM_KEY_BLUE]) and
                   (gGameSettings.GameType = GT_SINGLE) and
                   (g_Player_GetCount() > 1)) then
@@ -2307,15 +2307,15 @@ begin
       end;
     end;
     // Îáíóëèòü äåéñòâèÿ ïðèìî÷åê, ÷òîáû ôîí ïðîïàë
-    FMegaRulez[MR_SUIT] := 0;
-    FMegaRulez[MR_INVUL] := 0;
-    FMegaRulez[MR_INVIS] := 0;
+    FPowerups[MR_SUIT] := 0;
+    FPowerups[MR_INVUL] := 0;
+    FPowerups[MR_INVIS] := 0;
     FSpawnInvul := 0;
     FBerserk := 0;
   end;
 
 // Íî îò îñòàëüíîãî ñïàñàåò:
-  if FMegaRulez[MR_INVUL] >= gTime then
+  if FPowerups[MR_INVUL] >= gTime then
     Exit;
 
 // ×èò-êîä "ÃÎÐÅÖ":
@@ -2603,7 +2603,7 @@ begin
       end;
     end;
 
-    if (FMegaRulez[MR_INVUL] > gTime) and ((gPlayerDrawn <> Self) or (FSpawnInvul >= gTime)) then
+    if (FPowerups[MR_INVUL] > gTime) and ((gPlayerDrawn <> Self) or (FSpawnInvul >= gTime)) then
       if g_Texture_Get('TEXTURE_PLAYER_INVULPENTA', ID) then
       begin
         e_GetTextureSize(ID, @w, @h);
@@ -2615,13 +2615,13 @@ begin
                      fY+FObj.Rect.Y+(FObj.Rect.Height div 2)-(h div 2)-7+fSlope, 0, True, False);
       end;
 
-    if FMegaRulez[MR_INVIS] > gTime then
+    if FPowerups[MR_INVIS] > gTime then
     begin
       if (gPlayerDrawn <> nil) and ((Self = gPlayerDrawn) or
          ((FTeam = gPlayerDrawn.Team) and (gGameSettings.GameMode <> GM_DM))) then
       begin
-        if (FMegaRulez[MR_INVIS] - gTime) <= 2100 then
-          dr := not Odd((FMegaRulez[MR_INVIS] - gTime) div 300)
+        if (FPowerups[MR_INVIS] - gTime) <= 2100 then
+          dr := not Odd((FPowerups[MR_INVIS] - gTime) div 300)
         else
           dr := True;
         if dr then
@@ -2646,7 +2646,7 @@ begin
   end;
 
   if (gChatBubble > 0) and (FKeys[KEY_CHAT].Pressed) and not FGhost then
-    if (FMegaRulez[MR_INVIS] <= gTime) or ((gPlayerDrawn <> nil) and ((Self = gPlayerDrawn) or
+    if (FPowerups[MR_INVIS] <= gTime) or ((gPlayerDrawn <> nil) and ((Self = gPlayerDrawn) or
        ((FTeam = gPlayerDrawn.Team) and (gGameSettings.GameMode <> GM_DM)))) then
       DrawBubble();
  // e_DrawPoint(5, 335, 288, 255, 0, 0); // DL, UR, DL, UR
@@ -2880,10 +2880,9 @@ begin
   e_CharFont_GetSize(gMenuSmallFont, FName, tw, th);
   e_CharFont_PrintEx(gMenuSmallFont, X+98-(tw div 2), Y+8, FName, _RGB(255, 0, 0));
 
-  if R_BERSERK in FRulez then
-    e_Draw(gItemsTexturesID[ITEM_MEDKIT_BLACK], X+37, Y+45, 0, True, False)
-  else
-    e_Draw(gItemsTexturesID[ITEM_MEDKIT_LARGE], X+37, Y+45, 0, True, False);
+  if R_BERSERK in FInventory
+    then e_Draw(gItemsTexturesID[ITEM_MEDKIT_BLACK], X+37, Y+45, 0, True, False)
+    else e_Draw(gItemsTexturesID[ITEM_MEDKIT_LARGE], X+37, Y+45, 0, True, False);
 
   if g_Texture_Get('TEXTURE_PLAYER_ARMORHUD', ID) then
     e_Draw(ID, X+36, Y+77, 0, True, False);
@@ -2899,10 +2898,10 @@ begin
   s := IntToStr(GetAmmoByWeapon(FCurrWeap));
 
   case FCurrWeap of
-    WEAPON_KASTET:
+    WEAPON_IRONFIST:
     begin
       s := '--';
-      ID := gItemsTexturesID[ITEM_WEAPON_KASTET];
+      ID := gItemsTexturesID[ITEM_WEAPON_IRONFIST];
     end;
     WEAPON_SAW:
     begin
@@ -2913,7 +2912,7 @@ begin
     WEAPON_CHAINGUN: ID := gItemsTexturesID[ITEM_WEAPON_CHAINGUN];
     WEAPON_SHOTGUN1: ID := gItemsTexturesID[ITEM_WEAPON_SHOTGUN1];
     WEAPON_SHOTGUN2: ID := gItemsTexturesID[ITEM_WEAPON_SHOTGUN2];
-    WEAPON_SUPERPULEMET: ID := gItemsTexturesID[ITEM_WEAPON_SUPERPULEMET];
+    WEAPON_SUPERCHAINGUN: ID := gItemsTexturesID[ITEM_WEAPON_SUPERCHAINGUN];
     WEAPON_ROCKETLAUNCHER: ID := gItemsTexturesID[ITEM_WEAPON_ROCKETLAUNCHER];
     WEAPON_PLASMA: ID := gItemsTexturesID[ITEM_WEAPON_PLASMA];
     WEAPON_BFG: ID := gItemsTexturesID[ITEM_WEAPON_BFG];
@@ -2924,13 +2923,13 @@ begin
   e_CharFont_PrintEx(gMenuFont, X+178-tw, Y+158, s, _RGB(255, 0, 0));
   e_Draw(ID, X+20, Y+160, 0, True, False);
 
-  if R_KEY_RED in FRulez then
+  if R_KEY_RED in FInventory then
     e_Draw(gItemsTexturesID[ITEM_KEY_RED], X+78, Y+214, 0, True, False);
 
-  if R_KEY_GREEN in FRulez then
+  if R_KEY_GREEN in FInventory then
     e_Draw(gItemsTexturesID[ITEM_KEY_GREEN], X+95, Y+214, 0, True, False);
 
-  if R_KEY_BLUE in FRulez then
+  if R_KEY_BLUE in FInventory then
     e_Draw(gItemsTexturesID[ITEM_KEY_BLUE], X+112, Y+214, 0, True, False);
 
   if FJetFuel > 0 then
@@ -2973,15 +2972,15 @@ begin
   end;
 end;
 
-procedure TPlayer.DrawRulez();
+procedure TPlayer.DrawOverlay();
 var
   dr: Boolean;
 begin
   // Ïðè âçÿòèè íåóÿçâèìîñòè ðèñóåòñÿ èíâåðñèîííûé áåëûé ôîí
-  if (FMegaRulez[MR_INVUL] >= gTime) and (FSpawnInvul < gTime) then
+  if (FPowerups[MR_INVUL] >= gTime) and (FSpawnInvul < gTime) then
   begin
-    if (FMegaRulez[MR_INVUL]-gTime) <= 2100 then
-      dr := not Odd((FMegaRulez[MR_INVUL]-gTime) div 300)
+    if (FPowerups[MR_INVUL]-gTime) <= 2100 then
+      dr := not Odd((FPowerups[MR_INVUL]-gTime) div 300)
     else
       dr := True;
 
@@ -2991,10 +2990,10 @@ begin
   end;
 
   // Ïðè âçÿòèè çàùèòíîãî êîñòþìà ðèñóåòñÿ çåëåíîâàòûé ôîí
-  if FMegaRulez[MR_SUIT] >= gTime then
+  if FPowerups[MR_SUIT] >= gTime then
   begin
-    if (FMegaRulez[MR_SUIT]-gTime) <= 2100 then
-      dr := not Odd((FMegaRulez[MR_SUIT]-gTime) div 300)
+    if (FPowerups[MR_SUIT]-gTime) <= 2100 then
+      dr := not Odd((FPowerups[MR_SUIT]-gTime) div 300)
     else
       dr := True;
 
@@ -3060,7 +3059,7 @@ begin
     FPunchAnim := nil;
   end;
   st := 'FRAMES_PUNCH';
-  if R_BERSERK in FRulez then
+  if R_BERSERK in FInventory then
     st := st + '_BERSERK';
   if FKeys[KEY_UP].Pressed then
     st := st + '_UP'
@@ -3097,10 +3096,10 @@ begin
   yd := wy+firediry();
 
   case FCurrWeap of
-    WEAPON_KASTET:
+    WEAPON_IRONFIST:
     begin
       DoPunch();
-      if R_BERSERK in FRulez then
+      if R_BERSERK in FInventory then
       begin
         //g_Weapon_punch(FObj.X+FObj.Rect.X, FObj.Y+FObj.Rect.Y, 75, FUID);
         locobj.X := FObj.X+FObj.Rect.X;
@@ -3236,7 +3235,7 @@ begin
         DidFire := True;
       end;
 
-    WEAPON_SUPERPULEMET:
+    WEAPON_SUPERCHAINGUN:
       if FAmmo[A_SHELLS] > 0 then
       begin
         g_Weapon_shotgun(wx, wy, xd, yd, FUID);
@@ -3293,7 +3292,7 @@ function TPlayer.GetAmmoByWeapon(Weapon: Byte): Word;
 begin
   case Weapon of
     WEAPON_PISTOL, WEAPON_CHAINGUN: Result := FAmmo[A_BULLETS];
-    WEAPON_SHOTGUN1, WEAPON_SHOTGUN2, WEAPON_SUPERPULEMET: Result := FAmmo[A_SHELLS];
+    WEAPON_SHOTGUN1, WEAPON_SHOTGUN2, WEAPON_SUPERCHAINGUN: Result := FAmmo[A_SHELLS];
     WEAPON_ROCKETLAUNCHER: Result := FAmmo[A_ROCKETS];
     WEAPON_PLASMA, WEAPON_BFG: Result := FAmmo[A_CELLS];
     WEAPON_FLAMETHROWER: Result := FAmmo[A_FUEL];
@@ -3358,7 +3357,7 @@ procedure TPlayer.CatchFire(Attacker: Word; Timeout: Integer = PLAYER_BURN_TIME)
 begin
   if Timeout <= 0 then
     exit;
-  if (FMegaRulez[MR_SUIT] > gTime) or (FMegaRulez[MR_INVUL] > gTime) then
+  if (FPowerups[MR_SUIT] > gTime) or (FPowerups[MR_INVUL] > gTime) then
     exit; // Íå çàãîðàåìñÿ êîãäà åñòü çàùèòà
   if g_Obj_CollidePanel(@FObj, 0, 0, PANEL_WATER or PANEL_ACID1 or PANEL_ACID2) then
     exit; // Íå ïîäãîðàåì â âîäå íà âñÿêèé ñëó÷àé
@@ -3629,7 +3628,7 @@ begin
           WEAPON_ROCKETLAUNCHER: i := ITEM_WEAPON_ROCKETLAUNCHER;
           WEAPON_PLASMA: i := ITEM_WEAPON_PLASMA;
           WEAPON_BFG: i := ITEM_WEAPON_BFG;
-          WEAPON_SUPERPULEMET: i := ITEM_WEAPON_SUPERPULEMET;
+          WEAPON_SUPERCHAINGUN: i := ITEM_WEAPON_SUPERCHAINGUN;
           WEAPON_FLAMETHROWER: i := ITEM_WEAPON_FLAMETHROWER;
           else i := 0;
         end;
@@ -3639,7 +3638,7 @@ begin
       end;
 
 // Âûáðîñ ðþêçàêà:
-    if R_ITEM_BACKPACK in FRulez then
+    if R_ITEM_BACKPACK in FInventory then
       PushItem(ITEM_AMMO_BACKPACK);
 
 // Âûáðîñ ðàêåòíîãî ðàíöà:
@@ -3650,13 +3649,13 @@ begin
     if (not (gGameSettings.GameMode in [GM_DM, GM_TDM, GM_CTF])) or
        (not LongBool(gGameSettings.Options and GAME_OPTION_DMKEYS)) then
     begin
-      if R_KEY_RED in FRulez then
+      if R_KEY_RED in FInventory then
         PushItem(ITEM_KEY_RED);
 
-      if R_KEY_GREEN in FRulez then
+      if R_KEY_GREEN in FInventory then
         PushItem(ITEM_KEY_GREEN);
 
-      if R_KEY_BLUE in FRulez then
+      if R_KEY_BLUE in FInventory then
         PushItem(ITEM_KEY_BLUE);
     end;
 
@@ -3843,8 +3842,8 @@ function TPlayer.hasAmmoForWeapon (weapon: Byte): Boolean;
 begin
   result := false;
   case weapon of
-    WEAPON_KASTET, WEAPON_SAW: result := true;
-    WEAPON_SHOTGUN1, WEAPON_SHOTGUN2, WEAPON_SUPERPULEMET: result := (FAmmo[A_SHELLS] > 0);
+    WEAPON_IRONFIST, WEAPON_SAW: result := true;
+    WEAPON_SHOTGUN1, WEAPON_SHOTGUN2, WEAPON_SUPERCHAINGUN: result := (FAmmo[A_SHELLS] > 0);
     WEAPON_PISTOL, WEAPON_CHAINGUN: result := (FAmmo[A_BULLETS] > 0);
     WEAPON_ROCKETLAUNCHER: result := (FAmmo[A_ROCKETS] > 0);
     WEAPON_PLASMA, WEAPON_BFG: result := (FAmmo[A_CELLS] > 0);
@@ -3857,8 +3856,8 @@ function TPlayer.hasAmmoForShooting (weapon: Byte): Boolean;
 begin
   result := false;
   case weapon of
-    WEAPON_KASTET, WEAPON_SAW: result := true;
-    WEAPON_SHOTGUN1, WEAPON_SUPERPULEMET: result := (FAmmo[A_SHELLS] > 0);
+    WEAPON_IRONFIST, WEAPON_SAW: result := true;
+    WEAPON_SHOTGUN1, WEAPON_SUPERCHAINGUN: result := (FAmmo[A_SHELLS] > 0);
     WEAPON_SHOTGUN2: result := (FAmmo[A_SHELLS] > 1);
     WEAPON_PISTOL, WEAPON_CHAINGUN: result := (FAmmo[A_BULLETS] > 0);
     WEAPON_ROCKETLAUNCHER: result := (FAmmo[A_ROCKETS] > 0);
@@ -4210,14 +4209,14 @@ begin
         if a and g_Game_IsNet then MH_SEND_Sound(GameX, GameY, 'SOUND_ITEM_GETWEAPON');
       end;
 
-    ITEM_WEAPON_SUPERPULEMET:
-      if (FAmmo[A_SHELLS] < FMaxAmmo[A_SHELLS]) or not FWeapon[WEAPON_SUPERPULEMET] then
+    ITEM_WEAPON_SUPERCHAINGUN:
+      if (FAmmo[A_SHELLS] < FMaxAmmo[A_SHELLS]) or not FWeapon[WEAPON_SUPERCHAINGUN] then
       begin
-        if a and FWeapon[WEAPON_SUPERPULEMET] then Exit;
-        switchWeapon := WEAPON_SUPERPULEMET;
-        hadWeapon := FWeapon[WEAPON_SUPERPULEMET];
+        if a and FWeapon[WEAPON_SUPERCHAINGUN] then Exit;
+        switchWeapon := WEAPON_SUPERCHAINGUN;
+        hadWeapon := FWeapon[WEAPON_SUPERCHAINGUN];
         IncMax(FAmmo[A_SHELLS], 4, FMaxAmmo[A_SHELLS]);
-        FWeapon[WEAPON_SUPERPULEMET] := True;
+        FWeapon[WEAPON_SUPERCHAINGUN] := True;
         Result := True;
         if gFlash = 2 then Inc(FPickup, 5);
         if a and g_Game_IsNet then MH_SEND_Sound(GameX, GameY, 'SOUND_ITEM_GETWEAPON');
@@ -4318,7 +4317,7 @@ begin
       end;
 
     ITEM_AMMO_BACKPACK:
-      if not(R_ITEM_BACKPACK in FRulez) or
+      if not(R_ITEM_BACKPACK in FInventory) or
             (FAmmo[A_BULLETS] < FMaxAmmo[A_BULLETS]) or
             (FAmmo[A_SHELLS] < FMaxAmmo[A_SHELLS]) or
             (FAmmo[A_ROCKETS] < FMaxAmmo[A_ROCKETS]) or
@@ -4342,16 +4341,16 @@ begin
         if FAmmo[A_FUEL] < FMaxAmmo[A_FUEL] then
           IncMax(FAmmo[A_FUEL], 50, FMaxAmmo[A_FUEL]);
 
-        FRulez := FRulez + [R_ITEM_BACKPACK];
+        FInventory += [R_ITEM_BACKPACK];
         Result := True;
         remove := True;
-        if gFlash = 2 then Inc(FPickup, 5);
+        if gFlash = 2 then FPickup += 5;
       end;
 
     ITEM_KEY_RED:
-      if not(R_KEY_RED in FRulez) then
+      if not(R_KEY_RED in FInventory) then
       begin
-        Include(FRulez, R_KEY_RED);
+        FInventory += [R_KEY_RED];
         Result := True;
         remove := (gGameSettings.GameMode <> GM_COOP) and (g_Player_GetCount() < 2);
         if gFlash = 2 then Inc(FPickup, 5);
@@ -4359,9 +4358,9 @@ begin
       end;
 
     ITEM_KEY_GREEN:
-      if not(R_KEY_GREEN in FRulez) then
+      if not(R_KEY_GREEN in FInventory) then
       begin
-        Include(FRulez, R_KEY_GREEN);
+        FInventory += [R_KEY_GREEN];
         Result := True;
         remove := (gGameSettings.GameMode <> GM_COOP) and (g_Player_GetCount() < 2);
         if gFlash = 2 then Inc(FPickup, 5);
@@ -4369,9 +4368,9 @@ begin
       end;
 
     ITEM_KEY_BLUE:
-      if not(R_KEY_BLUE in FRulez) then
+      if not(R_KEY_BLUE in FInventory) then
       begin
-        Include(FRulez, R_KEY_BLUE);
+        FInventory += [R_KEY_BLUE];
         Result := True;
         remove := (gGameSettings.GameMode <> GM_COOP) and (g_Player_GetCount() < 2);
         if gFlash = 2 then Inc(FPickup, 5);
@@ -4379,9 +4378,9 @@ begin
       end;
 
     ITEM_SUIT:
-      if FMegaRulez[MR_SUIT] < gTime+PLAYER_SUIT_TIME then
+      if FPowerups[MR_SUIT] < gTime+PLAYER_SUIT_TIME then
       begin
-        FMegaRulez[MR_SUIT] := gTime+PLAYER_SUIT_TIME;
+        FPowerups[MR_SUIT] := gTime+PLAYER_SUIT_TIME;
         Result := True;
         remove := True;
         FFireTime := 0;
@@ -4399,18 +4398,18 @@ begin
 
     ITEM_MEDKIT_BLACK:
       begin
-        if not (R_BERSERK in FRulez) then
+        if not (R_BERSERK in FInventory) then
         begin
-          Include(FRulez, R_BERSERK);
+          FInventory += [R_BERSERK];
           if (FBFGFireCounter = -1) then
           begin
-            FCurrWeap := WEAPON_KASTET;
+            FCurrWeap := WEAPON_IRONFIST;
             resetWeaponQueue();
-            FModel.SetWeapon(WEAPON_KASTET);
+            FModel.SetWeapon(WEAPON_IRONFIST);
           end;
           if gFlash <> 0 then
           begin
-            Inc(FPain, 100);
+            FPain += 100;
             if gFlash = 2 then Inc(FPickup, 5);
           end;
           FBerserk := gTime+30000;
@@ -4429,9 +4428,9 @@ begin
       end;
 
     ITEM_INVUL:
-      if FMegaRulez[MR_INVUL] < gTime+PLAYER_INVUL_TIME then
+      if FPowerups[MR_INVUL] < gTime+PLAYER_INVUL_TIME then
       begin
-        FMegaRulez[MR_INVUL] := gTime+PLAYER_INVUL_TIME;
+        FPowerups[MR_INVUL] := gTime+PLAYER_INVUL_TIME;
         FSpawnInvul := 0;
         Result := True;
         remove := True;
@@ -4467,9 +4466,9 @@ begin
       end;
 
     ITEM_INVIS:
-      if FMegaRulez[MR_INVIS] < gTime+PLAYER_INVIS_TIME then
+      if FPowerups[MR_INVIS] < gTime+PLAYER_INVIS_TIME then
       begin
-        FMegaRulez[MR_INVIS] := gTime+PLAYER_INVIS_TIME;
+        FPowerups[MR_INVIS] := gTime+PLAYER_INVIS_TIME;
         Result := True;
         remove := True;
         if gFlash = 2 then Inc(FPickup, 5);
@@ -4667,12 +4666,12 @@ begin
   if (gGameSettings.GameType <> GT_SINGLE) and (gGameSettings.GameMode <> GM_COOP) then
     begin // "Ñâîÿ èãðà"
     // Áåðñåðê íå ñîõðàíÿåòñÿ ìåæäó óðîâíÿìè:
-      FRulez := FRulez-[R_BERSERK];
+      FInventory -= [R_BERSERK];
     end
   else // "Îäèíî÷íàÿ èãðà"/"Êîîï"
     begin
     // Áåðñåðê è êëþ÷è íå ñîõðàíÿþòñÿ ìåæäó óðîâíÿìè:
-      FRulez := FRulez-[R_KEY_RED, R_KEY_GREEN, R_KEY_BLUE, R_BERSERK];
+      FInventory -= [R_KEY_RED, R_KEY_GREEN, R_KEY_BLUE, R_BERSERK];
     end;
 
 // Ïîëó÷àåì òî÷êó ñïàóíà èãðîêà:
@@ -4697,7 +4696,7 @@ begin
     end;
 
     FWeapon[WEAPON_PISTOL] := True;
-    FWeapon[WEAPON_KASTET] := True;
+    FWeapon[WEAPON_IRONFIST] := True;
     FCurrWeap := WEAPON_PISTOL;
     resetWeaponQueue();
 
@@ -4716,9 +4715,9 @@ begin
 
     if (gGameSettings.GameMode in [GM_DM, GM_TDM, GM_CTF]) and
        LongBool(gGameSettings.Options and GAME_OPTION_DMKEYS) then
-      FRulez := [R_KEY_RED, R_KEY_GREEN, R_KEY_BLUE]
+      FInventory := [R_KEY_RED, R_KEY_GREEN, R_KEY_BLUE]
     else
-      FRulez := [];
+      FInventory := [];
   end;
 
 // Ïîëó÷àåì êîîðäèíàòû òî÷êè âîçðîæäåíèÿ:
@@ -4750,14 +4749,14 @@ begin
   for a := Low(FTime) to High(FTime) do
     FTime[a] := 0;
 
-  for a := Low(FMegaRulez) to High(FMegaRulez) do
-    FMegaRulez[a] := 0;
+  for a := Low(FPowerups) to High(FPowerups) do
+    FPowerups[a] := 0;
 
 // Respawn invulnerability
   if (gGameSettings.GameType <> GT_SINGLE) and (gGameSettings.SpawnInvul > 0) then
   begin
-    FMegaRulez[MR_INVUL] := gTime + gGameSettings.SpawnInvul * 1000;
-    FSpawnInvul := FMegaRulez[MR_INVUL];
+    FPowerups[MR_INVUL] := gTime + gGameSettings.SpawnInvul * 1000;
+    FSpawnInvul := FPowerups[MR_INVUL];
   end;
 
   FDamageBuffer := 0;
@@ -5332,9 +5331,9 @@ begin
   if FAlive and (FObj.Y > Integer(gMapInfo.Height)+128) and AnyServer then
   begin
     // Îáíóëèòü äåéñòâèÿ ïðèìî÷åê, ÷òîáû ôîí ïðîïàë
-    FMegaRulez[MR_SUIT] := 0;
-    FMegaRulez[MR_INVUL] := 0;
-    FMegaRulez[MR_INVIS] := 0;
+    FPowerups[MR_SUIT] := 0;
+    FPowerups[MR_INVUL] := 0;
+    FPowerups[MR_INVIS] := 0;
     Kill(K_FALLKILL, 0, HIT_FALL);
   end;
 
@@ -5402,7 +5401,7 @@ begin
         else
           Dec(FBFGFireCounter);
 
-    if (FMegaRulez[MR_SUIT] < gTime) and AnyServer then
+    if (FPowerups[MR_SUIT] < gTime) and AnyServer then
     begin
       b := g_GetAcidHit(FObj.X+PLAYER_RECT.X, FObj.Y+PLAYER_RECT.Y, PLAYER_RECT.Width, PLAYER_RECT.Height);
 
@@ -5431,9 +5430,9 @@ begin
         FFireTime := 0;
         FFirePainTime := 0;
       end
-      else if FMegaRulez[MR_SUIT] >= gTime then
+      else if FPowerups[MR_SUIT] >= gTime then
       begin
-        if FMegaRulez[MR_SUIT] = gTime then
+        if FPowerups[MR_SUIT] = gTime then
           FFireTime := 1;
         FFirePainTime := 0;
       end
@@ -5448,7 +5447,7 @@ begin
         end;
         FFirePainTime := FFirePainTime - 1;
         FFireTime := FFireTime - 1;
-        if ((FFireTime mod 33) = 0) and (FMegaRulez[MR_INVUL] < gTime) then
+        if ((FFireTime mod 33) = 0) and (FPowerups[MR_INVUL] < gTime) then
           FModel.PlaySound(MODELSOUND_PAIN, 1, FObj.X, FObj.Y);
         if (FFireTime = 0) and g_Game_IsNet and g_Game_IsServer then
           MH_SEND_PlayerStats(FUID);
@@ -5593,9 +5592,9 @@ function TPlayer.GetKeys(): Byte;
 begin
   Result := 0;
 
-  if R_KEY_RED in FRulez then Result := KEY_RED;
-  if R_KEY_GREEN in FRulez then Result := Result or KEY_GREEN;
-  if R_KEY_BLUE in FRulez then Result := Result or KEY_BLUE;
+  if R_KEY_RED in FInventory then Result := Result or KEY_RED;
+  if R_KEY_GREEN in FInventory then Result := Result or KEY_GREEN;
+  if R_KEY_BLUE in FInventory then Result := Result or KEY_BLUE;
 
   if FTeam = TEAM_RED then Result := Result or KEY_REDTEAM;
   if FTeam = TEAM_BLUE then Result := Result or KEY_BLUETEAM;
@@ -5636,11 +5635,11 @@ begin
   YD := AY;
 
   case FCurrWeap of
-    WEAPON_KASTET:
+    WEAPON_IRONFIST:
     begin
       visible := False;
       DoPunch();
-      if R_BERSERK in FRulez then
+      if R_BERSERK in FInventory then
       begin
         //g_Weapon_punch(FObj.X+FObj.Rect.X, FObj.Y+FObj.Rect.Y, 75, FUID);
         locobj.X := FObj.X+FObj.Rect.X;
@@ -5732,7 +5731,7 @@ begin
       FFireAngle := FAngle;
     end;
 
-    WEAPON_SUPERPULEMET:
+    WEAPON_SUPERCHAINGUN:
     begin
       g_Sound_PlayExAt('SOUND_WEAPON_FIRESHOTGUN', Gamex, Gamey);
       FFireAngle := FAngle;
@@ -6044,7 +6043,7 @@ begin
   else Result := 0;
 end;
 
-procedure TPlayer.RememberState();
+procedure TPlayer.PreserveState();
 var
   i: Integer;
   SavedState: TPlayerSavedState;
@@ -6062,7 +6061,7 @@ begin
     SavedState.Ammo[i] := FAmmo[i];
   for i := Low(FMaxAmmo) to High(FMaxAmmo) do
     SavedState.MaxAmmo[i] := FMaxAmmo[i];
-  SavedState.Rulez := FRulez - [R_KEY_RED, R_KEY_GREEN, R_KEY_BLUE];
+  SavedState.Inventory := FInventory - [R_KEY_RED, R_KEY_GREEN, R_KEY_BLUE];
 
   FSavedStateNum := -1;
   for i := Low(SavedStates) to High(SavedStates) do
@@ -6081,7 +6080,7 @@ begin
   SavedStates[FSavedStateNum] := SavedState;
 end;
 
-procedure TPlayer.RecallState();
+procedure TPlayer.RestoreState();
 var
   i: Integer;
   SavedState: TPlayerSavedState;
@@ -6106,7 +6105,7 @@ begin
     FAmmo[i] := SavedState.Ammo[i];
   for i := Low(FMaxAmmo) to High(FMaxAmmo) do
     FMaxAmmo[i] := SavedState.MaxAmmo[i];
-  FRulez := SavedState.Rulez;
+  FInventory := SavedState.Inventory;
 
   if gGameSettings.GameType = GT_SERVER then
     MH_SEND_PlayerStats(FUID);
@@ -6190,17 +6189,17 @@ begin
   // Âðåìÿ ïåðåçàðÿäêè îðóæèÿ
   for i := WP_FIRST to WP_LAST do utils.writeInt(st, Word(FReloading[i]));
   // Íàëè÷èå ðþêçàêà
-  utils.writeBool(st, (R_ITEM_BACKPACK in FRulez));
+  utils.writeBool(st, (R_ITEM_BACKPACK in FInventory));
   // Íàëè÷èå êðàñíîãî êëþ÷à
-  utils.writeBool(st, (R_KEY_RED in FRulez));
+  utils.writeBool(st, (R_KEY_RED in FInventory));
   // Íàëè÷èå çåëåíîãî êëþ÷à
-  utils.writeBool(st, (R_KEY_GREEN in FRulez));
+  utils.writeBool(st, (R_KEY_GREEN in FInventory));
   // Íàëè÷èå ñèíåãî êëþ÷à
-  utils.writeBool(st, (R_KEY_BLUE in FRulez));
+  utils.writeBool(st, (R_KEY_BLUE in FInventory));
   // Íàëè÷èå áåðñåðêà
-  utils.writeBool(st, (R_BERSERK in FRulez));
+  utils.writeBool(st, (R_BERSERK in FInventory));
   // Âðåìÿ äåéñòâèÿ ñïåöèàëüíûõ ïðåäìåòîâ
-  for i := MR_SUIT to MR_MAX do utils.writeInt(st, LongWord(FMegaRulez[i]));
+  for i := MR_SUIT to MR_MAX do utils.writeInt(st, LongWord(FPowerups[i]));
   // Âðåìÿ äî ïîâòîðíîãî ðåñïàóíà, ñìåíû îðóæèÿ, èñîëüçîâàíèÿ, çàõâàòà ôëàãà
   for i := T_RESPAWN to T_FLAGCAP do utils.writeInt(st, LongWord(FTime[i]));
   // Íàçâàíèå ìîäåëè
@@ -6294,17 +6293,17 @@ begin
   // Âðåìÿ ïåðåçàðÿäêè îðóæèÿ
   for i := WP_FIRST to WP_LAST do FReloading[i] := utils.readWord(st);
   // Íàëè÷èå ðþêçàêà
-  if utils.readBool(st) then Include(FRulez, R_ITEM_BACKPACK);
+  if utils.readBool(st) then FInventory += [R_ITEM_BACKPACK];
   // Íàëè÷èå êðàñíîãî êëþ÷à
-  if utils.readBool(st) then Include(FRulez, R_KEY_RED);
+  if utils.readBool(st) then FInventory += [R_KEY_RED];
   // Íàëè÷èå çåëåíîãî êëþ÷à
-  if utils.readBool(st) then Include(FRulez, R_KEY_GREEN);
+  if utils.readBool(st) then FInventory += [R_KEY_GREEN];
   // Íàëè÷èå ñèíåãî êëþ÷à
-  if utils.readBool(st) then Include(FRulez, R_KEY_BLUE);
+  if utils.readBool(st) then FInventory += [R_KEY_BLUE];
   // Íàëè÷èå áåðñåðêà
-  if utils.readBool(st) then Include(FRulez, R_BERSERK);
+  if utils.readBool(st) then FInventory += [R_BERSERK];
   // Âðåìÿ äåéñòâèÿ ñïåöèàëüíûõ ïðåäìåòîâ
-  for i := MR_SUIT to MR_MAX do FMegaRulez[i] := utils.readLongWord(st);
+  for i := MR_SUIT to MR_MAX do FPowerups[i] := utils.readLongWord(st);
   // Âðåìÿ äî ïîâòîðíîãî ðåñïàóíà, ñìåíû îðóæèÿ, èñîëüçîâàíèÿ, çàõâàòà ôëàãà
   for i := T_RESPAWN to T_FLAGCAP do FTime[i] := utils.readLongWord(st);
   // Íàçâàíèå ìîäåëè
@@ -6325,14 +6324,13 @@ begin
   end;
   // Îáíîâëÿåì ìîäåëü èãðîêà
   SetModel(str);
-  if gGameSettings.GameMode in [GM_TDM, GM_CTF] then
-    FModel.Color := TEAMCOLOR[FTeam]
-  else
-    FModel.Color := FColor;
+  if gGameSettings.GameMode in [GM_TDM, GM_CTF]
+    then FModel.Color := TEAMCOLOR[FTeam]
+    else FModel.Color := FColor;
 end;
 
 
-procedure TPlayer.AllRulez(Health: Boolean);
+procedure TPlayer.TankRamboCheats(Health: Boolean);
 var
   a: Integer;
 begin
@@ -6345,7 +6343,7 @@ begin
 
   for a := WP_FIRST to WP_LAST do FWeapon[a] := True;
   for a := A_BULLETS to A_HIGH do FAmmo[a] := 30000;
-  FRulez := FRulez+[R_KEY_RED, R_KEY_GREEN, R_KEY_BLUE];
+  FInventory += [R_KEY_RED, R_KEY_GREEN, R_KEY_BLUE];
 end;
 
 procedure TPlayer.RestoreHealthArmor();
@@ -6387,57 +6385,46 @@ procedure TPlayer.GiveItem(ItemType: Byte);
 begin
   case ItemType of
     ITEM_SUIT:
-      if FMegaRulez[MR_SUIT] < gTime+PLAYER_SUIT_TIME then
-      begin
-        FMegaRulez[MR_SUIT] := gTime+PLAYER_SUIT_TIME;
-      end;
+      if FPowerups[MR_SUIT] < gTime+PLAYER_SUIT_TIME then
+        FPowerups[MR_SUIT] := gTime+PLAYER_SUIT_TIME;
 
     ITEM_OXYGEN:
-      if FAir < AIR_MAX then
-      begin
-        FAir := AIR_MAX;
-      end;
+      if FAir < AIR_MAX then FAir := AIR_MAX;
 
     ITEM_MEDKIT_BLACK:
+    begin
+      if not (R_BERSERK in FInventory) then
       begin
-        if not (R_BERSERK in FRulez) then
-        begin
-          Include(FRulez, R_BERSERK);
-          if FBFGFireCounter < 1 then
-          begin
-            FCurrWeap := WEAPON_KASTET;
-            resetWeaponQueue();
-            FModel.SetWeapon(WEAPON_KASTET);
-          end;
-          if gFlash <> 0 then
-            Inc(FPain, 100);
-          FBerserk := gTime+30000;
-        end;
-        if FHealth < PLAYER_HP_SOFT then
+        FInventory += [R_BERSERK];
+        if FBFGFireCounter < 1 then
         begin
-          FHealth := PLAYER_HP_SOFT;
-          FBerserk := gTime+30000;
+          FCurrWeap := WEAPON_IRONFIST;
+          resetWeaponQueue();
+          FModel.SetWeapon(WEAPON_IRONFIST);
         end;
+        if gFlash <> 0 then FPain += 100;
+        FBerserk := gTime+30000;
+      end;
+      if FHealth < PLAYER_HP_SOFT then
+      begin
+        FHealth := PLAYER_HP_SOFT;
+        FBerserk := gTime+30000;
       end;
+    end;
 
     ITEM_INVUL:
-      if FMegaRulez[MR_INVUL] < gTime+PLAYER_INVUL_TIME then
+      if FPowerups[MR_INVUL] < gTime+PLAYER_INVUL_TIME then
       begin
-        FMegaRulez[MR_INVUL] := gTime+PLAYER_INVUL_TIME;
+        FPowerups[MR_INVUL] := gTime+PLAYER_INVUL_TIME;
         FSpawnInvul := 0;
       end;
 
     ITEM_INVIS:
-      if FMegaRulez[MR_INVIS] < gTime+PLAYER_INVIS_TIME then
-      begin
-        FMegaRulez[MR_INVIS] := gTime+PLAYER_INVIS_TIME;
-      end;
+      if FPowerups[MR_INVIS] < gTime+PLAYER_INVIS_TIME then
+        FPowerups[MR_INVIS] := gTime+PLAYER_INVIS_TIME;
 
     ITEM_JETPACK:
-      if FJetFuel < JET_MAX then
-      begin
-        FJetFuel := JET_MAX;
-      end;
+      if FJetFuel < JET_MAX then FJetFuel := JET_MAX;
 
     ITEM_MEDKIT_SMALL: if FHealth < PLAYER_HP_SOFT then IncMax(FHealth, 10, PLAYER_HP_SOFT);
     ITEM_MEDKIT_LARGE: if FHealth < PLAYER_HP_SOFT then IncMax(FHealth, 25, PLAYER_HP_SOFT);
@@ -6460,7 +6447,7 @@ begin
     ITEM_WEAPON_ROCKETLAUNCHER: FWeapon[WEAPON_ROCKETLAUNCHER] := True;
     ITEM_WEAPON_PLASMA: FWeapon[WEAPON_PLASMA] := True;
     ITEM_WEAPON_BFG: FWeapon[WEAPON_BFG] := True;
-    ITEM_WEAPON_SUPERPULEMET: FWeapon[WEAPON_SUPERPULEMET] := True;
+    ITEM_WEAPON_SUPERCHAINGUN: FWeapon[WEAPON_SUPERCHAINGUN] := True;
     ITEM_WEAPON_FLAMETHROWER: FWeapon[WEAPON_FLAMETHROWER] := True;
 
     ITEM_AMMO_BULLETS: if FAmmo[A_BULLETS] < FMaxAmmo[A_BULLETS] then IncMax(FAmmo[A_BULLETS], 10, FMaxAmmo[A_BULLETS]);
@@ -6491,12 +6478,12 @@ begin
         if FAmmo[A_ROCKETS] < FMaxAmmo[A_ROCKETS] then IncMax(FAmmo[A_ROCKETS], 1, FMaxAmmo[A_ROCKETS]);
         if FAmmo[A_CELLS] < FMaxAmmo[A_CELLS] then IncMax(FAmmo[A_CELLS], 40, FMaxAmmo[A_CELLS]);
 
-        FRulez := FRulez + [R_ITEM_BACKPACK];
+        FInventory += [R_ITEM_BACKPACK];
       end;
 
-    ITEM_KEY_RED: if not (R_KEY_RED in FRulez) then Include(FRulez, R_KEY_RED);
-    ITEM_KEY_GREEN: if not (R_KEY_GREEN in FRulez) then Include(FRulez, R_KEY_GREEN);
-    ITEM_KEY_BLUE: if not (R_KEY_BLUE in FRulez) then Include(FRulez, R_KEY_BLUE);
+    ITEM_KEY_RED: if not (R_KEY_RED in FInventory) then FInventory += [R_KEY_RED];
+    ITEM_KEY_GREEN: if not (R_KEY_GREEN in FInventory) then FInventory += [R_KEY_GREEN];
+    ITEM_KEY_BLUE: if not (R_KEY_BLUE in FInventory) then FInventory += [R_KEY_BLUE];
 
     ITEM_BOTTLE: if FHealth < PLAYER_HP_LIMIT then IncMax(FHealth, 4, PLAYER_HP_LIMIT);
     ITEM_HELMET: if FArmor < PLAYER_AP_LIMIT then IncMax(FArmor, 5, PLAYER_AP_LIMIT);
@@ -6941,8 +6928,8 @@ begin
       RemoveAIFlag('NEEDFIRE');
 
       case FCurrWeap of
-        WEAPON_PLASMA, WEAPON_SUPERPULEMET, WEAPON_CHAINGUN: PressKey(KEY_FIRE, 20);
-        WEAPON_SAW, WEAPON_KASTET, WEAPON_FLAMETHROWER: PressKey(KEY_FIRE, 40);
+        WEAPON_PLASMA, WEAPON_SUPERCHAINGUN, WEAPON_CHAINGUN: PressKey(KEY_FIRE, 20);
+        WEAPON_SAW, WEAPON_IRONFIST, WEAPON_FLAMETHROWER: PressKey(KEY_FIRE, 40);
         else PressKey(KEY_FIRE);
       end;
     end;
@@ -7024,7 +7011,7 @@ begin
            (gPlayers[a].FUID <> FUID) and
            (not SameTeam(FUID, gPlayers[a].FUID)) and
            (not gPlayers[a].NoTarget) and
-           (gPlayers[a].FMegaRulez[MR_INVIS] < gTime) then
+           (gPlayers[a].FPowerups[MR_INVIS] < gTime) then
           begin
             if not TargetOnScreen(gPlayers[a].FObj.X + PLAYER_RECT.X,
                                   gPlayers[a].FObj.Y + PLAYER_RECT.Y) then
@@ -7211,7 +7198,7 @@ begin
             begin // Öåëü - èãðîê
               pla := g_Player_Get(Target.UID);
               if (pla = nil) or (not pla.alive) or pla.NoTarget or
-                 (pla.FMegaRulez[MR_INVIS] >= gTime) then
+                 (pla.FPowerups[MR_INVIS] >= gTime) then
                 Target.UID := 0; // òî çàáûòü öåëü
             end
           else
@@ -7851,7 +7838,7 @@ begin
     Jump(20);
 
 // Âûáèðàåìñÿ èç êèñëîòû, åñëè íåò êîñòþìà, îáîæãëèñü, èëè ìàëî çäîðîâüÿ:
-  if (FMegaRulez[MR_SUIT] < gTime) and ((FLastHit = HIT_ACID) or (Healthy() <= 1)) then
+  if (FPowerups[MR_SUIT] < gTime) and ((FLastHit = HIT_ACID) or (Healthy() <= 1)) then
     if BodyInAcid(0, 0) then
       Jump();
 end;
@@ -7881,7 +7868,7 @@ var
       WEAPON_ROCKETLAUNCHER: Result := FAmmo[A_ROCKETS] >= 1;
       WEAPON_PLASMA: Result := FAmmo[A_CELLS] >= 10;
       WEAPON_BFG: Result := FAmmo[A_CELLS] >= 40;
-      WEAPON_SUPERPULEMET: Result := FAmmo[A_SHELLS] >= 1;
+      WEAPON_SUPERCHAINGUN: Result := FAmmo[A_SHELLS] >= 1;
       WEAPON_FLAMETHROWER: Result := FAmmo[A_FUEL] >= 1;
       else Result := True;
     end;
@@ -7933,7 +7920,7 @@ end;
 
 function TBot.Healthy(): Byte;
 begin
-  if FMegaRulez[MR_INVUL] >= gTime then Result := 3
+  if FPowerups[MR_INVUL] >= gTime then Result := 3
   else if (FHealth > 80) or ((FHealth > 50) and (FArmor > 20)) then Result := 3
   else if (FHealth > 50) then Result := 2
   else if (FHealth > 20) then Result := 1
index 6ffea1fbc3fc094fb714fb25df4ef20623235c4a..6ba81745efde669846f1f91ad94c9593174d7b59 100644 (file)
@@ -35,22 +35,22 @@ const
   A_ATTACKDOWN = 8;
   A_PAIN       = 9;
   // EXTENDED
-  A_WALKATTACK     = 10;
-  A_WALKSEEUP      = 11;
-  A_WALKSEEDOWN    = 12;
-  A_WALKATTACKUP   = 13;
-  A_WALKATTACKDOWN = 14;
-  A_FISTSTAND      = 15;
-  A_FISTWALK       = 16;
-  A_FISTATTACK     = 17;
-  A_FISTWALKATTACK = 18;
-  A_FISTSEEUP      = 19;
-  A_FISTSEEDOWN    = 20;
-  A_FISTATTACKUP   = 21;
-  A_FISTATTACKDOWN = 22;
+  A_WALKATTACK      = 10;
+  A_WALKSEEUP       = 11;
+  A_WALKSEEDOWN     = 12;
+  A_WALKATTACKUP    = 13;
+  A_WALKATTACKDOWN  = 14;
+  A_MELEESTAND      = 15;
+  A_MELEEWALK       = 16;
+  A_MELEEATTACK     = 17;
+  A_MELEEWALKATTACK = 18;
+  A_MELEESEEUP      = 19;
+  A_MELEESEEDOWN    = 20;
+  A_MELEEATTACKUP   = 21;
+  A_MELEEATTACKDOWN = 22;
 
   A_LASTBASE = A_PAIN;
-  A_LASTEXT  = A_FISTATTACKDOWN;
+  A_LASTEXT  = A_MELEEATTACKDOWN;
   A_LAST     = A_LASTEXT;
 
   MODELSOUND_PAIN = 0;
@@ -186,9 +186,9 @@ const
               'SeeUpAnim','SeeDownAnim','AttackUpAnim','AttackDownAnim','PainAnim',
               // EXTENDED
               'WalkAttackAnim', 'WalkSeeUpAnim', 'WalkSeeDownAnim',
-              'WalkAttackUpAnim', 'WalkAttackDownAnim', 'FistStandAnim', 'FistWalkAnim',
-              'FistAttackAnim', 'FistWalkAttackAnim', 'FistSeeUpAnim', 'FistSeeDownAnim',
-              'FistAttackUpAnim', 'FistAttackDownAnim');
+              'WalkAttackUpAnim', 'WalkAttackDownAnim', 'MeleeStandAnim', 'MeleeWalkAnim',
+              'MeleeAttackAnim', 'MeleeWalkAttackAnim', 'MeleeSeeUpAnim', 'MeleeSeeDownAnim',
+              'MeleeAttackUpAnim', 'MeleeAttackDownAnim');
   WeapNames: Array [WP_FIRST + 1..WP_LAST] of String =
              ('csaw', 'hgun', 'sg', 'ssg', 'mgun', 'rkt', 'plz', 'bfg', 'spl', 'flm');
 
index f8e9e02dcef20c79c8806218c459f79aa8056a93..8c11a474ff3928ea8466b19897f375993a360b49 100644 (file)
@@ -2105,7 +2105,7 @@ begin
                     begin
                       // Êèñëîòíûé óðîí íå íàíîñèòñÿ êîãäà åñòü êîñòþì
                       // "Âîäÿíîé" óðîí íå íàíîñèòñÿ êîãäà åñòü êèñëîðîä
-                      if not (((tgcKind = HIT_ACID) and (p.FMegaRulez[MR_SUIT] > gTime)) or
+                      if not (((tgcKind = HIT_ACID) and (p.FPowerups[MR_SUIT] > gTime)) or
                               ((tgcKind = HIT_WATER) and (p.Air > 0))) then
                         p.Damage(tgcAmount, 0, 0, 0, tgcKind);
                       if (tgcKind = HIT_FLAME) then p.CatchFire(0);
index 86a9de5e15a45b072a8da158d9d981e84cc77dac..23898af54c2cd8dc5ceb1bec423edcbec626d448 100644 (file)
@@ -84,7 +84,7 @@ procedure g_Weapon_LoadState (st: TStream);
 procedure g_Weapon_AddDynLights();
 
 const
-  WEAPON_KASTET         = 0;
+  WEAPON_IRONFIST       = 0;
   WEAPON_SAW            = 1;
   WEAPON_PISTOL         = 2;
   WEAPON_SHOTGUN1       = 3;
@@ -93,7 +93,7 @@ const
   WEAPON_ROCKETLAUNCHER = 6;
   WEAPON_PLASMA         = 7;
   WEAPON_BFG            = 8;
-  WEAPON_SUPERPULEMET   = 9;
+  WEAPON_SUPERCHAINGUN  = 9;
   WEAPON_FLAMETHROWER   = 10;
   WEAPON_ZOMBY_PISTOL   = 20;
   WEAPON_IMP_FIRE       = 21;
@@ -103,7 +103,7 @@ const
   WEAPON_MANCUB_FIRE    = 25;
   WEAPON_SKEL_FIRE      = 26;
 
-  WP_FIRST          = WEAPON_KASTET;
+  WP_FIRST          = WEAPON_IRONFIST;
   WP_LAST           = WEAPON_FLAMETHROWER;
 
 
index 6cd4c0c06db98c712cab4c83604184108a40cdd4..25590ccea4300b8235e42114951f07e8e9f39beb 100644 (file)
@@ -196,7 +196,7 @@ enum Item {
   ITEM_WEAPON_ROCKETLAUNCHER, // 15
   ITEM_WEAPON_PLASMA, // 16
   ITEM_WEAPON_BFG, // 17
-  ITEM_WEAPON_SUPERPULEMET, // 18
+  ITEM_WEAPON_SUPERCHAINGUN, // 18
   ITEM_AMMO_BULLETS, // 19
   ITEM_AMMO_BULLETS_BOX, // 20
   ITEM_AMMO_SHELLS, // 21
@@ -209,7 +209,7 @@ enum Item {
   ITEM_KEY_RED, // 28
   ITEM_KEY_GREEN, // 29
   ITEM_KEY_BLUE, // 30
-  ITEM_WEAPON_KASTET, // 31
+  ITEM_WEAPON_IRONFIST, // 31
   ITEM_WEAPON_PISTOL, // 32
   ITEM_BOTTLE, // 33
   ITEM_HELMET, // 34
@@ -217,6 +217,8 @@ enum Item {
   ITEM_INVIS, // 36
   ITEM_WEAPON_FLAMETHROWER, // 37
   ITEM_AMMO_FUELCAN, // 38
+  // backward compatibility aliases
+  ITEM_WEAPON_SUPERPULEMET = 18,  // ITEM_WEAPON_SUPERCHAINGUN
   //
   ITEM_MAX = MAX, // store the last item's id in here use this in for loops
 }
index e159c5d9a689d36244901a66834a86320ea19353..d2d5f7d5d95586a0946ecf48940ab451787730a6 100644 (file)
@@ -105,7 +105,7 @@ const
   ITEM_WEAPON_ROCKETLAUNCHER = 15;
   ITEM_WEAPON_PLASMA = 16;
   ITEM_WEAPON_BFG = 17;
-  ITEM_WEAPON_SUPERPULEMET = 18;
+  ITEM_WEAPON_SUPERCHAINGUN = 18;
   ITEM_AMMO_BULLETS = 19;
   ITEM_AMMO_BULLETS_BOX = 20;
   ITEM_AMMO_SHELLS = 21;
@@ -118,7 +118,7 @@ const
   ITEM_KEY_RED = 28;
   ITEM_KEY_GREEN = 29;
   ITEM_KEY_BLUE = 30;
-  ITEM_WEAPON_KASTET = 31;
+  ITEM_WEAPON_IRONFIST = 31;
   ITEM_WEAPON_PISTOL = 32;
   ITEM_BOTTLE = 33;
   ITEM_HELMET = 34;
@@ -126,6 +126,7 @@ const
   ITEM_INVIS = 36;
   ITEM_WEAPON_FLAMETHROWER = 37;
   ITEM_AMMO_FUELCAN = 38;
+  ITEM_WEAPON_SUPERPULEMET = 18;
   ITEM_MAX = 38;
 
 // ItemOption
@@ -310,789 +311,816 @@ const defaultMapDef: AnsiString = ''+
   #114#118#101#115#32#98#111#116#104#32#97#115#32#102#111#114#109#97#116#32+
   #100#101#115#99#114#105#112#116#105#111#110#32#97#110#100#32#97#115#32#116+
   #101#109#112#108#97#116#101#32#102#111#114#32#99#111#100#101#32#103#101#110+
-  #101#114#97#116#105#111#110#10#47#47#32#116#104#101#32#101#110#103#105#110+
-  #101#32#119#105#108#108#32#117#115#101#32#116#104#105#115#32#100#101#115#99+
-  #114#105#112#116#105#111#110#32#116#111#32#112#97#114#115#101#32#108#101#103+
-  #97#99#121#32#98#105#110#97#114#121#32#109#97#112#32#102#111#114#109#97#116+
-  #10#10#47#47#32#110#111#116#101#115#58#10#47#47#32#32#42#32#102#105#101#108+
-  #100#32#119#105#116#104#111#117#116#32#111#102#102#115#101#116#32#105#115#32+
-  #110#111#116#32#105#110#32#98#105#110#97#114#121#32#102#111#114#109#97#116+
-  #10#47#47#32#32#42#32#102#105#101#108#100#115#32#119#105#116#104#32#96#119+
-  #114#105#116#101#100#101#102#97#117#108#116#96#32#119#105#108#108#32#98#101+
-  #32#119#114#105#116#116#101#110#32#101#118#101#110#32#105#102#32#116#104#101+
-  #121#32#99#111#110#116#97#105#110#32#100#101#102#97#117#108#116#32#118#97+
-  #108#117#101#115#10#47#47#32#32#42#32#102#105#101#108#100#115#32#119#105#116+
-  #104#32#96#105#110#116#101#114#110#97#108#96#32#119#111#110#39#116#32#98#101+
-  #32#119#114#105#116#116#101#110#32#116#111#32#97#110#121#32#102#105#108#101+
-  #32#101#118#101#114#32#40#97#110#100#32#119#111#110#39#116#32#98#101#32#114+
-  #101#97#100#41#10#47#47#32#32#42#32#96#117#98#121#116#101#96#32#105#115#32+
-  #117#110#115#105#103#110#101#100#32#98#121#116#101#44#32#97#110#100#32#96#98+
-  #121#116#101#96#32#105#115#32#115#105#103#110#101#100#32#98#121#116#101#10+
-  #47#47#32#32#42#32#97#108#108#32#115#116#114#105#110#103#115#32#97#114#101+
-  #32#105#110#32#117#116#102#45#56#10#47#47#32#32#42#32#115#116#114#117#99#116+
-  #32#119#105#116#104#32#96#104#101#97#100#101#114#96#32#102#108#97#103#32#119+
-  #105#108#108#32#99#111#110#116#97#105#110#32#97#108#108#32#111#116#104#101+
-  #114#32#115#116#114#117#99#116#115#32#97#110#100#32#105#116#39#115#32#111+
-  #119#110#32#102#105#101#108#100#115#32#97#115#32#116#111#112#45#108#101#118+
-  #101#108#32#101#110#116#105#116#105#101#115#10#47#47#32#32#42#32#105#110#32+
-  #98#105#110#97#114#121#44#32#96#115#105#122#101#96#32#105#115#32#116#119#111+
-  #32#117#115#104#111#114#116#115#10#47#47#32#32#42#32#96#97#115#32#120#121#96+
-  #32#119#105#108#108#32#117#115#101#32#96#88#96#32#97#110#100#32#96#89#96#32+
-  #102#111#114#32#112#111#105#110#116#115#10#47#47#32#32#42#32#96#97#115#32+
-  #116#120#121#96#32#119#105#108#108#32#117#115#101#32#96#116#88#96#32#97#110+
-  #100#32#96#116#89#96#32#102#111#114#32#112#111#105#110#116#115#10#47#47#32+
-  #32#42#32#96#97#115#32#119#104#96#32#119#105#108#108#32#117#115#101#32#96#87+
-  #105#100#116#104#96#32#97#110#100#32#96#72#101#105#103#104#116#96#32#102#111+
-  #114#32#115#105#122#101#10#47#47#32#32#42#32#96#97#115#32#116#119#104#96#32+
-  #119#105#108#108#32#117#115#101#32#96#116#87#105#100#116#104#96#32#97#110+
-  #100#32#96#116#72#101#105#103#104#116#96#32#102#111#114#32#115#105#122#101+
-  #10#47#47#32#32#42#32#96#97#115#32#109#111#110#115#116#101#114#105#100#96#58+
-  #32#115#112#101#99#105#97#108#32#104#97#99#107#32#102#111#114#32#116#114#105+
-  #103#103#101#114#115#58#32#109#111#110#115#116#101#114#32#114#101#99#111#114+
-  #100#32#110#117#109#98#101#114#43#49#32#105#110#32#98#105#110#97#114#121#32+
-  #40#115#111#32#48#32#109#101#97#110#115#32#34#110#111#110#101#34#41#10#47#47+
-  #32#32#42#32#96#98#105#110#98#108#111#99#107#96#32#97#110#100#32#96#111#102+
-  #102#115#101#116#96#32#40#97#110#100#32#96#91#93#96#32#97#114#114#97#121#115+
-  #41#32#97#114#101#32#117#115#101#100#32#116#111#32#112#97#114#115#101#32#108+
-  #101#103#97#99#121#32#98#105#110#97#114#121#32#102#111#114#109#97#116#10#10+
+  #101#114#97#116#105#111#110#13#10#47#47#32#116#104#101#32#101#110#103#105+
+  #110#101#32#119#105#108#108#32#117#115#101#32#116#104#105#115#32#100#101#115+
+  #99#114#105#112#116#105#111#110#32#116#111#32#112#97#114#115#101#32#108#101+
+  #103#97#99#121#32#98#105#110#97#114#121#32#109#97#112#32#102#111#114#109#97+
+  #116#13#10#13#10#47#47#32#110#111#116#101#115#58#13#10#47#47#32#32#42#32#102+
+  #105#101#108#100#32#119#105#116#104#111#117#116#32#111#102#102#115#101#116+
+  #32#105#115#32#110#111#116#32#105#110#32#98#105#110#97#114#121#32#102#111+
+  #114#109#97#116#13#10#47#47#32#32#42#32#102#105#101#108#100#115#32#119#105+
+  #116#104#32#96#119#114#105#116#101#100#101#102#97#117#108#116#96#32#119#105+
+  #108#108#32#98#101#32#119#114#105#116#116#101#110#32#101#118#101#110#32#105+
+  #102#32#116#104#101#121#32#99#111#110#116#97#105#110#32#100#101#102#97#117+
+  #108#116#32#118#97#108#117#101#115#13#10#47#47#32#32#42#32#102#105#101#108+
+  #100#115#32#119#105#116#104#32#96#105#110#116#101#114#110#97#108#96#32#119+
+  #111#110#39#116#32#98#101#32#119#114#105#116#116#101#110#32#116#111#32#97+
+  #110#121#32#102#105#108#101#32#101#118#101#114#32#40#97#110#100#32#119#111+
+  #110#39#116#32#98#101#32#114#101#97#100#41#13#10#47#47#32#32#42#32#96#117#98+
+  #121#116#101#96#32#105#115#32#117#110#115#105#103#110#101#100#32#98#121#116+
+  #101#44#32#97#110#100#32#96#98#121#116#101#96#32#105#115#32#115#105#103#110+
+  #101#100#32#98#121#116#101#13#10#47#47#32#32#42#32#97#108#108#32#115#116#114+
+  #105#110#103#115#32#97#114#101#32#105#110#32#117#116#102#45#56#13#10#47#47+
+  #32#32#42#32#115#116#114#117#99#116#32#119#105#116#104#32#96#104#101#97#100+
+  #101#114#96#32#102#108#97#103#32#119#105#108#108#32#99#111#110#116#97#105+
+  #110#32#97#108#108#32#111#116#104#101#114#32#115#116#114#117#99#116#115#32+
+  #97#110#100#32#105#116#39#115#32#111#119#110#32#102#105#101#108#100#115#32+
+  #97#115#32#116#111#112#45#108#101#118#101#108#32#101#110#116#105#116#105#101+
+  #115#13#10#47#47#32#32#42#32#105#110#32#98#105#110#97#114#121#44#32#96#115+
+  #105#122#101#96#32#105#115#32#116#119#111#32#117#115#104#111#114#116#115#13+
+  #10#47#47#32#32#42#32#96#97#115#32#120#121#96#32#119#105#108#108#32#117#115+
+  #101#32#96#88#96#32#97#110#100#32#96#89#96#32#102#111#114#32#112#111#105#110+
+  #116#115#13#10#47#47#32#32#42#32#96#97#115#32#116#120#121#96#32#119#105#108+
+  #108#32#117#115#101#32#96#116#88#96#32#97#110#100#32#96#116#89#96#32#102#111+
+  #114#32#112#111#105#110#116#115#13#10#47#47#32#32#42#32#96#97#115#32#119#104+
+  #96#32#119#105#108#108#32#117#115#101#32#96#87#105#100#116#104#96#32#97#110+
+  #100#32#96#72#101#105#103#104#116#96#32#102#111#114#32#115#105#122#101#13#10+
+  #47#47#32#32#42#32#96#97#115#32#116#119#104#96#32#119#105#108#108#32#117#115+
+  #101#32#96#116#87#105#100#116#104#96#32#97#110#100#32#96#116#72#101#105#103+
+  #104#116#96#32#102#111#114#32#115#105#122#101#13#10#47#47#32#32#42#32#96#97+
+  #115#32#109#111#110#115#116#101#114#105#100#96#58#32#115#112#101#99#105#97+
+  #108#32#104#97#99#107#32#102#111#114#32#116#114#105#103#103#101#114#115#58+
+  #32#109#111#110#115#116#101#114#32#114#101#99#111#114#100#32#110#117#109#98+
+  #101#114#43#49#32#105#110#32#98#105#110#97#114#121#32#40#115#111#32#48#32+
+  #109#101#97#110#115#32#34#110#111#110#101#34#41#13#10#47#47#32#32#42#32#96+
+  #98#105#110#98#108#111#99#107#96#32#97#110#100#32#96#111#102#102#115#101#116+
+  #96#32#40#97#110#100#32#96#91#93#96#32#97#114#114#97#121#115#41#32#97#114+
+  #101#32#117#115#101#100#32#116#111#32#112#97#114#115#101#32#108#101#103#97+
+  #99#121#32#98#105#110#97#114#121#32#102#111#114#109#97#116#13#10#13#10#47#47+
   #47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47+
   #47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47+
   #47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47+
-  #47#47#47#47#47#10#47#47#32#109#97#105#110#32#98#108#111#99#107#115#10#34+
+  #47#47#47#13#10#47#47#32#109#97#105#110#32#98#108#111#99#107#115#13#10#34+
   #109#97#112#34#32#115#105#122#101#32#52#53#50#32#98#121#116#101#115#32#104+
-  #101#97#100#101#114#32#98#105#110#98#108#111#99#107#32#55#32#123#10#32#32#34+
-  #110#97#109#101#34#32#116#121#112#101#32#99#104#97#114#91#51#50#93#32#111+
+  #101#97#100#101#114#32#98#105#110#98#108#111#99#107#32#55#32#123#13#10#32#32+
+  #34#110#97#109#101#34#32#116#121#112#101#32#99#104#97#114#91#51#50#93#32#111+
   #102#102#115#101#116#32#48#32#119#114#105#116#101#100#101#102#97#117#108#116+
-  #32#116#105#112#32#34#109#97#112#32#110#97#109#101#34#59#10#32#32#34#97#117+
-  #116#104#111#114#34#32#116#121#112#101#32#99#104#97#114#91#51#50#93#32#111+
-  #102#102#115#101#116#32#51#50#32#100#101#102#97#117#108#116#32#34#34#32#119+
-  #114#105#116#101#100#101#102#97#117#108#116#32#116#105#112#32#34#109#97#112+
-  #32#97#117#116#104#111#114#34#59#10#32#32#34#100#101#115#99#114#105#112#116+
-  #105#111#110#34#32#116#121#112#101#32#99#104#97#114#91#50#53#54#93#32#111+
-  #102#102#115#101#116#32#54#52#32#100#101#102#97#117#108#116#32#34#34#32#119+
-  #114#105#116#101#100#101#102#97#117#108#116#32#116#105#112#32#34#109#97#112+
-  #32#100#101#115#99#114#105#112#116#105#111#110#34#59#10#32#32#34#109#117#115+
-  #105#99#34#32#116#121#112#101#32#99#104#97#114#91#54#52#93#32#111#102#102+
-  #115#101#116#32#51#50#48#32#100#101#102#97#117#108#116#32#39#83#116#97#110+
-  #100#97#114#116#46#119#97#100#58#68#50#68#77#85#83#92#208#159#208#160#208+
-  #158#208#161#208#162#208#158#208#162#208#144#39#32#119#114#105#116#101#100+
-  #101#102#97#117#108#116#32#116#105#112#32#34#109#117#115#105#99#32#114#101+
-  #115#111#117#114#99#101#34#59#10#32#32#34#115#107#121#34#32#116#121#112#101+
-  #32#99#104#97#114#91#54#52#93#32#111#102#102#115#101#116#32#51#56#52#32#100+
-  #101#102#97#117#108#116#32#39#83#116#97#110#100#97#114#116#46#119#97#100#58+
-  #68#50#68#83#75#89#92#82#83#75#89#49#39#32#119#114#105#116#101#100#101#102+
-  #97#117#108#116#32#116#105#112#32#34#115#107#121#32#114#101#115#111#117#114+
-  #99#101#34#59#10#32#32#34#115#105#122#101#34#32#116#121#112#101#32#115#105+
-  #122#101#32#111#102#102#115#101#116#32#52#52#56#32#97#115#32#119#104#32#119+
-  #114#105#116#101#100#101#102#97#117#108#116#59#10#32#32#47#47#32#110#111#116+
-  #32#105#110#32#98#105#110#97#114#121#10#32#32#47#47#32#116#101#109#112#111+
-  #114#97#114#121#44#32#102#111#114#32#108#105#103#104#116#105#110#103#32#101+
-  #120#112#101#114#105#109#101#110#116#115#10#32#32#34#108#105#103#104#116#95+
-  #97#109#98#105#101#110#116#34#32#116#121#112#101#32#99#111#108#111#114#32+
-  #100#101#102#97#117#108#116#32#40#48#32#48#32#48#32#50#53#53#41#32#116#105+
-  #112#32#34#97#109#98#105#101#110#116#32#108#105#103#104#116#32#102#111#114+
-  #32#116#104#101#32#119#104#111#108#101#32#108#101#118#101#108#34#59#10#125+
-  #10#10#34#116#101#120#116#117#114#101#34#32#115#105#122#101#32#54#53#32#98+
-  #121#116#101#115#32#98#105#110#98#108#111#99#107#32#49#32#123#10#32#32#34+
-  #112#97#116#104#34#32#116#121#112#101#32#99#104#97#114#91#54#52#93#32#111+
-  #102#102#115#101#116#32#48#32#119#114#105#116#101#100#101#102#97#117#108#116+
-  #59#10#32#32#34#97#110#105#109#97#116#101#100#34#32#116#121#112#101#32#98+
-  #111#111#108#32#111#102#102#115#101#116#32#54#52#32#100#101#102#97#117#108+
-  #116#32#102#97#108#115#101#59#10#125#10#10#34#112#97#110#101#108#34#32#115+
-  #105#122#101#32#49#56#32#98#121#116#101#115#32#98#105#110#98#108#111#99#107+
-  #32#50#32#123#10#32#32#34#112#111#115#105#116#105#111#110#34#32#116#121#112+
-  #101#32#112#111#105#110#116#32#111#102#102#115#101#116#32#48#32#97#115#32+
-  #120#121#32#119#114#105#116#101#100#101#102#97#117#108#116#59#10#32#32#34+
-  #115#105#122#101#34#32#116#121#112#101#32#115#105#122#101#32#111#102#102#115+
-  #101#116#32#56#32#97#115#32#119#104#32#97#115#32#119#104#32#119#114#105#116+
-  #101#100#101#102#97#117#108#116#59#10#32#32#34#116#101#120#116#117#114#101+
-  #34#32#116#121#112#101#32#117#115#104#111#114#116#32#111#102#102#115#101#116+
-  #32#49#50#32#116#101#120#116#117#114#101#32#119#114#105#116#101#100#101#102+
-  #97#117#108#116#59#10#32#32#34#116#121#112#101#34#32#116#121#112#101#32#117+
-  #115#104#111#114#116#32#111#102#102#115#101#116#32#49#52#32#98#105#116#115+
-  #101#116#32#117#110#105#113#117#101#32#80#97#110#101#108#84#121#112#101#32+
-  #119#114#105#116#101#100#101#102#97#117#108#116#59#10#32#32#34#97#108#112+
-  #104#97#34#32#116#121#112#101#32#117#98#121#116#101#32#111#102#102#115#101+
-  #116#32#49#54#32#100#101#102#97#117#108#116#32#48#59#10#32#32#34#102#108#97+
-  #103#115#34#32#116#121#112#101#32#117#98#121#116#101#32#111#102#102#115#101+
-  #116#32#49#55#32#98#105#116#115#101#116#32#80#97#110#101#108#70#108#97#103+
-  #32#100#101#102#97#117#108#116#32#80#65#78#69#76#95#70#76#65#71#95#78#79#78+
-  #69#59#10#32#32#47#47#32#109#111#118#105#110#103#32#112#108#97#116#102#111+
-  #114#109#32#111#112#116#105#111#110#115#44#32#110#111#116#32#105#110#32#98+
-  #105#110#97#114#121#10#32#32#34#109#111#118#101#95#115#112#101#101#100#34#32+
-  #116#121#112#101#32#112#111#105#110#116#32#100#101#102#97#117#108#116#32#40+
-  #48#32#48#41#59#10#32#32#34#115#105#122#101#95#115#112#101#101#100#34#32#116+
-  #121#112#101#32#112#111#105#110#116#32#100#101#102#97#117#108#116#32#40#48+
-  #32#48#41#59#32#47#47#32#97#108#97#115#44#32#96#115#105#122#101#96#32#99#97+
-  #110#110#111#116#32#98#101#32#110#101#103#97#116#105#118#101#10#32#32#34#109+
-  #111#118#101#95#115#116#97#114#116#34#32#116#121#112#101#32#112#111#105#110+
-  #116#32#100#101#102#97#117#108#116#32#40#48#32#48#41#59#10#32#32#34#109#111+
-  #118#101#95#101#110#100#34#32#116#121#112#101#32#112#111#105#110#116#32#100+
-  #101#102#97#117#108#116#32#40#48#32#48#41#59#10#32#32#34#115#105#122#101#95+
-  #101#110#100#34#32#116#121#112#101#32#115#105#122#101#32#100#101#102#97#117+
-  #108#116#32#40#48#32#48#41#59#10#32#32#34#109#111#118#101#95#97#99#116#105+
+  #32#116#105#112#32#34#109#97#112#32#110#97#109#101#34#59#13#10#32#32#34#97+
+  #117#116#104#111#114#34#32#116#121#112#101#32#99#104#97#114#91#51#50#93#32+
+  #111#102#102#115#101#116#32#51#50#32#100#101#102#97#117#108#116#32#34#34#32+
+  #119#114#105#116#101#100#101#102#97#117#108#116#32#116#105#112#32#34#109#97+
+  #112#32#97#117#116#104#111#114#34#59#13#10#32#32#34#100#101#115#99#114#105+
+  #112#116#105#111#110#34#32#116#121#112#101#32#99#104#97#114#91#50#53#54#93+
+  #32#111#102#102#115#101#116#32#54#52#32#100#101#102#97#117#108#116#32#34#34+
+  #32#119#114#105#116#101#100#101#102#97#117#108#116#32#116#105#112#32#34#109+
+  #97#112#32#100#101#115#99#114#105#112#116#105#111#110#34#59#13#10#32#32#34+
+  #109#117#115#105#99#34#32#116#121#112#101#32#99#104#97#114#91#54#52#93#32+
+  #111#102#102#115#101#116#32#51#50#48#32#100#101#102#97#117#108#116#32#39#83+
+  #116#97#110#100#97#114#116#46#119#97#100#58#68#50#68#77#85#83#92#208#159#208+
+  #160#208#158#208#161#208#162#208#158#208#162#208#144#39#32#119#114#105#116+
+  #101#100#101#102#97#117#108#116#32#116#105#112#32#34#109#117#115#105#99#32+
+  #114#101#115#111#117#114#99#101#34#59#13#10#32#32#34#115#107#121#34#32#116+
+  #121#112#101#32#99#104#97#114#91#54#52#93#32#111#102#102#115#101#116#32#51+
+  #56#52#32#100#101#102#97#117#108#116#32#39#83#116#97#110#100#97#114#116#46+
+  #119#97#100#58#68#50#68#83#75#89#92#82#83#75#89#49#39#32#119#114#105#116#101+
+  #100#101#102#97#117#108#116#32#116#105#112#32#34#115#107#121#32#114#101#115+
+  #111#117#114#99#101#34#59#13#10#32#32#34#115#105#122#101#34#32#116#121#112+
+  #101#32#115#105#122#101#32#111#102#102#115#101#116#32#52#52#56#32#97#115#32+
+  #119#104#32#119#114#105#116#101#100#101#102#97#117#108#116#59#13#10#32#32#47+
+  #47#32#110#111#116#32#105#110#32#98#105#110#97#114#121#13#10#32#32#47#47#32+
+  #116#101#109#112#111#114#97#114#121#44#32#102#111#114#32#108#105#103#104#116+
+  #105#110#103#32#101#120#112#101#114#105#109#101#110#116#115#13#10#32#32#34+
+  #108#105#103#104#116#95#97#109#98#105#101#110#116#34#32#116#121#112#101#32+
+  #99#111#108#111#114#32#100#101#102#97#117#108#116#32#40#48#32#48#32#48#32#50+
+  #53#53#41#32#116#105#112#32#34#97#109#98#105#101#110#116#32#108#105#103#104+
+  #116#32#102#111#114#32#116#104#101#32#119#104#111#108#101#32#108#101#118#101+
+  #108#34#59#13#10#125#13#10#13#10#34#116#101#120#116#117#114#101#34#32#115+
+  #105#122#101#32#54#53#32#98#121#116#101#115#32#98#105#110#98#108#111#99#107+
+  #32#49#32#123#13#10#32#32#34#112#97#116#104#34#32#116#121#112#101#32#99#104+
+  #97#114#91#54#52#93#32#111#102#102#115#101#116#32#48#32#119#114#105#116#101+
+  #100#101#102#97#117#108#116#59#13#10#32#32#34#97#110#105#109#97#116#101#100+
+  #34#32#116#121#112#101#32#98#111#111#108#32#111#102#102#115#101#116#32#54#52+
+  #32#100#101#102#97#117#108#116#32#102#97#108#115#101#59#13#10#125#13#10#13+
+  #10#34#112#97#110#101#108#34#32#115#105#122#101#32#49#56#32#98#121#116#101+
+  #115#32#98#105#110#98#108#111#99#107#32#50#32#123#13#10#32#32#34#112#111#115+
+  #105#116#105#111#110#34#32#116#121#112#101#32#112#111#105#110#116#32#111#102+
+  #102#115#101#116#32#48#32#97#115#32#120#121#32#119#114#105#116#101#100#101+
+  #102#97#117#108#116#59#13#10#32#32#34#115#105#122#101#34#32#116#121#112#101+
+  #32#115#105#122#101#32#111#102#102#115#101#116#32#56#32#97#115#32#119#104#32+
+  #97#115#32#119#104#32#119#114#105#116#101#100#101#102#97#117#108#116#59#13+
+  #10#32#32#34#116#101#120#116#117#114#101#34#32#116#121#112#101#32#117#115+
+  #104#111#114#116#32#111#102#102#115#101#116#32#49#50#32#116#101#120#116#117+
+  #114#101#32#119#114#105#116#101#100#101#102#97#117#108#116#59#13#10#32#32#34+
+  #116#121#112#101#34#32#116#121#112#101#32#117#115#104#111#114#116#32#111#102+
+  #102#115#101#116#32#49#52#32#98#105#116#115#101#116#32#117#110#105#113#117+
+  #101#32#80#97#110#101#108#84#121#112#101#32#119#114#105#116#101#100#101#102+
+  #97#117#108#116#59#13#10#32#32#34#97#108#112#104#97#34#32#116#121#112#101#32+
+  #117#98#121#116#101#32#111#102#102#115#101#116#32#49#54#32#100#101#102#97+
+  #117#108#116#32#48#59#13#10#32#32#34#102#108#97#103#115#34#32#116#121#112+
+  #101#32#117#98#121#116#101#32#111#102#102#115#101#116#32#49#55#32#98#105#116+
+  #115#101#116#32#80#97#110#101#108#70#108#97#103#32#100#101#102#97#117#108+
+  #116#32#80#65#78#69#76#95#70#76#65#71#95#78#79#78#69#59#13#10#32#32#47#47#32+
+  #109#111#118#105#110#103#32#112#108#97#116#102#111#114#109#32#111#112#116+
+  #105#111#110#115#44#32#110#111#116#32#105#110#32#98#105#110#97#114#121#13#10+
+  #32#32#34#109#111#118#101#95#115#112#101#101#100#34#32#116#121#112#101#32+
+  #112#111#105#110#116#32#100#101#102#97#117#108#116#32#40#48#32#48#41#59#13+
+  #10#32#32#34#115#105#122#101#95#115#112#101#101#100#34#32#116#121#112#101#32+
+  #112#111#105#110#116#32#100#101#102#97#117#108#116#32#40#48#32#48#41#59#32+
+  #47#47#32#97#108#97#115#44#32#96#115#105#122#101#96#32#99#97#110#110#111#116+
+  #32#98#101#32#110#101#103#97#116#105#118#101#13#10#32#32#34#109#111#118#101+
+  #95#115#116#97#114#116#34#32#116#121#112#101#32#112#111#105#110#116#32#100+
+  #101#102#97#117#108#116#32#40#48#32#48#41#59#13#10#32#32#34#109#111#118#101+
+  #95#101#110#100#34#32#116#121#112#101#32#112#111#105#110#116#32#100#101#102+
+  #97#117#108#116#32#40#48#32#48#41#59#13#10#32#32#34#115#105#122#101#95#101+
+  #110#100#34#32#116#121#112#101#32#115#105#122#101#32#100#101#102#97#117#108+
+  #116#32#40#48#32#48#41#59#13#10#32#32#34#109#111#118#101#95#97#99#116#105+
   #118#101#34#32#116#121#112#101#32#98#111#111#108#32#100#101#102#97#117#108+
-  #116#32#102#97#108#115#101#59#10#32#32#34#109#111#118#101#95#111#110#99#101+
-  #34#32#116#121#112#101#32#98#111#111#108#32#100#101#102#97#117#108#116#32+
-  #102#97#108#115#101#59#10#32#32#34#101#110#100#95#112#111#115#95#116#114#105+
-  #103#103#101#114#34#32#116#114#105#103#103#101#114#32#100#101#102#97#117#108+
-  #116#32#110#117#108#108#59#10#32#32#34#101#110#100#95#115#105#122#101#95#116+
+  #116#32#102#97#108#115#101#59#13#10#32#32#34#109#111#118#101#95#111#110#99+
+  #101#34#32#116#121#112#101#32#98#111#111#108#32#100#101#102#97#117#108#116+
+  #32#102#97#108#115#101#59#13#10#32#32#34#101#110#100#95#112#111#115#95#116+
   #114#105#103#103#101#114#34#32#116#114#105#103#103#101#114#32#100#101#102#97+
-  #117#108#116#32#110#117#108#108#59#10#125#10#10#34#105#116#101#109#34#32#115+
-  #105#122#101#32#49#48#32#98#121#116#101#115#32#98#105#110#98#108#111#99#107+
-  #32#51#32#123#10#32#32#34#112#111#115#105#116#105#111#110#34#32#116#121#112+
-  #101#32#112#111#105#110#116#32#111#102#102#115#101#116#32#48#32#97#115#32+
-  #120#121#32#119#114#105#116#101#100#101#102#97#117#108#116#59#10#32#32#34+
-  #116#121#112#101#34#32#116#121#112#101#32#117#98#121#116#101#32#111#102#102+
-  #115#101#116#32#56#32#101#110#117#109#32#73#116#101#109#32#119#114#105#116+
-  #101#100#101#102#97#117#108#116#59#10#32#32#34#111#112#116#105#111#110#115+
-  #34#32#116#121#112#101#32#117#98#121#116#101#32#111#102#102#115#101#116#32+
-  #57#32#98#105#116#115#101#116#32#73#116#101#109#79#112#116#105#111#110#32+
-  #100#101#102#97#117#108#116#32#73#84#69#77#95#79#80#84#73#79#78#95#78#79#78+
-  #69#59#10#125#10#10#34#109#111#110#115#116#101#114#34#32#115#105#122#101#32+
-  #49#48#32#98#121#116#101#115#32#98#105#110#98#108#111#99#107#32#53#32#123#10+
+  #117#108#116#32#110#117#108#108#59#13#10#32#32#34#101#110#100#95#115#105#122+
+  #101#95#116#114#105#103#103#101#114#34#32#116#114#105#103#103#101#114#32#100+
+  #101#102#97#117#108#116#32#110#117#108#108#59#13#10#125#13#10#13#10#34#105+
+  #116#101#109#34#32#115#105#122#101#32#49#48#32#98#121#116#101#115#32#98#105+
+  #110#98#108#111#99#107#32#51#32#123#13#10#32#32#34#112#111#115#105#116#105+
+  #111#110#34#32#116#121#112#101#32#112#111#105#110#116#32#111#102#102#115#101+
+  #116#32#48#32#97#115#32#120#121#32#119#114#105#116#101#100#101#102#97#117+
+  #108#116#59#13#10#32#32#34#116#121#112#101#34#32#116#121#112#101#32#117#98+
+  #121#116#101#32#111#102#102#115#101#116#32#56#32#101#110#117#109#32#73#116+
+  #101#109#32#119#114#105#116#101#100#101#102#97#117#108#116#59#13#10#32#32#34+
+  #111#112#116#105#111#110#115#34#32#116#121#112#101#32#117#98#121#116#101#32+
+  #111#102#102#115#101#116#32#57#32#98#105#116#115#101#116#32#73#116#101#109+
+  #79#112#116#105#111#110#32#100#101#102#97#117#108#116#32#73#84#69#77#95#79+
+  #80#84#73#79#78#95#78#79#78#69#59#13#10#125#13#10#13#10#34#109#111#110#115+
+  #116#101#114#34#32#115#105#122#101#32#49#48#32#98#121#116#101#115#32#98#105+
+  #110#98#108#111#99#107#32#53#32#123#13#10#32#32#34#112#111#115#105#116#105+
+  #111#110#34#32#116#121#112#101#32#112#111#105#110#116#32#111#102#102#115#101+
+  #116#32#48#32#97#115#32#120#121#32#119#114#105#116#101#100#101#102#97#117+
+  #108#116#59#13#10#32#32#34#116#121#112#101#34#32#116#121#112#101#32#117#98+
+  #121#116#101#32#111#102#102#115#101#116#32#56#32#101#110#117#109#32#77#111+
+  #110#115#116#101#114#32#119#114#105#116#101#100#101#102#97#117#108#116#59#13+
+  #10#32#32#34#100#105#114#101#99#116#105#111#110#34#32#116#121#112#101#32#117+
+  #98#121#116#101#32#111#102#102#115#101#116#32#57#32#101#110#117#109#32#68+
+  #105#114#84#121#112#101#32#100#101#102#97#117#108#116#32#68#73#82#95#76#69+
+  #70#84#59#13#10#125#13#10#13#10#34#97#114#101#97#34#32#115#105#122#101#32#49+
+  #48#32#98#121#116#101#115#32#98#105#110#98#108#111#99#107#32#52#32#123#13#10+
   #32#32#34#112#111#115#105#116#105#111#110#34#32#116#121#112#101#32#112#111+
   #105#110#116#32#111#102#102#115#101#116#32#48#32#97#115#32#120#121#32#119+
-  #114#105#116#101#100#101#102#97#117#108#116#59#10#32#32#34#116#121#112#101+
-  #34#32#116#121#112#101#32#117#98#121#116#101#32#111#102#102#115#101#116#32+
-  #56#32#101#110#117#109#32#77#111#110#115#116#101#114#32#119#114#105#116#101+
-  #100#101#102#97#117#108#116#59#10#32#32#34#100#105#114#101#99#116#105#111+
-  #110#34#32#116#121#112#101#32#117#98#121#116#101#32#111#102#102#115#101#116+
-  #32#57#32#101#110#117#109#32#68#105#114#84#121#112#101#32#100#101#102#97#117+
-  #108#116#32#68#73#82#95#76#69#70#84#59#10#125#10#10#34#97#114#101#97#34#32+
-  #115#105#122#101#32#49#48#32#98#121#116#101#115#32#98#105#110#98#108#111#99+
-  #107#32#52#32#123#10#32#32#34#112#111#115#105#116#105#111#110#34#32#116#121+
-  #112#101#32#112#111#105#110#116#32#111#102#102#115#101#116#32#48#32#97#115+
-  #32#120#121#32#119#114#105#116#101#100#101#102#97#117#108#116#59#10#32#32#34+
-  #116#121#112#101#34#32#116#121#112#101#32#117#98#121#116#101#32#111#102#102+
-  #115#101#116#32#56#32#101#110#117#109#32#65#114#101#97#84#121#112#101#32#119+
-  #114#105#116#101#100#101#102#97#117#108#116#59#10#32#32#34#100#105#114#101+
-  #99#116#105#111#110#34#32#116#121#112#101#32#117#98#121#116#101#32#111#102+
-  #102#115#101#116#32#57#32#101#110#117#109#32#68#105#114#84#121#112#101#32+
-  #100#101#102#97#117#108#116#32#68#73#82#95#76#69#70#84#59#10#125#10#10#34+
-  #116#114#105#103#103#101#114#34#32#115#105#122#101#32#49#52#56#32#98#121#116+
-  #101#115#32#98#105#110#98#108#111#99#107#32#54#32#123#10#32#32#34#112#111+
-  #115#105#116#105#111#110#34#32#116#121#112#101#32#112#111#105#110#116#32#111+
-  #102#102#115#101#116#32#48#32#97#115#32#120#121#32#119#114#105#116#101#100+
-  #101#102#97#117#108#116#59#10#32#32#34#115#105#122#101#34#32#116#121#112#101+
-  #32#115#105#122#101#32#111#102#102#115#101#116#32#56#32#97#115#32#119#104#32+
-  #119#114#105#116#101#100#101#102#97#117#108#116#59#10#32#32#34#101#110#97#98+
-  #108#101#100#34#32#116#121#112#101#32#98#111#111#108#32#111#102#102#115#101+
-  #116#32#49#50#32#100#101#102#97#117#108#116#32#116#114#117#101#59#10#32#32+
-  #34#116#101#120#116#117#114#101#95#112#97#110#101#108#34#32#116#121#112#101+
-  #32#105#110#116#32#111#102#102#115#101#116#32#49#51#32#112#97#110#101#108#32+
-  #100#101#102#97#117#108#116#32#110#117#108#108#59#10#32#32#34#116#121#112+
+  #114#105#116#101#100#101#102#97#117#108#116#59#13#10#32#32#34#116#121#112+
   #101#34#32#116#121#112#101#32#117#98#121#116#101#32#111#102#102#115#101#116+
-  #32#49#55#32#101#110#117#109#32#84#114#105#103#103#101#114#84#121#112#101#32+
-  #119#114#105#116#101#100#101#102#97#117#108#116#59#10#32#32#34#97#99#116#105+
-  #118#97#116#101#95#116#121#112#101#34#32#116#121#112#101#32#117#98#121#116+
-  #101#32#111#102#102#115#101#116#32#49#56#32#98#105#116#115#101#116#32#65#99+
-  #116#105#118#97#116#101#84#121#112#101#59#10#32#32#34#107#101#121#115#34#32+
-  #116#121#112#101#32#117#98#121#116#101#32#111#102#102#115#101#116#32#49#57+
-  #32#98#105#116#115#101#116#32#75#101#121#32#100#101#102#97#117#108#116#32#75+
-  #69#89#95#78#79#78#69#59#10#32#32#47#47#87#65#82#78#73#78#71#58#32#34#116+
-  #114#105#103#100#97#116#97#34#32#77#85#83#84#32#98#101#32#100#101#102#105+
-  #110#101#100#32#98#101#102#111#114#101#32#34#116#121#112#101#34#44#32#97#110+
-  #100#32#34#116#121#112#101#34#32#77#85#83#84#32#98#101#32#110#97#109#101#100+
-  #32#34#116#121#112#101#34#32#40#102#111#114#32#110#111#119#44#32#99#97#110+
-  #32#98#101#32#99#104#97#110#103#101#100#32#108#97#116#101#114#41#10#32#32#34+
-  #116#114#105#103#103#101#114#100#97#116#97#34#32#116#121#112#101#32#116#114+
-  #105#103#100#97#116#97#91#49#50#56#93#32#111#102#102#115#101#116#32#50#48#59+
-  #32#47#47#32#116#104#101#32#111#110#108#121#32#115#112#101#99#105#97#108#32+
-  #110#101#115#116#101#100#32#115#116#114#117#99#116#117#114#101#10#32#32#47+
-  #47#68#79#32#78#79#84#32#85#83#69#33#32#101#120#112#101#114#105#109#101#110+
-  #116#97#108#32#102#101#97#116#117#114#101#33#32#119#105#108#108#32#98#101#32+
-  #114#101#109#111#118#101#100#33#10#32#32#34#101#120#111#109#97#95#105#110+
-  #105#116#34#32#116#121#112#101#32#115#116#114#105#110#103#32#100#101#102#97+
-  #117#108#116#32#34#34#32#116#105#112#32#34#119#105#108#108#32#98#101#32#99+
-  #97#108#108#101#100#32#111#110#32#116#114#105#103#103#101#114#32#99#114#101+
-  #97#116#105#111#110#34#59#10#32#32#34#101#120#111#109#97#95#116#104#105#110+
-  #107#34#32#116#121#112#101#32#115#116#114#105#110#103#32#100#101#102#97#117+
-  #108#116#32#34#34#32#116#105#112#32#34#119#105#108#108#32#98#101#32#99#97+
-  #108#108#101#100#32#111#110#32#101#97#99#104#32#116#104#105#110#107#32#115+
-  #116#101#112#34#59#10#32#32#34#101#120#111#109#97#95#99#104#101#99#107#34#32+
-  #116#121#112#101#32#115#116#114#105#110#103#32#100#101#102#97#117#108#116#32+
-  #34#34#32#116#105#112#32#34#119#105#108#108#32#98#101#32#99#97#108#108#101+
-  #100#32#98#101#102#111#114#101#32#97#99#116#105#118#97#116#105#111#110#34#59+
-  #10#32#32#34#101#120#111#109#97#95#97#99#116#105#111#110#34#32#116#121#112+
-  #101#32#115#116#114#105#110#103#32#100#101#102#97#117#108#116#32#34#34#32+
-  #116#105#112#32#34#119#105#108#108#32#98#101#32#99#97#108#108#101#100#32#111+
-  #110#32#97#99#116#105#118#97#116#105#111#110#34#59#10#125#10#10#10#47#47#47+
-  #47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47+
+  #32#56#32#101#110#117#109#32#65#114#101#97#84#121#112#101#32#119#114#105#116+
+  #101#100#101#102#97#117#108#116#59#13#10#32#32#34#100#105#114#101#99#116#105+
+  #111#110#34#32#116#121#112#101#32#117#98#121#116#101#32#111#102#102#115#101+
+  #116#32#57#32#101#110#117#109#32#68#105#114#84#121#112#101#32#100#101#102#97+
+  #117#108#116#32#68#73#82#95#76#69#70#84#59#13#10#125#13#10#13#10#34#116#114+
+  #105#103#103#101#114#34#32#115#105#122#101#32#49#52#56#32#98#121#116#101#115+
+  #32#98#105#110#98#108#111#99#107#32#54#32#123#13#10#32#32#34#112#111#115#105+
+  #116#105#111#110#34#32#116#121#112#101#32#112#111#105#110#116#32#111#102#102+
+  #115#101#116#32#48#32#97#115#32#120#121#32#119#114#105#116#101#100#101#102+
+  #97#117#108#116#59#13#10#32#32#34#115#105#122#101#34#32#116#121#112#101#32+
+  #115#105#122#101#32#111#102#102#115#101#116#32#56#32#97#115#32#119#104#32+
+  #119#114#105#116#101#100#101#102#97#117#108#116#59#13#10#32#32#34#101#110#97+
+  #98#108#101#100#34#32#116#121#112#101#32#98#111#111#108#32#111#102#102#115+
+  #101#116#32#49#50#32#100#101#102#97#117#108#116#32#116#114#117#101#59#13#10+
+  #32#32#34#116#101#120#116#117#114#101#95#112#97#110#101#108#34#32#116#121+
+  #112#101#32#105#110#116#32#111#102#102#115#101#116#32#49#51#32#112#97#110+
+  #101#108#32#100#101#102#97#117#108#116#32#110#117#108#108#59#13#10#32#32#34+
+  #116#121#112#101#34#32#116#121#112#101#32#117#98#121#116#101#32#111#102#102+
+  #115#101#116#32#49#55#32#101#110#117#109#32#84#114#105#103#103#101#114#84+
+  #121#112#101#32#119#114#105#116#101#100#101#102#97#117#108#116#59#13#10#32+
+  #32#34#97#99#116#105#118#97#116#101#95#116#121#112#101#34#32#116#121#112#101+
+  #32#117#98#121#116#101#32#111#102#102#115#101#116#32#49#56#32#98#105#116#115+
+  #101#116#32#65#99#116#105#118#97#116#101#84#121#112#101#59#13#10#32#32#34+
+  #107#101#121#115#34#32#116#121#112#101#32#117#98#121#116#101#32#111#102#102+
+  #115#101#116#32#49#57#32#98#105#116#115#101#116#32#75#101#121#32#100#101#102+
+  #97#117#108#116#32#75#69#89#95#78#79#78#69#59#13#10#32#32#47#47#87#65#82#78+
+  #73#78#71#58#32#34#116#114#105#103#100#97#116#97#34#32#77#85#83#84#32#98#101+
+  #32#100#101#102#105#110#101#100#32#98#101#102#111#114#101#32#34#116#121#112+
+  #101#34#44#32#97#110#100#32#34#116#121#112#101#34#32#77#85#83#84#32#98#101+
+  #32#110#97#109#101#100#32#34#116#121#112#101#34#32#40#102#111#114#32#110#111+
+  #119#44#32#99#97#110#32#98#101#32#99#104#97#110#103#101#100#32#108#97#116+
+  #101#114#41#13#10#32#32#34#116#114#105#103#103#101#114#100#97#116#97#34#32+
+  #116#121#112#101#32#116#114#105#103#100#97#116#97#91#49#50#56#93#32#111#102+
+  #102#115#101#116#32#50#48#59#32#47#47#32#116#104#101#32#111#110#108#121#32+
+  #115#112#101#99#105#97#108#32#110#101#115#116#101#100#32#115#116#114#117#99+
+  #116#117#114#101#13#10#32#32#47#47#68#79#32#78#79#84#32#85#83#69#33#32#101+
+  #120#112#101#114#105#109#101#110#116#97#108#32#102#101#97#116#117#114#101#33+
+  #32#119#105#108#108#32#98#101#32#114#101#109#111#118#101#100#33#13#10#32#32+
+  #34#101#120#111#109#97#95#105#110#105#116#34#32#116#121#112#101#32#115#116+
+  #114#105#110#103#32#100#101#102#97#117#108#116#32#34#34#32#116#105#112#32#34+
+  #119#105#108#108#32#98#101#32#99#97#108#108#101#100#32#111#110#32#116#114+
+  #105#103#103#101#114#32#99#114#101#97#116#105#111#110#34#59#13#10#32#32#34+
+  #101#120#111#109#97#95#116#104#105#110#107#34#32#116#121#112#101#32#115#116+
+  #114#105#110#103#32#100#101#102#97#117#108#116#32#34#34#32#116#105#112#32#34+
+  #119#105#108#108#32#98#101#32#99#97#108#108#101#100#32#111#110#32#101#97#99+
+  #104#32#116#104#105#110#107#32#115#116#101#112#34#59#13#10#32#32#34#101#120+
+  #111#109#97#95#99#104#101#99#107#34#32#116#121#112#101#32#115#116#114#105+
+  #110#103#32#100#101#102#97#117#108#116#32#34#34#32#116#105#112#32#34#119#105+
+  #108#108#32#98#101#32#99#97#108#108#101#100#32#98#101#102#111#114#101#32#97+
+  #99#116#105#118#97#116#105#111#110#34#59#13#10#32#32#34#101#120#111#109#97+
+  #95#97#99#116#105#111#110#34#32#116#121#112#101#32#115#116#114#105#110#103+
+  #32#100#101#102#97#117#108#116#32#34#34#32#116#105#112#32#34#119#105#108#108+
+  #32#98#101#32#99#97#108#108#101#100#32#111#110#32#97#99#116#105#118#97#116+
+  #105#111#110#34#59#13#10#125#13#10#13#10#13#10#47#47#47#47#47#47#47#47#47#47+
   #47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47+
   #47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47+
-  #47#47#10#47#47#32#115#112#101#99#105#97#108#32#116#101#120#116#117#114#101+
-  #32#105#100#101#110#116#105#102#105#101#114#115#44#32#117#115#101#100#32#116+
-  #111#32#103#101#110#101#114#97#116#101#32#112#97#115#99#97#108#32#115#111+
-  #117#114#99#101#115#10#101#110#117#109#32#84#101#120#116#117#114#101#83#112+
-  #101#99#105#97#108#32#123#10#32#32#84#69#88#84#85#82#69#95#83#80#69#67#73#65+
-  #76#95#87#65#84#69#82#32#61#32#45#49#44#10#32#32#84#69#88#84#85#82#69#95#83+
-  #80#69#67#73#65#76#95#65#67#73#68#49#32#61#32#45#50#44#10#32#32#84#69#88#84+
-  #85#82#69#95#83#80#69#67#73#65#76#95#65#67#73#68#50#32#61#32#45#51#44#10#32+
-  #32#84#69#88#84#85#82#69#95#78#79#78#69#32#61#32#45#52#44#10#125#10#10#47#47+
-  #32#100#105#114#101#99#116#105#111#110#115#10#101#110#117#109#32#68#105#114+
-  #84#121#112#101#32#123#10#32#32#68#73#82#95#76#69#70#84#44#32#47#47#32#48#10+
-  #32#32#68#73#82#95#82#73#71#72#84#44#32#47#47#32#49#10#32#32#68#73#82#95#80+
-  #82#69#83#69#82#86#69#44#32#47#47#32#50#10#32#32#68#73#82#95#82#69#86#69#82+
-  #83#69#44#32#47#47#32#51#10#125#10#10#47#47#32#116#114#105#103#103#101#114+
-  #115#10#101#110#117#109#32#84#114#105#103#103#101#114#84#121#112#101#32#123+
-  #10#32#32#84#82#73#71#71#69#82#95#78#79#78#69#44#32#47#47#32#48#10#32#32#84+
-  #82#73#71#71#69#82#95#69#88#73#84#44#32#47#47#32#49#10#32#32#84#82#73#71#71+
-  #69#82#95#84#69#76#69#80#79#82#84#44#32#47#47#32#50#10#32#32#84#82#73#71#71+
-  #69#82#95#79#80#69#78#68#79#79#82#44#32#47#47#32#51#10#32#32#84#82#73#71#71+
-  #69#82#95#67#76#79#83#69#68#79#79#82#44#32#47#47#32#52#10#32#32#84#82#73#71+
-  #71#69#82#95#68#79#79#82#44#32#47#47#32#53#10#32#32#84#82#73#71#71#69#82#95+
-  #68#79#79#82#53#44#32#47#47#32#54#10#32#32#84#82#73#71#71#69#82#95#67#76#79+
-  #83#69#84#82#65#80#44#32#47#47#32#55#10#32#32#84#82#73#71#71#69#82#95#84#82+
-  #65#80#44#32#47#47#32#56#10#32#32#84#82#73#71#71#69#82#95#80#82#69#83#83#44+
-  #32#47#47#32#57#10#32#32#84#82#73#71#71#69#82#95#83#69#67#82#69#84#44#32#47+
-  #47#32#49#48#10#32#32#84#82#73#71#71#69#82#95#76#73#70#84#85#80#44#32#47#47+
-  #32#49#49#10#32#32#84#82#73#71#71#69#82#95#76#73#70#84#68#79#87#78#44#32#47+
-  #47#32#49#50#10#32#32#84#82#73#71#71#69#82#95#76#73#70#84#44#32#47#47#32#49+
-  #51#10#32#32#84#82#73#71#71#69#82#95#84#69#88#84#85#82#69#44#32#47#47#32#49+
-  #52#10#32#32#84#82#73#71#71#69#82#95#79#78#44#32#47#47#32#49#53#10#32#32#84+
-  #82#73#71#71#69#82#95#79#70#70#44#32#47#47#32#49#54#10#32#32#84#82#73#71#71+
-  #69#82#95#79#78#79#70#70#44#32#47#47#32#49#55#10#32#32#84#82#73#71#71#69#82+
-  #95#83#79#85#78#68#44#32#47#47#32#49#56#10#32#32#84#82#73#71#71#69#82#95#83+
-  #80#65#87#78#77#79#78#83#84#69#82#44#32#47#47#32#49#57#10#32#32#84#82#73#71+
-  #71#69#82#95#83#80#65#87#78#73#84#69#77#44#32#47#47#32#50#48#10#32#32#84#82+
-  #73#71#71#69#82#95#77#85#83#73#67#44#32#47#47#32#50#49#10#32#32#84#82#73#71+
-  #71#69#82#95#80#85#83#72#44#32#47#47#32#50#50#10#32#32#84#82#73#71#71#69#82+
-  #95#83#67#79#82#69#44#32#47#47#32#50#51#10#32#32#84#82#73#71#71#69#82#95#77+
-  #69#83#83#65#71#69#44#32#47#47#32#50#52#10#32#32#84#82#73#71#71#69#82#95#68+
-  #65#77#65#71#69#44#32#47#47#32#50#53#10#32#32#84#82#73#71#71#69#82#95#72#69+
-  #65#76#84#72#44#32#47#47#32#50#54#10#32#32#84#82#73#71#71#69#82#95#83#72#79+
-  #84#44#32#47#47#32#50#55#10#32#32#84#82#73#71#71#69#82#95#69#70#70#69#67#84+
-  #44#32#47#47#32#50#56#10#32#32#84#82#73#71#71#69#82#95#83#67#82#73#80#84#44+
-  #32#47#47#32#50#57#10#32#32#47#47#10#32#32#84#82#73#71#71#69#82#95#77#65#88+
-  #32#61#32#77#65#88#44#10#125#10#10#47#47#32#34#97#115#32#88#88#88#34#32#109+
-  #101#97#110#115#32#34#103#101#110#101#114#97#116#101#32#116#104#105#115#32+
-  #105#100#101#110#116#105#102#105#101#114#32#102#111#114#32#112#97#115#99#97+
-  #108#32#115#111#117#114#99#101#115#10#98#105#116#115#101#116#32#80#97#110+
-  #101#108#84#121#112#101#32#123#10#32#32#80#65#78#69#76#95#78#79#78#69#32#61+
-  #32#48#44#32#47#47#32#48#10#32#32#80#65#78#69#76#95#87#65#76#76#44#32#47#47+
-  #32#49#10#32#32#80#65#78#69#76#95#66#65#67#75#44#32#47#47#32#50#10#32#32#80+
-  #65#78#69#76#95#70#79#82#69#44#32#47#47#32#52#10#32#32#80#65#78#69#76#95#87+
-  #65#84#69#82#44#32#47#47#32#56#10#32#32#80#65#78#69#76#95#65#67#73#68#49#44+
-  #32#47#47#32#49#54#10#32#32#80#65#78#69#76#95#65#67#73#68#50#44#32#47#47#32+
-  #51#50#10#32#32#80#65#78#69#76#95#83#84#69#80#44#32#47#47#32#54#52#10#32#32+
-  #80#65#78#69#76#95#76#73#70#84#85#80#44#32#47#47#32#49#50#56#10#32#32#80#65+
-  #78#69#76#95#76#73#70#84#68#79#87#78#44#32#47#47#32#50#53#54#10#32#32#80#65+
-  #78#69#76#95#79#80#69#78#68#79#79#82#44#32#47#47#32#53#49#50#10#32#32#80#65+
-  #78#69#76#95#67#76#79#83#69#68#79#79#82#44#32#47#47#32#49#48#50#52#10#32#32+
-  #80#65#78#69#76#95#66#76#79#67#75#77#79#78#44#32#47#47#32#50#48#52#56#10#32+
-  #32#80#65#78#69#76#95#76#73#70#84#76#69#70#84#44#32#47#47#32#52#48#57#54#10+
-  #32#32#80#65#78#69#76#95#76#73#70#84#82#73#71#72#84#44#32#47#47#32#56#49#57+
-  #50#10#125#10#10#98#105#116#115#101#116#32#80#97#110#101#108#70#108#97#103+
-  #32#123#10#32#32#80#65#78#69#76#95#70#76#65#71#95#78#79#78#69#32#61#32#48#44+
-  #32#47#47#32#48#10#32#32#80#65#78#69#76#95#70#76#65#71#95#66#76#69#78#68#73+
-  #78#71#44#32#47#47#32#49#10#32#32#80#65#78#69#76#95#70#76#65#71#95#72#73#68+
-  #69#44#32#47#47#32#50#10#32#32#80#65#78#69#76#95#70#76#65#71#95#87#65#84#69+
-  #82#84#69#88#84#85#82#69#83#44#32#47#47#32#52#10#125#10#10#101#110#117#109+
-  #32#69#102#102#101#99#116#65#99#116#105#111#110#32#123#10#32#32#69#70#70#69+
-  #67#84#95#78#79#78#69#44#32#47#47#32#48#10#32#32#69#70#70#69#67#84#95#84#69+
-  #76#69#80#79#82#84#44#32#47#47#32#49#10#32#32#69#70#70#69#67#84#95#82#69#83+
-  #80#65#87#78#44#32#47#47#32#50#10#32#32#69#70#70#69#67#84#95#70#73#82#69#44+
-  #32#47#47#32#51#10#125#10#10#47#47#87#65#82#78#73#78#71#33#32#109#97#120#32+
-  #97#108#108#111#119#101#100#32#105#116#101#109#115#32#116#121#112#101#115#32+
-  #105#115#32#49#50#55#10#101#110#117#109#32#73#116#101#109#32#123#10#32#32#73+
-  #84#69#77#95#78#79#78#69#44#32#47#47#32#48#10#32#32#73#84#69#77#95#77#69#68+
-  #75#73#84#95#83#77#65#76#76#44#32#47#47#32#49#10#32#32#73#84#69#77#95#77#69+
-  #68#75#73#84#95#76#65#82#71#69#44#32#47#47#32#50#10#32#32#73#84#69#77#95#77+
-  #69#68#75#73#84#95#66#76#65#67#75#44#32#47#47#32#51#10#32#32#73#84#69#77#95+
-  #65#82#77#79#82#95#71#82#69#69#78#44#32#47#47#32#52#10#32#32#73#84#69#77#95+
-  #65#82#77#79#82#95#66#76#85#69#44#32#47#47#32#53#10#32#32#73#84#69#77#95#83+
-  #80#72#69#82#69#95#66#76#85#69#44#32#47#47#32#54#10#32#32#73#84#69#77#95#83+
-  #80#72#69#82#69#95#87#72#73#84#69#44#32#47#47#32#55#10#32#32#73#84#69#77#95+
-  #83#85#73#84#44#32#47#47#32#56#10#32#32#73#84#69#77#95#79#88#89#71#69#78#44+
-  #32#47#47#32#57#10#32#32#73#84#69#77#95#73#78#86#85#76#44#32#47#47#32#49#48+
-  #10#32#32#73#84#69#77#95#87#69#65#80#79#78#95#83#65#87#44#32#47#47#32#49#49+
-  #10#32#32#73#84#69#77#95#87#69#65#80#79#78#95#83#72#79#84#71#85#78#49#44#32+
-  #47#47#32#49#50#10#32#32#73#84#69#77#95#87#69#65#80#79#78#95#83#72#79#84#71+
-  #85#78#50#44#32#47#47#32#49#51#10#32#32#73#84#69#77#95#87#69#65#80#79#78#95+
-  #67#72#65#73#78#71#85#78#44#32#47#47#32#49#52#10#32#32#73#84#69#77#95#87#69+
-  #65#80#79#78#95#82#79#67#75#69#84#76#65#85#78#67#72#69#82#44#32#47#47#32#49+
-  #53#10#32#32#73#84#69#77#95#87#69#65#80#79#78#95#80#76#65#83#77#65#44#32#47+
-  #47#32#49#54#10#32#32#73#84#69#77#95#87#69#65#80#79#78#95#66#70#71#44#32#47+
-  #47#32#49#55#10#32#32#73#84#69#77#95#87#69#65#80#79#78#95#83#85#80#69#82#80+
-  #85#76#69#77#69#84#44#32#47#47#32#49#56#10#32#32#73#84#69#77#95#65#77#77#79+
-  #95#66#85#76#76#69#84#83#44#32#47#47#32#49#57#10#32#32#73#84#69#77#95#65#77+
-  #77#79#95#66#85#76#76#69#84#83#95#66#79#88#44#32#47#47#32#50#48#10#32#32#73+
-  #84#69#77#95#65#77#77#79#95#83#72#69#76#76#83#44#32#47#47#32#50#49#10#32#32+
-  #73#84#69#77#95#65#77#77#79#95#83#72#69#76#76#83#95#66#79#88#44#32#47#47#32+
-  #50#50#10#32#32#73#84#69#77#95#65#77#77#79#95#82#79#67#75#69#84#44#32#47#47+
-  #32#50#51#10#32#32#73#84#69#77#95#65#77#77#79#95#82#79#67#75#69#84#95#66#79+
-  #88#44#32#47#47#32#50#52#10#32#32#73#84#69#77#95#65#77#77#79#95#67#69#76#76+
-  #44#32#47#47#32#50#53#10#32#32#73#84#69#77#95#65#77#77#79#95#67#69#76#76#95+
-  #66#73#71#44#32#47#47#32#50#54#10#32#32#73#84#69#77#95#65#77#77#79#95#66#65+
-  #67#75#80#65#67#75#44#32#47#47#32#50#55#10#32#32#73#84#69#77#95#75#69#89#95+
-  #82#69#68#44#32#47#47#32#50#56#10#32#32#73#84#69#77#95#75#69#89#95#71#82#69+
-  #69#78#44#32#47#47#32#50#57#10#32#32#73#84#69#77#95#75#69#89#95#66#76#85#69+
-  #44#32#47#47#32#51#48#10#32#32#73#84#69#77#95#87#69#65#80#79#78#95#75#65#83+
-  #84#69#84#44#32#47#47#32#51#49#10#32#32#73#84#69#77#95#87#69#65#80#79#78#95+
-  #80#73#83#84#79#76#44#32#47#47#32#51#50#10#32#32#73#84#69#77#95#66#79#84#84+
-  #76#69#44#32#47#47#32#51#51#10#32#32#73#84#69#77#95#72#69#76#77#69#84#44#32+
-  #47#47#32#51#52#10#32#32#73#84#69#77#95#74#69#84#80#65#67#75#44#32#47#47#32+
-  #51#53#10#32#32#73#84#69#77#95#73#78#86#73#83#44#32#47#47#32#51#54#10#32#32+
-  #73#84#69#77#95#87#69#65#80#79#78#95#70#76#65#77#69#84#72#82#79#87#69#82#44+
-  #32#47#47#32#51#55#10#32#32#73#84#69#77#95#65#77#77#79#95#70#85#69#76#67#65+
-  #78#44#32#47#47#32#51#56#10#32#32#47#47#10#32#32#73#84#69#77#95#77#65#88#32+
-  #61#32#77#65#88#44#32#47#47#32#115#116#111#114#101#32#116#104#101#32#108#97+
-  #115#116#32#105#116#101#109#39#115#32#105#100#32#105#110#32#104#101#114#101+
-  #32#117#115#101#32#116#104#105#115#32#105#110#32#102#111#114#32#108#111#111+
-  #112#115#10#125#10#10#98#105#116#115#101#116#32#73#116#101#109#79#112#116+
-  #105#111#110#32#123#10#32#32#73#84#69#77#95#79#80#84#73#79#78#95#78#79#78#69+
-  #32#61#32#48#44#32#47#47#32#48#10#32#32#73#84#69#77#95#79#80#84#73#79#78#95+
-  #79#78#76#89#68#77#44#32#47#47#32#49#10#32#32#73#84#69#77#95#79#80#84#73#79+
-  #78#95#70#65#76#76#44#32#47#47#32#50#10#125#10#10#101#110#117#109#32#65#114+
-  #101#97#84#121#112#101#32#123#10#32#32#65#82#69#65#95#78#79#78#69#44#32#47+
-  #47#32#48#10#32#32#65#82#69#65#95#80#76#65#89#69#82#80#79#73#78#84#49#44#32+
-  #47#47#32#49#10#32#32#65#82#69#65#95#80#76#65#89#69#82#80#79#73#78#84#50#44+
-  #32#47#47#32#50#10#32#32#65#82#69#65#95#68#77#80#79#73#78#84#44#32#47#47#32+
-  #51#10#32#32#65#82#69#65#95#82#69#68#70#76#65#71#44#32#47#47#32#52#10#32#32+
-  #65#82#69#65#95#66#76#85#69#70#76#65#71#44#32#47#47#32#53#10#32#32#65#82#69+
-  #65#95#68#79#77#70#76#65#71#44#32#47#47#32#54#10#32#32#65#82#69#65#95#82#69+
-  #68#84#69#65#77#80#79#73#78#84#44#32#47#47#32#55#10#32#32#65#82#69#65#95#66+
-  #76#85#69#84#69#65#77#80#79#73#78#84#44#32#47#47#32#56#10#125#10#10#101#110+
-  #117#109#32#77#111#110#115#116#101#114#32#123#10#32#32#77#79#78#83#84#69#82+
-  #95#78#79#78#69#44#32#47#47#32#48#10#32#32#77#79#78#83#84#69#82#95#68#69#77+
-  #79#78#44#32#47#47#32#49#10#32#32#77#79#78#83#84#69#82#95#73#77#80#44#32#47+
-  #47#32#50#10#32#32#77#79#78#83#84#69#82#95#90#79#77#66#89#44#32#47#47#32#51+
-  #10#32#32#77#79#78#83#84#69#82#95#83#69#82#71#44#32#47#47#32#52#10#32#32#77+
-  #79#78#83#84#69#82#95#67#89#66#69#82#44#32#47#47#32#53#10#32#32#77#79#78#83+
-  #84#69#82#95#67#71#85#78#44#32#47#47#32#54#10#32#32#77#79#78#83#84#69#82#95+
-  #66#65#82#79#78#44#32#47#47#32#55#10#32#32#77#79#78#83#84#69#82#95#75#78#73+
-  #71#72#84#44#32#47#47#32#56#10#32#32#77#79#78#83#84#69#82#95#67#65#67#79#44+
-  #32#47#47#32#57#10#32#32#77#79#78#83#84#69#82#95#83#79#85#76#44#32#47#47#32+
-  #49#48#10#32#32#77#79#78#83#84#69#82#95#80#65#73#78#44#32#47#47#32#49#49#10+
-  #32#32#77#79#78#83#84#69#82#95#83#80#73#68#69#82#44#32#47#47#32#49#50#10#32+
-  #32#77#79#78#83#84#69#82#95#66#83#80#44#32#47#47#32#49#51#10#32#32#77#79#78+
-  #83#84#69#82#95#77#65#78#67#85#66#44#32#47#47#32#49#52#10#32#32#77#79#78#83+
-  #84#69#82#95#83#75#69#76#44#32#47#47#32#49#53#10#32#32#77#79#78#83#84#69#82+
-  #95#86#73#76#69#44#32#47#47#32#49#54#10#32#32#77#79#78#83#84#69#82#95#70#73+
-  #83#72#44#32#47#47#32#49#55#10#32#32#77#79#78#83#84#69#82#95#66#65#82#82#69+
-  #76#44#32#47#47#32#49#56#10#32#32#77#79#78#83#84#69#82#95#82#79#66#79#44#32+
-  #47#47#32#49#57#10#32#32#77#79#78#83#84#69#82#95#77#65#78#44#32#47#47#32#50+
-  #48#10#32#32#47#47#32#97#108#105#97#115#101#115#32#40#102#105#120#109#101#58+
-  #32#105#116#32#115#104#111#117#108#100#32#98#101#32#96#77#79#78#83#84#69#82+
-  #95#90#79#77#66#73#69#32#61#32#77#79#78#83#84#69#82#95#90#79#77#66#89#96#33+
-  #41#10#32#32#77#79#78#83#84#69#82#95#90#79#77#66#73#69#32#61#32#51#44#10#125+
-  #10#10#101#110#117#109#32#77#111#110#115#116#101#114#66#101#104#97#118#105+
-  #111#117#114#32#123#10#32#32#66#72#95#78#79#82#77#65#76#44#32#47#47#32#48#10+
-  #32#32#66#72#95#75#73#76#76#69#82#44#32#47#47#32#49#10#32#32#66#72#95#77#65+
-  #78#73#65#67#44#32#47#47#32#50#10#32#32#66#72#95#73#78#83#65#78#69#44#32#47+
-  #47#32#51#10#32#32#66#72#95#67#65#78#78#73#66#65#76#44#32#47#47#32#52#10#32+
-  #32#66#72#95#71#79#79#68#44#32#47#47#32#53#10#125#10#10#101#110#117#109#32+
-  #84#114#105#103#103#101#114#83#104#111#116#32#123#10#32#32#84#82#73#71#71#69+
-  #82#95#83#72#79#84#95#80#73#83#84#79#76#44#32#47#47#32#48#10#32#32#84#82#73+
-  #71#71#69#82#95#83#72#79#84#95#66#85#76#76#69#84#44#32#47#47#32#49#10#32#32+
-  #84#82#73#71#71#69#82#95#83#72#79#84#95#83#72#79#84#71#85#78#44#32#47#47#32+
-  #50#10#32#32#84#82#73#71#71#69#82#95#83#72#79#84#95#83#83#71#44#32#47#47#32+
-  #51#10#32#32#84#82#73#71#71#69#82#95#83#72#79#84#95#73#77#80#44#32#47#47#32+
-  #52#10#32#32#84#82#73#71#71#69#82#95#83#72#79#84#95#80#76#65#83#77#65#44#32+
-  #47#47#32#53#10#32#32#84#82#73#71#71#69#82#95#83#72#79#84#95#83#80#73#68#69+
-  #82#44#32#47#47#32#54#10#32#32#84#82#73#71#71#69#82#95#83#72#79#84#95#67#65+
-  #67#79#44#32#47#47#32#55#10#32#32#84#82#73#71#71#69#82#95#83#72#79#84#95#66+
-  #65#82#79#78#44#32#47#47#32#56#10#32#32#84#82#73#71#71#69#82#95#83#72#79#84+
-  #95#77#65#78#67#85#66#44#32#47#47#32#57#10#32#32#84#82#73#71#71#69#82#95#83+
-  #72#79#84#95#82#69#86#44#32#47#47#32#49#48#10#32#32#84#82#73#71#71#69#82#95+
-  #83#72#79#84#95#82#79#67#75#69#84#44#32#47#47#32#49#49#10#32#32#84#82#73#71+
-  #71#69#82#95#83#72#79#84#95#66#70#71#44#32#47#47#32#49#50#10#32#32#84#82#73+
-  #71#71#69#82#95#83#72#79#84#95#69#88#80#76#44#32#47#47#32#49#51#10#32#32#84+
-  #82#73#71#71#69#82#95#83#72#79#84#95#66#70#71#69#88#80#76#44#32#47#47#32#49+
-  #52#10#32#32#84#82#73#71#71#69#82#95#83#72#79#84#95#70#76#65#77#69#44#32#47+
-  #47#32#49#53#10#32#32#47#47#10#32#32#84#82#73#71#71#69#82#95#83#72#79#84#95+
-  #77#65#88#32#61#32#77#65#88#44#10#125#10#10#101#110#117#109#32#84#114#105+
-  #103#103#101#114#83#104#111#116#84#97#114#103#101#116#32#123#10#32#32#84#82+
-  #73#71#71#69#82#95#83#72#79#84#95#84#65#82#71#69#84#95#78#79#78#69#44#32#47+
-  #47#32#48#10#32#32#84#82#73#71#71#69#82#95#83#72#79#84#95#84#65#82#71#69#84+
-  #95#77#79#78#44#32#47#47#32#49#10#32#32#84#82#73#71#71#69#82#95#83#72#79#84+
-  #95#84#65#82#71#69#84#95#80#76#82#44#32#47#47#32#50#10#32#32#84#82#73#71#71+
-  #69#82#95#83#72#79#84#95#84#65#82#71#69#84#95#82#69#68#44#32#47#47#32#51#10+
-  #32#32#84#82#73#71#71#69#82#95#83#72#79#84#95#84#65#82#71#69#84#95#66#76#85+
-  #69#44#32#47#47#32#52#10#32#32#84#82#73#71#71#69#82#95#83#72#79#84#95#84#65+
-  #82#71#69#84#95#77#79#78#80#76#82#44#32#47#47#32#53#10#32#32#84#82#73#71#71+
-  #69#82#95#83#72#79#84#95#84#65#82#71#69#84#95#80#76#82#77#79#78#44#32#47#47+
-  #32#54#10#125#10#10#101#110#117#109#32#84#114#105#103#103#101#114#83#104#111+
-  #116#65#105#109#32#123#10#32#32#84#82#73#71#71#69#82#95#83#72#79#84#95#65#73+
-  #77#95#68#69#70#65#85#76#84#44#32#47#47#32#48#10#32#32#84#82#73#71#71#69#82+
-  #95#83#72#79#84#95#65#73#77#95#65#76#76#77#65#80#44#32#47#47#32#49#10#32#32+
-  #84#82#73#71#71#69#82#95#83#72#79#84#95#65#73#77#95#84#82#65#67#69#44#32#47+
-  #47#32#50#10#32#32#84#82#73#71#71#69#82#95#83#72#79#84#95#65#73#77#95#84#82+
-  #65#67#69#65#76#76#44#32#47#47#32#51#10#125#10#10#101#110#117#109#32#84#114+
-  #105#103#103#101#114#69#102#102#101#99#116#32#123#10#32#32#84#82#73#71#71#69+
-  #82#95#69#70#70#69#67#84#95#80#65#82#84#73#67#76#69#44#32#47#47#32#48#10#32+
-  #32#84#82#73#71#71#69#82#95#69#70#70#69#67#84#95#65#78#73#77#65#84#73#79#78+
-  #44#32#47#47#32#49#10#125#10#10#101#110#117#109#32#84#114#105#103#103#101+
-  #114#69#102#102#101#99#116#84#121#112#101#32#123#10#32#32#84#82#73#71#71#69+
-  #82#95#69#70#70#69#67#84#95#83#76#73#81#85#73#68#44#32#47#47#32#48#10#32#32+
-  #84#82#73#71#71#69#82#95#69#70#70#69#67#84#95#76#76#73#81#85#73#68#44#32#47+
-  #47#32#49#10#32#32#84#82#73#71#71#69#82#95#69#70#70#69#67#84#95#68#76#73#81+
-  #85#73#68#44#32#47#47#32#50#10#32#32#84#82#73#71#71#69#82#95#69#70#70#69#67+
-  #84#95#66#76#79#79#68#44#32#47#47#32#51#10#32#32#84#82#73#71#71#69#82#95#69+
-  #70#70#69#67#84#95#83#80#65#82#75#44#32#47#47#32#52#10#32#32#84#82#73#71#71+
-  #69#82#95#69#70#70#69#67#84#95#66#85#66#66#76#69#44#32#47#47#32#53#10#32#32+
-  #84#82#73#71#71#69#82#95#69#70#70#69#67#84#95#77#65#88#32#61#32#77#65#88#44+
-  #10#125#10#10#101#110#117#109#32#84#114#105#103#103#101#114#69#102#102#101+
-  #99#116#80#111#115#32#123#10#32#32#84#82#73#71#71#69#82#95#69#70#70#69#67#84+
-  #95#80#79#83#95#67#69#78#84#69#82#44#32#47#47#32#48#10#32#32#84#82#73#71#71+
-  #69#82#95#69#70#70#69#67#84#95#80#79#83#95#65#82#69#65#44#32#47#47#32#49#10+
-  #125#10#10#101#110#117#109#32#84#114#105#103#103#101#114#77#117#115#105#99+
-  #65#99#116#105#111#110#32#123#10#32#32#84#82#73#71#71#69#82#95#77#85#83#73+
-  #67#95#65#67#84#73#79#78#95#83#84#79#80#44#32#47#47#32#48#10#32#32#84#82#73+
-  #71#71#69#82#95#77#85#83#73#67#95#65#67#84#73#79#78#95#80#76#65#89#44#32#47+
-  #47#32#49#59#32#117#110#112#97#117#115#101#32#111#114#32#114#101#115#116#97+
-  #114#116#10#125#10#10#101#110#117#109#32#84#114#105#103#103#101#114#83#99+
-  #111#114#101#65#99#116#105#111#110#32#123#10#32#32#84#82#73#71#71#69#82#95+
-  #83#67#79#82#69#95#65#67#84#73#79#78#95#65#68#68#44#32#47#47#32#48#10#32#32+
-  #84#82#73#71#71#69#82#95#83#67#79#82#69#95#65#67#84#73#79#78#95#83#85#66#44+
-  #32#47#47#32#49#10#32#32#84#82#73#71#71#69#82#95#83#67#79#82#69#95#65#67#84+
-  #73#79#78#95#87#73#78#44#32#47#47#32#50#10#32#32#84#82#73#71#71#69#82#95#83+
-  #67#79#82#69#95#65#67#84#73#79#78#95#76#79#79#83#69#44#32#47#47#32#51#10#125+
-  #10#10#101#110#117#109#32#84#114#105#103#103#101#114#77#101#115#115#97#103+
-  #101#68#101#115#116#32#123#10#32#32#84#82#73#71#71#69#82#95#77#69#83#83#65+
-  #71#69#95#68#69#83#84#95#77#69#44#32#47#47#32#48#10#32#32#84#82#73#71#71#69+
-  #82#95#77#69#83#83#65#71#69#95#68#69#83#84#95#77#89#95#84#69#65#77#44#32#47+
-  #47#32#49#10#32#32#84#82#73#71#71#69#82#95#77#69#83#83#65#71#69#95#68#69#83+
-  #84#95#69#78#69#77#89#95#84#69#65#77#44#32#47#47#32#50#10#32#32#84#82#73#71+
-  #71#69#82#95#77#69#83#83#65#71#69#95#68#69#83#84#95#82#69#68#95#84#69#65#77+
-  #44#32#47#47#32#51#10#32#32#84#82#73#71#71#69#82#95#77#69#83#83#65#71#69#95+
-  #68#69#83#84#95#66#76#85#69#95#84#69#65#77#44#32#47#47#32#52#10#32#32#84#82+
-  #73#71#71#69#82#95#77#69#83#83#65#71#69#95#68#69#83#84#95#69#86#69#82#89#79+
-  #78#69#44#32#47#47#32#53#10#125#10#10#101#110#117#109#32#84#114#105#103#103+
-  #101#114#77#101#115#115#97#103#101#75#105#110#100#32#123#10#32#32#84#82#73+
-  #71#71#69#82#95#77#69#83#83#65#71#69#95#75#73#78#68#95#67#72#65#84#44#32#47+
-  #47#32#48#10#32#32#84#82#73#71#71#69#82#95#77#69#83#83#65#71#69#95#75#73#78+
-  #68#95#71#65#77#69#44#32#47#47#32#49#10#125#10#10#98#105#116#115#101#116#32+
-  #65#99#116#105#118#97#116#101#84#121#112#101#32#123#10#32#32#65#67#84#73#86+
-  #65#84#69#95#78#79#78#69#32#61#32#48#44#32#47#47#32#48#10#32#32#65#67#84#73+
-  #86#65#84#69#95#80#76#65#89#69#82#67#79#76#76#73#68#69#44#32#47#47#32#49#10+
+  #47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#13#10#47#47#32+
+  #115#112#101#99#105#97#108#32#116#101#120#116#117#114#101#32#105#100#101#110+
+  #116#105#102#105#101#114#115#44#32#117#115#101#100#32#116#111#32#103#101#110+
+  #101#114#97#116#101#32#112#97#115#99#97#108#32#115#111#117#114#99#101#115#13+
+  #10#101#110#117#109#32#84#101#120#116#117#114#101#83#112#101#99#105#97#108+
+  #32#123#13#10#32#32#84#69#88#84#85#82#69#95#83#80#69#67#73#65#76#95#87#65#84+
+  #69#82#32#61#32#45#49#44#13#10#32#32#84#69#88#84#85#82#69#95#83#80#69#67#73+
+  #65#76#95#65#67#73#68#49#32#61#32#45#50#44#13#10#32#32#84#69#88#84#85#82#69+
+  #95#83#80#69#67#73#65#76#95#65#67#73#68#50#32#61#32#45#51#44#13#10#32#32#84+
+  #69#88#84#85#82#69#95#78#79#78#69#32#61#32#45#52#44#13#10#125#13#10#13#10#47+
+  #47#32#100#105#114#101#99#116#105#111#110#115#13#10#101#110#117#109#32#68+
+  #105#114#84#121#112#101#32#123#13#10#32#32#68#73#82#95#76#69#70#84#44#32#47+
+  #47#32#48#13#10#32#32#68#73#82#95#82#73#71#72#84#44#32#47#47#32#49#13#10#32+
+  #32#68#73#82#95#80#82#69#83#69#82#86#69#44#32#47#47#32#50#13#10#32#32#68#73+
+  #82#95#82#69#86#69#82#83#69#44#32#47#47#32#51#13#10#125#13#10#13#10#47#47#32+
+  #116#114#105#103#103#101#114#115#13#10#101#110#117#109#32#84#114#105#103#103+
+  #101#114#84#121#112#101#32#123#13#10#32#32#84#82#73#71#71#69#82#95#78#79#78+
+  #69#44#32#47#47#32#48#13#10#32#32#84#82#73#71#71#69#82#95#69#88#73#84#44#32+
+  #47#47#32#49#13#10#32#32#84#82#73#71#71#69#82#95#84#69#76#69#80#79#82#84#44+
+  #32#47#47#32#50#13#10#32#32#84#82#73#71#71#69#82#95#79#80#69#78#68#79#79#82+
+  #44#32#47#47#32#51#13#10#32#32#84#82#73#71#71#69#82#95#67#76#79#83#69#68#79+
+  #79#82#44#32#47#47#32#52#13#10#32#32#84#82#73#71#71#69#82#95#68#79#79#82#44+
+  #32#47#47#32#53#13#10#32#32#84#82#73#71#71#69#82#95#68#79#79#82#53#44#32#47+
+  #47#32#54#13#10#32#32#84#82#73#71#71#69#82#95#67#76#79#83#69#84#82#65#80#44+
+  #32#47#47#32#55#13#10#32#32#84#82#73#71#71#69#82#95#84#82#65#80#44#32#47#47+
+  #32#56#13#10#32#32#84#82#73#71#71#69#82#95#80#82#69#83#83#44#32#47#47#32#57+
+  #13#10#32#32#84#82#73#71#71#69#82#95#83#69#67#82#69#84#44#32#47#47#32#49#48+
+  #13#10#32#32#84#82#73#71#71#69#82#95#76#73#70#84#85#80#44#32#47#47#32#49#49+
+  #13#10#32#32#84#82#73#71#71#69#82#95#76#73#70#84#68#79#87#78#44#32#47#47#32+
+  #49#50#13#10#32#32#84#82#73#71#71#69#82#95#76#73#70#84#44#32#47#47#32#49#51+
+  #13#10#32#32#84#82#73#71#71#69#82#95#84#69#88#84#85#82#69#44#32#47#47#32#49+
+  #52#13#10#32#32#84#82#73#71#71#69#82#95#79#78#44#32#47#47#32#49#53#13#10#32+
+  #32#84#82#73#71#71#69#82#95#79#70#70#44#32#47#47#32#49#54#13#10#32#32#84#82+
+  #73#71#71#69#82#95#79#78#79#70#70#44#32#47#47#32#49#55#13#10#32#32#84#82#73+
+  #71#71#69#82#95#83#79#85#78#68#44#32#47#47#32#49#56#13#10#32#32#84#82#73#71+
+  #71#69#82#95#83#80#65#87#78#77#79#78#83#84#69#82#44#32#47#47#32#49#57#13#10+
+  #32#32#84#82#73#71#71#69#82#95#83#80#65#87#78#73#84#69#77#44#32#47#47#32#50+
+  #48#13#10#32#32#84#82#73#71#71#69#82#95#77#85#83#73#67#44#32#47#47#32#50#49+
+  #13#10#32#32#84#82#73#71#71#69#82#95#80#85#83#72#44#32#47#47#32#50#50#13#10+
+  #32#32#84#82#73#71#71#69#82#95#83#67#79#82#69#44#32#47#47#32#50#51#13#10#32+
+  #32#84#82#73#71#71#69#82#95#77#69#83#83#65#71#69#44#32#47#47#32#50#52#13#10+
+  #32#32#84#82#73#71#71#69#82#95#68#65#77#65#71#69#44#32#47#47#32#50#53#13#10+
+  #32#32#84#82#73#71#71#69#82#95#72#69#65#76#84#72#44#32#47#47#32#50#54#13#10+
+  #32#32#84#82#73#71#71#69#82#95#83#72#79#84#44#32#47#47#32#50#55#13#10#32#32+
+  #84#82#73#71#71#69#82#95#69#70#70#69#67#84#44#32#47#47#32#50#56#13#10#32#32+
+  #84#82#73#71#71#69#82#95#83#67#82#73#80#84#44#32#47#47#32#50#57#13#10#32#32+
+  #47#47#13#10#32#32#84#82#73#71#71#69#82#95#77#65#88#32#61#32#77#65#88#44#13+
+  #10#125#13#10#13#10#47#47#32#34#97#115#32#88#88#88#34#32#109#101#97#110#115+
+  #32#34#103#101#110#101#114#97#116#101#32#116#104#105#115#32#105#100#101#110+
+  #116#105#102#105#101#114#32#102#111#114#32#112#97#115#99#97#108#32#115#111+
+  #117#114#99#101#115#13#10#98#105#116#115#101#116#32#80#97#110#101#108#84#121+
+  #112#101#32#123#13#10#32#32#80#65#78#69#76#95#78#79#78#69#32#61#32#48#44#32+
+  #47#47#32#48#13#10#32#32#80#65#78#69#76#95#87#65#76#76#44#32#47#47#32#49#13+
+  #10#32#32#80#65#78#69#76#95#66#65#67#75#44#32#47#47#32#50#13#10#32#32#80#65+
+  #78#69#76#95#70#79#82#69#44#32#47#47#32#52#13#10#32#32#80#65#78#69#76#95#87+
+  #65#84#69#82#44#32#47#47#32#56#13#10#32#32#80#65#78#69#76#95#65#67#73#68#49+
+  #44#32#47#47#32#49#54#13#10#32#32#80#65#78#69#76#95#65#67#73#68#50#44#32#47+
+  #47#32#51#50#13#10#32#32#80#65#78#69#76#95#83#84#69#80#44#32#47#47#32#54#52+
+  #13#10#32#32#80#65#78#69#76#95#76#73#70#84#85#80#44#32#47#47#32#49#50#56#13+
+  #10#32#32#80#65#78#69#76#95#76#73#70#84#68#79#87#78#44#32#47#47#32#50#53#54+
+  #13#10#32#32#80#65#78#69#76#95#79#80#69#78#68#79#79#82#44#32#47#47#32#53#49+
+  #50#13#10#32#32#80#65#78#69#76#95#67#76#79#83#69#68#79#79#82#44#32#47#47#32+
+  #49#48#50#52#13#10#32#32#80#65#78#69#76#95#66#76#79#67#75#77#79#78#44#32#47+
+  #47#32#50#48#52#56#13#10#32#32#80#65#78#69#76#95#76#73#70#84#76#69#70#84#44+
+  #32#47#47#32#52#48#57#54#13#10#32#32#80#65#78#69#76#95#76#73#70#84#82#73#71+
+  #72#84#44#32#47#47#32#56#49#57#50#13#10#125#13#10#13#10#98#105#116#115#101+
+  #116#32#80#97#110#101#108#70#108#97#103#32#123#13#10#32#32#80#65#78#69#76#95+
+  #70#76#65#71#95#78#79#78#69#32#61#32#48#44#32#47#47#32#48#13#10#32#32#80#65+
+  #78#69#76#95#70#76#65#71#95#66#76#69#78#68#73#78#71#44#32#47#47#32#49#13#10+
+  #32#32#80#65#78#69#76#95#70#76#65#71#95#72#73#68#69#44#32#47#47#32#50#13#10+
+  #32#32#80#65#78#69#76#95#70#76#65#71#95#87#65#84#69#82#84#69#88#84#85#82#69+
+  #83#44#32#47#47#32#52#13#10#125#13#10#13#10#101#110#117#109#32#69#102#102+
+  #101#99#116#65#99#116#105#111#110#32#123#13#10#32#32#69#70#70#69#67#84#95#78+
+  #79#78#69#44#32#47#47#32#48#13#10#32#32#69#70#70#69#67#84#95#84#69#76#69#80+
+  #79#82#84#44#32#47#47#32#49#13#10#32#32#69#70#70#69#67#84#95#82#69#83#80#65+
+  #87#78#44#32#47#47#32#50#13#10#32#32#69#70#70#69#67#84#95#70#73#82#69#44#32+
+  #47#47#32#51#13#10#125#13#10#13#10#47#47#87#65#82#78#73#78#71#33#32#109#97+
+  #120#32#97#108#108#111#119#101#100#32#105#116#101#109#115#32#116#121#112#101+
+  #115#32#105#115#32#49#50#55#13#10#101#110#117#109#32#73#116#101#109#32#123+
+  #13#10#32#32#73#84#69#77#95#78#79#78#69#44#32#47#47#32#48#13#10#32#32#73#84+
+  #69#77#95#77#69#68#75#73#84#95#83#77#65#76#76#44#32#47#47#32#49#13#10#32#32+
+  #73#84#69#77#95#77#69#68#75#73#84#95#76#65#82#71#69#44#32#47#47#32#50#13#10+
+  #32#32#73#84#69#77#95#77#69#68#75#73#84#95#66#76#65#67#75#44#32#47#47#32#51+
+  #13#10#32#32#73#84#69#77#95#65#82#77#79#82#95#71#82#69#69#78#44#32#47#47#32+
+  #52#13#10#32#32#73#84#69#77#95#65#82#77#79#82#95#66#76#85#69#44#32#47#47#32+
+  #53#13#10#32#32#73#84#69#77#95#83#80#72#69#82#69#95#66#76#85#69#44#32#47#47+
+  #32#54#13#10#32#32#73#84#69#77#95#83#80#72#69#82#69#95#87#72#73#84#69#44#32+
+  #47#47#32#55#13#10#32#32#73#84#69#77#95#83#85#73#84#44#32#47#47#32#56#13#10+
+  #32#32#73#84#69#77#95#79#88#89#71#69#78#44#32#47#47#32#57#13#10#32#32#73#84+
+  #69#77#95#73#78#86#85#76#44#32#47#47#32#49#48#13#10#32#32#73#84#69#77#95#87+
+  #69#65#80#79#78#95#83#65#87#44#32#47#47#32#49#49#13#10#32#32#73#84#69#77#95+
+  #87#69#65#80#79#78#95#83#72#79#84#71#85#78#49#44#32#47#47#32#49#50#13#10#32+
+  #32#73#84#69#77#95#87#69#65#80#79#78#95#83#72#79#84#71#85#78#50#44#32#47#47+
+  #32#49#51#13#10#32#32#73#84#69#77#95#87#69#65#80#79#78#95#67#72#65#73#78#71+
+  #85#78#44#32#47#47#32#49#52#13#10#32#32#73#84#69#77#95#87#69#65#80#79#78#95+
+  #82#79#67#75#69#84#76#65#85#78#67#72#69#82#44#32#47#47#32#49#53#13#10#32#32+
+  #73#84#69#77#95#87#69#65#80#79#78#95#80#76#65#83#77#65#44#32#47#47#32#49#54+
+  #13#10#32#32#73#84#69#77#95#87#69#65#80#79#78#95#66#70#71#44#32#47#47#32#49+
+  #55#13#10#32#32#73#84#69#77#95#87#69#65#80#79#78#95#83#85#80#69#82#67#72#65+
+  #73#78#71#85#78#44#32#47#47#32#49#56#13#10#32#32#73#84#69#77#95#65#77#77#79+
+  #95#66#85#76#76#69#84#83#44#32#47#47#32#49#57#13#10#32#32#73#84#69#77#95#65+
+  #77#77#79#95#66#85#76#76#69#84#83#95#66#79#88#44#32#47#47#32#50#48#13#10#32+
+  #32#73#84#69#77#95#65#77#77#79#95#83#72#69#76#76#83#44#32#47#47#32#50#49#13+
+  #10#32#32#73#84#69#77#95#65#77#77#79#95#83#72#69#76#76#83#95#66#79#88#44#32+
+  #47#47#32#50#50#13#10#32#32#73#84#69#77#95#65#77#77#79#95#82#79#67#75#69#84+
+  #44#32#47#47#32#50#51#13#10#32#32#73#84#69#77#95#65#77#77#79#95#82#79#67#75+
+  #69#84#95#66#79#88#44#32#47#47#32#50#52#13#10#32#32#73#84#69#77#95#65#77#77+
+  #79#95#67#69#76#76#44#32#47#47#32#50#53#13#10#32#32#73#84#69#77#95#65#77#77+
+  #79#95#67#69#76#76#95#66#73#71#44#32#47#47#32#50#54#13#10#32#32#73#84#69#77+
+  #95#65#77#77#79#95#66#65#67#75#80#65#67#75#44#32#47#47#32#50#55#13#10#32#32+
+  #73#84#69#77#95#75#69#89#95#82#69#68#44#32#47#47#32#50#56#13#10#32#32#73#84+
+  #69#77#95#75#69#89#95#71#82#69#69#78#44#32#47#47#32#50#57#13#10#32#32#73#84+
+  #69#77#95#75#69#89#95#66#76#85#69#44#32#47#47#32#51#48#13#10#32#32#73#84#69+
+  #77#95#87#69#65#80#79#78#95#73#82#79#78#70#73#83#84#44#32#47#47#32#51#49#13+
+  #10#32#32#73#84#69#77#95#87#69#65#80#79#78#95#80#73#83#84#79#76#44#32#47#47+
+  #32#51#50#13#10#32#32#73#84#69#77#95#66#79#84#84#76#69#44#32#47#47#32#51#51+
+  #13#10#32#32#73#84#69#77#95#72#69#76#77#69#84#44#32#47#47#32#51#52#13#10#32+
+  #32#73#84#69#77#95#74#69#84#80#65#67#75#44#32#47#47#32#51#53#13#10#32#32#73+
+  #84#69#77#95#73#78#86#73#83#44#32#47#47#32#51#54#13#10#32#32#73#84#69#77#95+
+  #87#69#65#80#79#78#95#70#76#65#77#69#84#72#82#79#87#69#82#44#32#47#47#32#51+
+  #55#13#10#32#32#73#84#69#77#95#65#77#77#79#95#70#85#69#76#67#65#78#44#32#47+
+  #47#32#51#56#13#10#32#32#47#47#32#98#97#99#107#119#97#114#100#32#99#111#109+
+  #112#97#116#105#98#105#108#105#116#121#32#97#108#105#97#115#101#115#13#10#32+
+  #32#73#84#69#77#95#87#69#65#80#79#78#95#83#85#80#69#82#80#85#76#69#77#69#84+
+  #32#61#32#49#56#44#32#32#47#47#32#73#84#69#77#95#87#69#65#80#79#78#95#83#85+
+  #80#69#82#67#72#65#73#78#71#85#78#13#10#32#32#47#47#13#10#32#32#73#84#69#77+
+  #95#77#65#88#32#61#32#77#65#88#44#32#47#47#32#115#116#111#114#101#32#116#104+
+  #101#32#108#97#115#116#32#105#116#101#109#39#115#32#105#100#32#105#110#32+
+  #104#101#114#101#32#117#115#101#32#116#104#105#115#32#105#110#32#102#111#114+
+  #32#108#111#111#112#115#13#10#125#13#10#13#10#98#105#116#115#101#116#32#73+
+  #116#101#109#79#112#116#105#111#110#32#123#13#10#32#32#73#84#69#77#95#79#80+
+  #84#73#79#78#95#78#79#78#69#32#61#32#48#44#32#47#47#32#48#13#10#32#32#73#84+
+  #69#77#95#79#80#84#73#79#78#95#79#78#76#89#68#77#44#32#47#47#32#49#13#10#32+
+  #32#73#84#69#77#95#79#80#84#73#79#78#95#70#65#76#76#44#32#47#47#32#50#13#10+
+  #125#13#10#13#10#101#110#117#109#32#65#114#101#97#84#121#112#101#32#123#13+
+  #10#32#32#65#82#69#65#95#78#79#78#69#44#32#47#47#32#48#13#10#32#32#65#82#69+
+  #65#95#80#76#65#89#69#82#80#79#73#78#84#49#44#32#47#47#32#49#13#10#32#32#65+
+  #82#69#65#95#80#76#65#89#69#82#80#79#73#78#84#50#44#32#47#47#32#50#13#10#32+
+  #32#65#82#69#65#95#68#77#80#79#73#78#84#44#32#47#47#32#51#13#10#32#32#65#82+
+  #69#65#95#82#69#68#70#76#65#71#44#32#47#47#32#52#13#10#32#32#65#82#69#65#95+
+  #66#76#85#69#70#76#65#71#44#32#47#47#32#53#13#10#32#32#65#82#69#65#95#68#79+
+  #77#70#76#65#71#44#32#47#47#32#54#13#10#32#32#65#82#69#65#95#82#69#68#84#69+
+  #65#77#80#79#73#78#84#44#32#47#47#32#55#13#10#32#32#65#82#69#65#95#66#76#85+
+  #69#84#69#65#77#80#79#73#78#84#44#32#47#47#32#56#13#10#125#13#10#13#10#101+
+  #110#117#109#32#77#111#110#115#116#101#114#32#123#13#10#32#32#77#79#78#83#84+
+  #69#82#95#78#79#78#69#44#32#47#47#32#48#13#10#32#32#77#79#78#83#84#69#82#95+
+  #68#69#77#79#78#44#32#47#47#32#49#13#10#32#32#77#79#78#83#84#69#82#95#73#77+
+  #80#44#32#47#47#32#50#13#10#32#32#77#79#78#83#84#69#82#95#90#79#77#66#89#44+
+  #32#47#47#32#51#13#10#32#32#77#79#78#83#84#69#82#95#83#69#82#71#44#32#47#47+
+  #32#52#13#10#32#32#77#79#78#83#84#69#82#95#67#89#66#69#82#44#32#47#47#32#53+
+  #13#10#32#32#77#79#78#83#84#69#82#95#67#71#85#78#44#32#47#47#32#54#13#10#32+
+  #32#77#79#78#83#84#69#82#95#66#65#82#79#78#44#32#47#47#32#55#13#10#32#32#77+
+  #79#78#83#84#69#82#95#75#78#73#71#72#84#44#32#47#47#32#56#13#10#32#32#77#79+
+  #78#83#84#69#82#95#67#65#67#79#44#32#47#47#32#57#13#10#32#32#77#79#78#83#84+
+  #69#82#95#83#79#85#76#44#32#47#47#32#49#48#13#10#32#32#77#79#78#83#84#69#82+
+  #95#80#65#73#78#44#32#47#47#32#49#49#13#10#32#32#77#79#78#83#84#69#82#95#83+
+  #80#73#68#69#82#44#32#47#47#32#49#50#13#10#32#32#77#79#78#83#84#69#82#95#66+
+  #83#80#44#32#47#47#32#49#51#13#10#32#32#77#79#78#83#84#69#82#95#77#65#78#67+
+  #85#66#44#32#47#47#32#49#52#13#10#32#32#77#79#78#83#84#69#82#95#83#75#69#76+
+  #44#32#47#47#32#49#53#13#10#32#32#77#79#78#83#84#69#82#95#86#73#76#69#44#32+
+  #47#47#32#49#54#13#10#32#32#77#79#78#83#84#69#82#95#70#73#83#72#44#32#47#47+
+  #32#49#55#13#10#32#32#77#79#78#83#84#69#82#95#66#65#82#82#69#76#44#32#47#47+
+  #32#49#56#13#10#32#32#77#79#78#83#84#69#82#95#82#79#66#79#44#32#47#47#32#49+
+  #57#13#10#32#32#77#79#78#83#84#69#82#95#77#65#78#44#32#47#47#32#50#48#13#10+
+  #32#32#47#47#32#97#108#105#97#115#101#115#32#40#102#105#120#109#101#58#32+
+  #105#116#32#115#104#111#117#108#100#32#98#101#32#96#77#79#78#83#84#69#82#95+
+  #90#79#77#66#73#69#32#61#32#77#79#78#83#84#69#82#95#90#79#77#66#89#96#33#41+
+  #13#10#32#32#77#79#78#83#84#69#82#95#90#79#77#66#73#69#32#61#32#51#44#13#10+
+  #125#13#10#13#10#101#110#117#109#32#77#111#110#115#116#101#114#66#101#104#97+
+  #118#105#111#117#114#32#123#13#10#32#32#66#72#95#78#79#82#77#65#76#44#32#47+
+  #47#32#48#13#10#32#32#66#72#95#75#73#76#76#69#82#44#32#47#47#32#49#13#10#32+
+  #32#66#72#95#77#65#78#73#65#67#44#32#47#47#32#50#13#10#32#32#66#72#95#73#78+
+  #83#65#78#69#44#32#47#47#32#51#13#10#32#32#66#72#95#67#65#78#78#73#66#65#76+
+  #44#32#47#47#32#52#13#10#32#32#66#72#95#71#79#79#68#44#32#47#47#32#53#13#10+
+  #125#13#10#13#10#101#110#117#109#32#84#114#105#103#103#101#114#83#104#111+
+  #116#32#123#13#10#32#32#84#82#73#71#71#69#82#95#83#72#79#84#95#80#73#83#84+
+  #79#76#44#32#47#47#32#48#13#10#32#32#84#82#73#71#71#69#82#95#83#72#79#84#95+
+  #66#85#76#76#69#84#44#32#47#47#32#49#13#10#32#32#84#82#73#71#71#69#82#95#83+
+  #72#79#84#95#83#72#79#84#71#85#78#44#32#47#47#32#50#13#10#32#32#84#82#73#71+
+  #71#69#82#95#83#72#79#84#95#83#83#71#44#32#47#47#32#51#13#10#32#32#84#82#73+
+  #71#71#69#82#95#83#72#79#84#95#73#77#80#44#32#47#47#32#52#13#10#32#32#84#82+
+  #73#71#71#69#82#95#83#72#79#84#95#80#76#65#83#77#65#44#32#47#47#32#53#13#10+
+  #32#32#84#82#73#71#71#69#82#95#83#72#79#84#95#83#80#73#68#69#82#44#32#47#47+
+  #32#54#13#10#32#32#84#82#73#71#71#69#82#95#83#72#79#84#95#67#65#67#79#44#32+
+  #47#47#32#55#13#10#32#32#84#82#73#71#71#69#82#95#83#72#79#84#95#66#65#82#79+
+  #78#44#32#47#47#32#56#13#10#32#32#84#82#73#71#71#69#82#95#83#72#79#84#95#77+
+  #65#78#67#85#66#44#32#47#47#32#57#13#10#32#32#84#82#73#71#71#69#82#95#83#72+
+  #79#84#95#82#69#86#44#32#47#47#32#49#48#13#10#32#32#84#82#73#71#71#69#82#95+
+  #83#72#79#84#95#82#79#67#75#69#84#44#32#47#47#32#49#49#13#10#32#32#84#82#73+
+  #71#71#69#82#95#83#72#79#84#95#66#70#71#44#32#47#47#32#49#50#13#10#32#32#84+
+  #82#73#71#71#69#82#95#83#72#79#84#95#69#88#80#76#44#32#47#47#32#49#51#13#10+
+  #32#32#84#82#73#71#71#69#82#95#83#72#79#84#95#66#70#71#69#88#80#76#44#32#47+
+  #47#32#49#52#13#10#32#32#84#82#73#71#71#69#82#95#83#72#79#84#95#70#76#65#77+
+  #69#44#32#47#47#32#49#53#13#10#32#32#47#47#13#10#32#32#84#82#73#71#71#69#82+
+  #95#83#72#79#84#95#77#65#88#32#61#32#77#65#88#44#13#10#125#13#10#13#10#101+
+  #110#117#109#32#84#114#105#103#103#101#114#83#104#111#116#84#97#114#103#101+
+  #116#32#123#13#10#32#32#84#82#73#71#71#69#82#95#83#72#79#84#95#84#65#82#71+
+  #69#84#95#78#79#78#69#44#32#47#47#32#48#13#10#32#32#84#82#73#71#71#69#82#95+
+  #83#72#79#84#95#84#65#82#71#69#84#95#77#79#78#44#32#47#47#32#49#13#10#32#32+
+  #84#82#73#71#71#69#82#95#83#72#79#84#95#84#65#82#71#69#84#95#80#76#82#44#32+
+  #47#47#32#50#13#10#32#32#84#82#73#71#71#69#82#95#83#72#79#84#95#84#65#82#71+
+  #69#84#95#82#69#68#44#32#47#47#32#51#13#10#32#32#84#82#73#71#71#69#82#95#83+
+  #72#79#84#95#84#65#82#71#69#84#95#66#76#85#69#44#32#47#47#32#52#13#10#32#32+
+  #84#82#73#71#71#69#82#95#83#72#79#84#95#84#65#82#71#69#84#95#77#79#78#80#76+
+  #82#44#32#47#47#32#53#13#10#32#32#84#82#73#71#71#69#82#95#83#72#79#84#95#84+
+  #65#82#71#69#84#95#80#76#82#77#79#78#44#32#47#47#32#54#13#10#125#13#10#13#10+
+  #101#110#117#109#32#84#114#105#103#103#101#114#83#104#111#116#65#105#109#32+
+  #123#13#10#32#32#84#82#73#71#71#69#82#95#83#72#79#84#95#65#73#77#95#68#69#70+
+  #65#85#76#84#44#32#47#47#32#48#13#10#32#32#84#82#73#71#71#69#82#95#83#72#79+
+  #84#95#65#73#77#95#65#76#76#77#65#80#44#32#47#47#32#49#13#10#32#32#84#82#73+
+  #71#71#69#82#95#83#72#79#84#95#65#73#77#95#84#82#65#67#69#44#32#47#47#32#50+
+  #13#10#32#32#84#82#73#71#71#69#82#95#83#72#79#84#95#65#73#77#95#84#82#65#67+
+  #69#65#76#76#44#32#47#47#32#51#13#10#125#13#10#13#10#101#110#117#109#32#84+
+  #114#105#103#103#101#114#69#102#102#101#99#116#32#123#13#10#32#32#84#82#73+
+  #71#71#69#82#95#69#70#70#69#67#84#95#80#65#82#84#73#67#76#69#44#32#47#47#32+
+  #48#13#10#32#32#84#82#73#71#71#69#82#95#69#70#70#69#67#84#95#65#78#73#77#65+
+  #84#73#79#78#44#32#47#47#32#49#13#10#125#13#10#13#10#101#110#117#109#32#84+
+  #114#105#103#103#101#114#69#102#102#101#99#116#84#121#112#101#32#123#13#10+
+  #32#32#84#82#73#71#71#69#82#95#69#70#70#69#67#84#95#83#76#73#81#85#73#68#44+
+  #32#47#47#32#48#13#10#32#32#84#82#73#71#71#69#82#95#69#70#70#69#67#84#95#76+
+  #76#73#81#85#73#68#44#32#47#47#32#49#13#10#32#32#84#82#73#71#71#69#82#95#69+
+  #70#70#69#67#84#95#68#76#73#81#85#73#68#44#32#47#47#32#50#13#10#32#32#84#82+
+  #73#71#71#69#82#95#69#70#70#69#67#84#95#66#76#79#79#68#44#32#47#47#32#51#13+
+  #10#32#32#84#82#73#71#71#69#82#95#69#70#70#69#67#84#95#83#80#65#82#75#44#32+
+  #47#47#32#52#13#10#32#32#84#82#73#71#71#69#82#95#69#70#70#69#67#84#95#66#85+
+  #66#66#76#69#44#32#47#47#32#53#13#10#32#32#84#82#73#71#71#69#82#95#69#70#70+
+  #69#67#84#95#77#65#88#32#61#32#77#65#88#44#13#10#125#13#10#13#10#101#110#117+
+  #109#32#84#114#105#103#103#101#114#69#102#102#101#99#116#80#111#115#32#123+
+  #13#10#32#32#84#82#73#71#71#69#82#95#69#70#70#69#67#84#95#80#79#83#95#67#69+
+  #78#84#69#82#44#32#47#47#32#48#13#10#32#32#84#82#73#71#71#69#82#95#69#70#70+
+  #69#67#84#95#80#79#83#95#65#82#69#65#44#32#47#47#32#49#13#10#125#13#10#13#10+
+  #101#110#117#109#32#84#114#105#103#103#101#114#77#117#115#105#99#65#99#116+
+  #105#111#110#32#123#13#10#32#32#84#82#73#71#71#69#82#95#77#85#83#73#67#95#65+
+  #67#84#73#79#78#95#83#84#79#80#44#32#47#47#32#48#13#10#32#32#84#82#73#71#71+
+  #69#82#95#77#85#83#73#67#95#65#67#84#73#79#78#95#80#76#65#89#44#32#47#47#32+
+  #49#59#32#117#110#112#97#117#115#101#32#111#114#32#114#101#115#116#97#114+
+  #116#13#10#125#13#10#13#10#101#110#117#109#32#84#114#105#103#103#101#114#83+
+  #99#111#114#101#65#99#116#105#111#110#32#123#13#10#32#32#84#82#73#71#71#69+
+  #82#95#83#67#79#82#69#95#65#67#84#73#79#78#95#65#68#68#44#32#47#47#32#48#13+
+  #10#32#32#84#82#73#71#71#69#82#95#83#67#79#82#69#95#65#67#84#73#79#78#95#83+
+  #85#66#44#32#47#47#32#49#13#10#32#32#84#82#73#71#71#69#82#95#83#67#79#82#69+
+  #95#65#67#84#73#79#78#95#87#73#78#44#32#47#47#32#50#13#10#32#32#84#82#73#71+
+  #71#69#82#95#83#67#79#82#69#95#65#67#84#73#79#78#95#76#79#79#83#69#44#32#47+
+  #47#32#51#13#10#125#13#10#13#10#101#110#117#109#32#84#114#105#103#103#101+
+  #114#77#101#115#115#97#103#101#68#101#115#116#32#123#13#10#32#32#84#82#73#71+
+  #71#69#82#95#77#69#83#83#65#71#69#95#68#69#83#84#95#77#69#44#32#47#47#32#48+
+  #13#10#32#32#84#82#73#71#71#69#82#95#77#69#83#83#65#71#69#95#68#69#83#84#95+
+  #77#89#95#84#69#65#77#44#32#47#47#32#49#13#10#32#32#84#82#73#71#71#69#82#95+
+  #77#69#83#83#65#71#69#95#68#69#83#84#95#69#78#69#77#89#95#84#69#65#77#44#32+
+  #47#47#32#50#13#10#32#32#84#82#73#71#71#69#82#95#77#69#83#83#65#71#69#95#68+
+  #69#83#84#95#82#69#68#95#84#69#65#77#44#32#47#47#32#51#13#10#32#32#84#82#73+
+  #71#71#69#82#95#77#69#83#83#65#71#69#95#68#69#83#84#95#66#76#85#69#95#84#69+
+  #65#77#44#32#47#47#32#52#13#10#32#32#84#82#73#71#71#69#82#95#77#69#83#83#65+
+  #71#69#95#68#69#83#84#95#69#86#69#82#89#79#78#69#44#32#47#47#32#53#13#10#125+
+  #13#10#13#10#101#110#117#109#32#84#114#105#103#103#101#114#77#101#115#115#97+
+  #103#101#75#105#110#100#32#123#13#10#32#32#84#82#73#71#71#69#82#95#77#69#83+
+  #83#65#71#69#95#75#73#78#68#95#67#72#65#84#44#32#47#47#32#48#13#10#32#32#84+
+  #82#73#71#71#69#82#95#77#69#83#83#65#71#69#95#75#73#78#68#95#71#65#77#69#44+
+  #32#47#47#32#49#13#10#125#13#10#13#10#98#105#116#115#101#116#32#65#99#116+
+  #105#118#97#116#101#84#121#112#101#32#123#13#10#32#32#65#67#84#73#86#65#84+
+  #69#95#78#79#78#69#32#61#32#48#44#32#47#47#32#48#13#10#32#32#65#67#84#73#86+
+  #65#84#69#95#80#76#65#89#69#82#67#79#76#76#73#68#69#44#32#47#47#32#49#13#10+
   #32#32#65#67#84#73#86#65#84#69#95#77#79#78#83#84#69#82#67#79#76#76#73#68#69+
-  #44#32#47#47#32#50#10#32#32#65#67#84#73#86#65#84#69#95#80#76#65#89#69#82#80+
-  #82#69#83#83#44#32#47#47#32#52#10#32#32#65#67#84#73#86#65#84#69#95#77#79#78+
-  #83#84#69#82#80#82#69#83#83#44#32#47#47#32#56#10#32#32#65#67#84#73#86#65#84+
-  #69#95#83#72#79#84#44#32#47#47#32#49#54#10#32#32#65#67#84#73#86#65#84#69#95+
-  #78#79#77#79#78#83#84#69#82#44#32#47#47#32#51#50#10#32#32#65#67#84#73#86#65+
-  #84#69#95#67#85#83#84#79#77#32#61#32#50#53#53#44#32#47#47#32#110#111#116#101+
-  #32#116#104#97#116#32#34#100#105#114#101#99#116#32#97#115#115#105#103#110#34+
-  #32#102#105#101#108#100#32#100#111#101#115#110#39#116#32#97#102#102#101#99+
-  #116#32#98#105#116#32#99#111#117#110#116#101#114#10#125#10#10#98#105#116#115+
-  #101#116#32#75#101#121#32#123#10#32#32#75#69#89#95#78#79#78#69#32#61#32#48+
-  #44#32#47#47#32#48#10#32#32#75#69#89#95#82#69#68#44#32#47#47#32#49#10#32#32+
-  #75#69#89#95#71#82#69#69#78#44#32#47#47#32#50#10#32#32#75#69#89#95#66#76#85+
-  #69#44#32#47#47#32#52#10#32#32#75#69#89#95#82#69#68#84#69#65#77#44#32#47#47+
-  #32#56#10#32#32#75#69#89#95#66#76#85#69#84#69#65#77#44#32#47#47#32#49#54#10+
-  #125#10#10#101#110#117#109#32#72#105#116#84#121#112#101#32#123#10#32#32#72+
-  #73#84#95#83#79#77#69#44#32#47#47#32#48#10#32#32#72#73#84#95#82#79#67#75#69+
-  #84#44#32#47#47#32#49#10#32#32#72#73#84#95#66#70#71#44#32#47#47#32#50#10#32+
-  #32#72#73#84#95#84#82#65#80#44#32#47#47#32#51#10#32#32#72#73#84#95#70#65#76+
-  #76#44#32#47#47#32#52#10#32#32#72#73#84#95#87#65#84#69#82#44#32#47#47#32#53+
-  #10#32#32#72#73#84#95#65#67#73#68#44#32#47#47#32#54#10#32#32#72#73#84#95#69+
-  #76#69#67#84#82#79#44#32#47#47#32#55#10#32#32#72#73#84#95#70#76#65#77#69#44+
-  #32#47#47#32#56#10#32#32#72#73#84#95#83#69#76#70#44#32#47#47#32#57#10#32#32+
-  #72#73#84#95#68#73#83#67#79#78#44#32#47#47#32#49#48#10#125#10#10#10#47#47#47+
-  #47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47+
+  #44#32#47#47#32#50#13#10#32#32#65#67#84#73#86#65#84#69#95#80#76#65#89#69#82+
+  #80#82#69#83#83#44#32#47#47#32#52#13#10#32#32#65#67#84#73#86#65#84#69#95#77+
+  #79#78#83#84#69#82#80#82#69#83#83#44#32#47#47#32#56#13#10#32#32#65#67#84#73+
+  #86#65#84#69#95#83#72#79#84#44#32#47#47#32#49#54#13#10#32#32#65#67#84#73#86+
+  #65#84#69#95#78#79#77#79#78#83#84#69#82#44#32#47#47#32#51#50#13#10#32#32#65+
+  #67#84#73#86#65#84#69#95#67#85#83#84#79#77#32#61#32#50#53#53#44#32#47#47#32+
+  #110#111#116#101#32#116#104#97#116#32#34#100#105#114#101#99#116#32#97#115+
+  #115#105#103#110#34#32#102#105#101#108#100#32#100#111#101#115#110#39#116#32+
+  #97#102#102#101#99#116#32#98#105#116#32#99#111#117#110#116#101#114#13#10#125+
+  #13#10#13#10#98#105#116#115#101#116#32#75#101#121#32#123#13#10#32#32#75#69+
+  #89#95#78#79#78#69#32#61#32#48#44#32#47#47#32#48#13#10#32#32#75#69#89#95#82+
+  #69#68#44#32#47#47#32#49#13#10#32#32#75#69#89#95#71#82#69#69#78#44#32#47#47+
+  #32#50#13#10#32#32#75#69#89#95#66#76#85#69#44#32#47#47#32#52#13#10#32#32#75+
+  #69#89#95#82#69#68#84#69#65#77#44#32#47#47#32#56#13#10#32#32#75#69#89#95#66+
+  #76#85#69#84#69#65#77#44#32#47#47#32#49#54#13#10#125#13#10#13#10#101#110#117+
+  #109#32#72#105#116#84#121#112#101#32#123#13#10#32#32#72#73#84#95#83#79#77#69+
+  #44#32#47#47#32#48#13#10#32#32#72#73#84#95#82#79#67#75#69#84#44#32#47#47#32+
+  #49#13#10#32#32#72#73#84#95#66#70#71#44#32#47#47#32#50#13#10#32#32#72#73#84+
+  #95#84#82#65#80#44#32#47#47#32#51#13#10#32#32#72#73#84#95#70#65#76#76#44#32+
+  #47#47#32#52#13#10#32#32#72#73#84#95#87#65#84#69#82#44#32#47#47#32#53#13#10+
+  #32#32#72#73#84#95#65#67#73#68#44#32#47#47#32#54#13#10#32#32#72#73#84#95#69+
+  #76#69#67#84#82#79#44#32#47#47#32#55#13#10#32#32#72#73#84#95#70#76#65#77#69+
+  #44#32#47#47#32#56#13#10#32#32#72#73#84#95#83#69#76#70#44#32#47#47#32#57#13+
+  #10#32#32#72#73#84#95#68#73#83#67#79#78#44#32#47#47#32#49#48#13#10#125#13#10+
+  #13#10#13#10#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47+
   #47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47+
   #47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47+
-  #47#47#10#47#47#32#118#97#114#105#111#117#115#32#116#114#105#103#103#101#114+
-  #115#10#84#114#105#103#103#101#114#68#97#116#97#32#102#111#114#32#84#82#73+
-  #71#71#69#82#95#69#88#73#84#32#123#10#32#32#34#109#97#112#34#32#116#121#112+
-  #101#32#99#104#97#114#91#49#54#93#32#111#102#102#115#101#116#32#48#32#119+
-  #114#105#116#101#100#101#102#97#117#108#116#59#10#125#10#10#84#114#105#103+
-  #103#101#114#68#97#116#97#32#102#111#114#32#84#82#73#71#71#69#82#95#84#69#76+
-  #69#80#79#82#84#32#123#10#32#32#34#116#97#114#103#101#116#34#32#116#121#112+
-  #101#32#112#111#105#110#116#32#111#102#102#115#101#116#32#48#32#119#114#105+
-  #116#101#100#101#102#97#117#108#116#59#10#32#32#34#100#50#100#34#32#116#121+
-  #112#101#32#98#111#111#108#32#111#102#102#115#101#116#32#56#32#100#101#102+
-  #97#117#108#116#32#102#97#108#115#101#59#10#32#32#34#115#105#108#101#110#116+
-  #34#32#116#121#112#101#32#98#111#111#108#32#111#102#102#115#101#116#32#57#32+
-  #100#101#102#97#117#108#116#32#102#97#108#115#101#59#10#32#32#34#100#105#114+
-  #101#99#116#105#111#110#34#32#116#121#112#101#32#117#98#121#116#101#32#111+
-  #102#102#115#101#116#32#49#48#32#101#110#117#109#32#68#105#114#84#121#112+
-  #101#32#100#101#102#97#117#108#116#32#68#73#82#95#76#69#70#84#59#10#125#10+
-  #10#84#114#105#103#103#101#114#68#97#116#97#32#102#111#114#32#40#84#82#73#71+
-  #71#69#82#95#79#80#69#78#68#79#79#82#44#32#84#82#73#71#71#69#82#95#67#76#79+
-  #83#69#68#79#79#82#44#32#84#82#73#71#71#69#82#95#68#79#79#82#44#32#84#82#73+
-  #71#71#69#82#95#68#79#79#82#53#44#32#84#82#73#71#71#69#82#95#67#76#79#83#69+
-  #84#82#65#80#44#32#84#82#73#71#71#69#82#95#84#82#65#80#44#32#84#82#73#71#71+
-  #69#82#95#76#73#70#84#85#80#44#32#84#82#73#71#71#69#82#95#76#73#70#84#68#79+
-  #87#78#44#32#84#82#73#71#71#69#82#95#76#73#70#84#41#32#123#10#32#32#34#112+
-  #97#110#101#108#105#100#34#32#116#121#112#101#32#105#110#116#32#111#102#102+
-  #115#101#116#32#48#32#112#97#110#101#108#32#119#114#105#116#101#100#101#102+
-  #97#117#108#116#59#10#32#32#34#115#105#108#101#110#116#34#32#116#121#112#101+
-  #32#98#111#111#108#32#111#102#102#115#101#116#32#52#32#100#101#102#97#117+
-  #108#116#32#102#97#108#115#101#59#10#32#32#34#100#50#100#34#32#116#121#112+
-  #101#32#98#111#111#108#32#111#102#102#115#101#116#32#53#32#100#101#102#97+
-  #117#108#116#32#102#97#108#115#101#59#10#125#10#10#84#114#105#103#103#101+
+  #47#47#47#47#47#47#47#47#47#13#10#47#47#32#118#97#114#105#111#117#115#32#116+
+  #114#105#103#103#101#114#115#13#10#84#114#105#103#103#101#114#68#97#116#97+
+  #32#102#111#114#32#84#82#73#71#71#69#82#95#69#88#73#84#32#123#13#10#32#32#34+
+  #109#97#112#34#32#116#121#112#101#32#99#104#97#114#91#49#54#93#32#111#102+
+  #102#115#101#116#32#48#32#119#114#105#116#101#100#101#102#97#117#108#116#59+
+  #13#10#125#13#10#13#10#84#114#105#103#103#101#114#68#97#116#97#32#102#111+
+  #114#32#84#82#73#71#71#69#82#95#84#69#76#69#80#79#82#84#32#123#13#10#32#32+
+  #34#116#97#114#103#101#116#34#32#116#121#112#101#32#112#111#105#110#116#32+
+  #111#102#102#115#101#116#32#48#32#119#114#105#116#101#100#101#102#97#117#108+
+  #116#59#13#10#32#32#34#100#50#100#34#32#116#121#112#101#32#98#111#111#108#32+
+  #111#102#102#115#101#116#32#56#32#100#101#102#97#117#108#116#32#102#97#108+
+  #115#101#59#13#10#32#32#34#115#105#108#101#110#116#34#32#116#121#112#101#32+
+  #98#111#111#108#32#111#102#102#115#101#116#32#57#32#100#101#102#97#117#108+
+  #116#32#102#97#108#115#101#59#13#10#32#32#34#100#105#114#101#99#116#105#111+
+  #110#34#32#116#121#112#101#32#117#98#121#116#101#32#111#102#102#115#101#116+
+  #32#49#48#32#101#110#117#109#32#68#105#114#84#121#112#101#32#100#101#102#97+
+  #117#108#116#32#68#73#82#95#76#69#70#84#59#13#10#125#13#10#13#10#84#114#105+
+  #103#103#101#114#68#97#116#97#32#102#111#114#32#40#84#82#73#71#71#69#82#95+
+  #79#80#69#78#68#79#79#82#44#32#84#82#73#71#71#69#82#95#67#76#79#83#69#68#79+
+  #79#82#44#32#84#82#73#71#71#69#82#95#68#79#79#82#44#32#84#82#73#71#71#69#82+
+  #95#68#79#79#82#53#44#32#84#82#73#71#71#69#82#95#67#76#79#83#69#84#82#65#80+
+  #44#32#84#82#73#71#71#69#82#95#84#82#65#80#44#32#84#82#73#71#71#69#82#95#76+
+  #73#70#84#85#80#44#32#84#82#73#71#71#69#82#95#76#73#70#84#68#79#87#78#44#32+
+  #84#82#73#71#71#69#82#95#76#73#70#84#41#32#123#13#10#32#32#34#112#97#110#101+
+  #108#105#100#34#32#116#121#112#101#32#105#110#116#32#111#102#102#115#101#116+
+  #32#48#32#112#97#110#101#108#32#119#114#105#116#101#100#101#102#97#117#108+
+  #116#59#13#10#32#32#34#115#105#108#101#110#116#34#32#116#121#112#101#32#98+
+  #111#111#108#32#111#102#102#115#101#116#32#52#32#100#101#102#97#117#108#116+
+  #32#102#97#108#115#101#59#13#10#32#32#34#100#50#100#34#32#116#121#112#101#32+
+  #98#111#111#108#32#111#102#102#115#101#116#32#53#32#100#101#102#97#117#108+
+  #116#32#102#97#108#115#101#59#13#10#125#13#10#13#10#84#114#105#103#103#101+
   #114#68#97#116#97#32#102#111#114#32#40#84#82#73#71#71#69#82#95#80#82#69#83+
   #83#44#32#84#82#73#71#71#69#82#95#79#78#44#32#84#82#73#71#71#69#82#95#79#70+
-  #70#44#32#84#82#73#71#71#69#82#95#79#78#79#70#70#41#32#123#10#32#32#34#112+
-  #111#115#105#116#105#111#110#34#32#116#121#112#101#32#112#111#105#110#116#32+
-  #111#102#102#115#101#116#32#48#32#97#115#32#116#120#121#32#100#101#102#97+
-  #117#108#116#32#40#48#32#48#41#32#119#114#105#116#101#100#101#102#97#117#108+
-  #116#59#10#32#32#34#115#105#122#101#34#32#116#121#112#101#32#115#105#122#101+
-  #32#111#102#102#115#101#116#32#56#32#97#115#32#116#119#104#32#100#101#102#97+
-  #117#108#116#32#40#48#32#48#41#59#10#32#32#34#119#97#105#116#34#32#116#121+
-  #112#101#32#117#115#104#111#114#116#32#111#102#102#115#101#116#32#49#50#32+
-  #100#101#102#97#117#108#116#32#48#59#10#32#32#34#99#111#117#110#116#34#32#97+
-  #108#105#97#115#32#112#114#101#115#115#67#111#117#110#116#32#116#121#112#101+
-  #32#117#115#104#111#114#116#32#111#102#102#115#101#116#32#49#52#32#100#101+
-  #102#97#117#108#116#32#48#59#10#32#32#34#109#111#110#115#116#101#114#105#100+
-  #34#32#116#121#112#101#32#105#110#116#32#111#102#102#115#101#116#32#49#54#32+
-  #109#111#110#115#116#101#114#32#97#115#32#109#111#110#115#116#101#114#105+
-  #100#32#100#101#102#97#117#108#116#32#110#117#108#108#59#10#32#32#34#101#120+
-  #116#95#114#97#110#100#111#109#34#32#116#121#112#101#32#98#111#111#108#32+
-  #111#102#102#115#101#116#32#50#48#32#100#101#102#97#117#108#116#32#102#97+
-  #108#115#101#59#10#32#32#47#47#32#116#104#105#115#32#111#110#101#32#105#115+
-  #32#102#111#114#32#109#111#118#105#110#103#32#112#108#97#116#102#111#114#109+
-  #115#10#32#32#34#112#97#110#101#108#105#100#34#32#112#97#110#101#108#32#100+
-  #101#102#97#117#108#116#32#110#117#108#108#59#10#32#32#34#115#105#108#101+
-  #110#116#34#32#116#121#112#101#32#98#111#111#108#32#100#101#102#97#117#108+
-  #116#32#116#114#117#101#59#10#32#32#34#115#111#117#110#100#34#32#116#121#112+
-  #101#32#115#116#114#105#110#103#32#100#101#102#97#117#108#116#32#34#34#59#10+
-  #125#10#10#101#110#117#109#32#84#114#105#103#103#101#114#83#99#111#114#101+
-  #84#101#97#109#32#123#10#32#32#84#82#73#71#71#69#82#95#83#67#79#82#69#95#84+
-  #69#65#77#95#77#73#78#69#95#82#69#68#44#32#47#47#32#48#10#32#32#84#82#73#71+
-  #71#69#82#95#83#67#79#82#69#95#84#69#65#77#95#77#73#78#69#95#66#76#85#69#44+
-  #32#47#47#32#49#10#32#32#84#82#73#71#71#69#82#95#83#67#79#82#69#95#84#69#65+
-  #77#95#70#79#82#67#69#95#82#69#68#44#32#47#47#32#50#10#32#32#84#82#73#71#71+
-  #69#82#95#83#67#79#82#69#95#84#69#65#77#95#70#79#82#67#69#95#66#76#85#69#44+
-  #32#47#47#32#51#10#125#10#10#84#114#105#103#103#101#114#68#97#116#97#32#102+
-  #111#114#32#84#82#73#71#71#69#82#95#83#69#67#82#69#84#32#123#10#125#10#10#84+
-  #114#105#103#103#101#114#68#97#116#97#32#102#111#114#32#84#82#73#71#71#69#82+
-  #95#84#69#88#84#85#82#69#32#123#10#32#32#34#97#99#116#105#118#97#116#101#95+
-  #111#110#99#101#34#32#116#121#112#101#32#98#111#111#108#32#111#102#102#115+
-  #101#116#32#48#32#100#101#102#97#117#108#116#32#102#97#108#115#101#32#119+
-  #114#105#116#101#100#101#102#97#117#108#116#59#10#32#32#34#97#110#105#109#97+
+  #70#44#32#84#82#73#71#71#69#82#95#79#78#79#70#70#41#32#123#13#10#32#32#34+
+  #112#111#115#105#116#105#111#110#34#32#116#121#112#101#32#112#111#105#110+
+  #116#32#111#102#102#115#101#116#32#48#32#97#115#32#116#120#121#32#100#101+
+  #102#97#117#108#116#32#40#48#32#48#41#32#119#114#105#116#101#100#101#102#97+
+  #117#108#116#59#13#10#32#32#34#115#105#122#101#34#32#116#121#112#101#32#115+
+  #105#122#101#32#111#102#102#115#101#116#32#56#32#97#115#32#116#119#104#32+
+  #100#101#102#97#117#108#116#32#40#48#32#48#41#59#13#10#32#32#34#119#97#105+
+  #116#34#32#116#121#112#101#32#117#115#104#111#114#116#32#111#102#102#115#101+
+  #116#32#49#50#32#100#101#102#97#117#108#116#32#48#59#13#10#32#32#34#99#111+
+  #117#110#116#34#32#97#108#105#97#115#32#112#114#101#115#115#67#111#117#110+
+  #116#32#116#121#112#101#32#117#115#104#111#114#116#32#111#102#102#115#101+
+  #116#32#49#52#32#100#101#102#97#117#108#116#32#48#59#13#10#32#32#34#109#111+
+  #110#115#116#101#114#105#100#34#32#116#121#112#101#32#105#110#116#32#111#102+
+  #102#115#101#116#32#49#54#32#109#111#110#115#116#101#114#32#97#115#32#109+
+  #111#110#115#116#101#114#105#100#32#100#101#102#97#117#108#116#32#110#117+
+  #108#108#59#13#10#32#32#34#101#120#116#95#114#97#110#100#111#109#34#32#116+
+  #121#112#101#32#98#111#111#108#32#111#102#102#115#101#116#32#50#48#32#100+
+  #101#102#97#117#108#116#32#102#97#108#115#101#59#13#10#32#32#47#47#32#116+
+  #104#105#115#32#111#110#101#32#105#115#32#102#111#114#32#109#111#118#105#110+
+  #103#32#112#108#97#116#102#111#114#109#115#13#10#32#32#34#112#97#110#101#108+
+  #105#100#34#32#112#97#110#101#108#32#100#101#102#97#117#108#116#32#110#117+
+  #108#108#59#13#10#32#32#34#115#105#108#101#110#116#34#32#116#121#112#101#32+
+  #98#111#111#108#32#100#101#102#97#117#108#116#32#116#114#117#101#59#13#10#32+
+  #32#34#115#111#117#110#100#34#32#116#121#112#101#32#115#116#114#105#110#103+
+  #32#100#101#102#97#117#108#116#32#34#34#59#13#10#125#13#10#13#10#101#110#117+
+  #109#32#84#114#105#103#103#101#114#83#99#111#114#101#84#101#97#109#32#123#13+
+  #10#32#32#84#82#73#71#71#69#82#95#83#67#79#82#69#95#84#69#65#77#95#77#73#78+
+  #69#95#82#69#68#44#32#47#47#32#48#13#10#32#32#84#82#73#71#71#69#82#95#83#67+
+  #79#82#69#95#84#69#65#77#95#77#73#78#69#95#66#76#85#69#44#32#47#47#32#49#13+
+  #10#32#32#84#82#73#71#71#69#82#95#83#67#79#82#69#95#84#69#65#77#95#70#79#82+
+  #67#69#95#82#69#68#44#32#47#47#32#50#13#10#32#32#84#82#73#71#71#69#82#95#83+
+  #67#79#82#69#95#84#69#65#77#95#70#79#82#67#69#95#66#76#85#69#44#32#47#47#32+
+  #51#13#10#125#13#10#13#10#84#114#105#103#103#101#114#68#97#116#97#32#102#111+
+  #114#32#84#82#73#71#71#69#82#95#83#69#67#82#69#84#32#123#13#10#125#13#10#13+
+  #10#84#114#105#103#103#101#114#68#97#116#97#32#102#111#114#32#84#82#73#71#71+
+  #69#82#95#84#69#88#84#85#82#69#32#123#13#10#32#32#34#97#99#116#105#118#97+
   #116#101#95#111#110#99#101#34#32#116#121#112#101#32#98#111#111#108#32#111+
-  #102#102#115#101#116#32#49#32#100#101#102#97#117#108#116#32#102#97#108#115+
-  #101#32#119#114#105#116#101#100#101#102#97#117#108#116#59#10#125#10#10#84+
-  #114#105#103#103#101#114#68#97#116#97#32#102#111#114#32#84#82#73#71#71#69#82+
-  #95#83#79#85#78#68#32#123#10#32#32#34#115#111#117#110#100#95#110#97#109#101+
-  #34#32#116#121#112#101#32#99#104#97#114#91#54#52#93#32#111#102#102#115#101+
-  #116#32#48#32#119#114#105#116#101#100#101#102#97#117#108#116#59#10#32#32#34+
-  #118#111#108#117#109#101#34#32#116#121#112#101#32#117#98#121#116#101#32#111+
-  #102#102#115#101#116#32#54#52#32#100#101#102#97#117#108#116#32#48#32#119#114+
-  #105#116#101#100#101#102#97#117#108#116#59#32#47#47#63#63#63#32#100#101#102+
-  #97#117#108#116#32#63#63#63#10#32#32#34#112#97#110#34#32#116#121#112#101#32+
-  #117#98#121#116#101#32#111#102#102#115#101#116#32#54#53#32#100#101#102#97+
-  #117#108#116#32#48#59#10#32#32#34#108#111#99#97#108#34#32#116#121#112#101#32+
-  #98#111#111#108#32#111#102#102#115#101#116#32#54#54#32#100#101#102#97#117+
-  #108#116#32#116#114#117#101#59#32#47#47#63#63#63#32#100#101#102#97#117#108+
-  #116#32#63#63#63#10#32#32#34#112#108#97#121#95#99#111#117#110#116#34#32#116+
-  #121#112#101#32#117#98#121#116#101#32#111#102#102#115#101#116#32#54#55#32+
-  #100#101#102#97#117#108#116#32#49#59#10#32#32#34#115#111#117#110#100#95#115+
-  #119#105#116#99#104#34#32#116#121#112#101#32#98#111#111#108#32#111#102#102+
-  #115#101#116#32#54#56#32#100#101#102#97#117#108#116#32#102#97#108#115#101#59+
-  #32#47#47#63#63#63#32#100#101#102#97#117#108#116#32#63#63#63#10#125#10#10#84+
-  #114#105#103#103#101#114#68#97#116#97#32#102#111#114#32#84#82#73#71#71#69#82+
-  #95#83#80#65#87#78#77#79#78#83#84#69#82#32#123#10#32#32#34#112#111#115#105+
-  #116#105#111#110#34#32#116#121#112#101#32#112#111#105#110#116#32#111#102#102+
-  #115#101#116#32#48#32#97#115#32#116#120#121#32#119#114#105#116#101#100#101+
-  #102#97#117#108#116#59#10#32#32#34#116#121#112#101#34#32#97#108#105#97#115+
-  #32#115#112#97#119#110#77#111#110#115#84#121#112#101#32#116#121#112#101#32+
-  #117#98#121#116#101#32#111#102#102#115#101#116#32#56#32#101#110#117#109#32+
-  #77#111#110#115#116#101#114#32#100#101#102#97#117#108#116#32#77#79#78#83#84+
-  #69#82#95#73#77#80#32#119#114#105#116#101#100#101#102#97#117#108#116#59#10+
-  #32#32#34#104#101#97#108#116#104#34#32#116#121#112#101#32#105#110#116#32#111+
-  #102#102#115#101#116#32#49#50#32#119#114#105#116#101#100#101#102#97#117#108+
-  #116#59#10#32#32#34#100#105#114#101#99#116#105#111#110#34#32#116#121#112#101+
-  #32#117#98#121#116#101#32#111#102#102#115#101#116#32#49#54#32#101#110#117+
-  #109#32#68#105#114#84#121#112#101#32#100#101#102#97#117#108#116#32#68#73#82+
-  #95#76#69#70#84#32#119#114#105#116#101#100#101#102#97#117#108#116#59#10#32+
-  #32#34#97#99#116#105#118#101#34#32#116#121#112#101#32#98#111#111#108#32#111+
-  #102#102#115#101#116#32#49#55#32#100#101#102#97#117#108#116#32#116#114#117+
-  #101#59#10#32#32#34#99#111#117#110#116#34#32#97#108#105#97#115#32#109#111+
-  #110#115#67#111#117#110#116#32#116#121#112#101#32#105#110#116#32#111#102#102+
-  #115#101#116#32#50#48#32#100#101#102#97#117#108#116#32#49#32#119#114#105#116+
-  #101#100#101#102#97#117#108#116#59#10#32#32#34#101#102#102#101#99#116#34#32+
-  #116#121#112#101#32#117#98#121#116#101#32#111#102#102#115#101#116#32#50#52+
-  #32#101#110#117#109#32#69#102#102#101#99#116#65#99#116#105#111#110#32#100+
-  #101#102#97#117#108#116#32#69#70#70#69#67#84#95#78#79#78#69#32#119#114#105+
-  #116#101#100#101#102#97#117#108#116#59#10#32#32#34#109#97#120#34#32#116#121+
+  #102#102#115#101#116#32#48#32#100#101#102#97#117#108#116#32#102#97#108#115+
+  #101#32#119#114#105#116#101#100#101#102#97#117#108#116#59#13#10#32#32#34#97+
+  #110#105#109#97#116#101#95#111#110#99#101#34#32#116#121#112#101#32#98#111+
+  #111#108#32#111#102#102#115#101#116#32#49#32#100#101#102#97#117#108#116#32+
+  #102#97#108#115#101#32#119#114#105#116#101#100#101#102#97#117#108#116#59#13+
+  #10#125#13#10#13#10#84#114#105#103#103#101#114#68#97#116#97#32#102#111#114+
+  #32#84#82#73#71#71#69#82#95#83#79#85#78#68#32#123#13#10#32#32#34#115#111#117+
+  #110#100#95#110#97#109#101#34#32#116#121#112#101#32#99#104#97#114#91#54#52+
+  #93#32#111#102#102#115#101#116#32#48#32#119#114#105#116#101#100#101#102#97+
+  #117#108#116#59#13#10#32#32#34#118#111#108#117#109#101#34#32#116#121#112#101+
+  #32#117#98#121#116#101#32#111#102#102#115#101#116#32#54#52#32#100#101#102#97+
+  #117#108#116#32#48#32#119#114#105#116#101#100#101#102#97#117#108#116#59#32+
+  #47#47#63#63#63#32#100#101#102#97#117#108#116#32#63#63#63#13#10#32#32#34#112+
+  #97#110#34#32#116#121#112#101#32#117#98#121#116#101#32#111#102#102#115#101+
+  #116#32#54#53#32#100#101#102#97#117#108#116#32#48#59#13#10#32#32#34#108#111+
+  #99#97#108#34#32#116#121#112#101#32#98#111#111#108#32#111#102#102#115#101+
+  #116#32#54#54#32#100#101#102#97#117#108#116#32#116#114#117#101#59#32#47#47+
+  #63#63#63#32#100#101#102#97#117#108#116#32#63#63#63#13#10#32#32#34#112#108+
+  #97#121#95#99#111#117#110#116#34#32#116#121#112#101#32#117#98#121#116#101#32+
+  #111#102#102#115#101#116#32#54#55#32#100#101#102#97#117#108#116#32#49#59#13+
+  #10#32#32#34#115#111#117#110#100#95#115#119#105#116#99#104#34#32#116#121#112+
+  #101#32#98#111#111#108#32#111#102#102#115#101#116#32#54#56#32#100#101#102#97+
+  #117#108#116#32#102#97#108#115#101#59#32#47#47#63#63#63#32#100#101#102#97+
+  #117#108#116#32#63#63#63#13#10#125#13#10#13#10#84#114#105#103#103#101#114#68+
+  #97#116#97#32#102#111#114#32#84#82#73#71#71#69#82#95#83#80#65#87#78#77#79#78+
+  #83#84#69#82#32#123#13#10#32#32#34#112#111#115#105#116#105#111#110#34#32#116+
+  #121#112#101#32#112#111#105#110#116#32#111#102#102#115#101#116#32#48#32#97+
+  #115#32#116#120#121#32#119#114#105#116#101#100#101#102#97#117#108#116#59#13+
+  #10#32#32#34#116#121#112#101#34#32#97#108#105#97#115#32#115#112#97#119#110+
+  #77#111#110#115#84#121#112#101#32#116#121#112#101#32#117#98#121#116#101#32+
+  #111#102#102#115#101#116#32#56#32#101#110#117#109#32#77#111#110#115#116#101+
+  #114#32#100#101#102#97#117#108#116#32#77#79#78#83#84#69#82#95#73#77#80#32+
+  #119#114#105#116#101#100#101#102#97#117#108#116#59#13#10#32#32#34#104#101#97+
+  #108#116#104#34#32#116#121#112#101#32#105#110#116#32#111#102#102#115#101#116+
+  #32#49#50#32#119#114#105#116#101#100#101#102#97#117#108#116#59#13#10#32#32+
+  #34#100#105#114#101#99#116#105#111#110#34#32#116#121#112#101#32#117#98#121+
+  #116#101#32#111#102#102#115#101#116#32#49#54#32#101#110#117#109#32#68#105+
+  #114#84#121#112#101#32#100#101#102#97#117#108#116#32#68#73#82#95#76#69#70#84+
+  #32#119#114#105#116#101#100#101#102#97#117#108#116#59#13#10#32#32#34#97#99+
+  #116#105#118#101#34#32#116#121#112#101#32#98#111#111#108#32#111#102#102#115+
+  #101#116#32#49#55#32#100#101#102#97#117#108#116#32#116#114#117#101#59#13#10+
+  #32#32#34#99#111#117#110#116#34#32#97#108#105#97#115#32#109#111#110#115#67+
+  #111#117#110#116#32#116#121#112#101#32#105#110#116#32#111#102#102#115#101+
+  #116#32#50#48#32#100#101#102#97#117#108#116#32#49#32#119#114#105#116#101#100+
+  #101#102#97#117#108#116#59#13#10#32#32#34#101#102#102#101#99#116#34#32#116+
+  #121#112#101#32#117#98#121#116#101#32#111#102#102#115#101#116#32#50#52#32+
+  #101#110#117#109#32#69#102#102#101#99#116#65#99#116#105#111#110#32#100#101+
+  #102#97#117#108#116#32#69#70#70#69#67#84#95#78#79#78#69#32#119#114#105#116+
+  #101#100#101#102#97#117#108#116#59#13#10#32#32#34#109#97#120#34#32#116#121+
   #112#101#32#117#115#104#111#114#116#32#111#102#102#115#101#116#32#50#54#32+
   #100#101#102#97#117#108#116#32#49#32#119#114#105#116#101#100#101#102#97#117+
-  #108#116#59#10#32#32#34#100#101#108#97#121#34#32#116#121#112#101#32#117#115+
-  #104#111#114#116#32#111#102#102#115#101#116#32#50#56#32#100#101#102#97#117+
-  #108#116#32#49#48#48#48#32#119#114#105#116#101#100#101#102#97#117#108#116#59+
-  #10#32#32#34#98#101#104#97#118#105#111#117#114#34#32#116#121#112#101#32#117+
-  #98#121#116#101#32#111#102#102#115#101#116#32#51#48#32#101#110#117#109#32#77+
-  #111#110#115#116#101#114#66#101#104#97#118#105#111#117#114#32#100#101#102#97+
-  #117#108#116#32#66#72#95#78#79#82#77#65#76#59#10#125#10#10#84#114#105#103+
-  #103#101#114#68#97#116#97#32#102#111#114#32#84#82#73#71#71#69#82#95#83#80#65+
-  #87#78#73#84#69#77#32#123#10#32#32#34#112#111#115#105#116#105#111#110#34#32+
-  #116#121#112#101#32#112#111#105#110#116#32#111#102#102#115#101#116#32#48#32+
-  #97#115#32#116#120#121#32#119#114#105#116#101#100#101#102#97#117#108#116#59+
-  #10#32#32#34#116#121#112#101#34#32#97#108#105#97#115#32#115#112#97#119#110+
-  #73#116#101#109#84#121#112#101#32#116#121#112#101#32#117#98#121#116#101#32+
-  #111#102#102#115#101#116#32#56#32#101#110#117#109#32#73#116#101#109#32#100+
-  #101#102#97#117#108#116#32#73#84#69#77#95#78#79#78#69#32#119#114#105#116#101+
-  #100#101#102#97#117#108#116#59#10#32#32#34#103#114#97#118#105#116#121#34#32+
-  #116#121#112#101#32#98#111#111#108#32#111#102#102#115#101#116#32#57#32#100+
-  #101#102#97#117#108#116#32#116#114#117#101#59#10#32#32#34#100#109#111#110+
-  #108#121#34#32#116#121#112#101#32#98#111#111#108#32#111#102#102#115#101#116+
-  #32#49#48#32#100#101#102#97#117#108#116#32#102#97#108#115#101#59#10#32#32#34+
-  #99#111#117#110#116#34#32#97#108#105#97#115#32#105#116#101#109#67#111#117+
-  #110#116#32#116#121#112#101#32#105#110#116#32#111#102#102#115#101#116#32#49+
-  #50#32#100#101#102#97#117#108#116#32#49#59#10#32#32#34#101#102#102#101#99+
-  #116#34#32#116#121#112#101#32#117#98#121#116#101#32#111#102#102#115#101#116+
-  #32#49#54#32#101#110#117#109#32#69#102#102#101#99#116#65#99#116#105#111#110+
-  #32#100#101#102#97#117#108#116#32#69#70#70#69#67#84#95#78#79#78#69#32#119+
-  #114#105#116#101#100#101#102#97#117#108#116#59#10#32#32#34#109#97#120#34#32+
-  #116#121#112#101#32#117#115#104#111#114#116#32#111#102#102#115#101#116#32#49+
-  #56#32#100#101#102#97#117#108#116#32#49#59#10#32#32#34#100#101#108#97#121#34+
-  #32#116#121#112#101#32#117#115#104#111#114#116#32#111#102#102#115#101#116#32+
-  #50#48#32#100#101#102#97#117#108#116#32#49#48#48#48#32#119#114#105#116#101+
-  #100#101#102#97#117#108#116#59#10#125#10#10#84#114#105#103#103#101#114#68#97+
-  #116#97#32#102#111#114#32#84#82#73#71#71#69#82#95#77#85#83#73#67#32#123#10+
-  #32#32#34#110#97#109#101#34#32#97#108#105#97#115#32#109#117#115#105#99#78#97+
-  #109#101#32#116#121#112#101#32#99#104#97#114#91#54#52#93#32#111#102#102#115+
-  #101#116#32#48#32#119#114#105#116#101#100#101#102#97#117#108#116#59#10#32#32+
-  #34#97#99#116#105#111#110#34#32#97#108#105#97#115#32#109#117#115#105#99#65+
-  #99#116#105#111#110#32#116#121#112#101#32#117#98#121#116#101#32#111#102#102+
-  #115#101#116#32#54#52#32#101#110#117#109#32#84#114#105#103#103#101#114#77+
-  #117#115#105#99#65#99#116#105#111#110#32#119#114#105#116#101#100#101#102#97+
-  #117#108#116#59#10#125#10#10#84#114#105#103#103#101#114#68#97#116#97#32#102+
-  #111#114#32#84#82#73#71#71#69#82#95#80#85#83#72#32#123#10#32#32#34#97#110+
+  #108#116#59#13#10#32#32#34#100#101#108#97#121#34#32#116#121#112#101#32#117+
+  #115#104#111#114#116#32#111#102#102#115#101#116#32#50#56#32#100#101#102#97+
+  #117#108#116#32#49#48#48#48#32#119#114#105#116#101#100#101#102#97#117#108+
+  #116#59#13#10#32#32#34#98#101#104#97#118#105#111#117#114#34#32#116#121#112+
+  #101#32#117#98#121#116#101#32#111#102#102#115#101#116#32#51#48#32#101#110+
+  #117#109#32#77#111#110#115#116#101#114#66#101#104#97#118#105#111#117#114#32+
+  #100#101#102#97#117#108#116#32#66#72#95#78#79#82#77#65#76#59#13#10#125#13#10+
+  #13#10#84#114#105#103#103#101#114#68#97#116#97#32#102#111#114#32#84#82#73#71+
+  #71#69#82#95#83#80#65#87#78#73#84#69#77#32#123#13#10#32#32#34#112#111#115+
+  #105#116#105#111#110#34#32#116#121#112#101#32#112#111#105#110#116#32#111#102+
+  #102#115#101#116#32#48#32#97#115#32#116#120#121#32#119#114#105#116#101#100+
+  #101#102#97#117#108#116#59#13#10#32#32#34#116#121#112#101#34#32#97#108#105+
+  #97#115#32#115#112#97#119#110#73#116#101#109#84#121#112#101#32#116#121#112+
+  #101#32#117#98#121#116#101#32#111#102#102#115#101#116#32#56#32#101#110#117+
+  #109#32#73#116#101#109#32#100#101#102#97#117#108#116#32#73#84#69#77#95#78#79+
+  #78#69#32#119#114#105#116#101#100#101#102#97#117#108#116#59#13#10#32#32#34+
+  #103#114#97#118#105#116#121#34#32#116#121#112#101#32#98#111#111#108#32#111+
+  #102#102#115#101#116#32#57#32#100#101#102#97#117#108#116#32#116#114#117#101+
+  #59#13#10#32#32#34#100#109#111#110#108#121#34#32#116#121#112#101#32#98#111+
+  #111#108#32#111#102#102#115#101#116#32#49#48#32#100#101#102#97#117#108#116+
+  #32#102#97#108#115#101#59#13#10#32#32#34#99#111#117#110#116#34#32#97#108#105+
+  #97#115#32#105#116#101#109#67#111#117#110#116#32#116#121#112#101#32#105#110+
+  #116#32#111#102#102#115#101#116#32#49#50#32#100#101#102#97#117#108#116#32#49+
+  #59#13#10#32#32#34#101#102#102#101#99#116#34#32#116#121#112#101#32#117#98+
+  #121#116#101#32#111#102#102#115#101#116#32#49#54#32#101#110#117#109#32#69+
+  #102#102#101#99#116#65#99#116#105#111#110#32#100#101#102#97#117#108#116#32+
+  #69#70#70#69#67#84#95#78#79#78#69#32#119#114#105#116#101#100#101#102#97#117+
+  #108#116#59#13#10#32#32#34#109#97#120#34#32#116#121#112#101#32#117#115#104+
+  #111#114#116#32#111#102#102#115#101#116#32#49#56#32#100#101#102#97#117#108+
+  #116#32#49#59#13#10#32#32#34#100#101#108#97#121#34#32#116#121#112#101#32#117+
+  #115#104#111#114#116#32#111#102#102#115#101#116#32#50#48#32#100#101#102#97+
+  #117#108#116#32#49#48#48#48#32#119#114#105#116#101#100#101#102#97#117#108+
+  #116#59#13#10#125#13#10#13#10#84#114#105#103#103#101#114#68#97#116#97#32#102+
+  #111#114#32#84#82#73#71#71#69#82#95#77#85#83#73#67#32#123#13#10#32#32#34#110+
+  #97#109#101#34#32#97#108#105#97#115#32#109#117#115#105#99#78#97#109#101#32+
+  #116#121#112#101#32#99#104#97#114#91#54#52#93#32#111#102#102#115#101#116#32+
+  #48#32#119#114#105#116#101#100#101#102#97#117#108#116#59#13#10#32#32#34#97+
+  #99#116#105#111#110#34#32#97#108#105#97#115#32#109#117#115#105#99#65#99#116+
+  #105#111#110#32#116#121#112#101#32#117#98#121#116#101#32#111#102#102#115#101+
+  #116#32#54#52#32#101#110#117#109#32#84#114#105#103#103#101#114#77#117#115+
+  #105#99#65#99#116#105#111#110#32#119#114#105#116#101#100#101#102#97#117#108+
+  #116#59#13#10#125#13#10#13#10#84#114#105#103#103#101#114#68#97#116#97#32#102+
+  #111#114#32#84#82#73#71#71#69#82#95#80#85#83#72#32#123#13#10#32#32#34#97#110+
   #103#108#101#34#32#116#121#112#101#32#117#115#104#111#114#116#32#111#102#102+
-  #115#101#116#32#48#32#119#114#105#116#101#100#101#102#97#117#108#116#59#10+
-  #32#32#34#102#111#114#99#101#34#32#116#121#112#101#32#117#98#121#116#101#32+
-  #111#102#102#115#101#116#32#50#32#119#114#105#116#101#100#101#102#97#117#108+
-  #116#59#10#32#32#34#114#101#115#101#116#95#118#101#108#111#99#105#116#121#34+
-  #32#116#121#112#101#32#98#111#111#108#32#111#102#102#115#101#116#32#51#32+
-  #100#101#102#97#117#108#116#32#102#97#108#115#101#32#119#114#105#116#101#100+
-  #101#102#97#117#108#116#59#10#125#10#10#84#114#105#103#103#101#114#68#97#116+
-  #97#32#102#111#114#32#84#82#73#71#71#69#82#95#83#67#79#82#69#32#123#10#32#32+
-  #34#97#99#116#105#111#110#34#32#97#108#105#97#115#32#115#99#111#114#101#65+
-  #99#116#105#111#110#32#116#121#112#101#32#117#98#121#116#101#32#111#102#102+
-  #115#101#116#32#48#32#101#110#117#109#32#84#114#105#103#103#101#114#83#99+
-  #111#114#101#65#99#116#105#111#110#32#100#101#102#97#117#108#116#32#84#82#73+
-  #71#71#69#82#95#83#67#79#82#69#95#65#67#84#73#79#78#95#65#68#68#32#119#114+
-  #105#116#101#100#101#102#97#117#108#116#59#10#32#32#34#99#111#117#110#116#34+
-  #32#97#108#105#97#115#32#115#99#111#114#101#67#111#117#110#116#32#116#121+
-  #112#101#32#117#98#121#116#101#32#111#102#102#115#101#116#32#49#32#100#101+
-  #102#97#117#108#116#32#49#32#119#114#105#116#101#100#101#102#97#117#108#116+
-  #59#10#32#32#34#116#101#97#109#34#32#97#108#105#97#115#32#115#99#111#114#101+
-  #84#101#97#109#32#116#121#112#101#32#117#98#121#116#101#32#111#102#102#115+
-  #101#116#32#50#32#101#110#117#109#32#84#114#105#103#103#101#114#83#99#111+
-  #114#101#84#101#97#109#32#119#114#105#116#101#100#101#102#97#117#108#116#59+
-  #10#32#32#34#99#111#110#115#111#108#101#34#32#97#108#105#97#115#32#115#99+
-  #111#114#101#67#111#110#32#116#121#112#101#32#98#111#111#108#32#111#102#102+
-  #115#101#116#32#51#32#100#101#102#97#117#108#116#32#102#97#108#115#101#32+
-  #119#114#105#116#101#100#101#102#97#117#108#116#59#10#32#32#34#109#101#115+
-  #115#97#103#101#34#32#97#108#105#97#115#32#115#99#111#114#101#77#115#103#32+
-  #116#121#112#101#32#98#111#111#108#32#111#102#102#115#101#116#32#52#32#100+
-  #101#102#97#117#108#116#32#116#114#117#101#32#119#114#105#116#101#100#101+
-  #102#97#117#108#116#59#10#125#10#10#84#114#105#103#103#101#114#68#97#116#97+
-  #32#102#111#114#32#84#82#73#71#71#69#82#95#77#69#83#83#65#71#69#32#123#10#32+
-  #32#34#107#105#110#100#34#32#116#121#112#101#32#117#98#121#116#101#32#111+
-  #102#102#115#101#116#32#48#32#101#110#117#109#32#84#114#105#103#103#101#114+
-  #77#101#115#115#97#103#101#75#105#110#100#32#100#101#102#97#117#108#116#32+
-  #84#82#73#71#71#69#82#95#77#69#83#83#65#71#69#95#75#73#78#68#95#71#65#77#69+
-  #32#119#114#105#116#101#100#101#102#97#117#108#116#59#10#32#32#34#100#101+
-  #115#116#34#32#97#108#105#97#115#32#109#115#103#68#101#115#116#32#116#121+
-  #112#101#32#117#98#121#116#101#32#101#110#117#109#32#84#114#105#103#103#101+
-  #114#77#101#115#115#97#103#101#68#101#115#116#32#111#102#102#115#101#116#32+
-  #49#59#10#32#32#34#116#101#120#116#34#32#116#121#112#101#32#99#104#97#114#91+
-  #49#48#48#93#32#111#102#102#115#101#116#32#50#32#119#114#105#116#101#100#101+
-  #102#97#117#108#116#59#10#32#32#34#116#105#109#101#34#32#97#108#105#97#115+
-  #32#109#115#103#84#105#109#101#32#116#121#112#101#32#117#115#104#111#114#116+
-  #32#111#102#102#115#101#116#32#49#48#50#32#119#114#105#116#101#100#101#102+
-  #97#117#108#116#59#10#125#10#10#84#114#105#103#103#101#114#68#97#116#97#32+
-  #102#111#114#32#84#82#73#71#71#69#82#95#68#65#77#65#71#69#32#123#10#32#32#34+
-  #97#109#111#117#110#116#34#32#116#121#112#101#32#117#115#104#111#114#116#32+
-  #111#102#102#115#101#116#32#48#32#119#114#105#116#101#100#101#102#97#117#108+
-  #116#59#10#32#32#34#105#110#116#101#114#118#97#108#34#32#116#121#112#101#32+
-  #117#115#104#111#114#116#32#111#102#102#115#101#116#32#50#32#119#114#105#116+
-  #101#100#101#102#97#117#108#116#59#10#32#32#34#107#105#110#100#34#32#116#121+
-  #112#101#32#117#98#121#116#101#32#111#102#102#115#101#116#32#52#32#101#110+
-  #117#109#32#72#105#116#84#121#112#101#32#100#101#102#97#117#108#116#32#72#73+
-  #84#95#83#79#77#69#32#119#114#105#116#101#100#101#102#97#117#108#116#59#10+
-  #125#10#10#84#114#105#103#103#101#114#68#97#116#97#32#102#111#114#32#84#82+
-  #73#71#71#69#82#95#72#69#65#76#84#72#32#123#10#32#32#34#97#109#111#117#110+
+  #115#101#116#32#48#32#119#114#105#116#101#100#101#102#97#117#108#116#59#13+
+  #10#32#32#34#102#111#114#99#101#34#32#116#121#112#101#32#117#98#121#116#101+
+  #32#111#102#102#115#101#116#32#50#32#119#114#105#116#101#100#101#102#97#117+
+  #108#116#59#13#10#32#32#34#114#101#115#101#116#95#118#101#108#111#99#105#116+
+  #121#34#32#116#121#112#101#32#98#111#111#108#32#111#102#102#115#101#116#32+
+  #51#32#100#101#102#97#117#108#116#32#102#97#108#115#101#32#119#114#105#116+
+  #101#100#101#102#97#117#108#116#59#13#10#125#13#10#13#10#84#114#105#103#103+
+  #101#114#68#97#116#97#32#102#111#114#32#84#82#73#71#71#69#82#95#83#67#79#82+
+  #69#32#123#13#10#32#32#34#97#99#116#105#111#110#34#32#97#108#105#97#115#32+
+  #115#99#111#114#101#65#99#116#105#111#110#32#116#121#112#101#32#117#98#121+
+  #116#101#32#111#102#102#115#101#116#32#48#32#101#110#117#109#32#84#114#105+
+  #103#103#101#114#83#99#111#114#101#65#99#116#105#111#110#32#100#101#102#97+
+  #117#108#116#32#84#82#73#71#71#69#82#95#83#67#79#82#69#95#65#67#84#73#79#78+
+  #95#65#68#68#32#119#114#105#116#101#100#101#102#97#117#108#116#59#13#10#32+
+  #32#34#99#111#117#110#116#34#32#97#108#105#97#115#32#115#99#111#114#101#67+
+  #111#117#110#116#32#116#121#112#101#32#117#98#121#116#101#32#111#102#102#115+
+  #101#116#32#49#32#100#101#102#97#117#108#116#32#49#32#119#114#105#116#101+
+  #100#101#102#97#117#108#116#59#13#10#32#32#34#116#101#97#109#34#32#97#108+
+  #105#97#115#32#115#99#111#114#101#84#101#97#109#32#116#121#112#101#32#117#98+
+  #121#116#101#32#111#102#102#115#101#116#32#50#32#101#110#117#109#32#84#114+
+  #105#103#103#101#114#83#99#111#114#101#84#101#97#109#32#119#114#105#116#101+
+  #100#101#102#97#117#108#116#59#13#10#32#32#34#99#111#110#115#111#108#101#34+
+  #32#97#108#105#97#115#32#115#99#111#114#101#67#111#110#32#116#121#112#101#32+
+  #98#111#111#108#32#111#102#102#115#101#116#32#51#32#100#101#102#97#117#108+
+  #116#32#102#97#108#115#101#32#119#114#105#116#101#100#101#102#97#117#108#116+
+  #59#13#10#32#32#34#109#101#115#115#97#103#101#34#32#97#108#105#97#115#32#115+
+  #99#111#114#101#77#115#103#32#116#121#112#101#32#98#111#111#108#32#111#102+
+  #102#115#101#116#32#52#32#100#101#102#97#117#108#116#32#116#114#117#101#32+
+  #119#114#105#116#101#100#101#102#97#117#108#116#59#13#10#125#13#10#13#10#84+
+  #114#105#103#103#101#114#68#97#116#97#32#102#111#114#32#84#82#73#71#71#69#82+
+  #95#77#69#83#83#65#71#69#32#123#13#10#32#32#34#107#105#110#100#34#32#116#121+
+  #112#101#32#117#98#121#116#101#32#111#102#102#115#101#116#32#48#32#101#110+
+  #117#109#32#84#114#105#103#103#101#114#77#101#115#115#97#103#101#75#105#110+
+  #100#32#100#101#102#97#117#108#116#32#84#82#73#71#71#69#82#95#77#69#83#83#65+
+  #71#69#95#75#73#78#68#95#71#65#77#69#32#119#114#105#116#101#100#101#102#97+
+  #117#108#116#59#13#10#32#32#34#100#101#115#116#34#32#97#108#105#97#115#32+
+  #109#115#103#68#101#115#116#32#116#121#112#101#32#117#98#121#116#101#32#101+
+  #110#117#109#32#84#114#105#103#103#101#114#77#101#115#115#97#103#101#68#101+
+  #115#116#32#111#102#102#115#101#116#32#49#59#13#10#32#32#34#116#101#120#116+
+  #34#32#116#121#112#101#32#99#104#97#114#91#49#48#48#93#32#111#102#102#115+
+  #101#116#32#50#32#119#114#105#116#101#100#101#102#97#117#108#116#59#13#10#32+
+  #32#34#116#105#109#101#34#32#97#108#105#97#115#32#109#115#103#84#105#109#101+
+  #32#116#121#112#101#32#117#115#104#111#114#116#32#111#102#102#115#101#116#32+
+  #49#48#50#32#119#114#105#116#101#100#101#102#97#117#108#116#59#13#10#125#13+
+  #10#13#10#84#114#105#103#103#101#114#68#97#116#97#32#102#111#114#32#84#82#73+
+  #71#71#69#82#95#68#65#77#65#71#69#32#123#13#10#32#32#34#97#109#111#117#110+
   #116#34#32#116#121#112#101#32#117#115#104#111#114#116#32#111#102#102#115#101+
-  #116#32#48#32#119#114#105#116#101#100#101#102#97#117#108#116#59#10#32#32#34+
-  #105#110#116#101#114#118#97#108#34#32#116#121#112#101#32#117#115#104#111#114+
-  #116#32#111#102#102#115#101#116#32#50#32#119#114#105#116#101#100#101#102#97+
-  #117#108#116#59#10#32#32#34#109#97#120#34#32#97#108#105#97#115#32#104#101#97+
-  #108#77#97#120#32#116#121#112#101#32#98#111#111#108#32#111#102#102#115#101+
-  #116#32#52#32#119#114#105#116#101#100#101#102#97#117#108#116#59#10#32#32#34+
-  #115#105#108#101#110#116#34#32#116#121#112#101#32#98#111#111#108#32#111#102+
-  #102#115#101#116#32#53#32#119#114#105#116#101#100#101#102#97#117#108#116#59+
-  #10#125#10#10#84#114#105#103#103#101#114#68#97#116#97#32#102#111#114#32#84+
-  #82#73#71#71#69#82#95#83#72#79#84#32#123#10#32#32#34#112#111#115#105#116#105+
-  #111#110#34#32#116#121#112#101#32#112#111#105#110#116#32#111#102#102#115#101+
-  #116#32#48#32#97#115#32#116#120#121#32#119#114#105#116#101#100#101#102#97+
-  #117#108#116#59#10#32#32#34#116#121#112#101#34#32#97#108#105#97#115#32#115+
-  #104#111#116#84#121#112#101#32#116#121#112#101#32#117#98#121#116#101#32#111+
-  #102#102#115#101#116#32#56#32#101#110#117#109#32#84#114#105#103#103#101#114+
-  #83#104#111#116#32#119#114#105#116#101#100#101#102#97#117#108#116#59#10#32+
-  #32#34#116#97#114#103#101#116#34#32#97#108#105#97#115#32#115#104#111#116#84+
-  #97#114#103#101#116#32#116#121#112#101#32#117#98#121#116#101#32#111#102#102+
-  #115#101#116#32#57#32#101#110#117#109#32#84#114#105#103#103#101#114#83#104+
-  #111#116#84#97#114#103#101#116#32#119#114#105#116#101#100#101#102#97#117#108+
-  #116#59#10#32#32#34#115#111#117#110#100#34#32#97#108#105#97#115#32#115#104+
-  #111#116#83#111#117#110#100#32#116#121#112#101#32#110#101#103#98#111#111#108+
-  #32#111#102#102#115#101#116#32#49#48#59#32#47#47#32#110#101#103#98#111#111+
-  #108#33#10#32#32#34#97#105#109#34#32#116#121#112#101#32#98#121#116#101#32+
-  #111#102#102#115#101#116#32#49#49#32#101#110#117#109#32#84#114#105#103#103+
-  #101#114#83#104#111#116#65#105#109#32#100#101#102#97#117#108#116#32#84#82#73+
-  #71#71#69#82#95#83#72#79#84#95#65#73#77#95#68#69#70#65#85#76#84#59#10#32#32+
-  #34#112#97#110#101#108#105#100#34#32#116#121#112#101#32#105#110#116#32#111+
-  #102#102#115#101#116#32#49#50#32#112#97#110#101#108#32#100#101#102#97#117+
-  #108#116#32#110#117#108#108#32#119#114#105#116#101#100#101#102#97#117#108+
-  #116#59#10#32#32#34#115#105#103#104#116#34#32#116#121#112#101#32#117#115#104+
-  #111#114#116#32#111#102#102#115#101#116#32#49#54#59#10#32#32#34#97#110#103+
-  #108#101#34#32#116#121#112#101#32#117#115#104#111#114#116#32#111#102#102#115+
-  #101#116#32#49#56#59#10#32#32#34#119#97#105#116#34#32#116#121#112#101#32#117+
-  #115#104#111#114#116#32#111#102#102#115#101#116#32#50#48#59#10#32#32#34#97+
-  #99#99#117#114#97#99#121#34#32#116#121#112#101#32#117#115#104#111#114#116#32+
-  #111#102#102#115#101#116#32#50#50#59#10#32#32#34#97#109#109#111#34#32#116+
-  #121#112#101#32#117#115#104#111#114#116#32#111#102#102#115#101#116#32#50#52+
-  #59#10#32#32#34#114#101#108#111#97#100#34#32#116#121#112#101#32#117#115#104+
-  #111#114#116#32#111#102#102#115#101#116#32#50#54#59#10#125#10#10#84#114#105+
-  #103#103#101#114#68#97#116#97#32#102#111#114#32#84#82#73#71#71#69#82#95#69+
-  #70#70#69#67#84#32#123#10#32#32#34#99#111#117#110#116#34#32#97#108#105#97+
-  #115#32#70#88#67#111#117#110#116#32#116#121#112#101#32#117#98#121#116#101#32+
-  #111#102#102#115#101#116#32#48#32#119#114#105#116#101#100#101#102#97#117#108+
-  #116#59#10#32#32#34#116#121#112#101#34#32#97#108#105#97#115#32#70#88#84#121+
+  #116#32#48#32#119#114#105#116#101#100#101#102#97#117#108#116#59#13#10#32#32+
+  #34#105#110#116#101#114#118#97#108#34#32#116#121#112#101#32#117#115#104#111+
+  #114#116#32#111#102#102#115#101#116#32#50#32#119#114#105#116#101#100#101#102+
+  #97#117#108#116#59#13#10#32#32#34#107#105#110#100#34#32#116#121#112#101#32+
+  #117#98#121#116#101#32#111#102#102#115#101#116#32#52#32#101#110#117#109#32+
+  #72#105#116#84#121#112#101#32#100#101#102#97#117#108#116#32#72#73#84#95#83+
+  #79#77#69#32#119#114#105#116#101#100#101#102#97#117#108#116#59#13#10#125#13+
+  #10#13#10#84#114#105#103#103#101#114#68#97#116#97#32#102#111#114#32#84#82#73+
+  #71#71#69#82#95#72#69#65#76#84#72#32#123#13#10#32#32#34#97#109#111#117#110+
+  #116#34#32#116#121#112#101#32#117#115#104#111#114#116#32#111#102#102#115#101+
+  #116#32#48#32#119#114#105#116#101#100#101#102#97#117#108#116#59#13#10#32#32+
+  #34#105#110#116#101#114#118#97#108#34#32#116#121#112#101#32#117#115#104#111+
+  #114#116#32#111#102#102#115#101#116#32#50#32#119#114#105#116#101#100#101#102+
+  #97#117#108#116#59#13#10#32#32#34#109#97#120#34#32#97#108#105#97#115#32#104+
+  #101#97#108#77#97#120#32#116#121#112#101#32#98#111#111#108#32#111#102#102+
+  #115#101#116#32#52#32#119#114#105#116#101#100#101#102#97#117#108#116#59#13+
+  #10#32#32#34#115#105#108#101#110#116#34#32#116#121#112#101#32#98#111#111#108+
+  #32#111#102#102#115#101#116#32#53#32#119#114#105#116#101#100#101#102#97#117+
+  #108#116#59#13#10#125#13#10#13#10#84#114#105#103#103#101#114#68#97#116#97#32+
+  #102#111#114#32#84#82#73#71#71#69#82#95#83#72#79#84#32#123#13#10#32#32#34+
+  #112#111#115#105#116#105#111#110#34#32#116#121#112#101#32#112#111#105#110+
+  #116#32#111#102#102#115#101#116#32#48#32#97#115#32#116#120#121#32#119#114+
+  #105#116#101#100#101#102#97#117#108#116#59#13#10#32#32#34#116#121#112#101#34+
+  #32#97#108#105#97#115#32#115#104#111#116#84#121#112#101#32#116#121#112#101+
+  #32#117#98#121#116#101#32#111#102#102#115#101#116#32#56#32#101#110#117#109+
+  #32#84#114#105#103#103#101#114#83#104#111#116#32#119#114#105#116#101#100#101+
+  #102#97#117#108#116#59#13#10#32#32#34#116#97#114#103#101#116#34#32#97#108+
+  #105#97#115#32#115#104#111#116#84#97#114#103#101#116#32#116#121#112#101#32+
+  #117#98#121#116#101#32#111#102#102#115#101#116#32#57#32#101#110#117#109#32+
+  #84#114#105#103#103#101#114#83#104#111#116#84#97#114#103#101#116#32#119#114+
+  #105#116#101#100#101#102#97#117#108#116#59#13#10#32#32#34#115#111#117#110+
+  #100#34#32#97#108#105#97#115#32#115#104#111#116#83#111#117#110#100#32#116+
+  #121#112#101#32#110#101#103#98#111#111#108#32#111#102#102#115#101#116#32#49+
+  #48#59#32#47#47#32#110#101#103#98#111#111#108#33#13#10#32#32#34#97#105#109+
+  #34#32#116#121#112#101#32#98#121#116#101#32#111#102#102#115#101#116#32#49#49+
+  #32#101#110#117#109#32#84#114#105#103#103#101#114#83#104#111#116#65#105#109+
+  #32#100#101#102#97#117#108#116#32#84#82#73#71#71#69#82#95#83#72#79#84#95#65+
+  #73#77#95#68#69#70#65#85#76#84#59#13#10#32#32#34#112#97#110#101#108#105#100+
+  #34#32#116#121#112#101#32#105#110#116#32#111#102#102#115#101#116#32#49#50#32+
+  #112#97#110#101#108#32#100#101#102#97#117#108#116#32#110#117#108#108#32#119+
+  #114#105#116#101#100#101#102#97#117#108#116#59#13#10#32#32#34#115#105#103+
+  #104#116#34#32#116#121#112#101#32#117#115#104#111#114#116#32#111#102#102#115+
+  #101#116#32#49#54#59#13#10#32#32#34#97#110#103#108#101#34#32#116#121#112#101+
+  #32#117#115#104#111#114#116#32#111#102#102#115#101#116#32#49#56#59#13#10#32+
+  #32#34#119#97#105#116#34#32#116#121#112#101#32#117#115#104#111#114#116#32+
+  #111#102#102#115#101#116#32#50#48#59#13#10#32#32#34#97#99#99#117#114#97#99+
+  #121#34#32#116#121#112#101#32#117#115#104#111#114#116#32#111#102#102#115#101+
+  #116#32#50#50#59#13#10#32#32#34#97#109#109#111#34#32#116#121#112#101#32#117+
+  #115#104#111#114#116#32#111#102#102#115#101#116#32#50#52#59#13#10#32#32#34+
+  #114#101#108#111#97#100#34#32#116#121#112#101#32#117#115#104#111#114#116#32+
+  #111#102#102#115#101#116#32#50#54#59#13#10#125#13#10#13#10#84#114#105#103+
+  #103#101#114#68#97#116#97#32#102#111#114#32#84#82#73#71#71#69#82#95#69#70#70+
+  #69#67#84#32#123#13#10#32#32#34#99#111#117#110#116#34#32#97#108#105#97#115+
+  #32#70#88#67#111#117#110#116#32#116#121#112#101#32#117#98#121#116#101#32#111+
+  #102#102#115#101#116#32#48#32#119#114#105#116#101#100#101#102#97#117#108#116+
+  #59#13#10#32#32#34#116#121#112#101#34#32#97#108#105#97#115#32#70#88#84#121+
   #112#101#32#116#121#112#101#32#117#98#121#116#101#32#111#102#102#115#101#116+
   #32#49#32#101#110#117#109#32#84#114#105#103#103#101#114#69#102#102#101#99+
   #116#32#100#101#102#97#117#108#116#32#84#82#73#71#71#69#82#95#69#70#70#69#67+
   #84#95#80#65#82#84#73#67#76#69#32#119#114#105#116#101#100#101#102#97#117#108+
-  #116#59#10#32#32#34#115#117#98#116#121#112#101#34#32#97#108#105#97#115#32#70+
-  #88#83#117#98#84#121#112#101#32#116#121#112#101#32#117#98#121#116#101#32#111+
-  #102#102#115#101#116#32#50#32#101#110#117#109#32#84#114#105#103#103#101#114+
-  #69#102#102#101#99#116#84#121#112#101#32#100#101#102#97#117#108#116#32#84#82+
-  #73#71#71#69#82#95#69#70#70#69#67#84#95#83#80#65#82#75#32#119#114#105#116+
-  #101#100#101#102#97#117#108#116#59#10#32#32#34#114#101#100#34#32#97#108#105+
-  #97#115#32#70#88#82#101#100#32#116#121#112#101#32#117#98#121#116#101#32#111+
-  #102#102#115#101#116#32#51#32#119#114#105#116#101#100#101#102#97#117#108#116+
-  #59#10#32#32#34#103#114#101#101#110#34#32#97#108#105#97#115#32#70#88#71#114+
-  #101#101#110#32#116#121#112#101#32#117#98#121#116#101#32#111#102#102#115#101+
-  #116#32#52#32#119#114#105#116#101#100#101#102#97#117#108#116#59#10#32#32#34+
-  #98#108#117#101#34#32#97#108#105#97#115#32#70#88#66#108#117#101#32#116#121+
-  #112#101#32#117#98#121#116#101#32#111#102#102#115#101#116#32#53#32#119#114+
-  #105#116#101#100#101#102#97#117#108#116#59#10#32#32#34#112#111#115#34#32#97+
-  #108#105#97#115#32#70#88#80#111#115#32#116#121#112#101#32#117#98#121#116#101+
-  #32#111#102#102#115#101#116#32#54#32#101#110#117#109#32#84#114#105#103#103+
-  #101#114#69#102#102#101#99#116#80#111#115#32#100#101#102#97#117#108#116#32+
-  #84#82#73#71#71#69#82#95#69#70#70#69#67#84#95#80#79#83#95#67#69#78#84#69#82+
-  #32#119#114#105#116#101#100#101#102#97#117#108#116#59#10#32#32#34#119#97#105+
-  #116#34#32#116#121#112#101#32#117#115#104#111#114#116#32#111#102#102#115#101+
-  #116#32#56#32#119#114#105#116#101#100#101#102#97#117#108#116#59#10#32#32#34+
-  #118#101#108#95#120#34#32#116#121#112#101#32#98#121#116#101#32#111#102#102+
-  #115#101#116#32#49#48#32#119#114#105#116#101#100#101#102#97#117#108#116#59+
-  #10#32#32#34#118#101#108#95#121#34#32#116#121#112#101#32#98#121#116#101#32+
-  #111#102#102#115#101#116#32#49#49#32#119#114#105#116#101#100#101#102#97#117+
-  #108#116#59#10#32#32#34#115#112#114#101#97#100#95#108#34#32#116#121#112#101+
-  #32#117#98#121#116#101#32#111#102#102#115#101#116#32#49#50#32#119#114#105+
-  #116#101#100#101#102#97#117#108#116#59#10#32#32#34#115#112#114#101#97#100#95+
-  #114#34#32#116#121#112#101#32#117#98#121#116#101#32#111#102#102#115#101#116+
-  #32#49#51#32#119#114#105#116#101#100#101#102#97#117#108#116#59#10#32#32#34+
-  #115#112#114#101#97#100#95#117#34#32#116#121#112#101#32#117#98#121#116#101+
-  #32#111#102#102#115#101#116#32#49#52#32#119#114#105#116#101#100#101#102#97+
-  #117#108#116#59#10#32#32#34#115#112#114#101#97#100#95#100#34#32#116#121#112+
-  #101#32#117#98#121#116#101#32#111#102#102#115#101#116#32#49#53#32#119#114+
-  #105#116#101#100#101#102#97#117#108#116#59#10#125#10
+  #116#59#13#10#32#32#34#115#117#98#116#121#112#101#34#32#97#108#105#97#115#32+
+  #70#88#83#117#98#84#121#112#101#32#116#121#112#101#32#117#98#121#116#101#32+
+  #111#102#102#115#101#116#32#50#32#101#110#117#109#32#84#114#105#103#103#101+
+  #114#69#102#102#101#99#116#84#121#112#101#32#100#101#102#97#117#108#116#32+
+  #84#82#73#71#71#69#82#95#69#70#70#69#67#84#95#83#80#65#82#75#32#119#114#105+
+  #116#101#100#101#102#97#117#108#116#59#13#10#32#32#34#114#101#100#34#32#97+
+  #108#105#97#115#32#70#88#82#101#100#32#116#121#112#101#32#117#98#121#116#101+
+  #32#111#102#102#115#101#116#32#51#32#119#114#105#116#101#100#101#102#97#117+
+  #108#116#59#13#10#32#32#34#103#114#101#101#110#34#32#97#108#105#97#115#32#70+
+  #88#71#114#101#101#110#32#116#121#112#101#32#117#98#121#116#101#32#111#102+
+  #102#115#101#116#32#52#32#119#114#105#116#101#100#101#102#97#117#108#116#59+
+  #13#10#32#32#34#98#108#117#101#34#32#97#108#105#97#115#32#70#88#66#108#117+
+  #101#32#116#121#112#101#32#117#98#121#116#101#32#111#102#102#115#101#116#32+
+  #53#32#119#114#105#116#101#100#101#102#97#117#108#116#59#13#10#32#32#34#112+
+  #111#115#34#32#97#108#105#97#115#32#70#88#80#111#115#32#116#121#112#101#32+
+  #117#98#121#116#101#32#111#102#102#115#101#116#32#54#32#101#110#117#109#32+
+  #84#114#105#103#103#101#114#69#102#102#101#99#116#80#111#115#32#100#101#102+
+  #97#117#108#116#32#84#82#73#71#71#69#82#95#69#70#70#69#67#84#95#80#79#83#95+
+  #67#69#78#84#69#82#32#119#114#105#116#101#100#101#102#97#117#108#116#59#13+
+  #10#32#32#34#119#97#105#116#34#32#116#121#112#101#32#117#115#104#111#114#116+
+  #32#111#102#102#115#101#116#32#56#32#119#114#105#116#101#100#101#102#97#117+
+  #108#116#59#13#10#32#32#34#118#101#108#95#120#34#32#116#121#112#101#32#98+
+  #121#116#101#32#111#102#102#115#101#116#32#49#48#32#119#114#105#116#101#100+
+  #101#102#97#117#108#116#59#13#10#32#32#34#118#101#108#95#121#34#32#116#121+
+  #112#101#32#98#121#116#101#32#111#102#102#115#101#116#32#49#49#32#119#114+
+  #105#116#101#100#101#102#97#117#108#116#59#13#10#32#32#34#115#112#114#101#97+
+  #100#95#108#34#32#116#121#112#101#32#117#98#121#116#101#32#111#102#102#115+
+  #101#116#32#49#50#32#119#114#105#116#101#100#101#102#97#117#108#116#59#13#10+
+  #32#32#34#115#112#114#101#97#100#95#114#34#32#116#121#112#101#32#117#98#121+
+  #116#101#32#111#102#102#115#101#116#32#49#51#32#119#114#105#116#101#100#101+
+  #102#97#117#108#116#59#13#10#32#32#34#115#112#114#101#97#100#95#117#34#32+
+  #116#121#112#101#32#117#98#121#116#101#32#111#102#102#115#101#116#32#49#52+
+  #32#119#114#105#116#101#100#101#102#97#117#108#116#59#13#10#32#32#34#115#112+
+  #114#101#97#100#95#100#34#32#116#121#112#101#32#117#98#121#116#101#32#111+
+  #102#102#115#101#116#32#49#53#32#119#114#105#116#101#100#101#102#97#117#108+
+  #116#59#13#10#125#13#10
 ;
\ No newline at end of file