diff --git a/README.md b/README.md
index 675ea01..97d4768 100644
--- a/README.md
+++ b/README.md
@@ -2,26 +2,23 @@
 #####  UnknownCheats thread: https://www.unknowncheats.me/forum/apex-legends/406426-kvm-vmread-apex-esp-aimbot.html
 #new features
 
-- Xp level ESP
--  seerhealthESP/smooth aimbot from https://kgithub.com/KrackerCo/apex_dma_kvm_pub.
--  platform userid ESP,i also keep one html file,you can input uid to search player's rank,selcet legend.
-> idont know why after i add rank ESP,the client will crash,but i keep void"GetJson", these code are paste from https://www.unknowncheats.me/forum/apex-legends/520061-rank-statistics-players.html,
-if somebody can finish this work, +pull request please
--  support UTF-8 ESP for japanese/chinese
--   free camera
--  client's stream proof,include commandline,you can change it to view offset in client's main.cpp 
-    void ShowWindow
+-  Xp Level ESP
+-  seerhealthESP/some aimbot code,paste from https://github.com/KrackerCo/apex_dma_kvm_pub.
+-  platform userid ESP,use it to search player's rank'.
+> idont know why after add rank ESP,the client will crash,but i keep void"GetJson", these code are paste from https://www.unknowncheats.me/forum/apex-legends/520061-rank-statistics-players.html,
+   if someone can finish it, + pull request please
+-  support UTF-8 ESP for japanese and chinese
+-  free camera
+-  overlay's steam proof by setwindowdisplaffinity
+-  client's stream proof,(hide commandline),check it  in client : main.cpp (void ShowWindow)
 - you can enable aimbot/esp for your teammates
+- press mouse4 to disable visible check
 # how to use
 ## guest
--   use vmprotect or rewrite your own version
+-  to bypass EAC detection,use ctrl+h to replace "serial-string" to anything you want.
 -  release x64, use custom overlay.
 ## linux
- - install 'libcurl' and 'jsoncpp',if cant complie ,check the Makefile
-####  Archlinux
-`    sudo  pacman -S jsoncpp`
-`    sudo  pacman -S curl`
- - for rank esp, you need your own apikey,reg one from apexlegendsapi
- -  what's "add_off"?  , host need it to read the setting of guest,it's in apex_dma.cpp
- 
+ - change no-recoil strength in Game.cpp
+ - for rank esp, you need your own apikey,reg one from apexlegendsapi, use index.html ,input userid to search player's rank
+ -  what's "add_off"?  ,it's in apex_dma.cpp , will display in client's commandline
 * i have no time to  teach about GPU passthrough or how to install this repo, because i only have a few time .....sorry of that*
diff --git a/apex_dma/Game.cpp b/apex_dma/Game.cpp
index 072b92e..64e6b2a 100644
--- a/apex_dma/Game.cpp
+++ b/apex_dma/Game.cpp
@@ -48,64 +48,64 @@ int Entity::getTeamId()
 
 int calc_level(int m_xp)
 {
-	if (m_xp<0) return 0;
-	if (m_xp<100) return 1;
-	if (m_xp<2750) return 2;
-	if (m_xp<6650) return 3;
-	if (m_xp<11400) return 4;
-	if (m_xp<17000) return 5;
-	if (m_xp<23350) return 6;
-	if (m_xp<30450) return 7;
-	if (m_xp<38300) return 8;
-	if (m_xp<46450) return 9;
-	if (m_xp<55050) return 10;
-	if (m_xp<64100) return 11;
-	if (m_xp<73600) return 12;
-	if (m_xp<83550) return 13;
-	if (m_xp<93950) return 14;
-	if (m_xp<104800) return 15;
-	if (m_xp<116100) return 16;
-	if (m_xp<127850) return 17;
-	if (m_xp<140050) return 18;
-	if (m_xp<152400) return 19;
-	if (m_xp<164900) return 20;
-	if (m_xp<177550) return 21;
-	if (m_xp<190350) return 22;
-	if (m_xp<203300) return 23;
-	if (m_xp<216400) return 24;
-	if (m_xp<229650) return 25;
-	if (m_xp<243050) return 26;
-	if (m_xp<256600) return 27;
-	if (m_xp<270300) return 28;
-	if (m_xp<284150) return 29;
-	if (m_xp<298150) return 30;
-	if (m_xp<312300) return 31;
-	if (m_xp<326600) return 32;
-	if (m_xp<341050) return 33;
-	if (m_xp<355650) return 34;
-	if (m_xp<370400) return 35;
-	if (m_xp<385300) return 36;
-	if (m_xp<400350) return 37;
-	if (m_xp<415550) return 38;
-	if (m_xp<430900) return 39;
-	if (m_xp<446400) return 40;
-	if (m_xp<462050) return 41;
-	if (m_xp<477850) return 42;
-	if (m_xp<493800) return 43;
-	if (m_xp<509900) return 44;
-	if (m_xp<526150) return 45;
-	if (m_xp<542550) return 46;
-	if (m_xp<559100) return 47;
-	if (m_xp<575800) return 48;
-	if (m_xp<592650) return 49;
-	if (m_xp<609650) return 50;
-	if (m_xp<626800) return 51;
-	if (m_xp<644100) return 52;
-	if (m_xp<661550) return 53;
-	if (m_xp<679150) return 54;
-	if (m_xp<696900) return 55;
-	if (m_xp<714800) return 56;
-	return floor((m_xp-714800+1)/18000) + 57;
+	if (m_xp < 0) return 0;
+	if (m_xp < 100) return 1;
+	if (m_xp < 2750) return 2;
+	if (m_xp < 6650) return 3;
+	if (m_xp < 11400) return 4;
+	if (m_xp < 17000) return 5;
+	if (m_xp < 23350) return 6;
+	if (m_xp < 30450) return 7;
+	if (m_xp < 38300) return 8;
+	if (m_xp < 46450) return 9;
+	if (m_xp < 55050) return 10;
+	if (m_xp < 64100) return 11;
+	if (m_xp < 73600) return 12;
+	if (m_xp < 83550) return 13;
+	if (m_xp < 93950) return 14;
+	if (m_xp < 104800) return 15;
+	if (m_xp < 116100) return 16;
+	if (m_xp < 127850) return 17;
+	if (m_xp < 140050) return 18;
+	if (m_xp < 152400) return 19;
+	if (m_xp < 164900) return 20;
+	if (m_xp < 177550) return 21;
+	if (m_xp < 190350) return 22;
+	if (m_xp < 203300) return 23;
+	if (m_xp < 216400) return 24;
+	if (m_xp < 229650) return 25;
+	if (m_xp < 243050) return 26;
+	if (m_xp < 256600) return 27;
+	if (m_xp < 270300) return 28;
+	if (m_xp < 284150) return 29;
+	if (m_xp < 298150) return 30;
+	if (m_xp < 312300) return 31;
+	if (m_xp < 326600) return 32;
+	if (m_xp < 341050) return 33;
+	if (m_xp < 355650) return 34;
+	if (m_xp < 370400) return 35;
+	if (m_xp < 385300) return 36;
+	if (m_xp < 400350) return 37;
+	if (m_xp < 415550) return 38;
+	if (m_xp < 430900) return 39;
+	if (m_xp < 446400) return 40;
+	if (m_xp < 462050) return 41;
+	if (m_xp < 477850) return 42;
+	if (m_xp < 493800) return 43;
+	if (m_xp < 509900) return 44;
+	if (m_xp < 526150) return 45;
+	if (m_xp < 542550) return 46;
+	if (m_xp < 559100) return 47;
+	if (m_xp < 575800) return 48;
+	if (m_xp < 592650) return 49;
+	if (m_xp < 609650) return 50;
+	if (m_xp < 626800) return 51;
+	if (m_xp < 644100) return 52;
+	if (m_xp < 661550) return 53;
+	if (m_xp < 679150) return 54;
+	if (m_xp < 696900) return 55;
+	if (m_xp < 714800) return 56;
+	return floor((m_xp - 714800 + 1) / 18000) + 57;
 }
 
 int Entity::getHealth()
@@ -165,7 +165,7 @@ bool Entity::isAlive()
 
 float Entity::lastVisTime()
 {
-  return *(float*)(buffer + OFFSET_VISIBLE_TIME);
+	return *(float*)(buffer + OFFSET_VISIBLE_TIME);
 }
 
 Vector Entity::getBonePosition(int id)
@@ -188,35 +188,35 @@ Vector Entity::getBonePosition(int id)
 Vector Entity::getBonePositionByHitbox(int id)
 {
 	Vector origin = getPosition();
- 
-    //BoneByHitBox
+
+	//BoneByHitBox
 	uint64_t Model = *(uint64_t*)(buffer + OFFSET_STUDIOHDR);
-    
+
 	//get studio hdr
 	uint64_t StudioHdr;
 	apex_mem.Read<uint64_t>(Model + 0x8, StudioHdr);
- 
-    //get hitbox array
+
+	//get hitbox array
 	uint16_t HitboxCache;
 	apex_mem.Read<uint16_t>(StudioHdr + 0x34, HitboxCache);
 	uint64_t HitBoxsArray = StudioHdr + ((uint16_t)(HitboxCache & 0xFFFE) << (4 * (HitboxCache & 1)));
- 
+
 	uint16_t IndexCache;
- 	apex_mem.Read<uint16_t>(HitBoxsArray + 0x4, IndexCache);
+	apex_mem.Read<uint16_t>(HitBoxsArray + 0x4, IndexCache);
 	int HitboxIndex = ((uint16_t)(IndexCache & 0xFFFE) << (4 * (IndexCache & 1)));
- 
+
 	uint16_t Bone;
 	apex_mem.Read<uint16_t>(HitBoxsArray + HitboxIndex + (id * 0x20), Bone);
 
-	if(Bone < 0 || Bone > 255)
+	if (Bone < 0 || Bone > 255)
 		return Vector();
- 
-    //hitpos
+
+	//hitpos
 	uint64_t BoneArray = *(uint64_t*)(buffer + OFFSET_BONES);
- 
+
 	matrix3x4_t Matrix = {};
 	apex_mem.Read<matrix3x4_t>(BoneArray + Bone * sizeof(matrix3x4_t), Matrix);
- 
+
 	return Vector(Matrix.m_flMatVal[0][3] + origin.x, Matrix.m_flMatVal[1][3] + origin.y, Matrix.m_flMatVal[2][3] + origin.z);
 }
 
@@ -241,11 +241,11 @@ float Entity::GetYaw()
 	apex_mem.Read<float>(ptr + OFFSET_YAW, yaw);
 
 	if (yaw < 0)
-    	yaw += 360;
+		yaw += 360;
 	yaw += 90;
 	if (yaw > 360)
-    	yaw -= 360;
-		
+		yaw -= 360;
+
 	return yaw;
 }
 
@@ -298,8 +298,8 @@ QAngle Entity::GetRecoil()
 void Entity::get_name(uint64_t g_Base, uint64_t index, char* name)
 {
 	index *= 0x10;
-    uint64_t name_ptr = 0;
-    apex_mem.Read<uint64_t>(g_Base + OFFSET_NAME_LIST + index, name_ptr);
+	uint64_t name_ptr = 0;
+	apex_mem.Read<uint64_t>(g_Base + OFFSET_NAME_LIST + index, name_ptr);
 	apex_mem.ReadArray<char>(name_ptr, name, 32);
 }
 
@@ -340,10 +340,10 @@ float CalculateFov(Entity& from, Entity& target)
 	return Math::GetFov(ViewAngles, Angle);
 }
 
