HEX
Server: Apache/2.4.63 (Unix)
System: Linux TOMS-220NAS 4.4.302+ #86009 SMP Wed Nov 26 18:19:17 CST 2025 x86_64
User: flavio87 (1026)
PHP: 8.3.27
Disabled: NONE
Upload Files
File: //proc/25635/root/usr/syno/bin/synoflashcache
ELF>P/@@8
@@@@��PP   ++PPP!!�}�����}ȍȍ888@@xxx  S�td888@@P�td�h�h�hQ�tdR�td�}����pp/lib64/ld-linux-x86-64.so.20GNU���	�GNU%4%#,0( */+)	-2$'.13

!&"3�3�e�mH��X�7��P>����@7��bn}maP,��y�1~9��\9	��� / �s R"_ITM_deregisterTMCloneTableSLIBCErrorGetFile__gmon_start__SLIBCErrorGetLineSLIBCErrGetSLIBCFileCheckKeyValue_ITM_registerTMCloneTableSYNOFlashCacheCountStatGetCacheHandleStateSetNoAdjustSYNOFlashCacheStatFreeSYNOFlashCacheDirtyBlockGetSYNOFlashCacheFlushSYNOFlashCacheGetTotalMemoryConsumptionByteConvertStrToLongSYNOFlashCachePinAddFilesSYNOFlashCacheConfigTmpGetSYNOFlashCacheFlushCancelSYNOFlashCacheVersionGetSYNOFlashcacheGetCachePathStrGetValidInputSYNOFlashCacheHitRateCalcSYNOFlashCacheHandleStateAdjustAndSetSYNOFlashCacheHandleStateGetSYNOFlashCacheGetFlushProgressSYNOFlashCacheUnloadSYNOFlashCacheConfigDeleteSYNOFlashCacheSizeByteGetSYNOFlashCacheStatGetSYNOFlashCacheProcInWriteBackBypassStateSYNOFlashCachePinIsFileAddedSYNOFlashCacheCheckMetadataExistSYNOFlashCacheSysctlGetSYNOFlashcacheUsedMemGetSYNOFlashCacheDoShortFlushForHibernationSYNOFlashCachePinRemoveFilesSYNOFlashCacheCreateSYNOFlashCacheARFlushInfoGetSYNOFlashCacheConfigFreeSYNOFlashCacheDeleteSYNOFlashCacheLoadputs__stack_chk_fail__printf_chkfreeputcharstrtol__libc_start_main__cxa_finalize__syslog_chk__isoc99_sscanfstrcmplibsynoflashcache.solibsynocore.so.7libc.so.6GLIBC_2.4GLIBC_2.7GLIBC_2.34GLIBC_2.2.5GLIBC_2.3.4�ii
�ii
�����ui	�ti	���0���/��4h��;h��]h��Qh��ch����؏3��/�0��2� �(�0�8�@�H�P�X�	`�
h�p�x�
������������������ȐАؐ������� �!�" �#(�$0�%8�&@�'H�(P�)X�*`�+h�,p�-x�.��1H��H��oH��t��H����5�o�%�o@�%�oh����%�oh�����%�oh����%�oh����%�oh����%�oh����%�oh����%�oh�p����%�oh�`����%�oh	�P����%�oh
�@����%�oh�0����%�oh� ����%zoh
�����%roh�����%joh���%boh����%Zoh�����%Roh����%Joh����%Boh����%:oh����%2oh����%*oh�p����%"oh�`����%oh�P����%oh�@����%
oh�0����%oh� ����%�nh�����%�nh�����%�nh���%�nh ����%�nh!�����%�nh"����%�nh#����%�nh$����%�nh%����%�nh&����%�nh'�p����%�nh(�`����%�nh)�P����%�nh*�@����%�nh+�0����%�nh,� ����%znh-�����%�lf���AU1�H��BATI��H�5�BU��H�=�BSH��dH�%(H��$�1��;�����������M�l$A�}-�SH�5�BL�������Å���H�5�BL������Å���H�5�BL������Å��NH�5�BL������Å���H�5�BL���g����Å��H�5�BL���N����Å��5H�5�BL���5����Å��WH�5�BL����������H�5zBL�������Å���H�5sBL������Å��CH�5TBL�������Å��AH�5KBL���������H�5BBL��������H�57BL���������H�5-BL���u�������H�5 BL���^������H�5BL���G������FH�5BL���0������eH�5BL����������H�5�AL����������H�5e:L���������H�5�AL����������H�5�AL��������H�5�AL��������H�5�AL��������9H�5�AL���x������OH�5�AL���a������yH�5�AL���J�������H�5�AL���3�������H�5�AL���������H�5�AL����������H�5�AL��������~H�5�AL���������6H�5�AL���������H��$�dH+%(��H�ĸI�t$�}�[]A\A]�g#A�}h�����A�]�������1��	H��$�dH+%(�lH�ĸ��[]A\A]�H�|$D���D$@���nI�D$H�|$@�H�D$X��롃��D$@������t!I�|$1�H�T$@H�5�>�	��������t$@1���X���H�|$D���D$@����I�D$H�|$@�H�D$H�j����H�|$D���D$@����I�D$H�|$@�H�D$P�/���H�|$D���D$@���wI�D$H�|$@�H�D$h��
���H�|$D���D$@���<I�D$H�|$@�H�D$`�
�l�������H�T$D�M�D$H�t$@H���H���D$@L�D$`��������1��i
����H��$�dH+%(��H�ĸI�t$�}�[]A\A]�3H��$�dH+%(�WH�ĸI�t$�}�[]A\A]��1�H�|$@���I�l$M�d$H�=�8L��������1L��H�=�8�������1�1�H��������rH���H��H��H�D$@�.H�|$@����7���1�H�t$@����I�l$��1�H�L$���vH�l$@�H�T$M�l$H��L�D$H�t$�D$�H��M�d$�L��L�l$ �Q������GH�D$H��L��L��P(�����������aH��L���	���H��$�dH+%(��H�ĸI�t$�}�[]A\A]�������a���A���H��$�dH+%(��H�ĸI�t$�}�[]A\A]�H��$�dH+%(�|H�ĸI�t$�}�[]A\A]�H��$�dH+%(�KH�ĸI�t$�}�[]A\A]��H�=�:�j��������1����H��$�dH+%(��I�t$�}��H�ĸ[]A\A]��H��$�dH+%(��I�t$�}�1���L��H�5.3�1��Z����H��$�dH+%(��H�ĸI�t$�}�1�[]A\A]��H��$�dH+%(�VH�ĸI�t$�}�[]A\A]�1��������H��$�dH+%(�H�ĸI�t$�}�[]A\A]�H��$�dH+%(��H�ĸI�t$�}�[]A\A]�H��$�dH+%(��H�ĸI�t$�}�[]A\A]�H��$�dH+%(��H�ĸI�t$�}�[]A\A]�~H��$�dH+%(uVH�ĸI�t$�}�[]A\A]��H��$�dH+%(u)H�ĸI�t$�}�[]A\A]��1�����7����`�H��$�dH+%(u�H�ĸI�t$�}�[]A\A]�SH��$�dH+%(u�H�ĸI�t$�}�[]A\A]�vH��$�dH+%(u�I�t$�}��H�ĸ[]A\A]�dH��H�5r0�1����L���H��$�dH+%(�=���H�ĸI�t$�}�[]A\A]�xH��$�dH+%(����I�t$�}�1��|����}���&�H���^�M��A��H�
�3R�H�0�USP1���H�� ���H��$�dH+%(�����H�ĸI�t$�}�[]A\A]�H��$�dH+%(�l���H�ĸI�t$�}�[]A\A]�WL��H�5E+�1��������f.�f�1�I��^H��H���PTE1�1�H�=��o`�H�=bH�bH9�tH�\`H��t���H�=�aH�5�a�H)�H��H��H�H��H��H��tH�3`H��t������=�au(UH�=�_H��tH�=�a���y�����a]������S��H�5�1��H�;/��H�=�.��H�=�.�x�H�=�.�l�H�=��`�H�= �T�H�=% �H�H�=I �<�H�=u �0�H�=� �$�H�=� ��H�=� ��H�=!��H�=Y!���H�=u!���H�=�!���H�=�!���H�=	"���H�="��H�=9"��H�=]"��H�=�"��H�5�"�1����H�5�"�1�����
���H�=�-�X�H�ڿ1�H�5#��H�ڿ1�H�5)#��H�ڿ1�H�5;#��H�=W#�
�H�=�#��H�=�#���H�=�#���H�=?$���H�=s$���H�=�$���H�=�$��H�=W%��H�=s%��H�=�%��H�=O-��H�=�%�z�H�=T-�n�H�=[-�b�H�=l-�V�H�=s-�J�H�=~-�>�H�=�%�2�H�=�%�&�H�='&��H�=C&��H�=_&��H�5v&1��_��
[�t�@S�WH����um�S��uN�C��t7��uH�=1-���������H�]5Hc�H�>���H�=-����f�H�5�,�1�����H�5	&�1�����{���H�=>-[�C�H�=D-[�3�H�=�,[�#�H�=�,[��H�=�,[��H�=�,[���H�=-[���H�=�,[���[ÐSH�VH��H�5�,1��%�H�S�1�H�5�,���H�S�H�5T%1����KH�S 1�H�5m%����H�S(�1�H�5�%���H�S0�1�H�5�%��H�S8�1�H�5�,��H�SP�1�H�5�,��H�S@�1�H�5m%�h�H�SH�1�H�5v%[�P�UH��SH��H���.H��H��H�5�-1���%�H��1�H�56,��H�S�1�H�59,��H�{���H���H�52,1�����H���H�52,1�������H�52,1����H���H�50,1����H���H�5/,1���n�H���H�51,1���T����H�54,1���;����H�5-,1���"�H��H�s0H��[]����YH��[�H�5G$1�]���AWAVAUATUS��H��dH�%(H�D$1�H��H�$�������pL�4$L��M���<L�-,L�%�*H�-�+L�=,�C@I�L���1��n�I�V�1�H�5�+�W�I�~(���M�vHM����I�V L��1��.�I�VL��1����I�V1�H������u�I�VPH�5q+�1����I�L���1����I�V�1�H�5e+���A�~dH��*H��*HE�H�5U+�1���A�~`H��*H��*HE�H�5C+�1��o�����H�<$��H�D$dH+%(uLH��[]A\A]A^A_�H�=�*���H�<$�ʿA��1��H�
7*H�A*��H�<$���ATf�USH��H��@dH�%(H�D$81�H�|$H�t$H�D$�D$$�D$H�\$(D$����xPH�D$tH�T$8dH+%(��H��@[]A\�1�I��A�/�H�
�)H�!"���1���&�A�����H����I��A�+H�
V)R�H��!�ATUP1���H�� 1��j�����f�USH��xdH�%(H��$h1�H�D$�����~FH�f��H�|$�)L$0FH�t$`H�D$PH�\$ H�D$()L$@)D$����xMH���|���H��1�H��H�D$����H�|$��H��$hdH+%(uSH��x��[]���������������H�����I�ٿH�5� A��P1�UH�L$(H�T$ ��ZY���D��USH������H��H����H�nH�=�(H�������tzH��H�=�(��������H�sH�;��..ztNf��.�zuH�=�(��1�H��[]��H�5�(���Z��F���@��H�=0(�������븉�H�5�'�1���1������1������ff.�@��AUATUSH��dH�%(H�D$1��D$����H��H����H�>�
1����A�Ń�����H�{�^�H��H���H�{�I�I��H����H�L$H��H��D���z������T$H�5�)1�1ۿ�9�H����L����H�D$dH+%(��H����[]A\A]����H�5�&�1����1���������DD��H�5'�1������H�KL�CD��H�511��������H���e��_���H�SH�5��1��y�H���A��H�SH�5��1��X��o�����ff.���S����H����H�H��������w"H�{+Hc�H�>��DH�=���1�[�H�=��t�1���H�=7&�d�1���H�==&�T�1���H��H�5n�1��������[���H�5w%�1���1��d���f���H����u3H��t.H�>��H�5�%�H��1��P�1�H���f���H�5%�1��+�1���������ff.�f���S1�H��dH�%(H�D$1�H��H�$�u�H�$�H�5k%�É�1����H�D$dH+%(uH����[��]�ff.�f���USH������H�H�nH��I���udH�@%H�5��1��b�H��H���W�H�
?%H�%����H��$HD�H�5%�1��'�H����[]�fDH�%(H�5R�1���H��H����H�
�$H��$����H��$HD�뚉�H�5��1������������SH��dH�%(H�D$1�H��H�$����u3H�$�ÿ1�H�5e$�j�H�D$dH+%(uH����[�f�H�='$����������������USH��dH�%(H�D$1��D$��uyH�.�1�H�5hH������H�t$H�����Å�ug�D$H��H�
�#H�5�#���H��#HE�1����H�D$dH+%(u7H����[]�fD��H�5���}���������H�=�#��������S��uFH��1�H�5�H���=��H�����H�څ�t>H�5p#�1����1�[����H�5'�1���������[�@H�5J#�1�������ff.���USH����uiH�>H���f���Å�x0uH�=##�2�1�H����[]��H�=#����f�H�U���1�H�5$�g��H����[]�fD��H�5o�1��C��������ff.����USH����uYH�>H������Å�~ H�=�"1���H����[]�f�H�U���1�H�5�����H����[]�fD��H�5��1����������ff.����USH����uYH�>H�������Å�x H�=�!1���H����[]�f�H�U���1�H�5T�G��H����[]�fD��H�5O�1��#��������ff.����Uf���SH���dH�%(H��$�1�H�\$P)D$ H��)D$0H�D$H�D$H�D$)D$@�H����H�.H�|$ H�t$�D$ H�l$0�������f�-H�D$�Ph���H�xH�p�?���>���P(H���U������3�����H�D$H�L$H�T$H�ދx(�������L�D$H�L$H��1�H�5��1�����H�|$H��t�0��H��$�dH+%(��H�����[]�DH��H��H�5h 1������������H�5�������H��H�5J �1��g����H��H�5��1��O���H��H�5s�1��7���H��H�5��1�����{���H�=�����j���H��H�5W�1������O������f���SH��dH�%(H�D$1�H�$������uJH�H��H���l����xRH�$H��H�5�1�����1�H�T$dH+%(u>H��[�fD��H�5���]���������H��H�5�1��@��������f���H����u;H�FH�>H�����H�5���H��HD�1�����1�H���@��H�5��1������������ff.����ATUSH��dH�%(H�D$1�H�$��uH�~H��H�.��L�fH�������u}�$L��H���uF�����1���H�5���R��1��������H�T$dH+%(uHH��[]A\�����������H�5/����������H�=���������ff.���S��uVH�FH�>H�����Hc؃�wH�(FH�<��?��1�[�H�=��,�����u�H�=���������[�@��H�5��1��k����f���H��dH�%(H�D$1�H�$��u;H�>H��H���M����uI�<$������uRH�T$dH+%(uWH������H�5������������fDH�5��1�������H�5��1�������a�����H��(dH�%(H�D$1��D$�����D$�D$����H�FH�>H�L$H�T$L�D$H���Y����x�T$H�5��1��>���T$�1�H�5��'���T$�1�H�5����1�H�T$dH+%(u=H��(�f���H�5������������H�5��1��������l��ff.����S��f�~H��dH�%(H��$1�H�|$)$�H���uUH�FH�>H��H��H�������xOH��H�5��1��A��1�H��$dH+%(u2H��[�H�59�����������H�=���������D��S��f�~H��dH�%(H��$1�H�|$)$�H���uUH�>H��H��������~VH��H�50�1����1�H��$dH+%(u9H��[�f.�H�5y��O���������H�=�����������H��H���Copyright (c) 2003-%d Synology Inc. All rights reserved. 

	synoflashcache -conf-enum [v2]	synoflashcache -conf-get REFERENCE_PATH 	synoflashcache -conf-get-ssd-uuid SSD_UUID  	synoflashcache -conf-get-space-uuid SPACE_UUID 	synoflashcache -conf-get-ssd-path SSD_PATH 	synoflashcache -conf-get-space-path SPACE_PATH 	synoflashcache -conf-del REFERENCE_PATH 	synoflashcache -mapper-add CACHE_PATH SPACE_PATH SSD_DEV_PATH 	synoflashcache -mapper-del CACHE_PATH FAST_REMOVE(true / false)	synoflashcache -stat-get CACHE_PATH 	synoflashcache -count-stat-get CACHE_PATH SPACE_PATH 	synoflashcache -ram-need SSD_DEV_SIZE(T/G/M) (BLOCK_SIZE(K))	synoflashcache -ssd-alloc MEM_SIZE(G/M) (BLOCK_SIZE(K))	synoflashcache -used-mem-get 	synoflashcache -unload CACHE_DEV_PATH 	synoflashcache -hit-rate-get SSD_DEV_PATH	synoflashcache -dirty-block-get SSD_DEV_PATH	synoflashcache -proc-writeback-bypass-state SSD_DEV_PATH DISK_DEV_PATH	synoflashcache -load /dev/shared_cache_vg1/alloc_cache_1 /dev/vg1/volume_1	synoflashcache -get-cache-path dev_path # dev path can be ssd dev or disk dev	-conf-enum: enum entries from [%s] 
	-conf-get: get entry from [%s] 
	-conf-del: delete entry from [%s] 
	-mapper-del: delete flashcache's device mapper and related proc. 	-mapper-add: add flashcache's device mapper and related proc. 	-stat-get: get statistic of specified cache path 	-count-stat-get: get flashcache_stat of specified cache device and space device	-ram-need: get the needed memory space by ssd device size. 	-ssd-alloc: get the ssd space can be alloc by memory size. 	-get-progress ssd_path space_path remove/APM: get the flush progress in /proc/flashcache/node/	-sysctl-get op_num ssd_path space_path: ex. /dev/md3, /dev/vg1/volume3, see function for the op_num	-version-get ssd_path: ex. /dev/md3	-size-get ssd_path: ex. /dev/shared_cache_vg1/alloc_cache_1	-hit-rate-get ssd_path: ex. /dev/md3, get hit count and total count that needs to be accelerated	-unpin-files files mount_path	-handle-state-adjust-and-set ssd_path disk_path state	-handle-state-set-no-adjust ssd_path disk_path state	-handle-state-get ssd_path disk_path	-do-hibernation-flush sleep_sec	-arflush-info-get ssd_path disk_path	-load cache_dev_path volume_dev_pathDirty Thresh Percent: [%d]%% 
	 Read Hits Blocks: [%llu], percent: [%d]%% 
	 Write Hits Blocks: [%llu], percent: [%d]%% 
	 Read Sequence Skips: [%llu] 
	 Write Sequence Skips: [%llu] 
	 Dirty Write Back KB: [%llu] 
	 Dirty Write Back Sync KB: [%llu] 
Status of Flashcache [%s] is not found 
%s:%d failed to get statistic of flashcache %s [0x%04X %s:%d]%s:%d no flashcache found for space [%s]failed to create flashcache on ssd [%s] and space [%s] [0x%04X %s:%d] 
Failed to find match ssd path from %sFailed to find match target path from %sCan't get sysctl result: op=%d dev=%s+%s
Get Version failed ssd path=%s
Get Version: Syno Hash MappingGet Version: Syno Hash Mapping v2Incorrect parameter number (%d)
Start to %s files(%s) mount path(%s)
Start to check if file (%s) is pinned
Start to check metadata on %s
Failed to flush cache [%s] (%d)
Failed to cancel flush cache [%s] (%d)
Failed to unload cache [%s] (%d)
No configuration of ssd_path[%s] found
Status of Flashcache [%s] is not found
Status of Flashcache [%s] parser fail
Hit rate of %s is %llu / %llu
Failed to get dirty block from cache[%s]
The number of dirty blocks on %s is %llu.
Failed to do short flush for hibernationFailed to Delete flashcache on [%s]
%s:%d Fail to get SSD config by cache device path [%s]. [0x%04X %s:%d]Status of Flashcache [%s] parser fail 
Usage: synoflashcache 
SYNOPSIS 	synoflashcache -h 	-h: show help /usr/syno/etc/flashcache.conf	-pin-files files mount_path	-is-pin file_path	-check-metadata ssd_md_path	-get-total-memory	-flush cache_dev_path	-cancel-flush cache_dev_pathFallow Delay: [%d] seconds 
	 Policy: [fifo] 	 Policy: [lru] 	 Mode: [back] 	 Mode: [thru] 	 Mode: [around] 	 Mode: [unknown] 	 Mode: [back-bypass] 	 Mode: [back-crash] 	 Mode: [dummy] 	 Mode: [write_none] 	 Read Blocks: [%llu] 
	 Write Blocks: [%llu] 
	 Write Miss SSD: [%llu] 
	 No Room: [%llu] 
	 SSD Device Path: [%s] 
	 Space Path: [%s] 
	 Cached Blocks: [%llu] 
	 Total Blocks: [%llu] 
	 Block Size KB: [%d] 
	 Dirty Blocks: [%llu] 
	 Occupied Blocks: [%llu] 
	 Reusable Blocks: [%llu] 
	 Version: [%d] 
	 Support pin: [%d] 
truefalsesynoflashcache.c%s:%d failed to get configNo configuration found 	 Space UUID: [%s] 
	 SSD ID: [%s] 
	 SSD UUID: [%s] 
	 SSD Path: [%s] 
	 Space Missing: [%s] 
	 Cache Missing: [%s] 
Incorrect argc=%d
removeAPMCan't get progressNo flush operations nowCurrent flush progress=%f
invalid sysctl index: %d
Get Version: OriginalGet Version: SynoGet Size: %llu
Used Memory Byte=%lld ret=%d
successfullyPinUnpinunpin%s files %s
Get total memory failedGet total memory = %llu
YesNoGet file pin state errorFile (%s) pin state = %s
Metadata existed on %s
Can't find metadata on %s
CanceledSuccessFailed to get configCache of %s is not loaded
Invalid path of %s or %s
Failed to get hit rate [%s]
Yes
No
Failed to parse stringUNKNOWNFailed to get stateFailed to get ARFlush infoARFlush Status: %d
DirtyInit: %d
DirtyRemaining: %d
Failed to load flashcacheCache Path: %s
Failed to get cache pathyessupport_ssd_cache/etc.defaults/synoinfo.confNot support flashcache !! -conf-enumv%d-conf-get-by-ssd-uuid-conf-get-by-space-uuid-conf-get-by-ssd-path-conf-get-by-space-path-conf-get-conf-del-mapper-add-mapper-del-count-stat-get-get-progress-sysctl-get-version-get-size-get-used-mem-get-pin-files-unpin-files-is-pin-check-metadata-cancel-flush-unload-hit-rate-get-dirty-block-get-proc-write-back-bypass-state-handle-state-get-handle-state-adjust-and-set-handle-state-set-no-adjust-do-hibernation-flush-arflush-info-get-load-get-cache-pathNORMALNORMAL_STOP_WRITEBACKDISABLED_NO_FLUSHFLUSH_FOR_HIBERNATION��$��4��D��T��d������������������������; l���T\���|l���x���$\���,���<���,�����P|���|���������H<�������l����������L��8��d����L�������l��0���`L�������������������0��TzRx�p��"zRx�$����FJw�?;*3$"Dظ��\����A��Hxt��A��
HH
HH
HH
HH
HH
HH
HH
EA�8���A��4���YA�D�D )
HAEADOH4���B�B�B �B(�A0�A8�FP�
8A0A(B BBBA@d����B�E�A �G`e
 AABARhSpAxA�K`8����A�A�G�	�
CAAq�	C�	P�	A�	(�h���E�A�D |
AAH8<���F�B�A �A(�D@�
(C ABBI L����E�J
AL
DpL��cHn
J ����cE�F O
CA(�����E�A�D s
CAG ����xE�D Q
CC(���E�A�D0�
CAG ,����E�C
H[
E4P���E�A�D j
CAHm
CAG4�����E�A�D h
CAJ]
CAG4�����E�A�D h
CAJ]
CAG,�4��'E�L�G�6
CAF (4���E�D _
AGL���dH{
E0h���F�A�A �D0�
 AABH ����wE�o
Dc
E����H O
I�����H0�
J �����E�R�t
AD 0���E�R�m
AK�@��$F�K�K �J(�G�y
(I ABBE}
(C ABBA�
(I ABBE^
(I ABBEO
(I ABBEu
(I ABBE^
(I ABBE^
(I ABBEH
(A ABBE\
(K ABBE^
(I ABBEm
(I ABBE^
(I ABBE^
(I ABBE^
(I ABBEZ
(I ABBEZ
(I ABBEn
(I ABBEZ
(I ABBEg
(A ABBEy
(I ABBEK�R�A�A�K�c
(I ABBE^
(I ABBE0�/4h;h]hQhch��� 
�J��������o
0
��P�8	���o���oh���o�o����oȍ6 F V f v � � � � � � � � !!&!6!F!V!f!v!�!�!�!�!�!�!�!�!""&"6"F"V"f"v"�"�"�"�"�"�"�"�"#��