§
    £‰¬j5-  ã                   óÒ  — d Z ddlZddlmZ ddlmZmZmZmZ ddl	m
Z
mZ ddlmZmZ ddlmZ ddlmZ  ej        d	¦  «        Z ed
dg¬¦  «        Z e¦   «         Z e¦   «         Z G d„ de
¦  «        Ze                     dd¬¦  «         e¦   «          e eg d¢¦  «        ¦  «        fdededeeef         fd„¦   «         Ze                     dd¬¦  «         edd¬¦  «         edd¬¦  «         edd¬¦  «         eddd¬ ¦  «         edd¬!¦  «         e eg d"¢¦  «        ¦  «        fd#edz  d$edz  d%edz  d&ed'ededeeef         fd(„¦   «         Ze                     d)d*¬¦  «         e eg d+¢¦  «        ¦  «        fdedeeef         fd,„¦   «         Z e                     d-d.¬¦  «         e eg d/¢¦  «        ¦  «        fdedeeef         fd0„¦   «         Z! G d1„ d2e
¦  «        Z"e                     d3d4¬¦  «         e eg d5¢¦  «        ¦  «        fde"dedeeef         fd6„¦   «         Z#e                     d7d8¬¦  «         edd9¬¦  «         edd:¬¦  «         edd;¬¦  «         eddd¬ ¦  «         edd¬!¦  «         e eg d"¢¦  «        ¦  «        fd<edz  d=edz  d%edz  d&ed'ededeeef         fd>„¦   «         Z$e                     d?d@¬¦  «         edAdB¬¦  «         e eg dC¢¦  «        ¦  «        fd<ededeeef         fdD„¦   «         Z%e                     dEdF¬¦  «         eddG¬¦  «         e eg dH¢¦  «        ¦  «        fd<edz  dedeeef         fdI„¦   «         Z&dS )Jz›FastAPI router for Invoice Item Recognition & Inventory / Equipment Truth Management.
Adheres strictly to Enterprise AEC DDD Architecture & RBAC controls.
é    N)ÚAny)Ú	APIRouterÚDependsÚHTTPExceptionÚQuery)Ú	BaseModelÚField)Úget_current_userÚrequire_role)ÚInvoiceTruthExtractionService)ÚWarehouseDispatchServicezdscons.api.inventory_truthz/v1/erp/inventory-truthz,ERP - Inventory & Equipment Truth Extraction)ÚprefixÚtagsc                   óH   — e Zd ZU dZedz  ed<    edd¬¦  «        Zeed<   dS )ÚExtractTruthRequestNÚ
company_idTuD   XÃ³a cÃ¡c thiáº¿t bá»‹ nhÃ¡p cÅ© khÃ´ng rÃµ nguá»“n gá»‘c hÃ³a Ä‘Æ¡n©ÚdefaultÚdescriptionÚpurge_drafts)	Ú__name__Ú
__module__Ú__qualname__r   ÚstrÚ__annotations__r	   r   Úbool© ó    úOC:\Projects\DSCons\app\modules\inventory\presentation\inventory_truth_routes.pyr   r      sW   € € € € € € Ø!€J��d‘
Ð!Ð!Ñ!Ø˜ØÐ"hðñ ô €L�$ð ð ñ ð ð r   r   z/extract-from-invoicesu@   QuÃ©t & TrÃ­ch xuáº¥t Dá»¯ liá»‡u Truth tá»« HÃ³a Ä�Æ¡n Mua VÃ o)Úsummary)Ú
superadminÚdirectorÚ
accountantÚreqÚcurrent_userÚreturnc              ƒ   óâ   K  — 	 t                                | j        | j        ¬¦  «        }|S # t          $ r8}t
                               d|› �d¬¦  «         t          dd|›�¬¦  «        ‚d}~ww xY w)	uÂ  Tá»± Ä‘á»™ng nháº­n diá»‡n ná»™i dung hÃ ng hÃ³a tá»« hÃ³a Ä‘Æ¡n mua vÃ o:
    - MÃ¡y mÃ³c thiáº¿t bá»‹ (Ä�VT: Chiáº¿c/CÃ¡i/Bá»™) -> Nháº­p vÃ o Danh má»¥c Thiáº¿t bá»‹ Sá»Ÿ há»¯u (erp_equipment).
    - ThuÃª ca mÃ¡y (Ä�VT: Ca/Giá»�/NgÃ y) -> Ghi nháº­n chi phÃ­ thuÃª ca mÃ¡y, khÃ´ng thÃªm tÃ i sáº£n.
    - HÃ ng hÃ³a váº­t tÆ° khÃ¡c (ThÃ©p, Xi mÄƒng, BÃª tÃ´ng, CÃ¡t Ä‘Ã¡, XÄƒng dáº§u...) -> Nháº­p kho chá»� xuáº¥t (erp_warehouse_inventory).
    )r   r   z&Error extracting truth from invoices: T©Úexc_infoéô  u+   Lá»—i khi trÃ­ch xuáº¥t dá»¯ liá»‡u Truth: ©Ústatus_codeÚdetailN)ÚserviceÚextract_and_sync_all_truthr   r   Ú	ExceptionÚloggerÚerrorr   )r$   r%   ÚresÚes       r   Úextract_truth_from_invoicesr5       sš   è è € ð	
