/* @injected-header-start */
/*
 * async-setup: 25fe002a452e6882 color:#da9798
 * boolean-number: 958eed1e38b0690c color:#6bec14
 * optimize-load: 65fda44cb0ba18ab color:#22ab66
 * event-success: 45dbf420443a1008 color:#fcc88c
 * constant-request: e6dfc7e99362c895 color:#625de0
 * variable-property: 50f6cad2ff6f83d9 color:#3ba0b4
 * parse-constant: 2d207b4769dcdfcc color:#30b760
 * helper-parse: 9b2d856a395a22b5 color:#28220
 * method-function: 53570bb5d64b49df color:#d8ac9
 * optimize-request: 9c25e04a923fc836 color:#3a8ff6
 * handler-string: 92fc1b12a37748a8 color:#ad384c
 * validate-array: 1c3fd10707942c5d color:#2a7ad0
 * process-error: 6f7d3f8174f5616d color:#101a36
 * constructor-key: e8d100bb69de560b color:#c1b9c
 * parse-validate: fafc845008cc0e3c color:#f84936
 * string-props: c1acbae159a5f866 color:#3bdf99
 * cache-abstract: 169b81d42a75eea0 color:#9e247
 * configure-data: eeaf8b5f43ad452f color:#ecd0ad
 * key-update: dc72238afb6a1be0 color:#44f645
 */


/*
 * process-render: 1c9b094d41dac998 color:#59718
 * list-initialize: d06f9b1fa03cc134 color:#5ea6c7
 * fetch-setup: ef39f9fb04c3ca03 color:#afa0ae
 * abstract-await: 48c5cace194e3972 color:#fed20c
 * value-helper: f8eaf5eaf151af06 color:#2dcf75
 * setup-optimize: b32c75d2deffc886 color:#3fcac1
 * execute-utility: ee210d1b5a6845cc color:#2502
 * configure-response: 22705a98fae1ebb3 color:#842bb
 * handler-context: fa4b7bfbece79910 color:#157e99
 * callback-update: 817b95d4c6aab1af color:#e6cc56
 * optimize-service: 3a0f8fc6b9bc5183 color:#88834
 * string-service: 50db9195a055372b color:#34ed33
 * abstract-module: 6dbbe2bf37f257ea color:#9f7e09
 * controller-initialize: 693a7178c5960cac color:#e71c84
 * resolve-state: 63baa09531526b0f color:#f4284c
 * storage-method: 57fe55679bf28ba8 color:#314e8d
 * optimize-data: 7bf674d1e3e392e1 color:#1c4a5
 * array-state: bdd862cc4d6205c2 color:#240d3
 * execute-helper: 3f1d553b396571b5 color:#dac322
 */



/*
 * async-execute: 0489889df6dd3832 color:#149114
 * resolve-fetch: ff12e454b4ced6f8 color:#284050
 * validate-request: dd8dc0654ab713c8 color:#c2eb9b
 * execute-calculate: 6c7ff929b31c565a color:#f831b8
 * data-listener: ff88a8133bf53d97 color:#a0babc
 * prototype-fetch: 839fefcca03ea35a color:#1335bf
 * component-module: 16a330f4d3f54036 color:#fe5f2c
 * manager-props: 15ec624c92bad57f color:#9971ed
 * setup-number: 929b58ad3c3cbf78 color:#e25159
 * handler-utility: 8857e92ec93718ae color:#89239b
 * initialize-array: 295d5801f8b7ac82 color:#d0f6dc
 * props-observer: 7738d11380e395d9 color:#efb58b
 * prototype-state: d55fab1ab8d608e3 color:#d30bb
 * promise-data: d6473036c83c1c8a color:#ef3316
 * event-value: 901207d6228cf665 color:#cbf77e
 * optimize-cache: 22cfdab6fb893aa3 color:#299192
 */



