§
    ø¥Èjl  ã                   ó–  — d Z ddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddlZddlZddlmZ ddlmZmZ dZdZej                             ed¦  «        ZdZej                             ed	¦  «        Zej                             ed
¦  «        ZdZej                             ed¦  «        Z ej        ed¬¦  «         d#d„Z d„ Z!d„ Z"d„ Z#d„ Z$d„ Z%d„ Z&d„ Z'd#d„Z(dZ)d#d„Z*d„ Z+d„ Z,d„ Z- G d„ de¦  «        Z.e/d k    r: e0d!e e!¦   «         fz  ¦  «          ed"efe.¦  «         1                    ¦   «          dS dS )$u¨  SERVER CALIB â€” Web UI huáº¥n luyá»‡n/hiá»‡u chá»‰nh mÃ u CSDL B (cá»•ng 8099).

Luá»“ng: anh nháº­p há»—n há»£p (mÃ u CSDL B + tá»‰ lá»‡ %) â†’ AGY dá»± Ä‘oÃ¡n mÃ u â†’ anh táº£i áº¢NH THá»°C Táº¾
       â†’ AGY Ä‘á»‘i chiáº¿u (Î”E) vÃ  Ä‘á»� xuáº¥t hiá»‡u chá»‰nh há»‡ sá»‘ tá»«ng mÃ u â†’ ghi vÃ o CSDL B.

Cháº¡y: python server_calib.py   (máº­t kháº©u trong mat_khau.txt; cháº¡y Ä‘Æ°á»£c á»Ÿ gá»‘c vÃ  dÆ°á»›i /calib)
é    N)ÚSimpleCookie)ÚBaseHTTPRequestHandlerÚThreadingHTTPServerz9C:\Claw 2\Nghien cuu\Du-an-B-He-mau-Stain-Glaze\calib-appz8C:\Claw 2\Nghien cuu\Du-an-B-He-mau-Stain-Glaze\CSDLB.dbÚvieci£  zmat_khau.txtzpass_hieu_chinh.txtu³   KÃ©o mÃ u báº±ng CÃ™NG thÆ°á»›c kÃ©o vá»›i mÃ u máº«u Â· pha trong CÃ™NG loáº¡i base vá»›i máº«u Â· trÃªn GIáº¤Y TRáº®NG cÃ¹ng loáº¡i Â· tá»‰ lá»‡ nháº­p lÃ  % mÃ u pha trong basez
bi_mat.txtT©Úexist_okÚ c                 ó’   — 	 t          | d¬¦  «                             ¦   «                              ¦   «         S # t          $ r |cY S w xY w)Núutf-8©Úencoding)ÚopenÚreadÚstripÚ	Exception)ÚpÚmds     úIC:\Claw 2\Nghien cuu\Du-an-B-He-mau-Stain-Glaze\calib-app\server_calib.pyÚ_docr      sV   € ðÝ�A Ð(Ñ(Ô(×-Ò-Ñ/Ô/×5Ò5Ñ7Ô7Ð7øÝð ð ð Øˆ	ˆ	ˆ	ðøøøs   ‚47 ·AÁAc                  ó´   — t          t          ¦  «        } | sAdt          j        d¦  «        z   } t	          t          dd¬¦  «                             | ¦  «         | S )Nzcalib-é   Úwr   r   )r   ÚMK_FILEÚsecretsÚ	token_hexr   Úwrite)Úmks    r   Úmat_khaur       sR   € Ý	�g‰Œ€BØð 7Ø�Ô)¨!Ñ,Ô,Ñ,ˆÝ�W�c GÐ,Ñ,Ô,×2Ò2°2Ñ6Ô6Ð6Ø€Ió    c                  óž   — 	 t          t          d¬¦  «                             ¦   «                              ¦   «         pdS # t          $ r Y dS w xY w)Nr   r   Ú19842026)r   Ú	PASS_FILEr   r   r   © r   r   Úpass_hieu_chinhr$   (   sY   € ðÝ•I¨Ð0Ñ0Ô0×5Ò5Ñ7Ô7×=Ò=Ñ?Ô?ÐMÀ:ÐMøÝð ð ð Øˆzˆzðøøøs   ‚;> ¾
AÁAc                  ó®   — t          t          ¦  «        } | s>t          j        d¦  «        } t	          t          dd¬¦  «                             | ¦  «         | S )Né   r   r   r   )r   ÚBM_FILEr   r   r   r   )Úbs    r   Úbi_matr)   /   sM   € Ý�W‰Œ€AØð 6ÝÔ˜bÑ!Ô!ˆÝ�W�c GÐ,Ñ,Ô,×2Ò2°1Ñ5Ô5Ð5Ø€Hr   c                  óî   — t          j        t          ¦   «                              ¦   «         t	          ¦   «                              ¦   «         t
          j        ¦  «                             ¦   «         d d…         S )Né    )ÚhmacÚnewr)   Úencoder   ÚhashlibÚsha256Ú	hexdigestr#   r   r   Úma_phienr2   7   sN   € ÝŒ8•F‘H”H—O’OÑ%Ô%¥x¡z¤z×'8Ò'8Ñ':Ô':½G¼NÑKÔK×UÒUÑWÔWÐX[ÐY[ÐX[Ô\Ð\r   c                  ó8   — t          j        t          d¬¦  «        S )Né   )Útimeout)Úsqlite3ÚconnectÚDBr#   r   r   Údbr9   ;   s   € ÝŒ?�2 rÐ*Ñ*Ô*Ð*r   c                  ó¬   — t          ¦   «         } d„ |                      d¦  «                             ¦   «         D ¦   «         }|                      ¦   «          |S )Nc                 óH   — g | ]}t          t          d |¦  «        ¦  «        ‘Œ S ))ÚidÚtenÚmaÚ	phan_loaiÚhs)ÚdictÚzip©Ú.0Úxs     r   ú
