{"id":103186,"date":"2022-02-03T21:37:11","date_gmt":"2022-02-03T19:37:11","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/vypusk-sistemnoj-biblioteki-glibc-2-35"},"modified":"2022-02-03T21:37:11","modified_gmt":"2022-02-03T19:37:11","slug":"vypusk-sistemnoj-biblioteki-glibc-2-35","status":"publish","type":"post","link":"https:\/\/prohoster.info\/pl\/blog\/news\/vypusk-sistemnoj-biblioteki-glibc-2-35","title":{"rendered":"Wydanie biblioteki systemowej Glibc 2.35.","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Po sze\u015bciu miesi\u0105cach prac rozwojowych opublikowano wersj\u0119 biblioteki systemowej GNU C Library (glibc) 2.35, kt\u00f3ra w pe\u0142ni spe\u0142nia wymagania standard\u00f3w ISO C11 i POSIX.1-2017. Nowe wydanie zawiera poprawki od 66 programist\u00f3w.     <\/p>\n<p>W\u015br\u00f3d udoskonale\u0144 w Glibc 2.35 warto wyr\u00f3\u017cni\u0107:   <\/p>\n<ul>\n<li class=\"l\"> Dodano wsparcie dla lokalizacji &#171;C.UTF-8&#187;, obejmuj\u0105cej zasady sortowania dla wszystkich kod\u00f3w Unicode, ale ograniczone do u\u017cycia zakres\u00f3w ASCII w funkcjach fnmatch, regexec i regcomp, dla oszcz\u0119dno\u015bci miejsca. Lokalizacja zajmuje oko\u0142o 400 KB, z czego 346 KB to dane LC_CTYPE dla Unicode i wymaga osobnej instalacji (nie jest wbudowana w Glibc).\n<li class=\"l\"> Dane kodowania, informacje o typach znak\u00f3w oraz tabele transliteracji zosta\u0142y zaktualizowane w celu wsparcia specyfikacji Unicode 14.0.0.\n<li class=\"l\"> W <math> i  zaimplementowane zosta\u0142y funkcje i makra, kt\u00f3re zaokr\u0105glaj\u0105 wynik do w\u0119\u017cszego typu: fsqrt, fsqrtl, dsqrtl,  ffma, ffmal, dfmal, fMsqrtfN, fMsqrtfNx, fMxsqrtfN, fMxsqrtfNx, fMfmafN oraz fMfmafNx. Funkcje opisane s\u0105 w specyfikacjach TS 18661-1:2014, TS 18661-3:2015 i dodane do roboczego projektu przysz\u0142ego standardu C ISO C2X.\n<li class=\"l\">  W <math> i  zaimplementowane zosta\u0142y funkcje i makra do znajdowania minimum i maksimum liczb zmiennoprzecinkowych o typach float, long double, _FloatN oraz _FloatNx, opisane w specyfikacji IEEE 754-2019 i dodane do roboczego projektu przysz\u0142ego standardu C ISO C2X: fmaximum, fmaximum_num, fmaximum_mag, fmaximum_mag_num, fminimum, fminimum_num, fminimum_mag, fminimum_mag_num.\n<li class=\"l\"> W <math> dodano sta\u0142e dla liczb zmiennoprzecinkowych o pojedynczej precyzji: M_Ef, M_LOG2Ef, M_LOG10Ef, M_LN2f, M_LN10f, M_PIf, M_PI_2f, M_PI_4f, M_1_PIf, M_2_PIf, M_2_SQRTPIf, M_SQRT2f oraz M_SQRT1_2f.\n<li class=\"l\"> Dla funkcji exp10 do nag\u0142\u00f3wka  dodano odpowiednie makra, kt\u00f3re nie s\u0105 przypisane do konkretnych typ\u00f3w.\n<li class=\"l\"> W  dodano makro _PRINTF_NAN_LEN_MAX, zaproponowane w roboczym projekcie standardu ISO C2X.\n<li class=\"l\"> W funkcji z rodziny printf dodano specyfikatory formatu &#171;%b&#187; i &#171;%B&#187; do wy\u015bwietlania liczb ca\u0142kowitych w postaci binarnej.\n<li class=\"l\"> W systemie dynamicznego \u0142adowania zaimplementowano nowy algorytm sortowania DSO, kt\u00f3ry wykorzystuje metod\u0119 przeszukiwania w g\u0142\u0105b (DFS), aby rozwi\u0105za\u0107 problemy z wydajno\u015bci\u0105 przy przetwarzaniu cyklicznych zale\u017cno\u015bci. Wprowadzono parametr glibc.rtld.dynamic_sort do wyboru algorytmu sortowania DSO, kt\u00f3remu mo\u017cna przypisa\u0107 warto\u015b\u0107 &#171;1&#187; w celu powrotu do starego algorytmu.\n<li class=\"l\"> Do ABI dodano wsparcie dla nowej funkcji &#8216;__memcmpeq&#8217;, u\u017cywanej przez kompilatory do optymalizacji u\u017cycia &#8216;memcmp&#8217;, w przypadkach gdy zwracana warto\u015b\u0107 tej funkcji jest u\u017cywana wy\u0142\u0105cznie do sprawdzenia statusu zako\u0144czenia operacji.\n<li class=\"l\"> Dodano wsparcie dla automatycznej rejestracji w\u0105tk\u00f3w za pomoc\u0105 wywo\u0142ania systemowego rseq (restartable sequences), dost\u0119pnego od j\u0105dra Linux 4.18. Wywo\u0142anie systemowe rseq pozwala na nieprzerwane wykonanie grupy instrukcji, kt\u00f3re nie s\u0105 przerywane i potwierdzaj\u0105 wynik ostatniej instrukcji w grupie. Zasadniczo udost\u0119pniono narz\u0119dzie do bardzo szybkiego atomowego wykonywania operacji, kt\u00f3re w przypadku przerwania przez inny w\u0105tek s\u0105 czyszczone i ponownie podejmowane.\n<li class=\"l\"> Dodano dowi\u0105zanie symboliczne \/usr\/bin\/ld.so.\n<li class=\"l\">  Domy\u015blnie zapewniono kompilacj\u0119 wszystkich plik\u00f3w wykonywalnych program\u00f3w wbudowanych i zestawu testowego w trybie PIE (pozycjonowane pliki wykonywalne). Aby wy\u0142\u0105czy\u0107 to zachowanie, dost\u0119pna jest opcja &#171;&#8212;disable-default-pie&#187;.\n<li class=\"l\">Dla systemu Linux dodano ustawienie glibc.malloc.hugetlb, kt\u00f3re pozwala na prze\u0142\u0105czenie implementacji malloc na wykorzystanie wywo\u0142ania systemowego madvise z flag\u0105 MADV_HUGEPAGE dla mmap i sbrk lub bezpo\u015brednie wykorzystanie du\u017cych stron pami\u0119ci poprzez wskazanie flagi MAP_HUGETLB w wywo\u0142aniach mmap. W pierwszym przypadku mo\u017cna osi\u0105gn\u0105\u0107 zwi\u0119kszenie wydajno\u015bci, je\u015bli Transparent Huge Pages s\u0105 u\u017cywane w trybie madvise, a w drugim udost\u0119pniona jest mo\u017cliwo\u015b\u0107 u\u017cycia zarezerwowanych przez system du\u017cych stron (Huge Pages).\n<li class=\"l\"> Dodano funkcj\u0119 _dl_find_object, kt\u00f3r\u0105 mo\u017cna wykorzysta\u0107 do dodawania informacji o rozdzielaniu stosu wywo\u0142a\u0144 (unwind).\n<li class=\"l\"> Dodano wsparcie dla architektury OpenRISC (or1k-linux-gnu) w trybie programowego przetwarzania operacji z przecinkiem zmiennoprzecinkowym (soft-float). Do dzia\u0142ania portu konieczne s\u0105 binutils 2.35, GCC 11 oraz j\u0105dro Linux 5.4.\n<li class=\"l\"> Dodano flag\u0119 kompilacji &#171;&#8212;with-rtld-early-cflags&#187;, za pomoc\u0105 kt\u00f3rej mo\u017cna poda\u0107 dodatkowe flagi kompilacji u\u017cywane przy kompilacji kodu inicjalnego dla dynamicznego \u0142adowania.\n<li class=\"l\"> Dla platformy Linux dodano funkcj\u0119 epoll_pwait2, kt\u00f3ra r\u00f3\u017cni si\u0119 od epoll_wait wskazaniem limitu czasowego z nanosekundow\u0105 precyzj\u0105.\n<li class=\"l\"> Dodano funkcj\u0119 posix_spawn_file_actions_addtcsetpgrp_np, eliminuj\u0105c\u0105 stany wy\u015bcigu przy ustawianiu terminala steruj\u0105cego dla nowego procesu.\n<li class=\"l\"> Dla aplikacji kompilowanych z Glibc i GCC 12+ wprowadzono tryb ochrony &#171;_FORTIFY_SOURCE=3&#187;, kt\u00f3ry identyfikuje potencjalne przepe\u0142nienia bufora przy wykonywaniu funkcji \u0142a\u0144cuchowych zdefiniowanych w pliku nag\u0142\u00f3wkowym string.h. R\u00f3\u017cnica w stosunku do trybu &#171;_FORTIFY_SOURCE=2&#187; polega na dodatkowych sprawdzeniach, kt\u00f3re mog\u0105 potencjalnie obni\u017ca\u0107 wydajno\u015b\u0107.\n<li class=\"l\">  Wsparcie dla rozszerze\u0144 Intel MPX (Memory Protection Extensions), u\u017cywanych do sprawdzania wska\u017anik\u00f3w zgodno\u015bci z granicami obszar\u00f3w pami\u0119ci, zosta\u0142o zako\u0144czone (technologia ta nie zdoby\u0142a popularno\u015bci i zosta\u0142a usuni\u0119ta z GCC i LLVM).\n<li class=\"l\"> Mechanizm prelink i zwi\u0105zane z nim zmienne \u015brodowiskowe LD_TRACE_PRELINKING oraz LD_USE_LOAD_BIAS zosta\u0142y og\u0142oszone jako przestarza\u0142e i b\u0119d\u0105 usuni\u0119te w nast\u0119pnej wersji.\n<p>Usuni\u0119to luki bezpiecze\u0144stwa:    <\/p>\n<ul>\n<li class=\"l\"> CVE-2022-23218, CVE-2022-23219 &#8212; przepe\u0142nienie bufora w funkcjach svcunix_create i clnt_create, spowodowane kopiowaniem do stosu zawarto\u015bci parametru o nazwie pliku bez sprawdzenia rozmiaru kopiowanych danych. Dla aplikacji skompilowanych bez ochrony stosu i u\u017cywaj\u0105cych protoko\u0142u &#171;unix&#187;, luka ta mo\u017ce prowadzi\u0107 do zdalnego wykonania kodu przez atakuj\u0105cego podczas przetwarzania bardzo d\u0142ugich nazw plik\u00f3w.\n<li class=\"l\"> CVE-2021-3998 \u2014 luka w funkcji realpath(), spowodowana zwracaniem w pewnych warunkach nieprawid\u0142owej warto\u015bci, zawieraj\u0105cej nieoczyszczone pozosta\u0142e dane ze stosu. W przypadku programu fusermount z SUID-root luka mo\u017ce by\u0107 wykorzystana do uzyskania poufnych informacji z pami\u0119ci procesu, na przyk\u0142ad do uzyskania informacji o wska\u017anikach.\n<li class=\"l\"> CVE-2021-3999 \u2014 jednobajtowe przepe\u0142nienie bufora w funkcji getcwd(). Problem jest spowodowany b\u0142\u0119dem, kt\u00f3ry wyst\u0119puje od 1995 roku. Aby wywo\u0142a\u0107 przepe\u0142nienie, wystarczy w oddzielnej przestrzeni nazw punkt\u00f3w montowania wykona\u0107 wywo\u0142anie chdir() dla katalogu \u2018\/\u2019.     <\/ul>\n<p>\u0179r\u00f3d\u0142o: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=56631\">opennet.ru<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u043e\u0441\u043b\u0435 \u0448\u0435\u0441\u0442\u0438 \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d \u0440\u0435\u043b\u0438\u0437 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 GNU C Library (glibc) 2.35, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f\u043c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043e\u0432 ISO C11 \u0438 POSIX.1-2017. \u0412 \u0441\u043e\u0441\u0442\u0430\u0432 \u043d\u043e\u0432\u043e\u0433\u043e \u0432\u044b\u043f\u0443\u0441\u043a\u0430 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u044b \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043e\u0442 66 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432. \u0418\u0437 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0432 Glibc 2.35 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u0439 \u043c\u043e\u0436\u043d\u043e \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c: \u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0430 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u043b\u043e\u043a\u0430\u043b\u0438 &#171;C.UTF-8&#187;, \u0432\u043a\u043b\u044e\u0447\u0430\u044e\u0449\u0435\u0439 \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0438 \u0434\u043b\u044f \u0432\u0441\u0435\u0445 Unicode-\u043a\u043e\u0434\u043e\u0432, \u043d\u043e \u0434\u043b\u044f \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0438 \u043c\u0435\u0441\u0442\u0430 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u043e\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-103186","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u043e\u0441\u043b\u0435 \u0448\u0435\u0441\u0442\u0438 \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d \u0440\u0435\u043b\u0438\u0437 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 GNU C Library (glibc) 2.35, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f\u043c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043e\u0432 ISO C11 \u0438 POSIX.1-2017.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/pl\/blog\/news\/vypusk-sistemnoj-biblioteki-glibc-2-35\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"pl_PL\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0412\u044b\u043f\u0443\u0441\u043a \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 Glibc 2.35 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u043e\u0441\u043b\u0435 \u0448\u0435\u0441\u0442\u0438 \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d \u0440\u0435\u043b\u0438\u0437 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 GNU C Library (glibc) 2.35, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f\u043c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043e\u0432 ISO C11 \u0438 POSIX.1-2017.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/pl\/blog\/news\/vypusk-sistemnoj-biblioteki-glibc-2-35\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2022-02-03T19:37:11+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2022-02-03T19:37:11+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Wydanie biblioteki systemowej Glibc 2.35 | ProHoster","description":"Po sze\u015bciu miesi\u0105cach prac opublikowano wersj\u0119 biblioteki systemowej GNU C Library (glibc) 2.35, kt\u00f3ra w pe\u0142ni spe\u0142nia wymagania standard\u00f3w ISO C11 i POSIX.1-2017.","canonical_url":"https:\/\/prohoster.info\/pl\/blog\/news\/vypusk-sistemnoj-biblioteki-glibc-2-35","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pl_PL","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0412\u044b\u043f\u0443\u0441\u043a \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 Glibc 2.35 | ProHoster","og:description":"\u041f\u043e\u0441\u043b\u0435 \u0448\u0435\u0441\u0442\u0438 \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d \u0440\u0435\u043b\u0438\u0437 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 GNU C Library (glibc) 2.35, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f\u043c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043e\u0432 ISO C11 \u0438 POSIX.1-2017.","og:url":"https:\/\/prohoster.info\/pl\/blog\/news\/vypusk-sistemnoj-biblioteki-glibc-2-35","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2022-02-03T19:37:11+00:00","article:modified_time":"2022-02-03T19:37:11+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"103186","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2022-02-03 19:38:06","updated":"2022-09-28 03:27:41","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/103186","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/comments?post=103186"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/103186\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media?parent=103186"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/categories?post=103186"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/tags?post=103186"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}