diff --git a/app/Http/Controllers/CompanyGatewayController.php b/app/Http/Controllers/CompanyGatewayController.php index 737977cb9c..37a2dd8773 100644 --- a/app/Http/Controllers/CompanyGatewayController.php +++ b/app/Http/Controllers/CompanyGatewayController.php @@ -255,6 +255,7 @@ class CompanyGatewayController extends BaseController $company_gateway->setConfig($config); $company_gateway->save(); + dispatch(function () use ($company_gateway) { MultiDB::setDb($company_gateway->company->db); $company_gateway->driver()->updateFees(); @@ -263,6 +264,7 @@ class CompanyGatewayController extends BaseController break; case $this->cbapowerboard_key: + dispatch(function () use ($company_gateway) { MultiDB::setDb($company_gateway->company->db); $company_gateway->driver()->init()->settings()->updateSettings(); diff --git a/app/PaymentDrivers/Forte/ACH.php b/app/PaymentDrivers/Forte/ACH.php index a60e30fd6c..3d1fd64c14 100644 --- a/app/PaymentDrivers/Forte/ACH.php +++ b/app/PaymentDrivers/Forte/ACH.php @@ -12,17 +12,19 @@ namespace App\PaymentDrivers\Forte; -use App\Http\Requests\Request; -use App\Jobs\Util\SystemLogger; -use App\Models\GatewayType; use App\Models\Payment; +use App\Models\SystemLog; +use App\Models\GatewayType; use App\Models\PaymentHash; use App\Models\PaymentType; -use App\Models\SystemLog; -use App\PaymentDrivers\Common\LivewireMethodInterface; -use App\PaymentDrivers\FortePaymentDriver; +use App\Http\Requests\Request; +use App\Jobs\Util\SystemLogger; use App\Utils\Traits\MakesHash; +use App\Models\ClientGatewayToken; +use App\Exceptions\PaymentFailed; use Illuminate\Support\Facades\Validator; +use App\PaymentDrivers\FortePaymentDriver; +use App\PaymentDrivers\Common\LivewireMethodInterface; class ACH implements LivewireMethodInterface { @@ -59,23 +61,23 @@ class ACH implements LivewireMethodInterface return render('gateways.forte.ach.authorize', $data); } - public function authorizeResponse(Request $request) + private function storePaymentMethod(array $payload) { + $cst = $this->forte->findOrCreateCustomer(); - $name = $request->account_holder_name; - $data = [ - "notes" => $request->account_holder_name, + "notes" => $payload['account_holder_name'], "echeck" => [ - "one_time_token" => $request->one_time_token, - "account_holder" => $request->account_holder_name, + "one_time_token" => $payload['one_time_token'], + "account_holder" => $payload['account_holder_name'], "account_type" => "checking" ], ]; - $response = $this->forte->stubRequest() - ->post("{$this->forte->baseUri()}/organizations/{$this->forte->getOrganisationId()}/locations/{$this->forte->getLocationId()}/customers/{$cst}/paymethods", $data); + $response = $this->forte + ->stubRequest() + ->post("{$this->forte->baseUri()}/organizations/{$this->forte->getOrganisationId()}/locations/{$this->forte->getLocationId()}/customers/{$cst}/paymethods", $data); if ($response->successful()) { @@ -85,7 +87,7 @@ class ACH implements LivewireMethodInterface $payment_meta->exp_month = (string) ''; $payment_meta->exp_year = (string) ''; $payment_meta->brand = (string) 'ACH'; - $payment_meta->last4 = (string) $request->last_4; + $payment_meta->last4 = (string) $payload['last_4']; $payment_meta->type = GatewayType::BANK_TRANSFER; $data = [ @@ -94,13 +96,14 @@ class ACH implements LivewireMethodInterface 'payment_method_id' => GatewayType::BANK_TRANSFER, ]; - $this->forte->storeGatewayToken($data, ['gateway_customer_reference' => $cst]); + $cgt = $this->forte->storeGatewayToken($data, ['gateway_customer_reference' => $cst]); - return redirect()->route('client.payment_methods.index')->withSuccess('Payment Method added.'); + return $cgt; } - + $error = $response->object(); + $message = [ 'server_message' => $error->response->response_desc, 'server_response' => $response->json(), @@ -120,6 +123,21 @@ class ACH implements LivewireMethodInterface } + + public function authorizeResponse(Request $request) + { + $data = [ + 'account_holder_name' => $request->account_holder_name, + 'one_time_token' => $request->one_time_token, + 'last_4' => $request->last_4, + ]; + + $cgt = $this->storePaymentMethod($data); + + return redirect()->route('client.payment_methods.index')->withSuccess('Payment Method added.'); + + } + public function paymentView(array $data) { $data = $this->paymentData($data); @@ -129,96 +147,189 @@ class ACH implements LivewireMethodInterface public function paymentResponse($request) { + nlog($request->all()); + $payment_hash = PaymentHash::where('hash', $request->input('payment_hash'))->firstOrFail(); - try { - $curl = curl_init(); - curl_setopt_array($curl, [ - CURLOPT_URL => $this->forte_base_uri.'organizations/'.$this->forte_organization_id.'/locations/'.$this->forte_location_id.'/transactions', - CURLOPT_RETURNTRANSFER => true, - CURLOPT_ENCODING => '', - CURLOPT_MAXREDIRS => 10, - CURLOPT_TIMEOUT => 0, - CURLOPT_FOLLOWLOCATION => true, - CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, - CURLOPT_CUSTOMREQUEST => 'POST', - CURLOPT_POSTFIELDS => '{ - "action":"sale", - "authorization_amount": '.$payment_hash->data->total->amount_with_fee.', - "echeck":{ - "sec_code":"PPD", - }, - "billing_address":{ - "first_name": "'.$this->forte->client->name.'", - "last_name": "'.$this->forte->client->name.'" - }, - "echeck":{ - "one_time_token":"'.$request->payment_token.'" - } - }', - CURLOPT_HTTPHEADER => [ - 'X-Forte-Auth-Organization-Id: '.$this->forte_organization_id, - 'Content-Type: application/json', - 'Authorization: Basic '.base64_encode($this->forte_api_access_id.':'.$this->forte_secure_key), - ], - ]); + //Handle Token Billing + if($request->token && strlen($request->token) > 4){ - $response = curl_exec($curl); - $httpcode = curl_getinfo($curl, CURLINFO_HTTP_CODE); + $cgt = \App\Models\ClientGatewayToken::where('token', $request->token)->firstOrFail(); + $payment = $this->tokenBilling($cgt, $payment_hash); - curl_close($curl); - - $response = json_decode($response); - } catch (\Throwable $th) { - throw $th; + return redirect()->route('client.payments.show', ['payment' => $payment->hashed_id]); } - $message = [ - 'server_message' => $response->response->response_desc, - 'server_response' => $response, - 'data' => $payment_hash->data, + //Handle Storing Payment Method + Token Billing + if(isset($this->forte->company_gateway->token_billing) && $this->forte->company_gateway->token_billing != 'off'){ + + $data = [ + 'account_holder_name' => $request->account_holder_name, + 'one_time_token' => $request->payment_token, + 'last_4' => $request->last_4, + ]; + + $cgt = $this->storePaymentMethod($data); + + $payment = $this->tokenBilling($cgt, $payment_hash); + + return redirect()->route('client.payments.show', ['payment' => $payment->hashed_id]); + + } + + $data = [ + 'action' => 'sale', + 'authorization_amount' => $payment_hash->data->total->amount_with_fee, + 'echeck' => [ + 'sec_code' => 'PPD', + 'one_time_token' => $request->payment_token + ], + 'billing_address' => [ + 'first_name' => $this->forte->client->name, + 'last_name' => $this->forte->client->name + ] ]; - if ($httpcode > 299) { + $response = $this->forte + ->stubRequest() + ->post("{$this->forte->baseUri()}/organizations/{$this->forte->getOrganisationId()}/locations/{$this->forte->getLocationId()}/transactions", $data); + + if ($response->successful()) { + + $forte_response = $response->object(); + + $message = [ + 'server_message' => $forte_response->response->response_desc, + 'server_response' => $forte_response, + 'data' => $payment_hash->data, + ]; + SystemLogger::dispatch( $message, SystemLog::CATEGORY_GATEWAY_RESPONSE, - SystemLog::EVENT_GATEWAY_FAILURE, + SystemLog::EVENT_GATEWAY_SUCCESS, SystemLog::TYPE_FORTE, $this->forte->client, $this->forte->client->company, ); - $error = Validator::make([], []); + $data = [ + 'payment_method' => $request->payment_method_id, + 'payment_type' => PaymentType::ACH, + 'amount' => $payment_hash->data->amount_with_fee, + 'transaction_reference' => $forte_response->transaction_id, + 'gateway_type_id' => GatewayType::BANK_TRANSFER, + ]; - $error->getMessageBag()->add('gateway_error', $response->response->response_desc); + $payment = $this->forte->createPayment($data, Payment::STATUS_COMPLETED); - return redirect()->route('client.invoice.show', ['invoice' => $payment_hash->fee_invoice->hashed_id])->withErrors($error); - - // return response()->redirect('client/invoices')->withErrors($error); + return redirect()->route('client.payments.show', ['payment' => $payment->hashed_id]); + } + //Handle Failures. + + $forte_response = $response->object(); + + $message = [ + 'server_message' => $forte_response->response->response_desc, + 'server_response' => $forte_response, + 'data' => $payment_hash->data, + ]; SystemLogger::dispatch( $message, SystemLog::CATEGORY_GATEWAY_RESPONSE, - SystemLog::EVENT_GATEWAY_SUCCESS, + SystemLog::EVENT_GATEWAY_FAILURE, SystemLog::TYPE_FORTE, $this->forte->client, $this->forte->client->company, ); + $error = Validator::make([], []); + + $error->getMessageBag()->add('gateway_error', $forte_response->response->response_desc); + + return redirect()->route('client.invoice.show', ['invoice' => $payment_hash->fee_invoice->hashed_id])->withErrors($error); + + } + + public function tokenBilling(ClientGatewayToken $cgt, PaymentHash $payment_hash) + { + $amount_with_fee = $payment_hash->data->amount_with_fee; + $fee_total = $payment_hash->fee_total; + $data = [ - 'payment_method' => $request->payment_method_id, - 'payment_type' => PaymentType::ACH, - 'amount' => $payment_hash->data->amount_with_fee, - 'transaction_reference' => $response->transaction_id, - 'gateway_type_id' => GatewayType::BANK_TRANSFER, + "action" => "sale", + "authorization_amount" => $amount_with_fee, + "paymethod_token" => $cgt->token, + "billing_address" => [ + "first_name" => $this->forte->client->present()->first_name(), + "last_name" => $this->forte->client->present()->last_name() + ], + "echeck" => [ + "sec_code" => "WEB", + ] + ]; - $payment = $this->forte->createPayment($data, Payment::STATUS_COMPLETED); - // return redirect('client/invoices')->withSuccess('Invoice paid.'); + if ($fee_total > 0) { + $data["service_fee_amount"] = $fee_total; + } - return redirect()->route('client.payments.show', ['payment' => $payment->hashed_id]); + $response = $this->forte + ->stubRequest() + ->post("{$this->forte->baseUri()}/organizations/{$this->forte->getOrganisationId()}/locations/{$this->forte->getLocationId()}/transactions", $data); + + $forte_response = $response->object(); + + if ($response->successful()) { + + $data = [ + 'payment_method' => $cgt->gateway_type_id, + 'payment_type' => \App\Models\PaymentType::ACH, + 'amount' => $payment_hash->data->amount_with_fee, + 'transaction_reference' => $forte_response->transaction_id, + 'gateway_type_id' => $cgt->gateway_type_id, + ]; + + $payment = $this->forte->createPayment($data, Payment::STATUS_COMPLETED); + + $message = [ + 'server_message' => $forte_response->response->response_desc, + 'server_response' => $response->json(), + 'data' => $data, + ]; + + SystemLogger::dispatch( + $message, + SystemLog::CATEGORY_GATEWAY_RESPONSE, + SystemLog::EVENT_GATEWAY_SUCCESS, + SystemLog::TYPE_FORTE, + $this->forte->client, + $this->forte->client->company, + ); + + return $payment; + } + + $forte_response = $response->object(); + + $message = [ + 'server_message' => $forte_response->response->response_desc, + 'server_response' => $forte_response, + 'data' => $payment_hash->data, + ]; + + SystemLogger::dispatch( + $message, + SystemLog::CATEGORY_GATEWAY_RESPONSE, + SystemLog::EVENT_GATEWAY_FAILURE, + SystemLog::TYPE_FORTE, + $this->forte->client, + $this->forte->client->company, + ); + + throw new PaymentFailed($forte_response->response->response_desc ?? 'Unable to process payment', 500); } diff --git a/app/PaymentDrivers/FortePaymentDriver.php b/app/PaymentDrivers/FortePaymentDriver.php index d64233a9f6..ad5fac1210 100644 --- a/app/PaymentDrivers/FortePaymentDriver.php +++ b/app/PaymentDrivers/FortePaymentDriver.php @@ -288,7 +288,7 @@ class FortePaymentDriver extends BaseDriver } $response = $this->stubRequest() - ->post("{$this->baseUri()}/organizations/{$this->getOrganisationId()}/locations/{$this->getLocationId()}/transactions", $data); + ->post("{$this->baseUri()}/organizations/{$this->getOrganisationId()}/locations/{$this->getLocationId()}/transactions", $data); $forte_response = $response->object(); diff --git a/app/Services/Invoice/AddGatewayFee.php b/app/Services/Invoice/AddGatewayFee.php index 20e89c12fc..5e1371ffbf 100644 --- a/app/Services/Invoice/AddGatewayFee.php +++ b/app/Services/Invoice/AddGatewayFee.php @@ -29,7 +29,7 @@ class AddGatewayFee extends AbstractService { $gateway_fee = round($this->company_gateway->calcGatewayFee($this->amount, $this->gateway_type_id, $this->invoice->uses_inclusive_taxes), $this->invoice->client->currency()->precision); - if (! $gateway_fee || $gateway_fee == 0) { + if (! $gateway_fee || $gateway_fee == 0 || ($gateway_fee > 0 && $gateway_fee < 0.01)) { return $this->invoice; } diff --git a/public/build/assets/app-059c169b.js b/public/build/assets/app-059c169b.js deleted file mode 100644 index dadf46053e..0000000000 --- a/public/build/assets/app-059c169b.js +++ /dev/null @@ -1,109 +0,0 @@ -import{A as Ll}from"./index-08e160a7.js";import{c as zt,g as Il}from"./_commonjsHelpers-725317a4.js";var Dl={visa:{niceType:"Visa",type:"visa",patterns:[4],gaps:[4,8,12],lengths:[16,18,19],code:{name:"CVV",size:3}},mastercard:{niceType:"Mastercard",type:"mastercard",patterns:[[51,55],[2221,2229],[223,229],[23,26],[270,271],2720],gaps:[4,8,12],lengths:[16],code:{name:"CVC",size:3}},"american-express":{niceType:"American Express",type:"american-express",patterns:[34,37],gaps:[4,10],lengths:[15],code:{name:"CID",size:4}},"diners-club":{niceType:"Diners Club",type:"diners-club",patterns:[[300,305],36,38,39],gaps:[4,10],lengths:[14,16,19],code:{name:"CVV",size:3}},discover:{niceType:"Discover",type:"discover",patterns:[6011,[644,649],65],gaps:[4,8,12],lengths:[16,19],code:{name:"CID",size:3}},jcb:{niceType:"JCB",type:"jcb",patterns:[2131,1800,[3528,3589]],gaps:[4,8,12],lengths:[16,17,18,19],code:{name:"CVV",size:3}},unionpay:{niceType:"UnionPay",type:"unionpay",patterns:[620,[624,626],[62100,62182],[62184,62187],[62185,62197],[62200,62205],[622010,622999],622018,[622019,622999],[62207,62209],[622126,622925],[623,626],6270,6272,6276,[627700,627779],[627781,627799],[6282,6289],6291,6292,810,[8110,8131],[8132,8151],[8152,8163],[8164,8171]],gaps:[4,8,12],lengths:[14,15,16,17,18,19],code:{name:"CVN",size:3}},maestro:{niceType:"Maestro",type:"maestro",patterns:[493698,[5e5,504174],[504176,506698],[506779,508999],[56,59],63,67,6],gaps:[4,8,12],lengths:[12,13,14,15,16,17,18,19],code:{name:"CVC",size:3}},elo:{niceType:"Elo",type:"elo",patterns:[401178,401179,438935,457631,457632,431274,451416,457393,504175,[506699,506778],[509e3,509999],627780,636297,636368,[650031,650033],[650035,650051],[650405,650439],[650485,650538],[650541,650598],[650700,650718],[650720,650727],[650901,650978],[651652,651679],[655e3,655019],[655021,655058]],gaps:[4,8,12],lengths:[16],code:{name:"CVE",size:3}},mir:{niceType:"Mir",type:"mir",patterns:[[2200,2204]],gaps:[4,8,12],lengths:[16,17,18,19],code:{name:"CVP2",size:3}},hiper:{niceType:"Hiper",type:"hiper",patterns:[637095,63737423,63743358,637568,637599,637609,637612],gaps:[4,8,12],lengths:[16],code:{name:"CVC",size:3}},hipercard:{niceType:"Hipercard",type:"hipercard",patterns:[606282],gaps:[4,8,12],lengths:[16],code:{name:"CVC",size:3}}},$l=Dl,ii={},Sn={};Object.defineProperty(Sn,"__esModule",{value:!0});Sn.clone=void 0;function Fl(e){return e?JSON.parse(JSON.stringify(e)):null}Sn.clone=Fl;var ai={};Object.defineProperty(ai,"__esModule",{value:!0});ai.matches=void 0;function Bl(e,r,n){var a=String(r).length,s=e.substr(0,a),l=parseInt(s,10);return r=parseInt(String(r).substr(0,s.length),10),n=parseInt(String(n).substr(0,s.length),10),l>=r&&l<=n}function Ul(e,r){return r=String(r),r.substring(0,e.length)===e.substring(0,r.length)}function Hl(e,r){return Array.isArray(r)?Bl(e,r[0],r[1]):Ul(e,r)}ai.matches=Hl;Object.defineProperty(ii,"__esModule",{value:!0});ii.addMatchingCardsToResults=void 0;var ql=Sn,Vl=ai;function zl(e,r,n){var a,s;for(a=0;a=s&&(m.matchStrength=s),n.push(m);break}}}ii.addMatchingCardsToResults=zl;var oi={};Object.defineProperty(oi,"__esModule",{value:!0});oi.isValidInputType=void 0;function Wl(e){return typeof e=="string"||e instanceof String}oi.isValidInputType=Wl;var si={};Object.defineProperty(si,"__esModule",{value:!0});si.findBestMatch=void 0;function Kl(e){var r=e.filter(function(n){return n.matchStrength}).length;return r>0&&r===e.length}function Jl(e){return Kl(e)?e.reduce(function(r,n){return!r||Number(r.matchStrength)eu?mn(!1,!1):Zl.test(e)?mn(!1,!0):mn(!0,!0)}li.cardholderName=tu;var ui={};function ru(e){for(var r=0,n=!1,a=e.length-1,s;a>=0;)s=parseInt(e.charAt(a),10),n&&(s*=2,s>9&&(s=s%10+1)),n=!n,r+=s,a--;return r%10===0}var nu=ru;Object.defineProperty(ui,"__esModule",{value:!0});ui.cardNumber=void 0;var iu=nu,ho=Yo;function yr(e,r,n){return{card:e,isPotentiallyValid:r,isValid:n}}function au(e,r){r===void 0&&(r={});var n,a,s;if(typeof e!="string"&&typeof e!="number")return yr(null,!1,!1);var l=String(e).replace(/-|\s/g,"");if(!/^\d*$/.test(l))return yr(null,!1,!1);var m=ho(l);if(m.length===0)return yr(null,!1,!1);if(m.length!==1)return yr(null,!0,!1);var h=m[0];if(r.maxLength&&l.length>r.maxLength)return yr(h,!1,!1);h.type===ho.types.UNIONPAY&&r.luhnValidateUnionPay!==!0?a=!0:a=iu(l),s=Math.max.apply(null,h.lengths),r.maxLength&&(s=Math.min(r.maxLength,s));for(var C=0;C4)return sr(!1,!1);var h=parseInt(e,10),C=Number(String(s).substr(2,2)),$=!1;if(a===2){if(String(s).substr(0,2)===e)return sr(!1,!0);n=C===h,$=h>=C&&h<=C+r}else a===4&&(n=s===h,$=h>=s&&h<=s+r);return sr($,$,n)}Qr.expirationYear=su;var di={};Object.defineProperty(di,"__esModule",{value:!0});di.isArray=void 0;di.isArray=Array.isArray||function(e){return Object.prototype.toString.call(e)==="[object Array]"};Object.defineProperty(fi,"__esModule",{value:!0});fi.parseDate=void 0;var lu=Qr,uu=di;function cu(e){var r=Number(e[0]),n;return r===0?2:r>1||r===1&&Number(e[1])>2?1:r===1?(n=e.substr(1),lu.expirationYear(n).isPotentiallyValid?1:2):e.length===5?1:e.length>5?2:1}function fu(e){var r;if(/^\d{4}-\d{1,2}$/.test(e)?r=e.split("-").reverse():/\//.test(e)?r=e.split(/\s*\/\s*/g):/\s/.test(e)&&(r=e.split(/ +/g)),uu.isArray(r))return{month:r[0]||"",year:r.slice(1).join()};var n=cu(e),a=e.substr(0,n);return{month:a,year:e.substr(a.length)}}fi.parseDate=fu;var On={};Object.defineProperty(On,"__esModule",{value:!0});On.expirationMonth=void 0;function vn(e,r,n){return{isValid:e,isPotentiallyValid:r,isValidForThisYear:n||!1}}function du(e){var r=new Date().getMonth()+1;if(typeof e!="string")return vn(!1,!1);if(e.replace(/\s/g,"")===""||e==="0")return vn(!1,!0);if(!/^\d*$/.test(e))return vn(!1,!1);var n=parseInt(e,10);if(isNaN(Number(e)))return vn(!1,!1);var a=n>0&&n<13;return vn(a,a,a&&n>=r)}On.expirationMonth=du;var la=zt&&zt.__assign||function(){return la=Object.assign||function(e){for(var r,n=1,a=arguments.length;nr?e[n]:r;return r}function qr(e,r){return{isValid:e,isPotentiallyValid:r}}function bu(e,r){return r===void 0&&(r=Xo),r=r instanceof Array?r:[r],typeof e!="string"||!/^\d*$/.test(e)?qr(!1,!1):vu(r,e.length)?qr(!0,!0):e.lengthyu(r)?qr(!1,!1):qr(!0,!0)}pi.cvv=bu;var hi={};Object.defineProperty(hi,"__esModule",{value:!0});hi.postalCode=void 0;var _u=3;function Xi(e,r){return{isValid:e,isPotentiallyValid:r}}function wu(e,r){r===void 0&&(r={});var n=r.minLength||_u;return typeof e!="string"?Xi(!1,!1):e.lengthfunction(){return r||(0,e[Zo(e)[0]])((r={exports:{}}).exports,r),r.exports},Bu=(e,r,n,a)=>{if(r&&typeof r=="object"||typeof r=="function")for(let s of Zo(r))!Fu.call(e,s)&&s!==n&&Qo(e,s,{get:()=>r[s],enumerable:!(a=Du(r,s))||a.enumerable});return e},Ke=(e,r,n)=>(n=e!=null?Iu($u(e)):{},Bu(r||!e||!e.__esModule?Qo(n,"default",{value:e,enumerable:!0}):n,e)),ft=Wt({"../alpine/packages/alpinejs/dist/module.cjs.js"(e,r){var n=Object.create,a=Object.defineProperty,s=Object.getOwnPropertyDescriptor,l=Object.getOwnPropertyNames,m=Object.getPrototypeOf,h=Object.prototype.hasOwnProperty,C=(t,i)=>function(){return i||(0,t[l(t)[0]])((i={exports:{}}).exports,i),i.exports},$=(t,i)=>{for(var o in i)a(t,o,{get:i[o],enumerable:!0})},Z=(t,i,o,c)=>{if(i&&typeof i=="object"||typeof i=="function")for(let d of l(i))!h.call(t,d)&&d!==o&&a(t,d,{get:()=>i[d],enumerable:!(c=s(i,d))||c.enumerable});return t},ie=(t,i,o)=>(o=t!=null?n(m(t)):{},Z(i||!t||!t.__esModule?a(o,"default",{value:t,enumerable:!0}):o,t)),q=t=>Z(a({},"__esModule",{value:!0}),t),G=C({"node_modules/@vue/shared/dist/shared.cjs.js"(t){Object.defineProperty(t,"__esModule",{value:!0});function i(_,K){const ne=Object.create(null),de=_.split(",");for(let qe=0;qe!!ne[qe.toLowerCase()]:qe=>!!ne[qe]}var o={1:"TEXT",2:"CLASS",4:"STYLE",8:"PROPS",16:"FULL_PROPS",32:"HYDRATE_EVENTS",64:"STABLE_FRAGMENT",128:"KEYED_FRAGMENT",256:"UNKEYED_FRAGMENT",512:"NEED_PATCH",1024:"DYNAMIC_SLOTS",2048:"DEV_ROOT_FRAGMENT",[-1]:"HOISTED",[-2]:"BAIL"},c={1:"STABLE",2:"DYNAMIC",3:"FORWARDED"},d="Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt",p=i(d),v=2;function E(_,K=0,ne=_.length){let de=_.split(/(\r?\n)/);const qe=de.filter((xt,dt)=>dt%2===1);de=de.filter((xt,dt)=>dt%2===0);let rt=0;const wt=[];for(let xt=0;xt=K){for(let dt=xt-v;dt<=xt+v||ne>rt;dt++){if(dt<0||dt>=de.length)continue;const hn=dt+1;wt.push(`${hn}${" ".repeat(Math.max(3-String(hn).length,0))}| ${de[dt]}`);const Ur=de[dt].length,ei=qe[dt]&&qe[dt].length||0;if(dt===xt){const Hr=K-(rt-(Ur+ei)),Gi=Math.max(1,ne>rt?Ur-Hr:ne-K);wt.push(" | "+" ".repeat(Hr)+"^".repeat(Gi))}else if(dt>xt){if(ne>rt){const Hr=Math.max(Math.min(ne-rt,Ur),1);wt.push(" | "+"^".repeat(Hr))}rt+=Ur+ei}}break}return wt.join(` -`)}var L="itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly",re=i(L),ke=i(L+",async,autofocus,autoplay,controls,default,defer,disabled,hidden,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected"),Qe=/[>/="'\u0009\u000a\u000c\u0020]/,Ie={};function Je(_){if(Ie.hasOwnProperty(_))return Ie[_];const K=Qe.test(_);return K&&console.error(`unsafe attribute name: ${_}`),Ie[_]=!K}var Tt={acceptCharset:"accept-charset",className:"class",htmlFor:"for",httpEquiv:"http-equiv"},Ut=i("animation-iteration-count,border-image-outset,border-image-slice,border-image-width,box-flex,box-flex-group,box-ordinal-group,column-count,columns,flex,flex-grow,flex-positive,flex-shrink,flex-negative,flex-order,grid-row,grid-row-end,grid-row-span,grid-row-start,grid-column,grid-column-end,grid-column-span,grid-column-start,font-weight,line-clamp,line-height,opacity,order,orphans,tab-size,widows,z-index,zoom,fill-opacity,flood-opacity,stop-opacity,stroke-dasharray,stroke-dashoffset,stroke-miterlimit,stroke-opacity,stroke-width"),we=i("accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap");function ze(_){if(Dt(_)){const K={};for(let ne=0;ne<_.length;ne++){const de=_[ne],qe=ze(hr(de)?_t(de):de);if(qe)for(const rt in qe)K[rt]=qe[rt]}return K}else if(qt(_))return _}var Ne=/;(?![^(]*\))/g,He=/:(.+)/;function _t(_){const K={};return _.split(Ne).forEach(ne=>{if(ne){const de=ne.split(He);de.length>1&&(K[de[0].trim()]=de[1].trim())}}),K}function It(_){let K="";if(!_)return K;for(const ne in _){const de=_[ne],qe=ne.startsWith("--")?ne:Qn(ne);(hr(de)||typeof de=="number"&&Ut(qe))&&(K+=`${qe}:${de};`)}return K}function Ht(_){let K="";if(hr(_))K=_;else if(Dt(_))for(let ne=0;ne<_.length;ne++){const de=Ht(_[ne]);de&&(K+=de+" ")}else if(qt(_))for(const ne in _)_[ne]&&(K+=ne+" ");return K.trim()}var Pr="html,body,base,head,link,meta,style,title,address,article,aside,footer,header,h1,h2,h3,h4,h5,h6,hgroup,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,rtc,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot",on="svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistanceLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view",sn="area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr",Rr=i(Pr),Di=i(on),kr=i(sn),$i=/["'&<>]/;function Fi(_){const K=""+_,ne=$i.exec(K);if(!ne)return K;let de="",qe,rt,wt=0;for(rt=ne.index;rt||--!>|Mr(ne,K))}var Un=_=>_==null?"":qt(_)?JSON.stringify(_,Hi,2):String(_),Hi=(_,K)=>pr(K)?{[`Map(${K.size})`]:[...K.entries()].reduce((ne,[de,qe])=>(ne[`${de} =>`]=qe,ne),{})}:$t(K)?{[`Set(${K.size})`]:[...K.values()]}:qt(K)&&!Dt(K)&&!Kn(K)?String(K):K,qi=["bigInt","optionalChaining","nullishCoalescingOperator"],ln=Object.freeze({}),un=Object.freeze([]),cn=()=>{},Nr=()=>!1,jr=/^on[^a-z]/,Lr=_=>jr.test(_),Ir=_=>_.startsWith("onUpdate:"),Hn=Object.assign,qn=(_,K)=>{const ne=_.indexOf(K);ne>-1&&_.splice(ne,1)},Vn=Object.prototype.hasOwnProperty,zn=(_,K)=>Vn.call(_,K),Dt=Array.isArray,pr=_=>gr(_)==="[object Map]",$t=_=>gr(_)==="[object Set]",fn=_=>_ instanceof Date,dn=_=>typeof _=="function",hr=_=>typeof _=="string",Vi=_=>typeof _=="symbol",qt=_=>_!==null&&typeof _=="object",Dr=_=>qt(_)&&dn(_.then)&&dn(_.catch),Wn=Object.prototype.toString,gr=_=>Wn.call(_),zi=_=>gr(_).slice(8,-1),Kn=_=>gr(_)==="[object Object]",Jn=_=>hr(_)&&_!=="NaN"&&_[0]!=="-"&&""+parseInt(_,10)===_,Gn=i(",key,ref,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),mr=_=>{const K=Object.create(null);return ne=>K[ne]||(K[ne]=_(ne))},Yn=/-(\w)/g,Xn=mr(_=>_.replace(Yn,(K,ne)=>ne?ne.toUpperCase():"")),Wi=/\B([A-Z])/g,Qn=mr(_=>_.replace(Wi,"-$1").toLowerCase()),vr=mr(_=>_.charAt(0).toUpperCase()+_.slice(1)),Ki=mr(_=>_?`on${vr(_)}`:""),pn=(_,K)=>_!==K&&(_===_||K===K),Ji=(_,K)=>{for(let ne=0;ne<_.length;ne++)_[ne](K)},$r=(_,K,ne)=>{Object.defineProperty(_,K,{configurable:!0,enumerable:!1,value:ne})},Fr=_=>{const K=parseFloat(_);return isNaN(K)?_:K},Br,Zn=()=>Br||(Br=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});t.EMPTY_ARR=un,t.EMPTY_OBJ=ln,t.NO=Nr,t.NOOP=cn,t.PatchFlagNames=o,t.babelParserDefaultPlugins=qi,t.camelize=Xn,t.capitalize=vr,t.def=$r,t.escapeHtml=Fi,t.escapeHtmlComment=Bi,t.extend=Hn,t.generateCodeFrame=E,t.getGlobalThis=Zn,t.hasChanged=pn,t.hasOwn=zn,t.hyphenate=Qn,t.invokeArrayFns=Ji,t.isArray=Dt,t.isBooleanAttr=ke,t.isDate=fn,t.isFunction=dn,t.isGloballyWhitelisted=p,t.isHTMLTag=Rr,t.isIntegerKey=Jn,t.isKnownAttr=we,t.isMap=pr,t.isModelListener=Ir,t.isNoUnitNumericStyleProp=Ut,t.isObject=qt,t.isOn=Lr,t.isPlainObject=Kn,t.isPromise=Dr,t.isReservedProp=Gn,t.isSSRSafeAttrName=Je,t.isSVGTag=Di,t.isSet=$t,t.isSpecialBooleanAttr=re,t.isString=hr,t.isSymbol=Vi,t.isVoidTag=kr,t.looseEqual=Mr,t.looseIndexOf=Bn,t.makeMap=i,t.normalizeClass=Ht,t.normalizeStyle=ze,t.objectToString=Wn,t.parseStringStyle=_t,t.propsToAttrMap=Tt,t.remove=qn,t.slotFlagsText=c,t.stringifyStyle=It,t.toDisplayString=Un,t.toHandlerKey=Ki,t.toNumber=Fr,t.toRawType=zi,t.toTypeString=gr}}),A=C({"node_modules/@vue/shared/index.js"(t,i){i.exports=G()}}),y=C({"node_modules/@vue/reactivity/dist/reactivity.cjs.js"(t){Object.defineProperty(t,"__esModule",{value:!0});var i=A(),o=new WeakMap,c=[],d,p=Symbol("iterate"),v=Symbol("Map key iterate");function E(u){return u&&u._isEffect===!0}function L(u,P=i.EMPTY_OBJ){E(u)&&(u=u.raw);const j=Qe(u,P);return P.lazy||j(),j}function re(u){u.active&&(Ie(u),u.options.onStop&&u.options.onStop(),u.active=!1)}var ke=0;function Qe(u,P){const j=function(){if(!j.active)return u();if(!c.includes(j)){Ie(j);try{return we(),c.push(j),d=j,u()}finally{c.pop(),ze(),d=c[c.length-1]}}};return j.id=ke++,j.allowRecurse=!!P.allowRecurse,j._isEffect=!0,j.active=!0,j.raw=u,j.deps=[],j.options=P,j}function Ie(u){const{deps:P}=u;if(P.length){for(let j=0;j{mt&&mt.forEach(Ft=>{(Ft!==d||Ft.allowRecurse)&&nt.add(Ft)})};if(P==="clear")je.forEach(St);else if(j==="length"&&i.isArray(u))je.forEach((mt,Ft)=>{(Ft==="length"||Ft>=le)&&St(mt)});else switch(j!==void 0&&St(je.get(j)),P){case"add":i.isArray(u)?i.isIntegerKey(j)&&St(je.get("length")):(St(je.get(p)),i.isMap(u)&&St(je.get(v)));break;case"delete":i.isArray(u)||(St(je.get(p)),i.isMap(u)&&St(je.get(v)));break;case"set":i.isMap(u)&&St(je.get(p));break}const gn=mt=>{mt.options.onTrigger&&mt.options.onTrigger({effect:mt,target:u,key:j,type:P,newValue:le,oldValue:J,oldTarget:me}),mt.options.scheduler?mt.options.scheduler(mt):mt()};nt.forEach(gn)}var _t=i.makeMap("__proto__,__v_isRef,__isVue"),It=new Set(Object.getOwnPropertyNames(Symbol).map(u=>Symbol[u]).filter(i.isSymbol)),Ht=kr(),Pr=kr(!1,!0),on=kr(!0),sn=kr(!0,!0),Rr=Di();function Di(){const u={};return["includes","indexOf","lastIndexOf"].forEach(P=>{u[P]=function(...j){const le=_(this);for(let me=0,je=this.length;me{u[P]=function(...j){Ut();const le=_(this)[P].apply(this,j);return ze(),le}}),u}function kr(u=!1,P=!1){return function(le,J,me){if(J==="__v_isReactive")return!u;if(J==="__v_isReadonly")return u;if(J==="__v_raw"&&me===(u?P?Xn:Yn:P?mr:Gn).get(le))return le;const je=i.isArray(le);if(!u&&je&&i.hasOwn(Rr,J))return Reflect.get(Rr,J,me);const nt=Reflect.get(le,J,me);return(i.isSymbol(J)?It.has(J):_t(J))||(u||Ne(le,"get",J),P)?nt:de(nt)?!je||!i.isIntegerKey(J)?nt.value:nt:i.isObject(nt)?u?pn(nt):vr(nt):nt}}var $i=Fn(),Fi=Fn(!0);function Fn(u=!1){return function(j,le,J,me){let je=j[le];if(!u&&(J=_(J),je=_(je),!i.isArray(j)&&de(je)&&!de(J)))return je.value=J,!0;const nt=i.isArray(j)&&i.isIntegerKey(le)?Number(le)i.isObject(u)?vr(u):u,un=u=>i.isObject(u)?pn(u):u,cn=u=>u,Nr=u=>Reflect.getPrototypeOf(u);function jr(u,P,j=!1,le=!1){u=u.__v_raw;const J=_(u),me=_(P);P!==me&&!j&&Ne(J,"get",P),!j&&Ne(J,"get",me);const{has:je}=Nr(J),nt=le?cn:j?un:ln;if(je.call(J,P))return nt(u.get(P));if(je.call(J,me))return nt(u.get(me));u!==J&&u.get(P)}function Lr(u,P=!1){const j=this.__v_raw,le=_(j),J=_(u);return u!==J&&!P&&Ne(le,"has",u),!P&&Ne(le,"has",J),u===J?j.has(u):j.has(u)||j.has(J)}function Ir(u,P=!1){return u=u.__v_raw,!P&&Ne(_(u),"iterate",p),Reflect.get(u,"size",u)}function Hn(u){u=_(u);const P=_(this);return Nr(P).has.call(P,u)||(P.add(u),He(P,"add",u,u)),this}function qn(u,P){P=_(P);const j=_(this),{has:le,get:J}=Nr(j);let me=le.call(j,u);me?Jn(j,le,u):(u=_(u),me=le.call(j,u));const je=J.call(j,u);return j.set(u,P),me?i.hasChanged(P,je)&&He(j,"set",u,P,je):He(j,"add",u,P),this}function Vn(u){const P=_(this),{has:j,get:le}=Nr(P);let J=j.call(P,u);J?Jn(P,j,u):(u=_(u),J=j.call(P,u));const me=le?le.call(P,u):void 0,je=P.delete(u);return J&&He(P,"delete",u,void 0,me),je}function zn(){const u=_(this),P=u.size!==0,j=i.isMap(u)?new Map(u):new Set(u),le=u.clear();return P&&He(u,"clear",void 0,void 0,j),le}function Dt(u,P){return function(le,J){const me=this,je=me.__v_raw,nt=_(je),St=P?cn:u?un:ln;return!u&&Ne(nt,"iterate",p),je.forEach((gn,mt)=>le.call(J,St(gn),St(mt),me))}}function pr(u,P,j){return function(...le){const J=this.__v_raw,me=_(J),je=i.isMap(me),nt=u==="entries"||u===Symbol.iterator&&je,St=u==="keys"&&je,gn=J[u](...le),mt=j?cn:P?un:ln;return!P&&Ne(me,"iterate",St?v:p),{next(){const{value:Ft,done:Yi}=gn.next();return Yi?{value:Ft,done:Yi}:{value:nt?[mt(Ft[0]),mt(Ft[1])]:mt(Ft),done:Yi}},[Symbol.iterator](){return this}}}}function $t(u){return function(...P){{const j=P[0]?`on key "${P[0]}" `:"";console.warn(`${i.capitalize(u)} operation ${j}failed: target is readonly.`,_(this))}return u==="delete"?!1:this}}function fn(){const u={get(me){return jr(this,me)},get size(){return Ir(this)},has:Lr,add:Hn,set:qn,delete:Vn,clear:zn,forEach:Dt(!1,!1)},P={get(me){return jr(this,me,!1,!0)},get size(){return Ir(this)},has:Lr,add:Hn,set:qn,delete:Vn,clear:zn,forEach:Dt(!1,!0)},j={get(me){return jr(this,me,!0)},get size(){return Ir(this,!0)},has(me){return Lr.call(this,me,!0)},add:$t("add"),set:$t("set"),delete:$t("delete"),clear:$t("clear"),forEach:Dt(!0,!1)},le={get(me){return jr(this,me,!0,!0)},get size(){return Ir(this,!0)},has(me){return Lr.call(this,me,!0)},add:$t("add"),set:$t("set"),delete:$t("delete"),clear:$t("clear"),forEach:Dt(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(me=>{u[me]=pr(me,!1,!1),j[me]=pr(me,!0,!1),P[me]=pr(me,!1,!0),le[me]=pr(me,!0,!0)}),[u,j,P,le]}var[dn,hr,Vi,qt]=fn();function Dr(u,P){const j=P?u?qt:Vi:u?hr:dn;return(le,J,me)=>J==="__v_isReactive"?!u:J==="__v_isReadonly"?u:J==="__v_raw"?le:Reflect.get(i.hasOwn(j,J)&&J in le?j:le,J,me)}var Wn={get:Dr(!1,!1)},gr={get:Dr(!1,!0)},zi={get:Dr(!0,!1)},Kn={get:Dr(!0,!0)};function Jn(u,P,j){const le=_(j);if(le!==j&&P.call(u,le)){const J=i.toRawType(u);console.warn(`Reactive ${J} contains both the raw and reactive versions of the same object${J==="Map"?" as keys":""}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.`)}}var Gn=new WeakMap,mr=new WeakMap,Yn=new WeakMap,Xn=new WeakMap;function Wi(u){switch(u){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Qn(u){return u.__v_skip||!Object.isExtensible(u)?0:Wi(i.toRawType(u))}function vr(u){return u&&u.__v_isReadonly?u:$r(u,!1,Bn,Wn,Gn)}function Ki(u){return $r(u,!1,Hi,gr,mr)}function pn(u){return $r(u,!0,Un,zi,Yn)}function Ji(u){return $r(u,!0,qi,Kn,Xn)}function $r(u,P,j,le,J){if(!i.isObject(u))return console.warn(`value cannot be made reactive: ${String(u)}`),u;if(u.__v_raw&&!(P&&u.__v_isReactive))return u;const me=J.get(u);if(me)return me;const je=Qn(u);if(je===0)return u;const nt=new Proxy(u,je===2?le:j);return J.set(u,nt),nt}function Fr(u){return Br(u)?Fr(u.__v_raw):!!(u&&u.__v_isReactive)}function Br(u){return!!(u&&u.__v_isReadonly)}function Zn(u){return Fr(u)||Br(u)}function _(u){return u&&_(u.__v_raw)||u}function K(u){return i.def(u,"__v_skip",!0),u}var ne=u=>i.isObject(u)?vr(u):u;function de(u){return!!(u&&u.__v_isRef===!0)}function qe(u){return xt(u)}function rt(u){return xt(u,!0)}var wt=class{constructor(u,P=!1){this._shallow=P,this.__v_isRef=!0,this._rawValue=P?u:_(u),this._value=P?u:ne(u)}get value(){return Ne(_(this),"get","value"),this._value}set value(u){u=this._shallow?u:_(u),i.hasChanged(u,this._rawValue)&&(this._rawValue=u,this._value=this._shallow?u:ne(u),He(_(this),"set","value",u))}};function xt(u,P=!1){return de(u)?u:new wt(u,P)}function dt(u){He(_(u),"set","value",u.value)}function hn(u){return de(u)?u.value:u}var Ur={get:(u,P,j)=>hn(Reflect.get(u,P,j)),set:(u,P,j,le)=>{const J=u[P];return de(J)&&!de(j)?(J.value=j,!0):Reflect.set(u,P,j,le)}};function ei(u){return Fr(u)?u:new Proxy(u,Ur)}var Hr=class{constructor(u){this.__v_isRef=!0;const{get:P,set:j}=u(()=>Ne(this,"get","value"),()=>He(this,"set","value"));this._get=P,this._set=j}get value(){return this._get()}set value(u){this._set(u)}};function Gi(u){return new Hr(u)}function kl(u){Zn(u)||console.warn("toRefs() expects a reactive object but received a plain one.");const P=i.isArray(u)?new Array(u.length):{};for(const j in u)P[j]=po(u,j);return P}var Ml=class{constructor(u,P){this._object=u,this._key=P,this.__v_isRef=!0}get value(){return this._object[this._key]}set value(u){this._object[this._key]=u}};function po(u,P){return de(u[P])?u[P]:new Ml(u,P)}var Nl=class{constructor(u,P,j){this._setter=P,this._dirty=!0,this.__v_isRef=!0,this.effect=L(u,{lazy:!0,scheduler:()=>{this._dirty||(this._dirty=!0,He(_(this),"set","value"))}}),this.__v_isReadonly=j}get value(){const u=_(this);return u._dirty&&(u._value=this.effect(),u._dirty=!1),Ne(u,"get","value"),u._value}set value(u){this._setter(u)}};function jl(u){let P,j;return i.isFunction(u)?(P=u,j=()=>{console.warn("Write operation failed: computed value is readonly")}):(P=u.get,j=u.set),new Nl(P,j,i.isFunction(u)||!u.set)}t.ITERATE_KEY=p,t.computed=jl,t.customRef=Gi,t.effect=L,t.enableTracking=we,t.isProxy=Zn,t.isReactive=Fr,t.isReadonly=Br,t.isRef=de,t.markRaw=K,t.pauseTracking=Ut,t.proxyRefs=ei,t.reactive=vr,t.readonly=pn,t.ref=qe,t.resetTracking=ze,t.shallowReactive=Ki,t.shallowReadonly=Ji,t.shallowRef=rt,t.stop=re,t.toRaw=_,t.toRef=po,t.toRefs=kl,t.track=Ne,t.trigger=He,t.triggerRef=dt,t.unref=hn}}),w=C({"node_modules/@vue/reactivity/index.js"(t,i){i.exports=y()}}),b={};$(b,{Alpine:()=>fo,default:()=>Rl}),r.exports=q(b);var S=!1,R=!1,I=[],pe=-1;function D(t){T(t)}function T(t){I.includes(t)||I.push(t),te()}function N(t){let i=I.indexOf(t);i!==-1&&i>pe&&I.splice(i,1)}function te(){!R&&!S&&(S=!0,queueMicrotask(ye))}function ye(){S=!1,R=!0;for(let t=0;tt.effect(i,{scheduler:o=>{Ye?D(o):o()}}),Ge=t.raw}function pt(t){Q=t}function vt(t){let i=()=>{};return[c=>{let d=Q(c);return t._x_effects||(t._x_effects=new Set,t._x_runEffects=()=>{t._x_effects.forEach(p=>p())}),t._x_effects.add(d),i=()=>{d!==void 0&&(t._x_effects.delete(d),Te(d))},d},()=>{i()}]}function Et(t,i){let o=!0,c,d=Q(()=>{let p=t();JSON.stringify(p),o?c=p:queueMicrotask(()=>{i(p,c),c=p}),o=!1});return()=>Te(d)}var Oe=[],_e=[],Ae=[];function Ee(t){Ae.push(t)}function ce(t,i){typeof i=="function"?(t._x_cleanups||(t._x_cleanups=[]),t._x_cleanups.push(i)):(i=t,_e.push(i))}function ee(t){Oe.push(t)}function Ve(t,i,o){t._x_attributeCleanups||(t._x_attributeCleanups={}),t._x_attributeCleanups[i]||(t._x_attributeCleanups[i]=[]),t._x_attributeCleanups[i].push(o)}function W(t,i){t._x_attributeCleanups&&Object.entries(t._x_attributeCleanups).forEach(([o,c])=>{(i===void 0||i.includes(o))&&(c.forEach(d=>d()),delete t._x_attributeCleanups[o])})}function ae(t){var i,o;for((i=t._x_effects)==null||i.forEach(N);(o=t._x_cleanups)!=null&&o.length;)t._x_cleanups.pop()()}var be=new MutationObserver(We),De=!1;function ve(){be.observe(document,{subtree:!0,childList:!0,attributes:!0,attributeOldValue:!0}),De=!0}function oe(){Ze(),be.disconnect(),De=!1}var ct=[];function Ze(){let t=be.takeRecords();ct.push(()=>t.length>0&&We(t));let i=ct.length;queueMicrotask(()=>{if(ct.length===i)for(;ct.length>0;)ct.shift()()})}function Y(t){if(!De)return t();oe();let i=t();return ve(),i}var M=!1,F=[];function ge(){M=!0}function z(){M=!1,We(F),F=[]}function We(t){if(M){F=F.concat(t);return}let i=[],o=new Set,c=new Map,d=new Map;for(let p=0;p{v.nodeType===1&&v._x_marker&&o.add(v)}),t[p].addedNodes.forEach(v=>{if(v.nodeType===1){if(o.has(v)){o.delete(v);return}v._x_marker||i.push(v)}})),t[p].type==="attributes")){let v=t[p].target,E=t[p].attributeName,L=t[p].oldValue,re=()=>{c.has(v)||c.set(v,[]),c.get(v).push({name:E,value:v.getAttribute(E)})},ke=()=>{d.has(v)||d.set(v,[]),d.get(v).push(E)};v.hasAttribute(E)&&L===null?re():v.hasAttribute(E)?(ke(),re()):ke()}d.forEach((p,v)=>{W(v,p)}),c.forEach((p,v)=>{Oe.forEach(E=>E(v,p))});for(let p of o)i.some(v=>v.contains(p))||_e.forEach(v=>v(p));for(let p of i)p.isConnected&&Ae.forEach(v=>v(p));i=null,o=null,c=null,d=null}function he(t){return fe(V(t))}function U(t,i,o){return t._x_dataStack=[i,...V(o||t)],()=>{t._x_dataStack=t._x_dataStack.filter(c=>c!==i)}}function V(t){return t._x_dataStack?t._x_dataStack:typeof ShadowRoot=="function"&&t instanceof ShadowRoot?V(t.host):t.parentNode?V(t.parentNode):[]}function fe(t){return new Proxy({objects:t},Be)}var Be={ownKeys({objects:t}){return Array.from(new Set(t.flatMap(i=>Object.keys(i))))},has({objects:t},i){return i==Symbol.unscopables?!1:t.some(o=>Object.prototype.hasOwnProperty.call(o,i)||Reflect.has(o,i))},get({objects:t},i,o){return i=="toJSON"?Ce:Reflect.get(t.find(c=>Reflect.has(c,i))||{},i,o)},set({objects:t},i,o,c){const d=t.find(v=>Object.prototype.hasOwnProperty.call(v,i))||t[t.length-1],p=Object.getOwnPropertyDescriptor(d,i);return p!=null&&p.set&&(p!=null&&p.get)?p.set.call(c,o)||!0:Reflect.set(d,i,o)}};function Ce(){return Reflect.ownKeys(this).reduce((i,o)=>(i[o]=Reflect.get(this,o),i),{})}function lt(t){let i=c=>typeof c=="object"&&!Array.isArray(c)&&c!==null,o=(c,d="")=>{Object.entries(Object.getOwnPropertyDescriptors(c)).forEach(([p,{value:v,enumerable:E}])=>{if(E===!1||v===void 0||typeof v=="object"&&v!==null&&v.__v_skip)return;let L=d===""?p:`${d}.${p}`;typeof v=="object"&&v!==null&&v._x_interceptor?c[p]=v.initialize(t,L,p):i(v)&&v!==c&&!(v instanceof Element)&&o(v,L)})};return o(t)}function at(t,i=()=>{}){let o={initialValue:void 0,_x_interceptor:!0,initialize(c,d,p){return t(this.initialValue,()=>Rt(c,d),v=>jt(c,d,v),d,p)}};return i(o),c=>{if(typeof c=="object"&&c!==null&&c._x_interceptor){let d=o.initialize.bind(o);o.initialize=(p,v,E)=>{let L=c.initialize(p,v,E);return o.initialValue=L,d(p,v,E)}}else o.initialValue=c;return o}}function Rt(t,i){return i.split(".").reduce((o,c)=>o[c],t)}function jt(t,i,o){if(typeof i=="string"&&(i=i.split(".")),i.length===1)t[i[0]]=o;else{if(i.length===0)throw error;return t[i[0]]||(t[i[0]]={}),jt(t[i[0]],i.slice(1),o)}}var cr={};function Ot(t,i){cr[t]=i}function Kt(t,i){let o=fr(i);return Object.entries(cr).forEach(([c,d])=>{Object.defineProperty(t,`$${c}`,{get(){return d(i,o)},enumerable:!1})}),t}function fr(t){let[i,o]=se(t),c={interceptor:at,...i};return ce(t,o),c}function Cn(t,i,o,...c){try{return o(...c)}catch(d){rr(d,t,i)}}function rr(t,i,o=void 0){t=Object.assign(t??{message:"No error message given."},{el:i,expression:o}),console.warn(`Alpine Expression Error: ${t.message} - -${o?'Expression: "'+o+`" - -`:""}`,i),setTimeout(()=>{throw t},0)}var Sr=!0;function Tn(t){let i=Sr;Sr=!1;let o=t();return Sr=i,o}function Jt(t,i,o={}){let c;return yt(t,i)(d=>c=d,o),c}function yt(...t){return Zr(...t)}var Zr=Rn;function Pn(t){Zr=t}function Rn(t,i){let o={};Kt(o,t);let c=[o,...V(t)],d=typeof i=="function"?bi(c,i):wi(c,i,t);return Cn.bind(null,t,i,d)}function bi(t,i){return(o=()=>{},{scope:c={},params:d=[]}={})=>{let p=i.apply(fe([c,...t]),d);Er(o,p)}}var en={};function _i(t,i){if(en[t])return en[t];let o=Object.getPrototypeOf(async function(){}).constructor,c=/^[\n\s]*if.*\(.*\)/.test(t.trim())||/^(let|const)\s/.test(t.trim())?`(async()=>{ ${t} })()`:t,p=(()=>{try{let v=new o(["__self","scope"],`with (scope) { __self.result = ${c} }; __self.finished = true; return __self.result;`);return Object.defineProperty(v,"name",{value:`[Alpine] ${t}`}),v}catch(v){return rr(v,i,t),Promise.resolve()}})();return en[t]=p,p}function wi(t,i,o){let c=_i(i,o);return(d=()=>{},{scope:p={},params:v=[]}={})=>{c.result=void 0,c.finished=!1;let E=fe([p,...t]);if(typeof c=="function"){let L=c(c,E).catch(re=>rr(re,o,i));c.finished?(Er(d,c.result,E,v,o),c.result=void 0):L.then(re=>{Er(d,re,E,v,o)}).catch(re=>rr(re,o,i)).finally(()=>c.result=void 0)}}}function Er(t,i,o,c,d){if(Sr&&typeof i=="function"){let p=i.apply(o,c);p instanceof Promise?p.then(v=>Er(t,v,o,c)).catch(v=>rr(v,d,i)):t(p)}else typeof i=="object"&&i instanceof Promise?i.then(p=>t(p)):t(i)}var Or="x-";function Gt(t=""){return Or+t}function kn(t){Or=t}var Ar={};function f(t,i){return Ar[t]=i,{before(o){if(!Ar[o]){console.warn(String.raw`Cannot find directive \`${o}\`. \`${t}\` will use the default order of execution`);return}const c=Xe.indexOf(o);Xe.splice(c>=0?c:Xe.indexOf("DEFAULT"),0,t)}}}function g(t){return Object.keys(Ar).includes(t)}function x(t,i,o){if(i=Array.from(i),t._x_virtualDirectives){let p=Object.entries(t._x_virtualDirectives).map(([E,L])=>({name:E,value:L})),v=O(p);p=p.map(E=>v.find(L=>L.name===E.name)?{name:`x-bind:${E.name}`,value:`"${E.value}"`}:E),i=i.concat(p)}let c={};return i.map($e((p,v)=>c[p]=v)).filter(Le).map(Fe(c,o)).sort(Ct).map(p=>ue(t,p))}function O(t){return Array.from(t).map($e()).filter(i=>!Le(i))}var k=!1,B=new Map,H=Symbol();function X(t){k=!0;let i=Symbol();H=i,B.set(i,[]);let o=()=>{for(;B.get(i).length;)B.get(i).shift()();B.delete(i)},c=()=>{k=!1,o()};t(o),c()}function se(t){let i=[],o=E=>i.push(E),[c,d]=vt(t);return i.push(d),[{Alpine:an,effect:c,cleanup:o,evaluateLater:yt.bind(yt,t),evaluate:Jt.bind(Jt,t)},()=>i.forEach(E=>E())]}function ue(t,i){let o=()=>{},c=Ar[i.type]||o,[d,p]=se(t);Ve(t,i.original,p);let v=()=>{t._x_ignore||t._x_ignoreSelf||(c.inline&&c.inline(t,i,d),c=c.bind(c,t,i,d),k?B.get(H).push(c):c())};return v.runCleanups=p,v}var Me=(t,i)=>({name:o,value:c})=>(o.startsWith(t)&&(o=o.replace(t,i)),{name:o,value:c}),Pe=t=>t;function $e(t=()=>{}){return({name:i,value:o})=>{let{name:c,value:d}=Se.reduce((p,v)=>v(p),{name:i,value:o});return c!==i&&t(c,i),{name:c,value:d}}}var Se=[];function Re(t){Se.push(t)}function Le({name:t}){return et().test(t)}var et=()=>new RegExp(`^${Or}([^:^.]+)\\b`);function Fe(t,i){return({name:o,value:c})=>{let d=o.match(et()),p=o.match(/:([a-zA-Z0-9\-_:]+)/),v=o.match(/\.[^.\]]+(?=[^\]]*$)/g)||[],E=i||t[o]||o;return{type:d?d[1]:null,value:p?p[1]:null,modifiers:v.map(L=>L.replace(".","")),expression:c,original:E}}}var tt="DEFAULT",Xe=["ignore","ref","data","id","anchor","bind","init","for","model","modelable","transition","show","if",tt,"teleport"];function Ct(t,i){let o=Xe.indexOf(t.type)===-1?tt:t.type,c=Xe.indexOf(i.type)===-1?tt:i.type;return Xe.indexOf(o)-Xe.indexOf(c)}function ot(t,i,o={}){t.dispatchEvent(new CustomEvent(i,{detail:o,bubbles:!0,composed:!0,cancelable:!0}))}function At(t,i){if(typeof ShadowRoot=="function"&&t instanceof ShadowRoot){Array.from(t.children).forEach(d=>At(d,i));return}let o=!1;if(i(t,()=>o=!0),o)return;let c=t.firstElementChild;for(;c;)At(c,i),c=c.nextElementSibling}function bt(t,...i){console.warn(`Alpine Warning: ${t}`,...i)}var nr=!1;function Mn(){nr&&bt("Alpine has already been initialized on this page. Calling Alpine.start() more than once can cause problems."),nr=!0,document.body||bt("Unable to initialize. Trying to load Alpine before `` is available. Did you forget to add `defer` in Alpine's `