???????????????????????????? ??????????????/????????????????? ............/............... .........................../... ????????????????????????????? >>>>>>>>>>>>>/>>>>>>>>>>>>>>>>> ÿØÿà JFIF    ÿÛ „  ( %!1!%)+//.383,7(-.+  -%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ  ¥2" ÿÄ     ÿÄ J    ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ   ÿÄ *  !1AQa‘"2q3±ð#b¡ÿÚ   ? ¼QxJQaÍuò¸Zö Úü8,ÐÚú "SSn<rçù–´âE—^ªBÖ9À\†¸ÔÁT­ÃÛ5 ëd´³Í#Ý;Þ38œî ¶H£M:wÎ3…³…âpÔF&‚FK¸9„â4àGEõªfÿ ‘ñ(ßw­pŽF|È¥ù®häðÍѶ¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e ríV ?> ......................................... ............................................................................. <<<<<<<<<<<<<<<<<<<<<<<<<<<<<< >>>>>>>>>>>>>/>>>>>>>>>>>>>>>>>> <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ..@ X t   „    ( (@՘`  2& 7 N f   ( t W@\1W t Dž ܅ 8-Mt t@B[  ?t@ W  @ *  6 8E   @tR @>@] >e >r t~ @ 58   @  ц چ @   :%X@W   ) @6  tw (( @` u6   ه x   @ ` 1 P   d @5`n |  t 0 (@[ ` ՘ ͈ @J`ֈ    ; @`C g  0;  @`s 6@  ;  @ ω  $ %^^@ "^  0W 8WW. F ^ t  0@L(6@   @Ai'#"('*+    @ @%  J  @`< J ] J  @`< t    ֋ ( J @` 6s  ( J @`6s  (  @ `6 ) 2 J  s @6C R k    ˌ  @PՌ `0 ߌ  d=>:9785342 $ 8 O l ˍ ލ # G i ֎  * E q6 S  J  @Pc ( 5@(`; v ՘  d  (@ `~  ( d @5`" ̏ 6 ( L G, GVSq6   > T@\TT Q tSR U 0\Kx'* O 3  42D 5P 9Z 47R:= N  LB[ Mf C w @ [ X  ZY \YPKR 8Wr  Bkn z@c   P Ȑ >@Ӑ   :%X@ > >  >@ (#@O>c& 8 @(Ndbce>  Ñ ّ q65   @  @!  kF @`Z omO  k)%@o   >!@s   s @ k x tu vy ts>nLONM ,  's 6>W  A(Ԓ  W  t t>5t  tp >5t  8O>g>;  O>gAq(M  O>gAq_  O>g^ >o  ] n{  lZq(  YW6>  t t  ,m "t "'(  ,ۓ   'tJ %  't t;  'tR tZ  t t tWq6zu  t t  't  at ߔ  s 6  'ts 6@  *  'ts W6>A  'ts 6S    n   '  t  t:%X   tΕ  8 t ޕ   p   ?t[ z  t tYq6z*  ?t[ za > W  ?tn  ?t    Җ  t?t  ?t  ?t  2qXk+ D   t/ t` t Z   × eܗ DA  ts)%>  ( ; M _ t Ǵ Ǵ t tY   t tq65tǘ ژ Ĭ tk t   ?t  ?t/ K h    ʙ    t t t?t 8)6 4 P p }   š ޚ    / E Y   tatl    t t    t tq6қ C  1@ t   t    t " !> T p    t t ( t tҜ *    t$ .  t zD 0d .   t1^ 4  t^W 6Ɲ    't : :%X68 <  s nu6 > W68. @ q(@ T 8D B  s چ Y D o F A H  J q(H 8 L s ʞ N Aڞ P  R A T Aq(" V  ? X  Ê ] Z   n >w \  ^ X ^  Aɟ b Mڟ d  s 6 M f ^  s (6  i  t s n:%X6  k   M6 n 3 m  t s nW6 B o q(@ V q q(@ r s (W6 u "W6 w q(W6 y q(Ġ { 8N?ݠ }  A'  Ĭ 't ( ;   WU   ֊ "g   A*-8{  b  Y   A͡   n   s 6n   n  8  lZq(.  Bkhq(>  BkhO  Bkh_ w  N?  N?q(  Wa#W{ >  }iommufd_hw_capabilitiesIOMMU_HW_CAP_DIRTY_TRACKINGIOMMU_HW_CAP_PCI_PASID_EXECIOMMU_HW_CAP_PCI_PASID_PRIViommufd_hw_info_flagsIOMMU_HW_INFO_FLAG_INPUT_TYPEin_data_typeout_data_typeiommu_hw_infodata_uptrout_max_pasid_log2out_capabilitiesIOMMUFD_ACCESS_RW_READIOMMUFD_ACCESS_RW_WRITEIOMMUFD_ACCESS_RW_KTHREAD__IOMMUFD_ACCESS_RW_SLOW_PATHiommufd_ucmdubuffernew_objREMOVE_WAITREMOVE_OBJ_TOMBSTONEiommufd_hwpt_nestediommufd_attach_handleiopt_areapages_nodestorage_domainpage_offsetprevent_accessnum_accessesiopt_pagesnpinnedlast_npinnedsource_tasksource_mmsource_userpinned_pfnsaccess_itreedomains_itreeiopt_area_contig_itercur_iovalast_iovaiopt_address_typeIOPT_ADDRESS_USERIOPT_ADDRESS_FILEiommufd_attachdevice_arrayattach_fnout_pagesioas_idnew_ioaspt_iddo_attachhwpt_pagingiommu_hwpt_pgfaultiommufd_page_response_codeIOMMUFD_PAGE_RESP_SUCCESSIOMMUFD_PAGE_RESP_INVALIDiommu_hwpt_page_responseiommu_fault_allocout_fault_idout_fault_fdiommu_veventq_flagIOMMU_VEVENTQ_FLAG_LOST_EVENTSiommu_veventq_allocviommu_idveventq_depthout_veventq_idout_veventq_fdeventqveventqveventiommu_hwpt_allocout_hwpt_idfault_idiommufd_hwpt_set_dirty_tracking_flagsIOMMU_HWPT_DIRTY_TRACKING_ENABLEiommu_hwpt_set_dirty_trackinghwpt_idiommufd_hwpt_get_dirty_bitmap_flagsIOMMU_HWPT_GET_DIRTY_BITMAP_NO_CLEARiommu_hwpt_get_dirty_bitmapiommu_hwpt_invalidateimmediate_attachinterval_tree_double_span_iteritreesspansis_usedIOPT_ALLOC_IOVAiopt_allowediopt_reservedIOPT_PAGES_ACCOUNT_NONEIOPT_PAGES_ACCOUNT_USERIOPT_PAGES_ACCOUNT_MMIOPT_PAGES_ACCOUNT_MODE_NUMiopt_pages_listiova_bitmap_fn_argiovasnum_iovasnew_iova_alignmentallowed_iovapages_listdst_iovaiommu_ioas_allocout_ioas_idiommu_iova_rangeiommu_ioas_iova_rangesallowed_iovasout_iova_alignmentiommu_ioas_allow_iovasiommufd_ioas_map_flagsIOMMU_IOAS_MAP_FIXED_IOVAIOMMU_IOAS_MAP_WRITEABLEIOMMU_IOAS_MAP_READABLEiommu_ioas_mapuser_vaiommu_ioas_map_fileiommu_ioas_copydst_ioas_idsrc_ioas_idsrc_iovaiommu_ioas_unmapiommufd_optionIOMMU_OPTION_RLIMIT_MODEIOMMU_OPTION_HUGE_PAGESiommufd_option_opsIOMMU_OPTION_OP_SETIOMMU_OPTION_OP_GETiommu_optionoption_idobject_idiommu_ioas_change_processpfn_reader_userioas_listIOMMUFD_CMD_BASEIOMMUFD_CMD_DESTROYIOMMUFD_CMD_IOAS_ALLOCIOMMUFD_CMD_IOAS_ALLOW_IOVASIOMMUFD_CMD_IOAS_COPYIOMMUFD_CMD_IOAS_IOVA_RANGESIOMMUFD_CMD_IOAS_MAPIOMMUFD_CMD_IOAS_UNMAPIOMMUFD_CMD_OPTIONIOMMUFD_CMD_VFIO_IOASIOMMUFD_CMD_HWPT_ALLOCIOMMUFD_CMD_GET_HW_INFOIOMMUFD_CMD_HWPT_SET_DIRTY_TRACKINGIOMMUFD_CMD_HWPT_GET_DIRTY_BITMAPIOMMUFD_CMD_HWPT_INVALIDATEIOMMUFD_CMD_FAULT_QUEUE_ALLOCIOMMUFD_CMD_IOAS_MAP_FILEIOMMUFD_CMD_VIOMMU_ALLOCIOMMUFD_CMD_VDEVICE_ALLOCIOMMUFD_CMD_IOAS_CHANGE_PROCESSIOMMUFD_CMD_VEVENTQ_ALLOCIOMMUFD_CMD_HW_QUEUE_ALLOCiommu_destroyiommu_vfio_ioasiommu_viommu_allocout_viommu_idiommu_vdevice_allocout_vdevice_idiommu_hw_queue_allocout_hw_queue_idnesting_parent_iovaiommufd_sw_msi_mapsw_msi_itemiommufd_object_opspre_destroyucmd_bufferhw_queueget_dirty_bitmapallow_iovasioas_copyiova_rangesiommufd_ioctl_opioctl_numexecuteto_destroyiopt_pages_accesspfn_batchnpfnstotal_pfnsupagesupages_lenupages_startupages_endufoliosufolios_lenufolios_offsetufolios_nextpfn_readerbatch_start_indexbatch_end_indexunlock_arealock_areafirst_page_offitree1itree2backup_leniommufd_vfio_ioas_opIOMMU_VFIO_IOAS_GETIOMMU_VFIO_IOAS_SETIOMMU_VFIO_IOAS_CLEARvfio_info_cap_headervfio_iommu_type1_infoiova_pgsizesvfio_iova_rangevfio_iommu_type1_info_cap_iova_rangenr_iovasvfio_iommu_type1_info_dma_availvfio_iommu_type1_dma_mapvfio_iommu_type1_dma_unmapfill_cap_fnbase_pa__iommu_read_and_clear_dirty__iopt_area_unfill_domain__iopt_remove_reserved_iova_iommufd_object_alloc_iommufd_object_alloc_ucmdbatch_add_pfn_numbatch_from_domainbatch_to_domainbatch_unpincharge_currentclear_xarraycopy_data_pageget_compat_ioasinterval_tree_double_span_iter_firstinterval_tree_double_span_iter_nextinterval_tree_double_span_iter_updateiommufd_access_attachiommufd_access_attach_internaliommufd_access_change_ioasiommufd_access_createiommufd_access_create_internaliommufd_access_destroyiommufd_access_destroy_objectiommufd_access_detachiommufd_access_notify_unmapiommufd_access_pin_pagesiommufd_access_replaceiommufd_access_rwiommufd_access_unpin_pagesiommufd_auto_response_faultsiommufd_check_iova_rangeiommufd_ctx_from_fdiommufd_ctx_from_fileiommufd_ctx_getiommufd_ctx_has_groupiommufd_ctx_putiommufd_destroyiommufd_device_attachiommufd_device_bindiommufd_device_change_ptiommufd_device_destroyiommufd_device_detachiommufd_device_do_attachiommufd_device_do_replaceiommufd_device_pre_destroyiommufd_device_replaceiommufd_device_to_ictxiommufd_device_to_idiommufd_device_unbindiommufd_eventq_fops_polliommufd_eventq_fops_releaseiommufd_eventq_initiommufd_exitiommufd_fault_allociommufd_fault_destroyiommufd_fault_fops_readiommufd_fault_fops_writeiommufd_fault_iopf_handleriommufd_fill_cap_dma_availiommufd_fill_cap_iovaiommufd_fops_ioctliommufd_fops_mmapiommufd_fops_openiommufd_fops_releaseiommufd_fops_vma_closeiommufd_fops_vma_openiommufd_get_groupiommufd_get_hw_infoiommufd_get_objectiommufd_group_releaseiommufd_group_remove_reserved_iovaiommufd_hw_pagetable_attachiommufd_hw_pagetable_detachiommufd_hw_queue_alloc_ioctliommufd_hw_queue_destroyiommufd_hwpt_allociommufd_hwpt_get_dirty_bitmapiommufd_hwpt_invalidateiommufd_hwpt_nested_abortiommufd_hwpt_nested_destroyiommufd_hwpt_paging_abortiommufd_hwpt_paging_allociommufd_hwpt_paging_destroyiommufd_hwpt_set_dirty_trackingiommufd_initiommufd_ioas_allociommufd_ioas_alloc_ioctliommufd_ioas_allow_iovasiommufd_ioas_change_processiommufd_ioas_copyiommufd_ioas_destroyiommufd_ioas_iova_rangesiommufd_ioas_mapiommufd_ioas_map_fileiommufd_ioas_optioniommufd_ioas_unmapiommufd_object_abortiommufd_object_abort_and_destroyiommufd_object_dec_waitiommufd_object_finalizeiommufd_object_removeiommufd_option_rlimit_modeiommufd_release_all_iova_rwsemiommufd_take_all_iova_rwsemiommufd_vdevice_abortiommufd_vdevice_alloc_ioctliommufd_vdevice_destroyiommufd_veventq_abortiommufd_veventq_allociommufd_veventq_deliver_fetchiommufd_veventq_deliver_restoreiommufd_veventq_destroyiommufd_veventq_fops_readiommufd_vfio_compat_ioas_createiommufd_vfio_compat_ioas_get_idiommufd_vfio_compat_set_no_iommuiommufd_vfio_ioasiommufd_vfio_ioctliommufd_vfio_iommu_get_infoiommufd_viommu_alloc_ioctliommufd_viommu_destroyiopt_add_accessiopt_alloc_file_pagesiopt_alloc_iovaiopt_alloc_user_pagesiopt_area_add_accessiopt_area_contig_initiopt_area_contig_nextiopt_area_fill_domainiopt_area_fill_domainsiopt_area_remove_accessiopt_area_splitiopt_area_unfill_domainiopt_area_unfill_domainsiopt_area_unmap_domainiopt_area_unmap_domain_rangeiopt_calculate_iova_alignmentiopt_check_iova_alignmentiopt_cut_iovaiopt_destroy_tableiopt_disable_large_pagesiopt_enable_large_pagesiopt_fill_domainiopt_free_pages_listiopt_get_pagesiopt_init_tableiopt_insert_areaiopt_map_file_pagesiopt_map_pagesiopt_map_user_pagesiopt_pages_fill_from_xarrayiopt_pages_fill_xarrayiopt_pages_rw_accessiopt_pages_rw_pageiopt_pages_rw_slowiopt_pages_unfill_xarrayiopt_pages_update_pinnediopt_read_and_clear_dirty_dataiopt_release_pagesiopt_remove_accessiopt_remove_reserved_iovaiopt_reserve_iovaiopt_set_allow_iovaiopt_set_dirty_trackingiopt_table_add_domainiopt_table_enforce_dev_resv_regionsiopt_table_remove_domainiopt_unmap_alliopt_unmap_iovaiopt_unmap_iova_rangeneed_charge_updatepages_to_xarraypfn_reader_firstpfn_reader_nextpfn_reader_release_pinspfn_reader_unpinpfn_reader_user_destroypfn_reader_user_pintemp_kmallocupdate_mm_locked_vm