PageSourceSearch

https://www.sanplex.com/user-login

html sanplex.com collected 2026-10-09 17:35:15 UTC 68,888 bytes, 836 lines download raw bytes

1<!DOCTYPE html><html xmlns:wb="http://open.weibo.com/wb" lang='en' class='m-user m-user-login'>
2  <head profile="http://www.w3.org/2005/10/profile"> 
3    <meta charset="utf-8"> 
4    <meta name="renderer" content="webkit"> 
5    <meta http-equiv="X-UA-Compatible" content="IE=edge"> 
6    <meta http-equiv="Cache-Control" content="no-transform"> 
7    <meta name="Generator" content="Zsite9.7 www.zsite.net'"> 
8    <meta name="viewport" content="width=device-width, initial-scale=1.0"> 
9    <link rel="canonical" href="https://www.sanplex.com/user-login"> 
10    <title>Login</title> 
11    <meta name="keywords" content=""> 
12    <meta name="description" content=""> 
13    <meta name="p:domain_verify" content="bbde560d5f3d2d85546546e9e9647a9e"/>
14    <meta name="google-site-verification" content="F8rhZdqOzYla0zRzFMZZBaacYIXDaPMYqKaDZN6xUTs" />
15    <link rel="preconnect" href="https://scripts.clarity.ms">
16    <link rel="preconnect" href="https://www.googletagmanager.com">
17    <link rel="preconnect" href="https://www.google-analytics.com"><!-- Google tag (gtag.js) -->
vendor: 62 bytes, lines 17-18
17
18    <script src="https://www.googletagmanager.com/gtag/js?id=
18G-BS3LWK5F4J
vendor: 20 bytes, lines 18-19
18" defer></script>
19  
19<script>
20  
vendor: 136 bytes, lines 20-24
20window.dataLayer = window.dataLayer || [];
21  function gtag(){dataLayer.push(arguments);}
22  gtag('js', new Date());
23  
24  gtag('config', '
24G-BS3LWK5F4J
vendor: 7 bytes, lines 24-25
24');
25  
26</script>
26
27<link rel="preload" as="font" href="/data/source/sanplex/default/wide/Inter-Variable-Latin.woff2" type="font/woff2" crossorigin>
28<link rel="preload" as="font" href="/data/source/sanplex/default/wide/PlusJakartaSans-Regular.ttf" type="font/ttf" crossorigin>
29<link rel="preload" as="font" href="/data/source/sanplex/default/wide/Poppins-Regular.ttf" type="font/ttf" crossorigin> 
30<meta property="og:title" content="Login" /> 
31<meta property="og:description" content="" /> 
32<meta property="og:type" content="website" /> 
33<meta property="og:url" content="https://www.sanplex.com/user-login" /> 
33<script type="application/ld+json">
34  
35  {
36  "@context": "https://schema.org",
37  "@type": "SoftwareApplication",
38  "name": "Sanplex",
39  "description": "Sanplex is a project and R&D lifecycle management software. Positioned as an alternative to Jira, it offers a higher cost-performance ratio, full lifecycle management capabilities, robust integration abilities (reducing dependence on plugins), supports on-premises deployment, and facilitates quick migration from Jira, making it highly suitable for complex projects and R&D management scenarios.",
40  "url": "https://www.sanplex.com",
41  "logo": "https://www.sanplex.com/logo.svg",
42  "applicationCategory": "BusinessApplication",
43  "applicationSubCategory": "Project Management, Software Development",
44  "operatingSystem": "All modern web browsers (Cloud), Linux, Windows Server, (On-premises)",
45  "softwareVersion": "3.0",
46  "downloadUrl": "https://www.sanplex.com/on-premises.html",
47  "screenshot": "https://www.sanplex.com/screen-1.png",
48  "author": {
49  "@type": "Organization",
50  "name": "EasySoft INC.",
51  "url": "https://www.sanplex.com"
52  },
53  "aggregateRating": {
54  "@type": "AggregateRating",
55  "ratingValue": "5.0",
56  "ratingCount": 1,
57  "bestRating": "5",
58  "worstRating": "1",
59  "url": "https://www.producthunt.com/products/sanplex"
60  },
61  "offers": [
62  {
63  "@type": "Offer",
64  "name": "Free Plan",
65  "description": "Unlimited users and unlimited time",
66  "price": "0",
67  "priceCurrency": "USD",
68  "availability": "https://schema.org/InStock"
69  },
70  {
71  "@type": "Offer",
72  "name": "Standard Monthly Subscription",
73  "description": "$4.99 per user per month",
74  "price": "4.99",
75  "priceCurrency": "USD",
76  "availability": "https://schema.org/InStock"
77  },
78  {
79  "@type": "Offer",
80  "name": "Standard Annual Subscription",
81  "description": "$49.90 per user per year",
82  "price": "49.90",
83  "priceCurrency": "USD",
84  "availability": "https://schema.org/InStock"
85  },
86  {
87  "@type": "Offer",
88  "name": "Standard Lifetime Access",
89  "description": "$199.90 per user, one-time payment",
90  "price": "199.90",
91  "priceCurrency": "USD",
92  "availability": "https://schema.org/InStock"
93  },
94  {
95  "@type": "Offer",
96  "name": "Premium Monthly Subscription",
97  "description": "$6.99 per user per month",
98  "price": "6.99",
99  "priceCurrency": "USD",
100  "availability": "https://schema.org/InStock"
101  },
102  {
103  "@type": "Offer",
104  "name": "Premium Annual Subscription",
105  "description": "$69.90 per user per year",
106  "price": "69.90",
107  "priceCurrency": "USD",
108  "availability": "https://schema.org/InStock"
109  },
110  {
111  "@type": "Offer",
112  "name": "Premium Lifetime Access",
113  "description": "$299.90 per user, one-time payment",
114  "price": "299.90",
115  "priceCurrency": "USD",
116  "availability": "https://schema.org/InStock"
117  }
118  ]
119  }
120  
121</script>
121 
122<script>
123  var config={"webRoot":"\/","cookieLife":30,"cookiePath":"\/","requestType":"PATH_INFO","requestFix":"-","moduleVar":"m","methodVar":"f","viewVar":"t","defaultView":"html","themeRoot":"\/theme\/","currentModule":"user","currentMethod":"login","clientLang":"en","requiredFields":"","save":"Save","router":"\/index.php","runMode":"front","langCode":""}
124  
125</script>
125 
126<script>
127  if(typeof(v) != "object") v = {};v.theme = {"template":"default","theme":"wide","device":"desktop"};
128</script>
128 
129<link rel='stylesheet' href='/theme/default/default/chanzhi.all.css?v=9.7' type='text/css' media='screen'/> 
130<link rel='stylesheet' href='https://www.sanplex.com/data/css/zentaopm/default_wide_en.css?v=1647304879' type='text/css' media='screen' id='themeStyle'/> <style>
131  .user-control-nav{margin-bottom: 20px;}
132  .break-all {word-wrap: break-word; word-break: break-all;}
133  .pager {margin:0px;}
134  @media (max-width: 480px) { .hidden-xxs {display: none} .page {font-size: 12px}}
135  @media (max-width: 400px) { .hidden-xxxs {display: none}}
136  
137  @media (max-width: 767px) {#reset {margin: 10px auto;} #reset .panel {margin: 20px auto; width: 100%;} #reset .panel-heading {padding: 0 0 10px 0;} #reset .panel-body {padding: 10px 0; min-height: inherit;} .panel-body > form {padding-right: 0;}}
138  
139  #bindForm{height: 280;}
140  .nav-primary.nav-stacked > li.nav-heading{background-image:none;}
141  
142  .captcha {border: 0; padding: 0; background: transparent; position: relative;}
143  .captcha img {position: absolute; right: 1px; top: 1px;}
144  
145  .agreement-form label{height:30px;}
146  .text-error {--tw-text-opacity: 1; color: rgb(241 38 104 / var(--tw-text-opacity));}
147  .form-control-error {--tw-text-opacity: 1; color: rgb(241 38 104 / var(--tw-text-opacity)); background-color: rgb(241 38 104 / 0.1);}
148  .email-rule-tips .rule, .password-rule-tips .rule, .repeatPw-rule-tips .rule {transition: color 0.2s;}
149  .page-container .page-wrapper{min-height: calc(100vh - 380px);}
150  .form-group .form-control {border-color: #dcdcdc; border-radius: 3px;}
151  .m-user.m-user-edit .row .col-md-10 .panel .panel-body {padding-top: 16px;}
152  .captcha-box {gap: 8px;}
153  .modal .modal-header {padding: 12px 24px;}
154  .modal .modal-body {padding: 24px;}
155  
156  .m-user-checkreset svg {width: 75px;}
157  .m-user-checkreset .body-wrap #submit {margin-top: 32px;}
158  .m-user-login .body-wrap#login .content-wrapper {width: 428px;}
159  #ajaxForm{margin-bottom: -10px;}
160  #login-pure {border:1px solid #ddd; padding:15px 0px; width: 500px; background-color:#FFFFFF; box-shadow: 0px 0px 5px #ddd;}
161  
162  .regAndReset{margin: 0; line-height: 30px;}
163  .btn-wrapper {margin-top: 36px;}
164  #reset-pass {white-space: nowrap; font-size: 12px;}
165  
166  #login-region {width: 445px; margin: 0 auto;}
167  #login-region > .panel-body {padding-top:0px;}
168  #login > .row {margin:0px; background-color:#F7F7F7;}
169  .m-user-login .body-wrap#login #submit {margin: 0;}
170  
171  #adminLogin{max-width: 500px; margin: 8% auto; padding: 0; background-color: #FFF; border: 1px solid #DDD; box-shadow: 0px 2px 20px rgba(0, 0, 0, 0.2);border-radius: 6px;}
172  #responser{line-height: 30px; font-size: 12px }
173  #logo{margin-bottom: 10px; }
174  #adminLogin #siteName {padding: 15px 20px 15px; background: #EDF3FE; border-bottom: 1px solid #e5e5e5; border-radius: 6px 6px 0 0}
175  #adminLogin #ajaxForm {padding: 20px 20px;}
176  #adminLogin #submit {min-width: 100px;}
177  
178  @media (max-width: 700px){ #adminLogin{border: none;margin: 0 auto;box-shadow: none;padding: 20px 15px;background-color: #f6f5f5; margin-top: -50px;}}
179  @media (max-width: 767px) {#login .panel {margin: 20px auto; width: 100%;} #login .panel-heading {padding: 0 0 10px 0;} #login .panel-body {padding: 10px 0; min-height: inherit;} .btn-oauth {padding-left: 80px;} .btn-oauth .icon {left: 20px;}}
180  
181  hr{margin-top:8px;}
182  #login-region {width: 100%;}
183  .regAndReset {margin-top: 46px;}
184  .regAndReset a, #reset-pass {color: #007AFF; margin-right: 0;}
185  body *{word-wrap:break-word;word-break:break-word;}@font-face{font-family:'PlusJakarta';font-display:optional;src:url('/data/source/sanplex/default/wide/PlusJakartaSans-Regular.ttf') format('truetype');}@font-face{font-family:'Inter';font-display:swap;src:url('/data/source/sanplex/default/wide/Inter-Variable-Latin.woff2') format('woff2');}@font-face{font-family:'Popins';font-display:swap;src:url('/data/source/sanplex/default/wide/Poppins-Regular.ttf');}@font-face{font-family:'PoppinsBold';font-display:swap;src:url('/data/source/sanplex/default/wide/Poppins-Bold.ttf') format('truetype');}:root{--title-color:#0c2243;--text-color:#39485d;--theme-color:#007aff;}.col{min-height:0;}
185.flex{display:flex;}.justify-between{justify-content:space-between;}.justify-center{justify-content:center;}.items-center{align-items:center;}.width-wrapper{max-width:1240px;margin:0 auto;}.index-icon{background-image:url(https://www.sanplex.com/data/source/sanplex/default/wide/index-icon-1.webp);background-repeat:no-repeat;display:block;}.icon-big-gantt{background-position:-474px -48px;width:48px;height:48px;}.icon-confluence{background-position:-474px -96px;width:48px;height:48px;}.icon-dell{background-position:-328px -211px;width:136px;height:35px;}.icon-easybi{background-position:-474px -144px;width:48px;height:48px;}.icon-flexible-extensibility{background-position:0px -249px;width:84px;height:84px;}.icon-hitachi{background-position:-84px -378px;width:170px;height:30px;}.icon-import-step1{background-position:-328px 0px;width:146px;height:86px;}.icon-import-step2{background-position:0px -164px;width:152px;height:85px;}.icon-import-step3{background-position:-152px -164px;width:146px;height:84px;}.icon-import-step4{background-position:-328px -86px;width:146px;height:85px;}.icon-jira-align{background-position:-474px 0px;width:49px;height:48px;}.icon-jira-product-discovery{background-position:-474px -192px;width:48px;height:48px;}.icon-jira-service-management{background-position:-474px -240px;width:48px;height:48px;}.icon-jira{background-position:-474px -288px;width:48px;height:48px;}.icon-kddi{background-position:0px -417px;width:97px;height:31px;}.icon-lenovo{background-position:-328px -171px;width:135px;height:40px;}.icon-multi-product-management{background-position:-84px -249px;width:84px;height:84px;}.icon-multi-team-collaboration{background-position:-168px -249px;width:84px;height:84px;}.icon-multiple-theories-supported{background-position:-252px -249px;width:84px;height:84px;}.icon-rovo{background-position:-420px -249px;width:48px;height:54px;}.icon-sanplex-cloud{background-position:0px 0px;width:164px;height:164px;}.icon-sanplex-on-premises{background-position:-164px 0px;width:164px;height:164px;}.icon-skechers{background-position:-237px -333px;width:153px;height:35px;}.icon-structure-by-tempo{background-position:-474px -336px;width:48px;height:48px;}.icon-team-scalability{background-position:-336px -249px;width:83px;height:84px;}.icon-trello{background-position:-474px -384px;width:48px;height:48px;}.icon-walmart{background-position:-84px -333px;width:153px;height:45px;}.icon-wide-industry-coverage{background-position:0px -333px;width:83px;height:84px;}.icon-xporter{background-position:-48px -448px;width:41px;height:48px;}.icon-zephyr{background-position:0px -448px;width:48px;height:48px;}body{font-family:'Inter';background:#0a48d1;color:var(--title-color);font-size:16px;line-height:24px;}h1,h2,h3,h4,h5,h6{font-family:'Inter';}input,button,textarea,select{font-family:'Inter' !important;box-shadow:none !important;text-shadow:none !important;}input:focus,button:focus{outline:none !important;}a:hover,a:focus{text-decoration:none;outline:none;}table{word-break:break-all;}.icon,[class*=" icon-"],[class^=icon-]{font-family:'ZenIcon' !important;}.icon-linux:before{content:'\e73d';}.page-container{margin-top:72px;}#chatra.chatra--side-bottom{bottom:100px !important;}#footer .protocal{font-size:12px;}#footer .protocal a{margin-left:8px;}#footer .protocal a:hover{color:#fff !important;}#header{width:100%;border:none;box-shadow:0 2px 4px rgba(0,0,0,0.1);position:fixed;top:0;left:0;z-index:99;}#header .row{max-width:1250px;}#headNav{display:none !important;}#siteLogo>
185a{min-height:unset;}.is-mc-nav #siteTitle,#siteLogo img{width:150px;}#headTitle{display:flex;height:72px;position:relative;}#navbarWrapper{flex:1;}#navbarWrapper #navbar{float:none;margin-left:40px;background:transparent;z-index:1;font-size:16px;}#headTitle .trial{background:var(--theme-color);border-radius:6px;margin-left:6px;color:#fff;padding:6.5px 8px;}#navbar .nav > li > a{min-width:0;margin:0;padding:0 12px;color:#0c2243;height:36px;display:flex;align-items:center;}#navbar .nav > li > a:hover,#navbar .nav > li > a:focus{background:none;color:#1183fb;}#navbar .nav > li.open > a,#navbar .nav > li.open > a:hover{color:#1183fb !important;}#navbar .nav > li > a:hover .caret,#navbar .nav > li > a:focus .caret,#navbar .nav > li.open .caret,#navbar .nav > li.active > a > .caret,#navbar .nav > li.active > a:hover > .caret{border-top-color:#1183fb !important;border-bottom-color:#1183fb !important;}#headTitle .dropdown-menu{border:none;margin:0;font-size:14px;min-width:150px;}#navbar li.nav-item-searchbar{margin-left:0px;}#navbar .nav > li:last-child > .search-but{cursor:pointer;color:#0c2243;}#navbar .nav > li:last-child > .search-but:hover{color:#0a48d1;}#navbar .nav > li:last-child > .search-but i{font-size:16px;}#searchbar{position:relative;}#searchbar .icon-search{cursor:pointer;font-size:18px;color:#52525b;}#searchbar .form-control{height:36px;border-radius:18px;padding-left:34px;}#searchbar form{position:absolute;right:0;top:-5px;width:0;overflow:hidden;max-width:unset;transition:all 0.3s ease-in-out;}#searchbar form .btn{top:-2px;left:0;}#searchbar form.active{width:240px;}#searchbar form .icon-close{position:absolute;right:8px;padding:0 4px;height:36px;color:#52525b;z-index:2;line-height:34px;cursor:pointer;font-size:18px;font-weight:100;opacity:0.5;}#headTitle .siteNav{float:left !important;margin-left:12px;display:flex !important;}#headTitle .siteNav .signin{display:inline-block;border-radius:3px;border:1px solid #007aff;color:#007aff;background:transparent;margin-left:8px;width:max-content;line-height:20px;padding:6px 8px;}#headTitle .siteNav .signin:hover{opacity:0.9;}#headTitle .siteNav .username{max-width:130px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;cursor:pointer;margin-left:12px;}#headTitle .siteNav .dropdown-menu > li > a:hover,#headTitle .siteNav .dropdown-menu > li > a:focus{background:#f4f4f5;color:#0c2243;}#go2top{left:auto !important;right:23px;bottom:50px;border:none;width:42px;color:#666;background:#fff;border-radius:4px;box-shadow:0px 1px 6px rgba(0,0,0,0.2);}#go2top:hover{color:#1183fb;box-shadow:0px 1px 6px rgba(0,0,0,0.4);}#rightDocker{border:none;overflow:hidden;border-radius:4px 0 0 4px;box-shadow:0px 0px 6px rgba(0,0,0,0.2);}#rightDocker:hover{box-shadow:0px 0px 6px rgba(0,0,0,0.4);}#rightDocker #rightDockerBtn{padding:5px 10px;background:#fff;border:none;}#footer{background:#0a48d1;border-top:solid 1px rgba(255,255,255,0.2);}#footer *{color:rgba(255,255,255,0.6) !important;}#footer .wrapper{padding:20px 0;}#footer #footNav,#footer #powerby{top:20px;}.m-index-index .focus-top{margin-bottom:0;}.breadcrumb{margin:20px 0;}.m-index-index .all-bottom{width:100%;}.carousel{margin-bottom:0 !important;}.form-control{-webkit-appearance:none;}.popover{padding:0;border:solid 1px #ddd;margin-left:-15px !important;}.popover .arrow{border-left-color:#e5e5e5 !important;}.popover .arrow:after{border-left:none;}.pager>li>a:focus,.pager>li>a:hover,.pager>li>span:focus,.pager>li>span:hover{background:#eaeef3;}.title{text-align:center;padding:65px 0;}.title h3{margin:0;font-size:30px;color:#253858;}.title p{margin:20px auto 0;font-size:16px;}.btn{border:none;border-radius:4px;text-shadow:none;}.banner-wrap{width:100%;height:66px;background:url(https://www.sanplex.com/data/source/default/wide/zen-Band.png);background-size:cover;color:#fff;}.banner-wrap .banner{max-width:1160px;margin:auto;}.banner-wrap h3{margin:0;line-height:66px;font-size:24px;}.banner-wrap span{font-size:30px;margin:0;line-height:66px;font-weight:bold;}.row{margin-left:-10px;margin-right:-10px;}.row>[class*='col-'],.row>.col{padding-left:10px;padding-right:10px;}.all-bottom.row>
185[class*='col-'],.all-bottom.row>.col{padding-left:0;padding-right:0;}.icon-chanzhi-pro:before{content:'\e903';}.m-license-buy .page-wrapper{padding-top:0;background:#eaeef3;}.m-license-buy #product{margin-top:24px;margin-bottom:24px;border:none;box-shadow:0 1px 1px rgba(0,0,0,0.05);padding:24px;}.m-license-buy #product h1{margin-top:0;margin-bottom:24px;padding:0;}.m-license-buy #product .form-control{height:40px;border-radius:4px;border-color:#dcdcdc;}.m-license-buy #product textarea.form-control{height:auto;}.m-license-buy #product .text-error{color:#f00;font-size:14px;}.m-license-buy #product label{font-weight:normal;}.m-license-buy #product .control-label.required:after{top:6px;right:-15px;}.m-license-buy #product .btn{border:none;border-radius:50px;padding:5px 20px;width:180px;height:40px;margin:5px !important;background:var(--theme-color);}.m-license-buy #product .btn:hover{opacity:0.9;}.m-blog-view #commentBox .panel{border:1px solid #ddd;}.m-user-resetpassword .panel.panel-body{border:none;box-shadow:none;}.m-user-resetpassword .panel.panel-body .panel-heading{border:none;}.m-user .link-text,.m-order .link-text,.m-license .link-text,.m-saas .link-text,.m-paas .link-text{color:var(--theme-color);white-space:nowrap;}.m-user .user-menu,.m-order .user-menu,.m-license .user-menu,.m-saas .user-menu,.m-paas .user-menu{width:164px;padding:8px;box-shadow:0 2px 24px 3px rgba(31,35,41,0.08);margin-right:24px;border-radius:4px;}.m-user h1,.m-order h1,.m-license h1,.m-saas h1,.m-paas h1{margin:0;padding:16px 16px 0;}.m-user .panel,.m-order .panel,.m-license .panel,.m-saas .panel,.m-paas .panel{border:1px solid #e6ecf8;box-shadow:unset;border-radius:4px;margin-bottom:0;}.m-user .panel .panel-heading,.m-order .panel .panel-heading,.m-license .panel .panel-heading,.m-saas .panel .panel-heading,.m-paas .panel .panel-heading{background:#f8fafd;padding:10px 15px;border-bottom:0;}.m-user .panel .panel-body,.m-order .panel .panel-body,.m-license .panel .panel-body,.m-saas .panel .panel-body,.m-paas .panel .panel-body{padding:30px 15px;}.m-user table,.m-order table,.m-license table,.m-saas table,.m-paas table{border:1px solid #e6ecf8;}.m-user table td,.m-order table td,.m-license table td,.m-saas table td,.m-paas table td{border-color:#e6ecf8;}.m-user table thead,.m-order table thead,.m-license table thead,.m-saas table thead,.m-paas table thead{background:#f8fafd;}.m-user table thead td,.m-user table th,.m-order table thead td,.m-order table th,.m-license table thead td,.m-license table th,.m-saas table thead td,.m-saas table th,.m-paas table thead td,.m-paas table th{font-weight:normal;color:#5a6d88;}.m-user .btn-outline,.m-order .btn-outline,.m-license .btn-outline,.m-saas .btn-outline,.m-paas .btn-outline{border:1px solid var(--theme-color);background:#fff;color:var(--theme-color);}.m-user .link-text,.m-order .link-text,.m-license .link-text,.m-saas .link-text,.m-paas .link-text{color:var(--theme-color);}.m-user-login body,.m-user-register body,.m-user-resetpassword body,.m-user-checkreset body,.m-user-checkemail body,.m-paas-open body,.m-paas-loginopenresult body,.m-form-view:has(.wait-workspace) body{background:linear-gradient(135deg,#fff 0,#bbecfe 25%,#c4ddff 50%,#d0d9ff 75%,#fff 100%);min-height:100vh;display:flex;justify-content:center;align-items:center;}.m-user-login .body-wrap,.m-user-register .body-wrap,.m-user-resetpassword .body-wrap,.m-user-checkreset .body-wrap,.m-user-checkemail .body-wrap,.m-paas-open .body-wrap,.m-paas-loginopenresult .body-wrap,.m-form-view:has(.wait-workspace) .body-wrap{padding:24px;}.m-user-login .body-wrap .form-label,.m-user-register .body-wrap .form-label,.m-user-resetpassword .body-wrap .form-label,.m-user-checkreset .body-wrap .form-label,.m-user-checkemail .body-wrap .form-label,.m-paas-open .body-wrap .form-label,.m-paas-loginopenresult .body-wrap .form-label,.m-form-view:has(.wait-workspace) .body-wrap .form-label{font-size:16px;line-height:28px;color:var(--title-color);}.m-user-login .body-wrap .btn-skip,.m-user-register .body-wrap .btn-skip,.m-user-resetpassword .body-wrap .btn-skip,.m-user-checkreset .body-wrap .btn-skip,.m-user-checkemail .body-wrap .btn-skip,.m-paas-open .body-wrap .btn-skip,.m-paas-loginopenresult .body-wrap .btn-skip,.m-form-view:has(.wait-workspace) .body-wrap .btn-skip{width:130px;height:48px;background:#fff;border-radius:12px;}.m-user-login svg,.m-user-register svg,.m-user-resetpassword svg,.m-user-checkreset svg,.m-user-checkemail svg,.m-paas-open svg,.m-paas-loginopenresult svg,.m-form-view:has(.wait-workspace) svg{display:block;margin:0 auto;width:60px;height:40px;}.m-user-login h1,.m-user-register h1,.m-user-resetpassword h1,.m-user-checkreset h1,.m-user-checkemail h1,.m-paas-open h1,.m-paas-loginopenresult h1,.m-form-view:has(.wait-workspace) h1{margin-top:24px;margin-bottom:36px;font-size:36px;line-height:1;text-align:center;}.m-user-login .justify-end,.m-user-register .justify-end,.m-user-resetpassword .justify-end,.m-user-checkreset .
185justify-end,.m-user-checkemail .justify-end,.m-paas-open .justify-end,.m-paas-loginopenresult .justify-end,.m-form-view:has(.wait-workspace) .justify-end{justify-content:flex-end;}.m-user-login .panel-tips,.m-user-register .panel-tips,.m-user-resetpassword .panel-tips,.m-user-checkreset .panel-tips,.m-user-checkemail .panel-tips,.m-paas-open .panel-tips,.m-paas-loginopenresult .panel-tips,.m-form-view:has(.wait-workspace) .panel-tips{font-size:14px;margin-top:16px;}.m-user-login .panel-tips a,.m-user-register .panel-tips a,.m-user-resetpassword .panel-tips a,.m-user-checkreset .panel-tips a,.m-user-checkemail .panel-tips a,.m-paas-open .panel-tips a,.m-paas-loginopenresult .panel-tips a,.m-form-view:has(.wait-workspace) .panel-tips a{text-decoration:underline;}.m-user-login .span-oauth a,.m-user-register .span-oauth a,.m-user-resetpassword .span-oauth a,.m-user-checkreset .span-oauth a,.m-user-checkemail .span-oauth a,.m-paas-open .span-oauth a,.m-paas-loginopenresult .span-oauth a,.m-form-view:has(.wait-workspace) .span-oauth a{font-size:16px;}.m-user-login .divider-wrapper,.m-user-register .divider-wrapper,.m-user-resetpassword .divider-wrapper,.m-user-checkreset .divider-wrapper,.m-user-checkemail .divider-wrapper,.m-paas-open .divider-wrapper,.m-paas-loginopenresult .divider-wrapper,.m-form-view:has(.wait-workspace) .divider-wrapper{margin:24px 0;font-size:12px;color:#9fa5b6;font-weight:bold;}.m-user-login .divider-wrapper .divider,.m-user-register .divider-wrapper .divider,.m-user-resetpassword .divider-wrapper .divider,.m-user-checkreset .divider-wrapper .divider,.m-user-checkemail .divider-wrapper .divider,.m-paas-open .divider-wrapper .divider,.m-paas-loginopenresult .divider-wrapper .divider,.m-form-view:has(.wait-workspace) .divider-wrapper .divider{background:#d9d9d9;height:1px;width:90px;}.m-user-login .page-content,.m-user-register .page-content,.m-user-resetpassword .page-content,.m-user-checkreset .page-content,.m-user-checkemail .page-content,.m-paas-open .page-content,.m-paas-loginopenresult .page-content,.m-form-view:has(.wait-workspace) .page-content{max-width:unset;}.m-user-login .bootbox .btn-primary,.m-user-register .bootbox .btn-primary,.m-user-resetpassword .bootbox .btn-primary,.m-user-checkreset .bootbox .btn-primary,.m-user-checkemail .bootbox .btn-primary,.m-paas-open .bootbox .btn-primary,.m-paas-loginopenresult .bootbox .btn-primary,.m-form-view:has(.wait-workspace) .bootbox .btn-primary{padding:5px 12px;}.m-user-login .bootbox .btn-default,.m-user-register .bootbox .btn-default,.m-user-resetpassword .bootbox .btn-default,.m-user-checkreset .bootbox .btn-default,.m-user-checkemail .bootbox .btn-default,.m-paas-open .bootbox .btn-default,.m-paas-loginopenresult .bootbox .btn-default,.m-form-view:has(.wait-workspace) .bootbox .btn-default{font-size:14px;}.m-user-login #login,.m-user-login #reg,.m-user-register #login,.m-user-register #reg,.m-user-resetpassword #login,.m-user-resetpassword #reg,.m-user-checkreset #login,.m-user-checkreset #reg,.m-user-checkemail #login,.m-user-checkemail #reg,.m-paas-open #login,.m-paas-open #reg,.m-paas-loginopenresult #login,.m-paas-loginopenresult #reg,.m-form-view:has(.wait-workspace) #login,.m-form-view:has(.wait-workspace) #reg{border:none;box-shadow:none;background:none;}.m-user-login #captchaBox.col-sm-9,.m-user-register #captchaBox.col-sm-9,.m-user-resetpassword #captchaBox.col-sm-9,.m-user-checkreset #captchaBox.col-sm-9,.m-user-checkemail #captchaBox.col-sm-9,.m-paas-open #captchaBox.col-sm-9,.m-paas-loginopenresult #captchaBox.col-sm-9,.m-form-view:has(.wait-workspace) #captchaBox.col-sm-9{padding-left:0;padding-right:0;width:100%;}.m-user-login #captchaBox.col-sm-9 .required,.m-user-register #captchaBox.col-sm-9 .required,.m-user-resetpassword #captchaBox.col-sm-9 .required,.m-user-checkreset #captchaBox.col-sm-9 .required,.m-user-checkemail #captchaBox.col-sm-9 .required,.m-paas-open #captchaBox.col-sm-9 .required,.m-paas-loginopenresult #captchaBox.col-sm-9 .required,.m-form-view:has(.wait-workspace) #captchaBox.col-sm-9 .required{width:100%;}.m-user-login #captchaBox.col-sm-9 .w-40px,.m-user-register #captchaBox.col-sm-9 .w-40px,.m-user-resetpassword #captchaBox.col-sm-9 .w-40px,.m-user-checkreset #captchaBox.col-sm-9 .w-40px,.m-user-checkemail #captchaBox.col-sm-9 .w-40px,.m-paas-open #captchaBox.col-sm-9 .w-40px,.m-paas-loginopenresult #captchaBox.col-sm-9 .w-40px,.m-form-view:has(.wait-workspace) #captchaBox.col-sm-9 .w-40px{width:80px;}.m-user-login #captchaBox,.m-user-register #captchaBox,.m-user-resetpassword #captchaBox,.m-user-checkreset #captchaBox,.m-user-checkemail #captchaBox,.m-paas-open #captchaBox,.m-paas-loginopenresult #captchaBox,.m-form-view:has(.wait-workspace) #captchaBox{margin:0;}
185.m-user-login #captchaBox .col-sm-12,.m-user-register #captchaBox .col-sm-12,.m-user-resetpassword #captchaBox .col-sm-12,.m-user-checkreset #captchaBox .col-sm-12,.m-user-checkemail #captchaBox .col-sm-12,.m-paas-open #captchaBox .col-sm-12,.m-paas-loginopenresult #captchaBox .col-sm-12,.m-form-view:has(.wait-workspace) #captchaBox .col-sm-12{padding:0;}.m-user-login #captchaBox .col-sm-12:after,.m-user-register #captchaBox .col-sm-12:after,.m-user-resetpassword #captchaBox .col-sm-12:after,.m-user-checkreset #captchaBox .col-sm-12:after,.m-user-checkemail #captchaBox .col-sm-12:after,.m-paas-open #captchaBox .col-sm-12:after,.m-paas-loginopenresult #captchaBox .col-sm-12:after,.m-form-view:has(.wait-workspace) #captchaBox .col-sm-12:after{display:none;}.m-user-login #captchaBox .col-sm-12 table,.m-user-register #captchaBox .col-sm-12 table,.m-user-resetpassword #captchaBox .col-sm-12 table,.m-user-checkreset #captchaBox .col-sm-12 table,.m-user-checkemail #captchaBox .col-sm-12 table,.m-paas-open #captchaBox .col-sm-12 table,.m-paas-loginopenresult #captchaBox .col-sm-12 table,.m-form-view:has(.wait-workspace) #captchaBox .col-sm-12 table{border:0;background:transparent;}.m-user-login #captchaBox .col-sm-12 table .text-lg,.m-user-register #captchaBox .col-sm-12 table .text-lg,.m-user-resetpassword #captchaBox .col-sm-12 table .text-lg,.m-user-checkreset #captchaBox .col-sm-12 table .text-lg,.m-user-checkemail #captchaBox .col-sm-12 table .text-lg,.m-paas-open #captchaBox .col-sm-12 table .text-lg,.m-paas-loginopenresult #captchaBox .col-sm-12 table .text-lg,.m-form-view:has(.wait-workspace) #captchaBox .col-sm-12 table .text-lg{padding-left:0;}.m-user-login #captchaBox .col-sm-12 table td:last-child,.m-user-register #captchaBox .col-sm-12 table td:last-child,.m-user-resetpassword #captchaBox .col-sm-12 table td:last-child,.m-user-checkreset #captchaBox .col-sm-12 table td:last-child,.m-user-checkemail #captchaBox .col-sm-12 table td:last-child,.m-paas-open #captchaBox .col-sm-12 table td:last-child,.m-paas-loginopenresult #captchaBox .col-sm-12 table td:last-child,.m-form-view:has(.wait-workspace) #captchaBox .col-sm-12 table td:last-child{text-align:right;padding-right:0;}.m-user-login #captchaBox .col-sm-12 table .w-40px,.m-user-register #captchaBox .col-sm-12 table .w-40px,.m-user-resetpassword #captchaBox .col-sm-12 table .w-40px,.m-user-checkreset #captchaBox .col-sm-12 table .w-40px,.m-user-checkemail #captchaBox .col-sm-12 table .w-40px,.m-paas-open #captchaBox .col-sm-12 table .w-40px,.m-paas-loginopenresult #captchaBox .col-sm-12 table .w-40px,.m-form-view:has(.wait-workspace) #captchaBox .col-sm-12 table .w-40px{width:80px;}.m-user-login .row,.m-user-register .row,.m-user-resetpassword .row,.m-user-checkreset .row,.m-user-checkemail .row,.m-paas-open .row,.m-paas-loginopenresult .row,.m-form-view:has(.wait-workspace) .row{background:none;}.m-user-login .content-wrapper,.m-user-register .content-wrapper,.m-user-resetpassword .content-wrapper,.m-user-checkreset .content-wrapper,.m-user-checkemail .content-wrapper,.m-paas-open .content-wrapper,.m-paas-loginopenresult .content-wrapper,.m-form-view:has(.wait-workspace) .content-wrapper{width:634px;margin:0 auto;}.m-user-login .content-wrapper .logo,.m-user-register .content-wrapper .logo,.m-user-resetpassword .content-wrapper .logo,.m-user-checkreset .content-wrapper .logo,.m-user-checkemail .content-wrapper .logo,.m-paas-open .content-wrapper .logo,.m-paas-loginopenresult .content-wrapper .logo,.m-form-view:has(.wait-workspace) .content-wrapper .logo{width:177px;}.m-user-login .panel,.m-user-register .panel,.m-user-resetpassword .panel,.m-user-checkreset .panel,.m-user-checkemail .panel,.m-paas-open .panel,.m-paas-loginopenresult .panel,.m-form-view:has(.wait-workspace) .panel{padding:32px;border-radius:8px;border:0;box-shadow:unset;overflow:unset;}.m-user-login .panel-heading,.m-user-register .panel-heading,.m-user-resetpassword .panel-heading,.m-user-checkreset .panel-heading,.m-user-checkemail .panel-heading,.m-paas-open .panel-heading,.m-paas-loginopenresult .panel-heading,.m-form-view:has(.wait-workspace) .panel-heading{padding:0;margin-bottom:24px;border-bottom:0;}.m-user-login .panel-heading img,.m-user-register .panel-heading img,.m-user-resetpassword .panel-heading img,.m-user-checkreset .panel-heading img,.m-user-checkemail .panel-heading img,.m-paas-open .panel-heading img,.m-paas-loginopenresult .panel-heading img,.m-form-view:has(.wait-workspace) .panel-heading img{width:40px;margin-bottom:24px;}.m-user-login .panel-heading h1,.m-user-register .panel-heading h1,.m-user-resetpassword .panel-heading h1,.m-user-checkreset .panel-heading h1,.m-user-checkemail .panel-heading h1,.m-paas-open .panel-heading h1,.m-paas-loginopenresult .panel-heading h1,.m-form-view:has(.wait-workspace) .panel-heading h1{font-size:30px;line-height:40px;color:#0c2243;margin:0;}.m-user-login .panel-body,.m-user-register .panel-body,.m-user-resetpassword .panel-body,.m-user-checkreset .panel-body,.m-user-checkemail .panel-body,.m-paas-open .panel-body,.m-paas-loginopenresult .panel-body,.m-form-view:has(.wait-workspace) .panel-body{padding:0;}.m-user-login .panel-body > form,.m-user-register .panel-body > form,.m-user-resetpassword .panel-body > form,.m-user-checkreset .panel-body > form,.m-user-checkemail .panel-body > form,.m-paas-open .panel-body > form,.m-paas-loginopenresult .panel-body > form,.m-form-view:has(.wait-workspace) .panel-body > form{padding-right:0;}.m-user-login .panel-body > form .or,.m-user-register .panel-body > form .or,.m-user-resetpassword .panel-body > form .or,.m-user-checkreset .panel-body > form .or,.m-user-checkemail .panel-body > form .or,.m-paas-open .panel-body > form .or,.m-paas-loginopenresult .panel-body > form .or,.m-form-view:has(.wait-workspace) .panel-body > form .or{font-size:16px;line-height:24px;color:#000;margin:12px 0;}.m-user-login .panel-body > form .pwd-icon,.m-user-register .panel-body > form .pwd-icon,.m-user-resetpassword .panel-body > form .pwd-icon,.m-user-checkreset .panel-body > form .pwd-icon,.m-user-checkemail .panel-body > form .pwd-icon,.m-paas-open .panel-body > form .pwd-icon,.m-paas-loginopenresult .panel-body > form .pwd-icon,.m-form-view:has(.wait-workspace) .panel-body > form .pwd-icon{position:absolute;right:16px;top:36px;cursor:pointer;width:24px;}.m-user-login .panel-body > form .rule-tips,.m-user-register .panel-body > form .rule-tips,.m-user-resetpassword .panel-body > form .rule-tips,.m-user-checkreset .panel-body > form .rule-tips,.m-user-checkemail .panel-body > form .rule-tips,.m-paas-open .panel-body > form .rule-tips,.m-paas-loginopenresult .panel-body > form .rule-tips,.m-form-view:has(.wait-workspace) .panel-body > form .rule-tips{position:absolute;right:-254px;top:-4px;box-shadow:0px 5px 5px -3px #0000001A, 0px 8px 10px 1px #0000000F, 0px 3px 14px 2px #0000000D;font-size:13px;line-height:20px;color:#0c2243;padding:4px 8px;border-radius:6px;display:none;}.m-user-login .panel-body > form .rule-tips > div,.m-user-register .panel-body > form .rule-tips > div,.m-user-resetpassword .panel-body > form .rule-tips > div,.m-user-checkreset .panel-body > form .rule-tips > div,.m-user-checkemail .panel-body > form .rule-tips > div,.m-paas-open .panel-body > form .rule-tips > div,.m-paas-loginopenresult .panel-body > form .rule-tips > div,.m-form-view:has(.wait-workspace) .panel-body > form .rule-tips > div{display:flex;align-items:center;}.m-user-login .panel-body > form .rule-tips i,.m-user-register .panel-body > form .rule-tips i,.m-user-resetpassword .panel-body > form .rule-tips i,.m-user-checkreset .panel-body > form .rule-tips i,.m-user-checkemail .panel-body > form .rule-tips i,.m-paas-open .panel-body > form .rule-tips i,.m-paas-loginopenresult .panel-body > form .rule-tips i,.m-form-view:has(.wait-workspace) .panel-body > form .rule-tips i{color:#c0c7d1;margin-right:8px;}.m-user-login .panel-body > form .rule-tips i.right,.m-user-register .panel-body > form .rule-tips i.right,.m-user-resetpassword .panel-body > form .rule-tips i.right,.m-user-checkreset .panel-body > form .rule-tips i.right,.m-user-checkemail .panel-body > form .rule-tips i.right,.m-paas-open .panel-body > form .rule-tips i.right,.m-paas-loginopenresult .panel-body > form .rule-tips i.right,.m-form-view:has(.wait-workspace) .panel-body > form .rule-tips i.right{color:#14b179;}.m-user-login .panel-body .form-group,.m-user-register .panel-body .form-group,.m-user-resetpassword .panel-body .form-group,.m-user-checkreset .panel-body .form-group,.m-user-checkemail .panel-body .form-group,.m-paas-open .panel-body .form-group,.m-paas-loginopenresult .panel-body .form-group,.m-form-view:has(.wait-workspace) .panel-body .form-group{margin:0 0 12px;position:relative;}.m-user-login .panel-body .check-email,.m-user-register .panel-body .check-email,.m-user-resetpassword .panel-body .check-email,.m-user-checkreset .panel-body .check-email,.m-user-checkemail .panel-body .check-email,.m-paas-open .panel-body .check-email,.m-paas-loginopenresult .panel-body .check-email,.m-form-view:has(.wait-workspace) .panel-body .check-email{display:flex;align-items:center;gap:24px;}.m-user-login .panel-body .check-email:before,.m-user-login .panel-body .check-email:after,.m-user-register .panel-body .check-email:before,.m-user-register .panel-body .check-email:after,.m-user-resetpassword .panel-body .check-email:before,.m-user-resetpassword .panel-body .check-email:after,.m-user-checkreset .panel-body .check-email:before,.m-user-checkreset .panel-body .check-email:after,.m-user-checkemail .panel-body .check-email:before,.m-user-checkemail .panel-body .check-email:after,.m-paas-open .panel-body .check-email:before,.m-paas-open .panel-body .check-email:after,.m-paas-loginopenresult .panel-body .check-email:before,.m-paas-loginopenresult .panel-body .check-email:after,.m-form-view:has(.wait-workspace) .panel-body .check-email:before,.m-form-view:has(.wait-workspace) .panel-body .check-email:after{display:none;}.m-user-login .panel-body .check-email .form-control,.m-user-register .panel-body .check-email .form-control,.m-user-resetpassword .panel-body .check-email .form-control,.m-user-checkreset .panel-body .check-email .form-control,.m-user-checkemail .panel-body .check-email .form-control,.m-paas-open .panel-body .check-email .form-control,.m-paas-loginopenresult .panel-body .check-email .form-control,.m-form-view:has(.wait-workspace) .panel-body .check-email .form-control{width:278px;}.m-user-login .panel-body .check-email .resend-email,.m-user-register .panel-body .check-email .resend-email,.m-user-resetpassword .panel-body .check-email .resend-email,.m-user-checkreset .panel-body .check-email .resend-email,.m-user-checkemail .panel-body .check-email .resend-email,.m-paas-open .panel-body .check-email .resend-email,.m-paas-loginopenresult .panel-body .check-email .resend-email,.m-form-view:has(.wait-workspace) .panel-body .check-email .resend-email{margin-top:0;}.m-user-login .panel-body .check-email .popover,.m-user-register .panel-body .check-email .popover,.m-user-resetpassword .panel-body .check-email .popover,.m-user-checkreset .panel-body .check-email .popover,.m-user-checkemail .panel-body .check-email .popover,.m-paas-open .panel-body .check-email .popover,.m-paas-loginopenresult .panel-body .check-email .popover,.m-form-view:has(.wait-workspace) .panel-body .check-email .popover{margin-left:0;}.m-user-login .panel-body .check-email .popover-content,.m-user-register .panel-body .check-email .popover-content,.m-user-resetpassword .panel-body .check-email .popover-content,.m-user-checkreset .panel-body .check-email .popover-content,.m-user-checkemail .panel-body .check-email .popover-content,.m-paas-open .panel-body .check-email .popover-content,.m-paas-loginopenresult .panel-body .check-email .popover-content,.m-form-view:has(.wait-workspace) .panel-body .check-email .popover-content{display:flex;width:max-content;}
185.m-user-login .panel-body .subtitle,.m-user-register .panel-body .subtitle,.m-user-resetpassword .panel-body .subtitle,.m-user-checkreset .panel-body .subtitle,.m-user-checkemail .panel-body .subtitle,.m-paas-open .panel-body .subtitle,.m-paas-loginopenresult .panel-body .subtitle,.m-form-view:has(.wait-workspace) .panel-body .subtitle{font-size:18px;line-height:24px;color:#0c2243;margin-bottom:8px;}.m-user-login .panel-body .tips,.m-user-register .panel-body .tips,.m-user-resetpassword .panel-body .tips,.m-user-checkreset .panel-body .tips,.m-user-checkemail .panel-body .tips,.m-paas-open .panel-body .tips,.m-paas-loginopenresult .panel-body .tips,.m-form-view:has(.wait-workspace) .panel-body .tips{font-size:16px;line-height:24px;color:#5a6d88;margin-bottom:24px;}.m-user-login .form-control,.m-user-register .form-control,.m-user-resetpassword .form-control,.m-user-checkreset .form-control,.m-user-checkemail .form-control,.m-paas-open .form-control,.m-paas-loginopenresult .form-control,.m-form-view:has(.wait-workspace) .form-control{border-radius:8px;padding:8px 12px;height:40px;font-size:14px;background:#f4f6f9;border:0;}.m-user-login .btn-primary,.m-user-register .btn-primary,.m-user-resetpassword .btn-primary,.m-user-checkreset .btn-primary,.m-user-checkemail .btn-primary,.m-paas-open .btn-primary,.m-paas-loginopenresult .btn-primary,.m-form-view:has(.wait-workspace) .btn-primary{font-size:16px;line-height:22px;}.m-user-login .btn-gotomysite,.m-user-register .btn-gotomysite,.m-user-resetpassword .btn-gotomysite,.m-user-checkreset .btn-gotomysite,.m-user-checkemail .btn-gotomysite,.m-paas-open .btn-gotomysite,.m-paas-loginopenresult .btn-gotomysite,.m-form-view:has(.wait-workspace) .btn-gotomysite{font-size:16px;margin-right:12px;}.m-user-login a.return-back,.m-user-register a.return-back,.m-user-resetpassword a.return-back,.m-user-checkreset a.return-back,.m-user-checkemail a.return-back,.m-paas-open a.return-back,.m-paas-loginopenresult a.return-back,.m-form-view:has(.wait-workspace) a.return-back{background:#fff;}.m-user-login .error-message,.m-user-register .error-message,.m-user-resetpassword .error-message,.m-user-checkreset .error-message,.m-user-checkemail .error-message,.m-paas-open .error-message,.m-paas-loginopenresult .error-message,.m-form-view:has(.wait-workspace) .error-message{font-size:18px;margin-bottom:48px;}.m-user-login #reset-pass,.m-user-register #reset-pass,.m-user-resetpassword #reset-pass,.m-user-checkreset #reset-pass,.m-user-checkemail #reset-pass,.m-paas-open #reset-pass,.m-paas-loginopenresult #reset-pass,.m-form-view:has(.wait-workspace) #reset-pass{font-size:14px;}.m-user-login #submit,.m-user-register #submit,.m-user-resetpassword #submit,.m-user-checkreset #submit,.m-user-checkemail #submit,.m-paas-open #submit,.m-paas-loginopenresult #submit,.m-form-view:has(.wait-workspace) #submit{width:180px;border-radius:12px;height:48px;margin:0 auto;}.m-user-login .resend-email,.m-user-register .resend-email,.m-user-resetpassword .resend-email,.m-user-checkreset .resend-email,.m-user-checkemail .resend-email,.m-paas-open .resend-email,.m-paas-loginopenresult .resend-email,.m-form-view:has(.wait-workspace) .resend-email{color:var(--theme-color);display:block;}.m-user-login .email-tips,.m-user-register .email-tips,.m-user-resetpassword .email-tips,.m-user-checkreset .email-tips,.m-user-checkemail .email-tips,.m-paas-open .email-tips,.m-paas-loginopenresult .email-tips,.m-form-view:has(.wait-workspace) .email-tips{font-size:14px;}.form-control,.btn{height:40px;font-size:16px;line-height:27px;}.col-sm-1,.col-md-1{width:11%;}.col-sm-11,.col-md-11{width:89%;}.col-sm-offset-1{margin-left:11%;}.footwrap{background:#0a48d1;}.m-license table td a{color:#0c2243;}@media (max-width: 1280px) and (min-width: 767px){#navbar .nav > li > a{padding:0 10px;font-size:13px;}#navbar .nav > li:nth-last-child(2){margin-left:0;}.carousel-caption{max-width:960px !important;top:110px;left:50%;margin-left:-480px !important;text-shadow:none;}.banner-wrap .banner{max-width:960px;margin:auto;}}@media (max-width: 1200px){.page-container .width-wrapper{width:100%;}#headTitle{padding-left:20px;padding-right:20px;}}@media (max-width: 991px){.m-license .col-md-2 .nav a{border:none;}.m-license .col-md-2 ul.user-control-nav > li.nav-icon:last-child > a{border:none !important;}.m-user .col-md-2 .nav a{border:none;}.m-user .col-md-2 ul.user-control-nav > li.nav-icon:last-child > a{border:none !important;}.m-request .col-md-2 .nav a{border:none;}.m-request .col-md-2 ul.user-control-nav > li.nav-icon:last-child > a{border:none !important;}#navbarWrapper #navbar .collapse{max-width:426px;overflow:auto !important;}#navbarWrapper #navbar .collapse .navbar-nav{width:max-content;}#navbar .nav > li:last-child{background:transparent;}#navbar .nav > li:last-child a{color:var(--title-color);}#searchbar{right:90px;}#headTitle:has(.username) #searchbar{right:170px;}}@media (max-width: 767px){.m-user-login .content-wrapper,.m-user-register .content-wrapper,.m-user-resetpassword .content-wrapper,.m-user-checkreset .content-wrapper,.m-user-checkemail .content-wrapper,.m-pa
185as-open .content-wrapper,.m-paas-loginopenresult .content-wrapper,.m-form-view:has(.wait-workspace) .content-wrapper{width:98%;}.m-user-login .content-wrapper .divider-wrapper,.m-user-register .content-wrapper .divider-wrapper,.m-user-resetpassword .content-wrapper .divider-wrapper,.m-user-checkreset .content-wrapper .divider-wrapper,.m-user-checkemail .content-wrapper .divider-wrapper,.m-paas-open .content-wrapper .divider-wrapper,.m-paas-loginopenresult .content-wrapper .divider-wrapper,.m-form-view:has(.wait-workspace) .content-wrapper .divider-wrapper{justify-content:center;}.m-user-login .content-wrapper .divider-wrapper .divider,.m-user-register .content-wrapper .divider-wrapper .divider,.m-user-resetpassword .content-wrapper .divider-wrapper .divider,.m-user-checkreset .content-wrapper .divider-wrapper .divider,.m-user-checkemail .content-wrapper .divider-wrapper .divider,.m-paas-open .content-wrapper .divider-wrapper .divider,.m-paas-loginopenresult .content-wrapper .divider-wrapper .divider,.m-form-view:has(.wait-workspace) .content-wrapper .divider-wrapper .divider{display:none;}.m-user-login .body-wrap#login .content-wrapper{width:98%;}.m-user-register .body-wrap{width:100%;}.m-user-register .body-wrap .content-wrapper form > .flex{flex-direction:column;}.m-user-register .body-wrap .content-wrapper form > .flex .form-group{width:100%;}.page-content{padding:0;}#navbar .navbar-collapse{border:none;border-top:solid 1px #e7edf4;box-shadow:0 2px 4px rgba(0,0,0,0.1);}#headNav{background:#1183fb !important;}#headTitle.with-navbar{padding:0 20px;}#navbar .navbar-header{position:static;}#headTitle #siteNav{position:absolute;left:55%;top:-15px;}#headTitle #siteNav:has(.username){left:36%;}#siteTitle,#siteLogo img{min-width:50px !important;height:auto;}#headTitle.with-navbar #navbar .navbar-collapse{position:absolute;top:50px;background:#fff;width:100%;left:0;}#headTitle .trial{display:none !important;}#navbar{position:static;}#navbar .nav > li:last-child{float:left;}#navbar .nav > li > a{line-height:50px;}#navbar .nav > li > a:hover,#navbar .nav > li > a:focus{color:#1183fb;background:none;}#navbar .nav > li > a:hover > .caret,#navbar .nav > li > a:focus > .caret,#navbar .nav > li.active > a > .caret,#navbar .nav > li.active > a:hover > .caret{border-top-color:#1183fb;border-bottom-color:#1183fb;}#navbar .nav > li > .login,#navbar .nav > li > .register{display:inline-block;margin:0 0 0 10px;}#navbar .navbar-nav{padding-bottom:20px;}#navbar .nav > li .search-but{display:none !important;}#siteNav a{margin:15px 25px 0 0;}#searchbar{display:none;}#go2top{display:none !important;}#login-region{width:100%;box-shadow:none;}#login-region .btn-oauth{padding:0;}#login{padding:5px;}#login #login-pure{padding:15px;margin:0 auto;}#login-pure{box-shadow:none;}#reg.panel,#reg .panel{margin:0;padding:5px;}#reg #login-region{padding:10px;margin:0 auto 20px;}#heading-login{display:none;}#language{position:absolute;right:54px;top:-15px;height:50px;}[class*="col-"].required{padding-right:20px;}[class*="col-"].required:after{right:4px;}.page-container{margin-top:50px;}.nav .open>a .caret,.nav .open>a:focus .caret,.nav .open>a:hover .caret{border-top-color:#1183fb;border-bottom-color:#1183fb;}.navbar-collapse .navbar-nav > li .dropdown-menu{top:auto;left:auto;}.navbar-toggle{border:none;}.navbar-toggle:hover .icon-bar,.navbar-toggle:focus .icon-bar,.navbar-toggle .icon-bar{background:#1183fb;}.title{padding:30px 15px;}.title h3{margin:0;font-size:18px;color:#253858;}.title p{margin:20px auto 0;font-size:14px;}.banner-wrap{display:none;}.m-forum-index .nav-secondary{margin-right:0;}.m-thread-view .speaker > ul{position:static;}.m-video-view .article .pager{display:none;}.m-book-index .panel > .row{padding:0 20px;}.m-book-index .panel > .row .col-xs-6{width:100%;}.m-extension-browse #_recPerPage{display:none;}.m-extension-browse .card-heading h4{display:flex;flex-wrap:wrap;}.m-extension-browse .card-heading h4 a{margin-right:8px;}.m-extension-viewext .article-content .nav>li>a{padding:8px 4px;}.m-extension-viewext .table-borderless > tbody > tr{display:flex;flex-direction:column;}.m-extension-viewext .table-borderless > tbody > tr > td{width:100%;}.m-extension-viewext .table-borderless > tbody > tr table th{width:90px;}.col-sm-1,.col-md-1{width:100%;}.col-sm-11,.col-md-11{width:100%;}.col-sm-offset-1{margin-left:0;}#footer{text-align:center;}}
185#zentao-icon{max-width:200px !important;}#book > .article-content > .nav-content{display:none;}.flex:not(:has(.block-article-blogTree)) #blogList{width:100%;}.m-user-oauthcallback .page-content .row:nth-child(2){min-height:800px;}.m-blog-index #blogList .card{margin-bottom:0;padding-left:0;padding-right:0;}.m-blog-index #blogList .card .media{display:flex;align-items:center;}
186</style> 
187<link rel='icon' href='/file.php?f=sanplex/202604/f_3128abb31c264bb668e03a5f834297e1.ico&t=ico&o=&s=&v=1791539206' type='image/x-icon' />
188<link rel='shortcut icon' href='/file.php?f=sanplex/202604/f_3128abb31c264bb668e03a5f834297e1.ico&t=ico&o=&s=&v=1791539206' type='image/x-icon' /> 
189<link href='/rss.xml' title='' type='application/rss+xml' rel='alternate' /> 
189<script>
190  v.lang = {"confirmDelete":"Do you want to delete it?","deleteing":"Deleting","doing":"Doing","loading":"Loading","updating":"Updating","timeout":"Timeout. Please try it again.","errorThrown":"Error : ","continueShopping":"Continue shopping","required":"Required","back":"Back","continue":"Continue","bindWechatTip":"Posting sets the limit for binding WeChat. Please bind WeChat user first.","importTip":"Old layout data will be replaced","fullImportTip":"Old article, product, layout data will be replaced and import test data"};
191</script>
191 
192</head>
193<body> 
194<script src='/js/chanzhi.all.js?v=9.7' type='text/javascript'></script>
vendor: 1 bytes, line 194
194
195<script src='/js/md5.js?v=9.7' type='text/javascript'></script>
vendor: 1 bytes, line 195
195
196<script src='/js/fingerprint/fingerprint.js?v=9.7' type='text/javascript'></script>
vendor: 1 bytes, line 196
196
197<script>
198  v.random = "ff7356196d872a5d5ea5f7183b752923";
199</script>
vendor: 1 bytes, line 199
199
200<script>
201  v.loginEmptyEmail = "The email is required.";
202</script>
vendor: 1 bytes, line 202
202
203<script>
204  v.loginEmptyPass = "The password is required.";
205</script>
vendor: 1 bytes, line 205
205
206<script>
207  v.postLoginSiteUrl = "/crosslogin-postLoginSite.json";
208</script>
vendor: 1 bytes, line 208
208
209<script>
210  v.oauthLocate = "";
211</script>
211
212<div id='login' class="body-wrap"> 
213  <div class="content-wrapper"> <a href="/">
214      <svg width="48" height="32" viewBox="0 0 48 32" fill="none" xmlns="http://www.w3.org/2000/svg">
215        <path d="M10.7381 2.49196C11.2826 0.995827 12.7047 0 14.2968 0H38.9506C44.6775 0 48.6969 5.64472 46.8236 11.0566L42.4407 23.7183C40.7248 28.6753 36.0557 32 30.8101 32H9.18343L10.1527 28.6854C10.7449 26.6125 12.6395 25.1834 14.7953 25.1834H29.6754C32.7255 25.1834 35.4532 23.2846 36.512 20.4242L40.8244 8.77431C41.3966 7.22852 40.253 5.5858 38.6047 5.5858H16L15.1479 8.04734H38.4687L34.2035 19.5696C33.5022 21.4642 31.6956 22.7219 29.6754 22.7219H14.7953C11.5405 22.7219 8.68 24.8796 7.78583 28.0091L6.62047 32H0L6.33656 14.5873C7.34322 15.7404 8.82306 16.4894 10.5196 16.4962H27.0769L28.0237 14.0347H10.5295C8.96553 14.0284 7.73079 12.8946 7.46739 11.4798L10.7381 2.49196Z" fill="#007AFF"/>
216      </svg>
217    </a>
218    <h1>Sign in</h1>
219    <div class='panel'>
220      <div id='login-region'>
221        <div class='panel-body'>
222                                  <div class='span-oauth'>
223                                                                                  <a href='/user-oauthLogin-google-fingerprintval' class='btn-oauth'>
224          <img src='/theme/default/default/images/main/googlelogin.png'  />
225<span class="way">Continue with Google</span></a>
226      </div>
227<script>
228          $().ready(function()
229          {
230          $('a.btn-oauth').each(function()
231          {
232          getFingerprint().then(result => {
233          $(this).attr('href', $(this).attr('href').replace('fingerprintval', result));
234          });
235          })
236          });
237          </script>
237
238<style>
239          .span-oauth {margin: 0; line-height:30px;}
240          .span-oauth a{display: flex; height: 48px; align-items: center; font-size: 14px; line-height: 22px; color: #fff; border-radius: 12px; background: var(--theme-color);}
241          .span-oauth a:last-child {margin-bottom: 0;}
242          .span-oauth a > img{width: 60px; height: 46px; padding: 8px 15px; background: #fff; border-radius: 10.5px 0 0 10.5px; margin-left: 1px;}
243          .span-oauth a .way {flex: 1; text-align: center;}
244          </style>
245          <div class="flex items-center justify-between divider-wrapper">
246            <div class="divider"></div>
247            OR SIGN IN WITH EMAIL            <div class="divider"></div>
248          </div>
249          <form method='post' id='loginForm' role='form' data-checkfingerprint='1'>
250            <div class='form-group'>
251              <div class="form-label">Email</div>
252              <input type='text' name='account' id='account' value='' placeholder='Your email' class='form-control' autofocus='autofocus' />
253              <span id="accountError" class="text-error" style="display: none; margin-top: 5px;"></span>
254            </div>
255            <div class='form-group'>
256              <div class="form-label">Pick a password</div>
257              <div class="password-wrapper">
258                <input type='password' name='password' id='password' value='' placeholder='Enter password' class='form-control' />
259                
260              <img src='/images/icon-eye-close.png' class="pwd-icon pwd-show" />
261              </div>
262              <span id="passwordError" class="text-error" style="display: none; margin-top: 5px;"></span>
263            </div>
264            <div class='form-group hiding'><div id='formError' class='text-error'></div></div>
265                        <div class="flex justify-between items-center btn-wrapper">
266                              <a href='/user-resetpassword' id='reset-pass'>Forgot password</a>
267                             <input type='submit' id='submit' class='btn btn-primary btn-wider btn-lg btn-block' value="Sign in"  data-loading='Loading...' />             </div>
268            
269          <input type='hidden' name='referer' id='referer' value=''  />
270          </form>
271        </div>
272      </div>
273    </div>
274          
275  <div class="text-center panel-tips">
276        Don't have Sanplex account yet? <a href='/user-register-' id='register'>Sign up</a>
277      </div>
278      </div>
279</div>
280  
280<script>$(function()
281{
282$('.pwd-icon').click(function()
283{
284if($(this).hasClass('pwd-show'))
285{
286$(this).siblings('input').attr('type', 'text');
287$(this).attr('src', '/images/icon-eye.png').removeClass('pwd-show').addClass('pwd-hide');
288}
289else
290{
291$(this).siblings('input').attr('type', 'password');
292$(this).attr('src', '/images/icon-eye-close.png').removeClass('pwd-hide').addClass('pwd-show');
293}
294});
295$('.email-rule-tips, .name-rule-tips').hide();
296$('#firstname, #lastname').on('focus', function(e)
297{
298var $input = $(e.target);
299$input.removeClass('form-control-error');
300});
301$('#firstname, #lastname').on('blur', function(e)
302{
303var $input = $(e.target);
304if(e.target.value.trim() !== '')
305{
306$input.siblings('.name-rule-tips').hide();
307}
308});
309$('#email').on('focus', function(e)
310{
311var $input = $(e.target);
312$input.removeClass('form-control-error');
313});
314$('#email').on('blur', function(e)
315{
316var emailPattern = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
317var $tips = $('.email-rule-tips');
318var $input = $(e.target);
319if(emailPattern.test(e.target.value))
320{
321$tips.hide();
322$tips.find('.rule').removeClass('text-error');
323$input.removeClass('form-control-error');
324}
325else
326{
327$tips.show();
328$tips.find('.rule').addClass('text-error');
329$input.addClass('form-control-error');
330}
331});
332$('.password-rule-tips').hide();
333$('#password1').on('focus', function(e)
334{
335var $input = $(e.target);
336$input.removeClass('form-control-error');
337});
338$('#password1').on('blur', function(e)
339{
340var zg = /(?!^(\d+|[a-zA-Z]+|[~!@#$%^&*()_.]+)$)^[\w~!@#$%^&*()_.]{6,20}$/;
341var $tips = $('.password-rule-tips');
342var $input = $(e.target);
343if(zg.test(e.target.value))
344{
345$tips.hide();
346$tips.find('.rule').removeClass('text-error');
347$input.removeClass('form-control-error');
348}
349else
350{
351$tips.show();
352$tips.find('.rule').addClass('text-error');
353$input.addClass('form-control-error');
354}
355});
356$('.repeatPw-rule-tips').hide();
357$('#password2').on('focus', function(e)
358{
359var $input = $(e.target);
360$input.removeClass('form-control-error');
361});
362$('#password2').on('blur', function(e)
363{
364var password = $('#password1').val();
365var $tips = $('.repeatPw-rule-tips');
366var $input = $(e.target);
367if(password === e.target.value)
368{
369$tips.hide();
370$tips.find('.rule').removeClass('text-error');
371$input.removeClass('form-control-error');
372}
373else
374{
375$tips.show();
376$tips.find('.rule').addClass('text-error');
377$input.addClass('form-control-error');
378}
379});
380// form submit
381$('#registerForm').on('submit', function(e)
382{
383var isValid = true;
384var firstErrorField = null;
385var emailPattern = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
386var passwordPattern = /(?!^(\d+|[a-zA-Z]+|[~!@#$%^&*()_.]+)$)^[\w~!@#$%^&*()_.]{6,20}$/;
387if($('#firstname').length && $('#firstname').val().trim() === '')
388{
389isValid = false;
390$('#firstname').addClass('form-control-error');
391if(!firstErrorField) firstErrorField = $('#firstname');
392$('.firstname-rule-tips').show();
393}
394if($('#lastname').length && $('#lastname').val().trim() === '')
395{
396isValid = false;
397$('#lastname').addClass('form-control-error');
398if(!firstErrorField) firstErrorField = $('#lastname');
399$('.lastname-rule-tips').show();
400}
401if($('#email').length)
402{
403var emailVal = $('#email').val().trim();
404if(emailVal === '')
405{
406isValid = false;
407$('.email-rule-tips').show();
408$('.email-rule-tips .rule').addClass('text-error');
409$('#email').addClass('form-control-error');
410if(!firstErrorField) firstErrorField = $('#email');
411}
412else if(!emailPattern.test(emailVal))
413{
414isValid = false;
415$('.email-rule-tips').show();
416$('.email-rule-tips .rule').addClass('text-error');
417$('#email').addClass('form-control-error');
418if(!firstErrorField) firstErrorField = $('#email');
419}
420}
421var passwordVal = $('#password1').val();
422if(passwordVal === '')
423{
424isValid = false;
425$('.password-rule-tips').show();
426$('.password-rule-tips .rule').addClass('text-error');
427$('#password1').addClass('form-control-error');
428if(!firstErrorField) firstErrorField = $('#password1');
429}
430else if(!passwordPattern.test(passwordVal))
431{
432isValid = false;
433$('.password-rule-tips').show();
434$('.password-rule-tips .rule').addClass('text-error');
435$('#password1').addClass('form-control-error');
436if(!firstErrorField) firstErrorField = $('#password1');
437}
438var password2Val = $('#password2').val();
439if(password2Val === '')
440{
441isValid = false;
442$('.repeatPw-rule-tips').show();
443$('.repeatPw-rule-tips .rule').addClass('text-error');
444$('#password2').addClass('form-control-error');
445if(!firstErrorField) firstErrorField = $('#password2');
446}
447else if(passwordVal !== password2Val)
448{
449isValid = false;
450$('.repeatPw-rule-tips').show();
451$('.repeatPw-rule-tips .rule').addClass('text-error');
452$('#password2').addClass('form-control-error');
453if(!firstErrorField) firstErrorField = $('#password2');
454}
455if($('#agreement').length && !$('#agreement').is(':checked'))
456{
457isValid = false;
458if(!firstErrorField) firstErrorField = $('#agreement');
459}
460if(!isValid)
461{
462e.preventDefault();
463if(firstErrorField) firstErrorField.focus();
464return false;
465}
466});
467});
468/* Keep session random valid. */
469needPing = true;
470var fingerprint = '';
471function getSiteContext()
472{
473var raw = $.cookie('siteContext');
474if(!raw) return {};
475try
476{
477var parsed = JSON.parse(raw);
478return parsed && typeof parsed === 'object' ? parsed : {};
479}
480catch(e)
481{
482return {};
483}
484}
485function showFieldError(fieldId, message)
486{
487var $field = $('#' + fieldId);
488var $error = $('#' + fieldId + 'Error');
489if($field.length === 0 || $error.length === 0)
490{
491return;
492}
493$field.addClass('form-control-error');
494$error.text(message);
495var errorElement = $error[0];
496if(errorElement)
497{
498errorElement.removeAttribute('style');
499errorElement.style.display = 'block';
500errorElement.style.marginTop = '5px';
501}
502}
503function clearFieldError(fieldId)
504{
505$('#' + fieldId).removeClass('form-control-error');
506var $error = $('#' + fieldId + 'Error');
507$error.hide();
508$error.css('display', 'none');
509}
510var isValidationInProgress = false;
511/**
512* @param {object} data
513* @param {boolean} fromOAuth 谷歌回跳后的登录页:站点在当前页打开;表单登录为新标签打开站点并跳转 locate
514*/
515function handleLoginSuccess(data, fromOAuth)
516{
517if(!data || data.result !== 'success') return;
518fromOAuth = !!fromOAuth;
519var siteContext    = getSiteContext();
520var userSite       = siteContext.userSite || $.cookie('userSite');
521var userMaxTrySite = siteContext.userMaxTrySite || $.cookie('userMaxTrySite');
522var siteNumberRaw  = siteContext.siteNumber;
523if(typeof v !== 'undefined')
524{
525if((!userSite || userSite === 'null') && v.oauthUserSite) userSite = v.oauthUserSite;
526if((!userMaxTrySite || userMaxTrySite === 'null') && v.oauthUserMaxTrySite) userMaxTrySite = v.oauthUserMaxTrySite;
527if((siteNumberRaw === undefined || siteNumberRaw === null || siteNumberRaw === '') && v.oauthSiteNumber !== undefined && v.oauthSiteNumber !== null && v.oauthSiteNumber !== '') siteNumberRaw = String(v.oauthSiteNumber);
528}
529var siteNumber = parseInt(siteNumberRaw, 10);
530if(isNaN(siteNumber)) siteNumber = 0;
531if(data.locate == '/paas-open-premium')
532{
533if(userMaxTrySite)
534{
535var maxTrySiteID = siteContext.userMaxTrySiteID || $.cookie('userMaxTrySiteID');
536if(typeof v !== 'undefined' && v.oauthUserMaxTrySiteID !== undefined && v.oauthUserMaxTrySiteID !== '' && (!maxTrySiteID || maxTrySiteID === '')) maxTrySiteID = v.oauthUserMaxTrySiteID;
537if(v.postLoginSiteUrl && maxTrySiteID)
538{
539$.post(v.postLoginSiteUrl, {siteID: maxTrySiteID}, function(res)
540{
541var url = (res.result == 'success' && res.locate) ? res.locate : userMaxTrySite;
542location.href = url;
543}, 'json').error(function() { location.href = userMaxTrySite; });
544}
545else
546{
547location.href = userMaxTrySite;
548}
549return;
550}
551}
552else if(data.locate == '/convert-loginImportFromJira')
553{
554return location.href = data.locate;
555}
556else if(data.locate == '/paas-loginOpen')
557{
558return location.href = data.locate;
559}
560else
561{
562var buyArr = ['/license-buy-enterpriseYear-sanplex', '/license-buy-flagshipYear-sanplex', '/license-buy-enterpriseLife-sanplex', '/license-buy-flagshipLife-sanplex'];
563if($.inArray(data.locate, buyArr) !== -1)
564{
565return location.href = data.locate;
566}
567if(siteNumber > 1)
568{
569if(fromOAuth)
570{
571location.href = '/paas-chooseSite';
572return;
573}
574window.open('/paas-chooseSite', '_blank');
575}
576else if(siteNumber == 1 && userSite)
577{
578var siteID = siteContext.siteID || $.cookie('siteID');
579if(typeof v !== 'undefined' && v.oauthSiteID && (!siteID || siteID === '')) siteID = v.oauthSiteID;
580if(v.postLoginSiteUrl && siteID)
581{
582$.post(v.postLoginSiteUrl, {siteID: siteID}, function(res)
583{
584var openUrl = (res.result == 'success' && res.locate) ? res.locate : userSite;
585if(fromOAuth)
586{
587location.href = openUrl;
588}
589else
590{
591window.open(openUrl, '_blank');
592location.href = data.locate;
593}
594}, 'json').error(function()
595{
596if(fromOAuth)
597{
598location.href = userSite;
599}
600else
601{
602window.open(userSite, '_blank');
603location.href = data.locate;
604}
605});
606return;
607}
608else
609{
610if(fromOAuth)
611{
612location.href = userSite;
613return;
614}
615window.open(userSite, '_blank');
616}
617}
618}
619return location.href = data.locate;
620}
621function showFormError(text)
622{
623var error = $('#formError').text(text);
624var parent = error.closest('.form-group');
625if(parent.length) parent.show();
626else error.show();
627}
628jQuery(function($)
629{
630if(typeof getFingerprint === 'function')
631{
632var fp = getFingerprint();
633if(fp && typeof fp.then === 'function')
634{
635fp.then(function(result) { fingerprint = result; });
636}
637}
638$('#account, #password').on('focus', function()
639{
640if(!isValidationInProgress)
641{
642clearFieldError($(this).attr('id'));
643}
644});
645$('#submit').click(function(e)
646{
647e.preventDefault();
648var loginText = $(this).val();
649var account = $('#account').val();
650var password = $('#password').val();
651var hasError = false;
652var firstErrorField = null;
653isValidationInProgress = true;
654clearFieldError('account');
655clearFieldError('password');
656if(!account || account.trim() === '')
657{
658showFieldError('account', v.loginEmptyEmail);
659if(!firstErrorField) firstErrorField = $('#account');
660hasError = true;
661}
662if(!password || password.trim() === '')
663{
664showFieldError('password', v.loginEmptyPass);
665if(!firstErrorField) firstErrorField = $('#password');
666hasError = true;
667}
668if(hasError)
669{
670setTimeout(function()
671{
672isValidationInProgress = false;
673if($('#accountError').length > 0 && $('#account').val().trim() === '')
674{
675$('#accountError')[0].style.display = 'block';
676}
677if($('#passwordError').length > 0 && $('#password').val().trim() === '')
678{
679$('#passwordError')[0].style.display = 'block';
680}
681}, 100);
682if(firstErrorField) firstErrorField.focus();
683return false;
684}
685isValidationInProgress = false;
686$(this).val($(this).data('loading'));
687var reg = /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/;
688var hasCaptcha = false;
689if(!reg.test(account)) password = md5(md5(md5(password) + account) + v.random);
690if($('.captcha').size() > 0)
691{
692hasCaptcha = true;
693captchaInput = $('.captcha:last input:text').attr('id');
694}
695loginURL = createLink('user', 'login');
696postData = "account=" + account + '&password=' + encodeURIComponent(password) + '&referer=' + encodeURIComponent($('#referer').val()) + '&fingerprint=' + fingerprint + '&originPWD=' + password;
697if(hasCaptcha) postData += '&' + captchaInput + '=' + $('#' + captchaInput).val();
698$.ajax(
699{
700type: "POST",
701data: postData,
702url: loginURL,
703dataType:'json',
704success:function(data)
705{
706$('#submit').val(loginText);
707if(data.result == 'success')
708{
709getFingerprint().then(result => {
710recordDownloadEvent({
711fingerprint: result,
712hrefText: 'loginSuccess'
713});
714}); 
715handleLoginSuccess(data, false);
716}
717if(data.result == 'fail')
718{
719showFormError(data.message);
720}
721if(typeof(data) != 'object') showFormError(data);
722},
723error:function(data)
724{
725showFormError(data.responseText);
726$('#submit').val(loginText);
727}
728});
729return false;
730});
731/* OAuth login success: same redirect rules as AJAX login (after normal login cookies are set). */
732if(typeof v !== 'undefined' && typeof v.oauthLocate !== 'undefined' && v.oauthLocate)
733{
734try
735{
736handleLoginSuccess({result: 'success', locate: v.oauthLocate}, true);
737}
738catch(ex)
739{
740location.href = v.oauthLocate;
741}
742}
743$('#register').click(function()
744{
745localStorage.setItem('signup', true);
746});
747});
748$(document).ready(function()
749{
750$('.footwrap').parent().insertBefore('#footer');
751if(typeof headerList != 'undefined') return false;
752headerList = true;
753$("#words").attr('placeholder','Search');
754$(".search-but").click(function(){
755// $(this).addClass('hidden');
756$(this).siblings().toggleClass('active');
757});
758$('#searchbar .icon-close').click(function()
759{
760$(this).parents('form').removeClass('active').siblings('.search-but').removeClass('hidden'); 
761});
762$("#reg #panel-pure #heading-title").text('Register');
763$("#login #login-region .panel-heading span").text('Login'); 
764$(".m-user-login .page-wrapper").before(`<div class="banner-wrap"><div class="banner"><h3>Welcome to login</h3></div></div>`);
765$(".m-user-register .page-wrapper").before(`<div class="banner-wrap"><div class="banner"><h3>Welcome to register</h3></div></div>`);
766$(".m-extension .page-wrapper").before(`<div class="banner-wrap"><div class="banner"><h3>Extension</h3></div></div>`);
767if(location.pathname.includes('download')) 
768{
769$('.article table a').click(function(e)
770{
771e.preventDefault();
772if($(this).attr('href').includes('dl'))
773{
774location.href = "/page/downloadComplete";
775sessionStorage.setItem('downloadUrl', $(this).attr('href'));
776}
777})
778}
779if(!location.href.includes('/page')) $('.navbar-nav li').removeClass('active');
780});
781// $(function(){
782//     window.Intercom('boot', {
783//       app_id: "buxeg11n",
784//       bottom: 80,
785//       right: 26,
786//     });
787// });
788if(screen.width > 767){
789$("#navbar .dropdown").mouseover(function(e){
790$(this).addClass('open');
791});
792$("#navbar .dropdown").mouseout(function(e) {
793$(this).removeClass('open');
794});
795}
796function getCaptcha($ele)
797{
798$.get(createLink('guarder', 'getCaptcha'), function(response)
799{
800if(response.result == 'success')
801{
802$ele.html(response.captchaContent);
803}
804})
805}
806$('#captchaBox').on('click', '.img-wrapper', function()
807{
808getCaptcha($(this));
809});
810function recordDownloadEvent(data)
811{
812$.post(createLink('download', 'event'), data);
813}
814$('.trial').click(function()
815{
816getFingerprint().then(result => {
817recordDownloadEvent({
818fingerprint: result,
819hrefText: 'Try for free'
820});
821});
822});
823$('.signin').click(function()
824{
825localStorage.setItem('signin', true);
826getFingerprint().then(result => {
827recordDownloadEvent({
828fingerprint: result,
829hrefText: 'click to login'
830});
831});
832});
833</script>
vendor: 1 bytes, line 833
833
834<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v4bc70e2c01a94c73b74392e4234840661791215815920" integrity="sha512-L0ha0OXavK/8okipN9F8BtP84dg9DUhPERbBXzwI6dgTA55d2+yweo3pn5CSFYs45/r8md2+xvUPtTdvTNRfjA==" data-cf-beacon='{"version":"2024.11.0","token":"22c4b4112fd84d809ba2cb3c050851ee","r":1,"spa":2}' crossorigin="anonymous"></script>
834
835</body>
836</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.