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) 2000 // Utrecht University (The Netherlands), // ETH Zurich (Switzerland), // INRIA Sophia-Antipolis (France), // Max-Planck-Institute Saarbruecken (Germany), // and 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/Cartesian_kernel/include/CGAL/Cartesian/Circle_3.h $ // $Id: include/CGAL/Cartesian/Circle_3.h b26b07a1242 $ // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Monique Teillaud, Pedro Machado, Sebastien Loriot #ifndef CGAL_CARTESIAN_CIRCLEC3_H #define CGAL_CARTESIAN_CIRCLEC3_H #include #include "boost/tuple/tuple.hpp" namespace CGAL { template class CircleC3 { typedef typename R_::Boolean Boolean; typedef typename R_::Bounded_side Bounded_side; typedef typename R_::Sphere_3 Sphere_3; typedef typename R_::Plane_3 Plane_3; typedef typename R_::Point_3 Point_3; typedef typename R_::Vector_3 Vector_3; typedef typename R_::Direction_3 Direction_3; typedef typename R_::FT FT; //using a boost::tuple because std::pair and tuple cannot work with incomplete types. typedef boost::tuple Rep; typedef typename R_::template Handle::type Base; Base base; public: typedef R_ R; CircleC3() {} CircleC3(const Point_3& center, const FT& squared_r, const Direction_3& d) { CGAL_kernel_assertion(squared_r >= FT(0)); // non-degenerated Direction CGAL_kernel_assertion((d.dx() != FT(0)) || (d.dy() != FT(0)) || (d.dz() != FT(0))); base = Rep(Sphere_3(center,squared_r), plane_from_point_direction(center, d)); } CircleC3(const Point_3& center, const FT& squared_r, const Vector_3& normal) { CGAL_kernel_assertion(squared_r >= FT(0)); // non-degenerated Vector CGAL_kernel_assertion((normal.x() != FT(0)) || (normal.y() != FT(0)) || (normal.z() != FT(0))); base = Rep(Sphere_3(center,squared_r), Plane_3(center, normal.direction())); } CircleC3(const Point_3& center, const FT& squared_r, const Plane_3& p) { // the plane contains the center and it is not degenerate CGAL_kernel_assertion(!R().is_degenerate_3_object()(p)); // CGAL_kernel_assertion((p.a() * center.x() + // p.b() * center.y() + // p.c() * center.z() + // p.d()) == 0); CGAL_kernel_assertion(squared_r >= FT(0)); base = Rep(Sphere_3(center,squared_r), p); } CircleC3(const Sphere_3 &s1, const Sphere_3 &s2) { Object obj = R().intersect_3_object()(s1, s2); // s1,s2 must intersect CGAL_kernel_precondition(!(obj.is_empty())); const typename R::Circle_3* circle_ptr=object_cast(&obj); if(circle_ptr!=nullptr) base = Rep(circle_ptr->diametral_sphere(), circle_ptr->supporting_plane()); else { const typename R::Point_3* point=object_cast(&obj); CGAL_kernel_precondition(point!=nullptr); CircleC3 circle = CircleC3(*point, FT(0), Vector_3(FT(1),FT(0),FT(0))); base = Rep(circle.diametral_sphere(), circle.supporting_plane()); } } CircleC3(const Plane_3 &p, const Sphere_3 &s, int) : base(s, p) {} CircleC3(const Plane_3 &p, const Sphere_3 &s) { Object obj = R().intersect_3_object()(p, s); // s1,s2 must intersect CGAL_kernel_precondition(!(obj.is_empty())); const typename R::Circle_3* circle_ptr=object_cast(&obj); if(circle_ptr!=nullptr) base = Rep(circle_ptr->diametral_sphere(), circle_ptr->supporting_plane()); else { const typename R::Point_3* point=object_cast(&obj); CGAL_kernel_precondition(point!=nullptr); CircleC3 circle = CircleC3(*point, FT(0), Vector_3(FT(1),FT(0),FT(0))); base = Rep(circle.diametral_sphere(), circle.supporting_plane()); } } CircleC3(const Point_3 &p, const Point_3 &q, const Point_3 &r) { // p, q, r are not collinear CGAL_kernel_precondition(!R().collinear_3_object()(p, q, r)); Plane_3 p1 = R().construct_plane_3_object()(p, q, r); Plane_3 p2 = R().construct_bisector_3_object()(p, q); Plane_3 p3 = R().construct_bisector_3_object()(p, r); Object obj = R().intersect_3_object()(p1, p2, p3); // must be a point, otherwise they are collinear const Point_3& center=*object_cast(&obj); FT sqr = R().compute_squared_distance_3_object()(center, r); Sphere_3 s = R().construct_sphere_3_object()(center, sqr); base = Rep(s, p1); } const Plane_3& supporting_plane() const { return boost::get<1>(get_pointee_or_identity(base)); } const Sphere_3& supporting_sphere() const { return diametral_sphere(); } decltype(auto) center() const { return diametral_sphere().center(); } decltype(auto) squared_radius() const { return diametral_sphere().squared_radius(); } const Sphere_3& diametral_sphere() const { return boost::get<0>(get_pointee_or_identity(base)); } double approximate_area() const { return CGAL_PI * to_double(squared_radius()); } double approximate_squared_length() const { return CGAL_PI * CGAL_PI * 4.0 * to_double(squared_radius()); } decltype(auto) area_divided_by_pi() const { return squared_radius(); } FT squared_length_divided_by_pi_square() const { return 4 * squared_radius(); } // this bbox function // can be optimize by doing different cases // for each variable = 0 (cases with is_zero) CGAL::Bbox_3 bbox() const { typedef CGAL::Interval_nt Interval; CGAL::Interval_nt::Protector ip; const Sphere_3 &s = diametral_sphere(); const FT &sq_r = s.squared_radius(); const Point_3 &p = s.center(); if(sq_r == FT(0)) return p.bbox(); const Plane_3 &plane = supporting_plane(); const Interval a = CGAL::to_interval(plane.a()); const Interval b = CGAL::to_interval(plane.b()); const Interval c = CGAL::to_interval(plane.c()); const Interval x = CGAL::to_interval(p.x()); const Interval y = CGAL::to_interval(p.y()); const Interval z = CGAL::to_interval(p.z()); const Interval r2 = CGAL::to_interval(sq_r); const Interval r = CGAL::sqrt(r2); // maybe we can work with r2 // in order to save this operation // but if the coefficients are to high // the multiplication would lead to inf // results const Interval a2 = CGAL::square(a); const Interval b2 = CGAL::square(b); const Interval c2 = CGAL::square(c); const Interval sqr_sum = a2 + b2 + c2; const Interval mx = r * CGAL::sqrt((sqr_sum - a2)/sqr_sum); const Interval my = r * CGAL::sqrt((sqr_sum - b2)/sqr_sum); const Interval mz = r * CGAL::sqrt((sqr_sum - c2)/sqr_sum); return CGAL::Bbox_3((x-mx).inf(),(y-my).inf(),(z-mz).inf(), (x+mx).sup(),(y+my).sup(),(z+mz).sup()); } Boolean operator==(const CircleC3 &) const; Boolean operator!=(const CircleC3 &) const; Boolean has_on(const Point_3 &p) const; Boolean has_on_bounded_side(const Point_3 &p) const; Boolean has_on_unbounded_side(const Point_3 &p) const; Bounded_side bounded_side(const Point_3 &p) const; Boolean is_degenerate() const { return diametral_sphere().is_degenerate(); } }; template < class R > inline typename R::Boolean CircleC3:: has_on(const typename CircleC3::Point_3 &p) const { return R().has_on_3_object()(diametral_sphere(),p) && R().has_on_3_object()(supporting_plane(),p); } template < class R > inline typename R::Boolean CircleC3:: has_on_bounded_side(const typename CircleC3::Point_3 &p) const { CGAL_kernel_precondition(R().has_on_3_object()(supporting_plane(), p)); return squared_distance(center(),p) < squared_radius(); } template < class R > inline typename R::Boolean CircleC3:: has_on_unbounded_side(const typename CircleC3::Point_3 &p) const { CGAL_kernel_precondition(R().has_on_3_object()(supporting_plane(), p)); return squared_distance(center(),p) > squared_radius(); } template < class R > typename R::Bounded_side CircleC3:: bounded_side(const typename CircleC3::Point_3 &p) const { CGAL_kernel_precondition(is_degenerate() || R().has_on_3_object()(supporting_plane(), p)); return diametral_sphere().bounded_side(p); } template < class R > typename R::Boolean CircleC3::operator==(const CircleC3 &t) const { if (CGAL::identical(base, t.base)) return true; if(!(center() == t.center() && squared_radius() == t.squared_radius())) return false; const typename R::Plane_3 p1 = supporting_plane(); const typename R::Plane_3 p2 = t.supporting_plane(); if(is_zero(p1.a())) { if(!is_zero(p2.a())) return false; if(is_zero(p1.b())) { if(!is_zero(p2.b())) return false; return p1.c() * p2.d() == p1.d() * p2.c(); } return (p2.c() * p1.b() == p1.c() * p2.b()) && (p2.d() * p1.b() == p1.d() * p2.b()); } return (p2.b() * p1.a() == p1.b() * p2.a()) && (p2.c() * p1.a() == p1.c() * p2.a()) && (p2.d() * p1.a() == p1.d() * p2.a()); } template < class R > typename R::Boolean CircleC3::operator!=(const CircleC3 &t) const { return !(*this == t); } } //namespace CGAL #endif // CGAL_CARTESIAN_CIRCLEC3_H