<listcomp>zds_mau.<locals>.<listcomp>A   sA   € ð 	{ð 	{ð 	{Øõ 
�cÐ8¸!Ñ<Ô<Ñ	=Ô	=ð 	{ð 	{ð 	{r   zMSELECT id,ten,ma,phan_loai,COALESCE(he_so_cuong_do,1.0) FROM mau ORDER BY ten)r9   ÚexecuteÚfetchallÚclose)ÚconÚrs     r   Úds_maurL   ?   sY   € Ý
‰$Œ$€Cð	{ð 	{Ø—+’+ÐmÑnÔn×wÒwÑyÔyð	{ñ 	{ô 	{€Aà‡I‚I�K„K€KØ€Hr   c                  óª  — 	 t          ¦   «         } |                      d¦  «                             ¦   «         }|                      d¦  «                             ¦   «         d         }|                      d¦  «                             ¦   «         d         }|                      ¦   «          |d         pd|d         pd|d         pd||fS # t          $ r Y dS w xY w)	Nz:SELECT dang_xu_ly,buoc,bat_dau FROM worker_nhip WHERE id=1zˆSELECT COUNT(*) FROM hon_hop WHERE trang_thai='cho_du_doan' OR (trang_thai='da_du_doan' AND anh_thuc_te IS NOT NULL AND anh_thuc_te<>'')r   zfSELECT COUNT(*) FROM hon_hop WHERE trang_thai='da_du_doan' AND (anh_thuc_te IS NULL OR anh_thuc_te='')r	   é   é   )r	   r	   r	   r   r   )r9   rG   ÚfetchonerI   r   )rJ   rK   ÚchoÚdoi_anhs       r   Únhip_workerrS   G   sø   € ð	"Ý‰dŒdˆØ�KŠKÐTÑUÔU×^Ò^Ñ`Ô`ˆØ�kŠkð iñ jô jßjrÒjrÑjtÔjtÐuvôxˆà—+’+ð  Gñ  Hô  H÷  Qò  Qñ  Sô  Sð  TUô  VˆØ�	Š	‰ŒˆØ�!”�
˜˜A˜aœD˜J B¨¨!¬¨
°°C¸ÐAÐAøÝð "ð "ð "Ø!Ð!Ð!ð"øøøs   ‚CC Ã
CÃCc                 ó’   — | sdS dt          j        | ¦  «        ›dt          j        | ¦  «        ›dt          j        |pd¦  «        ›d�S )Nr	   zp<span style="display:inline-block;width:34px;height:18px;border:1px solid #999;vertical-align:middle;background:z
"></span> z <small>z</small>©ÚhtmlÚescape)ÚhxÚnhans     r   ÚswatchrZ   T   s\   € Øð Øˆrðõ >B¼[È¹_¼_¸_¸_ÍdÌkÐZ\ÉoÌoÈoÈoÕ_cÔ_jÐkoÐkuÐsuÑ_vÔ_vÐ_vÐ_vðxð yr   a·  
body{margin:0;font:15px/1.5 'Segoe UI',Arial,sans-serif;background:#f4f6f8;color:#1b2733}
header{background:#0b3d2c;color:#fff;padding:13px 20px}header b{font-size:17px}header span{opacity:.85;font-size:13px;margin-left:10px}
main{max-width:1040px;margin:16px auto;padding:0 14px}
.the{background:#fff;border:1px solid #dfe3e8;border-radius:10px;padding:15px 18px;margin-bottom:14px}
label{display:block;font-weight:600;margin:8px 0 3px}
input[type=text],input[type=password],select,textarea{width:100%;padding:7px 9px;border:1px solid #dfe3e8;border-radius:7px;font:inherit}
input[type=file]{padding:5px 0}
button{background:#0b6b3a;color:#fff;border:0;border-radius:8px;padding:10px 18px;font:inherit;font-weight:600;cursor:pointer;margin-top:12px}
button.phu{background:#5d6b7a;padding:5px 10px;margin:0 0 0 6px;font-size:13px}
table{border-collapse:collapse;width:100%;font-size:14px;margin:8px 0}td,th{border-bottom:1px solid #e7ebef;padding:6px 7px;text-align:left;vertical-align:top}
th{background:#eef1f4}
.hang{display:flex;gap:8px;align-items:end;margin-bottom:6px}.hang>div{flex:1}
small{color:#5d6b7a}a{color:#0b6b3a}
.tt{display:inline-block;padding:2px 9px;border-radius:20px;font-size:12px;font-weight:700}
.cho_du_doan{background:#fff3cd;color:#7a5b00}.da_du_doan{background:#cfe4ff;color:#0a3d75}
.da_doi_chieu,.cho_xac_nhan{background:#ffe4cc;color:#8a4a00}.da_hieu_chinh{background:#d6f4e0;color:#0b5c2e}
.de{background:#ffd9d9;color:#8a1414}
c                 óP   — dt           ›d| rdt          j        | ¦  «        z  nd›d�S )NuM  <!doctype html><html lang="vi"><meta charset="utf-8"><title>Calib â€” Ä�Äƒng nháº­p</title>

<base href="./"><script>document.addEventListener("DOMContentLoaded",function(){var B=(location.pathname.indexOf("/calib")===0)?"/calib/":"/";var b=document.querySelector("base");if(b&&b.getAttribute("href")!==B)b.href=B;});</script><style>u¼   </style><header><b>CALIB CSDL B</b><span>Huáº¥n luyá»‡n &amp; hiá»‡u chá»‰nh mÃ u</span></header>
<main><div class="the" style="max-width:420px"><h3 style="margin-top:0">Ä�Äƒng nháº­p</h3>z&<p style="color:#8a1414"><b>%s</b></p>r	   u¼   
<form method="post" action="dang-nhap"><label>Máº­t kháº©u</label><input type="password" name="mat_khau" autofocus required>
<button type="submit">VÃ o</button></form></div></main></html>)ÚCSSrV   rW   )Úlois    r   Útrang_dang_nhapr^   p   sn   € € õ FIÀSÀSð  LOð  KWÐKsÕvzô  wBð  CFñ  wGô  wGñ  LGð  LGð  UWð  KWð  KWðXð Xr   c                  óÖ   — 	 t          t          j                             t          d¦  «        d¬¦  «                             ¦   «                              ¦   «         S # t          $ r Y dS w xY w)Nzemail_bao.txtr   r   r	   )r   ÚosÚpathÚjoinÚGOCr   r   r   r#   r   r   Úemail_mac_dinhrd   y   sd   € ðÝ•B”G—L’L¥ oÑ6Ô6ÀÐIÑIÔI×NÒNÑPÔP×VÒVÑXÔXÐXøÝð ð ð Øˆrˆrðøøøs   ‚AA Á
A(Á'A(c                  óÞ   — t          ¦   «         } d                     d„ | D ¦   «         ¦  «        }dt          ›dt          j        t          ¦   «         ¦  «        ›dt          j        |¦  «        ›d�S )Nr	   c           
   3   ó¾   K  — | ]X}d t          j        |d         ¦  «        ›dt          j        |d         ¦  «        ›dt          j        |d         ¦  «        ›d�V — ŒYdS )z<option value="r>   ú">r=   z (z
)</option>NrU   )rD   Úms     r   ú	<genexpr>ztrang_chinh.<locals>.<genexpr>‚   s“   è è € ð  Lð  Lð  DEð  DE½D¼KÈÈ$ÌÑ<PÔ<PÐ<PÐ<PÕRVÔR]Ð^_Ð`eÔ^fÑRgÔRgÐRgÐRgÕimÔitÐuvÐw{Ôu|Ñi}Ôi}Ði}Ði}Ð~ð  Lð  Lð  Lð  Lð  Lð  Lr   uW  <!doctype html><html lang="vi"><meta charset="utf-8"><title>Calib CSDL B â€” há»—n há»£p mÃ u</title>

<base href="./"><script>document.addEventListener("DOMContentLoaded",function(){var B=(location.pathname.indexOf("/calib")===0)?"/calib/":"/";var b=document.querySelector("base");if(b&&b.getAttribute("href")!==B)b.href=B;});</script><style>u„  </style>
<header><b>CALIB CSDL B</b><span>Há»—n há»£p mÃ u â†’ AGY dá»± Ä‘oÃ¡n â†’ Ä‘á»‘i chiáº¿u áº£nh thá»±c táº¿ â†’ hiá»‡u chá»‰nh thÃ´ng sá»‘ mÃ u</span></header>
<main>
<div class="the"><p><b>CÃ¡ch dÃ¹ng:</b> chá»�n cÃ¡c mÃ u Ä‘Ã£ cÃ³ trong CSDL B vÃ  ghi <b>tá»‰ lá»‡ pháº§n trÄƒm</b> cá»§a tá»«ng mÃ u trong há»—n há»£p â†’ báº¥m Gá»­i. Agent sáº½ dá»± Ä‘oÃ¡n mÃ u cá»§a há»—n há»£p (hex, L*a*b*, phÆ°Æ¡ng phÃ¡p, Ä‘á»™ tin cáº­y). Sau Ä‘Ã³ anh chá»¥p <b>áº£nh mÃ u há»—n há»£p thá»±c táº¿</b> vÃ  táº£i lÃªn á»Ÿ trang chi tiáº¿t Ä‘á»ƒ agent Ä‘á»‘i chiáº¿u (Î”E) vÃ  <b>Ä‘á»� xuáº¥t hiá»‡u chá»‰nh há»‡ sá»‘ cÆ°á»�ng Ä‘á»™</b> cá»§a tá»«ng mÃ u â‡’ CSDL B chÃ­nh xÃ¡c dáº§n.</p>
<p><small>Â· <a href="lich-su">Lá»‹ch sá»­ há»—n há»£p</a> Â· <a href="hieu-chinh">Lá»‹ch sá»­ hiá»‡u chá»‰nh mÃ u</a> Â· <a href="thoat">ThoÃ¡t</a></small></p></div>
<form class="the" id="f" onsubmit="return gui(event)">
<div class="hang"><div><label>NgÆ°á»�i nháº­p</label><input type="text" name="nguoi_nhap" required placeholder="VD: Lab â€“ HÃ¹ng"></div>
<div><label>Email nháº­n thÃ´ng bÃ¡o (tá»± bÃ¡o khi agent xong)</label><input type="text" name="email" value="u.  " placeholder="VD: ngoducminh84@gmail.com"></div>
<div><label>Ghi chÃº (tÃ¹y chá»�n)</label><input type="text" name="ghi_chu" placeholder="VD: kÃ©o báº±ng thÆ°á»›c 100 Âµm, base BA123, giáº¥y tráº¯ng"></div></div>
<label>ThÃ nh pháº§n â€” nháº­p <b>% mÃ u pha trong base</b> cá»§a tá»«ng mÃ u (khÃ´ng cáº§n cá»™ng = 100%)</label>
<div style="background:#eafaf0;border:1px solid #bfe3cd;border-radius:8px;padding:8px 10px;margin:4px 0 8px"><small><b>Ä�iá»�u kiá»‡n chuáº©n (máº·c Ä‘á»‹nh):</b> kÃ©o mÃ u báº±ng <b>cÃ¹ng thÆ°á»›c kÃ©o</b> vá»›i mÃ u máº«u Â· pha trong <b>cÃ¹ng loáº¡i base</b> vá»›i máº«u Â· trÃªn <b>giáº¥y tráº¯ng cÃ¹ng loáº¡i</b>.</small></div>
<div id="tp"></div>
<button class="phu" type="button" onclick="themHang()">+ ThÃªm mÃ u</button>
<button type="submit" id="nut">Gá»­i cho AGY dá»± Ä‘oÃ¡n</button>
<p id="tb"><small>VÃ­ dá»¥: Black 27 Ä‘iá»�n <b>4</b> nghÄ©a lÃ  4% mÃ u Ä‘Ã³ trong base. Tá»•ng chá»‰ Ä‘á»ƒ tham chiáº¿u, khÃ´ng cáº§n = 100%.</small></p>
</form>
<div class="the" id="ket" style="display:none"></div>
</main>
<script>
const DS=u€  ; const B=(location.pathname.indexOf('/calib')===0)?'/calib/':'/';
function themHang(ma,tl){const d=document.createElement('div');d.className='hang';
 d.innerHTML='<div><select name="ma">'+DS+'</select></div><div style="max-width:130px"><input type="text" name="ti_le" placeholder="% trong base" value="'+(tl||'')+'"></div><div style="flex:0 0 auto"><button class="phu" type="button" onclick="this.closest(\'.hang\').remove()">XoÃ¡</button></div>';
 document.getElementById('tp').appendChild(d); if(ma)d.querySelector('select').value=ma;}
themHang();themHang();
function gui(e){e.preventDefault();const f=document.getElementById('f'),nut=document.getElementById('nut');
 const fd=new FormData(f); const tp=[]; let tong=0;
 document.querySelectorAll('#tp .hang').forEach(h=>{const ma=h.querySelector('[name=ma]').value;const tl=parseFloat((h.querySelector('[name=ti_le]').value||'').replace(',','.'))||0;
   if(ma&&tl>0){tp.push({ma:ma,ti_le:tl});tong+=tl;}});
 if(!tp.length){document.getElementById('tb').innerHTML='<b style="color:#8a1414">ChÆ°a cÃ³ thÃ nh pháº§n há»£p lá»‡</b>';return false;}
 fd.delete('ma');fd.delete('ti_le'); fd.set('thanh_phan',JSON.stringify(tp)); fd.set('tong_ti_le',tong.toFixed(2));
 nut.disabled=true;nut.textContent='Ä�ang gá»­iâ€¦';
 fetch(B+'tao-hon-hop',{method:'POST',body:fd}).then(r=>r.json()).then(d=>{
  if(!d.id){document.getElementById('tb').innerHTML='<b style="color:#8a1414">Lá»—i: '+JSON.stringify(d)+'</b>';nut.disabled=false;return;}
  nut.textContent='Ä�Ã£ gá»­i â€” há»—n há»£p #'+d.id;document.getElementById('ket').style.display='block';
  document.getElementById('ket').innerHTML='<p><b>Há»—n há»£p #'+d.id+' Ä‘Ã£ táº¡o.</b> <a href="hon-hop?id='+d.id+'">Má»Ÿ trang chi tiáº¿t (xem dá»± Ä‘oÃ¡n &amp; táº£i áº£nh thá»±c táº¿)</a></p>';}).catch(err=>{document.getElementById('tb').textContent='Lá»—i máº¡ng: '+err;nut.disabled=false;});
 return false;}
</script></html>)rL   rb   r\   rV   rW   rd   ÚjsonÚdumps)ÚmsÚoptss     r   Útrang_chinhrn   €   sˆ   € Ý	‰Œ€BØ�7Š7ð  Lð  Lð  IKð  Lñ  Lô  Lñ  Lô  L€D€DõN �s�s�DœK­Ñ(8Ô(8Ñ9Ô9Ð9Ð9½4¼:ÀdÑ;KÔ;KÐ;KÐ;KðM&Mð &Mr   c                 óŠ  — t          j        | d         pd¦  «        }| d         dk    pt          | d         ¦  «        o| d          }t          ¦   «         }|rdnd}|d	         rAd
t	          j        |d	         ¦  «        ›dt	          j        |d         ¦  «        ›d|d         ›�nd|d         |d         fz  }d                     d„ |D ¦   «         ¦  «        }| d         }d| d         ›d| d         ›d�}	d|                      d¦  «        fd|                      d¦  «        fd|                      d¦  «        fg}
d                     d„ |
D ¦   «         ¦  «        }d}|                     d¦  «        rd}d t	          j        |                      d!¦  «        pdpt          ¦   «         pd"¦  «        ›d#|›d$| d%         ›d&|›d'�	}d                     g d(‘| d%         ›‘d)‘|›‘d*‘t          ›‘d+‘| d%         ›‘d,‘|	›‘d-‘t	          j        | d.         pd¦  «        ›‘d/‘| d0         ›‘d1‘|	›‘d2‘|›‘d3‘t	          j        | d4         pt          ¦  «        ›‘d5‘| d6         ›‘d7‘|›‘d8‘t	          j        | d9         pd:¦  «        ›‘d;‘| d<         rQd=| d%         ›d>t          j                             t          j                             | d<         pd¦  «        ¦  «        ›d?�nd›‘d@‘|›‘d'‘¦  «        }dA}|                     dB¦  «        rdC|z   }|                     dD¦  «        rdE|dD         d	         z  |z   }|                     dF¦  «        rdG|z   }| dH         rãt          j        | dI         pdJ¦  «        }|dKt#          | dH         ¦  «        | dL         | dM         | dN         t	          j        t%          |                     dOd¦  «        ¦  «        d dP…         ¦  «        t	          j        t%          |                     dQd¦  «        ¦  «        ¦  «        |                     dRd¦  «        | dS         | dT         pd	f	z  z  }n<| d         dk    r|dUz  }n*|dVt	          j        | dW         pdd dP…         ¦  «        z  z  }|d'z  }d}| d         dXv p| dH          }| dH         r|r| d         sdY| d%         z  }| d         r]| d         rU|dZ| d%         ›d>t          j                             d[t          j                             | d         ¦  «        z   ¦  «        ›d\�z  }| d         �rE| d]         pd	}t'          ¦   «         }|                     d^| d%         f¦  «                             ¦   «         }|                     ¦   «          |r|dk    rd_nd}|d`t#          | d         ¦  «        ›da|›d|›db| dc         pd›ddt	          j        | de         pdd df…         ¦  «        ›d@�z  }t'          ¦   «         }|                     dg| d%         f¦  «                             ¦   «         }|                     ¦   «          |r)|dhd                     di„ |D ¦   «         ¦  «        z   djz   z  }n!| d         dkv r|dlz  }n| d         dmk    r|dnz  }| d         r3|r1d                     do„ |D ¦   «         ¦  «        }|dp|›dq| d%         ›dr�z  }|d'z  }||z   |z   dsz                        dt¦  «        S )uNÚ
thanh_phanú[]Ú
trang_thaiÚcho_du_doanÚanh_thuc_teÚthuc_te_hexz(<meta http-equiv="refresh" content="10">r	   r   u   <b>Agent Ä‘ang xá»­ lÃ½:</b> u    Â· bÆ°á»›c rN   u	    Â· tá»« rO   um   <b>Agent Ä‘ang ráº£nh</b> â€” %d viá»‡c Ä‘ang xáº¿p hÃ ng, %d há»—n há»£p Ä‘ang chá»� chá»§ nhÃ¢n táº£i áº£nhr   é   c              3   ó  K  — | ]ƒ}d t          j        |                     dd¦  «        ¦  «        ›dt          j        |                     d|                     dd¦  «        ¦  «        ¦  «        ›d|                     d¦  «        ›d�V — Œ„dS )ú<tr><td>r>   r	   ú	</td><td>r=   Úti_lez%</td></tr>N)rV   rW   ÚgetrC   s     r   ri   z!trang_chi_tiet.<locals>.<genexpr>³   s  è è € ð  lð  lð  deð  deÅTÄ[ÐQR×QVÒQVÐW[Ð]_ÑQ`ÔQ`ÑEaÔEaÐEaÐEaÕcgÔcnÐop×otÒotÐuzÐ|}÷  }Bò  }Bð  CGð  IKñ  }Lô  }Lñ  pMô  pMñ  dNô  dNð  dNð  dNð  PQ÷  PUò  PUð  V]ñ  P^ô  P^ð  P^ð  P^ð  _ð  lð  lð  lð  lð  lð  lr   Úthu_mucz<span class="tt rg   z</span>u   Dá»± Ä‘oÃ¡n mÃ uÚbao_pu    Ä�á»‘i chiáº¿u áº£nh thá»±c táº¿Úbao_cu   Ghi vÃ o CSDL BÚbao_ghic              3   óÀ   K  — | ]Y\  }}d |›d|pd                      d¦  «        rdt          j        |¦  «        z  n|rdt          j        |pd¦  «        z  nd›d�V — ŒZdS )	z<li>z: r	   u
   Ä‘Ã£ gá»­iu#   <b style="color:#0b5c2e">âœ” %s</b>z<b style="color:#8a1414">%s</b>u   <i>chÆ°a cÃ³</i>z</li>N)Ú
startswithrV   rW   )rD   Útr(   s      r   ri   z!trang_chi_tiet.<locals>.<genexpr>¸   sÂ   è è € ð (ð (á˜1˜a˜að -.¨A¨AÐlmÐlsÐqs×kÒkð  AMñ  lNô  lNð 0IÐ0UÕX\ÔXcÐdeÑXfÔXfÑ0fÐ0fØopð  2IÐ2SÕVZÔVaÐbcÐbiÐgiÑVjÔVjÑ2jÐ2jð  wIð0Ið 0Ið Jð (ð (ð (ð (ð (ð (r   Úda_baous   <p style="background:#eafaf0;border-radius:8px;padding:8px 12px"><b>Ä�Ã£ gá»­i láº¡i thÃ´ng bÃ¡o qua email.</b></p>u�   <div style="margin-top:10px;border-top:1px solid #dfe3e8;padding-top:8px"><b>ThÃ´ng bÃ¡o cho ngÆ°á»�i dÃ¹ng qua email:</b> <code>Úemailu   (chÆ°a Ä‘áº·t)z</code><ul>z,</ul><form method="post" action="bao-lai?id=r<   un   "><button class="phu" type="submit" style="padding:7px 14px">Gá»­i láº¡i thÃ´ng bÃ¡o qua email</button></form>z</div>uI   <!doctype html><html lang="vi"><meta charset="utf-8"><title>Há»—n há»£p #z
</title>

zñ
<base href="./"><script>document.addEventListener("DOMContentLoaded",function(){var B=(location.pathname.indexOf("/calib")===0)?"/calib/":"/";var b=document.querySelector("base");if(b&&b.getAttribute("href")!==B)b.href=B;});</script><style>u    </style><header><b>Há»–N Há»¢P #z
</b><span>uC   </span></header><main>
<div class="the"><p><b>NgÆ°á»�i nháº­p:</b> Ú
nguoi_nhapu    Â· <b>LÃºc:</b> Útao_lucu    Â· Tráº¡ng thÃ¡i: z</p><p><small>u6   </small></p>
<p><small><b>Ä�iá»�u kiá»‡n chuáº©n:</b> Ú	dieu_kienu-   </small></p>
<p><b>ThÃ nh pháº§n</b> (tá»•ng Ú
tong_ti_leuQ   %):</p><table><tr><th>MÃ£</th><th>TÃªn</th><th>Tá»‰ lá»‡ (% trong base)</th></tr>u   </table>
<p><small>Ghi chÃº: Úghi_chuu   â€”uh   </small></p>
<p><small><a href="./">â†� Táº¡o há»—n há»£p má»›i</a> Â· <a href="lich-su">Lá»‹ch sá»­</a>Údu_doan_fileu    Â· <a href="tep?id=z&d=u   ">tá»‡p dá»± Ä‘oÃ¡n</a>z</small></p>uD   <div class="the"><h3 style="margin-top:0">Dá»± Ä‘oÃ¡n cá»§a AGY</h3>Úsai_passuó   <div class="the" style="border-color:#8a1414;background:#ffecec"><b style="color:#8a1414">âœ– Sai máº­t kháº©u xÃ¡c nháº­n.</b> CSDL B KHÃ”NG bá»‹ thay Ä‘á»•i. Nháº­p láº¡i máº­t kháº©u hiá»‡u chá»‰nh á»Ÿ má»¥c Ä�á»€ XUáº¤T bÃªn dÆ°á»›i.</div>Úda_apu½   <div class="the" style="border-color:#0b6b3a;background:#eafaf0"><b>âœ” Ä�Ã£ ghi %s mÃ u vÃ o CSDL B.</b> Xem chi tiáº¿t á»Ÿ má»¥c <a href="hieu-chinh">Lá»‹ch sá»­ hiá»‡u chá»‰nh</a>.</div>Úda_taiuþ   <div class="the" style="border-color:#0b6b3a;background:#eafaf0"><b>âœ” Ä�Ã£ nháº­n áº£nh thá»±c táº¿.</b> Agent sáº½ tá»± cháº¡y bÆ°á»›c Ä‘á»‘i chiáº¿u â€” trang tá»± cáº­p nháº­t má»—i 10 giÃ¢y; khi xong sáº½ hiá»‡n Î”E vÃ  báº£ng hiá»‡u chá»‰nh.</div>Údu_doan_hexÚdu_doan_ghi_chuz{}u¿   <p>%s</p><p><b>L*a*b*:</b> %s / %s / %s Â· <b>PhÆ°Æ¡ng phÃ¡p:</b> %s Â· <b>Ä�á»™ tin cáº­y:</b> %s Â· <b>Sai sá»‘ dá»± kiáº¿n:</b> Î”E â‰ˆ %s</p><p><small>Thá»�i gian: %s (%.0f s)</small></p>Ú	du_doan_LÚ	du_doan_aÚ	du_doan_bÚphuong_phapi,  Ú
do_tin_cayÚsai_so_du_kien_deltaEÚdu_doan_lucÚdu_doan_giayuY   <p><small>Agent Ä‘ang dá»± Ä‘oÃ¡nâ€¦ (trang tá»± cáº­p nháº­t má»—i 10 giÃ¢y)</small></p>u6   <p style="color:#8a1414">ChÆ°a cÃ³ dá»± Ä‘oÃ¡n: %s</p>r]   )rs   Ú
da_du_doanrQ   u–  <div class="the"><h3 style="margin-top:0">áº¢nh mÃ u há»—n há»£p THá»°C Táº¾</h3><p><small>áº¢nh vuÃ´ng gÃ³c, Ä‘á»§ sÃ¡ng, cÃ³ Ã´ giáº¥y tráº¯ng/Ä‘en trong khung Ä‘á»ƒ agent so mÃ u.</small></p><form method="post" action="tai-anh?id=%s" enctype="multipart/form-data"><input type="file" name="anh" accept="image/*" required><button type="submit">Táº£i lÃªn &amp; cho AGY Ä‘á»‘i chiáº¿u</button></form></div>uT   <div class="the"><h3 style="margin-top:0">áº¢nh anh Ä‘Ã£ táº£i</h3><img src="tep?id=zanh/z" style="max-width:420px">Údelta_EzzSELECT id,mau_ten,gia_tri_cu,gia_tri_moi,lab_moi,ly_do FROM hieu_chinh_mau WHERE hon_hop_id=? AND da_ap_dung=0 ORDER BY idÚdeu   <h3>Ä�á»‘i chiáº¿u</h3><p>u    </p><p><b>Î”E = <span class="tt z</span></b></p><p><small>Údoi_chieu_lucu$   </small></p><p><small>Káº¿t luáº­n: Úket_luani   zcSELECT mau_ten,gia_tri_cu,gia_tri_moi,ly_do FROM hieu_chinh_mau WHERE hon_hop_id=? AND da_ap_dung=1uŒ   <p><b>Hiá»‡u chá»‰nh Ä‘Ã£ ghi vÃ o CSDL B:</b></p><table><tr><th>MÃ u</th><th>Há»‡ sá»‘ cÅ©</th><th>Há»‡ sá»‘ má»›i</th><th>LÃ½ do</th></tr>c              3   óN   K  — | ] }d t          d„ |D ¦   «         ¦  «        z  V — Œ!dS )zK<tr><td>%s</td><td>%s</td><td><b>%s</b></td><td><small>%s</small></td></tr>c              3   óX   K  — | ]%}t          j        t          |¦  «        ¦  «        V — Œ&d S ©N©rV   rW   ÚstrrC   s     r   ri   z+trang_chi_tiet.<locals>.<genexpr>.<genexpr>  su   è è € ð  tTð  tTð  MNÕtxÔtõ  ADð  EFñ  AGô  AGñ  uHô  uHð  tTð  tTð  tTð  tTð  tTð  tTr   N)Útuple©rD   rK   s     r   ri   z!trang_chi_tiet.<locals>.<genexpr>  s�   è è € ð  að  að  YZÐkÕnsð  tTð  tTð  RSð  tTñ  tTô  tTñ  oTô  oTñ  Tð  að  að  að  að  að  ar   z</table>)Úcho_xac_nhanÚda_doi_chieuuo   <p><small>AGY káº¿t luáº­n chÆ°a cáº§n hiá»‡u chá»‰nh (Î”E nhá»�) â€” khÃ´ng cÃ³ Ä‘á»� xuáº¥t nÃ o.</small></p>r˜   ut   <p><small>Ä�Ã£ nháº­n áº£nh â€” agent sáº½ tá»± Ä‘á»‘i chiáº¿u (trang tá»± cáº­p nháº­t má»—i 10 giÃ¢y).</small></p>c              3   ó@  K  — | ]™}d t          j        |d         pd¦  «        ›dt          j        t          |d         ¦  «        ¦  «        ›dt          j        t          |d         ¦  «        ¦  «        ›dt          j        |d         pdd	d
…         ¦  «        ›d�	V — Œšd	S )rx   rN   r	   ry   rO   ú</td><td><b>r   z</b></td><td><small>é   Né    z</small></td></tr>r    r£   s     r   ri   z!trang_chi_tiet.<locals>.<genexpr>  sá   è è € ð (ð (à˜1õ œ+ a¨¤d j¨bÑ1Ô1Ð1Ð1µ4´;½sÀ1ÀQÄ4¹y¼yÑ3IÔ3IÐ3IÐ3IÍ4Ì;ÕWZÐ[\Ð]^Ô[_ÑW`ÔW`ÑKaÔKaÐKaÐKaÕcgÔcnÐpqÐrsÔptÐpzÐxzð  }Að  ~Að  }Aô  pBñ  dCô  dCð  dCð  dCðDð (ð (ð (ð (ð (ð (r   u®   <h3 style="color:#8a1414">Ä�á»€ XUáº¤T HIá»†U CHá»ˆNH â€” chÆ°a ghi vÃ o CSDL B</h3><table><tr><th>MÃ u</th><th>Há»‡ sá»‘ cÅ©</th><th>Há»‡ sá»‘ má»›i</th><th>LÃ½ do</th></tr>z/</table><form method="post" action="ap-dung?id=u{  " style="margin-top:8px"><label>Nháº­p máº­t kháº©u xÃ¡c nháº­n Ä‘á»ƒ GHI vÃ o CSDL B</label><input type="password" name="mat_khau" required placeholder="máº­t kháº©u hiá»‡u chá»‰nh" style="max-width:240px"><button type="submit">XÃ¡c nháº­n &amp; ghi vÃ o CSDL B</button></form><p><small>ChÆ°a nháº­p máº­t kháº©u thÃ¬ CSDL B giá»¯ nguyÃªn â€” AGY chá»‰ Ä‘á»� xuáº¥t.</small></p>z</main>r   )rj   ÚloadsÚboolrS   rV   rW   rb   r{   rd   r\   Ú	DIEU_KIENÚurllibÚparseÚquoter`   ra   ÚbasenamerZ   r¡   r9   rG   rH   rI   r.   )ÚvÚqÚtpÚ	chua_xongÚnhipÚtu_cap_nhatÚthanh_agentÚhangÚdÚttÚbaoÚdong_baoÚcanh_bao_uiÚkhoi_baoÚdauÚkqÚgÚtaiÚchua_dcÚdEÚcon0Úcho_apÚmau_derJ   ÚhcÚdongs                             r   Útrang_chi_tietrÊ   ¬   s“
  € Ý	Œ�A�l”OÐ+ tÑ	,Ô	,€BØ�<” MÒ1Ðgµt¸A¸mÔ<LÑ7MÔ7MÐ7fÐVWÐXeÔVfÐRf€IÝ‰=Œ=€DØ@IÐQÐ<Ð<Èr€Kà�Œ7ð_ð _ÕQUÔQ\Ð]aÐbcÔ]dÑQeÔQeÐQeÐQeÕgkÔgrÐswÐxyÔszÑg{Ôg{Ðg{Ðg{ð  ~Bð  CDô  ~Eð  ~Eð  Fð  Fð Ið  MQð  RSô  MTð  VZð  [\ô  V]ð  L^ñ  ^ð à�7Š7ð  lð  lð  ikð  lñ  lô  lñ  lô  l€DØ	ˆ)Œ€A€AØ,-¨l¬O¨O¨O¸Q¸|¼_¸_¸_Ð	M€Bà §¢ g¡¤Ð/Ð2TÐVW×V[ÒV[Ð\cÑVdÔVdÐ1eÐhyÐ{|÷  |Aò  |Að  BKñ  |Lô  |Lð  hMð  N€CØ�wŠwð (ð (à#&ð(ñ (ô (ñ (ô (€Hð €KØ‡u‚uˆX�„ð Lð Lˆøõ ”; §¢ g¡¤Ð 4°"Ð]½Ñ9IÔ9IÐ]ÐM]Ñ^Ô^Ð^Ð^Ð`hÐ`hÐ`hÐjkÐlpÔjqÐjqÐjqÐs~Ðs~Ðs~ð@€Hð÷ ò ð ð ð ð 	
ˆ$Œˆðð ð ð �ðð ð õ "˜cðð ð ð $% T¤7 7ðð ð ð -/¨Bðð ð õ 15´¸A¸l¼OÐ<QÈrÑ0RÔ0RÐ0Rðð ð ð UVÐV_ÔT`ÐT`ðð ð ð ceÐbdðð ð ð grÐfqðð ð õ 	Œ�A�k”NÐ/¥iÑ0Ô0Ð0ðð ð ð 34°L´/°/ðð ð ð DHÀ4ðð ð õ 	Œ�A�i”LÐ) EÑ*Ô*Ð*ðð ð ð rsð  tBô  rCð  -Kð  -KÐefÐgkÔelÐelÐelÕntÔnz÷  oAò  oAõ  BDô  BI÷  BRò  BRð  STð  Ucô  Sdð  Sjð  hjñ  Bkô  Bkñ  olô  olð  olð  olð  .mð  .mð  IKð  -Kðð ð ð 	ˆðð ð ñ ô €Cð 
P€BØ‡u‚uˆZÑÔð JðDð HJñJˆà‡u‚uˆW�~„~ð zðdØfgÐhoÔfpÐqrÔfsñtØwyñzˆà‡u‚uˆX�„ð jðdð hjñjˆàˆÔð 
mÝŒJ�qÐ*Ô+Ð3¨tÑ4Ô4ˆØ
ð @å˜!˜MÔ*Ñ+Ô+¨Q¨{¬^¸Q¸{¼^ÈQÈ{Ì^Ý”;�s 1§5¢5¨¸Ñ#;Ô#;Ñ<Ô<¸T¸c¸TÔBÑCÔCÅTÄ[ÕQTÐUV×UZÒUZÐ[gÐikÑUlÔUlÑQmÔQmÑEnÔEnØ—5’5Ð0°"Ñ5Ô5°q¸Ô7GÈÈ>ÔIZÐI_Ð^_ðCañañ 	bˆˆð
 
ˆ<Œ˜MÒ	)Ð	)Ø
ÐiÑiˆˆà
ÐFÍÌÐVWÐX]ÔV^ÐVdÐbdÐfjÐgjÐfjÔUkÑIlÔIlÑlÑlˆØˆ(�N€Bà
€CØ�ŒoÐ!EÐEÐ]ÈQÈ}ÔM]ÐI]€GØˆÔð p˜Gð p¨A¨mÔ,<ð pðeð hiÐimÔgnñ	oˆð
 	ˆÔð S˜Q˜yœ\ð SØˆØHIÈ$ÌÈÈÕQWÔQ]×QcÒQcÐdjÕmoÔmt×m}Òm}Ð~ð  ANô  Oñ  nPô  nPñ  ePñ  RQô  RQð  RQð  RQðRñ 	SˆàˆÔñ FØˆyŒ\Ð˜QˆÝ‰tŒtˆØ—’ð PØRSÐTXÔRYÐQ[ñ]ô ]ß]eÒ]eÑ]gÔ]gð 	à�
Š
‰ŒˆØÐ/  a¢ ��¨RˆØˆÝ<BÀ1À]ÔCSÑ<TÔ<TÐ<TÐ<TÐV\ÐV\ÐV\Ð^`Ð^`Ð^`ÐbcÐdsÔbtÐbzÐxzÐbzÐbzÝ8<¼ÀQÀzÄ]ÐEXÐVXÐZ^Ð[^ÐZ^ÔD_Ñ8`Ô8`Ð8`Ð8`ðbñ 	cˆõ ‰dŒdˆØ�[Š[Ð~ð  BCð  DHô  BIð  AKñ  Lô  L÷  Uò  Uñ  Wô  WˆØ�	Š	‰ŒˆØð 	EØð  cØ—g’gð  að  að  ^`ð  añ  aô  añ  aô  añað dnñnñ oˆCˆCàˆ|Œ_Ð @Ð@Ð@Øð  Eñ  EˆCøØ	
ˆ<Œ˜LÒ	(Ð	(Øð  Fñ  	FˆØˆÔð 
K˜Fð 
KØ�wŠwð (ð (à &ð(ñ (ô (ñ (ô (ˆð 	ˆð |@Ð{Ð{ð  BCð  DHô  BIð  BIð  BIðJñ 	Kˆð ˆ8�O€CØ�"‰H�s‰N˜YÑ&×.Ò.¨wÑ7Ô7Ð7r   c                   ó>   — e Zd ZdZd„ Zd„ Zd„ Zdd„Zd„ Zd„ Z	d	„ Z
d
S )ÚHzCalibCSDLB/1.0c                 ó   — d S rŸ   r#   )ÚselfÚas     r   Úlog_messagezH.log_message  s   € Øˆr   c                 ó¶   — t           j                             | j        ¦  «        }|j                             d¦  «        rd|j        dd …         pdfnd|j        fS )Nz/calibé   ú/r	   )r­   r®   Úurlparsera   r�   )rÎ   Úus     r   Ú_tachzH._tach  sW   € ÝŒL×!Ò! $¤)Ñ,Ô,ˆØ01´×0AÒ0AÀ(Ñ0KÔ0KÐ]�˜!œ&   œ*Ð+¨Ð,Ð,ÐRTÐVWÔV\ÐQ]Ð]r   c                 óè   — t          | j                             d¦  «        pd¦  «        }|                     d¦  «        }t          |o%t	          j        |j        t          ¦   «         ¦  «        ¦  «        S )NÚCookier	   Úcalib)r   Úheadersr{   r«   r,   Úcompare_digestÚvaluer2   )rÎ   Úcrh   s      r   Ú_okzH._ok  sY   € Ý˜œ×)Ò)¨(Ñ3Ô3Ð9°rÑ:Ô:ˆØ�EŠE�'‰NŒNˆÝ�AÐB�$Ô-¨a¬gµx±z´zÑBÔBÑCÔCÐCr   útext/html; charset=utf-8c                 óp  — |                       |¦  «         |                      d|¦  «         |                      dt          t          |¦  «        ¦  «        ¦  «         |                      dd¦  «         |                      dd¦  «         |                      ¦   «          | j                             |¦  «         d S )NúContent-TypeúContent-LengthzCache-Controlzno-store, must-revalidateÚPragmazno-cache)Úsend_responseÚsend_headerr¡   ÚlenÚend_headersÚwfiler   )rÎ   r>   ÚndÚloais       r   Ú_guizH._gui$  sª   € Ø×Ò˜2ÑÔÐØ×Ò˜¨Ñ.Ô.Ð.Ø×ÒÐ)­3­s°2©w¬w©<¬<Ñ8Ô8Ð8Ø×Ò˜Ð*EÑFÔFÐFØ×Ò˜ :Ñ.Ô.Ð.Ø×ÒÑÔÐØŒ
×Ò˜ÑÔÐÐÐr   c                 ó‚   — |                       dt          j        |d¬¦  «                             d¦  «        d¦  «         d S )NéÈ   F©Úensure_asciir   zapplication/json; charset=utf-8)rë   rj   rk   r.   )rÎ   Úos     r   Ú_jsonzH._json-  s<   € Ø�	Š	�#•t”z !°%Ð8Ñ8Ô8×?Ò?ÀÑHÔHÐJkÑlÔlÐlÐlÐlr   c           
      óª  — |                       ¦   «         \  }}t          j                             t          j                             | j        ¦  «        j        ¦  «        }|                      ¦   «         s5|                      dt          ¦   «          
                    d¦  «        ¦  «        S |dv r7|                      dt          ¦   «          
                    d¦  «        ¦  «         d S |dk    rW|                      d¦  «         |                      dd¦  «         |                      dd	¦  «         |                      ¦   «          d S |d
k    rÂt          ¦   «         }t           j        |_        |                     d|                     ddg¦  «        d         f¦  «                             ¦   «         }|                     ¦   «          |s|                      dd¦  «        S |                      dt/          t1          |¦  «        |¦  «        ¦  «         d S |dk    r¶t          ¦   «         }|                     d|                     ddg¦  «        d         f¦  «                             ¦   «         }|                     ¦   «          |                      |r|d         nd|r
|d         pdnd|r|d         nd |r|d         pdd d…         nddœ¦  «         d S |dk    r‹t          ¦   «         }d                     d„ |                     d¦  «        D ¦   «         ¦  «        }|                     ¦   «          |                      ddt6          ›d|›d� 
                    d¦  «        ¦  «         d S |dk    rÀt          ¦   «         }d                     d „ |                     d!¦  «        D ¦   «         ¦  «        }d                     d"„ |                     d#¦  «        D ¦   «         ¦  «        }	|                     ¦   «          |                      ddt6          ›d$|›d%|	›d� 
                    d¦  «        ¦  «         d S |d&k    �rœt          ¦   «         }|                     d'|                     ddg¦  «        d         f¦  «                             ¦   «         }|                     ¦   «          |s|                      dd(¦  «        S t8          j                             t8          j                             |d         |                     d)dg¦  «        d         ¦  «        ¦  «        }