Ý×0Ò0Ø”~°CÔ4Dð 1ñ 
ô 
ˆð ˆ
øÝð 
ð 
ð 
Ý�ŠÐA¸aÐAÐAÈDˆÑQÔQÐQÝØÐ$WÐRSÐ$WÐ$Wð
ñ 
ô 
ð 	
øøøøð
øøøs   „', ¬
A.¶3A)Á)A.z
/warehouseu>   Danh SÃ¡ch Kho Váº­t TÆ° Nháº­p Tá»« HÃ³a Ä�Æ¡n (Chá»� Xuáº¥t)u‚   Lá»�c theo nhÃ³m váº­t tÆ°: STEEL, CEMENT, AGGREGATE, CONCRETE, BRICK, PIPES_FITTINGS, FINISHING_PAINT, FUEL_OIL, SAFETY_EQUIPMENT)r   uI   Tráº¡ng thÃ¡i tá»“n kho: CHá»œ_XUáº¤T_CÃ”NG_TRÆ¯á»œNG, Ä�Ãƒ_NHáº¬P_KHO...u?   TÃ¬m theo tÃªn váº­t tÆ°, mÃ£ hiá»‡u, nhÃ  cung cáº¥p, sá»‘ HÄ�é2   é   r*   )ÚgeÚle)r8   )r!   r"   Úpmr#   Úsite_engineerÚwarehouse_keeperÚmaterial_groupÚstatusÚsearchÚlimitÚoffsetc              ƒ   óæ   K  — 	 t                                | ||||¬¦  «        \  }}d||||dœS # t          $ r8}t                               d|› �d¬¦  «         t          dd|›�¬	¦  «        ‚d
}~ww xY w)u]   Láº¥y danh sÃ¡ch váº­t tÆ° nháº­p kho Ä‘ang chá»� xuáº¥t / xá»­ lÃ½ tá»« hÃ³a Ä‘Æ¡n mua vÃ o.)r=   r>   r?   r@   rA   Úsuccess©r>   ÚitemsÚtotal_countr@   rA   z#Error listing warehouse inventory: Tr(   r*   u*   Lá»—i khi táº£i danh sÃ¡ch kho váº­t tÆ°: r+   N)r.   Úlist_warehouse_inventoryr0   r1   r2   r   )	r=   r>   r?   r@   rA   r%   rE   rF   r4   s	            r   Úget_warehouse_inventoryrH   ;   s¿   è è € ð&
Ý$×=Ò=Ø)ØØØØð >ñ 
ô 
Ñˆˆ{ð  ØØ&ØØð
ð 
ð 	
øõ ð 
ð 
ð 
Ý�ŠÐ>¸1Ð>Ð>ÈˆÑNÔNÐNÝØÐ$VÐQRÐ$VÐ$Vð
ñ 
ô 
ð 	
øøøøð
øøøó   „). ®
A0¸3A+Á+A0z/equipment-truthu@   Danh SÃ¡ch Thiáº¿t Bá»‹ Sá»Ÿ Há»¯u TrÃ­ch Xuáº¥t Tá»« HÃ³a Ä�Æ¡n)r!   r"   r:   r#   r;   Úmechanicc              ƒ   óê   K  — 	 t                                ¦   «         }d|t          |¦  «        dœS # t          $ r8}t                               d|› �d¬¦  «         t          dd|›�¬¦  «        ‚d	}~ww xY w)
ud   Láº¥y danh sÃ¡ch mÃ¡y mÃ³c, xe mÃ¡y cÃ´ng trÃ¬nh sá»Ÿ há»¯u thá»±c táº¿ cÃ³ chá»©ng tá»« hÃ³a Ä‘Æ¡n.rC   )r>   Ú	equipmentrF   z Error fetching truth equipment: Tr(   r*   u4   Lá»—i khi táº£i danh má»¥c thiáº¿t bá»‹ sá»Ÿ há»¯u: r+   N)r.   Úlist_truth_equipmentÚlenr0   r1   r2   r   )r%   rL   r4   s      r   Úget_truth_equipmentrO   d   s    è è € ð
Ý×0Ò0Ñ2Ô2ˆ	àØ"Ý˜y™>œ>ð
ð 
ð 	
øõ
 ð 