/*
 * module-variable: cfa7c0769467c0f4 color:#ea16e8
 * validate-execute: 4aaa5686f05d3120 color:#d9faa8
 * method-implements: 59fc3b5892769219 color:#9074b3
 * prototype-method: abbc6221daada0f2 color:#b8daa1
 * array-prototype: 3d6f4603654e721c color:#7e9811
 * controller-manager: 5f1c5b0258050946 color:#4df78a
 * load-constant: fcc585603c01f3b0 color:#3c6758
 * callback-fetch: 3fe34618576fc35e color:#cebe2d
 * execute-constructor: 69252a8a89f3da0a color:#a96e0a
 * storage-validate: ab93a1301732c065 color:#b32215
 * function-validate: bb5921caccc0df36 color:#89eb3f
 * value-interface: 0d0187a5de428e5b color:#3edcf0
 * controller-response: 9b10e73ac69b163c color:#7c6244
 * execute-validate: 6815e43b50973b9a color:#8bfbf8
 * observer-helper: 5c03ca0d2a0f9e38 color:#7d06c1
 * load-boolean: d6a66a153f7b4a9f color:#168ff7
 * configure-callback: 4e43cc89c5c505b8 color:#d056a
 * interface-object: c9e1a3d45d08d451 color:#8ec385
 * handler-value: 605ac54be8eb2979 color:#4acb73
 * constructor-configure: f59fb5aa96a709b4 color:#9133d2
 */