|
                     t8          j                             |d         ¦  «        ¦  «        rt8          j                             |
¦  «        s|                      dd(¦  «        S |                      dtA          |
d*¦  «         !                    ¦   «         tE          j#        |
¦  «        d         pd+¦  «         d S |                      dd,¦  «         d S )-Nrí   r   )rÓ   r	   z/thoaté.  ú
Set-Cookiezcalib=; Path=/; Max-Age=0ÚLocationú./z/hon-hopz SELECT * FROM hon_hop WHERE id=?r<   Ú0r   é”  s
   Khong thayz/trang-thaizASELECT trang_thai,du_doan_hex,delta_E,loi FROM hon_hop WHERE id=?z
khong-thayrN   r	   rO   r   )rr   rŽ   r™   r]   z/lich-suc              3   ó<  K  — | ]—}d |d         ›d|d         ›dt          j        |d         pddd…         ¦  «        ›dt          j        |d         pddd	…         ¦  «        ›dt          |d
         ¦  «        ›d|d         ›d|d         ›dd|d         z  ›d�V — Œ˜dS )rx   r   ry   rN   rO   r	   Né(   r   é   rv   z</td><td><span class="tt r¨   rg   z</span></td><td>u    <a href="hon-hop?id=%s">má»Ÿ</a>ú
</td></tr>)rV   rW   rZ   r£   s     r   ri   zH.do_GET.<locals>.<genexpr>L  sê   è è € ð cð cð  !˜qð   œd˜d˜d A a¤D D D­$¬+°q¸´t°z¸rÀ3ÀBÀ3Ô6GÑ*HÔ*HÐ*HÐ*HÍ$Ì+ÐWXÐYZÔW[ÐWaÐ_aÐcfÐdfÐcfÔVgÑJhÔJhÐJhÐJhÕjpÐqrÐstÔquÑjvÔjvÐjvÐjvØ œd˜d˜d A a¤D D DÐ+MÐPQÐRSÔPTÑ+TÐ+TÐ+TðWð cð cð cð cð cð cr   znSELECT id,tao_luc,nguoi_nhap,thanh_phan,du_doan_hex,trang_thai,delta_E FROM hon_hop ORDER BY id DESC LIMIT 100zð<base href="./"><script>document.addEventListener("DOMContentLoaded",function(){var B=(location.pathname.indexOf("/calib")===0)?"/calib/":"/";var b=document.querySelector("base");if(b&&b.getAttribute("href")!==B)b.href=B;});</script><style>uÏ   </style><header><b>Lá»ŠCH Sá»¬ Há»–N Há»¢P</b></header><main><div class="the"><table><tr><th>#</th><th>LÃºc</th><th>NgÆ°á»�i</th><th>ThÃ nh pháº§n</th><th>Dá»± Ä‘oÃ¡n</th><th>Tráº¡ng thÃ¡i</th><th></th></tr>uH   </table><p><a href="./">â†� Táº¡o há»—n há»£p má»›i</a></p></div></main>z/hieu-chinhc              3   óú   K  — | ]v}d t          j        |d         ¦  «        ›dt          j        |d         ¦  «        ›d|d         ›d|d         pd›dt          j        |d         pd	d
d…         ¦  «        ›d�V — Œwd
S )rx   r   ry   rN   r§   rO   z</b></td><td>r   rv   r	   Nr4   rü   rU   r£   s     r   ri   zH.do_GET.<locals>.<genexpr>V  sµ   è è € ð `ð `à˜Aõ  œ; q¨¤tÑ,Ô,Ð,Ð,­d¬k¸!¸A¼$Ñ.?Ô.?Ð.?Ð.?ÀÀ1ÄÀÀÀqÈÄtÀyÈqÀyÀyÕRVÔR]Ð_`ÐabÔ_cÐ_iÐgiÐknÐlnÐknÔ^oÑRpÔRpÐRpÐRpðrð `ð `ð `ð `ð `ð `r   znSELECT ten,ma,COALESCE(he_so_cuong_do,1.0),COALESCE(so_lan_hieu_chinh,0),ngay_hieu_chinh FROM mau ORDER BY tenc              3   óú   K  — | ]v}d |d         ›dt          j        |d         pd¦  «        ›d|d         ›d|d         ›d|d         ›d|d         ›dt          j        |d	         pdd
d…         ¦  «        ›d�V — Œwd
S )rx   r   ry   rN   r	   rO   r   rv   r¨   rÒ   NéF   rü   rU   r£   s     r   ri   zH.do_GET.<locals>.<genexpr>Y  s½   è è € ð kð kà˜Qð ˜aœD˜D˜D¥$¤+¨a°¬d¨j°bÑ"9Ô"9Ð"9Ð"9¸1¸Q¼4¸4¸4ÀÀ1ÄÀÀÀqÈÄtÀtÀtÈQÈqÌTÈTÈTÕSWÔS^Ð`aÐbcÔ`dÐ`jÐhjÐloÐmoÐloÔ_pÑSqÔSqÐSqÐSqðsð kð kð kð kð kð kr   zxSELECT ngay,mau_ten,gia_tri_cu,gia_tri_moi,delta_E_truoc,hon_hop_id,ly_do FROM hieu_chinh_mau ORDER BY id DESC LIMIT 200u"  </style><header><b>HIá»†U CHá»ˆNH CSDL B</b></header><main><div class="the"><h3 style="margin-top:0">Há»‡ sá»‘ cÆ°á»�ng Ä‘á»™ hiá»‡n táº¡i cá»§a tá»«ng mÃ u</h3><table><tr><th>MÃ u</th><th>MÃ£</th><th>Há»‡ sá»‘ cÆ°á»�ng Ä‘á»™</th><th>Sá»‘ láº§n hiá»‡u chá»‰nh</th><th>Láº§n cuá»‘i</th></tr>uo  </table><p><small>1.0 = nhÆ° sá»‘ Ä‘o gá»‘c Â· &gt;1 = mÃ u máº¡nh hÆ¡n giáº£ Ä‘á»‹nh (giáº£m tá»‰ lá»‡ dÃ¹ng) Â· &lt;1 = yáº¿u hÆ¡n (tÄƒng tá»‰ lá»‡).</small></p></div><div class="the"><h3 style="margin-top:0">Lá»‹ch sá»­ hiá»‡u chá»‰nh</h3><table><tr><th>NgÃ y</th><th>MÃ u</th><th>CÅ©</th><th>Má»›i</th><th>Î”E trÆ°á»›c</th><th>Há»—n há»£p</th><th>LÃ½ do</th></tr>z/tepú&SELECT thu_muc FROM hon_hop WHERE id=?ó   xr¹   Úrbzapplication/octet-streamó   Khong co)$rÖ   r­   r®   Úparse_qsrÔ   ra   ÚqueryrÞ   rë   r^   r.   rn   rä   rå   rç   r9   r6   ÚRowÚrow_factoryrG   r{   rP   rI   rÊ   rA   rñ   rb   r\   r`   Únormpathr�   Úexistsr   r   Ú	mimetypesÚ
guess_type)rÎ   Útien_toÚduongr²   rJ   r±   rK   r¸   rh   rÈ   r   s              r   Údo_GETzH.do_GET0  sö  € ØŸš™œ‰ˆ�ÝŒL×!Ò!¥&¤,×"7Ò"7¸¼	Ñ"BÔ"BÔ"HÑIÔIˆØ�xŠx‰zŒzð 	EØ—9’9˜S¥/Ñ"3Ô"3×":Ò":¸7Ñ"CÔ"CÑDÔDÐDØ�IÐÐØ�IŠI�c�;™=œ=×/Ò/°Ñ8Ô8Ñ9Ô9Ð9Ð9Ð9Ø�hÒÐØ×Ò˜sÑ#Ô#Ð#Ø×Ò˜\Ð+FÑGÔGÐGØ×Ò˜Z¨Ñ.Ô.Ð.Ø×ÒÑÔÐÐÐØ�jÒ Ð Ý‘$”$ˆCÝ%œkˆCŒOØ—’Ð>ÀÇÂÀtÈcÈUÑASÔASÐTUÔAVÐ@XÑYÔY×bÒbÑdÔdˆAØ�IŠI‰KŒKˆKØð 5Ø—y’y  mÑ4Ô4Ð4Ø�IŠI�c�>­$¨q©'¬'°1Ñ5Ô5Ñ6Ô6Ð6Ð6Ð6Ø�mÒ#Ð#Ý‘$”$ˆCØ—’Ð_Ðbc×bgÒbgÐhlÐorÐnsÑbtÔbtÐuvÔbwÐayÑzÔz÷  Dò  Dñ  Fô  FˆAØ�IŠI‰KŒKˆKØ�JŠJ¨aÐ&A a¨¤d d°\ÐbcÐRkÐSTÐUVÔSWÐS]Ð[]øÐikØ+,Ð#6 1 Q¤4 4°$ÐVWÐ@_ÀÀ1ÄÀÈÈTÈcÈTÔ@RÐ@RÐ]_ðbð bñ cô cð cð cð cà�jÒ Ð Ý‘$”$ˆCØ—7’7ð cð cð %(§K¢Kð  1añ  %bô  %bðcñ cô cñ cô cˆDð �IŠI‰KŒKˆKØ�IŠI�c�cåbeÐbeÐbeÐgkÐgkÐgkðmçntÒntÐu|Ñn}Ôn}ñô ð ð ð ð �mÒ#Ð#Ý‘$”$ˆCØ—’ð `ð `à!$§¢ð  .^ñ  "_ô  "_ð`ñ `ô `ñ `ô `ˆAð —’ð kð kà"%§+¢+ð  /iñ  #jô  #jðkñ kô kñ kô kˆBð �IŠI‰KŒKˆKØ�IŠI�c�cõ cfÐbeÐbeÐghÐghÐghÐjlÐjlÐjlðn÷ pvÒouÐv}Ño~Ôo~ñ@ô @ð @ð @ð @ð �fŠ_‰_Ý‘$”$ˆCØ—’ÐDÀqÇuÂuÈTÐTWÐSXÑGYÔGYÐZ[ÔG\ÐF^Ñ_Ô_×hÒhÑjÔjˆAØ�IŠI‰KŒKˆKØð ,Ø—y’y  dÑ+Ô+Ð+Ý”× Ò ¥¤§¢¨a°¬d°A·E²E¸#À¸tÑ4DÔ4DÀQÔ4GÑ!HÔ!HÑIÔIˆAØ—<’<¥¤× 0Ò 0°°1´Ñ 6Ô 6Ñ7Ô7ð ,½r¼w¿~º~ÈaÑ?PÔ?Pð ,Ø—y’y  dÑ+Ô+Ð+Ø�IŠI�c�4  4™=œ=×-Ò-Ñ/Ô/µÔ1EÀaÑ1HÔ1HÈÔ1KÐ1iÐOiÑjÔjÐjÐjÐjà�IŠI�c˜;Ñ'Ô'Ð'Ð'Ð'r   c                 ó   — |                       ¦   «         \  }}|dk    �rMt          | j                             d¦  «        pd¦  «        }t	          j        t          j        | j         	                    |¦  «        ¦  «        | j        d| j                             dd¦  «        dœ¬¦  «        }| 
                    d	d¦  «        t          ¦   «         k    rf|                      d