ð 
ð 
Ý�ŠÐ;¸Ð;Ð;ÀdˆÑKÔKÐKÝØÐ$`Ð[\Ð$`Ð$`ð
ñ 
ô 
ð 	
øøøøð
øøøs   „+0 °
A2º3A-Á-A2z/summaryu9   Tá»•ng Há»£p Thá»‘ng KÃª TÃ i Sáº£n & Kho Váº­t TÆ° Truth)r!   r"   r:   r#   r;   c              ƒ   óÎ   K  — 	 t                                ¦   «         }d|dœS # t          $ r8}t                               d|› �d¬¦  «         t          dd|›�¬¦  «        ‚d	}~ww xY w)
uj   Thá»‘ng kÃª tá»•ng há»£p sá»‘ lÆ°á»£ng thiáº¿t bá»‹ sá»Ÿ há»¯u, giÃ¡ trá»‹ tá»“n kho theo nhÃ³m váº­t tÆ°.rC   )r>   r    zError fetching truth summary: Tr(   r*   u7   Lá»—i khi tá»•ng há»£p thá»‘ng kÃª kho & thiáº¿t bá»‹: r+   N)r.   Úget_truth_summaryr0   r1   r2   r   )r%   r    r4   s      r   Úget_inventory_truth_summaryrR   {   sŽ   è è € ð
Ý×+Ò+Ñ-Ô-ˆØ#°Ð8Ð8Ð8øÝð 
ð 
ð 
Ý�ŠÐ9°aÐ9Ð9ÀDˆÑIÔIÐIÝØÐ$cÐ^_Ð$cÐ$cð
ñ 
ô 
ð 	
øøøøð
øøøs   „" ¢
A$¬3AÁA$c                   ó�  — e Zd ZU eed<    eddd¬¦  «        Zeed<    edd¬	¦  «        Zedz  ed
<    edd¬	¦  «        Z	edz  ed<    edd¬	¦  «        Z
edz  ed<    edd¬	¦  «        Zedz  ed<    edd¬	¦  «        Zedz  ed<    edd¬	¦  «        Zedz  ed<    edd¬	¦  «        Zedz  ed<    edd¬	¦  «        Zedz  ed<   dS )ÚCreateDispatchRequestÚinventory_item_id.r   u   Khá»‘i lÆ°á»£ng xuáº¥t kho)Úgtr   Úquantity_dispatchedNu*   ID Dá»± Ã¡n nháº­n váº­t tÆ° (TÃ¹y chá»�n)r   Ú
project_idu!   ID Háº¡ng má»¥c WBS (TÃ¹y chá»�n)Úwbs_idu1   ID CÃ´ng tÃ¡c Dá»± toÃ¡n bÃ³c tÃ¡ch (TÃ¹y chá»�n)Útakeoff_item_idu   NgÃ y xuáº¥t kho (YYYY-MM-DD)Údispatch_dateu%   NgÆ°á»�i nháº­n / Chá»‰ huy trÆ°á»ŸngÚrecipient_nameu    Biá»ƒn sá»‘ xe / PhÆ°Æ¡ng tiá»‡nÚtransport_vehicleu   Má»¥c Ä‘Ã­ch xuáº¥t khoÚpurposeu   Ghi chÃº thÃªmÚnotes)r   r   r   r   r   r	   rW   ÚfloatrX   rY   rZ   r[   r\   r]   r^   r_   r   r   r   rT   rT   Œ   sb  € € € € € € ØÐÐÑØ!&  s¨qÐ>ZÐ![Ñ![Ô![Ð˜Ð[Ð[Ñ[Ø"˜U¨4Ð=iÐjÑjÔj€J��d‘
ÐjÐjÑjØ˜ tÐ9\Ð]Ñ]Ô]€FˆC�$‰JÐ]Ð]Ñ]Ø"' %°ÐBuÐ"vÑ"vÔ"v€O�S˜4‘ZÐvÐvÑvØ % ¨dÐ@_Ð `Ñ `Ô `€M�3˜‘:Ð`Ð`Ñ`Ø!& ¨tÐAhÐ!iÑ!iÔ!i€N�C˜$‘JÐiÐiÑiØ$) E°$ÐDfÐ$gÑ$gÔ$gÐ�s˜T‘zÐgÐgÑgØ˜%¨Ð:SÐTÑTÔT€GˆS�4‰ZÐTÐTÑTØ˜ dÐ8HÐIÑIÔI€Eˆ3�‰:ÐIÐIÑIÐIÐIr   rT   z	/dispatchuG   Táº¡o Phiáº¿u Xuáº¥t Kho Linh Hoáº¡t (CÃ´ng TrÃ¬nh / WBS / DÃ¹ng Chung))r!   r"   r:   r<   r;   c              ƒ   óž  K  — 	 t                                | j        | j        | j        | j        | j        | j        | j        | j	        | j
        | j        ¬¦
  «
        }d|dœS # t          $ r#}t          dt          |¦  «        ¬¦  «        ‚d}~wt          $ r8}t                                d|› �d¬	¦  «         t          d
d|›�¬¦  «        ‚d}~ww xY w)u1  Xuáº¥t kho váº­t tÆ° linh hoáº¡t ra cÃ´ng trÆ°á»�ng:
    - KhÃ´ng cá»©ng nháº¯c: Há»— trá»£ xuáº¥t theo dá»± Ã¡n, theo WBS, hoáº·c xuáº¥t dÃ¹ng chung/báº£o dÆ°á»¡ng.
    - An toÃ n: KhÃ³a dÃ²ng FOR UPDATE chá»‘ng xuáº¥t Ã¢m, tá»± Ä‘á»™ng trá»« sá»‘ lÆ°á»£ng cÃ²n láº¡i vÃ  cáº­p nháº­t tráº¡ng thÃ¡i.
    )
rU   rW   rX   rY   rZ   r[   r\   r]   r^   r_   rC   )r>   Údispatchi�  r+   Nz#Error creating warehouse dispatch: Tr(   r*   u$   Lá»—i khi táº¡o phiáº¿u xuáº¥t kho: )Údispatch_serviceÚcreate_dispatchrU   rW   rX   rY   rZ   r[   r\   r]   r^   r_   Ú
ValueErrorr   r   r0   r1   r2   )r$   r%   r3   Úver4   s        r   Úcreate_warehouse_dispatchrg   ™   sü   è è € ðbÝ×.Ò.Ø!Ô3Ø #Ô 7Ø”~Ø”:ØÔ/ØÔ+ØÔ-Ø!Ô3Ø”KØ”)ð /ñ 
ô 
ˆð $°Ð5Ð5Ð5øÝð =ð =ð =Ý¨µC¸±G´GÐ<Ñ<Ô<Ð<øøøøÝð bð bð bÝ�ŠÐ>¸1Ð>Ð>ÈˆÑNÔNÐNÝ¨Ð4`Ð[\Ð4`Ð4`ÐaÑaÔaÐaøøøøðbøøøs$   „AA Á
CÁ)BÂCÂ3CÃCz/dispatchesu)   Lá»‹ch Sá»­ Danh SÃ¡ch Phiáº¿u Xuáº¥t Khou   Lá»�c theo ID Dá»± Ã¡nu   Lá»�c theo LÃ´ váº­t tÆ°u9   TÃ¬m theo mÃ£ phiáº¿u, tÃªn váº­t tÆ°, ngÆ°á»�i nháº­n...rX   rU   c              ƒ   óæ   K  — 	 t                                | ||||¬¦  «        \  }}d||||dœS # t          $ r8}t                               d|› �d¬¦  «         t          dd|›�¬	¦  «        ‚d
}~ww xY w)uf   Truy váº¥n lá»‹ch sá»­ phiáº¿u xuáº¥t kho váº­t tÆ° kÃ¨m thÃ´ng tin dá»± Ã¡n vÃ  lÃ´ hÃ³a Ä‘Æ¡n gá»‘c.)rX   rU   r?   r@   rA   rC   rD   z$Error listing warehouse dispatches: Tr(   r*   u(   Lá»—i khi táº£i lá»‹ch sá»­ xuáº¥t kho: r+   N)rc   Úlist_dispatchesr0   r1   r2   r   )	rX   rU   r?   r@   rA   r%   rE   rF   r4   s	            r   Úlist_warehouse_dispatchesrj   ¹   s»   è è € ðfÝ-×=Ò=Ø!Ø/ØØØð >ñ 
ô 
Ñˆˆ{ð  ØØ&ØØð
ð 
ð 	
øõ ð fð fð fÝ�ŠÐ?¸AÐ?Ð?È$ˆÑOÔOÐOÝ¨Ð4dÐ_`Ð4dÐ4dÐeÑeÔeÐeøøøøðføøørI   z/project-takeoffsuK   Danh SÃ¡ch CÃ´ng TÃ¡c Dá»± ToÃ¡n Cá»§a Dá»± Ã�n Ä�á»ƒ Chá»�n Khi Xuáº¥t Kho.u   ID Dá»± Ã¡n)r!   r"   r:   r;   Úqsc              ƒ   óî   K  — 	 t                                | ¬¦  «        }d|t          |¦  «        dœS # t          $ r8}t                               d|› �d¬¦  «         t          dd|›�¬	¦  «        ‚d
}~ww xY w)u�   Láº¥y danh sÃ¡ch cÃ¡c cÃ´ng tÃ¡c bÃ³c tÃ¡ch dá»± toÃ¡n cá»§a dá»± Ã¡n Ä‘á»ƒ há»— trá»£ chá»�n nhanh khi láº­p phiáº¿u xuáº¥t kho.©rX   rC   )r>   rE   rF   z'Error getting project takeoff options: Tr(   r*   u0   Lá»—i khi táº£i danh má»¥c bÃ³c tÃ¡ch dá»± Ã¡n: r+   N)rc   Úget_project_takeoff_optionsrN   r0   r1   r2   r   )rX   r%   rE   r4   s       r   rn   rn   Ù   s—   è è € ðnÝ ×<Ò<È
Ð<ÑSÔSˆØ#¨eÅCÈÁJÄJÐOÐOÐOøÝð nð nð nÝ�ŠÐB¸qÐBÐBÈTˆÑRÔRÐRÝ¨Ð4lÐghÐ4lÐ4lÐmÑmÔmÐmøøøøðnøøøs   „-2 ²
A4¼3A/Á/A4z/variance-reportuX   BÃ¡o CÃ¡o Ä�á»‘i Chiáº¿u Hao Há»¥t 3 Chiá»�u: Dá»± ToÃ¡n - Thá»±c Xuáº¥t - Quyáº¿t ToÃ¡nu?   Lá»�c theo ID Dá»± Ã¡n (Ä�á»ƒ trá»‘ng Ä‘á»ƒ xem toÃ n cÃ´ng ty))r!   r"   r:   r#   rk   c              ƒ   óÒ   K  — 	 t                                | ¬¦  «        }d|dœS # t          $ r8}t                               d|› �d¬¦  «         t          dd|›�¬	¦  «        ‚d
}~ww xY w)u  BÃ¡o cÃ¡o Ä‘á»‘i chiáº¿u 3 chiá»�u giá»¯a Khá»‘i lÆ°á»£ng Dá»± toÃ¡n bÃ³c tÃ¡ch CAD (Q_Ä‘t), Thá»±c xuáº¥t kho (Q_tx),
    vÃ  Nghiá»‡m thu Quyáº¿t toÃ¡n (Q_qt). TÃ­nh toÃ¡n tá»· lá»‡ hao há»¥t thá»±c táº¿ vÃ  so sÃ¡nh vá»›i Ä�á»‹nh má»©c ThÃ´ng tÆ° 12/2021 & 2026.
    rm   rC   )r>   Úreportz,Error calculating material variance report: Tr(   r*   u+   Lá»—i khi tÃ­nh toÃ¡n bÃ¡o cÃ¡o hao há»¥t: r+   N)rc   Ú"calculate_material_variance_reportr0   r1   r2   r   )rX   r%   rp   r4   s       r   Úget_material_variance_reportrr   é   s‘   è è € ðiÝ!×DÒDÐPZÐDÑ[Ô[ˆØ#¨vÐ6Ð6Ð6øÝð ið ið iÝ�ŠÐGÀAÐGÐGÐRVˆÑWÔWÐWÝ¨Ð4gÐbcÐ4gÐ4gÐhÑhÔhÐhøøøøðiøøøs   „$ ¤
A&®3A!Á!A&)'Ú__doc__ÚloggingÚtypingr   Úfastapir   r   r   r   Úpydanticr   r	   Ú"app.modules.auth.presentation.authr
   r   ÚAapp.modules.invoices.application.invoice_truth_extraction_servicer   Ú<app.modules.inventory.application.warehouse_dispatch_servicer   Ú	getLoggerr1   Úrouterr.   rc   r   ÚpostÚdictr   r5   ÚgetÚintrH   rO   rR   rT   rg   rj   rn   rr   r   r   r   ú<module>r�      sõ  ððð ð €€€Ø Ð Ð Ð Ð Ð à <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ø %Ð %Ð %Ð %Ð %Ð %Ð %Ð %à MÐ MÐ MÐ MÐ MÐ MÐ MÐ MØ kÐ kÐ kÐ kÐ kÐ kØ aÐ aÐ aÐ aÐ aÐ aà	ˆÔ	Ð7Ñ	8Ô	8€à	ˆØ$Ø
8Ð	9ð
ñ 
ô 
€ð (Ð
'Ñ
)Ô
)€Ø+Ð+Ñ-Ô-Ð ðð ð ð ð ˜)ñ ô ð ð ‡‚ØØNð ñ ô ð
  3Ð2Ñ4Ô4Ø ˜ØˆÐ=Ð=Ð=Ñ>Ô>ñô ð
ð 
Ø	ð
àð
ð
 
ˆ#ˆsˆ(„^ð
ð 
ð 
ñ	ô ð
ð. ‡‚ˆLÐ"b€ÑcÔcà!& Øð Yð"ñ "ô "ð ˜ØÐeðñ ô ð ˜ØÐ[ðñ ô ð ��r˜a CÐ(Ñ(Ô(Ø�%˜˜a�.‘.”.Ø ˜ØˆÐhÐhÐhÑiÔiñô ð%
ð %
Ø˜$‘Jð%
ð
 �$‰Jð%
ð �$‰Jð%
ð ð%
ð ð%
ð ð%
ð  
ˆ#ˆsˆ(„^ð!%
ð %
ð %
ñ dÔcð%
ðP ‡‚ØÐ bð ñ ô ð !˜ØˆÐ`Ð`Ð`ÑaÔañô ð
ð 
Øð
ð 
ˆ#ˆsˆ(„^ð	
ð 
ð 
ñô ð
ð( ‡‚ˆJÐ [€Ñ\Ô\à ˜ØˆÐTÐTÐTÑUÔUñô ð
ð 
Øð
ð 
ˆ#ˆsˆ(„^ð	
ð 
ð 
ñ ]Ô\ð
ð 
Jð 
Jð 
Jð 
Jð 
J˜Iñ 
Jô 
Jð 
Jð ‡‚ˆ[Ð"k€ÑlÔlð !˜ØˆÐZÐZÐZÑ[Ô[ñô ðbð bØ	ðbàðbð
 
ˆ#ˆsˆ(„^ðbð bð bñ mÔlðbð> ‡‚ˆMÐ#N€ÑOÔOà"˜U 4Ð5MÐNÑNÔNØ$) E¨$Ð<VÐ$WÑ$WÔ$WØ˜˜tÐ1lÐmÑmÔmØ��r˜a CÐ(Ñ(Ô(Ø�%˜˜a�.‘.”.Ø ˜ØˆÐhÐhÐhÑiÔiñô ðfð fØ�d‘
ðfà˜T‘zðfð �$‰Jðfð ð	fð
 ðfð ðfð 
ˆ#ˆsˆ(„^ðfð fð fñ PÔOðfð> ‡‚ÐÐ)v€ÑwÔwà�e˜C¨]Ð;Ñ;Ô;Ø ˜ØˆÐLÐLÐLÑMÔMñô ðnð nØðnàðnð
 
ˆ#ˆsˆ(„^ðnð nð nñ xÔwðnð ‡‚Ðð  )C€ñ  Dô  Dà"˜U 4Ð5vÐwÑwÔwØ ˜ØˆÐIÐIÐIÑJÔJñô ðið iØ�d‘
ðiàðið
 
ˆ#ˆsˆ(„^ðið ið iñ Dô  Dðið ið ir   