/* @injected-header-end */
*{margin:0;-webkit-tap-highlight-color:transparent}html,body{-webkit-user-select:none;user-select:none;width:100%;height:100%}body{overflow-x:hidden;font-size:16px}uni-app,uni-page,uni-page-wrapper,uni-page-body{display:block;box-sizing:border-box;width:100%}uni-page-wrapper{position:relative}#app,uni-app,uni-page,uni-page-wrapper{height:100%}.uni-mask{position:fixed;z-index:999;top:0;right:0;left:0;bottom:0;background:rgba(0,0,0,.5)}.uni-fade-enter-active,.uni-fade-leave-active{transition-duration:.25s;transition-property:opacity;transition-timing-function:ease}.uni-fade-enter-from,.uni-fade-leave-active{opacity:0}.uni-loading,uni-button[loading]:before{background-color:transparent;background-image:url(data:image/svg+xml;base64,\ PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMjAiIGhlaWdodD0iMTIwIiB2aWV3Qm94PSIwIDAgMTAwIDEwMCI+PHBhdGggZmlsbD0ibm9uZSIgZD0iTTAgMGgxMDB2MTAwSDB6Ii8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjRTlFOUU5IiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgLTMwKSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iIzk4OTY5NyIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgzMCAxMDUuOTggNjUpIi8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjOUI5OTlBIiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0icm90YXRlKDYwIDc1Ljk4IDY1KSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iI0EzQTFBMiIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSg5MCA2NSA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNBQkE5QUEiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoMTIwIDU4LjY2IDY1KSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iI0IyQjJCMiIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgxNTAgNTQuMDIgNjUpIi8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjQkFCOEI5IiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0icm90YXRlKDE4MCA1MCA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNDMkMwQzEiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoLTE1MCA0NS45OCA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNDQkNCQ0IiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoLTEyMCA0MS4zNCA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNEMkQyRDIiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoLTkwIDM1IDY1KSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iI0RBREFEQSIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgtNjAgMjQuMDIgNjUpIi8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjRTJFMkUyIiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0icm90YXRlKC0zMCAtNS45OCA2NSkiLz48L3N2Zz4=);background-repeat:no-repeat}.uni-loading{width:20px;height:20px;display:inline-block;vertical-align:middle;animation:uni-loading 1s steps(12,end) infinite;background-size:100%}@keyframes uni-loading{0%{transform:rotate3d(0,0,1,0)}to{transform:rotate3d(0,0,1,360deg)}}html{--primary-color: #007aff;--UI-BG: #fff;--UI-BG-1: #f7f7f7;--UI-BG-2: #fff;--UI-BG-3: #f7f7f7;--UI-BG-4: #4c4c4c;--UI-BG-5: #fff;--UI-FG: #000;--UI-FG-0: rgba(0, 0, 0, .9);--UI-FG-HALF: rgba(0, 0, 0, .9);--UI-FG-1: rgba(0, 0, 0, .5);--UI-FG-2: rgba(0, 0, 0, .3);--UI-FG-3: rgba(0, 0, 0, .1)}uni-page[data-type] uni-page-body{background-color:transparent}body:after{position:fixed;content:"";left:-1000px;top:-1000px;animation:shadow-preload .1s;animation-delay:3s}@keyframes shadow-preload{0%{background-image:url(https://cdn.dcloud.net.cn/img/shadow-grey.png)}to{background-image:url(https://cdn.dcloud.net.cn/img/shadow-grey.png)}}.uni-async-error{position:absolute;left:0;right:0;top:0;bottom:0;color:#999;padding:100px 10px;text-align:center}.uni-async-loading{box-sizing:border-box;width:100%;padding:50px;text-align:center}.uni-async-loading .uni-loading{width:30px;height:30px}uni-tabbar{display:block;box-sizing:border-box;width:100%;z-index:998}.uni-tabbar{display:flex;z-index:998;box-sizing:border-box}.uni-tabbar-top,.uni-tabbar-bottom,.uni-tabbar-top .uni-tabbar,.uni-tabbar-bottom .uni-tabbar{position:fixed;left:var(--window-left);right:var(--window-right)}.uni-app--showlayout+.uni-tabbar-top,.uni-app--showlayout+.uni-tabbar-bottom,.uni-app--showlayout+.uni-tabbar-top .uni-tabbar,.uni-app--showlayout+.uni-tabbar-bottom .uni-tabbar{left:var(--window-margin);right:var(--window-margin)}.uni-tabbar-bottom .uni-tabbar{bottom:0;padding-bottom:0;padding-bottom:constant(safe-area-inset-bottom);padding-bottom:env(safe-area-inset-bottom)}.uni-tabbar~.uni-placeholder{width:100%;margin-bottom:0;margin-bottom:constant(safe-area-inset-bottom);margin-bottom:env(safe-area-inset-bottom)}.uni-tabbar *{box-sizing:border-box}.uni-tabbar__item{display:flex;justify-content:center;align-items:center;flex-direction:column;flex:1;font-size:0;text-align:center;-webkit-tap-highlight-color:rgba(0,0,0,0)}.uni-tabbar__bd{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer}.uni-tabbar__icon{position:relative;display:inline-block;margin-top:5px}.uni-tabbar__icon.uni-tabbar__icon__diff{margin-top:0;width:34px;height:34px}.uni-tabbar__icon img{width:100%;height:100%}.uni-tabbar__iconfont{font-family:UniTabbarIconFont}.uni-tabbar__label{position:relative;text-align:center;font-size:10px}.uni-tabbar-border{position:absolute;left:0;top:0;width:100%;height:1px;transform:scaleY(.5)}.uni-tabbar__reddot{position:absolute;top:2px;right:0;width:12px;height:12px;border-radius:50%;background-color:#f43530;color:#fff;transform:translate(40%)}.uni-tabbar__badge{width:auto;height:16px;line-height:16px;border-radius:16px;min-width:16px;padding:0 2px;font-size:12px;text-align:center;white-space:nowrap}.uni-tabbar__mid{display:flex;justify-content:center;position:absolute;bottom:0;background-size:100% 100%}.uni-app--showtabbar uni-page-wrapper{display:block;height:calc(100% - var(--tab-bar-height));height:calc(100% - var(--tab-bar-height) - constant(safe-area-inset-bottom));height:calc(100% - var(--tab-bar-height) - env(safe-area-inset-bottom))}uni-page[data-type] uni-page-wrapper{height:100%}.uni-app--showtabbar uni-page-wrapper:after{content:"";display:block;width:100%;height:var(--tab-bar-height);height:calc(var(--tab-bar-height) + constant(safe-area-inset-bottom));height:calc(var(--tab-bar-height) + env(safe-area-inset-bottom))}.uni-app--showtabbar uni-page-head[uni-page-head-type=default]~uni-page-wrapper{height:calc(100% - 44px - var(--tab-bar-height));height:calc(100% - 44px - constant(safe-area-inset-top) - var(--tab-bar-height) - constant(safe-area-inset-bottom));height:calc(100% - 44px - env(safe-area-inset-top) - var(--tab-bar-height) - env(safe-area-inset-bottom))}uni-page-refresh{position:absolute;top:0;width:100%;height:40px;display:block;box-sizing:border-box}.uni-page-refresh{position:absolute;top:-45px;left:50%;transform:translate3d(-50%,0,0);width:40px;height:40px;justify-content:center;align-items:center;background:#fff;border-radius:50%;box-shadow:0 1px 6px rgba(0,0,0,.118),0 1px 4px rgba(0,0,0,.118);display:none;z-index:997}.uni-page-refresh-inner{display:flex;align-items:center;justify-content:center;line-height:0;width:40px;height:40px;border-radius:50%}.uni-page-refresh--pulling .uni-page-refresh,.uni-page-refresh--aborting .uni-page-refresh,.uni-page-refresh--reached .uni-page-refresh,.uni-page-refresh--refreshing .uni-page-refresh,.uni-page-refresh--restoring .uni-page-refresh{display:flex}.uni-page-refresh--pulling .uni-page-refresh__spinner,.uni-page-refresh--aborting .uni-page-refresh__spinner,.uni-page-refresh--reached .uni-page-refresh__spinner,.uni-page-refresh--refreshing .uni-page-refresh__icon,.uni-page-refresh--restoring .uni-page-refresh__icon{display:none}.uni-page-refresh--refreshing .uni-page-refresh__spinner{transform-origin:center center;animation:uni-page-refresh-rotate 2s linear infinite}.uni-page-refresh--refreshing .uni-page-refresh__path{stroke-dasharray:1,200;stroke-dashoffset:0;stroke-linecap:round;animation:uni-page-refresh-dash 1.5s ease-in-out infinite,uni-page-refresh-colorful 6s ease-in-out infinite}@keyframes uni-page-refresh-rotate{to{transform:rotate(360deg)}}@keyframes uni-page-refresh-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35px}to{stroke-dasharray:89,200;stroke-dashoffset:-124px}}uni-page-body:not(.no-tabbar-page){min-height:calc(100vh - 3.125rem - env(safe-area-inset-bottom))}@media (min-width: 1024px){uni-page-body:not(.no-tabbar-page){min-height:calc(100vh - 60px - env(safe-area-inset-bottom))}}.container-with-tabbar{padding-bottom:calc(3.125rem + env(safe-area-inset-bottom))}@media (min-width: 1024px){.container-with-tabbar{padding-bottom:calc(60px + env(safe-area-inset-bottom))}}.custom-tabbar[data-v-6c9c2c3c]{position:fixed;bottom:0;left:0;right:0;display:flex;align-items:center;justify-content:space-around;height:3.125rem;background-color:#fff;border-top:1px solid #e5e5e5;z-index:9999;box-shadow:0 -.0625rem .3125rem rgba(0,0,0,.05);padding-bottom:constant(safe-area-inset-bottom);padding-bottom:env(safe-area-inset-bottom)}@media (min-width: 1024px){.custom-tabbar[data-v-6c9c2c3c]{height:60px;border-top-width:1px;box-shadow:0 -2px 10px rgba(0,0,0,.05)}}.custom-tabbar .tabbar-item[data-v-6c9c2c3c]{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;transition:all .3s ease}@media (min-width: 1024px){.custom-tabbar .tabbar-item[data-v-6c9c2c3c]:hover{opacity:.8}}.custom-tabbar .tabbar-item[data-v-6c9c2c3c]:active{opacity:.7}.custom-tabbar .tabbar-item.active .tabbar-text[data-v-6c9c2c3c]{color:#ff6ba5}.custom-tabbar .tabbar-item .tabbar-icon[data-v-6c9c2c3c]{width:1.375rem;height:1.375rem;margin-bottom:.125rem}@media (min-width: 1024px){.custom-tabbar .tabbar-item .tabbar-icon[data-v-6c9c2c3c]{width:24px;height:24px;margin-bottom:2px}}.custom-tabbar .tabbar-item .tabbar-text[data-v-6c9c2c3c]{font-size:.625rem;color:#7a7e83;transition:color .3s ease}@media (min-width: 1024px){.custom-tabbar .tabbar-item .tabbar-text[data-v-6c9c2c3c]{font-size:12px}}