¦  «         |                      ddt          ¦   «         z  ¦  «         |                      dd¦  «         |                      ¦   «          d S |                      dt#          d¦  «                             d¦  «        ¦  «        S |                      ¦   «         s|                      dd¦  «        S t          | j                             d¦  «        pd¦  «        }|dk    �rt	          j        t          j        | j         	                    |¦  «        ¦  «        | j        d| j                             dd¦  «        dœ¬¦  «        }	 t)          j        | 
                    dd¦  «        ¦  «        }n'# t,          $ r |                      ddi¦  «        cY S w xY w|s|                      ddi¦  «        S t1          ¦   «         }d„ |                     d¦  «        D ¦   «         }|D ]'}|                     |d         |d         ¦  «        |d<   Œ(|                     dt5          j        d¦  «        | 
                    d d¦  «        | 
                    d!d¦  «        t)          j        |d"¬#¦  «        t;          | 
                    d$d¦  «        pd¦  «        t<          | 
                    d%d¦  «        pd                     ¦   «         ptA          ¦   «         f¦  «        }	|	j!        }
tD          j#         $                    tJ          d&|
t5          j        d'¦  «        fz  ¦  «        }tE          j&        tD          j#         $                    |d(¦  «        d)¬*¦  «         |                     d+||
f¦  «         | '                    ¦   «          | (                    ¦   «          tS          d,t5          j        d-¦  «        |
| 
                    d d¦  «        tU          |¦  «        fz  ¦  «         |                      d.|
