Files
pyGoEdge-UserPanel/admin_panel/__pycache__/views.cpython-312.pyc

126 lines
41 KiB
Plaintext
Raw Normal View History

2025-11-18 03:36:49 +08:00
<EFBFBD>
<00>i <0B><00><00><><00>ddlmZmZddlZddlZddlmZddlmZddl m
Z
ddl m Z ddl mZmZddlmZdd lmZdd
l mZdd lmZdd lmZdd lmZddlmZddlmZddlm Z m!Z!m"Z"m#Z#m$Z$ddlmZm%Z%ddl&m'Z'ddl(m)Z)ddl*m+Z+ddlm,Z,d<17>Z-ed<18><00>Z.ed<19><00>Z/ed<1A><00>Z0ed<1B><00>Z1ed<1C><00>Z2ede3fd<1E><04>Z4eede3fd<1F><04><00>Z5eede3fd <20><04><00>Z6eede3fd!<21><04><00>Z7eede3fd"<22><04><00>Z8ed#<23><00>Z9ed$<24><00>Z:eeejvd%e3fd&<26><04><00><00>Z<eejvd%e3fd'<27><04><00>Z=eejvd%e3fd(<28><04><00>Z>eeejvd%e3fd)<29><04><00><00>Z?ed*<2A><00>Z@eejvd+e3fd,<2C><04><00>ZAed-<2D><00>ZBed.<2E><00>ZCej<>eE<65>ZFy)/<2F>)<02>render<65>redirectN)<01>login_required)<01>HttpResponseForbidden)<01>messages)<01>models)<02>Count<6E>Sum)<01> require_POST)<01>get_user_model)<01> transaction)<01>reverse)<01>SystemSettings)<01>Plan)<01>Domain)<01>Invoice<63>)<05>SystemSettingsForm<72>PlanForm<72>DomainPlanSwitchForm<72>DomainGrantTrafficForm<72>InvoiceAdjustmentForm)r<00> InvoiceItem)<01>Decimal)<01>timezone)<01> GoEdgeClient)<01> OperationLogc<00>\<00>|jjsy|jjS)NF)<03>user<65>is_authenticated<65>is_staff)<01>requests <20>(E:\Project\pygoedge\admin_panel\views.py<70> _staff_onlyr$s"<00><00> <12><<3C><<3C> (<28> (<28><14> <12><<3C><<3C> <20> <20> <20>c <00><><00>t|<00>s td<01>S|jjjj <00>}t jj <00>}tjj <00>}ttd<02>r.tjjd<03><04>j <00>nd}t|d||||d<07><04>S)N<>需要运营权限staff<66>status<75>unpaid<69>r(rzadmin_panel/dashboard.html)<04> users_count<6E> domains_count<6E> plans_count<6E>unpaid_invoices) r$rr<00> __class__<5F>objects<74>countrr<00>hasattrr<00>filterr)r"r+r,r-r.s r#<00> dashboardr4 s<><00><00> <16>w<EFBFBD> <1F>$<24>%D<>E<>E<><19>,<2C>,<2C>(<28>(<28>0<>0<>6<>6<>8<>K<EFBFBD><1A>N<EFBFBD>N<EFBFBD>(<28>(<28>*<2A>M<EFBFBD><16>,<2C>,<2C>$<24>$<24>&<26>K<EFBFBD>IP<49>QX<51>Zb<5A>Ic<49>g<EFBFBD>o<EFBFBD>o<EFBFBD>,<2C>,<2C>H<EFBFBD>,<2C>=<3D>C<>C<>E<>ij<69>O<EFBFBD> <11>'<27>7<>"<22>&<26>"<22>*<2A> :<06> <07>r%c <00><00>t|<00>s td<01>S|jjdd<03>j <00>}|jjdd<03>j <00>}|jjdd<03>j <00>}|jjd<06>xsd}|jjd<07>xsd}|jjd<08>xsd}t
j jd<02>j<00>}|r|j|<01> <09>}|r|j|<02>
<EFBFBD>}|r|j|<03> <0B>}|r/ d d l
m }m } ||<04>xs| |<04>}
|
r|j|
<EFBFBD><0E>}|r/ d d l
m }m } ||<05>xs| |<05>}
|
r|j|
<EFBFBD><0F>}|jd<10>}|dk(r<>d dl} d dlm} | d<13><14>} d| d<| j%| <0A>}|j'gd<17><01>|ddD]b}|j'|j(|j*r|j*j,nd|j.|j0|j2g<05><00>d| Sd dlm}||d<1A>}|jjd<1B>xsd} |j9|<12>}t;|d||||||d<1E><06>S#t$rY<00><01>OwxYw#t$rY<00><01>.wxYw#t$r|j9d<1C>}Y<00>PwxYw)Nr'<00>actor<6F><00>action<6F>target<65>start<72>end<6E>export)<01>actor__username__icontains)<01>action__icontains)<01>target__icontainsr)<02>parse_datetime<6D>
parse_date)<01>created_at__gte)<01>created_at__ltez -created_at<61>csv)<01> HttpResponseztext/csv; charset=utf-8)<01> content_typez)attachment; filename="operation_logs.csv"zContent-Disposition)u时间u 操作人u动作u目标u详情i<E68385>)<01> Paginator<6F>2<00>pagerzadmin_panel/operation_logs.html)<06>page_objr6r8r9r:r;)r$r<00>GET<45>get<65>striprr0<00>select_related<65>allr3<00>django.utils.dateparser@rA<00> Exception<6F>order_byrD<00> django.httprE<00>writer<65>writerow<6F>
created_atr6<00>usernamer8r9<00>detail<69>django.core.paginatorrG<00>get_pager)r"<00>q_actor<6F>q_action<6F>q_targetr:r;r<<00>qsr@rA<00>dtrDrE<00>resprT<00>rowrG<00> paginatorrIrJs r#<00>operation_logsrc0s<><00><00> <16>w<EFBFBD> <1F>$<24>%D<>E<>E<><15>k<EFBFBD>k<EFBFBD>o<EFBFBD>o<EFBFBD>g<EFBFBD>r<EFBFBD>*<2A>0<>0<>2<>G<EFBFBD><16>{<7B>{<7B><EFBFBD><EFBFBD>x<EFBFBD><12>,<2C>2<>2<>4<>H<EFBFBD><16>{<7B>{<7B><EFBFBD><EFBFBD>x<EFBFBD><12>,<2C>2<>2<>4<>H<EFBFBD> <13>K<EFBFBD>K<EFBFBD>O<EFBFBD>O<EFBFBD>G<EFBFBD> $<24> *<2A><02>E<EFBFBD>
<11>+<2B>+<2B>/<2F>/<2F>%<25>
<20>
&<26>B<EFBFBD>C<EFBFBD> <14>[<5B>[<5B>_<EFBFBD>_<EFBFBD>X<EFBFBD> &<26> ,<2C>"<22>F<EFBFBD> <15> <1D> <1D> ,<2C> ,<2C>W<EFBFBD> 5<> 9<> 9<> ;<3B>B<EFBFBD><0E> <0F>Y<EFBFBD>Y<EFBFBD>'<27>Y<EFBFBD> :<3A><02><0F> <0F>Y<EFBFBD>Y<EFBFBD><18>Y<EFBFBD> 2<><02><0F> <0F>Y<EFBFBD>Y<EFBFBD><18>Y<EFBFBD> 2<><02> <0C> <11> I<><1F><05>&<26>;<3B>*<2A>U<EFBFBD>*;<3B>B<EFBFBD><11><17>Y<EFBFBD>Y<EFBFBD>r<EFBFBD>Y<EFBFBD>2<><02> <0B> <11> I<><1F><03>$<24>7<>
<EFBFBD>3<EFBFBD><0F>B<EFBFBD><11><17>Y<EFBFBD>Y<EFBFBD>r<EFBFBD>Y<EFBFBD>2<><02>
<0C><1B><1B>]<5D> #<23>B<EFBFBD> <0A><15><EFBFBD><12>,<2C><1B>)B<>C<><04>&Q<><04> "<22>#<23><14><1A><1A>D<EFBFBD>!<21><06><0E><0F><0F>M<>N<><15>e<EFBFBD>t<EFBFBD>9<EFBFBD>C<EFBFBD> <12>O<EFBFBD>O<EFBFBD><13><0E><0E>s<EFBFBD>y<EFBFBD>y<EFBFBD><13><19><19>!3<>!3<>b<EFBFBD>3<EFBFBD>:<3A>:<3A>WZ<57>Wa<57>Wa<57>cf<63>cm<63>cm<63><0E> <0F><1D><14> <0B>/<2F><19>"<22>b<EFBFBD>!<21>I<EFBFBD> <12>;<3B>;<3B>?<3F>?<3F>6<EFBFBD> "<22> '<27>a<EFBFBD>D<EFBFBD>)<29><1C>%<25>%<25>d<EFBFBD>+<2B><08> <12>'<27><<3C><1C><18><1A><1A><16><12> ?<06> <07><07><>=<19> <11> <10> <11><><19> <11> <10> <11><>( <15>)<29><1C>%<25>%<25>a<EFBFBD>(<28><08>)<29>s6<00>.K<00>.K<00>*K/<00> K<03>K<03> K,<03>+K,<03>/L <03> L c <00>
<00>t|<00>s td<01>Stjj d<02>j <00>}|stjj <00>}|jdk(<00>rw|jjd<04>xsd}|dk(rpt|j|<01><06>}|j<00>r1|j<00>tj|d<07>td<08>Stj |d <09><00>n<>|d
k(rFt|<01><06>} t#<00>}|j%<00>}tj|d |dd <00>d <0A><03><00>n<>|dk(r?t|<01><06>} t#<00>}|j)<00>}tj|d<10><00>n`|dk(<00>rt|j|<01><06>}|j<00>r<>|j*jd<13>}|stj |d<14><00>n<> t#<00>}|j-t/|<08><00>} tj|d|<08>d| rdnd<18><00><04> t0jj |j2ddt5j6dt/|<08>t9| <09>d<1C>d<1D><1E><00><1F><00>n^tj |d"<22><00>nF|d#k(<00>rt|j|<01><06>}|j<00>r<>|j*jd$<24>}|stj |d%<25>n<> t#<00>}|j?t/|<08><00>} tj|d&|<08>d| rdnd<18><00><04> t0jj |j2ddt5j6d't/|<08>t9| <09>d<1C>d<1D><1E><00><1F>nFtj |d"<22>n/t|<01><06>}tj |d)<29>n t|<01><06>}tA|d*||d+<2B><02>S#t&$r#}tj |d|<06><00><02>Yd}~<06>7d}~wwxYw#t&$r#}tj |d|<06><00><02>Yd}~<06>fd}~wwxYw#t&$rt:j=d <20>Y<00><01><>wxYw#t&$r#}tj |d!|<06><00><02>Yd}~<06><>d}~wwxYw#t&$rt:j=d <20>Y<00><01>*wxYw#t&$r$}tj |d(|<06><00><02>Yd}~<06><01>d}~wwxYw),Nr'<00>id<69>POSTr8<00>save<76><01>instanceu系统设置已保存zadmin_panel:settingsu$保存失败请检查表单字段<E5AD97> get_tokenu'已获取 AccessToken已缓存<EFBC89>z...u获取 AccessToken 失败<E8B4A5>test_connectionu-与 GoEdge API 连接正常令牌有效u连接测试失败<E8B4A5>validate_access_log_policy<63>!default_http_access_log_policy_idu 请先填写访问日志策略IDu访问日志策略ID u 校验结果u存在u 不存在<E5AD98>validate_policy_idr<00>
access_log)<03>type<70>policyId<49>existsF<73><01> ensure_ascii<69>r6r8r9rX<00>operation log write failedu!访问日志策略校验失败u)策略ID格式不正确请检查输入<E8BE93>validate_firewall_policy<63>default_http_firewall_policy_idu请先填写WAF策略IDu WAF策略ID <20>firewalluWAF策略校验失败u 未知操作zadmin_panel/settings.html)<02>form<72> settings_obj)!r$rrr0rR<00>first<73>create<74>methodrfrLr<00>is_validrgr<00>successr<00>errorr<00> _ensure_tokenrQ<00>_headers<72> cleaned_data<74>check_access_log_policy_exists<74>intrr<00>json<6F>dumps<70>bool<6F>logger<65> exception<6F>check_firewall_policy_existsr)
r"r|r8r{<00>client<6E>token<65>e<>_<>pidrss
r#<00>settingsr<73>os<><00><00> <16>w<EFBFBD> <1F>$<24>%D<>E<>E<>!<21>)<29>)<29>2<>2<>4<EFBFBD>8<>><3E>><3E>@<40>L<EFBFBD> <17>%<25>-<2D>-<2D>4<>4<>6<> <0C><0E>~<7E>~<7E><16><1F><18><1C><1C>!<21>!<21>(<28>+<2B>5<>v<EFBFBD><06> <11>V<EFBFBD> <1B>%<25>g<EFBFBD>l<EFBFBD>l<EFBFBD>\<5C>J<>D<EFBFBD><13>}<7D>}<7D><EFBFBD><14> <09> <09> <0B><18> <20> <20><17>*A<>B<><1F> 6<>7<>7<><18><0E><0E>w<EFBFBD>(N<>O<> <13>{<7B> "<22>%<25>|<7C><<3C>D<EFBFBD> L<01>%<25><1E><06><1E>,<2C>,<2C>.<2E><05><18> <20> <20><17>,S<>TY<54>Z\<5C>[\<5C>T]<5D>S^<5E>^a<>*b<>c<><14>(<28> (<28>%<25>|<7C><<3C>D<EFBFBD> E<01>%<25><1E><06><1A>O<EFBFBD>O<EFBFBD>%<25><01><18> <20> <20><17>*Y<>Z<><14>3<> 3<>%<25>g<EFBFBD>l<EFBFBD>l<EFBFBD>\<5C>J<>D<EFBFBD><13>}<7D>}<7D><EFBFBD><1A>'<27>'<27>+<2B>+<2B>,O<>P<><03><1A><1C>N<EFBFBD>N<EFBFBD>7<EFBFBD>,N<>O<>Y<01>!-<2D><1E><06>!'<27>!F<>!F<>s<EFBFBD>3<EFBFBD>x<EFBFBD>!P<><06> <20>(<28>(<28><17>4I<34>#<23><15>N^<5E>kq<6B>_g<5F>xC<02>_D<02>3E<02>F<02>K<01>(<28>0<>0<>7<>7<>&-<2D>l<EFBFBD>l<EFBFBD>';<3B>'7<>'+<2B>z<EFBFBD>z<EFBFBD><<3C>UX<55>Y\<5C>U]<5D>im<69>nt<6E>iu<69>2v<32>FK<02>(L<02> 8<><1E><><19><0E><0E>w<EFBFBD>(S<>T<> <13>1<> 1<>%<25>g<EFBFBD>l<EFBFBD>l<EFBFBD>\<5C>J<>D<EFBFBD><13>}<7D>}<7D><EFBFBD><1A>'<27>'<27>+<2B>+<2B>,M<>N<><03><1A><1C>N<EFBFBD>N<EFBFBD>7<EFBFBD>,E<>F<>P<01>!-<2D><1E><06>!'<27>!D<>!D<>S<EFBFBD><13>X<EFBFBD>!N<><06> <20>(<28>(<28><17>L<EFBFBD><13><05>EU<45>bh<62>V^<5E>ny<6E>Uz<55>2{<7B>|<7C>K<01>(<28>0<>0<>7<>7<>&-<2D>l<EFBFBD>l<EFBFBD>';<3B>'7<>'+<2B>z<EFBFBD>z<EFBFBD>:<3A>SV<53>WZ<57>S[<5B>gk<67>lr<6C>gs<67>2t<32>DI<02>(J<02> 8<><1E><><19><0E><0E>w<EFBFBD>(S<>T<>%<25>|<7C><<3C>D<EFBFBD> <14>N<EFBFBD>N<EFBFBD>7<EFBFBD>N<EFBFBD> 3<>!<21><<3C>8<><04> <11>'<27>6<><14>$<24>9<06> <07><07><>E<1D> L<01><18><0E><0E>w<EFBFBD>*F<>q<EFBFBD>c<EFBFBD>(J<>K<>K<><4B> L<01><><1D> E<01><18><0E><0E>w<EFBFBD>*?<3F><01>s<EFBFBD>(C<>D<>D<><44> E<01><>* )<29>K<01>"<22>,<2C>,<2C>-I<>J<>K<01><>$<24>Y<01> <20><0E><0E>w<EFBFBD>2S<32>TU<54>SV<53>0W<30>X<>X<><58>Y<01><>. )<29>K<01>"<22>,<2C>,<2C>-I<>J<>K<01><>$<24>P<01> <20><0E><0E>w<EFBFBD>2J<32>1<EFBFBD>#<23>0N<30>O<>O<><4F>P<01>s<EFBFBD><00>7P<00>%0P6<00>:AR
<00>?AQ%<00>AS<00>AR9<00> P3<03>P.<03>.P3<03>6 Q"<03>?Q<03>Q"<03>%R<03>R
<00>R<03>R
<00>
R6<03>R1<03>1R6<03>9S<03>S<00>S<03>S<00> T <03>'T<03>T c<00><><00>t|<00>s td<01>Stjj <00>j dd<03>}t |dd|i<01>S)Nr'z
-is_active<76>base_price_per_domainzadmin_panel/plans_list.html<6D>plans)r$rrr0rOrRr)r"r<>s r#<00>
plans_listr<EFBFBD><00>sR<00><00> <16>w<EFBFBD> <1F>$<24>%D<>E<>E<> <10>L<EFBFBD>L<EFBFBD> <1C> <1C> <1E> '<27> '<27> <0C>6M<36> N<>E<EFBFBD> <11>'<27>8<><0F><15>;<06> <07>r%c<00>|<00>t|<00>s td<01>S|jdk(rzt|j<00>}|j <00>r>|j <00>}tj|d|j<00><00><02>td<04>Stj|d<05>ntddi<01><08>}t|d |d
d <0B><02>S) Nr'rfu套餐已创建<E5BBBA>admin_panel:plansu$创建失败请检查表单字段<E5AD97> billing_mode<64>per_domain_monthly)<01>initial<61>admin_panel/plan_form.htmlF)r{<00>is_edit) r$rrrrfr<>rgrr<><00>namerr<>r)r"r{<00>plans r#<00> plan_creater<65><00>s<><00><00> <16>w<EFBFBD> <1F>$<24>%D<>E<>E<><0E>~<7E>~<7E><16><1F><17><07> <0C> <0C>%<25><04> <0F>=<3D>=<3D>?<3F><17>9<EFBFBD>9<EFBFBD>;<3B>D<EFBFBD> <14> <1C> <1C>W<EFBFBD>(:<3A>4<EFBFBD>9<EFBFBD>9<EFBFBD>+<2B>&F<> G<><1B>/<2F>0<> 0<> <14>N<EFBFBD>N<EFBFBD>7<EFBFBD>$J<> K<><17><1E>1E<31> F<>G<><04> <11>'<27>7<><14><18>:<06> <07>r%<00>plan_idc<00> <00>t|<00>s td<01>Stjj |<01><02>j <00>}|s!t j|d<03>td<04>S|jdk(r|t|j|<02><06>}|j<00>r>|j<00>t j|d|j<00><00><02>td<04>St j|d<08>n t|<02><06>}t!|d |d
|d <0B><03>S) Nr'<00>re<00>套餐不存在r<E59CA8>rfrhu套餐已更新u$更新失败请检查表单字段r<E6AEB5>T)r{r<>r<>)r$rrr0r3r}rr<>rrrrfr<>rgr<>r<>r)r"r<>r<>r{s r#<00> plan_editr<74><00>s<><00><00> <16>w<EFBFBD> <1F>$<24>%D<>E<>E<> <0F><<3C><<3C> <1E> <1E>'<27> <1E> *<2A> 0<> 0<> 2<>D<EFBFBD> <0F><10><0E><0E>w<EFBFBD> 1<>2<><17>+<2B>,<2C>,<2C><0E>~<7E>~<7E><16><1F><17><07> <0C> <0C>t<EFBFBD>4<><04> <0F>=<3D>=<3D>?<3F> <10>I<EFBFBD>I<EFBFBD>K<EFBFBD> <14> <1C> <1C>W<EFBFBD>(:<3A>4<EFBFBD>9<EFBFBD>9<EFBFBD>+<2B>&F<> G<><1B>/<2F>0<> 0<> <14>N<EFBFBD>N<EFBFBD>7<EFBFBD>$J<> K<><17><14>&<26><04> <11>'<27>7<><14><17><14>:<06> <07>r%c<00><><00>t|<00>s td<01>Stjj |<01><02>j <00>}|s!t j|d<03>td<04>S|j |_ |jddg<02><07>t j|d|jrd nd
<EFBFBD>d |j<00><00><04>td<04>S) Nr'r<>r<>r<><00> is_active<76>
updated_at<EFBFBD><01> update_fieldsu已u启用u禁用u 套餐:) r$rrr0r3r}rr<>rr<>rgr<>r<><00>r"r<>r<>s r#<00>plan_toggle_activer<65>s<><00><00> <17>w<EFBFBD> <1F>$<24>%D<>E<>E<> <0F><<3C><<3C> <1E> <1E>'<27> <1E> *<2A> 0<> 0<> 2<>D<EFBFBD> <0F><10><0E><0E>w<EFBFBD> 1<>2<><17>+<2B>,<2C>,<2C><1D><1E><1E>'<27>D<EFBFBD>N<EFBFBD><08>I<EFBFBD>I<EFBFBD>[<5B>,<2C>7<>I<EFBFBD>8<> <0C><14><14>W<EFBFBD><03><04><0E><0E>H<EFBFBD>H<EFBFBD>#M<>Y<EFBFBD>W[<5B>W`<60>W`<60>Va<56>b<>c<> <13>'<27> (<28>(r%c<00><><00>t|<00>s td<01>Stjj |<01><02>j <00>}|s!t j|d<03>td<04>S|j |_ |jddg<02><07>t j|d|jrd nd
<EFBFBD>d |j<00><00><04>td<04>S) Nr'r<>r<>r<><00> is_publicr<63>r<>u已设置公开状态u公开u隐藏u) r$rrr0r3r}rr<>rr<>rgr<>r<>r<>s r#<00>plan_toggle_publicr<63>s<><00><00> <17>w<EFBFBD> <1F>$<24>%D<>E<>E<> <0F><<3C><<3C> <1E> <1E>'<27> <1E> *<2A> 0<> 0<> 2<>D<EFBFBD> <0F><10><0E><0E>w<EFBFBD> 1<>2<><17>+<2B>,<2C>,<2C><1D><1E><1E>'<27>D<EFBFBD>N<EFBFBD><08>I<EFBFBD>I<EFBFBD>[<5B>,<2C>7<>I<EFBFBD>8<> <0C><14><14>W<EFBFBD> 8<>T<EFBFBD>^<5E>^<5E><18>Ya<59>8b<38>bh<62>im<69>ir<69>ir<69>hs<68>t<>u<> <13>'<27> (<28>(r%c<00>x<00>t|<00>s td<01>Stjj |<01><02>j <00>}|s!t j|d<03>td<04>S|j |_ |jddg<02><07>t j|d|j<00><00><02>td<04>S) Nr'r<>r<>r<><00>allow_new_purchaser<65>r<>u已切换允许新购:) r$rrr0r3r}rr<>rr<>rgr<>r<>r<>s r#<00>plan_toggle_allow_newr<77>%s<><00><00> <17>w<EFBFBD> <1F>$<24>%D<>E<>E<> <0F><<3C><<3C> <1E> <1E>'<27> <1E> *<2A> 0<> 0<> 2<>D<EFBFBD> <0F><10><0E><0E>w<EFBFBD> 1<>2<><17>+<2B>,<2C>,<2C>"&<26>"9<>"9<>9<>D<EFBFBD><1B><08>I<EFBFBD>I<EFBFBD>1<><<3C>@<40>I<EFBFBD>A<> <0C><14><14>W<EFBFBD> 8<><14><19><19> <0B>D<>E<> <13>'<27> (<28>(r%c<00>x<00>t|<00>s td<01>Stjj |<01><02>j <00>}|s!t j|d<03>td<04>S|j |_ |jddg<02><07>t j|d|j<00><00><02>td<04>S) Nr'r<>r<>r<><00> allow_renewr<77>r<>u已切换允许续费:) r$rrr0r3r}rr<>rr<>rgr<>r<>r<>s r#<00>plan_toggle_allow_renewr<77>4s<><00><00> <17>w<EFBFBD> <1F>$<24>%D<>E<>E<> <0F><<3C><<3C> <1E> <1E>'<27> <1E> *<2A> 0<> 0<> 2<>D<EFBFBD> <0F><10><0E><0E>w<EFBFBD> 1<>2<><17>+<2B>,<2C>,<2C><1F>+<2B>+<2B>+<2B>D<EFBFBD><14><08>I<EFBFBD>I<EFBFBD>]<5D>L<EFBFBD>9<>I<EFBFBD>:<3A> <0C><14><14>W<EFBFBD> 8<><14><19><19> <0B>D<>E<> <13>'<27> (<28>(r%c<00><><00>t|<00>s td<01>St<00>}|jj dd<03>j <00>}|j j<00>}|r<|jtj|<02><04>tj|<02><05>z<00>}|jtd<06><00><07>jdd d
<EFBFBD>}t|d ||d <0C><02>S) Nr'<00>qr7)<01>username__icontains)<01>email__icontains<6E>domains)<01> domain_countz -is_staffz -domain_countz -date_joinedzadmin_panel/users_list.html)<02>usersr<73>)r$rr rKrLrMr0rOr3r<00>Q<>annotater rRr)r"<00>Userr<72><00>users_qsr<73>s r#<00>
users_listr<EFBFBD>Ds<><00><00> <16>w<EFBFBD> <1F>$<24>%D<>E<>E<> <19> <1B>D<EFBFBD><0F> <0B> <0B><0F><0F><03>R<EFBFBD> <20>&<26>&<26>(<28>A<EFBFBD><13>|<7C>|<7C><1F><1F>!<21>H<EFBFBD><08><1B>?<3F>?<3F>6<EFBFBD>8<EFBFBD>8<EFBFBD><01>#B<>V<EFBFBD>X<EFBFBD>X<EFBFBD>_`<60>Ea<45>#a<>b<><08> <14> <1D> <1D>5<EFBFBD><19>+;<3B> <1D> <<3C> E<> E<>k<EFBFBD>Sb<53>dr<64> s<>E<EFBFBD> <11>'<27>8<><16> <0E>;<06> <07>r%c
<00>*<00>t|<00>s td<01>S|jjdd<03>j <00>}|jjd<04>}|jjd<05>}t
j jdd<07>j<00>}|r|j|<01><08>}|r|j|<02> <09>}|r|j|<03>
<EFBFBD>}|jd <0B>}t
j}t|d |||||d <0A><05>S)Nr'r<>r7<00>user_idr(r<00> current_plan)<01>name__icontains<6E>r<>r*z -updated_atzadmin_panel/domains_list.html)r<>r<>r<>r(<00>status_choices) r$rrKrLrMrr0rNrOr3rR<00>STATUS_CHOICESr)r"r<>r<>r(r<>r<>s r#<00> domains_listr<74>Us<><00><00> <16>w<EFBFBD> <1F>$<24>%D<>E<>E<><0F> <0B> <0B><0F><0F><03>R<EFBFBD> <20>&<26>&<26>(<28>A<EFBFBD><15>k<EFBFBD>k<EFBFBD>o<EFBFBD>o<EFBFBD>i<EFBFBD>(<28>G<EFBFBD> <14>[<5B>[<5B>_<EFBFBD>_<EFBFBD>X<EFBFBD> &<26>F<EFBFBD><14>n<EFBFBD>n<EFBFBD>+<2B>+<2B>F<EFBFBD>N<EFBFBD>C<>G<>G<>I<>G<EFBFBD><08><19>.<2E>.<2E><11>.<2E>3<><07><0E><19>.<2E>.<2E><17>.<2E>1<><07> <0A><19>.<2E>.<2E><06>.<2E>/<2F><07><15><1E><1E>}<7D>-<2D>G<EFBFBD><1B>*<2A>*<2A>N<EFBFBD> <11>'<27>:<3A><1A> <0E><1A><18>(<28> =<06> <07>r%<00> domain_idc<00>T<00>t|<00>s td<01>Stjj |<01><02>j <00>}|s!t j|d<03>td<04>S|jjd<05>xsdj<00>j<00>dk7r!t j|d<08>td<04>S|jtjk(rtj|_ nT|jtjk(rtj|_ n!t j |d <09>td<04>S|j#d
d g<02> <0C> t$jj'|j(d |j*d|j<00><00><02><0F>t j2|dt5tj6<00>j|j|j<00><00><00><02>td<04>S#t,$rt.j1d<10>Y<00>wxYw)Nr'r<><00>域名不存在<E5AD98>admin_panel:domains<6E>confirmr7<00>CONFIRM<52>*请在确认框中输入 CONFIRM 以继续u(当前状态不支持暂停/恢复切换r(r<>r<><00>domain_toggle_suspendz new_status=rvrwu域名状态已切换为:)r$rrr0r3r}rr<>rrfrLrM<00>upperr(<00> STATUS_ACTIVE<56>STATUS_SUSPENDED<45>warningrgrr~rr<>rQr<>r<>r<><00>dictr<74><00>r"r<><00>domains r#r<>r<>qs<><00><00> <17>w<EFBFBD> <1F>$<24>%D<>E<>E<> <13>^<5E>^<5E> "<22> "<22>i<EFBFBD> "<22> 0<> 6<> 6<> 8<>F<EFBFBD> <11><10><0E><0E>w<EFBFBD> 1<>2<><17>-<2D>.<2E>.<2E><0F> <0C> <0C><18><18><19>#<23>)<29>r<EFBFBD>0<>0<>2<>8<>8<>:<3A>i<EFBFBD>G<><10><0E><0E>w<EFBFBD> L<>M<><17>-<2D>.<2E>.<2E> <0A>}<7D>}<7D><06>,<2C>,<2C>,<2C><1E>/<2F>/<2F><06> <0A> <0F><1D><1D>&<26>1<>1<> 1<><1E>,<2C>,<2C><06> <0A><10><18><18><17>"L<>M<><17>-<2D>.<2E>.<2E>
<EFBFBD>K<EFBFBD>K<EFBFBD>x<EFBFBD><1C>6<>K<EFBFBD>7<>7<><14><1C><1C>#<23>#<23><19>,<2C>,<2C>*<2A><19>;<3B>;<3B> <20><16><1D><1D><0F>0<> $<24>
<EFBFBD> <0A><14><14>W<EFBFBD> ;<3B>D<EFBFBD><16>AV<41>AV<41><W<><[<5B><[<5B>\b<>\i<>\i<>kq<6B>kx<6B>kx<6B><y<>;z<>{<7B>|<7C> <13>)<29> *<2A>*<2A><> <15>7<><0E><18><18>5<>6<>7<>s<00>#AH<00>H'<03>&H'c<00><><00>t|<00>s td<01>Stjj |<01><02>j d<03>j <00>}|s!tj|d<04>td<05>S|jdk(<00>rt|j|<02><07>}|j<00>r<>|j}|j<00> t jj#|j$d|j&|r |j&nd <09>d
|jr|jj&nd <09><00><03> <0B>tj.|d |r |j&nd <09>d
|jr|jj&nd <09><00><04>td<05>Stj|d<0E>n t|<02><07>}t1|d||d<10><02>S#t($rt*j-d <0C>Y<00><>wxYw)Nr'r<>r<>r<>r<>rfrh<00>domain_switch_plan<61>-u → rvrwu已切换套餐<E9A490>$提交失败请检查表单字段z#admin_panel/domain_plan_switch.html<6D>r<>r{)r$rrr0r3rNr}rr<>rrrrfr<>r<>rgrr~rr<>rQr<>r<>r<>r)r"r<>r<>r{<00>old_plans r#r<>r<><00>s<><00><00> <17>w<EFBFBD> <1F>$<24>%D<>E<>E<> <13>^<5E>^<5E> "<22> "<22>i<EFBFBD> "<22> 0<> ?<3F> ?<3F><0E> O<> U<> U<> W<>F<EFBFBD> <11><10><0E><0E>w<EFBFBD> 1<>2<><17>-<2D>.<2E>.<2E><0E>~<7E>~<7E><16><1F>#<23>G<EFBFBD>L<EFBFBD>L<EFBFBD>6<EFBFBD>B<><04> <0F>=<3D>=<3D>?<3F><1D>*<2A>*<2A>H<EFBFBD> <10>I<EFBFBD>I<EFBFBD>K<EFBFBD> ?<3F><1C>$<24>$<24>+<2B>+<2B>!<21>,<2C>,<2C>/<2F>!<21>;<3B>;<3B>/7<>h<EFBFBD>m<EFBFBD>m<EFBFBD>S<EFBFBD>A<><15>ci<63>cv<63>cv<63>v<EFBFBD>GZ<47>GZ<47>G_<47>G_<47>|<>GA<02>B<02> ,<2C><12> <15> <1C> <1C>W<EFBFBD>(:<3A>H<EFBFBD>8<EFBFBD>=<3D>=<3D>Z]<5D>:^<5E>^c<>AG<02>AT<02>AT<02>dj<64>dw<64>dw<64>d|<7C>d|<7C>Z]<02>d^<02>'_<02> `<02><1B>1<>2<> 2<> <14>N<EFBFBD>N<EFBFBD>7<EFBFBD>$J<> K<>#<23>V<EFBFBD>4<><04> <11>'<27>@<40><18><14>C<06> <07><07><><1D> ?<3F><16> <20> <20>!=<3D>><3E> ?<3F>s<00> A,G<00>G"<03>!G"c<00><><00>t|<00>s td<01>Stjj |<01><02>j <00>}|s!t j|d<03>td<04>S|jdk(r<>t|j|<02><06>}|j<00>r<>|j<00> tjj|j d|j"d|j$<00><00><02> <09>t j,|d |j$<00><00><02>td<04>St j|d <0C>n t|<02><06>}t/|d ||d<0E><02>S#t&$rt(j+d
<EFBFBD>Y<00><>wxYw)Nr'r<>r<>r<>rfrh<00>domain_grant_trafficz$extra_free_traffic_gb_current_cycle=rvrwu/已更新本周期额外赠送流量GBr<EFBC9A>z%admin_panel/domain_grant_traffic.htmlr<6C>)r$rrr0r3r}rr<>rrrrfr<>rgrr~rr<><00>#extra_free_traffic_gb_current_cyclerQr<>r<>r<>r)r"r<>r<>r{s r#r<>r<><00>s[<00><00> <17>w<EFBFBD> <1F>$<24>%D<>E<>E<> <13>^<5E>^<5E> "<22> "<22>i<EFBFBD> "<22> 0<> 6<> 6<> 8<>F<EFBFBD> <11><10><0E><0E>w<EFBFBD> 1<>2<><17>-<2D>.<2E>.<2E><0E>~<7E>~<7E><16><1F>%<25>g<EFBFBD>l<EFBFBD>l<EFBFBD>V<EFBFBD>D<><04> <0F>=<3D>=<3D>?<3F> <10>I<EFBFBD>I<EFBFBD>K<EFBFBD> ?<3F><1C>$<24>$<24>+<2B>+<2B>!<21>,<2C>,<2C>1<>!<21>;<3B>;<3B>A<>&<26>Bl<42>Bl<42>Am<41>n<> ,<2C><12> <15> <1C> <1C>W<EFBFBD>(W<>X^<5E>YC<02>YC<02>XD<02>'E<02> F<02><1B>1<>2<> 2<> <14>N<EFBFBD>N<EFBFBD>7<EFBFBD>$J<> K<>%<25>v<EFBFBD>6<><04> <11>'<27>B<><18><14>E<06> <07><07><><1D> ?<3F><16> <20> <20>!=<3D>><3E> ?<3F>s<00>/AE<00>E5<03>4E5c<00><><00>t|<00>s td<01>Stjj |<01><02>j <00>}|s!t j|d<03>td<04>S|jjd<05>xsdj<00>j<00>dk7r!t j|d<08>td<04>Sttd <09>rtjnd
|_|j!d d g<02> <0A> t"jj%|j&d|j(d<0F><10>t j0|d<12>td<04>S#t*$rt,j/d<11>Y<00>AwxYw)Nr'r<>r<>r<>r<>r7<00>DELETEu)请在确认框中输入 DELETE 以继续<E7BBA7>STATUS_DELETED<45>deletedr(r<>r<><00> domain_deletez soft-deletervrwu域名已标记为删除)r$rrr0r3r}rr<>rrfrLrMr<>r2r<>r(rgrr~rr<>rQr<>r<>r<>r<>s r#r<>r<><00>s=<00><00> <17>w<EFBFBD> <1F>$<24>%D<>E<>E<> <13>^<5E>^<5E> "<22> "<22>i<EFBFBD> "<22> 0<> 6<> 6<> 8<>F<EFBFBD> <11><10><0E><0E>w<EFBFBD> 1<>2<><17>-<2D>.<2E>.<2E><0F> <0C> <0C><18><18><19>#<23>)<29>r<EFBFBD>0<>0<>2<>8<>8<>:<3A>h<EFBFBD>F<><10><0E><0E>w<EFBFBD> K<>L<><17>-<2D>.<2E>.<2E>-4<>V<EFBFBD>=M<>-N<>F<EFBFBD>)<29>)<29>T]<5D>F<EFBFBD>M<EFBFBD>
<EFBFBD>K<EFBFBD>K<EFBFBD>x<EFBFBD><1C>6<>K<EFBFBD>7<>7<><14><1C><1C>#<23>#<23><19>,<2C>,<2C>"<22><19>;<3B>;<3B> <20> $<24>
<EFBFBD> <0A><14><14>W<EFBFBD>8<>9<> <13>)<29> *<2A>*<2A><> <15>7<><0E><18><18>5<>6<>7<>s<00>7E<00>E<<03>;E<c
<00><><00>t|<00>s td<01>S|jjd<02>}|jjd<03>}tj
j d<04>j<00>}|r|j|<01><05>}|r|j|<02><06>}|jd<07>}|jtd<08><00> <09>}t|d
||||jd <0B>xs td <0C>d <0A><04>S)Nr'r(r<>rr*r<>z -period_end<6E> amount_total)<01> total_amountzadmin_panel/invoices_list.htmlr<6C>z0.00)<04>invoicesr(r<>r<>)r$rrKrLrr0rNrOr3rR<00> aggregater
rr)r"r(r<>r^<00>totalss r#<00> invoices_listr<74><00>s<><00><00> <16>w<EFBFBD> <1F>$<24>%D<>E<>E<> <14>[<5B>[<5B>_<EFBFBD>_<EFBFBD>X<EFBFBD> &<26>F<EFBFBD><15>k<EFBFBD>k<EFBFBD>o<EFBFBD>o<EFBFBD>i<EFBFBD>(<28>G<EFBFBD> <10><1F><1F> '<27> '<27><06> /<2F> 3<> 3<> 5<>B<EFBFBD> <0A> <0F>Y<EFBFBD>Y<EFBFBD>f<EFBFBD>Y<EFBFBD> %<25><02><0E> <0F>Y<EFBFBD>Y<EFBFBD>w<EFBFBD>Y<EFBFBD> '<27><02> <0B><1B><1B>]<5D> #<23>B<EFBFBD> <0F>\<5C>\<5C>s<EFBFBD>><3E>':<3A>\<5C> ;<3B>F<EFBFBD> <11>'<27>;<3B><16><18><1A><1E>
<EFBFBD>
<EFBFBD>><3E>2<>E<>g<EFBFBD>f<EFBFBD>o<EFBFBD> ><06> <07>r%<00>
invoice_idc <00><><00>t|<00>s td<01>Stjj d<02>j |<01><03>j <00>}|s!tj|d<04>td<05>St<00>}|jdk(<00>r7|jjd<07>}|dk(<00>r<>|jtjk(<00>r<>tj |_t#j$<00>|_|j)d d
g<02> <0B> t*jj-|j.d d |j0<00><00>d|j2<00>d|j4<00>d|j6<00><00><06><11> t?<00>}|j@j d<13>jC<00>D]<5D>}|jDr|jDjFs<01>&|jItK|jDjF<00><00>}|s<01>W|jM|ddi<01>|jO|ddi<01>|jDjdk(s<01><>d|jD_|jDj)d dg<02> <0B><00><> tjP|d<1A>td|j0<00><1C>S|dk(<00>r;|jjd<1E>xsdjS<00>jU<00>d k7r-tj|d!<21>td|j0<00><1C>St|j<00>}|jW<00>r<>|jY|<02> t*jj-|j.d"d |j0<00><00>d#|jZ<00>d$|j6<00><00><04><11>tjP|d%<25>td|j0<00><1C>Stj|d&<26><00>n<>|d'k(<00>r3|jtj\k7<00>r|jjd<1E>xsdjS<00>jU<00>d k7r-tj|d!<21>td|j0<00><1C>Stj\|_|j)d g<01> <0B> t*jj-|j.d(d |j0<00><00>d|j2<00>d|j4<00><00><04><11>tjP|d)<29>td|j0<00><1C>S|d*k(<00>r<>|jtjk(<00>r<>|jjd<1E>xsdjS<00>jU<00>d k7r-tj|d!<21>td|j0<00><1C>St^jjad+<2B>j <00>}tc|d,i<00>xsi} | jd<07>xsdje<00>}
tK| jd-<2D>xsd.<2E>} g} t?<00>}|j@j d<13>jC<00>D]<5D>}|jD} | r | jFs<01>|jItK| jF<00><00>}|s<01>E|
d/k(rC| d.kDr>|jO|d0tK| <0B>d1<64><02>| jg| jhd/| d2<64><03><00><>|jM|dd0i<01>| jdk7rd| _| j)d dg<02> <0B>| jg| jhd3d4<64><02><00><> t*jj-|j.d*d |j0<00><00>tkjld5| id<15>6<EFBFBD><00><11>tjP|d7<64>td|j0<00><1C>S|j@j d<13>jC<00>}to|d9|||d:<3A><03>S#t8$rt:j=d<12>Y<00><06><>wxYw#t8$rt:j=d<19>Y<00><05><>wxYw#t8$rt:j=d<12>Y<00><04><>wxYw#t8$rt:j=d<12>Y<00><03><>wxYw#t8$rt:j=d<12>Y<00><01>wxYw#t8$r$}tj|d8|<0E><00><02>Yd}~<0E><01>2d}~wwxYw);Nr'rr<>u账单不存在zadmin_panel:billing_listrfr8<00> mark_paidr(<00>paid_atr<74><00>invoice_mark_paid_adminzInvoice#zperiod=u→z; amount_total=rvrwr<><00>isOnF<6E> suspended<65>activer<65>zauto recover after paid failedu账单已标记为已支付zadmin_panel:billing_detail)r<><00>add_adjustmentr<74>r7r<>r<><00>invoice_add_adjustmentz adjustment=z; total=u'已添加人工调整并更新总金额u*调整提交失败请检查表单字段<E5AD97>cancel<65>invoice_cancelu账单已取消<E58F96>apply_overage_policyre<00>default_overage_policy<63> limit_bpsr<00>limitT)r<><00> rateBytes)r<>r8r<><00>shutdown)r<>r8<00>appliedrtu<已执行未支付策略参考系统默认策略配置u策略执行失败zadmin_panel/invoice_detail.html)<03>invoice<63>items<6D>adj_form)8r$rrr0rNr3r}rr<>rrrrfrLr(<00> STATUS_UNPAID<49> STATUS_PAIDr<00>nowr<77>rgrr~rre<00> period_start<72>
period_endr<EFBFBD>rQr<>r<>rrrOr<><00>edge_server_id<69>find_server_web_idr<64><00>update_http_web_shutdown<77>update_http_web_request_limitr<74>rMr<>r<><00>apply<6C>amount_adjustment<6E>STATUS_CANCELLEDrrR<00>getattr<74>lower<65>appendr<64>r<>r<>r)r"r<>rrr8r<><00>it<69>web_id<69>sys<79>policy<63> action_typer<65>r<00>dr<64>rs r#<00>invoice_detail_adminr sp<00><00> <17>w<EFBFBD> <1F>$<24>%D<>E<>E<><15>o<EFBFBD>o<EFBFBD>,<2C>,<2C>V<EFBFBD>4<>;<3B>;<3B>z<EFBFBD>;<3B>J<>P<>P<>R<>G<EFBFBD> <12><10><0E><0E>w<EFBFBD> 1<>2<><17>2<>3<>3<>$<24>&<26>H<EFBFBD><0E>~<7E>~<7E><16><1F><18><1C><1C>!<21>!<21>(<28>+<2B><06> <11>[<5B> <20>W<EFBFBD>^<5E>^<5E>w<EFBFBD>7L<37>7L<37>%L<>$<24>0<>0<>G<EFBFBD>N<EFBFBD>&<26>l<EFBFBD>l<EFBFBD>n<EFBFBD>G<EFBFBD>O<EFBFBD> <13>L<EFBFBD>L<EFBFBD><08>)<29>'<<3C>L<EFBFBD> =<3D> ?<3F><1C>$<24>$<24>+<2B>+<2B>!<21>,<2C>,<2C>4<>%<25>g<EFBFBD>j<EFBFBD>j<EFBFBD>\<5C>2<>$<24>W<EFBFBD>%9<>%9<>$:<3A>#<23>g<EFBFBD>>P<>>P<>=Q<>Q`<60>ah<61>au<61>au<61>`v<>w<> ,<2C><12> C<01>%<25><1E><06>!<21>-<2D>-<2D>6<>6<>x<EFBFBD>@<40>D<>D<>F<>B<EFBFBD><1D>9<EFBFBD>9<EFBFBD>B<EFBFBD>I<EFBFBD>I<EFBFBD>,D<>,D<> <20>#<23>6<>6<>s<EFBFBD>2<EFBFBD>9<EFBFBD>9<EFBFBD>;S<>;S<>7T<37>U<>F<EFBFBD><1D><1E>7<>7<><06><16><15><0F>P<><1E><<3C><<3C>V<EFBFBD>f<EFBFBD>e<EFBFBD>_<EFBFBD>U<><1D>9<EFBFBD>9<EFBFBD>+<2B>+<2B>{<7B>:<3A>/7<>B<EFBFBD>I<EFBFBD>I<EFBFBD>,<2C><1E>I<EFBFBD>I<EFBFBD>N<EFBFBD>N<EFBFBD>(<28>L<EFBFBD>9Q<39>N<EFBFBD>R<>G<01> <15> <1C> <1C>W<EFBFBD>&C<> D<><1B>8<>W<EFBFBD>Z<EFBFBD>Z<EFBFBD>P<> P<> <13>'<27> '<27><17> <0C> <0C> <20> <20><19>+<2B>1<>r<EFBFBD>8<>8<>:<3A>@<40>@<40>B<>i<EFBFBD>O<><18><0E><0E>w<EFBFBD>(T<>U<><1F> <<3C><17><1A><1A>T<>T<>,<2C>W<EFBFBD>\<5C>\<5C>:<3A>H<EFBFBD><17> <20> <20>"<22><18><0E><0E>w<EFBFBD>'<27>C<01> <20>(<28>(<28>/<2F>/<2F>%<25>l<EFBFBD>l<EFBFBD>7<>!)<29>'<27>*<2A>*<2A><1C>6<>!,<2C>W<EFBFBD>-F<>-F<>,G<>x<EFBFBD>PW<50>Pd<50>Pd<50>Oe<4F>f<> 0<><16><19> <20> <20><17>*S<>T<><1F> <<3C><17><1A><1A>T<>T<><18><0E><0E>w<EFBFBD>(T<>U<> <13>x<EFBFBD> <1F>G<EFBFBD>N<EFBFBD>N<EFBFBD>g<EFBFBD>6N<36>6N<36>$N<><17> <0C> <0C> <20> <20><19>+<2B>1<>r<EFBFBD>8<>8<>:<3A>@<40>@<40>B<>i<EFBFBD>O<><18><0E><0E>w<EFBFBD>(T<>U<><1F> <<3C><17><1A><1A>T<>T<>$<24>5<>5<>G<EFBFBD>N<EFBFBD> <13>L<EFBFBD>L<EFBFBD><08>z<EFBFBD>L<EFBFBD> 2<> ?<3F><1C>$<24>$<24>+<2B>+<2B>!<21>,<2C>,<2C>+<2B>%<25>g<EFBFBD>j<EFBFBD>j<EFBFBD>\<5C>2<>$<24>W<EFBFBD>%9<>%9<>$:<3A>#<23>g<EFBFBD>>P<>>P<>=Q<>R<> ,<2C><12> <15> <1C> <1C>W<EFBFBD>&7<> 8<><1B>8<>W<EFBFBD>Z<EFBFBD>Z<EFBFBD>P<> P<> <13>-<2D> -<2D>'<27>.<2E>.<2E>G<EFBFBD>DY<44>DY<44>2Y<32><17> <0C> <0C> <20> <20><19>+<2B>1<>r<EFBFBD>8<>8<>:<3A>@<40>@<40>B<>i<EFBFBD>O<><18><0E><0E>w<EFBFBD>(T<>U<><1F> <<3C><17><1A><1A>T<>T<> <20>(<28>(<28>1<>1<>$<24>7<>=<3D>=<3D>?<3F>C<EFBFBD><1C>S<EFBFBD>":<3A>B<EFBFBD>?<3F>E<>2<EFBFBD>F<EFBFBD>!<21>:<3A>:<3A>h<EFBFBD>/<2F>5<>2<EFBFBD><<3C><<3C>><3E>K<EFBFBD><1B>F<EFBFBD>J<EFBFBD>J<EFBFBD>{<7B>3<>8<>q<EFBFBD>9<>I<EFBFBD><18>G<EFBFBD> E<01>%<25><1E><06>!<21>-<2D>-<2D>6<>6<>x<EFBFBD>@<40>D<>D<>F<>B<EFBFBD><1A> <09> <09>A<EFBFBD><1C>A<EFBFBD>$4<>$4<> <20>#<23>6<>6<>s<EFBFBD>1<EFBFBD>;K<>;K<>7L<37>M<>F<EFBFBD>!<21> <20>"<22>g<EFBFBD>-<2D>)<29>a<EFBFBD>-<2D><1E><<3C><<3C>V<EFBFBD>d<EFBFBD>ad<61>en<65>ao<61>Ep<45>q<><1F><0E><0E>!<21>&<26>&<26>G<EFBFBD>Zc<5A>'d<>e<><1F>7<>7<><06><16><14><0E>O<><1C>8<EFBFBD>8<EFBFBD>{<7B>2<>'2<>A<EFBFBD>H<EFBFBD><1D>F<EFBFBD>F<EFBFBD>(<28>L<EFBFBD>1I<31>F<EFBFBD>J<><1F><0E><0E>!<21>&<26>&<26>J<EFBFBD>'O<>P<>%G<01>&C<01> <20>(<28>(<28>/<2F>/<2F>%<25>l<EFBFBD>l<EFBFBD>5<>!)<29>'<27>*<2A>*<2A><1C>6<>#<23>z<EFBFBD>z<EFBFBD>9<EFBFBD>g<EFBFBD>*><3E>U<EFBFBD>S<> 0<><16><19> <20> <20><17>*h<>i<><1C>8<>W<EFBFBD>Z<EFBFBD>Z<EFBFBD>P<> P<> <13>M<EFBFBD>M<EFBFBD> (<28> (<28><18> 2<> 6<> 6<> 8<>E<EFBFBD> <11>'<27><<3C><1A><16><1C>?<06> <07><07><>M<1D> ?<3F><16> <20> <20>!=<3D>><3E> ?<3F><> <1D> C<01><16> <20> <20>!A<>B<> C<01><>$!<21>C<01><1A>$<24>$<24>%A<>B<>C<01><>&<1D> ?<3F><16> <20> <20>!=<3D>><3E> ?<3F><>R!<21>C<01><1A>$<24>$<24>%A<>B<>C<01><><1D> E<01><18><0E><0E>w<EFBFBD>*?<3F><01>s<EFBFBD>(C<>D<>D<><44> E<01>s<EFBFBD><00>A!`<00>5B `'<00>?A`'<00>1`'<00>Aa <00>Aa1<00>+Db;<00>
Ab<00>b;<00>`$<03>#`$<03>'a <03>a <03> a.<03>-a.<03>1b<03>b<03>b8<03>4b;<00>7b8<03>8b;<00>; c(<03>c#<03>#c(c
<00><00>t|<00>s td<01>S|jjd<02>}tj
j dd<04>j<00>}|r|j|<01><05>}tj
jd<06>j<00>}g}|D]<5D>}tt|jdd<08>xsd<08>}d}t|jd d<00>}|r!|j <00>t|j <00>}t|r |j"nd<08>} |dkDr|n|dkDr|n| }
t|j$xsd<08>} |
| z} |j'|||| | | d
<EFBFBD><06><00><>t)|d <0B><00> <0C>}t+|d ||d<0E><02>S)Nr'r<>rr<>r<>re<00>included_traffic_gb_per_domainr<00>profile)r<><00>
plan_quota<EFBFBD> user_override<64>global_default<6C> domain_extra<72> total_quotac<00>,<00>|d |djfS)Nr"r<>)r<>)<01>rs r#<00><lambda>zquotas_view.<locals>.<lambda><3E>s<00><00><11>=<3D>)9<>':<3A>A<EFBFBD>h<EFBFBD>K<EFBFBD><L<><L<>&Mr%<00><01>keyzadmin_panel/quotas.html)<02>rowsr<73>)r$rrKrLrr0rNrOr3rrRr}r<>rr<>r<00>+default_free_traffic_gb_per_domain_override<64>"default_free_traffic_gb_per_domainr<6E>r<00>sortedr) r"r<>r<>rr(rrrrr <00>
base_quotar!r"s r#<00> quotas_viewr-<00>sw<00><00> <16>w<EFBFBD> <1F>$<24>%D<>E<>E<><15>k<EFBFBD>k<EFBFBD>o<EFBFBD>o<EFBFBD>i<EFBFBD>(<28>G<EFBFBD><14>n<EFBFBD>n<EFBFBD>+<2B>+<2B>F<EFBFBD>N<EFBFBD>C<>G<>G<>I<>G<EFBFBD><0E><19>.<2E>.<2E><17>.<2E>1<><07>
<18>
<20>
<20>
)<29>
)<29>$<24>
/<2F>
5<EFBFBD>
5<EFBFBD>
7<EFBFBD>C<EFBFBD> <0A>D<EFBFBD> <14><01><18><17><11><1E><1E>1Q<31>ST<53>U<>Z<>YZ<59>[<5B>
<EFBFBD><19> <0A><19>!<21>&<26>&<26>)<29>T<EFBFBD>2<><07> <12>w<EFBFBD>J<>J<>V<><1F><07> S<> S<>T<>M<EFBFBD><1C>s<EFBFBD>S<EFBFBD>C<>C<>PQ<50>R<><0E>#-<2D><01>><3E>Z<EFBFBD><1D>YZ<59>IZ<49> <0A>`n<>
<EFBFBD><1A>1<EFBFBD>@<40>@<40>E<>A<EFBFBD>F<> <0C> <20><<3C>/<2F> <0B> <0C> <0B> <0B><17>$<24>*<2A>,<2C>(<28>&<26> 
<EFBFBD> <0B><15>$ <12>$<24>M<> N<>D<EFBFBD> <11>'<27>4<><14><1A>7<06> <07>r%c <00>H<00>t|<00>s td<01>Sddlm}t j
<00>j <00>}t|jjd<04>xsd<05>}|t j|dz
<00><07>z
}tjjd<08>j<00>}tt!|d d
<EFBFBD><00>}t#t!|d d <0C>xsd <0C>}tt!|d d<0E>xsd<0E>}t#t!|dd<10>xsd<10>} |jj%||<02><11>j'd<12>j)t+d<13><00><14>jd<12>}
g} |
D]/} t-| dxsddz d<17>} | j/| d| d<18><02><00>1|j1d<06><19>}t2jj5<00>}g}g}|D<00>]<5D>}|jj%|||<02><1A>j7t+d<13><00><1B>dxsd}t-|dz d<17>} |j/|| d<1D><02>|s<01>h|t j|<08><07>z
}|jj%|||<02><1E>j7t+d<13><00><1B>dxsd}|jj%|||<02><1E>j9<00>}d}|dkDrt-|dz |z d<17>}|jj%||<02> <20>j7t+d<13><00><1B>dxsd}t-|dz d<17>}d!}|dkDr|t;| ||z<00>k\}n|| k\}|s<02><01>s|dkDs<02><01>z|j/||||dkDrt-||z d"<22>ndd#<23><04><00><01><>t=|d$<24><00>%<25>dd&}t?|d'| ||||||| d(<28>d)<29><05>S)*Nr'r)<01>DomainTrafficDaily<6C>days<79>r)r0re<00>anomaly_detection_enabledT<64>anomaly_threshold_multiplierg@<40>anomaly_window_days<79><00>anomaly_min_gbg<00>?)<02>day__gte<74>day__lte<74>day<61>bytes)<01> total_bytesr;i@<40>)r9<00>gb)r9)r<>r7r8)<01>br>)r<>r=)r<>r7<00>day__ltg)r<>r9F<>)r<><00>today_gb<67> past_avg_gb<67>ratioc<00><00>|d S)Nr=<00>)<01>xs r#r%z!monitoring_view.<locals>.<lambda><3E>s
<00><00>A<EFBFBD>d<EFBFBD>G<EFBFBD>8r%r&<00>zadmin_panel/monitoring.html)<04>enabled<65>
multiplier<EFBFBD> window_days<79>min_gb)<05>
daily_rows<EFBFBD> top_domainsr0<00> anomalies<65>anomaly_config) r$r<00>domains.modelsr/rr<00>dater<65>rKrL<00> timedeltarr0rRr}r<>r<00>floatr3<00>valuesr<73>r
<00>roundr<00>replacerrOr<>r1<00>maxr+r)r"r/<00>todayr0r:r<00>anomaly_enabled<65>threshold_multrJrK<00>dailyrLrar=<00> month_startr<74><00>toprNr<00> bytes_sum<75> window_start<72>past<73>past_days_countrB<00> today_bytesrA<00>trigger<65>
top_sorteds r#<00>monitoring_viewre<00>s<><00><00> <16>w<EFBFBD> <1F>$<24>%D<>E<>E<>1<> <14>L<EFBFBD>L<EFBFBD>N<EFBFBD> <1F> <1F> !<21>E<EFBFBD> <0E>w<EFBFBD>{<7B>{<7B><EFBFBD><EFBFBD>v<EFBFBD>&<26>,<2C>"<22> -<2D>D<EFBFBD> <11>H<EFBFBD>&<26>&<26>D<EFBFBD><11>F<EFBFBD>3<> 3<>E<EFBFBD>
<18>
<20>
<20>
)<29>
)<29>$<24>
/<2F>
5<EFBFBD>
5<EFBFBD>
7<EFBFBD>C<EFBFBD><1A>7<EFBFBD>3<EFBFBD>(C<>T<EFBFBD>J<>K<>O<EFBFBD><1A>7<EFBFBD>3<EFBFBD>(F<><03>L<>S<>PS<50>T<>N<EFBFBD><15>g<EFBFBD>c<EFBFBD>#8<>!<21><<3C>A<><01>B<>K<EFBFBD> <12>7<EFBFBD>3<EFBFBD> 0<>#<23>6<>=<3D>#<23> ><3E>F<EFBFBD> <1F> '<27> '<27><14>f<EFBFBD>e<EFBFBD>e<EFBFBD>f<EFBFBD>4<><14>f<EFBFBD>U<EFBFBD>m<EFBFBD><16>h<EFBFBD>3<EFBFBD>w<EFBFBD><<3C>h<EFBFBD>0<><16>h<EFBFBD>u<EFBFBD>o<EFBFBD> 
<EFBFBD>
<14>J<EFBFBD><14><03> <12>C<EFBFBD> <0A>&<26>+<2B>!<21> <09>:<3A>A<EFBFBD> ><3E><02><12><19><19>#<23>e<EFBFBD>*<2A>B<EFBFBD>7<>8<><15><18>-<2D>-<2D>A<EFBFBD>-<2D>&<26>K<EFBFBD><14>n<EFBFBD>n<EFBFBD> <20> <20>"<22>G<EFBFBD>
<0C>C<EFBFBD><12>I<EFBFBD> <14><01>&<26>.<2E>.<2E>5<>5<>Q<EFBFBD><1B>_d<5F>5<>e<>o<>o<>ru<72>v}<7D>r~<7E>o<><>AD<02>E<02>J<02>IJ<02> <09> <12>9<EFBFBD> <09>*<2A>A<EFBFBD> .<2E><02> <0B>
<EFBFBD>
<EFBFBD>a<EFBFBD>r<EFBFBD>*<2A>+<2B> <1B> <20>8<EFBFBD>#5<>#5<>;<3B>#G<>G<>L<EFBFBD>&<26>.<2E>.<2E><1B>V<EFBFBD>1<EFBFBD>|<7C>U<EFBFBD>V<EFBFBD>K<><1E>Y<EFBFBD><13>W<EFBFBD><1C>Y<EFBFBD>.<2E>s<EFBFBD>4<>9<>78<37> <11>1<>8<>8<>?<3F>?<3F>q<EFBFBD>S_<53>in<69>?<3F>o<>u<>u<>w<>O<EFBFBD><1D>K<EFBFBD><1E><11>"<22>#<23>T<EFBFBD>Y<EFBFBD>%7<>?<3F>$J<>A<EFBFBD>N<> <0B>,<2C>4<>4<>;<3B>;<3B>1<EFBFBD>%<25>;<3B>P<>Z<>Z<>]`<60>ah<61>]i<>Z<>j<>kn<6B>o<>t<>st<73>K<EFBFBD><1C>[<5B>I<EFBFBD>6<><01>:<3A>H<EFBFBD><1B>G<EFBFBD><1A>Q<EFBFBD><EFBFBD>"<22>c<EFBFBD>&<26>+<2B><0E>2N<32>&O<>O<><07>"<22>f<EFBFBD>,<2C><07><16>8<EFBFBD>a<EFBFBD><<3C><19> <20> <20><1F> (<28>#.<2E>CN<43>QR<51>?<3F>U<EFBFBD>H<EFBFBD>{<7B>$:<3A>Q<EFBFBD>?<3F>X\<5C> "<12><13>/<15>:<18><03>!3<>4<>S<EFBFBD>b<EFBFBD>9<>J<EFBFBD> <11>'<27>8<> <20>!<21><14><1E>&<26>(<28>&<26><1C> 
<EFBFBD> ;<06> <07> r%)G<>django.shortcutsrrr<><00>logging<6E>django.contrib.auth.decoratorsrrSr<00>django.contribr<00> django.dbr<00>django.db.modelsr r
<00>django.views.decorators.httpr <00>django.contrib.authr r <00> django.urlsr<00> core.modelsr<00> plans.modelsrrPr<00>billing.modelsr<00>formsrrrrrr<00>decimalr<00> django.utilsr<00>core.goedge_clientrrr$r4rcr<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<><00>atomicr<63>r<>r<>r<>r<>rr-re<00> getLogger<65>__name__r<5F>rEr%r#<00><module>rys<><00><01>-<2D> <0B><0E>9<>-<2D>#<23><1C>'<27>5<>.<2E>!<21><1F>&<26><1D>!<21>"<22>t<>t<>/<2F><1B>!<21>+<2B>$<24>!<21> <10> <07><10> <07><10>;<07><10>;<07>|<10>]<07><10>]<07>@<10><07><10><07><10><07><10><07>&<10><07><03><07><10><07>0<10> <0A>
)<29><13>
)<29><0E><10>
)<29><10> <0A>
)<29><13>
)<29><0E><10>
)<29><10> <0A>
)<29>C<EFBFBD>
)<29><0E><10>
)<29><10> <0A>
)<29>c<EFBFBD>
)<29><0E><10>
)<29><10> <07><10> <07> <10><07><10><07>6<10> <0A> <0C><13><13>+<2B>c<EFBFBD>+<2B><14><0E><10>+<2B>><10> <0C><13><13><07>3<EFBFBD><07><14><10><07>D<10> <0C><13><13><07>S<EFBFBD><07><14><10><07>@<10> <0A> <0C><13><13>+<2B>c<EFBFBD>+<2B><14><0E><10>+<2B>4<10><07><10><07>(<10> <0C><13><13><07>c<EFBFBD><07><14><10><07>F<10><07><10><07>F<10>D<07><10>D<07>J
<1B><17> <1A> <1A>8<EFBFBD> $<24>r%