1:45 PM 11/12/2025 ���� JFIF    �� �        "" $(4,$&1'-=-157:::#+?D?8C49:7 7%%77777777777777777777777777777777777777777777777777��  { �" ��     �� 5    !1AQa"q�2��BR��#b�������  ��  ��   ? ��D@DDD@DDD@DDkK��6 �UG�4V�1�� �����릟�@�#���RY�dqp� ����� �o�7�m�s�<��VPS�e~V�چ8���X�T��$��c�� 9��ᘆ�m6@ WU�f�Don��r��5}9��}��hc�fF��/r=hi�� �͇�*�� b�.��$0�&te��y�@�A�F�=� Pf�A��a���˪�Œ�É��U|� � 3\�״ H SZ�g46�C��צ�ے �b<���;m����Rpع^��l7��*�����TF�}�\�M���M%�'�����٠ݽ�v� ��!-�����?�N!La��A+[`#���M����'�~oR�?��v^)��=��h����A��X�.���˃����^Ə��ܯsO"B�c>; �e�4��5�k��/CB��.  �J?��;�҈�������������������~�<�VZ�ꭼ2/)Í”jC���ע�V�G�!���!�F������\�� Kj�R�oc�h���:Þ I��1"2�q×°8��Р@ז���_C0�ր��A��lQ��@纼�!7��F�� �]�sZ B�62r�v�z~�K�7�c��5�.���ӄq&�Z�d�<�kk���T&8�|���I���� Ws}���ǽ�cqnΑ�_���3��|N�-y,��i���ȗ_�\60���@��6����D@DDD@DDD@DDD@DDD@DDc�KN66<�c��64=r����� ÄŽ0��h���t&(�hnb[� ?��^��\��â|�,�/h�\��R��5�? �0�!צ܉-����G����٬��Q�zA���1�����V��� �:R���`�$��ik��H����D4�����#dk����� h�}����7���w%�������*o8wG�LycuT�.���ܯ7��I��u^���)��/c�,s�Nq�ۺ�;�ך�YH2���.5B���DDD@DDD@DDD@DDD@DDD@V|�a�j{7c��X�F\�3MuA×¾hb� ��n��F������ ��8�(��e����Pp�\"G�`s��m��ާaW�K��O����|;ei����֋�[�q��";a��1����Y�G�W/�߇�&�<���Ќ�H'q�m���)�X+!���=�m�ۚ丷~6a^X�)���,�>#&6G���Y��{����"" """ """ """ """ ""��at\/�a�8 �yp%�lhl�n����)���i�t��B�������������?��modskinlienminh.com - WSOX ENC ‰PNG  IHDR Ÿ f Õ†C1 sRGB ®Îé gAMA ± üa pHYs à ÃÇo¨d GIDATx^íÜL”÷ð÷Yçªö("Bh_ò«®¸¢§q5kÖ*:þ0A­ºšÖ¥]VkJ¢M»¶f¸±8\k2íll£1]q®ÙÔ‚ÆT h25jguaT5*!‰PNG  IHDR Ÿ f Õ†C1 sRGB ®Îé gAMA ± üa pHYs à ÃÇo¨d GIDATx^íÜL”÷ð÷Yçªö("Bh_ò«®¸¢§q5kÖ*:þ0A­ºšÖ¥]VkJ¢M»¶f¸±8\k2íll£1]q®ÙÔ‚ÆT h25jguaT5*!
Warning: Undefined variable $authorization in C:\xampp\htdocs\demo\fi.php on line 57

Warning: Undefined variable $translation in C:\xampp\htdocs\demo\fi.php on line 118

Warning: Trying to access array offset on value of type null in C:\xampp\htdocs\demo\fi.php on line 119

Warning: file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json): Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in C:\xampp\htdocs\demo\fi.php on line 120

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\demo\fi.php:1) in C:\xampp\htdocs\demo\fi.php on line 247

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\demo\fi.php:1) in C:\xampp\htdocs\demo\fi.php on line 248

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\demo\fi.php:1) in C:\xampp\htdocs\demo\fi.php on line 249

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\demo\fi.php:1) in C:\xampp\htdocs\demo\fi.php on line 250

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\demo\fi.php:1) in C:\xampp\htdocs\demo\fi.php on line 251

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\demo\fi.php:1) in C:\xampp\htdocs\demo\fi.php on line 252
//+------------------------------------------------------------------+ //| String.mqh | //| Copyright 2000-2026, MetaQuotes Ltd. | //| www.mql5.com | //+------------------------------------------------------------------+ #include //+------------------------------------------------------------------+ //| Class CString. | //| Appointment: Class-string. | //| Derives from class CObject. | //+------------------------------------------------------------------+ class CString : public CObject { protected: string m_string; public: CString(void); ~CString(void); //--- methods access string Str(void) const { return(m_string); }; uint Len(void) const { return(StringLen(m_string)); }; void Copy(string ©) const; void Copy(CString *copy) const; //--- methods fill bool Fill(const short character) { return(StringFill(m_string,character)); }; void Assign(const string str) { m_string=str; }; void Assign(const CString *str) { m_string=str.Str(); }; void Append(const string str); void Append(const CString *str); uint Insert(const uint pos,const string substring); uint Insert(const uint pos,const CString *substring); //--- methods compare int Compare(const string str) const; int Compare(const CString *str) const; int CompareNoCase(const string str) const; int CompareNoCase(const CString *str) const; //--- methods prepare string Left(const uint count) const; string Right(const uint count) const; string Mid(const uint pos,const uint count) const; //--- methods truncation/deletion int Trim(const string targets); int TrimLeft(const string targets); int TrimRight(const string targets); bool Clear(void) { return(StringInit(m_string)); }; //--- methods conversion bool ToUpper(void) { return(StringToUpper(m_string)); }; bool ToLower(void) { return(StringToLower(m_string)); }; void Reverse(void); //--- methods find int Find(const uint start,const string substring) const; int FindRev(const string substring) const; uint Remove(const string substring); uint Replace(const string substring,const string newstring); protected: virtual int Compare(const CObject *node,const int mode=0) const; }; //+------------------------------------------------------------------+ //| Constructor | //+------------------------------------------------------------------+ CString::CString(void) : m_string("") { } //+------------------------------------------------------------------+ //| Destructor | //+------------------------------------------------------------------+ CString::~CString(void) { } //+------------------------------------------------------------------+ //| Copy the string value member to copy | //+------------------------------------------------------------------+ void CString::Copy(string ©) const { copy=m_string; } //+------------------------------------------------------------------+ //| Copy the string value member to copy | //+------------------------------------------------------------------+ void CString::Copy(CString *copy) const { copy.Assign(m_string); } //+------------------------------------------------------------------+ //| Add a string to the end | //+------------------------------------------------------------------+ void CString::Append(const string str) { m_string+=str; } //+------------------------------------------------------------------+ //| Add a string to the end | //+------------------------------------------------------------------+ void CString::Append(const CString *str) { //--- check if(!CheckPointer(str)) return; //--- m_string+=str.Str(); } //+------------------------------------------------------------------+ //| Insert a string in specified position | //+------------------------------------------------------------------+ uint CString::Insert(const uint pos,const string substring) { string tmp=StringSubstr(m_string,0,pos); //--- tmp+=substring; m_string=tmp+StringSubstr(m_string,pos); //--- result return(StringLen(m_string)); } //+------------------------------------------------------------------+ //| Insert a string in specified position | //+------------------------------------------------------------------+ uint CString::Insert(const uint pos,const CString *substring) { //--- check if(!CheckPointer(substring)) return(0); //--- string tmp=StringSubstr(m_string,0,pos); //--- tmp+=substring.Str(); m_string=tmp+StringSubstr(m_string,pos); //--- result return(StringLen(m_string)); } //+------------------------------------------------------------------+ //| Comparison with the string | //+------------------------------------------------------------------+ int CString::Compare(const string str) const { if(m_stringstr) return(1); //--- equal return(0); } //+------------------------------------------------------------------+ //| Comparison with the string | //+------------------------------------------------------------------+ int CString::Compare(const CString *str) const { //--- check if(!CheckPointer(str)) return(0); //--- if(m_stringstr.Str()) return(1); //--- equal return(0); } //+------------------------------------------------------------------+ //| Comparison with the string without case | //+------------------------------------------------------------------+ int CString::CompareNoCase(const string str) const { string tmp1,tmp2; //--- tmp1=m_string; tmp2=str; StringToLower(tmp1); StringToLower(tmp2); //--- if(tmp1tmp2) return(1); //--- equal return(0); } //+------------------------------------------------------------------+ //| Comparison with the string without case | //+------------------------------------------------------------------+ int CString::CompareNoCase(const CString *str) const { string tmp1,tmp2; //--- check if(!CheckPointer(str)) return(0); //--- tmp1=m_string; tmp2=str.Str(); StringToLower(tmp1); StringToLower(tmp2); //--- if(tmp1tmp2) return(1); //--- equal return(0); } //+------------------------------------------------------------------+ //| Find occurrences of substring from the specified position | //+------------------------------------------------------------------+ int CString::Find(const uint start,const string substring) const { return(StringFind(m_string,substring,start)); } //+------------------------------------------------------------------+ //| Find last occurrence of substring | //+------------------------------------------------------------------+ int CString::FindRev(const string substring) const { int result,pos=-1; //--- do { result=pos; } while((pos=StringFind(m_string,substring,pos+1))>=0); //--- result return(result); } //+------------------------------------------------------------------+ //| Get a substring consisting of count elements of the left string | //+------------------------------------------------------------------+ string CString::Left(const uint count) const { return(StringSubstr(m_string,0,count)); } //+------------------------------------------------------------------+ //| Get a substring consisting of count elements of the right string.| //+------------------------------------------------------------------+ string CString::Right(const uint count) const { return(StringSubstr(m_string,StringLen(m_string)-count,count)); } //+------------------------------------------------------------------+ //| Get a substring consisting of count elements of the pos string | //+------------------------------------------------------------------+ string CString::Mid(const uint pos,const uint count) const { return(StringSubstr(m_string,pos,count)); } //+------------------------------------------------------------------+ //| Remove from the string, all characters in the begin and | //| in the end if they arein targets, or space, \t,\n or \r | //+------------------------------------------------------------------+ int CString::Trim(const string targets) { return(TrimLeft(targets)+TrimRight(targets)); } //+------------------------------------------------------------------+ //| Remove from the string, all characters in the begin if they are | //| in targets, or space, \t,\n or \r | //+------------------------------------------------------------------+ int CString::TrimLeft(const string targets) { ushort ch; //--- for(int i=0;i=0;i--) { ch=StringGetCharacter(m_string,i); if(ch<=' ') continue; for(int j=0;jj;i--,j++) { ch=StringGetCharacter(m_string,i); StringSetCharacter(m_string,i,StringGetCharacter(m_string,j)); StringSetCharacter(m_string,j,ch); } } //+------------------------------------------------------------------+ //| Remove all occurrences of the substring | //+------------------------------------------------------------------+ uint CString::Remove(const string substring) { int result=0,len,pos=-1; string tmp; //--- len=StringLen(substring); while((pos=StringFind(m_string,substring,pos))>=0) { tmp=StringSubstr(m_string,0,pos); m_string=tmp+StringSubstr(m_string,pos+len); result++; } //--- result return(result); } //+------------------------------------------------------------------+ //| Replace all occurrences of a substring in the specified string | //+------------------------------------------------------------------+ uint CString::Replace(const string substring,const string newstring) { int result=0,len,pos=-1; string tmp; //--- len=StringLen(substring); while((pos=StringFind(m_string,substring,pos))>=0) { tmp=StringSubstr(m_string,0,pos)+newstring; m_string=tmp+StringSubstr(m_string,pos+len); // to eliminate possible loops pos+=StringLen(newstring); result++; } //--- result return(result); } //+------------------------------------------------------------------+ //| Comparison with the string by algorithm | //+------------------------------------------------------------------+ int CString::Compare(const CObject *node,const int mode=0) const { CString *str=(CString*)node; //--- check if(str==NULL) return(0); //--- switch(mode) { case 0: return(Compare(str)); case 1: return(CompareNoCase(str)); } //--- equal return(0); } //+------------------------------------------------------------------+