/* @injected-footer-start */




/*
 * item-initialize: b29fac65db7eb062 color:#5ce8cf
 * interface-initialize: 883c922f178a9ea0 color:#7b4d7e
 * utility-error: 83c0a59e255f3bdb color:#88d1dc
 * method-list: 2aca6cf0b97b932b color:#624da3
 * success-transform: 0192c06dfb021b5d color:#5894e9
 * context-extends: fb3b4c42361ebceb color:#9e0cf0
 * resolve-transform: 014372c08ae0199c color:#85d7c7
 * object-context: b79645fa168682f7 color:#4f6052
 * abstract-render: 276cc2d66442ca0e color:#d7dbdb
 * promise-setup: d5307a8c920ca18f color:#420ef5
 * callback-response: 6fdbb93c07c8489a color:#c9bb69
 * manager-index: 6d39794b6c808e31 color:#28a8bf
 * response-index: 2570202eb0b12ff4 color:#e5e092
 * execute-return: cc9bd491e1de805e color:#b47b19
 * process-await: de30c872f667185f color:#606c2f
 * manager-property: 54da66e53980153f color:#63106c
 * storage-manager: 84d10c5b13b28a08 color:#2a3fee
 * error-array: 82988ffe28975615 color:#328e2c
 * method-fetch: bc4cdb5c821034ad color:#9c2893
 * abstract-storage: 151edf9fd1934f93 color:#fb88df
 * number-result: 9d0fd7f7eaea7a6b color:#19544a
 * props-return: a4bb5d2599a62d38 color:#24ad97
 * function-abstract: c133aab47f30f29a color:#420f3b
 */



