�PNG  IHDR22?�� pHYs  �� OiCCPPhotoshop ICC profilexڝSgTS�=���BK���KoR RB���&*! J�!��Q�EEȠ�����Q, � ��!���������{�kּ������>���� �H3Q5� �B�������.@� $p�d!s�#�~<<+"��x� �M��0���B�\���t�8K�@z�B�@F���&S�`�cb�P-`'������{[�!�� e�Dh;��V�EX0fK�9�-0IWfH���� � 0Q��){`�##x��F�W<�+��*x��<�$9E�[-qWW.(�I+6aa�@.�y�2�4���������x����6��_-��"bb���ϫp@�t~��,/��;�m��%�h^ �u��f�@����W�p�~<�5�j>{�-�]c�K'Xt����o��(�h���w��?�G�%�fI�q^D$.Tʳ?�D��*�A��,���� �`6�B$��BB d�r`)��B(�Ͱ*`/�@4�Qh��p.�U�=p�a��(�� A�a!ڈb�X#����!�H�$ ɈQ"K�5H1R�T UH�=r9�\F��;�2����G1���Q=� �C��7�F� �dt1�����r�=�6��Ыhڏ>C�0��3�l0.��B�8, �c˱"� ���V����cϱw�E� 6wB aAHXLXN�H� $4� 7 �Q�'"��K�&���b21�XH,#��/{�C�7$�C2'��I��T��F�nR#�,��4H#���dk�9�, +ȅ����3��!�[ �b@q��S�(R�jJ��4�e�2AU��Rݨ�T5�ZB���R�Q��4u�9̓IK�����hh�i��t�ݕN��W���G���w ��Ljg(�gw��L�Ӌ�T071���oUX*�*|�� �J�&�*/T����ު U�U�T��^S}�FU3S� Ԗ�U��P�SSg�;���g�oT?�~Y��Y�L�OC�Q��_�� c�x,!k ��u�5�&���|v*�����=���9C3J3W�R�f?�q��tN �(���~���)�)�4L�1e\k����X�H�Q�G�6������E�Y��A�J'\'Gg����S�Sݧ �M=:��.�k���Dw�n��^��Lo��y���}/�T�m���G X� $� �<�5qo</���QC]�@C�a�a�ᄑ��<��F�F�i�\�$�m�mƣ&&!&KM�M�RM��)�;L;L���͢�֙5�=1�2��כ߷`ZxZ,����eI��Z�Yn�Z9Y�XUZ]�F���%ֻ�����N�N���gð�ɶ�����ۮ�m�}agbg�Ů��}�}��= ���Z~s�r:V:ޚΜ�?}����/gX���3��)�i�S��Ggg�s�󈋉K��.�>.���Ƚ�Jt�q]�z���������ۯ�6�i�ܟ�4�)�Y3s���C�Q��? ��0k߬~OCO�g��#/c/�W�װ��w��a�>�>r��>�<7�2�Y_�7��ȷ�O�o�_��C#�d�z����%g��A�[��z|!��?:�e����A���AA�������!h�쐭!��Α�i�P~���a�a��~ '���W�?�p�X�1�5w��Cs�D�D�Dޛg1O9�-J5*>�.j<�7�4�?�.fY��X�XIlK9.*�6nl������� �{�/�]py�����.,:�@L�N8��A*��%�w%� y��g"/�6ш�C\*N�H*Mz�쑼5y$�3�,幄'���L Lݛ:��v m2=:�1����qB�!M��g�g�fvˬe����n��/��k���Y- �B��TZ(�*�geWf�͉�9���+��̳�ې7�����ᒶ��KW-X潬j9�������(�x��oʿ�ܔ���Ĺd�f�f���-�[����n �ڴ �V����E�/��(ۻ��C���<��e����;?T�T�T�T6��ݵa��n��{��4���[���>ɾ�UUM�f�e�I���?�������m]�Nmq����#�׹���=TR��+�G�����w- 6 U����#pDy��� �� :�v�{���vg/jB��F�S��[b[�O�>����z�G��499�?r����C�d�&����ˮ/~�����јѡ�򗓿m|������������x31^�V���w�w��O�| (�h���SЧ��������c3-� cHRMz%������u0�`:�o�_�F5IDATx��ytUս�?�;���fN$$��@B�!�k��� -*�gE���j�O�kQ�ʠ`U�B_ �AÐ0%�Ȕ�@r3ޛ;߳��$�@��v����^�s����������$��ߢ !�W��5�̱'-٘������4�>�Rƫ$�G��0U�H}�_ _� #��k�MJ/=�9Du *ڲ�k�PQ;0��j|�*�$�^컂脛y���>�z×� B��� ��(�:$�ʔ_�6��C!B����MVx��a��ζyY����j��ƋY2�9�F�{r��r�딟F��Q��hY6��� x��[l��RC��������nt@��;P��3��� F�w��7��:�P���ɋ'���mj���Bƪ�$�Q�L��y��߷g��\���z����v5�p�v$�v櫻�`6~K �Y�X����,�:��"�o�e0II"(��,������l_�C���/4�+f�E�!q��:����u����c��樼.UE�@� �]K�W���$-�h]�JG���Dz)�`��.�A/ ���mᏣc�3jK� �!�>���$�Q�!�_�? \�C2(E �M$Z I{�U���s�ǣ���=��@Բe ޻��W�����@ �w����}�9v,)��.}*|"�s��di���,���G�]W�AC�������|<����[��ߕ������K�*�G nߴ!��‹��J�!��6(L�a)��Am��������;adf��:�xm��nh�;֦I��(���o�C~ډa?�=��s����h��E������xp����)���_���t��W�����´;8���`dz=(��@@�+,�;�`�fhl��XȌ�3,uI�~z(J����� �ZX�A����H'�À�㜦�82|��a�n�z2��I���� ���EY�h�ε<�0�q�{��C��v�˅��?"@��χ�x�WS+��N�~�KQ�J�8ل�� _.W��� !TU{�����,��"�� �;�������HI S� ��))�o�1�H�D� ���� (� ;����"Ҕ��,���� �F=���O��&�Ph>�`���y��߲ &S��P�<��'��1s�1cĂ�N����2)����@�u��tv��<�+�-&�����h��[!FSG���' � z z0��<����8d&�����E0�,��<��"!P�b4��� �{S�����X����.�囤���T��hEF��X�q0"-<����h���]�Py*����F⩍��@v�˂�Y08�� .q��a��s����(!<̫1�3�L�H��7sYW�`��qtu�\7��?�@�Y�� %Ka�x�GZ�*W�P��y�����N0r9��Z�c�%���q,��k�����!!,��>���IB��� �x1�Xu�Y���v-���ֺ��N������JP��a�2`�e5��w��u;�6�i���̃��(K���ťa��(l51��JL��O'%���]���ٖ뿉!��{*�p+f ���i8��D�ȑ���ܩ�M��V��ӟz��x�7Z�1i}�^͜���6e����x��)u�d�ˏ�V�eG�\�X1�����=n�U'�~Y����L�\,�(d!x ,�:�TW8� M`r���@��r+v�Q0��>^;˴�VbF��('����� �*O��i��j�Ӆ����^�S3&� ���{������.ی�� N;��NU%d0�Ce\r"�C�b��&t7N�7��� �ȪD�[%l�۪�$��'m?�A9tI�9>��NVL ��� 6v~M�����ъ�B���0����9$&=ώm��W�0���L���&��E���f�f��'+�9��hv��7,���M��6�D�&�^� �����8 D֮�����o��k^z��O��hP�8q�5d*��YVq3�{��������#LX4�?��jP=3�~�؅c�ݰ�̱�ұ��8̲��2�G�����j��έ�9��w7���U�X�w�85C��?!I&���o&����L���I#�^�eV�,�^t5�k� �xs˛\��U�8��."���{���ǵ�l4��ݼ�;��r"���G�/~���gJV�N糦��ZZ^k+NN�D��I$�=OE�z����|*�*{��%k���G��>�`9��b;�s���8,�qs��c��.b��q�%�>r��n�R�Ƨ�%�,�A��le#�8���}; 21�0�b�&�QX�f���q�00����$>�h�N�'�a3��A���/�r ��L5�8�GԲ'�����w;��c#�q1���h$*��V^�k��QĽ�b:i������� ����H F#�_���,��]g����Ը����`RUU���� ��"�qD���>-��ϤI�~��3�̴�����NZ[[555�eeek7�m����YF#[��Đ��R��i��L�H�r ��@��J-�Pŝ��_|�-��6y��ks�V�U~��6���w.����(��0A� 4��f��� /���C�xŊ�ٳ����z=6�����rg���mKo��o�/����a�g���?'9%9��P��斓��~���L{�� �H��{AW��B��$����v�1b�&Mb�ر��ر#�0`�`xMBp! )Z�Nmo�mZ�g�}�eذaWTVV ���'99��C5��&�&+5�bT>|8��PUUETT����&���t��~TE%��'������b�tEGG;RSS�S�N�v��ѯ��t����u1@�ޚ"f��͈���r'L�Ph��m��ƌ�74o��`�x�q�P���NRSS�X,�����l&&&��MFFA!-��`��ҷ�n��Yuu�����x<I�LB%����KԒ50�!�3�bz�����ʸKL���;---�l6[��`��������Ȏ;�����egg4��!D�T��jWujyZ��������K����%����p�^���X,6��sV=�ܖ����6�3�X ���4ҿ��A2�&����_k�;d�� �VfOIEND�B`� 0x0x
PHP 8.1.34
Preview: class-wp-icons-registry.php Size: 14.93 KB
/home2/astrociv/public_html/gurujii.in/wp-includes/class-wp-icons-registry.php
<?php
/**
 * Icons API: WP_Icons_Registry class
 *
 * @package WordPress
 * @since 7.0.0
 */

/**
 * Core class used for interacting with registered icons.
 *
 * @since 7.0.0
 */
class WP_Icons_Registry {
	/**
	 * Registered icons array.
	 *
	 * @since 7.0.0
	 * @var array[]
	 */
	protected $registered_icons = array();

	/**
	 * Resolved path of the core icon library directory.
	 *
	 * @since 7.2.0
	 * @var string|false|null
	 */
	private $core_icon_library_directory = null;

	/**
	 * Container for the main instance of the class.
	 *
	 * @since 7.0.0
	 * @var WP_Icons_Registry|null
	 */
	protected static $instance = null;

	/**
	 * Names of the icons that replace Dashicons, keyed by Dashicon class name.
	 *
	 * Built from the icon library manifest on first use.
	 *
	 * @since 7.2.0
	 * @var array<string, string>|null
	 */
	protected $dashicon_replacements = null;

	/**
	 * Constructor.
	 *
	 * WP_Icons_Registry is a singleton class, so keep this protected.
	 *
	 * Icons are populated via `_wp_register_default_icons()` during the
	 * `init` action. Third-party icons can be registered via
	 * {@see wp_register_icon()} once their collection is registered.
	 *
	 * @since 7.0.0
	 */
	protected function __construct() {}

	/**
	 * Registers an icon.
	 *
	 * @since 7.0.0
	 * @since 7.1.0 The icon name must be namespaced in the form "collection/icon-name".
	 * @since 7.2.0 Added the `keywords` property.
	 *
	 * @param string $icon_name       Namespaced icon name in the form "collection/icon-name"
	 *                                (e.g. "core/arrow-left").
	 * @param array  $icon_properties {
	 *     List of properties for the icon.
	 *
	 *     @type string   $label     Required. A human-readable label for the icon.
	 *     @type string   $content   Optional. SVG markup for the icon.
	 *                               If not provided, the content will be retrieved from the `file_path` if set.
	 *                               If both `content` and `file_path` are not set, the icon will not be registered.
	 *     @type string   $file_path Optional. The full path to the file containing the icon content.
	 *     @type string[] $keywords  Optional. Additional search terms for the icon, matched by
	 *                               `get_registered_icons()` alongside the name and label.
	 * }
	 * @return bool True if the icon was registered with success and false otherwise.
	 *
	 * @phpstan-param lowercase-string&non-falsy-string $icon_name
	 */
	public function register( $icon_name, $icon_properties ) {
		if ( ! isset( $icon_name ) || ! is_string( $icon_name ) ) {
			_doing_it_wrong(
				__METHOD__,
				__( 'Icon name must be a string.' ),
				'7.0.0'
			);
			return false;
		}

		// Require a namespaced name in the form "collection/icon-name".
		if ( ! str_contains( $icon_name, '/' ) ) {
			_doing_it_wrong(
				__METHOD__,
				__( 'Icon name must be namespaced in the form "collection/icon-name".' ),
				'7.1.0'
			);
			return false;
		}

		// Split the namespaced name into a collection slug and an unqualified icon name.
		list( $collection, $unqualified_name ) = explode( '/', $icon_name, 2 );

		if ( preg_match( '/[A-Z]/', $unqualified_name ) ) {
			_doing_it_wrong(
				__METHOD__,
				__( 'Icon names must not contain uppercase characters.' ),
				'7.1.0'
			);
			return false;
		}

		if ( ! preg_match( '/^[a-z0-9](?:[a-z0-9_-]*[a-z0-9])?$/', $unqualified_name ) ) {
			_doing_it_wrong(
				__METHOD__,
				__( 'Icon names must start and end with a lowercase letter or digit and contain only lowercase letters, digits, hyphens, and underscores.' ),
				'7.1.0'
			);
			return false;
		}

		$allowed_keys = array_fill_keys( array( 'label', 'content', 'file_path', 'keywords' ), 1 );
		foreach ( array_keys( $icon_properties ) as $key ) {
			if ( ! array_key_exists( $key, $allowed_keys ) ) {
				_doing_it_wrong(
					__METHOD__,
					sprintf(
						/* translators: %s: The name of a user-provided key. */
						__( 'Invalid icon property: "%s".' ),
						$key
					),
					'7.0.0'
				);
				return false;
			}
		}

		if ( ! WP_Icon_Collections_Registry::get_instance()->is_registered( $collection ) ) {
			_doing_it_wrong(
				__METHOD__,
				sprintf(
					/* translators: %s: Icon collection slug. */
					__( 'Icon collection "%s" is not registered.' ),
					$collection
				),
				'7.1.0'
			);
			return false;
		}

		if ( ! isset( $icon_properties['label'] ) || ! is_string( $icon_properties['label'] ) ) {
			_doing_it_wrong(
				__METHOD__,
				__( 'Icon label must be a string.' ),
				'7.0.0'
			);
			return false;
		}

		if ( array_key_exists( 'keywords', $icon_properties ) ) {
			if ( ! is_array( $icon_properties['keywords'] ) ) {
				_doing_it_wrong(
					__METHOD__,
					__( 'Icon keywords must be an array of strings.' ),
					'7.2.0'
				);
				return false;
			}

			foreach ( $icon_properties['keywords'] as $keyword ) {
				if ( ! is_string( $keyword ) ) {
					_doing_it_wrong(
						__METHOD__,
						__( 'Icon keywords must be an array of strings.' ),
						'7.2.0'
					);
					return false;
				}
			}
		}

		if (
			( ! isset( $icon_properties['content'] ) && ! isset( $icon_properties['file_path'] ) ) ||
			( isset( $icon_properties['content'] ) && isset( $icon_properties['file_path'] ) )
		) {
			_doing_it_wrong(
				__METHOD__,
				__( 'Icons must provide either `content` or `file_path`.' ),
				'7.0.0'
			);
			return false;
		}

		if ( isset( $icon_properties['content'] ) ) {
			if ( ! is_string( $icon_properties['content'] ) ) {
				_doing_it_wrong(
					__METHOD__,
					__( 'Icon content must be a string.' ),
					'7.0.0'
				);
				return false;
			}

			$sanitized_icon_content = $this->sanitize_icon_content( $icon_properties['content'] );
			if ( empty( $sanitized_icon_content ) ) {
				_doing_it_wrong(
					__METHOD__,
					__( 'Icon content does not contain valid SVG markup.' ),
					'7.0.0'
				);
				return false;
			}

			$icon_properties['content'] = $sanitized_icon_content;
		}

		$qualified_name = $collection . '/' . $unqualified_name;

		if ( $this->is_registered( $qualified_name ) ) {
			_doing_it_wrong(
				__METHOD__,
				__( 'Icon is already registered.' ),
				'7.1.0'
			);
			return false;
		}

		$icon = array_merge(
			$icon_properties,
			array(
				'name'       => $qualified_name,
				'collection' => $collection,
			)
		);

		$this->registered_icons[ $qualified_name ] = $icon;

		return true;
	}

	/**
	 * Unregisters an icon.
	 *
	 * @since 7.1.0
	 *
	 * @param string $icon_name Namespaced icon name in the form "collection/icon-name"
	 *                          (e.g. "core/arrow-left").
	 * @return bool True if the icon was unregistered successfully, false otherwise.
	 */
	public function unregister( $icon_name ) {
		if ( ! $this->is_registered( $icon_name ) ) {
			_doing_it_wrong(
				__METHOD__,
				sprintf(
					/* translators: %s: Icon name. */
					__( 'Icon "%s" is not registered.' ),
					$icon_name
				),
				'7.1.0'
			);
			return false;
		}

		unset( $this->registered_icons[ $icon_name ] );
		return true;
	}

	/**
	 * Builds the allowed attribute list for wp_kses() from attribute names.
	 *
	 * @since 7.2.0
	 *
	 * @param non-falsy-string ...$attribute_names Attribute names to allow.
	 * @return array<non-falsy-string, true> Attribute names mapped to true.
	 */
	private function get_allowed_attribute_list( ...$attribute_names ): array {
		return array_fill_keys( $attribute_names, true );
	}

	/**
	 * Sanitizes the icon SVG content.
	 *
	 * @since 7.0.0
	 *
	 * @param string $icon_content The icon SVG content to sanitize.
	 * @return string The sanitized icon SVG content.
	 */
	protected function sanitize_icon_content( $icon_content ) {
		$stroke_attributes = $this->get_allowed_attribute_list(
			'style',
			'stroke',
			'stroke-width',
			'stroke-linecap',
			'stroke-linejoin',
			'stroke-miterlimit',
			'vector-effect',
		);

		$allowed_tags = array(
			'svg'     => array_merge(
				$this->get_allowed_attribute_list(
					'class',
					'xmlns',
					'width',
					'height',
					'viewbox',
					'aria-hidden',
					'role',
					'focusable',
					'fill',
					'fill-rule',
					'clip-rule',
				),
				$stroke_attributes
			),
			'path'    => array_merge(
				$this->get_allowed_attribute_list(
					'fill',
					'fill-rule',
					'clip-rule',
					'd',
					'opacity',
					'transform',
				),
				$stroke_attributes
			),
			'polygon' => array_merge(
				$this->get_allowed_attribute_list(
					'fill',
					'fill-rule',
					'clip-rule',
					'points',
					'transform',
					'focusable',
				),
				$stroke_attributes
			),
			'rect'    => array_merge(
				$this->get_allowed_attribute_list(
					'fill',
					'fill-rule',
					'clip-rule',
					'x',
					'y',
					'width',
					'height',
					'rx',
					'ry',
					'transform',
				),
				$stroke_attributes
			),
			'circle'  => array_merge(
				$this->get_allowed_attribute_list(
					'fill',
					'fill-rule',
					'clip-rule',
					'cx',
					'cy',
					'r',
					'transform',
				),
				$stroke_attributes
			),
		);
		return wp_kses( $icon_content, $allowed_tags );
	}

	/**
	 * Retrieves the content of a registered icon.
	 *
	 * @since 7.0.0
	 * @since 7.2.0 Core icons skip sanitization.
	 *
	 * @param string $icon_name Icon name including namespace.
	 * @return string|null The content of the icon, if found.
	 */
	protected function get_content( $icon_name ) {
		if ( ! isset( $this->registered_icons[ $icon_name ]['content'] ) ) {
			$file_path  = $this->registered_icons[ $icon_name ]['file_path'] ?? '';
			$is_stringy = is_string( $file_path ) || ( is_object( $file_path ) && method_exists( $file_path, '__toString' ) );
			$icon_path  = $is_stringy ? realpath( (string) $file_path ) : false;

			if (
				! is_string( $icon_path ) ||
				! str_ends_with( $icon_path, '.svg' ) ||
				! is_file( $icon_path ) ||
				! is_readable( $icon_path )
			) {
				wp_trigger_error(
					__METHOD__,
					__( 'Icon file is missing or unreadable.' )
				);
				return null;
			}

			$content = file_get_contents( $icon_path );

			// Core icons are trusted, so skip the costly sanitization.
			if ( ! $this->is_core_icon_file( $icon_path ) ) {
				$content = $this->sanitize_icon_content( $content );
			}

			if ( empty( $content ) ) {
				wp_trigger_error(
					__METHOD__,
					__( 'Icon content does not contain valid SVG markup.' )
				);
				return null;
			}

			$this->registered_icons[ $icon_name ]['content'] = $content;
		}
		return $this->registered_icons[ $icon_name ]['content'];
	}

	/**
	 * Determines whether an icon file is a core icon.
	 *
	 * @since 7.2.0
	 *
	 * @param string $icon_path Icon file path, resolved with `realpath()`.
	 * @return bool Whether the file is in the core icon library.
	 */
	private function is_core_icon_file( $icon_path ) {
		if ( null === $this->core_icon_library_directory ) {
			$this->core_icon_library_directory = realpath( ABSPATH . WPINC . '/images/icon-library' );
		}

		return is_string( $this->core_icon_library_directory ) && str_starts_with( $icon_path, $this->core_icon_library_directory . DIRECTORY_SEPARATOR );
	}

	/**
	 * Retrieves an array containing the properties of a registered icon.
	 *
	 * @since 7.0.0
	 *
	 * @param string $icon_name Icon name including namespace.
	 * @return array|null Registered icon properties or `null` if the icon is not registered.
	 */
	public function get_registered_icon( $icon_name ) {
		if ( ! $this->is_registered( $icon_name ) ) {
			return null;
		}

		$icon              = $this->registered_icons[ $icon_name ];
		$icon['content'] ??= $this->get_content( $icon_name );

		return $icon;
	}

	/**
	 * Determines whether an icon matches a search term.
	 *
	 * The term is matched case-insensitively against the icon's name, its label,
	 * and any of its keywords.
	 *
	 * @since 7.2.0
	 *
	 * @param array  $icon   Registered icon properties.
	 * @param string $search Search term.
	 * @return bool True if the icon matches the search term, false otherwise.
	 */
	protected function icon_matches_search( $icon, $search ) {
		if ( false !== stripos( $icon['name'], $search ) ) {
			return true;
		}

		if ( false !== stripos( $icon['label'], $search ) ) {
			return true;
		}

		foreach ( $icon['keywords'] ?? array() as $keyword ) {
			if ( false !== stripos( $keyword, $search ) ) {
				return true;
			}
		}

		return false;
	}

	/**
	 * Retrieves all registered icons.
	 *
	 * @since 7.0.0
	 * @since 7.1.0 Search also matches icon labels.
	 * @since 7.2.0 Search also matches icon keywords.
	 *
	 * @param string $search Optional. Search term matched against each icon's name,
	 *                       label, and keywords. Default empty string, which returns
	 *                       every registered icon.
	 * @return array[] Array of arrays containing the registered icon properties.
	 */
	public function get_registered_icons( $search = '' ) {
		$icons = array();

		foreach ( $this->registered_icons as $icon ) {
			if ( ! empty( $search ) && ! $this->icon_matches_search( $icon, $search ) ) {
				continue;
			}

			$icon['content'] ??= $this->get_content( $icon['name'] );
			$icons[]           = $icon;
		}

		return $icons;
	}

	/**
	 * Checks if an icon is registered.
	 *
	 * @since 7.0.0
	 *
	 * @param string $icon_name Icon name including namespace.
	 * @return bool True if the icon is registered, false otherwise.
	 */
	public function is_registered( $icon_name ) {
		return isset( $this->registered_icons[ $icon_name ] );
	}

	/**
	 * Returns the name of the icon that replaces a Dashicon in the admin interface.
	 *
	 * The replacements come from the `dashicons` property of the `core-admin`
	 * icons in the icon library manifest.
	 *
	 * @since 7.2.0
	 *
	 * @param string $dashicon Dashicon class name, such as `dashicons-admin-post`.
	 * @return string|null Namespaced name of the replacement icon, such as `core-admin/pin`,
	 *                     or null if the Dashicon has no replacement or the replacement
	 *                     is not registered.
	 */
	public function get_admin_icon_name_for_dashicon( $dashicon ) {
		if ( ! is_string( $dashicon ) ) {
			return null;
		}

		if ( null === $this->dashicon_replacements ) {
			$this->dashicon_replacements = array();

			$manifest_path = ABSPATH . WPINC . '/assets/icon-library-manifest.php';
			$manifest      = is_readable( $manifest_path ) ? include $manifest_path : array();

			foreach ( is_array( $manifest ) ? $manifest : array() as $icon_name => $icon_data ) {
				if (
					empty( $icon_data['dashicons'] ) ||
					! in_array( 'core-admin', $icon_data['collections'] ?? array(), true )
				) {
					continue;
				}

				foreach ( $icon_data['dashicons'] as $replaced_dashicon ) {
					$this->dashicon_replacements[ $replaced_dashicon ] = 'core-admin/' . $icon_name;
				}
			}
		}

		$icon_name = $this->dashicon_replacements[ $dashicon ] ?? null;

		return null !== $icon_name && $this->is_registered( $icon_name ) ? $icon_name : null;
	}

	/**
	 * Utility method to retrieve the main instance of the class.
	 *
	 * The instance will be created if it does not exist yet.
	 *
	 * @since 7.0.0
	 *
	 * @return WP_Icons_Registry The main instance.
	 */
	public static function get_instance() {
		self::$instance ??= new self();

		return self::$instance;
	}
}

Directory Contents

Dirs: 34 × Files: 266
Name Size Perms Modified Actions
abilities DIR
- drwxr-xr-x 2026-10-28 14:44:54
Edit Download
- drwxr-xr-x 2026-10-28 14:44:54
Edit Download
ai-client DIR
- drwxr-xr-x 2026-10-28 14:44:54
Edit Download
assets DIR
- drwxr-xr-x 2026-10-28 14:44:54
Edit Download
- drwxr-xr-x 2026-10-28 14:44:54
Edit Download
- drwxr-xr-x 2026-10-28 14:44:54
Edit Download
- drwxr-xr-x 2026-10-28 14:44:54
Edit Download
blocks DIR
- drwxr-xr-x 2026-10-28 14:44:54
Edit Download
build DIR
- drwxr-xr-x 2026-10-28 14:44:54
Edit Download
- drwxr-xr-x 2026-10-28 14:44:54
Edit Download
css DIR
- drwxr-xr-x 2026-10-28 14:44:54
Edit Download
customize DIR
- drwxr-xr-x 2026-10-28 14:44:54
Edit Download
fonts DIR
- drwxr-xr-x 2026-10-28 14:44:54
Edit Download
html-api DIR
- drwxr-xr-x 2026-10-28 14:44:54
Edit Download
ID3 DIR
- drwxr-xr-x 2026-10-28 14:44:54
Edit Download
images DIR
- drwxr-xr-x 2026-10-28 14:44:54
Edit Download
- drwxr-xr-x 2026-10-28 14:44:54
Edit Download
IXR DIR
- drwxr-xr-x 2026-10-28 14:44:54
Edit Download
js DIR
- drwxr-xr-x 2026-10-28 14:44:54
Edit Download
l10n DIR
- drwxr-xr-x 2026-10-28 14:44:54
Edit Download
- drwxr-xr-x 2026-10-28 14:44:54
Edit Download
- drwxr-xr-x 2026-10-28 14:44:54
Edit Download
PHPMailer DIR
- drwxr-xr-x 2026-10-28 14:44:54
Edit Download
pomo DIR
- drwxr-xr-x 2026-10-28 14:44:54
Edit Download
Requests DIR
- drwxr-xr-x 2026-10-28 14:44:54
Edit Download
rest-api DIR
- drwxr-xr-x 2026-10-28 14:44:54
Edit Download
secrets DIR
- drwxr-xr-x 2026-10-28 14:44:54
Edit Download
SimplePie DIR
- drwxr-xr-x 2026-10-28 14:44:54
Edit Download
sitemaps DIR
- drwxr-xr-x 2026-10-28 14:44:54
Edit Download
- drwxr-xr-x 2026-10-28 14:44:54
Edit Download
- drwxr-xr-x 2026-10-28 14:44:54
Edit Download
Text DIR
- drwxr-xr-x 2026-10-28 14:44:54
Edit Download
- drwxr-xr-x 2026-10-28 14:44:54
Edit Download
widgets DIR
- drwxr-xr-x 2026-10-28 14:44:54
Edit Download
38.89 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
12.77 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
40.76 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
4.38 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
11.90 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
19.71 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
7.62 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
29.07 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
316 B lrw-r--r-- 2026-10-28 14:44:54
Edit Download
15.28 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
62.33 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
17.89 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
121.84 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
12.61 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
15.45 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
10.76 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
13.17 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
35.62 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
42.64 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
56.33 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
14.47 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
29.30 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
539 B lrw-r--r-- 2026-10-28 14:44:54
Edit Download
367 B lrw-r--r-- 2026-10-28 14:44:54
Edit Download
2.55 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
42.65 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
401 B lrw-r--r-- 2026-10-28 14:44:54
Edit Download
6.61 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
664 B lrw-r--r-- 2026-10-28 14:44:54
Edit Download
20.61 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
2.18 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
453 B lrw-r--r-- 2026-10-28 14:44:54
Edit Download
457 B lrw-r--r-- 2026-10-28 14:44:54
Edit Download
36.81 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
2.41 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
8.28 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
13.89 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
11.76 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
2.65 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
7.44 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
21.30 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
5.26 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
16.70 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
8.10 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
2.92 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
1.32 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
4.72 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
11.57 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
2.50 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
1.95 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
10.97 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
4.24 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
9.99 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
69.58 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
7.50 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
7.87 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
2.06 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
6.95 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
5.22 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
16.92 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
27.57 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
3.93 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
48.31 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
17.34 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
14.88 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
25.50 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
198.41 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
56.67 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
10.45 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
10.95 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
29.30 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
70.91 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
34.55 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
17.01 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
2.59 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
39.88 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
70.53 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
15.54 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
24.18 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
35.51 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
7.34 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
253 B lrw-r--r-- 2026-10-28 14:44:54
Edit Download
7.96 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
3.35 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
969 B lrw-r--r-- 2026-10-28 14:44:54
Edit Download
760 B lrw-r--r-- 2026-10-28 14:44:54
Edit Download
17.83 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
7.16 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
12.95 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
6.53 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
3.58 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
5.84 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
1.99 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
4.14 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
3.15 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
16.37 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
41.50 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
6.40 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
14.93 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
20.12 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
42.44 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
17.05 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
7.27 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
6.64 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
16.54 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
1.79 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
29.79 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
6.53 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
8.96 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
19.84 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
12.57 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
17.27 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
6.74 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
33.05 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
4.95 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
4.25 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
24.62 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
30.52 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
8.90 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
161.08 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
6.72 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
10.90 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
4.80 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
3.44 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
11.37 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
70.26 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
2.49 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
9.11 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
39.79 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
35.81 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
7.15 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
3.47 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
1.87 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
30.92 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
8.09 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
7.70 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
16.91 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
19.00 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
18.35 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
40.95 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
5.56 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
979 B lrw-r--r-- 2026-10-28 14:44:54
Edit Download
18.48 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
10.54 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
1.76 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
35.92 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
7.19 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
232.13 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
65.75 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
28.38 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
4.69 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
2.88 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
43.24 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
2.29 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
22.78 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
28.71 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
12.97 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
4.02 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
18.17 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
214.92 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
28.15 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
120.91 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
373 B lrw-r--r-- 2026-10-28 14:44:54
Edit Download
343 B lrw-r--r-- 2026-10-28 14:44:54
Edit Download
338 B lrw-r--r-- 2026-10-28 14:44:54
Edit Download
101.45 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
151.46 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
18.93 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
21.95 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
32.45 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
45.52 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
400 B lrw-r--r-- 2026-10-28 14:44:54
Edit Download
11.14 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
40.46 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
2.23 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
194.51 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
338 B lrw-r--r-- 2026-10-28 14:44:54
Edit Download
38.31 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
6.49 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
9.20 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
5.43 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
4.00 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
5.49 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
3.14 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
2.50 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
1.16 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
4.00 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
3.56 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
29.76 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
9.56 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
351.83 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
298.90 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
20.02 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
8.45 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
182.98 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
19.14 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
28.35 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
5.72 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
4.63 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
8.38 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
13.02 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
123.42 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
74.33 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
157.91 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
59.10 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
162 B lrw-r--r-- 2026-10-28 14:44:54
Edit Download
62.17 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
241.95 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
68.41 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
25.91 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
4.81 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
6.48 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
21.26 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
2.79 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
90.46 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
19.58 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
3.89 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
4.10 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
42.18 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
25.42 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
43.23 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
107.16 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
6.18 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
125.19 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
37.41 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
6.90 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
68.38 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
10.62 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
314.27 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
47.63 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
200 B lrw-r--r-- 2026-10-28 14:44:54
Edit Download
200 B lrw-r--r-- 2026-10-28 14:44:54
Edit Download
106.11 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
30.62 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
19.98 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
5.06 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
277 B lrw-r--r-- 2026-10-28 14:44:54
Edit Download
22.66 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
177.92 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
12.02 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
25.38 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
258 B lrw-r--r-- 2026-10-28 14:44:54
Edit Download
23.82 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
3.19 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
11.60 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
441 B lrw-r--r-- 2026-10-28 14:44:54
Edit Download
7.87 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
180.39 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
544 B lrw-r--r-- 2026-10-28 14:44:54
Edit Download
4.17 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
37.92 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
2.01 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
2.82 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
3.96 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
9.58 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
132.79 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
37.37 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
177.83 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
6.82 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
6.45 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
1.09 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
21.18 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
2.87 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
69.47 KB lrw-r--r-- 2026-10-28 14:44:54
Edit Download
445 B lrw-r--r-- 2026-10-28 14:44:54
Edit Download
792 B lrw-r--r-- 2026-10-28 14:44:54
Edit Download
If ZipArchive is unavailable, a .tar will be created (no compression).
© 2026 0xNothings — Secure File Manager. All rights reserved. Built with ❤️ & Tailwind x Dark UI