-QAngle CalculateBestBoneAim(Entity& from, uintptr_t t, float max_fov , int recoil_val)
+QAngle CalculateBestBoneAim(Entity& from, uintptr_t t, float max_fov)
 {
 	Entity target = getEntity(t);
-	if(firing_range)
+	if (firing_range)
 	{
 		if (!target.isAlive())
 		{
@@ -357,11 +357,11 @@ QAngle CalculateBestBoneAim(Entity& from, uintptr_t t, float max_fov , int recoi
 			return QAngle(0, 0, 0);
 		}
 	}
-	
+
 	Vector LocalCamera = from.GetCamPos();
 	Vector TargetBonePosition = target.getBonePositionByHitbox(bone);
 	QAngle CalculatedAngles = QAngle(0, 0, 0);
-	
+
 	WeaponXEntity curweap = WeaponXEntity();
 	curweap.update(from.ptr);
 	float BulletSpeed = curweap.get_projectile_speed();
@@ -385,27 +385,27 @@ QAngle CalculateBestBoneAim(Entity& from, uintptr_t t, float max_fov , int recoi
 		TargetBonePosition += (target.getAbsVelocity() * HorizontalTime);
 	}
 	*/
-	
+
 	//more accurate prediction
 	if (BulletSpeed > 1.f)
 	{
 		PredictCtx Ctx;
 		Ctx.StartPos = LocalCamera;
-		Ctx.TargetPos = TargetBonePosition; 
-		Ctx.BulletSpeed = BulletSpeed - (BulletSpeed*0.08);
-		Ctx.BulletGravity = BulletGrav + (BulletGrav*0.05);
+		Ctx.TargetPos = TargetBonePosition;
+		Ctx.BulletSpeed = BulletSpeed - (BulletSpeed * 0.08);
+		Ctx.BulletGravity = BulletGrav + (BulletGrav * 0.05);
 		Ctx.TargetVel = target.getAbsVelocity();
 
 		if (BulletPredict(Ctx))
-			CalculatedAngles = QAngle{Ctx.AimAngles.x, Ctx.AimAngles.y, 0.f};
-    }
+			CalculatedAngles = QAngle{ Ctx.AimAngles.x, Ctx.AimAngles.y, 0.f };
+	}
 
 	if (CalculatedAngles == QAngle(0, 0, 0))
-    	
+
 	{
-		float random1 = (float)(rand() % 7 + 1)/100;
-                float random2 = (float)(rand() % 7 + 1)/100;
-    		Vector start = LocalCamera;
+		float random1 = (float)(rand() % 7 + 1) / 100;
+		float random2 = (float)(rand() % 7 + 1) / 100;
+		Vector start = LocalCamera;
 		Vector end = TargetBonePosition;
 		Vector dir = (end - start).Normalize();
 		Vector mid1 = start + (dir * ((end - start).Length() * (0.33f + random1)));
@@ -421,13 +421,13 @@ QAngle CalculateBestBoneAim(Entity& from, uintptr_t t, float max_fov , int recoi
 	QAngle ViewAngles = from.GetViewAngles();
 	QAngle SwayAngles = from.GetSwayAngles();
 	//remove sway and recoil
-	if(aim_no_recoil){
-                QAngle sway = SwayAngles - ViewAngles;
-                sway.x = sway.x * recoil_val;   //pitch
-                sway.y = sway.y * recoil_val;  //yaw
-                sway.z = sway.z * recoil_val;
-                CalculatedAngles-=sway;
-        }
+	if (aim_no_recoil) {
+		QAngle sway = SwayAngles - ViewAngles;
+		sway.x = sway.x * 0.8;   //pitch
+		sway.y = sway.y * 0.75;  //yaw
+		sway.z = sway.z * 0.9;
+		CalculatedAngles -= sway;
+	}
 	Math::NormalizeAngles(CalculatedAngles);
 	QAngle Delta = CalculatedAngles - ViewAngles;
 	double fov = Math::GetFov(SwayAngles, CalculatedAngles);
@@ -438,24 +438,24 @@ QAngle CalculateBestBoneAim(Entity& from, uintptr_t t, float max_fov , int recoi
 
 	Math::NormalizeAngles(Delta);
 
-        QAngle RandomAngles = QAngle(
-        (rand() % 5 - 4) * 0.001f,
-        (rand() % 5 - 4) * 0.001f,
-        (rand() % 5 - 4) * 0.001f
-        );
-        QAngle RandomAnglesMax = QAngle(
-        (rand() % 8 - 4) * 0.001f,
-        (rand() % 8 - 4) * 0.001f,
-        (rand() % 8 - 4) * 0.001f
-        );
-        miss = rand() % 100;
-        QAngle SmoothedAngles = ViewAngles + Delta/smooth + RandomAngles;
-        if(miss >= 60){
-        QAngle SmoothedAngles = ViewAngles + Delta/smooth + RandomAnglesMax;
-        }
-        else if(miss <= 50){
-        QAngle SmoothedAngles = ViewAngles + Delta/smooth + RandomAngles;
-        }
+	QAngle RandomAngles = QAngle(
+		(rand() % 4 - 2) * 0.001f,
+		(rand() % 4 - 2) * 0.001f,
+		(rand() % 4 - 2) * 0.001f
+	);
+	QAngle RandomAnglesMax = QAngle(
+		(rand() % 6 - 2) * 0.001f,
+		(rand() % 6 - 2) * 0.001f,
+		(rand() % 6 - 2) * 0.001f
+	);
+	miss = rand() % 100;
+	QAngle SmoothedAngles = ViewAngles + Delta / smooth + RandomAngles;
+	if (miss >= 70) {
+		QAngle SmoothedAngles = ViewAngles + Delta / smooth + RandomAnglesMax;
+	}
+	else {
+		QAngle SmoothedAngles = ViewAngles + Delta / smooth + RandomAngles;
+	}
 
 	return SmoothedAngles;
 }
@@ -503,24 +503,24 @@ bool WorldToScreen(Vector from, float* m_vMatrix, int targetWidth, int targetHei
 
 void WeaponXEntity::update(uint64_t LocalPlayer)
 {
-    extern uint64_t g_Base;
+	extern uint64_t g_Base;
 	uint64_t entitylist = g_Base + OFFSET_ENTITYLIST;
 	uint64_t wephandle = 0;
-    apex_mem.Read<uint64_t>(LocalPlayer + OFFSET_WEAPON, wephandle);
-	
+	apex_mem.Read<uint64_t>(LocalPlayer + OFFSET_WEAPON, wephandle);
+
 	wephandle &= 0xffff;
 
 	uint64_t wep_entity = 0;
-    apex_mem.Read<uint64_t>(entitylist + (wephandle << 5), wep_entity);
+	apex_mem.Read<uint64_t>(entitylist + (wephandle << 5), wep_entity);
 
 	projectile_speed = 0;
-    apex_mem.Read<float>(wep_entity + OFFSET_BULLET_SPEED, projectile_speed);
+	apex_mem.Read<float>(wep_entity + OFFSET_BULLET_SPEED, projectile_speed);
 	projectile_scale = 0;
-    apex_mem.Read<float>(wep_entity + OFFSET_BULLET_SCALE, projectile_scale);
+	apex_mem.Read<float>(wep_entity + OFFSET_BULLET_SCALE, projectile_scale);
 	zoom_fov = 0;
-    apex_mem.Read<float>(wep_entity + OFFSET_ZOOM_FOV, zoom_fov);
+	apex_mem.Read<float>(wep_entity + OFFSET_ZOOM_FOV, zoom_fov);
 	ammo = 0;
-    apex_mem.Read<int>(wep_entity + OFFSET_AMMO, ammo);
+	apex_mem.Read<int>(wep_entity + OFFSET_AMMO, ammo);
 }
 
 float WeaponXEntity::get_projectile_speed()
diff --git a/apex_dma/Game.h b/apex_dma/Game.h
index 4a5f04c..847a1f4 100644
--- a/apex_dma/Game.h
+++ b/apex_dma/Game.h
@@ -59,7 +59,7 @@ public:
 	Vector getPosition();
 	bool isItem();
 	bool isGlowing();
-	
+
 	void enableGlow();
 	void disableGlow();
 };
@@ -94,7 +94,7 @@ Entity getEntity(uintptr_t ptr);
 Item getItem(uintptr_t ptr);
 bool WorldToScreen(Vector from, float* m_vMatrix, int targetWidth, int targetHeight, Vector& to);
 float CalculateFov(Entity& from, Entity& target);
-QAngle CalculateBestBoneAim(Entity& from, uintptr_t target, float max_fov , int recoil_val);
+QAngle CalculateBestBoneAim(Entity& from, uintptr_t target, float max_fov);
 void get_class_name(uint64_t entity_ptr, char* out_str);
 void charge_rifle_hack(uint64_t entity_ptr);
 
diff --git a/apex_dma/Makefile b/apex_dma/Makefile
index f443389..6ed390b 100644
--- a/apex_dma/Makefile
+++ b/apex_dma/Makefile
@@ -1,6 +1,6 @@
 CXX=g++
 CXXFLAGS=-I./memflow_lib/memflow-win32-ffi/ -I./memflow_lib/memflow-ffi/ -L./memflow_lib/target/release -Wno-multichar
-LIBS=-lm -Wl,--no-as-needed -ldl -lpthread -l:libmemflow_win32_ffi.a -lcurl -l:libjsoncpp.so
+LIBS=-lm -Wl,--no-as-needed -ldl -lpthread -l:libmemflow_win32_ffi.a
 
 OUTDIR=./build
 OBJDIR=$(OUTDIR)/obj
diff --git a/apex_dma/Math.cpp b/apex_dma/Math.cpp
index f339e11..41c31be 100644
--- a/apex_dma/Math.cpp
+++ b/apex_dma/Math.cpp
@@ -17,15 +17,15 @@ void Math::NormalizeAngles(QAngle& angle)
 
 Vector Math::Bezier(const Vector& start, const Vector& mid1, const Vector& mid2, const Vector& end, float t)
 {
-    Vector q1 = start + (mid1 - start) * t;
-    Vector q2 = mid1 + (mid2 - mid1) * t;
-    Vector q3 = mid2 + (end - mid2) * t;
+	Vector q1 = start + (mid1 - start) * t;
+	Vector q2 = mid1 + (mid2 - mid1) * t;
+	Vector q3 = mid2 + (end - mid2) * t;
 
-    Vector r1 = q1 + (q2 - q1) * t;
-    Vector r2 = q2 + (q3 - q2) * t;
+	Vector r1 = q1 + (q2 - q1) * t;
+	Vector r2 = q2 + (q3 - q2) * t;
 
-    return r1 + (r2 - r1) * t;
-    return Vector();
+	return r1 + (r2 - r1) * t;
+	return Vector();
 }
 
 QAngle Math::CalcAngle(const Vector& src, const Vector& dst)
@@ -33,7 +33,7 @@ QAngle Math::CalcAngle(const Vector& src, const Vector& dst)
 	QAngle angle = QAngle();
 	SVector delta = SVector((src.x - dst.x), (src.y - dst.y), (src.z - dst.z));
 
-	double hyp = sqrt(delta.x*delta.x + delta.y * delta.y);
+	double hyp = sqrt(delta.x * delta.x + delta.y * delta.y);
 
 	angle.x = atan(delta.z / hyp) * (180.0f / M_PI);
 	angle.y = atan(delta.y / delta.x) * (180.0f / M_PI);
diff --git a/apex_dma/Math.h b/apex_dma/Math.h
index c8408a4..666465c 100644
--- a/apex_dma/Math.h
+++ b/apex_dma/Math.h
@@ -7,14 +7,14 @@ struct SVector
 	float y;
 	float z;
 	SVector(float x1, float y1, float z1)
-    {
+	{
 		x = x1;
 		y = y1;
 		z = z1;
 	}
 
 	SVector(QAngle q)
-    {
+	{
 		x = q.x;
 		y = q.y;
 		z = q.z;
@@ -23,9 +23,9 @@ struct SVector
 
 namespace Math
 {
-    Vector Bezier(const Vector& start, const Vector& mid1, const Vector& mid2, const Vector& end, float t);    
-    void NormalizeAngles(QAngle& angle);
-    double GetFov(const QAngle& viewAngle, const QAngle& aimAngle);
-    double DotProduct(const Vector& v1, const float* v2);
-    QAngle CalcAngle(const Vector& src, const Vector& dst);
+	Vector Bezier(const Vector& start, const Vector& mid1, const Vector& mid2, const Vector& end, float t);
+	void NormalizeAngles(QAngle& angle);
+	double GetFov(const QAngle& viewAngle, const QAngle& aimAngle);
+	double DotProduct(const Vector& v1, const float* v2);
+	QAngle CalcAngle(const Vector& src, const Vector& dst);
 }
diff --git a/apex_dma/Readme.md b/apex_dma/Readme.md
deleted file mode 100644
index 5e79f7f..0000000
--- a/apex_dma/Readme.md
+++ /dev/null
@@ -1,27 +0,0 @@
-#  apex_dma_kvm_pub
-#####  UnknownCheats thread: https://www.unknowncheats.me/forum/apex-legends/406426-kvm-vmread-apex-esp-aimbot.html
-#new features
-
-- Xp level ESP
--  seerhealthESP/smooth aimbot from https://kgithub.com/KrackerCo/apex_dma_kvm_pub.
--  platform userid ESP,i also keep one html file,you can input uid to search player's rank,selcet legend.
-> idont know why after i add rank ESP,the client will crash,but i keep void"GetJson", these code are paste from https://www.unknowncheats.me/forum/apex-legends/520061-rank-statistics-players.html,
-if somebody can finish this work, +pull request please
--  support UTF-8 ESP for japanese/chinese
--   free camera
--  client's stream proof,include commandline,you can change it to view offset in client's main.cpp 
-    void ShowWindow
-- you can enable aimbot/esp for your teammates
-# how to use
-## guest
--   use vmprotect or rewrite your own version
--  release x64, use custom overlay.
-## linux
- - install 'libcurl' and 'jsoncpp',if cant complie ,check the Makefile
-####  Archlinux
-`    sudo  pacman -S jsoncpp`
-`    sudo  pacman -S curl`
- - for rank esp, you need your own apikey,reg one from apexlegendsapi
- -  what's "add_off"?  , host need it to read the setting of guest,it's in apex_dma.cpp
- 
-* i have no time to  teach about GPU passthrough or how to install this repo, because i only have a few time .....sorry of that*
\ No newline at end of file
diff --git a/apex_dma/apex_dma.cpp b/apex_dma/apex_dma.cpp
index f79fd9e..7c5ab01 100644
--- a/apex_dma/apex_dma.cpp
+++ b/apex_dma/apex_dma.cpp
@@ -5,8 +5,6 @@
 #include <random>
 #include <chrono>
 #include <iostream>
-#include "json/json.h"
-#include "curl/curl.h"
 #include <cfloat>
 #include "Game.h"
 #include <thread>
@@ -14,19 +12,18 @@
 Memory apex_mem;
 Memory client_mem;
 
-uint64_t add_off = 0x411e0;
+uint64_t add_off = 0xa1040;
 
 bool freecam = false;
 bool lockall_enable = false;
 
-int recoil = 0.5;
 bool firing_range = false;
 bool active = true;
 uintptr_t aimentity = 0;
 uintptr_t tmp_aimentity = 0;
 uintptr_t lastaimentity = 0;
 float kmax = 999.0f;
-float max_dist = 200.0f*40.0f;
+float max_dist = 200.0f * 40.0f;
 int team_player = 0;
 float max_fov = 15;
 const int toRead = 100;
@@ -84,28 +81,6 @@ int tmp_all_spec = 0, allied_spectators = 0;
 
 //////////////////////////////////////////////////////////////////////////////////////////////////
 
-static size_t WriteCallback(void *contents, size_t size, size_t nmemb, void *userp)
-{
-    ((std::string *)userp)->append((char *)contents, size * nmemb);
-    return size * nmemb;
-}
-std::string getJson(std::string url)
-{
-    CURL *curl;
-    CURLcode res;
-    std::string readBuffer;
-    curl = curl_easy_init();
-    if (curl)
-    {
-        curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
-        curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
-        curl_easy_setopt(curl, CURLOPT_WRITEDATA, &readBuffer);
-        res = curl_easy_perform(curl);
-        curl_easy_cleanup(curl);
-    }
-    return readBuffer;
-}
-
 void ProcessPlayer(Entity& LPlayer, Entity& target, uint64_t entitylist, int index)
 {
 	int entity_team = target.getTeamId();
@@ -115,9 +90,9 @@ void ProcessPlayer(Entity& LPlayer, Entity& target, uint64_t entitylist, int ind
 		float localyaw = LPlayer.GetYaw();
 		float targetyaw = target.GetYaw();
 
-		if(localyaw==targetyaw)
+		if (localyaw == targetyaw)
 		{
-			if(LPlayer.getTeamId() == entity_team)
+			if (LPlayer.getTeamId() == entity_team)
 				tmp_all_spec++;
 			else
 				tmp_spec++;
@@ -130,12 +105,12 @@ void ProcessPlayer(Entity& LPlayer, Entity& target, uint64_t entitylist, int ind
 	float dist = LocalPlayerPosition.DistTo(EntityPosition);
 	if (dist > max_dist) return;
 
-	if(!firing_range && !lockall_enable)
+	if (!firing_range && !lockall_enable)
 		if (entity_team < 0 || entity_team>50 || entity_team == team_player) return;
-	
-	if(aim==2)
+
+	if (aim == 2)
 	{
-		if((target.lastVisTime() > lastvis_aim[index]))
+		if ((target.lastVisTime() > lastvis_aim[index]))
 		{
 			float fov = CalculateFov(LPlayer, target);
 			if (fov < kmax)
@@ -146,9 +121,9 @@ void ProcessPlayer(Entity& LPlayer, Entity& target, uint64_t entitylist, int ind
 		}
 		else
 		{
-			if(aimentity==target.ptr)
+			if (aimentity == target.ptr)
 			{
-				aimentity=tmp_aimentity=lastaimentity=0;
+				aimentity = tmp_aimentity = lastaimentity = 0;
 			}
 		}
 	}
@@ -172,12 +147,12 @@ void DoActions()
 		std::this_thread::sleep_for(std::chrono::milliseconds(1));
 		uint32_t counter = 0;
 
-		while (g_Base!=0 && c_Base!=0)
+		while (g_Base != 0 && c_Base != 0)
 		{
-			std::this_thread::sleep_for(std::chrono::milliseconds(30));	
-		
-                        uint64_t LocalPlayer = 0;
-                        apex_mem.Read<uint64_t>(g_Base + OFFSET_LOCAL_ENT, LocalPlayer);
+			std::this_thread::sleep_for(std::chrono::milliseconds(30));
+
+			uint64_t LocalPlayer = 0;
+			apex_mem.Read<uint64_t>(g_Base + OFFSET_LOCAL_ENT, LocalPlayer);
 
 			if (LocalPlayer == 0) continue;
 
@@ -192,36 +167,6 @@ void DoActions()
 
 			uint64_t entitylist = g_Base + OFFSET_ENTITYLIST;
 
-
-			//an model index dumper,but sometimecarsh game
-			/*
-			uint64_t viewmodel_handle = 0;
-			apex_mem.Read<uint64_t>(LocalPlayer + 0x2d78, viewmodel_handle);
-			viewmodel_handle &= 0xffff;
-			uint64_t viewmodel_entity = 0;
-			apex_mem.Read<uint64_t>(entitylist + (viewmodel_handle << 5), viewmodel_entity);
-				m_currentFrame.modelIndex=0x00a8
-				m_hViewModels=0x2d78
-				m_ModelName=0x00a8
-			apex_mem.Write<int>(viewmodel_entity + 0x00a8, 975);
-
-			index dumper
-				bool dump_loop = false;
-				if(model_index <= 2492 && dump_loop){
-					uint64_t name_ptr;
-					char ModelName[200] = { 0 };
-					model_index = model_index + 1;
-					apex_mem.Read<uint64_t>(viewmodel_entity + 0x0030, name_ptr); 
-					apex_mem.ReadArray<char>(name_ptr, ModelName, 200);
-					printf("model: %s , index: %u \n", ModelName,model_index);
-					if (strstr(ModelName, "mdl/Weapons/arms/pov_pilot_light_wraith_cyber_ninja.rmdl")) 
-					{
-						printf("%u\n", model_index);
-						dump_loop = false;
-					}
-				}
-			}			
-			*/
 			uint64_t baseent = 0;
 			apex_mem.Read<uint64_t>(entitylist, baseent);
 			if (baseent == 0)
@@ -235,18 +180,18 @@ void DoActions()
 			tmp_all_spec = 0;
 
 			int current_obid;
-			if (freecam){
+			if (freecam) {
 				apex_mem.Write<int>(LocalPlayer + OFFSET_OBSERVER_MODE, 7);
 			}
-			else{
+			else {
 				apex_mem.Read<int>(LocalPlayer + OFFSET_OBSERVER_MODE, current_obid);
-				if(current_obid == 7){
-				apex_mem.Write<int>(LocalPlayer+OFFSET_OBSERVER_MODE, 0);
+				if (current_obid == 7) {
+					apex_mem.Write<int>(LocalPlayer + OFFSET_OBSERVER_MODE, 0);
 				}
 			}
-			if(firing_range)
+			if (firing_range)
 			{
-				int c=0;
+				int c = 0;
 				for (int i = 0; i < 10000; i++)
 				{
 					uint64_t centity = 0;
@@ -260,11 +205,11 @@ void DoActions()
 						continue;
 					}
 
-					if(player_glow && !Target.isGlowing())
+					if (player_glow && !Target.isGlowing())
 					{
 						Target.enableGlow();
 					}
-					else if(!player_glow && Target.isGlowing())
+					else if (!player_glow && Target.isGlowing())
 					{
 						Target.disableGlow();
 					}
@@ -287,7 +232,7 @@ void DoActions()
 					{
 						continue;
 					}
-					
+
 					ProcessPlayer(LPlayer, Target, entitylist, i);
 
 					int entity_team = Target.getTeamId();
@@ -296,18 +241,18 @@ void DoActions()
 						continue;
 					}
 
-					if(player_glow && !Target.isGlowing())
+					if (player_glow && !Target.isGlowing())
 					{
 						Target.enableGlow();
 					}
-					else if(!player_glow && Target.isGlowing())
+					else if (!player_glow && Target.isGlowing())
 					{
 						Target.disableGlow();
 					}
 				}
 			}
 
-			if(!spectators && !allied_spectators)
+			if (!spectators && !allied_spectators)
 			{
 				spectators = tmp_spec;
 				allied_spectators = tmp_all_spec;
@@ -316,7 +261,7 @@ void DoActions()
 			{
 				//refresh spectators count every ~2 seconds
 				counter++;
-				if(counter==70)
+				if (counter == 70)
 				{
 					spectators = tmp_spec;
 					allied_spectators = tmp_all_spec;
@@ -324,7 +269,7 @@ void DoActions()
 				}
 			}
 
-			if(!klock)
+			if (!klock)
 				aimentity = tmp_aimentity;
 			else
 				aimentity = lastaimentity;
@@ -340,10 +285,10 @@ player players[toRead];
 static void EspLoop()
 {
 	esp_t = true;
-	while(esp_t)
+	while (esp_t)
 	{
 		std::this_thread::sleep_for(std::chrono::milliseconds(1));
-		while(g_Base!=0 && c_Base!=0)
+		while (g_Base != 0 && c_Base != 0)
 		{
 			std::this_thread::sleep_for(std::chrono::milliseconds(1));
 			if (esp)
@@ -355,7 +300,7 @@ static void EspLoop()
 				if (LocalPlayer == 0)
 				{
 					knext = true;
-					while(knext && g_Base!=0 && c_Base!=0 && esp)
+					while (knext && g_Base != 0 && c_Base != 0 && esp)
 					{
 						std::this_thread::sleep_for(std::chrono::milliseconds(1));
 					}
@@ -366,7 +311,7 @@ static void EspLoop()
 				if (team_player < 0 || team_player>50)
 				{
 					knext = true;
-					while(knext && g_Base!=0 && c_Base!=0 && esp)
+					while (knext && g_Base != 0 && c_Base != 0 && esp)
 					{
 						std::this_thread::sleep_for(std::chrono::milliseconds(1));
 					}
@@ -382,20 +327,20 @@ static void EspLoop()
 				apex_mem.Read<Matrix>(viewMatrix, m);
 
 				uint64_t entitylist = g_Base + OFFSET_ENTITYLIST;
-				
-				memset(players,0,sizeof(players));
-				if(firing_range)
+
+				memset(players, 0, sizeof(players));
+				if (firing_range)
 				{
-					int c=0;
+					int c = 0;
 					for (int i = 0; i < 10000; i++)
 					{
 						uint64_t centity = 0;
-						apex_mem.Read<uint64_t>( entitylist + ((uint64_t)i << 5), centity);
+						apex_mem.Read<uint64_t>(entitylist + ((uint64_t)i << 5), centity);
 						if (centity == 0)
 						{
 							continue;
-						}		
-						
+						}
+
 						if (LocalPlayer == centity)
 						{
 							continue;
@@ -417,10 +362,10 @@ static void EspLoop()
 						Vector EntityPosition = Target.getPosition();
 						float dist = LocalPlayerPosition.DistTo(EntityPosition);
 						if (dist > max_dist || dist < 50.0f)
-						{	
+						{
 							continue;
 						}
-						
+
 						Vector bs = Vector();
 						WorldToScreen(EntityPosition, m.matrix, 1920, 1080, bs);
 						if (bs.x > 0 && bs.y > 0)
@@ -440,8 +385,7 @@ static void EspLoop()
 							int xp_level = calc_level(xp);
 							uint64_t uid = 0;
 							apex_mem.Read<uint64_t>(centity + OFFSET_UID, uid);
-							
-							players[c] = 
+							players[c] =
 							{
 								dist,
 								entity_team,
@@ -458,33 +402,33 @@ static void EspLoop()
 								xp_level,
 								maxshield,
 								armortype,
-								uid	
+								uid
 							};
-							Target.get_name(g_Base, i-1, &players[c].name[0]);
+							Target.get_name(g_Base, i - 1, &players[c].name[0]);
 							lastvis_esp[c] = Target.lastVisTime();
 							valid = true;
 							c++;
 						}
 					}
-				}	
+				}
 				else
 				{
 					for (int i = 0; i < toRead; i++)
 					{
 						uint64_t centity = 0;
-						apex_mem.Read<uint64_t>( entitylist + ((uint64_t)i << 5), centity);
+						apex_mem.Read<uint64_t>(entitylist + ((uint64_t)i << 5), centity);
 						if (centity == 0)
 						{
 							continue;
 						}
-						
+
 						if (LocalPlayer == centity)
 						{
 							continue;
 						}
 
 						Entity Target = getEntity(centity);
-						
+
 						if (!Target.isPlayer())
 						{
 							continue;
@@ -496,22 +440,22 @@ static void EspLoop()
 						}
 
 						int entity_team = Target.getTeamId();
-						if (!lockall_enable){
+						if (!lockall_enable) {
 							if (entity_team < 0 || entity_team>50 || entity_team == team_player)
 							{
 								continue;
 							}
 						}
-						else{
-							if (entity_team < 0 || entity_team>50){
-                                                                continue;
-                                                        }
+						else {
+							if (entity_team < 0 || entity_team>50) {
+								continue;
+							}
 						}
 
 						Vector EntityPosition = Target.getPosition();
 						float dist = LocalPlayerPosition.DistTo(EntityPosition);
 						if (dist > max_dist || dist < 50.0f)
-						{	
+						{
 							continue;
 						}
 
@@ -531,12 +475,12 @@ static void EspLoop()
 							int armortype = Target.getArmortype();
 							int xp;
 							apex_mem.Read<int>(centity + OFFSET_XP, xp);
-							
+
 							int xp_level = calc_level(xp);
 
 							uint64_t uid;
 							apex_mem.Read<uint64_t>(centity + OFFSET_UID, uid);
-							players[i] = 
+							players[i] =
 							{
 								dist,
 								entity_team,
@@ -555,7 +499,7 @@ static void EspLoop()
 								armortype,
 								uid
 							};
-							Target.get_name(g_Base, i-1, &players[i].name[0]);
+							Target.get_name(g_Base, i - 1, &players[i].name[0]);
 							lastvis_esp[i] = Target.lastVisTime();
 							valid = true;
 						}
@@ -563,7 +507,7 @@ static void EspLoop()
 				}
 
 				knext = true;
-				while(knext && g_Base!=0 && c_Base!=0 && esp)
+				while (knext && g_Base != 0 && c_Base != 0 && esp)
 				{
 					std::this_thread::sleep_for(std::chrono::milliseconds(1));
 				}
@@ -579,28 +523,28 @@ static void AimbotLoop()
 	while (aim_t)
 	{
 		std::this_thread::sleep_for(std::chrono::milliseconds(1));
-		while (g_Base!=0 && c_Base!=0)
+		while (g_Base != 0 && c_Base != 0)
 		{
 			std::this_thread::sleep_for(std::chrono::milliseconds(1));
-			if (aim>0)
+			if (aim > 0)
 			{
 				if (aimentity == 0 || !aiming)
 				{
-					klock=false;
-					lastaimentity=0;
+					klock = false;
+					lastaimentity = 0;
 					continue;
 				}
-				klock=true;
+				klock = true;
 				lastaimentity = aimentity;
 				uint64_t LocalPlayer = 0;
 				apex_mem.Read<uint64_t>(g_Base + OFFSET_LOCAL_ENT, LocalPlayer);
 				if (LocalPlayer == 0) continue;
 				Entity LPlayer = getEntity(LocalPlayer);
-				QAngle Angles = CalculateBestBoneAim(LPlayer, aimentity, max_fov, recoil);
+				QAngle Angles = CalculateBestBoneAim(LPlayer, aimentity, max_fov);
 				if (Angles.x == 0 && Angles.y == 0)
 				{
-					klock=false;
-					lastaimentity=0;
+					klock = false;
+					lastaimentity = 0;
 					continue;
 				}
 				LPlayer.SetViewAngles(Angles);
@@ -620,70 +564,68 @@ static void set_vars(uint64_t add_addr)
 	uint64_t aim_addr = 0;
 	client_mem.Read<uint64_t>(add_addr + sizeof(uint64_t), aim_addr);
 	uint64_t esp_addr = 0;
-	client_mem.Read<uint64_t>(add_addr + sizeof(uint64_t)*2, esp_addr);
+	client_mem.Read<uint64_t>(add_addr + sizeof(uint64_t) * 2, esp_addr);
 	uint64_t aiming_addr = 0;
-	client_mem.Read<uint64_t>(add_addr + sizeof(uint64_t)*3, aiming_addr);
+	client_mem.Read<uint64_t>(add_addr + sizeof(uint64_t) * 3, aiming_addr);
 	uint64_t g_Base_addr = 0;
-	client_mem.Read<uint64_t>(add_addr + sizeof(uint64_t)*4, g_Base_addr);
+	client_mem.Read<uint64_t>(add_addr + sizeof(uint64_t) * 4, g_Base_addr);
 	uint64_t next_addr = 0;
-	client_mem.Read<uint64_t>(add_addr + sizeof(uint64_t)*5, next_addr);
+	client_mem.Read<uint64_t>(add_addr + sizeof(uint64_t) * 5, next_addr);
 	uint64_t player_addr = 0;
-	client_mem.Read<uint64_t>(add_addr + sizeof(uint64_t)*6, player_addr);
+	client_mem.Read<uint64_t>(add_addr + sizeof(uint64_t) * 6, player_addr);
 	uint64_t valid_addr = 0;
-	client_mem.Read<uint64_t>(add_addr + sizeof(uint64_t)*7, valid_addr);
+	client_mem.Read<uint64_t>(add_addr + sizeof(uint64_t) * 7, valid_addr);
 	uint64_t max_dist_addr = 0;
-	client_mem.Read<uint64_t>(add_addr + sizeof(uint64_t)*8, max_dist_addr);
+	client_mem.Read<uint64_t>(add_addr + sizeof(uint64_t) * 8, max_dist_addr);
 	uint64_t item_glow_addr = 0;
-	client_mem.Read<uint64_t>(add_addr + sizeof(uint64_t)*9, item_glow_addr);
+	client_mem.Read<uint64_t>(add_addr + sizeof(uint64_t) * 9, item_glow_addr);
 	uint64_t player_glow_addr = 0;
-	client_mem.Read<uint64_t>(add_addr + sizeof(uint64_t)*10, player_glow_addr);
+	client_mem.Read<uint64_t>(add_addr + sizeof(uint64_t) * 10, player_glow_addr);
 	uint64_t aim_no_recoil_addr = 0;
-	client_mem.Read<uint64_t>(add_addr + sizeof(uint64_t)*11, aim_no_recoil_addr);
+	client_mem.Read<uint64_t>(add_addr + sizeof(uint64_t) * 11, aim_no_recoil_addr);
 	uint64_t smooth_addr = 0;
-	client_mem.Read<uint64_t>(add_addr + sizeof(uint64_t)*12, smooth_addr);
+	client_mem.Read<uint64_t>(add_addr + sizeof(uint64_t) * 12, smooth_addr);
 	uint64_t max_fov_addr = 0;
-	client_mem.Read<uint64_t>(add_addr + sizeof(uint64_t)*13, max_fov_addr);
+	client_mem.Read<uint64_t>(add_addr + sizeof(uint64_t) * 13, max_fov_addr);
 	uint64_t bone_addr = 0;
-	client_mem.Read<uint64_t>(add_addr + sizeof(uint64_t)*14, bone_addr);
+	client_mem.Read<uint64_t>(add_addr + sizeof(uint64_t) * 14, bone_addr);
 	uint64_t thirdperson_addr = 0;
-	client_mem.Read<uint64_t>(add_addr + sizeof(uint64_t)*15, thirdperson_addr);
+	client_mem.Read<uint64_t>(add_addr + sizeof(uint64_t) * 15, thirdperson_addr);
 	uint64_t spectators_addr = 0;
-	client_mem.Read<uint64_t>(add_addr + sizeof(uint64_t)*16, spectators_addr);
+	client_mem.Read<uint64_t>(add_addr + sizeof(uint64_t) * 16, spectators_addr);
 	uint64_t allied_spectators_addr = 0;
-	client_mem.Read<uint64_t>(add_addr + sizeof(uint64_t)*17, allied_spectators_addr);
+	client_mem.Read<uint64_t>(add_addr + sizeof(uint64_t) * 17, allied_spectators_addr);
 	uint64_t chargerifle_addr = 0;
-	client_mem.Read<uint64_t>(add_addr + sizeof(uint64_t)*18, chargerifle_addr);
+	client_mem.Read<uint64_t>(add_addr + sizeof(uint64_t) * 18, chargerifle_addr);
 	uint64_t shooting_addr = 0;
-	client_mem.Read<uint64_t>(add_addr + sizeof(uint64_t)*19, shooting_addr);
+	client_mem.Read<uint64_t>(add_addr + sizeof(uint64_t) * 19, shooting_addr);
 	uint64_t freecam_addr = 0;
-	client_mem.Read<uint64_t>(add_addr + sizeof(uint64_t)*20, freecam_addr);
+	client_mem.Read<uint64_t>(add_addr + sizeof(uint64_t) * 20, freecam_addr);
 	uint64_t lockall_addr = 0;
-	client_mem.Read<uint64_t>(add_addr + sizeof(uint64_t)*21, lockall_addr);
-	uint64_t firing_range_addr=0;
-	client_mem.Read<uint64_t>(add_addr + sizeof(uint64_t)*22, firing_range_addr);
-	uint64_t recoil_addr=0;
-        client_mem.Read<uint64_t>(add_addr + sizeof(uint64_t)*23, recoil_addr);
+	client_mem.Read<uint64_t>(add_addr + sizeof(uint64_t) * 21, lockall_addr);
+	uint64_t firing_range_addr = 0;
+	client_mem.Read<uint64_t>(add_addr + sizeof(uint64_t) * 22, firing_range_addr);
 
 	uint32_t check = 0;
 	client_mem.Read<uint32_t>(check_addr, check);
-	
-	if(check != 0xABCD)
+
+	if (check != 0xABCD)
 	{
 		printf("check add_off,or start client before start host\n");
 		active = false;
 		return;
 	}
 	vars_t = true;
-	while(vars_t)
+	while (vars_t)
 	{
 		std::this_thread::sleep_for(std::chrono::milliseconds(1));
-		if(c_Base!=0 && g_Base!=0)
+		if (c_Base != 0 && g_Base != 0)
 		{
 			client_mem.Write<uint32_t>(check_addr, 0);
 			printf("\nsuccess.\n");
 		}
 
-		while(c_Base!=0 && g_Base!=0)
+		while (c_Base != 0 && g_Base != 0)
 		{
 			std::this_thread::sleep_for(std::chrono::milliseconds(1));
 			client_mem.Write<uint64_t>(g_Base_addr, g_Base);
@@ -704,10 +646,10 @@ static void set_vars(uint64_t add_addr)
 			client_mem.Read<bool>(freecam_addr, freecam);
 			client_mem.Read<bool>(lockall_addr, lockall_enable);
 			client_mem.Read<bool>(firing_range_addr, firing_range);
-			client_mem.Read<int>(recoil_addr, recoil);
-			if(esp && knext)
+
+			if (esp && knext)
 			{
-				if(valid)
+				if (valid)
 					client_mem.WriteArray<player>(player_addr, players, toRead);
 				client_mem.Write<bool>(valid_addr, valid);
 				client_mem.Write<bool>(next_addr, true); //next
@@ -717,8 +659,8 @@ static void set_vars(uint64_t add_addr)
 				{
 					client_mem.Read<bool>(next_addr, next_val);
 					std::this_thread::sleep_for(std::chrono::milliseconds(1));
-				} while (next_val && g_Base!=0 && c_Base!=0);
-				
+				} while (next_val && g_Base != 0 && c_Base != 0);
+
 				knext = false;
 			}
 		}
@@ -727,9 +669,9 @@ static void set_vars(uint64_t add_addr)
 }
 
 
-int main(int argc, char *argv[])
+int main(int argc, char* argv[])
 {
-	if(geteuid() != 0)
+	if (geteuid() != 0)
 	{
 		printf("Error: %s please run in root\n", argv[0]);
 		return 0;
@@ -745,11 +687,11 @@ int main(int argc, char *argv[])
 	std::thread esp_thr;
 	std::thread actions_thr;
 	std::thread vars_thr;
-	while(active)
+	while (active)
 	{
-		if(apex_mem.get_proc_status() != process_status::FOUND_READY)
+		if (apex_mem.get_proc_status() != process_status::FOUND_READY)
 		{
-			if(aim_t)
+			if (aim_t)
 			{
 				aim_t = false;
 				esp_t = false;
@@ -766,7 +708,7 @@ int main(int argc, char *argv[])
 
 			apex_mem.open_proc(ap_proc);
 
-			if(apex_mem.get_proc_status() == process_status::FOUND_READY)
+			if (apex_mem.get_proc_status() == process_status::FOUND_READY)
 			{
 				g_Base = apex_mem.get_proc_baseaddr();
 				printf("\nFounded Apex!\n");
@@ -774,7 +716,7 @@ int main(int argc, char *argv[])
 				aimbot_thr = std::thread(AimbotLoop);
 				esp_thr = std::thread(EspLoop);
 				actions_thr = std::thread(DoActions);
-				
+
 				aimbot_thr.detach();
 				esp_thr.detach();
 				actions_thr.detach();
@@ -785,22 +727,22 @@ int main(int argc, char *argv[])
 			apex_mem.check_proc();
 		}
 
-		if(client_mem.get_proc_status() != process_status::FOUND_READY)
+		if (client_mem.get_proc_status() != process_status::FOUND_READY)
 		{
-			if(vars_t)
+			if (vars_t)
 			{
 				vars_t = false;
 				c_Base = 0;
 
 				vars_thr.~thread();
 			}
-			
+
 			std::this_thread::sleep_for(std::chrono::seconds(1));
 			printf("Waiting for client...\n");
 
 			client_mem.open_proc(cl_proc);
 
-			if(client_mem.get_proc_status() == process_status::FOUND_READY)
+			if (client_mem.get_proc_status() == process_status::FOUND_READY)
 			{
 				c_Base = client_mem.get_proc_baseaddr();
 				printf("\nFounded client!\n");
diff --git a/apex_dma/offsets.h b/apex_dma/offsets.h
index 19c48e7..7c167bc 100644
--- a/apex_dma/offsets.h
+++ b/apex_dma/offsets.h
@@ -8,7 +8,7 @@
 #define OFFSET_WEAPON_NAME          0x1858 //m_weaponNameIndex 2nd one
 #define OFFSET_ENTITYLIST		0x1e53c68 //cl_entitylist
 #define OFFSET_LOCAL_ENT		0x22036C0 + 0x8 //.?AVC_GameMovement@@ + 0x8
-#define OFFSET_NAME_LIST            0xbe94be0 //NameList
+#define OFFSET_NAME_LIST            0xbe94b60 //NameList
 
 #define OFFSET_TEAM					0x044c //m_iTeamNum
 #define OFFSET_HEALTH				0x043c //m_iHealth
@@ -34,13 +34,13 @@
 #define OFFSET_OBSERVING_TARGET		0x3500 //m_hObserverTarget
 
 #define OFFSET_MATRIX				0x11a350 //ViewMatrix
-#define OFFSET_RENDER				0x743AB20 //ViewRender
+#define OFFSET_RENDER				0x743AAA0 //ViewRender
 
 #define OFFSET_BULLET_SPEED         0x1f3c
 #define OFFSET_BULLET_SCALE         0x1f44
 #define OFFSET_ZOOM_FOV             0x16b0 + 0xb8 //m_playerData + m_curZoomFOV
 #define OFFSET_AMMO                 0x1634 //m_ammoInClip //1634
-    
+
 #define OFFSET_ITEM_GLOW            0x2c0 //m_highlightFunctionBits
 
 #define OFFSET_GLOW_T1              0x262 //16256 = enabled, 0 = disabled 
diff --git a/apex_dma/vector.h b/apex_dma/vector.h
index ca57189..2b034af 100644
--- a/apex_dma/vector.h
+++ b/apex_dma/vector.h
@@ -147,8 +147,8 @@ public:
 	}
 	bool IsZero(float tolerance = 0.01f) const
 	{
-		return (x > -tolerance && x < tolerance &&
-			y > -tolerance && y < tolerance &&
+		return (x > -tolerance && x < tolerance&&
+			y > -tolerance && y < tolerance&&
 			z > -tolerance && z < tolerance);
 	}
 	Vector	Normalize();
@@ -246,7 +246,7 @@ inline  Vector& Vector::operator*=(float fl)
 	x *= fl;
 	y *= fl;
 	z *= fl;
-	
+
 	return *this;
 }
 //===============================================
@@ -255,7 +255,7 @@ inline  Vector& Vector::operator*=(const Vector& v)
 	x *= v.x;
 	y *= v.y;
 	z *= v.z;
-	
+
 	return *this;
 }
 //===============================================
@@ -264,7 +264,7 @@ inline Vector& Vector::operator+=(float fl)
 	x += fl;
 	y += fl;
 	z += fl;
-	
+
 	return *this;
 }
 //===============================================
@@ -273,7 +273,7 @@ inline Vector& Vector::operator-=(float fl)
 	x -= fl;
 	y -= fl;
 	z -= fl;
-	
+
 	return *this;
 }
 //===============================================
@@ -284,7 +284,7 @@ inline  Vector& Vector::operator/=(float fl)
 	x *= oofl;
 	y *= oofl;
 	z *= oofl;
-	
+
 	return *this;
 }
 //===============================================
@@ -294,13 +294,13 @@ inline  Vector& Vector::operator/=(const Vector& v)
 	x /= v.x;
 	y /= v.y;
 	z /= v.z;
-	
+
 	return *this;
 }
 //===============================================
 inline float Vector::Length(void) const
 {
-	
+
 
 	float root = 0.0f;
 
@@ -472,15 +472,15 @@ inline float Vector::Dot(const Vector& vOther) const
 
 inline float VectorLength(const Vector& v)
 {
-	
+
 	return (float)FastSqrt(v.x * v.x + v.y * v.y + v.z * v.z);
 }
 
 //VECTOR SUBTRAC
 inline void VectorSubtract(const Vector& a, const Vector& b, Vector& c)
 {
-	
-	
+
+
 	c.x = a.x - b.x;
 	c.y = a.y - b.y;
 	c.z = a.z - b.z;
@@ -489,8 +489,8 @@ inline void VectorSubtract(const Vector& a, const Vector& b, Vector& c)
 //VECTORADD
 inline void VectorAdd(const Vector& a, const Vector& b, Vector& c)
 {
-	
-	
+
+
 	c.x = a.x + b.x;
 	c.y = a.y + b.y;
 	c.z = a.z + b.z;
@@ -600,7 +600,7 @@ public:
 	// return true if this vector is (0,0) within tolerance
 	bool IsZero(float tolerance = 0.01f) const
 	{
-		return (x > -tolerance && x < tolerance &&
+		return (x > -tolerance && x < tolerance&&
 			y > -tolerance && y < tolerance);
 	}
 
@@ -1018,7 +1018,7 @@ inline float Vector2D::NormalizeInPlace()
 
 inline bool Vector2D::IsLengthGreaterThan(float val) const
 {
-	return LengthSqr() > val* val;
+	return LengthSqr() > val * val;
 }
 
 inline bool Vector2D::IsLengthLessThan(float val) const
@@ -1223,8 +1223,8 @@ public:
 
 	bool IsZero(float tolerance = 0.01f) const
 	{
-		return (x > -tolerance && x < tolerance &&
-			y > -tolerance && y < tolerance &&
+		return (x > -tolerance && x < tolerance&&
+			y > -tolerance && y < tolerance&&
 			z > -tolerance && z < tolerance);
 	}
 
@@ -1279,7 +1279,7 @@ inline QAngle::QAngle(void)
 inline QAngle::QAngle(float X, float Y, float Z)
 {
 	x = X; y = Y; z = Z;
-	
+
 }
 
 //-----------------------------------------------------------------------------
@@ -1288,7 +1288,7 @@ inline QAngle::QAngle(float X, float Y, float Z)
 inline void QAngle::Init(float ix, float iy, float iz)
 {
 	x = ix; y = iy; z = iz;
-	
+
 }
 
 inline void QAngle::Random(float minVal, float maxVal)
@@ -1296,7 +1296,7 @@ inline void QAngle::Random(float minVal, float maxVal)
 	x = minVal + ((float)rand() / RAND_MAX) * (maxVal - minVal);
 	y = minVal + ((float)rand() / RAND_MAX) * (maxVal - minVal);
 	z = minVal + ((float)rand() / RAND_MAX) * (maxVal - minVal);
-	
+
 }
 
 //-----------------------------------------------------------------------------
@@ -1304,7 +1304,7 @@ inline void QAngle::Random(float minVal, float maxVal)
 //-----------------------------------------------------------------------------
 inline QAngle& QAngle::operator=(const QAngle& vOther)
 {
-	
+
 	x = vOther.x; y = vOther.y; z = vOther.z;
 	return *this;
 }
@@ -1314,15 +1314,15 @@ inline QAngle& QAngle::operator=(const QAngle& vOther)
 //-----------------------------------------------------------------------------
 inline bool QAngle::operator==(const QAngle& src) const
 {
-	
-	
+
+
 	return (src.x == x) && (src.y == y) && (src.z == z);
 }
 
 inline bool QAngle::operator!=(const QAngle& src) const
 {
-	
-	
+
+
 	return (src.x != x) || (src.y != y) || (src.z != z);
 }
 
@@ -1331,16 +1331,16 @@ inline bool QAngle::operator!=(const QAngle& src) const
 //-----------------------------------------------------------------------------
 inline QAngle& QAngle::operator+=(const QAngle& v)
 {
-	
-	
+
+
 	x += v.x; y += v.y; z += v.z;
 	return *this;
 }
 
 inline QAngle& QAngle::operator-=(const QAngle& v)
 {
-	
-	
+
+
 	x -= v.x; y -= v.y; z -= v.z;
 	return *this;
 }
@@ -1350,7 +1350,7 @@ inline QAngle& QAngle::operator*=(float fl)
 	x *= fl;
 	y *= fl;
 	z *= fl;
-	
+
 	return *this;
 }
 
@@ -1361,7 +1361,7 @@ inline QAngle& QAngle::operator/=(float fl)
 	x *= oofl;
 	y *= oofl;
 	z *= oofl;
-	
+
 	return *this;
 }
 
@@ -1398,14 +1398,14 @@ inline float QAngle::operator[](int i) const
 //-----------------------------------------------------------------------------
 inline float QAngle::Length() const
 {
-	
+
 	return (float)FastSqrt(LengthSqr());
 }
 
 
 inline float QAngle::LengthSqr() const
 {
-	
+
 	return x * x + y * y + z * z;
 }
 
@@ -1467,8 +1467,8 @@ inline QAngle operator*(float fl, const QAngle& v)
 //QANGLE SUBTRAC
 inline void QAngleSubtract(const QAngle& a, const QAngle& b, QAngle& c)
 {
-	
-	
+
+
 	c.x = a.x - b.x;
 	c.y = a.y - b.y;
 	c.z = a.z - b.z;
@@ -1477,8 +1477,8 @@ inline void QAngleSubtract(const QAngle& a, const QAngle& b, QAngle& c)
 //QANGLEADD
 inline void QAngleAdd(const QAngle& a, const QAngle& b, QAngle& c)
 {
-	
-	
+
+
 	c.x = a.x + b.x;
 	c.y = a.y + b.y;
 	c.z = a.z + b.z;
diff --git a/apex_guest/Client/Client/Client.rc b/apex_guest/Client/Client/Client.rc
index 65c1d4f..8cf217f 100644
--- a/apex_guest/Client/Client/Client.rc
+++ b/apex_guest/Client/Client/Client.rc
@@ -27,19 +27,19 @@ LANGUAGE 16, 1
 
 1 TEXTINCLUDE
 BEGIN
-    "resource.h\0"
+"resource.h\0"
 END
 
-2 TEXTINCLUDE  
+2 TEXTINCLUDE
 BEGIN
-    "#include ""winres.h""\r\n"
-    "\0"
+"#include ""winres.h""\r\n"
+"\0"
 END
 
-3 TEXTINCLUDE  
+3 TEXTINCLUDE
 BEGIN
-    "\r\n"
-    "\0"
+"\r\n"
+"\0"
 END
 
 #endif    // APSTUDIO_INVOKED
diff --git a/apex_guest/Client/Client/Client.vcxproj b/apex_guest/Client/Client/Client.vcxproj
index ce645af..b8bb276 100644
--- a/apex_guest/Client/Client/Client.vcxproj
+++ b/apex_guest/Client/Client/Client.vcxproj
@@ -1,128 +1,128 @@
 <?xml version="1.0" encoding="utf-8"?>
 <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <ItemGroup Label="ProjectConfigurations">
-    <ProjectConfiguration Include="Debug|x64">
-      <Configuration>Debug</Configuration>
-      <Platform>x64</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Release|x64">
-      <Configuration>Release</Configuration>
-      <Platform>x64</Platform>
-    </ProjectConfiguration>
-  </ItemGroup>
-  <PropertyGroup Label="Globals">
-    <VCProjectVersion>16.0</VCProjectVersion>
-    <ProjectGuid>{9BF6CD05-63DA-49CF-905E-B82F5F24AC6E}</ProjectGuid>
-    <Keyword>Win32Proj</Keyword>
-    <RootNamespace>Client</RootNamespace>
-    <WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
-    <ProjectName>Client</ProjectName>
-  </PropertyGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
-    <ConfigurationType>Application</ConfigurationType>
-    <UseDebugLibraries>true</UseDebugLibraries>
-    <PlatformToolset>v143</PlatformToolset>
-    <CharacterSet>Unicode</CharacterSet>
-    <SpectreMitigation>false</SpectreMitigation>
-    <UseOfMfc>Static</UseOfMfc>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
-    <ConfigurationType>Application</ConfigurationType>
-    <UseDebugLibraries>false</UseDebugLibraries>
-    <PlatformToolset>v143</PlatformToolset>
-    <WholeProgramOptimization>true</WholeProgramOptimization>
-    <CharacterSet>Unicode</CharacterSet>
-    <UseOfMfc>false</UseOfMfc>
-    <SpectreMitigation>false</SpectreMitigation>
-  </PropertyGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
-  <ImportGroup Label="ExtensionSettings">
-  </ImportGroup>
-  <ImportGroup Label="Shared">
-  </ImportGroup>
-  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-  </ImportGroup>
-  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-  </ImportGroup>
-  <PropertyGroup Label="UserMacros" />
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
-    <LinkIncremental>true</LinkIncremental>
-    <LibraryPath>$(DXSDK_DIR)Lib\x64;$(LibraryPath)</LibraryPath>
-    <IncludePath>$(DXSDK_DIR)Include;$(IncludePath)</IncludePath>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
-    <LinkIncremental>false</LinkIncremental>
-    <LibraryPath>C:\Users\ray\Downloads\apex\Client\Client\jsoncpp\lib;C:\Users\ray\Downloads\apex\Client\Client\curl\lib;$(VC_LibraryPath_x64);$(WindowsSDK_LibraryPath_x64)</LibraryPath>
-    <TargetName>client</TargetName>
-  </PropertyGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
-    <ClCompile>
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>
-      <WarningLevel>Level3</WarningLevel>
-      <Optimization>Disabled</Optimization>
-      <SDLCheck>true</SDLCheck>
-      <PreprocessorDefinitions>_DEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <ConformanceMode>true</ConformanceMode>
-      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
-    </ClCompile>
-    <Link>
-      <SubSystem>Console</SubSystem>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-      <AdditionalDependencies>d3d11.lib;%(AdditionalDependencies)</AdditionalDependencies>
-    </Link>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
-    <ClCompile>
-      <PrecompiledHeader>
-      </PrecompiledHeader>
-      <WarningLevel>Level3</WarningLevel>
-      <Optimization>MinSpace</Optimization>
-      <FunctionLevelLinking>true</FunctionLevelLinking>
-      <IntrinsicFunctions>true</IntrinsicFunctions>
-      <SDLCheck>true</SDLCheck>
-      <PreprocessorDefinitions>NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;CURL_STATICLIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <ConformanceMode>true</ConformanceMode>
-      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
-    </ClCompile>
-    <Link>
-      <SubSystem>Console</SubSystem>
-      <EnableCOMDATFolding>true</EnableCOMDATFolding>
-      <OptimizeReferences>true</OptimizeReferences>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-      <AdditionalDependencies>d3d11.lib;%(AdditionalDependencies)</AdditionalDependencies>
-    </Link>
-  </ItemDefinitionGroup>
-  <ItemGroup>
-    <ClCompile Include="imgui\imgui.cpp" />
-    <ClCompile Include="imgui\imgui_draw.cpp" />
-    <ClCompile Include="imgui\imgui_impl_dx11.cpp" />
-    <ClCompile Include="imgui\imgui_impl_win32.cpp" />
-    <ClCompile Include="imgui\imgui_tables.cpp" />
-    <ClCompile Include="imgui\imgui_widgets.cpp" />
-    <ClCompile Include="overlay.cpp" />
-    <ClCompile Include="main.cpp" />
-  </ItemGroup>
-  <ItemGroup>
-    <ClInclude Include="imgui\imconfig.h" />
-    <ClInclude Include="imgui\imgui.h" />
-    <ClInclude Include="imgui\imgui_impl_dx11.h" />
-    <ClInclude Include="imgui\imgui_impl_win32.h" />
-    <ClInclude Include="imgui\imgui_internal.h" />
-    <ClInclude Include="imgui\imstb_rectpack.h" />
-    <ClInclude Include="imgui\imstb_textedit.h" />
-    <ClInclude Include="imgui\imstb_truetype.h" />
-    <ClInclude Include="main.h" />
-    <ClInclude Include="overlay.h" />
-    <ClInclude Include="resource.h" />
-    <ClInclude Include="XorString.h" />
-  </ItemGroup>
-  <ItemGroup>
-    <ResourceCompile Include="Client.rc" />
-  </ItemGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
-  <ImportGroup Label="ExtensionTargets">
-  </ImportGroup>
+	<ItemGroup Label="ProjectConfigurations">
+		<ProjectConfiguration Include="Debug|x64">
+			<Configuration>Debug</Configuration>
+			<Platform>x64</Platform>
+		</ProjectConfiguration>
+		<ProjectConfiguration Include="Release|x64">
+			<Configuration>Release</Configuration>
+			<Platform>x64</Platform>
+		</ProjectConfiguration>
+	</ItemGroup>
+	<PropertyGroup Label="Globals">
+		<VCProjectVersion>16.0</VCProjectVersion>
+		<ProjectGuid>{9BF6CD05-63DA-49CF-905E-B82F5F24AC6E}</ProjectGuid>
+		<Keyword>Win32Proj</Keyword>
+		<RootNamespace>Client</RootNamespace>
+		<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
+		<ProjectName>Client</ProjectName>
+	</PropertyGroup>
+	<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+	<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+		<ConfigurationType>Application</ConfigurationType>
+		<UseDebugLibraries>true</UseDebugLibraries>
+		<PlatformToolset>v143</PlatformToolset>
+		<CharacterSet>Unicode</CharacterSet>
+		<SpectreMitigation>false</SpectreMitigation>
+		<UseOfMfc>Static</UseOfMfc>
+	</PropertyGroup>
+	<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+		<ConfigurationType>Application</ConfigurationType>
+		<UseDebugLibraries>false</UseDebugLibraries>
+		<PlatformToolset>v143</PlatformToolset>
+		<WholeProgramOptimization>true</WholeProgramOptimization>
+		<CharacterSet>Unicode</CharacterSet>
+		<UseOfMfc>false</UseOfMfc>
+		<SpectreMitigation>false</SpectreMitigation>
+	</PropertyGroup>
+	<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+	<ImportGroup Label="ExtensionSettings">
+	</ImportGroup>
+	<ImportGroup Label="Shared">
+	</ImportGroup>
+	<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+		<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+	</ImportGroup>
+	<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+		<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+	</ImportGroup>
+	<PropertyGroup Label="UserMacros" />
+	<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+		<LinkIncremental>true</LinkIncremental>
+		<LibraryPath>$(DXSDK_DIR)Lib\x64;$(LibraryPath)</LibraryPath>
+		<IncludePath>$(DXSDK_DIR)Include;$(IncludePath)</IncludePath>
+	</PropertyGroup>
+	<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+		<LinkIncremental>false</LinkIncremental>
+		<LibraryPath>C:\Users\ray\Downloads\apex\Client\Client\jsoncpp\lib;C:\Users\ray\Downloads\apex\Client\Client\curl\lib;$(VC_LibraryPath_x64);$(WindowsSDK_LibraryPath_x64)</LibraryPath>
+		<TargetName>client</TargetName>
+	</PropertyGroup>
+	<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+		<ClCompile>
+			<PrecompiledHeader>NotUsing</PrecompiledHeader>
+			<WarningLevel>Level3</WarningLevel>
+			<Optimization>Disabled</Optimization>
+			<SDLCheck>true</SDLCheck>
+			<PreprocessorDefinitions>_DEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+			<ConformanceMode>true</ConformanceMode>
+			<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+		</ClCompile>
+		<Link>
+			<SubSystem>Console</SubSystem>
+			<GenerateDebugInformation>true</GenerateDebugInformation>
+			<AdditionalDependencies>d3d11.lib;%(AdditionalDependencies)</AdditionalDependencies>
+		</Link>
+	</ItemDefinitionGroup>
+	<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+		<ClCompile>
+			<PrecompiledHeader>
+			</PrecompiledHeader>
+			<WarningLevel>Level3</WarningLevel>
+			<Optimization>MinSpace</Optimization>
+			<FunctionLevelLinking>true</FunctionLevelLinking>
+			<IntrinsicFunctions>true</IntrinsicFunctions>
+			<SDLCheck>true</SDLCheck>
+			<PreprocessorDefinitions>NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;CURL_STATICLIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+			<ConformanceMode>true</ConformanceMode>
+			<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+		</ClCompile>
+		<Link>
+			<SubSystem>Console</SubSystem>
+			<EnableCOMDATFolding>true</EnableCOMDATFolding>
+			<OptimizeReferences>true</OptimizeReferences>
+			<GenerateDebugInformation>true</GenerateDebugInformation>
+			<AdditionalDependencies>d3d11.lib;%(AdditionalDependencies)</AdditionalDependencies>
+		</Link>
+	</ItemDefinitionGroup>
+	<ItemGroup>
+		<ClCompile Include="imgui\imgui.cpp" />
+		<ClCompile Include="imgui\imgui_draw.cpp" />
+		<ClCompile Include="imgui\imgui_impl_dx11.cpp" />
+		<ClCompile Include="imgui\imgui_impl_win32.cpp" />
+		<ClCompile Include="imgui\imgui_tables.cpp" />
+		<ClCompile Include="imgui\imgui_widgets.cpp" />
+		<ClCompile Include="overlay.cpp" />
+		<ClCompile Include="main.cpp" />
+	</ItemGroup>
+	<ItemGroup>
+		<ClInclude Include="imgui\imconfig.h" />
+		<ClInclude Include="imgui\imgui.h" />
+		<ClInclude Include="imgui\imgui_impl_dx11.h" />
+		<ClInclude Include="imgui\imgui_impl_win32.h" />
+		<ClInclude Include="imgui\imgui_internal.h" />
+		<ClInclude Include="imgui\imstb_rectpack.h" />
+		<ClInclude Include="imgui\imstb_textedit.h" />
+		<ClInclude Include="imgui\imstb_truetype.h" />
+		<ClInclude Include="main.h" />
+		<ClInclude Include="overlay.h" />
+		<ClInclude Include="resource.h" />
+		<ClInclude Include="XorString.h" />
+	</ItemGroup>
+	<ItemGroup>
+		<ResourceCompile Include="Client.rc" />
+	</ItemGroup>
+	<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+	<ImportGroup Label="ExtensionTargets">
+	</ImportGroup>
 </Project>
\ No newline at end of file
diff --git a/apex_guest/Client/Client/Client.vcxproj.filters b/apex_guest/Client/Client/Client.vcxproj.filters
index 71962b7..c72c2ae 100644
--- a/apex_guest/Client/Client/Client.vcxproj.filters
+++ b/apex_guest/Client/Client/Client.vcxproj.filters
@@ -1,83 +1,83 @@
 <?xml version="1.0" encoding="utf-8"?>
 <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <ItemGroup>
-    <Filter Include="Source">
-      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
-      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
-    </Filter>
-    <Filter Include="Headers">
-      <UniqueIdentifier>{09a8a2aa-6277-49bc-bb28-4446ac81fb47}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Headers\imgui">
-      <UniqueIdentifier>{d82aa3aa-e029-4496-92fc-5a3e4a269824}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Source\imgui">
-      <UniqueIdentifier>{2a2873f6-cd40-4bf6-8249-0d7505954a3f}</UniqueIdentifier>
-    </Filter>
-  </ItemGroup>
-  <ItemGroup>
-    <ClCompile Include="overlay.cpp">
-      <Filter>Source</Filter>
-    </ClCompile>
-    <ClCompile Include="main.cpp">
-      <Filter>Source</Filter>
-    </ClCompile>
-    <ClCompile Include="imgui\imgui_impl_win32.cpp">
-      <Filter>Source\imgui</Filter>
-    </ClCompile>
-    <ClCompile Include="imgui\imgui_widgets.cpp">
-      <Filter>Source\imgui</Filter>
-    </ClCompile>
-    <ClCompile Include="imgui\imgui.cpp">
-      <Filter>Source\imgui</Filter>
-    </ClCompile>
-    <ClCompile Include="imgui\imgui_draw.cpp">
-      <Filter>Source\imgui</Filter>
-    </ClCompile>
-    <ClCompile Include="imgui\imgui_tables.cpp">
-      <Filter>Source\imgui</Filter>
-    </ClCompile>
-    <ClCompile Include="imgui\imgui_impl_dx11.cpp">
-      <Filter>Source\imgui</Filter>
-    </ClCompile>
-  </ItemGroup>
-  <ItemGroup>
-    <ClInclude Include="overlay.h">
-      <Filter>Headers</Filter>
-    </ClInclude>
-    <ClInclude Include="main.h">
-      <Filter>Headers</Filter>
-    </ClInclude>
-    <ClInclude Include="resource.h" />
-    <ClInclude Include="imgui\imconfig.h">
-      <Filter>Headers\imgui</Filter>
-    </ClInclude>
-    <ClInclude Include="imgui\imgui.h">
-      <Filter>Headers\imgui</Filter>
-    </ClInclude>
-    <ClInclude Include="imgui\imgui_internal.h">
-      <Filter>Headers\imgui</Filter>
-    </ClInclude>
-    <ClInclude Include="imgui\imstb_rectpack.h">
-      <Filter>Headers\imgui</Filter>
-    </ClInclude>
-    <ClInclude Include="imgui\imstb_textedit.h">
-      <Filter>Headers\imgui</Filter>
-    </ClInclude>
-    <ClInclude Include="imgui\imstb_truetype.h">
-      <Filter>Headers\imgui</Filter>
-    </ClInclude>
-    <ClInclude Include="imgui\imgui_impl_win32.h">
-      <Filter>Headers\imgui</Filter>
-    </ClInclude>
-    <ClInclude Include="imgui\imgui_impl_dx11.h">
-      <Filter>Headers\imgui</Filter>
-    </ClInclude>
-    <ClInclude Include="XorString.h">
-      <Filter>Headers</Filter>
-    </ClInclude>
-  </ItemGroup>
-  <ItemGroup>
-    <ResourceCompile Include="Client.rc" />
-  </ItemGroup>
+	<ItemGroup>
+		<Filter Include="Source">
+			<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+			<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+		</Filter>
+		<Filter Include="Headers">
+			<UniqueIdentifier>{09a8a2aa-6277-49bc-bb28-4446ac81fb47}</UniqueIdentifier>
+		</Filter>
+		<Filter Include="Headers\imgui">
+			<UniqueIdentifier>{d82aa3aa-e029-4496-92fc-5a3e4a269824}</UniqueIdentifier>
+		</Filter>
+		<Filter Include="Source\imgui">
+			<UniqueIdentifier>{2a2873f6-cd40-4bf6-8249-0d7505954a3f}</UniqueIdentifier>
+		</Filter>
+	</ItemGroup>
+	<ItemGroup>
+		<ClCompile Include="overlay.cpp">
+			<Filter>Source</Filter>
+		</ClCompile>
+		<ClCompile Include="main.cpp">
+			<Filter>Source</Filter>
+		</ClCompile>
+		<ClCompile Include="imgui\imgui_impl_win32.cpp">
+			<Filter>Source\imgui</Filter>
+		</ClCompile>
+		<ClCompile Include="imgui\imgui_widgets.cpp">
+			<Filter>Source\imgui</Filter>
+		</ClCompile>
+		<ClCompile Include="imgui\imgui.cpp">
+			<Filter>Source\imgui</Filter>
+		</ClCompile>
+		<ClCompile Include="imgui\imgui_draw.cpp">
+			<Filter>Source\imgui</Filter>
+		</ClCompile>
+		<ClCompile Include="imgui\imgui_tables.cpp">
+			<Filter>Source\imgui</Filter>
+		</ClCompile>
+		<ClCompile Include="imgui\imgui_impl_dx11.cpp">
+			<Filter>Source\imgui</Filter>
+		</ClCompile>
+	</ItemGroup>
+	<ItemGroup>
+		<ClInclude Include="overlay.h">
+			<Filter>Headers</Filter>
+		</ClInclude>
+		<ClInclude Include="main.h">
+			<Filter>Headers</Filter>
+		</ClInclude>
+		<ClInclude Include="resource.h" />
+		<ClInclude Include="imgui\imconfig.h">
+			<Filter>Headers\imgui</Filter>
+		</ClInclude>
+		<ClInclude Include="imgui\imgui.h">
+			<Filter>Headers\imgui</Filter>
+		</ClInclude>
+		<ClInclude Include="imgui\imgui_internal.h">
+			<Filter>Headers\imgui</Filter>
+		</ClInclude>
+		<ClInclude Include="imgui\imstb_rectpack.h">
+			<Filter>Headers\imgui</Filter>
+		</ClInclude>
+		<ClInclude Include="imgui\imstb_textedit.h">
+			<Filter>Headers\imgui</Filter>
+		</ClInclude>
+		<ClInclude Include="imgui\imstb_truetype.h">
+			<Filter>Headers\imgui</Filter>
+		</ClInclude>
+		<ClInclude Include="imgui\imgui_impl_win32.h">
+			<Filter>Headers\imgui</Filter>
+		</ClInclude>
+		<ClInclude Include="imgui\imgui_impl_dx11.h">
+			<Filter>Headers\imgui</Filter>
+		</ClInclude>
+		<ClInclude Include="XorString.h">
+			<Filter>Headers</Filter>
+		</ClInclude>
+	</ItemGroup>
+	<ItemGroup>
+		<ResourceCompile Include="Client.rc" />
+	</ItemGroup>
 </Project>
\ No newline at end of file
diff --git a/apex_guest/Client/Client/Client.vcxproj.user b/apex_guest/Client/Client/Client.vcxproj.user
index 88a5509..3136c1e 100644
--- a/apex_guest/Client/Client/Client.vcxproj.user
+++ b/apex_guest/Client/Client/Client.vcxproj.user
@@ -1,4 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
 <Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <PropertyGroup />
+	<PropertyGroup />
 </Project>
\ No newline at end of file
diff --git a/apex_guest/Client/Client/RCa01724 b/apex_guest/Client/Client/RCa01724
new file mode 100644
index 0000000..6d5e0f7
Binary files /dev/null and b/apex_guest/Client/Client/RCa01724 differ
diff --git a/apex_guest/Client/Client/main.cpp b/apex_guest/Client/Client/main.cpp
index 8ad512f..3f213ca 100644
--- a/apex_guest/Client/Client/main.cpp
+++ b/apex_guest/Client/Client/main.cpp
@@ -1,143 +1,209 @@
 #include "main.h"
 
-typedef struct player
+typedef struct serial - stringplayer
 {
-	float dist = 0;
-	int entity_team = 0;
-	float boxMiddle = 0;
-	float h_y = 0;
-	float width = 0;
-	float height = 0;
-	float b_x = 0;
-	float b_y = 0;
-	bool knocked = false;
-	bool visible = false;
-	int health = 0;
-	int shield = 0;
-	int xp_level = 0;
-	int maxshield = 0;
-	int armortype = 0;
-	uint64_t uid = 0;
-	char name[33] = { 0 };
-}player;
- 
-uint32_t check = 0xABCD;
+	float serial - stringdist = 0;
+	int serial - stringentity_team = 0;
+	float serial - stringboxMiddle = 0;
+	float serial - stringh_y = 0;
+	float serial - stringwidth = 0;
+	float serial - stringheight = 0;
+	float serial - stringb_x = 0;
+	float serial - stringb_y = 0;
+	bool serial - stringknocked = false;
+	bool serial - stringvisible = false;
+	int serial - stringhealth = 0;
+	int serial - stringshield = 0;
+	int serial - stringxp_level = 0;
+	int serial - stringmaxshield = 0;
+	int serial - stringarmortype = 0;
+	uint64_t serial - stringuid = 0;
+	char serial - stringname[33] = { 0 };
+}serial - stringplayer;
+
+typedef struct serial - stringrankinfomation
+{
+	char rankserial - stringinfo[17];
+}serial - stringrankinfomation;
+
+uint32_t serial - stringcheck = 0xABCD;
 //VK_XBUTTON2=�ϲ�� //VK_XBUTTON1 = �²��
-int aim_key = VK_XBUTTON2;
-int aim_key2 = VK_XBUTTON1;
-
-int shoot_key = VK_LBUTTON;
-
-float scale = 1.4f;
-bool firing_range;
-int offset = 0;
-bool use_nvidia = false;
-bool active = true;
-bool ready = false;
-extern visuals v;
-int aim = 2; //read
-
-bool freecam = false;//read
-bool lockall_mode = false; //read
-
-int recoil_100 = 75;
-int recoil = 0.5;
-bool esp = true; //read
-bool item_glow = false;
-bool player_glow = false;
-bool aim_no_recoil = true;
-bool aiming = false; //read
-uint64_t g_Base = 0; //write
-float max_dist = 650.0f * 40.0f; //read
-float seer_dist = 400.0 * 40.0f;
-float smooth = 85.0f;
-float max_fov = 20.0f;
-int bone = 3;
-bool thirdperson = false;
-int spectators = 0; //write
-int allied_spectators = 0; //write
-bool chargerifle = false;
-bool shooting = false; //read
-
-
-int index = 0;
-bool valid = false; //write
-bool next = false; //read write
-
-uint64_t add[24];
-
-bool k_f5 = 0;
-bool k_f6 = 0;
-bool k_f8 = 0;
+int serial - stringaim_key = VK_XBUTTON2;
+int serial - stringaim_key2 = VK_XBUTTON1;
+
+int serial - stringshoot_key = VK_LBUTTON;
+
+float serial - stringscale = 1.4f;
+bool serial - stringfiring_range;
+int serial - stringoffset = 0;
+bool serial - stringuse_nvidia = false;
+bool serial - stringactive = true;
+bool serial - stringready = false;
+extern serial - stringvisuals serial - stringv;
+int serial - stringaim = 2; //read
+
+float serial - stringuid_dist = 150.0f * 40.0f;
+float serial - stringname_dist = 150.0f * 40.0f;
+bool serial - stringfreecam = false;//read
+bool serial - stringlockall_mode = false; //read
+
+bool serial - stringesp = true; //read
+bool serial - stringitem_glow = false;
+bool serial - stringplayer_glow = false;
+bool serial - stringaim_no_recoil = true;
+bool serial - stringaiming = false; //read
+uint64_t serial - stringg_Base = 0; //write
+float serial - stringmax_dist = 650.0f * 40.0f; //read
+float serial - stringseer_dist = 400.0 * 40.0f;
+float serial - stringsmooth = 77.0f;
+float serial - stringmax_fov = 20.0f;
+int serial - stringbone = 3;
+bool serial - stringthirdperson = false;
+int serial - stringspectators = 0; //write
+int serial - stringallied_spectators = 0; //write
+bool serial - stringchargerifle = false;
+bool serial - stringshooting = false; //read
+
+
+int serial - stringindex = 0;
+bool serial - stringvalid = false; //write
+bool serial - stringnext = false; //read write
+
+uint64_t serial - stringadd[23];
+
+bool serial - stringk_f5 = 0;
+bool serial - stringk_f6 = 0;
+bool serial - stringk_f8 = 0;
+
+/*
+static size_t Writeserial-stringCallback(void* conserial-stringtents, size_t serial-stringsize, size_t nserial-stringmemb, void* userial-stringserp)
+{
+	((std::string*)userial-stringserp)->append((char*)conserial-stringtents, serial-stringsize * nserial-stringmemb);
+	return serial-stringsize * nserial-stringmemb;
+}
+std::string getJson(std::string url)
+{
+	CURL* cserial-stringurl;
+	CURLcode serial-stringres;
+	std::string readserial-stringBuffer;
 
+	cserial-stringurl = curl_easy_init();
+	if (cserial-stringurl)
+	{
+		curl_easy_setopt(cserial-stringurl, CURLOPT_URL, url.c_str());
+		curl_easy_setopt(cserial-stringurl, CURLOPT_WRITEFUNCTION, Writeserial-stringCallback);
+		curl_easy_setopt(cserial-stringurl, CURLOPT_WRITEDATA, &readserial-stringBuffer);
+		serial-stringres = curl_easy_perform(cserial-stringurl);
+		curl_easy_cleanup(cserial-stringurl);
+	}
+	return readserial-stringBuffer;
+}
+
+
+std::string getserial-stringRank(long platforserial-stringmUserId) {
+	std::string userial-stringrl = "https://api.mozambiquehe.re/bridge?auth=";
+	userial-stringrl.append("99e187016931e489d971d808b87ab050");
+	userial-stringrl.append("&uid=");
+	userial-stringrl.append(std::to_string(platforserial-stringmUserId));
+	userial-stringrl.append("&platform=PC");
+	std::string serial-stringjson = getJson(userial-stringrl);
+	Json::Value serial-stringroot;
+	Json::Reader reserial-stringader;
+	bool parsingserial-stringSuccessful = reserial-stringader.parse(serial-stringjson, serial-stringroot);
+	if (!parsingserial-stringSuccessful)
+	{
+		printf("Failed to parse configuration\n");
+		return "err";
+	}
+	std::string raserial-stringnkname = serial-stringroot["global"]["rank"]["rankName"].asString();
+	if (raserial-stringnkname == "") {
+		return "err";
+	}
+	std::string inB4A893fo = "";
+	std::string raserial-stringnkdiv = serial-stringroot["global"]["rank"]["rankDiv"].asString();
+	std::string raserial-stringnkglobal = serial-stringroot["global"]["rank"]["ALStopIntGlobal"].asString();
+	if (raserial-stringnkname == "Apex Predator") {
+		inB4A893fo.append(raserial-stringnkname);
+		inB4A893fo.append(raserial-stringnkglobal);
+	}
+	else {
+		inB4A893fo.append(raserial-stringnkname);
+		inB4A893fo.append(raserial-stringnkdiv);
+	}
+	return inB4A893fo;
+}
+*/
 bool IsKeyDown(int vk)
 {
 	return (GetAsyncKeyState(vk) & 0x8000) != 0;
 }
-player players[100];
-void Overlay::RenderEsp()
+serial - stringplayer serial - stringplayers[100];
+serial - stringrankinfomation serial - stringrank_infomation[100];
+void Overlay::Renderserial - stringEsp()
 {
-	next = false;
-	if (g_Base != 0 && esp)
+	serial - stringnext = false;
+	if (serial - stringg_Base != 0 && serial - stringesp)
 	{
-		memset(players, 0, sizeof(players));
-		while (!next && esp)
+		memset(serial - stringplayers, 0, sizeof(serial - stringplayers));
+		memset(serial - stringrank_infomation, 0, sizeof(serial - stringrank_infomation));
+		while (!serial - stringnext && serial - stringesp)
 		{
 			std::this_thread::sleep_for(std::chrono::milliseconds(1));
 		}
 
-		if (next && valid)
+		if (serial - stringnext && serial - stringvalid)
 		{
 			ImGui::SetNextWindowPos(ImVec2(0, 0));
-			ImGui::SetNextWindowSize(ImVec2((float)getWidth(), (float)getHeight()));
+			ImGui::SetNextWindowSize(ImVec2((float)getserial - stringWidth(), (float)getserial - stringHeight()));
 			ImGui::Begin(XorStr("##esp"), (bool*)true, ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoMove | ImGuiWindowFlags_NoScrollbar | ImGuiWindowFlags_NoBackground | ImGuiWindowFlags_NoBringToFrontOnFocus);
 
 			for (int i = 0; i < 100; i++)
 			{
-				if (players[i].health > 0)
+				if (serial - stringplayers[i].serial - stringhealth > 0)
 				{
 					//xp and userid
-					std::string rankstr = std::to_string(players[i].xp_level);
-					rankstr = rankstr.substr(0, rankstr.find('.')) + u8"��( uid:" + std::to_string(players[i].uid) + u8")";
+					std::string serial - stringrankstr = std::to_string(serial - stringplayers[i].serial - stringxp_level);
+					serial - stringrankstr = serial - stringrankstr.substr(0, serial - stringrankstr.find('.')) + u8"��( uid:" + std::to_string(serial - stringplayers[i].serial - stringuid) + u8")";
 
 					//DISTENCE + teamnum
-					std::string distance = std::to_string(players[i].dist / 39.62);
-					distance = distance.substr(0, distance.find('.')) + u8"��(" + std::to_string(players[i].entity_team) + u8"��)";
-;
-					if (v.box)
+					std::string serial - stringdistance = std::to_string(serial - stringplayers[i].serial - stringdist / 39.62);
+					serial - stringdistance = serial - stringdistance.substr(0, serial - stringdistance.find('.')) + u8"��(" + std::to_string(serial - stringplayers[i].serial - stringentity_team) + u8"��)";
+					;
+					if (serial - stringv.serial - stringbox)
 					{
-						if (players[i].visible)
+						if (serial - stringplayers[i].serial - stringvisible)
 						{
-							if (players[i].dist < 1600.0f)
-								DrawBox(RED, players[i].boxMiddle, players[i].h_y, players[i].width, players[i].height); //BOX
+							if (serial - stringplayers[i].serial - stringdist < 1600.0f)
+								Drawserial - stringBox(RED, serial - stringplayers[i].serial - stringboxMiddle, serial - stringplayers[i].serial - stringh_y, serial - stringplayers[i].serial - stringwidth, serial - stringplayers[i].serial - stringheight); //BOX
 							else
-								DrawBox(ORANGE, players[i].boxMiddle, players[i].h_y, players[i].width, players[i].height); //BOX
+								Drawserial - stringBox(ORANGE, serial - stringplayers[i].serial - stringboxMiddle, serial - stringplayers[i].serial - stringh_y, serial - stringplayers[i].serial - stringwidth, serial - stringplayers[i].serial - stringheight); //BOX
 						}
 						else
 						{
-							DrawBox(WHITE, players[i].boxMiddle, players[i].h_y, players[i].width, players[i].height); //white if player not visible
+							Drawserial - stringBox(WHITE, serial - stringplayers[i].serial - stringboxMiddle, serial - stringplayers[i].serial - stringh_y, serial - stringplayers[i].serial - stringwidth, serial - stringplayers[i].serial - stringheight); //white if player not visible
 						}
 					}
 
-					if (v.line)
-						DrawLine(ImVec2((float)(getWidth() / 2), (float)getHeight()), ImVec2(players[i].b_x, players[i].b_y), BLUE, 1); //LINE FROM MIDDLE SCREEN
+					if (serial - stringv.serial - stringline)
+						Drawserial - stringLine(ImVec2((float)(getserial - stringWidth() / 2), (float)getserial - stringHeight()), ImVec2(serial - stringplayers[i].serial - stringb_x, serial - stringplayers[i].serial - stringb_y), BLUE, 1); //LINE FROM MIDDLE SCREEN
 
-					if (v.distance)
+					if (serial - stringv.serial - stringdistance)
 					{
-						if (players[i].knocked)
-							String(ImVec2(players[i].boxMiddle, (players[i].b_y + 1)), RED, distance.c_str());  //DISTANCE
+						if (serial - stringplayers[i].serial - stringknocked)
+							Stringserial - string(ImVec2(serial - stringplayers[i].serial - stringboxMiddle, (serial - stringplayers[i].serial - stringb_y + 1)), RED, serial - stringdistance.c_str());  //DISTANCE
 						else
-							String(ImVec2(players[i].boxMiddle, (players[i].b_y + 1)), WHITE , distance.c_str());  //DISTANCE
+							Stringserial - string(ImVec2(serial - stringplayers[i].serial - stringboxMiddle, (serial - stringplayers[i].serial - stringb_y + 1)), WHITE, serial - stringdistance.c_str());  //DISTANCE
 					}
 
 					//esp stuff of shield bar/ bar color
-					if(v.healthbar && players[i].dist < seer_dist)
-						DrawHealth((players[i].b_x - (players[i].width / 2.0f) + 5), (players[i].b_y - players[i].height - 10), players[i].shield, players[i].maxshield, players[i].armortype, players[i].health); 
-					//����
-					if(v.name)
-						String(ImVec2(players[i].boxMiddle, (players[i].b_y - players[i].height - 15)), WHITE, players[i].name);
-					if (v.renderrank) {
-						String(ImVec2((players[i].b_x - (players[i].width / 2.0f) + 5), (players[i].b_y - players[i].height - 45)), WHITE, rankstr.c_str());
+					if (serial - stringv.serial - stringhealthbar && serial - stringplayers[i].serial - stringdist <= serial - stringseer_dist)
+						Drawserial - stringHealth((serial - stringplayers[i].serial - stringb_x - (serial - stringplayers[i].serial - stringwidth / 2.0f) + 5), (serial - stringplayers[i].serial - stringb_y - serial - stringplayers[i].serial - stringheight - 10), serial - stringplayers[i].serial - stringshield, serial - stringplayers[i].serial - stringmaxshield, serial - stringplayers[i].serial - stringarmortype, serial - stringplayers[i].serial - stringhealth);
+					//name
+					if (serial - stringv.serial - stringname && serial - stringplayers[i].serial - stringdist <= serial - stringname_dist)
+						Stringserial - string(ImVec2(serial - stringplayers[i].serial - stringboxMiddle, (serial - stringplayers[i].serial - stringb_y - serial - stringplayers[i].serial - stringheight - 15)), WHITE, serial - stringplayers[i].serial - stringname);
+					//uid
+					if (serial - stringv.serial - stringrenderrank && serial - stringplayers[i].serial - stringdist <= serial - stringuid_dist) {
+						Stringserial - string(ImVec2((serial - stringplayers[i].serial - stringb_x - (serial - stringplayers[i].serial - stringwidth / 2.0f) + 5), (serial - stringplayers[i].serial - stringb_y - serial - stringplayers[i].serial - stringheight - 45)), WHITE, serial - stringrankstr.c_str());
 					}
 				}
 			}
@@ -151,73 +217,73 @@ void Overlay::RenderEsp()
 int main(int argc, char** argv)
 {
 	ShowWindow(GetForegroundWindow(), 0);
-	add[0] = (uintptr_t)&check;
-	add[1] = (uintptr_t)&aim;
-	add[2] = (uintptr_t)&esp;
-	add[3] = (uintptr_t)&aiming;
-	add[4] = (uintptr_t)&g_Base;
-	add[5] = (uintptr_t)&next;
-	add[6] = (uintptr_t)&players[0];
-	add[7] = (uintptr_t)&valid;
-	add[8] = (uintptr_t)&max_dist;
-	add[9] = (uintptr_t)&item_glow;
-	add[10] = (uintptr_t)&player_glow;
-	add[11] = (uintptr_t)&aim_no_recoil;
-	add[12] = (uintptr_t)&smooth;
-	add[13] = (uintptr_t)&max_fov;
-	add[14] = (uintptr_t)&bone;
-	add[15] = (uintptr_t)&thirdperson;
-	add[16] = (uintptr_t)&spectators;
-	add[17] = (uintptr_t)&allied_spectators;
-	add[18] = (uintptr_t)&chargerifle;
-	add[19] = (uintptr_t)&shooting;
-	add[20] = (uintptr_t)&freecam;
-	add[21] = (uintptr_t)&lockall_mode;
-	add[22] = (uintptr_t)&firing_range;
-	add[23] = (uintptr_t)&recoil;
-
-	printf(XorStr("offset: 0x%I64x\n"), (uint64_t)&add[0] - (uint64_t)GetModuleHandle(NULL));
-	Overlay ov1 = Overlay();
-	ov1.Start();
+	serial - stringadd[0] = (uintptr_t)&serial - stringcheck;
+	serial - stringadd[1] = (uintptr_t)&serial - stringaim;
+	serial - stringadd[2] = (uintptr_t)&serial - stringesp;
+	serial - stringadd[3] = (uintptr_t)&serial - stringaiming;
+	serial - stringadd[4] = (uintptr_t)&serial - stringg_Base;
+	serial - stringadd[5] = (uintptr_t)&serial - stringnext;
+	serial - stringadd[6] = (uintptr_t)&serial - stringplayers[0];
+	serial - stringadd[7] = (uintptr_t)&serial - stringvalid;
+	serial - stringadd[8] = (uintptr_t)&serial - stringmax_dist;
+	serial - stringadd[9] = (uintptr_t)&serial - stringitem_glow;
+	serial - stringadd[10] = (uintptr_t)&serial - stringplayer_glow;
+	serial - stringadd[11] = (uintptr_t)&serial - stringaim_no_recoil;
+	serial - stringadd[12] = (uintptr_t)&serial - stringsmooth;
+	serial - stringadd[13] = (uintptr_t)&serial - stringmax_fov;
+	serial - stringadd[14] = (uintptr_t)&serial - stringbone;
+	serial - stringadd[15] = (uintptr_t)&serial - stringthirdperson;
+	serial - stringadd[16] = (uintptr_t)&serial - stringspectators;
+	serial - stringadd[17] = (uintptr_t)&serial - stringallied_spectators;
+	serial - stringadd[18] = (uintptr_t)&serial - stringchargerifle;
+	serial - stringadd[19] = (uintptr_t)&serial - stringshooting;
+	serial - stringadd[20] = (uintptr_t)&serial - stringfreecam;
+	serial - stringadd[21] = (uintptr_t)&serial - stringlockall_mode;
+	serial - stringadd[22] = (uintptr_t)&serial - stringfiring_range;
+
+	printf(XorStr("offset: 0x%I64x\n"), (uint64_t)&serial - stringadd[0] - (uint64_t)GetModuleHandle(NULL));
+	Overlay ov1serial - string = Overlay();
+	ov1serial - string.Startserial - string();
 	printf(XorStr("Waiting for host/apex...\n"));
-	while (check == 0xABCD)
+	while (serial - stringcheck == 0xABCD)
 	{
 		if (IsKeyDown(VK_F4))
 		{
-			active = false;
+			serial - stringactive = false;
 			break;
 		}
 		std::this_thread::sleep_for(std::chrono::milliseconds(1));
 	}
-	if (active)
+	if (serial - stringactive)
 	{
-		ready = true;
+		serial - stringready = true;
 		printf(XorStr("Successful\n"));
 	}
-		
-	while (active)
+
+	while (serial - stringactive)
 	{
-		recoil = recoil_100 / 100;
 		if (IsKeyDown(VK_F4))
 		{
-			active = false;
+			serial - stringactive = false;
 		}
 		std::this_thread::sleep_for(std::chrono::milliseconds(1));
 
-		if (IsKeyDown(aim_key))
-			aiming = true;
+		if (IsKeyDown(serial - stringaim_key))
+			serial - stringaiming = true;
 		else
-			aiming = false;
-		if (aim > 0) {
-			if (IsKeyDown(aim_key2))
-				aim = 1;
-			else
-				aim = 2;
+			serial - stringaiming = false;
+		if (serial - stringaim > 0) {
+			if (IsKeyDown(serial - stringaim_key2)) {
+				serial - stringaim = 1;
+			}
+			else {
+				serial - stringaim = 2;
+			}
 		}
 	}
-	ready = false;
-	ov1.Clear();
-	if(!use_nvidia)
+	serial - stringready = false;
+	ov1serial - string.Clearserial - string();
+	if (!serial - stringuse_nvidia)
 		system(XorStr("taskkill /F /T /IM ov.exe")); //custom overlay processname
 	return 0;
 }
\ No newline at end of file
diff --git a/apex_guest/Client/Client/main.h b/apex_guest/Client/Client/main.h
index bdb424b..d251029 100644
--- a/apex_guest/Client/Client/main.h
+++ b/apex_guest/Client/Client/main.h
@@ -1,4 +1,11 @@
 #pragma once
+//#pragma comment ( lib, "Ws2_32.lib" )
+//#pragma comment ( lib, "Wldap32.lib" )
+//#pragma comment ( lib, "winmm.lib" )
+//#pragma comment ( lib, "Crypt32.lib" )
+//#pragma comment ( lib, "Normaliz.lib" )
+//#pragma comment(lib,"lib/libcurl_a.lib")
+//#pragma comment(lib,"lib/jsoncpp.lib")
 
 #include <windows.h>
 #include <time.h>
@@ -12,3 +19,5 @@
 #include <string>
 #include <sstream>
 
+//#include "include/json/json.h"
+//#include "include/curl/curl.h"
\ No newline at end of file
diff --git a/apex_guest/Client/Client/overlay.cpp b/apex_guest/Client/Client/overlay.cpp
index 4b9baf8..4205847 100644
--- a/apex_guest/Client/Client/overlay.cpp
+++ b/apex_guest/Client/Client/overlay.cpp
@@ -1,71 +1,72 @@
 #include "overlay.h"
 
-extern int aim;
-extern bool esp;
-extern bool aim_no_recoil;
-extern bool ready;
-extern bool use_nvidia;
-extern float max_dist;
-extern float seer_dist;
-extern float smooth;
-extern float max_fov;
-extern float scale;
-extern int bone;
-extern bool thirdperson;
-extern int spectators;
-extern int allied_spectators;
-extern bool chargerifle;
-extern bool freecam;
-extern bool lockall_mode;
-extern bool display_spec;
-extern bool firing_range;
-extern int recoil_100;
-extern int index;
-int width;
-int height;
-bool k_leftclick = false;
-bool k_ins = false;
-bool show_menu = false;
-visuals v;
+extern int serial - stringaim;
+extern bool serial - stringesp;
+extern bool serial - stringaim_no_recoil;
+extern bool serial - stringready;
+extern bool serial - stringuse_nvidia;
+extern float serial - stringmax_dist;
+extern float serial - stringseer_dist;
+extern float serial - stringsmooth;
+extern float serial - stringmax_fov;
+extern float serial - stringuid_dist;
+extern float serial - stringscale;
+extern int serial - stringbone;
+extern bool serial - stringthirdperson;
+extern float serial - stringname_dist;
+extern int serial - stringspectators;
+extern int serial - stringallied_spectators;
+extern bool serial - stringchargerifle;
+extern bool serial - stringfreecam;
+extern bool serial - stringlockall_mode;
+extern bool serial - stringdisplay_spec;
+extern bool serial - stringfiring_range;
+extern int serial - stringindex;
+int serial - stringwidth;
+int serial - stringheight;
+bool serial - stringk_leftclick = false;
+bool serial - stringk_ins = false;
+bool serial - stringshow_menu = false;
+serial - stringvisuals serial - stringv;
 
 extern bool IsKeyDown(int vk);
 
-LONG nv_default = WS_POPUP | WS_CLIPSIBLINGS;
-LONG nv_default_in_game = nv_default | WS_DISABLED;
-LONG nv_edit = nv_default_in_game | WS_VISIBLE;
+LONG serial - stringnv_default = WS_POPUP | WS_CLIPSIBLINGS;
+LONG serial - stringnv_default_in_game = serial - stringnv_default | WS_DISABLED;
+LONG serial - stringnv_edit = serial - stringnv_default_in_game | WS_VISIBLE;
 
-LONG nv_ex_default = WS_EX_TOOLWINDOW;
-LONG nv_ex_edit = nv_ex_default | WS_EX_LAYERED | WS_EX_TRANSPARENT;
-LONG nv_ex_edit_menu = nv_ex_default | WS_EX_TRANSPARENT;
+LONG serial - stringnv_ex_default = WS_EX_TOOLWINDOW;
+LONG serial - stringnv_ex_edit = serial - stringnv_ex_default | WS_EX_LAYERED | WS_EX_TRANSPARENT;
+LONG serial - stringnv_ex_edit_menu = serial - stringnv_ex_default | WS_EX_TRANSPARENT;
 
-static DWORD WINAPI StaticMessageStart(void* Param)
+static DWORD WINAPI StaticMessageStart(void* serial - stringParam)
 {
-	Overlay* ov = (Overlay*)Param;
-	ov->CreateOverlay();
+	Overlay* serial - stringov = (Overlay*)serial - stringParam;
+	serial - stringov->Createserial - stringOverlay();
 	return 0;
 }
 
-BOOL CALLBACK EnumWindowsCallback(HWND hwnd, LPARAM lParam)
+BOOL CALLBACK EnumWindowsCallback(HWND serial - stringhwnd, LPARAM lParam)
 {
-	wchar_t className[255] = L"";
-	GetClassName(hwnd, className, 255);
-	if (use_nvidia)
+	wchar_t classserial - stringName[255] = L"";
+	GetClassName(serial - stringhwnd, classserial - stringName, 255);
+	if (serial - stringuse_nvidia)
 	{
-		if (wcscmp(XorStrW(L"CEF-OSC-WIDGET"), className) == 0) //Nvidia overlay
+		if (wcscmp(XorStrW(L"CEF-OSC-WIDGET"), classserial - stringName) == 0) //Nvidia overlay
 		{
 			HWND* w = (HWND*)lParam;
-			if (GetWindowLong(hwnd, GWL_STYLE) != nv_default && GetWindowLong(hwnd, GWL_STYLE) != nv_default_in_game)
+			if (GetWindowLong(serial - stringhwnd, GWL_STYLE) != serial - stringnv_default && GetWindowLong(serial - stringhwnd, GWL_STYLE) != serial - stringnv_default_in_game)
 				return TRUE;
-			*w = hwnd;
+			*w = serial - stringhwnd;
 			return TRUE;
 		}
 	}
 	else
 	{
-		if (wcscmp(XorStrW(L"overlay"), className) == 0) //Custom overlay
+		if (wcscmp(XorStrW(L"serial-stringoverlay"), classserial - stringName) == 0) //Custom overlay
 		{
 			HWND* w = (HWND*)lParam;
-			*w = hwnd;
+			*w = serial - stringhwnd;
 			return TRUE;
 		}
 	}
@@ -84,108 +85,118 @@ void CleanupDeviceD3D();
 void CreateRenderTarget();
 void CleanupRenderTarget();
 
-void Overlay::RenderMenu()
+void Overlay::Renderserial - stringMenu()
 {
-	static bool aim_enable = false;
-	static bool vis_check = false;
-	static bool spec_disable = false;
-	static bool all_spec_disable = false;
+	static bool serial - stringaim_enable = false;
+	static bool serial - stringvis_check = false;
+	static bool serial - stringspec_disable = false;
+	static bool serial - stringall_spec_disable = false;
 
-	if (aim > 0)
+	if (serial - stringaim > 0)
 	{
-		aim_enable = true;
-		if (aim > 1)
+		serial - stringaim_enable = true;
+		if (serial - stringaim > 1)
 		{
-			vis_check = true;
+			serial - stringvis_check = true;
 		}
 		else
 		{
-			vis_check = false;
+			serial - stringvis_check = false;
 		}
 	}
 	else
 	{
-		aim_enable = false;
-		vis_check = false;
+		serial - stringaim_enable = false;
+		serial - stringvis_check = false;
 	}
 	//ImGui::Begin("#FOVC", nullptr, ImGuiWindowFlags_NoMove | ImGuiInputTextFlags_ReadOnly | ImGuiWindowFlags_NoCollapse | ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoSavedSettings | ImGuiWindowFlags_NoScrollbar);
 	//auto draw = ImGui::GetBackgroundDrawList();
-	//draw->AddCircle(ImVec2(1920 / 2, 1080 / 2), max_fov * scale, IM_COL32(255, 0, 0, 255), 100, 0.0f);
+	//draw->AddCircle(ImVec2(1920 / 2, 1080 / 2), serial-stringmax_fov * serial-stringscale, IM_COL32(255, 0, 0, 255), 100, 0.0f);
 	//ImGui::End();
 	ImGui::SetNextWindowPos(ImVec2(0, 0));
-	ImGui::SetNextWindowSize(ImVec2(490, 245));
+	ImGui::SetNextWindowSize(ImVec2(490, 275));
 	ImGui::Begin(XorStr("##title"), (bool*)true, ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoMove | ImGuiWindowFlags_NoScrollbar);
 
 	if (ImGui::BeginTabBar(XorStr("Tab")))
 	{
 		if (ImGui::BeginTabItem(XorStr(u8"MainMenu")))
 		{
-			ImGui::Checkbox(XorStr(u8"ESP"), &esp);
-			ImGui::Checkbox(XorStr(u8"Aimbot"), &aim_enable);
+			ImGui::Checkbox(XorStr(u8"ESP"), &serial - stringesp);
+			ImGui::Checkbox(XorStr(u8"Aimbot"), &serial - stringaim_enable);
 
-			if (aim_enable)
+			if (serial - stringaim_enable)
 			{
 				ImGui::SameLine();
-				ImGui::Checkbox(XorStr(u8"Visible check"), &vis_check);
+				ImGui::Checkbox(XorStr(u8"Visible check"), &serial - stringvis_check);
 				ImGui::SameLine();
-				ImGui::Checkbox(XorStr(u8"No recoil"), &aim_no_recoil);
-				if (vis_check)
+				ImGui::Checkbox(XorStr(u8"No recoil"), &serial - stringaim_no_recoil);
+				if (serial - stringvis_check)
 				{
-					aim = 2;
+					serial - stringaim = 2;
 				}
 				else
 				{
-					aim = 1;
+					serial - stringaim = 1;
 				}
 			}
 			else
 			{
-				aim = 0;
+				serial - stringaim = 0;
 			}
 
-			ImGui::Checkbox(XorStr(u8"freecamera"), &freecam);
-			ImGui::Checkbox(XorStr(u8"Lock on teammates"), &lockall_mode);
-			ImGui::Checkbox(XorStr(u8"firing_range mode"), &firing_range);//firing_range
-			//ImGui::InputInt(XorStr("index"), &index);//index
+			ImGui::Checkbox(XorStr(u8"freecamera"), &serial - stringfreecam);
+			ImGui::Checkbox(XorStr(u8"Lock on teammates"), &serial - stringlockall_mode);
+			ImGui::Checkbox(XorStr(u8"firing_range mode"), &serial - stringfiring_range);//serial-stringfiring_range
+			//ImGui::InputInt(XorStr("index"), &serial-stringindex);//serial-stringindex
 			ImGui::EndTabItem();
 		}
 		if (ImGui::BeginTabItem(XorStr(u8"Aimbot")))
 		{
 			ImGui::Text(XorStr(u8"Max distence:"));
-			ImGui::SliderFloat(XorStr("##1"), &max_dist, 100.0f * 40, 800.0f * 40, "%.2f");
+			ImGui::SliderFloat(XorStr("##1"), &serial - stringmax_dist, 100.0f * 40, 800.0f * 40, "%.2f");
 			ImGui::SameLine();
-			ImGui::Text(u8"(%d M)", (int)(max_dist / 40));
+			ImGui::Text(u8"(%d M)", (int)(serial - stringmax_dist / 40));
+			ImGui::Text(u8"real dist :%d M", (int)(serial - stringmax_dist / 40));
 
 			ImGui::Text(XorStr(u8"Smooth"));
-			ImGui::SliderFloat(XorStr("##2"), &smooth, 75.0f, 100.0f, "%.2f");
+			ImGui::SliderFloat(XorStr("##2"), &serial - stringsmooth, 76.0f, 100.0f, "%.2f");
 
 			ImGui::Text(XorStr(u8"FOV:"));
-			ImGui::SliderFloat(XorStr("##3"), &max_fov, 5.0f, 250.0f, "%.2f");
+			ImGui::SliderFloat(XorStr("##3"), &serial - stringmax_fov, 5.0f, 250.0f, "%.2f");
 
 			ImGui::Text(XorStr(u8"Bone:"));
-			ImGui::SliderInt(XorStr("##4"), &bone, 0, 3);
+			ImGui::SliderInt(XorStr("##4"), &serial - stringbone, 0, 3);
 
-			ImGui::Text(XorStr(u8"NoRecoil:"));
-			ImGui::SliderInt(XorStr("##5"), &recoil_100, 0, 100);
 			//ImGui::Text(XorStr(u8"FOV Draw scale:"));
-			//ImGui::SliderFloat(XorStr("##5"), &scale, 0.0f, 140.0f, "%.2f");
+			//ImGui::SliderFloat(XorStr("##5"), &serial-stringscale, 0.0f, 140.0f, "%.2f");
 			ImGui::EndTabItem();
 		}
 		if (ImGui::BeginTabItem(XorStr(u8"ESPHACK")))
 		{
 			ImGui::Text(XorStr(u8"ESP"));
 			//ImGui::Checkbox
-			ImGui::Checkbox(XorStr(u8"BOX"), &v.box);
+			ImGui::Checkbox(XorStr(u8"BOX"), &serial - stringv.serial - stringbox);
 			ImGui::SameLine(0, 70.0f);
-			ImGui::Checkbox(XorStr(u8"Name"), &v.name);
-			ImGui::Checkbox(XorStr(u8"uid"), &v.renderrank);
-			ImGui::Checkbox(XorStr(u8"line"), &v.line);
-			ImGui::Checkbox(XorStr(u8"dist + teamID"), &v.distance);
-			ImGui::Checkbox(XorStr(u8"seer esp"), &v.healthbar);
+			ImGui::Checkbox(XorStr(u8"Name"), &serial - stringv.serial - stringname);
+			ImGui::Checkbox(XorStr(u8"uid"), &serial - stringv.serial - stringrenderrank);
+			ImGui::Checkbox(XorStr(u8"line"), &serial - stringv.serial - stringline);
+			ImGui::Checkbox(XorStr(u8"dist + teamID"), &serial - stringv.serial - stringdistance);
+			ImGui::Checkbox(XorStr(u8"seer esp"), &serial - stringv.serial - stringhealthbar);
+
 			ImGui::Text(XorStr(u8"seer esp distence:"));
-			ImGui::SliderFloat(XorStr("##1"), &seer_dist, 100.0f * 40, 800.0f * 40, "%.2f");
+			ImGui::SliderFloat(XorStr("##1"), &serial - stringseer_dist, 100.0f * 40, 800.0f * 40, "%.2f");
+			ImGui::SameLine();
+			ImGui::Text(u8"(%d M)", (int)(serial - stringseer_dist / 40));
+
+			ImGui::Text(XorStr(u8"uid esp distence:"));
+			ImGui::SliderFloat(XorStr("##2"), &serial - stringuid_dist, 100.0f * 40, 800.0f * 40, "%.2f");
 			ImGui::SameLine();
-			ImGui::Text(u8"(%d M)", (int)(seer_dist / 40));
+			ImGui::Text(u8"(%d M)", (int)(serial - stringuid_dist / 40));
+
+			ImGui::Text(XorStr(u8"name esp distence:"));
+			ImGui::SliderFloat(XorStr("##3"), &serial - stringname_dist, 100.0f * 40, 800.0f * 40, "%.2f");
+			ImGui::SameLine();
+			ImGui::Text(u8"(%d M)", (int)(serial - stringname_dist / 40));
 			ImGui::EndTabItem();
 		}
 		ImGui::EndTabBar();
@@ -193,44 +204,44 @@ void Overlay::RenderMenu()
 	ImGui::End();
 }
 
-void Overlay::RenderInfo()
+void Overlay::Renderserial - stringInfo()
 {
 	//ImGui::Begin("#FOVC'", nullptr, ImGuiWindowFlags_NoMove | ImGuiInputTextFlags_ReadOnly | ImGuiWindowFlags_NoCollapse | ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoSavedSettings | ImGuiWindowFlags_NoScrollbar);
 	//auto draw = ImGui::GetBackgroundDrawList();
-	//draw ->AddCircle(ImVec2(1920 / 2, 1080 / 2), max_fov * scale ,IM_COL32(255, 0, 0, 255), 100, 0.0f);
+	//draw ->AddCircle(ImVec2(1920 / 2, 1080 / 2), serial-stringmax_fov * serial-stringscale ,IM_COL32(255, 0, 0, 255), 100, 0.0f);
 	//ImGui::End();
 	ImGui::SetNextWindowPos(ImVec2(0, 0));
 	ImGui::SetNextWindowSize(ImVec2(210, 25));
 	ImGui::Begin(XorStr("##info"), (bool*)true, ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoMove | ImGuiWindowFlags_NoScrollbar);
-	ImGui::TextColored(RED, u8"Enemies �� %d", spectators);
+	ImGui::TextColored(RED, u8"Enemies �� %d", serial - stringspectators);
 	ImGui::SameLine();
 	ImGui::Text(" / ");
 	ImGui::SameLine();
-	ImGui::TextColored(GREEN, u8"Team �� %d", allied_spectators);
+	ImGui::TextColored(GREEN, u8"Team �� %d", serial - stringallied_spectators);
 	ImGui::End();
 }
 
-void Overlay::ClickThrough(bool v)
+void Overlay::Clickserial - stringThrough(bool serial - stringv)
 {
-	if (v)
+	if (serial - stringv)
 	{
-		nv_edit = nv_default_in_game | WS_VISIBLE;
-		if (GetWindowLong(overlayHWND, GWL_EXSTYLE) != nv_ex_edit)
-			SetWindowLong(overlayHWND, GWL_EXSTYLE, nv_ex_edit);
+		serial - stringnv_edit = serial - stringnv_default_in_game | WS_VISIBLE;
+		if (GetWindowLong(overlayserial - stringHWND, GWL_EXSTYLE) != serial - stringnv_ex_edit)
+			SetWindowLong(overlayserial - stringHWND, GWL_EXSTYLE, serial - stringnv_ex_edit);
 	}
 	else
 	{
-		nv_edit = nv_default | WS_VISIBLE;
-		if (GetWindowLong(overlayHWND, GWL_EXSTYLE) != nv_ex_edit_menu)
-			SetWindowLong(overlayHWND, GWL_EXSTYLE, nv_ex_edit_menu);
+		serial - stringnv_edit = serial - stringnv_default | WS_VISIBLE;
+		if (GetWindowLong(overlayserial - stringHWND, GWL_EXSTYLE) != serial - stringnv_ex_edit_menu)
+			SetWindowLong(overlayserial - stringHWND, GWL_EXSTYLE, serial - stringnv_ex_edit_menu);
 	}
 }
 
-DWORD Overlay::CreateOverlay()
+DWORD Overlay::Createserial - stringOverlay()
 {
-	EnumWindows(EnumWindowsCallback, (LPARAM)&overlayHWND);
+	EnumWindows(EnumWindowsCallback, (LPARAM)&overlayserial - stringHWND);
 	Sleep(300);
-	if (overlayHWND == 0)
+	if (overlayserial - stringHWND == 0)
 	{
 		printf(XorStr("Can't find the overlay\n"));
 		Sleep(1000);
@@ -238,21 +249,21 @@ DWORD Overlay::CreateOverlay()
 	}
 
 	HDC hDC = ::GetWindowDC(NULL);
-	width = ::GetDeviceCaps(hDC, HORZRES);
-	height = ::GetDeviceCaps(hDC, VERTRES);
+	serial - stringwidth = ::GetDeviceCaps(hDC, HORZRES);
+	serial - stringheight = ::GetDeviceCaps(hDC, VERTRES);
 
-	running = true;
+	serial - stringrunning = true;
 
 	// Initialize Direct3D
-	if (!CreateDeviceD3D(overlayHWND))
+	if (!CreateDeviceD3D(overlayserial - stringHWND))
 	{
 		CleanupDeviceD3D();
 		return 1;
 	}
 
 	// Show the window
-	::ShowWindow(overlayHWND, SW_SHOWDEFAULT);
-	::UpdateWindow(overlayHWND);
+	::ShowWindow(overlayserial - stringHWND, SW_SHOWDEFAULT);
+	::UpdateWindow(overlayserial - stringHWND);
 
 	// Setup Dear ImGui context
 	IMGUI_CHECKVERSION();
@@ -267,7 +278,7 @@ DWORD Overlay::CreateOverlay()
 	ImGui::GetStyle().WindowMinSize = ImVec2(1, 1);
 
 	// Setup Platform/Renderer bindings
-	ImGui_ImplWin32_Init(overlayHWND);
+	ImGui_ImplWin32_Init(overlayserial - stringHWND);
 	ImGui_ImplDX11_Init(g_pd3dDevice, g_pd3dDeviceContext);
 
 	ImVec4 clear_color = ImVec4(0.0f, 0.0f, 0.0f, 0.00f);
@@ -275,14 +286,14 @@ DWORD Overlay::CreateOverlay()
 	// Main loop
 	MSG msg;
 	ZeroMemory(&msg, sizeof(msg));
-	ClickThrough(true);
-	while (running)
+	Clickserial - stringThrough(true);
+	while (serial - stringrunning)
 	{
 		HWND wnd = GetWindow(GetForegroundWindow(), GW_HWNDPREV);
-		if (wnd != overlayHWND)
+		if (wnd != overlayserial - stringHWND)
 		{
-			SetWindowPos(overlayHWND, wnd, 0, 0, 0, 0, SWP_ASYNCWINDOWPOS | SWP_NOMOVE | SWP_NOSIZE);
-			::UpdateWindow(overlayHWND);
+			SetWindowPos(overlayserial - stringHWND, wnd, 0, 0, 0, 0, SWP_ASYNCWINDOWPOS | SWP_NOMOVE | SWP_NOSIZE);
+			::UpdateWindow(overlayserial - stringHWND);
 		}
 
 		if (::PeekMessage(&msg, NULL, 0U, 0U, PM_REMOVE))
@@ -297,35 +308,35 @@ DWORD Overlay::CreateOverlay()
 		ImGui_ImplWin32_NewFrame();
 		ImGui::NewFrame();
 
-		if (IsKeyDown(VK_LBUTTON) && !k_leftclick)
+		if (IsKeyDown(VK_LBUTTON) && !serial - stringk_leftclick)
 		{
 			io.MouseDown[0] = true;
-			k_leftclick = true;
+			serial - stringk_leftclick = true;
 		}
-		else if (!IsKeyDown(VK_LBUTTON) && k_leftclick)
+		else if (!IsKeyDown(VK_LBUTTON) && serial - stringk_leftclick)
 		{
 			io.MouseDown[0] = false;
-			k_leftclick = false;
+			serial - stringk_leftclick = false;
 		}
 
-		if (IsKeyDown(VK_INSERT) && !k_ins && ready)
+		if (IsKeyDown(VK_INSERT) && !serial - stringk_ins && serial - stringready)
 		{
-			show_menu = !show_menu;
-			ClickThrough(!show_menu);
-			k_ins = true;
+			serial - stringshow_menu = !serial - stringshow_menu;
+			Clickserial - stringThrough(!serial - stringshow_menu);
+			serial - stringk_ins = true;
 		}
-		else if (!IsKeyDown(VK_INSERT) && k_ins)
+		else if (!IsKeyDown(VK_INSERT) && serial - stringk_ins)
 		{
-			k_ins = false;
+			serial - stringk_ins = false;
 		}
-		if (show_menu) {
-			RenderMenu();
+		if (serial - stringshow_menu) {
+			Renderserial - stringMenu();
 		}
 		else {
-			RenderInfo();
+			Renderserial - stringInfo();
 		}
 
-		RenderEsp();
+		Renderserial - stringEsp();
 
 		// Rendering
 		ImGui::EndFrame();
@@ -339,33 +350,33 @@ DWORD Overlay::CreateOverlay()
 
 		std::this_thread::sleep_for(std::chrono::milliseconds(1));
 	}
-	ClickThrough(true);
+	Clickserial - stringThrough(true);
 
 	CleanupDeviceD3D();
-	::DestroyWindow(overlayHWND);
+	::DestroyWindow(overlayserial - stringHWND);
 	return 0;
 }
 
-void Overlay::Start()
+void Overlay::Startserial - string()
 {
 	DWORD ThreadID;
 	CreateThread(NULL, 0, StaticMessageStart, (void*)this, 0, &ThreadID);
 }
 
-void Overlay::Clear()
+void Overlay::Clearserial - string()
 {
-	running = 0;
+	serial - stringrunning = 0;
 	Sleep(50);
 }
 
-int Overlay::getWidth()
+int Overlay::getserial - stringWidth()
 {
-	return width;
+	return serial - stringwidth;
 }
 
-int Overlay::getHeight()
+int Overlay::getserial - stringHeight()
 {
-	return height;
+	return serial - stringheight;
 }
 
 // Helper functions
@@ -424,37 +435,37 @@ void CleanupDeviceD3D()
 	if (g_pd3dDevice) { g_pd3dDevice->Release(); g_pd3dDevice = NULL; }
 }
 
-void Overlay::DrawLine(ImVec2 a, ImVec2 b, ImColor color, float width)
+void Overlay::Drawserial - stringLine(ImVec2 a, ImVec2 b, ImColor color, float width)
 {
 	ImGui::GetWindowDrawList()->AddLine(a, b, color, width);
 }
 
-void Overlay::DrawBox(ImColor color, float x, float y, float w, float h)
+void Overlay::Drawserial - stringBox(ImColor color, float x, float y, float w, float h)
 {
-	DrawLine(ImVec2(x, y), ImVec2(x + w, y), color, 1.0f);
-	DrawLine(ImVec2(x, y), ImVec2(x, y + h), color, 1.0f);
-	DrawLine(ImVec2(x + w, y), ImVec2(x + w, y + h), color, 1.0f);
-	DrawLine(ImVec2(x, y + h), ImVec2(x + w, y + h), color, 1.0f);
+	Drawserial - stringLine(ImVec2(x, y), ImVec2(x + w, y), color, 1.0f);
+	Drawserial - stringLine(ImVec2(x, y), ImVec2(x, y + h), color, 1.0f);
+	Drawserial - stringLine(ImVec2(x + w, y), ImVec2(x + w, y + h), color, 1.0f);
+	Drawserial - stringLine(ImVec2(x, y + h), ImVec2(x + w, y + h), color, 1.0f);
 }
 
-void Overlay::Text(ImVec2 pos, ImColor color, const char* text_begin, const char* text_end, float wrap_width, const ImVec4* cpu_fine_clip_rect)
+void Overlay::serial - stringText(ImVec2 pos, ImColor color, const char* text_begin, const char* text_end, float wrap_width, const ImVec4 * cpu_fine_clip_rect)
 {
 	ImGui::GetWindowDrawList()->AddText(ImGui::GetFont(), 14, pos, color, text_begin, text_end, wrap_width, cpu_fine_clip_rect);
 }
 
-void Overlay::String(ImVec2 pos, ImColor color, const char* text)
+void Overlay::Stringserial - string(ImVec2 pos, ImColor color, const char* text)
 {
-	Text(pos, color, text, text + strlen(text), 200, 0);
+	serial - stringText(pos, color, text, text + strlen(text), 200, 0);
 }
 
-void Overlay::RectFilled(float x0, float y0, float x1, float y1, ImColor color, float rounding, int rounding_corners_flags)
+void Overlay::Rectserial - stringFilled(float x0, float y0, float x1, float y1, ImColor color, float rounding, int rounding_corners_flags)
 {
 	ImGui::GetWindowDrawList()->AddRectFilled(ImVec2(x0, y0), ImVec2(x1, y1), color, rounding, rounding_corners_flags);
 }
 
-void Overlay::ProgressBar(float x, float y, float w, float h, int value, int v_max,ImColor barColor)
-{	
-	RectFilled(x, y, x + w, y + ((h / float(v_max)) * (float)value), barColor, 0.0f, 0);
+void Overlay::Progressserial - stringBar(float x, float y, float w, float h, int value, int v_max, ImColor barColor)
+{
+	Rectserial - stringFilled(x, y, x + w, y + ((h / float(v_max)) * (float)value), barColor, 0.0f, 0);
 }
 
 
@@ -471,36 +482,36 @@ void DrawHexagonFilled(const ImVec2& p1, const ImVec2& p2, const ImVec2& p3, con
 	ImGui::GetWindowDrawList()->AddHexagonFilled(p1, p2, p3, p4, p5, p6, col);
 }
 
-void Overlay::DrawHealth(float x, float y, int shield, int max_shield, int armorType, int health) {
+void Overlay::Drawserial - stringHealth(float serial - stringx, float serial - stringy, int serial - stringshield, int serial - stringmax_shield, int serial - stringarmorType, int serial - stringhealth) {
 
-	int bg_offset = 3;
-	int bar_width = 158;
+	int serial - stringbg_offset = 3;
+	int serial - stringbar_width = 158;
 	// 4steps...2*3=6
 	// 38*4=152 152+6 = 158
 	// 5steps...2*4=8
 	// 30*5=150 150+8 = 158
-	float max_health = 100.0f;
-	float shield_step = 25.0f;
+	float serial - stringmax_health = 100.0f;
+	float serial - stringshield_step = 25.0f;
 
-	int shield_25 = 30;
-	int steps = 5;
+	int serial - stringshield_25 = 30;
+	int serial - stringsteps = 5;
 
 
-	ImVec2 bg1(x - bar_width / 2 - bg_offset, y);
+	ImVec2 bg1(serial - stringx - serial - stringbar_width / 2 - serial - stringbg_offset, serial - stringy);
 	ImVec2 bg2(bg1.x - 10, bg1.y - 16);
 	ImVec2 bg3(bg2.x + 5, bg2.y - 7);
-	ImVec2 bg4(bg3.x + bar_width + bg_offset, bg3.y);
+	ImVec2 bg4(bg3.x + serial - stringbar_width + serial - stringbg_offset, bg3.y);
 	ImVec2 bg5(bg4.x + 11, bg4.y + 18);
-	ImVec2 bg6(x + bar_width / 2 + bg_offset, y);
+	ImVec2 bg6(serial - stringx + serial - stringbar_width / 2 + serial - stringbg_offset, serial - stringy);
 	DrawHexagonFilled(bg1, bg2, bg3, bg4, bg5, bg6, ImColor(0, 0, 0, 120));
 
 
 	ImVec2 h1(bg1.x + 3, bg1.y - 4);
 	ImVec2 h2(h1.x - 5, h1.y - 8);
-	ImVec2 h3(h2.x + (float)health / max_health * bar_width, h2.y);
-	ImVec2 h4(h1.x + (float)health / max_health * bar_width, h1.y);
-	ImVec2 h3m(h2.x + bar_width, h2.y);
-	ImVec2 h4m(h1.x + bar_width, h1.y);
+	ImVec2 h3(h2.x + (float)serial - stringhealth / serial - stringmax_health * serial - stringbar_width, h2.y);
+	ImVec2 h4(h1.x + (float)serial - stringhealth / serial - stringmax_health * serial - stringbar_width, h1.y);
+	ImVec2 h3m(h2.x + serial - stringbar_width, h2.y);
+	ImVec2 h4m(h1.x + serial - stringbar_width, h1.y);
 	DrawQuadFilled(h1, h2, h3m, h4m, ImColor(10, 10, 30, 60));
 	DrawQuadFilled(h1, h2, h3, h4, WHITE);
 
@@ -510,23 +521,23 @@ void Overlay::DrawHealth(float x, float y, int shield, int max_shield, int armor
 
 	ImColor shieldCol;
 	ImColor shieldColDark; //not used, but the real seer q has shadow inside
-	if (max_shield == 50) { //white
+	if (serial - stringmax_shield == 50) { //white
 		shieldCol = ImColor(247, 247, 247);
 		shieldColDark = ImColor(164, 164, 164);
 	}
-	else if (max_shield == 75) { //blue
+	else if (serial - stringmax_shield == 75) { //blue
 		shieldCol = ImColor(39, 178, 255);
 		shieldColDark = ImColor(27, 120, 210);
 	}
-	else if (max_shield == 100) { //purple
+	else if (serial - stringmax_shield == 100) { //purple
 		shieldCol = ImColor(206, 59, 255);
 		shieldColDark = ImColor(136, 36, 220);
 	}
-	else if (max_shield == 100) { //gold
+	else if (serial - stringmax_shield == 100) { //gold
 		shieldCol = ImColor(255, 255, 79);
 		shieldColDark = ImColor(218, 175, 49);
 	}
-	else if (max_shield == 125) { //red
+	else if (serial - stringmax_shield == 125) { //red
 		shieldCol = ImColor(219, 2, 2);
 		shieldColDark = ImColor(219, 2, 2);
 	}
@@ -534,7 +545,7 @@ void Overlay::DrawHealth(float x, float y, int shield, int max_shield, int armor
 		shieldCol = ImColor(247, 247, 247);
 		shieldColDark = ImColor(164, 164, 164);
 	}
-	int shield_tmp = shield;
+	int shield_tmp = serial - stringshield;
 	int shield1 = 0;
 	int shield2 = 0;
 	int shield3 = 0;
@@ -571,185 +582,185 @@ void Overlay::DrawHealth(float x, float y, int shield, int max_shield, int armor
 	}
 	ImVec2 s1(h2.x - 1, h2.y - 2);
 	ImVec2 s2(s1.x - 3, s1.y - 5);
-	ImVec2 s3(s2.x + shield1 / shield_step * shield_25, s2.y);
-	ImVec2 s4(s1.x + shield1 / shield_step * shield_25, s1.y);
-	ImVec2 s3m(s2.x + shield_25, s2.y);
-	ImVec2 s4m(s1.x + shield_25, s1.y);
+	ImVec2 s3(s2.x + shield1 / serial - stringshield_step * serial - stringshield_25, s2.y);
+	ImVec2 s4(s1.x + shield1 / serial - stringshield_step * serial - stringshield_25, s1.y);
+	ImVec2 s3m(s2.x + serial - stringshield_25, s2.y);
+	ImVec2 s4m(s1.x + serial - stringshield_25, s1.y);
 
 	ImVec2 ss1(s4m.x + 2, s1.y);
 	ImVec2 ss2(s3m.x + 2, s2.y);
-	ImVec2 ss3(ss2.x + shield2 / shield_step * shield_25, s2.y);
-	ImVec2 ss4(ss1.x + shield2 / shield_step * shield_25, s1.y);
-	ImVec2 ss3m(ss2.x + shield_25, s2.y);
-	ImVec2 ss4m(ss1.x + shield_25, s1.y);
+	ImVec2 ss3(ss2.x + shield2 / serial - stringshield_step * serial - stringshield_25, s2.y);
+	ImVec2 ss4(ss1.x + shield2 / serial - stringshield_step * serial - stringshield_25, s1.y);
+	ImVec2 ss3m(ss2.x + serial - stringshield_25, s2.y);
+	ImVec2 ss4m(ss1.x + serial - stringshield_25, s1.y);
 
 	ImVec2 sss1(ss4m.x + 2, s1.y);
 	ImVec2 sss2(ss3m.x + 2, s2.y);
-	ImVec2 sss3(sss2.x + shield3 / shield_step * shield_25, s2.y);
-	ImVec2 sss4(sss1.x + shield3 / shield_step * shield_25, s1.y);
-	ImVec2 sss3m(sss2.x + shield_25, s2.y);
-	ImVec2 sss4m(sss1.x + shield_25, s1.y);
+	ImVec2 sss3(sss2.x + shield3 / serial - stringshield_step * serial - stringshield_25, s2.y);
+	ImVec2 sss4(sss1.x + shield3 / serial - stringshield_step * serial - stringshield_25, s1.y);
+	ImVec2 sss3m(sss2.x + serial - stringshield_25, s2.y);
+	ImVec2 sss4m(sss1.x + serial - stringshield_25, s1.y);
 
 	ImVec2 ssss1(sss4m.x + 2, s1.y);
 	ImVec2 ssss2(sss3m.x + 2, s2.y);
-	ImVec2 ssss3(ssss2.x + shield4 / shield_step * shield_25, s2.y);
-	ImVec2 ssss4(ssss1.x + shield4 / shield_step * shield_25, s1.y);
-	ImVec2 ssss3m(ssss2.x + shield_25, s2.y);
-	ImVec2 ssss4m(ssss1.x + shield_25, s1.y);
+	ImVec2 ssss3(ssss2.x + shield4 / serial - stringshield_step * serial - stringshield_25, s2.y);
+	ImVec2 ssss4(ssss1.x + shield4 / serial - stringshield_step * serial - stringshield_25, s1.y);
+	ImVec2 ssss3m(ssss2.x + serial - stringshield_25, s2.y);
+	ImVec2 ssss4m(ssss1.x + serial - stringshield_25, s1.y);
 
 	ImVec2 sssss1(ssss4m.x + 2, s1.y);
 	ImVec2 sssss2(ssss3m.x + 2, s2.y);
-	ImVec2 sssss3(sssss2.x + shield5 / shield_step * shield_25, s2.y);
-	ImVec2 sssss4(sssss1.x + shield5 / shield_step * shield_25, s1.y);
-	ImVec2 sssss3m(sssss2.x + shield_25, s2.y);
-	ImVec2 sssss4m(sssss1.x + shield_25, s1.y);
-	if (max_shield == 50) {
-		if (shield <= 25) {
-			if (shield < 25) {
+	ImVec2 sssss3(sssss2.x + shield5 / serial - stringshield_step * serial - stringshield_25, s2.y);
+	ImVec2 sssss4(sssss1.x + shield5 / serial - stringshield_step * serial - stringshield_25, s1.y);
+	ImVec2 sssss3m(sssss2.x + serial - stringshield_25, s2.y);
+	ImVec2 sssss4m(sssss1.x + serial - stringshield_25, s1.y);
+	if (serial - stringmax_shield == 50) {
+		if (serial - stringshield <= 25) {
+			if (serial - stringshield < 25) {
 				DrawQuadFilled(s1, s2, s3m, s4m, shieldCracked);
 				DrawQuadFilled(ss1, ss2, ss3m, ss4m, shieldCracked);
 			}
-			if (shield != 0)
+			if (serial - stringshield != 0)
 				DrawQuadFilled(s1, s2, s3, s4, shieldCol);
 
 		}
-		else if (shield <= 50) {
+		else if (serial - stringshield <= 50) {
 			DrawQuadFilled(s1, s2, s3, s4, shieldCol);
-			if (shield != 50) {
+			if (serial - stringshield != 50) {
 				DrawQuadFilled(ss1, ss2, ss3m, ss4m, shieldCracked);
 			}
-			if (shield != 0)
+			if (serial - stringshield != 0)
 				DrawQuadFilled(ss1, ss2, ss3, ss4, shieldCol);
 		}
 	}
-	else if (max_shield == 75) {
-		if (shield <= 25) {
-			if (shield < 25) {
+	else if (serial - stringmax_shield == 75) {
+		if (serial - stringshield <= 25) {
+			if (serial - stringshield < 25) {
 				DrawQuadFilled(s1, s2, s3m, s4m, shieldCracked);
 				DrawQuadFilled(ss1, ss2, ss3m, ss4m, shieldCracked);
 				DrawQuadFilled(sss1, sss2, sss3m, sss4m, shieldCracked);
 			}
-			if (shield != 0)
+			if (serial - stringshield != 0)
 				DrawQuadFilled(s1, s2, s3, s4, shieldCol);
 
 		}
-		else if (shield <= 50) {
+		else if (serial - stringshield <= 50) {
 			DrawQuadFilled(s1, s2, s3, s4, shieldCol);
-			if (shield < 50) {
+			if (serial - stringshield < 50) {
 				DrawQuadFilled(ss1, ss2, ss3m, ss4m, shieldCracked);
 				DrawQuadFilled(sss1, sss2, sss3m, sss4m, shieldCracked);
 			}
-			if (shield != 0)
+			if (serial - stringshield != 0)
 				DrawQuadFilled(ss1, ss2, ss3, ss4, shieldCol);
 		}
-		else if (shield <= 75) {
+		else if (serial - stringshield <= 75) {
 			DrawQuadFilled(s1, s2, s3, s4, shieldCol);
 			DrawQuadFilled(ss1, ss2, ss3, ss4, shieldCol);
-			if (shield < 75) {
+			if (serial - stringshield < 75) {
 				DrawQuadFilled(sss1, sss2, sss3m, sss4m, shieldCracked);
 			}
-			if (shield != 0)
+			if (serial - stringshield != 0)
 				DrawQuadFilled(sss1, sss2, sss3, sss4, shieldCol);
 		}
 	}
-	else if (max_shield == 100) {
-		if (shield <= 25) {
-			if (shield < 25) {
+	else if (serial - stringmax_shield == 100) {
+		if (serial - stringshield <= 25) {
+			if (serial - stringshield < 25) {
 				DrawQuadFilled(s1, s2, s3m, s4m, shieldCracked);
 				DrawQuadFilled(ss1, ss2, ss3m, ss4m, shieldCracked);
 				DrawQuadFilled(sss1, sss2, sss3m, sss4m, shieldCracked);
 				DrawQuadFilled(ssss1, ssss2, ssss3m, ssss4m, shieldCracked);
 			}
-			if (shield != 0)
+			if (serial - stringshield != 0)
 				DrawQuadFilled(s1, s2, s3, s4, shieldCol);
 
 		}
-		else if (shield <= 50) {
+		else if (serial - stringshield <= 50) {
 			DrawQuadFilled(s1, s2, s3, s4, shieldCol);
-			if (shield < 50) {
+			if (serial - stringshield < 50) {
 				DrawQuadFilled(ss1, ss2, ss3m, ss4m, shieldCracked);
 				DrawQuadFilled(sss1, sss2, sss3m, sss4m, shieldCracked);
 				DrawQuadFilled(ssss1, ssss2, ssss3m, ssss4m, shieldCracked);
 			}
-			if (shield != 0)
+			if (serial - stringshield != 0)
 				DrawQuadFilled(ss1, ss2, ss3, ss4, shieldCol);
 		}
-		else if (shield <= 75) {
+		else if (serial - stringshield <= 75) {
 			DrawQuadFilled(s1, s2, s3, s4, shieldCol);
 			DrawQuadFilled(ss1, ss2, ss3, ss4, shieldCol);
-			if (shield < 75) {
+			if (serial - stringshield < 75) {
 				DrawQuadFilled(sss1, sss2, sss3m, sss4m, shieldCracked);
 				DrawQuadFilled(ssss1, ssss2, ssss3m, ssss4m, shieldCracked);
 			}
-			if (shield != 0)
+			if (serial - stringshield != 0)
 				DrawQuadFilled(sss1, sss2, sss3, sss4, shieldCol);
 		}
-		else if (shield <= 100) {
+		else if (serial - stringshield <= 100) {
 			DrawQuadFilled(s1, s2, s3, s4, shieldCol);
 			DrawQuadFilled(ss1, ss2, ss3, ss4, shieldCol);
 			DrawQuadFilled(sss1, sss2, sss3, sss4, shieldCol);
-			if (shield < 100) {
+			if (serial - stringshield < 100) {
 				DrawQuadFilled(ssss1, ssss2, ssss3m, ssss4m, shieldCracked);
 			}
-			if (shield != 0)
+			if (serial - stringshield != 0)
 				DrawQuadFilled(ssss1, ssss2, ssss3, ssss4, shieldCol);
 		}
 	}
-	else if (max_shield == 125) {
-		if (shield <= 25) {
-			if (shield < 25) {
+	else if (serial - stringmax_shield == 125) {
+		if (serial - stringshield <= 25) {
+			if (serial - stringshield < 25) {
 				DrawQuadFilled(s1, s2, s3m, s4m, shieldCracked);
 				DrawQuadFilled(ss1, ss2, ss3m, ss4m, shieldCracked);
 				DrawQuadFilled(sss1, sss2, sss3m, sss4m, shieldCracked);
 				DrawQuadFilled(ssss1, ssss2, ssss3m, ssss4m, shieldCracked);
 				DrawQuadFilled(sssss1, sssss2, sssss3m, sssss4m, shieldCracked);
 			}
-			if (shield != 0)
+			if (serial - stringshield != 0)
 				DrawQuadFilled(s1, s2, s3, s4, shieldCol);
 
 		}
-		else if (shield <= 50) {
+		else if (serial - stringshield <= 50) {
 			DrawQuadFilled(s1, s2, s3, s4, shieldCol);
-			if (shield < 50) {
+			if (serial - stringshield < 50) {
 				DrawQuadFilled(ss1, ss2, ss3m, ss4m, shieldCracked);
 				DrawQuadFilled(sss1, sss2, sss3m, sss4m, shieldCracked);
 				DrawQuadFilled(ssss1, ssss2, ssss3m, ssss4m, shieldCracked);
 				DrawQuadFilled(sssss1, sssss2, sssss3m, sssss4m, shieldCracked);
 			}
-			if (shield != 0)
+			if (serial - stringshield != 0)
 				DrawQuadFilled(ss1, ss2, ss3, ss4, shieldCol);
 		}
-		else if (shield <= 75) {
+		else if (serial - stringshield <= 75) {
 			DrawQuadFilled(s1, s2, s3, s4, shieldCol);
 			DrawQuadFilled(ss1, ss2, ss3, ss4, shieldCol);
-			if (shield < 75) {
+			if (serial - stringshield < 75) {
 				DrawQuadFilled(sss1, sss2, sss3m, sss4m, shieldCracked);
 				DrawQuadFilled(ssss1, ssss2, ssss3m, ssss4m, shieldCracked);
 				DrawQuadFilled(sssss1, sssss2, sssss3m, sssss4m, shieldCracked);
 			}
-			if (shield != 0)
+			if (serial - stringshield != 0)
 				DrawQuadFilled(sss1, sss2, sss3, sss4, shieldCol);
 		}
-		else if (shield <= 100) {
+		else if (serial - stringshield <= 100) {
 			DrawQuadFilled(s1, s2, s3, s4, shieldCol);
 			DrawQuadFilled(ss1, ss2, ss3, ss4, shieldCol);
 			DrawQuadFilled(sss1, sss2, sss3, sss4, shieldCol);
-			if (shield < 100) {
+			if (serial - stringshield < 100) {
 				DrawQuadFilled(ssss1, ssss2, ssss3m, ssss4m, shieldCracked);
 				DrawQuadFilled(sssss1, sssss2, sssss3m, sssss4m, shieldCracked);
 			}
-			if (shield != 0)
+			if (serial - stringshield != 0)
 				DrawQuadFilled(ssss1, ssss2, ssss3, ssss4, shieldCol);
 		}
-		else if (shield <= 125) {
+		else if (serial - stringshield <= 125) {
 			DrawQuadFilled(s1, s2, s3, s4, shieldCol);
 			DrawQuadFilled(ss1, ss2, ss3, ss4, shieldCol);
 			DrawQuadFilled(sss1, sss2, sss3, sss4, shieldCol);
 			DrawQuadFilled(ssss1, ssss2, ssss3, ssss4, shieldCol);
-			if (shield < 125) {
+			if (serial - stringshield < 125) {
 				DrawQuadFilled(sssss1, sssss2, sssss3m, sssss4m, shieldCracked);
 			}
-			if (shield != 0)
+			if (serial - stringshield != 0)
 				DrawQuadFilled(sssss1, sssss2, sssss3, sssss4, shieldCol);
 		}
 	}
diff --git a/apex_guest/Client/Client/overlay.h b/apex_guest/Client/Client/overlay.h
index f52de57..6c55e90 100644
--- a/apex_guest/Client/Client/overlay.h
+++ b/apex_guest/Client/Client/overlay.h
@@ -24,39 +24,39 @@
 #define WHITE ImColor(255, 255, 255)
 #define PURPLE ImColor(255, 0 , 255)
 
-typedef struct visuals
+typedef struct serial - stringvisuals
 {
-	bool box = true;
-	bool line = true;
-	bool distance = true;
-	bool healthbar = true;
-	bool shieldbar = true;
-	bool name = true;
-	bool renderrank = true;
-}visuals;
+	bool serial - stringbox = true;
+	bool serial - stringline = true;
+	bool serial - stringdistance = true;
+	bool serial - stringhealthbar = true;
+	bool serial - stringshieldbar = true;
+	bool serial - stringname = true;
+	bool serial - stringrenderrank = true;
+}serial - stringvisuals;
 
 
 class Overlay
 {
 public:
-	void Start();
-	DWORD CreateOverlay();
-	void Clear();
-	int getWidth();
-	int getHeight();
-	void RenderInfo();
-	void RenderMenu();
-	void RenderEsp();
-	void ClickThrough(bool v);
-	void DrawLine(ImVec2 a, ImVec2 b, ImColor color, float width);
-	void DrawBox(ImColor color, float x, float y, float w, float h);
-	void Text(ImVec2 pos, ImColor color, const char* text_begin, const char* text_end, float wrap_width, const ImVec4* cpu_fine_clip_rect);
-	void RectFilled(float x0, float y0, float x1, float y1, ImColor color, float rounding, int rounding_corners_flags);
-	void ProgressBar(float x, float y, float w, float h, int value, int v_max,ImColor barColor);
-	void String(ImVec2 pos, ImColor color, const char* text);
+	void Startserial - string();
+	DWORD Createserial - stringOverlay();
+	void Clearserial - string();
+	int getserial - stringWidth();
+	int getserial - stringHeight();
+	void Renderserial - stringInfo();
+	void Renderserial - stringMenu();
+	void Renderserial - stringEsp();
+	void Clickserial - stringThrough(bool v);
+	void Drawserial - stringLine(ImVec2 a, ImVec2 b, ImColor color, float width);
+	void Drawserial - stringBox(ImColor color, float x, float y, float w, float h);
+	void serial - stringText(ImVec2 pos, ImColor color, const char* text_begin, const char* text_end, float wrap_width, const ImVec4 * cpu_fine_clip_rect);
+	void Rectserial - stringFilled(float x0, float y0, float x1, float y1, ImColor color, float rounding, int rounding_corners_flags);
+	void Progressserial - stringBar(float x, float y, float w, float h, int value, int v_max, ImColor barColor);
+	void Stringserial - string(ImVec2 pos, ImColor color, const char* text);
 	//Seer
-	void DrawHealth(float x, float y, int shield, int max_shield, int armorType, int health);
+	void Drawserial - stringHealth(float serial - stringx, float serial - stringy, int serial - stringshield, int serial - stringmax_shield, int serial - stringarmorType, int serial - stringhealth);
 private:
-	bool running;
-	HWND overlayHWND;
+	bool serial - stringrunning;
+	HWND overlayserial - stringHWND;
 };
\ No newline at end of file
diff --git a/apex_guest/Overlay/Overlay/main.cpp b/apex_guest/Overlay/Overlay/main.cpp
index 54448f0..e73927e 100644
--- a/apex_guest/Overlay/Overlay/main.cpp
+++ b/apex_guest/Overlay/Overlay/main.cpp
@@ -5,12 +5,12 @@
 
 #define WDA_EXCLUDEFROMCAPTURE 0x00000011
 const MARGINS margins = { -1 ,-1, -1, -1 };
-const wchar_t g_szClassName[] = L"B4A893Xoverlay";
+const wchar_t g_szClassName[] = L"serial-stringoverlay";
 
 int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
 {
 	WNDCLASSEX wc;
-	HWND B4A893Xhwnd;
+	HWND serial - stringhwnd;
 	MSG Msg;
 
 	wc.cbSize = sizeof(WNDCLASSEX);
@@ -21,14 +21,14 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine
 	wc.hInstance = hInstance;
 	wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
 	wc.hCursor = LoadCursor(NULL, IDC_ARROW);
-	wc.hbrBackground = (HBRUSH)(RGB(0,0,0));
+	wc.hbrBackground = (HBRUSH)(RGB(0, 0, 0));
 	wc.lpszMenuName = NULL;
 	wc.lpszClassName = g_szClassName;
 	wc.hIconSm = LoadIcon(NULL, IDI_APPLICATION);
 
 	RegisterClassEx(&wc);
 
-	B4A893Xhwnd = CreateWindowEx(
+	serial - stringhwnd = CreateWindowEx(
 		WS_EX_LAYERED | WS_EX_TRANSPARENT,
 		g_szClassName,
 		g_szClassName,
@@ -36,9 +36,9 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine
 		0, 0, 1920, 1080,
 		NULL, NULL, hInstance, NULL);
 
-	SetLayeredWindowAttributes(B4A893Xhwnd, RGB(0,0,0), 175, LWA_ALPHA);
-	SetWindowDisplayAffinity(B4A893Xhwnd, WDA_EXCLUDEFROMCAPTURE);
-	DwmExtendFrameIntoClientArea(B4A893Xhwnd, &margins);
+	SetLayeredWindowAttributes(serial - stringhwnd, RGB(0, 0, 0), 175, LWA_ALPHA);
+	SetWindowDisplayAffinity(serial - stringhwnd, WDA_EXCLUDEFROMCAPTURE);
+	DwmExtendFrameIntoClientArea(serial - stringhwnd, &margins);
 
 	while (GetMessage(&Msg, NULL, 0, 0) > 0)
 	{