CINXE.COM
phpBB-Image-upload-use-ImageMagick/imcger/imgupload/event/main_listener.php at main · IMC-GER/phpBB-Image-upload-use-ImageMagick · GitHub
<!DOCTYPE html> <html lang="en" data-color-mode="auto" data-light-theme="light" data-dark-theme="dark" data-a11y-animated-images="system" data-a11y-link-underlines="true" > <head> <meta charset="utf-8"> <link rel="dns-prefetch" href="https://github.githubassets.com"> <link rel="dns-prefetch" href="https://avatars.githubusercontent.com"> <link rel="dns-prefetch" href="https://github-cloud.s3.amazonaws.com"> <link rel="dns-prefetch" href="https://user-images.githubusercontent.com/"> <link rel="preconnect" href="https://github.githubassets.com" crossorigin> <link rel="preconnect" href="https://avatars.githubusercontent.com"> <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/light-3e154969b9f9.css" /><link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/dark-9c5b7a476542.css" /><link data-color-theme="dark_dimmed" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_dimmed-afda8eb0fb33.css" /><link data-color-theme="dark_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_high_contrast-2494e44ccdc5.css" /><link data-color-theme="dark_colorblind" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_colorblind-56fff47acadc.css" /><link data-color-theme="light_colorblind" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_colorblind-71cd4cc132ec.css" /><link data-color-theme="light_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_high_contrast-fd5499848985.css" /><link data-color-theme="light_tritanopia" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_tritanopia-31d17ba3e139.css" /><link data-color-theme="dark_tritanopia" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_tritanopia-68d6b2c79663.css" /> <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-primitives-4cf0d59ab51a.css" /> <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-af846850481e.css" /> <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/global-58c8ce4e66a8.css" /> <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/github-ee2a200f1d82.css" /> <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/repository-d031bcc14e1b.css" /> <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/code-a0610fd00b47.css" /> <script type="application/json" id="client-env">{"locale":"en","featureFlags":["copilot_new_references_ui","copilot_beta_features_opt_in","copilot_chat_static_thread_suggestions","copilot_conversational_ux_history_refs","copilot_implicit_context","copilot_smell_icebreaker_ux","experimentation_azure_variant_endpoint","failbot_handle_non_errors","geojson_azure_maps","ghost_pilot_confidence_truncation_25","ghost_pilot_confidence_truncation_40","hovercard_accessibility","issues_react_new_timeline","issues_react_avatar_refactor","issues_react_remove_placeholders","issues_react_blur_item_picker_on_close","marketing_pages_search_explore_provider","react_keyboard_shortcuts_dialog","remove_child_patch","report_hydro_web_vitals","sample_network_conn_type","site_metered_billing_update","lifecycle_label_name_updates"]}</script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/wp-runtime-bbf8566b1498.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_oddbird_popover-polyfill_dist_popover_js-aff936e590ed.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_arianotify-polyfill_ariaNotify-polyfill_js-node_modules_github_mi-3abb8f-3f7d38a7b47d.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/ui_packages_failbot_failbot_ts-93b6a0551aa9.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/environment-7b93e0f0c8ff.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_primer_behaviors_dist_esm_index_mjs-4aa4b0e95669.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_selector-observer_dist_index_esm_js-f690fd9ae3d5.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_relative-time-element_dist_index_js-6d3967acd51c.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_combobox-nav_dist_index_js-node_modules_github_g-emoji-element_di-6ce195-53781cbc550f.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_auto-complete-element_dist_index_js-node_modules_github_catalyst_-8e9f78-a74b4e0a8a6b.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_text-expander-element_dist_index_js-f5498b8d4e5d.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_filter-input-element_dist_index_js-node_modules_github_remote-inp-b5f1d7-492b5042c841.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_file-attachment-element_dist_index_js-node_modules_primer_view-co-381a4f-a11b2f0361af.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/github-elements-aa9238e3dc93.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/element-registry-477414219299.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_braintree_browser-detection_dist_browser-detection_js-node_modules_githu-bb80ec-634de60bacfa.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_lit-html_lit-html_js-ce7225a304c5.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_mini-throttle_dist_index_js-node_modules_morphdom_dist_morphdom-e-7c534c-f8a5485c982a.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_turbo_dist_turbo_es2017-esm_js-d2aff86c7695.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_remote-form_dist_index_js-node_modules_delegated-events_dist_inde-893f9f-6cf3320416b8.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_color-convert_index_js-0e07cc183eed.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_quote-selection_dist_index_js-node_modules_github_session-resume_-69cfcc-ceb1758d1876.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/ui_packages_updatable-content_updatable-content_ts-3f0e021c7215.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/app_assets_modules_github_behaviors_task-list_ts-app_assets_modules_github_sso_ts-ui_packages-900dde-24e9d16a679d.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/app_assets_modules_github_sticky-scroll-into-view_ts-7cbef09a422c.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/app_assets_modules_github_behaviors_ajax-error_ts-app_assets_modules_github_behaviors_include-d0d0a6-0e9fa537dc4f.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/app_assets_modules_github_behaviors_commenting_edit_ts-app_assets_modules_github_behaviors_ht-83c235-fb43816ab83c.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/behaviors-6f1334817a54.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_delegated-events_dist_index_js-node_modules_github_catalyst_lib_index_js-f6223d90c7ba.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/notifications-global-3366f6b6298e.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_mini-throttle_dist_index_js-node_modules_github_catalyst_lib_inde-dbbea9-9b97703a4e6a.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/code-menu-13971a40799a.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/primer-react-ce1a90e9cdd1.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/react-core-9952372f2df0.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/react-lib-7b7b5264f6c1.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/octicons-react-45c3a19dd792.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_tanstack_query-core_build_modern_queryClient_js-e40bb86d3e93.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_emotion_is-prop-valid_dist_emotion-is-prop-valid_esm_js-node_modules_emo-37e3d5-31653d7f2342.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_mini-throttle_dist_index_js-node_modules_stacktrace-parser_dist_s-e7dcdd-074052b7d26b.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_oddbird_popover-polyfill_dist_popover-fn_js-4896ddd4b7bb.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_dompurify_dist_purify_js-b73fdff77a4e.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_lodash-es__Stack_js-node_modules_lodash-es__Uint8Array_js-node_modules_l-4faaa6-13a0602a5edf.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_lodash-es__baseIsEqual_js-8929eb9718d5.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_react-reverse-portal_dist_web_index_js-node_modules_primer_live-region-e-18c5ad-d9666a921899.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/ui_packages_aria-live_aria-live_ts-ui_packages_promise-with-resolvers-polyfill_promise-with-r-014121-e1792bd5a31e.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/ui_packages_paths_index_ts-2cf6f74f0be6.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/ui_packages_ref-selector_RefSelector_tsx-a7dc2980b9fd.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/ui_packages_code-view-shared_utilities_web-worker_ts-ui_packages_code-view-shared_worker-jobs-cdcae1-ab3886bb685a.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/ui_packages_hydro-analytics_hydro-analytics_ts-ui_packages_verified-fetch_verified-fetch_ts-u-4672d1-a4a7fb8f3ca5.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/ui_packages_code-view-shared_hooks_use-canonical-object_ts-ui_packages_code-view-shared_hooks-80bb0a-a09815fdc6d7.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/ui_packages_document-metadata_document-metadata_ts-ui_packages_repos-file-tree-view_repos-fil-5db355-eee649c0cd94.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/app_assets_modules_github_blob-anchor_ts-ui_packages_code-nav_code-nav_ts-ui_packages_filter--8253c1-87c39cb5708f.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/react-code-view-8ecbef3c0eb1.js"></script> <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react.62690248c131a6fc074d.module.css" /> <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/react-code-view.6b587a69b593e23c3657.module.css" /> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/primer-react-ce1a90e9cdd1.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/react-core-9952372f2df0.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/react-lib-7b7b5264f6c1.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/octicons-react-45c3a19dd792.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_tanstack_query-core_build_modern_queryClient_js-e40bb86d3e93.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_emotion_is-prop-valid_dist_emotion-is-prop-valid_esm_js-node_modules_emo-37e3d5-31653d7f2342.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_mini-throttle_dist_index_js-node_modules_stacktrace-parser_dist_s-e7dcdd-074052b7d26b.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_oddbird_popover-polyfill_dist_popover-fn_js-4896ddd4b7bb.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/notifications-subscriptions-menu-e82b3182a2b0.js"></script> <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react.62690248c131a6fc074d.module.css" /> <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/notifications-subscriptions-menu.1bcff9205c241e99cff2.module.css" /> <title>phpBB-Image-upload-use-ImageMagick/imcger/imgupload/event/main_listener.php at main · IMC-GER/phpBB-Image-upload-use-ImageMagick · GitHub</title> <meta name="route-pattern" content="/:user_id/:repository/blob/*name(/*path)" data-turbo-transient> <meta name="route-controller" content="blob" data-turbo-transient> <meta name="route-action" content="show" data-turbo-transient> <meta name="current-catalog-service-hash" content="f3abb0cc802f3d7b95fc8762b94bdcb13bf39634c40c357301c4aa1d67a256fb"> <meta name="request-id" content="EBE0:26937F:6334F0:74A36C:6750F079" data-pjax-transient="true"/><meta name="html-safe-nonce" content="8edff21179bd14c33e75122d2242690f96692efe37da86866a7bceefbe5cc5de" data-pjax-transient="true"/><meta name="visitor-payload" content="eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJFQkUwOjI2OTM3Rjo2MzM0RjA6NzRBMzZDOjY3NTBGMDc5IiwidmlzaXRvcl9pZCI6IjQ3ODg5Nzk3NjE2ODI0NDQxIiwicmVnaW9uX2VkZ2UiOiJzb3V0aGVhc3Rhc2lhIiwicmVnaW9uX3JlbmRlciI6InNvdXRoZWFzdGFzaWEifQ==" data-pjax-transient="true"/><meta name="visitor-hmac" content="03f3ce64a9f648ded81e1ef1097cc71d3a208264cc4a12741103a11b0dbacedc" data-pjax-transient="true"/> <meta name="hovercard-subject-tag" content="repository:460911842" data-turbo-transient> <meta name="github-keyboard-shortcuts" content="repository,source-code,file-tree,copilot" data-turbo-transient="true" /> <meta name="selected-link" value="repo_source" data-turbo-transient> <link rel="assets" href="https://github.githubassets.com/"> <meta name="google-site-verification" content="Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I"> <meta name="octolytics-url" content="https://collector.github.com/github/collect" /> <meta name="analytics-location" content="/<user-name>/<repo-name>/blob/show" data-turbo-transient="true" /> <meta name="user-login" content=""> <meta name="viewport" content="width=device-width"> <meta name="description" content="This extension us the PHP imagick class to modify upload image for improved quality. - phpBB-Image-upload-use-ImageMagick/imcger/imgupload/event/main_listener.php at main · IMC-GER/phpBB-Image-upload-use-ImageMagick"> <link rel="search" type="application/opensearchdescription+xml" href="/opensearch.xml" title="GitHub"> <link rel="fluid-icon" href="https://github.com/fluidicon.png" title="GitHub"> <meta property="fb:app_id" content="1401488693436528"> <meta name="apple-itunes-app" content="app-id=1477376905, app-argument=https://github.com/IMC-GER/phpBB-Image-upload-use-ImageMagick/blob/main/imcger/imgupload/event/main_listener.php" /> <meta name="twitter:image" content="https://opengraph.githubassets.com/a0558412b4ada03eba4892b409b34c5e1802a321139facb251af31bc851e18e4/IMC-GER/phpBB-Image-upload-use-ImageMagick" /><meta name="twitter:site" content="@github" /><meta name="twitter:card" content="summary_large_image" /><meta name="twitter:title" content="phpBB-Image-upload-use-ImageMagick/imcger/imgupload/event/main_listener.php at main · IMC-GER/phpBB-Image-upload-use-ImageMagick" /><meta name="twitter:description" content="This extension us the PHP imagick class to modify upload image for improved quality. - IMC-GER/phpBB-Image-upload-use-ImageMagick" /> <meta property="og:image" content="https://opengraph.githubassets.com/a0558412b4ada03eba4892b409b34c5e1802a321139facb251af31bc851e18e4/IMC-GER/phpBB-Image-upload-use-ImageMagick" /><meta property="og:image:alt" content="This extension us the PHP imagick class to modify upload image for improved quality. - IMC-GER/phpBB-Image-upload-use-ImageMagick" /><meta property="og:image:width" content="1200" /><meta property="og:image:height" content="600" /><meta property="og:site_name" content="GitHub" /><meta property="og:type" content="object" /><meta property="og:title" content="phpBB-Image-upload-use-ImageMagick/imcger/imgupload/event/main_listener.php at main · IMC-GER/phpBB-Image-upload-use-ImageMagick" /><meta property="og:url" content="https://github.com/IMC-GER/phpBB-Image-upload-use-ImageMagick/blob/main/imcger/imgupload/event/main_listener.php" /><meta property="og:description" content="This extension us the PHP imagick class to modify upload image for improved quality. - IMC-GER/phpBB-Image-upload-use-ImageMagick" /> <meta name="hostname" content="github.com"> <meta name="expected-hostname" content="github.com"> <meta http-equiv="x-pjax-version" content="366e03d2ea93bf01d01330b9efeaba466b48ce8ebfe6b393045ea70c552c1783" data-turbo-track="reload"> <meta http-equiv="x-pjax-csp-version" content="ace39c3b6632770952207593607e6e0be0db363435a8b877b1f96abe6430f345" data-turbo-track="reload"> <meta http-equiv="x-pjax-css-version" content="9f4da01681928ee9b5aec9017228270929abd54f898385964d2a3a6099d593a3" data-turbo-track="reload"> <meta http-equiv="x-pjax-js-version" content="b8524b06014ef360537a18d6c7e59af8933cac130dd6b8e447353f7ba591f023" data-turbo-track="reload"> <meta name="turbo-cache-control" content="no-preview" data-turbo-transient=""> <meta name="turbo-cache-control" content="no-cache" data-turbo-transient> <meta data-hydrostats="publish"> <meta name="go-import" content="github.com/IMC-GER/phpBB-Image-upload-use-ImageMagick git https://github.com/IMC-GER/phpBB-Image-upload-use-ImageMagick.git"> <meta name="octolytics-dimension-user_id" content="88725484" /><meta name="octolytics-dimension-user_login" content="IMC-GER" /><meta name="octolytics-dimension-repository_id" content="460911842" /><meta name="octolytics-dimension-repository_nwo" content="IMC-GER/phpBB-Image-upload-use-ImageMagick" /><meta name="octolytics-dimension-repository_public" content="true" /><meta name="octolytics-dimension-repository_is_fork" content="false" /><meta name="octolytics-dimension-repository_network_root_id" content="460911842" /><meta name="octolytics-dimension-repository_network_root_nwo" content="IMC-GER/phpBB-Image-upload-use-ImageMagick" /> <meta name="turbo-body-classes" content="logged-out env-production page-responsive"> <meta name="browser-stats-url" content="https://api.github.com/_private/browser/stats"> <meta name="browser-errors-url" content="https://api.github.com/_private/browser/errors"> <link rel="mask-icon" href="https://github.githubassets.com/assets/pinned-octocat-093da3e6fa40.svg" color="#000000"> <link rel="alternate icon" class="js-site-favicon" type="image/png" href="https://github.githubassets.com/favicons/favicon.png"> <link rel="icon" class="js-site-favicon" type="image/svg+xml" href="https://github.githubassets.com/favicons/favicon.svg" data-base-href="https://github.githubassets.com/favicons/favicon"> <meta name="theme-color" content="#1e2327"> <meta name="color-scheme" content="light dark" /> <link rel="manifest" href="/manifest.json" crossOrigin="use-credentials"> </head> <body class="logged-out env-production page-responsive" style="word-wrap: break-word;"> <div data-turbo-body class="logged-out env-production page-responsive" style="word-wrap: break-word;"> <div class="position-relative header-wrapper js-header-wrapper "> <a href="#start-of-content" data-skip-target-assigned="false" class="px-2 py-4 color-bg-accent-emphasis color-fg-on-emphasis show-on-focus js-skip-to-content">Skip to content</a> <span data-view-component="true" class="progress-pjax-loader Progress position-fixed width-full"> <span style="width: 0%;" data-view-component="true" class="Progress-item progress-pjax-loader-bar left-0 top-0 color-bg-accent-emphasis"></span> </span> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/ui_packages_ui-commands_ui-commands_ts-4bc1636ff219.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/keyboard-shortcuts-dialog-8137640712fa.js"></script> <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react.62690248c131a6fc074d.module.css" /> <react-partial partial-name="keyboard-shortcuts-dialog" data-ssr="false" data-attempted-ssr="false" > <script type="application/json" data-target="react-partial.embeddedData">{"props":{"docsUrl":"https://docs.github.com/get-started/accessibility/keyboard-shortcuts"}}</script> <div data-target="react-partial.reactRoot"></div> </react-partial> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_remote-form_dist_index_js-node_modules_delegated-events_dist_inde-94fd67-9df03b4ed507.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/sessions-8fa3b694f335.js"></script> <header class="HeaderMktg header-logged-out js-details-container js-header Details f4 py-3" role="banner" data-is-top="true" data-color-mode=light data-light-theme=light data-dark-theme=dark> <h2 class="sr-only">Navigation Menu</h2> <button type="button" class="HeaderMktg-backdrop d-lg-none border-0 position-fixed top-0 left-0 width-full height-full js-details-target" aria-label="Toggle navigation"> <span class="d-none">Toggle navigation</span> </button> <div class="d-flex flex-column flex-lg-row flex-items-center px-3 px-md-4 px-lg-5 height-full position-relative z-1"> <div class="d-flex flex-justify-between flex-items-center width-full width-lg-auto"> <div class="flex-1"> <button aria-label="Toggle navigation" aria-expanded="false" type="button" data-view-component="true" class="js-details-target js-nav-padding-recalculate js-header-menu-toggle Button--link Button--medium Button d-lg-none color-fg-inherit p-1"> <span class="Button-content"> <span class="Button-label"><div class="HeaderMenu-toggle-bar rounded my-1"></div> <div class="HeaderMenu-toggle-bar rounded my-1"></div> <div class="HeaderMenu-toggle-bar rounded my-1"></div></span> </span> </button> </div> <a class="mr-lg-3 color-fg-inherit flex-order-2 js-prevent-focus-on-mobile-nav" href="/" aria-label="Homepage" data-analytics-event="{"category":"Marketing nav","action":"click to go to homepage","label":"ref_page:Marketing;ref_cta:Logomark;ref_loc:Header"}"> <svg height="32" aria-hidden="true" viewBox="0 0 24 24" version="1.1" width="32" data-view-component="true" class="octicon octicon-mark-github"> <path d="M12.5.75C6.146.75 1 5.896 1 12.25c0 5.089 3.292 9.387 7.863 10.91.575.101.79-.244.79-.546 0-.273-.014-1.178-.014-2.142-2.889.532-3.636-.704-3.866-1.35-.13-.331-.69-1.352-1.18-1.625-.402-.216-.977-.748-.014-.762.906-.014 1.553.834 1.769 1.179 1.035 1.74 2.688 1.25 3.349.948.1-.747.402-1.25.733-1.538-2.559-.287-5.232-1.279-5.232-5.678 0-1.25.445-2.285 1.178-3.09-.115-.288-.517-1.467.115-3.048 0 0 .963-.302 3.163 1.179.92-.259 1.897-.388 2.875-.388.977 0 1.955.13 2.875.388 2.2-1.495 3.162-1.179 3.162-1.179.633 1.581.23 2.76.115 3.048.733.805 1.179 1.825 1.179 3.09 0 4.413-2.688 5.39-5.247 5.678.417.36.776 1.05.776 2.128 0 1.538-.014 2.774-.014 3.162 0 .302.216.662.79.547C20.709 21.637 24 17.324 24 12.25 24 5.896 18.854.75 12.5.75Z"></path> </svg> </a> <div class="flex-1 flex-order-2 text-right"> <a href="/login?return_to=https%3A%2F%2Fgithub.com%2FIMC-GER%2FphpBB-Image-upload-use-ImageMagick%2Fblob%2Fmain%2Fimcger%2Fimgupload%2Fevent%2Fmain_listener.php" class="HeaderMenu-link HeaderMenu-button d-inline-flex d-lg-none flex-order-1 f5 no-underline border color-border-default rounded-2 px-2 py-1 color-fg-inherit js-prevent-focus-on-mobile-nav" data-hydro-click="{"event_type":"authentication.click","payload":{"location_in_page":"site header menu","repository_id":null,"auth_type":"SIGN_UP","originating_url":"https://github.com/IMC-GER/phpBB-Image-upload-use-ImageMagick/blob/main/imcger/imgupload/event/main_listener.php","user_id":null}}" data-hydro-click-hmac="5b5c822e9fa1cbfe544399126db2d18dc85c8439463a4e449b2844dfff1a410d" data-analytics-event="{"category":"Marketing nav","action":"click to Sign in","label":"ref_page:Marketing;ref_cta:Sign in;ref_loc:Header"}" > Sign in </a> </div> </div> <div class="HeaderMenu js-header-menu height-fit position-lg-relative d-lg-flex flex-column flex-auto top-0"> <div class="HeaderMenu-wrapper d-flex flex-column flex-self-start flex-lg-row flex-auto rounded rounded-lg-0"> <nav class="HeaderMenu-nav" aria-label="Global"> <ul class="d-lg-flex list-style-none"> <li class="HeaderMenu-item position-relative flex-wrap flex-justify-between flex-items-center d-block d-lg-flex flex-lg-nowrap flex-lg-items-center js-details-container js-header-menu-item"> <button type="button" class="HeaderMenu-link border-0 width-full width-lg-auto px-0 px-lg-2 py-lg-2 no-wrap d-flex flex-items-center flex-justify-between js-details-target" aria-expanded="false"> Product <svg opacity="0.5" aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-chevron-down HeaderMenu-icon ml-1"> <path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path> </svg> </button> <div class="HeaderMenu-dropdown dropdown-menu rounded m-0 p-0 pt-2 pt-lg-4 position-relative position-lg-absolute left-0 left-lg-n3 pb-2 pb-lg-4 d-lg-flex flex-wrap dropdown-menu-wide"> <div class="HeaderMenu-column px-lg-4 border-lg-right mb-4 mb-lg-0 pr-lg-7"> <div class="border-bottom pb-3 pb-lg-0 border-lg-bottom-0"> <ul class="list-style-none f5" > <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description pb-lg-3" data-analytics-event="{"location":"navbar","action":"github_copilot","context":"product","tag":"link","label":"github_copilot_link_product_navbar"}" href="https://github.com/features/copilot"> <svg aria-hidden="true" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-copilot color-fg-subtle mr-3"> <path d="M23.922 16.992c-.861 1.495-5.859 5.023-11.922 5.023-6.063 0-11.061-3.528-11.922-5.023A.641.641 0 0 1 0 16.736v-2.869a.841.841 0 0 1 .053-.22c.372-.935 1.347-2.292 2.605-2.656.167-.429.414-1.055.644-1.517a10.195 10.195 0 0 1-.052-1.086c0-1.331.282-2.499 1.132-3.368.397-.406.89-.717 1.474-.952 1.399-1.136 3.392-2.093 6.122-2.093 2.731 0 4.767.957 6.166 2.093.584.235 1.077.546 1.474.952.85.869 1.132 2.037 1.132 3.368 0 .368-.014.733-.052 1.086.23.462.477 1.088.644 1.517 1.258.364 2.233 1.721 2.605 2.656a.832.832 0 0 1 .053.22v2.869a.641.641 0 0 1-.078.256ZM12.172 11h-.344a4.323 4.323 0 0 1-.355.508C10.703 12.455 9.555 13 7.965 13c-1.725 0-2.989-.359-3.782-1.259a2.005 2.005 0 0 1-.085-.104L4 11.741v6.585c1.435.779 4.514 2.179 8 2.179 3.486 0 6.565-1.4 8-2.179v-6.585l-.098-.104s-.033.045-.085.104c-.793.9-2.057 1.259-3.782 1.259-1.59 0-2.738-.545-3.508-1.492a4.323 4.323 0 0 1-.355-.508h-.016.016Zm.641-2.935c.136 1.057.403 1.913.878 2.497.442.544 1.134.938 2.344.938 1.573 0 2.292-.337 2.657-.751.384-.435.558-1.15.558-2.361 0-1.14-.243-1.847-.705-2.319-.477-.488-1.319-.862-2.824-1.025-1.487-.161-2.192.138-2.533.529-.269.307-.437.808-.438 1.578v.021c0 .265.021.562.063.893Zm-1.626 0c.042-.331.063-.628.063-.894v-.02c-.001-.77-.169-1.271-.438-1.578-.341-.391-1.046-.69-2.533-.529-1.505.163-2.347.537-2.824 1.025-.462.472-.705 1.179-.705 2.319 0 1.211.175 1.926.558 2.361.365.414 1.084.751 2.657.751 1.21 0 1.902-.394 2.344-.938.475-.584.742-1.44.878-2.497Z"></path><path d="M14.5 14.25a1 1 0 0 1 1 1v2a1 1 0 0 1-2 0v-2a1 1 0 0 1 1-1Zm-5 0a1 1 0 0 1 1 1v2a1 1 0 0 1-2 0v-2a1 1 0 0 1 1-1Z"></path> </svg> <div> <div class="color-fg-default h4">GitHub Copilot</div> Write better code with AI </div> </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description pb-lg-3" data-analytics-event="{"location":"navbar","action":"security","context":"product","tag":"link","label":"security_link_product_navbar"}" href="https://github.com/features/security"> <svg aria-hidden="true" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-shield-check color-fg-subtle mr-3"> <path d="M16.53 9.78a.75.75 0 0 0-1.06-1.06L11 13.19l-1.97-1.97a.75.75 0 0 0-1.06 1.06l2.5 2.5a.75.75 0 0 0 1.06 0l5-5Z"></path><path d="m12.54.637 8.25 2.675A1.75 1.75 0 0 1 22 4.976V10c0 6.19-3.771 10.704-9.401 12.83a1.704 1.704 0 0 1-1.198 0C5.77 20.705 2 16.19 2 10V4.976c0-.758.489-1.43 1.21-1.664L11.46.637a1.748 1.748 0 0 1 1.08 0Zm-.617 1.426-8.25 2.676a.249.249 0 0 0-.173.237V10c0 5.46 3.28 9.483 8.43 11.426a.199.199 0 0 0 .14 0C17.22 19.483 20.5 15.461 20.5 10V4.976a.25.25 0 0 0-.173-.237l-8.25-2.676a.253.253 0 0 0-.154 0Z"></path> </svg> <div> <div class="color-fg-default h4">Security</div> Find and fix vulnerabilities </div> </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description pb-lg-3" data-analytics-event="{"location":"navbar","action":"actions","context":"product","tag":"link","label":"actions_link_product_navbar"}" href="https://github.com/features/actions"> <svg aria-hidden="true" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-workflow color-fg-subtle mr-3"> <path d="M1 3a2 2 0 0 1 2-2h6.5a2 2 0 0 1 2 2v6.5a2 2 0 0 1-2 2H7v4.063C7 16.355 7.644 17 8.438 17H12.5v-2.5a2 2 0 0 1 2-2H21a2 2 0 0 1 2 2V21a2 2 0 0 1-2 2h-6.5a2 2 0 0 1-2-2v-2.5H8.437A2.939 2.939 0 0 1 5.5 15.562V11.5H3a2 2 0 0 1-2-2Zm2-.5a.5.5 0 0 0-.5.5v6.5a.5.5 0 0 0 .5.5h6.5a.5.5 0 0 0 .5-.5V3a.5.5 0 0 0-.5-.5ZM14.5 14a.5.5 0 0 0-.5.5V21a.5.5 0 0 0 .5.5H21a.5.5 0 0 0 .5-.5v-6.5a.5.5 0 0 0-.5-.5Z"></path> </svg> <div> <div class="color-fg-default h4">Actions</div> Automate any workflow </div> </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description pb-lg-3" data-analytics-event="{"location":"navbar","action":"codespaces","context":"product","tag":"link","label":"codespaces_link_product_navbar"}" href="https://github.com/features/codespaces"> <svg aria-hidden="true" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-codespaces color-fg-subtle mr-3"> <path d="M3.5 3.75C3.5 2.784 4.284 2 5.25 2h13.5c.966 0 1.75.784 1.75 1.75v7.5A1.75 1.75 0 0 1 18.75 13H5.25a1.75 1.75 0 0 1-1.75-1.75Zm-2 12c0-.966.784-1.75 1.75-1.75h17.5c.966 0 1.75.784 1.75 1.75v4a1.75 1.75 0 0 1-1.75 1.75H3.25a1.75 1.75 0 0 1-1.75-1.75ZM5.25 3.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h13.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Zm-2 12a.25.25 0 0 0-.25.25v4c0 .138.112.25.25.25h17.5a.25.25 0 0 0 .25-.25v-4a.25.25 0 0 0-.25-.25Z"></path><path d="M10 17.75a.75.75 0 0 1 .75-.75h6.5a.75.75 0 0 1 0 1.5h-6.5a.75.75 0 0 1-.75-.75Zm-4 0a.75.75 0 0 1 .75-.75h.5a.75.75 0 0 1 0 1.5h-.5a.75.75 0 0 1-.75-.75Z"></path> </svg> <div> <div class="color-fg-default h4">Codespaces</div> Instant dev environments </div> </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description pb-lg-3" data-analytics-event="{"location":"navbar","action":"issues","context":"product","tag":"link","label":"issues_link_product_navbar"}" href="https://github.com/features/issues"> <svg aria-hidden="true" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-issue-opened color-fg-subtle mr-3"> <path d="M12 1c6.075 0 11 4.925 11 11s-4.925 11-11 11S1 18.075 1 12 5.925 1 12 1ZM2.5 12a9.5 9.5 0 0 0 9.5 9.5 9.5 9.5 0 0 0 9.5-9.5A9.5 9.5 0 0 0 12 2.5 9.5 9.5 0 0 0 2.5 12Zm9.5 2a2 2 0 1 1-.001-3.999A2 2 0 0 1 12 14Z"></path> </svg> <div> <div class="color-fg-default h4">Issues</div> Plan and track work </div> </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description pb-lg-3" data-analytics-event="{"location":"navbar","action":"code_review","context":"product","tag":"link","label":"code_review_link_product_navbar"}" href="https://github.com/features/code-review"> <svg aria-hidden="true" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-code-review color-fg-subtle mr-3"> <path d="M10.3 6.74a.75.75 0 0 1-.04 1.06l-2.908 2.7 2.908 2.7a.75.75 0 1 1-1.02 1.1l-3.5-3.25a.75.75 0 0 1 0-1.1l3.5-3.25a.75.75 0 0 1 1.06.04Zm3.44 1.06a.75.75 0 1 1 1.02-1.1l3.5 3.25a.75.75 0 0 1 0 1.1l-3.5 3.25a.75.75 0 1 1-1.02-1.1l2.908-2.7-2.908-2.7Z"></path><path d="M1.5 4.25c0-.966.784-1.75 1.75-1.75h17.5c.966 0 1.75.784 1.75 1.75v12.5a1.75 1.75 0 0 1-1.75 1.75h-9.69l-3.573 3.573A1.458 1.458 0 0 1 5 21.043V18.5H3.25a1.75 1.75 0 0 1-1.75-1.75ZM3.25 4a.25.25 0 0 0-.25.25v12.5c0 .138.112.25.25.25h2.5a.75.75 0 0 1 .75.75v3.19l3.72-3.72a.749.749 0 0 1 .53-.22h10a.25.25 0 0 0 .25-.25V4.25a.25.25 0 0 0-.25-.25Z"></path> </svg> <div> <div class="color-fg-default h4">Code Review</div> Manage code changes </div> </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description pb-lg-3" data-analytics-event="{"location":"navbar","action":"discussions","context":"product","tag":"link","label":"discussions_link_product_navbar"}" href="https://github.com/features/discussions"> <svg aria-hidden="true" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-comment-discussion color-fg-subtle mr-3"> <path d="M1.75 1h12.5c.966 0 1.75.784 1.75 1.75v9.5A1.75 1.75 0 0 1 14.25 14H8.061l-2.574 2.573A1.458 1.458 0 0 1 3 15.543V14H1.75A1.75 1.75 0 0 1 0 12.25v-9.5C0 1.784.784 1 1.75 1ZM1.5 2.75v9.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h6.5a.25.25 0 0 0 .25-.25v-9.5a.25.25 0 0 0-.25-.25H1.75a.25.25 0 0 0-.25.25Z"></path><path d="M22.5 8.75a.25.25 0 0 0-.25-.25h-3.5a.75.75 0 0 1 0-1.5h3.5c.966 0 1.75.784 1.75 1.75v9.5A1.75 1.75 0 0 1 22.25 20H21v1.543a1.457 1.457 0 0 1-2.487 1.03L15.939 20H10.75A1.75 1.75 0 0 1 9 18.25v-1.465a.75.75 0 0 1 1.5 0v1.465c0 .138.112.25.25.25h5.5a.75.75 0 0 1 .53.22l2.72 2.72v-2.19a.75.75 0 0 1 .75-.75h2a.25.25 0 0 0 .25-.25v-9.5Z"></path> </svg> <div> <div class="color-fg-default h4">Discussions</div> Collaborate outside of code </div> </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description" data-analytics-event="{"location":"navbar","action":"code_search","context":"product","tag":"link","label":"code_search_link_product_navbar"}" href="https://github.com/features/code-search"> <svg aria-hidden="true" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-code-square color-fg-subtle mr-3"> <path d="M10.3 8.24a.75.75 0 0 1-.04 1.06L7.352 12l2.908 2.7a.75.75 0 1 1-1.02 1.1l-3.5-3.25a.75.75 0 0 1 0-1.1l3.5-3.25a.75.75 0 0 1 1.06.04Zm3.44 1.06a.75.75 0 1 1 1.02-1.1l3.5 3.25a.75.75 0 0 1 0 1.1l-3.5 3.25a.75.75 0 1 1-1.02-1.1l2.908-2.7-2.908-2.7Z"></path><path d="M2 3.75C2 2.784 2.784 2 3.75 2h16.5c.966 0 1.75.784 1.75 1.75v16.5A1.75 1.75 0 0 1 20.25 22H3.75A1.75 1.75 0 0 1 2 20.25Zm1.75-.25a.25.25 0 0 0-.25.25v16.5c0 .138.112.25.25.25h16.5a.25.25 0 0 0 .25-.25V3.75a.25.25 0 0 0-.25-.25Z"></path> </svg> <div> <div class="color-fg-default h4">Code Search</div> Find more, search less </div> </a></li> </ul> </div> </div> <div class="HeaderMenu-column px-lg-4"> <div class="border-bottom pb-3 pb-lg-0 border-lg-bottom-0 border-bottom-0"> <span class="d-block h4 color-fg-default my-1" id="product-explore-heading">Explore</span> <ul class="list-style-none f5" aria-labelledby="product-explore-heading"> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{"location":"navbar","action":"all_features","context":"product","tag":"link","label":"all_features_link_product_navbar"}" href="https://github.com/features"> All features </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary Link--external" target="_blank" data-analytics-event="{"location":"navbar","action":"documentation","context":"product","tag":"link","label":"documentation_link_product_navbar"}" href="https://docs.github.com"> Documentation <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-link-external HeaderMenu-external-icon color-fg-subtle"> <path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path> </svg> </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary Link--external" target="_blank" data-analytics-event="{"location":"navbar","action":"github_skills","context":"product","tag":"link","label":"github_skills_link_product_navbar"}" href="https://skills.github.com"> GitHub Skills <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-link-external HeaderMenu-external-icon color-fg-subtle"> <path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path> </svg> </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary Link--external" target="_blank" data-analytics-event="{"location":"navbar","action":"blog","context":"product","tag":"link","label":"blog_link_product_navbar"}" href="https://github.blog"> Blog <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-link-external HeaderMenu-external-icon color-fg-subtle"> <path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path> </svg> </a></li> </ul> </div> </div> </div> </li> <li class="HeaderMenu-item position-relative flex-wrap flex-justify-between flex-items-center d-block d-lg-flex flex-lg-nowrap flex-lg-items-center js-details-container js-header-menu-item"> <button type="button" class="HeaderMenu-link border-0 width-full width-lg-auto px-0 px-lg-2 py-lg-2 no-wrap d-flex flex-items-center flex-justify-between js-details-target" aria-expanded="false"> Solutions <svg opacity="0.5" aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-chevron-down HeaderMenu-icon ml-1"> <path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path> </svg> </button> <div class="HeaderMenu-dropdown dropdown-menu rounded m-0 p-0 pt-2 pt-lg-4 position-relative position-lg-absolute left-0 left-lg-n3 d-lg-flex flex-wrap dropdown-menu-wide"> <div class="HeaderMenu-column px-lg-4 border-lg-right mb-4 mb-lg-0 pr-lg-7"> <div class="border-bottom pb-3 pb-lg-0 border-lg-bottom-0 pb-lg-3 mb-3 mb-lg-0"> <span class="d-block h4 color-fg-default my-1" id="solutions-by-company-size-heading">By company size</span> <ul class="list-style-none f5" aria-labelledby="solutions-by-company-size-heading"> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{"location":"navbar","action":"enterprises","context":"solutions","tag":"link","label":"enterprises_link_solutions_navbar"}" href="https://github.com/enterprise"> Enterprises </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{"location":"navbar","action":"small_and_medium_teams","context":"solutions","tag":"link","label":"small_and_medium_teams_link_solutions_navbar"}" href="https://github.com/team"> Small and medium teams </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{"location":"navbar","action":"startups","context":"solutions","tag":"link","label":"startups_link_solutions_navbar"}" href="https://github.com/enterprise/startups"> Startups </a></li> </ul> </div> <div class="border-bottom pb-3 pb-lg-0 border-lg-bottom-0"> <span class="d-block h4 color-fg-default my-1" id="solutions-by-use-case-heading">By use case</span> <ul class="list-style-none f5" aria-labelledby="solutions-by-use-case-heading"> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{"location":"navbar","action":"devsecops","context":"solutions","tag":"link","label":"devsecops_link_solutions_navbar"}" href="/solutions/use-case/devsecops"> DevSecOps </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{"location":"navbar","action":"devops","context":"solutions","tag":"link","label":"devops_link_solutions_navbar"}" href="/solutions/use-case/devops"> DevOps </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{"location":"navbar","action":"ci_cd","context":"solutions","tag":"link","label":"ci_cd_link_solutions_navbar"}" href="/solutions/use-case/ci-cd"> CI/CD </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{"location":"navbar","action":"view_all_use_cases","context":"solutions","tag":"link","label":"view_all_use_cases_link_solutions_navbar"}" href="/solutions/use-case"> View all use cases </a></li> </ul> </div> </div> <div class="HeaderMenu-column px-lg-4"> <div class="border-bottom pb-3 pb-lg-0 border-lg-bottom-0"> <span class="d-block h4 color-fg-default my-1" id="solutions-by-industry-heading">By industry</span> <ul class="list-style-none f5" aria-labelledby="solutions-by-industry-heading"> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{"location":"navbar","action":"healthcare","context":"solutions","tag":"link","label":"healthcare_link_solutions_navbar"}" href="/solutions/industry/healthcare"> Healthcare </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{"location":"navbar","action":"financial_services","context":"solutions","tag":"link","label":"financial_services_link_solutions_navbar"}" href="/solutions/industry/financial-services"> Financial services </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{"location":"navbar","action":"manufacturing","context":"solutions","tag":"link","label":"manufacturing_link_solutions_navbar"}" href="/solutions/industry/manufacturing"> Manufacturing </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{"location":"navbar","action":"government","context":"solutions","tag":"link","label":"government_link_solutions_navbar"}" href="/solutions/industry/government"> Government </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{"location":"navbar","action":"view_all_industries","context":"solutions","tag":"link","label":"view_all_industries_link_solutions_navbar"}" href="/solutions/industry"> View all industries </a></li> </ul> </div> </div> <div class="HeaderMenu-trailing-link rounded-bottom-2 flex-shrink-0 mt-lg-4 px-lg-4 py-4 py-lg-3 f5 text-semibold"> <a href="/solutions"> View all solutions <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-chevron-right HeaderMenu-trailing-link-icon"> <path d="M6.22 3.22a.75.75 0 0 1 1.06 0l4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L9.94 8 6.22 4.28a.75.75 0 0 1 0-1.06Z"></path> </svg> </a> </div> </div> </li> <li class="HeaderMenu-item position-relative flex-wrap flex-justify-between flex-items-center d-block d-lg-flex flex-lg-nowrap flex-lg-items-center js-details-container js-header-menu-item"> <button type="button" class="HeaderMenu-link border-0 width-full width-lg-auto px-0 px-lg-2 py-lg-2 no-wrap d-flex flex-items-center flex-justify-between js-details-target" aria-expanded="false"> Resources <svg opacity="0.5" aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-chevron-down HeaderMenu-icon ml-1"> <path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path> </svg> </button> <div class="HeaderMenu-dropdown dropdown-menu rounded m-0 p-0 pt-2 pt-lg-4 position-relative position-lg-absolute left-0 left-lg-n3 pb-2 pb-lg-4 d-lg-flex flex-wrap dropdown-menu-wide"> <div class="HeaderMenu-column px-lg-4 border-lg-right mb-4 mb-lg-0 pr-lg-7"> <div class="border-bottom pb-3 pb-lg-0 border-lg-bottom-0"> <span class="d-block h4 color-fg-default my-1" id="resources-topics-heading">Topics</span> <ul class="list-style-none f5" aria-labelledby="resources-topics-heading"> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{"location":"navbar","action":"ai","context":"resources","tag":"link","label":"ai_link_resources_navbar"}" href="/resources/articles/ai"> AI </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{"location":"navbar","action":"devops","context":"resources","tag":"link","label":"devops_link_resources_navbar"}" href="/resources/articles/devops"> DevOps </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{"location":"navbar","action":"security","context":"resources","tag":"link","label":"security_link_resources_navbar"}" href="/resources/articles/security"> Security </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{"location":"navbar","action":"software_development","context":"resources","tag":"link","label":"software_development_link_resources_navbar"}" href="/resources/articles/software-development"> Software Development </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{"location":"navbar","action":"view_all","context":"resources","tag":"link","label":"view_all_link_resources_navbar"}" href="/resources/articles"> View all </a></li> </ul> </div> </div> <div class="HeaderMenu-column px-lg-4"> <div class="border-bottom pb-3 pb-lg-0 border-lg-bottom-0 border-bottom-0"> <span class="d-block h4 color-fg-default my-1" id="resources-explore-heading">Explore</span> <ul class="list-style-none f5" aria-labelledby="resources-explore-heading"> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary Link--external" target="_blank" data-analytics-event="{"location":"navbar","action":"learning_pathways","context":"resources","tag":"link","label":"learning_pathways_link_resources_navbar"}" href="https://resources.github.com/learn/pathways"> Learning Pathways <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-link-external HeaderMenu-external-icon color-fg-subtle"> <path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path> </svg> </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary Link--external" target="_blank" data-analytics-event="{"location":"navbar","action":"white_papers_ebooks_webinars","context":"resources","tag":"link","label":"white_papers_ebooks_webinars_link_resources_navbar"}" href="https://resources.github.com"> White papers, Ebooks, Webinars <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-link-external HeaderMenu-external-icon color-fg-subtle"> <path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path> </svg> </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{"location":"navbar","action":"customer_stories","context":"resources","tag":"link","label":"customer_stories_link_resources_navbar"}" href="https://github.com/customer-stories"> Customer Stories </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary Link--external" target="_blank" data-analytics-event="{"location":"navbar","action":"partners","context":"resources","tag":"link","label":"partners_link_resources_navbar"}" href="https://partner.github.com"> Partners <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-link-external HeaderMenu-external-icon color-fg-subtle"> <path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path> </svg> </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{"location":"navbar","action":"executive_insights","context":"resources","tag":"link","label":"executive_insights_link_resources_navbar"}" href="https://github.com/solutions/executive-insights"> Executive Insights </a></li> </ul> </div> </div> </div> </li> <li class="HeaderMenu-item position-relative flex-wrap flex-justify-between flex-items-center d-block d-lg-flex flex-lg-nowrap flex-lg-items-center js-details-container js-header-menu-item"> <button type="button" class="HeaderMenu-link border-0 width-full width-lg-auto px-0 px-lg-2 py-lg-2 no-wrap d-flex flex-items-center flex-justify-between js-details-target" aria-expanded="false"> Open Source <svg opacity="0.5" aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-chevron-down HeaderMenu-icon ml-1"> <path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path> </svg> </button> <div class="HeaderMenu-dropdown dropdown-menu rounded m-0 p-0 pt-2 pt-lg-4 position-relative position-lg-absolute left-0 left-lg-n3 pb-2 pb-lg-4 px-lg-4"> <div class="HeaderMenu-column"> <div class="border-bottom pb-3 pb-lg-0 pb-lg-3 mb-3 mb-lg-0 mb-lg-3"> <ul class="list-style-none f5" > <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description" data-analytics-event="{"location":"navbar","action":"github_sponsors","context":"open_source","tag":"link","label":"github_sponsors_link_open_source_navbar"}" href="/sponsors"> <div> <div class="color-fg-default h4">GitHub Sponsors</div> Fund open source developers </div> </a></li> </ul> </div> <div class="border-bottom pb-3 pb-lg-0 pb-lg-3 mb-3 mb-lg-0 mb-lg-3"> <ul class="list-style-none f5" > <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description" data-analytics-event="{"location":"navbar","action":"the_readme_project","context":"open_source","tag":"link","label":"the_readme_project_link_open_source_navbar"}" href="https://github.com/readme"> <div> <div class="color-fg-default h4">The ReadME Project</div> GitHub community articles </div> </a></li> </ul> </div> <div class="border-bottom pb-3 pb-lg-0 border-bottom-0"> <span class="d-block h4 color-fg-default my-1" id="open-source-repositories-heading">Repositories</span> <ul class="list-style-none f5" aria-labelledby="open-source-repositories-heading"> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{"location":"navbar","action":"topics","context":"open_source","tag":"link","label":"topics_link_open_source_navbar"}" href="https://github.com/topics"> Topics </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{"location":"navbar","action":"trending","context":"open_source","tag":"link","label":"trending_link_open_source_navbar"}" href="https://github.com/trending"> Trending </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{"location":"navbar","action":"collections","context":"open_source","tag":"link","label":"collections_link_open_source_navbar"}" href="https://github.com/collections"> Collections </a></li> </ul> </div> </div> </div> </li> <li class="HeaderMenu-item position-relative flex-wrap flex-justify-between flex-items-center d-block d-lg-flex flex-lg-nowrap flex-lg-items-center js-details-container js-header-menu-item"> <button type="button" class="HeaderMenu-link border-0 width-full width-lg-auto px-0 px-lg-2 py-lg-2 no-wrap d-flex flex-items-center flex-justify-between js-details-target" aria-expanded="false"> Enterprise <svg opacity="0.5" aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-chevron-down HeaderMenu-icon ml-1"> <path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path> </svg> </button> <div class="HeaderMenu-dropdown dropdown-menu rounded m-0 p-0 pt-2 pt-lg-4 position-relative position-lg-absolute left-0 left-lg-n3 pb-2 pb-lg-4 px-lg-4"> <div class="HeaderMenu-column"> <div class="border-bottom pb-3 pb-lg-0 pb-lg-3 mb-3 mb-lg-0 mb-lg-3"> <ul class="list-style-none f5" > <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description" data-analytics-event="{"location":"navbar","action":"enterprise_platform","context":"enterprise","tag":"link","label":"enterprise_platform_link_enterprise_navbar"}" href="/enterprise"> <svg aria-hidden="true" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-stack color-fg-subtle mr-3"> <path d="M11.063 1.456a1.749 1.749 0 0 1 1.874 0l8.383 5.316a1.751 1.751 0 0 1 0 2.956l-8.383 5.316a1.749 1.749 0 0 1-1.874 0L2.68 9.728a1.751 1.751 0 0 1 0-2.956Zm1.071 1.267a.25.25 0 0 0-.268 0L3.483 8.039a.25.25 0 0 0 0 .422l8.383 5.316a.25.25 0 0 0 .268 0l8.383-5.316a.25.25 0 0 0 0-.422Z"></path><path d="M1.867 12.324a.75.75 0 0 1 1.035-.232l8.964 5.685a.25.25 0 0 0 .268 0l8.964-5.685a.75.75 0 0 1 .804 1.267l-8.965 5.685a1.749 1.749 0 0 1-1.874 0l-8.965-5.685a.75.75 0 0 1-.231-1.035Z"></path><path d="M1.867 16.324a.75.75 0 0 1 1.035-.232l8.964 5.685a.25.25 0 0 0 .268 0l8.964-5.685a.75.75 0 0 1 .804 1.267l-8.965 5.685a1.749 1.749 0 0 1-1.874 0l-8.965-5.685a.75.75 0 0 1-.231-1.035Z"></path> </svg> <div> <div class="color-fg-default h4">Enterprise platform</div> AI-powered developer platform </div> </a></li> </ul> </div> <div class="border-bottom pb-3 pb-lg-0 border-bottom-0"> <span class="d-block h4 color-fg-default my-1" id="enterprise-available-add-ons-heading">Available add-ons</span> <ul class="list-style-none f5" aria-labelledby="enterprise-available-add-ons-heading"> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description pb-lg-3" data-analytics-event="{"location":"navbar","action":"advanced_security","context":"enterprise","tag":"link","label":"advanced_security_link_enterprise_navbar"}" href="https://github.com/enterprise/advanced-security"> <svg aria-hidden="true" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-shield-check color-fg-subtle mr-3"> <path d="M16.53 9.78a.75.75 0 0 0-1.06-1.06L11 13.19l-1.97-1.97a.75.75 0 0 0-1.06 1.06l2.5 2.5a.75.75 0 0 0 1.06 0l5-5Z"></path><path d="m12.54.637 8.25 2.675A1.75 1.75 0 0 1 22 4.976V10c0 6.19-3.771 10.704-9.401 12.83a1.704 1.704 0 0 1-1.198 0C5.77 20.705 2 16.19 2 10V4.976c0-.758.489-1.43 1.21-1.664L11.46.637a1.748 1.748 0 0 1 1.08 0Zm-.617 1.426-8.25 2.676a.249.249 0 0 0-.173.237V10c0 5.46 3.28 9.483 8.43 11.426a.199.199 0 0 0 .14 0C17.22 19.483 20.5 15.461 20.5 10V4.976a.25.25 0 0 0-.173-.237l-8.25-2.676a.253.253 0 0 0-.154 0Z"></path> </svg> <div> <div class="color-fg-default h4">Advanced Security</div> Enterprise-grade security features </div> </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description pb-lg-3" data-analytics-event="{"location":"navbar","action":"github_copilot","context":"enterprise","tag":"link","label":"github_copilot_link_enterprise_navbar"}" href="/features/copilot#enterprise"> <svg aria-hidden="true" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-copilot color-fg-subtle mr-3"> <path d="M23.922 16.992c-.861 1.495-5.859 5.023-11.922 5.023-6.063 0-11.061-3.528-11.922-5.023A.641.641 0 0 1 0 16.736v-2.869a.841.841 0 0 1 .053-.22c.372-.935 1.347-2.292 2.605-2.656.167-.429.414-1.055.644-1.517a10.195 10.195 0 0 1-.052-1.086c0-1.331.282-2.499 1.132-3.368.397-.406.89-.717 1.474-.952 1.399-1.136 3.392-2.093 6.122-2.093 2.731 0 4.767.957 6.166 2.093.584.235 1.077.546 1.474.952.85.869 1.132 2.037 1.132 3.368 0 .368-.014.733-.052 1.086.23.462.477 1.088.644 1.517 1.258.364 2.233 1.721 2.605 2.656a.832.832 0 0 1 .053.22v2.869a.641.641 0 0 1-.078.256ZM12.172 11h-.344a4.323 4.323 0 0 1-.355.508C10.703 12.455 9.555 13 7.965 13c-1.725 0-2.989-.359-3.782-1.259a2.005 2.005 0 0 1-.085-.104L4 11.741v6.585c1.435.779 4.514 2.179 8 2.179 3.486 0 6.565-1.4 8-2.179v-6.585l-.098-.104s-.033.045-.085.104c-.793.9-2.057 1.259-3.782 1.259-1.59 0-2.738-.545-3.508-1.492a4.323 4.323 0 0 1-.355-.508h-.016.016Zm.641-2.935c.136 1.057.403 1.913.878 2.497.442.544 1.134.938 2.344.938 1.573 0 2.292-.337 2.657-.751.384-.435.558-1.15.558-2.361 0-1.14-.243-1.847-.705-2.319-.477-.488-1.319-.862-2.824-1.025-1.487-.161-2.192.138-2.533.529-.269.307-.437.808-.438 1.578v.021c0 .265.021.562.063.893Zm-1.626 0c.042-.331.063-.628.063-.894v-.02c-.001-.77-.169-1.271-.438-1.578-.341-.391-1.046-.69-2.533-.529-1.505.163-2.347.537-2.824 1.025-.462.472-.705 1.179-.705 2.319 0 1.211.175 1.926.558 2.361.365.414 1.084.751 2.657.751 1.21 0 1.902-.394 2.344-.938.475-.584.742-1.44.878-2.497Z"></path><path d="M14.5 14.25a1 1 0 0 1 1 1v2a1 1 0 0 1-2 0v-2a1 1 0 0 1 1-1Zm-5 0a1 1 0 0 1 1 1v2a1 1 0 0 1-2 0v-2a1 1 0 0 1 1-1Z"></path> </svg> <div> <div class="color-fg-default h4">GitHub Copilot</div> Enterprise-grade AI features </div> </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description" data-analytics-event="{"location":"navbar","action":"premium_support","context":"enterprise","tag":"link","label":"premium_support_link_enterprise_navbar"}" href="/premium-support"> <svg aria-hidden="true" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-comment-discussion color-fg-subtle mr-3"> <path d="M1.75 1h12.5c.966 0 1.75.784 1.75 1.75v9.5A1.75 1.75 0 0 1 14.25 14H8.061l-2.574 2.573A1.458 1.458 0 0 1 3 15.543V14H1.75A1.75 1.75 0 0 1 0 12.25v-9.5C0 1.784.784 1 1.75 1ZM1.5 2.75v9.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h6.5a.25.25 0 0 0 .25-.25v-9.5a.25.25 0 0 0-.25-.25H1.75a.25.25 0 0 0-.25.25Z"></path><path d="M22.5 8.75a.25.25 0 0 0-.25-.25h-3.5a.75.75 0 0 1 0-1.5h3.5c.966 0 1.75.784 1.75 1.75v9.5A1.75 1.75 0 0 1 22.25 20H21v1.543a1.457 1.457 0 0 1-2.487 1.03L15.939 20H10.75A1.75 1.75 0 0 1 9 18.25v-1.465a.75.75 0 0 1 1.5 0v1.465c0 .138.112.25.25.25h5.5a.75.75 0 0 1 .53.22l2.72 2.72v-2.19a.75.75 0 0 1 .75-.75h2a.25.25 0 0 0 .25-.25v-9.5Z"></path> </svg> <div> <div class="color-fg-default h4">Premium Support</div> Enterprise-grade 24/7 support </div> </a></li> </ul> </div> </div> </div> </li> <li class="HeaderMenu-item position-relative flex-wrap flex-justify-between flex-items-center d-block d-lg-flex flex-lg-nowrap flex-lg-items-center js-details-container js-header-menu-item"> <a class="HeaderMenu-link no-underline px-0 px-lg-2 py-3 py-lg-2 d-block d-lg-inline-block" data-analytics-event="{"location":"navbar","action":"pricing","context":"global","tag":"link","label":"pricing_link_global_navbar"}" href="https://github.com/pricing">Pricing</a> </li> </ul> </nav> <div class="d-flex flex-column flex-lg-row width-full flex-justify-end flex-lg-items-center text-center mt-3 mt-lg-0 text-lg-left ml-lg-3"> <qbsearch-input class="search-input" data-scope="repo:IMC-GER/phpBB-Image-upload-use-ImageMagick" data-custom-scopes-path="/search/custom_scopes" data-delete-custom-scopes-csrf="xOKtdk_qcGAvOWr_rxs-Vrior9Z56c54YIuG1jZYe4rfwbxxLP2JGT5ydTETiGfbLrAfACS-MNE7FrksD3TExQ" data-max-custom-scopes="10" data-header-redesign-enabled="false" data-initial-value="" data-blackbird-suggestions-path="/search/suggestions" data-jump-to-suggestions-path="/_graphql/GetSuggestedNavigationDestinations" data-current-repository="IMC-GER/phpBB-Image-upload-use-ImageMagick" data-current-org="" data-current-owner="IMC-GER" data-logged-in="false" data-copilot-chat-enabled="false" data-nl-search-enabled="false" data-retain-scroll-position="true"> <div class="search-input-container search-with-dialog position-relative d-flex flex-row flex-items-center mr-4 rounded" data-action="click:qbsearch-input#searchInputContainerClicked" > <button type="button" class="header-search-button placeholder input-button form-control d-flex flex-1 flex-self-stretch flex-items-center no-wrap width-full py-0 pl-2 pr-0 text-left border-0 box-shadow-none" data-target="qbsearch-input.inputButton" aria-label="Search or jump to…" aria-haspopup="dialog" placeholder="Search or jump to..." data-hotkey=s,/ autocapitalize="off" data-analytics-event="{"location":"navbar","action":"searchbar","context":"global","tag":"input","label":"searchbar_input_global_navbar"}" data-action="click:qbsearch-input#handleExpand" > <div class="mr-2 color-fg-muted"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-search"> <path d="M10.68 11.74a6 6 0 0 1-7.922-8.982 6 6 0 0 1 8.982 7.922l3.04 3.04a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215ZM11.5 7a4.499 4.499 0 1 0-8.997 0A4.499 4.499 0 0 0 11.5 7Z"></path> </svg> </div> <span class="flex-1" data-target="qbsearch-input.inputButtonText">Search or jump to...</span> <div class="d-flex" data-target="qbsearch-input.hotkeyIndicator"> <svg xmlns="http://www.w3.org/2000/svg" width="22" height="20" aria-hidden="true" class="mr-1"><path fill="none" stroke="#979A9C" opacity=".4" d="M3.5.5h12c1.7 0 3 1.3 3 3v13c0 1.7-1.3 3-3 3h-12c-1.7 0-3-1.3-3-3v-13c0-1.7 1.3-3 3-3z"></path><path fill="#979A9C" d="M11.8 6L8 15.1h-.9L10.8 6h1z"></path></svg> </div> </button> <input type="hidden" name="type" class="js-site-search-type-field"> <div class="Overlay--hidden " data-modal-dialog-overlay> <modal-dialog data-action="close:qbsearch-input#handleClose cancel:qbsearch-input#handleClose" data-target="qbsearch-input.searchSuggestionsDialog" role="dialog" id="search-suggestions-dialog" aria-modal="true" aria-labelledby="search-suggestions-dialog-header" data-view-component="true" class="Overlay Overlay--width-large Overlay--height-auto"> <h1 id="search-suggestions-dialog-header" class="sr-only">Search code, repositories, users, issues, pull requests...</h1> <div class="Overlay-body Overlay-body--paddingNone"> <div data-view-component="true"> <div class="search-suggestions position-fixed width-full color-shadow-large border color-fg-default color-bg-default overflow-hidden d-flex flex-column query-builder-container" style="border-radius: 12px;" data-target="qbsearch-input.queryBuilderContainer" hidden > <!-- '"` --><!-- </textarea></xmp> --></option></form><form id="query-builder-test-form" action="" accept-charset="UTF-8" method="get"> <query-builder data-target="qbsearch-input.queryBuilder" id="query-builder-query-builder-test" data-filter-key=":" data-view-component="true" class="QueryBuilder search-query-builder"> <div class="FormControl FormControl--fullWidth"> <label id="query-builder-test-label" for="query-builder-test" class="FormControl-label sr-only"> Search </label> <div class="QueryBuilder-StyledInput width-fit " data-target="query-builder.styledInput" > <span id="query-builder-test-leadingvisual-wrap" class="FormControl-input-leadingVisualWrap QueryBuilder-leadingVisualWrap"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-search FormControl-input-leadingVisual"> <path d="M10.68 11.74a6 6 0 0 1-7.922-8.982 6 6 0 0 1 8.982 7.922l3.04 3.04a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215ZM11.5 7a4.499 4.499 0 1 0-8.997 0A4.499 4.499 0 0 0 11.5 7Z"></path> </svg> </span> <div data-target="query-builder.styledInputContainer" class="QueryBuilder-StyledInputContainer"> <div aria-hidden="true" class="QueryBuilder-StyledInputContent" data-target="query-builder.styledInputContent" ></div> <div class="QueryBuilder-InputWrapper"> <div aria-hidden="true" class="QueryBuilder-Sizer" data-target="query-builder.sizer"></div> <input id="query-builder-test" name="query-builder-test" value="" autocomplete="off" type="text" role="combobox" spellcheck="false" aria-expanded="false" aria-describedby="validation-14c86bcc-5b88-40e5-8292-0b1860cc71c6" data-target="query-builder.input" data-action=" input:query-builder#inputChange blur:query-builder#inputBlur keydown:query-builder#inputKeydown focus:query-builder#inputFocus " data-view-component="true" class="FormControl-input QueryBuilder-Input FormControl-medium" /> </div> </div> <span class="sr-only" id="query-builder-test-clear">Clear</span> <button role="button" id="query-builder-test-clear-button" aria-labelledby="query-builder-test-clear query-builder-test-label" data-target="query-builder.clearButton" data-action=" click:query-builder#clear focus:query-builder#clearButtonFocus blur:query-builder#clearButtonBlur " variant="small" hidden="hidden" type="button" data-view-component="true" class="Button Button--iconOnly Button--invisible Button--medium mr-1 px-2 py-0 d-flex flex-items-center rounded-1 color-fg-muted"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x-circle-fill Button-visual"> <path d="M2.343 13.657A8 8 0 1 1 13.658 2.343 8 8 0 0 1 2.343 13.657ZM6.03 4.97a.751.751 0 0 0-1.042.018.751.751 0 0 0-.018 1.042L6.94 8 4.97 9.97a.749.749 0 0 0 .326 1.275.749.749 0 0 0 .734-.215L8 9.06l1.97 1.97a.749.749 0 0 0 1.275-.326.749.749 0 0 0-.215-.734L9.06 8l1.97-1.97a.749.749 0 0 0-.326-1.275.749.749 0 0 0-.734.215L8 6.94Z"></path> </svg> </button> </div> <template id="search-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-search"> <path d="M10.68 11.74a6 6 0 0 1-7.922-8.982 6 6 0 0 1 8.982 7.922l3.04 3.04a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215ZM11.5 7a4.499 4.499 0 1 0-8.997 0A4.499 4.499 0 0 0 11.5 7Z"></path> </svg> </template> <template id="code-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-code"> <path d="m11.28 3.22 4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L13.94 8l-3.72-3.72a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215Zm-6.56 0a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042L2.06 8l3.72 3.72a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L.47 8.53a.75.75 0 0 1 0-1.06Z"></path> </svg> </template> <template id="file-code-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-file-code"> <path d="M4 1.75C4 .784 4.784 0 5.75 0h5.586c.464 0 .909.184 1.237.513l2.914 2.914c.329.328.513.773.513 1.237v8.586A1.75 1.75 0 0 1 14.25 15h-9a.75.75 0 0 1 0-1.5h9a.25.25 0 0 0 .25-.25V6h-2.75A1.75 1.75 0 0 1 10 4.25V1.5H5.75a.25.25 0 0 0-.25.25v2.5a.75.75 0 0 1-1.5 0Zm1.72 4.97a.75.75 0 0 1 1.06 0l2 2a.75.75 0 0 1 0 1.06l-2 2a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734l1.47-1.47-1.47-1.47a.75.75 0 0 1 0-1.06ZM3.28 7.78 1.81 9.25l1.47 1.47a.751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018l-2-2a.75.75 0 0 1 0-1.06l2-2a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Zm8.22-6.218V4.25c0 .138.112.25.25.25h2.688l-.011-.013-2.914-2.914-.013-.011Z"></path> </svg> </template> <template id="history-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-history"> <path d="m.427 1.927 1.215 1.215a8.002 8.002 0 1 1-1.6 5.685.75.75 0 1 1 1.493-.154 6.5 6.5 0 1 0 1.18-4.458l1.358 1.358A.25.25 0 0 1 3.896 6H.25A.25.25 0 0 1 0 5.75V2.104a.25.25 0 0 1 .427-.177ZM7.75 4a.75.75 0 0 1 .75.75v2.992l2.028.812a.75.75 0 0 1-.557 1.392l-2.5-1A.751.751 0 0 1 7 8.25v-3.5A.75.75 0 0 1 7.75 4Z"></path> </svg> </template> <template id="repo-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-repo"> <path d="M2 2.5A2.5 2.5 0 0 1 4.5 0h8.75a.75.75 0 0 1 .75.75v12.5a.75.75 0 0 1-.75.75h-2.5a.75.75 0 0 1 0-1.5h1.75v-2h-8a1 1 0 0 0-.714 1.7.75.75 0 1 1-1.072 1.05A2.495 2.495 0 0 1 2 11.5Zm10.5-1h-8a1 1 0 0 0-1 1v6.708A2.486 2.486 0 0 1 4.5 9h8ZM5 12.25a.25.25 0 0 1 .25-.25h3.5a.25.25 0 0 1 .25.25v3.25a.25.25 0 0 1-.4.2l-1.45-1.087a.249.249 0 0 0-.3 0L5.4 15.7a.25.25 0 0 1-.4-.2Z"></path> </svg> </template> <template id="bookmark-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-bookmark"> <path d="M3 2.75C3 1.784 3.784 1 4.75 1h6.5c.966 0 1.75.784 1.75 1.75v11.5a.75.75 0 0 1-1.227.579L8 11.722l-3.773 3.107A.751.751 0 0 1 3 14.25Zm1.75-.25a.25.25 0 0 0-.25.25v9.91l3.023-2.489a.75.75 0 0 1 .954 0l3.023 2.49V2.75a.25.25 0 0 0-.25-.25Z"></path> </svg> </template> <template id="plus-circle-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-plus-circle"> <path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Zm7.25-3.25v2.5h2.5a.75.75 0 0 1 0 1.5h-2.5v2.5a.75.75 0 0 1-1.5 0v-2.5h-2.5a.75.75 0 0 1 0-1.5h2.5v-2.5a.75.75 0 0 1 1.5 0Z"></path> </svg> </template> <template id="circle-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-dot-fill"> <path d="M8 4a4 4 0 1 1 0 8 4 4 0 0 1 0-8Z"></path> </svg> </template> <template id="trash-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-trash"> <path d="M11 1.75V3h2.25a.75.75 0 0 1 0 1.5H2.75a.75.75 0 0 1 0-1.5H5V1.75C5 .784 5.784 0 6.75 0h2.5C10.216 0 11 .784 11 1.75ZM4.496 6.675l.66 6.6a.25.25 0 0 0 .249.225h5.19a.25.25 0 0 0 .249-.225l.66-6.6a.75.75 0 0 1 1.492.149l-.66 6.6A1.748 1.748 0 0 1 10.595 15h-5.19a1.75 1.75 0 0 1-1.741-1.575l-.66-6.6a.75.75 0 1 1 1.492-.15ZM6.5 1.75V3h3V1.75a.25.25 0 0 0-.25-.25h-2.5a.25.25 0 0 0-.25.25Z"></path> </svg> </template> <template id="team-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-people"> <path d="M2 5.5a3.5 3.5 0 1 1 5.898 2.549 5.508 5.508 0 0 1 3.034 4.084.75.75 0 1 1-1.482.235 4 4 0 0 0-7.9 0 .75.75 0 0 1-1.482-.236A5.507 5.507 0 0 1 3.102 8.05 3.493 3.493 0 0 1 2 5.5ZM11 4a3.001 3.001 0 0 1 2.22 5.018 5.01 5.01 0 0 1 2.56 3.012.749.749 0 0 1-.885.954.752.752 0 0 1-.549-.514 3.507 3.507 0 0 0-2.522-2.372.75.75 0 0 1-.574-.73v-.352a.75.75 0 0 1 .416-.672A1.5 1.5 0 0 0 11 5.5.75.75 0 0 1 11 4Zm-5.5-.5a2 2 0 1 0-.001 3.999A2 2 0 0 0 5.5 3.5Z"></path> </svg> </template> <template id="project-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-project"> <path d="M1.75 0h12.5C15.216 0 16 .784 16 1.75v12.5A1.75 1.75 0 0 1 14.25 16H1.75A1.75 1.75 0 0 1 0 14.25V1.75C0 .784.784 0 1.75 0ZM1.5 1.75v12.5c0 .138.112.25.25.25h12.5a.25.25 0 0 0 .25-.25V1.75a.25.25 0 0 0-.25-.25H1.75a.25.25 0 0 0-.25.25ZM11.75 3a.75.75 0 0 1 .75.75v7.5a.75.75 0 0 1-1.5 0v-7.5a.75.75 0 0 1 .75-.75Zm-8.25.75a.75.75 0 0 1 1.5 0v5.5a.75.75 0 0 1-1.5 0ZM8 3a.75.75 0 0 1 .75.75v3.5a.75.75 0 0 1-1.5 0v-3.5A.75.75 0 0 1 8 3Z"></path> </svg> </template> <template id="pencil-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-pencil"> <path d="M11.013 1.427a1.75 1.75 0 0 1 2.474 0l1.086 1.086a1.75 1.75 0 0 1 0 2.474l-8.61 8.61c-.21.21-.47.364-.756.445l-3.251.93a.75.75 0 0 1-.927-.928l.929-3.25c.081-.286.235-.547.445-.758l8.61-8.61Zm.176 4.823L9.75 4.81l-6.286 6.287a.253.253 0 0 0-.064.108l-.558 1.953 1.953-.558a.253.253 0 0 0 .108-.064Zm1.238-3.763a.25.25 0 0 0-.354 0L10.811 3.75l1.439 1.44 1.263-1.263a.25.25 0 0 0 0-.354Z"></path> </svg> </template> <template id="copilot-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-copilot"> <path d="M7.998 15.035c-4.562 0-7.873-2.914-7.998-3.749V9.338c.085-.628.677-1.686 1.588-2.065.013-.07.024-.143.036-.218.029-.183.06-.384.126-.612-.201-.508-.254-1.084-.254-1.656 0-.87.128-1.769.693-2.484.579-.733 1.494-1.124 2.724-1.261 1.206-.134 2.262.034 2.944.765.05.053.096.108.139.165.044-.057.094-.112.143-.165.682-.731 1.738-.899 2.944-.765 1.23.137 2.145.528 2.724 1.261.566.715.693 1.614.693 2.484 0 .572-.053 1.148-.254 1.656.066.228.098.429.126.612.012.076.024.148.037.218.924.385 1.522 1.471 1.591 2.095v1.872c0 .766-3.351 3.795-8.002 3.795Zm0-1.485c2.28 0 4.584-1.11 5.002-1.433V7.862l-.023-.116c-.49.21-1.075.291-1.727.291-1.146 0-2.059-.327-2.71-.991A3.222 3.222 0 0 1 8 6.303a3.24 3.24 0 0 1-.544.743c-.65.664-1.563.991-2.71.991-.652 0-1.236-.081-1.727-.291l-.023.116v4.255c.419.323 2.722 1.433 5.002 1.433ZM6.762 2.83c-.193-.206-.637-.413-1.682-.297-1.019.113-1.479.404-1.713.7-.247.312-.369.789-.369 1.554 0 .793.129 1.171.308 1.371.162.181.519.379 1.442.379.853 0 1.339-.235 1.638-.54.315-.322.527-.827.617-1.553.117-.935-.037-1.395-.241-1.614Zm4.155-.297c-1.044-.116-1.488.091-1.681.297-.204.219-.359.679-.242 1.614.091.726.303 1.231.618 1.553.299.305.784.54 1.638.54.922 0 1.28-.198 1.442-.379.179-.2.308-.578.308-1.371 0-.765-.123-1.242-.37-1.554-.233-.296-.693-.587-1.713-.7Z"></path><path d="M6.25 9.037a.75.75 0 0 1 .75.75v1.501a.75.75 0 0 1-1.5 0V9.787a.75.75 0 0 1 .75-.75Zm4.25.75v1.501a.75.75 0 0 1-1.5 0V9.787a.75.75 0 0 1 1.5 0Z"></path> </svg> </template> <template id="copilot-error-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-copilot-error"> <path d="M16 11.24c0 .112-.072.274-.21.467L13 9.688V7.862l-.023-.116c-.49.21-1.075.291-1.727.291-.198 0-.388-.009-.571-.029L6.833 5.226a4.01 4.01 0 0 0 .17-.782c.117-.935-.037-1.395-.241-1.614-.193-.206-.637-.413-1.682-.297-.683.076-1.115.231-1.395.415l-1.257-.91c.579-.564 1.413-.877 2.485-.996 1.206-.134 2.262.034 2.944.765.05.053.096.108.139.165.044-.057.094-.112.143-.165.682-.731 1.738-.899 2.944-.765 1.23.137 2.145.528 2.724 1.261.566.715.693 1.614.693 2.484 0 .572-.053 1.148-.254 1.656.066.228.098.429.126.612.012.076.024.148.037.218.924.385 1.522 1.471 1.591 2.095Zm-5.083-8.707c-1.044-.116-1.488.091-1.681.297-.204.219-.359.679-.242 1.614.091.726.303 1.231.618 1.553.299.305.784.54 1.638.54.922 0 1.28-.198 1.442-.379.179-.2.308-.578.308-1.371 0-.765-.123-1.242-.37-1.554-.233-.296-.693-.587-1.713-.7Zm2.511 11.074c-1.393.776-3.272 1.428-5.43 1.428-4.562 0-7.873-2.914-7.998-3.749V9.338c.085-.628.677-1.686 1.588-2.065.013-.07.024-.143.036-.218.029-.183.06-.384.126-.612-.18-.455-.241-.963-.252-1.475L.31 4.107A.747.747 0 0 1 0 3.509V3.49a.748.748 0 0 1 .625-.73c.156-.026.306.047.435.139l14.667 10.578a.592.592 0 0 1 .227.264.752.752 0 0 1 .046.249v.022a.75.75 0 0 1-1.19.596Zm-1.367-.991L5.635 7.964a5.128 5.128 0 0 1-.889.073c-.652 0-1.236-.081-1.727-.291l-.023.116v4.255c.419.323 2.722 1.433 5.002 1.433 1.539 0 3.089-.505 4.063-.934Z"></path> </svg> </template> <template id="workflow-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-workflow"> <path d="M0 1.75C0 .784.784 0 1.75 0h3.5C6.216 0 7 .784 7 1.75v3.5A1.75 1.75 0 0 1 5.25 7H4v4a1 1 0 0 0 1 1h4v-1.25C9 9.784 9.784 9 10.75 9h3.5c.966 0 1.75.784 1.75 1.75v3.5A1.75 1.75 0 0 1 14.25 16h-3.5A1.75 1.75 0 0 1 9 14.25v-.75H5A2.5 2.5 0 0 1 2.5 11V7h-.75A1.75 1.75 0 0 1 0 5.25Zm1.75-.25a.25.25 0 0 0-.25.25v3.5c0 .138.112.25.25.25h3.5a.25.25 0 0 0 .25-.25v-3.5a.25.25 0 0 0-.25-.25Zm9 9a.25.25 0 0 0-.25.25v3.5c0 .138.112.25.25.25h3.5a.25.25 0 0 0 .25-.25v-3.5a.25.25 0 0 0-.25-.25Z"></path> </svg> </template> <template id="book-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-book"> <path d="M0 1.75A.75.75 0 0 1 .75 1h4.253c1.227 0 2.317.59 3 1.501A3.743 3.743 0 0 1 11.006 1h4.245a.75.75 0 0 1 .75.75v10.5a.75.75 0 0 1-.75.75h-4.507a2.25 2.25 0 0 0-1.591.659l-.622.621a.75.75 0 0 1-1.06 0l-.622-.621A2.25 2.25 0 0 0 5.258 13H.75a.75.75 0 0 1-.75-.75Zm7.251 10.324.004-5.073-.002-2.253A2.25 2.25 0 0 0 5.003 2.5H1.5v9h3.757a3.75 3.75 0 0 1 1.994.574ZM8.755 4.75l-.004 7.322a3.752 3.752 0 0 1 1.992-.572H14.5v-9h-3.495a2.25 2.25 0 0 0-2.25 2.25Z"></path> </svg> </template> <template id="code-review-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-code-review"> <path d="M1.75 1h12.5c.966 0 1.75.784 1.75 1.75v8.5A1.75 1.75 0 0 1 14.25 13H8.061l-2.574 2.573A1.458 1.458 0 0 1 3 14.543V13H1.75A1.75 1.75 0 0 1 0 11.25v-8.5C0 1.784.784 1 1.75 1ZM1.5 2.75v8.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h6.5a.25.25 0 0 0 .25-.25v-8.5a.25.25 0 0 0-.25-.25H1.75a.25.25 0 0 0-.25.25Zm5.28 1.72a.75.75 0 0 1 0 1.06L5.31 7l1.47 1.47a.751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018l-2-2a.75.75 0 0 1 0-1.06l2-2a.75.75 0 0 1 1.06 0Zm2.44 0a.75.75 0 0 1 1.06 0l2 2a.75.75 0 0 1 0 1.06l-2 2a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L10.69 7 9.22 5.53a.75.75 0 0 1 0-1.06Z"></path> </svg> </template> <template id="codespaces-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-codespaces"> <path d="M0 11.25c0-.966.784-1.75 1.75-1.75h12.5c.966 0 1.75.784 1.75 1.75v3A1.75 1.75 0 0 1 14.25 16H1.75A1.75 1.75 0 0 1 0 14.25Zm2-9.5C2 .784 2.784 0 3.75 0h8.5C13.216 0 14 .784 14 1.75v5a1.75 1.75 0 0 1-1.75 1.75h-8.5A1.75 1.75 0 0 1 2 6.75Zm1.75-.25a.25.25 0 0 0-.25.25v5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-5a.25.25 0 0 0-.25-.25Zm-2 9.5a.25.25 0 0 0-.25.25v3c0 .138.112.25.25.25h12.5a.25.25 0 0 0 .25-.25v-3a.25.25 0 0 0-.25-.25Z"></path><path d="M7 12.75a.75.75 0 0 1 .75-.75h4.5a.75.75 0 0 1 0 1.5h-4.5a.75.75 0 0 1-.75-.75Zm-4 0a.75.75 0 0 1 .75-.75h.5a.75.75 0 0 1 0 1.5h-.5a.75.75 0 0 1-.75-.75Z"></path> </svg> </template> <template id="comment-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-comment"> <path d="M1 2.75C1 1.784 1.784 1 2.75 1h10.5c.966 0 1.75.784 1.75 1.75v7.5A1.75 1.75 0 0 1 13.25 12H9.06l-2.573 2.573A1.458 1.458 0 0 1 4 13.543V12H2.75A1.75 1.75 0 0 1 1 10.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h4.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path> </svg> </template> <template id="comment-discussion-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-comment-discussion"> <path d="M1.75 1h8.5c.966 0 1.75.784 1.75 1.75v5.5A1.75 1.75 0 0 1 10.25 10H7.061l-2.574 2.573A1.458 1.458 0 0 1 2 11.543V10h-.25A1.75 1.75 0 0 1 0 8.25v-5.5C0 1.784.784 1 1.75 1ZM1.5 2.75v5.5c0 .138.112.25.25.25h1a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h3.5a.25.25 0 0 0 .25-.25v-5.5a.25.25 0 0 0-.25-.25h-8.5a.25.25 0 0 0-.25.25Zm13 2a.25.25 0 0 0-.25-.25h-.5a.75.75 0 0 1 0-1.5h.5c.966 0 1.75.784 1.75 1.75v5.5A1.75 1.75 0 0 1 14.25 12H14v1.543a1.458 1.458 0 0 1-2.487 1.03L9.22 12.28a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215l2.22 2.22v-2.19a.75.75 0 0 1 .75-.75h1a.25.25 0 0 0 .25-.25Z"></path> </svg> </template> <template id="organization-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-organization"> <path d="M1.75 16A1.75 1.75 0 0 1 0 14.25V1.75C0 .784.784 0 1.75 0h8.5C11.216 0 12 .784 12 1.75v12.5c0 .085-.006.168-.018.25h2.268a.25.25 0 0 0 .25-.25V8.285a.25.25 0 0 0-.111-.208l-1.055-.703a.749.749 0 1 1 .832-1.248l1.055.703c.487.325.779.871.779 1.456v5.965A1.75 1.75 0 0 1 14.25 16h-3.5a.766.766 0 0 1-.197-.026c-.099.017-.2.026-.303.026h-3a.75.75 0 0 1-.75-.75V14h-1v1.25a.75.75 0 0 1-.75.75Zm-.25-1.75c0 .138.112.25.25.25H4v-1.25a.75.75 0 0 1 .75-.75h2.5a.75.75 0 0 1 .75.75v1.25h2.25a.25.25 0 0 0 .25-.25V1.75a.25.25 0 0 0-.25-.25h-8.5a.25.25 0 0 0-.25.25ZM3.75 6h.5a.75.75 0 0 1 0 1.5h-.5a.75.75 0 0 1 0-1.5ZM3 3.75A.75.75 0 0 1 3.75 3h.5a.75.75 0 0 1 0 1.5h-.5A.75.75 0 0 1 3 3.75Zm4 3A.75.75 0 0 1 7.75 6h.5a.75.75 0 0 1 0 1.5h-.5A.75.75 0 0 1 7 6.75ZM7.75 3h.5a.75.75 0 0 1 0 1.5h-.5a.75.75 0 0 1 0-1.5ZM3 9.75A.75.75 0 0 1 3.75 9h.5a.75.75 0 0 1 0 1.5h-.5A.75.75 0 0 1 3 9.75ZM7.75 9h.5a.75.75 0 0 1 0 1.5h-.5a.75.75 0 0 1 0-1.5Z"></path> </svg> </template> <template id="rocket-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-rocket"> <path d="M14.064 0h.186C15.216 0 16 .784 16 1.75v.186a8.752 8.752 0 0 1-2.564 6.186l-.458.459c-.314.314-.641.616-.979.904v3.207c0 .608-.315 1.172-.833 1.49l-2.774 1.707a.749.749 0 0 1-1.11-.418l-.954-3.102a1.214 1.214 0 0 1-.145-.125L3.754 9.816a1.218 1.218 0 0 1-.124-.145L.528 8.717a.749.749 0 0 1-.418-1.11l1.71-2.774A1.748 1.748 0 0 1 3.31 4h3.204c.288-.338.59-.665.904-.979l.459-.458A8.749 8.749 0 0 1 14.064 0ZM8.938 3.623h-.002l-.458.458c-.76.76-1.437 1.598-2.02 2.5l-1.5 2.317 2.143 2.143 2.317-1.5c.902-.583 1.74-1.26 2.499-2.02l.459-.458a7.25 7.25 0 0 0 2.123-5.127V1.75a.25.25 0 0 0-.25-.25h-.186a7.249 7.249 0 0 0-5.125 2.123ZM3.56 14.56c-.732.732-2.334 1.045-3.005 1.148a.234.234 0 0 1-.201-.064.234.234 0 0 1-.064-.201c.103-.671.416-2.273 1.15-3.003a1.502 1.502 0 1 1 2.12 2.12Zm6.94-3.935c-.088.06-.177.118-.266.175l-2.35 1.521.548 1.783 1.949-1.2a.25.25 0 0 0 .119-.213ZM3.678 8.116 5.2 5.766c.058-.09.117-.178.176-.266H3.309a.25.25 0 0 0-.213.119l-1.2 1.95ZM12 5a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path> </svg> </template> <template id="shield-check-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-shield-check"> <path d="m8.533.133 5.25 1.68A1.75 1.75 0 0 1 15 3.48V7c0 1.566-.32 3.182-1.303 4.682-.983 1.498-2.585 2.813-5.032 3.855a1.697 1.697 0 0 1-1.33 0c-2.447-1.042-4.049-2.357-5.032-3.855C1.32 10.182 1 8.566 1 7V3.48a1.75 1.75 0 0 1 1.217-1.667l5.25-1.68a1.748 1.748 0 0 1 1.066 0Zm-.61 1.429.001.001-5.25 1.68a.251.251 0 0 0-.174.237V7c0 1.36.275 2.666 1.057 3.859.784 1.194 2.121 2.342 4.366 3.298a.196.196 0 0 0 .154 0c2.245-.957 3.582-2.103 4.366-3.297C13.225 9.666 13.5 8.358 13.5 7V3.48a.25.25 0 0 0-.174-.238l-5.25-1.68a.25.25 0 0 0-.153 0ZM11.28 6.28l-3.5 3.5a.75.75 0 0 1-1.06 0l-1.5-1.5a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215l.97.97 2.97-2.97a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Z"></path> </svg> </template> <template id="heart-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-heart"> <path d="m8 14.25.345.666a.75.75 0 0 1-.69 0l-.008-.004-.018-.01a7.152 7.152 0 0 1-.31-.17 22.055 22.055 0 0 1-3.434-2.414C2.045 10.731 0 8.35 0 5.5 0 2.836 2.086 1 4.25 1 5.797 1 7.153 1.802 8 3.02 8.847 1.802 10.203 1 11.75 1 13.914 1 16 2.836 16 5.5c0 2.85-2.045 5.231-3.885 6.818a22.066 22.066 0 0 1-3.744 2.584l-.018.01-.006.003h-.002ZM4.25 2.5c-1.336 0-2.75 1.164-2.75 3 0 2.15 1.58 4.144 3.365 5.682A20.58 20.58 0 0 0 8 13.393a20.58 20.58 0 0 0 3.135-2.211C12.92 9.644 14.5 7.65 14.5 5.5c0-1.836-1.414-3-2.75-3-1.373 0-2.609.986-3.029 2.456a.749.749 0 0 1-1.442 0C6.859 3.486 5.623 2.5 4.25 2.5Z"></path> </svg> </template> <template id="server-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-server"> <path d="M1.75 1h12.5c.966 0 1.75.784 1.75 1.75v4c0 .372-.116.717-.314 1 .198.283.314.628.314 1v4a1.75 1.75 0 0 1-1.75 1.75H1.75A1.75 1.75 0 0 1 0 12.75v-4c0-.358.109-.707.314-1a1.739 1.739 0 0 1-.314-1v-4C0 1.784.784 1 1.75 1ZM1.5 2.75v4c0 .138.112.25.25.25h12.5a.25.25 0 0 0 .25-.25v-4a.25.25 0 0 0-.25-.25H1.75a.25.25 0 0 0-.25.25Zm.25 5.75a.25.25 0 0 0-.25.25v4c0 .138.112.25.25.25h12.5a.25.25 0 0 0 .25-.25v-4a.25.25 0 0 0-.25-.25ZM7 4.75A.75.75 0 0 1 7.75 4h4.5a.75.75 0 0 1 0 1.5h-4.5A.75.75 0 0 1 7 4.75ZM7.75 10h4.5a.75.75 0 0 1 0 1.5h-4.5a.75.75 0 0 1 0-1.5ZM3 4.75A.75.75 0 0 1 3.75 4h.5a.75.75 0 0 1 0 1.5h-.5A.75.75 0 0 1 3 4.75ZM3.75 10h.5a.75.75 0 0 1 0 1.5h-.5a.75.75 0 0 1 0-1.5Z"></path> </svg> </template> <template id="globe-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-globe"> <path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM5.78 8.75a9.64 9.64 0 0 0 1.363 4.177c.255.426.542.832.857 1.215.245-.296.551-.705.857-1.215A9.64 9.64 0 0 0 10.22 8.75Zm4.44-1.5a9.64 9.64 0 0 0-1.363-4.177c-.307-.51-.612-.919-.857-1.215a9.927 9.927 0 0 0-.857 1.215A9.64 9.64 0 0 0 5.78 7.25Zm-5.944 1.5H1.543a6.507 6.507 0 0 0 4.666 5.5c-.123-.181-.24-.365-.352-.552-.715-1.192-1.437-2.874-1.581-4.948Zm-2.733-1.5h2.733c.144-2.074.866-3.756 1.58-4.948.12-.197.237-.381.353-.552a6.507 6.507 0 0 0-4.666 5.5Zm10.181 1.5c-.144 2.074-.866 3.756-1.58 4.948-.12.197-.237.381-.353.552a6.507 6.507 0 0 0 4.666-5.5Zm2.733-1.5a6.507 6.507 0 0 0-4.666-5.5c.123.181.24.365.353.552.714 1.192 1.436 2.874 1.58 4.948Z"></path> </svg> </template> <template id="issue-opened-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-issue-opened"> <path d="M8 9.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path><path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Z"></path> </svg> </template> <template id="device-mobile-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-device-mobile"> <path d="M3.75 0h8.5C13.216 0 14 .784 14 1.75v12.5A1.75 1.75 0 0 1 12.25 16h-8.5A1.75 1.75 0 0 1 2 14.25V1.75C2 .784 2.784 0 3.75 0ZM3.5 1.75v12.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25V1.75a.25.25 0 0 0-.25-.25h-8.5a.25.25 0 0 0-.25.25ZM8 13a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z"></path> </svg> </template> <template id="package-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-package"> <path d="m8.878.392 5.25 3.045c.54.314.872.89.872 1.514v6.098a1.75 1.75 0 0 1-.872 1.514l-5.25 3.045a1.75 1.75 0 0 1-1.756 0l-5.25-3.045A1.75 1.75 0 0 1 1 11.049V4.951c0-.624.332-1.201.872-1.514L7.122.392a1.75 1.75 0 0 1 1.756 0ZM7.875 1.69l-4.63 2.685L8 7.133l4.755-2.758-4.63-2.685a.248.248 0 0 0-.25 0ZM2.5 5.677v5.372c0 .09.047.171.125.216l4.625 2.683V8.432Zm6.25 8.271 4.625-2.683a.25.25 0 0 0 .125-.216V5.677L8.75 8.432Z"></path> </svg> </template> <template id="credit-card-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-credit-card"> <path d="M10.75 9a.75.75 0 0 0 0 1.5h1.5a.75.75 0 0 0 0-1.5h-1.5Z"></path><path d="M0 3.75C0 2.784.784 2 1.75 2h12.5c.966 0 1.75.784 1.75 1.75v8.5A1.75 1.75 0 0 1 14.25 14H1.75A1.75 1.75 0 0 1 0 12.25ZM14.5 6.5h-13v5.75c0 .138.112.25.25.25h12.5a.25.25 0 0 0 .25-.25Zm0-2.75a.25.25 0 0 0-.25-.25H1.75a.25.25 0 0 0-.25.25V5h13Z"></path> </svg> </template> <template id="play-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-play"> <path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Zm4.879-2.773 4.264 2.559a.25.25 0 0 1 0 .428l-4.264 2.559A.25.25 0 0 1 6 10.559V5.442a.25.25 0 0 1 .379-.215Z"></path> </svg> </template> <template id="gift-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-gift"> <path d="M2 2.75A2.75 2.75 0 0 1 4.75 0c.983 0 1.873.42 2.57 1.232.268.318.497.668.68 1.042.183-.375.411-.725.68-1.044C9.376.42 10.266 0 11.25 0a2.75 2.75 0 0 1 2.45 4h.55c.966 0 1.75.784 1.75 1.75v2c0 .698-.409 1.301-1 1.582v4.918A1.75 1.75 0 0 1 13.25 16H2.75A1.75 1.75 0 0 1 1 14.25V9.332C.409 9.05 0 8.448 0 7.75v-2C0 4.784.784 4 1.75 4h.55c-.192-.375-.3-.8-.3-1.25ZM7.25 9.5H2.5v4.75c0 .138.112.25.25.25h4.5Zm1.5 0v5h4.5a.25.25 0 0 0 .25-.25V9.5Zm0-4V8h5.5a.25.25 0 0 0 .25-.25v-2a.25.25 0 0 0-.25-.25Zm-7 0a.25.25 0 0 0-.25.25v2c0 .138.112.25.25.25h5.5V5.5h-5.5Zm3-4a1.25 1.25 0 0 0 0 2.5h2.309c-.233-.818-.542-1.401-.878-1.793-.43-.502-.915-.707-1.431-.707ZM8.941 4h2.309a1.25 1.25 0 0 0 0-2.5c-.516 0-1 .205-1.43.707-.337.392-.646.975-.879 1.793Z"></path> </svg> </template> <template id="code-square-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-code-square"> <path d="M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v12.5A1.75 1.75 0 0 1 14.25 16H1.75A1.75 1.75 0 0 1 0 14.25Zm1.75-.25a.25.25 0 0 0-.25.25v12.5c0 .138.112.25.25.25h12.5a.25.25 0 0 0 .25-.25V1.75a.25.25 0 0 0-.25-.25Zm7.47 3.97a.75.75 0 0 1 1.06 0l2 2a.75.75 0 0 1 0 1.06l-2 2a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L10.69 8 9.22 6.53a.75.75 0 0 1 0-1.06ZM6.78 6.53 5.31 8l1.47 1.47a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215l-2-2a.75.75 0 0 1 0-1.06l2-2a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Z"></path> </svg> </template> <template id="device-desktop-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-device-desktop"> <path d="M14.25 1c.966 0 1.75.784 1.75 1.75v7.5A1.75 1.75 0 0 1 14.25 12h-3.727c.099 1.041.52 1.872 1.292 2.757A.752.752 0 0 1 11.25 16h-6.5a.75.75 0 0 1-.565-1.243c.772-.885 1.192-1.716 1.292-2.757H1.75A1.75 1.75 0 0 1 0 10.25v-7.5C0 1.784.784 1 1.75 1ZM1.75 2.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h12.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25ZM9.018 12H6.982a5.72 5.72 0 0 1-.765 2.5h3.566a5.72 5.72 0 0 1-.765-2.5Z"></path> </svg> </template> <div class="position-relative"> <ul role="listbox" class="ActionListWrap QueryBuilder-ListWrap" aria-label="Suggestions" data-action=" combobox-commit:query-builder#comboboxCommit mousedown:query-builder#resultsMousedown " data-target="query-builder.resultsList" data-persist-list=false id="query-builder-test-results" ></ul> </div> <div class="FormControl-inlineValidation" id="validation-14c86bcc-5b88-40e5-8292-0b1860cc71c6" hidden="hidden"> <span class="FormControl-inlineValidation--visual"> <svg aria-hidden="true" height="12" viewBox="0 0 12 12" version="1.1" width="12" data-view-component="true" class="octicon octicon-alert-fill"> <path d="M4.855.708c.5-.896 1.79-.896 2.29 0l4.675 8.351a1.312 1.312 0 0 1-1.146 1.954H1.33A1.313 1.313 0 0 1 .183 9.058ZM7 7V3H5v4Zm-1 3a1 1 0 1 0 0-2 1 1 0 0 0 0 2Z"></path> </svg> </span> <span></span> </div> </div> <div data-target="query-builder.screenReaderFeedback" aria-live="polite" aria-atomic="true" class="sr-only"></div> </query-builder></form> <div class="d-flex flex-row color-fg-muted px-3 text-small color-bg-default search-feedback-prompt"> <a target="_blank" href="https://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax" data-view-component="true" class="Link color-fg-accent text-normal ml-2"> Search syntax tips </a> <div class="d-flex flex-1"></div> </div> </div> </div> </div> </modal-dialog></div> </div> <div data-action="click:qbsearch-input#retract" class="dark-backdrop position-fixed" hidden data-target="qbsearch-input.darkBackdrop"></div> <div class="color-fg-default"> <dialog-helper> <dialog data-target="qbsearch-input.feedbackDialog" data-action="close:qbsearch-input#handleDialogClose cancel:qbsearch-input#handleDialogClose" id="feedback-dialog" aria-modal="true" aria-labelledby="feedback-dialog-title" aria-describedby="feedback-dialog-description" data-view-component="true" class="Overlay Overlay-whenNarrow Overlay--size-medium Overlay--motion-scaleFade Overlay--disableScroll"> <div data-view-component="true" class="Overlay-header"> <div class="Overlay-headerContentWrap"> <div class="Overlay-titleWrap"> <h1 class="Overlay-title " id="feedback-dialog-title"> Provide feedback </h1> </div> <div class="Overlay-actionWrap"> <button data-close-dialog-id="feedback-dialog" aria-label="Close" type="button" data-view-component="true" class="close-button Overlay-closeButton"><svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x"> <path d="M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z"></path> </svg></button> </div> </div> </div> <scrollable-region data-labelled-by="feedback-dialog-title"> <div data-view-component="true" class="Overlay-body"> <!-- '"` --><!-- </textarea></xmp> --></option></form><form id="code-search-feedback-form" data-turbo="false" action="/search/feedback" accept-charset="UTF-8" method="post"><input type="hidden" data-csrf="true" name="authenticity_token" value="OgkJU30dLDDYT4vD6N2jYUXea7pua5xmKKQ277xqLqfArqTeDHEJLeL54FLe9kJ87ltRBiQUVvuFaqeneuA4ZQ==" /> <p>We read every piece of feedback, and take your input very seriously.</p> <textarea name="feedback" class="form-control width-full mb-2" style="height: 120px" id="feedback"></textarea> <input name="include_email" id="include_email" aria-label="Include my email address so I can be contacted" class="form-control mr-2" type="checkbox"> <label for="include_email" style="font-weight: normal">Include my email address so I can be contacted</label> </form></div> </scrollable-region> <div data-view-component="true" class="Overlay-footer Overlay-footer--alignEnd"> <button data-close-dialog-id="feedback-dialog" type="button" data-view-component="true" class="btn"> Cancel </button> <button form="code-search-feedback-form" data-action="click:qbsearch-input#submitFeedback" type="submit" data-view-component="true" class="btn-primary btn"> Submit feedback </button> </div> </dialog></dialog-helper> <custom-scopes data-target="qbsearch-input.customScopesManager"> <dialog-helper> <dialog data-target="custom-scopes.customScopesModalDialog" data-action="close:qbsearch-input#handleDialogClose cancel:qbsearch-input#handleDialogClose" id="custom-scopes-dialog" aria-modal="true" aria-labelledby="custom-scopes-dialog-title" aria-describedby="custom-scopes-dialog-description" data-view-component="true" class="Overlay Overlay-whenNarrow Overlay--size-medium Overlay--motion-scaleFade Overlay--disableScroll"> <div data-view-component="true" class="Overlay-header Overlay-header--divided"> <div class="Overlay-headerContentWrap"> <div class="Overlay-titleWrap"> <h1 class="Overlay-title " id="custom-scopes-dialog-title"> Saved searches </h1> <h2 id="custom-scopes-dialog-description" class="Overlay-description">Use saved searches to filter your results more quickly</h2> </div> <div class="Overlay-actionWrap"> <button data-close-dialog-id="custom-scopes-dialog" aria-label="Close" type="button" data-view-component="true" class="close-button Overlay-closeButton"><svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x"> <path d="M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z"></path> </svg></button> </div> </div> </div> <scrollable-region data-labelled-by="custom-scopes-dialog-title"> <div data-view-component="true" class="Overlay-body"> <div data-target="custom-scopes.customScopesModalDialogFlash"></div> <div hidden class="create-custom-scope-form" data-target="custom-scopes.createCustomScopeForm"> <!-- '"` --><!-- </textarea></xmp> --></option></form><form id="custom-scopes-dialog-form" data-turbo="false" action="/search/custom_scopes" accept-charset="UTF-8" method="post"><input type="hidden" data-csrf="true" name="authenticity_token" value="vlESMxIF8/ki60fVgdBETuKCFFOAE/WxHXrBOcxoVRNaedhAuJkeXFHQuK8HMm8b8dc38JSDJrqWso326iZy9g==" /> <div data-target="custom-scopes.customScopesModalDialogFlash"></div> <input type="hidden" id="custom_scope_id" name="custom_scope_id" data-target="custom-scopes.customScopesIdField"> <div class="form-group"> <label for="custom_scope_name">Name</label> <auto-check src="/search/custom_scopes/check_name" required> <input type="text" name="custom_scope_name" id="custom_scope_name" data-target="custom-scopes.customScopesNameField" class="form-control" autocomplete="off" placeholder="github-ruby" required maxlength="50"> <input type="hidden" data-csrf="true" value="x/opzdd4woyjiYb/TgljYVgp08i0+p03Z52HA6C/3X7vj9ELdd6Mr2GFRIr5btwaU8IKb292IaasyeQdivdtuA==" /> </auto-check> </div> <div class="form-group"> <label for="custom_scope_query">Query</label> <input type="text" name="custom_scope_query" id="custom_scope_query" data-target="custom-scopes.customScopesQueryField" class="form-control" autocomplete="off" placeholder="(repo:mona/a OR repo:mona/b) AND lang:python" required maxlength="500"> </div> <p class="text-small color-fg-muted"> To see all available qualifiers, see our <a class="Link--inTextBlock" href="https://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax">documentation</a>. </p> </form> </div> <div data-target="custom-scopes.manageCustomScopesForm"> <div data-target="custom-scopes.list"></div> </div> </div> </scrollable-region> <div data-view-component="true" class="Overlay-footer Overlay-footer--alignEnd Overlay-footer--divided"> <button data-action="click:custom-scopes#customScopesCancel" type="button" data-view-component="true" class="btn"> Cancel </button> <button form="custom-scopes-dialog-form" data-action="click:custom-scopes#customScopesSubmit" data-target="custom-scopes.customScopesSubmitButton" type="submit" data-view-component="true" class="btn-primary btn"> Create saved search </button> </div> </dialog></dialog-helper> </custom-scopes> </div> </qbsearch-input> <div class="position-relative HeaderMenu-link-wrap d-lg-inline-block"> <a href="/login?return_to=https%3A%2F%2Fgithub.com%2FIMC-GER%2FphpBB-Image-upload-use-ImageMagick%2Fblob%2Fmain%2Fimcger%2Fimgupload%2Fevent%2Fmain_listener.php" class="HeaderMenu-link HeaderMenu-link--sign-in HeaderMenu-button flex-shrink-0 no-underline d-none d-lg-inline-flex border border-lg-0 rounded rounded-lg-0 px-2 py-1" style="margin-left: 12px;" data-hydro-click="{"event_type":"authentication.click","payload":{"location_in_page":"site header menu","repository_id":null,"auth_type":"SIGN_UP","originating_url":"https://github.com/IMC-GER/phpBB-Image-upload-use-ImageMagick/blob/main/imcger/imgupload/event/main_listener.php","user_id":null}}" data-hydro-click-hmac="5b5c822e9fa1cbfe544399126db2d18dc85c8439463a4e449b2844dfff1a410d" data-analytics-event="{"category":"Marketing nav","action":"click to go to homepage","label":"ref_page:Marketing;ref_cta:Sign in;ref_loc:Header"}" > Sign in </a> </div> <a href="/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fblob%2Fshow&source=header-repo&source_repo=IMC-GER%2FphpBB-Image-upload-use-ImageMagick" class="HeaderMenu-link HeaderMenu-link--sign-up HeaderMenu-button flex-shrink-0 d-flex d-lg-inline-flex no-underline border color-border-default rounded px-2 py-1" data-hydro-click="{"event_type":"authentication.click","payload":{"location_in_page":"site header menu","repository_id":null,"auth_type":"SIGN_UP","originating_url":"https://github.com/IMC-GER/phpBB-Image-upload-use-ImageMagick/blob/main/imcger/imgupload/event/main_listener.php","user_id":null}}" data-hydro-click-hmac="5b5c822e9fa1cbfe544399126db2d18dc85c8439463a4e449b2844dfff1a410d" data-analytics-event="{"category":"Sign up","action":"click to sign up for account","label":"ref_page:/<user-name>/<repo-name>/blob/show;ref_cta:Sign up;ref_loc:header logged out"}" > Sign up </a> <button type="button" class="sr-only js-header-menu-focus-trap d-block d-lg-none">Reseting focus</button> </div> </div> </div> </div> </header> <div hidden="hidden" data-view-component="true" class="js-stale-session-flash stale-session-flash flash flash-warn flash-full"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-alert"> <path d="M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path> </svg> <span class="js-stale-session-flash-signed-in" hidden>You signed in with another tab or window. <a class="Link--inTextBlock" href="">Reload</a> to refresh your session.</span> <span class="js-stale-session-flash-signed-out" hidden>You signed out in another tab or window. <a class="Link--inTextBlock" href="">Reload</a> to refresh your session.</span> <span class="js-stale-session-flash-switched" hidden>You switched accounts on another tab or window. <a class="Link--inTextBlock" href="">Reload</a> to refresh your session.</span> <button id="icon-button-7d17c7d0-0d59-4e90-b17f-ab74490ef866" aria-labelledby="tooltip-987dbf7f-439a-4be7-8d7c-9e40a4d958eb" type="button" data-view-component="true" class="Button Button--iconOnly Button--invisible Button--medium flash-close js-flash-close"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x Button-visual"> <path d="M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z"></path> </svg> </button><tool-tip id="tooltip-987dbf7f-439a-4be7-8d7c-9e40a4d958eb" for="icon-button-7d17c7d0-0d59-4e90-b17f-ab74490ef866" popover="manual" data-direction="s" data-type="label" data-view-component="true" class="sr-only position-absolute">Dismiss alert</tool-tip> </div> </div> <div id="start-of-content" class="show-on-focus"></div> <div id="js-flash-container" class="flash-container" data-turbo-replace> <template class="js-flash-template"> <div class="flash flash-full {{ className }}"> <div > <button autofocus class="flash-close js-flash-close" type="button" aria-label="Dismiss this message"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x"> <path d="M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z"></path> </svg> </button> <div aria-atomic="true" role="alert" class="js-flash-alert"> <div>{{ message }}</div> </div> </div> </div> </template> </div> <div class="application-main " data-commit-hovercards-enabled data-discussion-hovercards-enabled data-issue-and-pr-hovercards-enabled > <div itemscope itemtype="http://schema.org/SoftwareSourceCode" class=""> <main id="js-repo-pjax-container" > <div id="repository-container-header" class="pt-3 hide-full-screen" style="background-color: var(--page-header-bgColor, var(--color-page-header-bg));" data-turbo-replace> <div class="d-flex flex-nowrap flex-justify-end mb-3 px-3 px-lg-5" style="gap: 1rem;"> <div class="flex-auto min-width-0 width-fit"> <div class=" d-flex flex-wrap flex-items-center wb-break-word f3 text-normal"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-repo color-fg-muted mr-2"> <path d="M2 2.5A2.5 2.5 0 0 1 4.5 0h8.75a.75.75 0 0 1 .75.75v12.5a.75.75 0 0 1-.75.75h-2.5a.75.75 0 0 1 0-1.5h1.75v-2h-8a1 1 0 0 0-.714 1.7.75.75 0 1 1-1.072 1.05A2.495 2.495 0 0 1 2 11.5Zm10.5-1h-8a1 1 0 0 0-1 1v6.708A2.486 2.486 0 0 1 4.5 9h8ZM5 12.25a.25.25 0 0 1 .25-.25h3.5a.25.25 0 0 1 .25.25v3.25a.25.25 0 0 1-.4.2l-1.45-1.087a.249.249 0 0 0-.3 0L5.4 15.7a.25.25 0 0 1-.4-.2Z"></path> </svg> <span class="author flex-self-stretch" itemprop="author"> <a class="url fn" rel="author" data-hovercard-type="user" data-hovercard-url="/users/IMC-GER/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/IMC-GER"> IMC-GER </a> </span> <span class="mx-1 flex-self-stretch color-fg-muted">/</span> <strong itemprop="name" class="mr-2 flex-self-stretch"> <a data-pjax="#repo-content-pjax-container" data-turbo-frame="repo-content-turbo-frame" href="/IMC-GER/phpBB-Image-upload-use-ImageMagick">phpBB-Image-upload-use-ImageMagick</a> </strong> <span></span><span class="Label Label--secondary v-align-middle mr-1">Public</span> </div> </div> <div id="repository-details-container" class="flex-shrink-0" data-turbo-replace style="max-width: 70%;"> <ul class="pagehead-actions flex-shrink-0 d-none d-md-inline" style="padding: 2px 0;"> <li> <a href="/login?return_to=%2FIMC-GER%2FphpBB-Image-upload-use-ImageMagick" rel="nofollow" id="repository-details-watch-button" data-hydro-click="{"event_type":"authentication.click","payload":{"location_in_page":"notification subscription menu watch","repository_id":null,"auth_type":"LOG_IN","originating_url":"https://github.com/IMC-GER/phpBB-Image-upload-use-ImageMagick/blob/main/imcger/imgupload/event/main_listener.php","user_id":null}}" data-hydro-click-hmac="4e4175cba067ae864c3698c0b9878b77a48acee1d0606b8dad0045716b564678" aria-label="You must be signed in to change notification settings" data-view-component="true" class="btn-sm btn"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-bell mr-2"> <path d="M8 16a2 2 0 0 0 1.985-1.75c.017-.137-.097-.25-.235-.25h-3.5c-.138 0-.252.113-.235.25A2 2 0 0 0 8 16ZM3 5a5 5 0 0 1 10 0v2.947c0 .05.015.098.042.139l1.703 2.555A1.519 1.519 0 0 1 13.482 13H2.518a1.516 1.516 0 0 1-1.263-2.36l1.703-2.554A.255.255 0 0 0 3 7.947Zm5-3.5A3.5 3.5 0 0 0 4.5 5v2.947c0 .346-.102.683-.294.97l-1.703 2.556a.017.017 0 0 0-.003.01l.001.006c0 .002.002.004.004.006l.006.004.007.001h10.964l.007-.001.006-.004.004-.006.001-.007a.017.017 0 0 0-.003-.01l-1.703-2.554a1.745 1.745 0 0 1-.294-.97V5A3.5 3.5 0 0 0 8 1.5Z"></path> </svg>Notifications </a> <tool-tip id="tooltip-accb9c28-0558-4cae-81cd-cda56bec9bdf" for="repository-details-watch-button" popover="manual" data-direction="s" data-type="description" data-view-component="true" class="sr-only position-absolute">You must be signed in to change notification settings</tool-tip> </li> <li> <a icon="repo-forked" id="fork-button" href="/login?return_to=%2FIMC-GER%2FphpBB-Image-upload-use-ImageMagick" rel="nofollow" data-hydro-click="{"event_type":"authentication.click","payload":{"location_in_page":"repo details fork button","repository_id":460911842,"auth_type":"LOG_IN","originating_url":"https://github.com/IMC-GER/phpBB-Image-upload-use-ImageMagick/blob/main/imcger/imgupload/event/main_listener.php","user_id":null}}" data-hydro-click-hmac="3feaad3e0c52f7a474aa9b68a8c3fc28b469c72ef0353c277e6f47386d29461f" data-view-component="true" class="btn-sm btn"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-repo-forked mr-2"> <path d="M5 5.372v.878c0 .414.336.75.75.75h4.5a.75.75 0 0 0 .75-.75v-.878a2.25 2.25 0 1 1 1.5 0v.878a2.25 2.25 0 0 1-2.25 2.25h-1.5v2.128a2.251 2.251 0 1 1-1.5 0V8.5h-1.5A2.25 2.25 0 0 1 3.5 6.25v-.878a2.25 2.25 0 1 1 1.5 0ZM5 3.25a.75.75 0 1 0-1.5 0 .75.75 0 0 0 1.5 0Zm6.75.75a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5Zm-3 8.75a.75.75 0 1 0-1.5 0 .75.75 0 0 0 1.5 0Z"></path> </svg>Fork <span id="repo-network-counter" data-pjax-replace="true" data-turbo-replace="true" title="0" data-view-component="true" class="Counter">0</span> </a> </li> <li> <div data-view-component="true" class="BtnGroup d-flex"> <a href="/login?return_to=%2FIMC-GER%2FphpBB-Image-upload-use-ImageMagick" rel="nofollow" data-hydro-click="{"event_type":"authentication.click","payload":{"location_in_page":"star button","repository_id":460911842,"auth_type":"LOG_IN","originating_url":"https://github.com/IMC-GER/phpBB-Image-upload-use-ImageMagick/blob/main/imcger/imgupload/event/main_listener.php","user_id":null}}" data-hydro-click-hmac="34e4b4c446aed90ce7b5786018e74c6855c3053bdc5e527924018fbdf5b51ec4" aria-label="You must be signed in to star a repository" data-view-component="true" class="tooltipped tooltipped-sw btn-sm btn"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-star v-align-text-bottom d-inline-block mr-2"> <path d="M8 .25a.75.75 0 0 1 .673.418l1.882 3.815 4.21.612a.75.75 0 0 1 .416 1.279l-3.046 2.97.719 4.192a.751.751 0 0 1-1.088.791L8 12.347l-3.766 1.98a.75.75 0 0 1-1.088-.79l.72-4.194L.818 6.374a.75.75 0 0 1 .416-1.28l4.21-.611L7.327.668A.75.75 0 0 1 8 .25Zm0 2.445L6.615 5.5a.75.75 0 0 1-.564.41l-3.097.45 2.24 2.184a.75.75 0 0 1 .216.664l-.528 3.084 2.769-1.456a.75.75 0 0 1 .698 0l2.77 1.456-.53-3.084a.75.75 0 0 1 .216-.664l2.24-2.183-3.096-.45a.75.75 0 0 1-.564-.41L8 2.694Z"></path> </svg><span data-view-component="true" class="d-inline"> Star </span> <span id="repo-stars-counter-star" aria-label="1 user starred this repository" data-singular-suffix="user starred this repository" data-plural-suffix="users starred this repository" data-turbo-replace="true" title="1" data-view-component="true" class="Counter js-social-count">1</span> </a></div> </li> </ul> </div> </div> <div id="responsive-meta-container" data-turbo-replace> </div> <nav data-pjax="#js-repo-pjax-container" aria-label="Repository" data-view-component="true" class="js-repo-nav js-sidenav-container-pjax js-responsive-underlinenav overflow-hidden UnderlineNav px-3 px-md-4 px-lg-5"> <ul data-view-component="true" class="UnderlineNav-body list-style-none"> <li data-view-component="true" class="d-inline-flex"> <a id="code-tab" href="/IMC-GER/phpBB-Image-upload-use-ImageMagick" data-tab-item="i0code-tab" data-selected-links="repo_source repo_downloads repo_commits repo_releases repo_tags repo_branches repo_packages repo_deployments repo_attestations /IMC-GER/phpBB-Image-upload-use-ImageMagick" data-pjax="#repo-content-pjax-container" data-turbo-frame="repo-content-turbo-frame" data-hotkey="g c" data-analytics-event="{"category":"Underline navbar","action":"Click tab","label":"Code","target":"UNDERLINE_NAV.TAB"}" aria-current="page" data-view-component="true" class="UnderlineNav-item no-wrap js-responsive-underlinenav-item js-selected-navigation-item selected"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-code UnderlineNav-octicon d-none d-sm-inline"> <path d="m11.28 3.22 4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L13.94 8l-3.72-3.72a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215Zm-6.56 0a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042L2.06 8l3.72 3.72a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L.47 8.53a.75.75 0 0 1 0-1.06Z"></path> </svg> <span data-content="Code">Code</span> <span id="code-repo-tab-count" data-pjax-replace="" data-turbo-replace="" title="Not available" data-view-component="true" class="Counter"></span> </a></li> <li data-view-component="true" class="d-inline-flex"> <a id="issues-tab" href="/IMC-GER/phpBB-Image-upload-use-ImageMagick/issues" data-tab-item="i1issues-tab" data-selected-links="repo_issues repo_labels repo_milestones /IMC-GER/phpBB-Image-upload-use-ImageMagick/issues" data-pjax="#repo-content-pjax-container" data-turbo-frame="repo-content-turbo-frame" data-hotkey="g i" data-analytics-event="{"category":"Underline navbar","action":"Click tab","label":"Issues","target":"UNDERLINE_NAV.TAB"}" data-view-component="true" class="UnderlineNav-item no-wrap js-responsive-underlinenav-item js-selected-navigation-item"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-issue-opened UnderlineNav-octicon d-none d-sm-inline"> <path d="M8 9.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path><path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Z"></path> </svg> <span data-content="Issues">Issues</span> <span id="issues-repo-tab-count" data-pjax-replace="" data-turbo-replace="" title="0" hidden="hidden" data-view-component="true" class="Counter">0</span> </a></li> <li data-view-component="true" class="d-inline-flex"> <a id="pull-requests-tab" href="/IMC-GER/phpBB-Image-upload-use-ImageMagick/pulls" data-tab-item="i2pull-requests-tab" data-selected-links="repo_pulls checks /IMC-GER/phpBB-Image-upload-use-ImageMagick/pulls" data-pjax="#repo-content-pjax-container" data-turbo-frame="repo-content-turbo-frame" data-hotkey="g p" data-analytics-event="{"category":"Underline navbar","action":"Click tab","label":"Pull requests","target":"UNDERLINE_NAV.TAB"}" data-view-component="true" class="UnderlineNav-item no-wrap js-responsive-underlinenav-item js-selected-navigation-item"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-git-pull-request UnderlineNav-octicon d-none d-sm-inline"> <path d="M1.5 3.25a2.25 2.25 0 1 1 3 2.122v5.256a2.251 2.251 0 1 1-1.5 0V5.372A2.25 2.25 0 0 1 1.5 3.25Zm5.677-.177L9.573.677A.25.25 0 0 1 10 .854V2.5h1A2.5 2.5 0 0 1 13.5 5v5.628a2.251 2.251 0 1 1-1.5 0V5a1 1 0 0 0-1-1h-1v1.646a.25.25 0 0 1-.427.177L7.177 3.427a.25.25 0 0 1 0-.354ZM3.75 2.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm0 9.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm8.25.75a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0Z"></path> </svg> <span data-content="Pull requests">Pull requests</span> <span id="pull-requests-repo-tab-count" data-pjax-replace="" data-turbo-replace="" title="0" hidden="hidden" data-view-component="true" class="Counter">0</span> </a></li> <li data-view-component="true" class="d-inline-flex"> <a id="actions-tab" href="/IMC-GER/phpBB-Image-upload-use-ImageMagick/actions" data-tab-item="i3actions-tab" data-selected-links="repo_actions /IMC-GER/phpBB-Image-upload-use-ImageMagick/actions" data-pjax="#repo-content-pjax-container" data-turbo-frame="repo-content-turbo-frame" data-hotkey="g a" data-analytics-event="{"category":"Underline navbar","action":"Click tab","label":"Actions","target":"UNDERLINE_NAV.TAB"}" data-view-component="true" class="UnderlineNav-item no-wrap js-responsive-underlinenav-item js-selected-navigation-item"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-play UnderlineNav-octicon d-none d-sm-inline"> <path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Zm4.879-2.773 4.264 2.559a.25.25 0 0 1 0 .428l-4.264 2.559A.25.25 0 0 1 6 10.559V5.442a.25.25 0 0 1 .379-.215Z"></path> </svg> <span data-content="Actions">Actions</span> <span id="actions-repo-tab-count" data-pjax-replace="" data-turbo-replace="" title="Not available" data-view-component="true" class="Counter"></span> </a></li> <li data-view-component="true" class="d-inline-flex"> <a id="projects-tab" href="/IMC-GER/phpBB-Image-upload-use-ImageMagick/projects" data-tab-item="i4projects-tab" data-selected-links="repo_projects new_repo_project repo_project /IMC-GER/phpBB-Image-upload-use-ImageMagick/projects" data-pjax="#repo-content-pjax-container" data-turbo-frame="repo-content-turbo-frame" data-hotkey="g b" data-analytics-event="{"category":"Underline navbar","action":"Click tab","label":"Projects","target":"UNDERLINE_NAV.TAB"}" data-view-component="true" class="UnderlineNav-item no-wrap js-responsive-underlinenav-item js-selected-navigation-item"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-table UnderlineNav-octicon d-none d-sm-inline"> <path d="M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v12.5A1.75 1.75 0 0 1 14.25 16H1.75A1.75 1.75 0 0 1 0 14.25ZM6.5 6.5v8h7.75a.25.25 0 0 0 .25-.25V6.5Zm8-1.5V1.75a.25.25 0 0 0-.25-.25H6.5V5Zm-13 1.5v7.75c0 .138.112.25.25.25H5v-8ZM5 5V1.5H1.75a.25.25 0 0 0-.25.25V5Z"></path> </svg> <span data-content="Projects">Projects</span> <span id="projects-repo-tab-count" data-pjax-replace="" data-turbo-replace="" title="0" hidden="hidden" data-view-component="true" class="Counter">0</span> </a></li> <li data-view-component="true" class="d-inline-flex"> <a id="security-tab" href="/IMC-GER/phpBB-Image-upload-use-ImageMagick/security" data-tab-item="i5security-tab" data-selected-links="security overview alerts policy token_scanning code_scanning /IMC-GER/phpBB-Image-upload-use-ImageMagick/security" data-pjax="#repo-content-pjax-container" data-turbo-frame="repo-content-turbo-frame" data-hotkey="g s" data-analytics-event="{"category":"Underline navbar","action":"Click tab","label":"Security","target":"UNDERLINE_NAV.TAB"}" data-view-component="true" class="UnderlineNav-item no-wrap js-responsive-underlinenav-item js-selected-navigation-item"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-shield UnderlineNav-octicon d-none d-sm-inline"> <path d="M7.467.133a1.748 1.748 0 0 1 1.066 0l5.25 1.68A1.75 1.75 0 0 1 15 3.48V7c0 1.566-.32 3.182-1.303 4.682-.983 1.498-2.585 2.813-5.032 3.855a1.697 1.697 0 0 1-1.33 0c-2.447-1.042-4.049-2.357-5.032-3.855C1.32 10.182 1 8.566 1 7V3.48a1.75 1.75 0 0 1 1.217-1.667Zm.61 1.429a.25.25 0 0 0-.153 0l-5.25 1.68a.25.25 0 0 0-.174.238V7c0 1.358.275 2.666 1.057 3.86.784 1.194 2.121 2.34 4.366 3.297a.196.196 0 0 0 .154 0c2.245-.956 3.582-2.104 4.366-3.298C13.225 9.666 13.5 8.36 13.5 7V3.48a.251.251 0 0 0-.174-.237l-5.25-1.68ZM8.75 4.75v3a.75.75 0 0 1-1.5 0v-3a.75.75 0 0 1 1.5 0ZM9 10.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path> </svg> <span data-content="Security">Security</span> <include-fragment src="/IMC-GER/phpBB-Image-upload-use-ImageMagick/security/overall-count" accept="text/fragment+html"></include-fragment> </a></li> <li data-view-component="true" class="d-inline-flex"> <a id="insights-tab" href="/IMC-GER/phpBB-Image-upload-use-ImageMagick/pulse" data-tab-item="i6insights-tab" data-selected-links="repo_graphs repo_contributors dependency_graph dependabot_updates pulse people community /IMC-GER/phpBB-Image-upload-use-ImageMagick/pulse" data-pjax="#repo-content-pjax-container" data-turbo-frame="repo-content-turbo-frame" data-analytics-event="{"category":"Underline navbar","action":"Click tab","label":"Insights","target":"UNDERLINE_NAV.TAB"}" data-view-component="true" class="UnderlineNav-item no-wrap js-responsive-underlinenav-item js-selected-navigation-item"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-graph UnderlineNav-octicon d-none d-sm-inline"> <path d="M1.5 1.75V13.5h13.75a.75.75 0 0 1 0 1.5H.75a.75.75 0 0 1-.75-.75V1.75a.75.75 0 0 1 1.5 0Zm14.28 2.53-5.25 5.25a.75.75 0 0 1-1.06 0L7 7.06 4.28 9.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.25-3.25a.75.75 0 0 1 1.06 0L10 7.94l4.72-4.72a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Z"></path> </svg> <span data-content="Insights">Insights</span> <span id="insights-repo-tab-count" data-pjax-replace="" data-turbo-replace="" title="Not available" data-view-component="true" class="Counter"></span> </a></li> </ul> <div style="visibility:hidden;" data-view-component="true" class="UnderlineNav-actions js-responsive-underlinenav-overflow position-absolute pr-3 pr-md-4 pr-lg-5 right-0"> <action-menu data-select-variant="none" data-view-component="true"> <focus-group direction="vertical" mnemonics retain> <button id="action-menu-ce7153f7-9ab5-42ee-b710-cf54ba9c2a80-button" popovertarget="action-menu-ce7153f7-9ab5-42ee-b710-cf54ba9c2a80-overlay" aria-controls="action-menu-ce7153f7-9ab5-42ee-b710-cf54ba9c2a80-list" aria-haspopup="true" aria-labelledby="tooltip-7672197a-a882-4275-b3db-4b2b57befea2" type="button" data-view-component="true" class="Button Button--iconOnly Button--secondary Button--medium UnderlineNav-item"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-kebab-horizontal Button-visual"> <path d="M8 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3ZM1.5 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Zm13 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path> </svg> </button><tool-tip id="tooltip-7672197a-a882-4275-b3db-4b2b57befea2" for="action-menu-ce7153f7-9ab5-42ee-b710-cf54ba9c2a80-button" popover="manual" data-direction="s" data-type="label" data-view-component="true" class="sr-only position-absolute">Additional navigation options</tool-tip> <anchored-position id="action-menu-ce7153f7-9ab5-42ee-b710-cf54ba9c2a80-overlay" anchor="action-menu-ce7153f7-9ab5-42ee-b710-cf54ba9c2a80-button" align="start" side="outside-bottom" anchor-offset="normal" popover="auto" data-view-component="true"> <div data-view-component="true" class="Overlay Overlay--size-auto"> <div data-view-component="true" class="Overlay-body Overlay-body--paddingNone"> <action-list> <div data-view-component="true"> <ul aria-labelledby="action-menu-ce7153f7-9ab5-42ee-b710-cf54ba9c2a80-button" id="action-menu-ce7153f7-9ab5-42ee-b710-cf54ba9c2a80-list" role="menu" data-view-component="true" class="ActionListWrap--inset ActionListWrap"> <li hidden="hidden" data-menu-item="i0code-tab" data-targets="action-list.items" role="none" data-view-component="true" class="ActionListItem"> <a tabindex="-1" id="item-0aa8d793-343b-4977-910c-644db52c22ee" href="/IMC-GER/phpBB-Image-upload-use-ImageMagick" role="menuitem" data-view-component="true" class="ActionListContent ActionListContent--visual16"> <span class="ActionListItem-visual ActionListItem-visual--leading"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-code"> <path d="m11.28 3.22 4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L13.94 8l-3.72-3.72a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215Zm-6.56 0a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042L2.06 8l3.72 3.72a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L.47 8.53a.75.75 0 0 1 0-1.06Z"></path> </svg> </span> <span data-view-component="true" class="ActionListItem-label"> Code </span> </a> </li> <li hidden="hidden" data-menu-item="i1issues-tab" data-targets="action-list.items" role="none" data-view-component="true" class="ActionListItem"> <a tabindex="-1" id="item-34648585-7829-4204-8b61-8071746d0b05" href="/IMC-GER/phpBB-Image-upload-use-ImageMagick/issues" role="menuitem" data-view-component="true" class="ActionListContent ActionListContent--visual16"> <span class="ActionListItem-visual ActionListItem-visual--leading"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-issue-opened"> <path d="M8 9.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path><path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Z"></path> </svg> </span> <span data-view-component="true" class="ActionListItem-label"> Issues </span> </a> </li> <li hidden="hidden" data-menu-item="i2pull-requests-tab" data-targets="action-list.items" role="none" data-view-component="true" class="ActionListItem"> <a tabindex="-1" id="item-47d47c65-18cc-474f-b52b-6fabf1ba6a3a" href="/IMC-GER/phpBB-Image-upload-use-ImageMagick/pulls" role="menuitem" data-view-component="true" class="ActionListContent ActionListContent--visual16"> <span class="ActionListItem-visual ActionListItem-visual--leading"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-git-pull-request"> <path d="M1.5 3.25a2.25 2.25 0 1 1 3 2.122v5.256a2.251 2.251 0 1 1-1.5 0V5.372A2.25 2.25 0 0 1 1.5 3.25Zm5.677-.177L9.573.677A.25.25 0 0 1 10 .854V2.5h1A2.5 2.5 0 0 1 13.5 5v5.628a2.251 2.251 0 1 1-1.5 0V5a1 1 0 0 0-1-1h-1v1.646a.25.25 0 0 1-.427.177L7.177 3.427a.25.25 0 0 1 0-.354ZM3.75 2.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm0 9.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm8.25.75a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0Z"></path> </svg> </span> <span data-view-component="true" class="ActionListItem-label"> Pull requests </span> </a> </li> <li hidden="hidden" data-menu-item="i3actions-tab" data-targets="action-list.items" role="none" data-view-component="true" class="ActionListItem"> <a tabindex="-1" id="item-3387edc5-c2aa-471d-80df-a96e03e93d30" href="/IMC-GER/phpBB-Image-upload-use-ImageMagick/actions" role="menuitem" data-view-component="true" class="ActionListContent ActionListContent--visual16"> <span class="ActionListItem-visual ActionListItem-visual--leading"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-play"> <path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Zm4.879-2.773 4.264 2.559a.25.25 0 0 1 0 .428l-4.264 2.559A.25.25 0 0 1 6 10.559V5.442a.25.25 0 0 1 .379-.215Z"></path> </svg> </span> <span data-view-component="true" class="ActionListItem-label"> Actions </span> </a> </li> <li hidden="hidden" data-menu-item="i4projects-tab" data-targets="action-list.items" role="none" data-view-component="true" class="ActionListItem"> <a tabindex="-1" id="item-db03d959-e32b-42df-a335-1fdc7ed7f83b" href="/IMC-GER/phpBB-Image-upload-use-ImageMagick/projects" role="menuitem" data-view-component="true" class="ActionListContent ActionListContent--visual16"> <span class="ActionListItem-visual ActionListItem-visual--leading"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-table"> <path d="M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v12.5A1.75 1.75 0 0 1 14.25 16H1.75A1.75 1.75 0 0 1 0 14.25ZM6.5 6.5v8h7.75a.25.25 0 0 0 .25-.25V6.5Zm8-1.5V1.75a.25.25 0 0 0-.25-.25H6.5V5Zm-13 1.5v7.75c0 .138.112.25.25.25H5v-8ZM5 5V1.5H1.75a.25.25 0 0 0-.25.25V5Z"></path> </svg> </span> <span data-view-component="true" class="ActionListItem-label"> Projects </span> </a> </li> <li hidden="hidden" data-menu-item="i5security-tab" data-targets="action-list.items" role="none" data-view-component="true" class="ActionListItem"> <a tabindex="-1" id="item-60b8f577-faff-4ffb-8e48-1e0965999f1a" href="/IMC-GER/phpBB-Image-upload-use-ImageMagick/security" role="menuitem" data-view-component="true" class="ActionListContent ActionListContent--visual16"> <span class="ActionListItem-visual ActionListItem-visual--leading"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-shield"> <path d="M7.467.133a1.748 1.748 0 0 1 1.066 0l5.25 1.68A1.75 1.75 0 0 1 15 3.48V7c0 1.566-.32 3.182-1.303 4.682-.983 1.498-2.585 2.813-5.032 3.855a1.697 1.697 0 0 1-1.33 0c-2.447-1.042-4.049-2.357-5.032-3.855C1.32 10.182 1 8.566 1 7V3.48a1.75 1.75 0 0 1 1.217-1.667Zm.61 1.429a.25.25 0 0 0-.153 0l-5.25 1.68a.25.25 0 0 0-.174.238V7c0 1.358.275 2.666 1.057 3.86.784 1.194 2.121 2.34 4.366 3.297a.196.196 0 0 0 .154 0c2.245-.956 3.582-2.104 4.366-3.298C13.225 9.666 13.5 8.36 13.5 7V3.48a.251.251 0 0 0-.174-.237l-5.25-1.68ZM8.75 4.75v3a.75.75 0 0 1-1.5 0v-3a.75.75 0 0 1 1.5 0ZM9 10.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path> </svg> </span> <span data-view-component="true" class="ActionListItem-label"> Security </span> </a> </li> <li hidden="hidden" data-menu-item="i6insights-tab" data-targets="action-list.items" role="none" data-view-component="true" class="ActionListItem"> <a tabindex="-1" id="item-0f8d1905-0de9-4e53-ab3f-e134be25f4b2" href="/IMC-GER/phpBB-Image-upload-use-ImageMagick/pulse" role="menuitem" data-view-component="true" class="ActionListContent ActionListContent--visual16"> <span class="ActionListItem-visual ActionListItem-visual--leading"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-graph"> <path d="M1.5 1.75V13.5h13.75a.75.75 0 0 1 0 1.5H.75a.75.75 0 0 1-.75-.75V1.75a.75.75 0 0 1 1.5 0Zm14.28 2.53-5.25 5.25a.75.75 0 0 1-1.06 0L7 7.06 4.28 9.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.25-3.25a.75.75 0 0 1 1.06 0L10 7.94l4.72-4.72a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Z"></path> </svg> </span> <span data-view-component="true" class="ActionListItem-label"> Insights </span> </a> </li> </ul> </div></action-list> </div> </div></anchored-position> </focus-group> </action-menu></div> </nav> </div> <turbo-frame id="repo-content-turbo-frame" target="_top" data-turbo-action="advance" class=""> <div id="repo-content-pjax-container" class="repository-content " > <react-app app-name="react-code-view" initial-path="/IMC-GER/phpBB-Image-upload-use-ImageMagick/blob/main/imcger/imgupload/event/main_listener.php" style="display: block; min-height: calc(100vh - 64px);" data-attempted-ssr="true" data-ssr="true" data-lazy="false" data-alternate="false" > <script type="application/json" data-target="react-app.embeddedData">{"payload":{"allShortcutsEnabled":false,"fileTree":{"imcger/imgupload/event":{"items":[{"name":"main_listener.php","path":"imcger/imgupload/event/main_listener.php","contentType":"file"}],"totalCount":1},"imcger/imgupload":{"items":[{"name":"acp","path":"imcger/imgupload/acp","contentType":"directory"},{"name":"adm","path":"imcger/imgupload/adm","contentType":"directory"},{"name":"config","path":"imcger/imgupload/config","contentType":"directory"},{"name":"controller","path":"imcger/imgupload/controller","contentType":"directory"},{"name":"event","path":"imcger/imgupload/event","contentType":"directory"},{"name":"language","path":"imcger/imgupload/language","contentType":"directory"},{"name":"migrations","path":"imcger/imgupload/migrations","contentType":"directory"},{"name":"styles","path":"imcger/imgupload/styles","contentType":"directory"},{"name":"README.md","path":"imcger/imgupload/README.md","contentType":"file"},{"name":"composer.json","path":"imcger/imgupload/composer.json","contentType":"file"},{"name":"ext.php","path":"imcger/imgupload/ext.php","contentType":"file"},{"name":"license.txt","path":"imcger/imgupload/license.txt","contentType":"file"}],"totalCount":12},"imcger":{"items":[{"name":"imgupload","path":"imcger/imgupload","contentType":"directory"}],"totalCount":1},"":{"items":[{"name":"imcger","path":"imcger","contentType":"directory"},{"name":".editorconfig","path":".editorconfig","contentType":"file"},{"name":".gitattributes","path":".gitattributes","contentType":"file"},{"name":"LICENSE","path":"LICENSE","contentType":"file"},{"name":"README.md","path":"README.md","contentType":"file"},{"name":"imgupload.css","path":"imgupload.css","contentType":"file"},{"name":"imgupload_version.json","path":"imgupload_version.json","contentType":"file"}],"totalCount":7}},"fileTreeProcessingTime":30.905371000000002,"foldersToFetch":[],"repo":{"id":460911842,"defaultBranch":"main","name":"phpBB-Image-upload-use-ImageMagick","ownerLogin":"IMC-GER","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2022-02-18T15:48:17.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/88725484?v=4","public":true,"private":false,"isOrgOwned":false},"codeLineWrapEnabled":false,"symbolsExpanded":false,"treeExpanded":true,"refInfo":{"name":"main","listCacheKey":"v0:1721075906.0","canEdit":false,"refType":"branch","currentOid":"9f28f24e8582dfd3069d8990faa8cfdea3530daf"},"path":"imcger/imgupload/event/main_listener.php","currentUser":null,"blob":{"rawLines":["\u003c?php","/**"," * Image upload use ImageMagick"," * An extension for the phpBB Forum Software package."," *"," * @copyright (c) 2022, Thorsten Ahlers"," * @copyright (c) 2018, canonknipser, ImageMagick Thumbnailer, http://canonknipser.com"," * @license GNU General Public License, version 2 (GPL-2.0)"," *"," */","","namespace imcger\\imgupload\\event;","","use Symfony\\Component\\EventDispatcher\\EventSubscriberInterface;","","/**"," * Event listener"," */","class main_listener implements EventSubscriberInterface","{","\t/** @var \\phpbb\\config\\config */","\tprotected $config;","","\t/** @var \\phpbb\\language\\language */","\tprotected $language;","","\t/** @var \\FastImageSize\\FastImageSize */","\tprotected $imagesize;","","\t/** @var \\phpbb\\db\\driver\\driver_interface */","\tprotected $db;","","\t/** @var \\phpbb\\template\\template */","\tprotected $template;","","\t/** @var \\phpbb\\extension\\manager */","\tprotected $ext_manager;","","\t/** @var \\phpbb\\controller\\helper */","\tprotected $helper;","","\t/**","\t * Constructor for listener","\t *","\t * @param \\phpbb\\config\\config\t\t\t\t$config\t\tphpBB config","\t * @param \\phpbb\\language\\language\t\t\t$language\tphpBB language","\t * @param \\FastImageSize\\FastImageSize\t\t$imagesize\tFastImageSize object","\t * @param \\phpbb\\db\\driver\\driver_interface\t$db\t\t\tphpBB DataBase","\t * Qparam \\phpbb\\template\\template\t\t\t$template\tphpBB template","\t * @param \\phpbb\\extension\\manager\t\t\t$ext_manager","\t * @param \\phpbb\\controller\\helper\t\t\t$helper","\t *","\t * @access public","\t */","\tpublic function __construct","\t(","\t\t\\phpbb\\config\\config $config,","\t\t\\phpbb\\language\\language $language,","\t\t\\FastImageSize\\FastImageSize $imagesize,","\t\t\\phpbb\\db\\driver\\driver_interface $db,","\t\t\\phpbb\\template\\template $template,","\t\t\\phpbb\\extension\\manager $ext_manager,","\t\t\\phpbb\\controller\\helper $helper","\t)","\t{","\t\t$this-\u003econfig\t\t= $config;","\t\t$this-\u003elanguage\t\t= $language;","\t\t$this-\u003eimagesize\t= $imagesize;","\t\t$this-\u003edb\t\t\t= $db;","\t\t$this-\u003etemplate\t\t= $template;","\t\t$this-\u003eext_manager\t= $ext_manager;","\t\t$this-\u003ehelper\t\t= $helper;","\t}","","\tpublic static function getSubscribedEvents()","\t{","\t\treturn [","\t\t\t'core.page_header'\t\t\t\t\t\t\t =\u003e 'set_template_vars',","\t\t\t'core.ucp_display_module_before'\t\t\t =\u003e 'new_profil_avatar_text',","\t\t\t'core.thumbnail_create_before'\t\t\t\t =\u003e 'imcger_create_tumbnail',","\t\t\t'core.modify_uploaded_file'\t\t\t\t\t =\u003e 'imcger_modify_uploaded_file',","\t\t\t'core.avatar_driver_upload_move_file_before' =\u003e 'imcger_modify_uploaded_avatar',","\t\t\t'core.viewtopic_modify_post_row'\t\t\t =\u003e 'imcger_viewtopic_modify_post_row',","\t\t\t'core.posting_modify_template_vars'\t\t\t =\u003e 'imcger_posting_modify_template_vars',","\t\t];","\t}","","\t/**","\t * Add language file for avatar upload page","\t */","\tpublic function new_profil_avatar_text()","\t{","\t\tif ($this-\u003econfig['imcger_imgupload_avatar_resize'])","\t\t{","\t\t\t$this-\u003elanguage-\u003eadd_lang('ucp','imcger/imgupload');","\t\t}","\t}","","\t/**","\t * Set template vars","\t *","\t * @return null","\t * @access public","\t */","\tpublic function set_template_vars()","\t{","\t\t// Load language vars for buttons in post editor","\t\tif ($this-\u003econfig['img_create_thumbnail'])","\t\t{","\t\t\t$this-\u003elanguage-\u003eadd_lang('attachment','imcger/imgupload');","\t\t}","","\t\t$allowed_images = [];","\t\t$img_max_thumb_width = $this-\u003econfig['imcger_imgupload_img_max_thumb_width'];","","\t\t// Get extension from image groups","\t\t$sql_ary = 'SELECT e.extension","\t\t\t\t\t FROM ' . EXTENSIONS_TABLE . ' e","\t\t\t\t\t JOIN ' . EXTENSION_GROUPS_TABLE . ' g","\t\t\t\t\t WHERE e.group_id = g.group_id","\t\t\t\t\t AND g.cat_id = 1';","","\t\t$result_ext = $this-\u003edb-\u003esql_query($sql_ary);","","\t\t$ext_ary = $this-\u003edb-\u003esql_fetchrowset($result_ext);","","\t\t// Convert 2 dimensional array into simple array","\t\t$allowed_images = array_map(function ($n) {return $n['extension'];}, $ext_ary);","","\t\t$this-\u003edb-\u003esql_freeresult();","","\t\t$metadata_manager = $this-\u003eext_manager-\u003ecreate_extension_metadata_manager('imcger/imgupload');","","\t\t$this-\u003etemplate-\u003eassign_vars([","\t\t\t'IMGUPLOAD_TITLE'\t\t =\u003e $metadata_manager-\u003eget_metadata('display-name'),","\t\t\t'IUL_ALLOWED_IMAGES'\t =\u003e json_encode($allowed_images),","\t\t\t'IUL_IMG_SET_INLINE'\t =\u003e $this-\u003econfig['imcger_imgupload_image_inline'],","\t\t\t'IUL_IMG_MAX_THUMB_WIDTH' =\u003e $img_max_thumb_width ? $img_max_thumb_width . 'px' : false,","\t\t\t'IMGUPLOAD_TITLE' \t\t =\u003e $metadata_manager-\u003eget_metadata('display-name'),","\t\t\t'U_IUL_SAVE_IMAGE' \t =\u003e $this-\u003ehelper-\u003eroute('imcger_imgupload_ajax_controller', ['order' =\u003e 'save_image']),","\t\t\t'U_IUL_IMAGE_SIZE' \t =\u003e $this-\u003ehelper-\u003eroute('imcger_imgupload_ajax_controller', ['order' =\u003e 'image_size']),","\t\t]);","\t}","","\t/**","\t * Create a thumbnail using IMagick","\t *","\t * @param \\phpbb\\event\\data\t$event\tEvent object","\t */","\tpublic function imcger_create_tumbnail($event)","\t{","\t\t// create a new instance of ImageMagick and load current image","\t\t$thumbnail = new \\Imagick(realpath($event['source']));","","\t\t// rotate the image according it's orientation flag","\t\t$thumb = $this-\u003eimage_auto_rotate($thumbnail);","","\t\t// changed the image heigth and width when it rotate","\t\tif ($thumb['rotate'])","\t\t{","\t\t\t$new_width = $event['new_height'];","\t\t\t$new_height = $event['new_width'];","\t\t}","\t\telse","\t\t{","\t\t\t$new_width = $event['new_width'];","\t\t\t$new_height = $event['new_height'];","\t\t}","","\t\t// resize the Image","\t\t$thumbnail-\u003eresizeImage($new_width, $new_height, \\Imagick::FILTER_LANCZOS, 1);","","\t\t// set image format","\t\t$image_format = $this-\u003eset_image_format($thumbnail, $event['mimetype']);","","\t\t// compression quality is read from config, set in ACP","\t\t$this-\u003eset_image_compression($thumbnail, $this-\u003econfig['imcger_imgupload_tum_quality']);","","\t\t// strip EXIF data and image profile","\t\tif ($this-\u003econfig['imcger_imgupload_del_exif'] \u0026\u0026 ($image_format == 'JPEG' || $image_format == 'WEBP'))","\t\t{","\t\t\t$thumbnail-\u003estripImage();","\t\t}","","\t\t// store the image","\t\t$thumbnail_created = $thumbnail-\u003ewriteImage($event['destination']);","\t\t$thumbnail-\u003eclear();","","\t\t// if image format change to JPEG set mimetype to jpeg","\t\tif ($image_format == 'JPEG' \u0026\u0026 $event['mimetype'] != 'image/jpeg' \u0026\u0026 $thumbnail_created)","\t\t{","\t\t\t$event['mimetype'] = 'image/jpeg';","\t\t}","","\t\t// set return value","\t\t$event['thumbnail_created'] = $thumbnail_created;","\t}","","\t/**","\t * Modify upload image using IMagick","\t *","\t * @param \\phpbb\\event\\data\t$event\tEvent object","\t */","\tpublic function imcger_modify_uploaded_file($event)","\t{","\t\tif ($event['is_image'])","\t\t{","\t\t\t$write_image\t\t= false; // set to true wenn image attribute changed","\t\t\t$image_max_width\t= $this-\u003econfig['imcger_imgupload_max_width'];","\t\t\t$image_max_height\t= $this-\u003econfig['imcger_imgupload_max_height'];","\t\t\t$image_quality\t\t= $this-\u003econfig['imcger_imgupload_img_quality'];","\t\t\t$image_del_exif\t\t= $this-\u003econfig['img_strip_metadata'];","\t\t\t$image_max_filesize = $this-\u003econfig['imcger_imgupload_max_filesize'];","\t\t\t$filesize\t\t\t= $event['filedata']['filesize'];","","\t\t\t// get file path","\t\t\t$file_path = join('/', [trim($this-\u003econfig['upload_path'], '/'), trim($event['filedata']['physical_filename'], '/')]);","","\t\t\t// get image dimension and type","\t\t\t$size = $this-\u003eimagesize-\u003egetImageSize($file_path);","","\t\t\tif ($size === false)","\t\t\t{","\t\t\t\treturn false;","\t\t\t}","","\t\t\t// if image no jpeg or webp and image properties smaller then maximum values do nothing","\t\t\tif (!(($size['type'] == IMAGETYPE_JPEG || $size['type'] == IMAGETYPE_WEBP ) \u0026\u0026 $image_del_exif) \u0026\u0026","\t\t\t\t(!$image_max_width || $image_max_width \u003e= $size['width']) \u0026\u0026","\t\t\t\t(!$image_max_height || $image_max_height \u003e= $size['height']) \u0026\u0026","\t\t\t\t(!$image_max_filesize || $image_max_filesize \u003e= $filesize)","\t\t\t)","\t\t\t{","\t\t\t\treturn true;","\t\t\t}","","\t\t\t// create a new instance of ImageMagick and load current image","\t\t\t$image = new \\Imagick($file_path);","","\t\t\t// rotate the image according it's orientation flag","\t\t\t$img = $this-\u003eimage_auto_rotate($image);","","\t\t\t// resize the image","\t\t\t$write_image = $this-\u003eresize_image($image, $image_max_width, $image_max_height);","","\t\t\t// set image format","\t\t\t$image_format = $this-\u003eset_image_format($image, $event['filedata']['mimetype']);","","\t\t\t// when not resize don`t changed image quality when it less then quality set in ACP","\t\t\tif (($image_format == 'JPEG' || $image_format == 'WEBP') \u0026\u0026 ($write_image || $image_quality \u003c $image-\u003egetImageCompressionQuality()))","\t\t\t{","\t\t\t\t// set compression quality is read from config","\t\t\t\t$this-\u003eset_image_compression($image, $image_quality);","","\t\t\t\t$write_image = true;","\t\t\t}","","\t\t\tif ($image_format == 'PNG')","\t\t\t{","\t\t\t\t// set compression quality, second parameter isn't importent for PNG","\t\t\t\t$this-\u003eset_image_compression($image);","\t\t\t}","","\t\t\t// strip EXIF data and image profile","\t\t\tif ($image_del_exif \u0026\u0026 ($image_format == 'JPEG' || $image_format == 'WEBP'))","\t\t\t{","\t\t\t\t$image-\u003estripImage();","","\t\t\t\t$write_image = true;","\t\t\t}","","\t\t\t// shrink file size wenn greater then set in ACP","\t\t\tif ($image_max_filesize \u0026\u0026 $filesize \u003e $image_max_filesize)","\t\t\t{","\t\t\t\t// set compression quality is read from config","\t\t\t\t$this-\u003eset_image_compression($image, $image_quality);","","\t\t\t\t// set the max file size for the image","\t\t\t\t$filesize = $this-\u003eimage_auto_length($image, $image_max_filesize);","","\t\t\t\t$write_image = true;","\t\t\t}","","\t\t\t// store the image when attribute change","\t\t\tif ($write_image || $img['changed'])","\t\t\t{","\t\t\t\t$write = $image-\u003ewriteImage($file_path);","","\t\t\t\t// if image store set new filedata","\t\t\t\tif ($write)","\t\t\t\t{","\t\t\t\t\t// set return value new file size and filedata","\t\t\t\t\t$filedata_array = $event['filedata'];","","\t\t\t\t\t// set new file size","\t\t\t\t\t$filedata_array['filesize'] = $filesize ? $filesize : $image-\u003egetImageBlob();","","\t\t\t\t\t// if image format change to JPEG set filedata to JPEG","\t\t\t\t\tif ($image_format == 'JPEG' \u0026\u0026 $event['filedata']['mimetype'] != 'image/jpeg')","\t\t\t\t\t{","\t\t\t\t\t\t$filedata_array['mimetype'] = 'image/jpeg';","\t\t\t\t\t\t$filedata_array['extension'] = 'jpg';","\t\t\t\t\t\t$filedata_array['real_filename'] .= '.jpg';","\t\t\t\t\t}","","\t\t\t\t\t$event['filedata'] = $filedata_array;","\t\t\t\t}","","\t\t\t\t$image-\u003eclear();","\t\t\t}","\t\t}","\t}","","\t/**","\t * Modify upload avatar image using IMagick","\t *","\t * @param \\phpbb\\event\\data\t$event\tEvent object","\t */","\tpublic function imcger_modify_uploaded_avatar($event)","\t{","\t\tif ($this-\u003econfig['imcger_imgupload_avatar_resize'])","\t\t{","\t\t\t$avatar_max_width\t = $this-\u003econfig['avatar_max_width'];","\t\t\t$avatar_max_height\t = $this-\u003econfig['avatar_max_height'];","\t\t\t$avatar_file\t\t = $event['filedata']['filename'];","","\t\t\t// Get image dimension","\t\t\t$size = $this-\u003eimagesize-\u003egetImageSize($avatar_file);","","\t\t\tif ($size === false)","\t\t\t{","\t\t\t\treturn false;","\t\t\t}","","\t\t\t// when avatar image file to great modify it","\t\t\tif ($size['width'] \u003e $avatar_max_width || $size['height'] \u003e $avatar_max_height)","\t\t\t{","\t\t\t\t// create a new instance of ImageMagick and load current image","\t\t\t\t$avatar = new \\Imagick($avatar_file);","","\t\t\t\t// rotate the image according it's orientation flag","\t\t\t\t$this-\u003eimage_auto_rotate($avatar);","","\t\t\t\t// resize the image","\t\t\t\t$this-\u003eresize_image($avatar, $avatar_max_width, $avatar_max_height);","","\t\t\t\t// set compression quality is read from config","\t\t\t\t$this-\u003eset_image_compression($avatar);","","\t\t\t\t// set image format","\t\t\t\t$image_format = $this-\u003eset_image_format($avatar, $event['filedata']['mimetype']);","","\t\t\t\t// strip EXIF data and image profile","\t\t\t\tif ($image_format == 'JPEG' || $image_format == 'WEBP')","\t\t\t\t{","\t\t\t\t\t$avatar-\u003estripImage();","\t\t\t\t}","","\t\t\t\t// store the avatar","\t\t\t\t$write = $avatar-\u003ewriteImage($avatar_file);","","\t\t\t\tif ($write === false)","\t\t\t\t{","\t\t\t\t\treturn false;","\t\t\t\t}","","\t\t\t\t// set return value new file size","\t\t\t\t$filedata_array = $event['filedata'];","\t\t\t\t$filedata_array['filesize'] = $avatar-\u003egetImageBlob();","\t\t\t\t$event['filedata'] = $filedata_array;","","\t\t\t\t$avatar-\u003eclear();","\t\t\t}","\t\t}","\t}","","\t/**","\t * Modify post data","\t * Don't display attachments when shown as image in post message","\t *","\t * @param \\phpbb\\event\\data\t$event\tEvent object","\t */","\tpublic function imcger_viewtopic_modify_post_row($event)","\t{","\t\t$row\t\t\t\t= $event['row'];","\t\t$post_attachments\t= $event['attachments'];","","\t\t// Do nothing when no attachment","\t\tif (empty($post_attachments[$row['post_id']]))","\t\t{","\t\t\treturn;","\t\t}","","\t\t// Create array with image id that insert in post message","\t\tpreg_match_all('#\\[img\\][\\w\\\u003c\\\u003e\\/\\.?=\u0026;]*[^\\[](id=\\d+)\\\u003ce\\\u003e\\[\\/img\\]#', $row['post_text'], $matches);","","\t\t// Find image in attachment, delete atachment","\t\tforeach ($matches[1] as $image)","\t\t{","\t\t\tforeach ($post_attachments[$row['post_id']] as $key =\u003e $attachment)","\t\t\t{","\t\t\t\tif (strpos($attachment, $image))","\t\t\t\t{","\t\t\t\t\tunset($post_attachments[$row['post_id']][$key]);","\t\t\t\t}","\t\t\t}","\t\t}","","\t\t$post_row = $event['post_row'];","","\t\t// Set template vars","\t\t$post_row['S_HAS_ATTACHMENTS']\t\t= !empty($post_attachments[$row['post_id']]) ? true : false;","\t\t$post_row['S_MULTIPLE_ATTACHMENTS'] = !empty($post_attachments[$row['post_id']]) \u0026\u0026 count($post_attachments[$row['post_id']]) \u003e 1;","","\t\t$event['post_row'] = $post_row;","\t\t$event['attachments'] = $post_attachments;","\t}","","\t/**","\t * Modify post data for post editor preview","\t * Don't display attachments when shown as image in post message","\t *","\t * @param \\phpbb\\event\\data\t$event\tEvent object","\t */","\tpublic function imcger_posting_modify_template_vars($event)","\t{","\t\t// Get message text and attachment data","\t\t$message_parser = $event['message_parser'];","\t\t$message = $message_parser-\u003emessage;","\t\t$attachment_data = $message_parser-\u003eattachment_data;","","\t\t// Create array with attachment id that insert in post message","\t\tpreg_match_all('#\\[img\\][\\w\\\u003c\\\u003e\\/\\.?=\u0026;]*[^\\[]id=(\\d+)\\[\\/img\\]#', $message, $matches);","\t\t$matches[1] = array_unique($matches[1]);","","\t\t// Check if all attachments insert in post message","\t\t$display_attachmentbox = false;","\t\tforeach ($attachment_data as $attachment)","\t\t{","\t\t\tif (!in_array($attachment['attach_id'], $matches[1]))","\t\t\t{","\t\t\t\t$display_attachmentbox = true;","\t\t\t\tbreak;","\t\t\t}","\t\t}","","\t\t// Set variable for JS to hide attachment in post editors preview","\t\t$this-\u003etemplate-\u003eassign_vars([","\t\t\t'IUL_NOT_DISPLAYED_ATTACHMENTS' =\u003e json_encode($matches[1]),","\t\t\t'IUL_NOT_DISPLAY_ATTACHMENTBOX' =\u003e (int) !$display_attachmentbox,","\t\t]);","\t}","","\t/**","\t * resize image if image to large","\t *","\t * @param object\t$image\timage object","\t *","\t * @return bool\t\t$img_resize\timages is resize","\t */","\tpublic function resize_image($image, $max_width, $max_height)","\t{","\t\t$img_resize = false;","","\t\t// get image dimensions","\t\t$img_geo = $image-\u003egetImageGeometry();","\t\tlist('width' =\u003e $width, 'height' =\u003e $height, ) = $img_geo;","","\t\t// image aspect ratio","\t\t$side_ratio = $width / $height;","","\t\t// set new images width","\t\tif ($max_width \u0026\u0026 $max_width \u003c $width)","\t\t{","\t\t\t$width = $max_width;","\t\t\t$height = round($width / $side_ratio);","","\t\t\t$img_resize = true;","\t\t}","","\t\t// set new images height","\t\tif ($max_height \u0026\u0026 $max_height \u003c $height)","\t\t{","\t\t\t$height = $max_height;","\t\t\t$width = round($height * $side_ratio);","","\t\t\t$img_resize = true;","\t\t}","","\t\t// when changed dimensions resize the Image","\t\tif ($img_resize)","\t\t{","\t\t\t$image-\u003eresizeImage($width, $height, \\Imagick::FILTER_LANCZOS, 1, false);","\t\t}","","\t\treturn $img_resize;","\t}","","\t/**","\t * set the image format for the generated image","\t *","\t * @param object\t$image\t\timage object","\t * @param string\t$mimetype\tmimetype of the image in phpBB internal format","\t *","\t * @return string\t$imageformat images format","\t */","\tpublic function set_image_format($image, $mimetype)","\t{","\t\t// Check the mimetype and set the appropriate type for the image","\t\tswitch ($mimetype)","\t\t{","\t\t\tcase 'image/jpeg':","\t\t\t\t$imageformat = 'JPEG';","\t\t\tbreak;","","\t\t\tcase 'image/png':","\t\t\t\t$imageformat = 'PNG';","\t\t\tbreak;","","\t\t\tcase 'image/gif':","\t\t\t\t$imageformat = 'GIF';","\t\t\tbreak;","","\t\t\tcase 'image/webp':","\t\t\t\t$imageformat = 'WEBP';","\t\t\tbreak;","","\t\t\tdefault:","\t\t\t\t$imageformat = 'JPEG';","\t\t\tbreak;","\t\t}","","\t\t$image-\u003esetImageFormat($imageformat);","","\t\treturn $imageformat;","\t}","","\t/**","\t * set the compression value for the generated image","\t *","\t * @param object\t$image\t\timage object","\t * @param integer\t$quality\timage quality value","\t */","\tpublic function set_image_compression($image, $quality = 80)","\t{","\t\t$image_format = $image-\u003egetImageFormat();","","\t\tswitch ($image_format)","\t\t{","\t\t\tcase 'JPEG':","\t\t\t\t$image-\u003esetImageCompression(\\Imagick::COMPRESSION_JPEG);","\t\t\t\t$image-\u003esetImageCompressionQuality($quality);","\t\t\tbreak;","","\t\t\tcase 'PNG':","\t\t\t\tif ($image-\u003egetImageColors() \u003e 256)","\t\t\t\t{","\t\t\t\t\t$image-\u003equantizeImage(256, \\Imagick::COLORSPACE_SRGB, 16, false, false);","\t\t\t\t\t$image-\u003esetImageType(\\Imagick::IMGTYPE_TRUECOLORMATTE);","\t\t\t\t}","\t\t\tbreak;","","\t\t\tcase 'WEBP':","\t\t\t\t$image-\u003esetOption('webp:alpha-compression', 1);","\t\t\t\t$image-\u003esetOption('webp:alpha-filtering', 1);","\t\t\t\t$image-\u003esetOption('webp:method', 6);","\t\t\t\t$image-\u003esetImageCompressionQuality($quality);","\t\t\tbreak;","","\t\t\tdefault:","\t\t\t\t// do nothing","\t\t\tbreak;","\t\t}","\t}","","\t/**","\t * rotate the generated image","\t *","\t * @param object\t$image\t\timage object","\t *","\t * @return array\tchanged\t\torientation changed","\t * \t\t\t\t\trotate\t\trotate 90 degree","\t */","\tpublic function image_auto_rotate($image)","\t{","\t\t$is_rotate\t= false; // true, when orientation change between portrait and landscape","\t\t$is_changed = true; // true, when orientation change","","\t\t// read the orientation from the image","\t\tif (!($image_orientation = $image-\u003egetImageOrientation()))","\t\t{","\t\t\t// orientation flag not available","\t\t\t$image_orientation = \\Imagick::ORIENTATION_UNDEFINED;","\t\t}","","\t\tswitch ($image_orientation)","\t\t{","\t\t\tcase \\Imagick::ORIENTATION_UNDEFINED:","\t\t\t\t// do nothing","\t\t\t\t$is_changed = false;","\t\t\tbreak;","","\t\t\tcase \\Imagick::ORIENTATION_TOPLEFT:","\t\t\t\t// do nothing","\t\t\t\t$is_changed = false;","\t\t\tbreak;","","\t\t\tcase \\Imagick::ORIENTATION_TOPRIGHT:","\t\t\t\t$image-\u003eflopImage();","\t\t\tbreak;","","\t\t\tcase \\Imagick::ORIENTATION_BOTTOMRIGHT:","\t\t\t\t$image-\u003erotateImage(\"#000\", 180);","\t\t\tbreak;","","\t\t\tcase \\Imagick::ORIENTATION_BOTTOMLEFT:","\t\t\t\t$image-\u003eflipImage();","\t\t\tbreak;","","\t\t\tcase \\Imagick::ORIENTATION_LEFTTOP:","\t\t\t\t$image-\u003etransposeImage();","\t\t\t\t$is_rotate = true;","\t\t\tbreak;","","\t\t\tcase \\Imagick::ORIENTATION_RIGHTTOP:","\t\t\t\t$image-\u003erotateImage(\"#000\", 90);","\t\t\t\t$is_rotate = true;","\t\t\tbreak;","","\t\t\tcase \\Imagick::ORIENTATION_RIGHTBOTTOM:","\t\t\t\t$image-\u003etransverseImage();","\t\t\t\t$is_rotate = true;","\t\t\tbreak;","","\t\t\tcase \\Imagick::ORIENTATION_LEFTBOTTOM:","\t\t\t\t$image-\u003erotateImage(\"#000\", 270);","\t\t\t\t$is_rotate = true;","\t\t\tbreak;","","\t\t\tdefault:","\t\t\t\t// do nothing","\t\t\t\t$is_changed = false;","\t\t\tbreak;","\t\t}","","\t\t// set the orientation from the Image","\t\t$image-\u003esetImageOrientation(\\Imagick::ORIENTATION_TOPLEFT);","","\t\treturn ['changed' =\u003e $is_changed, 'rotate' =\u003e $is_rotate];","\t}","","\t/**","\t * resize the image file","\t *","\t * @param object\t$image\t\t\timage object","\t * @param integer\t$new_image_size\tnew size of the image","\t *","\t * @return integer\t$filesize\t\tfile size of the image after shrink","\t */","\tpublic function image_auto_length($image, $new_image_size)","\t{","\t\t// get image dimensions","\t\t$img_geo = $image-\u003egetImageGeometry();","\t\tlist('width' =\u003e $width, 'height' =\u003e $height, ) = $img_geo;","","\t\t$filesize = strlen($image-\u003egetImageBlob());","","\t\t// image aspect ratio","\t\t$side_ratio = $width / $height;","","\t\twhile ($filesize \u003e $new_image_size)","\t\t{","\t\t\t// calculate the image side in relation to the image area","\t\t\t$size_ratio = $filesize / $new_image_size;","\t\t\t$xh = sqrt($width * $height / $size_ratio / $side_ratio);","","\t\t\t// calculate the different to new height","\t\t\t$dh = ($height - $xh) * 0.9;","\t\t\t$dh = $dh \u003e 10 ? $dh : 10;","","\t\t\t// set image dimensions","\t\t\t$height -= $dh;","\t\t\t$width\t = $height * $side_ratio;","","\t\t\t// resize the image","\t\t\t$image-\u003eresizeImage(round($width), round($height), \\Imagick::FILTER_LANCZOS, 1, false);","","\t\t\t// get the file size","\t\t\t$filesize = strlen($image-\u003egetImageBlob());","\t\t}","\t\treturn $filesize;","\t}","}"],"stylingDirectives":[[{"s":0,"e":5,"c":"pl-ent"}],[{"s":0,"e":3,"c":"pl-c"}],[{"s":0,"e":31,"c":"pl-c"}],[{"s":0,"e":53,"c":"pl-c"}],[{"s":0,"e":2,"c":"pl-c"}],[{"s":0,"e":39,"c":"pl-c"}],[{"s":0,"e":86,"c":"pl-c"}],[{"s":0,"e":59,"c":"pl-c"}],[{"s":0,"e":2,"c":"pl-c"}],[{"s":0,"e":3,"c":"pl-c"}],[],[{"s":0,"e":9,"c":"pl-k"}],[],[{"s":0,"e":3,"c":"pl-k"},{"s":4,"e":11,"c":"pl-v"},{"s":12,"e":21,"c":"pl-v"},{"s":22,"e":37,"c":"pl-v"},{"s":38,"e":62,"c":"pl-v"}],[],[{"s":0,"e":3,"c":"pl-c"}],[{"s":0,"e":17,"c":"pl-c"}],[{"s":0,"e":3,"c":"pl-c"}],[{"s":0,"e":5,"c":"pl-k"},{"s":20,"e":30,"c":"pl-k"},{"s":31,"e":55,"c":"pl-v"}],[],[{"s":1,"e":33,"c":"pl-c"}],[{"s":1,"e":10,"c":"pl-k"},{"s":11,"e":18,"c":"pl-c1"},{"s":11,"e":12,"c":"pl-c1"}],[],[{"s":1,"e":37,"c":"pl-c"}],[{"s":1,"e":10,"c":"pl-k"},{"s":11,"e":20,"c":"pl-c1"},{"s":11,"e":12,"c":"pl-c1"}],[],[{"s":1,"e":41,"c":"pl-c"}],[{"s":1,"e":10,"c":"pl-k"},{"s":11,"e":21,"c":"pl-c1"},{"s":11,"e":12,"c":"pl-c1"}],[],[{"s":1,"e":46,"c":"pl-c"}],[{"s":1,"e":10,"c":"pl-k"},{"s":11,"e":14,"c":"pl-c1"},{"s":11,"e":12,"c":"pl-c1"}],[],[{"s":1,"e":37,"c":"pl-c"}],[{"s":1,"e":10,"c":"pl-k"},{"s":11,"e":20,"c":"pl-c1"},{"s":11,"e":12,"c":"pl-c1"}],[],[{"s":1,"e":37,"c":"pl-c"}],[{"s":1,"e":10,"c":"pl-k"},{"s":11,"e":23,"c":"pl-c1"},{"s":11,"e":12,"c":"pl-c1"}],[],[{"s":1,"e":37,"c":"pl-c"}],[{"s":1,"e":10,"c":"pl-k"},{"s":11,"e":18,"c":"pl-c1"},{"s":11,"e":12,"c":"pl-c1"}],[],[{"s":1,"e":4,"c":"pl-c"}],[{"s":0,"e":28,"c":"pl-c"}],[{"s":0,"e":3,"c":"pl-c"}],[{"s":0,"e":56,"c":"pl-c"}],[{"s":0,"e":62,"c":"pl-c"}],[{"s":0,"e":72,"c":"pl-c"}],[{"s":0,"e":65,"c":"pl-c"}],[{"s":0,"e":62,"c":"pl-c"}],[{"s":0,"e":50,"c":"pl-c"}],[{"s":0,"e":45,"c":"pl-c"}],[{"s":0,"e":3,"c":"pl-c"}],[{"s":0,"e":18,"c":"pl-c"}],[{"s":0,"e":4,"c":"pl-c"}],[{"s":1,"e":7,"c":"pl-k"},{"s":8,"e":16,"c":"pl-k"},{"s":17,"e":28,"c":"pl-en"}],[],[{"s":2,"e":22,"c":"pl-smi"},{"s":2,"e":22,"c":"pl-smi"},{"s":23,"e":30,"c":"pl-s1"},{"s":23,"e":24,"c":"pl-c1"}],[{"s":2,"e":26,"c":"pl-smi"},{"s":2,"e":26,"c":"pl-smi"},{"s":27,"e":36,"c":"pl-s1"},{"s":27,"e":28,"c":"pl-c1"}],[{"s":2,"e":30,"c":"pl-smi"},{"s":2,"e":30,"c":"pl-smi"},{"s":3,"e":16,"c":"pl-v"},{"s":17,"e":30,"c":"pl-v"},{"s":31,"e":41,"c":"pl-s1"},{"s":31,"e":32,"c":"pl-c1"}],[{"s":2,"e":35,"c":"pl-smi"},{"s":2,"e":35,"c":"pl-smi"},{"s":36,"e":39,"c":"pl-s1"},{"s":36,"e":37,"c":"pl-c1"}],[{"s":2,"e":26,"c":"pl-smi"},{"s":2,"e":26,"c":"pl-smi"},{"s":27,"e":36,"c":"pl-s1"},{"s":27,"e":28,"c":"pl-c1"}],[{"s":2,"e":26,"c":"pl-smi"},{"s":2,"e":26,"c":"pl-smi"},{"s":27,"e":39,"c":"pl-s1"},{"s":27,"e":28,"c":"pl-c1"}],[{"s":2,"e":26,"c":"pl-smi"},{"s":2,"e":26,"c":"pl-smi"},{"s":27,"e":34,"c":"pl-s1"},{"s":27,"e":28,"c":"pl-c1"}],[],[],[{"s":2,"e":7,"c":"pl-s1"},{"s":2,"e":3,"c":"pl-c1"},{"s":3,"e":7,"c":"pl-smi"},{"s":9,"e":15,"c":"pl-c1"},{"s":19,"e":26,"c":"pl-s1"},{"s":19,"e":20,"c":"pl-c1"}],[{"s":2,"e":7,"c":"pl-s1"},{"s":2,"e":3,"c":"pl-c1"},{"s":3,"e":7,"c":"pl-smi"},{"s":9,"e":17,"c":"pl-c1"},{"s":21,"e":30,"c":"pl-s1"},{"s":21,"e":22,"c":"pl-c1"}],[{"s":2,"e":7,"c":"pl-s1"},{"s":2,"e":3,"c":"pl-c1"},{"s":3,"e":7,"c":"pl-smi"},{"s":9,"e":18,"c":"pl-c1"},{"s":21,"e":31,"c":"pl-s1"},{"s":21,"e":22,"c":"pl-c1"}],[{"s":2,"e":7,"c":"pl-s1"},{"s":2,"e":3,"c":"pl-c1"},{"s":3,"e":7,"c":"pl-smi"},{"s":9,"e":11,"c":"pl-c1"},{"s":16,"e":19,"c":"pl-s1"},{"s":16,"e":17,"c":"pl-c1"}],[{"s":2,"e":7,"c":"pl-s1"},{"s":2,"e":3,"c":"pl-c1"},{"s":3,"e":7,"c":"pl-smi"},{"s":9,"e":17,"c":"pl-c1"},{"s":21,"e":30,"c":"pl-s1"},{"s":21,"e":22,"c":"pl-c1"}],[{"s":2,"e":7,"c":"pl-s1"},{"s":2,"e":3,"c":"pl-c1"},{"s":3,"e":7,"c":"pl-smi"},{"s":9,"e":20,"c":"pl-c1"},{"s":23,"e":35,"c":"pl-s1"},{"s":23,"e":24,"c":"pl-c1"}],[{"s":2,"e":7,"c":"pl-s1"},{"s":2,"e":3,"c":"pl-c1"},{"s":3,"e":7,"c":"pl-smi"},{"s":9,"e":15,"c":"pl-c1"},{"s":19,"e":26,"c":"pl-s1"},{"s":19,"e":20,"c":"pl-c1"}],[],[],[{"s":1,"e":7,"c":"pl-k"},{"s":8,"e":14,"c":"pl-k"},{"s":15,"e":23,"c":"pl-k"},{"s":24,"e":43,"c":"pl-en"}],[],[{"s":2,"e":8,"c":"pl-k"}],[{"s":3,"e":21,"c":"pl-s"},{"s":4,"e":20,"c":"pl-s"},{"s":32,"e":51,"c":"pl-s"},{"s":33,"e":50,"c":"pl-s"}],[{"s":3,"e":35,"c":"pl-s"},{"s":4,"e":34,"c":"pl-s"},{"s":42,"e":66,"c":"pl-s"},{"s":43,"e":65,"c":"pl-s"}],[{"s":3,"e":33,"c":"pl-s"},{"s":4,"e":32,"c":"pl-s"},{"s":41,"e":65,"c":"pl-s"},{"s":42,"e":64,"c":"pl-s"}],[{"s":3,"e":30,"c":"pl-s"},{"s":4,"e":29,"c":"pl-s"},{"s":39,"e":68,"c":"pl-s"},{"s":40,"e":67,"c":"pl-s"}],[{"s":3,"e":47,"c":"pl-s"},{"s":4,"e":46,"c":"pl-s"},{"s":51,"e":82,"c":"pl-s"},{"s":52,"e":81,"c":"pl-s"}],[{"s":3,"e":35,"c":"pl-s"},{"s":4,"e":34,"c":"pl-s"},{"s":42,"e":76,"c":"pl-s"},{"s":43,"e":75,"c":"pl-s"}],[{"s":3,"e":38,"c":"pl-s"},{"s":4,"e":37,"c":"pl-s"},{"s":45,"e":82,"c":"pl-s"},{"s":46,"e":81,"c":"pl-s"}],[],[],[],[{"s":1,"e":4,"c":"pl-c"}],[{"s":0,"e":44,"c":"pl-c"}],[{"s":0,"e":4,"c":"pl-c"}],[{"s":1,"e":7,"c":"pl-k"},{"s":8,"e":16,"c":"pl-k"},{"s":17,"e":39,"c":"pl-en"}],[],[{"s":2,"e":4,"c":"pl-k"},{"s":6,"e":11,"c":"pl-s1"},{"s":6,"e":7,"c":"pl-c1"},{"s":7,"e":11,"c":"pl-smi"},{"s":13,"e":19,"c":"pl-c1"},{"s":20,"e":52,"c":"pl-s"},{"s":21,"e":51,"c":"pl-s"}],[],[{"s":3,"e":8,"c":"pl-s1"},{"s":3,"e":4,"c":"pl-c1"},{"s":4,"e":8,"c":"pl-smi"},{"s":10,"e":18,"c":"pl-c1"},{"s":20,"e":28,"c":"pl-en"},{"s":29,"e":34,"c":"pl-s"},{"s":30,"e":33,"c":"pl-s"},{"s":35,"e":53,"c":"pl-s"},{"s":36,"e":52,"c":"pl-s"}],[],[],[],[{"s":1,"e":4,"c":"pl-c"}],[{"s":0,"e":21,"c":"pl-c"}],[{"s":0,"e":3,"c":"pl-c"}],[{"s":0,"e":16,"c":"pl-c"}],[{"s":0,"e":18,"c":"pl-c"}],[{"s":0,"e":4,"c":"pl-c"}],[{"s":1,"e":7,"c":"pl-k"},{"s":8,"e":16,"c":"pl-k"},{"s":17,"e":34,"c":"pl-en"}],[],[{"s":2,"e":50,"c":"pl-c"}],[{"s":2,"e":4,"c":"pl-k"},{"s":6,"e":11,"c":"pl-s1"},{"s":6,"e":7,"c":"pl-c1"},{"s":7,"e":11,"c":"pl-smi"},{"s":13,"e":19,"c":"pl-c1"},{"s":20,"e":42,"c":"pl-s"},{"s":21,"e":41,"c":"pl-s"}],[],[{"s":3,"e":8,"c":"pl-s1"},{"s":3,"e":4,"c":"pl-c1"},{"s":4,"e":8,"c":"pl-smi"},{"s":10,"e":18,"c":"pl-c1"},{"s":20,"e":28,"c":"pl-en"},{"s":29,"e":41,"c":"pl-s"},{"s":30,"e":40,"c":"pl-s"},{"s":42,"e":60,"c":"pl-s"},{"s":43,"e":59,"c":"pl-s"}],[],[],[{"s":2,"e":17,"c":"pl-s1"},{"s":2,"e":3,"c":"pl-c1"}],[{"s":2,"e":22,"c":"pl-s1"},{"s":2,"e":3,"c":"pl-c1"},{"s":25,"e":30,"c":"pl-s1"},{"s":25,"e":26,"c":"pl-c1"},{"s":26,"e":30,"c":"pl-smi"},{"s":32,"e":38,"c":"pl-c1"},{"s":39,"e":77,"c":"pl-s"},{"s":40,"e":76,"c":"pl-s"}],[],[{"s":2,"e":36,"c":"pl-c"}],[{"s":2,"e":10,"c":"pl-s1"},{"s":2,"e":3,"c":"pl-c1"},{"s":14,"e":33,"c":"pl-s"},{"s":15,"e":33,"c":"pl-s"}],[{"s":0,"e":12,"c":"pl-s"},{"s":0,"e":11,"c":"pl-s"},{"s":15,"e":31,"c":"pl-c1"},{"s":34,"e":37,"c":"pl-s"},{"s":35,"e":37,"c":"pl-s"}],[{"s":0,"e":12,"c":"pl-s"},{"s":0,"e":11,"c":"pl-s"},{"s":15,"e":37,"c":"pl-c1"},{"s":40,"e":43,"c":"pl-s"},{"s":41,"e":43,"c":"pl-s"}],[{"s":0,"e":35,"c":"pl-s"},{"s":0,"e":35,"c":"pl-s"}],[{"s":0,"e":23,"c":"pl-s"},{"s":0,"e":22,"c":"pl-s"}],[],[{"s":2,"e":13,"c":"pl-s1"},{"s":2,"e":3,"c":"pl-c1"},{"s":16,"e":21,"c":"pl-s1"},{"s":16,"e":17,"c":"pl-c1"},{"s":17,"e":21,"c":"pl-smi"},{"s":23,"e":25,"c":"pl-c1"},{"s":27,"e":36,"c":"pl-en"},{"s":37,"e":45,"c":"pl-s1"},{"s":37,"e":38,"c":"pl-c1"}],[],[{"s":2,"e":10,"c":"pl-s1"},{"s":2,"e":3,"c":"pl-c1"},{"s":13,"e":18,"c":"pl-s1"},{"s":13,"e":14,"c":"pl-c1"},{"s":14,"e":18,"c":"pl-smi"},{"s":20,"e":22,"c":"pl-c1"},{"s":24,"e":39,"c":"pl-en"},{"s":40,"e":51,"c":"pl-s1"},{"s":40,"e":41,"c":"pl-c1"}],[],[{"s":2,"e":50,"c":"pl-c"}],[{"s":2,"e":17,"c":"pl-s1"},{"s":2,"e":3,"c":"pl-c1"},{"s":20,"e":29,"c":"pl-en"},{"s":30,"e":38,"c":"pl-k"},{"s":40,"e":42,"c":"pl-s1"},{"s":40,"e":41,"c":"pl-c1"},{"s":45,"e":51,"c":"pl-k"},{"s":52,"e":54,"c":"pl-s1"},{"s":52,"e":53,"c":"pl-c1"},{"s":55,"e":66,"c":"pl-s"},{"s":56,"e":65,"c":"pl-s"},{"s":71,"e":79,"c":"pl-s1"},{"s":71,"e":72,"c":"pl-c1"}],[],[{"s":2,"e":7,"c":"pl-s1"},{"s":2,"e":3,"c":"pl-c1"},{"s":3,"e":7,"c":"pl-smi"},{"s":9,"e":11,"c":"pl-c1"},{"s":13,"e":27,"c":"pl-en"}],[],[{"s":2,"e":19,"c":"pl-s1"},{"s":2,"e":3,"c":"pl-c1"},{"s":22,"e":27,"c":"pl-s1"},{"s":22,"e":23,"c":"pl-c1"},{"s":23,"e":27,"c":"pl-smi"},{"s":29,"e":40,"c":"pl-c1"},{"s":42,"e":75,"c":"pl-en"},{"s":76,"e":94,"c":"pl-s"},{"s":77,"e":93,"c":"pl-s"}],[],[{"s":2,"e":7,"c":"pl-s1"},{"s":2,"e":3,"c":"pl-c1"},{"s":3,"e":7,"c":"pl-smi"},{"s":9,"e":17,"c":"pl-c1"},{"s":19,"e":30,"c":"pl-en"}],[{"s":3,"e":20,"c":"pl-s"},{"s":4,"e":19,"c":"pl-s"},{"s":27,"e":44,"c":"pl-s1"},{"s":27,"e":28,"c":"pl-c1"},{"s":46,"e":58,"c":"pl-en"},{"s":59,"e":73,"c":"pl-s"},{"s":60,"e":72,"c":"pl-s"}],[{"s":3,"e":23,"c":"pl-s"},{"s":4,"e":22,"c":"pl-s"},{"s":29,"e":40,"c":"pl-en"},{"s":41,"e":56,"c":"pl-s1"},{"s":41,"e":42,"c":"pl-c1"}],[{"s":3,"e":23,"c":"pl-s"},{"s":4,"e":22,"c":"pl-s"},{"s":29,"e":34,"c":"pl-s1"},{"s":29,"e":30,"c":"pl-c1"},{"s":30,"e":34,"c":"pl-smi"},{"s":36,"e":42,"c":"pl-c1"},{"s":43,"e":74,"c":"pl-s"},{"s":44,"e":73,"c":"pl-s"}],[{"s":3,"e":28,"c":"pl-s"},{"s":4,"e":27,"c":"pl-s"},{"s":32,"e":52,"c":"pl-s1"},{"s":32,"e":33,"c":"pl-c1"},{"s":55,"e":75,"c":"pl-s1"},{"s":55,"e":56,"c":"pl-c1"},{"s":78,"e":82,"c":"pl-s"},{"s":79,"e":81,"c":"pl-s"},{"s":85,"e":90,"c":"pl-c1"}],[{"s":3,"e":20,"c":"pl-s"},{"s":4,"e":19,"c":"pl-s"},{"s":28,"e":45,"c":"pl-s1"},{"s":28,"e":29,"c":"pl-c1"},{"s":47,"e":59,"c":"pl-en"},{"s":60,"e":74,"c":"pl-s"},{"s":61,"e":73,"c":"pl-s"}],[{"s":3,"e":21,"c":"pl-s"},{"s":4,"e":20,"c":"pl-s"},{"s":29,"e":34,"c":"pl-s1"},{"s":29,"e":30,"c":"pl-c1"},{"s":30,"e":34,"c":"pl-smi"},{"s":36,"e":42,"c":"pl-c1"},{"s":44,"e":49,"c":"pl-en"},{"s":50,"e":84,"c":"pl-s"},{"s":51,"e":83,"c":"pl-s"},{"s":87,"e":94,"c":"pl-s"},{"s":88,"e":93,"c":"pl-s"},{"s":98,"e":110,"c":"pl-s"},{"s":99,"e":109,"c":"pl-s"}],[{"s":3,"e":21,"c":"pl-s"},{"s":4,"e":20,"c":"pl-s"},{"s":29,"e":34,"c":"pl-s1"},{"s":29,"e":30,"c":"pl-c1"},{"s":30,"e":34,"c":"pl-smi"},{"s":36,"e":42,"c":"pl-c1"},{"s":44,"e":49,"c":"pl-en"},{"s":50,"e":84,"c":"pl-s"},{"s":51,"e":83,"c":"pl-s"},{"s":87,"e":94,"c":"pl-s"},{"s":88,"e":93,"c":"pl-s"},{"s":98,"e":110,"c":"pl-s"},{"s":99,"e":109,"c":"pl-s"}],[],[],[],[{"s":1,"e":4,"c":"pl-c"}],[{"s":0,"e":36,"c":"pl-c"}],[{"s":0,"e":3,"c":"pl-c"}],[{"s":0,"e":48,"c":"pl-c"}],[{"s":0,"e":4,"c":"pl-c"}],[{"s":1,"e":7,"c":"pl-k"},{"s":8,"e":16,"c":"pl-k"},{"s":17,"e":39,"c":"pl-en"},{"s":40,"e":46,"c":"pl-s1"},{"s":40,"e":41,"c":"pl-c1"}],[],[{"s":2,"e":64,"c":"pl-c"}],[{"s":2,"e":12,"c":"pl-s1"},{"s":2,"e":3,"c":"pl-c1"},{"s":15,"e":18,"c":"pl-k"},{"s":20,"e":27,"c":"pl-v"},{"s":28,"e":36,"c":"pl-en"},{"s":37,"e":43,"c":"pl-s1"},{"s":37,"e":38,"c":"pl-c1"},{"s":44,"e":52,"c":"pl-s"},{"s":45,"e":51,"c":"pl-s"}],[],[{"s":2,"e":53,"c":"pl-c"}],[{"s":2,"e":8,"c":"pl-s1"},{"s":2,"e":3,"c":"pl-c1"},{"s":11,"e":16,"c":"pl-s1"},{"s":11,"e":12,"c":"pl-c1"},{"s":12,"e":16,"c":"pl-smi"},{"s":18,"e":35,"c":"pl-en"},{"s":36,"e":46,"c":"pl-s1"},{"s":36,"e":37,"c":"pl-c1"}],[],[{"s":2,"e":54,"c":"pl-c"}],[{"s":2,"e":4,"c":"pl-k"},{"s":6,"e":12,"c":"pl-s1"},{"s":6,"e":7,"c":"pl-c1"},{"s":13,"e":21,"c":"pl-s"},{"s":14,"e":20,"c":"pl-s"}],[],[{"s":3,"e":13,"c":"pl-s1"},{"s":3,"e":4,"c":"pl-c1"},{"s":16,"e":22,"c":"pl-s1"},{"s":16,"e":17,"c":"pl-c1"},{"s":23,"e":35,"c":"pl-s"},{"s":24,"e":34,"c":"pl-s"}],[{"s":3,"e":14,"c":"pl-s1"},{"s":3,"e":4,"c":"pl-c1"},{"s":17,"e":23,"c":"pl-s1"},{"s":17,"e":18,"c":"pl-c1"},{"s":24,"e":35,"c":"pl-s"},{"s":25,"e":34,"c":"pl-s"}],[],[{"s":2,"e":6,"c":"pl-k"}],[],[{"s":3,"e":13,"c":"pl-s1"},{"s":3,"e":4,"c":"pl-c1"},{"s":16,"e":22,"c":"pl-s1"},{"s":16,"e":17,"c":"pl-c1"},{"s":23,"e":34,"c":"pl-s"},{"s":24,"e":33,"c":"pl-s"}],[{"s":3,"e":14,"c":"pl-s1"},{"s":3,"e":4,"c":"pl-c1"},{"s":17,"e":23,"c":"pl-s1"},{"s":17,"e":18,"c":"pl-c1"},{"s":24,"e":36,"c":"pl-s"},{"s":25,"e":35,"c":"pl-s"}],[],[],[{"s":2,"e":21,"c":"pl-c"}],[{"s":2,"e":12,"c":"pl-s1"},{"s":2,"e":3,"c":"pl-c1"},{"s":14,"e":25,"c":"pl-en"},{"s":26,"e":36,"c":"pl-s1"},{"s":26,"e":27,"c":"pl-c1"},{"s":38,"e":49,"c":"pl-s1"},{"s":38,"e":39,"c":"pl-c1"},{"s":52,"e":59,"c":"pl-v"},{"s":61,"e":75,"c":"pl-c1"},{"s":77,"e":78,"c":"pl-c1"}],[],[{"s":2,"e":21,"c":"pl-c"}],[{"s":2,"e":15,"c":"pl-s1"},{"s":2,"e":3,"c":"pl-c1"},{"s":18,"e":23,"c":"pl-s1"},{"s":18,"e":19,"c":"pl-c1"},{"s":19,"e":23,"c":"pl-smi"},{"s":25,"e":41,"c":"pl-en"},{"s":42,"e":52,"c":"pl-s1"},{"s":42,"e":43,"c":"pl-c1"},{"s":54,"e":60,"c":"pl-s1"},{"s":54,"e":55,"c":"pl-c1"},{"s":61,"e":71,"c":"pl-s"},{"s":62,"e":70,"c":"pl-s"}],[],[{"s":2,"e":56,"c":"pl-c"}],[{"s":2,"e":7,"c":"pl-s1"},{"s":2,"e":3,"c":"pl-c1"},{"s":3,"e":7,"c":"pl-smi"},{"s":9,"e":30,"c":"pl-en"},{"s":31,"e":41,"c":"pl-s1"},{"s":31,"e":32,"c":"pl-c1"},{"s":43,"e":48,"c":"pl-s1"},{"s":43,"e":44,"c":"pl-c1"},{"s":44,"e":48,"c":"pl-smi"},{"s":50,"e":56,"c":"pl-c1"},{"s":57,"e":87,"c":"pl-s"},{"s":58,"e":86,"c":"pl-s"}],[],[{"s":2,"e":38,"c":"pl-c"}],[{"s":2,"e":4,"c":"pl-k"},{"s":6,"e":11,"c":"pl-s1"},{"s":6,"e":7,"c":"pl-c1"},{"s":7,"e":11,"c":"pl-smi"},{"s":13,"e":19,"c":"pl-c1"},{"s":20,"e":47,"c":"pl-s"},{"s":21,"e":46,"c":"pl-s"},{"s":53,"e":66,"c":"pl-s1"},{"s":53,"e":54,"c":"pl-c1"},{"s":70,"e":76,"c":"pl-s"},{"s":71,"e":75,"c":"pl-s"},{"s":80,"e":93,"c":"pl-s1"},{"s":80,"e":81,"c":"pl-c1"},{"s":97,"e":103,"c":"pl-s"},{"s":98,"e":102,"c":"pl-s"}],[],[{"s":3,"e":13,"c":"pl-s1"},{"s":3,"e":4,"c":"pl-c1"},{"s":15,"e":25,"c":"pl-en"}],[],[],[{"s":2,"e":20,"c":"pl-c"}],[{"s":2,"e":20,"c":"pl-s1"},{"s":2,"e":3,"c":"pl-c1"},{"s":23,"e":33,"c":"pl-s1"},{"s":23,"e":24,"c":"pl-c1"},{"s":35,"e":45,"c":"pl-en"},{"s":46,"e":52,"c":"pl-s1"},{"s":46,"e":47,"c":"pl-c1"},{"s":53,"e":66,"c":"pl-s"},{"s":54,"e":65,"c":"pl-s"}],[{"s":2,"e":12,"c":"pl-s1"},{"s":2,"e":3,"c":"pl-c1"},{"s":14,"e":19,"c":"pl-en"}],[],[{"s":2,"e":56,"c":"pl-c"}],[{"s":2,"e":4,"c":"pl-k"},{"s":6,"e":19,"c":"pl-s1"},{"s":6,"e":7,"c":"pl-c1"},{"s":23,"e":29,"c":"pl-s"},{"s":24,"e":28,"c":"pl-s"},{"s":33,"e":39,"c":"pl-s1"},{"s":33,"e":34,"c":"pl-c1"},{"s":40,"e":50,"c":"pl-s"},{"s":41,"e":49,"c":"pl-s"},{"s":55,"e":67,"c":"pl-s"},{"s":56,"e":66,"c":"pl-s"},{"s":71,"e":89,"c":"pl-s1"},{"s":71,"e":72,"c":"pl-c1"}],[],[{"s":3,"e":9,"c":"pl-s1"},{"s":3,"e":4,"c":"pl-c1"},{"s":10,"e":20,"c":"pl-s"},{"s":11,"e":19,"c":"pl-s"},{"s":24,"e":36,"c":"pl-s"},{"s":25,"e":35,"c":"pl-s"}],[],[],[{"s":2,"e":21,"c":"pl-c"}],[{"s":2,"e":8,"c":"pl-s1"},{"s":2,"e":3,"c":"pl-c1"},{"s":9,"e":28,"c":"pl-s"},{"s":10,"e":27,"c":"pl-s"},{"s":32,"e":50,"c":"pl-s1"},{"s":32,"e":33,"c":"pl-c1"}],[],[],[{"s":1,"e":4,"c":"pl-c"}],[{"s":0,"e":37,"c":"pl-c"}],[{"s":0,"e":3,"c":"pl-c"}],[{"s":0,"e":48,"c":"pl-c"}],[{"s":0,"e":4,"c":"pl-c"}],[{"s":1,"e":7,"c":"pl-k"},{"s":8,"e":16,"c":"pl-k"},{"s":17,"e":44,"c":"pl-en"},{"s":45,"e":51,"c":"pl-s1"},{"s":45,"e":46,"c":"pl-c1"}],[],[{"s":2,"e":4,"c":"pl-k"},{"s":6,"e":12,"c":"pl-s1"},{"s":6,"e":7,"c":"pl-c1"},{"s":13,"e":23,"c":"pl-s"},{"s":14,"e":22,"c":"pl-s"}],[],[{"s":3,"e":15,"c":"pl-s1"},{"s":3,"e":4,"c":"pl-c1"},{"s":19,"e":24,"c":"pl-c1"},{"s":26,"e":69,"c":"pl-c"}],[{"s":3,"e":19,"c":"pl-s1"},{"s":3,"e":4,"c":"pl-c1"},{"s":22,"e":27,"c":"pl-s1"},{"s":22,"e":23,"c":"pl-c1"},{"s":23,"e":27,"c":"pl-smi"},{"s":29,"e":35,"c":"pl-c1"},{"s":36,"e":64,"c":"pl-s"},{"s":37,"e":63,"c":"pl-s"}],[{"s":3,"e":20,"c":"pl-s1"},{"s":3,"e":4,"c":"pl-c1"},{"s":23,"e":28,"c":"pl-s1"},{"s":23,"e":24,"c":"pl-c1"},{"s":24,"e":28,"c":"pl-smi"},{"s":30,"e":36,"c":"pl-c1"},{"s":37,"e":66,"c":"pl-s"},{"s":38,"e":65,"c":"pl-s"}],[{"s":3,"e":17,"c":"pl-s1"},{"s":3,"e":4,"c":"pl-c1"},{"s":21,"e":26,"c":"pl-s1"},{"s":21,"e":22,"c":"pl-c1"},{"s":22,"e":26,"c":"pl-smi"},{"s":28,"e":34,"c":"pl-c1"},{"s":35,"e":65,"c":"pl-s"},{"s":36,"e":64,"c":"pl-s"}],[{"s":3,"e":18,"c":"pl-s1"},{"s":3,"e":4,"c":"pl-c1"},{"s":22,"e":27,"c":"pl-s1"},{"s":22,"e":23,"c":"pl-c1"},{"s":23,"e":27,"c":"pl-smi"},{"s":29,"e":35,"c":"pl-c1"},{"s":36,"e":56,"c":"pl-s"},{"s":37,"e":55,"c":"pl-s"}],[{"s":3,"e":22,"c":"pl-s1"},{"s":3,"e":4,"c":"pl-c1"},{"s":25,"e":30,"c":"pl-s1"},{"s":25,"e":26,"c":"pl-c1"},{"s":26,"e":30,"c":"pl-smi"},{"s":32,"e":38,"c":"pl-c1"},{"s":39,"e":70,"c":"pl-s"},{"s":40,"e":69,"c":"pl-s"}],[{"s":3,"e":12,"c":"pl-s1"},{"s":3,"e":4,"c":"pl-c1"},{"s":17,"e":23,"c":"pl-s1"},{"s":17,"e":18,"c":"pl-c1"},{"s":24,"e":34,"c":"pl-s"},{"s":25,"e":33,"c":"pl-s"},{"s":36,"e":46,"c":"pl-s"},{"s":37,"e":45,"c":"pl-s"}],[],[{"s":3,"e":19,"c":"pl-c"}],[{"s":3,"e":13,"c":"pl-s1"},{"s":3,"e":4,"c":"pl-c1"},{"s":16,"e":20,"c":"pl-en"},{"s":21,"e":24,"c":"pl-s"},{"s":22,"e":23,"c":"pl-s"},{"s":27,"e":31,"c":"pl-en"},{"s":32,"e":37,"c":"pl-s1"},{"s":32,"e":33,"c":"pl-c1"},{"s":33,"e":37,"c":"pl-smi"},{"s":39,"e":45,"c":"pl-c1"},{"s":46,"e":59,"c":"pl-s"},{"s":47,"e":58,"c":"pl-s"},{"s":62,"e":65,"c":"pl-s"},{"s":63,"e":64,"c":"pl-s"},{"s":68,"e":72,"c":"pl-en"},{"s":73,"e":79,"c":"pl-s1"},{"s":73,"e":74,"c":"pl-c1"},{"s":80,"e":90,"c":"pl-s"},{"s":81,"e":89,"c":"pl-s"},{"s":92,"e":111,"c":"pl-s"},{"s":93,"e":110,"c":"pl-s"},{"s":114,"e":117,"c":"pl-s"},{"s":115,"e":116,"c":"pl-s"}],[],[{"s":3,"e":34,"c":"pl-c"}],[{"s":3,"e":8,"c":"pl-s1"},{"s":3,"e":4,"c":"pl-c1"},{"s":11,"e":16,"c":"pl-s1"},{"s":11,"e":12,"c":"pl-c1"},{"s":12,"e":16,"c":"pl-smi"},{"s":18,"e":27,"c":"pl-c1"},{"s":29,"e":41,"c":"pl-en"},{"s":42,"e":52,"c":"pl-s1"},{"s":42,"e":43,"c":"pl-c1"}],[],[{"s":3,"e":5,"c":"pl-k"},{"s":7,"e":12,"c":"pl-s1"},{"s":7,"e":8,"c":"pl-c1"},{"s":17,"e":22,"c":"pl-c1"}],[],[{"s":4,"e":10,"c":"pl-k"},{"s":11,"e":16,"c":"pl-c1"}],[],[],[{"s":3,"e":90,"c":"pl-c"}],[{"s":3,"e":5,"c":"pl-k"},{"s":10,"e":15,"c":"pl-s1"},{"s":10,"e":11,"c":"pl-c1"},{"s":16,"e":22,"c":"pl-s"},{"s":17,"e":21,"c":"pl-s"},{"s":27,"e":41,"c":"pl-c1"},{"s":45,"e":50,"c":"pl-s1"},{"s":45,"e":46,"c":"pl-c1"},{"s":51,"e":57,"c":"pl-s"},{"s":52,"e":56,"c":"pl-s"},{"s":62,"e":76,"c":"pl-c1"},{"s":82,"e":97,"c":"pl-s1"},{"s":82,"e":83,"c":"pl-c1"}],[{"s":6,"e":22,"c":"pl-s1"},{"s":6,"e":7,"c":"pl-c1"},{"s":26,"e":42,"c":"pl-s1"},{"s":26,"e":27,"c":"pl-c1"},{"s":46,"e":51,"c":"pl-s1"},{"s":46,"e":47,"c":"pl-c1"},{"s":52,"e":59,"c":"pl-s"},{"s":53,"e":58,"c":"pl-s"}],[{"s":6,"e":23,"c":"pl-s1"},{"s":6,"e":7,"c":"pl-c1"},{"s":27,"e":44,"c":"pl-s1"},{"s":27,"e":28,"c":"pl-c1"},{"s":48,"e":53,"c":"pl-s1"},{"s":48,"e":49,"c":"pl-c1"},{"s":54,"e":62,"c":"pl-s"},{"s":55,"e":61,"c":"pl-s"}],[{"s":6,"e":25,"c":"pl-s1"},{"s":6,"e":7,"c":"pl-c1"},{"s":29,"e":48,"c":"pl-s1"},{"s":29,"e":30,"c":"pl-c1"},{"s":52,"e":61,"c":"pl-s1"},{"s":52,"e":53,"c":"pl-c1"}],[],[],[{"s":4,"e":10,"c":"pl-k"},{"s":11,"e":15,"c":"pl-c1"}],[],[],[{"s":3,"e":65,"c":"pl-c"}],[{"s":3,"e":9,"c":"pl-s1"},{"s":3,"e":4,"c":"pl-c1"},{"s":12,"e":15,"c":"pl-k"},{"s":17,"e":24,"c":"pl-v"},{"s":25,"e":35,"c":"pl-s1"},{"s":25,"e":26,"c":"pl-c1"}],[],[{"s":3,"e":54,"c":"pl-c"}],[{"s":3,"e":7,"c":"pl-s1"},{"s":3,"e":4,"c":"pl-c1"},{"s":10,"e":15,"c":"pl-s1"},{"s":10,"e":11,"c":"pl-c1"},{"s":11,"e":15,"c":"pl-smi"},{"s":17,"e":34,"c":"pl-en"},{"s":35,"e":41,"c":"pl-s1"},{"s":35,"e":36,"c":"pl-c1"}],[],[{"s":3,"e":22,"c":"pl-c"}],[{"s":3,"e":15,"c":"pl-s1"},{"s":3,"e":4,"c":"pl-c1"},{"s":18,"e":23,"c":"pl-s1"},{"s":18,"e":19,"c":"pl-c1"},{"s":19,"e":23,"c":"pl-smi"},{"s":25,"e":37,"c":"pl-en"},{"s":38,"e":44,"c":"pl-s1"},{"s":38,"e":39,"c":"pl-c1"},{"s":46,"e":62,"c":"pl-s1"},{"s":46,"e":47,"c":"pl-c1"},{"s":64,"e":81,"c":"pl-s1"},{"s":64,"e":65,"c":"pl-c1"}],[],[{"s":3,"e":22,"c":"pl-c"}],[{"s":3,"e":16,"c":"pl-s1"},{"s":3,"e":4,"c":"pl-c1"},{"s":19,"e":24,"c":"pl-s1"},{"s":19,"e":20,"c":"pl-c1"},{"s":20,"e":24,"c":"pl-smi"},{"s":26,"e":42,"c":"pl-en"},{"s":43,"e":49,"c":"pl-s1"},{"s":43,"e":44,"c":"pl-c1"},{"s":51,"e":57,"c":"pl-s1"},{"s":51,"e":52,"c":"pl-c1"},{"s":58,"e":68,"c":"pl-s"},{"s":59,"e":67,"c":"pl-s"},{"s":70,"e":80,"c":"pl-s"},{"s":71,"e":79,"c":"pl-s"}],[],[{"s":3,"e":86,"c":"pl-c"}],[{"s":3,"e":5,"c":"pl-k"},{"s":8,"e":21,"c":"pl-s1"},{"s":8,"e":9,"c":"pl-c1"},{"s":25,"e":31,"c":"pl-s"},{"s":26,"e":30,"c":"pl-s"},{"s":35,"e":48,"c":"pl-s1"},{"s":35,"e":36,"c":"pl-c1"},{"s":52,"e":58,"c":"pl-s"},{"s":53,"e":57,"c":"pl-s"},{"s":64,"e":76,"c":"pl-s1"},{"s":64,"e":65,"c":"pl-c1"},{"s":80,"e":94,"c":"pl-s1"},{"s":80,"e":81,"c":"pl-c1"},{"s":97,"e":103,"c":"pl-s1"},{"s":97,"e":98,"c":"pl-c1"},{"s":105,"e":131,"c":"pl-en"}],[],[{"s":4,"e":50,"c":"pl-c"}],[{"s":4,"e":9,"c":"pl-s1"},{"s":4,"e":5,"c":"pl-c1"},{"s":5,"e":9,"c":"pl-smi"},{"s":11,"e":32,"c":"pl-en"},{"s":33,"e":39,"c":"pl-s1"},{"s":33,"e":34,"c":"pl-c1"},{"s":41,"e":55,"c":"pl-s1"},{"s":41,"e":42,"c":"pl-c1"}],[],[{"s":4,"e":16,"c":"pl-s1"},{"s":4,"e":5,"c":"pl-c1"},{"s":19,"e":23,"c":"pl-c1"}],[],[],[{"s":3,"e":5,"c":"pl-k"},{"s":7,"e":20,"c":"pl-s1"},{"s":7,"e":8,"c":"pl-c1"},{"s":24,"e":29,"c":"pl-s"},{"s":25,"e":28,"c":"pl-s"}],[],[{"s":4,"e":72,"c":"pl-c"}],[{"s":4,"e":9,"c":"pl-s1"},{"s":4,"e":5,"c":"pl-c1"},{"s":5,"e":9,"c":"pl-smi"},{"s":11,"e":32,"c":"pl-en"},{"s":33,"e":39,"c":"pl-s1"},{"s":33,"e":34,"c":"pl-c1"}],[],[],[{"s":3,"e":39,"c":"pl-c"}],[{"s":3,"e":5,"c":"pl-k"},{"s":7,"e":22,"c":"pl-s1"},{"s":7,"e":8,"c":"pl-c1"},{"s":27,"e":40,"c":"pl-s1"},{"s":27,"e":28,"c":"pl-c1"},{"s":44,"e":50,"c":"pl-s"},{"s":45,"e":49,"c":"pl-s"},{"s":54,"e":67,"c":"pl-s1"},{"s":54,"e":55,"c":"pl-c1"},{"s":71,"e":77,"c":"pl-s"},{"s":72,"e":76,"c":"pl-s"}],[],[{"s":4,"e":10,"c":"pl-s1"},{"s":4,"e":5,"c":"pl-c1"},{"s":12,"e":22,"c":"pl-en"}],[],[{"s":4,"e":16,"c":"pl-s1"},{"s":4,"e":5,"c":"pl-c1"},{"s":19,"e":23,"c":"pl-c1"}],[],[],[{"s":3,"e":51,"c":"pl-c"}],[{"s":3,"e":5,"c":"pl-k"},{"s":7,"e":26,"c":"pl-s1"},{"s":7,"e":8,"c":"pl-c1"},{"s":30,"e":39,"c":"pl-s1"},{"s":30,"e":31,"c":"pl-c1"},{"s":42,"e":61,"c":"pl-s1"},{"s":42,"e":43,"c":"pl-c1"}],[],[{"s":4,"e":50,"c":"pl-c"}],[{"s":4,"e":9,"c":"pl-s1"},{"s":4,"e":5,"c":"pl-c1"},{"s":5,"e":9,"c":"pl-smi"},{"s":11,"e":32,"c":"pl-en"},{"s":33,"e":39,"c":"pl-s1"},{"s":33,"e":34,"c":"pl-c1"},{"s":41,"e":55,"c":"pl-s1"},{"s":41,"e":42,"c":"pl-c1"}],[],[{"s":4,"e":42,"c":"pl-c"}],[{"s":4,"e":13,"c":"pl-s1"},{"s":4,"e":5,"c":"pl-c1"},{"s":16,"e":21,"c":"pl-s1"},{"s":16,"e":17,"c":"pl-c1"},{"s":17,"e":21,"c":"pl-smi"},{"s":23,"e":40,"c":"pl-en"},{"s":41,"e":47,"c":"pl-s1"},{"s":41,"e":42,"c":"pl-c1"},{"s":49,"e":68,"c":"pl-s1"},{"s":49,"e":50,"c":"pl-c1"}],[],[{"s":4,"e":16,"c":"pl-s1"},{"s":4,"e":5,"c":"pl-c1"},{"s":19,"e":23,"c":"pl-c1"}],[],[],[{"s":3,"e":43,"c":"pl-c"}],[{"s":3,"e":5,"c":"pl-k"},{"s":7,"e":19,"c":"pl-s1"},{"s":7,"e":8,"c":"pl-c1"},{"s":23,"e":27,"c":"pl-s1"},{"s":23,"e":24,"c":"pl-c1"},{"s":28,"e":37,"c":"pl-s"},{"s":29,"e":36,"c":"pl-s"}],[],[{"s":4,"e":10,"c":"pl-s1"},{"s":4,"e":5,"c":"pl-c1"},{"s":13,"e":19,"c":"pl-s1"},{"s":13,"e":14,"c":"pl-c1"},{"s":21,"e":31,"c":"pl-en"},{"s":32,"e":42,"c":"pl-s1"},{"s":32,"e":33,"c":"pl-c1"}],[],[{"s":4,"e":38,"c":"pl-c"}],[{"s":4,"e":6,"c":"pl-k"},{"s":8,"e":14,"c":"pl-s1"},{"s":8,"e":9,"c":"pl-c1"}],[],[{"s":5,"e":51,"c":"pl-c"}],[{"s":5,"e":20,"c":"pl-s1"},{"s":5,"e":6,"c":"pl-c1"},{"s":23,"e":29,"c":"pl-s1"},{"s":23,"e":24,"c":"pl-c1"},{"s":30,"e":40,"c":"pl-s"},{"s":31,"e":39,"c":"pl-s"}],[],[{"s":5,"e":25,"c":"pl-c"}],[{"s":5,"e":20,"c":"pl-s1"},{"s":5,"e":6,"c":"pl-c1"},{"s":21,"e":31,"c":"pl-s"},{"s":22,"e":30,"c":"pl-s"},{"s":35,"e":44,"c":"pl-s1"},{"s":35,"e":36,"c":"pl-c1"},{"s":47,"e":56,"c":"pl-s1"},{"s":47,"e":48,"c":"pl-c1"},{"s":59,"e":65,"c":"pl-s1"},{"s":59,"e":60,"c":"pl-c1"},{"s":67,"e":79,"c":"pl-en"}],[],[{"s":5,"e":59,"c":"pl-c"}],[{"s":5,"e":7,"c":"pl-k"},{"s":9,"e":22,"c":"pl-s1"},{"s":9,"e":10,"c":"pl-c1"},{"s":26,"e":32,"c":"pl-s"},{"s":27,"e":31,"c":"pl-s"},{"s":36,"e":42,"c":"pl-s1"},{"s":36,"e":37,"c":"pl-c1"},{"s":43,"e":53,"c":"pl-s"},{"s":44,"e":52,"c":"pl-s"},{"s":55,"e":65,"c":"pl-s"},{"s":56,"e":64,"c":"pl-s"},{"s":70,"e":82,"c":"pl-s"},{"s":71,"e":81,"c":"pl-s"}],[],[{"s":6,"e":21,"c":"pl-s1"},{"s":6,"e":7,"c":"pl-c1"},{"s":22,"e":32,"c":"pl-s"},{"s":23,"e":31,"c":"pl-s"},{"s":36,"e":48,"c":"pl-s"},{"s":37,"e":47,"c":"pl-s"}],[{"s":6,"e":21,"c":"pl-s1"},{"s":6,"e":7,"c":"pl-c1"},{"s":22,"e":33,"c":"pl-s"},{"s":23,"e":32,"c":"pl-s"},{"s":37,"e":42,"c":"pl-s"},{"s":38,"e":41,"c":"pl-s"}],[{"s":6,"e":21,"c":"pl-s1"},{"s":6,"e":7,"c":"pl-c1"},{"s":22,"e":37,"c":"pl-s"},{"s":23,"e":36,"c":"pl-s"},{"s":42,"e":48,"c":"pl-s"},{"s":43,"e":47,"c":"pl-s"}],[],[],[{"s":5,"e":11,"c":"pl-s1"},{"s":5,"e":6,"c":"pl-c1"},{"s":12,"e":22,"c":"pl-s"},{"s":13,"e":21,"c":"pl-s"},{"s":26,"e":41,"c":"pl-s1"},{"s":26,"e":27,"c":"pl-c1"}],[],[],[{"s":4,"e":10,"c":"pl-s1"},{"s":4,"e":5,"c":"pl-c1"},{"s":12,"e":17,"c":"pl-en"}],[],[],[],[],[{"s":1,"e":4,"c":"pl-c"}],[{"s":0,"e":44,"c":"pl-c"}],[{"s":0,"e":3,"c":"pl-c"}],[{"s":0,"e":48,"c":"pl-c"}],[{"s":0,"e":4,"c":"pl-c"}],[{"s":1,"e":7,"c":"pl-k"},{"s":8,"e":16,"c":"pl-k"},{"s":17,"e":46,"c":"pl-en"},{"s":47,"e":53,"c":"pl-s1"},{"s":47,"e":48,"c":"pl-c1"}],[],[{"s":2,"e":4,"c":"pl-k"},{"s":6,"e":11,"c":"pl-s1"},{"s":6,"e":7,"c":"pl-c1"},{"s":7,"e":11,"c":"pl-smi"},{"s":13,"e":19,"c":"pl-c1"},{"s":20,"e":52,"c":"pl-s"},{"s":21,"e":51,"c":"pl-s"}],[],[{"s":3,"e":20,"c":"pl-s1"},{"s":3,"e":4,"c":"pl-c1"},{"s":24,"e":29,"c":"pl-s1"},{"s":24,"e":25,"c":"pl-c1"},{"s":25,"e":29,"c":"pl-smi"},{"s":31,"e":37,"c":"pl-c1"},{"s":38,"e":56,"c":"pl-s"},{"s":39,"e":55,"c":"pl-s"}],[{"s":3,"e":21,"c":"pl-s1"},{"s":3,"e":4,"c":"pl-c1"},{"s":25,"e":30,"c":"pl-s1"},{"s":25,"e":26,"c":"pl-c1"},{"s":26,"e":30,"c":"pl-smi"},{"s":32,"e":38,"c":"pl-c1"},{"s":39,"e":58,"c":"pl-s"},{"s":40,"e":57,"c":"pl-s"}],[{"s":3,"e":15,"c":"pl-s1"},{"s":3,"e":4,"c":"pl-c1"},{"s":20,"e":26,"c":"pl-s1"},{"s":20,"e":21,"c":"pl-c1"},{"s":27,"e":37,"c":"pl-s"},{"s":28,"e":36,"c":"pl-s"},{"s":39,"e":49,"c":"pl-s"},{"s":40,"e":48,"c":"pl-s"}],[],[{"s":3,"e":25,"c":"pl-c"}],[{"s":3,"e":8,"c":"pl-s1"},{"s":3,"e":4,"c":"pl-c1"},{"s":11,"e":16,"c":"pl-s1"},{"s":11,"e":12,"c":"pl-c1"},{"s":12,"e":16,"c":"pl-smi"},{"s":18,"e":27,"c":"pl-c1"},{"s":29,"e":41,"c":"pl-en"},{"s":42,"e":54,"c":"pl-s1"},{"s":42,"e":43,"c":"pl-c1"}],[],[{"s":3,"e":5,"c":"pl-k"},{"s":7,"e":12,"c":"pl-s1"},{"s":7,"e":8,"c":"pl-c1"},{"s":17,"e":22,"c":"pl-c1"}],[],[{"s":4,"e":10,"c":"pl-k"},{"s":11,"e":16,"c":"pl-c1"}],[],[],[{"s":3,"e":47,"c":"pl-c"}],[{"s":3,"e":5,"c":"pl-k"},{"s":7,"e":12,"c":"pl-s1"},{"s":7,"e":8,"c":"pl-c1"},{"s":13,"e":20,"c":"pl-s"},{"s":14,"e":19,"c":"pl-s"},{"s":24,"e":41,"c":"pl-s1"},{"s":24,"e":25,"c":"pl-c1"},{"s":45,"e":50,"c":"pl-s1"},{"s":45,"e":46,"c":"pl-c1"},{"s":51,"e":59,"c":"pl-s"},{"s":52,"e":58,"c":"pl-s"},{"s":63,"e":81,"c":"pl-s1"},{"s":63,"e":64,"c":"pl-c1"}],[],[{"s":4,"e":66,"c":"pl-c"}],[{"s":4,"e":11,"c":"pl-s1"},{"s":4,"e":5,"c":"pl-c1"},{"s":14,"e":17,"c":"pl-k"},{"s":19,"e":26,"c":"pl-v"},{"s":27,"e":39,"c":"pl-s1"},{"s":27,"e":28,"c":"pl-c1"}],[],[{"s":4,"e":55,"c":"pl-c"}],[{"s":4,"e":9,"c":"pl-s1"},{"s":4,"e":5,"c":"pl-c1"},{"s":5,"e":9,"c":"pl-smi"},{"s":11,"e":28,"c":"pl-en"},{"s":29,"e":36,"c":"pl-s1"},{"s":29,"e":30,"c":"pl-c1"}],[],[{"s":4,"e":23,"c":"pl-c"}],[{"s":4,"e":9,"c":"pl-s1"},{"s":4,"e":5,"c":"pl-c1"},{"s":5,"e":9,"c":"pl-smi"},{"s":11,"e":23,"c":"pl-en"},{"s":24,"e":31,"c":"pl-s1"},{"s":24,"e":25,"c":"pl-c1"},{"s":33,"e":50,"c":"pl-s1"},{"s":33,"e":34,"c":"pl-c1"},{"s":52,"e":70,"c":"pl-s1"},{"s":52,"e":53,"c":"pl-c1"}],[],[{"s":4,"e":50,"c":"pl-c"}],[{"s":4,"e":9,"c":"pl-s1"},{"s":4,"e":5,"c":"pl-c1"},{"s":5,"e":9,"c":"pl-smi"},{"s":11,"e":32,"c":"pl-en"},{"s":33,"e":40,"c":"pl-s1"},{"s":33,"e":34,"c":"pl-c1"}],[],[{"s":4,"e":23,"c":"pl-c"}],[{"s":4,"e":17,"c":"pl-s1"},{"s":4,"e":5,"c":"pl-c1"},{"s":20,"e":25,"c":"pl-s1"},{"s":20,"e":21,"c":"pl-c1"},{"s":21,"e":25,"c":"pl-smi"},{"s":27,"e":43,"c":"pl-en"},{"s":44,"e":51,"c":"pl-s1"},{"s":44,"e":45,"c":"pl-c1"},{"s":53,"e":59,"c":"pl-s1"},{"s":53,"e":54,"c":"pl-c1"},{"s":60,"e":70,"c":"pl-s"},{"s":61,"e":69,"c":"pl-s"},{"s":72,"e":82,"c":"pl-s"},{"s":73,"e":81,"c":"pl-s"}],[],[{"s":4,"e":40,"c":"pl-c"}],[{"s":4,"e":6,"c":"pl-k"},{"s":8,"e":21,"c":"pl-s1"},{"s":8,"e":9,"c":"pl-c1"},{"s":25,"e":31,"c":"pl-s"},{"s":26,"e":30,"c":"pl-s"},{"s":35,"e":48,"c":"pl-s1"},{"s":35,"e":36,"c":"pl-c1"},{"s":52,"e":58,"c":"pl-s"},{"s":53,"e":57,"c":"pl-s"}],[],[{"s":5,"e":12,"c":"pl-s1"},{"s":5,"e":6,"c":"pl-c1"},{"s":14,"e":24,"c":"pl-en"}],[],[],[{"s":4,"e":23,"c":"pl-c"}],[{"s":4,"e":10,"c":"pl-s1"},{"s":4,"e":5,"c":"pl-c1"},{"s":13,"e":20,"c":"pl-s1"},{"s":13,"e":14,"c":"pl-c1"},{"s":22,"e":32,"c":"pl-en"},{"s":33,"e":45,"c":"pl-s1"},{"s":33,"e":34,"c":"pl-c1"}],[],[{"s":4,"e":6,"c":"pl-k"},{"s":8,"e":14,"c":"pl-s1"},{"s":8,"e":9,"c":"pl-c1"},{"s":19,"e":24,"c":"pl-c1"}],[],[{"s":5,"e":11,"c":"pl-k"},{"s":12,"e":17,"c":"pl-c1"}],[],[],[{"s":4,"e":37,"c":"pl-c"}],[{"s":4,"e":19,"c":"pl-s1"},{"s":4,"e":5,"c":"pl-c1"},{"s":22,"e":28,"c":"pl-s1"},{"s":22,"e":23,"c":"pl-c1"},{"s":29,"e":39,"c":"pl-s"},{"s":30,"e":38,"c":"pl-s"}],[{"s":4,"e":19,"c":"pl-s1"},{"s":4,"e":5,"c":"pl-c1"},{"s":20,"e":30,"c":"pl-s"},{"s":21,"e":29,"c":"pl-s"},{"s":34,"e":41,"c":"pl-s1"},{"s":34,"e":35,"c":"pl-c1"},{"s":43,"e":55,"c":"pl-en"}],[{"s":4,"e":10,"c":"pl-s1"},{"s":4,"e":5,"c":"pl-c1"},{"s":11,"e":21,"c":"pl-s"},{"s":12,"e":20,"c":"pl-s"},{"s":25,"e":40,"c":"pl-s1"},{"s":25,"e":26,"c":"pl-c1"}],[],[{"s":4,"e":11,"c":"pl-s1"},{"s":4,"e":5,"c":"pl-c1"},{"s":13,"e":18,"c":"pl-en"}],[],[],[],[],[{"s":1,"e":4,"c":"pl-c"}],[{"s":0,"e":20,"c":"pl-c"}],[{"s":0,"e":65,"c":"pl-c"}],[{"s":0,"e":3,"c":"pl-c"}],[{"s":0,"e":48,"c":"pl-c"}],[{"s":0,"e":4,"c":"pl-c"}],[{"s":1,"e":7,"c":"pl-k"},{"s":8,"e":16,"c":"pl-k"},{"s":17,"e":49,"c":"pl-en"},{"s":50,"e":56,"c":"pl-s1"},{"s":50,"e":51,"c":"pl-c1"}],[],[{"s":2,"e":6,"c":"pl-s1"},{"s":2,"e":3,"c":"pl-c1"},{"s":12,"e":18,"c":"pl-s1"},{"s":12,"e":13,"c":"pl-c1"},{"s":19,"e":24,"c":"pl-s"},{"s":20,"e":23,"c":"pl-s"}],[{"s":2,"e":19,"c":"pl-s1"},{"s":2,"e":3,"c":"pl-c1"},{"s":22,"e":28,"c":"pl-s1"},{"s":22,"e":23,"c":"pl-c1"},{"s":29,"e":42,"c":"pl-s"},{"s":30,"e":41,"c":"pl-s"}],[],[{"s":2,"e":34,"c":"pl-c"}],[{"s":2,"e":4,"c":"pl-k"},{"s":6,"e":11,"c":"pl-en"},{"s":12,"e":29,"c":"pl-s1"},{"s":12,"e":13,"c":"pl-c1"},{"s":30,"e":34,"c":"pl-s1"},{"s":30,"e":31,"c":"pl-c1"},{"s":35,"e":44,"c":"pl-s"},{"s":36,"e":43,"c":"pl-s"}],[],[{"s":3,"e":9,"c":"pl-k"}],[],[],[{"s":2,"e":59,"c":"pl-c"}],[{"s":2,"e":16,"c":"pl-en"},{"s":17,"e":72,"c":"pl-s"},{"s":18,"e":71,"c":"pl-s"},{"s":74,"e":78,"c":"pl-s1"},{"s":74,"e":75,"c":"pl-c1"},{"s":79,"e":90,"c":"pl-s"},{"s":80,"e":89,"c":"pl-s"},{"s":93,"e":101,"c":"pl-s1"},{"s":93,"e":94,"c":"pl-c1"}],[],[{"s":2,"e":47,"c":"pl-c"}],[{"s":2,"e":9,"c":"pl-k"},{"s":11,"e":19,"c":"pl-s1"},{"s":11,"e":12,"c":"pl-c1"},{"s":20,"e":21,"c":"pl-c1"},{"s":23,"e":25,"c":"pl-k"},{"s":26,"e":32,"c":"pl-s1"},{"s":26,"e":27,"c":"pl-c1"}],[],[{"s":3,"e":10,"c":"pl-k"},{"s":12,"e":29,"c":"pl-s1"},{"s":12,"e":13,"c":"pl-c1"},{"s":30,"e":34,"c":"pl-s1"},{"s":30,"e":31,"c":"pl-c1"},{"s":35,"e":44,"c":"pl-s"},{"s":36,"e":43,"c":"pl-s"},{"s":47,"e":49,"c":"pl-k"},{"s":50,"e":54,"c":"pl-s1"},{"s":50,"e":51,"c":"pl-c1"},{"s":58,"e":69,"c":"pl-s1"},{"s":58,"e":59,"c":"pl-c1"}],[],[{"s":4,"e":6,"c":"pl-k"},{"s":8,"e":14,"c":"pl-en"},{"s":15,"e":26,"c":"pl-s1"},{"s":15,"e":16,"c":"pl-c1"},{"s":28,"e":34,"c":"pl-s1"},{"s":28,"e":29,"c":"pl-c1"}],[],[{"s":11,"e":28,"c":"pl-s1"},{"s":11,"e":12,"c":"pl-c1"},{"s":29,"e":33,"c":"pl-s1"},{"s":29,"e":30,"c":"pl-c1"},{"s":34,"e":43,"c":"pl-s"},{"s":35,"e":42,"c":"pl-s"},{"s":46,"e":50,"c":"pl-s1"},{"s":46,"e":47,"c":"pl-c1"}],[],[],[],[],[{"s":2,"e":11,"c":"pl-s1"},{"s":2,"e":3,"c":"pl-c1"},{"s":14,"e":20,"c":"pl-s1"},{"s":14,"e":15,"c":"pl-c1"},{"s":21,"e":31,"c":"pl-s"},{"s":22,"e":30,"c":"pl-s"}],[],[{"s":2,"e":22,"c":"pl-c"}],[{"s":2,"e":11,"c":"pl-s1"},{"s":2,"e":3,"c":"pl-c1"},{"s":12,"e":31,"c":"pl-s"},{"s":13,"e":30,"c":"pl-s"},{"s":37,"e":42,"c":"pl-en"},{"s":43,"e":60,"c":"pl-s1"},{"s":43,"e":44,"c":"pl-c1"},{"s":61,"e":65,"c":"pl-s1"},{"s":61,"e":62,"c":"pl-c1"},{"s":66,"e":75,"c":"pl-s"},{"s":67,"e":74,"c":"pl-s"},{"s":81,"e":85,"c":"pl-c1"},{"s":88,"e":93,"c":"pl-c1"}],[{"s":2,"e":11,"c":"pl-s1"},{"s":2,"e":3,"c":"pl-c1"},{"s":12,"e":36,"c":"pl-s"},{"s":13,"e":35,"c":"pl-s"},{"s":41,"e":46,"c":"pl-en"},{"s":47,"e":64,"c":"pl-s1"},{"s":47,"e":48,"c":"pl-c1"},{"s":65,"e":69,"c":"pl-s1"},{"s":65,"e":66,"c":"pl-c1"},{"s":70,"e":79,"c":"pl-s"},{"s":71,"e":78,"c":"pl-s"},{"s":86,"e":91,"c":"pl-en"},{"s":92,"e":109,"c":"pl-s1"},{"s":92,"e":93,"c":"pl-c1"},{"s":110,"e":114,"c":"pl-s1"},{"s":110,"e":111,"c":"pl-c1"},{"s":115,"e":124,"c":"pl-s"},{"s":116,"e":123,"c":"pl-s"},{"s":130,"e":131,"c":"pl-c1"}],[],[{"s":2,"e":8,"c":"pl-s1"},{"s":2,"e":3,"c":"pl-c1"},{"s":9,"e":19,"c":"pl-s"},{"s":10,"e":18,"c":"pl-s"},{"s":23,"e":32,"c":"pl-s1"},{"s":23,"e":24,"c":"pl-c1"}],[{"s":2,"e":8,"c":"pl-s1"},{"s":2,"e":3,"c":"pl-c1"},{"s":9,"e":22,"c":"pl-s"},{"s":10,"e":21,"c":"pl-s"},{"s":26,"e":43,"c":"pl-s1"},{"s":26,"e":27,"c":"pl-c1"}],[],[],[{"s":1,"e":4,"c":"pl-c"}],[{"s":0,"e":44,"c":"pl-c"}],[{"s":0,"e":65,"c":"pl-c"}],[{"s":0,"e":3,"c":"pl-c"}],[{"s":0,"e":48,"c":"pl-c"}],[{"s":0,"e":4,"c":"pl-c"}],[{"s":1,"e":7,"c":"pl-k"},{"s":8,"e":16,"c":"pl-k"},{"s":17,"e":52,"c":"pl-en"},{"s":53,"e":59,"c":"pl-s1"},{"s":53,"e":54,"c":"pl-c1"}],[],[{"s":2,"e":41,"c":"pl-c"}],[{"s":2,"e":17,"c":"pl-s1"},{"s":2,"e":3,"c":"pl-c1"},{"s":20,"e":26,"c":"pl-s1"},{"s":20,"e":21,"c":"pl-c1"},{"s":27,"e":43,"c":"pl-s"},{"s":28,"e":42,"c":"pl-s"}],[{"s":2,"e":10,"c":"pl-s1"},{"s":2,"e":3,"c":"pl-c1"},{"s":13,"e":28,"c":"pl-s1"},{"s":13,"e":14,"c":"pl-c1"},{"s":30,"e":37,"c":"pl-c1"}],[{"s":2,"e":18,"c":"pl-s1"},{"s":2,"e":3,"c":"pl-c1"},{"s":21,"e":36,"c":"pl-s1"},{"s":21,"e":22,"c":"pl-c1"},{"s":38,"e":53,"c":"pl-c1"}],[],[{"s":2,"e":64,"c":"pl-c"}],[{"s":2,"e":16,"c":"pl-en"},{"s":17,"e":67,"c":"pl-s"},{"s":18,"e":66,"c":"pl-s"},{"s":69,"e":77,"c":"pl-s1"},{"s":69,"e":70,"c":"pl-c1"},{"s":79,"e":87,"c":"pl-s1"},{"s":79,"e":80,"c":"pl-c1"}],[{"s":2,"e":10,"c":"pl-s1"},{"s":2,"e":3,"c":"pl-c1"},{"s":11,"e":12,"c":"pl-c1"},{"s":16,"e":28,"c":"pl-en"},{"s":29,"e":37,"c":"pl-s1"},{"s":29,"e":30,"c":"pl-c1"},{"s":38,"e":39,"c":"pl-c1"}],[],[{"s":2,"e":52,"c":"pl-c"}],[{"s":2,"e":24,"c":"pl-s1"},{"s":2,"e":3,"c":"pl-c1"},{"s":27,"e":32,"c":"pl-c1"}],[{"s":2,"e":9,"c":"pl-k"},{"s":11,"e":27,"c":"pl-s1"},{"s":11,"e":12,"c":"pl-c1"},{"s":28,"e":30,"c":"pl-k"},{"s":31,"e":42,"c":"pl-s1"},{"s":31,"e":32,"c":"pl-c1"}],[],[{"s":3,"e":5,"c":"pl-k"},{"s":8,"e":16,"c":"pl-en"},{"s":17,"e":28,"c":"pl-s1"},{"s":17,"e":18,"c":"pl-c1"},{"s":29,"e":40,"c":"pl-s"},{"s":30,"e":39,"c":"pl-s"},{"s":43,"e":51,"c":"pl-s1"},{"s":43,"e":44,"c":"pl-c1"},{"s":52,"e":53,"c":"pl-c1"}],[],[{"s":4,"e":26,"c":"pl-s1"},{"s":4,"e":5,"c":"pl-c1"},{"s":29,"e":33,"c":"pl-c1"}],[{"s":4,"e":9,"c":"pl-k"}],[],[],[],[{"s":2,"e":67,"c":"pl-c"}],[{"s":2,"e":7,"c":"pl-s1"},{"s":2,"e":3,"c":"pl-c1"},{"s":3,"e":7,"c":"pl-smi"},{"s":9,"e":17,"c":"pl-c1"},{"s":19,"e":30,"c":"pl-en"}],[{"s":3,"e":34,"c":"pl-s"},{"s":4,"e":33,"c":"pl-s"},{"s":38,"e":49,"c":"pl-en"},{"s":50,"e":58,"c":"pl-s1"},{"s":50,"e":51,"c":"pl-c1"},{"s":59,"e":60,"c":"pl-c1"}],[{"s":3,"e":34,"c":"pl-s"},{"s":4,"e":33,"c":"pl-s"},{"s":39,"e":42,"c":"pl-smi"},{"s":45,"e":67,"c":"pl-s1"},{"s":45,"e":46,"c":"pl-c1"}],[],[],[],[{"s":1,"e":4,"c":"pl-c"}],[{"s":0,"e":34,"c":"pl-c"}],[{"s":0,"e":3,"c":"pl-c"}],[{"s":0,"e":37,"c":"pl-c"}],[{"s":0,"e":3,"c":"pl-c"}],[{"s":0,"e":46,"c":"pl-c"}],[{"s":0,"e":4,"c":"pl-c"}],[{"s":1,"e":7,"c":"pl-k"},{"s":8,"e":16,"c":"pl-k"},{"s":17,"e":29,"c":"pl-en"},{"s":30,"e":36,"c":"pl-s1"},{"s":30,"e":31,"c":"pl-c1"},{"s":38,"e":48,"c":"pl-s1"},{"s":38,"e":39,"c":"pl-c1"},{"s":50,"e":61,"c":"pl-s1"},{"s":50,"e":51,"c":"pl-c1"}],[],[{"s":2,"e":13,"c":"pl-s1"},{"s":2,"e":3,"c":"pl-c1"},{"s":16,"e":21,"c":"pl-c1"}],[],[{"s":2,"e":25,"c":"pl-c"}],[{"s":2,"e":10,"c":"pl-s1"},{"s":2,"e":3,"c":"pl-c1"},{"s":13,"e":19,"c":"pl-s1"},{"s":13,"e":14,"c":"pl-c1"},{"s":21,"e":37,"c":"pl-en"}],[{"s":2,"e":6,"c":"pl-en"},{"s":7,"e":14,"c":"pl-s"},{"s":8,"e":13,"c":"pl-s"},{"s":18,"e":24,"c":"pl-s1"},{"s":18,"e":19,"c":"pl-c1"},{"s":26,"e":34,"c":"pl-s"},{"s":27,"e":33,"c":"pl-s"},{"s":39,"e":46,"c":"pl-s1"},{"s":39,"e":40,"c":"pl-c1"},{"s":52,"e":60,"c":"pl-s1"},{"s":52,"e":53,"c":"pl-c1"}],[],[{"s":2,"e":23,"c":"pl-c"}],[{"s":2,"e":13,"c":"pl-s1"},{"s":2,"e":3,"c":"pl-c1"},{"s":16,"e":22,"c":"pl-s1"},{"s":16,"e":17,"c":"pl-c1"},{"s":25,"e":32,"c":"pl-s1"},{"s":25,"e":26,"c":"pl-c1"}],[],[{"s":2,"e":25,"c":"pl-c"}],[{"s":2,"e":4,"c":"pl-k"},{"s":6,"e":16,"c":"pl-s1"},{"s":6,"e":7,"c":"pl-c1"},{"s":20,"e":30,"c":"pl-s1"},{"s":20,"e":21,"c":"pl-c1"},{"s":33,"e":39,"c":"pl-s1"},{"s":33,"e":34,"c":"pl-c1"}],[],[{"s":3,"e":9,"c":"pl-s1"},{"s":3,"e":4,"c":"pl-c1"},{"s":12,"e":22,"c":"pl-s1"},{"s":12,"e":13,"c":"pl-c1"}],[{"s":3,"e":10,"c":"pl-s1"},{"s":3,"e":4,"c":"pl-c1"},{"s":13,"e":18,"c":"pl-en"},{"s":19,"e":25,"c":"pl-s1"},{"s":19,"e":20,"c":"pl-c1"},{"s":28,"e":39,"c":"pl-s1"},{"s":28,"e":29,"c":"pl-c1"}],[],[{"s":3,"e":14,"c":"pl-s1"},{"s":3,"e":4,"c":"pl-c1"},{"s":17,"e":21,"c":"pl-c1"}],[],[],[{"s":2,"e":26,"c":"pl-c"}],[{"s":2,"e":4,"c":"pl-k"},{"s":6,"e":17,"c":"pl-s1"},{"s":6,"e":7,"c":"pl-c1"},{"s":21,"e":32,"c":"pl-s1"},{"s":21,"e":22,"c":"pl-c1"},{"s":35,"e":42,"c":"pl-s1"},{"s":35,"e":36,"c":"pl-c1"}],[],[{"s":3,"e":10,"c":"pl-s1"},{"s":3,"e":4,"c":"pl-c1"},{"s":13,"e":24,"c":"pl-s1"},{"s":13,"e":14,"c":"pl-c1"}],[{"s":3,"e":9,"c":"pl-s1"},{"s":3,"e":4,"c":"pl-c1"},{"s":12,"e":17,"c":"pl-en"},{"s":18,"e":25,"c":"pl-s1"},{"s":18,"e":19,"c":"pl-c1"},{"s":28,"e":39,"c":"pl-s1"},{"s":28,"e":29,"c":"pl-c1"}],[],[{"s":3,"e":14,"c":"pl-s1"},{"s":3,"e":4,"c":"pl-c1"},{"s":17,"e":21,"c":"pl-c1"}],[],[],[{"s":2,"e":45,"c":"pl-c"}],[{"s":2,"e":4,"c":"pl-k"},{"s":6,"e":17,"c":"pl-s1"},{"s":6,"e":7,"c":"pl-c1"}],[],[{"s":3,"e":9,"c":"pl-s1"},{"s":3,"e":4,"c":"pl-c1"},{"s":11,"e":22,"c":"pl-en"},{"s":23,"e":29,"c":"pl-s1"},{"s":23,"e":24,"c":"pl-c1"},{"s":31,"e":38,"c":"pl-s1"},{"s":31,"e":32,"c":"pl-c1"},{"s":41,"e":48,"c":"pl-v"},{"s":50,"e":64,"c":"pl-c1"},{"s":66,"e":67,"c":"pl-c1"},{"s":69,"e":74,"c":"pl-c1"}],[],[],[{"s":2,"e":8,"c":"pl-k"},{"s":9,"e":20,"c":"pl-s1"},{"s":9,"e":10,"c":"pl-c1"}],[],[],[{"s":1,"e":4,"c":"pl-c"}],[{"s":0,"e":48,"c":"pl-c"}],[{"s":0,"e":3,"c":"pl-c"}],[{"s":0,"e":38,"c":"pl-c"}],[{"s":0,"e":74,"c":"pl-c"}],[{"s":0,"e":3,"c":"pl-c"}],[{"s":0,"e":45,"c":"pl-c"}],[{"s":0,"e":4,"c":"pl-c"}],[{"s":1,"e":7,"c":"pl-k"},{"s":8,"e":16,"c":"pl-k"},{"s":17,"e":33,"c":"pl-en"},{"s":34,"e":40,"c":"pl-s1"},{"s":34,"e":35,"c":"pl-c1"},{"s":42,"e":51,"c":"pl-s1"},{"s":42,"e":43,"c":"pl-c1"}],[],[{"s":2,"e":66,"c":"pl-c"}],[{"s":2,"e":8,"c":"pl-k"},{"s":10,"e":19,"c":"pl-s1"},{"s":10,"e":11,"c":"pl-c1"}],[],[{"s":3,"e":7,"c":"pl-k"},{"s":8,"e":20,"c":"pl-s"},{"s":9,"e":19,"c":"pl-s"}],[{"s":4,"e":16,"c":"pl-s1"},{"s":4,"e":5,"c":"pl-c1"},{"s":19,"e":25,"c":"pl-s"},{"s":20,"e":24,"c":"pl-s"}],[{"s":3,"e":8,"c":"pl-k"}],[],[{"s":3,"e":7,"c":"pl-k"},{"s":8,"e":19,"c":"pl-s"},{"s":9,"e":18,"c":"pl-s"}],[{"s":4,"e":16,"c":"pl-s1"},{"s":4,"e":5,"c":"pl-c1"},{"s":19,"e":24,"c":"pl-s"},{"s":20,"e":23,"c":"pl-s"}],[{"s":3,"e":8,"c":"pl-k"}],[],[{"s":3,"e":7,"c":"pl-k"},{"s":8,"e":19,"c":"pl-s"},{"s":9,"e":18,"c":"pl-s"}],[{"s":4,"e":16,"c":"pl-s1"},{"s":4,"e":5,"c":"pl-c1"},{"s":19,"e":24,"c":"pl-s"},{"s":20,"e":23,"c":"pl-s"}],[{"s":3,"e":8,"c":"pl-k"}],[],[{"s":3,"e":7,"c":"pl-k"},{"s":8,"e":20,"c":"pl-s"},{"s":9,"e":19,"c":"pl-s"}],[{"s":4,"e":16,"c":"pl-s1"},{"s":4,"e":5,"c":"pl-c1"},{"s":19,"e":25,"c":"pl-s"},{"s":20,"e":24,"c":"pl-s"}],[{"s":3,"e":8,"c":"pl-k"}],[],[{"s":3,"e":10,"c":"pl-k"}],[{"s":4,"e":16,"c":"pl-s1"},{"s":4,"e":5,"c":"pl-c1"},{"s":19,"e":25,"c":"pl-s"},{"s":20,"e":24,"c":"pl-s"}],[{"s":3,"e":8,"c":"pl-k"}],[],[],[{"s":2,"e":8,"c":"pl-s1"},{"s":2,"e":3,"c":"pl-c1"},{"s":10,"e":24,"c":"pl-en"},{"s":25,"e":37,"c":"pl-s1"},{"s":25,"e":26,"c":"pl-c1"}],[],[{"s":2,"e":8,"c":"pl-k"},{"s":9,"e":21,"c":"pl-s1"},{"s":9,"e":10,"c":"pl-c1"}],[],[],[{"s":1,"e":4,"c":"pl-c"}],[{"s":0,"e":53,"c":"pl-c"}],[{"s":0,"e":3,"c":"pl-c"}],[{"s":0,"e":38,"c":"pl-c"}],[{"s":0,"e":47,"c":"pl-c"}],[{"s":0,"e":4,"c":"pl-c"}],[{"s":1,"e":7,"c":"pl-k"},{"s":8,"e":16,"c":"pl-k"},{"s":17,"e":38,"c":"pl-en"},{"s":39,"e":45,"c":"pl-s1"},{"s":39,"e":40,"c":"pl-c1"},{"s":47,"e":55,"c":"pl-s1"},{"s":47,"e":48,"c":"pl-c1"},{"s":58,"e":60,"c":"pl-c1"}],[],[{"s":2,"e":15,"c":"pl-s1"},{"s":2,"e":3,"c":"pl-c1"},{"s":18,"e":24,"c":"pl-s1"},{"s":18,"e":19,"c":"pl-c1"},{"s":26,"e":40,"c":"pl-en"}],[],[{"s":2,"e":8,"c":"pl-k"},{"s":10,"e":23,"c":"pl-s1"},{"s":10,"e":11,"c":"pl-c1"}],[],[{"s":3,"e":7,"c":"pl-k"},{"s":8,"e":14,"c":"pl-s"},{"s":9,"e":13,"c":"pl-s"}],[{"s":4,"e":10,"c":"pl-s1"},{"s":4,"e":5,"c":"pl-c1"},{"s":12,"e":31,"c":"pl-en"},{"s":33,"e":40,"c":"pl-v"},{"s":42,"e":58,"c":"pl-c1"}],[{"s":4,"e":10,"c":"pl-s1"},{"s":4,"e":5,"c":"pl-c1"},{"s":12,"e":38,"c":"pl-en"},{"s":39,"e":47,"c":"pl-s1"},{"s":39,"e":40,"c":"pl-c1"}],[{"s":3,"e":8,"c":"pl-k"}],[],[{"s":3,"e":7,"c":"pl-k"},{"s":8,"e":13,"c":"pl-s"},{"s":9,"e":12,"c":"pl-s"}],[{"s":4,"e":6,"c":"pl-k"},{"s":8,"e":14,"c":"pl-s1"},{"s":8,"e":9,"c":"pl-c1"},{"s":16,"e":30,"c":"pl-en"},{"s":35,"e":38,"c":"pl-c1"}],[],[{"s":5,"e":11,"c":"pl-s1"},{"s":5,"e":6,"c":"pl-c1"},{"s":13,"e":26,"c":"pl-en"},{"s":27,"e":30,"c":"pl-c1"},{"s":33,"e":40,"c":"pl-v"},{"s":42,"e":57,"c":"pl-c1"},{"s":59,"e":61,"c":"pl-c1"},{"s":63,"e":68,"c":"pl-c1"},{"s":70,"e":75,"c":"pl-c1"}],[{"s":5,"e":11,"c":"pl-s1"},{"s":5,"e":6,"c":"pl-c1"},{"s":13,"e":25,"c":"pl-en"},{"s":27,"e":34,"c":"pl-v"},{"s":36,"e":58,"c":"pl-c1"}],[],[{"s":3,"e":8,"c":"pl-k"}],[],[{"s":3,"e":7,"c":"pl-k"},{"s":8,"e":14,"c":"pl-s"},{"s":9,"e":13,"c":"pl-s"}],[{"s":4,"e":10,"c":"pl-s1"},{"s":4,"e":5,"c":"pl-c1"},{"s":12,"e":21,"c":"pl-en"},{"s":22,"e":46,"c":"pl-s"},{"s":23,"e":45,"c":"pl-s"},{"s":48,"e":49,"c":"pl-c1"}],[{"s":4,"e":10,"c":"pl-s1"},{"s":4,"e":5,"c":"pl-c1"},{"s":12,"e":21,"c":"pl-en"},{"s":22,"e":44,"c":"pl-s"},{"s":23,"e":43,"c":"pl-s"},{"s":46,"e":47,"c":"pl-c1"}],[{"s":4,"e":10,"c":"pl-s1"},{"s":4,"e":5,"c":"pl-c1"},{"s":12,"e":21,"c":"pl-en"},{"s":22,"e":35,"c":"pl-s"},{"s":23,"e":34,"c":"pl-s"},{"s":37,"e":38,"c":"pl-c1"}],[{"s":4,"e":10,"c":"pl-s1"},{"s":4,"e":5,"c":"pl-c1"},{"s":12,"e":38,"c":"pl-en"},{"s":39,"e":47,"c":"pl-s1"},{"s":39,"e":40,"c":"pl-c1"}],[{"s":3,"e":8,"c":"pl-k"}],[],[{"s":3,"e":10,"c":"pl-k"}],[{"s":4,"e":17,"c":"pl-c"}],[{"s":3,"e":8,"c":"pl-k"}],[],[],[],[{"s":1,"e":4,"c":"pl-c"}],[{"s":0,"e":30,"c":"pl-c"}],[{"s":0,"e":3,"c":"pl-c"}],[{"s":0,"e":38,"c":"pl-c"}],[{"s":0,"e":3,"c":"pl-c"}],[{"s":0,"e":46,"c":"pl-c"}],[{"s":0,"e":33,"c":"pl-c"}],[{"s":0,"e":4,"c":"pl-c"}],[{"s":1,"e":7,"c":"pl-k"},{"s":8,"e":16,"c":"pl-k"},{"s":17,"e":34,"c":"pl-en"},{"s":35,"e":41,"c":"pl-s1"},{"s":35,"e":36,"c":"pl-c1"}],[],[{"s":2,"e":12,"c":"pl-s1"},{"s":2,"e":3,"c":"pl-c1"},{"s":15,"e":20,"c":"pl-c1"},{"s":22,"e":85,"c":"pl-c"}],[{"s":2,"e":13,"c":"pl-s1"},{"s":2,"e":3,"c":"pl-c1"},{"s":16,"e":20,"c":"pl-c1"},{"s":23,"e":55,"c":"pl-c"}],[],[{"s":2,"e":40,"c":"pl-c"}],[{"s":2,"e":4,"c":"pl-k"},{"s":8,"e":26,"c":"pl-s1"},{"s":8,"e":9,"c":"pl-c1"},{"s":29,"e":35,"c":"pl-s1"},{"s":29,"e":30,"c":"pl-c1"},{"s":37,"e":56,"c":"pl-en"}],[],[{"s":3,"e":36,"c":"pl-c"}],[{"s":3,"e":21,"c":"pl-s1"},{"s":3,"e":4,"c":"pl-c1"},{"s":25,"e":32,"c":"pl-v"},{"s":34,"e":55,"c":"pl-c1"}],[],[],[{"s":2,"e":8,"c":"pl-k"},{"s":10,"e":28,"c":"pl-s1"},{"s":10,"e":11,"c":"pl-c1"}],[],[{"s":3,"e":7,"c":"pl-k"},{"s":9,"e":16,"c":"pl-v"},{"s":18,"e":39,"c":"pl-c1"}],[{"s":4,"e":17,"c":"pl-c"}],[{"s":4,"e":15,"c":"pl-s1"},{"s":4,"e":5,"c":"pl-c1"},{"s":18,"e":23,"c":"pl-c1"}],[{"s":3,"e":8,"c":"pl-k"}],[],[{"s":3,"e":7,"c":"pl-k"},{"s":9,"e":16,"c":"pl-v"},{"s":18,"e":37,"c":"pl-c1"}],[{"s":4,"e":17,"c":"pl-c"}],[{"s":4,"e":15,"c":"pl-s1"},{"s":4,"e":5,"c":"pl-c1"},{"s":18,"e":23,"c":"pl-c1"}],[{"s":3,"e":8,"c":"pl-k"}],[],[{"s":3,"e":7,"c":"pl-k"},{"s":9,"e":16,"c":"pl-v"},{"s":18,"e":38,"c":"pl-c1"}],[{"s":4,"e":10,"c":"pl-s1"},{"s":4,"e":5,"c":"pl-c1"},{"s":12,"e":21,"c":"pl-en"}],[{"s":3,"e":8,"c":"pl-k"}],[],[{"s":3,"e":7,"c":"pl-k"},{"s":9,"e":16,"c":"pl-v"},{"s":18,"e":41,"c":"pl-c1"}],[{"s":4,"e":10,"c":"pl-s1"},{"s":4,"e":5,"c":"pl-c1"},{"s":12,"e":23,"c":"pl-en"},{"s":24,"e":30,"c":"pl-s"},{"s":25,"e":29,"c":"pl-s"},{"s":32,"e":35,"c":"pl-c1"}],[{"s":3,"e":8,"c":"pl-k"}],[],[{"s":3,"e":7,"c":"pl-k"},{"s":9,"e":16,"c":"pl-v"},{"s":18,"e":40,"c":"pl-c1"}],[{"s":4,"e":10,"c":"pl-s1"},{"s":4,"e":5,"c":"pl-c1"},{"s":12,"e":21,"c":"pl-en"}],[{"s":3,"e":8,"c":"pl-k"}],[],[{"s":3,"e":7,"c":"pl-k"},{"s":9,"e":16,"c":"pl-v"},{"s":18,"e":37,"c":"pl-c1"}],[{"s":4,"e":10,"c":"pl-s1"},{"s":4,"e":5,"c":"pl-c1"},{"s":12,"e":26,"c":"pl-en"}],[{"s":4,"e":14,"c":"pl-s1"},{"s":4,"e":5,"c":"pl-c1"},{"s":17,"e":21,"c":"pl-c1"}],[{"s":3,"e":8,"c":"pl-k"}],[],[{"s":3,"e":7,"c":"pl-k"},{"s":9,"e":16,"c":"pl-v"},{"s":18,"e":38,"c":"pl-c1"}],[{"s":4,"e":10,"c":"pl-s1"},{"s":4,"e":5,"c":"pl-c1"},{"s":12,"e":23,"c":"pl-en"},{"s":24,"e":30,"c":"pl-s"},{"s":25,"e":29,"c":"pl-s"},{"s":32,"e":34,"c":"pl-c1"}],[{"s":4,"e":14,"c":"pl-s1"},{"s":4,"e":5,"c":"pl-c1"},{"s":17,"e":21,"c":"pl-c1"}],[{"s":3,"e":8,"c":"pl-k"}],[],[{"s":3,"e":7,"c":"pl-k"},{"s":9,"e":16,"c":"pl-v"},{"s":18,"e":41,"c":"pl-c1"}],[{"s":4,"e":10,"c":"pl-s1"},{"s":4,"e":5,"c":"pl-c1"},{"s":12,"e":27,"c":"pl-en"}],[{"s":4,"e":14,"c":"pl-s1"},{"s":4,"e":5,"c":"pl-c1"},{"s":17,"e":21,"c":"pl-c1"}],[{"s":3,"e":8,"c":"pl-k"}],[],[{"s":3,"e":7,"c":"pl-k"},{"s":9,"e":16,"c":"pl-v"},{"s":18,"e":40,"c":"pl-c1"}],[{"s":4,"e":10,"c":"pl-s1"},{"s":4,"e":5,"c":"pl-c1"},{"s":12,"e":23,"c":"pl-en"},{"s":24,"e":30,"c":"pl-s"},{"s":25,"e":29,"c":"pl-s"},{"s":32,"e":35,"c":"pl-c1"}],[{"s":4,"e":14,"c":"pl-s1"},{"s":4,"e":5,"c":"pl-c1"},{"s":17,"e":21,"c":"pl-c1"}],[{"s":3,"e":8,"c":"pl-k"}],[],[{"s":3,"e":10,"c":"pl-k"}],[{"s":4,"e":17,"c":"pl-c"}],[{"s":4,"e":15,"c":"pl-s1"},{"s":4,"e":5,"c":"pl-c1"},{"s":18,"e":23,"c":"pl-c1"}],[{"s":3,"e":8,"c":"pl-k"}],[],[],[{"s":2,"e":39,"c":"pl-c"}],[{"s":2,"e":8,"c":"pl-s1"},{"s":2,"e":3,"c":"pl-c1"},{"s":10,"e":29,"c":"pl-en"},{"s":31,"e":38,"c":"pl-v"},{"s":40,"e":59,"c":"pl-c1"}],[],[{"s":2,"e":8,"c":"pl-k"},{"s":10,"e":19,"c":"pl-s"},{"s":11,"e":18,"c":"pl-s"},{"s":23,"e":34,"c":"pl-s1"},{"s":23,"e":24,"c":"pl-c1"},{"s":36,"e":44,"c":"pl-s"},{"s":37,"e":43,"c":"pl-s"},{"s":48,"e":58,"c":"pl-s1"},{"s":48,"e":49,"c":"pl-c1"}],[],[],[{"s":1,"e":4,"c":"pl-c"}],[{"s":0,"e":25,"c":"pl-c"}],[{"s":0,"e":3,"c":"pl-c"}],[{"s":0,"e":39,"c":"pl-c"}],[{"s":0,"e":56,"c":"pl-c"}],[{"s":0,"e":3,"c":"pl-c"}],[{"s":0,"e":66,"c":"pl-c"}],[{"s":0,"e":4,"c":"pl-c"}],[{"s":1,"e":7,"c":"pl-k"},{"s":8,"e":16,"c":"pl-k"},{"s":17,"e":34,"c":"pl-en"},{"s":35,"e":41,"c":"pl-s1"},{"s":35,"e":36,"c":"pl-c1"},{"s":43,"e":58,"c":"pl-s1"},{"s":43,"e":44,"c":"pl-c1"}],[],[{"s":2,"e":25,"c":"pl-c"}],[{"s":2,"e":10,"c":"pl-s1"},{"s":2,"e":3,"c":"pl-c1"},{"s":13,"e":19,"c":"pl-s1"},{"s":13,"e":14,"c":"pl-c1"},{"s":21,"e":37,"c":"pl-en"}],[{"s":2,"e":6,"c":"pl-en"},{"s":7,"e":14,"c":"pl-s"},{"s":8,"e":13,"c":"pl-s"},{"s":18,"e":24,"c":"pl-s1"},{"s":18,"e":19,"c":"pl-c1"},{"s":26,"e":34,"c":"pl-s"},{"s":27,"e":33,"c":"pl-s"},{"s":39,"e":46,"c":"pl-s1"},{"s":39,"e":40,"c":"pl-c1"},{"s":52,"e":60,"c":"pl-s1"},{"s":52,"e":53,"c":"pl-c1"}],[],[{"s":2,"e":11,"c":"pl-s1"},{"s":2,"e":3,"c":"pl-c1"},{"s":14,"e":20,"c":"pl-en"},{"s":21,"e":27,"c":"pl-s1"},{"s":21,"e":22,"c":"pl-c1"},{"s":29,"e":41,"c":"pl-en"}],[],[{"s":2,"e":23,"c":"pl-c"}],[{"s":2,"e":13,"c":"pl-s1"},{"s":2,"e":3,"c":"pl-c1"},{"s":16,"e":22,"c":"pl-s1"},{"s":16,"e":17,"c":"pl-c1"},{"s":25,"e":32,"c":"pl-s1"},{"s":25,"e":26,"c":"pl-c1"}],[],[{"s":2,"e":7,"c":"pl-k"},{"s":9,"e":18,"c":"pl-s1"},{"s":9,"e":10,"c":"pl-c1"},{"s":22,"e":37,"c":"pl-s1"},{"s":22,"e":23,"c":"pl-c1"}],[],[{"s":3,"e":60,"c":"pl-c"}],[{"s":3,"e":14,"c":"pl-s1"},{"s":3,"e":4,"c":"pl-c1"},{"s":17,"e":26,"c":"pl-s1"},{"s":17,"e":18,"c":"pl-c1"},{"s":29,"e":44,"c":"pl-s1"},{"s":29,"e":30,"c":"pl-c1"}],[{"s":3,"e":6,"c":"pl-s1"},{"s":3,"e":4,"c":"pl-c1"},{"s":9,"e":13,"c":"pl-en"},{"s":14,"e":20,"c":"pl-s1"},{"s":14,"e":15,"c":"pl-c1"},{"s":23,"e":30,"c":"pl-s1"},{"s":23,"e":24,"c":"pl-c1"},{"s":33,"e":44,"c":"pl-s1"},{"s":33,"e":34,"c":"pl-c1"},{"s":47,"e":58,"c":"pl-s1"},{"s":47,"e":48,"c":"pl-c1"}],[],[{"s":3,"e":43,"c":"pl-c"}],[{"s":3,"e":6,"c":"pl-s1"},{"s":3,"e":4,"c":"pl-c1"},{"s":10,"e":17,"c":"pl-s1"},{"s":10,"e":11,"c":"pl-c1"},{"s":20,"e":23,"c":"pl-s1"},{"s":20,"e":21,"c":"pl-c1"},{"s":27,"e":30,"c":"pl-c1"}],[{"s":3,"e":6,"c":"pl-s1"},{"s":3,"e":4,"c":"pl-c1"},{"s":9,"e":12,"c":"pl-s1"},{"s":9,"e":10,"c":"pl-c1"},{"s":15,"e":17,"c":"pl-c1"},{"s":20,"e":23,"c":"pl-s1"},{"s":20,"e":21,"c":"pl-c1"},{"s":26,"e":28,"c":"pl-c1"}],[],[{"s":3,"e":26,"c":"pl-c"}],[{"s":3,"e":10,"c":"pl-s1"},{"s":3,"e":4,"c":"pl-c1"},{"s":14,"e":17,"c":"pl-s1"},{"s":14,"e":15,"c":"pl-c1"}],[{"s":3,"e":9,"c":"pl-s1"},{"s":3,"e":4,"c":"pl-c1"},{"s":13,"e":20,"c":"pl-s1"},{"s":13,"e":14,"c":"pl-c1"},{"s":23,"e":34,"c":"pl-s1"},{"s":23,"e":24,"c":"pl-c1"}],[],[{"s":3,"e":22,"c":"pl-c"}],[{"s":3,"e":9,"c":"pl-s1"},{"s":3,"e":4,"c":"pl-c1"},{"s":11,"e":22,"c":"pl-en"},{"s":23,"e":28,"c":"pl-en"},{"s":29,"e":35,"c":"pl-s1"},{"s":29,"e":30,"c":"pl-c1"},{"s":38,"e":43,"c":"pl-en"},{"s":44,"e":51,"c":"pl-s1"},{"s":44,"e":45,"c":"pl-c1"},{"s":55,"e":62,"c":"pl-v"},{"s":64,"e":78,"c":"pl-c1"},{"s":80,"e":81,"c":"pl-c1"},{"s":83,"e":88,"c":"pl-c1"}],[],[{"s":3,"e":23,"c":"pl-c"}],[{"s":3,"e":12,"c":"pl-s1"},{"s":3,"e":4,"c":"pl-c1"},{"s":15,"e":21,"c":"pl-en"},{"s":22,"e":28,"c":"pl-s1"},{"s":22,"e":23,"c":"pl-c1"},{"s":30,"e":42,"c":"pl-en"}],[],[{"s":2,"e":8,"c":"pl-k"},{"s":9,"e":18,"c":"pl-s1"},{"s":9,"e":10,"c":"pl-c1"}],[],[]],"colorizedLines":null,"csv":null,"csvError":null,"dependabotInfo":{"showConfigurationBanner":false,"configFilePath":null,"networkDependabotPath":"/IMC-GER/phpBB-Image-upload-use-ImageMagick/network/updates","dismissConfigurationNoticePath":"/settings/dismiss-notice/dependabot_configuration_notice","configurationNoticeDismissed":null},"displayName":"main_listener.php","displayUrl":"https://github.com/IMC-GER/phpBB-Image-upload-use-ImageMagick/blob/main/imcger/imgupload/event/main_listener.php?raw=true","headerInfo":{"blobSize":"18.5 KB","deleteTooltip":"You must be signed in to make or propose changes","editTooltip":"You must be signed in to make or propose changes","ghDesktopPath":"https://desktop.github.com","isGitLfs":false,"onBranch":true,"shortPath":"862ed90","siteNavLoginPath":"/login?return_to=https%3A%2F%2Fgithub.com%2FIMC-GER%2FphpBB-Image-upload-use-ImageMagick%2Fblob%2Fmain%2Fimcger%2Fimgupload%2Fevent%2Fmain_listener.php","isCSV":false,"isRichtext":false,"toc":null,"lineInfo":{"truncatedLoc":"693","truncatedSloc":"572"},"mode":"file"},"image":false,"isCodeownersFile":null,"isPlain":false,"isValidLegacyIssueTemplate":false,"issueTemplate":null,"discussionTemplate":null,"language":"PHP","languageID":272,"large":false,"planSupportInfo":{"repoIsFork":null,"repoOwnedByCurrentUser":null,"requestFullPath":"/IMC-GER/phpBB-Image-upload-use-ImageMagick/blob/main/imcger/imgupload/event/main_listener.php","showFreeOrgGatedFeatureMessage":null,"showPlanSupportBanner":null,"upgradeDataAttributes":null,"upgradePath":null},"publishBannersInfo":{"dismissActionNoticePath":"/settings/dismiss-notice/publish_action_from_dockerfile","releasePath":"/IMC-GER/phpBB-Image-upload-use-ImageMagick/releases/new?marketplace=true","showPublishActionBanner":false},"rawBlobUrl":"https://github.com/IMC-GER/phpBB-Image-upload-use-ImageMagick/raw/refs/heads/main/imcger/imgupload/event/main_listener.php","renderImageOrRaw":false,"richText":null,"renderedFileInfo":null,"shortPath":null,"symbolsEnabled":true,"tabSize":4,"topBannersInfo":{"overridingGlobalFundingFile":false,"globalPreferredFundingPath":null,"showInvalidCitationWarning":false,"citationHelpUrl":"https://docs.github.com/github/creating-cloning-and-archiving-repositories/creating-a-repository-on-github/about-citation-files","actionsOnboardingTip":null},"truncated":false,"viewable":true,"workflowRedirectUrl":null,"symbols":{"timed_out":false,"not_analyzed":false,"symbols":[{"name":"imcger\\imgupload\\event","kind":"module","ident_start":304,"ident_end":326,"extent_start":294,"extent_end":327,"fully_qualified_name":"imcger\\imgupload\\event","ident_utf16":{"start":{"line_number":11,"utf16_col":10},"end":{"line_number":11,"utf16_col":32}},"extent_utf16":{"start":{"line_number":11,"utf16_col":0},"end":{"line_number":11,"utf16_col":33}}},{"name":"main_listener","kind":"class","ident_start":426,"ident_end":439,"extent_start":420,"extent_end":18928,"fully_qualified_name":"main_listener","ident_utf16":{"start":{"line_number":18,"utf16_col":6},"end":{"line_number":18,"utf16_col":19}},"extent_utf16":{"start":{"line_number":18,"utf16_col":0},"end":{"line_number":692,"utf16_col":1}}},{"name":"EventSubscriberInterface","kind":"implementation","ident_start":451,"ident_end":475,"extent_start":440,"extent_end":475,"fully_qualified_name":"main_listener.EventSubscriberInterface","ident_utf16":{"start":{"line_number":18,"utf16_col":31},"end":{"line_number":18,"utf16_col":55}},"extent_utf16":{"start":{"line_number":18,"utf16_col":20},"end":{"line_number":18,"utf16_col":55}}},{"name":"config","kind":"field","ident_start":524,"ident_end":530,"extent_start":513,"extent_end":531,"fully_qualified_name":"main_listener.config","ident_utf16":{"start":{"line_number":21,"utf16_col":12},"end":{"line_number":21,"utf16_col":18}},"extent_utf16":{"start":{"line_number":21,"utf16_col":1},"end":{"line_number":21,"utf16_col":19}}},{"name":"language","kind":"field","ident_start":583,"ident_end":591,"extent_start":572,"extent_end":592,"fully_qualified_name":"main_listener.language","ident_utf16":{"start":{"line_number":24,"utf16_col":12},"end":{"line_number":24,"utf16_col":20}},"extent_utf16":{"start":{"line_number":24,"utf16_col":1},"end":{"line_number":24,"utf16_col":21}}},{"name":"imagesize","kind":"field","ident_start":648,"ident_end":657,"extent_start":637,"extent_end":658,"fully_qualified_name":"main_listener.imagesize","ident_utf16":{"start":{"line_number":27,"utf16_col":12},"end":{"line_number":27,"utf16_col":21}},"extent_utf16":{"start":{"line_number":27,"utf16_col":1},"end":{"line_number":27,"utf16_col":22}}},{"name":"db","kind":"field","ident_start":719,"ident_end":721,"extent_start":708,"extent_end":722,"fully_qualified_name":"main_listener.db","ident_utf16":{"start":{"line_number":30,"utf16_col":12},"end":{"line_number":30,"utf16_col":14}},"extent_utf16":{"start":{"line_number":30,"utf16_col":1},"end":{"line_number":30,"utf16_col":15}}},{"name":"template","kind":"field","ident_start":774,"ident_end":782,"extent_start":763,"extent_end":783,"fully_qualified_name":"main_listener.template","ident_utf16":{"start":{"line_number":33,"utf16_col":12},"end":{"line_number":33,"utf16_col":20}},"extent_utf16":{"start":{"line_number":33,"utf16_col":1},"end":{"line_number":33,"utf16_col":21}}},{"name":"ext_manager","kind":"field","ident_start":835,"ident_end":846,"extent_start":824,"extent_end":847,"fully_qualified_name":"main_listener.ext_manager","ident_utf16":{"start":{"line_number":36,"utf16_col":12},"end":{"line_number":36,"utf16_col":23}},"extent_utf16":{"start":{"line_number":36,"utf16_col":1},"end":{"line_number":36,"utf16_col":24}}},{"name":"helper","kind":"field","ident_start":899,"ident_end":905,"extent_start":888,"extent_end":906,"fully_qualified_name":"main_listener.helper","ident_utf16":{"start":{"line_number":39,"utf16_col":12},"end":{"line_number":39,"utf16_col":18}},"extent_utf16":{"start":{"line_number":39,"utf16_col":1},"end":{"line_number":39,"utf16_col":19}}},{"name":"__construct","kind":"method","ident_start":1410,"ident_end":1421,"extent_start":1394,"extent_end":1912,"fully_qualified_name":"main_listener.__construct","ident_utf16":{"start":{"line_number":54,"utf16_col":17},"end":{"line_number":54,"utf16_col":28}},"extent_utf16":{"start":{"line_number":54,"utf16_col":1},"end":{"line_number":72,"utf16_col":2}}},{"name":"getSubscribedEvents","kind":"method","ident_start":1938,"ident_end":1957,"extent_start":1915,"extent_end":2485,"fully_qualified_name":"main_listener.getSubscribedEvents","ident_utf16":{"start":{"line_number":74,"utf16_col":24},"end":{"line_number":74,"utf16_col":43}},"extent_utf16":{"start":{"line_number":74,"utf16_col":1},"end":{"line_number":85,"utf16_col":2}}},{"name":"new_profil_avatar_text","kind":"method","ident_start":2559,"ident_end":2581,"extent_start":2543,"extent_end":2708,"fully_qualified_name":"main_listener.new_profil_avatar_text","ident_utf16":{"start":{"line_number":90,"utf16_col":17},"end":{"line_number":90,"utf16_col":39}},"extent_utf16":{"start":{"line_number":90,"utf16_col":1},"end":{"line_number":96,"utf16_col":2}}},{"name":"set_template_vars","kind":"method","ident_start":2799,"ident_end":2816,"extent_start":2783,"extent_end":4328,"fully_qualified_name":"main_listener.set_template_vars","ident_utf16":{"start":{"line_number":104,"utf16_col":17},"end":{"line_number":104,"utf16_col":34}},"extent_utf16":{"start":{"line_number":104,"utf16_col":1},"end":{"line_number":142,"utf16_col":2}}},{"name":"imcger_create_tumbnail","kind":"method","ident_start":4447,"ident_end":4469,"extent_start":4431,"extent_end":5883,"fully_qualified_name":"main_listener.imcger_create_tumbnail","ident_utf16":{"start":{"line_number":149,"utf16_col":17},"end":{"line_number":149,"utf16_col":39}},"extent_utf16":{"start":{"line_number":149,"utf16_col":1},"end":{"line_number":196,"utf16_col":2}}},{"name":"imcger_modify_uploaded_file","kind":"method","ident_start":6003,"ident_end":6030,"extent_start":5987,"extent_end":9530,"fully_qualified_name":"main_listener.imcger_modify_uploaded_file","ident_utf16":{"start":{"line_number":203,"utf16_col":17},"end":{"line_number":203,"utf16_col":44}},"extent_utf16":{"start":{"line_number":203,"utf16_col":1},"end":{"line_number":311,"utf16_col":2}}},{"name":"imcger_modify_uploaded_avatar","kind":"method","ident_start":9657,"ident_end":9686,"extent_start":9641,"extent_end":11201,"fully_qualified_name":"main_listener.imcger_modify_uploaded_avatar","ident_utf16":{"start":{"line_number":318,"utf16_col":17},"end":{"line_number":318,"utf16_col":46}},"extent_utf16":{"start":{"line_number":318,"utf16_col":1},"end":{"line_number":374,"utf16_col":2}}},{"name":"imcger_viewtopic_modify_post_row","kind":"method","ident_start":11370,"ident_end":11402,"extent_start":11354,"extent_end":12399,"fully_qualified_name":"main_listener.imcger_viewtopic_modify_post_row","ident_utf16":{"start":{"line_number":382,"utf16_col":17},"end":{"line_number":382,"utf16_col":49}},"extent_utf16":{"start":{"line_number":382,"utf16_col":1},"end":{"line_number":416,"utf16_col":2}}},{"name":"imcger_posting_modify_template_vars","kind":"method","ident_start":12592,"ident_end":12627,"extent_start":12576,"extent_end":13516,"fully_qualified_name":"main_listener.imcger_posting_modify_template_vars","ident_utf16":{"start":{"line_number":424,"utf16_col":17},"end":{"line_number":424,"utf16_col":52}},"extent_utf16":{"start":{"line_number":424,"utf16_col":1},"end":{"line_number":451,"utf16_col":2}}},{"name":"resize_image","kind":"method","ident_start":13673,"ident_end":13685,"extent_start":13657,"extent_end":14448,"fully_qualified_name":"main_listener.resize_image","ident_utf16":{"start":{"line_number":460,"utf16_col":17},"end":{"line_number":460,"utf16_col":29}},"extent_utf16":{"start":{"line_number":460,"utf16_col":1},"end":{"line_number":496,"utf16_col":2}}},{"name":"set_image_format","kind":"method","ident_start":14694,"ident_end":14710,"extent_start":14678,"extent_end":15181,"fully_qualified_name":"main_listener.set_image_format","ident_utf16":{"start":{"line_number":506,"utf16_col":17},"end":{"line_number":506,"utf16_col":33}},"extent_utf16":{"start":{"line_number":506,"utf16_col":1},"end":{"line_number":535,"utf16_col":2}}},{"name":"set_image_compression","kind":"method","ident_start":15355,"ident_end":15376,"extent_start":15339,"extent_end":16098,"fully_qualified_name":"main_listener.set_image_compression","ident_utf16":{"start":{"line_number":543,"utf16_col":17},"end":{"line_number":543,"utf16_col":38}},"extent_utf16":{"start":{"line_number":543,"utf16_col":1},"end":{"line_number":573,"utf16_col":2}}},{"name":"image_auto_rotate","kind":"method","ident_start":16286,"ident_end":16303,"extent_start":16270,"extent_end":17803,"fully_qualified_name":"main_listener.image_auto_rotate","ident_utf16":{"start":{"line_number":583,"utf16_col":17},"end":{"line_number":583,"utf16_col":34}},"extent_utf16":{"start":{"line_number":583,"utf16_col":1},"end":{"line_number":649,"utf16_col":2}}},{"name":"image_auto_length","kind":"method","ident_start":18030,"ident_end":18047,"extent_start":18014,"extent_end":18926,"fully_qualified_name":"main_listener.image_auto_length","ident_utf16":{"start":{"line_number":659,"utf16_col":17},"end":{"line_number":659,"utf16_col":34}},"extent_utf16":{"start":{"line_number":659,"utf16_col":1},"end":{"line_number":691,"utf16_col":2}}}]}},"copilotInfo":null,"copilotAccessAllowed":false,"csrf_tokens":{"/IMC-GER/phpBB-Image-upload-use-ImageMagick/branches":{"post":"QAwRMs9LJdeaUdJkBeAJF8VBqSBInR3dWz0oaiQcajqXIRsJnHhJimhuTAwNc4QQvoTetgtwJF3Szc7wbk4c8g"},"/repos/preferences":{"post":"2W_gVn1U1OwX5ENnQRKPdF1ZroHz66lI0X6iDP2XVt4NCosReTP2EOUMNzymyLLeIPpTpWzaVbBKjjfOoQ7oIQ"}}},"title":"phpBB-Image-upload-use-ImageMagick/imcger/imgupload/event/main_listener.php at main · IMC-GER/phpBB-Image-upload-use-ImageMagick","appPayload":{"helpUrl":"https://docs.github.com","findFileWorkerPath":"/assets-cdn/worker/find-file-worker-1583894afd38.js","findInFileWorkerPath":"/assets-cdn/worker/find-in-file-worker-67668e8c2caa.js","githubDevUrl":null,"enabled_features":{"code_nav_ui_events":false,"overview_shared_code_dropdown_button":false,"react_blob_overlay":false,"copilot_conversational_ux_embedding_update":false,"copilot_smell_icebreaker_ux":true,"copilot_workspace":false,"accessible_code_button":true}}}</script> <div data-target="react-app.reactRoot"><style data-styled="true" data-styled-version="5.3.11">.hOfjFo{padding:0;}/*!sc*/ .oDGAe{max-width:100%;margin-left:auto;margin-right:auto;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;}/*!sc*/ .kowOcT{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex:1 1 100%;-ms-flex:1 1 100%;flex:1 1 100%;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;max-width:100%;}/*!sc*/ .gISSDQ{width:100%;}/*!sc*/ @media screen and (min-width:544px){.gISSDQ{width:100%;}}/*!sc*/ @media screen and (min-width:768px){.gISSDQ{width:auto;}}/*!sc*/ .fLEPlD{display:none;-webkit-order:1;-ms-flex-order:1;order:1;width:100%;margin-left:0;margin-right:0;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;margin-bottom:0;min-width:0;}/*!sc*/ @media screen and (min-width:544px){.fLEPlD{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}}/*!sc*/ @media screen and (min-width:768px){.fLEPlD{width:auto;margin-top:0 !important;margin-bottom:0 !important;position:-webkit-sticky;position:sticky;top:0px;max-height:100vh !important;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;margin-right:0;height:100vh;}}/*!sc*/ @media print,screen and (max-width:1011px) and (min-width:768px){.fLEPlD{display:none;}}/*!sc*/ .hPvFuC{margin-left:0;margin-right:0;display:none;margin-top:0;}/*!sc*/ @media screen and (min-width:768px){.hPvFuC{margin-left:0 !important;margin-right:0 !important;}}/*!sc*/ .fFSoPl{--pane-min-width:256px;--pane-max-width-diff:511px;--pane-max-width:calc(100vw - var(--pane-max-width-diff));width:100%;padding:0;}/*!sc*/ @media screen and (min-width:544px){}/*!sc*/ @media screen and (min-width:768px){.fFSoPl{width:clamp(var(--pane-min-width),var(--pane-width),var(--pane-max-width));overflow:auto;}}/*!sc*/ @media screen and (min-width:1280px){.fFSoPl{--pane-max-width-diff:959px;}}/*!sc*/ .bTBnTW{height:100%;position:relative;display:none;margin-left:0;}/*!sc*/ .bHLmSv{position:absolute;inset:0 -2px;cursor:col-resize;background-color:transparent;-webkit-transition-delay:0.1s;transition-delay:0.1s;}/*!sc*/ .bHLmSv:hover{background-color:var(--bgColor-neutral-muted,var(--color-neutral-muted,rgba(175,184,193,0.2)));}/*!sc*/ .iKqMNA{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-order:2;-ms-flex-order:2;order:2;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;-webkit-flex-shrink:1;-ms-flex-negative:1;flex-shrink:1;min-width:1px;margin-right:auto;}/*!sc*/ @media print{.iKqMNA{display:-webkit-box !important;display:-webkit-flex !important;display:-ms-flexbox !important;display:flex !important;}}/*!sc*/ .FxAyp{width:100%;max-width:100%;margin-left:auto;margin-right:auto;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;padding:0;}/*!sc*/ .leYMvG{margin-left:auto;margin-right:auto;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;padding-bottom:40px;max-width:100%;margin-top:0;}/*!sc*/ .KMPzq{display:inherit;}/*!sc*/ .hfKjHv{width:100%;}/*!sc*/ .gZWyZE{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;gap:8px;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;width:100%;}/*!sc*/ .dwYKDk{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:start;-webkit-box-align:start;-ms-flex-align:start;align-items:start;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;gap:8px;}/*!sc*/ .ibcGmb{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:start;-webkit-box-align:start;-ms-flex-align:start;align-items:start;min-width:0;}/*!sc*/ .hKaEJF{display:block;margin-right:8px;}/*!sc*/ @media screen and (min-width:1360px){.hKaEJF{display:block;}}/*!sc*/ .XosP{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;font-size:14px;}/*!sc*/ .gUkoLg{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;}/*!sc*/ .hzSPyu{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;pointer-events:none;}/*!sc*/ .bZBlpz{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;width:100%;}/*!sc*/ .lhTYNA{margin-right:4px;color:var(--fgColor-muted,var(--color-fg-muted,#656d76));}/*!sc*/ .dbrgmi{font-size:14px;min-width:0;max-width:125px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}/*!sc*/ .dHJiml{-webkit-align-self:center;-ms-flex-item-align:center;align-self:center;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;padding-left:8px;padding-right:8px;min-width:0;}/*!sc*/ .cEytCf{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;font-size:16px;min-width:0;-webkit-flex-shrink:1;-ms-flex-negative:1;flex-shrink:1;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;max-width:100%;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}/*!sc*/ .fzFXnm{max-width:100%;}/*!sc*/ .iMnkmv{max-width:100%;list-style:none;display:inline-block;}/*!sc*/ .ghzDag{display:inline-block;max-width:100%;}/*!sc*/ .kHuKdh{font-weight:600;}/*!sc*/ .kgiVEz{font-weight:400;}/*!sc*/ .jGhzSQ{font-weight:600;display:inline-block;max-width:100%;font-size:16px;}/*!sc*/ .faNtbn{min-height:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:start;-webkit-box-align:start;-ms-flex-align:start;align-items:start;}/*!sc*/ .fmQaBv{margin-left:4px;margin-right:4px;}/*!sc*/ .dJxjrT{margin-left:16px;margin-right:16px;}/*!sc*/ .eFxKDQ{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}/*!sc*/ .dzCJzi{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:8px;min-width:273px;padding:8px;}/*!sc*/ @media screen and (min-width:544px){.dzCJzi{-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;}}/*!sc*/ .ldRxiI{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}/*!sc*/ .fVkfyA{width:100%;height:-webkit-fit-content;height:-moz-fit-content;height:fit-content;min-width:0;margin-right:0;}/*!sc*/ .gNAmSV{height:40px;padding-left:4px;padding-bottom:16px;}/*!sc*/ .jNEwzY{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}/*!sc*/ .bsDwxw{font-size:12px;-webkit-flex:auto;-ms-flex:auto;flex:auto;padding-right:16px;color:var(--fgColor-muted,var(--color-fg-muted,#656d76));min-width:0;}/*!sc*/ .jdLMhu{top:0px;z-index:4;background:var(--bgColor-default,var(--color-canvas-default));position:-webkit-sticky;position:sticky;}/*!sc*/ .tOISc{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;width:100%;position:absolute;}/*!sc*/ .hqwSEx{display:none;min-width:0;padding-top:8px;padding-bottom:8px;}/*!sc*/ .bDVoEr{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;overflow:hidden;margin-left:8px;margin-right:8px;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;width:100%;}/*!sc*/ .kYLlPM{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}/*!sc*/ .gYjEmn{margin-left:4px;margin-right:8px;}/*!sc*/ .kGqOLL{text-overflow:ellipsis;overflow:hidden;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}/*!sc*/ .fHind{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;font-size:14px;min-width:0;-webkit-flex-shrink:1;-ms-flex-negative:1;flex-shrink:1;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;max-width:100%;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}/*!sc*/ .dnZoUW{font-weight:600;display:inline-block;max-width:100%;font-size:14px;}/*!sc*/ .kTvpNk{padding-left:8px;padding-top:8px;padding-bottom:8px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex:1;-ms-flex:1;flex:1;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;background-color:var(--bgColor-muted,var(--color-canvas-subtle,#f6f8fa));border:1px solid var(--borderColor-default,var(--color-border-default));border-radius:6px 6px 0px 0px;}/*!sc*/ .iNMjfP{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:8px;min-width:0;}/*!sc*/ .fefCSX{display:block;position:relative;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;margin-top:-1px;margin-bottom:-1px;--separator-color:transparent;}/*!sc*/ .fefCSX:not(:last-child){margin-right:1px;}/*!sc*/ .fefCSX:not(:last-child):after{background-color:var(--separator-color);content:"";position:absolute;right:-2px;top:8px;bottom:8px;width:1px;}/*!sc*/ .fefCSX:focus-within:has(:focus-visible){--separator-color:transparent;}/*!sc*/ .fefCSX:first-child{margin-left:-1px;}/*!sc*/ .fefCSX:last-child{margin-right:-1px;}/*!sc*/ .idgUkN{display:block;position:relative;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;margin-top:-1px;margin-bottom:-1px;--separator-color:var(--borderColor-default,var(--color-border-default,#d0d7de));}/*!sc*/ .idgUkN:not(:last-child){margin-right:1px;}/*!sc*/ .idgUkN:not(:last-child):after{background-color:var(--separator-color);content:"";position:absolute;right:-2px;top:8px;bottom:8px;width:1px;}/*!sc*/ .idgUkN:focus-within:has(:focus-visible){--separator-color:transparent;}/*!sc*/ .idgUkN:first-child{margin-left:-1px;}/*!sc*/ .idgUkN:last-child{margin-right:-1px;}/*!sc*/ .kcLCKF{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:8px;margin-right:8px;}/*!sc*/ .kVWtTz{gap:8px;}/*!sc*/ .hGyMdv{border:1px solid;border-top:none;border-color:var(--borderColor-default,var(--color-border-default,#d0d7de));border-radius:0px 0px 6px 6px;min-width:273px;}/*!sc*/ .dceWRL{background-color:var(--bgColor-default,var(--color-canvas-default));border:0px;border-width:0;border-radius:0px 0px 6px 6px;padding:0;min-width:0;margin-top:46px;}/*!sc*/ .dGXHv{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex:1;-ms-flex:1;flex:1;padding-top:8px;padding-bottom:8px;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;min-width:0;position:relative;}/*!sc*/ .bpDFns{position:relative;}/*!sc*/ .iJOeCH{-webkit-flex:1;-ms-flex:1;flex:1;position:relative;min-width:0;}/*!sc*/ .glDApP{tab-size:4;isolation:isolate;position:relative;overflow:auto;max-width:unset;}/*!sc*/ .cJGaMs{margin:1px 8px;position:absolute;z-index:1;}/*!sc*/ .iGLarr{position:absolute;}/*!sc*/ .cCoXib{position:fixed;top:0;right:0;height:100%;width:15px;-webkit-transition:-webkit-transform 0.3s;-webkit-transition:transform 0.3s;transition:transform 0.3s;z-index:1;}/*!sc*/ .cCoXib:hover{-webkit-transform:scaleX(1.5);-ms-transform:scaleX(1.5);transform:scaleX(1.5);}/*!sc*/ data-styled.g1[id="Box-sc-g0xbh4-0"]{content:"hOfjFo,oDGAe,kowOcT,gISSDQ,fLEPlD,hPvFuC,fFSoPl,bTBnTW,bHLmSv,iKqMNA,FxAyp,leYMvG,KMPzq,hfKjHv,gZWyZE,dwYKDk,ibcGmb,hKaEJF,XosP,gUkoLg,hzSPyu,bZBlpz,lhTYNA,dbrgmi,dHJiml,cEytCf,fzFXnm,iMnkmv,ghzDag,kHuKdh,kgiVEz,jGhzSQ,faNtbn,fmQaBv,dJxjrT,eFxKDQ,dzCJzi,ldRxiI,fVkfyA,gNAmSV,jNEwzY,bsDwxw,jdLMhu,tOISc,hqwSEx,bDVoEr,kYLlPM,gYjEmn,kGqOLL,fHind,dnZoUW,kTvpNk,iNMjfP,fefCSX,idgUkN,kcLCKF,kVWtTz,hGyMdv,dceWRL,dGXHv,bpDFns,iJOeCH,glDApP,cJGaMs,iGLarr,cCoXib,"}/*!sc*/ .eMMFM{min-width:0;}/*!sc*/ .eMMFM:where([data-size='small']){font-size:var(--text-body-size-small,0.75rem);line-height:var(--text-body-lineHeight-small,1.6666);}/*!sc*/ .eMMFM:where([data-size='medium']){font-size:var(--text-body-size-medium,0.875rem);line-height:var(--text-body-lineHeight-medium,1.4285);}/*!sc*/ .eMMFM:where([data-size='large']){font-size:var(--text-body-size-large,1rem);line-height:var(--text-body-lineHeight-large,1.5);}/*!sc*/ .eMMFM:where([data-weight='light']){font-weight:var(--base-text-weight-light,300);}/*!sc*/ .eMMFM:where([data-weight='normal']){font-weight:var(--base-text-weight-normal,400);}/*!sc*/ .eMMFM:where([data-weight='medium']){font-weight:var(--base-text-weight-medium,500);}/*!sc*/ .eMMFM:where([data-weight='semibold']){font-weight:var(--base-text-weight-semibold,600);}/*!sc*/ .HlHVj{padding-left:4px;padding-right:4px;font-weight:400;color:var(--fgColor-muted,var(--color-fg-muted,#656d76));font-size:16px;}/*!sc*/ .HlHVj:where([data-size='small']){font-size:var(--text-body-size-small,0.75rem);line-height:var(--text-body-lineHeight-small,1.6666);}/*!sc*/ .HlHVj:where([data-size='medium']){font-size:var(--text-body-size-medium,0.875rem);line-height:var(--text-body-lineHeight-medium,1.4285);}/*!sc*/ .HlHVj:where([data-size='large']){font-size:var(--text-body-size-large,1rem);line-height:var(--text-body-lineHeight-large,1.5);}/*!sc*/ .HlHVj:where([data-weight='light']){font-weight:var(--base-text-weight-light,300);}/*!sc*/ .HlHVj:where([data-weight='normal']){font-weight:var(--base-text-weight-normal,400);}/*!sc*/ .HlHVj:where([data-weight='medium']){font-weight:var(--base-text-weight-medium,500);}/*!sc*/ .HlHVj:where([data-weight='semibold']){font-weight:var(--base-text-weight-semibold,600);}/*!sc*/ .lauzFl{padding-left:4px;padding-right:4px;font-weight:400;color:var(--fgColor-muted,var(--color-fg-muted,#656d76));font-size:14px;}/*!sc*/ .lauzFl:where([data-size='small']){font-size:var(--text-body-size-small,0.75rem);line-height:var(--text-body-lineHeight-small,1.6666);}/*!sc*/ .lauzFl:where([data-size='medium']){font-size:var(--text-body-size-medium,0.875rem);line-height:var(--text-body-lineHeight-medium,1.4285);}/*!sc*/ .lauzFl:where([data-size='large']){font-size:var(--text-body-size-large,1rem);line-height:var(--text-body-lineHeight-large,1.5);}/*!sc*/ .lauzFl:where([data-weight='light']){font-weight:var(--base-text-weight-light,300);}/*!sc*/ .lauzFl:where([data-weight='normal']){font-weight:var(--base-text-weight-normal,400);}/*!sc*/ .lauzFl:where([data-weight='medium']){font-weight:var(--base-text-weight-medium,500);}/*!sc*/ .lauzFl:where([data-weight='semibold']){font-weight:var(--base-text-weight-semibold,600);}/*!sc*/ data-styled.g3[id="Text__StyledText-sc-17v1xeu-0"]{content:"eMMFM,HlHVj,lauzFl,"}/*!sc*/ .jkNcAv{border:0;font-size:inherit;font-family:inherit;background-color:transparent;-webkit-appearance:none;color:inherit;width:100%;}/*!sc*/ .jkNcAv:focus{outline:0;}/*!sc*/ data-styled.g11[id="UnstyledTextInput__ToggledUnstyledTextInput-sc-14ypya-0"]{content:"jkNcAv,"}/*!sc*/ .hLzFvi{font-size:14px;line-height:var(--base-size-20);color:var(--fgColor-default,var(--color-fg-default,#1F2328));vertical-align:middle;background-color:var(--bgColor-default,var(--color-canvas-default,#ffffff));border:1px solid var(--control-borderColor-rest,var(--borderColor-default,var(--color-border-default,#d0d7de)));border-radius:6px;outline:none;box-shadow:var(--shadow-inset,var(--color-primer-shadow-inset,inset 0 1px 0 rgba(208,215,222,0.2)));display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:stretch;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;min-height:var(--base-size-32);overflow:hidden;--inner-action-size:var(--base-size-24);}/*!sc*/ .hLzFvi input,.hLzFvi textarea{cursor:text;}/*!sc*/ .hLzFvi select{cursor:pointer;}/*!sc*/ .hLzFvi input::-webkit-input-placeholder,.hLzFvi textarea::-webkit-input-placeholder,.hLzFvi select::-webkit-input-placeholder{color:var(---control-fgColor-placeholder,var(--fgColor-muted,var(--color-fg-muted,#656d76)));}/*!sc*/ .hLzFvi input::-moz-placeholder,.hLzFvi textarea::-moz-placeholder,.hLzFvi select::-moz-placeholder{color:var(---control-fgColor-placeholder,var(--fgColor-muted,var(--color-fg-muted,#656d76)));}/*!sc*/ .hLzFvi input:-ms-input-placeholder,.hLzFvi textarea:-ms-input-placeholder,.hLzFvi select:-ms-input-placeholder{color:var(---control-fgColor-placeholder,var(--fgColor-muted,var(--color-fg-muted,#656d76)));}/*!sc*/ .hLzFvi input::placeholder,.hLzFvi textarea::placeholder,.hLzFvi select::placeholder{color:var(---control-fgColor-placeholder,var(--fgColor-muted,var(--color-fg-muted,#656d76)));}/*!sc*/ .hLzFvi:where([data-trailing-action][data-focused]),.hLzFvi:where(:not([data-trailing-action]):focus-within){border-color:var(--fgColor-accent,var(--color-accent-fg,#0969da));outline:2px solid var(--fgColor-accent,var(--color-accent-fg,#0969da));outline-offset:-1px;}/*!sc*/ .hLzFvi > textarea{padding:var(--base-size-12);}/*!sc*/ .hLzFvi:where([data-contrast]){background-color:var(--bgColor-inset,var(--color-canvas-inset,#f6f8fa));}/*!sc*/ .hLzFvi:where([data-disabled]){color:var(--fgColor-disabled,var(--color-primer-fg-disabled,#8c959f));background-color:var(--control-bgColor-disabled,var(--color-input-disabled-bg,rgba(175,184,193,0.2)));box-shadow:none;border-color:var(--control-borderColor-disabled,var(--borderColor-default,var(--color-border-default,#d0d7de)));}/*!sc*/ .hLzFvi:where([data-disabled]) input,.hLzFvi:where([data-disabled]) textarea,.hLzFvi:where([data-disabled]) select{cursor:not-allowed;}/*!sc*/ .hLzFvi:where([data-monospace]){font-family:var(--fontStack-monospace,SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace);}/*!sc*/ .hLzFvi:where([data-validation='error']){border-color:var(--borderColor-danger-emphasis,var(--color-danger-emphasis,#cf222e));}/*!sc*/ .hLzFvi:where([data-validation='error']):where([data-trailing-action][data-focused]),.hLzFvi:where([data-validation='error']):where(:not([data-trailing-action])):focus-within{border-color:var(--fgColor-accent,var(--color-accent-fg,#0969da));outline:2px solid var(--fgColor-accent,var(--color-accent-fg,#0969da));outline-offset:-1px;}/*!sc*/ .hLzFvi:where([data-validation='success']){border-color:var(--bgColor-success-emphasis,var(--color-success-emphasis,#1f883d));}/*!sc*/ .hLzFvi:where([data-block]){width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch;}/*!sc*/ @media (min-width:768px){.hLzFvi{font-size:var(--text-body-size-medium);}}/*!sc*/ .hLzFvi:where([data-size='small']){--inner-action-size:var(--base-size-20);min-height:var(--base-size-28);padding-top:3px;padding-right:var(--base-size-8);padding-bottom:3px;padding-left:var(--base-size-8);font-size:var(--text-body-size-small);line-height:var(--base-size-20);}/*!sc*/ .hLzFvi:where([data-size='large']){--inner-action-size:var(--base-size-28);height:var(--base-size-40);padding-top:10px;padding-right:var(--base-size-8);padding-bottom:10px;padding-left:var(--base-size-8);}/*!sc*/ .hLzFvi:where([data-variant='small']){min-height:28px;padding-top:3px;padding-right:var(--base-size-8);padding-bottom:3px;padding-left:var(--base-size-8);font-size:(--text-body-size-small);line-height:var(--base-size-20);}/*!sc*/ .hLzFvi:where([data-variant='large']){padding-top:10px;padding-right:var(--base-size-8);padding-bottom:10px;padding-left:var(--base-size-8);font-size:var(--text-title-size-medium);}/*!sc*/ .hLzFvi{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;min-width:160px;}/*!sc*/ data-styled.g12[id="TextInputWrapper__StyledTextInputBaseWrapper-sc-1mqhpbi-0"]{content:"hLzFvi,"}/*!sc*/ .iHYdQq{background-repeat:no-repeat;background-position:right 8px center;padding-right:0;padding-left:0;}/*!sc*/ .iHYdQq > :not(:last-child){margin-right:8px;}/*!sc*/ .iHYdQq .TextInput-icon,.iHYdQq .TextInput-action{-webkit-align-self:center;-ms-flex-item-align:center;align-self:center;color:var(--fgColor-muted,var(--color-fg-muted,#656d76));-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;}/*!sc*/ .iHYdQq > input,.iHYdQq > select{padding-right:0;padding-left:0;}/*!sc*/ .iHYdQq:where([data-leading-visual]){padding-left:var(--base-size-12);}/*!sc*/ .iHYdQq:where([data-trailing-visual]:not([data-trailing-action])){padding-right:var(--base-size-12);}/*!sc*/ .iHYdQq:where(:not([data-leading-visual])) > input,.iHYdQq:where(:not([data-leading-visual])) > select{padding-left:var(--base-size-12);}/*!sc*/ .iHYdQq:where(:not([data-trailing-visual]):not([data-trailing-action])) > input,.iHYdQq:where(:not([data-trailing-visual]):not([data-trailing-action])) > select{padding-right:var(--base-size-12);}/*!sc*/ .iHYdQq{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;min-width:160px;}/*!sc*/ data-styled.g13[id="TextInputWrapper__StyledTextInputWrapper-sc-1mqhpbi-1"]{content:"iHYdQq,"}/*!sc*/ .kBQCgV{border-radius:6px;border:1px solid;border-color:transparent;font-family:inherit;font-weight:500;font-size:14px;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-text-decoration:none;text-decoration:none;text-align:center;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;height:32px;padding:0 12px;gap:8px;min-width:-webkit-max-content;min-width:-moz-max-content;min-width:max-content;-webkit-transition:80ms cubic-bezier(0.65,0,0.35,1);transition:80ms cubic-bezier(0.65,0,0.35,1);-webkit-transition-property:color,fill,background-color,border-color;transition-property:color,fill,background-color,border-color;color:var(--button-invisible-fgColor-rest,var(--button-default-fgColor-rest,var(--color-btn-text,#24292f)));background-color:transparent;box-shadow:none;}/*!sc*/ .kBQCgV:focus:not(:disabled){box-shadow:none;outline:2px solid var(--fgColor-accent,var(--color-accent-fg,#0969da));outline-offset:-2px;}/*!sc*/ .kBQCgV:focus:not(:disabled):not(:focus-visible){outline:solid 1px transparent;}/*!sc*/ .kBQCgV:focus-visible:not(:disabled){box-shadow:none;outline:2px solid var(--fgColor-accent,var(--color-accent-fg,#0969da));outline-offset:-2px;}/*!sc*/ .kBQCgV[href]{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;}/*!sc*/ .kBQCgV[href]:hover{-webkit-text-decoration:none;text-decoration:none;}/*!sc*/ .kBQCgV:hover{-webkit-transition-duration:80ms;transition-duration:80ms;}/*!sc*/ .kBQCgV:active{-webkit-transition:none;transition:none;}/*!sc*/ .kBQCgV[data-inactive]{cursor:auto;}/*!sc*/ .kBQCgV:disabled{cursor:not-allowed;box-shadow:none;color:var(--fgColor-disabled,var(--color-primer-fg-disabled,#8c959f));background-color:var(--button-invisible-bgColor-disabled,transparent);}/*!sc*/ .kBQCgV:disabled [data-component=ButtonCounter],.kBQCgV:disabled [data-component="leadingVisual"],.kBQCgV:disabled [data-component="trailingAction"]{color:inherit;}/*!sc*/ @media (forced-colors:active){.kBQCgV:focus{outline:solid 1px transparent;}}/*!sc*/ .kBQCgV [data-component=ButtonCounter]{font-size:12px;}/*!sc*/ .kBQCgV[data-component=IconButton]{display:inline-grid;padding:unset;place-content:center;width:32px;min-width:unset;}/*!sc*/ .kBQCgV[data-size="small"]{padding:0 8px;height:28px;gap:4px;font-size:12px;}/*!sc*/ .kBQCgV[data-size="small"] [data-component="text"]{line-height:1.6666667;}/*!sc*/ .kBQCgV[data-size="small"] [data-component=ButtonCounter]{font-size:12px;}/*!sc*/ .kBQCgV[data-size="small"] [data-component="buttonContent"] > :not(:last-child){margin-right:4px;}/*!sc*/ .kBQCgV[data-size="small"][data-component=IconButton]{width:28px;padding:unset;}/*!sc*/ .kBQCgV[data-size="large"]{padding:0 16px;height:40px;gap:8px;}/*!sc*/ .kBQCgV[data-size="large"] [data-component="buttonContent"] > :not(:last-child){margin-right:8px;}/*!sc*/ .kBQCgV[data-size="large"][data-component=IconButton]{width:40px;padding:unset;}/*!sc*/ .kBQCgV[data-block="block"]{width:100%;}/*!sc*/ .kBQCgV[data-label-wrap="true"]{min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content;height:unset;min-height:var(--control-medium-size,2rem);}/*!sc*/ .kBQCgV[data-label-wrap="true"] [data-component="buttonContent"]{-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch;padding-block:calc(var(--control-medium-paddingBlock,0.375rem) - 2px);}/*!sc*/ .kBQCgV[data-label-wrap="true"] [data-component="text"]{white-space:unset;word-break:break-word;}/*!sc*/ .kBQCgV[data-label-wrap="true"][data-size="small"]{height:unset;min-height:var(--control-small-size,1.75rem);}/*!sc*/ .kBQCgV[data-label-wrap="true"][data-size="small"] [data-component="buttonContent"]{padding-block:calc(var(--control-small-paddingBlock,0.25rem) - 2px);}/*!sc*/ .kBQCgV[data-label-wrap="true"][data-size="large"]{height:unset;min-height:var(--control-large-size,2.5rem);padding-inline:var(--control-large-paddingInline-spacious,1rem);}/*!sc*/ .kBQCgV[data-label-wrap="true"][data-size="large"] [data-component="buttonContent"]{padding-block:calc(var(--control-large-paddingBlock,0.625rem) - 2px);}/*!sc*/ .kBQCgV[data-inactive]:not([disabled]){background-color:var(--button-inactive-bgColor,var(--button-inactive-bgColor-rest,var(--color-btn-inactive-bg,#eaeef2)));border-color:var(--button-inactive-bgColor,var(--button-inactive-bgColor-rest,var(--color-btn-inactive-bg,#eaeef2)));color:var(--button-inactive-fgColor,var(--button-inactive-fgColor-rest,var(--color-btn-inactive-text,#57606a)));}/*!sc*/ .kBQCgV[data-inactive]:not([disabled]):focus-visible{box-shadow:none;}/*!sc*/ .kBQCgV [data-component="leadingVisual"]{grid-area:leadingVisual;color:var(--button-invisible-iconColor-rest,var(--fgColor-muted,var(--color-fg-muted,#656d76)));}/*!sc*/ .kBQCgV [data-component="text"]{grid-area:text;line-height:1.4285714;white-space:nowrap;}/*!sc*/ .kBQCgV [data-component="trailingVisual"]{grid-area:trailingVisual;color:var(--button-invisible-iconColor-rest,var(--fgColor-muted,var(--color-fg-muted,#656d76)));}/*!sc*/ .kBQCgV [data-component="trailingAction"]{margin-right:-4px;color:var(--button-invisible-iconColor-rest,var(--fgColor-muted,var(--color-fg-muted,#656d76)));}/*!sc*/ .kBQCgV [data-component="buttonContent"]{-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto;display:grid;grid-template-areas:"leadingVisual text trailingVisual";grid-template-columns:min-content minmax(0,auto) min-content;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-align-content:center;-ms-flex-line-pack:center;align-content:center;}/*!sc*/ .kBQCgV [data-component="buttonContent"] > :not(:last-child){margin-right:8px;}/*!sc*/ .kBQCgV [data-component="loadingSpinner"]{grid-area:text;margin-right:0px !important;place-self:center;color:var(--fgColor-muted,var(--color-fg-muted,#656d76));}/*!sc*/ .kBQCgV [data-component="loadingSpinner"] + [data-component="text"]{visibility:hidden;}/*!sc*/ .kBQCgV:hover:not([disabled]){background-color:var(--control-transparent-bgColor-hover,var(--color-action-list-item-default-hover-bg,rgba(208,215,222,0.32)));}/*!sc*/ .kBQCgV:active:not([disabled]){background-color:var(--control-transparent-bgColor-active,var(--color-action-list-item-default-active-bg,rgba(208,215,222,0.48)));}/*!sc*/ .kBQCgV[aria-expanded=true]{background-color:var(--control-transparent-bgColor-selected,var(--color-action-list-item-default-selected-bg,rgba(208,215,222,0.24)));}/*!sc*/ .kBQCgV[data-component="IconButton"][data-no-visuals]{color:var(--button-invisible-iconColor-rest,var(--fgColor-muted,var(--color-fg-muted,#656d76)));}/*!sc*/ .kBQCgV[data-no-visuals]{color:var(--button-invisible-fgColor-rest,var(--button-default-fgColor-rest,var(--color-btn-text,#24292f)));}/*!sc*/ .kBQCgV:has([data-component="ButtonCounter"]){color:var(--button-invisible-fgColor-rest,var(--button-default-fgColor-rest,var(--color-btn-text,#24292f)));}/*!sc*/ .kBQCgV:disabled[data-no-visuals]{color:var(--fgColor-disabled,var(--color-primer-fg-disabled,#8c959f));}/*!sc*/ .kBQCgV:disabled[data-no-visuals] [data-component=ButtonCounter]{color:inherit;}/*!sc*/ .kBQCgV[data-size="medium"]{color:var(--fgColor-muted,var(--color-fg-muted,#656d76));padding-left:8px;padding-right:8px;display:none;}/*!sc*/ @media screen and (max-width:768px){.kBQCgV[data-size="medium"]{display:block;}}/*!sc*/ .dPmZyJ{border-radius:6px;border:1px solid;border-color:transparent;font-family:inherit;font-weight:500;font-size:14px;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-text-decoration:none;text-decoration:none;text-align:center;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;height:32px;padding:0 12px;gap:8px;min-width:-webkit-max-content;min-width:-moz-max-content;min-width:max-content;-webkit-transition:80ms cubic-bezier(0.65,0,0.35,1);transition:80ms cubic-bezier(0.65,0,0.35,1);-webkit-transition-property:color,fill,background-color,border-color;transition-property:color,fill,background-color,border-color;color:var(--button-invisible-fgColor-rest,var(--button-default-fgColor-rest,var(--color-btn-text,#24292f)));background-color:transparent;box-shadow:none;}/*!sc*/ .dPmZyJ:focus:not(:disabled){box-shadow:none;outline:2px solid var(--fgColor-accent,var(--color-accent-fg,#0969da));outline-offset:-2px;}/*!sc*/ .dPmZyJ:focus:not(:disabled):not(:focus-visible){outline:solid 1px transparent;}/*!sc*/ .dPmZyJ:focus-visible:not(:disabled){box-shadow:none;outline:2px solid var(--fgColor-accent,var(--color-accent-fg,#0969da));outline-offset:-2px;}/*!sc*/ .dPmZyJ[href]{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;}/*!sc*/ .dPmZyJ[href]:hover{-webkit-text-decoration:none;text-decoration:none;}/*!sc*/ .dPmZyJ:hover{-webkit-transition-duration:80ms;transition-duration:80ms;}/*!sc*/ .dPmZyJ:active{-webkit-transition:none;transition:none;}/*!sc*/ .dPmZyJ[data-inactive]{cursor:auto;}/*!sc*/ .dPmZyJ:disabled{cursor:not-allowed;box-shadow:none;color:var(--fgColor-disabled,var(--color-primer-fg-disabled,#8c959f));background-color:var(--button-invisible-bgColor-disabled,transparent);}/*!sc*/ .dPmZyJ:disabled [data-component=ButtonCounter],.dPmZyJ:disabled [data-component="leadingVisual"],.dPmZyJ:disabled [data-component="trailingAction"]{color:inherit;}/*!sc*/ @media (forced-colors:active){.dPmZyJ:focus{outline:solid 1px transparent;}}/*!sc*/ .dPmZyJ [data-component=ButtonCounter]{font-size:12px;}/*!sc*/ .dPmZyJ[data-component=IconButton]{display:inline-grid;padding:unset;place-content:center;width:32px;min-width:unset;}/*!sc*/ .dPmZyJ[data-size="small"]{padding:0 8px;height:28px;gap:4px;font-size:12px;}/*!sc*/ .dPmZyJ[data-size="small"] [data-component="text"]{line-height:1.6666667;}/*!sc*/ .dPmZyJ[data-size="small"] [data-component=ButtonCounter]{font-size:12px;}/*!sc*/ .dPmZyJ[data-size="small"] [data-component="buttonContent"] > :not(:last-child){margin-right:4px;}/*!sc*/ .dPmZyJ[data-size="small"][data-component=IconButton]{width:28px;padding:unset;}/*!sc*/ .dPmZyJ[data-size="large"]{padding:0 16px;height:40px;gap:8px;}/*!sc*/ .dPmZyJ[data-size="large"] [data-component="buttonContent"] > :not(:last-child){margin-right:8px;}/*!sc*/ .dPmZyJ[data-size="large"][data-component=IconButton]{width:40px;padding:unset;}/*!sc*/ .dPmZyJ[data-block="block"]{width:100%;}/*!sc*/ .dPmZyJ[data-label-wrap="true"]{min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content;height:unset;min-height:var(--control-medium-size,2rem);}/*!sc*/ .dPmZyJ[data-label-wrap="true"] [data-component="buttonContent"]{-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch;padding-block:calc(var(--control-medium-paddingBlock,0.375rem) - 2px);}/*!sc*/ .dPmZyJ[data-label-wrap="true"] [data-component="text"]{white-space:unset;word-break:break-word;}/*!sc*/ .dPmZyJ[data-label-wrap="true"][data-size="small"]{height:unset;min-height:var(--control-small-size,1.75rem);}/*!sc*/ .dPmZyJ[data-label-wrap="true"][data-size="small"] [data-component="buttonContent"]{padding-block:calc(var(--control-small-paddingBlock,0.25rem) - 2px);}/*!sc*/ .dPmZyJ[data-label-wrap="true"][data-size="large"]{height:unset;min-height:var(--control-large-size,2.5rem);padding-inline:var(--control-large-paddingInline-spacious,1rem);}/*!sc*/ .dPmZyJ[data-label-wrap="true"][data-size="large"] [data-component="buttonContent"]{padding-block:calc(var(--control-large-paddingBlock,0.625rem) - 2px);}/*!sc*/ .dPmZyJ[data-inactive]:not([disabled]){background-color:var(--button-inactive-bgColor,var(--button-inactive-bgColor-rest,var(--color-btn-inactive-bg,#eaeef2)));border-color:var(--button-inactive-bgColor,var(--button-inactive-bgColor-rest,var(--color-btn-inactive-bg,#eaeef2)));color:var(--button-inactive-fgColor,var(--button-inactive-fgColor-rest,var(--color-btn-inactive-text,#57606a)));}/*!sc*/ .dPmZyJ[data-inactive]:not([disabled]):focus-visible{box-shadow:none;}/*!sc*/ .dPmZyJ [data-component="leadingVisual"]{grid-area:leadingVisual;color:var(--button-invisible-iconColor-rest,var(--fgColor-muted,var(--color-fg-muted,#656d76)));}/*!sc*/ .dPmZyJ [data-component="text"]{grid-area:text;line-height:1.4285714;white-space:nowrap;}/*!sc*/ .dPmZyJ [data-component="trailingVisual"]{grid-area:trailingVisual;color:var(--button-invisible-iconColor-rest,var(--fgColor-muted,var(--color-fg-muted,#656d76)));}/*!sc*/ .dPmZyJ [data-component="trailingAction"]{margin-right:-4px;color:var(--button-invisible-iconColor-rest,var(--fgColor-muted,var(--color-fg-muted,#656d76)));}/*!sc*/ .dPmZyJ [data-component="buttonContent"]{-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto;display:grid;grid-template-areas:"leadingVisual text trailingVisual";grid-template-columns:min-content minmax(0,auto) min-content;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-align-content:center;-ms-flex-line-pack:center;align-content:center;}/*!sc*/ .dPmZyJ [data-component="buttonContent"] > :not(:last-child){margin-right:8px;}/*!sc*/ .dPmZyJ [data-component="loadingSpinner"]{grid-area:text;margin-right:0px !important;place-self:center;color:var(--fgColor-muted,var(--color-fg-muted,#656d76));}/*!sc*/ .dPmZyJ [data-component="loadingSpinner"] + [data-component="text"]{visibility:hidden;}/*!sc*/ .dPmZyJ:hover:not([disabled]){background-color:var(--control-transparent-bgColor-hover,var(--color-action-list-item-default-hover-bg,rgba(208,215,222,0.32)));}/*!sc*/ .dPmZyJ:active:not([disabled]){background-color:var(--control-transparent-bgColor-active,var(--color-action-list-item-default-active-bg,rgba(208,215,222,0.48)));}/*!sc*/ .dPmZyJ[aria-expanded=true]{background-color:var(--control-transparent-bgColor-selected,var(--color-action-list-item-default-selected-bg,rgba(208,215,222,0.24)));}/*!sc*/ .dPmZyJ[data-component="IconButton"][data-no-visuals]{color:var(--button-invisible-iconColor-rest,var(--fgColor-muted,var(--color-fg-muted,#656d76)));}/*!sc*/ .dPmZyJ[data-no-visuals]{color:var(--button-invisible-fgColor-rest,var(--button-default-fgColor-rest,var(--color-btn-text,#24292f)));}/*!sc*/ .dPmZyJ:has([data-component="ButtonCounter"]){color:var(--button-invisible-fgColor-rest,var(--button-default-fgColor-rest,var(--color-btn-text,#24292f)));}/*!sc*/ .dPmZyJ:disabled[data-no-visuals]{color:var(--fgColor-disabled,var(--color-primer-fg-disabled,#8c959f));}/*!sc*/ .dPmZyJ:disabled[data-no-visuals] [data-component=ButtonCounter]{color:inherit;}/*!sc*/ .iQGjqs{border-radius:6px;border:1px solid;border-color:var(--button-default-borderColor-rest,var(--button-default-borderColor-rest,var(--color-btn-border,rgba(31,35,40,0.15))));font-family:inherit;font-weight:500;font-size:14px;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-text-decoration:none;text-decoration:none;text-align:center;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;height:32px;padding:0 12px;gap:8px;min-width:-webkit-max-content;min-width:-moz-max-content;min-width:max-content;-webkit-transition:80ms cubic-bezier(0.65,0,0.35,1);transition:80ms cubic-bezier(0.65,0,0.35,1);-webkit-transition-property:color,fill,background-color,border-color;transition-property:color,fill,background-color,border-color;color:var(--button-default-fgColor-rest,var(--color-btn-text,#24292f));background-color:var(--button-default-bgColor-rest,var(--color-btn-bg,#f6f8fa));box-shadow:var(--button-default-shadow-resting,var(--color-btn-shadow,0 1px 0 rgba(31,35,40,0.04))),var(--button-default-shadow-inset,var(--color-btn-inset-shadow,inset 0 1px 0 rgba(255,255,255,0.25)));}/*!sc*/ .iQGjqs:focus:not(:disabled){box-shadow:none;outline:2px solid var(--fgColor-accent,var(--color-accent-fg,#0969da));outline-offset:-2px;}/*!sc*/ .iQGjqs:focus:not(:disabled):not(:focus-visible){outline:solid 1px transparent;}/*!sc*/ .iQGjqs:focus-visible:not(:disabled){box-shadow:none;outline:2px solid var(--fgColor-accent,var(--color-accent-fg,#0969da));outline-offset:-2px;}/*!sc*/ .iQGjqs[href]{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;}/*!sc*/ .iQGjqs[href]:hover{-webkit-text-decoration:none;text-decoration:none;}/*!sc*/ .iQGjqs:hover{-webkit-transition-duration:80ms;transition-duration:80ms;}/*!sc*/ .iQGjqs:active{-webkit-transition:none;transition:none;}/*!sc*/ .iQGjqs[data-inactive]{cursor:auto;}/*!sc*/ .iQGjqs:disabled{cursor:not-allowed;box-shadow:none;color:var(--fgColor-disabled,var(--color-primer-fg-disabled,#8c959f));border-color:var(--button-default-borderColor-disabled,var(--button-default-borderColor-rest,var(--color-btn-border,rgba(31,35,40,0.15))));background-color:var(--button-default-bgColor-disabled,var(--control-bgColor-disabled,var(--color-input-disabled-bg,rgba(175,184,193,0.2))));}/*!sc*/ .iQGjqs:disabled [data-component=ButtonCounter]{color:inherit;}/*!sc*/ @media (forced-colors:active){.iQGjqs:focus{outline:solid 1px transparent;}}/*!sc*/ .iQGjqs [data-component=ButtonCounter]{font-size:12px;background-color:var(--buttonCounter-default-bgColor-rest,var(--color-btn-counter-bg,rgba(31,35,40,0.08)));}/*!sc*/ .iQGjqs[data-component=IconButton]{display:inline-grid;padding:unset;place-content:center;width:32px;min-width:unset;}/*!sc*/ .iQGjqs[data-size="small"]{padding:0 8px;height:28px;gap:4px;font-size:12px;}/*!sc*/ .iQGjqs[data-size="small"] [data-component="text"]{line-height:1.6666667;}/*!sc*/ .iQGjqs[data-size="small"] [data-component=ButtonCounter]{font-size:12px;}/*!sc*/ .iQGjqs[data-size="small"] [data-component="buttonContent"] > :not(:last-child){margin-right:4px;}/*!sc*/ .iQGjqs[data-size="small"][data-component=IconButton]{width:28px;padding:unset;}/*!sc*/ .iQGjqs[data-size="large"]{padding:0 16px;height:40px;gap:8px;}/*!sc*/ .iQGjqs[data-size="large"] [data-component="buttonContent"] > :not(:last-child){margin-right:8px;}/*!sc*/ .iQGjqs[data-size="large"][data-component=IconButton]{width:40px;padding:unset;}/*!sc*/ .iQGjqs[data-block="block"]{width:100%;}/*!sc*/ .iQGjqs[data-label-wrap="true"]{min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content;height:unset;min-height:var(--control-medium-size,2rem);}/*!sc*/ .iQGjqs[data-label-wrap="true"] [data-component="buttonContent"]{-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch;padding-block:calc(var(--control-medium-paddingBlock,0.375rem) - 2px);}/*!sc*/ .iQGjqs[data-label-wrap="true"] [data-component="text"]{white-space:unset;word-break:break-word;}/*!sc*/ .iQGjqs[data-label-wrap="true"][data-size="small"]{height:unset;min-height:var(--control-small-size,1.75rem);}/*!sc*/ .iQGjqs[data-label-wrap="true"][data-size="small"] [data-component="buttonContent"]{padding-block:calc(var(--control-small-paddingBlock,0.25rem) - 2px);}/*!sc*/ .iQGjqs[data-label-wrap="true"][data-size="large"]{height:unset;min-height:var(--control-large-size,2.5rem);padding-inline:var(--control-large-paddingInline-spacious,1rem);}/*!sc*/ .iQGjqs[data-label-wrap="true"][data-size="large"] [data-component="buttonContent"]{padding-block:calc(var(--control-large-paddingBlock,0.625rem) - 2px);}/*!sc*/ .iQGjqs[data-inactive]:not([disabled]){background-color:var(--button-inactive-bgColor,var(--button-inactive-bgColor-rest,var(--color-btn-inactive-bg,#eaeef2)));border-color:var(--button-inactive-bgColor,var(--button-inactive-bgColor-rest,var(--color-btn-inactive-bg,#eaeef2)));color:var(--button-inactive-fgColor,var(--button-inactive-fgColor-rest,var(--color-btn-inactive-text,#57606a)));}/*!sc*/ .iQGjqs[data-inactive]:not([disabled]):focus-visible{box-shadow:none;}/*!sc*/ .iQGjqs [data-component="leadingVisual"]{grid-area:leadingVisual;}/*!sc*/ .iQGjqs [data-component="text"]{grid-area:text;line-height:1.4285714;white-space:nowrap;}/*!sc*/ .iQGjqs [data-component="trailingVisual"]{grid-area:trailingVisual;}/*!sc*/ .iQGjqs [data-component="trailingAction"]{margin-right:-4px;}/*!sc*/ .iQGjqs [data-component="buttonContent"]{-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto;display:grid;grid-template-areas:"leadingVisual text trailingVisual";grid-template-columns:min-content minmax(0,auto) min-content;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-align-content:center;-ms-flex-line-pack:center;align-content:center;}/*!sc*/ .iQGjqs [data-component="buttonContent"] > :not(:last-child){margin-right:8px;}/*!sc*/ .iQGjqs [data-component="loadingSpinner"]{grid-area:text;margin-right:0px !important;place-self:center;color:var(--fgColor-muted,var(--color-fg-muted,#656d76));}/*!sc*/ .iQGjqs [data-component="loadingSpinner"] + [data-component="text"]{visibility:hidden;}/*!sc*/ .iQGjqs:hover:not([disabled]):not([data-inactive]){background-color:var(--button-default-bgColor-hover,var(--color-btn-hover-bg,#f3f4f6));border-color:var(--button-default-borderColor-hover,var(--button-default-borderColor-hover,var(--color-btn-hover-border,rgba(31,35,40,0.15))));}/*!sc*/ .iQGjqs:active:not([disabled]):not([data-inactive]){background-color:var(--button-default-bgColor-active,var(--color-btn-active-bg,hsla(220,14%,93%,1)));border-color:var(--button-default-borderColor-active,var(--button-default-borderColor-active,var(--color-btn-active-border,rgba(31,35,40,0.15))));}/*!sc*/ .iQGjqs[aria-expanded=true]{background-color:var(--button-default-bgColor-active,var(--color-btn-active-bg,hsla(220,14%,93%,1)));border-color:var(--button-default-borderColor-active,var(--button-default-borderColor-active,var(--color-btn-active-border,rgba(31,35,40,0.15))));}/*!sc*/ .iQGjqs [data-component="leadingVisual"],.iQGjqs [data-component="trailingVisual"],.iQGjqs [data-component="trailingAction"]{color:var(--button-color,var(--fgColor-muted,var(--color-fg-muted,#656d76)));}/*!sc*/ .iQGjqs[data-component="IconButton"][data-no-visuals]:not(:disabled){color:var(--fgColor-muted,var(--color-fg-muted,#656d76));}/*!sc*/ .iQGjqs[data-size="medium"]{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}/*!sc*/ .iQGjqs[data-size="medium"] svg{color:var(--fgColor-muted,var(--color-fg-muted,#656d76));}/*!sc*/ .iQGjqs[data-size="medium"] > span{width:inherit;}/*!sc*/ .iLfocZ{border-radius:6px;border:1px solid;border-color:var(--button-default-borderColor-rest,var(--button-default-borderColor-rest,var(--color-btn-border,rgba(31,35,40,0.15))));font-family:inherit;font-weight:500;font-size:14px;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-text-decoration:none;text-decoration:none;text-align:center;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;height:32px;padding:0 12px;gap:8px;min-width:-webkit-max-content;min-width:-moz-max-content;min-width:max-content;-webkit-transition:80ms cubic-bezier(0.65,0,0.35,1);transition:80ms cubic-bezier(0.65,0,0.35,1);-webkit-transition-property:color,fill,background-color,border-color;transition-property:color,fill,background-color,border-color;color:var(--button-default-fgColor-rest,var(--color-btn-text,#24292f));background-color:var(--button-default-bgColor-rest,var(--color-btn-bg,#f6f8fa));box-shadow:var(--button-default-shadow-resting,var(--color-btn-shadow,0 1px 0 rgba(31,35,40,0.04))),var(--button-default-shadow-inset,var(--color-btn-inset-shadow,inset 0 1px 0 rgba(255,255,255,0.25)));}/*!sc*/ .iLfocZ:focus:not(:disabled){box-shadow:none;outline:2px solid var(--fgColor-accent,var(--color-accent-fg,#0969da));outline-offset:-2px;}/*!sc*/ .iLfocZ:focus:not(:disabled):not(:focus-visible){outline:solid 1px transparent;}/*!sc*/ .iLfocZ:focus-visible:not(:disabled){box-shadow:none;outline:2px solid var(--fgColor-accent,var(--color-accent-fg,#0969da));outline-offset:-2px;}/*!sc*/ .iLfocZ[href]{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;}/*!sc*/ .iLfocZ[href]:hover{-webkit-text-decoration:none;text-decoration:none;}/*!sc*/ .iLfocZ:hover{-webkit-transition-duration:80ms;transition-duration:80ms;}/*!sc*/ .iLfocZ:active{-webkit-transition:none;transition:none;}/*!sc*/ .iLfocZ[data-inactive]{cursor:auto;}/*!sc*/ .iLfocZ:disabled{cursor:not-allowed;box-shadow:none;color:var(--fgColor-disabled,var(--color-primer-fg-disabled,#8c959f));border-color:var(--button-default-borderColor-disabled,var(--button-default-borderColor-rest,var(--color-btn-border,rgba(31,35,40,0.15))));background-color:var(--button-default-bgColor-disabled,var(--control-bgColor-disabled,var(--color-input-disabled-bg,rgba(175,184,193,0.2))));}/*!sc*/ .iLfocZ:disabled [data-component=ButtonCounter]{color:inherit;}/*!sc*/ @media (forced-colors:active){.iLfocZ:focus{outline:solid 1px transparent;}}/*!sc*/ .iLfocZ [data-component=ButtonCounter]{font-size:12px;background-color:var(--buttonCounter-default-bgColor-rest,var(--color-btn-counter-bg,rgba(31,35,40,0.08)));}/*!sc*/ .iLfocZ[data-component=IconButton]{display:inline-grid;padding:unset;place-content:center;width:32px;min-width:unset;}/*!sc*/ .iLfocZ[data-size="small"]{padding:0 8px;height:28px;gap:4px;font-size:12px;}/*!sc*/ .iLfocZ[data-size="small"] [data-component="text"]{line-height:1.6666667;}/*!sc*/ .iLfocZ[data-size="small"] [data-component=ButtonCounter]{font-size:12px;}/*!sc*/ .iLfocZ[data-size="small"] [data-component="buttonContent"] > :not(:last-child){margin-right:4px;}/*!sc*/ .iLfocZ[data-size="small"][data-component=IconButton]{width:28px;padding:unset;}/*!sc*/ .iLfocZ[data-size="large"]{padding:0 16px;height:40px;gap:8px;}/*!sc*/ .iLfocZ[data-size="large"] [data-component="buttonContent"] > :not(:last-child){margin-right:8px;}/*!sc*/ .iLfocZ[data-size="large"][data-component=IconButton]{width:40px;padding:unset;}/*!sc*/ .iLfocZ[data-block="block"]{width:100%;}/*!sc*/ .iLfocZ[data-label-wrap="true"]{min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content;height:unset;min-height:var(--control-medium-size,2rem);}/*!sc*/ .iLfocZ[data-label-wrap="true"] [data-component="buttonContent"]{-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch;padding-block:calc(var(--control-medium-paddingBlock,0.375rem) - 2px);}/*!sc*/ .iLfocZ[data-label-wrap="true"] [data-component="text"]{white-space:unset;word-break:break-word;}/*!sc*/ .iLfocZ[data-label-wrap="true"][data-size="small"]{height:unset;min-height:var(--control-small-size,1.75rem);}/*!sc*/ .iLfocZ[data-label-wrap="true"][data-size="small"] [data-component="buttonContent"]{padding-block:calc(var(--control-small-paddingBlock,0.25rem) - 2px);}/*!sc*/ .iLfocZ[data-label-wrap="true"][data-size="large"]{height:unset;min-height:var(--control-large-size,2.5rem);padding-inline:var(--control-large-paddingInline-spacious,1rem);}/*!sc*/ .iLfocZ[data-label-wrap="true"][data-size="large"] [data-component="buttonContent"]{padding-block:calc(var(--control-large-paddingBlock,0.625rem) - 2px);}/*!sc*/ .iLfocZ[data-inactive]:not([disabled]){background-color:var(--button-inactive-bgColor,var(--button-inactive-bgColor-rest,var(--color-btn-inactive-bg,#eaeef2)));border-color:var(--button-inactive-bgColor,var(--button-inactive-bgColor-rest,var(--color-btn-inactive-bg,#eaeef2)));color:var(--button-inactive-fgColor,var(--button-inactive-fgColor-rest,var(--color-btn-inactive-text,#57606a)));}/*!sc*/ .iLfocZ[data-inactive]:not([disabled]):focus-visible{box-shadow:none;}/*!sc*/ .iLfocZ [data-component="leadingVisual"]{grid-area:leadingVisual;}/*!sc*/ .iLfocZ [data-component="text"]{grid-area:text;line-height:1.4285714;white-space:nowrap;}/*!sc*/ .iLfocZ [data-component="trailingVisual"]{grid-area:trailingVisual;}/*!sc*/ .iLfocZ [data-component="trailingAction"]{margin-right:-4px;}/*!sc*/ .iLfocZ [data-component="buttonContent"]{-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto;display:grid;grid-template-areas:"leadingVisual text trailingVisual";grid-template-columns:min-content minmax(0,auto) min-content;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-align-content:center;-ms-flex-line-pack:center;align-content:center;}/*!sc*/ .iLfocZ [data-component="buttonContent"] > :not(:last-child){margin-right:8px;}/*!sc*/ .iLfocZ [data-component="loadingSpinner"]{grid-area:text;margin-right:0px !important;place-self:center;color:var(--fgColor-muted,var(--color-fg-muted,#656d76));}/*!sc*/ .iLfocZ [data-component="loadingSpinner"] + [data-component="text"]{visibility:hidden;}/*!sc*/ .iLfocZ:hover:not([disabled]):not([data-inactive]){background-color:var(--button-default-bgColor-hover,var(--color-btn-hover-bg,#f3f4f6));border-color:var(--button-default-borderColor-hover,var(--button-default-borderColor-hover,var(--color-btn-hover-border,rgba(31,35,40,0.15))));}/*!sc*/ .iLfocZ:active:not([disabled]):not([data-inactive]){background-color:var(--button-default-bgColor-active,var(--color-btn-active-bg,hsla(220,14%,93%,1)));border-color:var(--button-default-borderColor-active,var(--button-default-borderColor-active,var(--color-btn-active-border,rgba(31,35,40,0.15))));}/*!sc*/ .iLfocZ[aria-expanded=true]{background-color:var(--button-default-bgColor-active,var(--color-btn-active-bg,hsla(220,14%,93%,1)));border-color:var(--button-default-borderColor-active,var(--button-default-borderColor-active,var(--color-btn-active-border,rgba(31,35,40,0.15))));}/*!sc*/ .iLfocZ [data-component="leadingVisual"],.iLfocZ [data-component="trailingVisual"],.iLfocZ [data-component="trailingAction"]{color:var(--button-color,var(--fgColor-muted,var(--color-fg-muted,#656d76)));}/*!sc*/ .iLfocZ[data-component="IconButton"][data-no-visuals]:not(:disabled){color:var(--fgColor-muted,var(--color-fg-muted,#656d76));}/*!sc*/ .iLfocZ[data-size="medium"][data-no-visuals]{border-top-left-radius:0;border-bottom-left-radius:0;display:none;}/*!sc*/ .JVsBq{border-radius:6px;border:1px solid;border-color:var(--button-default-borderColor-rest,var(--button-default-borderColor-rest,var(--color-btn-border,rgba(31,35,40,0.15))));font-family:inherit;font-weight:500;font-size:14px;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-text-decoration:none;text-decoration:none;text-align:center;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;height:32px;padding:0 12px;gap:8px;min-width:-webkit-max-content;min-width:-moz-max-content;min-width:max-content;-webkit-transition:80ms cubic-bezier(0.65,0,0.35,1);transition:80ms cubic-bezier(0.65,0,0.35,1);-webkit-transition-property:color,fill,background-color,border-color;transition-property:color,fill,background-color,border-color;color:var(--button-default-fgColor-rest,var(--color-btn-text,#24292f));background-color:var(--button-default-bgColor-rest,var(--color-btn-bg,#f6f8fa));box-shadow:var(--button-default-shadow-resting,var(--color-btn-shadow,0 1px 0 rgba(31,35,40,0.04))),var(--button-default-shadow-inset,var(--color-btn-inset-shadow,inset 0 1px 0 rgba(255,255,255,0.25)));}/*!sc*/ .JVsBq:focus:not(:disabled){box-shadow:none;outline:2px solid var(--fgColor-accent,var(--color-accent-fg,#0969da));outline-offset:-2px;}/*!sc*/ .JVsBq:focus:not(:disabled):not(:focus-visible){outline:solid 1px transparent;}/*!sc*/ .JVsBq:focus-visible:not(:disabled){box-shadow:none;outline:2px solid var(--fgColor-accent,var(--color-accent-fg,#0969da));outline-offset:-2px;}/*!sc*/ .JVsBq[href]{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;}/*!sc*/ .JVsBq[href]:hover{-webkit-text-decoration:none;text-decoration:none;}/*!sc*/ .JVsBq:hover{-webkit-transition-duration:80ms;transition-duration:80ms;}/*!sc*/ .JVsBq:active{-webkit-transition:none;transition:none;}/*!sc*/ .JVsBq[data-inactive]{cursor:auto;}/*!sc*/ .JVsBq:disabled{cursor:not-allowed;box-shadow:none;color:var(--fgColor-disabled,var(--color-primer-fg-disabled,#8c959f));border-color:var(--button-default-borderColor-disabled,var(--button-default-borderColor-rest,var(--color-btn-border,rgba(31,35,40,0.15))));background-color:var(--button-default-bgColor-disabled,var(--control-bgColor-disabled,var(--color-input-disabled-bg,rgba(175,184,193,0.2))));}/*!sc*/ .JVsBq:disabled [data-component=ButtonCounter]{color:inherit;}/*!sc*/ @media (forced-colors:active){.JVsBq:focus{outline:solid 1px transparent;}}/*!sc*/ .JVsBq [data-component=ButtonCounter]{font-size:12px;background-color:var(--buttonCounter-default-bgColor-rest,var(--color-btn-counter-bg,rgba(31,35,40,0.08)));}/*!sc*/ .JVsBq[data-component=IconButton]{display:inline-grid;padding:unset;place-content:center;width:32px;min-width:unset;}/*!sc*/ .JVsBq[data-size="small"]{padding:0 8px;height:28px;gap:4px;font-size:12px;}/*!sc*/ .JVsBq[data-size="small"] [data-component="text"]{line-height:1.6666667;}/*!sc*/ .JVsBq[data-size="small"] [data-component=ButtonCounter]{font-size:12px;}/*!sc*/ .JVsBq[data-size="small"] [data-component="buttonContent"] > :not(:last-child){margin-right:4px;}/*!sc*/ .JVsBq[data-size="small"][data-component=IconButton]{width:28px;padding:unset;}/*!sc*/ .JVsBq[data-size="large"]{padding:0 16px;height:40px;gap:8px;}/*!sc*/ .JVsBq[data-size="large"] [data-component="buttonContent"] > :not(:last-child){margin-right:8px;}/*!sc*/ .JVsBq[data-size="large"][data-component=IconButton]{width:40px;padding:unset;}/*!sc*/ .JVsBq[data-block="block"]{width:100%;}/*!sc*/ .JVsBq[data-label-wrap="true"]{min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content;height:unset;min-height:var(--control-medium-size,2rem);}/*!sc*/ .JVsBq[data-label-wrap="true"] [data-component="buttonContent"]{-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch;padding-block:calc(var(--control-medium-paddingBlock,0.375rem) - 2px);}/*!sc*/ .JVsBq[data-label-wrap="true"] [data-component="text"]{white-space:unset;word-break:break-word;}/*!sc*/ .JVsBq[data-label-wrap="true"][data-size="small"]{height:unset;min-height:var(--control-small-size,1.75rem);}/*!sc*/ .JVsBq[data-label-wrap="true"][data-size="small"] [data-component="buttonContent"]{padding-block:calc(var(--control-small-paddingBlock,0.25rem) - 2px);}/*!sc*/ .JVsBq[data-label-wrap="true"][data-size="large"]{height:unset;min-height:var(--control-large-size,2.5rem);padding-inline:var(--control-large-paddingInline-spacious,1rem);}/*!sc*/ .JVsBq[data-label-wrap="true"][data-size="large"] [data-component="buttonContent"]{padding-block:calc(var(--control-large-paddingBlock,0.625rem) - 2px);}/*!sc*/ .JVsBq[data-inactive]:not([disabled]){background-color:var(--button-inactive-bgColor,var(--button-inactive-bgColor-rest,var(--color-btn-inactive-bg,#eaeef2)));border-color:var(--button-inactive-bgColor,var(--button-inactive-bgColor-rest,var(--color-btn-inactive-bg,#eaeef2)));color:var(--button-inactive-fgColor,var(--button-inactive-fgColor-rest,var(--color-btn-inactive-text,#57606a)));}/*!sc*/ .JVsBq[data-inactive]:not([disabled]):focus-visible{box-shadow:none;}/*!sc*/ .JVsBq [data-component="leadingVisual"]{grid-area:leadingVisual;}/*!sc*/ .JVsBq [data-component="text"]{grid-area:text;line-height:1.4285714;white-space:nowrap;}/*!sc*/ .JVsBq [data-component="trailingVisual"]{grid-area:trailingVisual;}/*!sc*/ .JVsBq [data-component="trailingAction"]{margin-right:-4px;}/*!sc*/ .JVsBq [data-component="buttonContent"]{-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto;display:grid;grid-template-areas:"leadingVisual text trailingVisual";grid-template-columns:min-content minmax(0,auto) min-content;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-align-content:center;-ms-flex-line-pack:center;align-content:center;}/*!sc*/ .JVsBq [data-component="buttonContent"] > :not(:last-child){margin-right:8px;}/*!sc*/ .JVsBq [data-component="loadingSpinner"]{grid-area:text;margin-right:0px !important;place-self:center;color:var(--fgColor-muted,var(--color-fg-muted,#656d76));}/*!sc*/ .JVsBq [data-component="loadingSpinner"] + [data-component="text"]{visibility:hidden;}/*!sc*/ .JVsBq:hover:not([disabled]):not([data-inactive]){background-color:var(--button-default-bgColor-hover,var(--color-btn-hover-bg,#f3f4f6));border-color:var(--button-default-borderColor-hover,var(--button-default-borderColor-hover,var(--color-btn-hover-border,rgba(31,35,40,0.15))));}/*!sc*/ .JVsBq:active:not([disabled]):not([data-inactive]){background-color:var(--button-default-bgColor-active,var(--color-btn-active-bg,hsla(220,14%,93%,1)));border-color:var(--button-default-borderColor-active,var(--button-default-borderColor-active,var(--color-btn-active-border,rgba(31,35,40,0.15))));}/*!sc*/ .JVsBq[aria-expanded=true]{background-color:var(--button-default-bgColor-active,var(--color-btn-active-bg,hsla(220,14%,93%,1)));border-color:var(--button-default-borderColor-active,var(--button-default-borderColor-active,var(--color-btn-active-border,rgba(31,35,40,0.15))));}/*!sc*/ .JVsBq [data-component="leadingVisual"],.JVsBq [data-component="trailingVisual"],.JVsBq [data-component="trailingAction"]{color:var(--button-color,var(--fgColor-muted,var(--color-fg-muted,#656d76)));}/*!sc*/ .JVsBq[data-component="IconButton"][data-no-visuals]:not(:disabled){color:var(--fgColor-muted,var(--color-fg-muted,#656d76));}/*!sc*/ .JVsBq[data-size="medium"][data-no-visuals]{color:var(--fgColor-muted,var(--color-fg-muted,#656d76));}/*!sc*/ .fwExmK{border-radius:6px;border:1px solid;border-color:transparent;font-family:inherit;font-weight:500;font-size:14px;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-text-decoration:none;text-decoration:none;text-align:center;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;height:32px;padding:0 12px;gap:8px;min-width:-webkit-max-content;min-width:-moz-max-content;min-width:max-content;-webkit-transition:80ms cubic-bezier(0.65,0,0.35,1);transition:80ms cubic-bezier(0.65,0,0.35,1);-webkit-transition-property:color,fill,background-color,border-color;transition-property:color,fill,background-color,border-color;color:var(--button-invisible-fgColor-rest,var(--button-default-fgColor-rest,var(--color-btn-text,#24292f)));background-color:transparent;box-shadow:none;}/*!sc*/ .fwExmK:focus:not(:disabled){box-shadow:none;outline:2px solid var(--fgColor-accent,var(--color-accent-fg,#0969da));outline-offset:-2px;}/*!sc*/ .fwExmK:focus:not(:disabled):not(:focus-visible){outline:solid 1px transparent;}/*!sc*/ .fwExmK:focus-visible:not(:disabled){box-shadow:none;outline:2px solid var(--fgColor-accent,var(--color-accent-fg,#0969da));outline-offset:-2px;}/*!sc*/ .fwExmK[href]{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;}/*!sc*/ .fwExmK[href]:hover{-webkit-text-decoration:none;text-decoration:none;}/*!sc*/ .fwExmK:hover{-webkit-transition-duration:80ms;transition-duration:80ms;}/*!sc*/ .fwExmK:active{-webkit-transition:none;transition:none;}/*!sc*/ .fwExmK[data-inactive]{cursor:auto;}/*!sc*/ .fwExmK:disabled{cursor:not-allowed;box-shadow:none;color:var(--fgColor-disabled,var(--color-primer-fg-disabled,#8c959f));background-color:var(--button-invisible-bgColor-disabled,transparent);}/*!sc*/ .fwExmK:disabled [data-component=ButtonCounter],.fwExmK:disabled [data-component="leadingVisual"],.fwExmK:disabled [data-component="trailingAction"]{color:inherit;}/*!sc*/ @media (forced-colors:active){.fwExmK:focus{outline:solid 1px transparent;}}/*!sc*/ .fwExmK [data-component=ButtonCounter]{font-size:12px;}/*!sc*/ .fwExmK[data-component=IconButton]{display:inline-grid;padding:unset;place-content:center;width:32px;min-width:unset;}/*!sc*/ .fwExmK[data-size="small"]{padding:0 8px;height:28px;gap:4px;font-size:12px;color:var(--fgColor-default,var(--color-fg-default,#1F2328));margin-left:8px;}/*!sc*/ .fwExmK[data-size="small"] [data-component="text"]{line-height:1.6666667;}/*!sc*/ .fwExmK[data-size="small"] [data-component=ButtonCounter]{font-size:12px;}/*!sc*/ .fwExmK[data-size="small"] [data-component="buttonContent"] > :not(:last-child){margin-right:4px;}/*!sc*/ .fwExmK[data-size="small"][data-component=IconButton]{width:28px;padding:unset;}/*!sc*/ .fwExmK[data-size="large"]{padding:0 16px;height:40px;gap:8px;}/*!sc*/ .fwExmK[data-size="large"] [data-component="buttonContent"] > :not(:last-child){margin-right:8px;}/*!sc*/ .fwExmK[data-size="large"][data-component=IconButton]{width:40px;padding:unset;}/*!sc*/ .fwExmK[data-block="block"]{width:100%;}/*!sc*/ .fwExmK[data-label-wrap="true"]{min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content;height:unset;min-height:var(--control-medium-size,2rem);}/*!sc*/ .fwExmK[data-label-wrap="true"] [data-component="buttonContent"]{-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch;padding-block:calc(var(--control-medium-paddingBlock,0.375rem) - 2px);}/*!sc*/ .fwExmK[data-label-wrap="true"] [data-component="text"]{white-space:unset;word-break:break-word;}/*!sc*/ .fwExmK[data-label-wrap="true"][data-size="small"]{height:unset;min-height:var(--control-small-size,1.75rem);}/*!sc*/ .fwExmK[data-label-wrap="true"][data-size="small"] [data-component="buttonContent"]{padding-block:calc(var(--control-small-paddingBlock,0.25rem) - 2px);}/*!sc*/ .fwExmK[data-label-wrap="true"][data-size="large"]{height:unset;min-height:var(--control-large-size,2.5rem);padding-inline:var(--control-large-paddingInline-spacious,1rem);}/*!sc*/ .fwExmK[data-label-wrap="true"][data-size="large"] [data-component="buttonContent"]{padding-block:calc(var(--control-large-paddingBlock,0.625rem) - 2px);}/*!sc*/ .fwExmK[data-inactive]:not([disabled]){background-color:var(--button-inactive-bgColor,var(--button-inactive-bgColor-rest,var(--color-btn-inactive-bg,#eaeef2)));border-color:var(--button-inactive-bgColor,var(--button-inactive-bgColor-rest,var(--color-btn-inactive-bg,#eaeef2)));color:var(--button-inactive-fgColor,var(--button-inactive-fgColor-rest,var(--color-btn-inactive-text,#57606a)));}/*!sc*/ .fwExmK[data-inactive]:not([disabled]):focus-visible{box-shadow:none;}/*!sc*/ .fwExmK [data-component="leadingVisual"]{grid-area:leadingVisual;color:var(--button-invisible-iconColor-rest,var(--fgColor-muted,var(--color-fg-muted,#656d76)));}/*!sc*/ .fwExmK [data-component="text"]{grid-area:text;line-height:1.4285714;white-space:nowrap;}/*!sc*/ .fwExmK [data-component="trailingVisual"]{grid-area:trailingVisual;color:var(--button-invisible-iconColor-rest,var(--fgColor-muted,var(--color-fg-muted,#656d76)));}/*!sc*/ .fwExmK [data-component="trailingAction"]{margin-right:-4px;color:var(--button-invisible-iconColor-rest,var(--fgColor-muted,var(--color-fg-muted,#656d76)));}/*!sc*/ .fwExmK [data-component="buttonContent"]{-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto;display:grid;grid-template-areas:"leadingVisual text trailingVisual";grid-template-columns:min-content minmax(0,auto) min-content;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-align-content:center;-ms-flex-line-pack:center;align-content:center;}/*!sc*/ .fwExmK [data-component="buttonContent"] > :not(:last-child){margin-right:8px;}/*!sc*/ .fwExmK [data-component="loadingSpinner"]{grid-area:text;margin-right:0px !important;place-self:center;color:var(--fgColor-muted,var(--color-fg-muted,#656d76));}/*!sc*/ .fwExmK [data-component="loadingSpinner"] + [data-component="text"]{visibility:hidden;}/*!sc*/ .fwExmK:hover:not([disabled]){background-color:var(--control-transparent-bgColor-hover,var(--color-action-list-item-default-hover-bg,rgba(208,215,222,0.32)));}/*!sc*/ .fwExmK:active:not([disabled]){background-color:var(--control-transparent-bgColor-active,var(--color-action-list-item-default-active-bg,rgba(208,215,222,0.48)));}/*!sc*/ .fwExmK[aria-expanded=true]{background-color:var(--control-transparent-bgColor-selected,var(--color-action-list-item-default-selected-bg,rgba(208,215,222,0.24)));}/*!sc*/ .fwExmK[data-component="IconButton"][data-no-visuals]{color:var(--button-invisible-iconColor-rest,var(--fgColor-muted,var(--color-fg-muted,#656d76)));}/*!sc*/ .fwExmK[data-no-visuals]{color:var(--button-invisible-fgColor-rest,var(--button-default-fgColor-rest,var(--color-btn-text,#24292f)));}/*!sc*/ .fwExmK:has([data-component="ButtonCounter"]){color:var(--button-invisible-fgColor-rest,var(--button-default-fgColor-rest,var(--color-btn-text,#24292f)));}/*!sc*/ .fwExmK:disabled[data-no-visuals]{color:var(--fgColor-disabled,var(--color-primer-fg-disabled,#8c959f));}/*!sc*/ .fwExmK:disabled[data-no-visuals] [data-component=ButtonCounter]{color:inherit;}/*!sc*/ .ifVXZX{border-radius:6px;border:1px solid;border-color:var(--button-default-borderColor-rest,var(--button-default-borderColor-rest,var(--color-btn-border,rgba(31,35,40,0.15))));font-family:inherit;font-weight:500;font-size:14px;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-text-decoration:none;text-decoration:none;text-align:center;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;height:32px;padding:0 12px;gap:8px;min-width:-webkit-max-content;min-width:-moz-max-content;min-width:max-content;-webkit-transition:80ms cubic-bezier(0.65,0,0.35,1);transition:80ms cubic-bezier(0.65,0,0.35,1);-webkit-transition-property:color,fill,background-color,border-color;transition-property:color,fill,background-color,border-color;color:var(--button-default-fgColor-rest,var(--color-btn-text,#24292f));background-color:var(--button-default-bgColor-rest,var(--color-btn-bg,#f6f8fa));box-shadow:var(--button-default-shadow-resting,var(--color-btn-shadow,0 1px 0 rgba(31,35,40,0.04))),var(--button-default-shadow-inset,var(--color-btn-inset-shadow,inset 0 1px 0 rgba(255,255,255,0.25)));padding-left:8px;padding-right:8px;}/*!sc*/ .ifVXZX:focus:not(:disabled){box-shadow:none;outline:2px solid var(--fgColor-accent,var(--color-accent-fg,#0969da));outline-offset:-2px;}/*!sc*/ .ifVXZX:focus:not(:disabled):not(:focus-visible){outline:solid 1px transparent;}/*!sc*/ .ifVXZX:focus-visible:not(:disabled){box-shadow:none;outline:2px solid var(--fgColor-accent,var(--color-accent-fg,#0969da));outline-offset:-2px;}/*!sc*/ .ifVXZX[href]{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;}/*!sc*/ .ifVXZX[href]:hover{-webkit-text-decoration:none;text-decoration:none;}/*!sc*/ .ifVXZX:hover{-webkit-transition-duration:80ms;transition-duration:80ms;}/*!sc*/ .ifVXZX:active{-webkit-transition:none;transition:none;}/*!sc*/ .ifVXZX[data-inactive]{cursor:auto;}/*!sc*/ .ifVXZX:disabled{cursor:not-allowed;box-shadow:none;color:var(--fgColor-disabled,var(--color-primer-fg-disabled,#8c959f));border-color:var(--button-default-borderColor-disabled,var(--button-default-borderColor-rest,var(--color-btn-border,rgba(31,35,40,0.15))));background-color:var(--button-default-bgColor-disabled,var(--control-bgColor-disabled,var(--color-input-disabled-bg,rgba(175,184,193,0.2))));}/*!sc*/ .ifVXZX:disabled [data-component=ButtonCounter]{color:inherit;}/*!sc*/ @media (forced-colors:active){.ifVXZX:focus{outline:solid 1px transparent;}}/*!sc*/ .ifVXZX [data-component=ButtonCounter]{font-size:12px;background-color:var(--buttonCounter-default-bgColor-rest,var(--color-btn-counter-bg,rgba(31,35,40,0.08)));}/*!sc*/ .ifVXZX[data-component=IconButton]{display:inline-grid;padding:unset;place-content:center;width:32px;min-width:unset;}/*!sc*/ .ifVXZX[data-size="small"]{padding:0 8px;height:28px;gap:4px;font-size:12px;}/*!sc*/ .ifVXZX[data-size="small"] [data-component="text"]{line-height:1.6666667;}/*!sc*/ .ifVXZX[data-size="small"] [data-component=ButtonCounter]{font-size:12px;}/*!sc*/ .ifVXZX[data-size="small"] [data-component="buttonContent"] > :not(:last-child){margin-right:4px;}/*!sc*/ .ifVXZX[data-size="small"][data-component=IconButton]{width:28px;padding:unset;}/*!sc*/ .ifVXZX[data-size="large"]{padding:0 16px;height:40px;gap:8px;}/*!sc*/ .ifVXZX[data-size="large"] [data-component="buttonContent"] > :not(:last-child){margin-right:8px;}/*!sc*/ .ifVXZX[data-size="large"][data-component=IconButton]{width:40px;padding:unset;}/*!sc*/ .ifVXZX[data-block="block"]{width:100%;}/*!sc*/ .ifVXZX[data-label-wrap="true"]{min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content;height:unset;min-height:var(--control-medium-size,2rem);}/*!sc*/ .ifVXZX[data-label-wrap="true"] [data-component="buttonContent"]{-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch;padding-block:calc(var(--control-medium-paddingBlock,0.375rem) - 2px);}/*!sc*/ .ifVXZX[data-label-wrap="true"] [data-component="text"]{white-space:unset;word-break:break-word;}/*!sc*/ .ifVXZX[data-label-wrap="true"][data-size="small"]{height:unset;min-height:var(--control-small-size,1.75rem);}/*!sc*/ .ifVXZX[data-label-wrap="true"][data-size="small"] [data-component="buttonContent"]{padding-block:calc(var(--control-small-paddingBlock,0.25rem) - 2px);}/*!sc*/ .ifVXZX[data-label-wrap="true"][data-size="large"]{height:unset;min-height:var(--control-large-size,2.5rem);padding-inline:var(--control-large-paddingInline-spacious,1rem);}/*!sc*/ .ifVXZX[data-label-wrap="true"][data-size="large"] [data-component="buttonContent"]{padding-block:calc(var(--control-large-paddingBlock,0.625rem) - 2px);}/*!sc*/ .ifVXZX[data-inactive]:not([disabled]){background-color:var(--button-inactive-bgColor,var(--button-inactive-bgColor-rest,var(--color-btn-inactive-bg,#eaeef2)));border-color:var(--button-inactive-bgColor,var(--button-inactive-bgColor-rest,var(--color-btn-inactive-bg,#eaeef2)));color:var(--button-inactive-fgColor,var(--button-inactive-fgColor-rest,var(--color-btn-inactive-text,#57606a)));}/*!sc*/ .ifVXZX[data-inactive]:not([disabled]):focus-visible{box-shadow:none;}/*!sc*/ .ifVXZX [data-component="leadingVisual"]{grid-area:leadingVisual;}/*!sc*/ .ifVXZX [data-component="text"]{grid-area:text;line-height:1.4285714;white-space:nowrap;}/*!sc*/ .ifVXZX [data-component="trailingVisual"]{grid-area:trailingVisual;}/*!sc*/ .ifVXZX [data-component="trailingAction"]{margin-right:-4px;}/*!sc*/ .ifVXZX [data-component="buttonContent"]{-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto;display:grid;grid-template-areas:"leadingVisual text trailingVisual";grid-template-columns:min-content minmax(0,auto) min-content;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-align-content:center;-ms-flex-line-pack:center;align-content:center;}/*!sc*/ .ifVXZX [data-component="buttonContent"] > :not(:last-child){margin-right:8px;}/*!sc*/ .ifVXZX [data-component="loadingSpinner"]{grid-area:text;margin-right:0px !important;place-self:center;color:var(--fgColor-muted,var(--color-fg-muted,#656d76));}/*!sc*/ .ifVXZX [data-component="loadingSpinner"] + [data-component="text"]{visibility:hidden;}/*!sc*/ .ifVXZX:hover:not([disabled]):not([data-inactive]){background-color:var(--button-default-bgColor-hover,var(--color-btn-hover-bg,#f3f4f6));border-color:var(--button-default-borderColor-hover,var(--button-default-borderColor-hover,var(--color-btn-hover-border,rgba(31,35,40,0.15))));}/*!sc*/ .ifVXZX:active:not([disabled]):not([data-inactive]){background-color:var(--button-default-bgColor-active,var(--color-btn-active-bg,hsla(220,14%,93%,1)));border-color:var(--button-default-borderColor-active,var(--button-default-borderColor-active,var(--color-btn-active-border,rgba(31,35,40,0.15))));}/*!sc*/ .ifVXZX[aria-expanded=true]{background-color:var(--button-default-bgColor-active,var(--color-btn-active-bg,hsla(220,14%,93%,1)));border-color:var(--button-default-borderColor-active,var(--button-default-borderColor-active,var(--color-btn-active-border,rgba(31,35,40,0.15))));}/*!sc*/ .ifVXZX [data-component="leadingVisual"],.ifVXZX [data-component="trailingVisual"],.ifVXZX [data-component="trailingAction"]{color:var(--button-color,var(--fgColor-muted,var(--color-fg-muted,#656d76)));}/*!sc*/ .ifVXZX[data-component="IconButton"][data-no-visuals]:not(:disabled){color:var(--fgColor-muted,var(--color-fg-muted,#656d76));}/*!sc*/ .ifVXZX linkButtonSx:hover:not([disabled]){-webkit-text-decoration:none;text-decoration:none;}/*!sc*/ .ifVXZX linkButtonSx:focus:not([disabled]){-webkit-text-decoration:none;text-decoration:none;}/*!sc*/ .ifVXZX linkButtonSx:active:not([disabled]){-webkit-text-decoration:none;text-decoration:none;}/*!sc*/ .gGdPyq{border-radius:6px;border:1px solid;border-color:var(--button-default-borderColor-rest,var(--button-default-borderColor-rest,var(--color-btn-border,rgba(31,35,40,0.15))));font-family:inherit;font-weight:500;font-size:14px;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-text-decoration:none;text-decoration:none;text-align:center;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;height:32px;padding:0 12px;gap:8px;min-width:-webkit-max-content;min-width:-moz-max-content;min-width:max-content;-webkit-transition:80ms cubic-bezier(0.65,0,0.35,1);transition:80ms cubic-bezier(0.65,0,0.35,1);-webkit-transition-property:color,fill,background-color,border-color;transition-property:color,fill,background-color,border-color;color:var(--button-default-fgColor-rest,var(--color-btn-text,#24292f));background-color:var(--button-default-bgColor-rest,var(--color-btn-bg,#f6f8fa));box-shadow:var(--button-default-shadow-resting,var(--color-btn-shadow,0 1px 0 rgba(31,35,40,0.04))),var(--button-default-shadow-inset,var(--color-btn-inset-shadow,inset 0 1px 0 rgba(255,255,255,0.25)));}/*!sc*/ .gGdPyq:focus:not(:disabled){box-shadow:none;outline:2px solid var(--fgColor-accent,var(--color-accent-fg,#0969da));outline-offset:-2px;}/*!sc*/ .gGdPyq:focus:not(:disabled):not(:focus-visible){outline:solid 1px transparent;}/*!sc*/ .gGdPyq:focus-visible:not(:disabled){box-shadow:none;outline:2px solid var(--fgColor-accent,var(--color-accent-fg,#0969da));outline-offset:-2px;}/*!sc*/ .gGdPyq[href]{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;}/*!sc*/ .gGdPyq[href]:hover{-webkit-text-decoration:none;text-decoration:none;}/*!sc*/ .gGdPyq:hover{-webkit-transition-duration:80ms;transition-duration:80ms;}/*!sc*/ .gGdPyq:active{-webkit-transition:none;transition:none;}/*!sc*/ .gGdPyq[data-inactive]{cursor:auto;}/*!sc*/ .gGdPyq:disabled{cursor:not-allowed;box-shadow:none;color:var(--fgColor-disabled,var(--color-primer-fg-disabled,#8c959f));border-color:var(--button-default-borderColor-disabled,var(--button-default-borderColor-rest,var(--color-btn-border,rgba(31,35,40,0.15))));background-color:var(--button-default-bgColor-disabled,var(--control-bgColor-disabled,var(--color-input-disabled-bg,rgba(175,184,193,0.2))));}/*!sc*/ .gGdPyq:disabled [data-component=ButtonCounter]{color:inherit;}/*!sc*/ @media (forced-colors:active){.gGdPyq:focus{outline:solid 1px transparent;}}/*!sc*/ .gGdPyq [data-component=ButtonCounter]{font-size:12px;background-color:var(--buttonCounter-default-bgColor-rest,var(--color-btn-counter-bg,rgba(31,35,40,0.08)));}/*!sc*/ .gGdPyq[data-component=IconButton]{display:inline-grid;padding:unset;place-content:center;width:32px;min-width:unset;}/*!sc*/ .gGdPyq[data-size="small"]{padding:0 8px;height:28px;gap:4px;font-size:12px;}/*!sc*/ .gGdPyq[data-size="small"] [data-component="text"]{line-height:1.6666667;}/*!sc*/ .gGdPyq[data-size="small"] [data-component=ButtonCounter]{font-size:12px;}/*!sc*/ .gGdPyq[data-size="small"] [data-component="buttonContent"] > :not(:last-child){margin-right:4px;}/*!sc*/ .gGdPyq[data-size="small"][data-component=IconButton]{width:28px;padding:unset;}/*!sc*/ .gGdPyq[data-size="large"]{padding:0 16px;height:40px;gap:8px;}/*!sc*/ .gGdPyq[data-size="large"] [data-component="buttonContent"] > :not(:last-child){margin-right:8px;}/*!sc*/ .gGdPyq[data-size="large"][data-component=IconButton]{width:40px;padding:unset;}/*!sc*/ .gGdPyq[data-block="block"]{width:100%;}/*!sc*/ .gGdPyq[data-label-wrap="true"]{min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content;height:unset;min-height:var(--control-medium-size,2rem);}/*!sc*/ .gGdPyq[data-label-wrap="true"] [data-component="buttonContent"]{-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch;padding-block:calc(var(--control-medium-paddingBlock,0.375rem) - 2px);}/*!sc*/ .gGdPyq[data-label-wrap="true"] [data-component="text"]{white-space:unset;word-break:break-word;}/*!sc*/ .gGdPyq[data-label-wrap="true"][data-size="small"]{height:unset;min-height:var(--control-small-size,1.75rem);}/*!sc*/ .gGdPyq[data-label-wrap="true"][data-size="small"] [data-component="buttonContent"]{padding-block:calc(var(--control-small-paddingBlock,0.25rem) - 2px);}/*!sc*/ .gGdPyq[data-label-wrap="true"][data-size="large"]{height:unset;min-height:var(--control-large-size,2.5rem);padding-inline:var(--control-large-paddingInline-spacious,1rem);}/*!sc*/ .gGdPyq[data-label-wrap="true"][data-size="large"] [data-component="buttonContent"]{padding-block:calc(var(--control-large-paddingBlock,0.625rem) - 2px);}/*!sc*/ .gGdPyq[data-inactive]:not([disabled]){background-color:var(--button-inactive-bgColor,var(--button-inactive-bgColor-rest,var(--color-btn-inactive-bg,#eaeef2)));border-color:var(--button-inactive-bgColor,var(--button-inactive-bgColor-rest,var(--color-btn-inactive-bg,#eaeef2)));color:var(--button-inactive-fgColor,var(--button-inactive-fgColor-rest,var(--color-btn-inactive-text,#57606a)));}/*!sc*/ .gGdPyq[data-inactive]:not([disabled]):focus-visible{box-shadow:none;}/*!sc*/ .gGdPyq [data-component="leadingVisual"]{grid-area:leadingVisual;}/*!sc*/ .gGdPyq [data-component="text"]{grid-area:text;line-height:1.4285714;white-space:nowrap;}/*!sc*/ .gGdPyq [data-component="trailingVisual"]{grid-area:trailingVisual;}/*!sc*/ .gGdPyq [data-component="trailingAction"]{margin-right:-4px;}/*!sc*/ .gGdPyq [data-component="buttonContent"]{-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto;display:grid;grid-template-areas:"leadingVisual text trailingVisual";grid-template-columns:min-content minmax(0,auto) min-content;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-align-content:center;-ms-flex-line-pack:center;align-content:center;}/*!sc*/ .gGdPyq [data-component="buttonContent"] > :not(:last-child){margin-right:8px;}/*!sc*/ .gGdPyq [data-component="loadingSpinner"]{grid-area:text;margin-right:0px !important;place-self:center;color:var(--fgColor-muted,var(--color-fg-muted,#656d76));}/*!sc*/ .gGdPyq [data-component="loadingSpinner"] + [data-component="text"]{visibility:hidden;}/*!sc*/ .gGdPyq:hover:not([disabled]):not([data-inactive]){background-color:var(--button-default-bgColor-hover,var(--color-btn-hover-bg,#f3f4f6));border-color:var(--button-default-borderColor-hover,var(--button-default-borderColor-hover,var(--color-btn-hover-border,rgba(31,35,40,0.15))));}/*!sc*/ .gGdPyq:active:not([disabled]):not([data-inactive]){background-color:var(--button-default-bgColor-active,var(--color-btn-active-bg,hsla(220,14%,93%,1)));border-color:var(--button-default-borderColor-active,var(--button-default-borderColor-active,var(--color-btn-active-border,rgba(31,35,40,0.15))));}/*!sc*/ .gGdPyq[aria-expanded=true]{background-color:var(--button-default-bgColor-active,var(--color-btn-active-bg,hsla(220,14%,93%,1)));border-color:var(--button-default-borderColor-active,var(--button-default-borderColor-active,var(--color-btn-active-border,rgba(31,35,40,0.15))));}/*!sc*/ .gGdPyq [data-component="leadingVisual"],.gGdPyq [data-component="trailingVisual"],.gGdPyq [data-component="trailingAction"]{color:var(--button-color,var(--fgColor-muted,var(--color-fg-muted,#656d76)));}/*!sc*/ .gGdPyq[data-component="IconButton"][data-no-visuals]:not(:disabled){color:var(--fgColor-muted,var(--color-fg-muted,#656d76));}/*!sc*/ .dOuZvu{border-radius:6px;border:1px solid;border-color:var(--button-default-borderColor-rest,var(--button-default-borderColor-rest,var(--color-btn-border,rgba(31,35,40,0.15))));font-family:inherit;font-weight:500;font-size:14px;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-text-decoration:none;text-decoration:none;text-align:center;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;height:32px;padding:0 12px;gap:8px;min-width:-webkit-max-content;min-width:-moz-max-content;min-width:max-content;-webkit-transition:80ms cubic-bezier(0.65,0,0.35,1);transition:80ms cubic-bezier(0.65,0,0.35,1);-webkit-transition-property:color,fill,background-color,border-color;transition-property:color,fill,background-color,border-color;color:var(--button-default-fgColor-rest,var(--color-btn-text,#24292f));background-color:var(--button-default-bgColor-rest,var(--color-btn-bg,#f6f8fa));box-shadow:var(--button-default-shadow-resting,var(--color-btn-shadow,0 1px 0 rgba(31,35,40,0.04))),var(--button-default-shadow-inset,var(--color-btn-inset-shadow,inset 0 1px 0 rgba(255,255,255,0.25)));}/*!sc*/ .dOuZvu:focus:not(:disabled){box-shadow:none;outline:2px solid var(--fgColor-accent,var(--color-accent-fg,#0969da));outline-offset:-2px;}/*!sc*/ .dOuZvu:focus:not(:disabled):not(:focus-visible){outline:solid 1px transparent;}/*!sc*/ .dOuZvu:focus-visible:not(:disabled){box-shadow:none;outline:2px solid var(--fgColor-accent,var(--color-accent-fg,#0969da));outline-offset:-2px;}/*!sc*/ .dOuZvu[href]{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;}/*!sc*/ .dOuZvu[href]:hover{-webkit-text-decoration:none;text-decoration:none;}/*!sc*/ .dOuZvu:hover{-webkit-transition-duration:80ms;transition-duration:80ms;}/*!sc*/ .dOuZvu:active{-webkit-transition:none;transition:none;}/*!sc*/ .dOuZvu[data-inactive]{cursor:auto;}/*!sc*/ .dOuZvu:disabled{cursor:not-allowed;box-shadow:none;color:var(--fgColor-disabled,var(--color-primer-fg-disabled,#8c959f));border-color:var(--button-default-borderColor-disabled,var(--button-default-borderColor-rest,var(--color-btn-border,rgba(31,35,40,0.15))));background-color:var(--button-default-bgColor-disabled,var(--control-bgColor-disabled,var(--color-input-disabled-bg,rgba(175,184,193,0.2))));}/*!sc*/ .dOuZvu:disabled [data-component=ButtonCounter]{color:inherit;}/*!sc*/ @media (forced-colors:active){.dOuZvu:focus{outline:solid 1px transparent;}}/*!sc*/ .dOuZvu [data-component=ButtonCounter]{font-size:12px;background-color:var(--buttonCounter-default-bgColor-rest,var(--color-btn-counter-bg,rgba(31,35,40,0.08)));}/*!sc*/ .dOuZvu[data-component=IconButton]{display:inline-grid;padding:unset;place-content:center;width:32px;min-width:unset;}/*!sc*/ .dOuZvu[data-size="small"]{padding:0 8px;height:28px;gap:4px;font-size:12px;}/*!sc*/ .dOuZvu[data-size="small"] [data-component="text"]{line-height:1.6666667;}/*!sc*/ .dOuZvu[data-size="small"] [data-component=ButtonCounter]{font-size:12px;}/*!sc*/ .dOuZvu[data-size="small"] [data-component="buttonContent"] > :not(:last-child){margin-right:4px;}/*!sc*/ .dOuZvu[data-size="small"][data-component=IconButton]{width:28px;padding:unset;}/*!sc*/ .dOuZvu[data-size="large"]{padding:0 16px;height:40px;gap:8px;}/*!sc*/ .dOuZvu[data-size="large"] [data-component="buttonContent"] > :not(:last-child){margin-right:8px;}/*!sc*/ .dOuZvu[data-size="large"][data-component=IconButton]{width:40px;padding:unset;}/*!sc*/ .dOuZvu[data-block="block"]{width:100%;}/*!sc*/ .dOuZvu[data-label-wrap="true"]{min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content;height:unset;min-height:var(--control-medium-size,2rem);}/*!sc*/ .dOuZvu[data-label-wrap="true"] [data-component="buttonContent"]{-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch;padding-block:calc(var(--control-medium-paddingBlock,0.375rem) - 2px);}/*!sc*/ .dOuZvu[data-label-wrap="true"] [data-component="text"]{white-space:unset;word-break:break-word;}/*!sc*/ .dOuZvu[data-label-wrap="true"][data-size="small"]{height:unset;min-height:var(--control-small-size,1.75rem);}/*!sc*/ .dOuZvu[data-label-wrap="true"][data-size="small"] [data-component="buttonContent"]{padding-block:calc(var(--control-small-paddingBlock,0.25rem) - 2px);}/*!sc*/ .dOuZvu[data-label-wrap="true"][data-size="large"]{height:unset;min-height:var(--control-large-size,2.5rem);padding-inline:var(--control-large-paddingInline-spacious,1rem);}/*!sc*/ .dOuZvu[data-label-wrap="true"][data-size="large"] [data-component="buttonContent"]{padding-block:calc(var(--control-large-paddingBlock,0.625rem) - 2px);}/*!sc*/ .dOuZvu[data-inactive]:not([disabled]){background-color:var(--button-inactive-bgColor,var(--button-inactive-bgColor-rest,var(--color-btn-inactive-bg,#eaeef2)));border-color:var(--button-inactive-bgColor,var(--button-inactive-bgColor-rest,var(--color-btn-inactive-bg,#eaeef2)));color:var(--button-inactive-fgColor,var(--button-inactive-fgColor-rest,var(--color-btn-inactive-text,#57606a)));}/*!sc*/ .dOuZvu[data-inactive]:not([disabled]):focus-visible{box-shadow:none;}/*!sc*/ .dOuZvu [data-component="leadingVisual"]{grid-area:leadingVisual;}/*!sc*/ .dOuZvu [data-component="text"]{grid-area:text;line-height:1.4285714;white-space:nowrap;}/*!sc*/ .dOuZvu [data-component="trailingVisual"]{grid-area:trailingVisual;}/*!sc*/ .dOuZvu [data-component="trailingAction"]{margin-right:-4px;}/*!sc*/ .dOuZvu [data-component="buttonContent"]{-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto;display:grid;grid-template-areas:"leadingVisual text trailingVisual";grid-template-columns:min-content minmax(0,auto) min-content;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-align-content:center;-ms-flex-line-pack:center;align-content:center;}/*!sc*/ .dOuZvu [data-component="buttonContent"] > :not(:last-child){margin-right:8px;}/*!sc*/ .dOuZvu [data-component="loadingSpinner"]{grid-area:text;margin-right:0px !important;place-self:center;color:var(--fgColor-muted,var(--color-fg-muted,#656d76));}/*!sc*/ .dOuZvu [data-component="loadingSpinner"] + [data-component="text"]{visibility:hidden;}/*!sc*/ .dOuZvu:hover:not([disabled]):not([data-inactive]){background-color:var(--button-default-bgColor-hover,var(--color-btn-hover-bg,#f3f4f6));border-color:var(--button-default-borderColor-hover,var(--button-default-borderColor-hover,var(--color-btn-hover-border,rgba(31,35,40,0.15))));}/*!sc*/ .dOuZvu:active:not([disabled]):not([data-inactive]){background-color:var(--button-default-bgColor-active,var(--color-btn-active-bg,hsla(220,14%,93%,1)));border-color:var(--button-default-borderColor-active,var(--button-default-borderColor-active,var(--color-btn-active-border,rgba(31,35,40,0.15))));}/*!sc*/ .dOuZvu[aria-expanded=true]{background-color:var(--button-default-bgColor-active,var(--color-btn-active-bg,hsla(220,14%,93%,1)));border-color:var(--button-default-borderColor-active,var(--button-default-borderColor-active,var(--color-btn-active-border,rgba(31,35,40,0.15))));}/*!sc*/ .dOuZvu [data-component="leadingVisual"],.dOuZvu [data-component="trailingVisual"],.dOuZvu [data-component="trailingAction"]{color:var(--button-color,var(--fgColor-muted,var(--color-fg-muted,#656d76)));}/*!sc*/ .dOuZvu[data-component="IconButton"][data-no-visuals]:not(:disabled){color:var(--fgColor-muted,var(--color-fg-muted,#656d76));}/*!sc*/ .dOuZvu[data-size="small"][data-no-visuals]{border-top-left-radius:0;border-bottom-left-radius:0;}/*!sc*/ .iZkvjn{border-radius:6px;border:1px solid;border-color:transparent;font-family:inherit;font-weight:500;font-size:14px;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-text-decoration:none;text-decoration:none;text-align:center;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;height:32px;padding:0 12px;gap:8px;min-width:-webkit-max-content;min-width:-moz-max-content;min-width:max-content;-webkit-transition:80ms cubic-bezier(0.65,0,0.35,1);transition:80ms cubic-bezier(0.65,0,0.35,1);-webkit-transition-property:color,fill,background-color,border-color;transition-property:color,fill,background-color,border-color;color:var(--button-invisible-fgColor-rest,var(--button-default-fgColor-rest,var(--color-btn-text,#24292f)));background-color:transparent;box-shadow:none;}/*!sc*/ .iZkvjn:focus:not(:disabled){box-shadow:none;outline:2px solid var(--fgColor-accent,var(--color-accent-fg,#0969da));outline-offset:-2px;}/*!sc*/ .iZkvjn:focus:not(:disabled):not(:focus-visible){outline:solid 1px transparent;}/*!sc*/ .iZkvjn:focus-visible:not(:disabled){box-shadow:none;outline:2px solid var(--fgColor-accent,var(--color-accent-fg,#0969da));outline-offset:-2px;}/*!sc*/ .iZkvjn[href]{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;}/*!sc*/ .iZkvjn[href]:hover{-webkit-text-decoration:none;text-decoration:none;}/*!sc*/ .iZkvjn:hover{-webkit-transition-duration:80ms;transition-duration:80ms;}/*!sc*/ .iZkvjn:active{-webkit-transition:none;transition:none;}/*!sc*/ .iZkvjn[data-inactive]{cursor:auto;}/*!sc*/ .iZkvjn:disabled{cursor:not-allowed;box-shadow:none;color:var(--fgColor-disabled,var(--color-primer-fg-disabled,#8c959f));background-color:var(--button-invisible-bgColor-disabled,transparent);}/*!sc*/ .iZkvjn:disabled [data-component=ButtonCounter],.iZkvjn:disabled [data-component="leadingVisual"],.iZkvjn:disabled [data-component="trailingAction"]{color:inherit;}/*!sc*/ @media (forced-colors:active){.iZkvjn:focus{outline:solid 1px transparent;}}/*!sc*/ .iZkvjn [data-component=ButtonCounter]{font-size:12px;}/*!sc*/ .iZkvjn[data-component=IconButton]{display:inline-grid;padding:unset;place-content:center;width:32px;min-width:unset;}/*!sc*/ .iZkvjn[data-size="small"]{padding:0 8px;height:28px;gap:4px;font-size:12px;}/*!sc*/ .iZkvjn[data-size="small"] [data-component="text"]{line-height:1.6666667;}/*!sc*/ .iZkvjn[data-size="small"] [data-component=ButtonCounter]{font-size:12px;}/*!sc*/ .iZkvjn[data-size="small"] [data-component="buttonContent"] > :not(:last-child){margin-right:4px;}/*!sc*/ .iZkvjn[data-size="small"][data-component=IconButton]{width:28px;padding:unset;}/*!sc*/ .iZkvjn[data-size="large"]{padding:0 16px;height:40px;gap:8px;}/*!sc*/ .iZkvjn[data-size="large"] [data-component="buttonContent"] > :not(:last-child){margin-right:8px;}/*!sc*/ .iZkvjn[data-size="large"][data-component=IconButton]{width:40px;padding:unset;}/*!sc*/ .iZkvjn[data-block="block"]{width:100%;}/*!sc*/ .iZkvjn[data-label-wrap="true"]{min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content;height:unset;min-height:var(--control-medium-size,2rem);}/*!sc*/ .iZkvjn[data-label-wrap="true"] [data-component="buttonContent"]{-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch;padding-block:calc(var(--control-medium-paddingBlock,0.375rem) - 2px);}/*!sc*/ .iZkvjn[data-label-wrap="true"] [data-component="text"]{white-space:unset;word-break:break-word;}/*!sc*/ .iZkvjn[data-label-wrap="true"][data-size="small"]{height:unset;min-height:var(--control-small-size,1.75rem);}/*!sc*/ .iZkvjn[data-label-wrap="true"][data-size="small"] [data-component="buttonContent"]{padding-block:calc(var(--control-small-paddingBlock,0.25rem) - 2px);}/*!sc*/ .iZkvjn[data-label-wrap="true"][data-size="large"]{height:unset;min-height:var(--control-large-size,2.5rem);padding-inline:var(--control-large-paddingInline-spacious,1rem);}/*!sc*/ .iZkvjn[data-label-wrap="true"][data-size="large"] [data-component="buttonContent"]{padding-block:calc(var(--control-large-paddingBlock,0.625rem) - 2px);}/*!sc*/ .iZkvjn[data-inactive]:not([disabled]){background-color:var(--button-inactive-bgColor,var(--button-inactive-bgColor-rest,var(--color-btn-inactive-bg,#eaeef2)));border-color:var(--button-inactive-bgColor,var(--button-inactive-bgColor-rest,var(--color-btn-inactive-bg,#eaeef2)));color:var(--button-inactive-fgColor,var(--button-inactive-fgColor-rest,var(--color-btn-inactive-text,#57606a)));}/*!sc*/ .iZkvjn[data-inactive]:not([disabled]):focus-visible{box-shadow:none;}/*!sc*/ .iZkvjn [data-component="leadingVisual"]{grid-area:leadingVisual;color:var(--button-invisible-iconColor-rest,var(--fgColor-muted,var(--color-fg-muted,#656d76)));}/*!sc*/ .iZkvjn [data-component="text"]{grid-area:text;line-height:1.4285714;white-space:nowrap;}/*!sc*/ .iZkvjn [data-component="trailingVisual"]{grid-area:trailingVisual;color:var(--button-invisible-iconColor-rest,var(--fgColor-muted,var(--color-fg-muted,#656d76)));}/*!sc*/ .iZkvjn [data-component="trailingAction"]{margin-right:-4px;color:var(--button-invisible-iconColor-rest,var(--fgColor-muted,var(--color-fg-muted,#656d76)));}/*!sc*/ .iZkvjn [data-component="buttonContent"]{-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto;display:grid;grid-template-areas:"leadingVisual text trailingVisual";grid-template-columns:min-content minmax(0,auto) min-content;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-align-content:center;-ms-flex-line-pack:center;align-content:center;}/*!sc*/ .iZkvjn [data-component="buttonContent"] > :not(:last-child){margin-right:8px;}/*!sc*/ .iZkvjn [data-component="loadingSpinner"]{grid-area:text;margin-right:0px !important;place-self:center;color:var(--fgColor-muted,var(--color-fg-muted,#656d76));}/*!sc*/ .iZkvjn [data-component="loadingSpinner"] + [data-component="text"]{visibility:hidden;}/*!sc*/ .iZkvjn:hover:not([disabled]){background-color:var(--control-transparent-bgColor-hover,var(--color-action-list-item-default-hover-bg,rgba(208,215,222,0.32)));}/*!sc*/ .iZkvjn:active:not([disabled]){background-color:var(--control-transparent-bgColor-active,var(--color-action-list-item-default-active-bg,rgba(208,215,222,0.48)));}/*!sc*/ .iZkvjn[aria-expanded=true]{background-color:var(--control-transparent-bgColor-selected,var(--color-action-list-item-default-selected-bg,rgba(208,215,222,0.24)));}/*!sc*/ .iZkvjn[data-component="IconButton"][data-no-visuals]{color:var(--button-invisible-iconColor-rest,var(--fgColor-muted,var(--color-fg-muted,#656d76)));}/*!sc*/ .iZkvjn[data-no-visuals]{color:var(--button-invisible-fgColor-rest,var(--button-default-fgColor-rest,var(--color-btn-text,#24292f)));}/*!sc*/ .iZkvjn:has([data-component="ButtonCounter"]){color:var(--button-invisible-fgColor-rest,var(--button-default-fgColor-rest,var(--color-btn-text,#24292f)));}/*!sc*/ .iZkvjn:disabled[data-no-visuals]{color:var(--fgColor-disabled,var(--color-primer-fg-disabled,#8c959f));}/*!sc*/ .iZkvjn:disabled[data-no-visuals] [data-component=ButtonCounter]{color:inherit;}/*!sc*/ .iZkvjn[data-size="small"][data-no-visuals]{color:var(--fgColor-muted,var(--color-fg-muted,#656d76));position:relative;}/*!sc*/ .ggSvLP{border-radius:6px;border:1px solid;border-color:transparent;font-family:inherit;font-weight:500;font-size:14px;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-text-decoration:none;text-decoration:none;text-align:center;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;height:32px;padding:0 12px;gap:8px;min-width:-webkit-max-content;min-width:-moz-max-content;min-width:max-content;-webkit-transition:80ms cubic-bezier(0.65,0,0.35,1);transition:80ms cubic-bezier(0.65,0,0.35,1);-webkit-transition-property:color,fill,background-color,border-color;transition-property:color,fill,background-color,border-color;color:var(--button-invisible-fgColor-rest,var(--button-default-fgColor-rest,var(--color-btn-text,#24292f)));background-color:transparent;box-shadow:none;}/*!sc*/ .ggSvLP:focus:not(:disabled){box-shadow:none;outline:2px solid var(--fgColor-accent,var(--color-accent-fg,#0969da));outline-offset:-2px;}/*!sc*/ .ggSvLP:focus:not(:disabled):not(:focus-visible){outline:solid 1px transparent;}/*!sc*/ .ggSvLP:focus-visible:not(:disabled){box-shadow:none;outline:2px solid var(--fgColor-accent,var(--color-accent-fg,#0969da));outline-offset:-2px;}/*!sc*/ .ggSvLP[href]{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;}/*!sc*/ .ggSvLP[href]:hover{-webkit-text-decoration:none;text-decoration:none;}/*!sc*/ .ggSvLP:hover{-webkit-transition-duration:80ms;transition-duration:80ms;}/*!sc*/ .ggSvLP:active{-webkit-transition:none;transition:none;}/*!sc*/ .ggSvLP[data-inactive]{cursor:auto;}/*!sc*/ .ggSvLP:disabled{cursor:not-allowed;box-shadow:none;color:var(--fgColor-disabled,var(--color-primer-fg-disabled,#8c959f));background-color:var(--button-invisible-bgColor-disabled,transparent);}/*!sc*/ .ggSvLP:disabled [data-component=ButtonCounter],.ggSvLP:disabled [data-component="leadingVisual"],.ggSvLP:disabled [data-component="trailingAction"]{color:inherit;}/*!sc*/ @media (forced-colors:active){.ggSvLP:focus{outline:solid 1px transparent;}}/*!sc*/ .ggSvLP [data-component=ButtonCounter]{font-size:12px;}/*!sc*/ .ggSvLP[data-component=IconButton]{display:inline-grid;padding:unset;place-content:center;width:32px;min-width:unset;}/*!sc*/ .ggSvLP[data-size="small"]{padding:0 8px;height:28px;gap:4px;font-size:12px;}/*!sc*/ .ggSvLP[data-size="small"] [data-component="text"]{line-height:1.6666667;}/*!sc*/ .ggSvLP[data-size="small"] [data-component=ButtonCounter]{font-size:12px;}/*!sc*/ .ggSvLP[data-size="small"] [data-component="buttonContent"] > :not(:last-child){margin-right:4px;}/*!sc*/ .ggSvLP[data-size="small"][data-component=IconButton]{width:28px;padding:unset;}/*!sc*/ .ggSvLP[data-size="large"]{padding:0 16px;height:40px;gap:8px;}/*!sc*/ .ggSvLP[data-size="large"] [data-component="buttonContent"] > :not(:last-child){margin-right:8px;}/*!sc*/ .ggSvLP[data-size="large"][data-component=IconButton]{width:40px;padding:unset;}/*!sc*/ .ggSvLP[data-block="block"]{width:100%;}/*!sc*/ .ggSvLP[data-label-wrap="true"]{min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content;height:unset;min-height:var(--control-medium-size,2rem);}/*!sc*/ .ggSvLP[data-label-wrap="true"] [data-component="buttonContent"]{-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch;padding-block:calc(var(--control-medium-paddingBlock,0.375rem) - 2px);}/*!sc*/ .ggSvLP[data-label-wrap="true"] [data-component="text"]{white-space:unset;word-break:break-word;}/*!sc*/ .ggSvLP[data-label-wrap="true"][data-size="small"]{height:unset;min-height:var(--control-small-size,1.75rem);}/*!sc*/ .ggSvLP[data-label-wrap="true"][data-size="small"] [data-component="buttonContent"]{padding-block:calc(var(--control-small-paddingBlock,0.25rem) - 2px);}/*!sc*/ .ggSvLP[data-label-wrap="true"][data-size="large"]{height:unset;min-height:var(--control-large-size,2.5rem);padding-inline:var(--control-large-paddingInline-spacious,1rem);}/*!sc*/ .ggSvLP[data-label-wrap="true"][data-size="large"] [data-component="buttonContent"]{padding-block:calc(var(--control-large-paddingBlock,0.625rem) - 2px);}/*!sc*/ .ggSvLP[data-inactive]:not([disabled]){background-color:var(--button-inactive-bgColor,var(--button-inactive-bgColor-rest,var(--color-btn-inactive-bg,#eaeef2)));border-color:var(--button-inactive-bgColor,var(--button-inactive-bgColor-rest,var(--color-btn-inactive-bg,#eaeef2)));color:var(--button-inactive-fgColor,var(--button-inactive-fgColor-rest,var(--color-btn-inactive-text,#57606a)));}/*!sc*/ .ggSvLP[data-inactive]:not([disabled]):focus-visible{box-shadow:none;}/*!sc*/ .ggSvLP [data-component="leadingVisual"]{grid-area:leadingVisual;color:var(--button-invisible-iconColor-rest,var(--fgColor-muted,var(--color-fg-muted,#656d76)));}/*!sc*/ .ggSvLP [data-component="text"]{grid-area:text;line-height:1.4285714;white-space:nowrap;}/*!sc*/ .ggSvLP [data-component="trailingVisual"]{grid-area:trailingVisual;color:var(--button-invisible-iconColor-rest,var(--fgColor-muted,var(--color-fg-muted,#656d76)));}/*!sc*/ .ggSvLP [data-component="trailingAction"]{margin-right:-4px;color:var(--button-invisible-iconColor-rest,var(--fgColor-muted,var(--color-fg-muted,#656d76)));}/*!sc*/ .ggSvLP [data-component="buttonContent"]{-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto;display:grid;grid-template-areas:"leadingVisual text trailingVisual";grid-template-columns:min-content minmax(0,auto) min-content;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-align-content:center;-ms-flex-line-pack:center;align-content:center;}/*!sc*/ .ggSvLP [data-component="buttonContent"] > :not(:last-child){margin-right:8px;}/*!sc*/ .ggSvLP [data-component="loadingSpinner"]{grid-area:text;margin-right:0px !important;place-self:center;color:var(--fgColor-muted,var(--color-fg-muted,#656d76));}/*!sc*/ .ggSvLP [data-component="loadingSpinner"] + [data-component="text"]{visibility:hidden;}/*!sc*/ .ggSvLP:hover:not([disabled]){background-color:var(--control-transparent-bgColor-hover,var(--color-action-list-item-default-hover-bg,rgba(208,215,222,0.32)));}/*!sc*/ .ggSvLP:active:not([disabled]){background-color:var(--control-transparent-bgColor-active,var(--color-action-list-item-default-active-bg,rgba(208,215,222,0.48)));}/*!sc*/ .ggSvLP[aria-expanded=true]{background-color:var(--control-transparent-bgColor-selected,var(--color-action-list-item-default-selected-bg,rgba(208,215,222,0.24)));}/*!sc*/ .ggSvLP[data-component="IconButton"][data-no-visuals]{color:var(--button-invisible-iconColor-rest,var(--fgColor-muted,var(--color-fg-muted,#656d76)));}/*!sc*/ .ggSvLP[data-no-visuals]{color:var(--button-invisible-fgColor-rest,var(--button-default-fgColor-rest,var(--color-btn-text,#24292f)));}/*!sc*/ .ggSvLP:has([data-component="ButtonCounter"]){color:var(--button-invisible-fgColor-rest,var(--button-default-fgColor-rest,var(--color-btn-text,#24292f)));}/*!sc*/ .ggSvLP:disabled[data-no-visuals]{color:var(--fgColor-disabled,var(--color-primer-fg-disabled,#8c959f));}/*!sc*/ .ggSvLP:disabled[data-no-visuals] [data-component=ButtonCounter]{color:inherit;}/*!sc*/ .ggSvLP[data-size="small"][data-no-visuals]{color:var(--fgColor-muted,var(--color-fg-muted,#656d76));}/*!sc*/ data-styled.g14[id="types__StyledButton-sc-ws60qy-0"]{content:"kBQCgV,dPmZyJ,iQGjqs,iLfocZ,JVsBq,fwExmK,ifVXZX,gGdPyq,dOuZvu,iZkvjn,ggSvLP,"}/*!sc*/ .hWlpPn{position:relative;display:inline-block;}/*!sc*/ .hWlpPn::after{position:absolute;z-index:1000000;display:none;padding:0.5em 0.75em;font:normal normal 11px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";-webkit-font-smoothing:subpixel-antialiased;color:var(--tooltip-fgColor,var(--fgColor-onEmphasis,var(--color-fg-on-emphasis,#ffffff)));text-align:center;-webkit-text-decoration:none;text-decoration:none;text-shadow:none;text-transform:none;-webkit-letter-spacing:normal;-moz-letter-spacing:normal;-ms-letter-spacing:normal;letter-spacing:normal;word-wrap:break-word;white-space:pre;pointer-events:none;content:attr(aria-label);background:var(--tooltip-bgColor,var(--bgColor-emphasis,var(--color-neutral-emphasis-plus,#24292f)));border-radius:6px;opacity:0;}/*!sc*/ @-webkit-keyframes tooltip-appear{from{opacity:0;}to{opacity:1;}}/*!sc*/ @keyframes tooltip-appear{from{opacity:0;}to{opacity:1;}}/*!sc*/ .hWlpPn:hover::after,.hWlpPn:active::after,.hWlpPn:focus::after,.hWlpPn:focus-within::after{display:inline-block;-webkit-text-decoration:none;text-decoration:none;-webkit-animation-name:tooltip-appear;animation-name:tooltip-appear;-webkit-animation-duration:0.1s;animation-duration:0.1s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;-webkit-animation-delay:0s;animation-delay:0s;}/*!sc*/ .hWlpPn.tooltipped-no-delay:hover::after,.hWlpPn.tooltipped-no-delay:active::after,.hWlpPn.tooltipped-no-delay:focus::after,.hWlpPn.tooltipped-no-delay:focus-within::after{-webkit-animation-delay:0s;animation-delay:0s;}/*!sc*/ .hWlpPn.tooltipped-multiline:hover::after,.hWlpPn.tooltipped-multiline:active::after,.hWlpPn.tooltipped-multiline:focus::after,.hWlpPn.tooltipped-multiline:focus-within::after{display:table-cell;}/*!sc*/ .hWlpPn.tooltipped-s::after,.hWlpPn.tooltipped-se::after,.hWlpPn.tooltipped-sw::after{top:100%;right:50%;margin-top:6px;}/*!sc*/ .hWlpPn.tooltipped-se::after{right:auto;left:50%;margin-left:-16px;}/*!sc*/ .hWlpPn.tooltipped-sw::after{margin-right:-16px;}/*!sc*/ .hWlpPn.tooltipped-n::after,.hWlpPn.tooltipped-ne::after,.hWlpPn.tooltipped-nw::after{right:50%;bottom:100%;margin-bottom:6px;}/*!sc*/ .hWlpPn.tooltipped-ne::after{right:auto;left:50%;margin-left:-16px;}/*!sc*/ .hWlpPn.tooltipped-nw::after{margin-right:-16px;}/*!sc*/ .hWlpPn.tooltipped-s::after,.hWlpPn.tooltipped-n::after{-webkit-transform:translateX(50%);-ms-transform:translateX(50%);transform:translateX(50%);}/*!sc*/ .hWlpPn.tooltipped-w::after{right:100%;bottom:50%;margin-right:6px;-webkit-transform:translateY(50%);-ms-transform:translateY(50%);transform:translateY(50%);}/*!sc*/ .hWlpPn.tooltipped-e::after{bottom:50%;left:100%;margin-left:6px;-webkit-transform:translateY(50%);-ms-transform:translateY(50%);transform:translateY(50%);}/*!sc*/ .hWlpPn.tooltipped-multiline::after{width:-webkit-max-content;width:-moz-max-content;width:max-content;max-width:250px;word-wrap:break-word;white-space:pre-line;border-collapse:separate;}/*!sc*/ .hWlpPn.tooltipped-multiline.tooltipped-s::after,.hWlpPn.tooltipped-multiline.tooltipped-n::after{right:auto;left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%);}/*!sc*/ .hWlpPn.tooltipped-multiline.tooltipped-w::after,.hWlpPn.tooltipped-multiline.tooltipped-e::after{right:100%;}/*!sc*/ .hWlpPn.tooltipped-align-right-2::after{right:0;margin-right:0;}/*!sc*/ .hWlpPn.tooltipped-align-left-2::after{left:0;margin-left:0;}/*!sc*/ data-styled.g17[id="Tooltip__TooltipBase-sc-17tf59c-0"]{content:"hWlpPn,"}/*!sc*/ .eAtkQz{display:inline-block;overflow:hidden;text-overflow:ellipsis;vertical-align:top;white-space:nowrap;max-width:125px;max-width:100%;}/*!sc*/ data-styled.g19[id="Truncate__StyledTruncate-sc-23o1d2-0"]{content:"eAtkQz,"}/*!sc*/ body[data-page-layout-dragging="true"]{cursor:col-resize;}/*!sc*/ body[data-page-layout-dragging="true"] *{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;}/*!sc*/ data-styled.g99[id="sc-global-gbKrvU1"]{content:"sc-global-gbKrvU1,"}/*!sc*/ .lirRhW{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;vertical-align:middle;isolation:isolate;}/*!sc*/ .lirRhW.lirRhW > *:not([data-loading-wrapper]){margin-inline-end:-1px;position:relative;border-radius:0;}/*!sc*/ .lirRhW.lirRhW > *:not([data-loading-wrapper]):first-child{border-top-left-radius:6px;border-bottom-left-radius:6px;}/*!sc*/ .lirRhW.lirRhW > *:not([data-loading-wrapper]):last-child{border-top-right-radius:6px;border-bottom-right-radius:6px;}/*!sc*/ .lirRhW.lirRhW > *:not([data-loading-wrapper]):focus,.lirRhW.lirRhW > *:not([data-loading-wrapper]):active,.lirRhW.lirRhW > *:not([data-loading-wrapper]):hover{z-index:1;}/*!sc*/ .lirRhW [data-loading-wrapper]:first-child button,.lirRhW [data-loading-wrapper]:first-child a{border-top-left-radius:6px;border-bottom-left-radius:6px;}/*!sc*/ .lirRhW [data-loading-wrapper]:last-child button,.lirRhW [data-loading-wrapper]:last-child a{border-top-right-radius:6px;border-bottom-right-radius:6px;}/*!sc*/ .lirRhW [data-loading-wrapper] > *{margin-inline-end:-1px;position:relative;border-radius:0;}/*!sc*/ .lirRhW [data-loading-wrapper] > *:focus,.lirRhW [data-loading-wrapper] > *:active,.lirRhW [data-loading-wrapper] > *:hover{z-index:1;}/*!sc*/ data-styled.g104[id="ButtonGroup__StyledButtonGroup-sc-1gxhls1-0"]{content:"lirRhW,"}/*!sc*/ .dbGjOi{--segmented-control-button-inner-padding:12px;--segmented-control-button-bg-inset:4px;--segmented-control-outer-radius:6px;background-color:transparent;border-color:transparent;border-radius:var(--segmented-control-outer-radius);border-width:0;color:currentColor;cursor:pointer;font-family:inherit;font-size:inherit;font-weight:600;padding:0;height:100%;width:100%;}/*!sc*/ .dbGjOi:focus:not(:disabled){box-shadow:none;outline:2px solid var(--fgColor-accent,var(--color-accent-fg,#0969da));outline-offset:-1px;}/*!sc*/ .dbGjOi:focus:not(:disabled):not(:focus-visible){outline:solid 1px transparent;}/*!sc*/ .dbGjOi:focus-visible:not(:disabled){box-shadow:none;outline:2px solid var(--fgColor-accent,var(--color-accent-fg,#0969da));outline-offset:-1px;}/*!sc*/ .dbGjOi .segmentedControl-content{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:var(--controlKnob-bgColor-rest,var(--color-segmented-control-button-bg,#ffffff));border-color:var(--controlKnob-borderColor-rest,var(--color-segmented-control-button-hover-active-selected-border,#8c959f));border-style:solid;border-width:1px;border-radius:var(--segmented-control-outer-radius);display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;height:100%;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;padding-left:var(--segmented-control-button-inner-padding);padding-right:var(--segmented-control-button-inner-padding);}/*!sc*/ .dbGjOi svg{fill:var(--fgColor-muted,var(--color-fg-muted,#656d76));}/*!sc*/ .dbGjOi:focus:focus-visible:not(:last-child):after{width:0;}/*!sc*/ .dbGjOi .segmentedControl-text:after{content:"Code";display:block;font-weight:600;height:0;overflow:hidden;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;visibility:hidden;}/*!sc*/ @media (pointer:coarse){.dbGjOi:before{content:"";position:absolute;left:0;right:0;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);top:50%;min-height:44px;}}/*!sc*/ .bHmvop{--segmented-control-button-inner-padding:12px;--segmented-control-button-bg-inset:4px;--segmented-control-outer-radius:6px;background-color:transparent;border-color:transparent;border-radius:var(--segmented-control-outer-radius);border-width:0;color:currentColor;cursor:pointer;font-family:inherit;font-size:inherit;font-weight:400;padding:var(--segmented-control-button-bg-inset);height:100%;width:100%;}/*!sc*/ .bHmvop:focus:not(:disabled){box-shadow:none;outline:2px solid var(--fgColor-accent,var(--color-accent-fg,#0969da));outline-offset:-1px;}/*!sc*/ .bHmvop:focus:not(:disabled):not(:focus-visible){outline:solid 1px transparent;}/*!sc*/ .bHmvop:focus-visible:not(:disabled){box-shadow:none;outline:2px solid var(--fgColor-accent,var(--color-accent-fg,#0969da));outline-offset:-1px;}/*!sc*/ .bHmvop .segmentedControl-content{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:transparent;border-color:transparent;border-style:solid;border-width:1px;border-radius:calc(var(--segmented-control-outer-radius) - var(--segmented-control-button-bg-inset) / 2);display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;height:100%;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;padding-left:calc(var(--segmented-control-button-inner-padding) - var(--segmented-control-button-bg-inset));padding-right:calc(var(--segmented-control-button-inner-padding) - var(--segmented-control-button-bg-inset));}/*!sc*/ .bHmvop svg{fill:var(--fgColor-muted,var(--color-fg-muted,#656d76));}/*!sc*/ .bHmvop:hover .segmentedControl-content{background-color:var(--controlTrack-bgColor-hover,var(--color-segmented-control-button-hover-bg,rgba(175,184,193,0.2)));}/*!sc*/ .bHmvop:active .segmentedControl-content{background-color:var(--controlTrack-bgColor-active,var(--color-segmented-control-button-hover-active-bg,rgba(175,184,193,0.4)));}/*!sc*/ .bHmvop:focus:focus-visible:not(:last-child):after{width:0;}/*!sc*/ .bHmvop .segmentedControl-text:after{content:"Blame";display:block;font-weight:600;height:0;overflow:hidden;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;visibility:hidden;}/*!sc*/ @media (pointer:coarse){.bHmvop:before{content:"";position:absolute;left:0;right:0;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);top:50%;min-height:44px;}}/*!sc*/ data-styled.g106[id="SegmentedControlButton__SegmentedControlButtonStyled-sc-8lkgxl-0"]{content:"dbGjOi,bHmvop,"}/*!sc*/ .lawgDG{background-color:var(--controlTrack-bgColor-rest,var(--color-segmented-control-bg,#eaeef2));border-radius:6px;border:1px solid;border-color:var(--controlTrack-borderColor-rest,transparent);display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;font-size:14px;height:28px;margin:0;padding:0;}/*!sc*/ data-styled.g108[id="SegmentedControl__SegmentedControlList-sc-1rzig82-0"]{content:"lawgDG,"}/*!sc*/ </style><meta data-hydrostats="publish"/> <!-- --> <!-- --> <button hidden="" data-testid="header-permalink-button" data-hotkey-scope="read-only-cursor-text-area"></button><button hidden=""></button><div><div style="--sticky-pane-height:100vh;--spacing:var(--spacing-none)" class="Box-sc-g0xbh4-0 hOfjFo"><div class="Box-sc-g0xbh4-0 oDGAe"><div class="Box-sc-g0xbh4-0 kowOcT"><div tabindex="0" class="Box-sc-g0xbh4-0 gISSDQ"><div class="Box-sc-g0xbh4-0 fLEPlD"><div class="Box-sc-g0xbh4-0 hPvFuC"></div><div style="--pane-width:320px" class="Box-sc-g0xbh4-0 fFSoPl"></div><div class="Box-sc-g0xbh4-0 bTBnTW"><div role="slider" aria-label="Draggable pane splitter" aria-valuemin="0" aria-valuemax="0" aria-valuenow="0" aria-valuetext="Pane width 0 pixels" tabindex="0" class="Box-sc-g0xbh4-0 bHLmSv"></div></div></div></div><div class="Box-sc-g0xbh4-0 iKqMNA"><div class="Box-sc-g0xbh4-0"></div><div class="Box-sc-g0xbh4-0 FxAyp"><div data-selector="repos-split-pane-content" tabindex="0" class="Box-sc-g0xbh4-0 leYMvG"><div class="Box-sc-g0xbh4-0 KMPzq"><div class="Box-sc-g0xbh4-0 hfKjHv container"><div class="px-3 pt-3 pb-0" id="StickyHeader"><div class="Box-sc-g0xbh4-0 gZWyZE"><div class="Box-sc-g0xbh4-0 dwYKDk"><div class="Box-sc-g0xbh4-0 ibcGmb react-code-view-header-wrap--narrow"><div class="Box-sc-g0xbh4-0 hKaEJF"><h2 class="Box-sc-g0xbh4-0 XosP prc-Heading-Heading-6CmGO"><button style="--button-color:fg.muted" type="button" aria-label="Expand file tree" data-testid="expand-file-tree-button-mobile" class="types__StyledButton-sc-ws60qy-0 kBQCgV" data-loading="false" data-size="medium" aria-describedby=":Rld9lab:-loading-announcement"><span data-component="buttonContent" class="Box-sc-g0xbh4-0 gUkoLg"><span data-component="leadingVisual" class="Box-sc-g0xbh4-0 hzSPyu"><svg aria-hidden="true" focusable="false" class="octicon octicon-arrow-left" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M7.78 12.53a.75.75 0 0 1-1.06 0L2.47 8.28a.75.75 0 0 1 0-1.06l4.25-4.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042L4.81 7h7.44a.75.75 0 0 1 0 1.5H4.81l2.97 2.97a.75.75 0 0 1 0 1.06Z"></path></svg></span><span data-component="text">Files</span></span></button><span role="tooltip" aria-label="Expand file tree" id="expand-button-file-tree-button" class="Tooltip__TooltipBase-sc-17tf59c-0 hWlpPn tooltipped-se"><button data-component="IconButton" type="button" data-testid="expand-file-tree-button" aria-controls="repos-file-tree" class="types__StyledButton-sc-ws60qy-0 dPmZyJ position-relative ExpandFileTreeButton-module__expandButton--gL4is ExpandFileTreeButton-module__filesButtonBreakpoint--WfX9t fgColor-muted prc-Button-IconButton-szpyj" data-loading="false" data-no-visuals="true" data-size="medium" aria-describedby=":R35d9lab:-loading-announcement" aria-labelledby="expand-button-file-tree-button"><svg aria-hidden="true" focusable="false" class="octicon octicon-sidebar-collapse" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M6.823 7.823a.25.25 0 0 1 0 .354l-2.396 2.396A.25.25 0 0 1 4 10.396V5.604a.25.25 0 0 1 .427-.177Z"></path><path d="M1.75 0h12.5C15.216 0 16 .784 16 1.75v12.5A1.75 1.75 0 0 1 14.25 16H1.75A1.75 1.75 0 0 1 0 14.25V1.75C0 .784.784 0 1.75 0ZM1.5 1.75v12.5c0 .138.112.25.25.25H9.5v-13H1.75a.25.25 0 0 0-.25.25ZM11 14.5h3.25a.25.25 0 0 0 .25-.25V1.75a.25.25 0 0 0-.25-.25H11Z"></path></svg></button></span><button hidden="" data-testid="" data-hotkey-scope="read-only-cursor-text-area"></button></h2></div><div class="react-code-view-header-mb--narrow mr-2"><button type="button" aria-haspopup="true" aria-expanded="false" tabindex="0" aria-label="main branch" data-testid="anchor-button" class="types__StyledButton-sc-ws60qy-0 iQGjqs ref-selector-class" data-loading="false" data-size="medium" aria-describedby="branch-picker-repos-header-ref-selector-wide-loading-announcement" id="branch-picker-repos-header-ref-selector-wide"><span data-component="buttonContent" class="Box-sc-g0xbh4-0 gUkoLg"><span data-component="text"><div class="Box-sc-g0xbh4-0 bZBlpz"><div class="Box-sc-g0xbh4-0 lhTYNA"><svg aria-hidden="true" focusable="false" class="octicon octicon-git-branch" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M9.5 3.25a2.25 2.25 0 1 1 3 2.122V6A2.5 2.5 0 0 1 10 8.5H6a1 1 0 0 0-1 1v1.128a2.251 2.251 0 1 1-1.5 0V5.372a2.25 2.25 0 1 1 1.5 0v1.836A2.493 2.493 0 0 1 6 7h4a1 1 0 0 0 1-1v-.628A2.25 2.25 0 0 1 9.5 3.25Zm-6 0a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0Zm8.25-.75a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5ZM4.25 12a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Z"></path></svg></div><div class="Box-sc-g0xbh4-0 dbrgmi ref-selector-button-text-container"><span class="Text__StyledText-sc-17v1xeu-0 eMMFM"> <!-- -->main</span></div></div></span><span data-component="trailingVisual" class="Box-sc-g0xbh4-0 hzSPyu"><svg aria-hidden="true" focusable="false" class="octicon octicon-triangle-down" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="m4.427 7.427 3.396 3.396a.25.25 0 0 0 .354 0l3.396-3.396A.25.25 0 0 0 11.396 7H4.604a.25.25 0 0 0-.177.427Z"></path></svg></span></span></button><button hidden="" data-hotkey-scope="read-only-cursor-text-area"></button></div><div class="Box-sc-g0xbh4-0 dHJiml react-code-view-header-mb--narrow"><div class="Box-sc-g0xbh4-0 cEytCf"><nav data-testid="breadcrumbs" aria-labelledby="repos-header-breadcrumb-heading" id="repos-header-breadcrumb" class="Box-sc-g0xbh4-0 fzFXnm"><h2 class="sr-only prc-Heading-Heading-6CmGO" data-testid="screen-reader-heading" id="repos-header-breadcrumb-heading">Breadcrumbs</h2><ol class="Box-sc-g0xbh4-0 iMnkmv"><li class="Box-sc-g0xbh4-0 ghzDag"><a class="Box-sc-g0xbh4-0 kHuKdh prc-Link-Link-85e08" sx="[object Object]" data-testid="breadcrumbs-repo-link" href="/IMC-GER/phpBB-Image-upload-use-ImageMagick/tree/main">phpBB-Image-upload-use-ImageMagick</a></li><li class="Box-sc-g0xbh4-0 ghzDag"><span class="Text__StyledText-sc-17v1xeu-0 HlHVj" aria-hidden="true">/</span><a class="Box-sc-g0xbh4-0 kgiVEz prc-Link-Link-85e08" sx="[object Object]" href="/IMC-GER/phpBB-Image-upload-use-ImageMagick/tree/main/imcger">imcger</a></li><li class="Box-sc-g0xbh4-0 ghzDag"><span class="Text__StyledText-sc-17v1xeu-0 HlHVj" aria-hidden="true">/</span><a class="Box-sc-g0xbh4-0 kgiVEz prc-Link-Link-85e08" sx="[object Object]" href="/IMC-GER/phpBB-Image-upload-use-ImageMagick/tree/main/imcger/imgupload">imgupload</a></li><li class="Box-sc-g0xbh4-0 ghzDag"><span class="Text__StyledText-sc-17v1xeu-0 HlHVj" aria-hidden="true">/</span><a class="Box-sc-g0xbh4-0 kgiVEz prc-Link-Link-85e08" sx="[object Object]" href="/IMC-GER/phpBB-Image-upload-use-ImageMagick/tree/main/imcger/imgupload/event">event</a></li></ol></nav><div data-testid="breadcrumbs-filename" class="Box-sc-g0xbh4-0 ghzDag"><span class="Text__StyledText-sc-17v1xeu-0 HlHVj" aria-hidden="true">/</span><h1 class="Box-sc-g0xbh4-0 jGhzSQ prc-Heading-Heading-6CmGO" tabindex="-1" id="file-name-id">main_listener.php</h1></div><div aria-describedby=":R1td9lab:"><button data-component="IconButton" type="button" aria-label="Copy path" tabindex="0" class="types__StyledButton-sc-ws60qy-0 dPmZyJ prc-Button-IconButton-szpyj" data-loading="false" data-no-visuals="true" data-size="small" aria-describedby=":R7td9lab:-loading-announcement"><svg aria-hidden="true" focusable="false" class="octicon octicon-copy" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path></svg></button></div></div></div></div><div class="react-code-view-header-element--wide"><div class="Box-sc-g0xbh4-0 faNtbn"><div class="d-flex gap-2"> <div><div class="Box-sc-g0xbh4-0 fmQaBv"><span class="TextInputWrapper__StyledTextInputBaseWrapper-sc-1mqhpbi-0 hLzFvi TextInputWrapper__StyledTextInputWrapper-sc-1mqhpbi-1 iHYdQq TextInput-wrapper" data-leading-visual="true" data-trailing-visual="true" aria-busy="false"><span class="TextInput-icon" id=":R5j6d9lab:" aria-hidden="true"><svg aria-hidden="true" focusable="false" class="octicon octicon-search" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M10.68 11.74a6 6 0 0 1-7.922-8.982 6 6 0 0 1 8.982 7.922l3.04 3.04a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215ZM11.5 7a4.499 4.499 0 1 0-8.997 0A4.499 4.499 0 0 0 11.5 7Z"></path></svg></span><input type="text" aria-label="Go to file" role="combobox" aria-controls="file-results-list" aria-expanded="false" aria-haspopup="dialog" autoCorrect="off" spellcheck="false" placeholder="Go to file" aria-describedby=":R5j6d9lab: :R5j6d9labH1:" data-component="input" class="UnstyledTextInput__ToggledUnstyledTextInput-sc-14ypya-0 jkNcAv" value=""/><span class="TextInput-icon" id=":R5j6d9labH1:" aria-hidden="true"></span></span></div><button hidden="" data-testid="" data-hotkey-scope="read-only-cursor-text-area"></button><button hidden=""></button></div><button hidden="" data-testid="" data-hotkey-scope="read-only-cursor-text-area"></button><button hidden=""></button><button hidden="" data-testid="" data-hotkey-scope="read-only-cursor-text-area"></button><button hidden=""></button><button type="button" class="types__StyledButton-sc-ws60qy-0 iLfocZ" data-loading="false" data-no-visuals="true" data-size="medium" aria-describedby=":R2l6d9lab:-loading-announcement"><span data-component="buttonContent" class="Box-sc-g0xbh4-0 gUkoLg"><span data-component="text">Blame</span></span></button><button hidden="" data-testid="" data-hotkey-scope="read-only-cursor-text-area"></button><button data-component="IconButton" type="button" aria-label="More file actions" title="More file actions" data-testid="more-file-actions-button-nav-menu-wide" aria-haspopup="true" aria-expanded="false" tabindex="0" class="types__StyledButton-sc-ws60qy-0 JVsBq js-blob-dropdown-click prc-Button-IconButton-szpyj" data-loading="false" data-no-visuals="true" data-size="medium" aria-describedby=":R156d9lab:-loading-announcement" id=":R156d9lab:"><svg aria-hidden="true" focusable="false" class="octicon octicon-kebab-horizontal" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M8 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3ZM1.5 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Zm13 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path></svg></button> </div></div></div><div class="react-code-view-header-element--narrow"><div class="Box-sc-g0xbh4-0 faNtbn"><div class="d-flex gap-2"> <button hidden="" data-testid="" data-hotkey-scope="read-only-cursor-text-area"></button><button hidden=""></button><button hidden="" data-testid="" data-hotkey-scope="read-only-cursor-text-area"></button><button hidden=""></button><button type="button" class="types__StyledButton-sc-ws60qy-0 iLfocZ" data-loading="false" data-no-visuals="true" data-size="medium" aria-describedby=":R2l7d9lab:-loading-announcement"><span data-component="buttonContent" class="Box-sc-g0xbh4-0 gUkoLg"><span data-component="text">Blame</span></span></button><button hidden="" data-testid="" data-hotkey-scope="read-only-cursor-text-area"></button><button data-component="IconButton" type="button" aria-label="More file actions" title="More file actions" data-testid="more-file-actions-button-nav-menu-narrow" aria-haspopup="true" aria-expanded="false" tabindex="0" class="types__StyledButton-sc-ws60qy-0 JVsBq js-blob-dropdown-click prc-Button-IconButton-szpyj" data-loading="false" data-no-visuals="true" data-size="medium" aria-describedby=":R157d9lab:-loading-announcement" id=":R157d9lab:"><svg aria-hidden="true" focusable="false" class="octicon octicon-kebab-horizontal" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M8 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3ZM1.5 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Zm13 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path></svg></button> </div></div></div></div></div></div></div></div><div class="Box-sc-g0xbh4-0 dJxjrT react-code-view-bottom-padding"> <div class="Box-sc-g0xbh4-0 eFxKDQ"></div> <!-- --> <!-- --> </div><div class="Box-sc-g0xbh4-0 dJxjrT"> <!-- --> <!-- --> <button hidden="" data-testid="" data-hotkey-scope="read-only-cursor-text-area"></button><button hidden=""></button><div class="d-flex flex-column border rounded-2 mb-3 pl-1"><div class="Box-sc-g0xbh4-0 dzCJzi"><h2 class="sr-only prc-Heading-Heading-6CmGO" data-testid="screen-reader-heading">Latest commit</h2><div style="width:120px" class="Skeleton Skeleton--text" data-testid="loading"> </div><div class="d-flex flex-shrink-0 gap-2"><div data-testid="latest-commit-details" class="d-none d-sm-flex flex-items-center"></div><div class="d-flex gap-2"><h2 class="sr-only prc-Heading-Heading-6CmGO" data-testid="screen-reader-heading">History</h2><a href="/IMC-GER/phpBB-Image-upload-use-ImageMagick/commits/main/imcger/imgupload/event/main_listener.php" class="types__StyledButton-sc-ws60qy-0 dPmZyJ d-none d-lg-flex LinkButton-module__code-view-link-button--xvCGA flex-items-center fgColor-default" data-loading="false" data-size="small" aria-describedby=":R5dlal9lab:-loading-announcement"><span data-component="buttonContent" class="Box-sc-g0xbh4-0 gUkoLg"><span data-component="leadingVisual" class="Box-sc-g0xbh4-0 hzSPyu"><svg aria-hidden="true" focusable="false" class="octicon octicon-history" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="m.427 1.927 1.215 1.215a8.002 8.002 0 1 1-1.6 5.685.75.75 0 1 1 1.493-.154 6.5 6.5 0 1 0 1.18-4.458l1.358 1.358A.25.25 0 0 1 3.896 6H.25A.25.25 0 0 1 0 5.75V2.104a.25.25 0 0 1 .427-.177ZM7.75 4a.75.75 0 0 1 .75.75v2.992l2.028.812a.75.75 0 0 1-.557 1.392l-2.5-1A.751.751 0 0 1 7 8.25v-3.5A.75.75 0 0 1 7.75 4Z"></path></svg></span><span data-component="text"><span class="fgColor-default">History</span></span></span></a><div class="d-sm-none"></div><div class="d-flex d-lg-none"><span role="tooltip" aria-label="History" id="history-icon-button-tooltip" class="Tooltip__TooltipBase-sc-17tf59c-0 hWlpPn tooltipped-n"><a href="/IMC-GER/phpBB-Image-upload-use-ImageMagick/commits/main/imcger/imgupload/event/main_listener.php" class="types__StyledButton-sc-ws60qy-0 dPmZyJ LinkButton-module__code-view-link-button--xvCGA flex-items-center fgColor-default" data-loading="false" data-size="small" aria-describedby=":Rpdlal9lab:-loading-announcement history-icon-button-tooltip"><span data-component="buttonContent" class="Box-sc-g0xbh4-0 gUkoLg"><span data-component="leadingVisual" class="Box-sc-g0xbh4-0 hzSPyu"><svg aria-hidden="true" focusable="false" class="octicon octicon-history" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="m.427 1.927 1.215 1.215a8.002 8.002 0 1 1-1.6 5.685.75.75 0 1 1 1.493-.154 6.5 6.5 0 1 0 1.18-4.458l1.358 1.358A.25.25 0 0 1 3.896 6H.25A.25.25 0 0 1 0 5.75V2.104a.25.25 0 0 1 .427-.177ZM7.75 4a.75.75 0 0 1 .75.75v2.992l2.028.812a.75.75 0 0 1-.557 1.392l-2.5-1A.751.751 0 0 1 7 8.25v-3.5A.75.75 0 0 1 7.75 4Z"></path></svg></span></span></a></span></div></div></div></div></div><div class="Box-sc-g0xbh4-0 ldRxiI"><div class="Box-sc-g0xbh4-0 fVkfyA container"><div class="Box-sc-g0xbh4-0 gNAmSV react-code-size-details-banner"><div class="Box-sc-g0xbh4-0 jNEwzY react-code-size-details-banner"><div class="Box-sc-g0xbh4-0 bsDwxw text-mono"><div title="18.5 KB" data-testid="blob-size" class="Truncate__StyledTruncate-sc-23o1d2-0 eAtkQz"><span>693 lines (572 loc) · 18.5 KB</span></div></div></div></div><div class="Box-sc-g0xbh4-0 jdLMhu react-blob-view-header-sticky" id="repos-sticky-header"><div class="Box-sc-g0xbh4-0 tOISc"><div class="react-blob-sticky-header"><div class="Box-sc-g0xbh4-0 hqwSEx"><div class="Box-sc-g0xbh4-0 bDVoEr"><div class="Box-sc-g0xbh4-0 kYLlPM"><div class="Box-sc-g0xbh4-0 gYjEmn"><button type="button" aria-haspopup="true" aria-expanded="false" tabindex="0" aria-label="main branch" data-testid="anchor-button" class="types__StyledButton-sc-ws60qy-0 iQGjqs ref-selector-class" data-loading="false" data-size="medium" aria-describedby="branch-picker-repos-header-ref-selector-loading-announcement" id="branch-picker-repos-header-ref-selector"><span data-component="buttonContent" class="Box-sc-g0xbh4-0 gUkoLg"><span data-component="text"><div class="Box-sc-g0xbh4-0 bZBlpz"><div class="Box-sc-g0xbh4-0 lhTYNA"><svg aria-hidden="true" focusable="false" class="octicon octicon-git-branch" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M9.5 3.25a2.25 2.25 0 1 1 3 2.122V6A2.5 2.5 0 0 1 10 8.5H6a1 1 0 0 0-1 1v1.128a2.251 2.251 0 1 1-1.5 0V5.372a2.25 2.25 0 1 1 1.5 0v1.836A2.493 2.493 0 0 1 6 7h4a1 1 0 0 0 1-1v-.628A2.25 2.25 0 0 1 9.5 3.25Zm-6 0a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0Zm8.25-.75a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5ZM4.25 12a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Z"></path></svg></div><div class="Box-sc-g0xbh4-0 dbrgmi ref-selector-button-text-container"><span class="Text__StyledText-sc-17v1xeu-0 eMMFM"> <!-- -->main</span></div></div></span><span data-component="trailingVisual" class="Box-sc-g0xbh4-0 hzSPyu"><svg aria-hidden="true" focusable="false" class="octicon octicon-triangle-down" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="m4.427 7.427 3.396 3.396a.25.25 0 0 0 .354 0l3.396-3.396A.25.25 0 0 0 11.396 7H4.604a.25.25 0 0 0-.177.427Z"></path></svg></span></span></button><button hidden="" data-hotkey-scope="read-only-cursor-text-area"></button></div><div class="Box-sc-g0xbh4-0 kGqOLL"><div class="Box-sc-g0xbh4-0 fHind"><nav data-testid="breadcrumbs" aria-labelledby="sticky-breadcrumb-heading" id="sticky-breadcrumb" class="Box-sc-g0xbh4-0 fzFXnm"><h2 class="sr-only prc-Heading-Heading-6CmGO" data-testid="screen-reader-heading" id="sticky-breadcrumb-heading">Breadcrumbs</h2><ol class="Box-sc-g0xbh4-0 iMnkmv"><li class="Box-sc-g0xbh4-0 ghzDag"><a class="Box-sc-g0xbh4-0 kHuKdh prc-Link-Link-85e08" sx="[object Object]" data-testid="breadcrumbs-repo-link" href="/IMC-GER/phpBB-Image-upload-use-ImageMagick/tree/main">phpBB-Image-upload-use-ImageMagick</a></li><li class="Box-sc-g0xbh4-0 ghzDag"><span class="Text__StyledText-sc-17v1xeu-0 lauzFl" aria-hidden="true">/</span><a class="Box-sc-g0xbh4-0 kgiVEz prc-Link-Link-85e08" sx="[object Object]" href="/IMC-GER/phpBB-Image-upload-use-ImageMagick/tree/main/imcger">imcger</a></li><li class="Box-sc-g0xbh4-0 ghzDag"><span class="Text__StyledText-sc-17v1xeu-0 lauzFl" aria-hidden="true">/</span><a class="Box-sc-g0xbh4-0 kgiVEz prc-Link-Link-85e08" sx="[object Object]" href="/IMC-GER/phpBB-Image-upload-use-ImageMagick/tree/main/imcger/imgupload">imgupload</a></li><li class="Box-sc-g0xbh4-0 ghzDag"><span class="Text__StyledText-sc-17v1xeu-0 lauzFl" aria-hidden="true">/</span><a class="Box-sc-g0xbh4-0 kgiVEz prc-Link-Link-85e08" sx="[object Object]" href="/IMC-GER/phpBB-Image-upload-use-ImageMagick/tree/main/imcger/imgupload/event">event</a></li></ol></nav><div data-testid="breadcrumbs-filename" class="Box-sc-g0xbh4-0 ghzDag"><span class="Text__StyledText-sc-17v1xeu-0 lauzFl" aria-hidden="true">/</span><h1 class="Box-sc-g0xbh4-0 dnZoUW prc-Heading-Heading-6CmGO" tabindex="-1" id="sticky-file-name-id">main_listener.php</h1></div></div></div></div><button style="--button-color:fg.default" type="button" class="types__StyledButton-sc-ws60qy-0 fwExmK" data-loading="false" data-size="small" aria-describedby=":Riptal9lab:-loading-announcement"><span data-component="buttonContent" class="Box-sc-g0xbh4-0 gUkoLg"><span data-component="leadingVisual" class="Box-sc-g0xbh4-0 hzSPyu"><svg aria-hidden="true" focusable="false" class="octicon octicon-arrow-up" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M3.47 7.78a.75.75 0 0 1 0-1.06l4.25-4.25a.75.75 0 0 1 1.06 0l4.25 4.25a.751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018L9 4.81v7.44a.75.75 0 0 1-1.5 0V4.81L4.53 7.78a.75.75 0 0 1-1.06 0Z"></path></svg></span><span data-component="text">Top</span></span></button></div></div></div><div class="Box-sc-g0xbh4-0 kTvpNk"><h2 class="sr-only prc-Heading-Heading-6CmGO" data-testid="screen-reader-heading">File metadata and controls</h2><div class="Box-sc-g0xbh4-0 iNMjfP"><ul aria-label="File view" class="SegmentedControl__SegmentedControlList-sc-1rzig82-0 lawgDG"><li class="Box-sc-g0xbh4-0 fefCSX"><button aria-current="true" type="button" class="SegmentedControlButton__SegmentedControlButtonStyled-sc-8lkgxl-0 dbGjOi"><span class="segmentedControl-content"><div class="Box-sc-g0xbh4-0 segmentedControl-text">Code</div></span></button></li><li class="Box-sc-g0xbh4-0 idgUkN"><button aria-current="false" type="button" class="SegmentedControlButton__SegmentedControlButtonStyled-sc-8lkgxl-0 bHmvop"><span class="segmentedControl-content"><div class="Box-sc-g0xbh4-0 segmentedControl-text">Blame</div></span></button></li></ul><button hidden="" data-testid="" data-hotkey-scope="read-only-cursor-text-area"></button><button hidden="" data-testid="" data-hotkey-scope="read-only-cursor-text-area"></button><div class="Box-sc-g0xbh4-0 jNEwzY react-code-size-details-in-header"><div class="Box-sc-g0xbh4-0 bsDwxw text-mono"><div title="18.5 KB" data-testid="blob-size" class="Truncate__StyledTruncate-sc-23o1d2-0 eAtkQz"><span>693 lines (572 loc) · 18.5 KB</span></div></div></div></div><div class="Box-sc-g0xbh4-0 kcLCKF"><div class="Box-sc-g0xbh4-0 kVWtTz react-blob-header-edit-and-raw-actions"><div class="ButtonGroup__StyledButtonGroup-sc-1gxhls1-0 lirRhW"><a href="https://github.com/IMC-GER/phpBB-Image-upload-use-ImageMagick/raw/refs/heads/main/imcger/imgupload/event/main_listener.php" data-testid="raw-button" class="types__StyledButton-sc-ws60qy-0 ifVXZX" data-loading="false" data-no-visuals="true" data-size="small" aria-describedby=":R5csptal9lab:-loading-announcement"><span data-component="buttonContent" class="Box-sc-g0xbh4-0 gUkoLg"><span data-component="text">Raw</span></span></a><button data-component="IconButton" type="button" aria-label="Copy raw content" data-testid="copy-raw-button" class="types__StyledButton-sc-ws60qy-0 gGdPyq prc-Button-IconButton-szpyj" data-loading="false" data-no-visuals="true" data-size="small" aria-describedby=":Rpcsptal9lab:-loading-announcement"><svg aria-hidden="true" focusable="false" class="octicon octicon-copy" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path></svg></button><span role="tooltip" aria-label="Download raw file" id=":Rdcsptal9lab:" class="Tooltip__TooltipBase-sc-17tf59c-0 hWlpPn tooltipped-n"><button data-component="IconButton" type="button" aria-label="Download raw content" data-testid="download-raw-button" class="types__StyledButton-sc-ws60qy-0 dOuZvu prc-Button-IconButton-szpyj" data-loading="false" data-no-visuals="true" data-size="small" aria-describedby=":Rtcsptal9lab:-loading-announcement"><svg aria-hidden="true" focusable="false" class="octicon octicon-download" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M2.75 14A1.75 1.75 0 0 1 1 12.25v-2.5a.75.75 0 0 1 1.5 0v2.5c0 .138.112.25.25.25h10.5a.25.25 0 0 0 .25-.25v-2.5a.75.75 0 0 1 1.5 0v2.5A1.75 1.75 0 0 1 13.25 14Z"></path><path d="M7.25 7.689V2a.75.75 0 0 1 1.5 0v5.689l1.97-1.969a.749.749 0 1 1 1.06 1.06l-3.25 3.25a.749.749 0 0 1-1.06 0L4.22 6.78a.749.749 0 1 1 1.06-1.06l1.97 1.969Z"></path></svg></button></span></div><button hidden="" data-testid="raw-button-shortcut" data-hotkey-scope="read-only-cursor-text-area"></button><button hidden="" data-testid="copy-raw-button-shortcut" data-hotkey-scope="read-only-cursor-text-area"></button><button hidden="" data-testid="download-raw-button-shortcut" data-hotkey-scope="read-only-cursor-text-area"></button></div><span role="tooltip" aria-label="Open symbols panel" id=":R5sptal9lab:" class="Tooltip__TooltipBase-sc-17tf59c-0 hWlpPn tooltipped-nw"><button data-component="IconButton" type="button" aria-label="Symbols" aria-pressed="false" aria-expanded="false" aria-controls="symbols-pane" data-testid="symbols-button" class="types__StyledButton-sc-ws60qy-0 iZkvjn prc-Button-IconButton-szpyj" data-loading="false" data-no-visuals="true" data-size="small" aria-describedby="symbols-button-loading-announcement" id="symbols-button"><svg aria-hidden="true" focusable="false" class="octicon octicon-code-square" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v12.5A1.75 1.75 0 0 1 14.25 16H1.75A1.75 1.75 0 0 1 0 14.25Zm1.75-.25a.25.25 0 0 0-.25.25v12.5c0 .138.112.25.25.25h12.5a.25.25 0 0 0 .25-.25V1.75a.25.25 0 0 0-.25-.25Zm7.47 3.97a.75.75 0 0 1 1.06 0l2 2a.75.75 0 0 1 0 1.06l-2 2a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L10.69 8 9.22 6.53a.75.75 0 0 1 0-1.06ZM6.78 6.53 5.31 8l1.47 1.47a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215l-2-2a.75.75 0 0 1 0-1.06l2-2a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Z"></path></svg></button></span><div class="react-blob-header-edit-and-raw-actions-combined"><button data-component="IconButton" type="button" aria-label="Edit and raw actions" title="More file actions" data-testid="more-file-actions-button" aria-haspopup="true" aria-expanded="false" tabindex="0" class="types__StyledButton-sc-ws60qy-0 ggSvLP js-blob-dropdown-click prc-Button-IconButton-szpyj" data-loading="false" data-no-visuals="true" data-size="small" aria-describedby=":Rnsptal9lab:-loading-announcement" id=":Rnsptal9lab:"><svg aria-hidden="true" focusable="false" class="octicon octicon-kebab-horizontal" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M8 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3ZM1.5 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Zm13 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path></svg></button></div></div></div></div><div></div></div><div class="Box-sc-g0xbh4-0 hGyMdv"><section aria-labelledby="file-name-id-wide file-name-id-mobile" class="Box-sc-g0xbh4-0 dceWRL"><div class="Box-sc-g0xbh4-0 dGXHv"><div id="highlighted-line-menu-positioner" class="position-relative"><div id="copilot-button-positioner" class="Box-sc-g0xbh4-0 bpDFns"><div class="Box-sc-g0xbh4-0 iJOeCH"><div class="Box-sc-g0xbh4-0 glDApP react-code-file-contents" role="presentation" aria-hidden="true" data-tab-size="4" data-paste-markdown-skip="true" data-hpc="true"><div class="react-line-numbers" style="pointer-events:auto"><div data-line-number="1" class="react-line-number react-code-text" style="padding-right:16px">1</div><div data-line-number="2" class="react-line-number react-code-text" style="padding-right:16px">2</div><div data-line-number="3" class="react-line-number react-code-text" style="padding-right:16px">3</div><div data-line-number="4" class="react-line-number react-code-text" style="padding-right:16px">4</div><div data-line-number="5" class="react-line-number react-code-text" style="padding-right:16px">5</div><div data-line-number="6" class="react-line-number react-code-text" style="padding-right:16px">6</div><div data-line-number="7" class="react-line-number react-code-text" style="padding-right:16px">7</div><div data-line-number="8" class="react-line-number react-code-text" style="padding-right:16px">8</div><div data-line-number="9" class="react-line-number react-code-text" style="padding-right:16px">9</div><div data-line-number="10" class="react-line-number react-code-text" style="padding-right:16px">10</div><div data-line-number="11" class="react-line-number react-code-text" style="padding-right:16px">11</div><div data-line-number="12" class="react-line-number react-code-text" style="padding-right:16px">12</div><div data-line-number="13" class="react-line-number react-code-text" style="padding-right:16px">13</div><div data-line-number="14" class="react-line-number react-code-text" style="padding-right:16px">14</div><div data-line-number="15" class="react-line-number react-code-text" style="padding-right:16px">15</div><div data-line-number="16" class="react-line-number react-code-text" style="padding-right:16px">16</div><div data-line-number="17" class="react-line-number react-code-text" style="padding-right:16px">17</div><div data-line-number="18" class="react-line-number react-code-text" style="padding-right:16px">18</div><div data-line-number="19" class="react-line-number react-code-text" style="padding-right:16px">19<span class="Box-sc-g0xbh4-0 cJGaMs"><div aria-label="Collapse code section" role="button" class="Box-sc-g0xbh4-0 iGLarr"><svg aria-hidden="true" focusable="false" class="Octicon-sc-9kayk9-0" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg></div></span></div><div data-line-number="20" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">20</div><div data-line-number="21" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">21</div><div data-line-number="22" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">22</div><div data-line-number="23" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">23</div><div data-line-number="24" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">24</div><div data-line-number="25" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">25</div><div data-line-number="26" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">26</div><div data-line-number="27" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">27</div><div data-line-number="28" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">28</div><div data-line-number="29" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">29</div><div data-line-number="30" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">30</div><div data-line-number="31" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">31</div><div data-line-number="32" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">32</div><div data-line-number="33" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">33</div><div data-line-number="34" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">34</div><div data-line-number="35" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">35</div><div data-line-number="36" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">36</div><div data-line-number="37" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">37</div><div data-line-number="38" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">38</div><div data-line-number="39" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">39</div><div data-line-number="40" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">40</div><div data-line-number="41" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">41</div><div data-line-number="42" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">42</div><div data-line-number="43" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">43</div><div data-line-number="44" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">44</div><div data-line-number="45" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">45</div><div data-line-number="46" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">46</div><div data-line-number="47" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">47</div><div data-line-number="48" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">48</div><div data-line-number="49" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">49</div><div data-line-number="50" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">50</div><div data-line-number="51" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">51</div><div data-line-number="52" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">52</div><div data-line-number="53" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">53</div><div data-line-number="54" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">54</div><div data-line-number="55" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">55<span class="Box-sc-g0xbh4-0 cJGaMs"><div aria-label="Collapse code section" role="button" class="Box-sc-g0xbh4-0 iGLarr"><svg aria-hidden="true" focusable="false" class="Octicon-sc-9kayk9-0" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg></div></span></div><div data-line-number="56" class="child-of-line-18 child-of-line-54 react-line-number react-code-text" style="padding-right:16px">56</div><div data-line-number="57" class="child-of-line-18 child-of-line-54 react-line-number react-code-text" style="padding-right:16px">57</div><div data-line-number="58" class="child-of-line-18 child-of-line-54 react-line-number react-code-text" style="padding-right:16px">58</div><div data-line-number="59" class="child-of-line-18 child-of-line-54 react-line-number react-code-text" style="padding-right:16px">59</div><div data-line-number="60" class="child-of-line-18 child-of-line-54 react-line-number react-code-text" style="padding-right:16px">60</div><div data-line-number="61" class="child-of-line-18 child-of-line-54 react-line-number react-code-text" style="padding-right:16px">61</div><div data-line-number="62" class="child-of-line-18 child-of-line-54 react-line-number react-code-text" style="padding-right:16px">62</div><div data-line-number="63" class="child-of-line-18 child-of-line-54 react-line-number react-code-text" style="padding-right:16px">63</div><div data-line-number="64" class="child-of-line-18 child-of-line-54 react-line-number react-code-text" style="padding-right:16px">64</div><div data-line-number="65" class="child-of-line-18 child-of-line-54 react-line-number react-code-text" style="padding-right:16px">65</div><div data-line-number="66" class="child-of-line-18 child-of-line-54 react-line-number react-code-text" style="padding-right:16px">66</div><div data-line-number="67" class="child-of-line-18 child-of-line-54 react-line-number react-code-text" style="padding-right:16px">67</div><div data-line-number="68" class="child-of-line-18 child-of-line-54 react-line-number react-code-text" style="padding-right:16px">68</div><div data-line-number="69" class="child-of-line-18 child-of-line-54 react-line-number react-code-text" style="padding-right:16px">69</div><div data-line-number="70" class="child-of-line-18 child-of-line-54 react-line-number react-code-text" style="padding-right:16px">70</div><div data-line-number="71" class="child-of-line-18 child-of-line-54 react-line-number react-code-text" style="padding-right:16px">71</div><div data-line-number="72" class="child-of-line-18 child-of-line-54 react-line-number react-code-text" style="padding-right:16px">72</div><div data-line-number="73" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">73</div><div data-line-number="74" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">74</div><div data-line-number="75" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">75<span class="Box-sc-g0xbh4-0 cJGaMs"><div aria-label="Collapse code section" role="button" class="Box-sc-g0xbh4-0 iGLarr"><svg aria-hidden="true" focusable="false" class="Octicon-sc-9kayk9-0" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg></div></span></div><div data-line-number="76" class="child-of-line-18 child-of-line-74 react-line-number react-code-text" style="padding-right:16px">76</div><div data-line-number="77" class="child-of-line-18 child-of-line-74 react-line-number react-code-text" style="padding-right:16px">77</div><div data-line-number="78" class="child-of-line-18 child-of-line-74 react-line-number react-code-text" style="padding-right:16px">78</div><div data-line-number="79" class="child-of-line-18 child-of-line-74 react-line-number react-code-text" style="padding-right:16px">79</div><div data-line-number="80" class="child-of-line-18 child-of-line-74 react-line-number react-code-text" style="padding-right:16px">80</div><div data-line-number="81" class="child-of-line-18 child-of-line-74 react-line-number react-code-text" style="padding-right:16px">81</div><div data-line-number="82" class="child-of-line-18 child-of-line-74 react-line-number react-code-text" style="padding-right:16px">82</div><div data-line-number="83" class="child-of-line-18 child-of-line-74 react-line-number react-code-text" style="padding-right:16px">83</div><div data-line-number="84" class="child-of-line-18 child-of-line-74 react-line-number react-code-text" style="padding-right:16px">84</div><div data-line-number="85" class="child-of-line-18 child-of-line-74 react-line-number react-code-text" style="padding-right:16px">85</div><div data-line-number="86" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">86</div><div data-line-number="87" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">87</div><div data-line-number="88" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">88</div><div data-line-number="89" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">89</div><div data-line-number="90" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">90</div><div data-line-number="91" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">91<span class="Box-sc-g0xbh4-0 cJGaMs"><div aria-label="Collapse code section" role="button" class="Box-sc-g0xbh4-0 iGLarr"><svg aria-hidden="true" focusable="false" class="Octicon-sc-9kayk9-0" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg></div></span></div><div data-line-number="92" class="child-of-line-18 child-of-line-90 react-line-number react-code-text" style="padding-right:16px">92</div><div data-line-number="93" class="child-of-line-18 child-of-line-90 react-line-number react-code-text" style="padding-right:16px">93</div><div data-line-number="94" class="child-of-line-18 child-of-line-90 react-line-number react-code-text" style="padding-right:16px">94</div><div data-line-number="95" class="child-of-line-18 child-of-line-90 react-line-number react-code-text" style="padding-right:16px">95</div><div data-line-number="96" class="child-of-line-18 child-of-line-90 react-line-number react-code-text" style="padding-right:16px">96</div><div data-line-number="97" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">97</div><div data-line-number="98" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">98</div><div data-line-number="99" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">99</div><div data-line-number="100" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">100</div><div data-line-number="101" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">101</div><div data-line-number="102" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">102</div><div data-line-number="103" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">103</div><div data-line-number="104" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">104</div><div data-line-number="105" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">105<span class="Box-sc-g0xbh4-0 cJGaMs"><div aria-label="Collapse code section" role="button" class="Box-sc-g0xbh4-0 iGLarr"><svg aria-hidden="true" focusable="false" class="Octicon-sc-9kayk9-0" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg></div></span></div><div data-line-number="106" class="child-of-line-18 child-of-line-104 react-line-number react-code-text" style="padding-right:16px">106</div><div data-line-number="107" class="child-of-line-18 child-of-line-104 react-line-number react-code-text" style="padding-right:16px">107</div><div data-line-number="108" class="child-of-line-18 child-of-line-104 react-line-number react-code-text" style="padding-right:16px">108</div><div data-line-number="109" class="child-of-line-18 child-of-line-104 react-line-number react-code-text" style="padding-right:16px">109</div><div data-line-number="110" class="child-of-line-18 child-of-line-104 react-line-number react-code-text" style="padding-right:16px">110</div><div data-line-number="111" class="child-of-line-18 child-of-line-104 react-line-number react-code-text" style="padding-right:16px">111</div><div data-line-number="112" class="child-of-line-18 child-of-line-104 react-line-number react-code-text" style="padding-right:16px">112</div><div data-line-number="113" class="child-of-line-18 child-of-line-104 react-line-number react-code-text" style="padding-right:16px">113</div><div data-line-number="114" class="child-of-line-18 child-of-line-104 react-line-number react-code-text" style="padding-right:16px">114</div><div data-line-number="115" class="child-of-line-18 child-of-line-104 react-line-number react-code-text" style="padding-right:16px">115</div><div data-line-number="116" class="child-of-line-18 child-of-line-104 react-line-number react-code-text" style="padding-right:16px">116</div><div data-line-number="117" class="child-of-line-18 child-of-line-104 react-line-number react-code-text" style="padding-right:16px">117</div><div data-line-number="118" class="child-of-line-18 child-of-line-104 react-line-number react-code-text" style="padding-right:16px">118</div><div data-line-number="119" class="child-of-line-18 child-of-line-104 react-line-number react-code-text" style="padding-right:16px">119</div><div data-line-number="120" class="child-of-line-18 child-of-line-104 react-line-number react-code-text" style="padding-right:16px">120</div><div data-line-number="121" class="child-of-line-18 child-of-line-104 react-line-number react-code-text" style="padding-right:16px">121</div><div data-line-number="122" class="child-of-line-18 child-of-line-104 react-line-number react-code-text" style="padding-right:16px">122</div><div data-line-number="123" class="child-of-line-18 child-of-line-104 react-line-number react-code-text" style="padding-right:16px">123</div><div data-line-number="124" class="child-of-line-18 child-of-line-104 react-line-number react-code-text" style="padding-right:16px">124</div><div data-line-number="125" class="child-of-line-18 child-of-line-104 react-line-number react-code-text" style="padding-right:16px">125</div><div data-line-number="126" class="child-of-line-18 child-of-line-104 react-line-number react-code-text" style="padding-right:16px">126</div><div data-line-number="127" class="child-of-line-18 child-of-line-104 react-line-number react-code-text" style="padding-right:16px">127</div><div data-line-number="128" class="child-of-line-18 child-of-line-104 react-line-number react-code-text" style="padding-right:16px">128</div><div data-line-number="129" class="child-of-line-18 child-of-line-104 react-line-number react-code-text" style="padding-right:16px">129</div><div data-line-number="130" class="child-of-line-18 child-of-line-104 react-line-number react-code-text" style="padding-right:16px">130</div><div data-line-number="131" class="child-of-line-18 child-of-line-104 react-line-number react-code-text" style="padding-right:16px">131</div><div data-line-number="132" class="child-of-line-18 child-of-line-104 react-line-number react-code-text" style="padding-right:16px">132</div><div data-line-number="133" class="child-of-line-18 child-of-line-104 react-line-number react-code-text" style="padding-right:16px">133</div><div data-line-number="134" class="child-of-line-18 child-of-line-104 react-line-number react-code-text" style="padding-right:16px">134</div><div data-line-number="135" class="child-of-line-18 child-of-line-104 react-line-number react-code-text" style="padding-right:16px">135</div><div data-line-number="136" class="child-of-line-18 child-of-line-104 react-line-number react-code-text" style="padding-right:16px">136</div><div data-line-number="137" class="child-of-line-18 child-of-line-104 react-line-number react-code-text" style="padding-right:16px">137</div><div data-line-number="138" class="child-of-line-18 child-of-line-104 react-line-number react-code-text" style="padding-right:16px">138</div><div data-line-number="139" class="child-of-line-18 child-of-line-104 react-line-number react-code-text" style="padding-right:16px">139</div><div data-line-number="140" class="child-of-line-18 child-of-line-104 react-line-number react-code-text" style="padding-right:16px">140</div><div data-line-number="141" class="child-of-line-18 child-of-line-104 react-line-number react-code-text" style="padding-right:16px">141</div><div data-line-number="142" class="child-of-line-18 child-of-line-104 react-line-number react-code-text" style="padding-right:16px">142</div><div data-line-number="143" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">143</div><div data-line-number="144" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">144</div><div data-line-number="145" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">145</div><div data-line-number="146" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">146</div><div data-line-number="147" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">147</div><div data-line-number="148" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">148</div><div data-line-number="149" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">149</div><div data-line-number="150" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">150<span class="Box-sc-g0xbh4-0 cJGaMs"><div aria-label="Collapse code section" role="button" class="Box-sc-g0xbh4-0 iGLarr"><svg aria-hidden="true" focusable="false" class="Octicon-sc-9kayk9-0" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg></div></span></div><div data-line-number="151" class="child-of-line-18 child-of-line-149 react-line-number react-code-text" style="padding-right:16px">151</div><div data-line-number="152" class="child-of-line-18 child-of-line-149 react-line-number react-code-text" style="padding-right:16px">152</div><div data-line-number="153" class="child-of-line-18 child-of-line-149 react-line-number react-code-text" style="padding-right:16px">153</div><div data-line-number="154" class="child-of-line-18 child-of-line-149 react-line-number react-code-text" style="padding-right:16px">154</div><div data-line-number="155" class="child-of-line-18 child-of-line-149 react-line-number react-code-text" style="padding-right:16px">155</div><div data-line-number="156" class="child-of-line-18 child-of-line-149 react-line-number react-code-text" style="padding-right:16px">156</div><div data-line-number="157" class="child-of-line-18 child-of-line-149 react-line-number react-code-text" style="padding-right:16px">157</div><div data-line-number="158" class="child-of-line-18 child-of-line-149 react-line-number react-code-text" style="padding-right:16px">158</div><div data-line-number="159" class="child-of-line-18 child-of-line-149 react-line-number react-code-text" style="padding-right:16px">159</div><div data-line-number="160" class="child-of-line-18 child-of-line-149 react-line-number react-code-text" style="padding-right:16px">160</div><div data-line-number="161" class="child-of-line-18 child-of-line-149 react-line-number react-code-text" style="padding-right:16px">161</div><div data-line-number="162" class="child-of-line-18 child-of-line-149 react-line-number react-code-text" style="padding-right:16px">162</div><div data-line-number="163" class="child-of-line-18 child-of-line-149 react-line-number react-code-text" style="padding-right:16px">163</div><div data-line-number="164" class="child-of-line-18 child-of-line-149 react-line-number react-code-text" style="padding-right:16px">164</div><div data-line-number="165" class="child-of-line-18 child-of-line-149 react-line-number react-code-text" style="padding-right:16px">165</div><div data-line-number="166" class="child-of-line-18 child-of-line-149 react-line-number react-code-text" style="padding-right:16px">166</div><div data-line-number="167" class="child-of-line-18 child-of-line-149 react-line-number react-code-text" style="padding-right:16px">167</div><div data-line-number="168" class="child-of-line-18 child-of-line-149 react-line-number react-code-text" style="padding-right:16px">168</div><div data-line-number="169" class="child-of-line-18 child-of-line-149 react-line-number react-code-text" style="padding-right:16px">169</div><div data-line-number="170" class="child-of-line-18 child-of-line-149 react-line-number react-code-text" style="padding-right:16px">170</div><div data-line-number="171" class="child-of-line-18 child-of-line-149 react-line-number react-code-text" style="padding-right:16px">171</div><div data-line-number="172" class="child-of-line-18 child-of-line-149 react-line-number react-code-text" style="padding-right:16px">172</div><div data-line-number="173" class="child-of-line-18 child-of-line-149 react-line-number react-code-text" style="padding-right:16px">173</div><div data-line-number="174" class="child-of-line-18 child-of-line-149 react-line-number react-code-text" style="padding-right:16px">174</div><div data-line-number="175" class="child-of-line-18 child-of-line-149 react-line-number react-code-text" style="padding-right:16px">175</div><div data-line-number="176" class="child-of-line-18 child-of-line-149 react-line-number react-code-text" style="padding-right:16px">176</div><div data-line-number="177" class="child-of-line-18 child-of-line-149 react-line-number react-code-text" style="padding-right:16px">177</div><div data-line-number="178" class="child-of-line-18 child-of-line-149 react-line-number react-code-text" style="padding-right:16px">178</div><div data-line-number="179" class="child-of-line-18 child-of-line-149 react-line-number react-code-text" style="padding-right:16px">179</div><div data-line-number="180" class="child-of-line-18 child-of-line-149 react-line-number react-code-text" style="padding-right:16px">180</div><div data-line-number="181" class="child-of-line-18 child-of-line-149 react-line-number react-code-text" style="padding-right:16px">181</div><div data-line-number="182" class="child-of-line-18 child-of-line-149 react-line-number react-code-text" style="padding-right:16px">182</div><div data-line-number="183" class="child-of-line-18 child-of-line-149 react-line-number react-code-text" style="padding-right:16px">183</div><div data-line-number="184" class="child-of-line-18 child-of-line-149 react-line-number react-code-text" style="padding-right:16px">184</div><div data-line-number="185" class="child-of-line-18 child-of-line-149 react-line-number react-code-text" style="padding-right:16px">185</div><div data-line-number="186" class="child-of-line-18 child-of-line-149 react-line-number react-code-text" style="padding-right:16px">186</div><div data-line-number="187" class="child-of-line-18 child-of-line-149 react-line-number react-code-text" style="padding-right:16px">187</div><div data-line-number="188" class="child-of-line-18 child-of-line-149 react-line-number react-code-text" style="padding-right:16px">188</div><div data-line-number="189" class="child-of-line-18 child-of-line-149 react-line-number react-code-text" style="padding-right:16px">189</div><div data-line-number="190" class="child-of-line-18 child-of-line-149 react-line-number react-code-text" style="padding-right:16px">190</div><div data-line-number="191" class="child-of-line-18 child-of-line-149 react-line-number react-code-text" style="padding-right:16px">191</div><div data-line-number="192" class="child-of-line-18 child-of-line-149 react-line-number react-code-text" style="padding-right:16px">192</div><div data-line-number="193" class="child-of-line-18 child-of-line-149 react-line-number react-code-text" style="padding-right:16px">193</div><div data-line-number="194" class="child-of-line-18 child-of-line-149 react-line-number react-code-text" style="padding-right:16px">194</div><div data-line-number="195" class="child-of-line-18 child-of-line-149 react-line-number react-code-text" style="padding-right:16px">195</div><div data-line-number="196" class="child-of-line-18 child-of-line-149 react-line-number react-code-text" style="padding-right:16px">196</div><div data-line-number="197" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">197</div><div data-line-number="198" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">198</div><div data-line-number="199" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">199</div><div data-line-number="200" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">200</div><div data-line-number="201" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">201</div><div data-line-number="202" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">202</div><div data-line-number="203" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">203</div><div data-line-number="204" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">204<span class="Box-sc-g0xbh4-0 cJGaMs"><div aria-label="Collapse code section" role="button" class="Box-sc-g0xbh4-0 iGLarr"><svg aria-hidden="true" focusable="false" class="Octicon-sc-9kayk9-0" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg></div></span></div><div data-line-number="205" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">205</div><div data-line-number="206" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">206</div><div data-line-number="207" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">207</div><div data-line-number="208" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">208</div><div data-line-number="209" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">209</div><div data-line-number="210" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">210</div><div data-line-number="211" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">211</div><div data-line-number="212" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">212</div><div data-line-number="213" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">213</div><div data-line-number="214" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">214</div><div data-line-number="215" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">215</div><div data-line-number="216" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">216</div><div data-line-number="217" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">217</div><div data-line-number="218" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">218</div><div data-line-number="219" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">219</div><div data-line-number="220" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">220</div><div data-line-number="221" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">221</div><div data-line-number="222" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">222</div><div data-line-number="223" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">223</div><div data-line-number="224" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">224</div><div data-line-number="225" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">225</div><div data-line-number="226" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">226</div><div data-line-number="227" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">227</div><div data-line-number="228" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">228</div><div data-line-number="229" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">229</div><div data-line-number="230" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">230</div><div data-line-number="231" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">231</div><div data-line-number="232" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">232</div><div data-line-number="233" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">233</div><div data-line-number="234" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">234</div><div data-line-number="235" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">235</div><div data-line-number="236" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">236</div><div data-line-number="237" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">237</div><div data-line-number="238" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">238</div><div data-line-number="239" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">239</div><div data-line-number="240" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">240</div><div data-line-number="241" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">241</div><div data-line-number="242" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">242</div><div data-line-number="243" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">243</div><div data-line-number="244" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">244</div><div data-line-number="245" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">245</div><div data-line-number="246" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">246</div><div data-line-number="247" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">247</div><div data-line-number="248" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">248</div><div data-line-number="249" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">249</div><div data-line-number="250" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">250</div><div data-line-number="251" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">251</div><div data-line-number="252" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">252</div><div data-line-number="253" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">253</div><div data-line-number="254" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">254</div><div data-line-number="255" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">255</div><div data-line-number="256" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">256</div><div data-line-number="257" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">257</div><div data-line-number="258" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">258</div><div data-line-number="259" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">259</div><div data-line-number="260" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">260</div><div data-line-number="261" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">261</div><div data-line-number="262" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">262</div><div data-line-number="263" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">263</div><div data-line-number="264" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">264</div><div data-line-number="265" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">265</div><div data-line-number="266" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">266</div><div data-line-number="267" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">267</div><div data-line-number="268" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">268</div><div data-line-number="269" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">269</div><div data-line-number="270" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">270</div><div data-line-number="271" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">271</div><div data-line-number="272" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">272</div><div data-line-number="273" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">273</div><div data-line-number="274" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">274</div><div data-line-number="275" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">275</div><div data-line-number="276" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">276</div><div data-line-number="277" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">277</div><div data-line-number="278" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">278</div><div data-line-number="279" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">279</div><div data-line-number="280" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">280</div><div data-line-number="281" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">281</div><div data-line-number="282" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">282</div><div data-line-number="283" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">283</div><div data-line-number="284" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">284</div><div data-line-number="285" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">285</div><div data-line-number="286" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">286</div><div data-line-number="287" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">287</div><div data-line-number="288" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">288</div><div data-line-number="289" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">289</div><div data-line-number="290" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">290</div><div data-line-number="291" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">291</div><div data-line-number="292" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">292</div><div data-line-number="293" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">293</div><div data-line-number="294" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">294</div><div data-line-number="295" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">295</div><div data-line-number="296" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">296</div><div data-line-number="297" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">297</div><div data-line-number="298" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">298</div><div data-line-number="299" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">299</div><div data-line-number="300" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">300</div><div data-line-number="301" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">301</div><div data-line-number="302" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">302</div><div data-line-number="303" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">303</div><div data-line-number="304" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">304</div><div data-line-number="305" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">305</div><div data-line-number="306" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">306</div><div data-line-number="307" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">307</div><div data-line-number="308" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">308</div><div data-line-number="309" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">309</div><div data-line-number="310" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">310</div><div data-line-number="311" class="child-of-line-18 child-of-line-203 react-line-number react-code-text" style="padding-right:16px">311</div><div data-line-number="312" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">312</div><div data-line-number="313" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">313</div><div data-line-number="314" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">314</div><div data-line-number="315" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">315</div><div data-line-number="316" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">316</div><div data-line-number="317" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">317</div><div data-line-number="318" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">318</div><div data-line-number="319" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">319<span class="Box-sc-g0xbh4-0 cJGaMs"><div aria-label="Collapse code section" role="button" class="Box-sc-g0xbh4-0 iGLarr"><svg aria-hidden="true" focusable="false" class="Octicon-sc-9kayk9-0" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg></div></span></div><div data-line-number="320" class="child-of-line-18 child-of-line-318 react-line-number react-code-text" style="padding-right:16px">320</div><div data-line-number="321" class="child-of-line-18 child-of-line-318 react-line-number react-code-text" style="padding-right:16px">321</div><div data-line-number="322" class="child-of-line-18 child-of-line-318 react-line-number react-code-text" style="padding-right:16px">322</div><div data-line-number="323" class="child-of-line-18 child-of-line-318 react-line-number react-code-text" style="padding-right:16px">323</div><div data-line-number="324" class="child-of-line-18 child-of-line-318 react-line-number react-code-text" style="padding-right:16px">324</div><div data-line-number="325" class="child-of-line-18 child-of-line-318 react-line-number react-code-text" style="padding-right:16px">325</div><div data-line-number="326" class="child-of-line-18 child-of-line-318 react-line-number react-code-text" style="padding-right:16px">326</div><div data-line-number="327" class="child-of-line-18 child-of-line-318 react-line-number react-code-text" style="padding-right:16px">327</div><div data-line-number="328" class="child-of-line-18 child-of-line-318 react-line-number react-code-text" style="padding-right:16px">328</div><div data-line-number="329" class="child-of-line-18 child-of-line-318 react-line-number react-code-text" style="padding-right:16px">329</div><div data-line-number="330" class="child-of-line-18 child-of-line-318 react-line-number react-code-text" style="padding-right:16px">330</div><div data-line-number="331" class="child-of-line-18 child-of-line-318 react-line-number react-code-text" style="padding-right:16px">331</div><div data-line-number="332" class="child-of-line-18 child-of-line-318 react-line-number react-code-text" style="padding-right:16px">332</div><div data-line-number="333" class="child-of-line-18 child-of-line-318 react-line-number react-code-text" style="padding-right:16px">333</div><div data-line-number="334" class="child-of-line-18 child-of-line-318 react-line-number react-code-text" style="padding-right:16px">334</div><div data-line-number="335" class="child-of-line-18 child-of-line-318 react-line-number react-code-text" style="padding-right:16px">335</div><div data-line-number="336" class="child-of-line-18 child-of-line-318 react-line-number react-code-text" style="padding-right:16px">336</div><div data-line-number="337" class="child-of-line-18 child-of-line-318 react-line-number react-code-text" style="padding-right:16px">337</div><div data-line-number="338" class="child-of-line-18 child-of-line-318 react-line-number react-code-text" style="padding-right:16px">338</div><div data-line-number="339" class="child-of-line-18 child-of-line-318 react-line-number react-code-text" style="padding-right:16px">339</div><div data-line-number="340" class="child-of-line-18 child-of-line-318 react-line-number react-code-text" style="padding-right:16px">340</div><div data-line-number="341" class="child-of-line-18 child-of-line-318 react-line-number react-code-text" style="padding-right:16px">341</div><div data-line-number="342" class="child-of-line-18 child-of-line-318 react-line-number react-code-text" style="padding-right:16px">342</div><div data-line-number="343" class="child-of-line-18 child-of-line-318 react-line-number react-code-text" style="padding-right:16px">343</div><div data-line-number="344" class="child-of-line-18 child-of-line-318 react-line-number react-code-text" style="padding-right:16px">344</div><div data-line-number="345" class="child-of-line-18 child-of-line-318 react-line-number react-code-text" style="padding-right:16px">345</div><div data-line-number="346" class="child-of-line-18 child-of-line-318 react-line-number react-code-text" style="padding-right:16px">346</div><div data-line-number="347" class="child-of-line-18 child-of-line-318 react-line-number react-code-text" style="padding-right:16px">347</div><div data-line-number="348" class="child-of-line-18 child-of-line-318 react-line-number react-code-text" style="padding-right:16px">348</div><div data-line-number="349" class="child-of-line-18 child-of-line-318 react-line-number react-code-text" style="padding-right:16px">349</div><div data-line-number="350" class="child-of-line-18 child-of-line-318 react-line-number react-code-text" style="padding-right:16px">350</div><div data-line-number="351" class="child-of-line-18 child-of-line-318 react-line-number react-code-text" style="padding-right:16px">351</div><div data-line-number="352" class="child-of-line-18 child-of-line-318 react-line-number react-code-text" style="padding-right:16px">352</div><div data-line-number="353" class="child-of-line-18 child-of-line-318 react-line-number react-code-text" style="padding-right:16px">353</div><div data-line-number="354" class="child-of-line-18 child-of-line-318 react-line-number react-code-text" style="padding-right:16px">354</div><div data-line-number="355" class="child-of-line-18 child-of-line-318 react-line-number react-code-text" style="padding-right:16px">355</div><div data-line-number="356" class="child-of-line-18 child-of-line-318 react-line-number react-code-text" style="padding-right:16px">356</div><div data-line-number="357" class="child-of-line-18 child-of-line-318 react-line-number react-code-text" style="padding-right:16px">357</div><div data-line-number="358" class="child-of-line-18 child-of-line-318 react-line-number react-code-text" style="padding-right:16px">358</div><div data-line-number="359" class="child-of-line-18 child-of-line-318 react-line-number react-code-text" style="padding-right:16px">359</div><div data-line-number="360" class="child-of-line-18 child-of-line-318 react-line-number react-code-text" style="padding-right:16px">360</div><div data-line-number="361" class="child-of-line-18 child-of-line-318 react-line-number react-code-text" style="padding-right:16px">361</div><div data-line-number="362" class="child-of-line-18 child-of-line-318 react-line-number react-code-text" style="padding-right:16px">362</div><div data-line-number="363" class="child-of-line-18 child-of-line-318 react-line-number react-code-text" style="padding-right:16px">363</div><div data-line-number="364" class="child-of-line-18 child-of-line-318 react-line-number react-code-text" style="padding-right:16px">364</div><div data-line-number="365" class="child-of-line-18 child-of-line-318 react-line-number react-code-text" style="padding-right:16px">365</div><div data-line-number="366" class="child-of-line-18 child-of-line-318 react-line-number react-code-text" style="padding-right:16px">366</div><div data-line-number="367" class="child-of-line-18 child-of-line-318 react-line-number react-code-text" style="padding-right:16px">367</div><div data-line-number="368" class="child-of-line-18 child-of-line-318 react-line-number react-code-text" style="padding-right:16px">368</div><div data-line-number="369" class="child-of-line-18 child-of-line-318 react-line-number react-code-text" style="padding-right:16px">369</div><div data-line-number="370" class="child-of-line-18 child-of-line-318 react-line-number react-code-text" style="padding-right:16px">370</div><div data-line-number="371" class="child-of-line-18 child-of-line-318 react-line-number react-code-text" style="padding-right:16px">371</div><div data-line-number="372" class="child-of-line-18 child-of-line-318 react-line-number react-code-text" style="padding-right:16px">372</div><div data-line-number="373" class="child-of-line-18 child-of-line-318 react-line-number react-code-text" style="padding-right:16px">373</div><div data-line-number="374" class="child-of-line-18 child-of-line-318 react-line-number react-code-text" style="padding-right:16px">374</div><div data-line-number="375" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">375</div><div data-line-number="376" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">376</div><div data-line-number="377" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">377</div><div data-line-number="378" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">378</div><div data-line-number="379" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">379</div><div data-line-number="380" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">380</div><div data-line-number="381" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">381</div><div data-line-number="382" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">382</div><div data-line-number="383" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">383<span class="Box-sc-g0xbh4-0 cJGaMs"><div aria-label="Collapse code section" role="button" class="Box-sc-g0xbh4-0 iGLarr"><svg aria-hidden="true" focusable="false" class="Octicon-sc-9kayk9-0" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg></div></span></div><div data-line-number="384" class="child-of-line-18 child-of-line-382 react-line-number react-code-text" style="padding-right:16px">384</div><div data-line-number="385" class="child-of-line-18 child-of-line-382 react-line-number react-code-text" style="padding-right:16px">385</div><div data-line-number="386" class="child-of-line-18 child-of-line-382 react-line-number react-code-text" style="padding-right:16px">386</div><div data-line-number="387" class="child-of-line-18 child-of-line-382 react-line-number react-code-text" style="padding-right:16px">387</div><div data-line-number="388" class="child-of-line-18 child-of-line-382 react-line-number react-code-text" style="padding-right:16px">388</div><div data-line-number="389" class="child-of-line-18 child-of-line-382 react-line-number react-code-text" style="padding-right:16px">389</div><div data-line-number="390" class="child-of-line-18 child-of-line-382 react-line-number react-code-text" style="padding-right:16px">390</div><div data-line-number="391" class="child-of-line-18 child-of-line-382 react-line-number react-code-text" style="padding-right:16px">391</div><div data-line-number="392" class="child-of-line-18 child-of-line-382 react-line-number react-code-text" style="padding-right:16px">392</div><div data-line-number="393" class="child-of-line-18 child-of-line-382 react-line-number react-code-text" style="padding-right:16px">393</div><div data-line-number="394" class="child-of-line-18 child-of-line-382 react-line-number react-code-text" style="padding-right:16px">394</div><div data-line-number="395" class="child-of-line-18 child-of-line-382 react-line-number react-code-text" style="padding-right:16px">395</div><div data-line-number="396" class="child-of-line-18 child-of-line-382 react-line-number react-code-text" style="padding-right:16px">396</div><div data-line-number="397" class="child-of-line-18 child-of-line-382 react-line-number react-code-text" style="padding-right:16px">397</div><div data-line-number="398" class="child-of-line-18 child-of-line-382 react-line-number react-code-text" style="padding-right:16px">398</div><div data-line-number="399" class="child-of-line-18 child-of-line-382 react-line-number react-code-text" style="padding-right:16px">399</div><div data-line-number="400" class="child-of-line-18 child-of-line-382 react-line-number react-code-text" style="padding-right:16px">400</div><div data-line-number="401" class="child-of-line-18 child-of-line-382 react-line-number react-code-text" style="padding-right:16px">401</div><div data-line-number="402" class="child-of-line-18 child-of-line-382 react-line-number react-code-text" style="padding-right:16px">402</div><div data-line-number="403" class="child-of-line-18 child-of-line-382 react-line-number react-code-text" style="padding-right:16px">403</div><div data-line-number="404" class="child-of-line-18 child-of-line-382 react-line-number react-code-text" style="padding-right:16px">404</div><div data-line-number="405" class="child-of-line-18 child-of-line-382 react-line-number react-code-text" style="padding-right:16px">405</div><div data-line-number="406" class="child-of-line-18 child-of-line-382 react-line-number react-code-text" style="padding-right:16px">406</div><div data-line-number="407" class="child-of-line-18 child-of-line-382 react-line-number react-code-text" style="padding-right:16px">407</div><div data-line-number="408" class="child-of-line-18 child-of-line-382 react-line-number react-code-text" style="padding-right:16px">408</div><div data-line-number="409" class="child-of-line-18 child-of-line-382 react-line-number react-code-text" style="padding-right:16px">409</div><div data-line-number="410" class="child-of-line-18 child-of-line-382 react-line-number react-code-text" style="padding-right:16px">410</div><div data-line-number="411" class="child-of-line-18 child-of-line-382 react-line-number react-code-text" style="padding-right:16px">411</div><div data-line-number="412" class="child-of-line-18 child-of-line-382 react-line-number react-code-text" style="padding-right:16px">412</div><div data-line-number="413" class="child-of-line-18 child-of-line-382 react-line-number react-code-text" style="padding-right:16px">413</div><div data-line-number="414" class="child-of-line-18 child-of-line-382 react-line-number react-code-text" style="padding-right:16px">414</div><div data-line-number="415" class="child-of-line-18 child-of-line-382 react-line-number react-code-text" style="padding-right:16px">415</div><div data-line-number="416" class="child-of-line-18 child-of-line-382 react-line-number react-code-text" style="padding-right:16px">416</div><div data-line-number="417" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">417</div><div data-line-number="418" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">418</div><div data-line-number="419" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">419</div><div data-line-number="420" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">420</div><div data-line-number="421" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">421</div><div data-line-number="422" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">422</div><div data-line-number="423" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">423</div><div data-line-number="424" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">424</div><div data-line-number="425" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">425<span class="Box-sc-g0xbh4-0 cJGaMs"><div aria-label="Collapse code section" role="button" class="Box-sc-g0xbh4-0 iGLarr"><svg aria-hidden="true" focusable="false" class="Octicon-sc-9kayk9-0" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg></div></span></div><div data-line-number="426" class="child-of-line-18 child-of-line-424 react-line-number react-code-text" style="padding-right:16px">426</div><div data-line-number="427" class="child-of-line-18 child-of-line-424 react-line-number react-code-text" style="padding-right:16px">427</div><div data-line-number="428" class="child-of-line-18 child-of-line-424 react-line-number react-code-text" style="padding-right:16px">428</div><div data-line-number="429" class="child-of-line-18 child-of-line-424 react-line-number react-code-text" style="padding-right:16px">429</div><div data-line-number="430" class="child-of-line-18 child-of-line-424 react-line-number react-code-text" style="padding-right:16px">430</div><div data-line-number="431" class="child-of-line-18 child-of-line-424 react-line-number react-code-text" style="padding-right:16px">431</div><div data-line-number="432" class="child-of-line-18 child-of-line-424 react-line-number react-code-text" style="padding-right:16px">432</div><div data-line-number="433" class="child-of-line-18 child-of-line-424 react-line-number react-code-text" style="padding-right:16px">433</div><div data-line-number="434" class="child-of-line-18 child-of-line-424 react-line-number react-code-text" style="padding-right:16px">434</div><div data-line-number="435" class="child-of-line-18 child-of-line-424 react-line-number react-code-text" style="padding-right:16px">435</div><div data-line-number="436" class="child-of-line-18 child-of-line-424 react-line-number react-code-text" style="padding-right:16px">436</div><div data-line-number="437" class="child-of-line-18 child-of-line-424 react-line-number react-code-text" style="padding-right:16px">437</div><div data-line-number="438" class="child-of-line-18 child-of-line-424 react-line-number react-code-text" style="padding-right:16px">438</div><div data-line-number="439" class="child-of-line-18 child-of-line-424 react-line-number react-code-text" style="padding-right:16px">439</div><div data-line-number="440" class="child-of-line-18 child-of-line-424 react-line-number react-code-text" style="padding-right:16px">440</div><div data-line-number="441" class="child-of-line-18 child-of-line-424 react-line-number react-code-text" style="padding-right:16px">441</div><div data-line-number="442" class="child-of-line-18 child-of-line-424 react-line-number react-code-text" style="padding-right:16px">442</div><div data-line-number="443" class="child-of-line-18 child-of-line-424 react-line-number react-code-text" style="padding-right:16px">443</div><div data-line-number="444" class="child-of-line-18 child-of-line-424 react-line-number react-code-text" style="padding-right:16px">444</div><div data-line-number="445" class="child-of-line-18 child-of-line-424 react-line-number react-code-text" style="padding-right:16px">445</div><div data-line-number="446" class="child-of-line-18 child-of-line-424 react-line-number react-code-text" style="padding-right:16px">446</div><div data-line-number="447" class="child-of-line-18 child-of-line-424 react-line-number react-code-text" style="padding-right:16px">447</div><div data-line-number="448" class="child-of-line-18 child-of-line-424 react-line-number react-code-text" style="padding-right:16px">448</div><div data-line-number="449" class="child-of-line-18 child-of-line-424 react-line-number react-code-text" style="padding-right:16px">449</div><div data-line-number="450" class="child-of-line-18 child-of-line-424 react-line-number react-code-text" style="padding-right:16px">450</div><div data-line-number="451" class="child-of-line-18 child-of-line-424 react-line-number react-code-text" style="padding-right:16px">451</div><div data-line-number="452" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">452</div><div data-line-number="453" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">453</div><div data-line-number="454" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">454</div><div data-line-number="455" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">455</div><div data-line-number="456" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">456</div><div data-line-number="457" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">457</div><div data-line-number="458" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">458</div><div data-line-number="459" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">459</div><div data-line-number="460" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">460</div><div data-line-number="461" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">461<span class="Box-sc-g0xbh4-0 cJGaMs"><div aria-label="Collapse code section" role="button" class="Box-sc-g0xbh4-0 iGLarr"><svg aria-hidden="true" focusable="false" class="Octicon-sc-9kayk9-0" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg></div></span></div><div data-line-number="462" class="child-of-line-18 child-of-line-460 react-line-number react-code-text" style="padding-right:16px">462</div><div data-line-number="463" class="child-of-line-18 child-of-line-460 react-line-number react-code-text" style="padding-right:16px">463</div><div data-line-number="464" class="child-of-line-18 child-of-line-460 react-line-number react-code-text" style="padding-right:16px">464</div><div data-line-number="465" class="child-of-line-18 child-of-line-460 react-line-number react-code-text" style="padding-right:16px">465</div><div data-line-number="466" class="child-of-line-18 child-of-line-460 react-line-number react-code-text" style="padding-right:16px">466</div><div data-line-number="467" class="child-of-line-18 child-of-line-460 react-line-number react-code-text" style="padding-right:16px">467</div><div data-line-number="468" class="child-of-line-18 child-of-line-460 react-line-number react-code-text" style="padding-right:16px">468</div><div data-line-number="469" class="child-of-line-18 child-of-line-460 react-line-number react-code-text" style="padding-right:16px">469</div><div data-line-number="470" class="child-of-line-18 child-of-line-460 react-line-number react-code-text" style="padding-right:16px">470</div><div data-line-number="471" class="child-of-line-18 child-of-line-460 react-line-number react-code-text" style="padding-right:16px">471</div><div data-line-number="472" class="child-of-line-18 child-of-line-460 react-line-number react-code-text" style="padding-right:16px">472</div><div data-line-number="473" class="child-of-line-18 child-of-line-460 react-line-number react-code-text" style="padding-right:16px">473</div><div data-line-number="474" class="child-of-line-18 child-of-line-460 react-line-number react-code-text" style="padding-right:16px">474</div><div data-line-number="475" class="child-of-line-18 child-of-line-460 react-line-number react-code-text" style="padding-right:16px">475</div><div data-line-number="476" class="child-of-line-18 child-of-line-460 react-line-number react-code-text" style="padding-right:16px">476</div><div data-line-number="477" class="child-of-line-18 child-of-line-460 react-line-number react-code-text" style="padding-right:16px">477</div><div data-line-number="478" class="child-of-line-18 child-of-line-460 react-line-number react-code-text" style="padding-right:16px">478</div><div data-line-number="479" class="child-of-line-18 child-of-line-460 react-line-number react-code-text" style="padding-right:16px">479</div><div data-line-number="480" class="child-of-line-18 child-of-line-460 react-line-number react-code-text" style="padding-right:16px">480</div><div data-line-number="481" class="child-of-line-18 child-of-line-460 react-line-number react-code-text" style="padding-right:16px">481</div><div data-line-number="482" class="child-of-line-18 child-of-line-460 react-line-number react-code-text" style="padding-right:16px">482</div><div data-line-number="483" class="child-of-line-18 child-of-line-460 react-line-number react-code-text" style="padding-right:16px">483</div><div data-line-number="484" class="child-of-line-18 child-of-line-460 react-line-number react-code-text" style="padding-right:16px">484</div><div data-line-number="485" class="child-of-line-18 child-of-line-460 react-line-number react-code-text" style="padding-right:16px">485</div><div data-line-number="486" class="child-of-line-18 child-of-line-460 react-line-number react-code-text" style="padding-right:16px">486</div><div data-line-number="487" class="child-of-line-18 child-of-line-460 react-line-number react-code-text" style="padding-right:16px">487</div><div data-line-number="488" class="child-of-line-18 child-of-line-460 react-line-number react-code-text" style="padding-right:16px">488</div><div data-line-number="489" class="child-of-line-18 child-of-line-460 react-line-number react-code-text" style="padding-right:16px">489</div><div data-line-number="490" class="child-of-line-18 child-of-line-460 react-line-number react-code-text" style="padding-right:16px">490</div><div data-line-number="491" class="child-of-line-18 child-of-line-460 react-line-number react-code-text" style="padding-right:16px">491</div><div data-line-number="492" class="child-of-line-18 child-of-line-460 react-line-number react-code-text" style="padding-right:16px">492</div><div data-line-number="493" class="child-of-line-18 child-of-line-460 react-line-number react-code-text" style="padding-right:16px">493</div><div data-line-number="494" class="child-of-line-18 child-of-line-460 react-line-number react-code-text" style="padding-right:16px">494</div><div data-line-number="495" class="child-of-line-18 child-of-line-460 react-line-number react-code-text" style="padding-right:16px">495</div><div data-line-number="496" class="child-of-line-18 child-of-line-460 react-line-number react-code-text" style="padding-right:16px">496</div><div data-line-number="497" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">497</div><div data-line-number="498" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">498</div><div data-line-number="499" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">499</div><div data-line-number="500" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">500</div><div data-line-number="501" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">501</div><div data-line-number="502" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">502</div><div data-line-number="503" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">503</div><div data-line-number="504" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">504</div><div data-line-number="505" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">505</div><div data-line-number="506" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">506</div><div data-line-number="507" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">507<span class="Box-sc-g0xbh4-0 cJGaMs"><div aria-label="Collapse code section" role="button" class="Box-sc-g0xbh4-0 iGLarr"><svg aria-hidden="true" focusable="false" class="Octicon-sc-9kayk9-0" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg></div></span></div><div data-line-number="508" class="child-of-line-18 child-of-line-506 react-line-number react-code-text" style="padding-right:16px">508</div><div data-line-number="509" class="child-of-line-18 child-of-line-506 react-line-number react-code-text" style="padding-right:16px">509</div><div data-line-number="510" class="child-of-line-18 child-of-line-506 react-line-number react-code-text" style="padding-right:16px">510</div><div data-line-number="511" class="child-of-line-18 child-of-line-506 react-line-number react-code-text" style="padding-right:16px">511</div><div data-line-number="512" class="child-of-line-18 child-of-line-506 react-line-number react-code-text" style="padding-right:16px">512</div><div data-line-number="513" class="child-of-line-18 child-of-line-506 react-line-number react-code-text" style="padding-right:16px">513</div><div data-line-number="514" class="child-of-line-18 child-of-line-506 react-line-number react-code-text" style="padding-right:16px">514</div><div data-line-number="515" class="child-of-line-18 child-of-line-506 react-line-number react-code-text" style="padding-right:16px">515</div><div data-line-number="516" class="child-of-line-18 child-of-line-506 react-line-number react-code-text" style="padding-right:16px">516</div><div data-line-number="517" class="child-of-line-18 child-of-line-506 react-line-number react-code-text" style="padding-right:16px">517</div><div data-line-number="518" class="child-of-line-18 child-of-line-506 react-line-number react-code-text" style="padding-right:16px">518</div><div data-line-number="519" class="child-of-line-18 child-of-line-506 react-line-number react-code-text" style="padding-right:16px">519</div><div data-line-number="520" class="child-of-line-18 child-of-line-506 react-line-number react-code-text" style="padding-right:16px">520</div><div data-line-number="521" class="child-of-line-18 child-of-line-506 react-line-number react-code-text" style="padding-right:16px">521</div><div data-line-number="522" class="child-of-line-18 child-of-line-506 react-line-number react-code-text" style="padding-right:16px">522</div><div data-line-number="523" class="child-of-line-18 child-of-line-506 react-line-number react-code-text" style="padding-right:16px">523</div><div data-line-number="524" class="child-of-line-18 child-of-line-506 react-line-number react-code-text" style="padding-right:16px">524</div><div data-line-number="525" class="child-of-line-18 child-of-line-506 react-line-number react-code-text" style="padding-right:16px">525</div><div data-line-number="526" class="child-of-line-18 child-of-line-506 react-line-number react-code-text" style="padding-right:16px">526</div><div data-line-number="527" class="child-of-line-18 child-of-line-506 react-line-number react-code-text" style="padding-right:16px">527</div><div data-line-number="528" class="child-of-line-18 child-of-line-506 react-line-number react-code-text" style="padding-right:16px">528</div><div data-line-number="529" class="child-of-line-18 child-of-line-506 react-line-number react-code-text" style="padding-right:16px">529</div><div data-line-number="530" class="child-of-line-18 child-of-line-506 react-line-number react-code-text" style="padding-right:16px">530</div><div data-line-number="531" class="child-of-line-18 child-of-line-506 react-line-number react-code-text" style="padding-right:16px">531</div><div data-line-number="532" class="child-of-line-18 child-of-line-506 react-line-number react-code-text" style="padding-right:16px">532</div><div data-line-number="533" class="child-of-line-18 child-of-line-506 react-line-number react-code-text" style="padding-right:16px">533</div><div data-line-number="534" class="child-of-line-18 child-of-line-506 react-line-number react-code-text" style="padding-right:16px">534</div><div data-line-number="535" class="child-of-line-18 child-of-line-506 react-line-number react-code-text" style="padding-right:16px">535</div><div data-line-number="536" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">536</div><div data-line-number="537" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">537</div><div data-line-number="538" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">538</div><div data-line-number="539" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">539</div><div data-line-number="540" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">540</div><div data-line-number="541" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">541</div><div data-line-number="542" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">542</div><div data-line-number="543" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">543</div><div data-line-number="544" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">544<span class="Box-sc-g0xbh4-0 cJGaMs"><div aria-label="Collapse code section" role="button" class="Box-sc-g0xbh4-0 iGLarr"><svg aria-hidden="true" focusable="false" class="Octicon-sc-9kayk9-0" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg></div></span></div><div data-line-number="545" class="child-of-line-18 child-of-line-543 react-line-number react-code-text" style="padding-right:16px">545</div><div data-line-number="546" class="child-of-line-18 child-of-line-543 react-line-number react-code-text" style="padding-right:16px">546</div><div data-line-number="547" class="child-of-line-18 child-of-line-543 react-line-number react-code-text" style="padding-right:16px">547</div><div data-line-number="548" class="child-of-line-18 child-of-line-543 react-line-number react-code-text" style="padding-right:16px">548</div><div data-line-number="549" class="child-of-line-18 child-of-line-543 react-line-number react-code-text" style="padding-right:16px">549</div><div data-line-number="550" class="child-of-line-18 child-of-line-543 react-line-number react-code-text" style="padding-right:16px">550</div><div data-line-number="551" class="child-of-line-18 child-of-line-543 react-line-number react-code-text" style="padding-right:16px">551</div><div data-line-number="552" class="child-of-line-18 child-of-line-543 react-line-number react-code-text" style="padding-right:16px">552</div><div data-line-number="553" class="child-of-line-18 child-of-line-543 react-line-number react-code-text" style="padding-right:16px">553</div><div data-line-number="554" class="child-of-line-18 child-of-line-543 react-line-number react-code-text" style="padding-right:16px">554</div><div data-line-number="555" class="child-of-line-18 child-of-line-543 react-line-number react-code-text" style="padding-right:16px">555</div><div data-line-number="556" class="child-of-line-18 child-of-line-543 react-line-number react-code-text" style="padding-right:16px">556</div><div data-line-number="557" class="child-of-line-18 child-of-line-543 react-line-number react-code-text" style="padding-right:16px">557</div><div data-line-number="558" class="child-of-line-18 child-of-line-543 react-line-number react-code-text" style="padding-right:16px">558</div><div data-line-number="559" class="child-of-line-18 child-of-line-543 react-line-number react-code-text" style="padding-right:16px">559</div><div data-line-number="560" class="child-of-line-18 child-of-line-543 react-line-number react-code-text" style="padding-right:16px">560</div><div data-line-number="561" class="child-of-line-18 child-of-line-543 react-line-number react-code-text" style="padding-right:16px">561</div><div data-line-number="562" class="child-of-line-18 child-of-line-543 react-line-number react-code-text" style="padding-right:16px">562</div><div data-line-number="563" class="child-of-line-18 child-of-line-543 react-line-number react-code-text" style="padding-right:16px">563</div><div data-line-number="564" class="child-of-line-18 child-of-line-543 react-line-number react-code-text" style="padding-right:16px">564</div><div data-line-number="565" class="child-of-line-18 child-of-line-543 react-line-number react-code-text" style="padding-right:16px">565</div><div data-line-number="566" class="child-of-line-18 child-of-line-543 react-line-number react-code-text" style="padding-right:16px">566</div><div data-line-number="567" class="child-of-line-18 child-of-line-543 react-line-number react-code-text" style="padding-right:16px">567</div><div data-line-number="568" class="child-of-line-18 child-of-line-543 react-line-number react-code-text" style="padding-right:16px">568</div><div data-line-number="569" class="child-of-line-18 child-of-line-543 react-line-number react-code-text" style="padding-right:16px">569</div><div data-line-number="570" class="child-of-line-18 child-of-line-543 react-line-number react-code-text" style="padding-right:16px">570</div><div data-line-number="571" class="child-of-line-18 child-of-line-543 react-line-number react-code-text" style="padding-right:16px">571</div><div data-line-number="572" class="child-of-line-18 child-of-line-543 react-line-number react-code-text" style="padding-right:16px">572</div><div data-line-number="573" class="child-of-line-18 child-of-line-543 react-line-number react-code-text" style="padding-right:16px">573</div><div data-line-number="574" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">574</div><div data-line-number="575" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">575</div><div data-line-number="576" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">576</div><div data-line-number="577" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">577</div><div data-line-number="578" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">578</div><div data-line-number="579" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">579</div><div data-line-number="580" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">580</div><div data-line-number="581" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">581</div><div data-line-number="582" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">582</div><div data-line-number="583" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">583</div><div data-line-number="584" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">584<span class="Box-sc-g0xbh4-0 cJGaMs"><div aria-label="Collapse code section" role="button" class="Box-sc-g0xbh4-0 iGLarr"><svg aria-hidden="true" focusable="false" class="Octicon-sc-9kayk9-0" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg></div></span></div><div data-line-number="585" class="child-of-line-18 child-of-line-583 react-line-number react-code-text" style="padding-right:16px">585</div><div data-line-number="586" class="child-of-line-18 child-of-line-583 react-line-number react-code-text" style="padding-right:16px">586</div><div data-line-number="587" class="child-of-line-18 child-of-line-583 react-line-number react-code-text" style="padding-right:16px">587</div><div data-line-number="588" class="child-of-line-18 child-of-line-583 react-line-number react-code-text" style="padding-right:16px">588</div><div data-line-number="589" class="child-of-line-18 child-of-line-583 react-line-number react-code-text" style="padding-right:16px">589</div><div data-line-number="590" class="child-of-line-18 child-of-line-583 react-line-number react-code-text" style="padding-right:16px">590</div><div data-line-number="591" class="child-of-line-18 child-of-line-583 react-line-number react-code-text" style="padding-right:16px">591</div><div data-line-number="592" class="child-of-line-18 child-of-line-583 react-line-number react-code-text" style="padding-right:16px">592</div><div data-line-number="593" class="child-of-line-18 child-of-line-583 react-line-number react-code-text" style="padding-right:16px">593</div><div data-line-number="594" class="child-of-line-18 child-of-line-583 react-line-number react-code-text" style="padding-right:16px">594</div><div data-line-number="595" class="child-of-line-18 child-of-line-583 react-line-number react-code-text" style="padding-right:16px">595</div><div data-line-number="596" class="child-of-line-18 child-of-line-583 react-line-number react-code-text" style="padding-right:16px">596</div><div data-line-number="597" class="child-of-line-18 child-of-line-583 react-line-number react-code-text" style="padding-right:16px">597</div><div data-line-number="598" class="child-of-line-18 child-of-line-583 react-line-number react-code-text" style="padding-right:16px">598</div><div data-line-number="599" class="child-of-line-18 child-of-line-583 react-line-number react-code-text" style="padding-right:16px">599</div><div data-line-number="600" class="child-of-line-18 child-of-line-583 react-line-number react-code-text" style="padding-right:16px">600</div><div data-line-number="601" class="child-of-line-18 child-of-line-583 react-line-number react-code-text" style="padding-right:16px">601</div><div data-line-number="602" class="child-of-line-18 child-of-line-583 react-line-number react-code-text" style="padding-right:16px">602</div><div data-line-number="603" class="child-of-line-18 child-of-line-583 react-line-number react-code-text" style="padding-right:16px">603</div><div data-line-number="604" class="child-of-line-18 child-of-line-583 react-line-number react-code-text" style="padding-right:16px">604</div><div data-line-number="605" class="child-of-line-18 child-of-line-583 react-line-number react-code-text" style="padding-right:16px">605</div><div data-line-number="606" class="child-of-line-18 child-of-line-583 react-line-number react-code-text" style="padding-right:16px">606</div><div data-line-number="607" class="child-of-line-18 child-of-line-583 react-line-number react-code-text" style="padding-right:16px">607</div><div data-line-number="608" class="child-of-line-18 child-of-line-583 react-line-number react-code-text" style="padding-right:16px">608</div><div data-line-number="609" class="child-of-line-18 child-of-line-583 react-line-number react-code-text" style="padding-right:16px">609</div><div data-line-number="610" class="child-of-line-18 child-of-line-583 react-line-number react-code-text" style="padding-right:16px">610</div><div data-line-number="611" class="child-of-line-18 child-of-line-583 react-line-number react-code-text" style="padding-right:16px">611</div><div data-line-number="612" class="child-of-line-18 child-of-line-583 react-line-number react-code-text" style="padding-right:16px">612</div><div data-line-number="613" class="child-of-line-18 child-of-line-583 react-line-number react-code-text" style="padding-right:16px">613</div><div data-line-number="614" class="child-of-line-18 child-of-line-583 react-line-number react-code-text" style="padding-right:16px">614</div><div data-line-number="615" class="child-of-line-18 child-of-line-583 react-line-number react-code-text" style="padding-right:16px">615</div><div data-line-number="616" class="child-of-line-18 child-of-line-583 react-line-number react-code-text" style="padding-right:16px">616</div><div data-line-number="617" class="child-of-line-18 child-of-line-583 react-line-number react-code-text" style="padding-right:16px">617</div><div data-line-number="618" class="child-of-line-18 child-of-line-583 react-line-number react-code-text" style="padding-right:16px">618</div><div data-line-number="619" class="child-of-line-18 child-of-line-583 react-line-number react-code-text" style="padding-right:16px">619</div><div data-line-number="620" class="child-of-line-18 child-of-line-583 react-line-number react-code-text" style="padding-right:16px">620</div><div data-line-number="621" class="child-of-line-18 child-of-line-583 react-line-number react-code-text" style="padding-right:16px">621</div><div data-line-number="622" class="child-of-line-18 child-of-line-583 react-line-number react-code-text" style="padding-right:16px">622</div><div data-line-number="623" class="child-of-line-18 child-of-line-583 react-line-number react-code-text" style="padding-right:16px">623</div><div data-line-number="624" class="child-of-line-18 child-of-line-583 react-line-number react-code-text" style="padding-right:16px">624</div><div data-line-number="625" class="child-of-line-18 child-of-line-583 react-line-number react-code-text" style="padding-right:16px">625</div><div data-line-number="626" class="child-of-line-18 child-of-line-583 react-line-number react-code-text" style="padding-right:16px">626</div><div data-line-number="627" class="child-of-line-18 child-of-line-583 react-line-number react-code-text" style="padding-right:16px">627</div><div data-line-number="628" class="child-of-line-18 child-of-line-583 react-line-number react-code-text" style="padding-right:16px">628</div><div data-line-number="629" class="child-of-line-18 child-of-line-583 react-line-number react-code-text" style="padding-right:16px">629</div><div data-line-number="630" class="child-of-line-18 child-of-line-583 react-line-number react-code-text" style="padding-right:16px">630</div><div data-line-number="631" class="child-of-line-18 child-of-line-583 react-line-number react-code-text" style="padding-right:16px">631</div><div data-line-number="632" class="child-of-line-18 child-of-line-583 react-line-number react-code-text" style="padding-right:16px">632</div><div data-line-number="633" class="child-of-line-18 child-of-line-583 react-line-number react-code-text" style="padding-right:16px">633</div><div data-line-number="634" class="child-of-line-18 child-of-line-583 react-line-number react-code-text" style="padding-right:16px">634</div><div data-line-number="635" class="child-of-line-18 child-of-line-583 react-line-number react-code-text" style="padding-right:16px">635</div><div data-line-number="636" class="child-of-line-18 child-of-line-583 react-line-number react-code-text" style="padding-right:16px">636</div><div data-line-number="637" class="child-of-line-18 child-of-line-583 react-line-number react-code-text" style="padding-right:16px">637</div><div data-line-number="638" class="child-of-line-18 child-of-line-583 react-line-number react-code-text" style="padding-right:16px">638</div><div data-line-number="639" class="child-of-line-18 child-of-line-583 react-line-number react-code-text" style="padding-right:16px">639</div><div data-line-number="640" class="child-of-line-18 child-of-line-583 react-line-number react-code-text" style="padding-right:16px">640</div><div data-line-number="641" class="child-of-line-18 child-of-line-583 react-line-number react-code-text" style="padding-right:16px">641</div><div data-line-number="642" class="child-of-line-18 child-of-line-583 react-line-number react-code-text" style="padding-right:16px">642</div><div data-line-number="643" class="child-of-line-18 child-of-line-583 react-line-number react-code-text" style="padding-right:16px">643</div><div data-line-number="644" class="child-of-line-18 child-of-line-583 react-line-number react-code-text" style="padding-right:16px">644</div><div data-line-number="645" class="child-of-line-18 child-of-line-583 react-line-number react-code-text" style="padding-right:16px">645</div><div data-line-number="646" class="child-of-line-18 child-of-line-583 react-line-number react-code-text" style="padding-right:16px">646</div><div data-line-number="647" class="child-of-line-18 child-of-line-583 react-line-number react-code-text" style="padding-right:16px">647</div><div data-line-number="648" class="child-of-line-18 child-of-line-583 react-line-number react-code-text" style="padding-right:16px">648</div><div data-line-number="649" class="child-of-line-18 child-of-line-583 react-line-number react-code-text" style="padding-right:16px">649</div><div data-line-number="650" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">650</div><div data-line-number="651" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">651</div><div data-line-number="652" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">652</div><div data-line-number="653" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">653</div><div data-line-number="654" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">654</div><div data-line-number="655" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">655</div><div data-line-number="656" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">656</div><div data-line-number="657" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">657</div><div data-line-number="658" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">658</div><div data-line-number="659" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">659</div><div data-line-number="660" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">660<span class="Box-sc-g0xbh4-0 cJGaMs"><div aria-label="Collapse code section" role="button" class="Box-sc-g0xbh4-0 iGLarr"><svg aria-hidden="true" focusable="false" class="Octicon-sc-9kayk9-0" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg></div></span></div><div data-line-number="661" class="child-of-line-18 child-of-line-659 react-line-number react-code-text" style="padding-right:16px">661</div><div data-line-number="662" class="child-of-line-18 child-of-line-659 react-line-number react-code-text" style="padding-right:16px">662</div><div data-line-number="663" class="child-of-line-18 child-of-line-659 react-line-number react-code-text" style="padding-right:16px">663</div><div data-line-number="664" class="child-of-line-18 child-of-line-659 react-line-number react-code-text" style="padding-right:16px">664</div><div data-line-number="665" class="child-of-line-18 child-of-line-659 react-line-number react-code-text" style="padding-right:16px">665</div><div data-line-number="666" class="child-of-line-18 child-of-line-659 react-line-number react-code-text" style="padding-right:16px">666</div><div data-line-number="667" class="child-of-line-18 child-of-line-659 react-line-number react-code-text" style="padding-right:16px">667</div><div data-line-number="668" class="child-of-line-18 child-of-line-659 react-line-number react-code-text" style="padding-right:16px">668</div><div data-line-number="669" class="child-of-line-18 child-of-line-659 react-line-number react-code-text" style="padding-right:16px">669</div><div data-line-number="670" class="child-of-line-18 child-of-line-659 react-line-number react-code-text" style="padding-right:16px">670</div><div data-line-number="671" class="child-of-line-18 child-of-line-659 react-line-number react-code-text" style="padding-right:16px">671</div><div data-line-number="672" class="child-of-line-18 child-of-line-659 react-line-number react-code-text" style="padding-right:16px">672</div><div data-line-number="673" class="child-of-line-18 child-of-line-659 react-line-number react-code-text" style="padding-right:16px">673</div><div data-line-number="674" class="child-of-line-18 child-of-line-659 react-line-number react-code-text" style="padding-right:16px">674</div><div data-line-number="675" class="child-of-line-18 child-of-line-659 react-line-number react-code-text" style="padding-right:16px">675</div><div data-line-number="676" class="child-of-line-18 child-of-line-659 react-line-number react-code-text" style="padding-right:16px">676</div><div data-line-number="677" class="child-of-line-18 child-of-line-659 react-line-number react-code-text" style="padding-right:16px">677</div><div data-line-number="678" class="child-of-line-18 child-of-line-659 react-line-number react-code-text" style="padding-right:16px">678</div><div data-line-number="679" class="child-of-line-18 child-of-line-659 react-line-number react-code-text" style="padding-right:16px">679</div><div data-line-number="680" class="child-of-line-18 child-of-line-659 react-line-number react-code-text" style="padding-right:16px">680</div><div data-line-number="681" class="child-of-line-18 child-of-line-659 react-line-number react-code-text" style="padding-right:16px">681</div><div data-line-number="682" class="child-of-line-18 child-of-line-659 react-line-number react-code-text" style="padding-right:16px">682</div><div data-line-number="683" class="child-of-line-18 child-of-line-659 react-line-number react-code-text" style="padding-right:16px">683</div><div data-line-number="684" class="child-of-line-18 child-of-line-659 react-line-number react-code-text" style="padding-right:16px">684</div><div data-line-number="685" class="child-of-line-18 child-of-line-659 react-line-number react-code-text" style="padding-right:16px">685</div><div data-line-number="686" class="child-of-line-18 child-of-line-659 react-line-number react-code-text" style="padding-right:16px">686</div><div data-line-number="687" class="child-of-line-18 child-of-line-659 react-line-number react-code-text" style="padding-right:16px">687</div><div data-line-number="688" class="child-of-line-18 child-of-line-659 react-line-number react-code-text" style="padding-right:16px">688</div><div data-line-number="689" class="child-of-line-18 child-of-line-659 react-line-number react-code-text" style="padding-right:16px">689</div><div data-line-number="690" class="child-of-line-18 child-of-line-659 react-line-number react-code-text" style="padding-right:16px">690</div><div data-line-number="691" class="child-of-line-18 child-of-line-659 react-line-number react-code-text" style="padding-right:16px">691</div><div data-line-number="692" class="child-of-line-18 react-line-number react-code-text" style="padding-right:16px">692</div><div data-line-number="693" class="react-line-number react-code-text" style="padding-right:16px">693</div></div><div class="react-code-lines"><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC1" class="react-file-line html-div" data-testid="code-cell" data-line-number="1" style="position:relative"><span class="pl-ent"><?php</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC2" class="react-file-line html-div" data-testid="code-cell" data-line-number="2" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC3" class="react-file-line html-div" data-testid="code-cell" data-line-number="3" style="position:relative"><span class="pl-c"> * Image upload use ImageMagick</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC4" class="react-file-line html-div" data-testid="code-cell" data-line-number="4" style="position:relative"><span class="pl-c"> * An extension for the phpBB Forum Software package.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC5" class="react-file-line html-div" data-testid="code-cell" data-line-number="5" style="position:relative"><span class="pl-c"> *</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC6" class="react-file-line html-div" data-testid="code-cell" data-line-number="6" style="position:relative"><span class="pl-c"> * @copyright (c) 2022, Thorsten Ahlers</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC7" class="react-file-line html-div" data-testid="code-cell" data-line-number="7" style="position:relative"><span class="pl-c"> * @copyright (c) 2018, canonknipser, ImageMagick Thumbnailer, http://canonknipser.com</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC8" class="react-file-line html-div" data-testid="code-cell" data-line-number="8" style="position:relative"><span class="pl-c"> * @license GNU General Public License, version 2 (GPL-2.0)</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC9" class="react-file-line html-div" data-testid="code-cell" data-line-number="9" style="position:relative"><span class="pl-c"> *</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC10" class="react-file-line html-div" data-testid="code-cell" data-line-number="10" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC11" class="react-file-line html-div" data-testid="code-cell" data-line-number="11" style="position:relative"> </div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC12" class="react-file-line html-div" data-testid="code-cell" data-line-number="12" style="position:relative"><span class="pl-k">namespace</span> imcger\imgupload\event;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC13" class="react-file-line html-div" data-testid="code-cell" data-line-number="13" style="position:relative"> </div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC14" class="react-file-line html-div" data-testid="code-cell" data-line-number="14" style="position:relative"><span class="pl-k">use</span> <span class="pl-v">Symfony</span>\<span class="pl-v">Component</span>\<span class="pl-v">EventDispatcher</span>\<span class="pl-v">EventSubscriberInterface</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC15" class="react-file-line html-div" data-testid="code-cell" data-line-number="15" style="position:relative"> </div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC16" class="react-file-line html-div" data-testid="code-cell" data-line-number="16" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC17" class="react-file-line html-div" data-testid="code-cell" data-line-number="17" style="position:relative"><span class="pl-c"> * Event listener</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC18" class="react-file-line html-div" data-testid="code-cell" data-line-number="18" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC19" class="react-file-line html-div" data-testid="code-cell" data-line-number="19" style="position:relative"><span class="pl-k">class</span> main_listener <span class="pl-k">implements</span> <span class="pl-v">EventSubscriberInterface</span></div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC20" class="react-file-line html-div" data-testid="code-cell" data-line-number="20" style="position:relative">{</div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC21" class="react-file-line html-div" data-testid="code-cell" data-line-number="21" style="position:relative"> <span class="pl-c">/** @var \phpbb\config\config */</span></div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC22" class="react-file-line html-div" data-testid="code-cell" data-line-number="22" style="position:relative"> <span class="pl-k">protected</span> <span class="pl-c1"><span class="pl-c1">$</span>config</span>;</div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC23" class="react-file-line html-div" data-testid="code-cell" data-line-number="23" style="position:relative"> </div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC24" class="react-file-line html-div" data-testid="code-cell" data-line-number="24" style="position:relative"> <span class="pl-c">/** @var \phpbb\language\language */</span></div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC25" class="react-file-line html-div" data-testid="code-cell" data-line-number="25" style="position:relative"> <span class="pl-k">protected</span> <span class="pl-c1"><span class="pl-c1">$</span>language</span>;</div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC26" class="react-file-line html-div" data-testid="code-cell" data-line-number="26" style="position:relative"> </div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC27" class="react-file-line html-div" data-testid="code-cell" data-line-number="27" style="position:relative"> <span class="pl-c">/** @var \FastImageSize\FastImageSize */</span></div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC28" class="react-file-line html-div" data-testid="code-cell" data-line-number="28" style="position:relative"> <span class="pl-k">protected</span> <span class="pl-c1"><span class="pl-c1">$</span>imagesize</span>;</div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC29" class="react-file-line html-div" data-testid="code-cell" data-line-number="29" style="position:relative"> </div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC30" class="react-file-line html-div" data-testid="code-cell" data-line-number="30" style="position:relative"> <span class="pl-c">/** @var \phpbb\db\driver\driver_interface */</span></div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC31" class="react-file-line html-div" data-testid="code-cell" data-line-number="31" style="position:relative"> <span class="pl-k">protected</span> <span class="pl-c1"><span class="pl-c1">$</span>db</span>;</div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC32" class="react-file-line html-div" data-testid="code-cell" data-line-number="32" style="position:relative"> </div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC33" class="react-file-line html-div" data-testid="code-cell" data-line-number="33" style="position:relative"> <span class="pl-c">/** @var \phpbb\template\template */</span></div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC34" class="react-file-line html-div" data-testid="code-cell" data-line-number="34" style="position:relative"> <span class="pl-k">protected</span> <span class="pl-c1"><span class="pl-c1">$</span>template</span>;</div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC35" class="react-file-line html-div" data-testid="code-cell" data-line-number="35" style="position:relative"> </div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC36" class="react-file-line html-div" data-testid="code-cell" data-line-number="36" style="position:relative"> <span class="pl-c">/** @var \phpbb\extension\manager */</span></div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC37" class="react-file-line html-div" data-testid="code-cell" data-line-number="37" style="position:relative"> <span class="pl-k">protected</span> <span class="pl-c1"><span class="pl-c1">$</span>ext_manager</span>;</div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC38" class="react-file-line html-div" data-testid="code-cell" data-line-number="38" style="position:relative"> </div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC39" class="react-file-line html-div" data-testid="code-cell" data-line-number="39" style="position:relative"> <span class="pl-c">/** @var \phpbb\controller\helper */</span></div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC40" class="react-file-line html-div" data-testid="code-cell" data-line-number="40" style="position:relative"> <span class="pl-k">protected</span> <span class="pl-c1"><span class="pl-c1">$</span>helper</span>;</div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC41" class="react-file-line html-div" data-testid="code-cell" data-line-number="41" style="position:relative"> </div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC42" class="react-file-line html-div" data-testid="code-cell" data-line-number="42" style="position:relative"> <span class="pl-c">/**</span></div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC43" class="react-file-line html-div" data-testid="code-cell" data-line-number="43" style="position:relative"><span class="pl-c"> * Constructor for listener</span></div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC44" class="react-file-line html-div" data-testid="code-cell" data-line-number="44" style="position:relative"><span class="pl-c"> *</span></div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC45" class="react-file-line html-div" data-testid="code-cell" data-line-number="45" style="position:relative"><span class="pl-c"> * @param \phpbb\config\config $config phpBB config</span></div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC46" class="react-file-line html-div" data-testid="code-cell" data-line-number="46" style="position:relative"><span class="pl-c"> * @param \phpbb\language\language $language phpBB language</span></div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC47" class="react-file-line html-div" data-testid="code-cell" data-line-number="47" style="position:relative"><span class="pl-c"> * @param \FastImageSize\FastImageSize $imagesize FastImageSize object</span></div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC48" class="react-file-line html-div" data-testid="code-cell" data-line-number="48" style="position:relative"><span class="pl-c"> * @param \phpbb\db\driver\driver_interface $db phpBB DataBase</span></div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC49" class="react-file-line html-div" data-testid="code-cell" data-line-number="49" style="position:relative"><span class="pl-c"> * Qparam \phpbb\template\template $template phpBB template</span></div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC50" class="react-file-line html-div" data-testid="code-cell" data-line-number="50" style="position:relative"><span class="pl-c"> * @param \phpbb\extension\manager $ext_manager</span></div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC51" class="react-file-line html-div" data-testid="code-cell" data-line-number="51" style="position:relative"><span class="pl-c"> * @param \phpbb\controller\helper $helper</span></div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC52" class="react-file-line html-div" data-testid="code-cell" data-line-number="52" style="position:relative"><span class="pl-c"> *</span></div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC53" class="react-file-line html-div" data-testid="code-cell" data-line-number="53" style="position:relative"><span class="pl-c"> * @access public</span></div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC54" class="react-file-line html-div" data-testid="code-cell" data-line-number="54" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC55" class="react-file-line html-div" data-testid="code-cell" data-line-number="55" style="position:relative"> <span class="pl-k">public</span> <span class="pl-k">function</span> <span class="pl-en">__construct</span></div></div></div><div class="child-of-line-18 child-of-line-54 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC56" class="react-file-line html-div" data-testid="code-cell" data-line-number="56" style="position:relative"> (</div></div></div><div class="child-of-line-18 child-of-line-54 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC57" class="react-file-line html-div" data-testid="code-cell" data-line-number="57" style="position:relative"> <span class="pl-smi"><span class="pl-smi">\phpbb\config\config</span></span> <span class="pl-s1"><span class="pl-c1">$</span>config</span>,</div></div></div><div class="child-of-line-18 child-of-line-54 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC58" class="react-file-line html-div" data-testid="code-cell" data-line-number="58" style="position:relative"> <span class="pl-smi"><span class="pl-smi">\phpbb\language\language</span></span> <span class="pl-s1"><span class="pl-c1">$</span>language</span>,</div></div></div><div class="child-of-line-18 child-of-line-54 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC59" class="react-file-line html-div" data-testid="code-cell" data-line-number="59" style="position:relative"> <span class="pl-smi"><span class="pl-smi">\<span class="pl-v">FastImageSize</span>\<span class="pl-v">FastImageSize</span></span></span> <span class="pl-s1"><span class="pl-c1">$</span>imagesize</span>,</div></div></div><div class="child-of-line-18 child-of-line-54 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC60" class="react-file-line html-div" data-testid="code-cell" data-line-number="60" style="position:relative"> <span class="pl-smi"><span class="pl-smi">\phpbb\db\driver\driver_interface</span></span> <span class="pl-s1"><span class="pl-c1">$</span>db</span>,</div></div></div><div class="child-of-line-18 child-of-line-54 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC61" class="react-file-line html-div" data-testid="code-cell" data-line-number="61" style="position:relative"> <span class="pl-smi"><span class="pl-smi">\phpbb\template\template</span></span> <span class="pl-s1"><span class="pl-c1">$</span>template</span>,</div></div></div><div class="child-of-line-18 child-of-line-54 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC62" class="react-file-line html-div" data-testid="code-cell" data-line-number="62" style="position:relative"> <span class="pl-smi"><span class="pl-smi">\phpbb\extension\manager</span></span> <span class="pl-s1"><span class="pl-c1">$</span>ext_manager</span>,</div></div></div><div class="child-of-line-18 child-of-line-54 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC63" class="react-file-line html-div" data-testid="code-cell" data-line-number="63" style="position:relative"> <span class="pl-smi"><span class="pl-smi">\phpbb\controller\helper</span></span> <span class="pl-s1"><span class="pl-c1">$</span>helper</span></div></div></div><div class="child-of-line-18 child-of-line-54 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC64" class="react-file-line html-div" data-testid="code-cell" data-line-number="64" style="position:relative"> )</div></div></div><div class="child-of-line-18 child-of-line-54 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC65" class="react-file-line html-div" data-testid="code-cell" data-line-number="65" style="position:relative"> {</div></div></div><div class="child-of-line-18 child-of-line-54 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC66" class="react-file-line html-div" data-testid="code-cell" data-line-number="66" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span><span class="pl-smi">this</span></span>-><span class="pl-c1">config</span> = <span class="pl-s1"><span class="pl-c1">$</span>config</span>;</div></div></div><div class="child-of-line-18 child-of-line-54 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC67" class="react-file-line html-div" data-testid="code-cell" data-line-number="67" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span><span class="pl-smi">this</span></span>-><span class="pl-c1">language</span> = <span class="pl-s1"><span class="pl-c1">$</span>language</span>;</div></div></div><div class="child-of-line-18 child-of-line-54 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC68" class="react-file-line html-div" data-testid="code-cell" data-line-number="68" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span><span class="pl-smi">this</span></span>-><span class="pl-c1">imagesize</span> = <span class="pl-s1"><span class="pl-c1">$</span>imagesize</span>;</div></div></div><div class="child-of-line-18 child-of-line-54 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC69" class="react-file-line html-div" data-testid="code-cell" data-line-number="69" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span><span class="pl-smi">this</span></span>-><span class="pl-c1">db</span> = <span class="pl-s1"><span class="pl-c1">$</span>db</span>;</div></div></div><div class="child-of-line-18 child-of-line-54 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC70" class="react-file-line html-div" data-testid="code-cell" data-line-number="70" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span><span class="pl-smi">this</span></span>-><span class="pl-c1">template</span> = <span class="pl-s1"><span class="pl-c1">$</span>template</span>;</div></div></div><div class="child-of-line-18 child-of-line-54 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC71" class="react-file-line html-div" data-testid="code-cell" data-line-number="71" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span><span class="pl-smi">this</span></span>-><span class="pl-c1">ext_manager</span> = <span class="pl-s1"><span class="pl-c1">$</span>ext_manager</span>;</div></div></div><div class="child-of-line-18 child-of-line-54 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC72" class="react-file-line html-div" data-testid="code-cell" data-line-number="72" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span><span class="pl-smi">this</span></span>-><span class="pl-c1">helper</span> = <span class="pl-s1"><span class="pl-c1">$</span>helper</span>;</div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC73" class="react-file-line html-div" data-testid="code-cell" data-line-number="73" style="position:relative"> }</div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC74" class="react-file-line html-div" data-testid="code-cell" data-line-number="74" style="position:relative"> </div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC75" class="react-file-line html-div" data-testid="code-cell" data-line-number="75" style="position:relative"> <span class="pl-k">public</span> <span class="pl-k">static</span> <span class="pl-k">function</span> <span class="pl-en">getSubscribedEvents</span>()</div></div></div><div class="child-of-line-18 child-of-line-74 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC76" class="react-file-line html-div" data-testid="code-cell" data-line-number="76" style="position:relative"> {</div></div></div><div class="child-of-line-18 child-of-line-74 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC77" class="react-file-line html-div" data-testid="code-cell" data-line-number="77" style="position:relative"> <span class="pl-k">return</span> [</div></div></div><div class="child-of-line-18 child-of-line-74 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC78" class="react-file-line html-div" data-testid="code-cell" data-line-number="78" style="position:relative"> <span class="pl-s">'<span class="pl-s">core.page_header</span>'</span> => <span class="pl-s">'<span class="pl-s">set_template_vars</span>'</span>,</div></div></div><div class="child-of-line-18 child-of-line-74 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC79" class="react-file-line html-div" data-testid="code-cell" data-line-number="79" style="position:relative"> <span class="pl-s">'<span class="pl-s">core.ucp_display_module_before</span>'</span> => <span class="pl-s">'<span class="pl-s">new_profil_avatar_text</span>'</span>,</div></div></div><div class="child-of-line-18 child-of-line-74 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC80" class="react-file-line html-div" data-testid="code-cell" data-line-number="80" style="position:relative"> <span class="pl-s">'<span class="pl-s">core.thumbnail_create_before</span>'</span> => <span class="pl-s">'<span class="pl-s">imcger_create_tumbnail</span>'</span>,</div></div></div><div class="child-of-line-18 child-of-line-74 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC81" class="react-file-line html-div" data-testid="code-cell" data-line-number="81" style="position:relative"> <span class="pl-s">'<span class="pl-s">core.modify_uploaded_file</span>'</span> => <span class="pl-s">'<span class="pl-s">imcger_modify_uploaded_file</span>'</span>,</div></div></div><div class="child-of-line-18 child-of-line-74 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC82" class="react-file-line html-div" data-testid="code-cell" data-line-number="82" style="position:relative"> <span class="pl-s">'<span class="pl-s">core.avatar_driver_upload_move_file_before</span>'</span> => <span class="pl-s">'<span class="pl-s">imcger_modify_uploaded_avatar</span>'</span>,</div></div></div><div class="child-of-line-18 child-of-line-74 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC83" class="react-file-line html-div" data-testid="code-cell" data-line-number="83" style="position:relative"> <span class="pl-s">'<span class="pl-s">core.viewtopic_modify_post_row</span>'</span> => <span class="pl-s">'<span class="pl-s">imcger_viewtopic_modify_post_row</span>'</span>,</div></div></div><div class="child-of-line-18 child-of-line-74 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC84" class="react-file-line html-div" data-testid="code-cell" data-line-number="84" style="position:relative"> <span class="pl-s">'<span class="pl-s">core.posting_modify_template_vars</span>'</span> => <span class="pl-s">'<span class="pl-s">imcger_posting_modify_template_vars</span>'</span>,</div></div></div><div class="child-of-line-18 child-of-line-74 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC85" class="react-file-line html-div" data-testid="code-cell" data-line-number="85" style="position:relative"> ];</div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC86" class="react-file-line html-div" data-testid="code-cell" data-line-number="86" style="position:relative"> }</div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC87" class="react-file-line html-div" data-testid="code-cell" data-line-number="87" style="position:relative"> </div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC88" class="react-file-line html-div" data-testid="code-cell" data-line-number="88" style="position:relative"> <span class="pl-c">/**</span></div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC89" class="react-file-line html-div" data-testid="code-cell" data-line-number="89" style="position:relative"><span class="pl-c"> * Add language file for avatar upload page</span></div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC90" class="react-file-line html-div" data-testid="code-cell" data-line-number="90" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC91" class="react-file-line html-div" data-testid="code-cell" data-line-number="91" style="position:relative"> <span class="pl-k">public</span> <span class="pl-k">function</span> <span class="pl-en">new_profil_avatar_text</span>()</div></div></div><div class="child-of-line-18 child-of-line-90 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC92" class="react-file-line html-div" data-testid="code-cell" data-line-number="92" style="position:relative"> {</div></div></div><div class="child-of-line-18 child-of-line-90 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC93" class="react-file-line html-div" data-testid="code-cell" data-line-number="93" style="position:relative"> <span class="pl-k">if</span> (<span class="pl-s1"><span class="pl-c1">$</span><span class="pl-smi">this</span></span>-><span class="pl-c1">config</span>[<span class="pl-s">'<span class="pl-s">imcger_imgupload_avatar_resize</span>'</span>])</div></div></div><div class="child-of-line-18 child-of-line-90 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC94" class="react-file-line html-div" data-testid="code-cell" data-line-number="94" style="position:relative"> {</div></div></div><div class="child-of-line-18 child-of-line-90 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC95" class="react-file-line html-div" data-testid="code-cell" data-line-number="95" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span><span class="pl-smi">this</span></span>-><span class="pl-c1">language</span>-><span class="pl-en">add_lang</span>(<span class="pl-s">'<span class="pl-s">ucp</span>'</span>,<span class="pl-s">'<span class="pl-s">imcger/imgupload</span>'</span>);</div></div></div><div class="child-of-line-18 child-of-line-90 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC96" class="react-file-line html-div" data-testid="code-cell" data-line-number="96" style="position:relative"> }</div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC97" class="react-file-line html-div" data-testid="code-cell" data-line-number="97" style="position:relative"> }</div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC98" class="react-file-line html-div" data-testid="code-cell" data-line-number="98" style="position:relative"> </div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC99" class="react-file-line html-div" data-testid="code-cell" data-line-number="99" style="position:relative"> <span class="pl-c">/**</span></div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC100" class="react-file-line html-div" data-testid="code-cell" data-line-number="100" style="position:relative"><span class="pl-c"> * Set template vars</span></div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC101" class="react-file-line html-div" data-testid="code-cell" data-line-number="101" style="position:relative"><span class="pl-c"> *</span></div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC102" class="react-file-line html-div" data-testid="code-cell" data-line-number="102" style="position:relative"><span class="pl-c"> * @return null</span></div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC103" class="react-file-line html-div" data-testid="code-cell" data-line-number="103" style="position:relative"><span class="pl-c"> * @access public</span></div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC104" class="react-file-line html-div" data-testid="code-cell" data-line-number="104" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC105" class="react-file-line html-div" data-testid="code-cell" data-line-number="105" style="position:relative"> <span class="pl-k">public</span> <span class="pl-k">function</span> <span class="pl-en">set_template_vars</span>()</div></div></div><div class="child-of-line-18 child-of-line-104 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC106" class="react-file-line html-div" data-testid="code-cell" data-line-number="106" style="position:relative"> {</div></div></div><div class="child-of-line-18 child-of-line-104 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC107" class="react-file-line html-div" data-testid="code-cell" data-line-number="107" style="position:relative"> <span class="pl-c">// Load language vars for buttons in post editor</span></div></div></div><div class="child-of-line-18 child-of-line-104 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC108" class="react-file-line html-div" data-testid="code-cell" data-line-number="108" style="position:relative"> <span class="pl-k">if</span> (<span class="pl-s1"><span class="pl-c1">$</span><span class="pl-smi">this</span></span>-><span class="pl-c1">config</span>[<span class="pl-s">'<span class="pl-s">img_create_thumbnail</span>'</span>])</div></div></div><div class="child-of-line-18 child-of-line-104 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC109" class="react-file-line html-div" data-testid="code-cell" data-line-number="109" style="position:relative"> {</div></div></div><div class="child-of-line-18 child-of-line-104 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC110" class="react-file-line html-div" data-testid="code-cell" data-line-number="110" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span><span class="pl-smi">this</span></span>-><span class="pl-c1">language</span>-><span class="pl-en">add_lang</span>(<span class="pl-s">'<span class="pl-s">attachment</span>'</span>,<span class="pl-s">'<span class="pl-s">imcger/imgupload</span>'</span>);</div></div></div><div class="child-of-line-18 child-of-line-104 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC111" class="react-file-line html-div" data-testid="code-cell" data-line-number="111" style="position:relative"> }</div></div></div><div class="child-of-line-18 child-of-line-104 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC112" class="react-file-line html-div" data-testid="code-cell" data-line-number="112" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-104 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC113" class="react-file-line html-div" data-testid="code-cell" data-line-number="113" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>allowed_images</span> = [];</div></div></div><div class="child-of-line-18 child-of-line-104 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC114" class="react-file-line html-div" data-testid="code-cell" data-line-number="114" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>img_max_thumb_width</span> = <span class="pl-s1"><span class="pl-c1">$</span><span class="pl-smi">this</span></span>-><span class="pl-c1">config</span>[<span class="pl-s">'<span class="pl-s">imcger_imgupload_img_max_thumb_width</span>'</span>];</div></div></div><div class="child-of-line-18 child-of-line-104 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC115" class="react-file-line html-div" data-testid="code-cell" data-line-number="115" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-104 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC116" class="react-file-line html-div" data-testid="code-cell" data-line-number="116" style="position:relative"> <span class="pl-c">// Get extension from image groups</span></div></div></div><div class="child-of-line-18 child-of-line-104 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC117" class="react-file-line html-div" data-testid="code-cell" data-line-number="117" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>sql_ary</span> = <span class="pl-s">'<span class="pl-s">SELECT e.extension</span></span></div></div></div><div class="child-of-line-18 child-of-line-104 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC118" class="react-file-line html-div" data-testid="code-cell" data-line-number="118" style="position:relative"><span class="pl-s"><span class="pl-s"> FROM </span>'</span> . <span class="pl-c1">EXTENSIONS_TABLE</span> . <span class="pl-s">'<span class="pl-s"> e</span></span></div></div></div><div class="child-of-line-18 child-of-line-104 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC119" class="react-file-line html-div" data-testid="code-cell" data-line-number="119" style="position:relative"><span class="pl-s"><span class="pl-s"> JOIN </span>'</span> . <span class="pl-c1">EXTENSION_GROUPS_TABLE</span> . <span class="pl-s">'<span class="pl-s"> g</span></span></div></div></div><div class="child-of-line-18 child-of-line-104 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC120" class="react-file-line html-div" data-testid="code-cell" data-line-number="120" style="position:relative"><span class="pl-s"><span class="pl-s"> WHERE e.group_id = g.group_id</span></span></div></div></div><div class="child-of-line-18 child-of-line-104 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC121" class="react-file-line html-div" data-testid="code-cell" data-line-number="121" style="position:relative"><span class="pl-s"><span class="pl-s"> AND g.cat_id = 1</span>'</span>;</div></div></div><div class="child-of-line-18 child-of-line-104 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC122" class="react-file-line html-div" data-testid="code-cell" data-line-number="122" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-104 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC123" class="react-file-line html-div" data-testid="code-cell" data-line-number="123" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>result_ext</span> = <span class="pl-s1"><span class="pl-c1">$</span><span class="pl-smi">this</span></span>-><span class="pl-c1">db</span>-><span class="pl-en">sql_query</span>(<span class="pl-s1"><span class="pl-c1">$</span>sql_ary</span>);</div></div></div><div class="child-of-line-18 child-of-line-104 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC124" class="react-file-line html-div" data-testid="code-cell" data-line-number="124" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-104 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC125" class="react-file-line html-div" data-testid="code-cell" data-line-number="125" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>ext_ary</span> = <span class="pl-s1"><span class="pl-c1">$</span><span class="pl-smi">this</span></span>-><span class="pl-c1">db</span>-><span class="pl-en">sql_fetchrowset</span>(<span class="pl-s1"><span class="pl-c1">$</span>result_ext</span>);</div></div></div><div class="child-of-line-18 child-of-line-104 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC126" class="react-file-line html-div" data-testid="code-cell" data-line-number="126" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-104 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC127" class="react-file-line html-div" data-testid="code-cell" data-line-number="127" style="position:relative"> <span class="pl-c">// Convert 2 dimensional array into simple array</span></div></div></div><div class="child-of-line-18 child-of-line-104 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC128" class="react-file-line html-div" data-testid="code-cell" data-line-number="128" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>allowed_images</span> = <span class="pl-en">array_map</span>(<span class="pl-k">function</span> (<span class="pl-s1"><span class="pl-c1">$</span>n</span>) {<span class="pl-k">return</span> <span class="pl-s1"><span class="pl-c1">$</span>n</span>[<span class="pl-s">'<span class="pl-s">extension</span>'</span>];}, <span class="pl-s1"><span class="pl-c1">$</span>ext_ary</span>);</div></div></div><div class="child-of-line-18 child-of-line-104 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC129" class="react-file-line html-div" data-testid="code-cell" data-line-number="129" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-104 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC130" class="react-file-line html-div" data-testid="code-cell" data-line-number="130" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span><span class="pl-smi">this</span></span>-><span class="pl-c1">db</span>-><span class="pl-en">sql_freeresult</span>();</div></div></div><div class="child-of-line-18 child-of-line-104 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC131" class="react-file-line html-div" data-testid="code-cell" data-line-number="131" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-104 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC132" class="react-file-line html-div" data-testid="code-cell" data-line-number="132" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>metadata_manager</span> = <span class="pl-s1"><span class="pl-c1">$</span><span class="pl-smi">this</span></span>-><span class="pl-c1">ext_manager</span>-><span class="pl-en">create_extension_metadata_manager</span>(<span class="pl-s">'<span class="pl-s">imcger/imgupload</span>'</span>);</div></div></div><div class="child-of-line-18 child-of-line-104 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC133" class="react-file-line html-div" data-testid="code-cell" data-line-number="133" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-104 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC134" class="react-file-line html-div" data-testid="code-cell" data-line-number="134" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span><span class="pl-smi">this</span></span>-><span class="pl-c1">template</span>-><span class="pl-en">assign_vars</span>([</div></div></div><div class="child-of-line-18 child-of-line-104 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC135" class="react-file-line html-div" data-testid="code-cell" data-line-number="135" style="position:relative"> <span class="pl-s">'<span class="pl-s">IMGUPLOAD_TITLE</span>'</span> => <span class="pl-s1"><span class="pl-c1">$</span>metadata_manager</span>-><span class="pl-en">get_metadata</span>(<span class="pl-s">'<span class="pl-s">display-name</span>'</span>),</div></div></div><div class="child-of-line-18 child-of-line-104 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC136" class="react-file-line html-div" data-testid="code-cell" data-line-number="136" style="position:relative"> <span class="pl-s">'<span class="pl-s">IUL_ALLOWED_IMAGES</span>'</span> => <span class="pl-en">json_encode</span>(<span class="pl-s1"><span class="pl-c1">$</span>allowed_images</span>),</div></div></div><div class="child-of-line-18 child-of-line-104 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC137" class="react-file-line html-div" data-testid="code-cell" data-line-number="137" style="position:relative"> <span class="pl-s">'<span class="pl-s">IUL_IMG_SET_INLINE</span>'</span> => <span class="pl-s1"><span class="pl-c1">$</span><span class="pl-smi">this</span></span>-><span class="pl-c1">config</span>[<span class="pl-s">'<span class="pl-s">imcger_imgupload_image_inline</span>'</span>],</div></div></div><div class="child-of-line-18 child-of-line-104 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC138" class="react-file-line html-div" data-testid="code-cell" data-line-number="138" style="position:relative"> <span class="pl-s">'<span class="pl-s">IUL_IMG_MAX_THUMB_WIDTH</span>'</span> => <span class="pl-s1"><span class="pl-c1">$</span>img_max_thumb_width</span> ? <span class="pl-s1"><span class="pl-c1">$</span>img_max_thumb_width</span> . <span class="pl-s">'<span class="pl-s">px</span>'</span> : <span class="pl-c1">false</span>,</div></div></div><div class="child-of-line-18 child-of-line-104 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC139" class="react-file-line html-div" data-testid="code-cell" data-line-number="139" style="position:relative"> <span class="pl-s">'<span class="pl-s">IMGUPLOAD_TITLE</span>'</span> => <span class="pl-s1"><span class="pl-c1">$</span>metadata_manager</span>-><span class="pl-en">get_metadata</span>(<span class="pl-s">'<span class="pl-s">display-name</span>'</span>),</div></div></div><div class="child-of-line-18 child-of-line-104 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC140" class="react-file-line html-div" data-testid="code-cell" data-line-number="140" style="position:relative"> <span class="pl-s">'<span class="pl-s">U_IUL_SAVE_IMAGE</span>'</span> => <span class="pl-s1"><span class="pl-c1">$</span><span class="pl-smi">this</span></span>-><span class="pl-c1">helper</span>-><span class="pl-en">route</span>(<span class="pl-s">'<span class="pl-s">imcger_imgupload_ajax_controller</span>'</span>, [<span class="pl-s">'<span class="pl-s">order</span>'</span> => <span class="pl-s">'<span class="pl-s">save_image</span>'</span>]),</div></div></div><div class="child-of-line-18 child-of-line-104 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC141" class="react-file-line html-div" data-testid="code-cell" data-line-number="141" style="position:relative"> <span class="pl-s">'<span class="pl-s">U_IUL_IMAGE_SIZE</span>'</span> => <span class="pl-s1"><span class="pl-c1">$</span><span class="pl-smi">this</span></span>-><span class="pl-c1">helper</span>-><span class="pl-en">route</span>(<span class="pl-s">'<span class="pl-s">imcger_imgupload_ajax_controller</span>'</span>, [<span class="pl-s">'<span class="pl-s">order</span>'</span> => <span class="pl-s">'<span class="pl-s">image_size</span>'</span>]),</div></div></div><div class="child-of-line-18 child-of-line-104 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC142" class="react-file-line html-div" data-testid="code-cell" data-line-number="142" style="position:relative"> ]);</div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC143" class="react-file-line html-div" data-testid="code-cell" data-line-number="143" style="position:relative"> }</div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC144" class="react-file-line html-div" data-testid="code-cell" data-line-number="144" style="position:relative"> </div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC145" class="react-file-line html-div" data-testid="code-cell" data-line-number="145" style="position:relative"> <span class="pl-c">/**</span></div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC146" class="react-file-line html-div" data-testid="code-cell" data-line-number="146" style="position:relative"><span class="pl-c"> * Create a thumbnail using IMagick</span></div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC147" class="react-file-line html-div" data-testid="code-cell" data-line-number="147" style="position:relative"><span class="pl-c"> *</span></div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC148" class="react-file-line html-div" data-testid="code-cell" data-line-number="148" style="position:relative"><span class="pl-c"> * @param \phpbb\event\data $event Event object</span></div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC149" class="react-file-line html-div" data-testid="code-cell" data-line-number="149" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC150" class="react-file-line html-div" data-testid="code-cell" data-line-number="150" style="position:relative"> <span class="pl-k">public</span> <span class="pl-k">function</span> <span class="pl-en">imcger_create_tumbnail</span>(<span class="pl-s1"><span class="pl-c1">$</span>event</span>)</div></div></div><div class="child-of-line-18 child-of-line-149 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC151" class="react-file-line html-div" data-testid="code-cell" data-line-number="151" style="position:relative"> {</div></div></div><div class="child-of-line-18 child-of-line-149 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC152" class="react-file-line html-div" data-testid="code-cell" data-line-number="152" style="position:relative"> <span class="pl-c">// create a new instance of ImageMagick and load current image</span></div></div></div><div class="child-of-line-18 child-of-line-149 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC153" class="react-file-line html-div" data-testid="code-cell" data-line-number="153" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>thumbnail</span> = <span class="pl-k">new</span> \<span class="pl-v">Imagick</span>(<span class="pl-en">realpath</span>(<span class="pl-s1"><span class="pl-c1">$</span>event</span>[<span class="pl-s">'<span class="pl-s">source</span>'</span>]));</div></div></div><div class="child-of-line-18 child-of-line-149 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC154" class="react-file-line html-div" data-testid="code-cell" data-line-number="154" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-149 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC155" class="react-file-line html-div" data-testid="code-cell" data-line-number="155" style="position:relative"> <span class="pl-c">// rotate the image according it's orientation flag</span></div></div></div><div class="child-of-line-18 child-of-line-149 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC156" class="react-file-line html-div" data-testid="code-cell" data-line-number="156" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>thumb</span> = <span class="pl-s1"><span class="pl-c1">$</span><span class="pl-smi">this</span></span>-><span class="pl-en">image_auto_rotate</span>(<span class="pl-s1"><span class="pl-c1">$</span>thumbnail</span>);</div></div></div><div class="child-of-line-18 child-of-line-149 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC157" class="react-file-line html-div" data-testid="code-cell" data-line-number="157" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-149 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC158" class="react-file-line html-div" data-testid="code-cell" data-line-number="158" style="position:relative"> <span class="pl-c">// changed the image heigth and width when it rotate</span></div></div></div><div class="child-of-line-18 child-of-line-149 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC159" class="react-file-line html-div" data-testid="code-cell" data-line-number="159" style="position:relative"> <span class="pl-k">if</span> (<span class="pl-s1"><span class="pl-c1">$</span>thumb</span>[<span class="pl-s">'<span class="pl-s">rotate</span>'</span>])</div></div></div><div class="child-of-line-18 child-of-line-149 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC160" class="react-file-line html-div" data-testid="code-cell" data-line-number="160" style="position:relative"> {</div></div></div><div class="child-of-line-18 child-of-line-149 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC161" class="react-file-line html-div" data-testid="code-cell" data-line-number="161" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>new_width</span> = <span class="pl-s1"><span class="pl-c1">$</span>event</span>[<span class="pl-s">'<span class="pl-s">new_height</span>'</span>];</div></div></div><div class="child-of-line-18 child-of-line-149 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC162" class="react-file-line html-div" data-testid="code-cell" data-line-number="162" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>new_height</span> = <span class="pl-s1"><span class="pl-c1">$</span>event</span>[<span class="pl-s">'<span class="pl-s">new_width</span>'</span>];</div></div></div><div class="child-of-line-18 child-of-line-149 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC163" class="react-file-line html-div" data-testid="code-cell" data-line-number="163" style="position:relative"> }</div></div></div><div class="child-of-line-18 child-of-line-149 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC164" class="react-file-line html-div" data-testid="code-cell" data-line-number="164" style="position:relative"> <span class="pl-k">else</span></div></div></div><div class="child-of-line-18 child-of-line-149 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC165" class="react-file-line html-div" data-testid="code-cell" data-line-number="165" style="position:relative"> {</div></div></div><div class="child-of-line-18 child-of-line-149 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC166" class="react-file-line html-div" data-testid="code-cell" data-line-number="166" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>new_width</span> = <span class="pl-s1"><span class="pl-c1">$</span>event</span>[<span class="pl-s">'<span class="pl-s">new_width</span>'</span>];</div></div></div><div class="child-of-line-18 child-of-line-149 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC167" class="react-file-line html-div" data-testid="code-cell" data-line-number="167" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>new_height</span> = <span class="pl-s1"><span class="pl-c1">$</span>event</span>[<span class="pl-s">'<span class="pl-s">new_height</span>'</span>];</div></div></div><div class="child-of-line-18 child-of-line-149 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC168" class="react-file-line html-div" data-testid="code-cell" data-line-number="168" style="position:relative"> }</div></div></div><div class="child-of-line-18 child-of-line-149 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC169" class="react-file-line html-div" data-testid="code-cell" data-line-number="169" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-149 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC170" class="react-file-line html-div" data-testid="code-cell" data-line-number="170" style="position:relative"> <span class="pl-c">// resize the Image</span></div></div></div><div class="child-of-line-18 child-of-line-149 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC171" class="react-file-line html-div" data-testid="code-cell" data-line-number="171" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>thumbnail</span>-><span class="pl-en">resizeImage</span>(<span class="pl-s1"><span class="pl-c1">$</span>new_width</span>, <span class="pl-s1"><span class="pl-c1">$</span>new_height</span>, \<span class="pl-v">Imagick</span>::<span class="pl-c1">FILTER_LANCZOS</span>, <span class="pl-c1">1</span>);</div></div></div><div class="child-of-line-18 child-of-line-149 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC172" class="react-file-line html-div" data-testid="code-cell" data-line-number="172" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-149 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC173" class="react-file-line html-div" data-testid="code-cell" data-line-number="173" style="position:relative"> <span class="pl-c">// set image format</span></div></div></div><div class="child-of-line-18 child-of-line-149 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC174" class="react-file-line html-div" data-testid="code-cell" data-line-number="174" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>image_format</span> = <span class="pl-s1"><span class="pl-c1">$</span><span class="pl-smi">this</span></span>-><span class="pl-en">set_image_format</span>(<span class="pl-s1"><span class="pl-c1">$</span>thumbnail</span>, <span class="pl-s1"><span class="pl-c1">$</span>event</span>[<span class="pl-s">'<span class="pl-s">mimetype</span>'</span>]);</div></div></div><div class="child-of-line-18 child-of-line-149 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC175" class="react-file-line html-div" data-testid="code-cell" data-line-number="175" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-149 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC176" class="react-file-line html-div" data-testid="code-cell" data-line-number="176" style="position:relative"> <span class="pl-c">// compression quality is read from config, set in ACP</span></div></div></div><div class="child-of-line-18 child-of-line-149 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC177" class="react-file-line html-div" data-testid="code-cell" data-line-number="177" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span><span class="pl-smi">this</span></span>-><span class="pl-en">set_image_compression</span>(<span class="pl-s1"><span class="pl-c1">$</span>thumbnail</span>, <span class="pl-s1"><span class="pl-c1">$</span><span class="pl-smi">this</span></span>-><span class="pl-c1">config</span>[<span class="pl-s">'<span class="pl-s">imcger_imgupload_tum_quality</span>'</span>]);</div></div></div><div class="child-of-line-18 child-of-line-149 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC178" class="react-file-line html-div" data-testid="code-cell" data-line-number="178" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-149 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC179" class="react-file-line html-div" data-testid="code-cell" data-line-number="179" style="position:relative"> <span class="pl-c">// strip EXIF data and image profile</span></div></div></div><div class="child-of-line-18 child-of-line-149 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC180" class="react-file-line html-div" data-testid="code-cell" data-line-number="180" style="position:relative"> <span class="pl-k">if</span> (<span class="pl-s1"><span class="pl-c1">$</span><span class="pl-smi">this</span></span>-><span class="pl-c1">config</span>[<span class="pl-s">'<span class="pl-s">imcger_imgupload_del_exif</span>'</span>] && (<span class="pl-s1"><span class="pl-c1">$</span>image_format</span> == <span class="pl-s">'<span class="pl-s">JPEG</span>'</span> || <span class="pl-s1"><span class="pl-c1">$</span>image_format</span> == <span class="pl-s">'<span class="pl-s">WEBP</span>'</span>))</div></div></div><div class="child-of-line-18 child-of-line-149 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC181" class="react-file-line html-div" data-testid="code-cell" data-line-number="181" style="position:relative"> {</div></div></div><div class="child-of-line-18 child-of-line-149 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC182" class="react-file-line html-div" data-testid="code-cell" data-line-number="182" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>thumbnail</span>-><span class="pl-en">stripImage</span>();</div></div></div><div class="child-of-line-18 child-of-line-149 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC183" class="react-file-line html-div" data-testid="code-cell" data-line-number="183" style="position:relative"> }</div></div></div><div class="child-of-line-18 child-of-line-149 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC184" class="react-file-line html-div" data-testid="code-cell" data-line-number="184" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-149 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC185" class="react-file-line html-div" data-testid="code-cell" data-line-number="185" style="position:relative"> <span class="pl-c">// store the image</span></div></div></div><div class="child-of-line-18 child-of-line-149 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC186" class="react-file-line html-div" data-testid="code-cell" data-line-number="186" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>thumbnail_created</span> = <span class="pl-s1"><span class="pl-c1">$</span>thumbnail</span>-><span class="pl-en">writeImage</span>(<span class="pl-s1"><span class="pl-c1">$</span>event</span>[<span class="pl-s">'<span class="pl-s">destination</span>'</span>]);</div></div></div><div class="child-of-line-18 child-of-line-149 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC187" class="react-file-line html-div" data-testid="code-cell" data-line-number="187" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>thumbnail</span>-><span class="pl-en">clear</span>();</div></div></div><div class="child-of-line-18 child-of-line-149 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC188" class="react-file-line html-div" data-testid="code-cell" data-line-number="188" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-149 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC189" class="react-file-line html-div" data-testid="code-cell" data-line-number="189" style="position:relative"> <span class="pl-c">// if image format change to JPEG set mimetype to jpeg</span></div></div></div><div class="child-of-line-18 child-of-line-149 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC190" class="react-file-line html-div" data-testid="code-cell" data-line-number="190" style="position:relative"> <span class="pl-k">if</span> (<span class="pl-s1"><span class="pl-c1">$</span>image_format</span> == <span class="pl-s">'<span class="pl-s">JPEG</span>'</span> && <span class="pl-s1"><span class="pl-c1">$</span>event</span>[<span class="pl-s">'<span class="pl-s">mimetype</span>'</span>] != <span class="pl-s">'<span class="pl-s">image/jpeg</span>'</span> && <span class="pl-s1"><span class="pl-c1">$</span>thumbnail_created</span>)</div></div></div><div class="child-of-line-18 child-of-line-149 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC191" class="react-file-line html-div" data-testid="code-cell" data-line-number="191" style="position:relative"> {</div></div></div><div class="child-of-line-18 child-of-line-149 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC192" class="react-file-line html-div" data-testid="code-cell" data-line-number="192" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>event</span>[<span class="pl-s">'<span class="pl-s">mimetype</span>'</span>] = <span class="pl-s">'<span class="pl-s">image/jpeg</span>'</span>;</div></div></div><div class="child-of-line-18 child-of-line-149 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC193" class="react-file-line html-div" data-testid="code-cell" data-line-number="193" style="position:relative"> }</div></div></div><div class="child-of-line-18 child-of-line-149 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC194" class="react-file-line html-div" data-testid="code-cell" data-line-number="194" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-149 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC195" class="react-file-line html-div" data-testid="code-cell" data-line-number="195" style="position:relative"> <span class="pl-c">// set return value</span></div></div></div><div class="child-of-line-18 child-of-line-149 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC196" class="react-file-line html-div" data-testid="code-cell" data-line-number="196" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>event</span>[<span class="pl-s">'<span class="pl-s">thumbnail_created</span>'</span>] = <span class="pl-s1"><span class="pl-c1">$</span>thumbnail_created</span>;</div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC197" class="react-file-line html-div" data-testid="code-cell" data-line-number="197" style="position:relative"> }</div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC198" class="react-file-line html-div" data-testid="code-cell" data-line-number="198" style="position:relative"> </div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC199" class="react-file-line html-div" data-testid="code-cell" data-line-number="199" style="position:relative"> <span class="pl-c">/**</span></div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC200" class="react-file-line html-div" data-testid="code-cell" data-line-number="200" style="position:relative"><span class="pl-c"> * Modify upload image using IMagick</span></div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC201" class="react-file-line html-div" data-testid="code-cell" data-line-number="201" style="position:relative"><span class="pl-c"> *</span></div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC202" class="react-file-line html-div" data-testid="code-cell" data-line-number="202" style="position:relative"><span class="pl-c"> * @param \phpbb\event\data $event Event object</span></div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC203" class="react-file-line html-div" data-testid="code-cell" data-line-number="203" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC204" class="react-file-line html-div" data-testid="code-cell" data-line-number="204" style="position:relative"> <span class="pl-k">public</span> <span class="pl-k">function</span> <span class="pl-en">imcger_modify_uploaded_file</span>(<span class="pl-s1"><span class="pl-c1">$</span>event</span>)</div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC205" class="react-file-line html-div" data-testid="code-cell" data-line-number="205" style="position:relative"> {</div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC206" class="react-file-line html-div" data-testid="code-cell" data-line-number="206" style="position:relative"> <span class="pl-k">if</span> (<span class="pl-s1"><span class="pl-c1">$</span>event</span>[<span class="pl-s">'<span class="pl-s">is_image</span>'</span>])</div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC207" class="react-file-line html-div" data-testid="code-cell" data-line-number="207" style="position:relative"> {</div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC208" class="react-file-line html-div" data-testid="code-cell" data-line-number="208" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>write_image</span> = <span class="pl-c1">false</span>; <span class="pl-c">// set to true wenn image attribute changed</span></div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC209" class="react-file-line html-div" data-testid="code-cell" data-line-number="209" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>image_max_width</span> = <span class="pl-s1"><span class="pl-c1">$</span><span class="pl-smi">this</span></span>-><span class="pl-c1">config</span>[<span class="pl-s">'<span class="pl-s">imcger_imgupload_max_width</span>'</span>];</div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC210" class="react-file-line html-div" data-testid="code-cell" data-line-number="210" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>image_max_height</span> = <span class="pl-s1"><span class="pl-c1">$</span><span class="pl-smi">this</span></span>-><span class="pl-c1">config</span>[<span class="pl-s">'<span class="pl-s">imcger_imgupload_max_height</span>'</span>];</div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC211" class="react-file-line html-div" data-testid="code-cell" data-line-number="211" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>image_quality</span> = <span class="pl-s1"><span class="pl-c1">$</span><span class="pl-smi">this</span></span>-><span class="pl-c1">config</span>[<span class="pl-s">'<span class="pl-s">imcger_imgupload_img_quality</span>'</span>];</div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC212" class="react-file-line html-div" data-testid="code-cell" data-line-number="212" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>image_del_exif</span> = <span class="pl-s1"><span class="pl-c1">$</span><span class="pl-smi">this</span></span>-><span class="pl-c1">config</span>[<span class="pl-s">'<span class="pl-s">img_strip_metadata</span>'</span>];</div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC213" class="react-file-line html-div" data-testid="code-cell" data-line-number="213" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>image_max_filesize</span> = <span class="pl-s1"><span class="pl-c1">$</span><span class="pl-smi">this</span></span>-><span class="pl-c1">config</span>[<span class="pl-s">'<span class="pl-s">imcger_imgupload_max_filesize</span>'</span>];</div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC214" class="react-file-line html-div" data-testid="code-cell" data-line-number="214" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>filesize</span> = <span class="pl-s1"><span class="pl-c1">$</span>event</span>[<span class="pl-s">'<span class="pl-s">filedata</span>'</span>][<span class="pl-s">'<span class="pl-s">filesize</span>'</span>];</div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC215" class="react-file-line html-div" data-testid="code-cell" data-line-number="215" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC216" class="react-file-line html-div" data-testid="code-cell" data-line-number="216" style="position:relative"> <span class="pl-c">// get file path</span></div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC217" class="react-file-line html-div" data-testid="code-cell" data-line-number="217" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>file_path</span> = <span class="pl-en">join</span>(<span class="pl-s">'<span class="pl-s">/</span>'</span>, [<span class="pl-en">trim</span>(<span class="pl-s1"><span class="pl-c1">$</span><span class="pl-smi">this</span></span>-><span class="pl-c1">config</span>[<span class="pl-s">'<span class="pl-s">upload_path</span>'</span>], <span class="pl-s">'<span class="pl-s">/</span>'</span>), <span class="pl-en">trim</span>(<span class="pl-s1"><span class="pl-c1">$</span>event</span>[<span class="pl-s">'<span class="pl-s">filedata</span>'</span>][<span class="pl-s">'<span class="pl-s">physical_filename</span>'</span>], <span class="pl-s">'<span class="pl-s">/</span>'</span>)]);</div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC218" class="react-file-line html-div" data-testid="code-cell" data-line-number="218" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC219" class="react-file-line html-div" data-testid="code-cell" data-line-number="219" style="position:relative"> <span class="pl-c">// get image dimension and type</span></div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC220" class="react-file-line html-div" data-testid="code-cell" data-line-number="220" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>size</span> = <span class="pl-s1"><span class="pl-c1">$</span><span class="pl-smi">this</span></span>-><span class="pl-c1">imagesize</span>-><span class="pl-en">getImageSize</span>(<span class="pl-s1"><span class="pl-c1">$</span>file_path</span>);</div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC221" class="react-file-line html-div" data-testid="code-cell" data-line-number="221" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC222" class="react-file-line html-div" data-testid="code-cell" data-line-number="222" style="position:relative"> <span class="pl-k">if</span> (<span class="pl-s1"><span class="pl-c1">$</span>size</span> === <span class="pl-c1">false</span>)</div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC223" class="react-file-line html-div" data-testid="code-cell" data-line-number="223" style="position:relative"> {</div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC224" class="react-file-line html-div" data-testid="code-cell" data-line-number="224" style="position:relative"> <span class="pl-k">return</span> <span class="pl-c1">false</span>;</div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC225" class="react-file-line html-div" data-testid="code-cell" data-line-number="225" style="position:relative"> }</div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC226" class="react-file-line html-div" data-testid="code-cell" data-line-number="226" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC227" class="react-file-line html-div" data-testid="code-cell" data-line-number="227" style="position:relative"> <span class="pl-c">// if image no jpeg or webp and image properties smaller then maximum values do nothing</span></div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC228" class="react-file-line html-div" data-testid="code-cell" data-line-number="228" style="position:relative"> <span class="pl-k">if</span> (!((<span class="pl-s1"><span class="pl-c1">$</span>size</span>[<span class="pl-s">'<span class="pl-s">type</span>'</span>] == <span class="pl-c1">IMAGETYPE_JPEG</span> || <span class="pl-s1"><span class="pl-c1">$</span>size</span>[<span class="pl-s">'<span class="pl-s">type</span>'</span>] == <span class="pl-c1">IMAGETYPE_WEBP</span> ) && <span class="pl-s1"><span class="pl-c1">$</span>image_del_exif</span>) &&</div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC229" class="react-file-line html-div" data-testid="code-cell" data-line-number="229" style="position:relative"> (!<span class="pl-s1"><span class="pl-c1">$</span>image_max_width</span> || <span class="pl-s1"><span class="pl-c1">$</span>image_max_width</span> >= <span class="pl-s1"><span class="pl-c1">$</span>size</span>[<span class="pl-s">'<span class="pl-s">width</span>'</span>]) &&</div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC230" class="react-file-line html-div" data-testid="code-cell" data-line-number="230" style="position:relative"> (!<span class="pl-s1"><span class="pl-c1">$</span>image_max_height</span> || <span class="pl-s1"><span class="pl-c1">$</span>image_max_height</span> >= <span class="pl-s1"><span class="pl-c1">$</span>size</span>[<span class="pl-s">'<span class="pl-s">height</span>'</span>]) &&</div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC231" class="react-file-line html-div" data-testid="code-cell" data-line-number="231" style="position:relative"> (!<span class="pl-s1"><span class="pl-c1">$</span>image_max_filesize</span> || <span class="pl-s1"><span class="pl-c1">$</span>image_max_filesize</span> >= <span class="pl-s1"><span class="pl-c1">$</span>filesize</span>)</div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC232" class="react-file-line html-div" data-testid="code-cell" data-line-number="232" style="position:relative"> )</div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC233" class="react-file-line html-div" data-testid="code-cell" data-line-number="233" style="position:relative"> {</div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC234" class="react-file-line html-div" data-testid="code-cell" data-line-number="234" style="position:relative"> <span class="pl-k">return</span> <span class="pl-c1">true</span>;</div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC235" class="react-file-line html-div" data-testid="code-cell" data-line-number="235" style="position:relative"> }</div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC236" class="react-file-line html-div" data-testid="code-cell" data-line-number="236" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC237" class="react-file-line html-div" data-testid="code-cell" data-line-number="237" style="position:relative"> <span class="pl-c">// create a new instance of ImageMagick and load current image</span></div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC238" class="react-file-line html-div" data-testid="code-cell" data-line-number="238" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>image</span> = <span class="pl-k">new</span> \<span class="pl-v">Imagick</span>(<span class="pl-s1"><span class="pl-c1">$</span>file_path</span>);</div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC239" class="react-file-line html-div" data-testid="code-cell" data-line-number="239" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC240" class="react-file-line html-div" data-testid="code-cell" data-line-number="240" style="position:relative"> <span class="pl-c">// rotate the image according it's orientation flag</span></div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC241" class="react-file-line html-div" data-testid="code-cell" data-line-number="241" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>img</span> = <span class="pl-s1"><span class="pl-c1">$</span><span class="pl-smi">this</span></span>-><span class="pl-en">image_auto_rotate</span>(<span class="pl-s1"><span class="pl-c1">$</span>image</span>);</div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC242" class="react-file-line html-div" data-testid="code-cell" data-line-number="242" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC243" class="react-file-line html-div" data-testid="code-cell" data-line-number="243" style="position:relative"> <span class="pl-c">// resize the image</span></div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC244" class="react-file-line html-div" data-testid="code-cell" data-line-number="244" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>write_image</span> = <span class="pl-s1"><span class="pl-c1">$</span><span class="pl-smi">this</span></span>-><span class="pl-en">resize_image</span>(<span class="pl-s1"><span class="pl-c1">$</span>image</span>, <span class="pl-s1"><span class="pl-c1">$</span>image_max_width</span>, <span class="pl-s1"><span class="pl-c1">$</span>image_max_height</span>);</div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC245" class="react-file-line html-div" data-testid="code-cell" data-line-number="245" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC246" class="react-file-line html-div" data-testid="code-cell" data-line-number="246" style="position:relative"> <span class="pl-c">// set image format</span></div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC247" class="react-file-line html-div" data-testid="code-cell" data-line-number="247" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>image_format</span> = <span class="pl-s1"><span class="pl-c1">$</span><span class="pl-smi">this</span></span>-><span class="pl-en">set_image_format</span>(<span class="pl-s1"><span class="pl-c1">$</span>image</span>, <span class="pl-s1"><span class="pl-c1">$</span>event</span>[<span class="pl-s">'<span class="pl-s">filedata</span>'</span>][<span class="pl-s">'<span class="pl-s">mimetype</span>'</span>]);</div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC248" class="react-file-line html-div" data-testid="code-cell" data-line-number="248" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC249" class="react-file-line html-div" data-testid="code-cell" data-line-number="249" style="position:relative"> <span class="pl-c">// when not resize don`t changed image quality when it less then quality set in ACP</span></div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC250" class="react-file-line html-div" data-testid="code-cell" data-line-number="250" style="position:relative"> <span class="pl-k">if</span> ((<span class="pl-s1"><span class="pl-c1">$</span>image_format</span> == <span class="pl-s">'<span class="pl-s">JPEG</span>'</span> || <span class="pl-s1"><span class="pl-c1">$</span>image_format</span> == <span class="pl-s">'<span class="pl-s">WEBP</span>'</span>) && (<span class="pl-s1"><span class="pl-c1">$</span>write_image</span> || <span class="pl-s1"><span class="pl-c1">$</span>image_quality</span> < <span class="pl-s1"><span class="pl-c1">$</span>image</span>-><span class="pl-en">getImageCompressionQuality</span>()))</div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC251" class="react-file-line html-div" data-testid="code-cell" data-line-number="251" style="position:relative"> {</div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC252" class="react-file-line html-div" data-testid="code-cell" data-line-number="252" style="position:relative"> <span class="pl-c">// set compression quality is read from config</span></div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC253" class="react-file-line html-div" data-testid="code-cell" data-line-number="253" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span><span class="pl-smi">this</span></span>-><span class="pl-en">set_image_compression</span>(<span class="pl-s1"><span class="pl-c1">$</span>image</span>, <span class="pl-s1"><span class="pl-c1">$</span>image_quality</span>);</div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC254" class="react-file-line html-div" data-testid="code-cell" data-line-number="254" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC255" class="react-file-line html-div" data-testid="code-cell" data-line-number="255" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>write_image</span> = <span class="pl-c1">true</span>;</div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC256" class="react-file-line html-div" data-testid="code-cell" data-line-number="256" style="position:relative"> }</div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC257" class="react-file-line html-div" data-testid="code-cell" data-line-number="257" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC258" class="react-file-line html-div" data-testid="code-cell" data-line-number="258" style="position:relative"> <span class="pl-k">if</span> (<span class="pl-s1"><span class="pl-c1">$</span>image_format</span> == <span class="pl-s">'<span class="pl-s">PNG</span>'</span>)</div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC259" class="react-file-line html-div" data-testid="code-cell" data-line-number="259" style="position:relative"> {</div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC260" class="react-file-line html-div" data-testid="code-cell" data-line-number="260" style="position:relative"> <span class="pl-c">// set compression quality, second parameter isn't importent for PNG</span></div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC261" class="react-file-line html-div" data-testid="code-cell" data-line-number="261" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span><span class="pl-smi">this</span></span>-><span class="pl-en">set_image_compression</span>(<span class="pl-s1"><span class="pl-c1">$</span>image</span>);</div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC262" class="react-file-line html-div" data-testid="code-cell" data-line-number="262" style="position:relative"> }</div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC263" class="react-file-line html-div" data-testid="code-cell" data-line-number="263" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC264" class="react-file-line html-div" data-testid="code-cell" data-line-number="264" style="position:relative"> <span class="pl-c">// strip EXIF data and image profile</span></div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC265" class="react-file-line html-div" data-testid="code-cell" data-line-number="265" style="position:relative"> <span class="pl-k">if</span> (<span class="pl-s1"><span class="pl-c1">$</span>image_del_exif</span> && (<span class="pl-s1"><span class="pl-c1">$</span>image_format</span> == <span class="pl-s">'<span class="pl-s">JPEG</span>'</span> || <span class="pl-s1"><span class="pl-c1">$</span>image_format</span> == <span class="pl-s">'<span class="pl-s">WEBP</span>'</span>))</div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC266" class="react-file-line html-div" data-testid="code-cell" data-line-number="266" style="position:relative"> {</div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC267" class="react-file-line html-div" data-testid="code-cell" data-line-number="267" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>image</span>-><span class="pl-en">stripImage</span>();</div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC268" class="react-file-line html-div" data-testid="code-cell" data-line-number="268" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC269" class="react-file-line html-div" data-testid="code-cell" data-line-number="269" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>write_image</span> = <span class="pl-c1">true</span>;</div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC270" class="react-file-line html-div" data-testid="code-cell" data-line-number="270" style="position:relative"> }</div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC271" class="react-file-line html-div" data-testid="code-cell" data-line-number="271" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC272" class="react-file-line html-div" data-testid="code-cell" data-line-number="272" style="position:relative"> <span class="pl-c">// shrink file size wenn greater then set in ACP</span></div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC273" class="react-file-line html-div" data-testid="code-cell" data-line-number="273" style="position:relative"> <span class="pl-k">if</span> (<span class="pl-s1"><span class="pl-c1">$</span>image_max_filesize</span> && <span class="pl-s1"><span class="pl-c1">$</span>filesize</span> > <span class="pl-s1"><span class="pl-c1">$</span>image_max_filesize</span>)</div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC274" class="react-file-line html-div" data-testid="code-cell" data-line-number="274" style="position:relative"> {</div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC275" class="react-file-line html-div" data-testid="code-cell" data-line-number="275" style="position:relative"> <span class="pl-c">// set compression quality is read from config</span></div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC276" class="react-file-line html-div" data-testid="code-cell" data-line-number="276" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span><span class="pl-smi">this</span></span>-><span class="pl-en">set_image_compression</span>(<span class="pl-s1"><span class="pl-c1">$</span>image</span>, <span class="pl-s1"><span class="pl-c1">$</span>image_quality</span>);</div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC277" class="react-file-line html-div" data-testid="code-cell" data-line-number="277" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC278" class="react-file-line html-div" data-testid="code-cell" data-line-number="278" style="position:relative"> <span class="pl-c">// set the max file size for the image</span></div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC279" class="react-file-line html-div" data-testid="code-cell" data-line-number="279" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>filesize</span> = <span class="pl-s1"><span class="pl-c1">$</span><span class="pl-smi">this</span></span>-><span class="pl-en">image_auto_length</span>(<span class="pl-s1"><span class="pl-c1">$</span>image</span>, <span class="pl-s1"><span class="pl-c1">$</span>image_max_filesize</span>);</div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC280" class="react-file-line html-div" data-testid="code-cell" data-line-number="280" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC281" class="react-file-line html-div" data-testid="code-cell" data-line-number="281" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>write_image</span> = <span class="pl-c1">true</span>;</div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC282" class="react-file-line html-div" data-testid="code-cell" data-line-number="282" style="position:relative"> }</div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC283" class="react-file-line html-div" data-testid="code-cell" data-line-number="283" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC284" class="react-file-line html-div" data-testid="code-cell" data-line-number="284" style="position:relative"> <span class="pl-c">// store the image when attribute change</span></div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC285" class="react-file-line html-div" data-testid="code-cell" data-line-number="285" style="position:relative"> <span class="pl-k">if</span> (<span class="pl-s1"><span class="pl-c1">$</span>write_image</span> || <span class="pl-s1"><span class="pl-c1">$</span>img</span>[<span class="pl-s">'<span class="pl-s">changed</span>'</span>])</div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC286" class="react-file-line html-div" data-testid="code-cell" data-line-number="286" style="position:relative"> {</div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC287" class="react-file-line html-div" data-testid="code-cell" data-line-number="287" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>write</span> = <span class="pl-s1"><span class="pl-c1">$</span>image</span>-><span class="pl-en">writeImage</span>(<span class="pl-s1"><span class="pl-c1">$</span>file_path</span>);</div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC288" class="react-file-line html-div" data-testid="code-cell" data-line-number="288" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC289" class="react-file-line html-div" data-testid="code-cell" data-line-number="289" style="position:relative"> <span class="pl-c">// if image store set new filedata</span></div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC290" class="react-file-line html-div" data-testid="code-cell" data-line-number="290" style="position:relative"> <span class="pl-k">if</span> (<span class="pl-s1"><span class="pl-c1">$</span>write</span>)</div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC291" class="react-file-line html-div" data-testid="code-cell" data-line-number="291" style="position:relative"> {</div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC292" class="react-file-line html-div" data-testid="code-cell" data-line-number="292" style="position:relative"> <span class="pl-c">// set return value new file size and filedata</span></div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC293" class="react-file-line html-div" data-testid="code-cell" data-line-number="293" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>filedata_array</span> = <span class="pl-s1"><span class="pl-c1">$</span>event</span>[<span class="pl-s">'<span class="pl-s">filedata</span>'</span>];</div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC294" class="react-file-line html-div" data-testid="code-cell" data-line-number="294" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC295" class="react-file-line html-div" data-testid="code-cell" data-line-number="295" style="position:relative"> <span class="pl-c">// set new file size</span></div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC296" class="react-file-line html-div" data-testid="code-cell" data-line-number="296" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>filedata_array</span>[<span class="pl-s">'<span class="pl-s">filesize</span>'</span>] = <span class="pl-s1"><span class="pl-c1">$</span>filesize</span> ? <span class="pl-s1"><span class="pl-c1">$</span>filesize</span> : <span class="pl-s1"><span class="pl-c1">$</span>image</span>-><span class="pl-en">getImageBlob</span>();</div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC297" class="react-file-line html-div" data-testid="code-cell" data-line-number="297" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC298" class="react-file-line html-div" data-testid="code-cell" data-line-number="298" style="position:relative"> <span class="pl-c">// if image format change to JPEG set filedata to JPEG</span></div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC299" class="react-file-line html-div" data-testid="code-cell" data-line-number="299" style="position:relative"> <span class="pl-k">if</span> (<span class="pl-s1"><span class="pl-c1">$</span>image_format</span> == <span class="pl-s">'<span class="pl-s">JPEG</span>'</span> && <span class="pl-s1"><span class="pl-c1">$</span>event</span>[<span class="pl-s">'<span class="pl-s">filedata</span>'</span>][<span class="pl-s">'<span class="pl-s">mimetype</span>'</span>] != <span class="pl-s">'<span class="pl-s">image/jpeg</span>'</span>)</div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC300" class="react-file-line html-div" data-testid="code-cell" data-line-number="300" style="position:relative"> {</div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC301" class="react-file-line html-div" data-testid="code-cell" data-line-number="301" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>filedata_array</span>[<span class="pl-s">'<span class="pl-s">mimetype</span>'</span>] = <span class="pl-s">'<span class="pl-s">image/jpeg</span>'</span>;</div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC302" class="react-file-line html-div" data-testid="code-cell" data-line-number="302" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>filedata_array</span>[<span class="pl-s">'<span class="pl-s">extension</span>'</span>] = <span class="pl-s">'<span class="pl-s">jpg</span>'</span>;</div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC303" class="react-file-line html-div" data-testid="code-cell" data-line-number="303" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>filedata_array</span>[<span class="pl-s">'<span class="pl-s">real_filename</span>'</span>] .= <span class="pl-s">'<span class="pl-s">.jpg</span>'</span>;</div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC304" class="react-file-line html-div" data-testid="code-cell" data-line-number="304" style="position:relative"> }</div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC305" class="react-file-line html-div" data-testid="code-cell" data-line-number="305" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC306" class="react-file-line html-div" data-testid="code-cell" data-line-number="306" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>event</span>[<span class="pl-s">'<span class="pl-s">filedata</span>'</span>] = <span class="pl-s1"><span class="pl-c1">$</span>filedata_array</span>;</div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC307" class="react-file-line html-div" data-testid="code-cell" data-line-number="307" style="position:relative"> }</div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC308" class="react-file-line html-div" data-testid="code-cell" data-line-number="308" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC309" class="react-file-line html-div" data-testid="code-cell" data-line-number="309" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>image</span>-><span class="pl-en">clear</span>();</div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC310" class="react-file-line html-div" data-testid="code-cell" data-line-number="310" style="position:relative"> }</div></div></div><div class="child-of-line-18 child-of-line-203 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC311" class="react-file-line html-div" data-testid="code-cell" data-line-number="311" style="position:relative"> }</div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC312" class="react-file-line html-div" data-testid="code-cell" data-line-number="312" style="position:relative"> }</div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC313" class="react-file-line html-div" data-testid="code-cell" data-line-number="313" style="position:relative"> </div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC314" class="react-file-line html-div" data-testid="code-cell" data-line-number="314" style="position:relative"> <span class="pl-c">/**</span></div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC315" class="react-file-line html-div" data-testid="code-cell" data-line-number="315" style="position:relative"><span class="pl-c"> * Modify upload avatar image using IMagick</span></div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC316" class="react-file-line html-div" data-testid="code-cell" data-line-number="316" style="position:relative"><span class="pl-c"> *</span></div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC317" class="react-file-line html-div" data-testid="code-cell" data-line-number="317" style="position:relative"><span class="pl-c"> * @param \phpbb\event\data $event Event object</span></div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC318" class="react-file-line html-div" data-testid="code-cell" data-line-number="318" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC319" class="react-file-line html-div" data-testid="code-cell" data-line-number="319" style="position:relative"> <span class="pl-k">public</span> <span class="pl-k">function</span> <span class="pl-en">imcger_modify_uploaded_avatar</span>(<span class="pl-s1"><span class="pl-c1">$</span>event</span>)</div></div></div><div class="child-of-line-18 child-of-line-318 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC320" class="react-file-line html-div" data-testid="code-cell" data-line-number="320" style="position:relative"> {</div></div></div><div class="child-of-line-18 child-of-line-318 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC321" class="react-file-line html-div" data-testid="code-cell" data-line-number="321" style="position:relative"> <span class="pl-k">if</span> (<span class="pl-s1"><span class="pl-c1">$</span><span class="pl-smi">this</span></span>-><span class="pl-c1">config</span>[<span class="pl-s">'<span class="pl-s">imcger_imgupload_avatar_resize</span>'</span>])</div></div></div><div class="child-of-line-18 child-of-line-318 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC322" class="react-file-line html-div" data-testid="code-cell" data-line-number="322" style="position:relative"> {</div></div></div><div class="child-of-line-18 child-of-line-318 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC323" class="react-file-line html-div" data-testid="code-cell" data-line-number="323" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>avatar_max_width</span> = <span class="pl-s1"><span class="pl-c1">$</span><span class="pl-smi">this</span></span>-><span class="pl-c1">config</span>[<span class="pl-s">'<span class="pl-s">avatar_max_width</span>'</span>];</div></div></div><div class="child-of-line-18 child-of-line-318 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC324" class="react-file-line html-div" data-testid="code-cell" data-line-number="324" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>avatar_max_height</span> = <span class="pl-s1"><span class="pl-c1">$</span><span class="pl-smi">this</span></span>-><span class="pl-c1">config</span>[<span class="pl-s">'<span class="pl-s">avatar_max_height</span>'</span>];</div></div></div><div class="child-of-line-18 child-of-line-318 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC325" class="react-file-line html-div" data-testid="code-cell" data-line-number="325" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>avatar_file</span> = <span class="pl-s1"><span class="pl-c1">$</span>event</span>[<span class="pl-s">'<span class="pl-s">filedata</span>'</span>][<span class="pl-s">'<span class="pl-s">filename</span>'</span>];</div></div></div><div class="child-of-line-18 child-of-line-318 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC326" class="react-file-line html-div" data-testid="code-cell" data-line-number="326" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-318 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC327" class="react-file-line html-div" data-testid="code-cell" data-line-number="327" style="position:relative"> <span class="pl-c">// Get image dimension</span></div></div></div><div class="child-of-line-18 child-of-line-318 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC328" class="react-file-line html-div" data-testid="code-cell" data-line-number="328" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>size</span> = <span class="pl-s1"><span class="pl-c1">$</span><span class="pl-smi">this</span></span>-><span class="pl-c1">imagesize</span>-><span class="pl-en">getImageSize</span>(<span class="pl-s1"><span class="pl-c1">$</span>avatar_file</span>);</div></div></div><div class="child-of-line-18 child-of-line-318 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC329" class="react-file-line html-div" data-testid="code-cell" data-line-number="329" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-318 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC330" class="react-file-line html-div" data-testid="code-cell" data-line-number="330" style="position:relative"> <span class="pl-k">if</span> (<span class="pl-s1"><span class="pl-c1">$</span>size</span> === <span class="pl-c1">false</span>)</div></div></div><div class="child-of-line-18 child-of-line-318 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC331" class="react-file-line html-div" data-testid="code-cell" data-line-number="331" style="position:relative"> {</div></div></div><div class="child-of-line-18 child-of-line-318 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC332" class="react-file-line html-div" data-testid="code-cell" data-line-number="332" style="position:relative"> <span class="pl-k">return</span> <span class="pl-c1">false</span>;</div></div></div><div class="child-of-line-18 child-of-line-318 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC333" class="react-file-line html-div" data-testid="code-cell" data-line-number="333" style="position:relative"> }</div></div></div><div class="child-of-line-18 child-of-line-318 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC334" class="react-file-line html-div" data-testid="code-cell" data-line-number="334" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-318 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC335" class="react-file-line html-div" data-testid="code-cell" data-line-number="335" style="position:relative"> <span class="pl-c">// when avatar image file to great modify it</span></div></div></div><div class="child-of-line-18 child-of-line-318 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC336" class="react-file-line html-div" data-testid="code-cell" data-line-number="336" style="position:relative"> <span class="pl-k">if</span> (<span class="pl-s1"><span class="pl-c1">$</span>size</span>[<span class="pl-s">'<span class="pl-s">width</span>'</span>] > <span class="pl-s1"><span class="pl-c1">$</span>avatar_max_width</span> || <span class="pl-s1"><span class="pl-c1">$</span>size</span>[<span class="pl-s">'<span class="pl-s">height</span>'</span>] > <span class="pl-s1"><span class="pl-c1">$</span>avatar_max_height</span>)</div></div></div><div class="child-of-line-18 child-of-line-318 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC337" class="react-file-line html-div" data-testid="code-cell" data-line-number="337" style="position:relative"> {</div></div></div><div class="child-of-line-18 child-of-line-318 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC338" class="react-file-line html-div" data-testid="code-cell" data-line-number="338" style="position:relative"> <span class="pl-c">// create a new instance of ImageMagick and load current image</span></div></div></div><div class="child-of-line-18 child-of-line-318 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC339" class="react-file-line html-div" data-testid="code-cell" data-line-number="339" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>avatar</span> = <span class="pl-k">new</span> \<span class="pl-v">Imagick</span>(<span class="pl-s1"><span class="pl-c1">$</span>avatar_file</span>);</div></div></div><div class="child-of-line-18 child-of-line-318 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC340" class="react-file-line html-div" data-testid="code-cell" data-line-number="340" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-318 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC341" class="react-file-line html-div" data-testid="code-cell" data-line-number="341" style="position:relative"> <span class="pl-c">// rotate the image according it's orientation flag</span></div></div></div><div class="child-of-line-18 child-of-line-318 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC342" class="react-file-line html-div" data-testid="code-cell" data-line-number="342" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span><span class="pl-smi">this</span></span>-><span class="pl-en">image_auto_rotate</span>(<span class="pl-s1"><span class="pl-c1">$</span>avatar</span>);</div></div></div><div class="child-of-line-18 child-of-line-318 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC343" class="react-file-line html-div" data-testid="code-cell" data-line-number="343" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-318 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC344" class="react-file-line html-div" data-testid="code-cell" data-line-number="344" style="position:relative"> <span class="pl-c">// resize the image</span></div></div></div><div class="child-of-line-18 child-of-line-318 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC345" class="react-file-line html-div" data-testid="code-cell" data-line-number="345" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span><span class="pl-smi">this</span></span>-><span class="pl-en">resize_image</span>(<span class="pl-s1"><span class="pl-c1">$</span>avatar</span>, <span class="pl-s1"><span class="pl-c1">$</span>avatar_max_width</span>, <span class="pl-s1"><span class="pl-c1">$</span>avatar_max_height</span>);</div></div></div><div class="child-of-line-18 child-of-line-318 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC346" class="react-file-line html-div" data-testid="code-cell" data-line-number="346" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-318 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC347" class="react-file-line html-div" data-testid="code-cell" data-line-number="347" style="position:relative"> <span class="pl-c">// set compression quality is read from config</span></div></div></div><div class="child-of-line-18 child-of-line-318 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC348" class="react-file-line html-div" data-testid="code-cell" data-line-number="348" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span><span class="pl-smi">this</span></span>-><span class="pl-en">set_image_compression</span>(<span class="pl-s1"><span class="pl-c1">$</span>avatar</span>);</div></div></div><div class="child-of-line-18 child-of-line-318 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC349" class="react-file-line html-div" data-testid="code-cell" data-line-number="349" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-318 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC350" class="react-file-line html-div" data-testid="code-cell" data-line-number="350" style="position:relative"> <span class="pl-c">// set image format</span></div></div></div><div class="child-of-line-18 child-of-line-318 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC351" class="react-file-line html-div" data-testid="code-cell" data-line-number="351" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>image_format</span> = <span class="pl-s1"><span class="pl-c1">$</span><span class="pl-smi">this</span></span>-><span class="pl-en">set_image_format</span>(<span class="pl-s1"><span class="pl-c1">$</span>avatar</span>, <span class="pl-s1"><span class="pl-c1">$</span>event</span>[<span class="pl-s">'<span class="pl-s">filedata</span>'</span>][<span class="pl-s">'<span class="pl-s">mimetype</span>'</span>]);</div></div></div><div class="child-of-line-18 child-of-line-318 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC352" class="react-file-line html-div" data-testid="code-cell" data-line-number="352" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-318 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC353" class="react-file-line html-div" data-testid="code-cell" data-line-number="353" style="position:relative"> <span class="pl-c">// strip EXIF data and image profile</span></div></div></div><div class="child-of-line-18 child-of-line-318 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC354" class="react-file-line html-div" data-testid="code-cell" data-line-number="354" style="position:relative"> <span class="pl-k">if</span> (<span class="pl-s1"><span class="pl-c1">$</span>image_format</span> == <span class="pl-s">'<span class="pl-s">JPEG</span>'</span> || <span class="pl-s1"><span class="pl-c1">$</span>image_format</span> == <span class="pl-s">'<span class="pl-s">WEBP</span>'</span>)</div></div></div><div class="child-of-line-18 child-of-line-318 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC355" class="react-file-line html-div" data-testid="code-cell" data-line-number="355" style="position:relative"> {</div></div></div><div class="child-of-line-18 child-of-line-318 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC356" class="react-file-line html-div" data-testid="code-cell" data-line-number="356" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>avatar</span>-><span class="pl-en">stripImage</span>();</div></div></div><div class="child-of-line-18 child-of-line-318 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC357" class="react-file-line html-div" data-testid="code-cell" data-line-number="357" style="position:relative"> }</div></div></div><div class="child-of-line-18 child-of-line-318 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC358" class="react-file-line html-div" data-testid="code-cell" data-line-number="358" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-318 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC359" class="react-file-line html-div" data-testid="code-cell" data-line-number="359" style="position:relative"> <span class="pl-c">// store the avatar</span></div></div></div><div class="child-of-line-18 child-of-line-318 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC360" class="react-file-line html-div" data-testid="code-cell" data-line-number="360" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>write</span> = <span class="pl-s1"><span class="pl-c1">$</span>avatar</span>-><span class="pl-en">writeImage</span>(<span class="pl-s1"><span class="pl-c1">$</span>avatar_file</span>);</div></div></div><div class="child-of-line-18 child-of-line-318 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC361" class="react-file-line html-div" data-testid="code-cell" data-line-number="361" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-318 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC362" class="react-file-line html-div" data-testid="code-cell" data-line-number="362" style="position:relative"> <span class="pl-k">if</span> (<span class="pl-s1"><span class="pl-c1">$</span>write</span> === <span class="pl-c1">false</span>)</div></div></div><div class="child-of-line-18 child-of-line-318 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC363" class="react-file-line html-div" data-testid="code-cell" data-line-number="363" style="position:relative"> {</div></div></div><div class="child-of-line-18 child-of-line-318 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC364" class="react-file-line html-div" data-testid="code-cell" data-line-number="364" style="position:relative"> <span class="pl-k">return</span> <span class="pl-c1">false</span>;</div></div></div><div class="child-of-line-18 child-of-line-318 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC365" class="react-file-line html-div" data-testid="code-cell" data-line-number="365" style="position:relative"> }</div></div></div><div class="child-of-line-18 child-of-line-318 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC366" class="react-file-line html-div" data-testid="code-cell" data-line-number="366" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-318 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC367" class="react-file-line html-div" data-testid="code-cell" data-line-number="367" style="position:relative"> <span class="pl-c">// set return value new file size</span></div></div></div><div class="child-of-line-18 child-of-line-318 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC368" class="react-file-line html-div" data-testid="code-cell" data-line-number="368" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>filedata_array</span> = <span class="pl-s1"><span class="pl-c1">$</span>event</span>[<span class="pl-s">'<span class="pl-s">filedata</span>'</span>];</div></div></div><div class="child-of-line-18 child-of-line-318 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC369" class="react-file-line html-div" data-testid="code-cell" data-line-number="369" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>filedata_array</span>[<span class="pl-s">'<span class="pl-s">filesize</span>'</span>] = <span class="pl-s1"><span class="pl-c1">$</span>avatar</span>-><span class="pl-en">getImageBlob</span>();</div></div></div><div class="child-of-line-18 child-of-line-318 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC370" class="react-file-line html-div" data-testid="code-cell" data-line-number="370" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>event</span>[<span class="pl-s">'<span class="pl-s">filedata</span>'</span>] = <span class="pl-s1"><span class="pl-c1">$</span>filedata_array</span>;</div></div></div><div class="child-of-line-18 child-of-line-318 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC371" class="react-file-line html-div" data-testid="code-cell" data-line-number="371" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-318 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC372" class="react-file-line html-div" data-testid="code-cell" data-line-number="372" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>avatar</span>-><span class="pl-en">clear</span>();</div></div></div><div class="child-of-line-18 child-of-line-318 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC373" class="react-file-line html-div" data-testid="code-cell" data-line-number="373" style="position:relative"> }</div></div></div><div class="child-of-line-18 child-of-line-318 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC374" class="react-file-line html-div" data-testid="code-cell" data-line-number="374" style="position:relative"> }</div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC375" class="react-file-line html-div" data-testid="code-cell" data-line-number="375" style="position:relative"> }</div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC376" class="react-file-line html-div" data-testid="code-cell" data-line-number="376" style="position:relative"> </div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC377" class="react-file-line html-div" data-testid="code-cell" data-line-number="377" style="position:relative"> <span class="pl-c">/**</span></div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC378" class="react-file-line html-div" data-testid="code-cell" data-line-number="378" style="position:relative"><span class="pl-c"> * Modify post data</span></div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC379" class="react-file-line html-div" data-testid="code-cell" data-line-number="379" style="position:relative"><span class="pl-c"> * Don't display attachments when shown as image in post message</span></div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC380" class="react-file-line html-div" data-testid="code-cell" data-line-number="380" style="position:relative"><span class="pl-c"> *</span></div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC381" class="react-file-line html-div" data-testid="code-cell" data-line-number="381" style="position:relative"><span class="pl-c"> * @param \phpbb\event\data $event Event object</span></div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC382" class="react-file-line html-div" data-testid="code-cell" data-line-number="382" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC383" class="react-file-line html-div" data-testid="code-cell" data-line-number="383" style="position:relative"> <span class="pl-k">public</span> <span class="pl-k">function</span> <span class="pl-en">imcger_viewtopic_modify_post_row</span>(<span class="pl-s1"><span class="pl-c1">$</span>event</span>)</div></div></div><div class="child-of-line-18 child-of-line-382 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC384" class="react-file-line html-div" data-testid="code-cell" data-line-number="384" style="position:relative"> {</div></div></div><div class="child-of-line-18 child-of-line-382 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC385" class="react-file-line html-div" data-testid="code-cell" data-line-number="385" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>row</span> = <span class="pl-s1"><span class="pl-c1">$</span>event</span>[<span class="pl-s">'<span class="pl-s">row</span>'</span>];</div></div></div><div class="child-of-line-18 child-of-line-382 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC386" class="react-file-line html-div" data-testid="code-cell" data-line-number="386" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>post_attachments</span> = <span class="pl-s1"><span class="pl-c1">$</span>event</span>[<span class="pl-s">'<span class="pl-s">attachments</span>'</span>];</div></div></div><div class="child-of-line-18 child-of-line-382 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC387" class="react-file-line html-div" data-testid="code-cell" data-line-number="387" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-382 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC388" class="react-file-line html-div" data-testid="code-cell" data-line-number="388" style="position:relative"> <span class="pl-c">// Do nothing when no attachment</span></div></div></div><div class="child-of-line-18 child-of-line-382 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC389" class="react-file-line html-div" data-testid="code-cell" data-line-number="389" style="position:relative"> <span class="pl-k">if</span> (<span class="pl-en">empty</span>(<span class="pl-s1"><span class="pl-c1">$</span>post_attachments</span>[<span class="pl-s1"><span class="pl-c1">$</span>row</span>[<span class="pl-s">'<span class="pl-s">post_id</span>'</span>]]))</div></div></div><div class="child-of-line-18 child-of-line-382 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC390" class="react-file-line html-div" data-testid="code-cell" data-line-number="390" style="position:relative"> {</div></div></div><div class="child-of-line-18 child-of-line-382 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC391" class="react-file-line html-div" data-testid="code-cell" data-line-number="391" style="position:relative"> <span class="pl-k">return</span>;</div></div></div><div class="child-of-line-18 child-of-line-382 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC392" class="react-file-line html-div" data-testid="code-cell" data-line-number="392" style="position:relative"> }</div></div></div><div class="child-of-line-18 child-of-line-382 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC393" class="react-file-line html-div" data-testid="code-cell" data-line-number="393" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-382 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC394" class="react-file-line html-div" data-testid="code-cell" data-line-number="394" style="position:relative"> <span class="pl-c">// Create array with image id that insert in post message</span></div></div></div><div class="child-of-line-18 child-of-line-382 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC395" class="react-file-line html-div" data-testid="code-cell" data-line-number="395" style="position:relative"> <span class="pl-en">preg_match_all</span>(<span class="pl-s">'<span class="pl-s">#\[img\][\w\<\>\/\.?=&;]*[^\[](id=\d+)\<e\>\[\/img\]#</span>'</span>, <span class="pl-s1"><span class="pl-c1">$</span>row</span>[<span class="pl-s">'<span class="pl-s">post_text</span>'</span>], <span class="pl-s1"><span class="pl-c1">$</span>matches</span>);</div></div></div><div class="child-of-line-18 child-of-line-382 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC396" class="react-file-line html-div" data-testid="code-cell" data-line-number="396" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-382 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC397" class="react-file-line html-div" data-testid="code-cell" data-line-number="397" style="position:relative"> <span class="pl-c">// Find image in attachment, delete atachment</span></div></div></div><div class="child-of-line-18 child-of-line-382 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC398" class="react-file-line html-div" data-testid="code-cell" data-line-number="398" style="position:relative"> <span class="pl-k">foreach</span> (<span class="pl-s1"><span class="pl-c1">$</span>matches</span>[<span class="pl-c1">1</span>] <span class="pl-k">as</span> <span class="pl-s1"><span class="pl-c1">$</span>image</span>)</div></div></div><div class="child-of-line-18 child-of-line-382 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC399" class="react-file-line html-div" data-testid="code-cell" data-line-number="399" style="position:relative"> {</div></div></div><div class="child-of-line-18 child-of-line-382 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC400" class="react-file-line html-div" data-testid="code-cell" data-line-number="400" style="position:relative"> <span class="pl-k">foreach</span> (<span class="pl-s1"><span class="pl-c1">$</span>post_attachments</span>[<span class="pl-s1"><span class="pl-c1">$</span>row</span>[<span class="pl-s">'<span class="pl-s">post_id</span>'</span>]] <span class="pl-k">as</span> <span class="pl-s1"><span class="pl-c1">$</span>key</span> => <span class="pl-s1"><span class="pl-c1">$</span>attachment</span>)</div></div></div><div class="child-of-line-18 child-of-line-382 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC401" class="react-file-line html-div" data-testid="code-cell" data-line-number="401" style="position:relative"> {</div></div></div><div class="child-of-line-18 child-of-line-382 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC402" class="react-file-line html-div" data-testid="code-cell" data-line-number="402" style="position:relative"> <span class="pl-k">if</span> (<span class="pl-en">strpos</span>(<span class="pl-s1"><span class="pl-c1">$</span>attachment</span>, <span class="pl-s1"><span class="pl-c1">$</span>image</span>))</div></div></div><div class="child-of-line-18 child-of-line-382 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC403" class="react-file-line html-div" data-testid="code-cell" data-line-number="403" style="position:relative"> {</div></div></div><div class="child-of-line-18 child-of-line-382 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC404" class="react-file-line html-div" data-testid="code-cell" data-line-number="404" style="position:relative"> unset(<span class="pl-s1"><span class="pl-c1">$</span>post_attachments</span>[<span class="pl-s1"><span class="pl-c1">$</span>row</span>[<span class="pl-s">'<span class="pl-s">post_id</span>'</span>]][<span class="pl-s1"><span class="pl-c1">$</span>key</span>]);</div></div></div><div class="child-of-line-18 child-of-line-382 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC405" class="react-file-line html-div" data-testid="code-cell" data-line-number="405" style="position:relative"> }</div></div></div><div class="child-of-line-18 child-of-line-382 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC406" class="react-file-line html-div" data-testid="code-cell" data-line-number="406" style="position:relative"> }</div></div></div><div class="child-of-line-18 child-of-line-382 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC407" class="react-file-line html-div" data-testid="code-cell" data-line-number="407" style="position:relative"> }</div></div></div><div class="child-of-line-18 child-of-line-382 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC408" class="react-file-line html-div" data-testid="code-cell" data-line-number="408" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-382 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC409" class="react-file-line html-div" data-testid="code-cell" data-line-number="409" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>post_row</span> = <span class="pl-s1"><span class="pl-c1">$</span>event</span>[<span class="pl-s">'<span class="pl-s">post_row</span>'</span>];</div></div></div><div class="child-of-line-18 child-of-line-382 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC410" class="react-file-line html-div" data-testid="code-cell" data-line-number="410" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-382 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC411" class="react-file-line html-div" data-testid="code-cell" data-line-number="411" style="position:relative"> <span class="pl-c">// Set template vars</span></div></div></div><div class="child-of-line-18 child-of-line-382 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC412" class="react-file-line html-div" data-testid="code-cell" data-line-number="412" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>post_row</span>[<span class="pl-s">'<span class="pl-s">S_HAS_ATTACHMENTS</span>'</span>] = !<span class="pl-en">empty</span>(<span class="pl-s1"><span class="pl-c1">$</span>post_attachments</span>[<span class="pl-s1"><span class="pl-c1">$</span>row</span>[<span class="pl-s">'<span class="pl-s">post_id</span>'</span>]]) ? <span class="pl-c1">true</span> : <span class="pl-c1">false</span>;</div></div></div><div class="child-of-line-18 child-of-line-382 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC413" class="react-file-line html-div" data-testid="code-cell" data-line-number="413" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>post_row</span>[<span class="pl-s">'<span class="pl-s">S_MULTIPLE_ATTACHMENTS</span>'</span>] = !<span class="pl-en">empty</span>(<span class="pl-s1"><span class="pl-c1">$</span>post_attachments</span>[<span class="pl-s1"><span class="pl-c1">$</span>row</span>[<span class="pl-s">'<span class="pl-s">post_id</span>'</span>]]) && <span class="pl-en">count</span>(<span class="pl-s1"><span class="pl-c1">$</span>post_attachments</span>[<span class="pl-s1"><span class="pl-c1">$</span>row</span>[<span class="pl-s">'<span class="pl-s">post_id</span>'</span>]]) > <span class="pl-c1">1</span>;</div></div></div><div class="child-of-line-18 child-of-line-382 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC414" class="react-file-line html-div" data-testid="code-cell" data-line-number="414" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-382 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC415" class="react-file-line html-div" data-testid="code-cell" data-line-number="415" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>event</span>[<span class="pl-s">'<span class="pl-s">post_row</span>'</span>] = <span class="pl-s1"><span class="pl-c1">$</span>post_row</span>;</div></div></div><div class="child-of-line-18 child-of-line-382 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC416" class="react-file-line html-div" data-testid="code-cell" data-line-number="416" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>event</span>[<span class="pl-s">'<span class="pl-s">attachments</span>'</span>] = <span class="pl-s1"><span class="pl-c1">$</span>post_attachments</span>;</div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC417" class="react-file-line html-div" data-testid="code-cell" data-line-number="417" style="position:relative"> }</div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC418" class="react-file-line html-div" data-testid="code-cell" data-line-number="418" style="position:relative"> </div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC419" class="react-file-line html-div" data-testid="code-cell" data-line-number="419" style="position:relative"> <span class="pl-c">/**</span></div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC420" class="react-file-line html-div" data-testid="code-cell" data-line-number="420" style="position:relative"><span class="pl-c"> * Modify post data for post editor preview</span></div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC421" class="react-file-line html-div" data-testid="code-cell" data-line-number="421" style="position:relative"><span class="pl-c"> * Don't display attachments when shown as image in post message</span></div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC422" class="react-file-line html-div" data-testid="code-cell" data-line-number="422" style="position:relative"><span class="pl-c"> *</span></div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC423" class="react-file-line html-div" data-testid="code-cell" data-line-number="423" style="position:relative"><span class="pl-c"> * @param \phpbb\event\data $event Event object</span></div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC424" class="react-file-line html-div" data-testid="code-cell" data-line-number="424" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC425" class="react-file-line html-div" data-testid="code-cell" data-line-number="425" style="position:relative"> <span class="pl-k">public</span> <span class="pl-k">function</span> <span class="pl-en">imcger_posting_modify_template_vars</span>(<span class="pl-s1"><span class="pl-c1">$</span>event</span>)</div></div></div><div class="child-of-line-18 child-of-line-424 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC426" class="react-file-line html-div" data-testid="code-cell" data-line-number="426" style="position:relative"> {</div></div></div><div class="child-of-line-18 child-of-line-424 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC427" class="react-file-line html-div" data-testid="code-cell" data-line-number="427" style="position:relative"> <span class="pl-c">// Get message text and attachment data</span></div></div></div><div class="child-of-line-18 child-of-line-424 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC428" class="react-file-line html-div" data-testid="code-cell" data-line-number="428" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>message_parser</span> = <span class="pl-s1"><span class="pl-c1">$</span>event</span>[<span class="pl-s">'<span class="pl-s">message_parser</span>'</span>];</div></div></div><div class="child-of-line-18 child-of-line-424 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC429" class="react-file-line html-div" data-testid="code-cell" data-line-number="429" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>message</span> = <span class="pl-s1"><span class="pl-c1">$</span>message_parser</span>-><span class="pl-c1">message</span>;</div></div></div><div class="child-of-line-18 child-of-line-424 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC430" class="react-file-line html-div" data-testid="code-cell" data-line-number="430" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>attachment_data</span> = <span class="pl-s1"><span class="pl-c1">$</span>message_parser</span>-><span class="pl-c1">attachment_data</span>;</div></div></div><div class="child-of-line-18 child-of-line-424 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC431" class="react-file-line html-div" data-testid="code-cell" data-line-number="431" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-424 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC432" class="react-file-line html-div" data-testid="code-cell" data-line-number="432" style="position:relative"> <span class="pl-c">// Create array with attachment id that insert in post message</span></div></div></div><div class="child-of-line-18 child-of-line-424 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC433" class="react-file-line html-div" data-testid="code-cell" data-line-number="433" style="position:relative"> <span class="pl-en">preg_match_all</span>(<span class="pl-s">'<span class="pl-s">#\[img\][\w\<\>\/\.?=&;]*[^\[]id=(\d+)\[\/img\]#</span>'</span>, <span class="pl-s1"><span class="pl-c1">$</span>message</span>, <span class="pl-s1"><span class="pl-c1">$</span>matches</span>);</div></div></div><div class="child-of-line-18 child-of-line-424 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC434" class="react-file-line html-div" data-testid="code-cell" data-line-number="434" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>matches</span>[<span class="pl-c1">1</span>] = <span class="pl-en">array_unique</span>(<span class="pl-s1"><span class="pl-c1">$</span>matches</span>[<span class="pl-c1">1</span>]);</div></div></div><div class="child-of-line-18 child-of-line-424 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC435" class="react-file-line html-div" data-testid="code-cell" data-line-number="435" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-424 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC436" class="react-file-line html-div" data-testid="code-cell" data-line-number="436" style="position:relative"> <span class="pl-c">// Check if all attachments insert in post message</span></div></div></div><div class="child-of-line-18 child-of-line-424 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC437" class="react-file-line html-div" data-testid="code-cell" data-line-number="437" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>display_attachmentbox</span> = <span class="pl-c1">false</span>;</div></div></div><div class="child-of-line-18 child-of-line-424 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC438" class="react-file-line html-div" data-testid="code-cell" data-line-number="438" style="position:relative"> <span class="pl-k">foreach</span> (<span class="pl-s1"><span class="pl-c1">$</span>attachment_data</span> <span class="pl-k">as</span> <span class="pl-s1"><span class="pl-c1">$</span>attachment</span>)</div></div></div><div class="child-of-line-18 child-of-line-424 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC439" class="react-file-line html-div" data-testid="code-cell" data-line-number="439" style="position:relative"> {</div></div></div><div class="child-of-line-18 child-of-line-424 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC440" class="react-file-line html-div" data-testid="code-cell" data-line-number="440" style="position:relative"> <span class="pl-k">if</span> (!<span class="pl-en">in_array</span>(<span class="pl-s1"><span class="pl-c1">$</span>attachment</span>[<span class="pl-s">'<span class="pl-s">attach_id</span>'</span>], <span class="pl-s1"><span class="pl-c1">$</span>matches</span>[<span class="pl-c1">1</span>]))</div></div></div><div class="child-of-line-18 child-of-line-424 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC441" class="react-file-line html-div" data-testid="code-cell" data-line-number="441" style="position:relative"> {</div></div></div><div class="child-of-line-18 child-of-line-424 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC442" class="react-file-line html-div" data-testid="code-cell" data-line-number="442" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>display_attachmentbox</span> = <span class="pl-c1">true</span>;</div></div></div><div class="child-of-line-18 child-of-line-424 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC443" class="react-file-line html-div" data-testid="code-cell" data-line-number="443" style="position:relative"> <span class="pl-k">break</span>;</div></div></div><div class="child-of-line-18 child-of-line-424 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC444" class="react-file-line html-div" data-testid="code-cell" data-line-number="444" style="position:relative"> }</div></div></div><div class="child-of-line-18 child-of-line-424 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC445" class="react-file-line html-div" data-testid="code-cell" data-line-number="445" style="position:relative"> }</div></div></div><div class="child-of-line-18 child-of-line-424 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC446" class="react-file-line html-div" data-testid="code-cell" data-line-number="446" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-424 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC447" class="react-file-line html-div" data-testid="code-cell" data-line-number="447" style="position:relative"> <span class="pl-c">// Set variable for JS to hide attachment in post editors preview</span></div></div></div><div class="child-of-line-18 child-of-line-424 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC448" class="react-file-line html-div" data-testid="code-cell" data-line-number="448" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span><span class="pl-smi">this</span></span>-><span class="pl-c1">template</span>-><span class="pl-en">assign_vars</span>([</div></div></div><div class="child-of-line-18 child-of-line-424 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC449" class="react-file-line html-div" data-testid="code-cell" data-line-number="449" style="position:relative"> <span class="pl-s">'<span class="pl-s">IUL_NOT_DISPLAYED_ATTACHMENTS</span>'</span> => <span class="pl-en">json_encode</span>(<span class="pl-s1"><span class="pl-c1">$</span>matches</span>[<span class="pl-c1">1</span>]),</div></div></div><div class="child-of-line-18 child-of-line-424 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC450" class="react-file-line html-div" data-testid="code-cell" data-line-number="450" style="position:relative"> <span class="pl-s">'<span class="pl-s">IUL_NOT_DISPLAY_ATTACHMENTBOX</span>'</span> => (<span class="pl-smi">int</span>) !<span class="pl-s1"><span class="pl-c1">$</span>display_attachmentbox</span>,</div></div></div><div class="child-of-line-18 child-of-line-424 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC451" class="react-file-line html-div" data-testid="code-cell" data-line-number="451" style="position:relative"> ]);</div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC452" class="react-file-line html-div" data-testid="code-cell" data-line-number="452" style="position:relative"> }</div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC453" class="react-file-line html-div" data-testid="code-cell" data-line-number="453" style="position:relative"> </div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC454" class="react-file-line html-div" data-testid="code-cell" data-line-number="454" style="position:relative"> <span class="pl-c">/**</span></div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC455" class="react-file-line html-div" data-testid="code-cell" data-line-number="455" style="position:relative"><span class="pl-c"> * resize image if image to large</span></div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC456" class="react-file-line html-div" data-testid="code-cell" data-line-number="456" style="position:relative"><span class="pl-c"> *</span></div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC457" class="react-file-line html-div" data-testid="code-cell" data-line-number="457" style="position:relative"><span class="pl-c"> * @param object $image image object</span></div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC458" class="react-file-line html-div" data-testid="code-cell" data-line-number="458" style="position:relative"><span class="pl-c"> *</span></div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC459" class="react-file-line html-div" data-testid="code-cell" data-line-number="459" style="position:relative"><span class="pl-c"> * @return bool $img_resize images is resize</span></div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC460" class="react-file-line html-div" data-testid="code-cell" data-line-number="460" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC461" class="react-file-line html-div" data-testid="code-cell" data-line-number="461" style="position:relative"> <span class="pl-k">public</span> <span class="pl-k">function</span> <span class="pl-en">resize_image</span>(<span class="pl-s1"><span class="pl-c1">$</span>image</span>, <span class="pl-s1"><span class="pl-c1">$</span>max_width</span>, <span class="pl-s1"><span class="pl-c1">$</span>max_height</span>)</div></div></div><div class="child-of-line-18 child-of-line-460 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC462" class="react-file-line html-div" data-testid="code-cell" data-line-number="462" style="position:relative"> {</div></div></div><div class="child-of-line-18 child-of-line-460 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC463" class="react-file-line html-div" data-testid="code-cell" data-line-number="463" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>img_resize</span> = <span class="pl-c1">false</span>;</div></div></div><div class="child-of-line-18 child-of-line-460 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC464" class="react-file-line html-div" data-testid="code-cell" data-line-number="464" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-460 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC465" class="react-file-line html-div" data-testid="code-cell" data-line-number="465" style="position:relative"> <span class="pl-c">// get image dimensions</span></div></div></div><div class="child-of-line-18 child-of-line-460 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC466" class="react-file-line html-div" data-testid="code-cell" data-line-number="466" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>img_geo</span> = <span class="pl-s1"><span class="pl-c1">$</span>image</span>-><span class="pl-en">getImageGeometry</span>();</div></div></div><div class="child-of-line-18 child-of-line-460 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC467" class="react-file-line html-div" data-testid="code-cell" data-line-number="467" style="position:relative"> <span class="pl-en">list</span>(<span class="pl-s">'<span class="pl-s">width</span>'</span> => <span class="pl-s1"><span class="pl-c1">$</span>width</span>, <span class="pl-s">'<span class="pl-s">height</span>'</span> => <span class="pl-s1"><span class="pl-c1">$</span>height</span>, ) = <span class="pl-s1"><span class="pl-c1">$</span>img_geo</span>;</div></div></div><div class="child-of-line-18 child-of-line-460 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC468" class="react-file-line html-div" data-testid="code-cell" data-line-number="468" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-460 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC469" class="react-file-line html-div" data-testid="code-cell" data-line-number="469" style="position:relative"> <span class="pl-c">// image aspect ratio</span></div></div></div><div class="child-of-line-18 child-of-line-460 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC470" class="react-file-line html-div" data-testid="code-cell" data-line-number="470" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>side_ratio</span> = <span class="pl-s1"><span class="pl-c1">$</span>width</span> / <span class="pl-s1"><span class="pl-c1">$</span>height</span>;</div></div></div><div class="child-of-line-18 child-of-line-460 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC471" class="react-file-line html-div" data-testid="code-cell" data-line-number="471" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-460 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC472" class="react-file-line html-div" data-testid="code-cell" data-line-number="472" style="position:relative"> <span class="pl-c">// set new images width</span></div></div></div><div class="child-of-line-18 child-of-line-460 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC473" class="react-file-line html-div" data-testid="code-cell" data-line-number="473" style="position:relative"> <span class="pl-k">if</span> (<span class="pl-s1"><span class="pl-c1">$</span>max_width</span> && <span class="pl-s1"><span class="pl-c1">$</span>max_width</span> < <span class="pl-s1"><span class="pl-c1">$</span>width</span>)</div></div></div><div class="child-of-line-18 child-of-line-460 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC474" class="react-file-line html-div" data-testid="code-cell" data-line-number="474" style="position:relative"> {</div></div></div><div class="child-of-line-18 child-of-line-460 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC475" class="react-file-line html-div" data-testid="code-cell" data-line-number="475" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>width</span> = <span class="pl-s1"><span class="pl-c1">$</span>max_width</span>;</div></div></div><div class="child-of-line-18 child-of-line-460 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC476" class="react-file-line html-div" data-testid="code-cell" data-line-number="476" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>height</span> = <span class="pl-en">round</span>(<span class="pl-s1"><span class="pl-c1">$</span>width</span> / <span class="pl-s1"><span class="pl-c1">$</span>side_ratio</span>);</div></div></div><div class="child-of-line-18 child-of-line-460 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC477" class="react-file-line html-div" data-testid="code-cell" data-line-number="477" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-460 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC478" class="react-file-line html-div" data-testid="code-cell" data-line-number="478" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>img_resize</span> = <span class="pl-c1">true</span>;</div></div></div><div class="child-of-line-18 child-of-line-460 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC479" class="react-file-line html-div" data-testid="code-cell" data-line-number="479" style="position:relative"> }</div></div></div><div class="child-of-line-18 child-of-line-460 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC480" class="react-file-line html-div" data-testid="code-cell" data-line-number="480" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-460 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC481" class="react-file-line html-div" data-testid="code-cell" data-line-number="481" style="position:relative"> <span class="pl-c">// set new images height</span></div></div></div><div class="child-of-line-18 child-of-line-460 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC482" class="react-file-line html-div" data-testid="code-cell" data-line-number="482" style="position:relative"> <span class="pl-k">if</span> (<span class="pl-s1"><span class="pl-c1">$</span>max_height</span> && <span class="pl-s1"><span class="pl-c1">$</span>max_height</span> < <span class="pl-s1"><span class="pl-c1">$</span>height</span>)</div></div></div><div class="child-of-line-18 child-of-line-460 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC483" class="react-file-line html-div" data-testid="code-cell" data-line-number="483" style="position:relative"> {</div></div></div><div class="child-of-line-18 child-of-line-460 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC484" class="react-file-line html-div" data-testid="code-cell" data-line-number="484" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>height</span> = <span class="pl-s1"><span class="pl-c1">$</span>max_height</span>;</div></div></div><div class="child-of-line-18 child-of-line-460 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC485" class="react-file-line html-div" data-testid="code-cell" data-line-number="485" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>width</span> = <span class="pl-en">round</span>(<span class="pl-s1"><span class="pl-c1">$</span>height</span> * <span class="pl-s1"><span class="pl-c1">$</span>side_ratio</span>);</div></div></div><div class="child-of-line-18 child-of-line-460 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC486" class="react-file-line html-div" data-testid="code-cell" data-line-number="486" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-460 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC487" class="react-file-line html-div" data-testid="code-cell" data-line-number="487" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>img_resize</span> = <span class="pl-c1">true</span>;</div></div></div><div class="child-of-line-18 child-of-line-460 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC488" class="react-file-line html-div" data-testid="code-cell" data-line-number="488" style="position:relative"> }</div></div></div><div class="child-of-line-18 child-of-line-460 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC489" class="react-file-line html-div" data-testid="code-cell" data-line-number="489" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-460 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC490" class="react-file-line html-div" data-testid="code-cell" data-line-number="490" style="position:relative"> <span class="pl-c">// when changed dimensions resize the Image</span></div></div></div><div class="child-of-line-18 child-of-line-460 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC491" class="react-file-line html-div" data-testid="code-cell" data-line-number="491" style="position:relative"> <span class="pl-k">if</span> (<span class="pl-s1"><span class="pl-c1">$</span>img_resize</span>)</div></div></div><div class="child-of-line-18 child-of-line-460 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC492" class="react-file-line html-div" data-testid="code-cell" data-line-number="492" style="position:relative"> {</div></div></div><div class="child-of-line-18 child-of-line-460 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC493" class="react-file-line html-div" data-testid="code-cell" data-line-number="493" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>image</span>-><span class="pl-en">resizeImage</span>(<span class="pl-s1"><span class="pl-c1">$</span>width</span>, <span class="pl-s1"><span class="pl-c1">$</span>height</span>, \<span class="pl-v">Imagick</span>::<span class="pl-c1">FILTER_LANCZOS</span>, <span class="pl-c1">1</span>, <span class="pl-c1">false</span>);</div></div></div><div class="child-of-line-18 child-of-line-460 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC494" class="react-file-line html-div" data-testid="code-cell" data-line-number="494" style="position:relative"> }</div></div></div><div class="child-of-line-18 child-of-line-460 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC495" class="react-file-line html-div" data-testid="code-cell" data-line-number="495" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-460 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC496" class="react-file-line html-div" data-testid="code-cell" data-line-number="496" style="position:relative"> <span class="pl-k">return</span> <span class="pl-s1"><span class="pl-c1">$</span>img_resize</span>;</div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC497" class="react-file-line html-div" data-testid="code-cell" data-line-number="497" style="position:relative"> }</div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC498" class="react-file-line html-div" data-testid="code-cell" data-line-number="498" style="position:relative"> </div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC499" class="react-file-line html-div" data-testid="code-cell" data-line-number="499" style="position:relative"> <span class="pl-c">/**</span></div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC500" class="react-file-line html-div" data-testid="code-cell" data-line-number="500" style="position:relative"><span class="pl-c"> * set the image format for the generated image</span></div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC501" class="react-file-line html-div" data-testid="code-cell" data-line-number="501" style="position:relative"><span class="pl-c"> *</span></div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC502" class="react-file-line html-div" data-testid="code-cell" data-line-number="502" style="position:relative"><span class="pl-c"> * @param object $image image object</span></div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC503" class="react-file-line html-div" data-testid="code-cell" data-line-number="503" style="position:relative"><span class="pl-c"> * @param string $mimetype mimetype of the image in phpBB internal format</span></div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC504" class="react-file-line html-div" data-testid="code-cell" data-line-number="504" style="position:relative"><span class="pl-c"> *</span></div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC505" class="react-file-line html-div" data-testid="code-cell" data-line-number="505" style="position:relative"><span class="pl-c"> * @return string $imageformat images format</span></div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC506" class="react-file-line html-div" data-testid="code-cell" data-line-number="506" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC507" class="react-file-line html-div" data-testid="code-cell" data-line-number="507" style="position:relative"> <span class="pl-k">public</span> <span class="pl-k">function</span> <span class="pl-en">set_image_format</span>(<span class="pl-s1"><span class="pl-c1">$</span>image</span>, <span class="pl-s1"><span class="pl-c1">$</span>mimetype</span>)</div></div></div><div class="child-of-line-18 child-of-line-506 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC508" class="react-file-line html-div" data-testid="code-cell" data-line-number="508" style="position:relative"> {</div></div></div><div class="child-of-line-18 child-of-line-506 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC509" class="react-file-line html-div" data-testid="code-cell" data-line-number="509" style="position:relative"> <span class="pl-c">// Check the mimetype and set the appropriate type for the image</span></div></div></div><div class="child-of-line-18 child-of-line-506 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC510" class="react-file-line html-div" data-testid="code-cell" data-line-number="510" style="position:relative"> <span class="pl-k">switch</span> (<span class="pl-s1"><span class="pl-c1">$</span>mimetype</span>)</div></div></div><div class="child-of-line-18 child-of-line-506 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC511" class="react-file-line html-div" data-testid="code-cell" data-line-number="511" style="position:relative"> {</div></div></div><div class="child-of-line-18 child-of-line-506 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC512" class="react-file-line html-div" data-testid="code-cell" data-line-number="512" style="position:relative"> <span class="pl-k">case</span> <span class="pl-s">'<span class="pl-s">image/jpeg</span>'</span>:</div></div></div><div class="child-of-line-18 child-of-line-506 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC513" class="react-file-line html-div" data-testid="code-cell" data-line-number="513" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>imageformat</span> = <span class="pl-s">'<span class="pl-s">JPEG</span>'</span>;</div></div></div><div class="child-of-line-18 child-of-line-506 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC514" class="react-file-line html-div" data-testid="code-cell" data-line-number="514" style="position:relative"> <span class="pl-k">break</span>;</div></div></div><div class="child-of-line-18 child-of-line-506 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC515" class="react-file-line html-div" data-testid="code-cell" data-line-number="515" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-506 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC516" class="react-file-line html-div" data-testid="code-cell" data-line-number="516" style="position:relative"> <span class="pl-k">case</span> <span class="pl-s">'<span class="pl-s">image/png</span>'</span>:</div></div></div><div class="child-of-line-18 child-of-line-506 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC517" class="react-file-line html-div" data-testid="code-cell" data-line-number="517" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>imageformat</span> = <span class="pl-s">'<span class="pl-s">PNG</span>'</span>;</div></div></div><div class="child-of-line-18 child-of-line-506 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC518" class="react-file-line html-div" data-testid="code-cell" data-line-number="518" style="position:relative"> <span class="pl-k">break</span>;</div></div></div><div class="child-of-line-18 child-of-line-506 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC519" class="react-file-line html-div" data-testid="code-cell" data-line-number="519" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-506 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC520" class="react-file-line html-div" data-testid="code-cell" data-line-number="520" style="position:relative"> <span class="pl-k">case</span> <span class="pl-s">'<span class="pl-s">image/gif</span>'</span>:</div></div></div><div class="child-of-line-18 child-of-line-506 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC521" class="react-file-line html-div" data-testid="code-cell" data-line-number="521" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>imageformat</span> = <span class="pl-s">'<span class="pl-s">GIF</span>'</span>;</div></div></div><div class="child-of-line-18 child-of-line-506 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC522" class="react-file-line html-div" data-testid="code-cell" data-line-number="522" style="position:relative"> <span class="pl-k">break</span>;</div></div></div><div class="child-of-line-18 child-of-line-506 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC523" class="react-file-line html-div" data-testid="code-cell" data-line-number="523" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-506 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC524" class="react-file-line html-div" data-testid="code-cell" data-line-number="524" style="position:relative"> <span class="pl-k">case</span> <span class="pl-s">'<span class="pl-s">image/webp</span>'</span>:</div></div></div><div class="child-of-line-18 child-of-line-506 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC525" class="react-file-line html-div" data-testid="code-cell" data-line-number="525" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>imageformat</span> = <span class="pl-s">'<span class="pl-s">WEBP</span>'</span>;</div></div></div><div class="child-of-line-18 child-of-line-506 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC526" class="react-file-line html-div" data-testid="code-cell" data-line-number="526" style="position:relative"> <span class="pl-k">break</span>;</div></div></div><div class="child-of-line-18 child-of-line-506 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC527" class="react-file-line html-div" data-testid="code-cell" data-line-number="527" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-506 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC528" class="react-file-line html-div" data-testid="code-cell" data-line-number="528" style="position:relative"> <span class="pl-k">default</span>:</div></div></div><div class="child-of-line-18 child-of-line-506 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC529" class="react-file-line html-div" data-testid="code-cell" data-line-number="529" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>imageformat</span> = <span class="pl-s">'<span class="pl-s">JPEG</span>'</span>;</div></div></div><div class="child-of-line-18 child-of-line-506 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC530" class="react-file-line html-div" data-testid="code-cell" data-line-number="530" style="position:relative"> <span class="pl-k">break</span>;</div></div></div><div class="child-of-line-18 child-of-line-506 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC531" class="react-file-line html-div" data-testid="code-cell" data-line-number="531" style="position:relative"> }</div></div></div><div class="child-of-line-18 child-of-line-506 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC532" class="react-file-line html-div" data-testid="code-cell" data-line-number="532" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-506 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC533" class="react-file-line html-div" data-testid="code-cell" data-line-number="533" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>image</span>-><span class="pl-en">setImageFormat</span>(<span class="pl-s1"><span class="pl-c1">$</span>imageformat</span>);</div></div></div><div class="child-of-line-18 child-of-line-506 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC534" class="react-file-line html-div" data-testid="code-cell" data-line-number="534" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-506 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC535" class="react-file-line html-div" data-testid="code-cell" data-line-number="535" style="position:relative"> <span class="pl-k">return</span> <span class="pl-s1"><span class="pl-c1">$</span>imageformat</span>;</div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC536" class="react-file-line html-div" data-testid="code-cell" data-line-number="536" style="position:relative"> }</div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC537" class="react-file-line html-div" data-testid="code-cell" data-line-number="537" style="position:relative"> </div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC538" class="react-file-line html-div" data-testid="code-cell" data-line-number="538" style="position:relative"> <span class="pl-c">/**</span></div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC539" class="react-file-line html-div" data-testid="code-cell" data-line-number="539" style="position:relative"><span class="pl-c"> * set the compression value for the generated image</span></div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC540" class="react-file-line html-div" data-testid="code-cell" data-line-number="540" style="position:relative"><span class="pl-c"> *</span></div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC541" class="react-file-line html-div" data-testid="code-cell" data-line-number="541" style="position:relative"><span class="pl-c"> * @param object $image image object</span></div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC542" class="react-file-line html-div" data-testid="code-cell" data-line-number="542" style="position:relative"><span class="pl-c"> * @param integer $quality image quality value</span></div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC543" class="react-file-line html-div" data-testid="code-cell" data-line-number="543" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC544" class="react-file-line html-div" data-testid="code-cell" data-line-number="544" style="position:relative"> <span class="pl-k">public</span> <span class="pl-k">function</span> <span class="pl-en">set_image_compression</span>(<span class="pl-s1"><span class="pl-c1">$</span>image</span>, <span class="pl-s1"><span class="pl-c1">$</span>quality</span> = <span class="pl-c1">80</span>)</div></div></div><div class="child-of-line-18 child-of-line-543 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC545" class="react-file-line html-div" data-testid="code-cell" data-line-number="545" style="position:relative"> {</div></div></div><div class="child-of-line-18 child-of-line-543 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC546" class="react-file-line html-div" data-testid="code-cell" data-line-number="546" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>image_format</span> = <span class="pl-s1"><span class="pl-c1">$</span>image</span>-><span class="pl-en">getImageFormat</span>();</div></div></div><div class="child-of-line-18 child-of-line-543 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC547" class="react-file-line html-div" data-testid="code-cell" data-line-number="547" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-543 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC548" class="react-file-line html-div" data-testid="code-cell" data-line-number="548" style="position:relative"> <span class="pl-k">switch</span> (<span class="pl-s1"><span class="pl-c1">$</span>image_format</span>)</div></div></div><div class="child-of-line-18 child-of-line-543 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC549" class="react-file-line html-div" data-testid="code-cell" data-line-number="549" style="position:relative"> {</div></div></div><div class="child-of-line-18 child-of-line-543 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC550" class="react-file-line html-div" data-testid="code-cell" data-line-number="550" style="position:relative"> <span class="pl-k">case</span> <span class="pl-s">'<span class="pl-s">JPEG</span>'</span>:</div></div></div><div class="child-of-line-18 child-of-line-543 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC551" class="react-file-line html-div" data-testid="code-cell" data-line-number="551" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>image</span>-><span class="pl-en">setImageCompression</span>(\<span class="pl-v">Imagick</span>::<span class="pl-c1">COMPRESSION_JPEG</span>);</div></div></div><div class="child-of-line-18 child-of-line-543 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC552" class="react-file-line html-div" data-testid="code-cell" data-line-number="552" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>image</span>-><span class="pl-en">setImageCompressionQuality</span>(<span class="pl-s1"><span class="pl-c1">$</span>quality</span>);</div></div></div><div class="child-of-line-18 child-of-line-543 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC553" class="react-file-line html-div" data-testid="code-cell" data-line-number="553" style="position:relative"> <span class="pl-k">break</span>;</div></div></div><div class="child-of-line-18 child-of-line-543 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC554" class="react-file-line html-div" data-testid="code-cell" data-line-number="554" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-543 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC555" class="react-file-line html-div" data-testid="code-cell" data-line-number="555" style="position:relative"> <span class="pl-k">case</span> <span class="pl-s">'<span class="pl-s">PNG</span>'</span>:</div></div></div><div class="child-of-line-18 child-of-line-543 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC556" class="react-file-line html-div" data-testid="code-cell" data-line-number="556" style="position:relative"> <span class="pl-k">if</span> (<span class="pl-s1"><span class="pl-c1">$</span>image</span>-><span class="pl-en">getImageColors</span>() > <span class="pl-c1">256</span>)</div></div></div><div class="child-of-line-18 child-of-line-543 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC557" class="react-file-line html-div" data-testid="code-cell" data-line-number="557" style="position:relative"> {</div></div></div><div class="child-of-line-18 child-of-line-543 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC558" class="react-file-line html-div" data-testid="code-cell" data-line-number="558" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>image</span>-><span class="pl-en">quantizeImage</span>(<span class="pl-c1">256</span>, \<span class="pl-v">Imagick</span>::<span class="pl-c1">COLORSPACE_SRGB</span>, <span class="pl-c1">16</span>, <span class="pl-c1">false</span>, <span class="pl-c1">false</span>);</div></div></div><div class="child-of-line-18 child-of-line-543 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC559" class="react-file-line html-div" data-testid="code-cell" data-line-number="559" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>image</span>-><span class="pl-en">setImageType</span>(\<span class="pl-v">Imagick</span>::<span class="pl-c1">IMGTYPE_TRUECOLORMATTE</span>);</div></div></div><div class="child-of-line-18 child-of-line-543 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC560" class="react-file-line html-div" data-testid="code-cell" data-line-number="560" style="position:relative"> }</div></div></div><div class="child-of-line-18 child-of-line-543 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC561" class="react-file-line html-div" data-testid="code-cell" data-line-number="561" style="position:relative"> <span class="pl-k">break</span>;</div></div></div><div class="child-of-line-18 child-of-line-543 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC562" class="react-file-line html-div" data-testid="code-cell" data-line-number="562" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-543 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC563" class="react-file-line html-div" data-testid="code-cell" data-line-number="563" style="position:relative"> <span class="pl-k">case</span> <span class="pl-s">'<span class="pl-s">WEBP</span>'</span>:</div></div></div><div class="child-of-line-18 child-of-line-543 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC564" class="react-file-line html-div" data-testid="code-cell" data-line-number="564" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>image</span>-><span class="pl-en">setOption</span>(<span class="pl-s">'<span class="pl-s">webp:alpha-compression</span>'</span>, <span class="pl-c1">1</span>);</div></div></div><div class="child-of-line-18 child-of-line-543 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC565" class="react-file-line html-div" data-testid="code-cell" data-line-number="565" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>image</span>-><span class="pl-en">setOption</span>(<span class="pl-s">'<span class="pl-s">webp:alpha-filtering</span>'</span>, <span class="pl-c1">1</span>);</div></div></div><div class="child-of-line-18 child-of-line-543 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC566" class="react-file-line html-div" data-testid="code-cell" data-line-number="566" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>image</span>-><span class="pl-en">setOption</span>(<span class="pl-s">'<span class="pl-s">webp:method</span>'</span>, <span class="pl-c1">6</span>);</div></div></div><div class="child-of-line-18 child-of-line-543 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC567" class="react-file-line html-div" data-testid="code-cell" data-line-number="567" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>image</span>-><span class="pl-en">setImageCompressionQuality</span>(<span class="pl-s1"><span class="pl-c1">$</span>quality</span>);</div></div></div><div class="child-of-line-18 child-of-line-543 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC568" class="react-file-line html-div" data-testid="code-cell" data-line-number="568" style="position:relative"> <span class="pl-k">break</span>;</div></div></div><div class="child-of-line-18 child-of-line-543 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC569" class="react-file-line html-div" data-testid="code-cell" data-line-number="569" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-543 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC570" class="react-file-line html-div" data-testid="code-cell" data-line-number="570" style="position:relative"> <span class="pl-k">default</span>:</div></div></div><div class="child-of-line-18 child-of-line-543 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC571" class="react-file-line html-div" data-testid="code-cell" data-line-number="571" style="position:relative"> <span class="pl-c">// do nothing</span></div></div></div><div class="child-of-line-18 child-of-line-543 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC572" class="react-file-line html-div" data-testid="code-cell" data-line-number="572" style="position:relative"> <span class="pl-k">break</span>;</div></div></div><div class="child-of-line-18 child-of-line-543 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC573" class="react-file-line html-div" data-testid="code-cell" data-line-number="573" style="position:relative"> }</div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC574" class="react-file-line html-div" data-testid="code-cell" data-line-number="574" style="position:relative"> }</div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC575" class="react-file-line html-div" data-testid="code-cell" data-line-number="575" style="position:relative"> </div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC576" class="react-file-line html-div" data-testid="code-cell" data-line-number="576" style="position:relative"> <span class="pl-c">/**</span></div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC577" class="react-file-line html-div" data-testid="code-cell" data-line-number="577" style="position:relative"><span class="pl-c"> * rotate the generated image</span></div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC578" class="react-file-line html-div" data-testid="code-cell" data-line-number="578" style="position:relative"><span class="pl-c"> *</span></div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC579" class="react-file-line html-div" data-testid="code-cell" data-line-number="579" style="position:relative"><span class="pl-c"> * @param object $image image object</span></div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC580" class="react-file-line html-div" data-testid="code-cell" data-line-number="580" style="position:relative"><span class="pl-c"> *</span></div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC581" class="react-file-line html-div" data-testid="code-cell" data-line-number="581" style="position:relative"><span class="pl-c"> * @return array changed orientation changed</span></div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC582" class="react-file-line html-div" data-testid="code-cell" data-line-number="582" style="position:relative"><span class="pl-c"> * rotate rotate 90 degree</span></div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC583" class="react-file-line html-div" data-testid="code-cell" data-line-number="583" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC584" class="react-file-line html-div" data-testid="code-cell" data-line-number="584" style="position:relative"> <span class="pl-k">public</span> <span class="pl-k">function</span> <span class="pl-en">image_auto_rotate</span>(<span class="pl-s1"><span class="pl-c1">$</span>image</span>)</div></div></div><div class="child-of-line-18 child-of-line-583 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC585" class="react-file-line html-div" data-testid="code-cell" data-line-number="585" style="position:relative"> {</div></div></div><div class="child-of-line-18 child-of-line-583 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC586" class="react-file-line html-div" data-testid="code-cell" data-line-number="586" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>is_rotate</span> = <span class="pl-c1">false</span>; <span class="pl-c">// true, when orientation change between portrait and landscape</span></div></div></div><div class="child-of-line-18 child-of-line-583 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC587" class="react-file-line html-div" data-testid="code-cell" data-line-number="587" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>is_changed</span> = <span class="pl-c1">true</span>; <span class="pl-c">// true, when orientation change</span></div></div></div><div class="child-of-line-18 child-of-line-583 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC588" class="react-file-line html-div" data-testid="code-cell" data-line-number="588" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-583 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC589" class="react-file-line html-div" data-testid="code-cell" data-line-number="589" style="position:relative"> <span class="pl-c">// read the orientation from the image</span></div></div></div><div class="child-of-line-18 child-of-line-583 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC590" class="react-file-line html-div" data-testid="code-cell" data-line-number="590" style="position:relative"> <span class="pl-k">if</span> (!(<span class="pl-s1"><span class="pl-c1">$</span>image_orientation</span> = <span class="pl-s1"><span class="pl-c1">$</span>image</span>-><span class="pl-en">getImageOrientation</span>()))</div></div></div><div class="child-of-line-18 child-of-line-583 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC591" class="react-file-line html-div" data-testid="code-cell" data-line-number="591" style="position:relative"> {</div></div></div><div class="child-of-line-18 child-of-line-583 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC592" class="react-file-line html-div" data-testid="code-cell" data-line-number="592" style="position:relative"> <span class="pl-c">// orientation flag not available</span></div></div></div><div class="child-of-line-18 child-of-line-583 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC593" class="react-file-line html-div" data-testid="code-cell" data-line-number="593" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>image_orientation</span> = \<span class="pl-v">Imagick</span>::<span class="pl-c1">ORIENTATION_UNDEFINED</span>;</div></div></div><div class="child-of-line-18 child-of-line-583 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC594" class="react-file-line html-div" data-testid="code-cell" data-line-number="594" style="position:relative"> }</div></div></div><div class="child-of-line-18 child-of-line-583 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC595" class="react-file-line html-div" data-testid="code-cell" data-line-number="595" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-583 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC596" class="react-file-line html-div" data-testid="code-cell" data-line-number="596" style="position:relative"> <span class="pl-k">switch</span> (<span class="pl-s1"><span class="pl-c1">$</span>image_orientation</span>)</div></div></div><div class="child-of-line-18 child-of-line-583 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC597" class="react-file-line html-div" data-testid="code-cell" data-line-number="597" style="position:relative"> {</div></div></div><div class="child-of-line-18 child-of-line-583 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC598" class="react-file-line html-div" data-testid="code-cell" data-line-number="598" style="position:relative"> <span class="pl-k">case</span> \<span class="pl-v">Imagick</span>::<span class="pl-c1">ORIENTATION_UNDEFINED</span>:</div></div></div><div class="child-of-line-18 child-of-line-583 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC599" class="react-file-line html-div" data-testid="code-cell" data-line-number="599" style="position:relative"> <span class="pl-c">// do nothing</span></div></div></div><div class="child-of-line-18 child-of-line-583 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC600" class="react-file-line html-div" data-testid="code-cell" data-line-number="600" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>is_changed</span> = <span class="pl-c1">false</span>;</div></div></div><div class="child-of-line-18 child-of-line-583 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC601" class="react-file-line html-div" data-testid="code-cell" data-line-number="601" style="position:relative"> <span class="pl-k">break</span>;</div></div></div><div class="child-of-line-18 child-of-line-583 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC602" class="react-file-line html-div" data-testid="code-cell" data-line-number="602" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-583 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC603" class="react-file-line html-div" data-testid="code-cell" data-line-number="603" style="position:relative"> <span class="pl-k">case</span> \<span class="pl-v">Imagick</span>::<span class="pl-c1">ORIENTATION_TOPLEFT</span>:</div></div></div><div class="child-of-line-18 child-of-line-583 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC604" class="react-file-line html-div" data-testid="code-cell" data-line-number="604" style="position:relative"> <span class="pl-c">// do nothing</span></div></div></div><div class="child-of-line-18 child-of-line-583 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC605" class="react-file-line html-div" data-testid="code-cell" data-line-number="605" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>is_changed</span> = <span class="pl-c1">false</span>;</div></div></div><div class="child-of-line-18 child-of-line-583 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC606" class="react-file-line html-div" data-testid="code-cell" data-line-number="606" style="position:relative"> <span class="pl-k">break</span>;</div></div></div><div class="child-of-line-18 child-of-line-583 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC607" class="react-file-line html-div" data-testid="code-cell" data-line-number="607" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-583 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC608" class="react-file-line html-div" data-testid="code-cell" data-line-number="608" style="position:relative"> <span class="pl-k">case</span> \<span class="pl-v">Imagick</span>::<span class="pl-c1">ORIENTATION_TOPRIGHT</span>:</div></div></div><div class="child-of-line-18 child-of-line-583 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC609" class="react-file-line html-div" data-testid="code-cell" data-line-number="609" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>image</span>-><span class="pl-en">flopImage</span>();</div></div></div><div class="child-of-line-18 child-of-line-583 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC610" class="react-file-line html-div" data-testid="code-cell" data-line-number="610" style="position:relative"> <span class="pl-k">break</span>;</div></div></div><div class="child-of-line-18 child-of-line-583 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC611" class="react-file-line html-div" data-testid="code-cell" data-line-number="611" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-583 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC612" class="react-file-line html-div" data-testid="code-cell" data-line-number="612" style="position:relative"> <span class="pl-k">case</span> \<span class="pl-v">Imagick</span>::<span class="pl-c1">ORIENTATION_BOTTOMRIGHT</span>:</div></div></div><div class="child-of-line-18 child-of-line-583 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC613" class="react-file-line html-div" data-testid="code-cell" data-line-number="613" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>image</span>-><span class="pl-en">rotateImage</span>(<span class="pl-s">"<span class="pl-s">#000</span>"</span>, <span class="pl-c1">180</span>);</div></div></div><div class="child-of-line-18 child-of-line-583 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC614" class="react-file-line html-div" data-testid="code-cell" data-line-number="614" style="position:relative"> <span class="pl-k">break</span>;</div></div></div><div class="child-of-line-18 child-of-line-583 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC615" class="react-file-line html-div" data-testid="code-cell" data-line-number="615" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-583 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC616" class="react-file-line html-div" data-testid="code-cell" data-line-number="616" style="position:relative"> <span class="pl-k">case</span> \<span class="pl-v">Imagick</span>::<span class="pl-c1">ORIENTATION_BOTTOMLEFT</span>:</div></div></div><div class="child-of-line-18 child-of-line-583 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC617" class="react-file-line html-div" data-testid="code-cell" data-line-number="617" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>image</span>-><span class="pl-en">flipImage</span>();</div></div></div><div class="child-of-line-18 child-of-line-583 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC618" class="react-file-line html-div" data-testid="code-cell" data-line-number="618" style="position:relative"> <span class="pl-k">break</span>;</div></div></div><div class="child-of-line-18 child-of-line-583 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC619" class="react-file-line html-div" data-testid="code-cell" data-line-number="619" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-583 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC620" class="react-file-line html-div" data-testid="code-cell" data-line-number="620" style="position:relative"> <span class="pl-k">case</span> \<span class="pl-v">Imagick</span>::<span class="pl-c1">ORIENTATION_LEFTTOP</span>:</div></div></div><div class="child-of-line-18 child-of-line-583 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC621" class="react-file-line html-div" data-testid="code-cell" data-line-number="621" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>image</span>-><span class="pl-en">transposeImage</span>();</div></div></div><div class="child-of-line-18 child-of-line-583 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC622" class="react-file-line html-div" data-testid="code-cell" data-line-number="622" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>is_rotate</span> = <span class="pl-c1">true</span>;</div></div></div><div class="child-of-line-18 child-of-line-583 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC623" class="react-file-line html-div" data-testid="code-cell" data-line-number="623" style="position:relative"> <span class="pl-k">break</span>;</div></div></div><div class="child-of-line-18 child-of-line-583 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC624" class="react-file-line html-div" data-testid="code-cell" data-line-number="624" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-583 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC625" class="react-file-line html-div" data-testid="code-cell" data-line-number="625" style="position:relative"> <span class="pl-k">case</span> \<span class="pl-v">Imagick</span>::<span class="pl-c1">ORIENTATION_RIGHTTOP</span>:</div></div></div><div class="child-of-line-18 child-of-line-583 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC626" class="react-file-line html-div" data-testid="code-cell" data-line-number="626" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>image</span>-><span class="pl-en">rotateImage</span>(<span class="pl-s">"<span class="pl-s">#000</span>"</span>, <span class="pl-c1">90</span>);</div></div></div><div class="child-of-line-18 child-of-line-583 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC627" class="react-file-line html-div" data-testid="code-cell" data-line-number="627" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>is_rotate</span> = <span class="pl-c1">true</span>;</div></div></div><div class="child-of-line-18 child-of-line-583 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC628" class="react-file-line html-div" data-testid="code-cell" data-line-number="628" style="position:relative"> <span class="pl-k">break</span>;</div></div></div><div class="child-of-line-18 child-of-line-583 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC629" class="react-file-line html-div" data-testid="code-cell" data-line-number="629" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-583 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC630" class="react-file-line html-div" data-testid="code-cell" data-line-number="630" style="position:relative"> <span class="pl-k">case</span> \<span class="pl-v">Imagick</span>::<span class="pl-c1">ORIENTATION_RIGHTBOTTOM</span>:</div></div></div><div class="child-of-line-18 child-of-line-583 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC631" class="react-file-line html-div" data-testid="code-cell" data-line-number="631" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>image</span>-><span class="pl-en">transverseImage</span>();</div></div></div><div class="child-of-line-18 child-of-line-583 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC632" class="react-file-line html-div" data-testid="code-cell" data-line-number="632" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>is_rotate</span> = <span class="pl-c1">true</span>;</div></div></div><div class="child-of-line-18 child-of-line-583 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC633" class="react-file-line html-div" data-testid="code-cell" data-line-number="633" style="position:relative"> <span class="pl-k">break</span>;</div></div></div><div class="child-of-line-18 child-of-line-583 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC634" class="react-file-line html-div" data-testid="code-cell" data-line-number="634" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-583 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC635" class="react-file-line html-div" data-testid="code-cell" data-line-number="635" style="position:relative"> <span class="pl-k">case</span> \<span class="pl-v">Imagick</span>::<span class="pl-c1">ORIENTATION_LEFTBOTTOM</span>:</div></div></div><div class="child-of-line-18 child-of-line-583 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC636" class="react-file-line html-div" data-testid="code-cell" data-line-number="636" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>image</span>-><span class="pl-en">rotateImage</span>(<span class="pl-s">"<span class="pl-s">#000</span>"</span>, <span class="pl-c1">270</span>);</div></div></div><div class="child-of-line-18 child-of-line-583 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC637" class="react-file-line html-div" data-testid="code-cell" data-line-number="637" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>is_rotate</span> = <span class="pl-c1">true</span>;</div></div></div><div class="child-of-line-18 child-of-line-583 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC638" class="react-file-line html-div" data-testid="code-cell" data-line-number="638" style="position:relative"> <span class="pl-k">break</span>;</div></div></div><div class="child-of-line-18 child-of-line-583 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC639" class="react-file-line html-div" data-testid="code-cell" data-line-number="639" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-583 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC640" class="react-file-line html-div" data-testid="code-cell" data-line-number="640" style="position:relative"> <span class="pl-k">default</span>:</div></div></div><div class="child-of-line-18 child-of-line-583 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC641" class="react-file-line html-div" data-testid="code-cell" data-line-number="641" style="position:relative"> <span class="pl-c">// do nothing</span></div></div></div><div class="child-of-line-18 child-of-line-583 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC642" class="react-file-line html-div" data-testid="code-cell" data-line-number="642" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>is_changed</span> = <span class="pl-c1">false</span>;</div></div></div><div class="child-of-line-18 child-of-line-583 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC643" class="react-file-line html-div" data-testid="code-cell" data-line-number="643" style="position:relative"> <span class="pl-k">break</span>;</div></div></div><div class="child-of-line-18 child-of-line-583 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC644" class="react-file-line html-div" data-testid="code-cell" data-line-number="644" style="position:relative"> }</div></div></div><div class="child-of-line-18 child-of-line-583 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC645" class="react-file-line html-div" data-testid="code-cell" data-line-number="645" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-583 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC646" class="react-file-line html-div" data-testid="code-cell" data-line-number="646" style="position:relative"> <span class="pl-c">// set the orientation from the Image</span></div></div></div><div class="child-of-line-18 child-of-line-583 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC647" class="react-file-line html-div" data-testid="code-cell" data-line-number="647" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>image</span>-><span class="pl-en">setImageOrientation</span>(\<span class="pl-v">Imagick</span>::<span class="pl-c1">ORIENTATION_TOPLEFT</span>);</div></div></div><div class="child-of-line-18 child-of-line-583 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC648" class="react-file-line html-div" data-testid="code-cell" data-line-number="648" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-583 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC649" class="react-file-line html-div" data-testid="code-cell" data-line-number="649" style="position:relative"> <span class="pl-k">return</span> [<span class="pl-s">'<span class="pl-s">changed</span>'</span> => <span class="pl-s1"><span class="pl-c1">$</span>is_changed</span>, <span class="pl-s">'<span class="pl-s">rotate</span>'</span> => <span class="pl-s1"><span class="pl-c1">$</span>is_rotate</span>];</div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC650" class="react-file-line html-div" data-testid="code-cell" data-line-number="650" style="position:relative"> }</div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC651" class="react-file-line html-div" data-testid="code-cell" data-line-number="651" style="position:relative"> </div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC652" class="react-file-line html-div" data-testid="code-cell" data-line-number="652" style="position:relative"> <span class="pl-c">/**</span></div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC653" class="react-file-line html-div" data-testid="code-cell" data-line-number="653" style="position:relative"><span class="pl-c"> * resize the image file</span></div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC654" class="react-file-line html-div" data-testid="code-cell" data-line-number="654" style="position:relative"><span class="pl-c"> *</span></div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC655" class="react-file-line html-div" data-testid="code-cell" data-line-number="655" style="position:relative"><span class="pl-c"> * @param object $image image object</span></div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC656" class="react-file-line html-div" data-testid="code-cell" data-line-number="656" style="position:relative"><span class="pl-c"> * @param integer $new_image_size new size of the image</span></div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC657" class="react-file-line html-div" data-testid="code-cell" data-line-number="657" style="position:relative"><span class="pl-c"> *</span></div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC658" class="react-file-line html-div" data-testid="code-cell" data-line-number="658" style="position:relative"><span class="pl-c"> * @return integer $filesize file size of the image after shrink</span></div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC659" class="react-file-line html-div" data-testid="code-cell" data-line-number="659" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC660" class="react-file-line html-div" data-testid="code-cell" data-line-number="660" style="position:relative"> <span class="pl-k">public</span> <span class="pl-k">function</span> <span class="pl-en">image_auto_length</span>(<span class="pl-s1"><span class="pl-c1">$</span>image</span>, <span class="pl-s1"><span class="pl-c1">$</span>new_image_size</span>)</div></div></div><div class="child-of-line-18 child-of-line-659 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC661" class="react-file-line html-div" data-testid="code-cell" data-line-number="661" style="position:relative"> {</div></div></div><div class="child-of-line-18 child-of-line-659 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC662" class="react-file-line html-div" data-testid="code-cell" data-line-number="662" style="position:relative"> <span class="pl-c">// get image dimensions</span></div></div></div><div class="child-of-line-18 child-of-line-659 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC663" class="react-file-line html-div" data-testid="code-cell" data-line-number="663" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>img_geo</span> = <span class="pl-s1"><span class="pl-c1">$</span>image</span>-><span class="pl-en">getImageGeometry</span>();</div></div></div><div class="child-of-line-18 child-of-line-659 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC664" class="react-file-line html-div" data-testid="code-cell" data-line-number="664" style="position:relative"> <span class="pl-en">list</span>(<span class="pl-s">'<span class="pl-s">width</span>'</span> => <span class="pl-s1"><span class="pl-c1">$</span>width</span>, <span class="pl-s">'<span class="pl-s">height</span>'</span> => <span class="pl-s1"><span class="pl-c1">$</span>height</span>, ) = <span class="pl-s1"><span class="pl-c1">$</span>img_geo</span>;</div></div></div><div class="child-of-line-18 child-of-line-659 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC665" class="react-file-line html-div" data-testid="code-cell" data-line-number="665" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-659 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC666" class="react-file-line html-div" data-testid="code-cell" data-line-number="666" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>filesize</span> = <span class="pl-en">strlen</span>(<span class="pl-s1"><span class="pl-c1">$</span>image</span>-><span class="pl-en">getImageBlob</span>());</div></div></div><div class="child-of-line-18 child-of-line-659 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC667" class="react-file-line html-div" data-testid="code-cell" data-line-number="667" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-659 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC668" class="react-file-line html-div" data-testid="code-cell" data-line-number="668" style="position:relative"> <span class="pl-c">// image aspect ratio</span></div></div></div><div class="child-of-line-18 child-of-line-659 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC669" class="react-file-line html-div" data-testid="code-cell" data-line-number="669" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>side_ratio</span> = <span class="pl-s1"><span class="pl-c1">$</span>width</span> / <span class="pl-s1"><span class="pl-c1">$</span>height</span>;</div></div></div><div class="child-of-line-18 child-of-line-659 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC670" class="react-file-line html-div" data-testid="code-cell" data-line-number="670" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-659 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC671" class="react-file-line html-div" data-testid="code-cell" data-line-number="671" style="position:relative"> <span class="pl-k">while</span> (<span class="pl-s1"><span class="pl-c1">$</span>filesize</span> > <span class="pl-s1"><span class="pl-c1">$</span>new_image_size</span>)</div></div></div><div class="child-of-line-18 child-of-line-659 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC672" class="react-file-line html-div" data-testid="code-cell" data-line-number="672" style="position:relative"> {</div></div></div><div class="child-of-line-18 child-of-line-659 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC673" class="react-file-line html-div" data-testid="code-cell" data-line-number="673" style="position:relative"> <span class="pl-c">// calculate the image side in relation to the image area</span></div></div></div><div class="child-of-line-18 child-of-line-659 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC674" class="react-file-line html-div" data-testid="code-cell" data-line-number="674" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>size_ratio</span> = <span class="pl-s1"><span class="pl-c1">$</span>filesize</span> / <span class="pl-s1"><span class="pl-c1">$</span>new_image_size</span>;</div></div></div><div class="child-of-line-18 child-of-line-659 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC675" class="react-file-line html-div" data-testid="code-cell" data-line-number="675" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>xh</span> = <span class="pl-en">sqrt</span>(<span class="pl-s1"><span class="pl-c1">$</span>width</span> * <span class="pl-s1"><span class="pl-c1">$</span>height</span> / <span class="pl-s1"><span class="pl-c1">$</span>size_ratio</span> / <span class="pl-s1"><span class="pl-c1">$</span>side_ratio</span>);</div></div></div><div class="child-of-line-18 child-of-line-659 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC676" class="react-file-line html-div" data-testid="code-cell" data-line-number="676" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-659 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC677" class="react-file-line html-div" data-testid="code-cell" data-line-number="677" style="position:relative"> <span class="pl-c">// calculate the different to new height</span></div></div></div><div class="child-of-line-18 child-of-line-659 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC678" class="react-file-line html-div" data-testid="code-cell" data-line-number="678" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>dh</span> = (<span class="pl-s1"><span class="pl-c1">$</span>height</span> - <span class="pl-s1"><span class="pl-c1">$</span>xh</span>) * <span class="pl-c1">0.9</span>;</div></div></div><div class="child-of-line-18 child-of-line-659 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC679" class="react-file-line html-div" data-testid="code-cell" data-line-number="679" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>dh</span> = <span class="pl-s1"><span class="pl-c1">$</span>dh</span> > <span class="pl-c1">10</span> ? <span class="pl-s1"><span class="pl-c1">$</span>dh</span> : <span class="pl-c1">10</span>;</div></div></div><div class="child-of-line-18 child-of-line-659 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC680" class="react-file-line html-div" data-testid="code-cell" data-line-number="680" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-659 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC681" class="react-file-line html-div" data-testid="code-cell" data-line-number="681" style="position:relative"> <span class="pl-c">// set image dimensions</span></div></div></div><div class="child-of-line-18 child-of-line-659 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC682" class="react-file-line html-div" data-testid="code-cell" data-line-number="682" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>height</span> -= <span class="pl-s1"><span class="pl-c1">$</span>dh</span>;</div></div></div><div class="child-of-line-18 child-of-line-659 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC683" class="react-file-line html-div" data-testid="code-cell" data-line-number="683" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>width</span> = <span class="pl-s1"><span class="pl-c1">$</span>height</span> * <span class="pl-s1"><span class="pl-c1">$</span>side_ratio</span>;</div></div></div><div class="child-of-line-18 child-of-line-659 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC684" class="react-file-line html-div" data-testid="code-cell" data-line-number="684" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-659 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC685" class="react-file-line html-div" data-testid="code-cell" data-line-number="685" style="position:relative"> <span class="pl-c">// resize the image</span></div></div></div><div class="child-of-line-18 child-of-line-659 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC686" class="react-file-line html-div" data-testid="code-cell" data-line-number="686" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>image</span>-><span class="pl-en">resizeImage</span>(<span class="pl-en">round</span>(<span class="pl-s1"><span class="pl-c1">$</span>width</span>), <span class="pl-en">round</span>(<span class="pl-s1"><span class="pl-c1">$</span>height</span>), \<span class="pl-v">Imagick</span>::<span class="pl-c1">FILTER_LANCZOS</span>, <span class="pl-c1">1</span>, <span class="pl-c1">false</span>);</div></div></div><div class="child-of-line-18 child-of-line-659 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC687" class="react-file-line html-div" data-testid="code-cell" data-line-number="687" style="position:relative"> </div></div></div><div class="child-of-line-18 child-of-line-659 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC688" class="react-file-line html-div" data-testid="code-cell" data-line-number="688" style="position:relative"> <span class="pl-c">// get the file size</span></div></div></div><div class="child-of-line-18 child-of-line-659 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC689" class="react-file-line html-div" data-testid="code-cell" data-line-number="689" style="position:relative"> <span class="pl-s1"><span class="pl-c1">$</span>filesize</span> = <span class="pl-en">strlen</span>(<span class="pl-s1"><span class="pl-c1">$</span>image</span>-><span class="pl-en">getImageBlob</span>());</div></div></div><div class="child-of-line-18 child-of-line-659 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC690" class="react-file-line html-div" data-testid="code-cell" data-line-number="690" style="position:relative"> }</div></div></div><div class="child-of-line-18 child-of-line-659 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC691" class="react-file-line html-div" data-testid="code-cell" data-line-number="691" style="position:relative"> <span class="pl-k">return</span> <span class="pl-s1"><span class="pl-c1">$</span>filesize</span>;</div></div></div><div class="child-of-line-18 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC692" class="react-file-line html-div" data-testid="code-cell" data-line-number="692" style="position:relative"> }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC693" class="react-file-line html-div" data-testid="code-cell" data-line-number="693" style="position:relative">}</div></div></div></div></div></div><div id="copilot-button-container"></div></div><div id="highlighted-line-menu-container"></div></div></div><button hidden="" data-testid="hotkey-button" data-hotkey-scope="read-only-cursor-text-area"></button><button hidden=""></button></section></div></div></div> <!-- --> <!-- --> </div></div></div><div class="Box-sc-g0xbh4-0"></div></div></div></div></div><div id="find-result-marks-container" class="Box-sc-g0xbh4-0 cCoXib"></div><button hidden="" data-testid="" data-hotkey-scope="read-only-cursor-text-area"></button><button hidden=""></button></div> <!-- --> <!-- --> <script type="application/json" id="__PRIMER_DATA_:R0:__">{"resolvedServerColorMode":"day"}</script></div> </react-app> </turbo-frame> </div> </turbo-frame> </main> </div> </div> <footer class="footer pt-8 pb-6 f6 color-fg-muted p-responsive" role="contentinfo" > <h2 class='sr-only'>Footer</h2> <div class="d-flex flex-justify-center flex-items-center flex-column-reverse flex-lg-row flex-wrap flex-lg-nowrap"> <div class="d-flex flex-items-center flex-shrink-0 mx-2"> <a aria-label="Homepage" title="GitHub" class="footer-octicon mr-2" href="https://github.com"> <svg aria-hidden="true" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-mark-github"> <path d="M12.5.75C6.146.75 1 5.896 1 12.25c0 5.089 3.292 9.387 7.863 10.91.575.101.79-.244.79-.546 0-.273-.014-1.178-.014-2.142-2.889.532-3.636-.704-3.866-1.35-.13-.331-.69-1.352-1.18-1.625-.402-.216-.977-.748-.014-.762.906-.014 1.553.834 1.769 1.179 1.035 1.74 2.688 1.25 3.349.948.1-.747.402-1.25.733-1.538-2.559-.287-5.232-1.279-5.232-5.678 0-1.25.445-2.285 1.178-3.09-.115-.288-.517-1.467.115-3.048 0 0 .963-.302 3.163 1.179.92-.259 1.897-.388 2.875-.388.977 0 1.955.13 2.875.388 2.2-1.495 3.162-1.179 3.162-1.179.633 1.581.23 2.76.115 3.048.733.805 1.179 1.825 1.179 3.09 0 4.413-2.688 5.39-5.247 5.678.417.36.776 1.05.776 2.128 0 1.538-.014 2.774-.014 3.162 0 .302.216.662.79.547C20.709 21.637 24 17.324 24 12.25 24 5.896 18.854.75 12.5.75Z"></path> </svg> </a> <span> © 2024 GitHub, Inc. </span> </div> <nav aria-label="Footer"> <h3 class="sr-only" id="sr-footer-heading">Footer navigation</h3> <ul class="list-style-none d-flex flex-justify-center flex-wrap mb-2 mb-lg-0" aria-labelledby="sr-footer-heading"> <li class="mx-2"> <a data-analytics-event="{"category":"Footer","action":"go to Terms","label":"text:terms"}" href="https://docs.github.com/site-policy/github-terms/github-terms-of-service" data-view-component="true" class="Link--secondary Link">Terms</a> </li> <li class="mx-2"> <a data-analytics-event="{"category":"Footer","action":"go to privacy","label":"text:privacy"}" href="https://docs.github.com/site-policy/privacy-policies/github-privacy-statement" data-view-component="true" class="Link--secondary Link">Privacy</a> </li> <li class="mx-2"> <a data-analytics-event="{"category":"Footer","action":"go to security","label":"text:security"}" href="https://github.com/security" data-view-component="true" class="Link--secondary Link">Security</a> </li> <li class="mx-2"> <a data-analytics-event="{"category":"Footer","action":"go to status","label":"text:status"}" href="https://www.githubstatus.com/" data-view-component="true" class="Link--secondary Link">Status</a> </li> <li class="mx-2"> <a data-analytics-event="{"category":"Footer","action":"go to docs","label":"text:docs"}" href="https://docs.github.com/" data-view-component="true" class="Link--secondary Link">Docs</a> </li> <li class="mx-2"> <a data-analytics-event="{"category":"Footer","action":"go to contact","label":"text:contact"}" href="https://support.github.com?tags=dotcom-footer" data-view-component="true" class="Link--secondary Link">Contact</a> </li> <li class="mx-2" > <cookie-consent-link> <button type="button" class="Link--secondary underline-on-hover border-0 p-0 color-bg-transparent" data-action="click:cookie-consent-link#showConsentManagement" data-analytics-event="{"location":"footer","action":"cookies","context":"subfooter","tag":"link","label":"cookies_link_subfooter_footer"}" > Manage cookies </button> </cookie-consent-link> </li> <li class="mx-2"> <cookie-consent-link> <button type="button" class="Link--secondary underline-on-hover border-0 p-0 color-bg-transparent" data-action="click:cookie-consent-link#showConsentManagement" data-analytics-event="{"location":"footer","action":"dont_share_info","context":"subfooter","tag":"link","label":"dont_share_info_link_subfooter_footer"}" > Do not share my personal information </button> </cookie-consent-link> </li> </ul> </nav> </div> </footer> <ghcc-consent id="ghcc" class="position-fixed bottom-0 left-0" style="z-index: 999999" data-initial-cookie-consent-allowed="" data-cookie-consent-required="false"></ghcc-consent> <div id="ajax-error-message" class="ajax-error-message flash flash-error" hidden> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-alert"> <path d="M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path> </svg> <button type="button" class="flash-close js-ajax-error-dismiss" aria-label="Dismiss error"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x"> <path d="M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z"></path> </svg> </button> You can’t perform that action at this time. </div> <template id="site-details-dialog"> <details class="details-reset details-overlay details-overlay-dark lh-default color-fg-default hx_rsm" open> <summary role="button" aria-label="Close dialog"></summary> <details-dialog class="Box Box--overlay d-flex flex-column anim-fade-in fast hx_rsm-dialog hx_rsm-modal"> <button class="Box-btn-octicon m-0 btn-octicon position-absolute right-0 top-0" type="button" aria-label="Close dialog" data-close-dialog> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x"> <path d="M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z"></path> </svg> </button> <div class="octocat-spinner my-6 js-details-dialog-spinner"></div> </details-dialog> </details> </template> <div class="Popover js-hovercard-content position-absolute" style="display: none; outline: none;"> <div class="Popover-message Popover-message--bottom-left Popover-message--large Box color-shadow-large" style="width:360px;"> </div> </div> <template id="snippet-clipboard-copy-button"> <div class="zeroclipboard-container position-absolute right-0 top-0"> <clipboard-copy aria-label="Copy" class="ClipboardButton btn js-clipboard-copy m-2 p-0" data-copy-feedback="Copied!" data-tooltip-direction="w"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-copy js-clipboard-copy-icon m-2"> <path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path> </svg> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check js-clipboard-check-icon color-fg-success d-none m-2"> <path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path> </svg> </clipboard-copy> </div> </template> <template id="snippet-clipboard-copy-button-unpositioned"> <div class="zeroclipboard-container"> <clipboard-copy aria-label="Copy" class="ClipboardButton btn btn-invisible js-clipboard-copy m-2 p-0 d-flex flex-justify-center flex-items-center" data-copy-feedback="Copied!" data-tooltip-direction="w"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-copy js-clipboard-copy-icon"> <path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path> </svg> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check js-clipboard-check-icon color-fg-success d-none"> <path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path> </svg> </clipboard-copy> </div> </template> </div> <div id="js-global-screen-reader-notice" class="sr-only mt-n1" aria-live="polite" aria-atomic="true" ></div> <div id="js-global-screen-reader-notice-assertive" class="sr-only mt-n1" aria-live="assertive" aria-atomic="true"></div> </body> </html>