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
// Copyright (c) 2011 GeometryFactory (France). // All rights reserved. // // This file is part of CGAL (www.cgal.org). // // $URL: https://github.com/CGAL/cgal/blob/v6.1/Spatial_searching/include/CGAL/Search_traits_adapter.h $ // $Id: include/CGAL/Search_traits_adapter.h b26b07a1242 $ // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // // Author(s) : Sebastien Loriot #ifndef CGAL_SEARCH_TRAITS_WITH_INFO #define CGAL_SEARCH_TRAITS_WITH_INFO #include #include #include #include //for default distance specialization #include #include #include #include namespace CGAL{ using ::get; template class Search_traits_adapter; template class Distance_adapter; namespace internal{ BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(Has_typedef_Iso_box_d,Iso_box_d,false) template ::value > struct Get_iso_box_d; template struct Get_iso_box_d { typedef void type; }; template struct Get_iso_box_d { typedef typename T::Iso_box_d type; }; template struct Spatial_searching_default_distance< ::CGAL::Search_traits_adapter >{ typedef ::CGAL::Distance_adapter::type> type; }; } //namespace internal template class Search_traits_adapter : public Base_traits{ PointPropertyMap ppmap; public: typedef Base_traits Base; typedef typename internal::Get_iso_box_d::type Iso_box_d; Search_traits_adapter(const PointPropertyMap& ppmap_=PointPropertyMap(), const Base_traits& base=Base_traits() ):Base_traits(base),ppmap(ppmap_){} typedef Point_with_info Point_d; typedef typename Base_traits::FT FT; typedef typename Base_traits::Dimension Dimension; // Default if point map is lvalue: use Construct_cartesian_const_iterator_d struct Construct_cartesian_const_iterator_d_lvalue: public Base_traits::Construct_cartesian_const_iterator_d{ PointPropertyMap ppmap; typedef typename Base_traits::Construct_cartesian_const_iterator_d Base; Construct_cartesian_const_iterator_d_lvalue (const typename Base_traits::Construct_cartesian_const_iterator_d& base, const PointPropertyMap& ppmap_) :Base_traits::Construct_cartesian_const_iterator_d(base), ppmap(ppmap_){} typename Base_traits::Cartesian_const_iterator_d operator()(const Point_with_info& p) const { return Base::operator() (get(ppmap,p)); } typename Base_traits::Cartesian_const_iterator_d operator()(const Point_with_info& p, int) const { return Base::operator() (get(ppmap,p),0); } // These 2 additional operators forward the call to Base_traits. // This is needed because of an undocumented requirement of // Orthogonal_k_neighbor_search and Orthogonal_incremental_neighbor_search: // Traits::Construct_cartesian_const_iterator should be callable // on the query point type. If the query point type is the same as // Point_with_info, we disable it. template // enable_if_t requires a template argument to work typename Base_traits::Cartesian_const_iterator_d operator()(const Point& p, std::enable_if_t< !std::is_same::value >* = 0 ) const { return Base::operator() (p); } template // std::enable_if_t requires a template argument to work typename Base_traits::Cartesian_const_iterator_d operator()(const Point& p, int, std::enable_if_t< !std::is_same::value >* = 0 ) const { return Base::operator() (p,0); } }; // If point map is not lvalue, use this work-around that stores a // Point object in a shared pointer to avoid iterating on a temp // object class No_lvalue_iterator : public boost::iterator_facade::value_type, std::random_access_iterator_tag > { typedef boost::iterator_facade::value_type, std::random_access_iterator_tag > Facade; typedef typename std::iterator_traits::value_type Dereference_type; typedef typename boost::property_traits::value_type Point; Point point; std::size_t idx = 0; public: No_lvalue_iterator() : point() { } No_lvalue_iterator(const Point& point) : point(point) { } No_lvalue_iterator(const Point& point, int) : point(point), idx(Base::Dimension::value) { } private: friend class boost::iterator_core_access; void increment() { ++idx; } void decrement() { --idx; } void advance(std::ptrdiff_t n) { idx += n; } std::ptrdiff_t distance_to(const No_lvalue_iterator& other) const { return other.idx - this->idx; } bool equal(const No_lvalue_iterator& other) const { return this->idx == other.idx; } Dereference_type& dereference() const { // Point::operator[] takes an int as parameter... return const_cast(point[static_cast(idx)]); } }; // Alternative Construct_cartesian_const_iterator_d if the point map // is not lvalue (generates No_lvalue_iterator objects) struct Construct_cartesian_const_iterator_d_no_lvalue { typedef No_lvalue_iterator result_type; PointPropertyMap ppmap; Construct_cartesian_const_iterator_d_no_lvalue (const typename Base_traits::Construct_cartesian_const_iterator_d&, const PointPropertyMap& ppmap_) : ppmap(ppmap_) { } No_lvalue_iterator operator()(const Point_with_info& p) const { return No_lvalue_iterator(get(ppmap, p)); } No_lvalue_iterator operator()(const Point_with_info& p, int) const { return No_lvalue_iterator(get(ppmap, p),0); } // These 2 additional operators forward the call to Base_traits. // This is needed because of an undocumented requirement of // Orthogonal_k_neighbor_search and Orthogonal_incremental_neighbor_search: // Traits::Construct_cartesian_const_iterator should be callable // on the query point type. If the query point type is the same as // Point_with_info, we disable it. template // std::enable_if_t requires a template argument to work No_lvalue_iterator operator()(const Point& p, std::enable_if_t::value >* = 0 ) const { return No_lvalue_iterator(p); } template // std::enable_if requires a template argument to work No_lvalue_iterator operator()(const Point& p, int, std::enable_if_t< !std::is_same::value >* = 0 ) const { return No_lvalue_iterator(p,0); } }; // Select type of iterator + construct class depending on whether // point map is lvalue or not typedef std::conditional_t< std::is_reference_v::reference>, typename Base::Cartesian_const_iterator_d, No_lvalue_iterator> Cartesian_const_iterator_d; typedef std::conditional_t< std::is_reference_v::reference>, Construct_cartesian_const_iterator_d_lvalue, Construct_cartesian_const_iterator_d_no_lvalue> Construct_cartesian_const_iterator_d; struct Construct_iso_box_d: public Base::Construct_iso_box_d{ PointPropertyMap ppmap; typedef typename Base_traits::FT FT; // needed for VC++, because otherwise it is taken from the private typedef of the base class typedef typename Base::Construct_iso_box_d Base_functor; Iso_box_d operator() () const { return Base_functor::operator() (); } Iso_box_d operator() (const Point_with_info& p, const Point_with_info& q) const { return Base_functor::operator() (get(ppmap,p),get(ppmap,q)); } }; const PointPropertyMap& point_property_map() const {return ppmap;} Construct_cartesian_const_iterator_d construct_cartesian_const_iterator_d_object() const { return Construct_cartesian_const_iterator_d( Base::construct_cartesian_const_iterator_d_object(), ppmap); } }; template class Distance_adapter : public Base_distance { PointPropertyMap ppmap; public: Distance_adapter( const PointPropertyMap& ppmap_=PointPropertyMap(), const Base_distance& distance=Base_distance() ):Base_distance(distance),ppmap(ppmap_){} using Base_distance::transformed_distance; typedef typename Base_distance::FT FT; typedef Point_with_info Point_d; typedef typename Base_distance::Query_item Query_item; const PointPropertyMap& point_property_map() const {return ppmap;} FT transformed_distance(const Query_item& p1, const Point_with_info& p2) const { return Base_distance::transformed_distance(p1,get(ppmap,p2)); } template FT min_distance_to_rectangle(const Query_item& p, const CGAL::Kd_tree_rectangle& b) const { return Base_distance::min_distance_to_rectangle(p,b); } template FT min_distance_to_rectangle(const Query_item& p, const CGAL::Kd_tree_rectangle& b,std::vector& dists) const { return Base_distance::min_distance_to_rectangle(p,b,dists); } template FT max_distance_to_rectangle(const Query_item& p,const CGAL::Kd_tree_rectangle& b) const { return Base_distance::max_distance_to_rectangle(p,b); } template FT max_distance_to_rectangle(const Query_item& p,const CGAL::Kd_tree_rectangle& b,std::vector& dists) const { return Base_distance::max_distance_to_rectangle(p,b,dists); } }; }//namespace CGAL #include #endif //CGAL_SEARCH_TRAITS_WITH_INFO