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) 2006,2007,2009,2010,2011 Tel-Aviv University (Israel). // All rights reserved. // // This file is part of CGAL (www.cgal.org). // // $URL: https://github.com/CGAL/cgal/blob/v6.1/Surface_sweep_2/include/CGAL/Surface_sweep_2/Curve_comparer.h $ // $Id: include/CGAL/Surface_sweep_2/Curve_comparer.h b26b07a1242 $ // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Tali Zvi // Baruch Zukerman // Ron Wein // Efi Fogel #ifndef CGAL_SURFACE_SWEEP_2_CURVE_COMPARER_H #define CGAL_SURFACE_SWEEP_2_CURVE_COMPARER_H #include /*! \file * * Comparison functor of curves used by the surface-sweep algorithm. */ #include #include #include #include #include namespace CGAL { namespace Surface_sweep_2 { /*! A functor used to compare curves and curve endpoints by their vertical * y-order. Used to maintain the order of curves in the status line (the * Y-structure) in the surface-sweep algorithm. */ template class Curve_comparer { public: typedef GeometryTraits_2 Geometry_traits_2; typedef Event_ Event; typedef Subcurve_ Subcurve; private: typedef Geometry_traits_2 Gt2; public: typedef Arr_traits_basic_adaptor_2 Traits_adaptor_2; typedef typename Traits_adaptor_2::Point_2 Point_2; typedef typename Traits_adaptor_2::X_monotone_curve_2 X_monotone_curve_2; private: const Traits_adaptor_2* m_traits; // A geometric-traits object. Event** m_curr_event; // Points to the current event point. typedef typename Traits_adaptor_2::Left_side_category Left_side_category; typedef typename Traits_adaptor_2::Bottom_side_category Bottom_side_category; typedef typename Traits_adaptor_2::Top_side_category Top_side_category; typedef typename Traits_adaptor_2::Right_side_category Right_side_category; /*! */ typedef typename Arr_sides_category::result Sides_category; public: /*! Construct. */ Curve_comparer(const Traits_adaptor_2* t, Event** e_ptr) : m_traits(t), m_curr_event(e_ptr) {} /*! Compare the vertical position of two subcurves in the status line. * This operator is called only in debug mode. */ Comparison_result operator()(const Subcurve* c1, const Subcurve* c2) const { // In case to two curves are right curves at the same event, compare // to the right of the event point. if (std::find((*m_curr_event)->right_curves_begin(), (*m_curr_event)->right_curves_end(), c1) != (*m_curr_event)->right_curves_end() && std::find((*m_curr_event)->right_curves_begin(), (*m_curr_event)->right_curves_end(), c2) != (*m_curr_event)->right_curves_end()) { return m_traits->compare_y_at_x_right_2_object() (c1->last_curve(), c2->last_curve(), (*m_curr_event)->point()); } Arr_parameter_space ps_x1 = m_traits->parameter_space_in_x_2_object()(c1->last_curve(), ARR_MIN_END); Arr_parameter_space ps_y1 = m_traits->parameter_space_in_y_2_object()(c1->last_curve(), ARR_MIN_END); if ((ps_x1 == ARR_INTERIOR) && (ps_y1 == ARR_INTERIOR)) { // The first curve has a valid left endpoint. Compare the y-position // of this endpoint with the second subcurve. return m_traits->compare_y_at_x_2_object() (m_traits->construct_min_vertex_2_object()(c1->last_curve()), c2->last_curve()); } // We use the fact that the two curves are interior disjoint. As c2 is // already in the status line, then if c1 left end has a negative boundary // condition it obviously above it. CGAL_assertion(ps_x1 != ARR_RIGHT_BOUNDARY); if (ps_x1 == ARR_LEFT_BOUNDARY) return LARGER; // For similar reasons, if c1 begins on the bottom boundary it is below // c2, if it begins on the top boundary it is above it. CGAL_assertion (ps_y1 != ARR_INTERIOR); return (ps_y1 == ARR_BOTTOM_BOUNDARY) ? SMALLER : LARGER; } /*! Compare the relative y-order of the given point and the given subcurve. */ Comparison_result operator()(const Point_2& pt, const Subcurve* sc) const { return compare_point_curve(pt, sc->last_curve(), Sides_category()); } private: Comparison_result compare_point_curve(const Point_2& pt, const X_monotone_curve_2& cv, Arr_all_sides_oblivious_tag) const { return m_traits->compare_y_at_x_2_object()(pt, cv); } Comparison_result compare_point_curve(const Point_2& pt, const X_monotone_curve_2& cv, Arr_all_sides_not_finite_tag) const { return m_traits->compare_y_at_x_2_object()(pt, cv); } Comparison_result compare_point_curve(const Point_2& pt, const X_monotone_curve_2& cv, Arr_not_all_sides_not_finite_tag) const { Arr_parameter_space ps_y1 = (*m_curr_event)->parameter_space_in_y(); #if 0 Arr_parameter_space ps_x1 = (*m_curr_event)->parameter_space_in_x(); typename Traits_adaptor_2::Parameter_space_in_x_2 ps_x_op = m_traits->parameter_space_in_x_2_object(); Arr_parameter_space ps_x_min = ps_x_op(cv, ARR_MIN_END); Arr_parameter_space ps_x_max = ps_x_op(cv, ARR_MAX_END); typename Traits_adaptor_2::Parameter_space_in_y_2 ps_y_op = m_traits->parameter_space_in_y_2_object(); Arr_parameter_space ps_y_min = ps_y_op(cv, ARR_MIN_END); Arr_parameter_space ps_y_max = ps_y_op(cv, ARR_MAX_END); CGAL::set_pretty_mode(std::cout); std::cout << "\n FUNCTOR pt-cv" << std::endl; std::cout << "pt: " << pt << std::endl; std::cout << "ps_x1: " << ps_x1 << std::endl; std::cout << "ps_y1: " << ps_y1 << std::endl; std::cout << "cv: " << cv << std::endl; std::cout << "ps_x_min: " << ps_x_min << std::endl; std::cout << "ps_y_min: " << ps_y_min << std::endl; std::cout << "ps_x_max: " << ps_x_max << std::endl; std::cout << "ps_y_max: " << ps_y_max << std::endl; #endif if (ps_y1 == ARR_TOP_BOUNDARY) return LARGER; if (ps_y1 == ARR_BOTTOM_BOUNDARY) return SMALLER; return m_traits->compare_y_at_x_2_object()(pt, cv); } }; } // namespace Surface_sweep_2 } // namespace CGAL #endif