CINXE.COM
Фенын Модуль:Sources/utils-ы равзæрæн текст — Википеди
<!DOCTYPE html> <html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-sticky-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-disabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-feature-night-mode-disabled skin-theme-clientpref-day vector-toc-not-available" lang="os" dir="ltr"> <head> <meta charset="UTF-8"> <title>Фенын Модуль:Sources/utils-ы равзæрæн текст — Википеди</title> <script>(function(){var className="client-js vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-sticky-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-disabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-feature-night-mode-disabled skin-theme-clientpref-day vector-toc-not-available";var cookie=document.cookie.match(/(?:^|; )oswikimwclientpreferences=([^;]+)/);if(cookie){cookie[1].split('%2C').forEach(function(pref){className=className.replace(new RegExp('(^| )'+pref.replace(/-clientpref-\w+$|[^\w-]+/g,'')+'-clientpref-\\w+( |$)'),'$1'+pref+'$2');});}document.documentElement.className=className;}());RLCONF={"wgBreakFrames":true,"wgSeparatorTransformTable":["",""],"wgDigitTransformTable":["",""],"wgDefaultDateFormat": "dmy","wgMonthNames":["","January","February","March","April","May","June","July","August","September","October","November","December"],"wgRequestId":"1b2df345-6d7f-4739-a0a7-e3f05d6972da","wgCanonicalNamespace":"Module","wgCanonicalSpecialPageName":false,"wgNamespaceNumber":828,"wgPageName":"Модуль:Sources/utils","wgTitle":"Sources/utils","wgCurRevisionId":535001,"wgRevisionId":0,"wgArticleId":54037,"wgIsArticle":false,"wgIsRedirect":false,"wgAction":"edit","wgUserName":null,"wgUserGroups":["*"],"wgCategories":[],"wgPageViewLanguage":"en","wgPageContentLanguage":"en","wgPageContentModel":"Scribunto","wgRelevantPageName":"Модуль:Sources/utils","wgRelevantArticleId":54037,"wgIsProbablyEditable":true,"wgRelevantPageIsProbablyEditable":true,"wgRestrictionEdit":[],"wgRestrictionMove":[],"wgNoticeProject":"wikipedia","wgCiteReferencePreviewsActive":true,"wgMediaViewerOnClick":true,"wgMediaViewerEnabledByDefault":true,"wgPopupsFlags":0,"wgVisualEditor":{"pageLanguageCode":"en", "pageLanguageDir":"ltr","pageVariantFallbacks":"en"},"wgMFDisplayWikibaseDescriptions":{"search":true,"watchlist":true,"tagline":true,"nearby":true},"wgWMESchemaEditAttemptStepOversample":false,"wgWMEPageLength":30000,"wgCodeEditorCurrentLanguage":"lua","wgRelatedArticlesCompat":[],"wgCentralAuthMobileDomain":false,"wgEditSubmitButtonLabelPublish":true,"wgULSPosition":"interlanguage","wgULSisCompactLinksEnabled":false,"wgVector2022LanguageInHeader":true,"wgULSisLanguageSelectorEmpty":false,"wgCheckUserClientHintsHeadersJsApi":["brands","architecture","bitness","fullVersionList","mobile","model","platform","platformVersion"],"GEHomepageSuggestedEditsEnableTopics":true,"wgGETopicsMatchModeEnabled":false,"wgGEStructuredTaskRejectionReasonTextInputEnabled":false,"wgGELevelingUpEnabledForUser":false,"wgSiteNoticeId":"2.0"};RLSTATE={"ext.globalCssJs.user.styles":"ready","site.styles":"ready","user.styles":"ready","ext.globalCssJs.user":"ready","user":"ready","user.options":"loading", "ext.codeEditor.styles":"ready","skins.vector.search.codex.styles":"ready","skins.vector.styles":"ready","skins.vector.icons":"ready","ext.charinsert.styles":"ready","ext.wikimediamessages.styles":"ready","ext.visualEditor.desktopArticleTarget.noscript":"ready","ext.uls.interlanguage":"ready","ext.wikimediaBadges":"ready","ext.dismissableSiteNotice.styles":"ready"};RLPAGEMODULES=["ext.codeEditor","ext.scribunto.edit","mediawiki.action.edit.collapsibleFooter","site","mediawiki.page.ready","skins.vector.js","ext.centralNotice.geoIP","ext.charinsert","ext.gadget.Ossetian-alphabet-support","ext.urlShortener.toolbar","ext.centralauth.centralautologin","ext.popups","ext.visualEditor.desktopArticleTarget.init","ext.visualEditor.targetLoader","ext.echo.centralauth","ext.eventLogging","ext.wikimediaEvents","ext.navigationTiming","ext.uls.interface","ext.cx.eventlogging.campaigns","ext.checkUser.clientHints","wikibase.sidebar.tracking","ext.dismissableSiteNotice"];</script> <script>(RLQ=window.RLQ||[]).push(function(){mw.loader.impl(function(){return["user.options@12s5i",function($,jQuery,require,module){mw.user.tokens.set({"patrolToken":"+\\","watchToken":"+\\","csrfToken":"+\\"}); }];});});</script> <link rel="stylesheet" href="/w/load.php?lang=os&modules=ext.charinsert.styles%7Cext.codeEditor.styles%7Cext.dismissableSiteNotice.styles%7Cext.uls.interlanguage%7Cext.visualEditor.desktopArticleTarget.noscript%7Cext.wikimediaBadges%7Cext.wikimediamessages.styles%7Cskins.vector.icons%2Cstyles%7Cskins.vector.search.codex.styles&only=styles&skin=vector-2022"> <script async="" src="/w/load.php?lang=os&modules=startup&only=scripts&raw=1&skin=vector-2022"></script> <meta name="ResourceLoaderDynamicStyles" content=""> <link rel="stylesheet" href="/w/load.php?lang=os&modules=site.styles&only=styles&skin=vector-2022"> <meta name="generator" content="MediaWiki 1.44.0-wmf.4"> <meta name="referrer" content="origin"> <meta name="referrer" content="origin-when-cross-origin"> <meta name="robots" content="noindex,nofollow,max-image-preview:standard"> <meta name="format-detection" content="telephone=no"> <meta name="viewport" content="width=1120"> <meta property="og:title" content="Фенын Модуль:Sources/utils-ы равзæрæн текст — Википеди"> <meta property="og:type" content="website"> <link rel="alternate" media="only screen and (max-width: 640px)" href="//os.m.wikipedia.org/wiki/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Sources/utils"> <link rel="alternate" type="application/x-wiki" title="Ивын" href="/w/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Sources/utils&action=edit"> <link rel="apple-touch-icon" href="/static/apple-touch/wikipedia.png"> <link rel="icon" href="/static/favicon/wikipedia.ico"> <link rel="search" type="application/opensearchdescription+xml" href="/w/rest.php/v1/search" title="Википеди (os)"> <link rel="EditURI" type="application/rsd+xml" href="//os.wikipedia.org/w/api.php?action=rsd"> <link rel="canonical" href="https://os.wikipedia.org/wiki/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Sources/utils"> <link rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/deed.os"> <link rel="alternate" type="application/atom+xml" title="Википедийы Atom лæсæн" href="/w/index.php?title=%D0%A1%C3%A6%D1%80%D0%BC%D0%B0%D0%B3%D0%BE%D0%BD%D0%B4:%D0%A4%C3%A6%D1%81%D1%82%D0%B0%D0%B3%D0%98%D0%B2%D0%B4%D1%82%D1%8B%D1%82%C3%A6&feed=atom"> <link rel="dns-prefetch" href="//login.wikimedia.org"> </head> <body class="codeeditor-loading skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-828 ns-subject mw-editable page-Модуль_Sources_utils rootpage-Модуль_Sources skin-vector-2022 action-edit"><a class="mw-jump-link" href="#bodyContent">Перейти к содержанию</a> <div class="vector-header-container"> <header class="vector-header mw-header"> <div class="vector-header-start"> <nav class="vector-main-menu-landmark" aria-label="Сайт"> <div id="vector-main-menu-dropdown" class="vector-dropdown vector-main-menu-dropdown vector-button-flush-left vector-button-flush-right" > <input type="checkbox" id="vector-main-menu-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-main-menu-dropdown" class="vector-dropdown-checkbox " aria-label="Сæйраг меню" > <label id="vector-main-menu-dropdown-label" for="vector-main-menu-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-menu mw-ui-icon-wikimedia-menu"></span> <span class="vector-dropdown-label-text">Сæйраг меню</span> </label> <div class="vector-dropdown-content"> <div id="vector-main-menu-unpinned-container" class="vector-unpinned-container"> <div id="vector-main-menu" class="vector-main-menu vector-pinnable-element"> <div class="vector-pinnable-header vector-main-menu-pinnable-header vector-pinnable-header-unpinned" data-feature-name="main-menu-pinned" data-pinnable-element-id="vector-main-menu" data-pinned-container-id="vector-main-menu-pinned-container" data-unpinned-container-id="vector-main-menu-unpinned-container" > <div class="vector-pinnable-header-label">Сæйраг меню</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-main-menu.pin">переместить в боковую панель</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-main-menu.unpin">бамбæхс</button> </div> <div id="p-navigation" class="vector-menu mw-portlet mw-portlet-navigation" > <div class="vector-menu-heading"> Навигаци </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-mainpage" class="mw-list-item"><a href="/wiki/%D0%A1%C3%A6%D0%B9%D1%80%D0%B0%D0%B3_%D1%84%D0%B0%D1%80%D1%81" title="Сæйраг фарсмæ ацæуын [z]" accesskey="z"><span>Сæйраг фарс</span></a></li><li id="n-Рубрикатор" class="mw-list-item"><a href="/wiki/%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8:%C3%86%D0%BF%D0%BF%C3%A6%D1%82"><span>Рубрикатор</span></a></li><li id="n-Алфавитмæ-гæсгæ" class="mw-list-item"><a href="/wiki/%D0%92%D0%B8%D0%BA%D0%B8%D0%BF%D0%B5%D0%B4%D0%B8:%D0%98%D0%BD%D0%B4%D0%B5%D0%BA%D1%81"><span>Алфавитмæ гæсгæ</span></a></li><li id="n-randompage" class="mw-list-item"><a href="/wiki/%D0%A1%C3%A6%D1%80%D0%BC%D0%B0%D0%B3%D0%BE%D0%BD%D0%B4:%C3%86%D1%80%D1%85%D0%B0%D1%83%D0%B3%C3%A6%D0%A4%D0%B0%D1%80%D1%81" title="Бакæнын халæй ист фарс [x]" accesskey="x"><span>Æрхаугæ фарс</span></a></li><li id="n-currentevents" class="mw-list-item"><a href="/wiki/%D0%92%D0%B8%D0%BA%D0%B8%D0%BF%D0%B5%D0%B4%D0%B8:%D0%9D%D0%BE%D0%B3_%D1%85%D0%B0%D0%B1%C3%A6%D1%80%D1%82%D1%82%C3%A6" title="Ныры хабæрттыл информаци ссарынæн"><span>Ног хабæрттæ</span></a></li> </ul> </div> </div> <div id="p-Архайд" class="vector-menu mw-portlet mw-portlet-Архайд" > <div class="vector-menu-heading"> Архайд </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-recentchanges" class="mw-list-item"><a href="/wiki/%D0%A1%C3%A6%D1%80%D0%BC%D0%B0%D0%B3%D0%BE%D0%BD%D0%B4:%D0%A4%C3%A6%D1%81%D1%82%D0%B0%D0%B3%D0%98%D0%B2%D0%B4%D1%82%D1%8B%D1%82%C3%A6" title="Фæстаг ивдтыты рæгъ [r]" accesskey="r"><span>Фæстаг ивдтытæ</span></a></li><li id="n-newpages" class="mw-list-item"><a href="/wiki/%D0%A1%C3%A6%D1%80%D0%BC%D0%B0%D0%B3%D0%BE%D0%BD%D0%B4:%D0%9D%D0%BE%D0%B3%D0%A4%C3%A6%D1%80%D1%81%D1%82%C3%A6"><span>Ног фæрстæ</span></a></li><li id="n-Архайджыты-ныхас" class="mw-list-item"><a href="/wiki/%D0%92%D0%B8%D0%BA%D0%B8%D0%BF%D0%B5%D0%B4%D0%B8:%D0%9D%D1%8B%D1%85%D0%B0%D1%81"><span>Архайджыты ныхас</span></a></li><li id="n-help" class="mw-list-item"><a href="/wiki/%D0%92%D0%B8%D0%BA%D0%B8%D0%BF%D0%B5%D0%B4%D0%B8:%D0%A1%D0%BF%D1%80%D0%B0%D0%B2%D0%BA%D0%B0" title="Базонынæн бынат"><span>Æххуыс</span></a></li> </ul> </div> </div> </div> </div> </div> </div> </nav> <a href="/wiki/%D0%A1%C3%A6%D0%B9%D1%80%D0%B0%D0%B3_%D1%84%D0%B0%D1%80%D1%81" class="mw-logo"> <img class="mw-logo-icon" src="/static/images/icons/wikipedia.png" alt="" aria-hidden="true" height="50" width="50"> <span class="mw-logo-container skin-invert"> <img class="mw-logo-wordmark" alt="Википеди" src="/static/images/mobile/copyright/wikipedia-wordmark-os.svg" style="width: 7.5em; height: 1.3125em;"> <img class="mw-logo-tagline" alt="Сæрибар энциклопеди" src="/static/images/mobile/copyright/wikipedia-tagline-os.svg" width="120" height="12" style="width: 7.5em; height: 0.75em;"> </span> </a> </div> <div class="vector-header-end"> <div id="p-search" role="search" class="vector-search-box-vue vector-search-box-collapses vector-search-box-show-thumbnail vector-search-box-auto-expand-width vector-search-box"> <a href="/wiki/%D0%A1%C3%A6%D1%80%D0%BC%D0%B0%D0%B3%D0%BE%D0%BD%D0%B4:%D0%90%D0%B3%D1%83%D1%80%D1%8B%D0%BD" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only search-toggle" title="Википедийы агурын [f]" accesskey="f"><span class="vector-icon mw-ui-icon-search mw-ui-icon-wikimedia-search"></span> <span>Агуырд</span> </a> <div class="vector-typeahead-search-container"> <div class="cdx-typeahead-search cdx-typeahead-search--show-thumbnail cdx-typeahead-search--auto-expand-width"> <form action="/w/index.php" id="searchform" class="cdx-search-input cdx-search-input--has-end-button"> <div id="simpleSearch" class="cdx-search-input__input-wrapper" data-search-loc="header-moved"> <div class="cdx-text-input cdx-text-input--has-start-icon"> <input class="cdx-text-input__input" type="search" name="search" placeholder="Википедийы агурын" aria-label="Википедийы агурын" autocapitalize="sentences" title="Википедийы агурын [f]" accesskey="f" id="searchInput" > <span class="cdx-text-input__icon cdx-text-input__start-icon"></span> </div> <input type="hidden" name="title" value="Сæрмагонд:Агурын"> </div> <button class="cdx-button cdx-search-input__end-button">Агурын</button> </form> </div> </div> </div> <nav class="vector-user-links vector-user-links-wide" aria-label="Хион фæрæзтæ"> <div class="vector-user-links-main"> <div id="p-vector-user-menu-preferences" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <div id="p-vector-user-menu-userpage" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <nav class="vector-appearance-landmark" aria-label="Внешний вид"> <div id="vector-appearance-dropdown" class="vector-dropdown " title="Измените внешний вид страницы, размер, ширину и цвет шрифта." > <input type="checkbox" id="vector-appearance-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-appearance-dropdown" class="vector-dropdown-checkbox " aria-label="Внешний вид" > <label id="vector-appearance-dropdown-label" for="vector-appearance-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-appearance mw-ui-icon-wikimedia-appearance"></span> <span class="vector-dropdown-label-text">Внешний вид</span> </label> <div class="vector-dropdown-content"> <div id="vector-appearance-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <div id="p-vector-user-menu-notifications" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <div id="p-vector-user-menu-overflow" class="vector-menu mw-portlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-sitesupport-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="//donate.wikimedia.org/wiki/Special:FundraiserRedirector?utm_source=donate&utm_medium=sidebar&utm_campaign=C13_os.wikipedia.org&uselang=os" class=""><span>Мысайнаг</span></a> </li> <li id="pt-createaccount-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="/w/index.php?title=%D0%A1%C3%A6%D1%80%D0%BC%D0%B0%D0%B3%D0%BE%D0%BD%D0%B4:%D0%90%D0%BA%D0%BA%D0%B0%D1%83%D0%BD%D1%82%D0%A1%D0%BA%C3%A6%D0%BD%D1%8B%D0%BD&returnto=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%3ASources%2Futils&returntoquery=action%3Dedit" title="Мы предлагаем вам создать учётную запись и войти в систему, хотя это и не обязательно." class=""><span>Аккаунт саразын</span></a> </li> <li id="pt-login-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="/w/index.php?title=%D0%A1%C3%A6%D1%80%D0%BC%D0%B0%D0%B3%D0%BE%D0%BD%D0%B4:%D0%91%D0%B0%D1%85%D0%B8%D0%B7%D1%8B%D0%BD&returnto=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%3ASources%2Futils&returntoquery=action%3Dedit" title="Хуыздæр у куы бахизай системæмæ; фæлæ нæмæнг нæу [o]" accesskey="o" class=""><span>Бахизын</span></a> </li> </ul> </div> </div> </div> <div id="vector-user-links-dropdown" class="vector-dropdown vector-user-menu vector-button-flush-right vector-user-menu-logged-out" title="Больше возможностей" > <input type="checkbox" id="vector-user-links-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-user-links-dropdown" class="vector-dropdown-checkbox " aria-label="Хион фæрæзтæ" > <label id="vector-user-links-dropdown-label" for="vector-user-links-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-ellipsis mw-ui-icon-wikimedia-ellipsis"></span> <span class="vector-dropdown-label-text">Хион фæрæзтæ</span> </label> <div class="vector-dropdown-content"> <div id="p-personal" class="vector-menu mw-portlet mw-portlet-personal" title="Пользовательское меню" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-sitesupport" class="user-links-collapsible-item mw-list-item"><a href="//donate.wikimedia.org/wiki/Special:FundraiserRedirector?utm_source=donate&utm_medium=sidebar&utm_campaign=C13_os.wikipedia.org&uselang=os"><span>Мысайнаг</span></a></li><li id="pt-contribute" class="mw-list-item"><a href="/wiki/%D0%A1%C3%A6%D1%80%D0%BC%D0%B0%D0%B3%D0%BE%D0%BD%D0%B4:Contribute"><span class="vector-icon mw-ui-icon-edit mw-ui-icon-wikimedia-edit"></span> <span>Вклад</span></a></li><li id="pt-createaccount" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=%D0%A1%C3%A6%D1%80%D0%BC%D0%B0%D0%B3%D0%BE%D0%BD%D0%B4:%D0%90%D0%BA%D0%BA%D0%B0%D1%83%D0%BD%D1%82%D0%A1%D0%BA%C3%A6%D0%BD%D1%8B%D0%BD&returnto=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%3ASources%2Futils&returntoquery=action%3Dedit" title="Мы предлагаем вам создать учётную запись и войти в систему, хотя это и не обязательно."><span class="vector-icon mw-ui-icon-userAdd mw-ui-icon-wikimedia-userAdd"></span> <span>Аккаунт саразын</span></a></li><li id="pt-login" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=%D0%A1%C3%A6%D1%80%D0%BC%D0%B0%D0%B3%D0%BE%D0%BD%D0%B4:%D0%91%D0%B0%D1%85%D0%B8%D0%B7%D1%8B%D0%BD&returnto=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%3ASources%2Futils&returntoquery=action%3Dedit" title="Хуыздæр у куы бахизай системæмæ; фæлæ нæмæнг нæу [o]" accesskey="o"><span class="vector-icon mw-ui-icon-logIn mw-ui-icon-wikimedia-logIn"></span> <span>Бахизын</span></a></li> </ul> </div> </div> <div id="p-user-menu-anon-editor" class="vector-menu mw-portlet mw-portlet-user-menu-anon-editor" > <div class="vector-menu-heading"> Страницы для неавторизованных редакторов <a href="/wiki/%C3%86%D1%85%D1%85%D1%83%D1%8B%D1%81:%D0%92%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5" aria-label="Подробнее о редактировании"><span>узнать больше</span></a> </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-anontalk" class="mw-list-item"><a href="/wiki/%D0%A1%C3%A6%D1%80%D0%BC%D0%B0%D0%B3%D0%BE%D0%BD%D0%B4:%D0%9C%C3%A6%D0%9D%D1%8B%D1%85%D0%B0%D1%81" title="Мæ IP-адрисæн йæ дискуссийы фарс [n]" accesskey="n"><span>Ныхас</span></a></li> </ul> </div> </div> </div> </div> </nav> </div> </header> </div> <div class="mw-page-container"> <div class="mw-page-container-inner"> <div class="vector-sitenotice-container"> <div id="siteNotice"><div id="mw-dismissablenotice-anonplace"></div><script>(function(){var node=document.getElementById("mw-dismissablenotice-anonplace");if(node){node.outerHTML="\u003Cdiv class=\"mw-dismissable-notice\"\u003E\u003Cdiv class=\"mw-dismissable-notice-close\"\u003E[\u003Ca tabindex=\"0\" role=\"button\"\u003Eскрыть\u003C/a\u003E]\u003C/div\u003E\u003Cdiv class=\"mw-dismissable-notice-body\"\u003E\u003C!-- CentralNotice --\u003E\u003Cdiv id=\"localNotice\" data-nosnippet=\"\"\u003E\u003Cdiv class=\"sitenotice\" lang=\"os\" dir=\"ltr\"\u003E\u003Cp\u003EАлы æвзагыл дæр чи хъуамæ уой, \u003Ca href=\"/wiki/%D0%92%D0%B8%D0%BA%D0%B8%D0%BF%D0%B5%D0%B4%D0%B8:%D0%90%D0%BB%D1%8B_%C3%A6%D0%B2%D0%B7%D0%B0%D0%B3%D1%8B%D0%BB_%D0%B4%C3%A6%D1%80_%D1%87%D0%B8_%D1%85%D1%8A%D1%83%D0%B0%D0%BC%C3%A6_%D1%83%D0%B0,_%D1%83%D1%8B%D1%86%D1%8B_%D1%81%D1%82%D0%B0%D1%82%D1%8C%D1%8F%D1%82%C3%A6\" class=\"mw-redirect\" title=\"Википеди:Алы æвзагыл дæр чи хъуамæ уа, уыцы статьятæ\"\u003Eуыцы ахсджиагдæр 1000 уацы\u0026#160;»»»\u003C/a\u003E\n\u003C/p\u003E\u003C/div\u003E\u003C/div\u003E\u003C/div\u003E\u003C/div\u003E";}}());</script></div> </div> <div class="vector-column-start"> <div class="vector-main-menu-container"> <div id="mw-navigation"> <nav id="mw-panel" class="vector-main-menu-landmark" aria-label="Сайт"> <div id="vector-main-menu-pinned-container" class="vector-pinned-container"> </div> </nav> </div> </div> </div> <div class="mw-content-container"> <main id="content" class="mw-body"> <header class="mw-body-header vector-page-titlebar"> <h1 id="firstHeading" class="firstHeading mw-first-heading">Фенын Модуль:Sources/utils-ы равзæрæн текст</h1> <div id="p-lang-btn" class="vector-dropdown mw-portlet mw-portlet-lang" > <input type="checkbox" id="p-lang-btn-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-p-lang-btn" class="vector-dropdown-checkbox mw-interlanguage-selector" aria-label="Данная статья существует только на этом языке. Добавьте статью для других языков" > <label id="p-lang-btn-label" for="p-lang-btn-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--action-progressive mw-portlet-lang-heading-0" aria-hidden="true" ><span class="vector-icon mw-ui-icon-language-progressive mw-ui-icon-wikimedia-language-progressive"></span> <span class="vector-dropdown-label-text">Æвзæгтæ бафтау</span> </label> <div class="vector-dropdown-content"> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> <div class="after-portlet after-portlet-lang"><span class="uls-after-portlet-link"></span></div> </div> </div> </div> </header> <div class="vector-page-toolbar"> <div class="vector-page-toolbar-container"> <div id="left-navigation"> <nav aria-label="Номдæттæ"> <div id="p-associated-pages" class="vector-menu vector-menu-tabs mw-portlet mw-portlet-associated-pages" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-nstab-module" class="selected vector-tab-noicon mw-list-item"><a href="/wiki/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Sources/utils" title="Просмотреть страницу модуля [c]" accesskey="c"><span>Модуль</span></a></li><li id="ca-talk" class="new vector-tab-noicon mw-list-item"><a href="/w/index.php?title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8F:Sources/utils&action=edit&redlink=1" rel="discussion" class="new" title="Фарсы тыххæй тæрхон (фарс нæй) [t]" accesskey="t"><span>Тæрхон</span></a></li> </ul> </div> </div> <div id="vector-variants-dropdown" class="vector-dropdown emptyPortlet" > <input type="checkbox" id="vector-variants-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-variants-dropdown" class="vector-dropdown-checkbox " aria-label="Изменить вариант языка" > <label id="vector-variants-dropdown-label" for="vector-variants-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet" aria-hidden="true" ><span class="vector-dropdown-label-text">English</span> </label> <div class="vector-dropdown-content"> <div id="p-variants" class="vector-menu mw-portlet mw-portlet-variants emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> </div> </div> </nav> </div> <div id="right-navigation" class="vector-collapsible"> <nav aria-label="Æркæстытæ"> <div id="p-views" class="vector-menu vector-menu-tabs mw-portlet mw-portlet-views" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-view" class="vector-tab-noicon mw-list-item"><a href="/wiki/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Sources/utils"><span>Кæсын</span></a></li><li id="ca-edit" class="selected vector-tab-noicon mw-list-item"><a href="/w/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Sources/utils&action=edit" title="Править исходный текст этой страницы"><span>Бындур ивын</span></a></li><li id="ca-history" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Sources/utils&action=history" title="Ацы фарсæн йæ раздæры фæлтæртæ [h]" accesskey="h"><span>Истори</span></a></li> </ul> </div> </div> </nav> <nav class="vector-page-tools-landmark" aria-label="Инструменты для страниц"> <div id="vector-page-tools-dropdown" class="vector-dropdown vector-page-tools-dropdown" > <input type="checkbox" id="vector-page-tools-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-page-tools-dropdown" class="vector-dropdown-checkbox " aria-label="Фæрæзтæ" > <label id="vector-page-tools-dropdown-label" for="vector-page-tools-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet" aria-hidden="true" ><span class="vector-dropdown-label-text">Фæрæзтæ</span> </label> <div class="vector-dropdown-content"> <div id="vector-page-tools-unpinned-container" class="vector-unpinned-container"> <div id="vector-page-tools" class="vector-page-tools vector-pinnable-element"> <div class="vector-pinnable-header vector-page-tools-pinnable-header vector-pinnable-header-unpinned" data-feature-name="page-tools-pinned" data-pinnable-element-id="vector-page-tools" data-pinned-container-id="vector-page-tools-pinned-container" data-unpinned-container-id="vector-page-tools-unpinned-container" > <div class="vector-pinnable-header-label">Фæрæзтæ</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-page-tools.pin">переместить в боковую панель</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-page-tools.unpin">бамбæхс</button> </div> <div id="p-cactions" class="vector-menu mw-portlet mw-portlet-cactions emptyPortlet vector-has-collapsible-items" title="Больше возможностей" > <div class="vector-menu-heading"> Архæйдтытæ </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-more-view" class="vector-more-collapsible-item mw-list-item"><a href="/wiki/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Sources/utils"><span>Кæсын</span></a></li><li id="ca-more-edit" class="selected vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Sources/utils&action=edit" title="Править исходный текст этой страницы [e]" accesskey="e"><span>Бындур ивын</span></a></li><li id="ca-more-history" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Sources/utils&action=history"><span>Истори</span></a></li> </ul> </div> </div> <div id="p-tb" class="vector-menu mw-portlet mw-portlet-tb" > <div class="vector-menu-heading"> Иумæйаг </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="t-whatlinkshere" class="mw-list-item"><a href="/wiki/%D0%A1%C3%A6%D1%80%D0%BC%D0%B0%D0%B3%D0%BE%D0%BD%D0%B4:%D0%90%D1%80%D0%B4%C3%A6%D0%BC%D0%A6%D1%8B%C3%86%D1%80%D0%B2%D0%B8%D1%82%D1%8B/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Sources/utils" title="Ацы фарсмæ чи ’рвитынц, ахæм фæрсты номхыгъд [j]" accesskey="j"><span>Чи æрвиты ардæм</span></a></li><li id="t-recentchangeslinked" class="mw-list-item"><a href="/wiki/%D0%A1%C3%A6%D1%80%D0%BC%D0%B0%D0%B3%D0%BE%D0%BD%D0%B4:%D0%91%D0%B0%D1%81%D1%82%D0%98%D0%B2%D0%B4%D1%82%D1%8B%D1%82%C3%A6/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Sources/utils" rel="nofollow" title="Ацы фарс кæмæ æрвиты, уыцы фæрсты фæстаг ивдтытæ [k]" accesskey="k"><span>Баст ивдтытæ</span></a></li><li id="t-upload" class="mw-list-item"><a href="//commons.wikimedia.org/wiki/Special:UploadWizard?uselang=os" title="Файлтæ бавгæнынæн [u]" accesskey="u"><span>Бавгæнын файл</span></a></li><li id="t-specialpages" class="mw-list-item"><a href="/wiki/%D0%A1%C3%A6%D1%80%D0%BC%D0%B0%D0%B3%D0%BE%D0%BD%D0%B4:%D0%A1%C3%A6%D1%80%D0%BC%D0%B0%D0%B3%D0%BE%D0%BD%D0%B4%D0%A4%C3%A6%D1%80%D1%81%D1%82%C3%A6" title="Сæрмагонд фæрсты номхыгъд [q]" accesskey="q"><span>Сæрмагонд фæрстæ</span></a></li><li id="t-info" class="mw-list-item"><a href="/w/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Sources/utils&action=info" title="Ацы фарсы тыххæй"><span>Ацы фарсы тыххæй</span></a></li><li id="t-urlshortener" class="mw-list-item"><a href="/w/index.php?title=%D0%A1%C3%A6%D1%80%D0%BC%D0%B0%D0%B3%D0%BE%D0%BD%D0%B4:UrlShortener&url=https%3A%2F%2Fos.wikipedia.org%2Fw%2Findex.php%3Ftitle%3D%25D0%259C%25D0%25BE%25D0%25B4%25D1%2583%25D0%25BB%25D1%258C%3ASources%2Futils%26action%3Dedit"><span>Получить короткий URL</span></a></li><li id="t-urlshortener-qrcode" class="mw-list-item"><a href="/w/index.php?title=%D0%A1%C3%A6%D1%80%D0%BC%D0%B0%D0%B3%D0%BE%D0%BD%D0%B4:QrCode&url=https%3A%2F%2Fos.wikipedia.org%2Fw%2Findex.php%3Ftitle%3D%25D0%259C%25D0%25BE%25D0%25B4%25D1%2583%25D0%25BB%25D1%258C%3ASources%2Futils%26action%3Dedit"><span>Скачать QR-код</span></a></li> </ul> </div> </div> <div id="p-wikibase-otherprojects" class="vector-menu mw-portlet mw-portlet-wikibase-otherprojects" > <div class="vector-menu-heading"> Æндæр проектты мидæг </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="t-wikibase" class="wb-otherproject-link wb-otherproject-wikibase-dataitem mw-list-item"><a href="https://www.wikidata.org/wiki/Special:EntityPage/Q27173710" title="Ссылка на связанный элемент репозитория данных [g]" accesskey="g"><span>Викиданныейы элемент</span></a></li> </ul> </div> </div> </div> </div> </div> </div> </nav> </div> </div> </div> <div class="vector-column-end"> <div class="vector-sticky-pinned-container"> <nav class="vector-page-tools-landmark" aria-label="Инструменты для страниц"> <div id="vector-page-tools-pinned-container" class="vector-pinned-container"> </div> </nav> <nav class="vector-appearance-landmark" aria-label="Внешний вид"> <div id="vector-appearance-pinned-container" class="vector-pinned-container"> <div id="vector-appearance" class="vector-appearance vector-pinnable-element"> <div class="vector-pinnable-header vector-appearance-pinnable-header vector-pinnable-header-pinned" data-feature-name="appearance-pinned" data-pinnable-element-id="vector-appearance" data-pinned-container-id="vector-appearance-pinned-container" data-unpinned-container-id="vector-appearance-unpinned-container" > <div class="vector-pinnable-header-label">Внешний вид</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-appearance.pin">переместить в боковую панель</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-appearance.unpin">бамбæхс</button> </div> </div> </div> </nav> </div> </div> <div id="bodyContent" class="vector-body" aria-labelledby="firstHeading" data-mw-ve-target-container> <div class="vector-body-before-content"> <div class="mw-indicators"> </div> </div> <div id="contentSub"><div id="mw-content-subtitle">← <a href="/wiki/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Sources/utils" title="Модуль:Sources/utils">Модуль:Sources/utils</a></div></div> <div id="mw-content-text" class="mw-body-content"><p>Нæй дын бар ацы фарс ивын ай тыххæй: </p> <div class="permissions-errors"><div class="mw-permissionerror-globalblocking-blockedtext-range"><b>Your IP address is in a range that has been <a href="https://meta.wikimedia.org/wiki/Special:MyLanguage/Global_blocks" class="extiw" title="m:Special:MyLanguage/Global blocks">blocked on all Wikimedia Foundation wikis</a>.</b> <p>The block was made by <a href="/wiki/%D0%90%D1%80%D1%85%D0%B0%D0%B9%C3%A6%D0%B3:Jon_Kolbert" title="Архайæг:Jon Kolbert">Jon Kolbert</a>. The reason given is <i><a href="https://meta.wikimedia.org/wiki/Special:MyLanguage/NOP" class="extiw" title="m:Special:MyLanguage/NOP">Open proxy/Webhost</a>: See the <a href="https://meta.wikimedia.org/wiki/WM:OP/H" class="extiw" title="m:WM:OP/H">help page</a> if you are affected </i>. </p> <ul><li>Start of block: 15:12, 27 августы 2023</li> <li>Expiry of block: 15:12, 27 августы 2028</li></ul> <p>Your current IP address is 8.222.208.146. The blocked range is 8.222.128.0/17. </p><p>Пожалуйста, указывайте все эти сведения в любых своих обращениях. If you believe you were blocked by mistake, you can find additional information and instructions in the <a href="https://meta.wikimedia.org/wiki/Special:MyLanguage/No_open_proxies" class="extiw" title="m:Special:MyLanguage/No open proxies">No open proxies</a> global policy. </p> Otherwise, to discuss the block please <a href="https://meta.wikimedia.org/wiki/Steward_requests/Global" class="extiw" title="m:Steward requests/Global">post a request for review on Meta-Wiki</a>. You could also send an email to the <a href="https://meta.wikimedia.org/wiki/Special:MyLanguage/Stewards" class="extiw" title="m:Special:MyLanguage/Stewards">stewards</a> <a href="https://meta.wikimedia.org/wiki/Special:MyLanguage/VRT" class="extiw" title="m:Special:MyLanguage/VRT">VRT</a> queue at <kbd>stewards@wikimedia.org</kbd> including all above details.</div></div><hr /> <p>Ацы фарсы код фенæн æмæ халдих кæнæн ис: </p><textarea readonly="" accesskey="," id="wpTextbox1" cols="80" rows="25" style="" class="mw-editfont-monospace" lang="en" dir="ltr" name="wpTextbox1">local p = {}; local i18nDefaultLanguage = 'os'; p.i18nDefaultLanguage = i18nDefaultLanguage; local NORMATIVE_DOCUMENTS = { Q20754888 = 'Закон Российской Федерации', Q20754884 = 'Закон РСФСР', Q20873831 = 'Распоряжение Президента Российской Федерации', Q20873834 = 'Указ исполняющего обязанности Президента Российской Федерации', Q2061228 = 'Указ Президента Российской Федерации', } local monthg = {'январы', 'февралы', 'мартъийы', 'апрелы', 'майы', 'июны', 'июлы', 'августы', "сентябры", "октябры", "ноябры", "декабры"}; local options_commas_nolinks = { separator = ', ', conjunction = ', ', format = function( src ) return src end, nolinks = true, preferids = false }; local function isEmpty( str ) return ( not str ) or ( str == nil ) or ( #str == 0 ); end p.isEmpty = isEmpty local function getSingleStringQualifierValue( allQualifiers, qualifierPropertyId ) if ( not allQualifiers ) then return end if ( not allQualifiers[qualifierPropertyId] ) then return end for k, qualifier in pairs( allQualifiers[qualifierPropertyId] ) do if ( qualifier and qualifier.datatype == 'string' and qualifier.datavalue and qualifier.datavalue.type == 'string' and not isEmpty( qualifier.datavalue.value ) ) then return qualifier.datavalue.value; end end return; end local function appendImpl_toTable(result, resultProperty) if ( not result[resultProperty] ) then result[resultProperty] = {}; elseif ( type( result[resultProperty] ) == 'string' or ( type( result[resultProperty] ) == 'table' and type( result[resultProperty].id ) == 'string' ) ) then result[resultProperty] = { result[resultProperty] }; end end local function appendImpl( datavalue, qualifiers, result, property, options ) if ( datavalue.type == 'string' ) then local statedAs = getSingleStringQualifierValue(qualifiers, 'P1932'); local value; if ( statedAs ) then value = statedAs; else value = datavalue.value; if ( options.format ) then value = options.format( value ); end end appendImpl_toTable( result, property ); local pos = getSingleStringQualifierValue(qualifiers, 'P1545') if pos then table.insert( result[property], pos, value ); else table.insert( result[property], value); end elseif ( datavalue.type == 'url' ) then local statedAs = getSingleStringQualifierValue(qualifiers, 'P1932'); local value = datavalue.value; if ( options.format ) then value = options.format( value ); end appendImpl_toTable( result, property ); table.insert( result[property], value); elseif ( datavalue.type == 'monolingualtext' ) then local value = datavalue.value.text; if ( options.format ) then value = options.format( value ); end appendImpl_toTable( result, property ); table.insert( result[property], value); elseif ( datavalue.type == 'quantity' ) then local value = datavalue.value.amount; if ( mw.ustring.sub( value , 1, 1 ) == '+' ) then value = mw.ustring.sub( value , 2 ); end if ( options.format ) then value = options.format( value ); end appendImpl_toTable( result, property ); table.insert( result[property], value); elseif ( datavalue.type == 'wikibase-entityid' ) then local pos = getSingleStringQualifierValue(qualifiers, 'P1545') local value = datavalue.value; appendImpl_toTable( result, property ); local toInsert = { id = value.id, label = getSingleStringQualifierValue(qualifiers, 'P1932') -- stated as }; if pos then table.insert( result[property], pos, toInsert ); else table.insert( result[property], toInsert ); end elseif datavalue.type == 'time' then local value = datavalue.value; if ( options.format ) then value = options.format( value ); end appendImpl_toTable( result, property ); table.insert( result[property], tostring( value.time )); end end local function appendSnaks( allSnaks, snakPropertyId, result, property, options ) -- do not populate twice if ( result[property] and (property ~= 'author' or result[snakPropertyId])) then return result end; if ( not allSnaks ) then return result; end; local selectedSnaks = allSnaks[ snakPropertyId ]; if ( not selectedSnaks ) then return result; end; if (property == 'author') then result[snakPropertyId] = true end; local hasPreferred = false; for k, snak in pairs( selectedSnaks ) do if ( snak and snak.mainsnak and snak.mainsnak.datavalue and snak.rank == 'preferred' ) then --it's a preferred claim appendImpl( snak.mainsnak.datavalue, snak.qualifiers, result, property, options ); hasPreferred = true; end end if ( hasPreferred ) then return result; end; if ( snakPropertyId == 'P1680' ) then -- if there is a ossetian for k, snak in pairs( selectedSnaks ) do if ( snak and snak.mainsnak and snak.mainsnak.datavalue and snak.mainsnak.datavalue.value and snak.rank ~= 'deprecated' and snak.mainsnak.datavalue.value.language == i18nDefaultLanguage ) then --found ossetian string appendImpl( snak.mainsnak.datavalue, snak.qualifiers, result, property, options ); return result; end end end; for k, snak in pairs( selectedSnaks ) do if ( snak and snak.mainsnak and snak.mainsnak.datavalue and snak.rank ~= 'deprecated' ) then --it's a claim appendImpl( snak.mainsnak.datavalue, snak.qualifiers, result, property, options ); elseif ( snak and snak.datavalue ) then -- it's a snak appendImpl( snak.datavalue, nil, result, property, options ); end end end local function appendQualifiers( claims, qualifierPropertyId, result, resultProperty, options ) -- do not populate twice if ( not claims ) then return result end; if ( result[resultProperty] ) then return result end; for i, claim in pairs( claims ) do if ( claim.qualifiers and claim.qualifiers[ qualifierPropertyId ] ) then for k, qualifier in pairs( claim.qualifiers[ qualifierPropertyId ] ) do if ( qualifier and qualifier.datavalue ) then appendImpl( qualifier.datavalue, nil, result, resultProperty, options ); end end end end end local function assertNotNull( argName, arg ) if ( (not arg) or (arg == nil) ) then error( argName .. ' is not specified' ) end end function p.coalesce( arg1, arg2, arg3, arg4 ) if ( not isEmpty( arg1 ) ) then return arg1 end if ( not isEmpty( arg2 ) ) then return arg2 end if ( not isEmpty( arg3 ) ) then return arg3 end if ( not isEmpty( arg4 ) ) then return arg4 end return nil; end local function toStringSnak( propertyId, strValue ) assertNotNull('propertyId', strValue) assertNotNull('strValue', strValue) local snak = { snaktype = "value", property = propertyId, datatype = 'string'}; snak["datavalue"] = { value = strValue, type = 'string' }; return snak; end local function toUrlSnak( propertyId, strValue ) assertNotNull('propertyId', strValue) assertNotNull('strValue', strValue) local snak = { snaktype = "value", property = propertyId, datatype = 'string'}; snak["datavalue"] = { value = strValue, type = 'url' }; return snak; end function p.copyArgsToSnaks( args, snaks ) if ( not isEmpty( args.part ) ) then snaks.P958 = { toStringSnak( 'P958', tostring( args.part ) ) } end if ( not isEmpty( args.pages ) ) then snaks.P304 = { toStringSnak( 'P304', tostring( args.pages ) ) } end if ( not isEmpty( args.issue ) ) then snaks.P433 = { toStringSnak( 'P433', tostring( args.issue ) ) } end if ( not isEmpty( args.volume ) ) then snaks.P478 = { toStringSnak( 'P478', tostring( args.volume ) ) } end if ( not isEmpty( args.url ) ) then snaks.P953 = { toUrlSnak( 'P953', tostring( args.url ) ) } end if ( not isEmpty( args.parturl ) ) then snaks.P953 = { toUrlSnak( 'P953', tostring( args.parturl ) ) } end end local LANG_CACHE = { Q150 = 'fr', Q188 = 'de', Q1321 = 'es', Q1860 = 'en', Q652 = 'it', Q33968 = 'os', Q7737 = 'ru', } function p.getLangCode( langEntityId ) if ( not langEntityId ) then return; end -- small optimization local cached = LANG_CACHE[ langEntityId ]; if ( cached ) then return cached; end local claims = mw.wikibase.getBestStatements( langEntityId, 'P424' ); if ( claims ) then for _, claim in pairs( claims ) do if ( claim and claim.mainsnak and claim.mainsnak.datavalue and claim.mainsnak.datavalue.value ) then return '' .. claim.mainsnak.datavalue.value; end end end return; end local function findClaimsByValue( entity, propertyId, value ) local result = {}; if ( entity and entity.claims and entity.claims[propertyId] ) then for i, claim in pairs( entity.claims[propertyId] ) do if ( claim.mainsnak and claim.mainsnak.datavalue ) then local datavalue = claim.mainsnak.datavalue; if ( datavalue.type == "string" and datavalue.value == value or datavalue.type == "wikibase-entityid" and datavalue.value["entity-type"] == "item" and tostring( datavalue.value.id ) == value ) then table.insert( result, claim ); end end end end return result; end local function getBestStatements( entity, propertyId ) local resultClaims = {}; if ( entity and entity.claims and entity.claims[ propertyId ] ) then local rank = 'normal'; for i, statement in pairs( entity.claims[ propertyId ] ) do if ( statement.rank == 'preferred' ) then rank = 'preferred'; break; end end for i, statement in pairs( entity.claims[ propertyId ] ) do if ( statement.rank == rank ) then table.insert( resultClaims, statement ); end end end return resultClaims; end local function getEntity( context, entityId ) assertNotNull( 'context', context ); assertNotNull( 'entityId', entityId ); local cached = context.cache[ entityId ]; if ( cached ) then return cached; end; local wbStatus, result = pcall( mw.wikibase.getEntity, entityId ); if ( wbStatus ~= true ) then return nil; end if ( result ) then context.cache[ entityId ] = result; end return result; end p.getEntity = getEntity function p.expandBookSeries( context, data ) local bookSeries = data.bookSeries; if ( not bookSeries ) then return end; -- use only first one if ( type( bookSeries ) == 'table' and bookSeries[1] and bookSeries[1].id ) then data.bookSeries = bookSeries[1]; bookSeries = data.bookSeries; end if ( not bookSeries ) then return end; if ( not bookSeries.id ) then return end; local bookSeriesEntity = getEntity( context, bookSeries.id ); appendSnaks( bookSeriesEntity.claims, 'P123', data, 'publisher', {} ); appendSnaks( bookSeriesEntity.claims, 'P291', data, 'place', {} ); appendSnaks( bookSeriesEntity.claims, 'P236', data, 'issn', {} ); end local function isInstanceOf( entity, typeEntityId ) if ( not entity or not entity.claims or not entity.claims.P31 ) then return false; end for _, claim in pairs( entity.claims.P31 ) do if ( claim and claim.mainsnak and claim.mainsnak.datavalue and claim.mainsnak.datavalue.value and claim.mainsnak.datavalue.value.id ) then local actualTypeId = claim.mainsnak.datavalue.value.id; if ( actualTypeId == typeEntityId ) then return true; end end end return false; end p.isInstanceOf = isInstanceOf local function populateDataFromClaims( context, entityId, claims, data ) appendSnaks( claims, 'P50', data, 'author', {} ); appendSnaks( claims, 'P2093', data, 'author', {} ); appendSnaks( claims, 'P407', data, 'lang', {} ); appendSnaks( claims, 'P364', data, 'lang', {} ); appendSnaks( claims, 'P958', data, 'part', {} ); appendSnaks( claims, 'P1810', data, 'part', {} ); if ( not data.title ) then if ( not isEmpty( entityId ) ) then local optionsAsLinks = { format = function( text ) return { id = entityId, label = text } end }; appendSnaks( claims, 'P1476', data, 'title', optionsAsLinks ); else appendSnaks( claims, 'P1476', data, 'title', {} ); end appendSnaks( claims, 'P1680', data, 'subtitle', {} ); end appendSnaks( claims, 'P953', data, 'url', {} ); appendSnaks( claims, 'P1065', data, 'url', {} ); appendSnaks( claims, 'P854', data, 'url', {} ); appendSnaks( claims, 'P973', data, 'url', {} ); appendSnaks( claims, 'P2699', data, 'url', {} ); -- temp disable, use only for current entity, see Q22338048 for example of incorrect work -- appendSnaks( claims, 'P856', data, 'url', {} ); appendSnaks( claims, 'P98', data, 'editor', {} ); appendSnaks( claims, 'P655', data, 'translator', {} ); appendSnaks( claims, 'P1433', data, 'publication', {} ); appendSnaks( claims, 'P393', data, 'edition', {} ); appendSnaks( claims, 'P123', data, 'publisher', {} ); appendSnaks( claims, 'P291', data, 'place', {} ); if ( claims and claims.P361 ) then for c, claim in pairs( claims.P361 ) do if ( claim and claim.mainsnak and claim.mainsnak.datavalue and claim.mainsnak.datavalue.value and claim.mainsnak.datavalue.value.id ) then local possibleBookSeriesEntityId = claim.mainsnak.datavalue.value.id; local possibleBookSeriesEntity = getEntity( context, possibleBookSeriesEntityId ); if ( isInstanceOf( possibleBookSeriesEntity, 'Q277759' ) ) then appendImpl_toTable( data, 'bookSeries' ); table.insert( data.bookSeries, { id = possibleBookSeriesEntityId } ); appendQualifiers( { claim }, 'P478', data, 'bookSeriesVolume', {} ); appendQualifiers( { claim }, 'P433', data, 'bookSeriesIssue', {} ); end end end end appendSnaks( claims, 'P478', data, 'volume', {} ); appendSnaks( claims, 'P433', data, 'issue', {} ); appendSnaks( claims, 'P571', data, 'dateOfCreation', {} ); appendSnaks( claims, 'P577', data, 'dateOfPublication', {} ); appendSnaks( claims, 'P304', data, 'pages', {} ); appendSnaks( claims, 'P1104', data, 'numberOfPages', {} ); appendSnaks( claims, 'P1092', data, 'tirage', {} ); appendSnaks( claims, 'P212', data, 'isbn', {} ); -- ISBN-13 appendSnaks( claims, 'P957', data, 'isbn', {} ); -- ISBN-10 appendSnaks( claims, 'P236', data, 'issn', {} ); -- web -- appendSnaks( claims, 'P813', data, 'accessdate', {} ); -- docs appendSnaks( claims, 'P1545', data, 'docNumber', {} ); -- other appendSnaks( claims, 'P31', data, 'type', {} ); appendSnaks( claims, 'P818', data, 'arxiv', {} ); appendSnaks( claims, 'P356', data, 'doi', {} ); appendSnaks( claims, 'P698', data, 'pmid', {} ); -- JSTOR appendSnaks( claims, 'P888', data, 'url', { format = function( id ) return 'http://www.jstor.org/stable/' .. id end } ); return src; end p.populateDataFromClaims = populateDataFromClaims local function getNormativeTitle( entity ) if ( not entity or not entity.claims or not entity.claims.P31 ) then return; end for _, claim in pairs( entity.claims.P31 ) do if ( claim and claim.mainsnak and claim.mainsnak.datavalue and claim.mainsnak.datavalue.value and claim.mainsnak.datavalue.value.id ) then local classId = claim.mainsnak.datavalue.value.id; local title = NORMATIVE_DOCUMENTS[ classId ]; if ( title ) then return title; end end end return; end local function getSingle( value ) if ( not value ) then return; end if ( type( value ) == 'string' ) then return value; elseif ( type( value ) == 'table' ) then if ( value.id ) then return value.id; end for i, tableValue in pairs( value ) do return getSingle( tableValue ); end end return '(unknown)'; end p.getSingle = getSingle local function wrapInUrl( urls, text ) local url = getSingle( urls ); if ( string.sub( url, 1, 1 ) == ':' ) then return '[[' .. url .. '|' .. text .. ']]'; else return '[' .. url .. ' ' .. text .. ']'; end end p.wrapInUrl = wrapInUrl local function getElementLink( context, entityId, entity ) -- fast sitelink lookup, not an expensive operation local link = mw.wikibase.sitelink( entityId ) if ( link ) then return ':' .. link end if ( not entity and entityId ) then entity = getEntity( context, entityId ) end if ( entity and context.lang ~= 'mul') then -- link to entity in source context language local projectToCheck = context.lang .. 'wiki'; if ( entity.sitelinks and entity.sitelinks[ projectToCheck ] ) then return ':' .. context.lang .. ':' .. entity.sitelinks[ projectToCheck ].title; end end if ( entityId ) then return ':d:' .. entityId end; -- if ( entityId ) then return 'https://tools.wmflabs.org/reasonator/?q=' .. entityId .. '&lang=os' end; return nil; end p.getElementLink = getElementLink local function renderLink( context, entityId, customTitle, options ) if ( not entityId ) then error("entityId is not specified") end if ( type( entityId ) ~= 'string' ) then error('entityId is not string, but ' .. type( entityId ) ) end if ( type( customTitle or '' ) ~= 'string' ) then error('customTitle is not string, but ' .. type( customTitle ) ) end local title = customTitle; if ( isEmpty( title ) ) then local entity = getEntity( context, entityId ); -- ISO 4 if ( isEmpty( title ) ) then if ( entity and entity.claims and entity.claims.P1160 ) then for _, claim in pairs( entity.claims.P1160 ) do if ( claim and claim.mainsnak and claim.mainsnak.datavalue and claim.mainsnak.datavalue.value and claim.mainsnak.datavalue.value.language == context.lang ) then title = claim.mainsnak.datavalue.value.text; mw.log('Got title of ' .. entityId .. ' from ISO 4 claim: «' .. title .. '»' ) break; end end end end -- official name P1448 -- short name P1813 if ( isEmpty( title ) and options.short ) then if ( entity and entity.claims and entity.claims.P1813 ) then for _, claim in pairs( entity.claims.P1813 ) do if ( claim and claim.mainsnak and claim.mainsnak.datavalue and claim.mainsnak.datavalue.value and claim.mainsnak.datavalue.value.language == context.lang ) then title = claim.mainsnak.datavalue.value.text; mw.log('Got title of ' .. entityId .. ' from short name claim: «' .. title .. '»' ) break; end end end end -- person name P1559 -- labels if ( isEmpty( title ) and entity.labels[ context.lang ] ) then title = entity.labels[ context.lang ].value; mw.log('Got title of ' .. entityId .. ' from label: «' .. title .. '»' ) end end local actualText = title or '\'\'(untranslated)\'\''; local link = getElementLink( context, entityId, entity); return wrapInUrl( link, actualText ); end local function toString( context, value, options ) if ( type( value ) == 'string' ) then return options.format( value ); elseif ( type( value ) == 'table' ) then if ( value.id ) then -- this is link if ( type( value.label or '' ) ~= 'string' ) then mw.logObject( value ); error('label of table value is not string but ' .. type( value.label ) ) end if ( options.preferids ) then return options.format( value.id ); else if ( options.nolinks ) then return options.format( value.label or mw.wikibase.label( value.id ) or '\'\'(untranslated title)\'\'' ); else return options.format( renderLink( context, value.id, value.label, options ) ); end end end local resultList = {}; for i, tableValue in pairs( value ) do table.insert( resultList, toString( context, tableValue, options ) ); end return mw.text.listToText( resultList, options.separator, options.conjunction); else return options.format( '(unknown type)' ); end return ''; end p.toString = toString local function populateSourceDataImpl( context, entity, plainData ) local wsLink = mw.wikibase.getSitelink( entity.id, 'oswikisource' ); if ( wsLink ) then plainData.url = ":os:s:" .. wsLink; end populateDataFromClaims( context, entity.id, entity.claims, plainData ); local normativeTitle = getNormativeTitle( entity ) if ( normativeTitle ) then local y, m, d = mw.ustring.match( getSingle( plainData.dateOfCreation ) , "(%-?%d+)%-(%d+)%-(%d+)T" ); y,m,d = tonumber(y),tonumber(m),tonumber(d); local title = toString( { lang='os' }, plainData.title, options_commas_nolinks ); plainData.title = { normativeTitle .. " от&nbsp;" .. tostring(d) .. "&nbsp;" .. monthg[m] .. " " .. tostring(y) .. "&nbsp;г. №&nbsp;" .. getSingle( plainData.docNumber ) .. ' «' .. title.. '»' } end if ( not plainData.title ) then if ( entity and entity.labels and entity.labels.os and entity.labels.os.value ) then plainData.title = { entity.labels.os.value }; end end return plainData; end p.populateSourceDataImpl = populateSourceDataImpl function p.expandPublication( context, sourceEntity, data ) local publication = data.publication; -- use only first one if ( type( publication ) == 'table' and publication[1] and publication[1].id ) then data.publication = publication[1]; publication = data.publication; end if ( not publication ) then return end; if ( not publication.id ) then return end; if ( sourceEntity ) then -- do we have appropriate record in P1433 ? local claims = findClaimsByValue( sourceEntity, 'P1433', publication.id ); if ( claims and #claims ~= 0 ) then for _, claim in pairs( claims ) do populateDataFromClaims( context, sourceEntity, claim.qualifiers, data ); break; end end end local titleWerePresent = not (not data.title); local pubEntity = getEntity( context, publication.id ); populateSourceDataImpl( context, pubEntity, data ); if ( titleWerePresent and isEmpty( data.publication.label ) ) then appendSnaks( pubEntity.claims, 'P1160', data, 'publication-title', {} ); -- obsolete data.publication.label = getSingle( data['publication-title'] ); end if ( titleWerePresent and isEmpty( data.publication.label ) ) then appendSnaks( pubEntity.claims, 'P1476', data, 'publication-title', {} ); appendSnaks( pubEntity.claims, 'P1680', data, 'publication-subtitle', {} ); data.publication.label = getSingle( data['publication-title'] ); data.publication.subtitle = getSingle( data['publication-subtitle'] ); end end local function expandSpecialsQualifiers( context, entity, propertyId, data ) if ( entity and entity.claims and entity.claims[propertyId] ) then for _, claim in pairs( entity.claims[propertyId] ) do populateDataFromClaims( context, nil, claim.qualifiers, data ); end end end -- Expand special types of references when additional data could be found in OTHER entity properties function p.expandSpecials( context, currentEntity, reference, data ) local sourceId; if ( reference.snaks.P805 and reference.snaks.P805[1] and reference.snaks.P805[1].datavalue and reference.snaks.P805[1].datavalue.value.id ) then sourceId = reference.snaks.P805[1].datavalue.value.id; elseif ( reference.snaks.P248 and reference.snaks.P248[1] and reference.snaks.P248[1].datavalue and reference.snaks.P248[1].datavalue.value.id ) then sourceId = reference.snaks.P248[1].datavalue.value.id; end if sourceId then data.sourceId = sourceId; -- Gemeinsame Normdatei -- specified by P227 if ( sourceId == 'Q36578' ) then appendSnaks( currentEntity.claims, 'P227', data, 'part', { format = function( gnd ) return 'Record #' .. gnd; end } ); appendSnaks( currentEntity.claims, 'P227', data, 'url', { format = function( gnd ) return 'http://d-nb.info/gnd/' .. gnd .. '/'; end } ); data.year = '2012—2016' expandSpecialsQualifiers( context, currentEntity, 'P227', data ); -- BNF -- specified by P268 elseif ( sourceId == 'Q15222191' ) then appendSnaks( currentEntity.claims, 'P268', data, 'part', { format = function( id ) return 'Record #' .. id; end } ); appendSnaks( currentEntity.claims, 'P268', data, 'url', { format = function( id ) return 'http://catalogue.bnf.fr/ark:/12148/cb' .. id; end } ); expandSpecialsQualifiers( context, currentEntity, 'P268', data ); -- VIAF -- specified by P214 elseif ( sourceId == 'Q54919' ) then appendSnaks( currentEntity.claims, 'P214', data, 'part', { format = function( id ) return 'Record #' .. id; end } ); appendSnaks( currentEntity.claims, 'P214', data, 'url', { format = function( id ) return 'https://viaf.org/viaf/' .. id; end } ); expandSpecialsQualifiers( context, currentEntity, 'P214', data ); -- generic property search else local sourceEntity = getEntity( context, sourceId ); if ( sourceEntity ) then for _, sourceClaim in ipairs( getBestStatements( sourceEntity, 'P1687' ) ) do if ( sourceClaim.mainsnak.snaktype == 'value' ) then local sourcePropertyId = sourceClaim.mainsnak.datavalue.value.id; local sourcePropertyEntity = getEntity( context, sourcePropertyId ); if ( sourcePropertyEntity ) then for _, sourcePropertyClaim in ipairs( getBestStatements( sourcePropertyEntity, 'P1630' ) ) do if ( sourcePropertyClaim.mainsnak.snaktype == 'value' ) then appendSnaks( currentEntity.claims, sourcePropertyId, data, 'url', { format = function( id ) return mw.ustring.gsub( mw.ustring.gsub( sourcePropertyClaim.mainsnak.datavalue.value, '$1', id ), ' ', '%%20' ) end; } ); expandSpecialsQualifiers( context, currentEntity, sourcePropertyId, data ); break; end end end end end end end -- do we have appropriate record in P1433 ? local claims = findClaimsByValue( currentEntity, 'P1343', sourceId ); if ( claims and #claims ~= 0 ) then for _, claim in pairs( claims ) do populateDataFromClaims( context, sourceId, claim.qualifiers, data ); end end end end local function toTextWithTip( text, tip ) return '<span title="' .. tip .. '" style="border-bottom: 1px dotted; cursor: help; white-space: nowrap">' .. text .. '</span>'; end local function getPlaceName( lang, placeId ) -- ГОСТ Р 7.0.12—2011 if ( lang == 'os' ) then if ( placeId == 'Q649' ) then return toTextWithTip('М.', 'Мæскуы'); end if ( placeId == 'Q656' ) then return toTextWithTip('Бетъ.', 'Бетъырбух'); end if ( placeId == 'Q891' ) then return toTextWithTip('Д. Новгород', 'Дæллаг Новгород'); end if ( placeId == 'Q908' ) then return toTextWithTip('Ростов-Д.', 'Ростов-Доныл'); end end return nil; end function p.preprocessPlaces( data, lang ) if ( not data.place ) then return; end; local newPlaces = {}; for index, place in pairs( data.place ) do if ( place.id ) then local newPlaceStr = getPlaceName(lang, place.id) if ( newPlaceStr ) then newPlaces[index] = newPlaceStr; else newPlaces[index] = place; end else newPlaces[index] = place; end end data.place = newPlaces; end function p.toWikibaseEntityIdSnak( propertyId, entityId ) assertNotNull('propertyId', propertyId) assertNotNull('entityId', entityId) if ( mw.ustring.sub( entityId, 1, 1 ) ~= 'Q' ) then error( 'Incorrect entity ID: «' .. entityId .. '»' ); end; local value = { ["entity-type"] = 'item', ["id"] = entityId, }; local snak = { snaktype = "value", property = propertyId, datatype = 'wikibase-item'}; snak["datavalue"] = { value = value, type = 'wikibase-entityid' }; return snak; end return p; </textarea><div id="mw-scribunto-console"></div><div class="templatesUsed"><div class="mw-templatesUsedExplanation"><p>Ацы фарсы ис хуызæг: </p></div><ul> <li><a href="/w/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Sources/utils/doc&action=edit&redlink=1" class="new" title="Модуль:Sources/utils/doc (фарс нæй)">Модуль:Sources/utils/doc</a> (<a href="/w/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Sources/utils/doc&action=edit" class="new" title="Модуль:Sources/utils/doc (фарс нæй)">ивын</a>) </li></ul></div><p id="mw-returnto">Фæстæмæ, <a href="/wiki/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Sources/utils" title="Модуль:Sources/utils">Модуль:Sources/utils</a>-мæ.</p> <!--esi <esi:include src="/esitest-fa8a495983347898/content" /> --><noscript><img src="https://login.wikimedia.org/wiki/Special:CentralAutoLogin/start?type=1x1" alt="" width="1" height="1" style="border: none; position: absolute;"></noscript> <div class="printfooter" data-nosnippet="">Ист æрцыд "<a dir="ltr" href="https://os.wikipedia.org/wiki/Модуль:Sources/utils">https://os.wikipedia.org/wiki/Модуль:Sources/utils</a>"-æй</div></div> <div id="catlinks" class="catlinks catlinks-allhidden" data-mw="interface"></div> </div> </main> </div> <div class="mw-footer-container"> <footer id="footer" class="mw-footer" > <ul id="footer-info"> </ul> <ul id="footer-places"> <li id="footer-places-privacy"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Privacy_policy/ru">Хибардзинады политикæ</a></li> <li id="footer-places-about"><a href="/wiki/%D0%92%D0%B8%D0%BA%D0%B8%D0%BF%D0%B5%D0%B4%D0%B8:%D0%90%D1%84%D1%8B%D1%81%D1%82">Википедийы тыххæй</a></li> <li id="footer-places-disclaimers"><a href="/wiki/%D0%92%D0%B8%D0%BA%D0%B8%D0%BF%D0%B5%D0%B4%D0%B8:%D0%91%C3%A6%D1%80%D0%BD">Бæрн</a></li> <li id="footer-places-wm-codeofconduct"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Universal_Code_of_Conduct">Кодекс поведения</a></li> <li id="footer-places-developers"><a href="https://developer.wikimedia.org">Саразджытæ</a></li> <li id="footer-places-statslink"><a href="https://stats.wikimedia.org/#/os.wikipedia.org">Статистикæ</a></li> <li id="footer-places-cookiestatement"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Cookie_statement">Кукийы тыххæй фидиуæн</a></li> <li id="footer-places-mobileview"><a href="//os.m.wikipedia.org/w/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Sources/utils&action=edit&mobileaction=toggle_view_mobile" class="noprint stopMobileRedirectToggle">Мобилон хуыз</a></li> </ul> <ul id="footer-icons" class="noprint"> <li id="footer-copyrightico"><a href="https://wikimediafoundation.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><img src="/static/images/footer/wikimedia-button.svg" width="84" height="29" alt="Wikimedia Foundation" loading="lazy"></a></li> <li id="footer-poweredbyico"><a href="https://www.mediawiki.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><img src="/w/resources/assets/poweredby_mediawiki.svg" alt="Powered by MediaWiki" width="88" height="31" loading="lazy"></a></li> </ul> </footer> </div> </div> </div> <div class="vector-settings" id="p-dock-bottom"> <ul></ul> </div><script>(RLQ=window.RLQ||[]).push(function(){mw.config.set({"wgHostname":"mw-web.codfw.main-6b8d669998-d2rgv","wgBackendResponseTime":174,"wgPageParseReport":{"limitreport":{"cputime":"0.004","walltime":"0.006","ppvisitednodes":{"value":17,"limit":1000000},"postexpandincludesize":{"value":752,"limit":2097152},"templateargumentsize":{"value":0,"limit":2097152},"expansiondepth":{"value":2,"limit":100},"expensivefunctioncount":{"value":0,"limit":500},"unstrip-depth":{"value":0,"limit":20},"unstrip-size":{"value":0,"limit":5000000},"entityaccesscount":{"value":0,"limit":400},"timingprofile":["100.00% 0.000 1 -total"]},"cachereport":{"origin":"mw-web.codfw.main-6b8d669998-d2rgv","timestamp":"20241128084322","ttl":2592000,"transientcontent":false}}});});</script> </body> </html>