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) 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/Arrangement_on_surface_2/include/CGAL/IO/Arrangement_2_writer.h $ // $Id: include/CGAL/IO/Arrangement_2_writer.h b26b07a1242 $ // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Ron Wein // (based on old version by Michal Meyerovitch and Ester Ezra) // #ifndef CGAL_IO_ARRANGEMENT_2_WRITER_H #define CGAL_IO_ARRANGEMENT_2_WRITER_H #include /*! \file * The header file for the Arrangement_2_writer class. */ #include #include namespace CGAL { /*! \class * An auxiliary class for writing an arrangement to an output stream. */ template class Arrangement_2_writer { public: typedef Arrangement_ Arrangement_2; typedef Arrangement_2_writer Self; protected: typedef typename Arrangement_2::Size Size; typedef typename Arrangement_2::Dcel Dcel; typedef typename Arrangement_2::Vertex_const_handle Vertex_const_handle; typedef typename Arrangement_2::Halfedge_const_handle Halfedge_const_handle; typedef typename Arrangement_2::Face_const_handle Face_const_handle; typedef CGAL::Arr_accessor Arr_accessor; typedef typename Arr_accessor::Dcel_vertex_iterator Vertex_const_iterator; typedef typename Arr_accessor::Dcel_edge_iterator Edge_const_iterator; typedef typename Arr_accessor::Dcel_face_iterator Face_const_iterator; typedef typename Arr_accessor::Dcel_outer_ccb_iterator Outer_ccb_iterator; typedef typename Arr_accessor::Dcel_inner_ccb_iterator Inner_ccb_iterator; typedef typename Arr_accessor::Dcel_iso_vertex_iterator Isolated_vertex_iterator; typedef typename Arr_accessor::Dcel_vertex DVertex; typedef typename Arr_accessor::Dcel_halfedge DHalfedge; typedef typename Arr_accessor::Dcel_face DFace; typedef std::map Vertex_index_map; typedef std::map Halfedge_index_map; // Data members: const Arrangement_2& m_arr; const Dcel* m_dcel; int m_curr_v; Vertex_index_map m_v_index; int m_curr_he; Halfedge_index_map m_he_index; private: // Copy constructor and assignment operator - not supported. Arrangement_2_writer(const Self&); Self& operator= (const Self&); public: /*! constructs. */ Arrangement_2_writer(const Arrangement_2& arr) : m_arr(arr), m_dcel(nullptr), m_curr_v(0), m_curr_he(0) { const Arr_accessor arr_access(const_cast(arr)); m_dcel = &(arr_access.dcel()); } /*! destructs. */ virtual ~Arrangement_2_writer() {} /*! writes the arrangement. */ template void operator()(Formatter& formatter) { formatter.write_arrangement_begin(); formatter.write_size("number_of_vertices", m_dcel->size_of_vertices()); formatter.write_size("number_of_edges", m_dcel->size_of_halfedges() / 2); formatter.write_size("number_of_faces", m_dcel->size_of_faces()); // Reset indices. m_curr_v = 0; m_curr_he = 0; // Write the vertices. formatter.write_vertices_begin(); Vertex_const_iterator vit; for (vit = m_dcel->vertices_begin(); vit != m_dcel->vertices_end(); ++vit) { _write_vertex(formatter, vit); } formatter.write_vertices_end(); // Write the edges. formatter.write_edges_begin(); Edge_const_iterator eit; for (eit = m_dcel->edges_begin(); eit != m_dcel->edges_end(); ++eit) { _write_edge(formatter, eit); } formatter.write_edges_end(); // Write the faces (the fictitious face first). formatter.write_faces_begin(); Face_const_iterator fit; for (fit = m_dcel->faces_begin(); fit != m_dcel->faces_end(); ++fit) _write_face(formatter, fit); formatter.write_faces_end(); formatter.write_arrangement_end(); } protected: /*! writes a vertex. */ template void _write_vertex(Formatter& formatter, Vertex_const_iterator vit) { // Map the current vertex to its index. const DVertex* v = &(*vit); m_v_index[v] = m_curr_v; ++m_curr_v; // Write the vertex. formatter.write_vertex_begin(); formatter.write_vertex_index(static_cast(v->parameter_space_in_x())); formatter.write_vertex_index(static_cast(v->parameter_space_in_y())); if (! v->has_null_point()) { // Write the associated point. formatter.write_vertex_index(1); formatter.write_point(v->point()); // Write additional user-defined data. formatter.write_vertex_data(Vertex_const_handle(v)); } else { // Mark that the vertex is not associated with a point. formatter.write_vertex_index(0); } formatter.write_vertex_end(); } /*! writes an edge (a pair of halfedges). */ template void _write_edge(Formatter& formatter, Edge_const_iterator hit) { // Map the halfedge and its twin to their indices. const DHalfedge* he = &(*hit); const DHalfedge* he_t = he->opposite(); m_he_index[&(*he)] = m_curr_he; ++m_curr_he; m_he_index[&(*he_t)] = m_curr_he; ++m_curr_he; // Write the edge. formatter.write_edge_begin(); formatter.write_vertex_index(_index(he_t->vertex())); formatter.write_vertex_index(_index(he->vertex())); if (he->direction() == ARR_LEFT_TO_RIGHT) formatter.write_vertex_index(0); else formatter.write_vertex_index(1); if (! he->has_null_curve()) { // Write the associated curve. formatter.write_vertex_index(1); formatter.write_x_monotone_curve(he->curve()); // Write additional user-defined data. formatter.write_halfedge_data(Halfedge_const_handle(he)); formatter.write_halfedge_data(Halfedge_const_handle(he_t)); } else { // Mark that the edge is fictitious. formatter.write_vertex_index(0); } formatter.write_edge_end(); } /*! writes a face. */ template void _write_face(Formatter& formatter, Face_const_iterator fit) const { const DFace* f = &(*fit); formatter.write_face_begin(); // Write whether the face is unbounded and whether it is valid // (non-fictitious). if (f->is_unbounded()) formatter.write_vertex_index(1); else formatter.write_vertex_index(0); if (! f->is_fictitious()) formatter.write_vertex_index(1); else formatter.write_vertex_index(0); // Write the outer CCBs of the face. const std::size_t n_occbs = f->number_of_outer_ccbs(); Outer_ccb_iterator oc_it; formatter.write_outer_ccbs_begin(); formatter.write_size("number_of_outer_ccbs", n_occbs); for (oc_it = f->outer_ccbs_begin(); oc_it != f->outer_ccbs_end(); ++oc_it) { const std::size_t n = _circulator_size(*oc_it); formatter.write_size("halfedges_on_outer_ccb", n); _write_ccb(formatter, *oc_it); } formatter.write_inner_ccbs_end(); // Write the inner CCBs of the face. const std::size_t n_iccbs = f->number_of_inner_ccbs(); Inner_ccb_iterator ic_it; formatter.write_inner_ccbs_begin(); formatter.write_size("number_of_inner_ccbs", n_iccbs); for (ic_it = f->inner_ccbs_begin(); ic_it != f->inner_ccbs_end(); ++ic_it) { const std::size_t n = _circulator_size(*ic_it); formatter.write_size("halfedges_on_inner_ccb", n); _write_ccb(formatter, *ic_it); } formatter.write_inner_ccbs_end(); // Write the isolated vertices inside the face. std::size_t n_isolated = f->number_of_isolated_vertices(); formatter.write_size("number_of_isolated_vertices", n_isolated); if (n_isolated) { formatter.write_isolated_vertices_begin(); Isolated_vertex_iterator iso_vit; for (iso_vit = f->isolated_vertices_begin(); iso_vit != f->isolated_vertices_end(); ++iso_vit) formatter.write_vertex_index(_index(&(*iso_vit))); formatter.write_isolated_vertices_end(); } // Write additional user-defined data associated with the face. if (! f->is_fictitious()) formatter.write_face_data(Face_const_handle(f)); formatter.write_face_end(); } /*! writes the edges along a given CCB. */ template void _write_ccb(Formatter& formatter, const DHalfedge* ccb) const { const DHalfedge* curr = ccb; formatter.write_ccb_halfedges_begin(); do { formatter.write_halfedge_index(_index(curr)); curr = curr->next(); } while (curr != ccb); formatter.write_ccb_halfedges_end(); } /*! obtains the mapped index of a given vertex. */ int _index(const DVertex* v) const { typename Vertex_index_map::const_iterator pos = m_v_index.find(v); CGAL_assertion(pos != m_v_index.end()); return (pos->second); } /*! obtains the mapped index of a given halfedge. */ int _index(const DHalfedge* he) const { typename Halfedge_index_map::const_iterator pos = m_he_index.find(he); CGAL_assertion(pos != m_he_index.end()); return (pos->second); } /*! obtains the number of edges along a given CCB. */ std::size_t _circulator_size(const DHalfedge* ccb) const { CGAL_assertion(ccb != nullptr); std::size_t n = 0; const DHalfedge* curr = ccb; do { ++n; curr = curr->next(); } while (curr != ccb); return (n); } }; } // namespace CGAL #endif