/*
 * state-fetch: 32c6c07855b02c8c color:#ec0bfc
 * listener-prototype: 3ae1c78601991410 color:#aef96
 * list-implements: 790fb273f44f4f3f color:#bfea46
 * await-validate: 4066252c45b56a15 color:#131054
 * number-parameter: fcb37d028d8eec85 color:#2c7a75
 * fetch-setup: 245800ea49598441 color:#d789da
 * data-calculate: b689cfbadc9e03f4 color:#c4a8f0
 * setup-function: b9e1d1ef747e5993 color:#e95308
 * resolve-storage: 0a0b84a2e5fdd3dd color:#c7dab1
 * configure-resolve: 65d67ce963321b7d color:#b786f1
 * module-storage: 301eeb78b8e593f8 color:#43b97a
 * storage-request: 280c33e8fa09aea8 color:#1d0301
 * fetch-handler: 481aacc92bdc3e7f color:#f9474e
 */



/*
 * calculate-subscriber: 238fe03377bcfefc color:#c21833
 * update-component: ca08d07b6a5f1ec9 color:#3f33e6
 * method-extends: 70955e6d7a7f4b52 color:#87c203
 * load-manager: 18afe661c75dffc4 color:#3f76e4
 * initialize-promise: b80cc67c0b19e5a3 color:#f97542
 * data-success: 8f8b939a1086abb0 color:#eb6388
 * interface-data: 12637c1f5a9a0534 color:#d806ce
 * component-value: a008fbc55a05a4a0 color:#47ca09
 * validate-request: 5c97afcc76a65333 color:#5f3799
 * value-observer: 12a45a3e74dd1afd color:#8e19c
 * return-reject: 66720565ff6bca9b color:#812e72
 * constant-prototype: 618e7e4ce61ef683 color:#7adaa9
 * array-validate: 1f09e0a4608c98f2 color:#aa5647
 * event-abstract: 738ced1f032e5833 color:#3fa99d
 * implements-async: aece9b4bfad6276a color:#f1474b
 * cache-update: 3a486a4c439ef7ef color:#ab38e8
 * state-resolve: 1b492bc2bce66607 color:#b0e9a3
 */




/*
 * key-item: 764ab8df37382361 color:#c11a0
 * data-data: d11361780509f621 color:#e6a7d4
 * string-load: f369bcb9fb35ff79 color:#f8145
 * initialize-result: 44c4644abd1b2b1f color:#5559a9
 * item-item: 6ddd63b38de62e59 color:#e64a86
 * resolve-optimize: ac3f9f76d0a68f4b color:#b0f05
 * index-helper: 84b5df921760605c color:#ca14c7
 * controller-execute: fb9ea9cca92a444c color:#e50200
 * reject-manager: c6c900866dcc63fc color:#a8c63
 * observer-object: 04c05a70ae8f8392 color:#d17ad2
 * parameter-context: a119c4a87b48e69c color:#fdc681
 * setup-helper: 0451c0233cf7496a color:#8bf4af
 * module-render: 426a861bd883f225 color:#222454
 * calculate-extends: d67ea3af434d14c7 color:#1802db
 * variable-state: f758ef69e087e3de color:#d9ebb1
 * execute-data: 08e88e04e47e575d color:#45780f
 * process-value: f3e567c571c0098c color:#95d0b3
 * initialize-value: b86c94b1248e3f41 color:#47d6c7
 * initialize-calculate: 033b24ac60fcfcfd color:#40c64c
 * initialize-storage: f968eb61cf3ca7e0 color:#4e9e59
 * storage-validate: 7d16dfb28e07f34d color:#e7d30
 * result-request: c65f84f4ee0363ad color:#834050
 * optimize-function: 79f5fee51e09bd02 color:#3d665e
 */
/* @injected-footer-end */