i¦  «        S |d/k    �r¹t          | j                             d¦  «        pd¦  «        }t	          j        t          j        | j         	                    |¦  «        ¦  «        | j        d| j                             dd¦  «        dœ¬¦  «        }t          tV          j,         -                    tV          j,         .                    | j#        ¦  «        j/        ¦  «                             d.d0g¦  «        d         ¦  «        }| 
                    d	d¦  «                             ¦   «         ta          ¦   «         k    rjtS          d1t5          j        d-¦  «        |fz  ¦  «         |                      d
¦  «         |                      dd2|z  ¦  «         |                      ¦   «          d S dd l1}|j2         3                    d3tD          j#         $                    th          d4¦  «        ¦  «        }|j2         5                    |¦  «        }|j6         7                    |¦  «         t1          ¦   «         }| 8                    ||¦  «        \  }}| (                    ¦   «          tS          d5t5          j        d-¦  «        ||fz  ¦  «         |                      d
¦  «         |                      dd6||fz  ¦  «         |                      ¦   «          d S |d7k    �rït	          j        t          j        | j         	                    |¦  «        ¦  «        | j        d| j                             dd¦  «        dœ¬¦  «        }t          tV          j,         -                    tV          j,         .                    | j#        ¦  «        j/        ¦  «                             d.d0g¦  «        d         ¦  «        }dd l1}|j2         3                    d3tD          j#         $                    th          d4¦  «        ¦  «        }|j2         5                    |¦  «        }|j6         7                    |¦  «         	 | 9                    |¦  «        \  }}n# t,          $ r}d"d8|z  }}Y d }~nd }~ww xY wtS          d9t5          j        d-¦  «        ||fz  ¦  «         |                      d
¦  «         |                      dd:||rd;ndfz  ¦  «         |                      ¦   «          d S |d<k    �rrt          tV          j,         -                    tV          j,         .                    | j#        ¦  «        j/        ¦  «                             d.d0g¦  «        d         ¦  «        }t	          j        t          j        | j         	                    |¦  «        ¦  «        | j        d| j                             dd¦  «        dœ¬¦  «        }t1          ¦   «         }|                     d=|f¦  «         :                    ¦   «         }|rd(|vr*| (                    ¦   «          |                      d>d?¦  «        S tD          j#         $                    |d         d(tD          j#         ;                    |d(         j<        pd@¦  «        ¦  «        }t{          |dA¦  «         >                    |d(         j?         	                    ¦   «         ¦  «         |                     dB||f¦  «         | '                    ¦   «          | (                    ¦   «          tS          dCt5          j        d-¦  «        |fz  ¦  «         |                      d
¦  «         |                      ddD|z  ¦  «         |                      ¦   «          d S |                      dEdF¦  «         d S )GNz
/dang-nhaprâ   r   ÚPOSTrá   r	   )ÚREQUEST_METHODÚCONTENT_TYPE)ÚfprÚ   Úenvironr   ró   rô   z7calib=%s; Path=/; Max-Age=43200; HttpOnly; SameSite=Laxrõ   rö   rí   u!   Sai máº­t kháº©u â€” thá»­ láº¡i.r   i“  s   Chua dang nhapz/tao-hon-hoprp   rq   r]   u   thanh_phan khÃ´ng pháº£i JSONu   chÆ°a cÃ³ thÃ nh pháº§nc                 ó,   — i | ]}|d          |d         “ŒS )r   rN   r#   r£   s     r   ú
<dictcomp>zH.do_POST.<locals>.<dictcomp>‹  s"   € ÐMÐMÐM !�1�Q”4˜˜1œÐMÐMÐMr   zSELECT ma,ten FROM maur>   r=   z©INSERT INTO hon_hop (tao_luc,nguoi_nhap,ghi_chu,thanh_phan,tong_ti_le,trang_thai,dieu_kien,email)
                                 VALUES (?,?,?,?,?, 'cho_du_doan', ?,?)z%Y-%m-%d %H:%M:%Sr…   r‰   Frî   rˆ   r„   zH%04d_%sz%d%mÚanhTr   z'UPDATE hon_hop SET thu_muc=? WHERE id=?u/   [%s] há»—n há»£p #%d tá»« %s | %d thÃ nh pháº§nz%H:%M:%Sr<   z/ap-dungr÷   uA   [%s] há»—n há»£p #%d: SAI máº­t kháº©u xÃ¡c nháº­n hiá»‡u chá»‰nhz./hon-hop?id=%d&sai_pass=1Úwcalzworker_calib.pyuA   [%s] há»—n há»£p #%d: Ä�Ãƒ GHI hiá»‡u chá»‰nh %d mÃ u vÃ o CSDL Bz./hon-hop?id=%d&da_ap=%dz/bao-laiu	   lá»—i: %su4   [%s] há»—n há»£p #%d: Gá»¬I Láº I THÃ”NG BÃ�O â†’ %sz./hon-hop?id=%d&da_bao=%drN   z/tai-anhr   i�  s	   Thieu anhzanh.jpgÚwbz+UPDATE hon_hop SET anh_thuc_te=? WHERE id=?u3   [%s] há»—n há»£p #%d: Ä‘Ã£ nháº­n áº£nh thá»±c táº¿z./hon-hop?id=%d&da_tai=1rø   r  )@rÖ   ÚintrÚ   r{   ÚcgiÚFieldStorageÚioÚBytesIOÚrfiler   Úgetvaluer   rä   rå   r2   rç   rë   r^   r.   rÞ   rj   rª   r   rñ   r9   rG   ÚtimeÚstrftimerk   Úfloatr¬   r   rd   Ú	lastrowidr`   ra   rb   ÚVIECÚmakedirsÚcommitrI   Úprintræ   r­   r®   r  rÔ   r  r$   Úimportlib.utilÚutilÚspec_from_file_locationrc   Úmodule_from_specÚloaderÚexec_moduleÚap_dungÚgui_lai_baorP   r°   Úfilenamer   r   Úfile)rÎ   r  r  ÚdaiÚfsr³   rJ   r=   rE   ÚcurÚvidr¹   ÚhidÚ	importlibÚspecrh   ÚnÚmoÚokrº   ÚerK   r   s                          r   Údo_POSTz	H.do_POSTq  s  € ØŸš™œ‰ˆ�Ø�LÒ Ñ Ý�d”l×&Ò&Ð'7Ñ8Ô8Ð=¸AÑ>Ô>ˆCÝÔ!¥R¤Z°´
