/*%FSM<COMPILE "D:\Programme\Bohemia Interactive\Tools\FSM Editor Personal Edition\scriptedFSM.cfg, DayZ Player Monitor">*/
/*%FSM<HEAD>*/
/*
item0[] = {"init",0,250,-75.000000,-350.000000,25.000000,-300.000000,0.000000,"init"};
item1[] = {"isServer",4,218,50.000000,-350.000000,150.000000,-300.000000,0.000000,"isServer"};
item2[] = {"wait",2,250,50.000000,-275.000000,150.000000,-225.000000,0.000000,"wait"};
item3[] = {"Allow_Conn",4,218,50.000000,-200.000000,150.000000,-150.000000,0.000000,"Allow" \n "Conn"};
item4[] = {"Loading",2,250,-75.000000,-200.000000,25.000000,-150.000000,0.000000,"Loading"};
item5[] = {"Client",4,218,-75.000000,-275.000000,25.000000,-225.000000,0.000000,"Client"};
item6[] = {"player_not_null",4,218,-175.000000,-50.000000,-75.000000,0.000000,0.000000,"player" \n "not null"};
item7[] = {"Prepare",2,250,-75.000000,0.000000,25.000000,50.000000,0.000000,"Prepare"};
item8[] = {"player___player",4,218,50.000000,50.000000,150.000000,100.000000,0.000000,"player =" \n "player"};
item9[] = {"Collect",2,250,-75.000000,100.000000,25.000000,150.000000,0.000000,"Collect"};
item10[] = {"Has_PlayerID",4,218,-75.000000,175.000000,25.000000,225.000000,1.000000,"Has PlayerID"};
item11[] = {"no_PlayerID",4,218,50.000000,150.000000,150.000000,200.000000,2.000000,"no PlayerID"};
item12[] = {"ERROR__No_Player",2,250,175.000000,150.000000,275.000000,200.000000,0.000000,"ERROR:" \n "No PlayerID"};
item13[] = {"Request",2,250,-75.000000,400.000000,25.000000,450.000000,0.000000,"Request"};
item14[] = {"Response",4,218,-175.000000,450.000000,-75.000000,500.000000,0.000000,"Response"};
item15[] = {"Parse_Login",2,250,-75.000000,500.000000,25.000000,550.000000,0.000000,"Parse Login"};
item16[] = {"Hive_Bad",4,218,50.000000,500.000000,150.000000,550.000000,10.000000,"Hive" \n "Bad"};
item17[] = {"ERROR__Wrong_HIVE",2,250,175.000000,500.000000,275.000000,550.000000,0.000000,"ERROR:" \n "Wrong HIVE" \n "Version"};
item18[] = {"Hive_Ok",4,218,-175.000000,550.000000,-75.000000,600.000000,0.000000,"Hive" \n "Ok"};
item19[] = {"Phase_One",2,250,-75.000000,600.000000,25.000000,650.000000,0.000000,"Phase One"};
item20[] = {"Response",4,218,-175.000000,650.000000,-75.000000,700.000000,0.000000,"Response"};
item21[] = {"Phase_Two",2,250,-75.000000,700.000000,25.000000,750.000000,0.000000,"Phase Two"};
item22[] = {"Dead_Player",4,218,50.000000,700.000000,150.000000,750.000000,0.000000,"Dead" \n "Player"};
item23[] = {"ERROR__Player_Already",2,250,175.000000,700.000000,275.000000,750.000000,0.000000,"ERROR:" \n "Player Already" \n "Dead"};
item24[] = {"Alive",4,218,-175.000000,750.000000,-75.000000,800.000000,0.000000,"Alive"};
item25[] = {"Position",2,250,-75.000000,800.000000,25.000000,850.000000,0.000000,"Position"};
item26[] = {"Version_Ok",4,218,-175.000000,850.000000,-75.000000,900.000000,0.000000,"Version" \n "Ok"};
item27[] = {"Load_In",2,250,-75.000000,1000.000000,25.000000,1050.000000,0.000000,"Load In"};
item28[] = {"Bad_Version",4,218,50.000000,800.000000,150.000000,850.000000,0.000000,"Bad" \n "Version"};
item29[] = {"ERROR__Bad_Versi",2,250,175.000000,800.000000,275.000000,850.000000,0.000000,"ERROR:" \n "Bad Version"};
item30[] = {"Display_Ready",4,218,-175.000000,1050.000000,-75.000000,1100.000000,0.000000,"Display" \n "Ready"};
item31[] = {"Preload_Display",2,250,-75.000000,1100.000000,25.000000,1150.000000,0.000000,"Preload" \n "Display"};
item32[] = {"Preload_Done",4,218,-175.000000,1150.000000,-75.000000,1200.000000,0.000000,"Preload" \n "Done"};
item33[] = {"Initialize",2,250,-75.000000,1200.000000,25.000000,1250.000000,0.000000,"Initialize"};
item34[] = {"Finish",1,250,-75.000000,1300.000000,25.000000,1350.000000,0.000000,"Finish"};
item35[] = {"True",8,218,25.000000,1250.000000,125.000000,1300.000000,0.000000,"True"};
item36[] = {"Too_Long",4,218,300.000000,150.000000,400.000000,200.000000,0.000000,"Too" \n "Long"};
item37[] = {"Too_Long",4,218,300.000000,500.000000,400.000000,550.000000,0.000000,"Too" \n "Long"};
item38[] = {"Too_Long",4,218,300.000000,700.000000,400.000000,750.000000,0.000000,"Too" \n "Long"};
item39[] = {"Too_Long",4,218,300.000000,800.000000,400.000000,850.000000,0.000000,"Too" \n "Long"};
item40[] = {"Enable_Sim",2,250,-75.000000,-100.000000,25.000000,-50.000000,0.000000,"Enable Sim"};
item41[] = {"Initialized",4,218,-175.000000,-150.000000,-75.000000,-100.000000,0.000000,"Initialized"};
item42[] = {"New_Character",4,218,-325.000000,400.000000,-225.000000,450.000000,5.000000,"New" \n "Character"};
item43[] = {"Gender_Selection",2,250,-575.000000,400.000000,-475.000000,450.000000,0.000000,"Gender Selection" \n "Dialog"};
item44[] = {"Selected",4,218,-575.000000,475.000000,-475.000000,525.000000,0.000000,"Selected"};
item45[] = {"Process",2,250,-575.000000,550.000000,-475.000000,600.000000,0.000000,"Process"};
item46[] = {"no_PlayerID",4,218,50.000000,-100.000000,150.000000,-50.000000,2.000000,"no PlayerID"};
item47[] = {"ERROR__No_Player_1",2,250,175.000000,-100.000000,275.000000,-50.000000,0.000000,"ERROR:" \n "No PlayerID"};
item48[] = {"Too_Long",4,218,300.000000,-100.000000,400.000000,-50.000000,0.000000,"Too" \n "Long"};
item49[] = {"Stream",2,250,-75.000000,900.000000,25.000000,950.000000,0.000000,"Stream"};
item50[] = {"Preloaded",4,218,-175.000000,950.000000,-75.000000,1000.000000,0.000000,"Preloaded"};
item51[] = {"Retry",4,218,25.000000,375.000000,125.000000,425.000000,0.000000,"Retry"};
item52[] = {"retry_",4,218,25.000000,425.000000,125.000000,475.000000,0.000000,"retry" \n ""};
item53[] = {"Retry",2,250,125.000000,400.000000,225.000000,450.000000,0.000000,"Retry"};
item54[] = {"auth_failed",4,218,250.000000,400.000000,350.000000,450.000000,0.000000,"auth failed"};
item55[] = {"get_ready_to_clo",2,250,400.000000,400.000000,500.000000,450.000000,0.000000,"get ready to close"};
item56[] = {"sleep_",4,218,550.000000,400.000000,650.000000,450.000000,0.000000,"sleep" \n ""};
item57[] = {"Disconnect",2,250,825.000000,400.000000,925.000000,450.000000,0.000000,"Disconnect"};
item58[] = {"No_time_date",4,218,25.000000,1150.000000,125.000000,1200.000000,0.000000,"No time/date"};
item59[] = {"ERROR__No_Date_or",2,250,175.000000,1150.000000,275.000000,1200.000000,0.000000,"ERROR:" \n "No Date or Time"};
item60[] = {"Too_Long",4,218,300.000000,1150.000000,400.000000,1200.000000,0.000000,"Too" \n "Long"};
item61[] = {"get_ready_to_clo_1",2,250,450.000000,800.000000,550.000000,850.000000,0.000000,"get ready to close"};
item62[] = {"sleep_",4,218,600.000000,800.000000,700.000000,850.000000,0.000000,"sleep" \n ""};
item63[] = {"Server_Loading",2,250,-75.000000,250.000000,25.000000,300.000000,0.000000,"Server Loading"};
item64[] = {"Too_Long",4,218,50.000000,250.000000,150.000000,300.000000,0.000000,"Too" \n "Long"};
item65[] = {"Server_Ready",4,218,-75.000000,325.000000,25.000000,375.000000,0.000000,"Server Ready"};
item66[] = {"New_Infected_Cha",4,218,-325.000000,475.000000,-225.000000,525.000000,5.000000,"New" \n "Infected" \n "Character"};
item67[] = {"Player_Zombie__S",2,250,-450.000000,475.000000,-350.000000,525.000000,0.000000,"Player Zombie" \n " Selection"};
item68[] = {"",7,210,-204.000000,521.000000,-196.000000,529.000000,0.000000,""};
item69[] = {"",7,210,-204.000000,496.000000,-196.000000,504.000000,0.000000,""};
item70[] = {"",7,210,-204.000000,421.000000,-196.000000,429.000000,0.000000,""};
item71[] = {"",7,210,-404.000000,571.000000,-396.000000,579.000000,0.000000,""};
item72[] = {"",7,210,871.000000,1171.000000,879.000000,1179.000000,0.000000,""};
item73[] = {"",7,210,871.000000,821.000000,879.000000,829.000000,0.000000,""};
item74[] = {"",7,210,871.000000,721.000000,879.000000,729.000000,0.000000,""};
item75[] = {"",7,210,871.000000,521.000000,879.000000,529.000000,0.000000,""};
item76[] = {"",7,210,871.000000,170.999985,879.000000,179.000015,0.000000,""};
item77[] = {"",7,210,871.000000,-79.000000,879.000000,-71.000000,0.000000,""};
item78[] = {"",7,210,871.000000,271.000000,879.000000,279.000000,0.000000,""};
link0[] = {0,1};
link1[] = {0,5};
link2[] = {1,2};
link3[] = {2,3};
link4[] = {3,4};
link5[] = {4,41};
link6[] = {5,4};
link7[] = {6,7};
link8[] = {7,8};
link9[] = {8,9};
link10[] = {9,10};
link11[] = {9,11};
link12[] = {10,63};
link13[] = {11,12};
link14[] = {12,36};
link15[] = {13,14};
link16[] = {13,52};
link17[] = {14,15};
link18[] = {15,16};
link19[] = {15,18};
link20[] = {15,68};
link21[] = {16,17};
link22[] = {17,37};
link23[] = {18,19};
link24[] = {19,20};
link25[] = {20,21};
link26[] = {21,22};
link27[] = {21,24};
link28[] = {22,23};
link29[] = {23,38};
link30[] = {24,25};
link31[] = {25,26};
link32[] = {25,28};
link33[] = {26,49};
link34[] = {27,30};
link35[] = {28,29};
link36[] = {29,39};
link37[] = {30,31};
link38[] = {31,32};
link39[] = {32,33};
link40[] = {33,35};
link41[] = {33,58};
link42[] = {35,34};
link43[] = {36,76};
link44[] = {37,75};
link45[] = {38,74};
link46[] = {39,61};
link47[] = {40,6};
link48[] = {40,46};
link49[] = {41,40};
link50[] = {42,43};
link51[] = {43,44};
link52[] = {44,45};
link53[] = {45,71};
link54[] = {46,47};
link55[] = {47,48};
link56[] = {48,77};
link57[] = {49,50};
link58[] = {50,27};
link59[] = {51,13};
link60[] = {52,53};
link61[] = {53,51};
link62[] = {53,54};
link63[] = {54,55};
link64[] = {55,56};
link65[] = {56,57};
link66[] = {58,59};
link67[] = {59,60};
link68[] = {60,72};
link69[] = {61,62};
link70[] = {62,73};
link71[] = {63,64};
link72[] = {63,65};
link73[] = {64,78};
link74[] = {65,13};
link75[] = {66,67};
link76[] = {67,71};
link77[] = {68,69};
link78[] = {69,66};
link79[] = {69,70};
link80[] = {70,42};
link81[] = {71,18};
link82[] = {72,73};
link83[] = {73,74};
link84[] = {74,75};
link85[] = {75,57};
link86[] = {76,78};
link87[] = {77,76};
link88[] = {78,57};
globals[] = {25.000000,1,0,0,0,640,480,1,143,6316128,1,-158.844666,996.923462,645.150146,-280.887787,1137,911,1};
window[] = {2,-1,-1,-1,-1,908,150,1428,150,3,1155};
*//*%FSM</HEAD>*/
class FSM
{
  fsmName = "DayZ Player Monitor";
  class States
  {
    /*%FSM<STATE "init">*/
    class init
    {
      name = "init";
      init = /*%FSM<STATEINIT""">*/"dayz_versionNo = getText(configFile >> ""CfgMods"" >> ""DayZ"" >> ""version"");" \n
       "diag_log (""DAYZ: CLIENT IS RUNNING DAYZ_CODE "" + str(dayz_versionNo));" \n
       "" \n
       "_AuthAttempt = 0;" \n
       "" \n
       "0 fadeSound 0;" \n
       "//player setPosATL [-2148,6655,0];" \n
       "" \n
       "progressLoadingScreen 0.1;" \n
       "0 cutText ["""",""BLACK""];" \n
       "" \n
       "_timeStart = diag_tickTime;" \n
       "_readytoAuth = false;" \n
       "_startCheck = 0;" \n
       "//player enableSimulation false;" \n
       "if(isNil ""DZEdebug"") then { DZEdebug = false; };" \n
       "_debug = DZEdebug;" \n
       "" \n
       ""/*%FSM</STATEINIT""">*/;
      precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
      class Links
      {
        /*%FSM<LINK "Client">*/
        class Client
        {
          priority = 0.000000;
          to="Loading";
          precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
          condition=/*%FSM<CONDITION""">*/"!isServer"/*%FSM</CONDITION""">*/;
          action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
        };
        /*%FSM</LINK>*/
        /*%FSM<LINK "isServer">*/
        class isServer
        {
          priority = 0.000000;
          to="wait";
          precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
          condition=/*%FSM<CONDITION""">*/"isServer"/*%FSM</CONDITION""">*/;
          action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
        };
        /*%FSM</LINK>*/
      };
    };
    /*%FSM</STATE>*/
    /*%FSM<STATE "wait">*/
    class wait
    {
      name = "wait";
      init = /*%FSM<STATEINIT""">*/""/*%FSM</STATEINIT""">*/;
      precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
      class Links
      {
        /*%FSM<LINK "Allow_Conn">*/
        class Allow_Conn
        {
          priority = 0.000000;
          to="Loading";
          precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
          condition=/*%FSM<CONDITION""">*/"allowConnection"/*%FSM</CONDITION""">*/;
          action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
        };
        /*%FSM</LINK>*/
      };
    };
    /*%FSM</STATE>*/
    /*%FSM<STATE "Loading">*/
    class Loading
    {
      name = "Loading";
      init = /*%FSM<STATEINIT""">*/"endLoadingScreen;" \n
       "if (_debug) then {" \n
       "diag_log (""PLOGIN: Initating"");" \n
       "};" \n
       "" \n
       "dayz_loadScreenMsg = (localize ""str_player_13""); " \n
       "" \n
       "progressLoadingScreen 0.2;" \n
       ""/*%FSM</STATEINIT""">*/;
      precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
      class Links
      {
        /*%FSM<LINK "Initialized">*/
        class Initialized
        {
          priority = 0.000000;
          to="Enable_Sim";
          precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
          condition=/*%FSM<CONDITION""">*/"!isnil ""bis_fnc_init"""/*%FSM</CONDITION""">*/;
          action=/*%FSM<ACTION""">*/"dayz_forceSave = {" \n
           "_gearSave = false;" \n
           "" \n
           "if (!dialog) then {" \n
           "	createGearDialog [player, ""RscDisplayGear""];" \n
           "	_gearSave = true;" \n
           "};" \n
           "" \n
           "_dialog = 			findDisplay 106;" \n
           "_magazineArray = 	[];" \n
           "" \n
           "//Primary Mags" \n
           "for ""_i"" from 109 to 120 do " \n
           "{" \n
           "	_control = 	_dialog displayCtrl _i;" \n
           "	_item = 	gearSlotData _control;" \n
           "	_val =		gearSlotAmmoCount _control;" \n
           "	_max = 		getNumber (configFile >> ""CfgMagazines"" >> _item >> ""count"");" \n
           "	if (_item != """") then {" \n
           "		if (_val != _max) then {" \n
           "			_magazineArray set [count _magazineArray,[_item,_val]];" \n
           "		} else {" \n
           "			_magazineArray set [count _magazineArray,_item];" \n
           "		};" \n
           "	};" \n
           "};" \n
           "" \n
           "//Secondary Mags" \n
           "for ""_i"" from 122 to 129 do " \n
           "{" \n
           "	_control = 	_dialog displayCtrl _i;" \n
           "	_item = 	gearSlotData _control;" \n
           "	_val =		gearSlotAmmoCount _control;" \n
           "	_max = 		getNumber (configFile >> ""CfgMagazines"" >> _item >> ""count"");" \n
           "	if (_item != """") then {" \n
           "		if (_val != _max) then {" \n
           "			_magazineArray set [count _magazineArray,[_item,_val]];" \n
           "		} else {" \n
           "			_magazineArray set [count _magazineArray,_item];" \n
           "		};" \n
           "	};" \n
           "};" \n
           "" \n
           "if (_gearSave) then {" \n
           "	closeDialog 0;" \n
           "};" \n
           "" \n
           "	_medical = player call player_sumMedical;" \n
           "		" \n
           "	/*" \n
           "		Get character state details" \n
           "	*/" \n
           "	_currentWpn = 	currentMuzzle player;" \n
           "	_currentAnim =	animationState player;" \n
           "	_config = 		configFile >> ""CfgMovesMaleSdr"" >> ""States"" >> _currentAnim;" \n
           "	_onLadder =		(getNumber (_config >> ""onLadder"")) == 1;" \n
           "	_isTerminal = 	(getNumber (_config >> ""terminal"")) == 1;" \n
           "	_isInVehicle = vehicle player != player;" \n
           "	//_wpnDisabled =	(getNumber (_config >> ""disableWeapons"")) == 1;" \n
           "	_currentModel = typeOf player;" \n
           "	_charPos = getPosATL player;" \n
           "	_playerPos = 	[round(direction player),_charPos];" \n
           "	" \n
           "	if (_onLadder or _isInVehicle or _isTerminal) then {" \n
           "		_currentAnim = """";" \n
           "		//If position to be updated, make sure it is at ground level!" \n
           "		if ((count _playerPos > 0) and !_isTerminal) then {" \n
           "			_charPos set [2,0];" \n
           "			_playerPos set[1,_charPos];" \n
           "		};" \n
           "	};" \n
           "	if (_isInVehicle) then {" \n
           "		_currentWpn = """";" \n
           "	} else {" \n
           "		if ( typeName(_currentWpn) == ""STRING"" ) then {" \n
           "			_muzzles = getArray(configFile >> ""cfgWeapons"" >> _currentWpn >> ""muzzles"");" \n
           "			if (count _muzzles > 1) then {" \n
           "				_currentWpn = currentMuzzle player;" \n
           "			};	" \n
           "		} else {" \n
           "			//diag_log (""DW_DEBUG: _currentWpn: "" + str(_currentWpn));" \n
           "			_currentWpn = """";" \n
           "		};" \n
           "	};" \n
           "	_temp = round(player getVariable [""temperature"",100]);" \n
           "	_currentState = [_currentWpn,_currentAnim,_temp];" \n
           "	" \n
           "	dayz_Magazines = _magazineArray;" \n
           "	PVDZE_plr_Save = [player,dayz_Magazines,false,true];" \n
           "	publicVariableServer ""PVDZE_plr_Save"";" \n
           "			" \n
           "	if (isServer) then {" \n
           "		PVDZE_plr_Save call server_playerSync;" \n
           "	};" \n
           "						" \n
           "	dayz_lastSave = diag_tickTime;" \n
           "	dayz_Magazines = [];" \n
           "};"/*%FSM</ACTION""">*/;
        };
        /*%FSM</LINK>*/
      };
    };
    /*%FSM</STATE>*/
    /*%FSM<STATE "Prepare">*/
    class Prepare
    {
      name = "Prepare";
      init = /*%FSM<STATEINIT""">*/"if (_debug) then {" \n
       "diag_log (""PLOGIN: Player Model Exists"");" \n
       "};"/*%FSM</STATEINIT""">*/;
      precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
      class Links
      {
        /*%FSM<LINK "player___player">*/
        class player___player
        {
          priority = 0.000000;
          to="Collect";
          precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
          condition=/*%FSM<CONDITION""">*/"player == player"/*%FSM</CONDITION""">*/;
          action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
        };
        /*%FSM</LINK>*/
      };
    };
    /*%FSM</STATE>*/
    /*%FSM<STATE "Collect">*/
    class Collect
    {
      name = "Collect";
      init = /*%FSM<STATEINIT""">*/"if (_debug) then {" \n
       "diag_log (""PLOGIN: Player Ready"");" \n
       "};" \n
       "dayz_loadScreenMsg = (localize ""str_player_13""); " \n
       "" \n
       "progressLoadingScreen 0.3;" \n
       "" \n
       "_playerUID = getPlayerUID player;"/*%FSM</STATEINIT""">*/;
      precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
      class Links
      {
        /*%FSM<LINK "no_PlayerID">*/
        class no_PlayerID
        {
          priority = 2.000000;
          to="ERROR__No_Player";
          precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
          condition=/*%FSM<CONDITION""">*/"_playerUID == """""/*%FSM</CONDITION""">*/;
          action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
        };
        /*%FSM</LINK>*/
        /*%FSM<LINK "Has_PlayerID">*/
        class Has_PlayerID
        {
          priority = 1.000000;
          to="Server_Loading";
          precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
          condition=/*%FSM<CONDITION""">*/"!(isNil ""_playerUID"")"/*%FSM</CONDITION""">*/;
          action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
        };
        /*%FSM</LINK>*/
      };
    };
    /*%FSM</STATE>*/
    /*%FSM<STATE "ERROR__No_Player">*/
    class ERROR__No_Player
    {
      name = "ERROR__No_Player";
      init = /*%FSM<STATEINIT""">*/"endLoadingScreen;" \n
       "selectNoPlayer;" \n
       "_myTime = diag_tickTime;" \n
       "1 cutText [localize ""str_player_14"", ""PLAIN"",15];"/*%FSM</STATEINIT""">*/;
      precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
      class Links
      {
        /*%FSM<LINK "Too_Long">*/
        class Too_Long
        {
          priority = 0.000000;
          to="Disconnect";
          precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
          condition=/*%FSM<CONDITION""">*/"(diag_tickTime - _myTime) > 10"/*%FSM</CONDITION""">*/;
          action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
        };
        /*%FSM</LINK>*/
      };
    };
    /*%FSM</STATE>*/
    /*%FSM<STATE "Request">*/
    class Request
    {
      name = "Request";
      init = /*%FSM<STATEINIT""">*/"if (_debug) then {" \n
       "diag_log (""PLOGIN: Requesting Authentication... ("" + _playerUID + "")"");" \n
       "};" \n
       "dayz_loadScreenMsg = (localize ""str_player_15"");" \n
       "" \n
       "progressLoadingScreen 0.7;" \n
       "" \n
       "_msg = [];" \n
       "" \n
       "PVDZE_plr_Login = [_playerUID,player];" \n
       "publicVariableServer ""PVDZE_plr_Login"";" \n
       "" \n
       "if (isServer) then {" \n
       "	PVDZE_plr_Login call server_playerLogin;" \n
       "};" \n
       "" \n
       "dayzPlayerLogin = [];" \n
       "" \n
       "_myTime = diag_tickTime;" \n
       ""/*%FSM</STATEINIT""">*/;
      precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
      class Links
      {
        /*%FSM<LINK "retry_">*/
        class retry_
        {
          priority = 0.000000;
          to="Retry";
          precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
          condition=/*%FSM<CONDITION""">*/"(diag_tickTime - _myTime) > 10"/*%FSM</CONDITION""">*/;
          action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
        };
        /*%FSM</LINK>*/
        /*%FSM<LINK "Response">*/
        class Response
        {
          priority = 0.000000;
          to="Parse_Login";
          precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
          condition=/*%FSM<CONDITION""">*/"count (dayzPlayerLogin) > 1"/*%FSM</CONDITION""">*/;
          action=/*%FSM<ACTION""">*/"_msg = 		dayzPlayerLogin;"/*%FSM</ACTION""">*/;
        };
        /*%FSM</LINK>*/
      };
    };
    /*%FSM</STATE>*/
    /*%FSM<STATE "Parse_Login">*/
    class Parse_Login
    {
      name = "Parse_Login";
      init = /*%FSM<STATEINIT""">*/"dayz_authed = true;" \n
       "" \n
       "progressLoadingScreen 0.6;" \n
       "_charID		= _msg select 0;" \n
       "_inventory	= _msg select 1;" \n
       "_backpack	= _msg select 2;" \n
       "_survival 	= _msg select 3;" \n
       "_isNew 		= _msg select 4;" \n
       "//_state 		= _msg select 5;" \n
       "_version	= _msg select 5;" \n
       "_model		= _msg select 6;" \n
       "" \n
       "_isHiveOk = false;" \n
       "_newPlayer = false;" \n
       "_isInfected = false;" \n
       "" \n
       "if (count _msg > 7) then {" \n
       "	_isHiveOk = _msg select 7;" \n
       "	_newPlayer = _msg select 8;" \n
       "	_isInfected = _msg select 9;" \n
       "	diag_log (""PLAYER RESULT: "" + str(_isHiveOk));" \n
       "};" \n
       "" \n
       "dayz_loadScreenMsg = (localize ""str_player_17""); " \n
       "progressLoadingScreen 0.8;" \n
       "if (_debug) then {" \n
       "diag_log (""PLOGIN: authenticated with : "" + str(_msg));" \n
       "};" \n
       "//Not Equal Failure" \n
       "" \n
       "if (isNil ""_model"") then {" \n
       "	_model = ""Survivor2_DZ"";" \n
       "	diag_log (""PLOGIN: Model was nil, loading as survivor"");" \n
       "};" \n
       "" \n
       "if (_model == """") then {" \n
       "	_model = ""Survivor2_DZ"";" \n
       "	diag_log (""PLOGIN: Model was empty, loading as survivor"");" \n
       "};" \n
       "" \n
       "if (_model == ""Survivor1_DZ"") then {" \n
       "	_model = ""Survivor2_DZ"";" \n
       "};" \n
       "" \n
       "_isHack = false;" \n
       "if (_model == ""hacker"") then {" \n
       "	_isHack = true;" \n
       "};"/*%FSM</STATEINIT""">*/;
      precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
      class Links
      {
        /*%FSM<LINK "Hive_Bad">*/
        class Hive_Bad
        {
          priority = 10.000000;
          to="ERROR__Wrong_HIVE";
          precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
          condition=/*%FSM<CONDITION""">*/"!_isHiveOk"/*%FSM</CONDITION""">*/;
          action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
        };
        /*%FSM</LINK>*/
        /*%FSM<LINK "New_Infected_Cha">*/
        class New_Infected_Cha
        {
          priority = 5.000000;
          to="Player_Zombie__S";
          precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
          condition=/*%FSM<CONDITION""">*/"_isNew && _isInfected == 1"/*%FSM</CONDITION""">*/;
          action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
        };
        /*%FSM</LINK>*/
        /*%FSM<LINK "New_Character">*/
        class New_Character
        {
          priority = 5.000000;
          to="Gender_Selection";
          precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
          condition=/*%FSM<CONDITION""">*/"_isNew && _isInfected == 0"/*%FSM</CONDITION""">*/;
          action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
        };
        /*%FSM</LINK>*/
        /*%FSM<LINK "Hive_Ok">*/
        class Hive_Ok
        {
          priority = 0.000000;
          to="Phase_One";
          precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
          condition=/*%FSM<CONDITION""">*/"true"/*%FSM</CONDITION""">*/;
          action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
        };
        /*%FSM</LINK>*/
      };
    };
    /*%FSM</STATE>*/
    /*%FSM<STATE "ERROR__Wrong_HIVE">*/
    class ERROR__Wrong_HIVE
    {
      name = "ERROR__Wrong_HIVE";
      init = /*%FSM<STATEINIT""">*/"endLoadingScreen;" \n
       "selectNoPlayer;" \n
       "" \n
       "_myTime = diag_tickTime;" \n
       "1 cutText [(localize ""str_epoch_player_112""), ""PLAIN"",5];"/*%FSM</STATEINIT""">*/;
      precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
      class Links
      {
        /*%FSM<LINK "Too_Long">*/
        class Too_Long
        {
          priority = 0.000000;
          to="Disconnect";
          precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
          condition=/*%FSM<CONDITION""">*/"(diag_tickTime - _myTime) > 10"/*%FSM</CONDITION""">*/;
          action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
        };
        /*%FSM</LINK>*/
      };
    };
    /*%FSM</STATE>*/
    /*%FSM<STATE "Phase_One">*/
    class Phase_One
    {
      name = "Phase_One";
      init = /*%FSM<STATEINIT""">*/"dayz_playerName = name player;" \n
       "_model call player_switchModel;" \n
       "" \n
       "player allowDamage false;" \n
       "_lastAte = _survival select 1;" \n
       "_lastDrank = _survival select 2;" \n
       "" \n
       "_usedFood = 0;" \n
       "_usedWater = 0;" \n
       "" \n
       "dayzGearSave = false;" \n
       "_inventory call player_gearSet;" \n
       "" \n
       "//player addMagazine ""7Rnd_45ACP_1911"";" \n
       "" \n
       "//Assess in backpack" \n
       "if (count _backpack > 0) then {" \n
       "	//Populate" \n
       "	_backpackType = 	_backpack select 0;" \n
       "	_backpackWpn = 		_backpack select 1;" \n
       "	_backpackMagTypes = [];" \n
       "	_backpackMagQty = [];" \n
       "	if (count _backpackWpn > 0) then {" \n
       "		_backpackMagTypes = (_backpack select 2) select 0;" \n
       "		_backpackMagQty = 	(_backpack select 2) select 1;" \n
       "	};" \n
       "	_countr = 0;" \n
       "	_backpackWater = 0;" \n
       "" \n
       "	//Add backpack" \n
       "	if (_backpackType != """") then {" \n
       "		_isOK = 	isClass(configFile >> ""CfgVehicles"" >>_backpackType);" \n
       "		if (_isOK) then {" \n
       "			player addBackpack _backpackType; " \n
       "			dayz_myBackpack =	unitBackpack player;" \n
       "			" \n
       "			//Fill backpack contents" \n
       "			//Weapons" \n
       "			_backpackWpnTypes = [];" \n
       "			_backpackWpnQtys = [];" \n
       "			if (count _backpackWpn > 0) then {" \n
       "				_backpackWpnTypes = _backpackWpn select 0;" \n
       "				_backpackWpnQtys = 	_backpackWpn select 1;" \n
       "			};" \n
       "			_countr = 0;" \n
       "			{" \n
       "				if(_x in (DZE_REPLACE_WEAPONS select 0)) then {" \n
       "					_x = (DZE_REPLACE_WEAPONS select 1) select ((DZE_REPLACE_WEAPONS select 0) find _x);" \n
       "				};" \n
       "				dayz_myBackpack addWeaponCargoGlobal [_x,(_backpackWpnQtys select _countr)];" \n
       "				_countr = _countr + 1;" \n
       "			} forEach _backpackWpnTypes;" \n
       "			" \n
       "			//Magazines" \n
       "			_countr = 0;" \n
       "			{" \n
       "				if (_x == ""BoltSteel"") then { _x = ""WoodenArrow"" }; // Convert BoltSteel to WoodenArrow" \n
       "				if (_x == ""ItemTent"") then { _x = ""ItemTentOld"" };" \n
       "				dayz_myBackpack addMagazineCargoGlobal [_x,(_backpackMagQty select _countr)];" \n
       "				_countr = _countr + 1;" \n
       "			} forEach _backpackMagTypes;" \n
       "			" \n
       "			dayz_myBackpackMags =	getMagazineCargo dayz_myBackpack;" \n
       "			dayz_myBackpackWpns =	getWeaponCargo dayz_myBackpack;" \n
       "		} else {" \n
       "			dayz_myBackpack		=	objNull;" \n
       "			dayz_myBackpackMags = [];" \n
       "			dayz_myBackpackWpns = [];" \n
       "		};" \n
       "	} else {" \n
       "		dayz_myBackpack		=	objNull;" \n
       "		dayz_myBackpackMags =	[];" \n
       "		dayz_myBackpackWpns =	[];" \n
       "	};" \n
       "} else {" \n
       "	dayz_myBackpack		=	objNull;" \n
       "	dayz_myBackpackMags =	[];" \n
       "	dayz_myBackpackWpns =	[];" \n
       "};" \n
       "" \n
       "dayzPlayerLogin2 = [];" \n
       "//[""PVDZE_plr_Login2"",[_charID,player,_playerUID]] call callRpcProcedure;" \n
       "" \n
       "PVDZE_plr_Login2 = [_charID,player,_playerUID];" \n
       "publicVariableServer ""PVDZE_plr_Login2"";" \n
       "" \n
       "dayz_loadScreenMsg =  ""Requesting Character data from server"";" \n
       "progressLoadingScreen 0.9;" \n
       "if (_debug) then {" \n
       "diag_log ""Attempting Phase two..."";" \n
       "};"/*%FSM</STATEINIT""">*/;
      precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
      class Links
      {
        /*%FSM<LINK "Response">*/
        class Response
        {
          priority = 0.000000;
          to="Phase_Two";
          precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
          condition=/*%FSM<CONDITION""">*/"count (dayzPlayerLogin2) > 0"/*%FSM</CONDITION""">*/;
          action=/*%FSM<ACTION""">*/"_msg = 		player getVariable[""worldspace"",[]];"/*%FSM</ACTION""">*/;
        };
        /*%FSM</LINK>*/
      };
    };
    /*%FSM</STATE>*/
    /*%FSM<STATE "Phase_Two">*/
    class Phase_Two
    {
      name = "Phase_Two";
      init = /*%FSM<STATEINIT""">*/"dayz_loadScreenMsg =  ""Character Data received from server""; " \n
       "if (_debug) then {" \n
       "diag_log ""Finished..."";" \n
       "};" \n
       "_worldspace = 	dayzPlayerLogin2 select 0;" \n
       "_state =			dayzPlayerLogin2 select 1;" \n
       "" \n
       "_setDir = 			_worldspace select 0;" \n
       "_setPos = 			_worldspace select 1;" \n
       "" \n
       "if (isNil ""freshSpawn"") then {" \n
       "	freshSpawn = 0;" \n
       "};" \n
       "" \n
       "if(dayz_paraSpawn and (freshSpawn == 2)) then {" \n
       "	player setDir _setDir;" \n
       "	player setPosATL [(_setPos select 0),(_setPos select 1),2000];" \n
       "	[player,2000] spawn BIS_fnc_halo;" \n
       "} else {" \n
       "" \n
       "	// make protective box" \n
       "	DZE_PROTOBOX = createVehicle [""DebugBoxPlayer_DZ"", _setPos, [], 0, ""CAN_COLLIDE""];" \n
       "	DZE_PROTOBOX setDir _setDir;" \n
       "	DZE_PROTOBOX setPosATL _setPos;" \n
       "" \n
       "	player setDir _setDir;" \n
       "	player setPosATL _setPos;" \n
       "};" \n
       "" \n
       "{" \n
       "	if (player getVariable[""hit_""+_x,false]) then { " \n
       "		[player,_x,_x] spawn fnc_usec_damageBleed; " \n
       "		usecBleed = [player,_x,_x];" \n
       "		publicVariable ""usecBleed""; // draw blood stream on character, on all gameclients" \n
       "	};" \n
       "} forEach USEC_typeOfWounds;" \n
       "//Legs and Arm fractures" \n
       "_legs = player getVariable [""hit_legs"",0];" \n
       "_arms = player getVariable [""hit_hands"",0];" \n
       "" \n
       "if (_legs > 1) then {" \n
       "	player setHit[""legs"",1];" \n
       "	r_fracture_legs = true;" \n
       "};" \n
       "if (_arms > 1) then {" \n
       "	player setHit[""hands"",1];" \n
       "	r_fracture_arms = true;" \n
       "};" \n
       "" \n
       "//Record current weapon state" \n
       "dayz_myWeapons = 		weapons player;		//Array of last checked weapons" \n
       "dayz_myItems = 			items player;		//Array of last checked items" \n
       "dayz_myMagazines = 	magazines player;" \n
       "" \n
       "dayz_playerUID = _playerUID;" \n
       "" \n
       "if ((_isNew) OR (count _inventory == 0)) then {" \n
       "	//player is new, add initial loadout only if player is not pzombie" \n
       "	if(!(player isKindOf ""PZombie_VB"")) then {" \n
       "		_config = (configFile >> ""CfgSurvival"" >> ""Inventory"" >> ""Default"");" \n
       "		_mags = getArray (_config >> ""magazines"");" \n
       "		_wpns = getArray (_config >> ""weapons"");		" \n
       "		_bcpk = getText (_config >> ""backpack"");" \n
       "		_bcpkWpn = getText (_config >> ""backpackWeapon"");" \n
       "		if(!isNil ""DefaultMagazines"") then {" \n
       "			_mags = DefaultMagazines;" \n
       "		};" \n
       "		if(!isNil ""DefaultWeapons"") then {" \n
       "			_wpns = DefaultWeapons;" \n
       "		};" \n
       "		if(!isNil ""DefaultBackpack"") then {" \n
       "			_bcpk = DefaultBackpack;" \n
       "		};" \n
       "		if(!isNil ""DefaultBackpackWeapon"") then {" \n
       "			_bcpkWpn = DefaultBackpackWeapon;" \n
       "		};" \n
       "		//Add inventory" \n
       "		{" \n
       "			_isOK = 	isClass(configFile >> ""CfgMagazines"" >> _x);" \n
       "			if (_isOK) then {" \n
       "				player addMagazine _x;" \n
       "			};" \n
       "		} forEach _mags;" \n
       "		{" \n
       "			_isOK = 	isClass(configFile >> ""CfgWeapons"" >> _x);" \n
       "			if (_isOK) then {" \n
       "				player addWeapon _x;" \n
       "			};" \n
       "		} forEach _wpns;" \n
       "		" \n
       "		if (_bcpk != """") then {" \n
       "			player addBackpack _bcpk; " \n
       "			dayz_myBackpack =	unitBackpack player;" \n
       "		};" \n
       "		if (_bcpkWpn != """") then {" \n
       "			dayz_myBackpack addWeaponCargoGlobal [_bcpkWpn,1];" \n
       "		};" \n
       "	};" \n
       "};" \n
       "" \n
       "//Work out survival time" \n
       "_totalMins = _survival select 0;" \n
       "_days = floor (_totalMins / 1440);" \n
       "_totalMins = (_totalMins - (_days * 1440));" \n
       "_hours = floor (_totalMins / 60);" \n
       "_mins =  (_totalMins - (_hours * 60));" \n
       "" \n
       "//player variables" \n
       "dayz_characterID =		_charID;" \n
       "dayz_hasFire = 			objNull;		//records players Fireplace object" \n
       "dayz_myCursorTarget = 	objNull;" \n
       "dayz_myPosition = 		getPosATL player;	//Last recorded position" \n
       "dayz_lastMeal =			(_lastAte * 60);" \n
       "dayz_lastDrink =		(_lastDrank * 60);" \n
       "dayz_zombiesLocal = 	0;			//Used to record how many local zombies being tracked" \n
       "dayz_Survived = _days;  //total alive dayz" \n
       "" \n
       "//load in medical details" \n
       "r_player_dead = 		player getVariable[""USEC_isDead"",false];" \n
       "r_player_unconscious = 	player getVariable[""NORRN_unconscious"", false];" \n
       "r_player_infected =	player getVariable[""USEC_infected"",false];" \n
       "r_player_injured = 	player getVariable[""USEC_injured"",false];" \n
       "r_player_inpain = 		player getVariable[""USEC_inPain"",false];" \n
       "r_player_cardiac = 	player getVariable[""USEC_isCardiac"",false];" \n
       "r_player_lowblood =	player getVariable[""USEC_lowBlood"",false];" \n
       "r_player_blood = 		player getVariable[""USEC_BloodQty"",r_player_bloodTotal];" \n
       "" \n
       "//Hunger/Thirst" \n
       "_messing =			player getVariable[""messing"",[0,0]];" \n
       "dayz_hunger = 	_messing select 0;" \n
       "dayz_thirst = 		_messing select 1;" \n
       "" \n
       "//player setVariable [""humanity"",-3000, true];"/*%FSM</STATEINIT""">*/;
      precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
      class Links
      {
        /*%FSM<LINK "Alive">*/
        class Alive
        {
          priority = 0.000000;
          to="Position";
          precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
          condition=/*%FSM<CONDITION""">*/"!r_player_dead"/*%FSM</CONDITION""">*/;
          action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
        };
        /*%FSM</LINK>*/
        /*%FSM<LINK "Dead_Player">*/
        class Dead_Player
        {
          priority = 0.000000;
          to="ERROR__Player_Already";
          precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
          condition=/*%FSM<CONDITION""">*/"r_player_dead"/*%FSM</CONDITION""">*/;
          action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
        };
        /*%FSM</LINK>*/
      };
    };
    /*%FSM</STATE>*/
    /*%FSM<STATE "ERROR__Player_Already">*/
    class ERROR__Player_Already
    {
      name = "ERROR__Player_Already";
      init = /*%FSM<STATEINIT""">*/"endLoadingScreen;" \n
       "selectNoPlayer;" \n
       "_myTime = diag_tickTime;" \n
       ""/*%FSM</STATEINIT""">*/;
      precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
      class Links
      {
        /*%FSM<LINK "Too_Long">*/
        class Too_Long
        {
          priority = 0.000000;
          to="Disconnect";
          precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
          condition=/*%FSM<CONDITION""">*/"(diag_tickTime - _myTime) > 10"/*%FSM</CONDITION""">*/;
          action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
        };
        /*%FSM</LINK>*/
      };
    };
    /*%FSM</STATE>*/
    /*%FSM<STATE "Position">*/
    class Position
    {
      name = "Position";
      init = /*%FSM<STATEINIT""">*/"//Location" \n
       "_myLoc = getPosATL player;" \n
       "" \n
       "dayz_loadScreenMsg = ""Setup Completed, please wait..."";" \n
       "" \n
       "//GUI" \n
       "3 cutRsc [""playerStatusGUI"", ""PLAIN"",0];" \n
       "//5 cutRsc [""playerKillScore"", ""PLAIN"",2];" \n
       "" \n
       "//Update GUI" \n
       "call player_updateGui;" \n
       "_id = [] spawn {" \n
       "	disableSerialization;" \n
       "	_display = uiNamespace getVariable 'DAYZ_GUI_display';" \n
       "	_control = 	_display displayCtrl 1204;" \n
       "	_control ctrlShow false;" \n
       "	if (!r_player_injured) then {" \n
       "		_ctrlBleed = 	_display displayCtrl 1303;" \n
       "		_ctrlBleed ctrlShow false;" \n
       "	};" \n
       "	if (!r_fracture_legs and !r_fracture_arms) then {" \n
       "		_ctrlFracture = 	_display displayCtrl 1203;" \n
       "		_ctrlFracture ctrlShow false;" \n
       "	};" \n
       "};" \n
       "" \n
       "call ui_changeDisplay;"/*%FSM</STATEINIT""">*/;
      precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
      class Links
      {
        /*%FSM<LINK "Bad_Version">*/
        class Bad_Version
        {
          priority = 0.000000;
          to="ERROR__Bad_Versi";
          precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
          condition=/*%FSM<CONDITION""">*/"_version != dayz_versionNo"/*%FSM</CONDITION""">*/;
          action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
        };
        /*%FSM</LINK>*/
        /*%FSM<LINK "Version_Ok">*/
        class Version_Ok
        {
          priority = 0.000000;
          to="Stream";
          precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
          condition=/*%FSM<CONDITION""">*/"_version == dayz_versionNo"/*%FSM</CONDITION""">*/;
          action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
        };
        /*%FSM</LINK>*/
      };
    };
    /*%FSM</STATE>*/
    /*%FSM<STATE "Load_In">*/
    class Load_In
    {
      name = "Load_In";
      init = /*%FSM<STATEINIT""">*/"//Reveal action types" \n
       "" \n
       "{player reveal _x} forEach (nearestObjects [getPosATL player, dayz_reveal, 50]);" \n
       "" \n
       "dayz_clientPreload = true;" \n
       "3 fadeSound 1;" \n
       "1 cutText ["""", ""PLAIN""];" \n
       "0 fadeMusic 0.5;" \n
       "" \n
       "//Check mission objects" \n
       "{ " \n
       "	if (typeOf _x == ""RoadFlare"") then { " \n
       "		_id = [_x,0] spawn object_roadFlare " \n
       "	} else {" \n
       "		 _id = [_x,1] spawn object_roadFlare " \n
       "	};" \n
       " } forEach (allMissionObjects ""LitObject"");"/*%FSM</STATEINIT""">*/;
      precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
      class Links
      {
        /*%FSM<LINK "Display_Ready">*/
        class Display_Ready
        {
          priority = 0.000000;
          to="Preload_Display";
          precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
          condition=/*%FSM<CONDITION""">*/"!(isNull (findDisplay 46))"/*%FSM</CONDITION""">*/;
          action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
        };
        /*%FSM</LINK>*/
      };
    };
    /*%FSM</STATE>*/
    /*%FSM<STATE "ERROR__Bad_Versi">*/
    class ERROR__Bad_Versi
    {
      name = "ERROR__Bad_Versi";
      init = /*%FSM<STATEINIT""">*/"endLoadingScreen;" \n
       "selectNoPlayer;" \n
       "_myTime = diag_tickTime;" \n
       "" \n
       "dayz_loadScreenMsg = ""You are running an incorrect version, please download update from dayzepoch.com."";" \n
       "" \n
       "1 cutText [format[localize ""str_player_18"",dayz_versionNo,_version], ""PLAIN""];" \n
       "" \n
       "progressLoadingScreen 0.5;"/*%FSM</STATEINIT""">*/;
      precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
      class Links
      {
        /*%FSM<LINK "Too_Long">*/
        class Too_Long
        {
          priority = 0.000000;
          to="get_ready_to_clo_1";
          precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
          condition=/*%FSM<CONDITION""">*/"(diag_tickTime - _myTime) > 5"/*%FSM</CONDITION""">*/;
          action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
        };
        /*%FSM</LINK>*/
      };
    };
    /*%FSM</STATE>*/
    /*%FSM<STATE "Preload_Display">*/
    class Preload_Display
    {
      name = "Preload_Display";
      init = /*%FSM<STATEINIT""">*/"dayz_lastCheckBit = 0;" \n
       "" \n
       "(findDisplay 46) displayAddEventHandler [""KeyDown"",""_this call dayz_spaceInterrupt""];" \n
       "player disableConversation true;" \n
       "" \n
       "eh_player_killed = player addeventhandler [""FiredNear"",{_this call player_weaponFiredNear;} ];" \n
       "//_eh_combat_projectilenear = player addEventHandler [""IncomingFire"",{_this call player_projectileNear;}];" \n
       "" \n
       "//Select Weapon" \n
       "// Desc: select default weapon & handle multiple muzzles" \n
       "_playerObjName = format[""PVDZE_player%1"",_playerUID];" \n
       "call compile format[""PVDZE_player%1 = player;"",_playerUID];" \n
       "////diag_log (format[""player%1 = player"",_playerUID]);" \n
       "publicVariableServer _playerObjName;" \n
       "" \n
       "//_state = player getVariable[""state"",[]];" \n
       "_currentWpn = """";" \n
       "_currentAnim = """";" \n
       "if (count _state > 0) then {" \n
       "	//Reload players state" \n
       "	_currentWpn		=	_state select 0;" \n
       "	_currentAnim	=	_state select 1;" \n
       "	//Reload players state" \n
       "	if (count _state > 2) then {" \n
       "		dayz_temperatur = _state select 2;" \n
       "	}; " \n
       "	if ((count _state > 3) and DZE_FriendlySaving) then {" \n
       "		DZE_Friends = _state select 3;" \n
       "	}; " \n
       "} else {" \n
       "	_currentWpn	=	""Makarov"";" \n
       "	_currentAnim	=	""aidlpercmstpsraswpstdnon_player_idlesteady02"";" \n
       "};" \n
       "" \n
       "if (player hasWeapon ""MeleeCrowbar"") then {" \n
       "	player removeMagazine 'crowbar_swing';	" \n
       "	player addMagazine 'crowbar_swing';" \n
       "};" \n
       "if (player hasWeapon ""MeleeSledge"") then {" \n
       "	player removeMagazine 'sledge_swing';	" \n
       "	player addMagazine 'sledge_swing';" \n
       "};" \n
       "if (player hasWeapon ""MeleeHatchet_DZE"") then {" \n
       "	player removeMagazine 'Hatchet_Swing';		" \n
       "	player addMagazine 'Hatchet_Swing';" \n
       "};" \n
       "if (player hasWeapon ""MeleeMachete"") then {" \n
       "	player removeMagazine 'Machete_Swing';		" \n
       "	player addMagazine 'Machete_Swing';" \n
       "};" \n
       "if (player hasWeapon ""MeleeFishingPole"") then {" \n
       "	player removeMagazine 'Fishing_Swing';		" \n
       "	player addMagazine 'Fishing_Swing';" \n
       "};" \n
       "" \n
       "reload player;" \n
       "" \n
       "if (_currentAnim != """" and !dayz_paraSpawn) then {" \n
       "	[objNull, player, rSwitchMove,_currentAnim] call RE;" \n
       "};" \n
       "" \n
       "if (_currentWpn != """") then {" \n
       "	player selectWeapon _currentWpn;" \n
       "} else {" \n
       "	//Establish default weapon" \n
       "	if (count weapons player > 0) then" \n
       "	{" \n
       "		private['_type', '_muzzles'];" \n
       "" \n
       "		_type = ((weapons player) select 0);" \n
       "		// check for multiple muzzles (eg: GL)" \n
       "		_muzzles = getArray(configFile >> ""cfgWeapons"" >> _type >> ""muzzles"");" \n
       "" \n
       "		if (count _muzzles > 1) then {" \n
       "			player selectWeapon (_muzzles select 0);" \n
       "		} else {" \n
       "			player selectWeapon _type;" \n
       "		};" \n
       "	};" \n
       "};" \n
       "" \n
       "//Player control loop" \n
       "dayz_monitor1 = [] spawn {" \n
       "	while {true} do {" \n
       "		call player_zombieCheck;" \n
       "		sleep 1;" \n
       "	};" \n
       "};" \n
       "" \n
       ""/*%FSM</STATEINIT""">*/;
      precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
      class Links
      {
        /*%FSM<LINK "Preload_Done">*/
        class Preload_Done
        {
          priority = 0.000000;
          to="Initialize";
          precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
          condition=/*%FSM<CONDITION""">*/"dayz_preloadFinished"/*%FSM</CONDITION""">*/;
          action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
        };
        /*%FSM</LINK>*/
      };
    };
    /*%FSM</STATE>*/
    /*%FSM<STATE "Initialize">*/
    class Initialize
    {
      name = "Initialize";
      init = /*%FSM<STATEINIT""">*/"//Medical" \n
       "dayz_medicalH = 	[] execVM ""\z\addons\dayz_code\medical\init_medical.sqf"";	//Medical Monitor Script (client only)" \n
       "[player] call fnc_usec_damageHandle;" \n
       "if (r_player_unconscious) then {" \n
       "	r_player_timeout = player getVariable[""unconsciousTime"",0];" \n
       "	player playActionNow ""Die"";" \n
       "};" \n
       "player allowDamage true;" \n
       "player enableSimulation true;" \n
       "0 cutText ["""", ""BLACK IN"",3];" \n
       "" \n
       "//Add core tools" \n
       "player addWeapon ""Loot"";" \n
       "player addWeapon ""Flare"";" \n
       "if ((currentWeapon player == """")) then { player action [""SWITCHWEAPON"", player,player,1]; };" \n
       "//load in medical details" \n
       "r_player_dead = 		player getVariable[""USEC_isDead"",false];" \n
       "r_player_unconscious = 	player getVariable[""NORRN_unconscious"", false];" \n
       "r_player_infected =		player getVariable[""USEC_infected"",false];" \n
       "r_player_injured = 		player getVariable[""USEC_injured"",false];" \n
       "r_player_inpain = 		player getVariable[""USEC_inPain"",false];" \n
       "r_player_cardiac = 		player getVariable[""USEC_isCardiac"",false];" \n
       "r_player_lowblood =		player getVariable[""USEC_lowBlood"",false];" \n
       "r_player_blood = 		player getVariable[""USEC_BloodQty"",r_player_bloodTotal];" \n
       "" \n
       """colorCorrections"" ppEffectEnable true;" \n
       """colorCorrections"" ppEffectAdjust [1, 1, 0, [1, 1, 1, 0.0], [1, 1, 1, 1 min (4*r_player_blood/3/r_player_bloodTotal)],  [1, 1, 1, 0.0]];" \n
       """colorCorrections"" ppEffectCommit 0;" \n
       "" \n
       "dayz_gui = [] spawn {" \n
       "	private[""_distance""];" \n
       "	dayz_musicH = [] spawn player_music;" \n
       "	_wasInVehicle = false;" \n
       "	_thisVehicle = objNull;" \n
       "	while {true} do {" \n
       "		_array = player call world_surfaceNoise;" \n
       "		dayz_surfaceNoise = _array select 1;" \n
       "		dayz_surfaceType = 	_array select 0;" \n
       "" \n
       "		call player_checkStealth;" \n
       "		dayz_statusArray = [] call player_updateGui;" \n
       "" \n
       "		_vehicle = vehicle player;" \n
       "		if (_vehicle != player) then {" \n
       "			_wasInVehicle = true;" \n
       "			_thisVehicle = _vehicle;" \n
       "        	} else {" \n
       "			if (_wasInVehicle) then {" \n
       "				_wasInVehicle = false;" \n
       "				_thisVehicle call player_antiWall;" \n
       "			};" \n
       "		};" \n
       "		sleep 0.2;" \n
       "	};" \n
       "};" \n
       "" \n
       "dayzGearSave = true;" \n
       "" \n
       "dayz_slowCheck = 	[] spawn player_spawn_2;" \n
       "" \n
       "_world = toUpper(worldName); //toUpper(getText (configFile >> ""CfgWorlds"" >> (worldName) >> ""description""));" \n
       "_nearestCity = nearestLocations [getPos player, [""NameCityCapital"",""NameCity"",""NameVillage"",""NameLocal""],1000];" \n
       "Dayz_logonTown = ""Wilderness"";" \n
       "" \n
       "if (count _nearestCity > 0) then {Dayz_logonTown = text (_nearestCity select 0)};" \n
       "" \n
       "_first = [_world,Dayz_logonTown,localize (""str_player_06"") + "" "" + str(_days)] spawn BIS_fnc_infoText;" \n
       "" \n
       "Dayz_logonTime = daytime;" \n
       "Dayz_logonDate = dayz_Survived;" \n
       "" \n
       "dayz_animalCheck = 	[] spawn player_spawn_1;" \n
       "" \n
       "dayz_spawnCheck = [] spawn {" \n
       "	while {true} do {" \n
       "		[""both""] call player_spawnCheck;" \n
       "		sleep 8;" \n
       "	};" \n
       "};" \n
       "" \n
       "dayz_Totalzedscheck = [] spawn {" \n
       "	while {true} do {" \n
       "		dayz_maxCurrentZeds = {alive _x} count entities ""zZombie_Base"";" \n
       "		sleep 60;" \n
       "	};" \n
       "};" \n
       "" \n
       "dayz_backpackcheck = [] spawn {" \n
       "	while {true} do {" \n
       "		call player_dumpBackpack;" \n
       "		sleep 1;" \n
       "	};" \n
       "};" \n
       "" \n
       "// TODO: questionably" \n
       "{ _x call fnc_veh_ResetEH; } forEach vehicles;" \n
       "" \n
       "private[""_fadeFire""];" \n
       "{" \n
       "	_fadeFire = _x getVariable['fadeFire', true];" \n
       "	if (!_fadeFire) then {" \n
       "		_nul = [_x,2,0,false,false] spawn BIS_Effects_Burn;" \n
       "	};" \n
       "} forEach entities ""SpawnableWreck"";" \n
       "" \n
       "// remove box " \n
       "[] spawn {" \n
       "	private [""_counter""];" \n
       "	_counter = 0;" \n
       "	while {true} do {" \n
       "		if ((player getVariable[""combattimeout"", 0] >= time) or (_counter >= 60) or (player distance DZE_PROTOBOX > 2)) exitWith {" \n
       "			deleteVehicle DZE_PROTOBOX;" \n
       "		};" \n
       "		sleep 1;" \n
       "		_counter = _counter + 1;" \n
       "	};" \n
       "};"/*%FSM</STATEINIT""">*/;
      precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
      class Links
      {
        /*%FSM<LINK "No_time_date">*/
        class No_time_date
        {
          priority = 0.000000;
          to="ERROR__No_Date_or";
          precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
          condition=/*%FSM<CONDITION""">*/"!isNil ""PVDZE_plr_SetDate"""/*%FSM</CONDITION""">*/;
          action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
        };
        /*%FSM</LINK>*/
        /*%FSM<LINK "True">*/
        class True
        {
          priority = 0.000000;
          to="Finish";
          precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
          condition=/*%FSM<CONDITION""">*/""/*%FSM</CONDITION""">*/;
          action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
        };
        /*%FSM</LINK>*/
      };
    };
    /*%FSM</STATE>*/
    /*%FSM<STATE "Finish">*/
    class Finish
    {
      name = "Finish";
      init = /*%FSM<STATEINIT""">*/"dayzGearSave = true;" \n
       "dayz_myPosition = getPosATL player;" \n
       "" \n
       "//[""PVDZE_plr_LoginRecord"",[_playerUID,_charID,0]] call callRpcProcedure;" \n
       "" \n
       "PVDZE_plr_LoginRecord = [_playerUID,_charID,0];" \n
       "publicVariableServer ""PVDZE_plr_LoginRecord"";" \n
       "" \n
       "endLoadingScreen;" \n
       ""/*%FSM</STATEINIT""">*/;
      precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
      class Links
      {
      };
    };
    /*%FSM</STATE>*/
    /*%FSM<STATE "Enable_Sim">*/
    class Enable_Sim
    {
      name = "Enable_Sim";
      init = /*%FSM<STATEINIT""">*/"if (_debug) then {" \n
       "diag_log (""PLOGIN: Enable Sim"");" \n
       "};" \n
       "" \n
       "_myEpochAnim = getText(configFile >> ""CfgPatches"" >> ""dayz_anim"" >> ""dayzVersion"");" \n
       "_myEpoch = getText(configFile >> ""CfgPatches"" >> ""dayz_epoch"" >> ""dayzVersion"");" \n
       "_myEpochB = getText(configFile >> ""CfgPatches"" >> ""dayz_epoch_b"" >> ""dayzVersion"");" \n
       "_myEpochSfx = getText(configFile >> ""CfgPatches"" >> ""dayz_sfx"" >> ""dayzVersion"");" \n
       "" \n
       "" \n
       "player enableSimulation true;"/*%FSM</STATEINIT""">*/;
      precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
      class Links
      {
        /*%FSM<LINK "no_PlayerID">*/
        class no_PlayerID
        {
          priority = 2.000000;
          to="ERROR__No_Player_1";
          precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
          condition=/*%FSM<CONDITION""">*/"(_myEpochAnim != ""1.0.4"") || (_myEpoch != ""1.0.4"") || (_myEpochB != ""1.0.4.1"") || (_myEpochSfx != ""1.0.4.1"")"/*%FSM</CONDITION""">*/;
          action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
        };
        /*%FSM</LINK>*/
        /*%FSM<LINK "player_not_null">*/
        class player_not_null
        {
          priority = 0.000000;
          to="Prepare";
          precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
          condition=/*%FSM<CONDITION""">*/"!isNull player"/*%FSM</CONDITION""">*/;
          action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
        };
        /*%FSM</LINK>*/
      };
    };
    /*%FSM</STATE>*/
    /*%FSM<STATE "Gender_Selection">*/
    class Gender_Selection
    {
      name = "Gender_Selection";
      init = /*%FSM<STATEINIT""">*/"dayz_selectGender = ""Survivor2_DZ"";" \n
       "1 cutText ["""", ""BLACK"",0];" \n
       "endLoadingScreen;" \n
       "createDialog ""RscDisplayGenderSelect"";" \n
       "freshSpawn = 2;"/*%FSM</STATEINIT""">*/;
      precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
      class Links
      {
        /*%FSM<LINK "Selected">*/
        class Selected
        {
          priority = 0.000000;
          to="Process";
          precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
          condition=/*%FSM<CONDITION""">*/"!dialog"/*%FSM</CONDITION""">*/;
          action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
        };
        /*%FSM</LINK>*/
      };
    };
    /*%FSM</STATE>*/
    /*%FSM<STATE "Process">*/
    class Process
    {
      name = "Process";
      init = /*%FSM<STATEINIT""">*/"_model = dayz_selectGender;"/*%FSM</STATEINIT""">*/;
      precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
      class Links
      {
        /*%FSM<LINK "Hive_Ok">*/
        class Hive_Ok
        {
          priority = 0.000000;
          to="Phase_One";
          precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
          condition=/*%FSM<CONDITION""">*/"true"/*%FSM</CONDITION""">*/;
          action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
        };
        /*%FSM</LINK>*/
      };
    };
    /*%FSM</STATE>*/
    /*%FSM<STATE "ERROR__No_Player_1">*/
    class ERROR__No_Player_1
    {
      name = "ERROR__No_Player_1";
      init = /*%FSM<STATEINIT""">*/"endLoadingScreen;" \n
       "selectNoPlayer;" \n
       "_myTime = diag_tickTime;" \n
       "1 cutText [(localize ""str_epoch_player_113""), ""PLAIN"",15];"/*%FSM</STATEINIT""">*/;
      precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
      class Links
      {
        /*%FSM<LINK "Too_Long">*/
        class Too_Long
        {
          priority = 0.000000;
          to="Disconnect";
          precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
          condition=/*%FSM<CONDITION""">*/"(diag_tickTime - _myTime) > 10"/*%FSM</CONDITION""">*/;
          action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
        };
        /*%FSM</LINK>*/
      };
    };
    /*%FSM</STATE>*/
    /*%FSM<STATE "Stream">*/
    class Stream
    {
      name = "Stream";
      init = /*%FSM<STATEINIT""">*/"//stream in location" \n
       "//[false] call stream_locationCheck;" \n
       "" \n
       "_zombies = (getPosATL player) nearEntities [""zZombie_Base"",25];" \n
       "{deleteVehicle _x} forEach _zombies;" \n
       "" \n
       "endLoadingScreen;"/*%FSM</STATEINIT""">*/;
      precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
      class Links
      {
        /*%FSM<LINK "Preloaded">*/
        class Preloaded
        {
          priority = 0.000000;
          to="Load_In";
          precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
          condition=/*%FSM<CONDITION""">*/"preloadCamera _setPos"/*%FSM</CONDITION""">*/;
          action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
        };
        /*%FSM</LINK>*/
      };
    };
    /*%FSM</STATE>*/
    /*%FSM<STATE "Retry">*/
    class Retry
    {
      name = "Retry";
      init = /*%FSM<STATEINIT""">*/"diag_log (""PLOGIN: Retrying Authentication... ("" + _playerUID + "")"");" \n
       "dayz_loadScreenMsg = (localize ""str_player_14"");" \n
       "" \n
       "_AuthAttempt = _AuthAttempt +1;" \n
       "" \n
       "_myTime = diag_tickTime;"/*%FSM</STATEINIT""">*/;
      precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
      class Links
      {
        /*%FSM<LINK "auth_failed">*/
        class auth_failed
        {
          priority = 0.000000;
          to="get_ready_to_clo";
          precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
          condition=/*%FSM<CONDITION""">*/"_AuthAttempt > 5"/*%FSM</CONDITION""">*/;
          action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
        };
        /*%FSM</LINK>*/
        /*%FSM<LINK "Retry">*/
        class Retry
        {
          priority = 0.000000;
          to="Request";
          precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
          condition=/*%FSM<CONDITION""">*/"(diag_tickTime - _myTime) > 5"/*%FSM</CONDITION""">*/;
          action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
        };
        /*%FSM</LINK>*/
      };
    };
    /*%FSM</STATE>*/
    /*%FSM<STATE "get_ready_to_clo">*/
    class get_ready_to_clo
    {
      name = "get_ready_to_clo";
      init = /*%FSM<STATEINIT""">*/"diag_log (""PLOGIN: Authentication Failed ("" + _playerUID + "")"");" \n
       "dayz_loadScreenMsg = (localize ""str_player_32"");" \n
       "" \n
       "progressLoadingScreen 1;" \n
       "" \n
       "_myTime = diag_tickTime;"/*%FSM</STATEINIT""">*/;
      precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
      class Links
      {
        /*%FSM<LINK "sleep_">*/
        class sleep_
        {
          priority = 0.000000;
          to="Disconnect";
          precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
          condition=/*%FSM<CONDITION""">*/"(diag_tickTime - _myTime) > 2"/*%FSM</CONDITION""">*/;
          action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
        };
        /*%FSM</LINK>*/
      };
    };
    /*%FSM</STATE>*/
    /*%FSM<STATE "Disconnect">*/
    class Disconnect
    {
      name = "Disconnect";
      init = /*%FSM<STATEINIT""">*/"endLoadingScreen;" \n
       "" \n
       "// disable player interaction and move him off site" \n
       "// player setPos [10,10,100000];" \n
       " player enableSimulation false;" \n
       "" \n
       "diag_log (""End Mission"");" \n
       "" \n
       "//if (!isServer) then {" \n
       "	failMission ""LOSER"";" \n
       "	endMission ""END1""" \n
       "//};"/*%FSM</STATEINIT""">*/;
      precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
      class Links
      {
      };
    };
    /*%FSM</STATE>*/
    /*%FSM<STATE "ERROR__No_Date_or">*/
    class ERROR__No_Date_or
    {
      name = "ERROR__No_Date_or";
      init = /*%FSM<STATEINIT""">*/"endLoadingScreen;" \n
       "selectNoPlayer;" \n
       "_myTime = diag_tickTime;" \n
       "1 cutText [(localize ""str_epoch_player_114""), ""PLAIN"",5];"/*%FSM</STATEINIT""">*/;
      precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
      class Links
      {
        /*%FSM<LINK "Too_Long">*/
        class Too_Long
        {
          priority = 0.000000;
          to="Disconnect";
          precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
          condition=/*%FSM<CONDITION""">*/"(diag_tickTime - _myTime) > 10"/*%FSM</CONDITION""">*/;
          action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
        };
        /*%FSM</LINK>*/
      };
    };
    /*%FSM</STATE>*/
    /*%FSM<STATE "get_ready_to_clo_1">*/
    class get_ready_to_clo_1
    {
      name = "get_ready_to_clo_1";
      init = /*%FSM<STATEINIT""">*/"//diag_log (""PLOGIN:Wrong DayZ Version ("" + dayz_versionNo + "")"");" \n
       "diag_log format[localize ""str_player_18"",dayz_versionNo,_version];" \n
       "" \n
       "dayz_loadScreenMsg = ""You are running an incorrect version of DAYZ_CODE, please download this file from dayzepoch.com."";" \n
       "" \n
       "progressLoadingScreen 1;"/*%FSM</STATEINIT""">*/;
      precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
      class Links
      {
        /*%FSM<LINK "sleep_">*/
        class sleep_
        {
          priority = 0.000000;
          to="Disconnect";
          precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
          condition=/*%FSM<CONDITION""">*/"(diag_tickTime - _myTime) > 5"/*%FSM</CONDITION""">*/;
          action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
        };
        /*%FSM</LINK>*/
      };
    };
    /*%FSM</STATE>*/
    /*%FSM<STATE "Server_Loading">*/
    class Server_Loading
    {
      name = "Server_Loading";
      init = /*%FSM<STATEINIT""">*/"_myTime = diag_tickTime;" \n
       "dayz_loadScreenMsg = (""Waiting for server to start authentication"");" \n
       "if (_debug) then {" \n
       "diag_log ""PLOGIN: Waiting for server to start authentication"";" \n
       "};" \n
       "progressLoadingScreen 0.5;"/*%FSM</STATEINIT""">*/;
      precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
      class Links
      {
        /*%FSM<LINK "Server_Ready">*/
        class Server_Ready
        {
          priority = 0.000000;
          to="Request";
          precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
          condition=/*%FSM<CONDITION""">*/"!isNil ""sm_done"""/*%FSM</CONDITION""">*/;
          action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
        };
        /*%FSM</LINK>*/
        /*%FSM<LINK "Too_Long">*/
        class Too_Long
        {
          priority = 0.000000;
          to="Disconnect";
          precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
          condition=/*%FSM<CONDITION""">*/"(diag_tickTime - _myTime) > 120"/*%FSM</CONDITION""">*/;
          action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
        };
        /*%FSM</LINK>*/
      };
    };
    /*%FSM</STATE>*/
    /*%FSM<STATE "Player_Zombie__S">*/
    class Player_Zombie__S
    {
      name = "Player_Zombie__S";
      init = /*%FSM<STATEINIT""">*/"_zssupported = [""pz_policeman"",""pz_suit1"",""pz_suit2"",""pz_worker1"",""pz_worker2"",""pz_worker3"",""pz_doctor"",""pz_teacher"",""pz_hunter"",""pz_villager1"",""pz_villager2"",""pz_villager3"",""pz_priest""];" \n
       "_model =  (_zssupported select floor(random(count _zssupported)));" \n
       "freshSpawn = 1;"/*%FSM</STATEINIT""">*/;
      precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
      class Links
      {
        /*%FSM<LINK "Hive_Ok">*/
        class Hive_Ok
        {
          priority = 0.000000;
          to="Phase_One";
          precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
          condition=/*%FSM<CONDITION""">*/"true"/*%FSM</CONDITION""">*/;
          action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
        };
        /*%FSM</LINK>*/
      };
    };
    /*%FSM</STATE>*/
  };
  initState="init";
  finalStates[] =
  {
    "Finish",
  };
};
/*%FSM</COMPILE>*/