·²ÀÑ0DÔ0DÑ%EÔ%EÈtÌ|Ø=CÐUYÔUa×UeÒUeÐftÐvxÑUyÔUyÐ*zÐ*zð|ñ |ô |ˆBà�{Š{˜: rÑ*Ô*­h©j¬jÒ8Ð8Ø×"Ò" 3Ñ'Ô'Ð'Ø× Ò  Ð/hÕksÑkuÔkuÑ/uÑvÔvÐvØ× Ò  ¨TÑ2Ô2Ð2Ø× Ò Ñ"Ô"Ð"Ø�Ø—9’9˜S¥/Ð2UÑ"VÔ"V×"]Ò"]Ð^eÑ"fÔ"fÑgÔgÐgØ�xŠx‰zŒzð 	5Ø—9’9˜SÐ"3Ñ4Ô4Ð4Ý�$”,×"Ò"Ð#3Ñ4Ô4Ð9¸Ñ:Ô:ˆØ�NÒ"Ñ"ÝÔ!¥R¤Z°´
·²ÀÑ0DÔ0DÑ%EÔ%EÈtÌ|Ø=CÐUYÔUa×UeÒUeÐftÐvxÑUyÔUyÐ*zÐ*zð|ñ |ô |ˆBðLÝ”Z §¢¨L¸$Ñ ?Ô ?Ñ@Ô@��øÝð Lð Lð LØ—z’z 5Ð*IÐ"JÑKÔKÐKÐKÐKðLøøøàð FØ—z’z 5Ð*CÐ"DÑEÔEÐEÝ‘$”$ˆCØMÐM s§{¢{Ð3KÑ'LÔ'LÐMÑMÔMˆCØð 5ð 5�ØŸ7š7 1 T¤7¨A¨d¬GÑ4Ô4��%‘�Ø—+’+ð Kå#œ}Ð-@ÑAÔAÀ2Ç;Â;È|Ð]_ÑC`ÔC`Ðbd×bmÒbmÐnwÐy{Ñb|Ôb|Ý#œz¨"¸5ÐAÑAÔAÅ5ÈÏÊÐUaÐcdÑIeÔIeÐIjÐijÑCkÔCkÕmvØ "§¢¨G°RÑ 8Ô 8Ð >¸B×EÒEÑGÔGÐ[Í>ÑK[ÔK[ð]ñ^ô ^ˆCð
 ”-ˆCÝ”—’�T :°µd´mÀFÑ6KÔ6KÐ0LÑ#LÑMÔMˆAÝŒK�œŸš Q¨Ñ.Ô.¸Ð>Ñ>Ô>Ð>Ø�KŠKÐAÀAÀsÀ8ÑLÔLÐLØ�JŠJ‰LŒLˆLØ�IŠI‰KŒKˆKÝÐCÅtÄ}ÐU_ÑG`ÔG`ÐbeÐgi×grÒgrÐsð  BDñ  hEô  hEõ  GJð  KMñ  GNô  GNð  GOñ  Oñ  Pô  Pð  PØ—:’:˜t S˜kÑ*Ô*Ð*Ø�JÒÑÝ�d”l×&Ò&Ð'7Ñ8Ô8Ð=¸AÑ>Ô>ˆCÝÔ!¥R¤Z°´
·²ÀÑ0DÔ0DÑ%EÔ%EÈtÌ|Ø=CÐUYÔUa×UeÒUeÐftÐvxÑUyÔUyÐ*zÐ*zð|ñ |ô |ˆBå•f”l×+Ò+­F¬L×,AÒ,AÀ$Ä)Ñ,LÔ,LÔ,RÑSÔS×WÒWÐX\Ð_bÐ^cÑdÔdÐefÔgÑhÔhˆCØ�{Š{˜: rÑ*Ô*×0Ò0Ñ2Ô2µoÑ6GÔ6GÒGÐGÝÐYÕ]aÔ]jÐkuÑ]vÔ]vÐx{Ð\|Ñ|Ñ}Ô}Ð}Ø×"Ò" 3Ñ'Ô'Ð'Ø× Ò  Ð-IÈCÑ-OÑPÔPÐPØ× Ò Ñ"Ô"Ð"Ø�Ø!Ð!Ð!Ð!Ø”>×9Ò9¸&Å"Ä'Ç,Â,ÍsÐTeÑBfÔBfÑgÔgˆDØ”×/Ò/°Ñ5Ô5ˆAØŒK×#Ò# AÑ&Ô&Ð&Ý‘$”$ˆCØ—I’I˜c 3Ñ'Ô'‰EˆAˆrØ�IŠI‰KŒKˆKÝÐUÕY]ÔYfÐgqÑYrÔYrÐtwÐyzÐX{Ñ{Ñ|Ô|Ð|Ø×Ò˜sÑ#Ô#Ð#Ø×Ò˜ZÐ)CÀsÈAÀhÑ)NÑOÔOÐOØ×ÒÑÔÐØˆFØ�JÒÑÝÔ!¥R¤Z°´
·²ÀÑ0DÔ0DÑ%EÔ%EÈtÌ|Ø=CÐUYÔUa×UeÒUeÐftÐvxÑUyÔUyÐ*zÐ*zð|ñ |ô |ˆBå•f”l×+Ò+­F¬L×,AÒ,AÀ$Ä)Ñ,LÔ,LÔ,RÑSÔS×WÒWÐX\Ð_bÐ^cÑdÔdÐefÔgÑhÔhˆCØ!Ð!Ð!Ð!Ø”>×9Ò9¸&Å"Ä'Ç,Â,ÍsÐTeÑBfÔBfÑgÔgˆDØ”×/Ò/°Ñ5Ô5ˆAØŒK×#Ò# AÑ&Ô&Ð&ð0ØŸš sÑ+Ô+‘��B�BøÝð 0ð 0ð 0Ø ¨a¡�B������øøøøð0øøøåÐHÍDÌMÐZdÑLeÔLeÐgjÐlnÐKoÑoÑpÔpÐpØ×Ò˜sÑ#Ô#Ð#Ø×Ò˜ZÐ)DÈÐRTÈ^ÈQÈQÐZ[ÐG\Ñ)\Ñ]Ô]Ð]Ø×ÒÑÔÐØˆFØ�JÒÑÝ•f”l×+Ò+­F¬L×,AÒ,AÀ$Ä)Ñ,LÔ,LÔ,RÑSÔS×WÒWÐX\Ð_bÐ^cÑdÔdÐefÔgÑhÔhˆCÝÔ!¥R¤Z°´
·²ÀÑ0DÔ0DÑ%EÔ%EÈtÌ|Ø=CÐUYÔUa×UeÒUeÐftÐvxÑUyÔUyÐ*zÐ*zð|ñ |ô |ˆBå‘$”$ˆCØ—’ÐDÀsÀfÑMÔM×VÒVÑXÔXˆAØð 4˜ R˜˜Ø—	’	‘”�Ø—y’y  lÑ3Ô3Ð3Ý”—’˜Q˜qœT 5­"¬'×*:Ò*:¸2¸e¼9Ô;MÐ;ZÐQZÑ*[Ô*[Ñ\Ô\ˆAÝ��D‰MŒM×Ò  5¤	¤× 3Ò 3Ñ 5Ô 5Ñ6Ô6Ð6Ø�KŠKÐEÈÈ3ÀxÑPÔPÐPØ�JŠJ‰LŒLˆLØ�IŠI‰KŒKˆKÝÐGÍ4Ì=ÐYcÑKdÔKdÐfiÐJjÑjÑkÔkÐkØ×Ò˜sÑ#Ô#Ð#Ø×Ò˜ZÐ)CÀcÑ)IÑJÔJÐJØ×ÒÑÔÐØˆFØ�	Š	�#�{Ñ#Ô#Ð#Ð#Ð#s*   È)(I É!I6É5I6ãc0 ã0
dã:dädN)rß   )Ú__name__Ú
__module__Ú__qualname__Úserver_versionrÐ   rÖ   rÞ   rë   rñ   r  r>  r#   r   r   rÌ   rÌ     s–   € € € € € Ø%€Nðð ð ð^ð ^ð ^ðDð Dð Dð
ð ð ð ðmð mð mð?(ð ?(ð ?(ðBe$ð e$ð e$ð e$ð e$r   rÌ   Ú__main__u5   CALIB CSDL B: http://127.0.0.1:%d  (máº­t kháº©u: %s)z	127.0.0.1)r	   )2Ú__doc__r  r/   r,   rV   r  rj   r
  r`   Úrer   r6   Úsysr!  Úurllib.parser­   Úhttp.cookiesr   Úhttp.serverr   r   rc   r8   ra   rb   r%  ÚCONGr   r"   r¬   r'   r&  r   r   r$   r)   r2   r9   rL   rS   rZ   r\   r^   rd   rn   rÊ   rÌ   r?  r(  Úserve_foreverr#   r   r   ú<module>rL     sç  ððð ð hÐ gÐ gÐ gÐ gÐ gÐ gÐ gÐ gÐ gÐ gÐ gÐ gÐ gÐ gÐ gÐ gÐ gÐ gÐ gÐ gÐ gÐ gÐ gÐ gÐ gÐ gÐ gÐ gÐ gÐ gÐ gÐ gÐ gÐ gÐ gÐ gÐ gÐ gÐ gÐ gÐ gÐ gÐ gÐ gÐ gÐ gÐ gÐ gÐ gÐ gÐ gÐ gÐ gÐ gÐ gØ %Ð %Ð %Ð %Ð %Ð %Ø CÐ CÐ CÐ CÐ CÐ CÐ CÐ CàB€Ø@€Ø	„w‡|‚|�C˜Ñ Ô €Ø€Ø
Œ'�,Š,�s˜NÑ
+Ô
+€ØŒG�LŠL˜Ð3Ñ4Ô4€	ð_€	à
Œ'�,Š,�s˜LÑ
)Ô
)€Ø €„ˆD˜4Ð  Ñ  Ô  Ð  ðð ð ð ðð ð ðð ð ðð ð ð]ð ]ð ]ð+ð +ð +ðð ð ð
"ð 
"ð 
"ðyð yð yð yð€ð*Xð Xð Xð Xðð ð ð)Mð )Mð )MðXf8ð f8ð f8ðRA$ð A$ð A$ð A$ð A$Ðñ A$ô A$ð A$ðH ˆzÒÐØ	€EÐ
AÀTÈ8È8É:Ì:ÐDVÑ
VÑWÔWÐWØÐ˜ dÐ+¨QÑ/Ô/×=Ò=Ñ?Ô?Ð?Ð?Ð?ð Ðr   