From 135cc3b4c6eeb715125602a1087f0f4caf32ca88 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mark=20Poljan=C5=A1ek?= Date: Sun, 18 May 2025 10:26:22 +0200 Subject: [PATCH] Prvi commit: WordPress tema Europe Wonder s CI/CD konfiguracijo --- .gitea/workflows/deploy-develop.yml | 29 + README.md | 74 + admin-scripts.js | 133 + composer.json | 5 + composer.lock | 78 + css/customizer-sortable.css | 73 + css/popup.css | 273 ++ custom-smtp-config.php | 66 + footer.php | 274 ++ front-page.php | 666 ++++ functions.php | 2593 +++++++++++++ functions.php.backup | 533 +++ functions.php.new | 533 +++ header.php | 54 + images/Kevin.webp | Bin 0 -> 97288 bytes images/jernej.webp | Bin 0 -> 679842 bytes images/luka.webp | Bin 0 -> 642410 bytes images/matic.webp | Bin 0 -> 48980 bytes images/nejc.webp | Bin 0 -> 827028 bytes import-tours.php | 82 + index.php | 19 + js/customizer-preview.js | 20 + js/customizer-sortable.js | 17 + js/main.js | 64 + js/popup.js | 121 + js/script.js | 362 ++ mytheme-customizer.php | 108 + page-about.php | 215 ++ page-blog.php | 251 ++ page-contact-us.php | 69 + page-contact.php | 267 ++ page-terms-of-service.php | 116 + page-thank-you.php | 128 + page.php | 30 + setup-theme.php | 59 + single-experience_journey.php | 285 ++ single-individual_tour.php | 2742 ++++++++++++++ single-tour.php | 76 + single.php | 386 ++ style.css | 952 +++++ template-inquiry.php | 75 + test.php | 0 tour-meta-fields.php | 943 +++++ vendor/autoload.php | 25 + vendor/composer/ClassLoader.php | 579 +++ vendor/composer/InstalledVersions.php | 378 ++ vendor/composer/LICENSE | 21 + vendor/composer/autoload_classmap.php | 10 + vendor/composer/autoload_namespaces.php | 9 + vendor/composer/autoload_psr4.php | 10 + vendor/composer/autoload_real.php | 38 + vendor/composer/autoload_static.php | 36 + vendor/composer/installed.json | 68 + vendor/composer/installed.php | 32 + vendor/composer/platform_check.php | 26 + vendor/stripe/stripe-php/.gitignore | 32 + vendor/stripe/stripe-php/CHANGELOG.md | 2613 +++++++++++++ vendor/stripe/stripe-php/LICENSE | 21 + vendor/stripe/stripe-php/OPENAPI_VERSION | 1 + vendor/stripe/stripe-php/README.md | 325 ++ vendor/stripe/stripe-php/VERSION | 1 + vendor/stripe/stripe-php/composer.json | 46 + .../stripe-php/data/ca-certificates.crt | 3347 +++++++++++++++++ vendor/stripe/stripe-php/init.php | 396 ++ vendor/stripe/stripe-php/justfile | 59 + vendor/stripe/stripe-php/lib/Account.php | 524 +++ vendor/stripe/stripe-php/lib/AccountLink.php | 45 + .../stripe/stripe-php/lib/AccountSession.php | 49 + .../stripe-php/lib/ApiOperations/All.php | 26 + .../stripe-php/lib/ApiOperations/Create.php | 31 + .../stripe-php/lib/ApiOperations/Delete.php | 30 + .../lib/ApiOperations/NestedResource.php | 135 + .../stripe-php/lib/ApiOperations/Request.php | 134 + .../stripe-php/lib/ApiOperations/Retrieve.php | 30 + .../stripe-php/lib/ApiOperations/Search.php | 25 + .../lib/ApiOperations/SingletonRetrieve.php | 29 + .../stripe-php/lib/ApiOperations/Update.php | 56 + vendor/stripe/stripe-php/lib/ApiRequestor.php | 702 ++++ vendor/stripe/stripe-php/lib/ApiResource.php | 123 + vendor/stripe/stripe-php/lib/ApiResponse.php | 45 + .../stripe/stripe-php/lib/ApplePayDomain.php | 105 + vendor/stripe/stripe-php/lib/Application.php | 15 + .../stripe/stripe-php/lib/ApplicationFee.php | 127 + .../stripe-php/lib/ApplicationFeeRefund.php | 64 + vendor/stripe/stripe-php/lib/Apps/Secret.php | 106 + vendor/stripe/stripe-php/lib/Balance.php | 52 + .../stripe-php/lib/BalanceTransaction.php | 119 + vendor/stripe/stripe-php/lib/BankAccount.php | 171 + .../stripe-php/lib/BaseStripeClient.php | 466 +++ .../lib/BaseStripeClientInterface.php | 51 + .../stripe/stripe-php/lib/Billing/Alert.php | 134 + .../stripe-php/lib/Billing/AlertTriggered.php | 18 + .../lib/Billing/CreditBalanceSummary.php | 36 + .../lib/Billing/CreditBalanceTransaction.php | 63 + .../stripe-php/lib/Billing/CreditGrant.php | 152 + .../stripe/stripe-php/lib/Billing/Meter.php | 169 + .../stripe-php/lib/Billing/MeterEvent.php | 43 + .../lib/Billing/MeterEventAdjustment.php | 45 + .../lib/Billing/MeterEventSummary.php | 24 + .../lib/BillingPortal/Configuration.php | 113 + .../stripe-php/lib/BillingPortal/Session.php | 60 + vendor/stripe/stripe-php/lib/Capability.php | 107 + vendor/stripe/stripe-php/lib/Card.php | 188 + vendor/stripe/stripe-php/lib/CashBalance.php | 64 + vendor/stripe/stripe-php/lib/Charge.php | 277 ++ .../stripe-php/lib/Checkout/Session.php | 238 ++ .../stripe/stripe-php/lib/Climate/Order.php | 150 + .../stripe/stripe-php/lib/Climate/Product.php | 60 + .../stripe-php/lib/Climate/Supplier.php | 61 + vendor/stripe/stripe-php/lib/Collection.php | 321 ++ .../stripe-php/lib/ConfirmationToken.php | 56 + .../lib/ConnectCollectionTransfer.php | 18 + vendor/stripe/stripe-php/lib/CountrySpec.php | 63 + vendor/stripe/stripe-php/lib/Coupon.php | 159 + vendor/stripe/stripe-php/lib/CreditNote.php | 230 ++ .../stripe-php/lib/CreditNoteLineItem.php | 31 + vendor/stripe/stripe-php/lib/Customer.php | 500 +++ .../lib/CustomerBalanceTransaction.php | 99 + .../lib/CustomerCashBalanceTransaction.php | 42 + .../stripe/stripe-php/lib/CustomerSession.php | 50 + vendor/stripe/stripe-php/lib/Discount.php | 29 + vendor/stripe/stripe-php/lib/Dispute.php | 145 + .../lib/Entitlements/ActiveEntitlement.php | 55 + .../Entitlements/ActiveEntitlementSummary.php | 18 + .../stripe-php/lib/Entitlements/Feature.php | 105 + vendor/stripe/stripe-php/lib/EphemeralKey.php | 61 + vendor/stripe/stripe-php/lib/ErrorObject.php | 248 ++ vendor/stripe/stripe-php/lib/Event.php | 577 +++ ...lingMeterErrorReportTriggeredEventData.php | 15 + .../V1BillingMeterNoMeterFoundEventData.php | 15 + ...1BillingMeterErrorReportTriggeredEvent.php | 46 + .../V1BillingMeterNoMeterFoundEvent.php | 23 + .../lib/Exception/ApiConnectionException.php | 12 + .../lib/Exception/ApiErrorException.php | 220 ++ .../lib/Exception/AuthenticationException.php | 11 + .../lib/Exception/BadMethodCallException.php | 7 + .../lib/Exception/CardException.php | 84 + .../lib/Exception/ExceptionInterface.php | 22 + .../lib/Exception/IdempotencyException.php | 11 + .../Exception/InvalidArgumentException.php | 7 + .../lib/Exception/InvalidRequestException.php | 60 + .../Exception/OAuth/ExceptionInterface.php | 10 + .../OAuth/InvalidClientException.php | 12 + .../Exception/OAuth/InvalidGrantException.php | 13 + .../OAuth/InvalidRequestException.php | 11 + .../Exception/OAuth/InvalidScopeException.php | 10 + .../Exception/OAuth/OAuthErrorException.php | 19 + .../OAuth/UnknownOAuthErrorException.php | 12 + .../OAuth/UnsupportedGrantTypeException.php | 11 + .../UnsupportedResponseTypeException.php | 11 + .../lib/Exception/PermissionException.php | 11 + .../lib/Exception/RateLimitException.php | 12 + .../SignatureVerificationException.php | 74 + .../TemporarySessionExpiredException.php | 9 + .../Exception/UnexpectedValueException.php | 7 + .../Exception/UnknownApiErrorException.php | 12 + vendor/stripe/stripe-php/lib/ExchangeRate.php | 80 + vendor/stripe/stripe-php/lib/File.php | 120 + vendor/stripe/stripe-php/lib/FileLink.php | 108 + .../lib/FinancialConnections/Account.php | 172 + .../lib/FinancialConnections/AccountOwner.php | 22 + .../FinancialConnections/AccountOwnership.php | 18 + .../lib/FinancialConnections/Session.php | 67 + .../lib/FinancialConnections/Transaction.php | 66 + .../stripe-php/lib/Forwarding/Request.php | 98 + .../stripe-php/lib/FundingInstructions.php | 25 + .../lib/HttpClient/ClientInterface.php | 23 + .../stripe-php/lib/HttpClient/CurlClient.php | 796 ++++ .../HttpClient/StreamingClientInterface.php | 23 + .../lib/Identity/VerificationReport.php | 78 + .../lib/Identity/VerificationSession.php | 185 + vendor/stripe/stripe-php/lib/Invoice.php | 496 +++ vendor/stripe/stripe-php/lib/InvoiceItem.php | 158 + .../stripe/stripe-php/lib/InvoiceLineItem.php | 72 + .../lib/InvoiceRenderingTemplate.php | 99 + .../stripe-php/lib/Issuing/Authorization.php | 156 + vendor/stripe/stripe-php/lib/Issuing/Card.php | 140 + .../stripe-php/lib/Issuing/CardDetails.php | 19 + .../stripe-php/lib/Issuing/Cardholder.php | 126 + .../stripe/stripe-php/lib/Issuing/Dispute.php | 165 + .../lib/Issuing/PersonalizationDesign.php | 117 + .../stripe-php/lib/Issuing/PhysicalBundle.php | 65 + .../stripe/stripe-php/lib/Issuing/Token.php | 100 + .../stripe-php/lib/Issuing/Transaction.php | 112 + vendor/stripe/stripe-php/lib/LineItem.php | 26 + vendor/stripe/stripe-php/lib/LoginLink.php | 17 + vendor/stripe/stripe-php/lib/Mandate.php | 51 + vendor/stripe/stripe-php/lib/OAuth.php | 101 + .../stripe-php/lib/OAuthErrorObject.php | 32 + .../stripe/stripe-php/lib/PaymentIntent.php | 313 ++ vendor/stripe/stripe-php/lib/PaymentLink.php | 168 + .../stripe/stripe-php/lib/PaymentMethod.php | 257 ++ .../lib/PaymentMethodConfiguration.php | 160 + .../stripe-php/lib/PaymentMethodDomain.php | 128 + vendor/stripe/stripe-php/lib/Payout.php | 212 ++ vendor/stripe/stripe-php/lib/Person.php | 139 + vendor/stripe/stripe-php/lib/Plan.php | 170 + vendor/stripe/stripe-php/lib/Price.php | 155 + vendor/stripe/stripe-php/lib/Product.php | 229 ++ .../stripe/stripe-php/lib/ProductFeature.php | 19 + .../stripe/stripe-php/lib/PromotionCode.php | 116 + vendor/stripe/stripe-php/lib/Quote.php | 252 ++ .../lib/Radar/EarlyFraudWarning.php | 73 + .../stripe/stripe-php/lib/Radar/ValueList.php | 148 + .../stripe-php/lib/Radar/ValueListItem.php | 106 + vendor/stripe/stripe-php/lib/Reason.php | 13 + .../stripe-php/lib/RecipientTransfer.php | 36 + vendor/stripe/stripe-php/lib/Refund.php | 170 + .../stripe/stripe-php/lib/RelatedObject.php | 15 + .../stripe-php/lib/Reporting/ReportRun.php | 90 + .../stripe-php/lib/Reporting/ReportType.php | 67 + .../stripe-php/lib/RequestTelemetry.php | 32 + .../stripe-php/lib/ReserveTransaction.php | 17 + vendor/stripe/stripe-php/lib/Review.php | 109 + vendor/stripe/stripe-php/lib/SearchResult.php | 241 ++ .../lib/Service/AbstractService.php | 111 + .../lib/Service/AbstractServiceFactory.php | 26 + .../lib/Service/AccountLinkService.php | 29 + .../stripe-php/lib/Service/AccountService.php | 411 ++ .../lib/Service/AccountSessionService.php | 28 + .../lib/Service/ApplePayDomainService.php | 74 + .../lib/Service/ApplicationFeeService.php | 129 + .../lib/Service/Apps/AppsServiceFactory.php | 25 + .../lib/Service/Apps/SecretService.php | 72 + .../stripe-php/lib/Service/BalanceService.php | 30 + .../lib/Service/BalanceTransactionService.php | 51 + .../lib/Service/Billing/AlertService.php | 107 + .../Service/Billing/BillingServiceFactory.php | 37 + .../Billing/CreditBalanceSummaryService.php | 27 + .../CreditBalanceTransactionService.php | 43 + .../Service/Billing/CreditGrantService.php | 106 + .../Billing/MeterEventAdjustmentService.php | 27 + .../lib/Service/Billing/MeterEventService.php | 27 + .../lib/Service/Billing/MeterService.php | 124 + .../BillingPortalServiceFactory.php | 27 + .../BillingPortal/ConfigurationService.php | 77 + .../Service/BillingPortal/SessionService.php | 27 + .../stripe-php/lib/Service/ChargeService.php | 126 + .../Checkout/CheckoutServiceFactory.php | 25 + .../lib/Service/Checkout/SessionService.php | 112 + .../Service/Climate/ClimateServiceFactory.php | 29 + .../lib/Service/Climate/OrderService.php | 98 + .../lib/Service/Climate/ProductService.php | 43 + .../lib/Service/Climate/SupplierService.php | 43 + .../lib/Service/ConfirmationTokenService.php | 28 + .../lib/Service/CoreServiceFactory.php | 165 + .../lib/Service/CountrySpecService.php | 43 + .../stripe-php/lib/Service/CouponService.php | 108 + .../lib/Service/CreditNoteService.php | 160 + .../lib/Service/CustomerService.php | 502 +++ .../lib/Service/CustomerSessionService.php | 29 + .../stripe-php/lib/Service/DisputeService.php | 87 + .../Entitlements/ActiveEntitlementService.php | 43 + .../EntitlementsServiceFactory.php | 27 + .../Service/Entitlements/FeatureService.php | 74 + .../lib/Service/EphemeralKeyService.php | 47 + .../stripe-php/lib/Service/EventService.php | 48 + .../lib/Service/ExchangeRateService.php | 45 + .../lib/Service/FileLinkService.php | 74 + .../stripe-php/lib/Service/FileService.php | 69 + .../FinancialConnections/AccountService.php | 127 + .../FinancialConnectionsServiceFactory.php | 29 + .../FinancialConnections/SessionService.php | 45 + .../TransactionService.php | 43 + .../Forwarding/ForwardingServiceFactory.php | 25 + .../lib/Service/Forwarding/RequestService.php | 58 + .../Identity/IdentityServiceFactory.php | 27 + .../Identity/VerificationReportService.php | 43 + .../Identity/VerificationSessionService.php | 150 + .../lib/Service/InvoiceItemService.php | 97 + .../InvoiceRenderingTemplateService.php | 82 + .../stripe-php/lib/Service/InvoiceService.php | 416 ++ .../Service/Issuing/AuthorizationService.php | 109 + .../lib/Service/Issuing/CardService.php | 77 + .../lib/Service/Issuing/CardholderService.php | 78 + .../lib/Service/Issuing/DisputeService.php | 103 + .../Service/Issuing/IssuingServiceFactory.php | 39 + .../Issuing/PersonalizationDesignService.php | 76 + .../Service/Issuing/PhysicalBundleService.php | 44 + .../lib/Service/Issuing/TokenService.php | 60 + .../Service/Issuing/TransactionService.php | 63 + .../stripe-php/lib/Service/MandateService.php | 28 + .../stripe-php/lib/Service/OAuthService.php | 150 + .../lib/Service/PaymentIntentService.php | 283 ++ .../lib/Service/PaymentLinkService.php | 93 + .../PaymentMethodConfigurationService.php | 74 + .../Service/PaymentMethodDomainService.php | 101 + .../lib/Service/PaymentMethodService.php | 139 + .../stripe-php/lib/Service/PayoutService.php | 131 + .../stripe-php/lib/Service/PlanService.php | 95 + .../stripe-php/lib/Service/PriceService.php | 98 + .../stripe-php/lib/Service/ProductService.php | 182 + .../lib/Service/PromotionCodeService.php | 79 + .../stripe-php/lib/Service/QuoteService.php | 185 + .../Radar/EarlyFraudWarningService.php | 47 + .../lib/Service/Radar/RadarServiceFactory.php | 29 + .../Service/Radar/ValueListItemService.php | 78 + .../lib/Service/Radar/ValueListService.php | 97 + .../stripe-php/lib/Service/RefundService.php | 110 + .../Service/Reporting/ReportRunService.php | 59 + .../Service/Reporting/ReportTypeService.php | 44 + .../Reporting/ReportingServiceFactory.php | 27 + .../stripe-php/lib/Service/ReviewService.php | 62 + .../lib/Service/ServiceNavigatorTrait.php | 58 + .../lib/Service/SetupAttemptService.php | 27 + .../lib/Service/SetupIntentService.php | 150 + .../lib/Service/ShippingRateService.php | 74 + .../Sigma/ScheduledQueryRunService.php | 43 + .../lib/Service/Sigma/SigmaServiceFactory.php | 25 + .../stripe-php/lib/Service/SourceService.php | 116 + .../lib/Service/SubscriptionItemService.php | 155 + .../Service/SubscriptionScheduleService.php | 117 + .../lib/Service/SubscriptionService.php | 223 ++ .../lib/Service/Tax/CalculationService.php | 62 + .../lib/Service/Tax/RegistrationService.php | 77 + .../lib/Service/Tax/SettingsService.php | 43 + .../lib/Service/Tax/TaxServiceFactory.php | 31 + .../lib/Service/Tax/TransactionService.php | 75 + .../stripe-php/lib/Service/TaxCodeService.php | 45 + .../stripe-php/lib/Service/TaxIdService.php | 74 + .../stripe-php/lib/Service/TaxRateService.php | 75 + .../Service/Terminal/ConfigurationService.php | 90 + .../Terminal/ConnectionTokenService.php | 29 + .../lib/Service/Terminal/LocationService.php | 93 + .../lib/Service/Terminal/ReaderService.php | 171 + .../Terminal/TerminalServiceFactory.php | 31 + .../TestHelpers/ConfirmationTokenService.php | 27 + .../Service/TestHelpers/CustomerService.php | 28 + .../Issuing/AuthorizationService.php | 125 + .../TestHelpers/Issuing/CardService.php | 98 + .../Issuing/IssuingServiceFactory.php | 31 + .../Issuing/PersonalizationDesignService.php | 63 + .../Issuing/TransactionService.php | 58 + .../lib/Service/TestHelpers/RefundService.php | 28 + .../TestHelpers/Terminal/ReaderService.php | 29 + .../Terminal/TerminalServiceFactory.php | 25 + .../Service/TestHelpers/TestClockService.php | 91 + .../TestHelpers/TestHelpersServiceFactory.php | 37 + .../Treasury/InboundTransferService.php | 66 + .../Treasury/OutboundPaymentService.php | 84 + .../Treasury/OutboundTransferService.php | 84 + .../Treasury/ReceivedCreditService.php | 29 + .../Treasury/ReceivedDebitService.php | 29 + .../Treasury/TreasuryServiceFactory.php | 33 + .../stripe-php/lib/Service/TokenService.php | 48 + .../stripe-php/lib/Service/TopupService.php | 93 + .../lib/Service/TransferService.php | 165 + .../Treasury/CreditReversalService.php | 60 + .../Service/Treasury/DebitReversalService.php | 58 + .../Treasury/FinancialAccountService.php | 125 + .../Treasury/InboundTransferService.php | 74 + .../Treasury/OutboundPaymentService.php | 76 + .../Treasury/OutboundTransferService.php | 76 + .../Treasury/ReceivedCreditService.php | 44 + .../Service/Treasury/ReceivedDebitService.php | 44 + .../Treasury/TransactionEntryService.php | 43 + .../Service/Treasury/TransactionService.php | 43 + .../Treasury/TreasuryServiceFactory.php | 43 + .../V2/Billing/BillingServiceFactory.php | 31 + .../Billing/MeterEventAdjustmentService.php | 27 + .../Service/V2/Billing/MeterEventService.php | 29 + .../V2/Billing/MeterEventSessionService.php | 29 + .../V2/Billing/MeterEventStreamService.php | 33 + .../Service/V2/Core/CoreServiceFactory.php | 29 + .../V2/Core/EventDestinationService.php | 138 + .../lib/Service/V2/Core/EventService.php | 43 + .../lib/Service/V2/V2ServiceFactory.php | 27 + .../lib/Service/WebhookEndpointService.php | 101 + vendor/stripe/stripe-php/lib/SetupAttempt.php | 49 + vendor/stripe/stripe-php/lib/SetupIntent.php | 215 ++ vendor/stripe/stripe-php/lib/ShippingRate.php | 116 + .../lib/Sigma/ScheduledQueryRun.php | 69 + .../stripe-php/lib/SingletonApiResource.php | 31 + vendor/stripe/stripe-php/lib/Source.php | 251 ++ .../lib/SourceMandateNotification.php | 28 + .../stripe-php/lib/SourceTransaction.php | 48 + vendor/stripe/stripe-php/lib/Stripe.php | 283 ++ vendor/stripe/stripe-php/lib/StripeClient.php | 101 + .../stripe-php/lib/StripeClientInterface.php | 21 + vendor/stripe/stripe-php/lib/StripeObject.php | 614 +++ .../lib/StripeStreamingClientInterface.php | 11 + vendor/stripe/stripe-php/lib/Subscription.php | 309 ++ .../stripe-php/lib/SubscriptionItem.php | 164 + .../stripe-php/lib/SubscriptionSchedule.php | 165 + .../stripe/stripe-php/lib/Tax/Calculation.php | 93 + .../lib/Tax/CalculationLineItem.php | 26 + .../stripe-php/lib/Tax/Registration.php | 117 + vendor/stripe/stripe-php/lib/Tax/Settings.php | 86 + .../stripe/stripe-php/lib/Tax/Transaction.php | 109 + .../lib/Tax/TransactionLineItem.php | 31 + vendor/stripe/stripe-php/lib/TaxCode.php | 56 + .../stripe-php/lib/TaxDeductedAtSource.php | 17 + vendor/stripe/stripe-php/lib/TaxId.php | 213 ++ vendor/stripe/stripe-php/lib/TaxRate.php | 143 + .../stripe-php/lib/Terminal/Configuration.php | 129 + .../lib/Terminal/ConnectionToken.php | 43 + .../stripe-php/lib/Terminal/Location.php | 130 + .../stripe/stripe-php/lib/Terminal/Reader.php | 230 ++ .../stripe-php/lib/TestHelpers/TestClock.php | 125 + vendor/stripe/stripe-php/lib/ThinEvent.php | 27 + vendor/stripe/stripe-php/lib/Token.php | 93 + vendor/stripe/stripe-php/lib/Topup.php | 143 + vendor/stripe/stripe-php/lib/Transfer.php | 197 + .../stripe-php/lib/TransferReversal.php | 76 + .../lib/Treasury/CreditReversal.php | 95 + .../stripe-php/lib/Treasury/DebitReversal.php | 94 + .../lib/Treasury/FinancialAccount.php | 172 + .../lib/Treasury/FinancialAccountFeatures.php | 23 + .../lib/Treasury/InboundTransfer.php | 116 + .../lib/Treasury/OutboundPayment.php | 123 + .../lib/Treasury/OutboundTransfer.php | 121 + .../lib/Treasury/ReceivedCredit.php | 80 + .../stripe-php/lib/Treasury/ReceivedDebit.php | 80 + .../stripe-php/lib/Treasury/Transaction.php | 79 + .../lib/Treasury/TransactionEntry.php | 94 + vendor/stripe/stripe-php/lib/UsageRecord.php | 25 + .../stripe-php/lib/UsageRecordSummary.php | 21 + .../stripe/stripe-php/lib/Util/ApiVersion.php | 10 + .../lib/Util/CaseInsensitiveArray.php | 96 + .../stripe-php/lib/Util/DefaultLogger.php | 29 + .../stripe/stripe-php/lib/Util/EventTypes.php | 13 + .../stripe-php/lib/Util/LoggerInterface.php | 34 + .../stripe-php/lib/Util/ObjectTypes.php | 170 + .../stripe-php/lib/Util/RandomGenerator.php | 36 + .../stripe-php/lib/Util/RequestOptions.php | 187 + vendor/stripe/stripe-php/lib/Util/Set.php | 48 + vendor/stripe/stripe-php/lib/Util/Util.php | 362 ++ .../stripe-php/lib/V2/Billing/MeterEvent.php | 21 + .../lib/V2/Billing/MeterEventAdjustment.php | 23 + .../lib/V2/Billing/MeterEventSession.php | 18 + .../stripe/stripe-php/lib/V2/Collection.php | 110 + vendor/stripe/stripe-php/lib/V2/Event.php | 21 + .../stripe-php/lib/V2/EventDestination.php | 38 + vendor/stripe/stripe-php/lib/Webhook.php | 42 + .../stripe/stripe-php/lib/WebhookEndpoint.php | 147 + .../stripe-php/lib/WebhookSignature.php | 140 + woocommerce/checkout/form-checkout.php | 55 + woocommerce/checkout/order-bump.php | 174 + 438 files changed, 56454 insertions(+) create mode 100644 .gitea/workflows/deploy-develop.yml create mode 100644 README.md create mode 100644 admin-scripts.js create mode 100644 composer.json create mode 100644 composer.lock create mode 100644 css/customizer-sortable.css create mode 100644 css/popup.css create mode 100644 custom-smtp-config.php create mode 100644 footer.php create mode 100644 front-page.php create mode 100644 functions.php create mode 100644 functions.php.backup create mode 100644 functions.php.new create mode 100644 header.php create mode 100644 images/Kevin.webp create mode 100644 images/jernej.webp create mode 100644 images/luka.webp create mode 100644 images/matic.webp create mode 100644 images/nejc.webp create mode 100644 import-tours.php create mode 100644 index.php create mode 100644 js/customizer-preview.js create mode 100644 js/customizer-sortable.js create mode 100644 js/main.js create mode 100644 js/popup.js create mode 100644 js/script.js create mode 100644 mytheme-customizer.php create mode 100644 page-about.php create mode 100644 page-blog.php create mode 100644 page-contact-us.php create mode 100644 page-contact.php create mode 100644 page-terms-of-service.php create mode 100644 page-thank-you.php create mode 100644 page.php create mode 100644 setup-theme.php create mode 100644 single-experience_journey.php create mode 100644 single-individual_tour.php create mode 100644 single-tour.php create mode 100644 single.php create mode 100644 style.css create mode 100644 template-inquiry.php create mode 100644 test.php create mode 100644 tour-meta-fields.php create mode 100644 vendor/autoload.php create mode 100644 vendor/composer/ClassLoader.php create mode 100644 vendor/composer/InstalledVersions.php create mode 100644 vendor/composer/LICENSE create mode 100644 vendor/composer/autoload_classmap.php create mode 100644 vendor/composer/autoload_namespaces.php create mode 100644 vendor/composer/autoload_psr4.php create mode 100644 vendor/composer/autoload_real.php create mode 100644 vendor/composer/autoload_static.php create mode 100644 vendor/composer/installed.json create mode 100644 vendor/composer/installed.php create mode 100644 vendor/composer/platform_check.php create mode 100644 vendor/stripe/stripe-php/.gitignore create mode 100644 vendor/stripe/stripe-php/CHANGELOG.md create mode 100644 vendor/stripe/stripe-php/LICENSE create mode 100644 vendor/stripe/stripe-php/OPENAPI_VERSION create mode 100644 vendor/stripe/stripe-php/README.md create mode 100644 vendor/stripe/stripe-php/VERSION create mode 100644 vendor/stripe/stripe-php/composer.json create mode 100644 vendor/stripe/stripe-php/data/ca-certificates.crt create mode 100644 vendor/stripe/stripe-php/init.php create mode 100644 vendor/stripe/stripe-php/justfile create mode 100644 vendor/stripe/stripe-php/lib/Account.php create mode 100644 vendor/stripe/stripe-php/lib/AccountLink.php create mode 100644 vendor/stripe/stripe-php/lib/AccountSession.php create mode 100644 vendor/stripe/stripe-php/lib/ApiOperations/All.php create mode 100644 vendor/stripe/stripe-php/lib/ApiOperations/Create.php create mode 100644 vendor/stripe/stripe-php/lib/ApiOperations/Delete.php create mode 100644 vendor/stripe/stripe-php/lib/ApiOperations/NestedResource.php create mode 100644 vendor/stripe/stripe-php/lib/ApiOperations/Request.php create mode 100644 vendor/stripe/stripe-php/lib/ApiOperations/Retrieve.php create mode 100644 vendor/stripe/stripe-php/lib/ApiOperations/Search.php create mode 100644 vendor/stripe/stripe-php/lib/ApiOperations/SingletonRetrieve.php create mode 100644 vendor/stripe/stripe-php/lib/ApiOperations/Update.php create mode 100644 vendor/stripe/stripe-php/lib/ApiRequestor.php create mode 100644 vendor/stripe/stripe-php/lib/ApiResource.php create mode 100644 vendor/stripe/stripe-php/lib/ApiResponse.php create mode 100644 vendor/stripe/stripe-php/lib/ApplePayDomain.php create mode 100644 vendor/stripe/stripe-php/lib/Application.php create mode 100644 vendor/stripe/stripe-php/lib/ApplicationFee.php create mode 100644 vendor/stripe/stripe-php/lib/ApplicationFeeRefund.php create mode 100644 vendor/stripe/stripe-php/lib/Apps/Secret.php create mode 100644 vendor/stripe/stripe-php/lib/Balance.php create mode 100644 vendor/stripe/stripe-php/lib/BalanceTransaction.php create mode 100644 vendor/stripe/stripe-php/lib/BankAccount.php create mode 100644 vendor/stripe/stripe-php/lib/BaseStripeClient.php create mode 100644 vendor/stripe/stripe-php/lib/BaseStripeClientInterface.php create mode 100644 vendor/stripe/stripe-php/lib/Billing/Alert.php create mode 100644 vendor/stripe/stripe-php/lib/Billing/AlertTriggered.php create mode 100644 vendor/stripe/stripe-php/lib/Billing/CreditBalanceSummary.php create mode 100644 vendor/stripe/stripe-php/lib/Billing/CreditBalanceTransaction.php create mode 100644 vendor/stripe/stripe-php/lib/Billing/CreditGrant.php create mode 100644 vendor/stripe/stripe-php/lib/Billing/Meter.php create mode 100644 vendor/stripe/stripe-php/lib/Billing/MeterEvent.php create mode 100644 vendor/stripe/stripe-php/lib/Billing/MeterEventAdjustment.php create mode 100644 vendor/stripe/stripe-php/lib/Billing/MeterEventSummary.php create mode 100644 vendor/stripe/stripe-php/lib/BillingPortal/Configuration.php create mode 100644 vendor/stripe/stripe-php/lib/BillingPortal/Session.php create mode 100644 vendor/stripe/stripe-php/lib/Capability.php create mode 100644 vendor/stripe/stripe-php/lib/Card.php create mode 100644 vendor/stripe/stripe-php/lib/CashBalance.php create mode 100644 vendor/stripe/stripe-php/lib/Charge.php create mode 100644 vendor/stripe/stripe-php/lib/Checkout/Session.php create mode 100644 vendor/stripe/stripe-php/lib/Climate/Order.php create mode 100644 vendor/stripe/stripe-php/lib/Climate/Product.php create mode 100644 vendor/stripe/stripe-php/lib/Climate/Supplier.php create mode 100644 vendor/stripe/stripe-php/lib/Collection.php create mode 100644 vendor/stripe/stripe-php/lib/ConfirmationToken.php create mode 100644 vendor/stripe/stripe-php/lib/ConnectCollectionTransfer.php create mode 100644 vendor/stripe/stripe-php/lib/CountrySpec.php create mode 100644 vendor/stripe/stripe-php/lib/Coupon.php create mode 100644 vendor/stripe/stripe-php/lib/CreditNote.php create mode 100644 vendor/stripe/stripe-php/lib/CreditNoteLineItem.php create mode 100644 vendor/stripe/stripe-php/lib/Customer.php create mode 100644 vendor/stripe/stripe-php/lib/CustomerBalanceTransaction.php create mode 100644 vendor/stripe/stripe-php/lib/CustomerCashBalanceTransaction.php create mode 100644 vendor/stripe/stripe-php/lib/CustomerSession.php create mode 100644 vendor/stripe/stripe-php/lib/Discount.php create mode 100644 vendor/stripe/stripe-php/lib/Dispute.php create mode 100644 vendor/stripe/stripe-php/lib/Entitlements/ActiveEntitlement.php create mode 100644 vendor/stripe/stripe-php/lib/Entitlements/ActiveEntitlementSummary.php create mode 100644 vendor/stripe/stripe-php/lib/Entitlements/Feature.php create mode 100644 vendor/stripe/stripe-php/lib/EphemeralKey.php create mode 100644 vendor/stripe/stripe-php/lib/ErrorObject.php create mode 100644 vendor/stripe/stripe-php/lib/Event.php create mode 100644 vendor/stripe/stripe-php/lib/EventData/V1BillingMeterErrorReportTriggeredEventData.php create mode 100644 vendor/stripe/stripe-php/lib/EventData/V1BillingMeterNoMeterFoundEventData.php create mode 100644 vendor/stripe/stripe-php/lib/Events/V1BillingMeterErrorReportTriggeredEvent.php create mode 100644 vendor/stripe/stripe-php/lib/Events/V1BillingMeterNoMeterFoundEvent.php create mode 100644 vendor/stripe/stripe-php/lib/Exception/ApiConnectionException.php create mode 100644 vendor/stripe/stripe-php/lib/Exception/ApiErrorException.php create mode 100644 vendor/stripe/stripe-php/lib/Exception/AuthenticationException.php create mode 100644 vendor/stripe/stripe-php/lib/Exception/BadMethodCallException.php create mode 100644 vendor/stripe/stripe-php/lib/Exception/CardException.php create mode 100644 vendor/stripe/stripe-php/lib/Exception/ExceptionInterface.php create mode 100644 vendor/stripe/stripe-php/lib/Exception/IdempotencyException.php create mode 100644 vendor/stripe/stripe-php/lib/Exception/InvalidArgumentException.php create mode 100644 vendor/stripe/stripe-php/lib/Exception/InvalidRequestException.php create mode 100644 vendor/stripe/stripe-php/lib/Exception/OAuth/ExceptionInterface.php create mode 100644 vendor/stripe/stripe-php/lib/Exception/OAuth/InvalidClientException.php create mode 100644 vendor/stripe/stripe-php/lib/Exception/OAuth/InvalidGrantException.php create mode 100644 vendor/stripe/stripe-php/lib/Exception/OAuth/InvalidRequestException.php create mode 100644 vendor/stripe/stripe-php/lib/Exception/OAuth/InvalidScopeException.php create mode 100644 vendor/stripe/stripe-php/lib/Exception/OAuth/OAuthErrorException.php create mode 100644 vendor/stripe/stripe-php/lib/Exception/OAuth/UnknownOAuthErrorException.php create mode 100644 vendor/stripe/stripe-php/lib/Exception/OAuth/UnsupportedGrantTypeException.php create mode 100644 vendor/stripe/stripe-php/lib/Exception/OAuth/UnsupportedResponseTypeException.php create mode 100644 vendor/stripe/stripe-php/lib/Exception/PermissionException.php create mode 100644 vendor/stripe/stripe-php/lib/Exception/RateLimitException.php create mode 100644 vendor/stripe/stripe-php/lib/Exception/SignatureVerificationException.php create mode 100644 vendor/stripe/stripe-php/lib/Exception/TemporarySessionExpiredException.php create mode 100644 vendor/stripe/stripe-php/lib/Exception/UnexpectedValueException.php create mode 100644 vendor/stripe/stripe-php/lib/Exception/UnknownApiErrorException.php create mode 100644 vendor/stripe/stripe-php/lib/ExchangeRate.php create mode 100644 vendor/stripe/stripe-php/lib/File.php create mode 100644 vendor/stripe/stripe-php/lib/FileLink.php create mode 100644 vendor/stripe/stripe-php/lib/FinancialConnections/Account.php create mode 100644 vendor/stripe/stripe-php/lib/FinancialConnections/AccountOwner.php create mode 100644 vendor/stripe/stripe-php/lib/FinancialConnections/AccountOwnership.php create mode 100644 vendor/stripe/stripe-php/lib/FinancialConnections/Session.php create mode 100644 vendor/stripe/stripe-php/lib/FinancialConnections/Transaction.php create mode 100644 vendor/stripe/stripe-php/lib/Forwarding/Request.php create mode 100644 vendor/stripe/stripe-php/lib/FundingInstructions.php create mode 100644 vendor/stripe/stripe-php/lib/HttpClient/ClientInterface.php create mode 100644 vendor/stripe/stripe-php/lib/HttpClient/CurlClient.php create mode 100644 vendor/stripe/stripe-php/lib/HttpClient/StreamingClientInterface.php create mode 100644 vendor/stripe/stripe-php/lib/Identity/VerificationReport.php create mode 100644 vendor/stripe/stripe-php/lib/Identity/VerificationSession.php create mode 100644 vendor/stripe/stripe-php/lib/Invoice.php create mode 100644 vendor/stripe/stripe-php/lib/InvoiceItem.php create mode 100644 vendor/stripe/stripe-php/lib/InvoiceLineItem.php create mode 100644 vendor/stripe/stripe-php/lib/InvoiceRenderingTemplate.php create mode 100644 vendor/stripe/stripe-php/lib/Issuing/Authorization.php create mode 100644 vendor/stripe/stripe-php/lib/Issuing/Card.php create mode 100644 vendor/stripe/stripe-php/lib/Issuing/CardDetails.php create mode 100644 vendor/stripe/stripe-php/lib/Issuing/Cardholder.php create mode 100644 vendor/stripe/stripe-php/lib/Issuing/Dispute.php create mode 100644 vendor/stripe/stripe-php/lib/Issuing/PersonalizationDesign.php create mode 100644 vendor/stripe/stripe-php/lib/Issuing/PhysicalBundle.php create mode 100644 vendor/stripe/stripe-php/lib/Issuing/Token.php create mode 100644 vendor/stripe/stripe-php/lib/Issuing/Transaction.php create mode 100644 vendor/stripe/stripe-php/lib/LineItem.php create mode 100644 vendor/stripe/stripe-php/lib/LoginLink.php create mode 100644 vendor/stripe/stripe-php/lib/Mandate.php create mode 100644 vendor/stripe/stripe-php/lib/OAuth.php create mode 100644 vendor/stripe/stripe-php/lib/OAuthErrorObject.php create mode 100644 vendor/stripe/stripe-php/lib/PaymentIntent.php create mode 100644 vendor/stripe/stripe-php/lib/PaymentLink.php create mode 100644 vendor/stripe/stripe-php/lib/PaymentMethod.php create mode 100644 vendor/stripe/stripe-php/lib/PaymentMethodConfiguration.php create mode 100644 vendor/stripe/stripe-php/lib/PaymentMethodDomain.php create mode 100644 vendor/stripe/stripe-php/lib/Payout.php create mode 100644 vendor/stripe/stripe-php/lib/Person.php create mode 100644 vendor/stripe/stripe-php/lib/Plan.php create mode 100644 vendor/stripe/stripe-php/lib/Price.php create mode 100644 vendor/stripe/stripe-php/lib/Product.php create mode 100644 vendor/stripe/stripe-php/lib/ProductFeature.php create mode 100644 vendor/stripe/stripe-php/lib/PromotionCode.php create mode 100644 vendor/stripe/stripe-php/lib/Quote.php create mode 100644 vendor/stripe/stripe-php/lib/Radar/EarlyFraudWarning.php create mode 100644 vendor/stripe/stripe-php/lib/Radar/ValueList.php create mode 100644 vendor/stripe/stripe-php/lib/Radar/ValueListItem.php create mode 100644 vendor/stripe/stripe-php/lib/Reason.php create mode 100644 vendor/stripe/stripe-php/lib/RecipientTransfer.php create mode 100644 vendor/stripe/stripe-php/lib/Refund.php create mode 100644 vendor/stripe/stripe-php/lib/RelatedObject.php create mode 100644 vendor/stripe/stripe-php/lib/Reporting/ReportRun.php create mode 100644 vendor/stripe/stripe-php/lib/Reporting/ReportType.php create mode 100644 vendor/stripe/stripe-php/lib/RequestTelemetry.php create mode 100644 vendor/stripe/stripe-php/lib/ReserveTransaction.php create mode 100644 vendor/stripe/stripe-php/lib/Review.php create mode 100644 vendor/stripe/stripe-php/lib/SearchResult.php create mode 100644 vendor/stripe/stripe-php/lib/Service/AbstractService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/AbstractServiceFactory.php create mode 100644 vendor/stripe/stripe-php/lib/Service/AccountLinkService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/AccountService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/AccountSessionService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/ApplePayDomainService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/ApplicationFeeService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/Apps/AppsServiceFactory.php create mode 100644 vendor/stripe/stripe-php/lib/Service/Apps/SecretService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/BalanceService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/BalanceTransactionService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/Billing/AlertService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/Billing/BillingServiceFactory.php create mode 100644 vendor/stripe/stripe-php/lib/Service/Billing/CreditBalanceSummaryService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/Billing/CreditBalanceTransactionService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/Billing/CreditGrantService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/Billing/MeterEventAdjustmentService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/Billing/MeterEventService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/Billing/MeterService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/BillingPortal/BillingPortalServiceFactory.php create mode 100644 vendor/stripe/stripe-php/lib/Service/BillingPortal/ConfigurationService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/BillingPortal/SessionService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/ChargeService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/Checkout/CheckoutServiceFactory.php create mode 100644 vendor/stripe/stripe-php/lib/Service/Checkout/SessionService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/Climate/ClimateServiceFactory.php create mode 100644 vendor/stripe/stripe-php/lib/Service/Climate/OrderService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/Climate/ProductService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/Climate/SupplierService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/ConfirmationTokenService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/CoreServiceFactory.php create mode 100644 vendor/stripe/stripe-php/lib/Service/CountrySpecService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/CouponService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/CreditNoteService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/CustomerService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/CustomerSessionService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/DisputeService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/Entitlements/ActiveEntitlementService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/Entitlements/EntitlementsServiceFactory.php create mode 100644 vendor/stripe/stripe-php/lib/Service/Entitlements/FeatureService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/EphemeralKeyService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/EventService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/ExchangeRateService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/FileLinkService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/FileService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/FinancialConnections/AccountService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/FinancialConnections/FinancialConnectionsServiceFactory.php create mode 100644 vendor/stripe/stripe-php/lib/Service/FinancialConnections/SessionService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/FinancialConnections/TransactionService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/Forwarding/ForwardingServiceFactory.php create mode 100644 vendor/stripe/stripe-php/lib/Service/Forwarding/RequestService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/Identity/IdentityServiceFactory.php create mode 100644 vendor/stripe/stripe-php/lib/Service/Identity/VerificationReportService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/Identity/VerificationSessionService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/InvoiceItemService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/InvoiceRenderingTemplateService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/InvoiceService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/Issuing/AuthorizationService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/Issuing/CardService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/Issuing/CardholderService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/Issuing/DisputeService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/Issuing/IssuingServiceFactory.php create mode 100644 vendor/stripe/stripe-php/lib/Service/Issuing/PersonalizationDesignService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/Issuing/PhysicalBundleService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/Issuing/TokenService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/Issuing/TransactionService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/MandateService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/OAuthService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/PaymentIntentService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/PaymentLinkService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/PaymentMethodConfigurationService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/PaymentMethodDomainService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/PaymentMethodService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/PayoutService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/PlanService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/PriceService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/ProductService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/PromotionCodeService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/QuoteService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/Radar/EarlyFraudWarningService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/Radar/RadarServiceFactory.php create mode 100644 vendor/stripe/stripe-php/lib/Service/Radar/ValueListItemService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/Radar/ValueListService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/RefundService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/Reporting/ReportRunService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/Reporting/ReportTypeService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/Reporting/ReportingServiceFactory.php create mode 100644 vendor/stripe/stripe-php/lib/Service/ReviewService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/ServiceNavigatorTrait.php create mode 100644 vendor/stripe/stripe-php/lib/Service/SetupAttemptService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/SetupIntentService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/ShippingRateService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/Sigma/ScheduledQueryRunService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/Sigma/SigmaServiceFactory.php create mode 100644 vendor/stripe/stripe-php/lib/Service/SourceService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/SubscriptionItemService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/SubscriptionScheduleService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/SubscriptionService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/Tax/CalculationService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/Tax/RegistrationService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/Tax/SettingsService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/Tax/TaxServiceFactory.php create mode 100644 vendor/stripe/stripe-php/lib/Service/Tax/TransactionService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/TaxCodeService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/TaxIdService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/TaxRateService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/Terminal/ConfigurationService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/Terminal/ConnectionTokenService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/Terminal/LocationService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/Terminal/ReaderService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/Terminal/TerminalServiceFactory.php create mode 100644 vendor/stripe/stripe-php/lib/Service/TestHelpers/ConfirmationTokenService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/TestHelpers/CustomerService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/TestHelpers/Issuing/AuthorizationService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/TestHelpers/Issuing/CardService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/TestHelpers/Issuing/IssuingServiceFactory.php create mode 100644 vendor/stripe/stripe-php/lib/Service/TestHelpers/Issuing/PersonalizationDesignService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/TestHelpers/Issuing/TransactionService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/TestHelpers/RefundService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/TestHelpers/Terminal/ReaderService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/TestHelpers/Terminal/TerminalServiceFactory.php create mode 100644 vendor/stripe/stripe-php/lib/Service/TestHelpers/TestClockService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/TestHelpers/TestHelpersServiceFactory.php create mode 100644 vendor/stripe/stripe-php/lib/Service/TestHelpers/Treasury/InboundTransferService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/TestHelpers/Treasury/OutboundPaymentService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/TestHelpers/Treasury/OutboundTransferService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/TestHelpers/Treasury/ReceivedCreditService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/TestHelpers/Treasury/ReceivedDebitService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/TestHelpers/Treasury/TreasuryServiceFactory.php create mode 100644 vendor/stripe/stripe-php/lib/Service/TokenService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/TopupService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/TransferService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/Treasury/CreditReversalService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/Treasury/DebitReversalService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/Treasury/FinancialAccountService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/Treasury/InboundTransferService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/Treasury/OutboundPaymentService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/Treasury/OutboundTransferService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/Treasury/ReceivedCreditService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/Treasury/ReceivedDebitService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/Treasury/TransactionEntryService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/Treasury/TransactionService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/Treasury/TreasuryServiceFactory.php create mode 100644 vendor/stripe/stripe-php/lib/Service/V2/Billing/BillingServiceFactory.php create mode 100644 vendor/stripe/stripe-php/lib/Service/V2/Billing/MeterEventAdjustmentService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/V2/Billing/MeterEventService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/V2/Billing/MeterEventSessionService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/V2/Billing/MeterEventStreamService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/V2/Core/CoreServiceFactory.php create mode 100644 vendor/stripe/stripe-php/lib/Service/V2/Core/EventDestinationService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/V2/Core/EventService.php create mode 100644 vendor/stripe/stripe-php/lib/Service/V2/V2ServiceFactory.php create mode 100644 vendor/stripe/stripe-php/lib/Service/WebhookEndpointService.php create mode 100644 vendor/stripe/stripe-php/lib/SetupAttempt.php create mode 100644 vendor/stripe/stripe-php/lib/SetupIntent.php create mode 100644 vendor/stripe/stripe-php/lib/ShippingRate.php create mode 100644 vendor/stripe/stripe-php/lib/Sigma/ScheduledQueryRun.php create mode 100644 vendor/stripe/stripe-php/lib/SingletonApiResource.php create mode 100644 vendor/stripe/stripe-php/lib/Source.php create mode 100644 vendor/stripe/stripe-php/lib/SourceMandateNotification.php create mode 100644 vendor/stripe/stripe-php/lib/SourceTransaction.php create mode 100644 vendor/stripe/stripe-php/lib/Stripe.php create mode 100644 vendor/stripe/stripe-php/lib/StripeClient.php create mode 100644 vendor/stripe/stripe-php/lib/StripeClientInterface.php create mode 100644 vendor/stripe/stripe-php/lib/StripeObject.php create mode 100644 vendor/stripe/stripe-php/lib/StripeStreamingClientInterface.php create mode 100644 vendor/stripe/stripe-php/lib/Subscription.php create mode 100644 vendor/stripe/stripe-php/lib/SubscriptionItem.php create mode 100644 vendor/stripe/stripe-php/lib/SubscriptionSchedule.php create mode 100644 vendor/stripe/stripe-php/lib/Tax/Calculation.php create mode 100644 vendor/stripe/stripe-php/lib/Tax/CalculationLineItem.php create mode 100644 vendor/stripe/stripe-php/lib/Tax/Registration.php create mode 100644 vendor/stripe/stripe-php/lib/Tax/Settings.php create mode 100644 vendor/stripe/stripe-php/lib/Tax/Transaction.php create mode 100644 vendor/stripe/stripe-php/lib/Tax/TransactionLineItem.php create mode 100644 vendor/stripe/stripe-php/lib/TaxCode.php create mode 100644 vendor/stripe/stripe-php/lib/TaxDeductedAtSource.php create mode 100644 vendor/stripe/stripe-php/lib/TaxId.php create mode 100644 vendor/stripe/stripe-php/lib/TaxRate.php create mode 100644 vendor/stripe/stripe-php/lib/Terminal/Configuration.php create mode 100644 vendor/stripe/stripe-php/lib/Terminal/ConnectionToken.php create mode 100644 vendor/stripe/stripe-php/lib/Terminal/Location.php create mode 100644 vendor/stripe/stripe-php/lib/Terminal/Reader.php create mode 100644 vendor/stripe/stripe-php/lib/TestHelpers/TestClock.php create mode 100644 vendor/stripe/stripe-php/lib/ThinEvent.php create mode 100644 vendor/stripe/stripe-php/lib/Token.php create mode 100644 vendor/stripe/stripe-php/lib/Topup.php create mode 100644 vendor/stripe/stripe-php/lib/Transfer.php create mode 100644 vendor/stripe/stripe-php/lib/TransferReversal.php create mode 100644 vendor/stripe/stripe-php/lib/Treasury/CreditReversal.php create mode 100644 vendor/stripe/stripe-php/lib/Treasury/DebitReversal.php create mode 100644 vendor/stripe/stripe-php/lib/Treasury/FinancialAccount.php create mode 100644 vendor/stripe/stripe-php/lib/Treasury/FinancialAccountFeatures.php create mode 100644 vendor/stripe/stripe-php/lib/Treasury/InboundTransfer.php create mode 100644 vendor/stripe/stripe-php/lib/Treasury/OutboundPayment.php create mode 100644 vendor/stripe/stripe-php/lib/Treasury/OutboundTransfer.php create mode 100644 vendor/stripe/stripe-php/lib/Treasury/ReceivedCredit.php create mode 100644 vendor/stripe/stripe-php/lib/Treasury/ReceivedDebit.php create mode 100644 vendor/stripe/stripe-php/lib/Treasury/Transaction.php create mode 100644 vendor/stripe/stripe-php/lib/Treasury/TransactionEntry.php create mode 100644 vendor/stripe/stripe-php/lib/UsageRecord.php create mode 100644 vendor/stripe/stripe-php/lib/UsageRecordSummary.php create mode 100644 vendor/stripe/stripe-php/lib/Util/ApiVersion.php create mode 100644 vendor/stripe/stripe-php/lib/Util/CaseInsensitiveArray.php create mode 100644 vendor/stripe/stripe-php/lib/Util/DefaultLogger.php create mode 100644 vendor/stripe/stripe-php/lib/Util/EventTypes.php create mode 100644 vendor/stripe/stripe-php/lib/Util/LoggerInterface.php create mode 100644 vendor/stripe/stripe-php/lib/Util/ObjectTypes.php create mode 100644 vendor/stripe/stripe-php/lib/Util/RandomGenerator.php create mode 100644 vendor/stripe/stripe-php/lib/Util/RequestOptions.php create mode 100644 vendor/stripe/stripe-php/lib/Util/Set.php create mode 100644 vendor/stripe/stripe-php/lib/Util/Util.php create mode 100644 vendor/stripe/stripe-php/lib/V2/Billing/MeterEvent.php create mode 100644 vendor/stripe/stripe-php/lib/V2/Billing/MeterEventAdjustment.php create mode 100644 vendor/stripe/stripe-php/lib/V2/Billing/MeterEventSession.php create mode 100644 vendor/stripe/stripe-php/lib/V2/Collection.php create mode 100644 vendor/stripe/stripe-php/lib/V2/Event.php create mode 100644 vendor/stripe/stripe-php/lib/V2/EventDestination.php create mode 100644 vendor/stripe/stripe-php/lib/Webhook.php create mode 100644 vendor/stripe/stripe-php/lib/WebhookEndpoint.php create mode 100644 vendor/stripe/stripe-php/lib/WebhookSignature.php create mode 100644 woocommerce/checkout/form-checkout.php create mode 100644 woocommerce/checkout/order-bump.php diff --git a/.gitea/workflows/deploy-develop.yml b/.gitea/workflows/deploy-develop.yml new file mode 100644 index 0000000..ef390c0 --- /dev/null +++ b/.gitea/workflows/deploy-develop.yml @@ -0,0 +1,29 @@ +name: Deploy to Test Environment + +on: + push: + branches: + - develop + +jobs: + deploy: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Deploy to test environment + run: | + # Ustvari ciljni direktorij, če ne obstaja + mkdir -p /home/spletnimojster-europewonder/htdocs/europewonder.spletnimojster.si/wp-content/themes/Arhiv + + # Kopiraj vse datoteke iz repozitorija v ciljni direktorij + # Uporabi rsync za ohranitev datotek, ki niso v repozitoriju + rsync -av --delete \ + --exclude='.git' \ + --exclude='.gitea' \ + --exclude='.github' \ + --exclude='README.md' \ + ./ /home/spletnimojster-europewonder/htdocs/europewonder.spletnimojster.si/wp-content/themes/Arhiv/ + + echo "Theme deployed to test environment successfully!" \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..27c1d43 --- /dev/null +++ b/README.md @@ -0,0 +1,74 @@ +# Europe Wonder WordPress Tema + +WordPress tema za turistično agencijo Europe Wonder, specializirano za organizacijo potovanj po Evropi. + +## CI/CD Avtomatizacija + +Ta repozitorij uporablja Gitea Actions za avtomatsko postavitev (deployment) teme na različna okolja. + +### Razvojna veja (develop) + +Ko pushaš spremembe na vejo `develop`, se tema avtomatsko kopira na testno okolje: +- **Testno okolje:** europewonder.spletnimojster.si +- **Pot do teme:** /wp-content/themes/Arhiv + +Proces kopiranja: +1. Koda se prenese iz repozitorija +2. Vse datoteke se kopirajo v ciljni direktorij s pomočjo rsync +3. Obstoječe datoteke v ciljnem direktoriju se prepišejo +4. Datoteke, ki so samo v ciljnem direktoriju (in ne v repozitoriju), ostanejo nedotaknjene + +### Produkcijska veja (main) + +*To be implemented* + +## Razvoj + +### Lokalno razvojno okolje + +1. Kloniraj repozitorij: +``` +git clone git@git.spletnimojster.si:mark/EuropeWonder.git +``` + +2. Ustvari in preklopi na vejo develop: +``` +git checkout -b develop +``` + +3. Po končanem razvoju potisni spremembe: +``` +git add . +git commit -m "Opis sprememb" +git push origin develop +``` + +### Postavitev v produkcijo + +Ko so spremembe testirane in pripravljene za produkcijo: + +1. Preklopi na vejo main: +``` +git checkout main +``` + +2. Združi spremembe iz develop veje: +``` +git merge develop +``` + +3. Potisni spremembe: +``` +git push origin main +``` + +## Struktura teme + +- **CSS**: Stilske datoteke +- **JS**: JavaScript datoteke +- **Images**: Slike in drugi medijski elementi +- **Template files**: PHP predloge za različne dele spletne strani + +## Kontakt + +Za vprašanja glede razvoja teme kontaktirajte: [kontaktni podatki] \ No newline at end of file diff --git a/admin-scripts.js b/admin-scripts.js new file mode 100644 index 0000000..fb36915 --- /dev/null +++ b/admin-scripts.js @@ -0,0 +1,133 @@ +jQuery(document).ready(function($) { + // Funkcija za dodajanje novega polja + function addNewField(container) { + var $container = $('#' + container); + var $template = $container.children().first().clone(); + + // Počisti vrednosti v novem polju + $template.find('input[type="text"], textarea').val(''); + $template.find('.image-preview').empty(); + $template.find('.image-preview-wrapper img').remove(); + $template.find('.itinerary-image-url').val(''); + $template.find('.itinerary-image-remove').hide(); + + // Dodaj novo polje v kontejner + $container.append($template); + + // Posodobi indekse za itinerary polja + if (container === 'itinerary-container') { + updateItineraryIndices(); + } + } + + // Funkcija za odstranitev polja + function removeField(button) { + var $parent = $(button).closest('.repeatable-field'); + var $container = $parent.parent(); + + // Ne dovoli odstranitve zadnjega polja + if ($container.children('.repeatable-field').length > 1) { + $parent.remove(); + + // Posodobi indekse za itinerary polja + if ($container.attr('id') === 'itinerary-container') { + updateItineraryIndices(); + } + } + } + + // Posodobi indekse za itinerary polja + function updateItineraryIndices() { + $('#itinerary-container .repeatable-field').each(function(index) { + $(this).find('input, textarea').each(function() { + var name = $(this).attr('name'); + if (name) { + name = name.replace(/\[\d+\]/, '[' + index + ']'); + $(this).attr('name', name); + } + }); + }); + } + + // Event listener za gumbe "Add" + $('.add-field').on('click', function() { + var container = $(this).data('container'); + addNewField(container); + }); + + // Event listener za gumbe "Remove" + $(document).on('click', '.remove-field', function() { + removeField(this); + }); + + // Media Uploader za hero sliko + var heroImageFrame; + $('.hero-image-upload').on('click', function(e) { + e.preventDefault(); + + if (heroImageFrame) { + heroImageFrame.open(); + return; + } + + heroImageFrame = wp.media({ + title: 'Select or Upload Hero Image', + button: { + text: 'Use this image' + }, + multiple: false + }); + + heroImageFrame.on('select', function() { + var attachment = heroImageFrame.state().get('selection').first().toJSON(); + $('#hero_image').val(attachment.url); + $('.image-preview-wrapper img').remove(); + $('.image-preview-wrapper').append('Hero Image'); + $('.hero-image-remove').show(); + }); + + heroImageFrame.open(); + }); + + // Odstrani hero sliko + $('.hero-image-remove').on('click', function(e) { + e.preventDefault(); + $('#hero_image').val(''); + $('.image-preview-wrapper img').remove(); + $(this).hide(); + }); + + // Media Uploader za slike itinerarija + $(document).on('click', '.itinerary-image-upload', function(e) { + e.preventDefault(); + var $button = $(this); + var $field = $button.closest('.itinerary-day'); + + var frame = wp.media({ + title: 'Select or Upload Day Image', + button: { + text: 'Use this image' + }, + multiple: false + }); + + frame.on('select', function() { + var attachment = frame.state().get('selection').first().toJSON(); + $field.find('.itinerary-image-url').val(attachment.url); + $field.find('.image-preview-wrapper img').remove(); + $field.find('.image-preview-wrapper').append('Day Image'); + $field.find('.itinerary-image-remove').show(); + }); + + frame.open(); + }); + + // Odstrani sliko itinerarija + $(document).on('click', '.itinerary-image-remove', function(e) { + e.preventDefault(); + var $field = $(this).closest('.itinerary-day'); + $field.find('.itinerary-image-url').val(''); + $field.find('.image-preview-wrapper img').remove(); + $(this).hide(); + }); +}); \ No newline at end of file diff --git a/composer.json b/composer.json new file mode 100644 index 0000000..75f00bf --- /dev/null +++ b/composer.json @@ -0,0 +1,5 @@ +{ + "require": { + "stripe/stripe-php": "^16.6" + } +} diff --git a/composer.lock b/composer.lock new file mode 100644 index 0000000..2bc98ca --- /dev/null +++ b/composer.lock @@ -0,0 +1,78 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", + "This file is @generated automatically" + ], + "content-hash": "8a1765450f77ff32d3e0bda5c31034ae", + "packages": [ + { + "name": "stripe/stripe-php", + "version": "v16.6.0", + "source": { + "type": "git", + "url": "https://github.com/stripe/stripe-php.git", + "reference": "d6de0a536f00b5c5c74f36b8f4d0d93b035499ff" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/stripe/stripe-php/zipball/d6de0a536f00b5c5c74f36b8f4d0d93b035499ff", + "reference": "d6de0a536f00b5c5c74f36b8f4d0d93b035499ff", + "shasum": "" + }, + "require": { + "ext-curl": "*", + "ext-json": "*", + "ext-mbstring": "*", + "php": ">=5.6.0" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "3.5.0", + "phpstan/phpstan": "^1.2", + "phpunit/phpunit": "^5.7 || ^9.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "psr-4": { + "Stripe\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Stripe and contributors", + "homepage": "https://github.com/stripe/stripe-php/contributors" + } + ], + "description": "Stripe PHP Library", + "homepage": "https://stripe.com/", + "keywords": [ + "api", + "payment processing", + "stripe" + ], + "support": { + "issues": "https://github.com/stripe/stripe-php/issues", + "source": "https://github.com/stripe/stripe-php/tree/v16.6.0" + }, + "time": "2025-02-24T22:35:29+00:00" + } + ], + "packages-dev": [], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": {}, + "prefer-stable": false, + "prefer-lowest": false, + "platform": {}, + "platform-dev": {}, + "plugin-api-version": "2.6.0" +} diff --git a/css/customizer-sortable.css b/css/customizer-sortable.css new file mode 100644 index 0000000..2d5d840 --- /dev/null +++ b/css/customizer-sortable.css @@ -0,0 +1,73 @@ +.sortable-posts-list { + list-style: none; + padding: 0; + margin: 0; +} + +.sortable-posts-list li { + background: #fff; + border: 1px solid #ddd; + padding: 10px; + margin-bottom: 5px; + cursor: move; + display: flex; + align-items: center; +} + +.sortable-posts-list li .dashicons { + margin-right: 10px; + color: #a0a5aa; +} + +.sortable-posts-list li:hover .dashicons { + color: #23282d; +} + +/* Stili za Individual Tours sortable */ +.sortable-tours-list { + list-style: none; + padding: 0; + margin: 0 0 20px 0; + border: 1px solid #ddd; + background: #f7f7f7; +} + +.sortable-tours-list .sortable-item { + background: #fff; + border-bottom: 1px solid #ddd; + padding: 10px; + margin: 0; + cursor: move; + display: flex; + align-items: center; +} + +.sortable-tours-list .sortable-item:last-child { + border-bottom: none; +} + +.sortable-tours-list .sortable-item .dashicons { + margin-right: 10px; + color: #a0a5aa; + font-size: 20px; +} + +.sortable-tours-list .sortable-item:hover { + background: #f0f0f0; +} + +.sortable-tours-list .sortable-item:hover .dashicons { + color: #0073aa; +} + +.sortable-tours-list .ui-sortable-helper { + box-shadow: 0 0 8px rgba(0,0,0,0.2); + z-index: 100; +} + +.sortable-tours-list .ui-sortable-placeholder { + visibility: visible !important; + background: #e0f5ff; + border: 1px dashed #0073aa; + height: 40px; +} \ No newline at end of file diff --git a/css/popup.css b/css/popup.css new file mode 100644 index 0000000..c4187ea --- /dev/null +++ b/css/popup.css @@ -0,0 +1,273 @@ +:root { + --accent: #00798c; + --accent-dark: #006778; +} + +.popup-overlay { + display: none; + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + background-color: rgba(0, 0, 0, 0.7); + z-index: 1000; + justify-content: center; + align-items: center; +} + +.popup-content { + background-color: #003d5b; + padding: 40px; + border-radius: 10px; + max-width: 500px; + width: 90%; + text-align: center; + position: relative; + color: white; +} + +.close-button { + position: absolute; + top: 15px; + right: 15px; + font-size: 28px; + cursor: pointer; + color: white; + background: none; + border: none; + line-height: 1; +} + +.popup-title { + font-size: 42px; + margin-bottom: 10px; + color: white; + font-weight: bold; + letter-spacing: 1px; + text-transform: uppercase; +} + +.popup-subtitle { + font-size: 32px; + margin-bottom: 30px; + color: white; + line-height: 1.2; +} + +form { + width: 100%; + margin: 0 auto; +} + +#email-form { + width: 100%; + margin: 0 auto; +} + +input[type="email"] { + width: 100% !important; + height: 40px; + padding: 8px 12px; + margin-bottom: 15px; + border: none; + border-radius: 3px; + font-size: 16px; + background-color: #f0f0f0; + box-sizing: border-box; + outline: none; + color: #333; +} + +input[type="email"]::placeholder { + color: #666; +} + +.claim-button { + background-color: #edae49; + color: white; + padding: 15px 30px; + border: none; + border-radius: 5px; + font-size: 24px; + cursor: pointer; + width: 100%; + margin-bottom: 15px; + font-weight: bold; + text-transform: uppercase; + transition: background-color 0.3s ease; +} + +.claim-button:hover { + background-color: #d99b35; +} + +.skip-button { + background: none; + border: none; + color: rgba(255, 255, 255, 0.8); + text-decoration: underline; + cursor: pointer; + font-size: 16px; + margin: 15px 0; + transition: color 0.3s ease; + text-transform: uppercase; +} + +.skip-button:hover { + color: rgba(255, 255, 255, 1); +} + +.terms-text { + font-size: 12px; + color: rgba(255, 255, 255, 0.7); + margin-top: 20px; + line-height: 1.5; +} + +.success-message { + display: none; + color: white; + font-size: 24px; + margin-top: 20px; + font-weight: bold; +} + +/* Stili za promocijsko kodo */ +.popup-promo-container { + margin: 20px 0; + padding: 20px; + background: rgba(255, 255, 255, 0.08); + border-radius: 12px; + border: 1px solid rgba(255, 255, 255, 0.1); +} + +.popup-promo-container label { + display: block; + margin-bottom: 12px; + color: #333; + font-size: 15px; + font-weight: 500; +} + +.promo-code-input { + display: flex; + gap: 10px; + align-items: center; +} + +.popup-promo-container input { + flex: 1; + padding: 12px 15px; + border: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 8px; + background: #fff; + color: #333; + font-size: 14px; + transition: all 0.3s ease; +} + +.popup-promo-container input:focus { + outline: none; + border-color: var(--accent); + background: rgba(255, 255, 255, 0.1); + box-shadow: 0 0 0 2px rgba(0, 121, 140, 0.2); +} + +.popup-promo-container input:disabled { + background: rgba(255, 255, 255, 0.05); + cursor: not-allowed; + opacity: 0.7; +} + +.popup-promo-container button { + padding: 12px 24px; + background: var(--accent); + border: none; + border-radius: 8px; + color: white; + font-weight: 600; + font-size: 14px; + cursor: pointer; + transition: all 0.3s ease; + white-space: nowrap; +} + +.popup-promo-container button:hover { + background: var(--accent-dark); + transform: translateY(-1px); +} + +.popup-promo-container button:disabled { + background: #4a5568; + cursor: not-allowed; + transform: none; +} + +#popup-promo-message { + margin-top: 12px; + font-size: 14px; + transition: all 0.3s ease; +} + +#popup-promo-message .promo-success { + color: #10B981; + display: flex; + align-items: center; + gap: 8px; +} + +#popup-promo-message .promo-error { + color: #EF4444; + display: flex; + align-items: center; + gap: 8px; +} + +.popup-guide-info { + margin-bottom: 20px; + padding: 15px; + background: #f9f9f9; + border-radius: 8px; + border: 1px solid #e5e7eb; +} + +.guide-profile { + display: flex; + align-items: center; + gap: 15px; +} + +.guide-avatar { + width: 80px; + height: 80px; + border-radius: 50%; + object-fit: cover; + border: 3px solid #fff; + box-shadow: 0 2px 10px rgba(0,0,0,0.1); +} + +.guide-details { + flex: 1; +} + +.guide-details h4 { + margin: 0 0 5px 0; + font-size: 18px; + color: #333; + font-weight: 600; +} + +.guide-details p { + margin: 0; + font-size: 14px; + color: #666; + line-height: 1.4; +} + +.guide-message { + margin-top: 8px !important; + font-style: italic; + color: #555 !important; + font-size: 13px !important; +} \ No newline at end of file diff --git a/custom-smtp-config.php b/custom-smtp-config.php new file mode 100644 index 0000000..d779338 --- /dev/null +++ b/custom-smtp-config.php @@ -0,0 +1,66 @@ +isSMTP(); + + // Izdajatelj (from naslov) + $phpmailer->From = "noreply@europewonder.com"; + $phpmailer->FromName = "Europe Wonder"; + + // Obvezne nastavitve + $phpmailer->Host = 'mail.europewonder.com'; + $phpmailer->SMTPAuth = true; + $phpmailer->Port = 465; + $phpmailer->Username = 'noreply@europewonder.com'; + $phpmailer->Password = '#Napoti112358'; + + // Varnostne nastavitve + $phpmailer->SMTPSecure = 'ssl'; + + // Dodatne nastavitve + $phpmailer->SMTPAutoTLS = false; + + // Razhroščevanje (nastavi true za razvoj, false za produkcijo) + $phpmailer->SMTPDebug = 0; + + // Beleženje + error_log('SMTP setup complete with host: ' . $phpmailer->Host . ' and username: ' . $phpmailer->Username); + } + + // Definiramo konstante, ki preprečujejo dvojno konfiguracijo + define('WPMS_ON', true); + + // Beleženje, da je konfiguracija vključena + error_log('Custom SMTP configuration activated'); +} + +// Popravek za "From" naslov, ki ga včasih prepisuje WordPress +add_filter('wp_mail_from', 'custom_mail_from'); +function custom_mail_from($email) { + return 'noreply@europewonder.com'; +} + +// Popravek za "From" ime, ki ga včasih prepisuje WordPress +add_filter('wp_mail_from_name', 'custom_mail_from_name'); +function custom_mail_from_name($name) { + return 'Europe Wonder'; +} \ No newline at end of file diff --git a/footer.php b/footer.php new file mode 100644 index 0000000..d679a8f --- /dev/null +++ b/footer.php @@ -0,0 +1,274 @@ + + + + + + + + + + +
+
+ × +
+
+
+ + + + + + + + + + \ No newline at end of file diff --git a/front-page.php b/front-page.php new file mode 100644 index 0000000..62c15a3 --- /dev/null +++ b/front-page.php @@ -0,0 +1,666 @@ + + + +
+
+

+

+
+
+ + +
style="background-image: linear-gradient(to top, + rgba(255, 255, 255, 0.9) 0%, + rgba(255, 255, 255, 0.8) 100% +), url('');"> +
+
+

+

+ +
+
+
+ + +
+
+ × +

Custom Journey Inquiry

+
+ + +
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+ +
+
+
+ + +
+
+ 'experience_journey', + 'posts_per_page' => -1, + )); + + // Pridobi uporabniško določen vrstni red journeyev + $order = get_option('experience_journey_order', ''); + $order_array = !empty($order) ? explode(',', $order) : array(); + + // Če imamo vrstni red, sortiraj journeye po njem + if (!empty($order_array)) { + $position_map = array_flip($order_array); + usort($journeys, function($a, $b) use ($position_map) { + $pos_a = isset($position_map[$a->ID]) ? $position_map[$a->ID] : PHP_INT_MAX; + $pos_b = isset($position_map[$b->ID]) ? $position_map[$b->ID] : PHP_INT_MAX; + return $pos_a - $pos_b; + }); + } + + // Za vsak journey prikaži njegove ture + foreach ($journeys as $journey) { + // Pridobi naslov journeya + $journey_title = get_post_meta($journey->ID, '_page_title', true); + if (!$journey_title) { + $journey_title = $journey->post_title; + } + + // Pridobi ture za ta journey + $saved_order = get_option('individual_tour_order_' . $journey->ID, ''); + $tour_order_array = !empty($saved_order) ? explode(',', $saved_order) : array(); + + $args = array( + 'post_type' => 'individual_tour', + 'posts_per_page' => -1, + 'meta_query' => array( + array( + 'key' => '_experience_journey', + 'value' => $journey->ID, + 'compare' => '=' + ) + ) + ); + + // Če imamo shranjen vrstni red tur, uporabi ga + if (!empty($tour_order_array)) { + $args['post__in'] = $tour_order_array; + $args['orderby'] = 'post__in'; + } + + $tours = new WP_Query($args); + + // Če ima journey ture, prikaži naslov in ture + if ($tours->have_posts()) : + ?> +

+
+ have_posts()) : $tours->the_post(); + // Pridobi hero sliko + $hero_image_id = get_post_meta(get_the_ID(), '_hero_image', true); + $image = wp_get_attachment_image_url($hero_image_id, 'full'); + // Če hero slika ne obstaja, uporabi featured image + if (!$image) { + $image = get_the_post_thumbnail_url(get_the_ID(), 'large'); + } + // Če ni nobene slike, uporabi placeholder + if (!$image) { + $image = get_theme_file_uri('images/placeholder.jpg'); + } + + $price = get_post_meta(get_the_ID(), '_tour_price', true); + $duration = get_post_meta(get_the_ID(), '_tour_duration', true); + ?> +
+
+ <?php echo esc_attr(get_the_title()); ?> +
+
+
+

+
+
+
+ + + + + days + +
+ View Details +
+
+
+ +
+ +
+
+ + + + + + + + + + +
+
+
+ +
+ +
+
+ + +
+
+

What Our Customers Say

+
+ + +
+
+
+
+ + + + + \ No newline at end of file diff --git a/functions.php b/functions.php new file mode 100644 index 0000000..e5b8f02 --- /dev/null +++ b/functions.php @@ -0,0 +1,2593 @@ + 100, + 'width' => 300, + 'flex-height' => true, + 'flex-width' => true, + )); + + // Registriraj navigacijske menije + register_nav_menus(array( + 'primary' => esc_html__('Primary Menu', 'grilctours'), + 'footer' => esc_html__('Footer Menu', 'grilctours'), + )); +} +add_action('after_setup_theme', 'grilctours_setup'); + +/** + * Registracija stilov in skript + */ +function grilctours_scripts() { + // Glavni CSS + wp_enqueue_style('grilctours-style', get_stylesheet_uri()); + + // Google Fonts + wp_enqueue_style('google-fonts', 'https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap'); + + // Glavni JavaScript + wp_enqueue_script('grilctours-script', get_template_directory_uri() . '/js/script.js', array('jquery'), '1.0.0', true); +} +add_action('wp_enqueue_scripts', 'grilctours_scripts'); + +// Dodaj podporo za media uploader v admin +function grilctours_admin_scripts($hook) { + global $post_type; + + // Naloži skripte za edit in add new strani za individual_tour in experience_journey + if (($hook == 'post.php' || $hook == 'post-new.php') && ($post_type == 'individual_tour' || $post_type == 'experience_journey')) { + wp_enqueue_media(); + wp_enqueue_script('grilctours-admin-script', get_template_directory_uri() . '/admin-scripts.js', array('jquery'), '1.0.0', true); + } +} +add_action('admin_enqueue_scripts', 'grilctours_admin_scripts'); + +// Registracija Custom Post Type za Experience Journey +function register_experience_journey_post_type() { + $labels = array( + 'name' => 'Experience Journeys', + 'singular_name' => 'Experience Journey', + 'menu_name' => 'Experience Journeys', + 'add_new' => 'Add New Journey', + 'add_new_item' => 'Add New Journey', + 'edit_item' => 'Edit Journey', + 'new_item' => 'New Journey', + 'view_item' => 'View Journey', + 'search_items' => 'Search Journeys', + 'not_found' => 'No journeys found', + 'not_found_in_trash' => 'No journeys found in Trash' + ); + + $args = array( + 'labels' => $labels, + 'public' => true, + 'has_archive' => true, + 'menu_icon' => 'dashicons-palmtree', + 'supports' => array('title', 'editor', 'thumbnail', 'excerpt'), + 'rewrite' => array('slug' => 'journeys'), + 'show_in_rest' => true, + 'menu_position' => 5 + ); + + register_post_type('experience_journey', $args); +} +add_action('init', 'register_experience_journey_post_type'); + +// Registracija Custom Post Type za Individual Tour +function register_individual_tour_post_type() { + $labels = array( + 'name' => 'Individual Tours', + 'singular_name' => 'Individual Tour', + 'menu_name' => 'Individual Tours', + 'add_new' => 'Add New Tour', + 'add_new_item' => 'Add New Tour', + 'edit_item' => 'Edit Tour', + 'new_item' => 'New Tour', + 'view_item' => 'View Tour', + 'search_items' => 'Search Tours', + 'not_found' => 'No tours found', + 'not_found_in_trash' => 'No tours found in Trash' + ); + + $args = array( + 'labels' => $labels, + 'public' => true, + 'has_archive' => true, + 'menu_icon' => 'dashicons-location', + 'supports' => array('title', 'editor', 'thumbnail'), + 'rewrite' => array('slug' => 'tours'), + 'show_in_rest' => true, + 'menu_position' => 6 + ); + + register_post_type('individual_tour', $args); +} +add_action('init', 'register_individual_tour_post_type'); + +// Vključi datoteko za meta polja tur +require_once get_template_directory() . '/tour-meta-fields.php'; + +// Registracija meta boxov za Experience Journey +function register_experience_journey_meta_boxes() { + add_meta_box( + 'experience_journey_details', + 'Journey Details', + 'render_experience_journey_meta_box', + 'experience_journey', + 'normal', + 'high' + ); +} +add_action('add_meta_boxes', 'register_experience_journey_meta_boxes'); + +// Render meta box za Experience Journey +function render_experience_journey_meta_box($post) { + $target_audience = get_post_meta($post->ID, '_target_audience', true); + $journey_image = get_post_meta($post->ID, '_journey_image', true); + $short_title = get_post_meta($post->ID, '_short_title', true); + $page_title = get_post_meta($post->ID, '_page_title', true); + + wp_nonce_field('experience_journey_nonce', 'experience_journey_nonce'); + ?> +
+

+ + + Enter a short title that will be displayed on the homepage (e.g. "One Day Experience") +

+ +

+ + + Enter the title that will be displayed when viewing this experience journey (e.g. "One Day Tours") +

+ +

+
+

+ + +
+ + +

Upload an image that will be displayed as the journey's main image.

+
+

+ +

+ + + Describe who this journey is designed for. +

+
+ + + "; + foreach ($extras as $extra) { + $extras_list .= "
  • " . sanitize_text_field($extra) . "
  • "; + } + $extras_list .= ""; + } else { + $extras_list = "None"; + } + + // Pripravi vsebino e-pošte + $to = 'dincija@gmail.com'; + $subject = 'New Tour Inquiry: ' . $tour_title; + + $body = " + + + New Tour Inquiry + + + +

    New Inquiry for: $tour_title

    +
    +

    Name: $name

    +

    Email: $email

    +

    Phone: " . ($phone ? $phone : "Not provided") . "

    +

    Date: $date

    +

    Number of participants: $participants

    +

    Country: " . ($country ? $country : "Not provided") . "

    +

    Selected extras: $extras_list

    +
    +

    Message:

    +

    " . nl2br($message) . "

    +
    +
    + + + "; + + // Nastavi glave za HTML e-pošto + $headers = array( + 'Content-Type: text/html; charset=UTF-8', + 'From: ' . $name . ' <' . $email . '>', + 'Reply-To: ' . $email + ); + + // Pošlji e-pošto + $sent = wp_mail($to, $subject, $body, $headers); + + // Pošlji odgovor + if ($sent) { + wp_send_json_success(array('message' => 'Inquiry sent successfully!')); + } else { + wp_send_json_error(array('message' => 'Failed to send inquiry. Please try again later.')); + } + + wp_die(); +} + +// Registriraj AJAX akcije +add_action('wp_ajax_send_inquiry', 'handle_inquiry_form'); +add_action('wp_ajax_nopriv_send_inquiry', 'handle_inquiry_form'); + +// Funkcija za testiranje pošiljanja e-pošte +function test_email_sending() { + $to = 'dincija@gmail.com'; + $subject = 'Test Email from Slovenia Bike Tours'; + $body = ' + + + Test Email + + + +

    Test Email

    +
    +

    This is a test email from Slovenia Bike Tours website.

    +

    If you are receiving this, the email functionality is working correctly.

    +

    Time of sending: ' . current_time('mysql') . '

    +
    + + + '; + + $headers = array( + 'Content-Type: text/html; charset=UTF-8', + 'From: Slovenia Bike Tours ', + ); + + $sent = wp_mail($to, $subject, $body, $headers); + + return $sent ? 'Email sent successfully!' : 'Failed to send email.'; +} + +// Dodaj REST API endpoint za testiranje e-pošte +function register_test_email_endpoint() { + register_rest_route('slovenia-bike-tours/v1', '/test-email', array( + 'methods' => 'GET', + 'callback' => 'test_email_sending', + 'permission_callback' => function() { + return current_user_can('manage_options'); + } + )); +} +add_action('rest_api_init', 'register_test_email_endpoint'); + +/** + * Dodaj nastavitve za footer v WordPress Customizer + */ +function grilctours_customize_register($wp_customize) { + // Sekcija za footer + $wp_customize->add_section('footer_settings', array( + 'title' => __('Footer Settings', 'grilctours'), + 'priority' => 120, + )); + + // Footer opis + $wp_customize->add_setting('footer_description', array( + 'default' => 'We\'re a travel agency and tour operator for holidays, activities, and other unforgettable experiences in every corner of the Europe, and for every sort of traveler.', + 'sanitize_callback' => 'wp_kses_post', + 'transport' => 'refresh', + )); + + $wp_customize->add_control('footer_description', array( + 'label' => __('Footer Description', 'grilctours'), + 'section' => 'footer_settings', + 'type' => 'textarea', + )); + + // Kontaktni podatki + $wp_customize->add_setting('footer_email', array( + 'default' => 'info@europewonder.com', + 'sanitize_callback' => 'sanitize_email', + 'transport' => 'refresh', + )); + + $wp_customize->add_control('footer_email', array( + 'label' => __('Email Address', 'grilctours'), + 'section' => 'footer_settings', + 'type' => 'email', + )); + + $wp_customize->add_setting('footer_phone', array( + 'default' => '+386 (0) 31 332 823', + 'sanitize_callback' => 'sanitize_text_field', + 'transport' => 'refresh', + )); + + $wp_customize->add_control('footer_phone', array( + 'label' => __('Phone Number', 'grilctours'), + 'section' => 'footer_settings', + 'type' => 'text', + )); + + $wp_customize->add_setting('footer_whatsapp', array( + 'default' => '38631332823', + 'sanitize_callback' => 'sanitize_text_field', + 'transport' => 'refresh', + )); + + $wp_customize->add_control('footer_whatsapp', array( + 'label' => __('WhatsApp Number', 'grilctours'), + 'section' => 'footer_settings', + 'type' => 'text', + 'description' => __('Enter your WhatsApp number (numbers only, no spaces or special characters)', 'grilctours'), + )); + + // Calendly link + $wp_customize->add_setting('calendly_link', array( + 'default' => '', + 'sanitize_callback' => 'esc_url_raw', + 'transport' => 'refresh', + )); + + $wp_customize->add_control('calendly_link', array( + 'label' => __('Calendly Link', 'grilctours'), + 'section' => 'footer_settings', + 'type' => 'url', + 'description' => __('Enter your Calendly link for booking consultations in the footer', 'grilctours'), + )); +} +add_action('customize_register', 'grilctours_customize_register'); + +/** + * Dodaj nastavitve za front page v WordPress Customizer + */ +function grilctours_customize_front_page($wp_customize) { + // Hero sekcija + $wp_customize->add_section('hero_settings', array( + 'title' => __('Hero Section Settings', 'grilctours'), + 'priority' => 110, + )); + + // Hero naslov + $wp_customize->add_setting('hero_title', array( + 'default' => 'Europe Wonder', + 'sanitize_callback' => 'sanitize_text_field', + 'transport' => 'refresh', + )); + + $wp_customize->add_control('hero_title', array( + 'label' => __('Hero Title', 'grilctours'), + 'section' => 'hero_settings', + 'type' => 'text', + )); + + // Hero podnaslov + $wp_customize->add_setting('hero_subtitle', array( + 'default' => 'Your path to unforgettable experiences', + 'sanitize_callback' => 'sanitize_text_field', + 'transport' => 'refresh', + )); + + $wp_customize->add_control('hero_subtitle', array( + 'label' => __('Hero Subtitle', 'grilctours'), + 'section' => 'hero_settings', + 'type' => 'text', + )); + + // Hero ozadje + $wp_customize->add_setting('hero_background', array( + 'default' => get_theme_file_uri('images/hero.jpg'), + 'sanitize_callback' => 'esc_url_raw', + 'transport' => 'refresh', + )); + + $wp_customize->add_control(new WP_Customize_Image_Control($wp_customize, 'hero_background', array( + 'label' => __('Hero Background Image', 'grilctours'), + 'section' => 'hero_settings', + ))); + + // Tours sekcija + $wp_customize->add_section('tours_settings', array( + 'title' => __('Tours Section Settings', 'grilctours'), + 'priority' => 115, + )); + + // Tours naslov + $wp_customize->add_setting('tours_title', array( + 'default' => 'Experience Journeys', + 'sanitize_callback' => 'sanitize_text_field', + 'transport' => 'refresh', + )); + + $wp_customize->add_control('tours_title', array( + 'label' => __('Tours Section Title', 'grilctours'), + 'section' => 'tours_settings', + 'type' => 'text', + )); + + // Video sekcija + $wp_customize->add_section('video_settings', array( + 'title' => __('Video Section Settings', 'grilctours'), + 'priority' => 116, + )); + + // Video URL + $wp_customize->add_setting('video_url', array( + 'default' => 'https://player.vimeo.com/video/1061260497?h=7fb6d020c3', + 'sanitize_callback' => 'esc_url_raw', + 'transport' => 'refresh', + )); + + $wp_customize->add_control('video_url', array( + 'label' => __('Video URL (Vimeo)', 'grilctours'), + 'section' => 'video_settings', + 'type' => 'url', + 'description' => __('Enter the Vimeo video URL', 'grilctours'), + )); +} +add_action('customize_register', 'grilctours_customize_front_page'); + +/** + * Dodaj nastavitve za logotipe v WordPress Customizer + */ +function grilctours_customize_logos($wp_customize) { + // Sekcija za logotipe + $wp_customize->add_section('logo_settings', array( + 'title' => __('Logo Settings', 'grilctours'), + 'priority' => 105, + )); + + // Header logo + $wp_customize->add_setting('header_logo', array( + 'default' => get_theme_file_uri('images/logo.png'), + 'sanitize_callback' => 'esc_url_raw', + 'transport' => 'refresh', + )); + + $wp_customize->add_control(new WP_Customize_Image_Control($wp_customize, 'header_logo', array( + 'label' => __('Header Logo', 'grilctours'), + 'section' => 'logo_settings', + 'description' => __('Upload logo for the header (recommended size: 40px height)', 'grilctours'), + ))); + + // Footer logo + $wp_customize->add_setting('footer_logo', array( + 'default' => get_theme_file_uri('images/logo-footer.png'), + 'sanitize_callback' => 'esc_url_raw', + 'transport' => 'refresh', + )); + + $wp_customize->add_control(new WP_Customize_Image_Control($wp_customize, 'footer_logo', array( + 'label' => __('Footer Logo', 'grilctours'), + 'section' => 'logo_settings', + 'description' => __('Upload logo for the footer (recommended size: 40px height)', 'grilctours'), + ))); +} +add_action('customize_register', 'grilctours_customize_logos'); + +/** + * Customizer funkcije za razporejanje Experience Journeys + */ +function grilctours_customize_journey_order($wp_customize) { + $wp_customize->add_section('experience_journey_order_section', array( + 'title' => 'Razporeditev Experience Journeys', + 'priority' => 30, + )); + + // Get all experience journeys + $args = array( + 'post_type' => 'experience_journey', + 'posts_per_page' => -1, + 'post_status' => 'publish', + ); + $journeys = get_posts($args); + $journey_choices = array(); + + if (!empty($journeys)) { + foreach ($journeys as $journey) { + $journey_choices[$journey->ID] = $journey->post_title; + } + } + + // Add setting for journey order + $wp_customize->add_setting('experience_journey_order', array( + 'default' => '', + 'type' => 'option', + 'capability' => 'edit_theme_options', + 'transport' => 'refresh', + 'sanitize_callback' => 'sanitize_text_field', + )); + + // Definiraj razred znotraj funkcije, samo ko je potreben + class Journey_Order_Control extends WP_Customize_Control { + public $type = 'journey_order'; + public $journeys = array(); + + public function render_content() { + // Edinstveni ID za ta kontrolnik + $list_id = 'sortable-journey-list'; + ?> + + journeys)): ?> + + link(); ?> /> + +

    Ni najdenih Experience Journeys za razporejanje.

    + + add_control(new Journey_Order_Control( + $wp_customize, + 'experience_journey_order_control', + array( + 'label' => 'Razporeditev Experience Journeys', + 'section' => 'experience_journey_order_section', + 'settings' => 'experience_journey_order', + 'journeys' => $journey_choices, + ) + )); +} +add_action('customize_register', 'grilctours_customize_journey_order'); + +/** + * Dodaj JavaScript in CSS za Customizer + */ +function grilctours_customizer_scripts() { + wp_enqueue_script('jquery-ui-sortable'); + + // Dodaj JavaScript za sortiranje + $script = " + jQuery(document).ready(function($) { + // Počakaj, da se DOM naloži, preden inicializiramo sortable + setTimeout(function() { + console.log('Inicializacija journey sortable seznama...'); + + // Poišči sortable seznam + var sortableList = $('.journey-sortable-list'); + + if (sortableList.length) { + console.log('Sortable seznam najden, inicializam...'); + + sortableList.sortable({ + items: '.sortable-journey-item', + handle: '.dashicons-move', + placeholder: 'sortable-journey-placeholder', + update: function(event, ui) { + console.log('Vrstni red posodobljen'); + + // Zberi ID-je v novem vrstnem redu + var ids = []; + $('.sortable-journey-item').each(function() { + ids.push($(this).data('journey-id')); + }); + + // Posodobi skrito polje + var inputField = sortableList.siblings('input[type=\"hidden\"]'); + inputField.val(ids.join(',')).trigger('change'); + + console.log('Nova vrednost:', ids.join(',')); + } + }); + + console.log('Sortable inicializiran!'); + } else { + console.log('Sortable seznam ni bil najden!'); + } + }, 1000); + }); + "; + + wp_add_inline_script('jquery-ui-sortable', $script); + + // Dodaj CSS stile + $style = " + .journey-sortable-list { + margin: 15px 0; + padding: 0; + list-style: none; + } + + .sortable-journey-item { + background: #fff; + border: 1px solid #ddd; + padding: 10px; + margin-bottom: 10px; + display: flex; + align-items: center; + cursor: move; + border-radius: 3px; + } + + .sortable-journey-item .dashicons-move { + margin-right: 10px; + color: #555; + } + + .sortable-journey-item:hover { + background: #f9f9f9; + border-color: #999; + } + + .sortable-journey-placeholder { + border: 2px dashed #bbb; + background: #f7f7f7; + height: 40px; + margin-bottom: 10px; + } + "; + + wp_add_inline_style('customize-controls', $style); +} +add_action('customize_controls_enqueue_scripts', 'grilctours_customizer_scripts'); + +/** + * Omogoči admin skripte za posamezne tipe objav + */ +// ... existing code ... + +// Začasno odstranjeno zaradi napake +// require_once get_template_directory() . '/mytheme-customizer.php'; + +// Preveri če je WooCommerce aktiviran +function is_woocommerce_activated() { + return class_exists('WooCommerce'); +} + +// Vključi Stripe PHP knjižnico in inicializiraj samo če je WooCommerce aktiviran +function init_stripe() { + if (!is_woocommerce_activated()) { + return; + } + + // Preveri če obstaja composer autoload + $autoload_path = get_template_directory() . '/vendor/autoload.php'; + if (!file_exists($autoload_path)) { + error_log('Stripe PHP library not found. Please run composer require stripe/stripe-php'); + return; + } + + // Vključi composer autoload + require_once $autoload_path; + + // Preveri če je Stripe razred na voljo + if (!class_exists('\Stripe\Stripe')) { + error_log('Stripe PHP class not found after including autoload.php'); + return; + } + + try { + // Nastavi Stripe API ključ + \Stripe\Stripe::setApiKey('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'); + } catch (Exception $e) { + error_log('Error initializing Stripe: ' . $e->getMessage()); + } +} + +// Inicializiraj Stripe po tem, ko je WordPress naložen +add_action('init', 'init_stripe', 20); + +// AJAX handler za obdelavo rezervacije ture +function process_tour_booking() { + if (!is_woocommerce_activated()) { + wp_send_json_error(['message' => 'WooCommerce is not activated']); + return; + } + + check_ajax_referer('process_tour_booking', 'security'); + + try { + // Preveri obvezna polja in izpiši natančen razlog napake + $required_fields = [ + 'name' => 'Full Name', + 'email' => 'Email', + 'date' => 'Departure Date', + 'participants' => 'Number of Participants' + ]; + + $missing_fields = []; + + foreach ($required_fields as $field => $label) { + if (empty($_POST[$field])) { + $missing_fields[] = $label; + } + } + + if (!empty($missing_fields)) { + throw new Exception('The following fields are required: ' . implode(', ', $missing_fields)); + } + + // Dodatno preverjanje veljavnosti e-pošte + if (!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) { + throw new Exception('Please enter a valid email address.'); + } + + // Preveri, da je število udeležencev najmanj 1 + if (intval($_POST['participants']) < 1) { + throw new Exception('Number of participants must be at least 1.'); + } + + // Datum mora biti v prihodnosti + $departure_date = new DateTime($_POST['date']); + $today = new DateTime(); + $today->setTime(0, 0, 0); // Nastavi čas na začetek dneva + + if ($departure_date < $today) { + throw new Exception('Departure date must be in the future.'); + } + + // Ustvari WooCommerce naročilo + $order = wc_create_order(); + + // Dodaj podatke o stranki + $order->set_billing_first_name($_POST['name']); + $order->set_billing_email($_POST['email']); + + // Dodaj podatke o turi + $tour_id = intval($_POST['tour_id']); + $tour_name = sanitize_text_field($_POST['tour_name']); + $participants = intval($_POST['participants']); + $total_price = floatval($_POST['total_price']); + + // Pridobi WooCommerce produkt preko SKU-ja + $product_id = wc_get_product_id_by_sku('tour-' . $tour_id); + if (!$product_id) { + // Poskusimo pridobiti produkt direktno po ID-ju + $product = wc_get_product($tour_id); + if (!$product) { + throw new Exception('Tour product not found. Please contact administrator.'); + } + } else { + $product = wc_get_product($product_id); + if (!$product) { + throw new Exception('Failed to load tour product'); + } + } + + // Dodaj produkt v naročilo + $item_id = $order->add_product($product, $participants); + + // Dodaj datum odhoda kot meta podatek postavke + if ($item_id) { + wc_add_order_item_meta($item_id, '_tour_date', sanitize_text_field($_POST['date'])); + } + + // Dodaj dodatke, če obstajajo + if (!empty($_POST['extras'])) { + $extras = json_decode(stripslashes($_POST['extras']), true); + if (!is_array($extras)) { + $extras = json_decode($_POST['extras'], true); // Poskusi brez stripslashes + } + + if (is_array($extras)) { + foreach ($extras as $extra) { + // Preveri, da ima ekstra vse potrebne podatke + if (empty($extra['name']) || !isset($extra['price'])) { + continue; + } + + // Ustvari nov produkt za dodatek + $extra_product = new WC_Product_Simple(); + $extra_product->set_name($extra['name']); + $extra_product->set_regular_price(strval($extra['price'])); + $extra_product->set_status('private'); + $extra_product->set_catalog_visibility('hidden'); + $extra_product->save(); + + // Dodaj dodatek v naročilo + $order->add_product($extra_product, 1); + + // Dodaj meta podatke + $order->add_meta_data('_extra_' . sanitize_title($extra['name']), true); + + // Izbriši začasni produkt + wp_delete_post($extra_product->get_id(), true); + } + } + } + + // Dodaj single supplement, če je potrebno + if (!empty($_POST['single_supplement']) && ($_POST['single_supplement'] === 'true' || $_POST['single_supplement'] === true)) { + $tour_duration = intval(get_post_meta($tour_id, '_tour_duration', true)); + $single_supplement = 100 * $tour_duration; // 100€ na dan + $order->add_fee('Single Supplement', $single_supplement); + } + + // Nastavi skupno ceno + $order->calculate_totals(); + $order->set_total($total_price); + + // Shrani meta podatke + $order->update_meta_data('_tour_date', sanitize_text_field($_POST['date'])); + $order->update_meta_data('_participants', $participants); + + // Preračunaj skupno vrednost in določi znesek plačila glede na izbrani tip plačila + $payment_type = isset($_POST['payment_type']) ? sanitize_text_field($_POST['payment_type']) : 'full'; + $payment_amount = isset($_POST['payment_amount']) ? floatval($_POST['payment_amount']) : $total_price; + + // Shrani informacije o plačilu + $order->update_meta_data('_payment_type', $payment_type); + + if ($payment_type === 'partial') { + // Izračunaj zneske za delno plačilo + $deposit_amount = $payment_amount; // že nastavljen na 30% v JavaScript + $remaining_amount = $total_price - $deposit_amount; + + // Shrani podatke o delnem plačilu + $order->update_meta_data('_deposit_amount', $deposit_amount); + $order->update_meta_data('_remaining_amount', $remaining_amount); + $order->update_meta_data('_is_deposit_paid', false); + $order->update_meta_data('_is_remaining_paid', false); + + // Dodaj opombo naročilu o delnem plačilu + $order->add_order_note(sprintf( + 'Partial payment selected. Deposit: €%.2f, Remaining: €%.2f', + $deposit_amount, + $remaining_amount + )); + } + + // Shrani naročilo + $order->save(); + + // Ustvari Stripe Payment Intent + try { + // Če je izbrano delno plačilo, uporabi znesek pologa namesto celotnega zneska + $payment_amount_cents = intval($payment_amount * 100); // Stripe uporablja cente + + $payment_intent = \Stripe\PaymentIntent::create([ + 'amount' => $payment_amount_cents, + 'currency' => 'eur', + 'metadata' => [ + 'order_id' => $order->get_id(), + 'tour_name' => $tour_name, + 'tour_date' => $_POST['date'], + 'payment_type' => $payment_type, + 'total_price' => $total_price + ] + ]); + + // Shrani Payment Intent ID v naročilo + $order->update_meta_data('_stripe_payment_intent', $payment_intent->id); + $order->save(); + + // Vrni uspeh in client secret + wp_send_json_success([ + 'client_secret' => $payment_intent->client_secret, + 'thank_you_url' => $order->get_checkout_order_received_url(), + 'order_id' => $order->get_id(), + 'payment_type' => $payment_type, + 'payment_amount' => $payment_amount + ]); + } catch (\Stripe\Exception\ApiErrorException $e) { + // Če Stripe vrne napako, izbriši naročilo in vrni napako + $order->delete(true); + throw new Exception('Payment processing error: ' . $e->getMessage()); + } + + } catch (Exception $e) { + error_log('Tour booking error: ' . $e->getMessage()); + wp_send_json_error(['message' => $e->getMessage()]); + } +} +add_action('wp_ajax_process_tour_booking', 'process_tour_booking'); +add_action('wp_ajax_nopriv_process_tour_booking', 'process_tour_booking'); + +// Webhook handler za Stripe dogodke +function handle_stripe_webhook() { + $payload = @file_get_contents('php://input'); + $event = null; + + try { + $event = \Stripe\Event::constructFrom( + json_decode($payload, true) + ); + } catch(\UnexpectedValueException $e) { + http_response_code(400); + exit(); + } + + if ($event->type === 'payment_intent.succeeded') { + $payment_intent = $event->data->object; + + // Najdi WooCommerce naročilo + $orders = wc_get_orders([ + 'meta_key' => '_stripe_payment_intent', + 'meta_value' => $payment_intent->id, + 'limit' => 1 + ]); + + if (!empty($orders)) { + $order = $orders[0]; + + // Pridobi podatke o plačilu + $payment_type = get_post_meta($order->get_id(), '_payment_type', true); + $payment_amount = $payment_intent->amount / 100; // Pretvori iz centov + + if ($payment_type === 'partial') { + // Če gre za delno plačilo + $is_deposit_paid = get_post_meta($order->get_id(), '_is_deposit_paid', true); + + if (!$is_deposit_paid) { + // Označi polog kot plačan + update_post_meta($order->get_id(), '_is_deposit_paid', true); + + // Dodaj opombo naročilu + $deposit_amount = get_post_meta($order->get_id(), '_deposit_amount', true); + $remaining_amount = get_post_meta($order->get_id(), '_remaining_amount', true); + + $order->add_order_note(sprintf( + 'Deposit of €%.2f received. Remaining balance: €%.2f', + $deposit_amount, + $remaining_amount + )); + + // Posodobi status naročila na "on-hold" ali podobno + $order->update_status('on-hold', 'Deposit payment received. Awaiting final payment.'); + } else { + // Če gre za plačilo preostalega zneska + update_post_meta($order->get_id(), '_is_remaining_paid', true); + $order->payment_complete($payment_intent->id); + $order->add_order_note('Final payment completed via Stripe (Payment Intent ID: ' . $payment_intent->id . ')'); + } + } else { + // Če gre za polno plačilo, označi naročilo kot plačano + $order->payment_complete($payment_intent->id); + $order->add_order_note('Stripe payment completed (Payment Intent ID: ' . $payment_intent->id . ')'); + } + + $order->save(); + } + } + + http_response_code(200); +} + +// Dodaj rewrite pravilo za Stripe webhook +function add_stripe_webhook_endpoint() { + add_rewrite_rule('^stripe-webhook/?$', 'index.php?stripe-webhook=1', 'top'); +} +add_action('init', 'add_stripe_webhook_endpoint'); + +// Registriraj query var za webhook +function add_stripe_webhook_query_var($vars) { + $vars[] = 'stripe-webhook'; + return $vars; +} +add_filter('query_vars', 'add_stripe_webhook_query_var'); + +// Poslušaj za webhook zahtevke +function listen_for_stripe_webhook() { + if (get_query_var('stripe-webhook')) { + handle_stripe_webhook(); + exit; + } +} +add_action('parse_request', 'listen_for_stripe_webhook'); + +// Funkcija za kreiranje/posodabljanje WooCommerce produkta ob shranjevanju Individual Tour-a +function create_wc_product_from_tour($post_id) { + // Preveri če je WooCommerce aktiviran + if (!class_exists('WooCommerce')) { + return; + } + + // Preveri če je post type Individual Tour + if (get_post_type($post_id) !== 'individual_tour') { + return; + } + + // Preveri če je to avtomatsko shranjevanje + if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) { + return; + } + + // Pridobi podatke o turi + $tour_title = get_the_title($post_id); + $tour_price = floatval(get_post_meta($post_id, '_tour_price', true)); + $tour_description = get_post_field('post_content', $post_id); + + // Če cena ni nastavljena, nastavi na 0 + if (!$tour_price) { + $tour_price = 0; + } + + // Preveri če produkt že obstaja (uporabi SKU za povezavo) + $product_id = wc_get_product_id_by_sku('tour-' . $post_id); + + if ($product_id) { + // Posodobi obstoječ produkt + $product = wc_get_product($product_id); + if ($product) { + $product->set_name($tour_title); + $product->set_regular_price(strval($tour_price)); + $product->set_description($tour_description); + $product->save(); + } + } else { + // Ustvari nov produkt + $product = new WC_Product_Simple(); + + $product->set_name($tour_title); + $product->set_regular_price(strval($tour_price)); + $product->set_description($tour_description); + $product->set_sku('tour-' . $post_id); + $product->set_status('publish'); + + // Nastavi featured image če obstaja + $hero_image_id = get_post_meta($post_id, '_hero_image', true); + if ($hero_image_id) { + $product->set_image_id($hero_image_id); + } + + $product->save(); + } +} + +// Odstrani staro akcijo +remove_action('save_post_individual_tour', 'create_wc_product_from_tour'); + +// Dodaj novo akcijo, ki se sproži po shranjevanju meta podatkov +add_action('updated_post_meta', 'update_wc_product_on_meta_update', 10, 4); + +// Funkcija za posodobitev WooCommerce produkta ob spremembi meta podatkov +function update_wc_product_on_meta_update($meta_id, $post_id, $meta_key, $_meta_value) { + // Preveri če je pravi meta ključ in post type + if ($meta_key === '_tour_price' && get_post_type($post_id) === 'individual_tour') { + create_wc_product_from_tour($post_id); + } +} + +// Dodaj akcijo za kreiranje produkta ob objavi ture +add_action('wp_insert_post', function($post_id, $post) { + if ($post->post_type === 'individual_tour' && $post->post_status === 'publish') { + create_wc_product_from_tour($post_id); + } +}, 10, 2); + +// Izbriši WooCommerce produkt ko se izbriše Individual Tour +function delete_wc_product_with_tour($post_id) { + if (!class_exists('WooCommerce')) { + return; + } + + if (get_post_type($post_id) !== 'individual_tour') { + return; + } + + $product_id = wc_get_product_id_by_sku('tour-' . $post_id); + if ($product_id) { + wp_delete_post($product_id, true); + } +} +add_action('before_delete_post', 'delete_wc_product_with_tour'); + +// Funkcija za dodajanje ture v košarico +function add_tour_to_cart() { + try { + // Preveri nonce za varnost + if (!isset($_POST['security']) || !wp_verify_nonce($_POST['security'], 'add_tour_to_cart')) { + wp_send_json_error(array('message' => 'Security check failed')); + return; + } + + // Preveri če so vsi potrebni podatki prisotni + $required_fields = array('tour_id', 'participants', 'date', 'name', 'email'); + foreach ($required_fields as $field) { + if (!isset($_POST[$field]) || empty($_POST[$field])) { + wp_send_json_error(array('message' => "Missing required field: {$field}")); + return; + } + } + + // Pridobi podatke iz zahtevka + $tour_id = intval($_POST['tour_id']); + $participants = intval($_POST['participants']); + $date = sanitize_text_field($_POST['date']); + $name = sanitize_text_field($_POST['name']); + $email = sanitize_email($_POST['email']); + + // Preveri če je WooCommerce aktiviran + if (!class_exists('WooCommerce')) { + wp_send_json_error(array('message' => 'WooCommerce is not active')); + return; + } + + // Pridobi WooCommerce product ID + $product_id = wc_get_product_id_by_sku('tour-' . $tour_id); + if (!$product_id) { + wp_send_json_error(array('message' => 'Product not found')); + return; + } + + // Počisti košarico + WC()->cart->empty_cart(); + + // Dodaj produkt v košarico + $cart_item_data = array( + 'tour_date' => $date, + 'participants' => $participants, + 'customer_name' => $name, + 'customer_email' => $email + ); + + $added = WC()->cart->add_to_cart($product_id, $participants, 0, array(), $cart_item_data); + + if ($added) { + wp_send_json_success(array( + 'message' => 'Tour added to cart', + 'checkout_url' => wc_get_checkout_url() + )); + } else { + wp_send_json_error(array('message' => 'Failed to add tour to cart')); + } + } catch (Exception $e) { + wp_send_json_error(array( + 'message' => 'An error occurred: ' . $e->getMessage(), + 'error' => $e->getTraceAsString() + )); + } +} + +// Registriraj AJAX akcije +add_action('wp_ajax_add_tour_to_cart', 'add_tour_to_cart'); +add_action('wp_ajax_nopriv_add_tour_to_cart', 'add_tour_to_cart'); + +// Prikaži dodatne podatke v košarici in na checkout strani +function display_cart_item_custom_meta($item_data, $cart_item) { + if (isset($cart_item['tour_date'])) { + $item_data[] = array( + 'key' => 'Departure Date', + 'value' => wc_clean($cart_item['tour_date']) + ); + } + + if (isset($cart_item['customer_name'])) { + $item_data[] = array( + 'key' => 'Customer Name', + 'value' => wc_clean($cart_item['customer_name']) + ); + } + + if (isset($cart_item['customer_email'])) { + $item_data[] = array( + 'key' => 'Customer Email', + 'value' => wc_clean($cart_item['customer_email']) + ); + } + + return $item_data; +} +add_filter('woocommerce_get_item_data', 'display_cart_item_custom_meta', 10, 2); + +// Shrani dodatne podatke v naročilo +function add_custom_meta_to_order_items($item, $cart_item_key, $values, $order) { + if (isset($values['tour_date'])) { + $item->add_meta_data('Departure Date', $values['tour_date']); + } + + if (isset($values['customer_name'])) { + $item->add_meta_data('Customer Name', $values['customer_name']); + } + + if (isset($values['customer_email'])) { + $item->add_meta_data('Customer Email', $values['customer_email']); + } +} +add_action('woocommerce_checkout_create_order_line_item', 'add_custom_meta_to_order_items', 10, 4); + +// Dodaj order bump template na checkout stran +function add_order_bump_to_checkout() { + include_once get_template_directory() . '/woocommerce/checkout/order-bump.php'; +} +// Odstrani stari hook +remove_action('woocommerce_review_order_before_payment', 'add_order_bump_to_checkout'); +// Dodaj nove hooke za različne lokacije +add_action('woocommerce_checkout_before_order_review', 'add_order_bump_to_checkout'); +add_action('woocommerce_before_checkout_form', 'add_order_bump_to_checkout'); + +// AJAX handler za posodobitev košarice z extras-i +function handle_update_cart_extras() { + check_ajax_referer('update_order_review', 'security'); + + if (!isset($_POST['extras'])) { + wp_send_json_error('No extras provided'); + return; + } + + $extras = json_decode(stripslashes($_POST['extras']), true); + + // Odstrani obstoječe extras iz košarice + foreach (WC()->cart->get_cart() as $cart_item_key => $cart_item) { + if (isset($cart_item['is_extra']) && $cart_item['is_extra']) { + WC()->cart->remove_cart_item($cart_item_key); + } + } + + // Pridobi tour ID iz prvega izdelka v košarici + $tour_id = null; + foreach (WC()->cart->get_cart() as $cart_item) { + if (isset($cart_item['product_id'])) { + $product = wc_get_product($cart_item['product_id']); + if ($product) { + $sku = $product->get_sku(); + if (strpos($sku, 'tour-') === 0) { + $tour_id = str_replace('tour-', '', $sku); + break; + } + } + } + } + + if (!$tour_id) { + wp_send_json_error('No tour found in cart'); + return; + } + + // Pridobi available extras za tour + $available_extras = get_post_meta($tour_id, '_available_extras', true); + + // Dodaj izbrane extras v košarico + foreach ($extras as $extra) { + $index = $extra['index']; + if (isset($available_extras[$index])) { + $extra_data = $available_extras[$index]; + + // Ustvari nov produkt za extra + $extra_product = new WC_Product_Simple(); + $extra_product->set_name($extra_data['name']); + $extra_product->set_price($extra_data['price']); + $extra_product->set_status('private'); + $extra_product->save(); + + // Dodaj extra v košarico + WC()->cart->add_to_cart($extra_product->get_id(), 1, 0, array(), array( + 'is_extra' => true, + 'tour_id' => $tour_id, + 'extra_data' => $extra_data + )); + + // Izbriši začasni produkt + wp_delete_post($extra_product->get_id(), true); + } + } + + WC()->cart->calculate_totals(); + wp_send_json_success(); +} +add_action('wp_ajax_update_cart_extras', 'handle_update_cart_extras'); +add_action('wp_ajax_nopriv_update_cart_extras', 'handle_update_cart_extras'); + +// Prikaži extra podatke v košarici in naročilu +function display_cart_item_extra_meta($item_data, $cart_item) { + if (isset($cart_item['is_extra']) && $cart_item['is_extra']) { + $item_data[] = array( + 'key' => 'Type', + 'value' => 'Tour Extra' + ); + } + return $item_data; +} +add_filter('woocommerce_get_item_data', 'display_cart_item_extra_meta', 10, 2); + +// Shrani extra podatke v naročilo +function save_order_item_extra_meta($item, $cart_item_key, $values, $order) { + if (isset($values['is_extra']) && $values['is_extra']) { + $item->add_meta_data('_is_extra', true); + $item->add_meta_data('_tour_id', $values['tour_id']); + $item->add_meta_data('_extra_data', $values['extra_data']); + } +} +add_action('woocommerce_checkout_create_order_line_item', 'save_order_item_extra_meta', 10, 4); + +/** + * Prikaži dodatne podatke o turi v košarici + */ +function display_tour_cart_item_data($item_data, $cart_item) { + if (isset($cart_item['tour_date'])) { + $item_data[] = array( + 'key' => 'Date', + 'value' => $cart_item['tour_date'] + ); + } + + if (isset($cart_item['participants'])) { + $item_data[] = array( + 'key' => 'Participants', + 'value' => $cart_item['participants'] + ); + } + + return $item_data; +} +add_filter('woocommerce_get_item_data', 'display_tour_cart_item_data', 10, 2); + +/** + * Shrani dodatne podatke o turi v naročilo + */ +function save_tour_order_item_meta($item, $cart_item_key, $values, $order) { + if (isset($values['tour_date'])) { + $item->add_meta_data('Date', $values['tour_date']); + } + + if (isset($values['participants'])) { + $item->add_meta_data('Participants', $values['participants']); + } + + if (isset($values['is_tour_extra'])) { + $item->add_meta_data('_is_tour_extra', true); + if (isset($values['tour_id'])) { + $item->add_meta_data('_tour_id', $values['tour_id']); + } + } +} +add_action('woocommerce_checkout_create_order_line_item', 'save_tour_order_item_meta', 10, 4); + +// Preusmeri na custom Thank You stran po uspešnem plačilu +function redirect_to_custom_thank_you_page($order_received_url, $order) { + return home_url('/thank-you/'); +} +add_filter('woocommerce_get_checkout_order_received_url', 'redirect_to_custom_thank_you_page', 10, 2); + +/** + * Dodaj Customizer kontrolo za "drag & drop" Individual Tours znotraj Experience Journeyev + */ +function grilctours_customize_individual_tour_order($wp_customize) { + // Dodaj sekcijo + $wp_customize->add_section('individual_tour_order_section', array( + 'title' => __('Individual Tours Order', 'grilctours'), + 'priority' => 210, + )); + + // Definiraj razred znotraj funkcije, samo ko je potreben + class Individual_Tour_Order_Control extends WP_Customize_Control { + public $type = 'individual_tour_order'; + public $tours = array(); + public $journey_id = 0; + + public function render_content() { + // Edinstveni ID za ta kontrolnik + $list_id = 'sortable-tour-list-' . $this->journey_id; + ?> + + 'experience_journey', + 'posts_per_page' => -1, + 'orderby' => 'title', + 'order' => 'ASC', + )); + + // Za vsak Experience Journey dodaj kontrolo za Individual Tours + foreach ($journeys as $journey) { + $journey_id = $journey->ID; + $journey_title = $journey->post_title; + + // Pridobi vse Individual Tours za ta Experience Journey + $tours = get_posts(array( + 'post_type' => 'individual_tour', + 'posts_per_page' => -1, + 'meta_query' => array( + array( + 'key' => '_experience_journey', + 'value' => $journey_id, + 'compare' => '=' + ) + ) + )); + + // Če ni Individual Tours za ta Journey, preskoči + if (empty($tours)) { + continue; + } + + // Ustvari nastavitev za ta Journey + $setting_id = 'individual_tour_order_' . $journey_id; + + $wp_customize->add_setting($setting_id, array( + 'default' => '', + 'type' => 'option', + 'capability' => 'edit_theme_options', + 'transport' => 'refresh', + )); + + // Pridobi shranjeni vrstni red + $saved_order = get_option($setting_id, ''); + $order_array = !empty($saved_order) ? explode(',', $saved_order) : array(); + + // Sortiraj ture glede na obstoječ vrstni red + $ordered_tours = array(); + + // Najprej dodaj tiste v shranjenem vrstnem redu + foreach ($order_array as $id) { + foreach ($tours as $index => $tour) { + if ($tour->ID == $id) { + $ordered_tours[] = $tour; + unset($tours[$index]); + break; + } + } + } + + // Dodaj preostale na konec + $ordered_tours = array_merge($ordered_tours, $tours); + + // Dodaj kontrolo + $wp_customize->add_control( + new Individual_Tour_Order_Control( + $wp_customize, + $setting_id, + array( + 'label' => sprintf(__('Tours in %s', 'grilctours'), $journey_title), + 'description' => __('Drag and drop tours to change their order.', 'grilctours'), + 'section' => 'individual_tour_order_section', + 'tours' => $ordered_tours, + 'journey_id' => $journey_id, + ) + ) + ); + } +} +add_action('customize_register', 'grilctours_customize_individual_tour_order'); + +/** + * Razširi obstoječe JS in CSS za podporo urejanju Individual Tours + */ +function grilctours_customize_individual_tour_scripts() { + $script = " + jQuery(document).ready(function($) { + setTimeout(function() { + console.log('Začenjam inicializacijo sortable za Individual Tours...'); + + // Poišči vse sortable sezname Individual Tours + var sortableLists = $('.sortable-tours-list'); + + if (sortableLists.length) { + console.log('Najdenih', sortableLists.length, 'sortable seznamov za Individual Tours'); + + sortableLists.each(function() { + var journeyId = $(this).data('journey-id'); + var listId = $(this).attr('id'); + + console.log('Inicializiram seznam:', listId, 'za Journey ID:', journeyId); + + try { + $(this).sortable({ + containment: 'parent', + cursor: 'move', + handle: '.dashicons-menu', + items: '.sortable-item', + revert: true, + tolerance: 'pointer', + update: function(event, ui) { + var ids = []; + $(this).find('.sortable-item').each(function() { + ids.push($(this).attr('data-id')); + }); + + // Posodobi vrednost kontrole + var settingId = 'individual_tour_order_' + journeyId; + var inputField = $('input[data-customize-setting-link=\"' + settingId + '\"]'); + + console.log('Posodabljam', settingId, 'nova vrednost:', ids.join(',')); + inputField.val(ids.join(',')).trigger('change'); + } + }).disableSelection(); + + console.log('Sortable uspešno inicializiran za', listId); + } catch (e) { + console.error('Napaka pri inicializaciji sortable za', listId, ':', e); + } + }); + } else { + console.log('Ni najdenih sortable seznamov za Individual Tours'); + } + }, 1500); + }); + "; + + wp_add_inline_script('jquery-ui-sortable', $script); +} +add_action('customize_controls_enqueue_scripts', 'grilctours_customize_individual_tour_scripts'); + +/** + * Funkcija za urejanje vrstnega reda Experience Journeys glede na nastavitev v Customizer-ju + * + * @param WP_Query $query Query objekt + */ +function grilctours_order_experience_journeys($query) { + // Izvajaj samo za glavne poizvedbe in experience_journey post type + if (!is_admin() && $query->is_main_query() && + (is_post_type_archive('experience_journey') || is_home() || is_front_page())) { + + // Pridobi shranjeni vrstni red + $saved_order = get_option('experience_journey_order', ''); + + // Če je vrstni red definiran + if (!empty($saved_order)) { + $order_array = explode(',', $saved_order); + + // Uporabi shranjen vrstni red za poizvedbo + if (!empty($order_array)) { + $query->set('post_type', 'experience_journey'); + $query->set('posts_per_page', -1); + $query->set('orderby', 'post__in'); + $query->set('post__in', $order_array); + } + } + } +} +add_action('pre_get_posts', 'grilctours_order_experience_journeys'); + +/** + * Dodaj nastavitve za Custom Inquiry sekcijo v WordPress Customizer + */ +function grilctours_customize_inquiry_section($wp_customize) { + // Sekcija za nastavitve Custom Inquiry + $wp_customize->add_section('inquiry_section_settings', array( + 'title' => __('Inquiry Section Settings', 'grilctours'), + 'priority' => 107, + )); + + // Naslov sekcije + $wp_customize->add_setting('inquiry_section_title', array( + 'default' => 'Ready to Plan Your Custom Journey?', + 'sanitize_callback' => 'sanitize_text_field', + 'transport' => 'refresh', + )); + + $wp_customize->add_control('inquiry_section_title', array( + 'label' => __('Section Title', 'grilctours'), + 'section' => 'inquiry_section_settings', + 'type' => 'text', + )); + + // Opis sekcije + $wp_customize->add_setting('inquiry_section_description', array( + 'default' => 'A world of moonlit forests and twisting turquoise rivers, Slovenia is a fairytale destination. Home to storybook castles, historic towns, and picturesque alpine landscapes; let us create your perfect holiday experience.', + 'sanitize_callback' => 'wp_kses_post', + 'transport' => 'refresh', + )); + + $wp_customize->add_control('inquiry_section_description', array( + 'label' => __('Section Description', 'grilctours'), + 'section' => 'inquiry_section_settings', + 'type' => 'textarea', + )); + + // Gumb besedilo + $wp_customize->add_setting('inquiry_button_text', array( + 'default' => 'START PLANNING', + 'sanitize_callback' => 'sanitize_text_field', + 'transport' => 'refresh', + )); + + $wp_customize->add_control('inquiry_button_text', array( + 'label' => __('Button Text', 'grilctours'), + 'section' => 'inquiry_section_settings', + 'type' => 'text', + )); + + // Ozadje sekcije + $wp_customize->add_setting('inquiry_section_background', array( + 'default' => '', + 'sanitize_callback' => 'esc_url_raw', + 'transport' => 'refresh', + )); + + $wp_customize->add_control(new WP_Customize_Image_Control($wp_customize, 'inquiry_section_background', array( + 'label' => __('Section Background Image', 'grilctours'), + 'section' => 'inquiry_section_settings', + 'settings' => 'inquiry_section_background', + ))); +} +add_action('customize_register', 'grilctours_customize_inquiry_section'); + +/** + * Custom Inquiry Ajax Handler + */ +function handle_custom_inquiry_form() { + // Beležimo začetek funkcije + error_log('Custom inquiry form submission started'); + + // Preveri nonce (varnost) + if (!isset($_POST['security']) || !wp_verify_nonce($_POST['security'], 'custom_inquiry_nonce')) { + error_log('Invalid security token in custom inquiry form'); + wp_send_json_error('Invalid security token'); + return; + } + + // Pridobi podatke iz obrazca + $name = isset($_POST['name']) ? sanitize_text_field($_POST['name']) : ''; + $email = isset($_POST['email']) ? sanitize_email($_POST['email']) : ''; + $travel_date = isset($_POST['travel_date']) ? sanitize_text_field($_POST['travel_date']) : 'Not specified'; + $travelers = isset($_POST['travelers']) ? intval($_POST['travelers']) : 0; + $destination = isset($_POST['destination']) ? sanitize_text_field($_POST['destination']) : 'Not specified'; + $message = isset($_POST['message']) ? sanitize_textarea_field($_POST['message']) : ''; + + // Beleži prejete podatke + error_log('Form data: Name=' . $name . ', Email=' . $email . ', Date=' . $travel_date . ', Travelers=' . $travelers); + error_log('Form additional data: Destination=' . $destination . ', Message=' . substr($message, 0, 50) . (strlen($message) > 50 ? '...' : '')); + + // Preveri obvezna polja + if (empty($name) || empty($email)) { + error_log('Missing required fields in custom inquiry form'); + wp_send_json_error('Please fill in all required fields.'); + return; + } + + // Nastavi fiksni e-poštni naslov prejemnika + $admin_email = 'info@europewonder.com'; // Fiksni e-poštni naslov + $to = $admin_email; + error_log('Sending inquiry to admin email: ' . $to); + + // Nastavi zadevo + $subject = 'New Custom Journey Inquiry from ' . $name; + + // Priprava sporočila + $body = " + + + New Custom Journey Inquiry + + + +

    New Custom Journey Inquiry

    +

    A new inquiry has been submitted through your website:

    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Name:" . esc_html($name) . "
    Email:" . esc_html($email) . "
    Planned Travel Date:" . esc_html($travel_date) . "
    Number of Travelers:" . esc_html($travelers) . "
    Preferred Destination(s):" . esc_html($destination) . "
    Message:" . nl2br(esc_html($message)) . "
    + + + "; + + // Nastavi glave + $headers = array( + 'Content-Type: text/html; charset=UTF-8', + 'From: Europe Wonder ', + 'Reply-To: ' . esc_html($name) . ' <' . esc_html($email) . '>' + ); + + // Beleži podrobnosti e-pošte pred pošiljanjem + error_log('Attempting to send email with subject: ' . $subject); + error_log('Email headers: ' . print_r($headers, true)); + + // Pošlji e-pošto in zapiši več informacij + add_action('wp_mail_failed', function($wp_error) { + error_log('WP Mail failed: ' . $wp_error->get_error_message()); + }); + + // Pošlji e-pošto + $sent = wp_mail($to, $subject, $body, $headers); + + // Beleži rezultat pošiljanja + if (!$sent) { + // Beleži napako pri pošiljanju + global $phpmailer; + if (isset($phpmailer) && isset($phpmailer->ErrorInfo) && !empty($phpmailer->ErrorInfo)) { + error_log('PHPMailer error: ' . $phpmailer->ErrorInfo); + } else { + error_log('Email sending failed but no PHPMailer error available'); + } + error_log('WordPress admin email setting: ' . get_option('admin_email')); + error_log('Email sending result: FAILED'); + } else { + error_log('Email sending result: SUCCESS'); + } + + // Pošlji tudi e-pošto stranki + if ($sent) { + $customer_subject = 'Thank you for your inquiry - Europe Wonder'; + $customer_body = " + + + Thank You for Your Inquiry + + + +

    Thank You for Your Inquiry

    +

    Dear " . esc_html($name) . ",

    +

    Thank you for your interest in our custom journey services. We have received your inquiry and will get back to you as soon as possible to discuss your travel plans.

    +

    Here's a summary of the information you provided:

    +
      +
    • Planned Travel Date: " . esc_html($travel_date) . "
    • +
    • Number of Travelers: " . esc_html($travelers) . "
    • +
    • Preferred Destination(s): " . esc_html($destination) . "
    • +
    +

    If you have any additional questions or information to add, please feel free to reply to this email.

    +

    Best regards,
    Europe Wonder Team

    + + + "; + + $customer_headers = array( + 'Content-Type: text/html; charset=UTF-8', + 'From: Europe Wonder ' + ); + + error_log('Attempting to send customer confirmation email to: ' . $email); + error_log('Customer email headers: ' . print_r($customer_headers, true)); + + $customer_sent = wp_mail($email, $customer_subject, $customer_body, $customer_headers); + + if (!$customer_sent) { + // Beleži napako pri pošiljanju potrditvenega e-sporočila + global $phpmailer; + if (isset($phpmailer) && isset($phpmailer->ErrorInfo) && !empty($phpmailer->ErrorInfo)) { + error_log('Customer email PHPMailer error: ' . $phpmailer->ErrorInfo); + } else { + error_log('Customer email sending failed but no PHPMailer error available'); + } + error_log('Customer email sending result: FAILED'); + } else { + error_log('Customer email sending result: SUCCESS'); + } + } + + // Vrni odgovor + if ($sent) { + error_log('Custom inquiry form submission completed successfully'); + wp_send_json_success('Thank you for your inquiry! We will contact you shortly.'); + } else { + error_log('Custom inquiry form submission failed - email not sent'); + wp_send_json_error('There was an error sending your inquiry. Please try again.'); + } +} +add_action('wp_ajax_custom_inquiry_submit', 'handle_custom_inquiry_form'); +add_action('wp_ajax_nopriv_custom_inquiry_submit', 'handle_custom_inquiry_form'); + +// ... existing code ... + +// Dodatni AJAX handler za potrjevanje plačil +function confirm_stripe_payment() { + try { + check_ajax_referer('confirm_stripe_payment', 'security'); + + // Preveri obvezne parametre + if (empty($_POST['payment_intent_id']) || empty($_POST['order_id'])) { + wp_send_json_error(['message' => 'Missing required parameters']); + return; + } + + $payment_intent_id = sanitize_text_field($_POST['payment_intent_id']); + $order_id = intval($_POST['order_id']); + + // Preveri, da naročilo obstaja + $order = wc_get_order($order_id); + if (!$order) { + wp_send_json_error(['message' => 'Order not found']); + return; + } + + // Preveri status plačilnega namena z API klicem na Stripe + try { + // Inicializiraj Stripe, če še ni + if (!class_exists('\Stripe\Stripe')) { + init_stripe(); + } + + $payment_intent = \Stripe\PaymentIntent::retrieve($payment_intent_id); + + // Beleži podatke za razhroščevanje + error_log('Stripe Payment Intent: ' . print_r($payment_intent, true)); + + // Če je plačilo uspešno + if ($payment_intent->status === 'succeeded') { + // Označi naročilo kot plačano + $order->payment_complete($payment_intent_id); + $order->add_order_note('Stripe payment confirmed via AJAX (Payment Intent ID: ' . $payment_intent_id . ')'); + $order->save(); + + // Vrni uspeh + wp_send_json_success([ + 'message' => 'Payment confirmed', + 'order_id' => $order_id, + 'payment_intent_id' => $payment_intent_id + ]); + } else { + // Če plačilo ni uspešno + $order->update_status('failed', 'Stripe payment intent status: ' . $payment_intent->status); + wp_send_json_error([ + 'message' => 'Payment not completed. Status: ' . $payment_intent->status, + 'payment_status' => $payment_intent->status + ]); + } + } catch (Exception $e) { + error_log('Error verifying payment intent: ' . $e->getMessage()); + wp_send_json_error(['message' => 'Error verifying payment: ' . $e->getMessage()]); + } + + } catch (Exception $e) { + error_log('Payment confirmation error: ' . $e->getMessage()); + wp_send_json_error(['message' => $e->getMessage()]); + } +} +add_action('wp_ajax_confirm_stripe_payment', 'confirm_stripe_payment'); +add_action('wp_ajax_nopriv_confirm_stripe_payment', 'confirm_stripe_payment'); + +// AJAX handler za generiranje povezave za plačilo preostalega zneska +function generate_remaining_payment_link() { + try { + // Preveri, da je WooCommerce aktiviran + if (!is_woocommerce_activated()) { + wp_send_json_error(['message' => 'WooCommerce is not activated']); + return; + } + + check_ajax_referer('generate_payment_link', 'security'); + + // Preveri obvezne parametre + if (empty($_POST['order_id'])) { + wp_send_json_error(['message' => 'Missing order ID']); + return; + } + + $order_id = intval($_POST['order_id']); + + // Preveri, da naročilo obstaja + $order = wc_get_order($order_id); + if (!$order) { + wp_send_json_error(['message' => 'Order not found']); + return; + } + + // Preveri, da gre za delno plačilo in da je prvi obrok že plačan + $payment_type = get_post_meta($order_id, '_payment_type', true); + $is_deposit_paid = get_post_meta($order_id, '_is_deposit_paid', true); + $is_remaining_paid = get_post_meta($order_id, '_is_remaining_paid', true); + + if ($payment_type !== 'partial') { + wp_send_json_error(['message' => 'This is not a partial payment order']); + return; + } + + if (!$is_deposit_paid) { + wp_send_json_error(['message' => 'Deposit not yet paid']); + return; + } + + if ($is_remaining_paid) { + wp_send_json_error(['message' => 'Remaining amount already paid']); + return; + } + + // Pridobi preostali znesek za plačilo + $remaining_amount = floatval(get_post_meta($order_id, '_remaining_amount', true)); + if (!$remaining_amount || $remaining_amount <= 0) { + wp_send_json_error(['message' => 'Invalid remaining amount']); + return; + } + + // Inicializiraj Stripe, če še ni + if (!class_exists('\Stripe\Stripe')) { + init_stripe(); + } + + // Ustvari nov Payment Intent za preostali znesek + $payment_intent = \Stripe\PaymentIntent::create([ + 'amount' => intval($remaining_amount * 100), // Stripe uporablja cente + 'currency' => 'eur', + 'metadata' => [ + 'order_id' => $order_id, + 'payment_type' => 'remaining', + 'tour_name' => $order->get_order_item_name(0), // Ime prve postavke v naročilu + 'payment_description' => 'Remaining payment (70%) for tour booking' + ] + ]); + + // Shrani nov Payment Intent ID v naročilo + update_post_meta($order_id, '_stripe_remaining_payment_intent', $payment_intent->id); + + // Dodaj opombo naročilu + $order->add_order_note(sprintf( + 'Generated payment link for remaining balance of €%.2f (Payment Intent ID: %s)', + $remaining_amount, + $payment_intent->id + )); + + $order->save(); + + // Vrni podatke za plačilo + wp_send_json_success([ + 'message' => 'Payment link generated', + 'order_id' => $order_id, + 'amount' => $remaining_amount, + 'payment_intent_id' => $payment_intent->id, + 'client_secret' => $payment_intent->client_secret + ]); + + } catch (Exception $e) { + error_log('Error generating payment link: ' . $e->getMessage()); + wp_send_json_error(['message' => 'Error generating payment link: ' . $e->getMessage()]); + } +} +add_action('wp_ajax_generate_remaining_payment_link', 'generate_remaining_payment_link'); +add_action('wp_ajax_nopriv_generate_remaining_payment_link', 'generate_remaining_payment_link'); + +// ... existing code ... + +/** + * Theme Functions + */ + +// Vključi SMTP konfiguracijo +require_once get_template_directory() . '/custom-smtp-config.php'; + +// ... existing code ... + +/** + * Customizer nastavitve za About Us stran + */ +function grilctours_customize_about_page($wp_customize) { + // Dodaj sekcijo za About stran + $wp_customize->add_section('about_page_section', array( + 'title' => __('About Page Settings', 'grilctours'), + 'description' => __('Customize the About Us page content', 'grilctours'), + 'priority' => 160, + )); + + // Podnaslov + $wp_customize->add_setting('about_subtitle', array( + 'default' => 'Get to know our passionate team', + 'sanitize_callback' => 'sanitize_text_field', + )); + + $wp_customize->add_control('about_subtitle', array( + 'label' => __('About Page Subtitle', 'grilctours'), + 'section' => 'about_page_section', + 'type' => 'text', + )); + + // Nastavitve za člane ekipe + $team_members = array( + 'nejc' => 'Nejc Dovžan Kukič', + 'matic' => 'Matic Snoj', + 'luka' => 'Luka Dovžan Kukič', + 'jernej' => 'Jernej Antloga', + 'kevin' => 'Kevin Krajnc' + ); + + foreach ($team_members as $id => $name) { + // Naslov + $wp_customize->add_setting('team_' . $id . '_name', array( + 'default' => $name, + 'sanitize_callback' => 'sanitize_text_field', + )); + + $wp_customize->add_control('team_' . $id . '_name', array( + 'label' => sprintf(__('%s - Name', 'grilctours'), $name), + 'section' => 'about_page_section', + 'type' => 'text', + )); + + // Pozicija + $default_positions = array( + 'nejc' => 'CEO', + 'matic' => 'COO', + 'luka' => 'CFO', + 'jernej' => 'Travel specialist', + 'kevin' => 'Travel specialist' + ); + + $wp_customize->add_setting('team_' . $id . '_position', array( + 'default' => $default_positions[$id], + 'sanitize_callback' => 'sanitize_text_field', + )); + + $wp_customize->add_control('team_' . $id . '_position', array( + 'label' => sprintf(__('%s - Position', 'grilctours'), $name), + 'section' => 'about_page_section', + 'type' => 'text', + )); + + // Bio + $default_bios = array( + 'nejc' => 'A visionary leader with a passion for innovation and growth. Nejc drives the company\'s strategy with precision and purpose — when not in the office, you\'ll find him exploring mountain trails.', + 'matic' => 'As the backbone of daily operations, Matic ensures everything runs smoothly behind the scenes. He\'s careful and detail-oriented and brings the same dedication to cycling in his free time.', + 'luka' => 'Luka manages the company\'s financial strategy with focus and discipline. Reliable and analytical, he brings the same energy to both numbers and his love for cycling.', + 'jernej' => 'Friendly and knowledgeable, Jernej designs personalized trips with energy and enthusiasm. A history enthusiast, he brings stories to life through travel.', + 'kevin' => 'Creative and detail-oriented, Kevin helps clients plan seamless, custom journeys. He\'s a road trip specialist known for his helpful nature and great communication skills.' + ); + + $wp_customize->add_setting('team_' . $id . '_bio', array( + 'default' => $default_bios[$id], + 'sanitize_callback' => 'wp_kses_post', + )); + + $wp_customize->add_control('team_' . $id . '_bio', array( + 'label' => sprintf(__('%s - Bio', 'grilctours'), $name), + 'section' => 'about_page_section', + 'type' => 'textarea', + )); + + // Slika + $wp_customize->add_setting('team_' . $id . '_image', array( + 'default' => get_template_directory_uri() . '/images/' . $id . '.webp', + 'sanitize_callback' => 'esc_url_raw', + )); + + $wp_customize->add_control(new WP_Customize_Image_Control($wp_customize, 'team_' . $id . '_image', array( + 'label' => sprintf(__('%s - Image', 'grilctours'), $name), + 'section' => 'about_page_section', + 'settings' => 'team_' . $id . '_image', + ))); + } +} +add_action('customize_register', 'grilctours_customize_about_page'); + +// ... existing code ... + +/** + * Funkcija za obdelavo kontaktnega obrazca + */ +function handle_contact_form() { + // Beležimo začetek funkcije + error_log('Contact form submission started'); + + // Preveri nonce (varnost) + if (!isset($_POST['security']) || !wp_verify_nonce($_POST['security'], 'contact_form_nonce')) { + error_log('Invalid security token in contact form'); + wp_send_json_error('Invalid security token'); + return; + } + + // Pridobi podatke iz obrazca + $name = isset($_POST['name']) ? sanitize_text_field($_POST['name']) : ''; + $email = isset($_POST['email']) ? sanitize_email($_POST['email']) : ''; + $subject = isset($_POST['subject']) ? sanitize_text_field($_POST['subject']) : ''; + $message = isset($_POST['message']) ? sanitize_textarea_field($_POST['message']) : ''; + + // Beleži prejete podatke + error_log('Contact form data: Name=' . $name . ', Email=' . $email . ', Subject=' . $subject); + error_log('Contact form message: ' . substr($message, 0, 50) . (strlen($message) > 50 ? '...' : '')); + + // Preveri obvezna polja + if (empty($name) || empty($email) || empty($subject) || empty($message)) { + error_log('Missing required fields in contact form'); + wp_send_json_error('Please fill in all required fields.'); + return; + } + + // Nastavi fiksni e-poštni naslov prejemnika + $admin_email = 'info@europewonder.com'; // Fiksni e-poštni naslov + $to = $admin_email; + error_log('Sending message to admin email: ' . $to); + + // Nastavi zadevo + $email_subject = 'New Contact Form Message: ' . $subject; + + // Priprava sporočila za administratorja + $admin_body = " + + + New Contact Form Message + + + +

    New Contact Form Message

    +

    A new message has been submitted through your website's contact form:

    + + + + + + + + + + + + + + + + + + +
    Name:" . esc_html($name) . "
    Email:" . esc_html($email) . "
    Subject:" . esc_html($subject) . "
    Message:" . nl2br(esc_html($message)) . "
    + + + "; + + // Nastavi glave + $headers = array( + 'Content-Type: text/html; charset=UTF-8', + 'From: Europe Wonder ', + 'Reply-To: ' . esc_html($name) . ' <' . esc_html($email) . '>' + ); + + // Beleži podrobnosti e-pošte pred pošiljanjem + error_log('Attempting to send email with subject: ' . $email_subject); + error_log('Email headers: ' . print_r($headers, true)); + + // Pošlji e-pošto in zapiši več informacij + add_action('wp_mail_failed', function($wp_error) { + error_log('WP Mail failed: ' . $wp_error->get_error_message()); + }); + + // Pošlji e-pošto administratorju + $sent = wp_mail($to, $email_subject, $admin_body, $headers); + + // Beleži rezultat pošiljanja + if (!$sent) { + // Beleži napako pri pošiljanju + global $phpmailer; + if (isset($phpmailer) && isset($phpmailer->ErrorInfo) && !empty($phpmailer->ErrorInfo)) { + error_log('PHPMailer error: ' . $phpmailer->ErrorInfo); + } else { + error_log('Email sending failed but no PHPMailer error available'); + } + error_log('WordPress admin email setting: ' . get_option('admin_email')); + error_log('Email sending result: FAILED'); + } else { + error_log('Email sending result: SUCCESS'); + } + + // Pošlji tudi e-pošto stranki + if ($sent) { + $customer_subject = 'Thank you for contacting Europe Wonder'; + $customer_body = " + + + Thank You for Your Message + + + +

    Thank You for Your Message

    +

    Dear " . esc_html($name) . ",

    +

    Thank you for contacting Europe Wonder. We have received your message and will get back to you as soon as possible.

    +

    Here's a copy of the message you sent us:

    +

    Subject: " . esc_html($subject) . "

    +

    Message:
    " . nl2br(esc_html($message)) . "

    +

    If you have any additional questions, please feel free to reply to this email.

    +

    Best regards,
    Europe Wonder Team

    + + + "; + + $customer_headers = array( + 'Content-Type: text/html; charset=UTF-8', + 'From: Europe Wonder ' + ); + + error_log('Attempting to send customer confirmation email to: ' . $email); + error_log('Customer email headers: ' . print_r($customer_headers, true)); + + $customer_sent = wp_mail($email, $customer_subject, $customer_body, $customer_headers); + + if (!$customer_sent) { + // Beleži napako pri pošiljanju potrditvenega e-sporočila + global $phpmailer; + if (isset($phpmailer) && isset($phpmailer->ErrorInfo) && !empty($phpmailer->ErrorInfo)) { + error_log('Customer email PHPMailer error: ' . $phpmailer->ErrorInfo); + } else { + error_log('Customer email sending failed but no PHPMailer error available'); + } + error_log('Customer email sending result: FAILED'); + } else { + error_log('Customer email sending result: SUCCESS'); + } + } + + // Vrni odgovor + if ($sent) { + error_log('Contact form submission completed successfully'); + wp_send_json_success('Thank you for your message! We will contact you shortly.'); + } else { + error_log('Contact form submission failed - email not sent'); + wp_send_json_error('There was an error sending your message. Please try again.'); + } +} +add_action('wp_ajax_contact_form_submit', 'handle_contact_form'); +add_action('wp_ajax_nopriv_contact_form_submit', 'handle_contact_form'); + +/** + * Funkcija za pridobivanje nonce vrednosti za obrazec Custom Journey Inquiry + */ +function get_inquiry_nonce() { + wp_send_json_success(wp_create_nonce('custom_inquiry_nonce')); +} +add_action('wp_ajax_get_inquiry_nonce', 'get_inquiry_nonce'); +add_action('wp_ajax_nopriv_get_inquiry_nonce', 'get_inquiry_nonce'); + +/** + * Dodamo AJAX URL v JavaScript za plavajoči gumb obrazca + */ +function add_inquiry_ajax_object() { + wp_localize_script('grilctours-script', 'inquiry_ajax_object', array( + 'ajax_url' => admin_url('admin-ajax.php') + )); +} +add_action('wp_enqueue_scripts', 'add_inquiry_ajax_object', 20); + +/** + * Obdelava povpraševanja za ture brez cene + */ +function send_tour_inquiry() { + check_ajax_referer('send_tour_inquiry', 'security'); + + try { + // Preveri obvezna polja + $required_fields = [ + 'name' => 'Full Name', + 'email' => 'Email', + 'date' => 'Departure Date', + 'participants' => 'Number of Participants', + 'tour_name' => 'Tour Name' + ]; + + $missing_fields = []; + foreach ($required_fields as $field => $label) { + if (empty($_POST[$field])) { + $missing_fields[] = $label; + } + } + + if (!empty($missing_fields)) { + throw new Exception('The following fields are required: ' . implode(', ', $missing_fields)); + } + + // Preveri veljavnost e-pošte + if (!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) { + throw new Exception('Please enter a valid email address.'); + } + + // Pripravi vsebino e-pošte + $to = 'info@europewonder.com'; + $subject = 'New Tour Inquiry: ' . sanitize_text_field($_POST['tour_name']); + + $message = "A new tour inquiry has been received:\n\n"; + $message .= "Tour: " . sanitize_text_field($_POST['tour_name']) . "\n"; + $message .= "Name: " . sanitize_text_field($_POST['name']) . "\n"; + $message .= "Email: " . sanitize_email($_POST['email']) . "\n"; + $message .= "Departure Date: " . sanitize_text_field($_POST['date']) . "\n"; + $message .= "Number of Participants: " . intval($_POST['participants']) . "\n\n"; + + // Dodaj sporočilo, če obstaja + if (!empty($_POST['message'])) { + $message .= "Additional Message:\n" . sanitize_textarea_field($_POST['message']) . "\n\n"; + } + + $message .= "This is an inquiry for a tour without a fixed price."; + + $headers = array( + 'Content-Type: text/plain; charset=UTF-8', + 'From: ' . get_bloginfo('name') . ' <' . get_bloginfo('admin_email') . '>', + 'Reply-To: ' . sanitize_text_field($_POST['name']) . ' <' . sanitize_email($_POST['email']) . '>' + ); + + // Pošlji e-pošto + $sent = wp_mail($to, $subject, $message, $headers); + + if (!$sent) { + throw new Exception('Failed to send inquiry email. Please try again later.'); + } + + // Pošlji potrditveno e-pošto stranki + $customer_subject = 'Your Tour Inquiry - ' . get_bloginfo('name'); + $customer_message = "Dear " . sanitize_text_field($_POST['name']) . ",\n\n"; + $customer_message .= "Thank you for your inquiry about our tour:\n"; + $customer_message .= sanitize_text_field($_POST['tour_name']) . "\n\n"; + $customer_message .= "We have received your request with the following details:\n"; + $customer_message .= "Departure Date: " . sanitize_text_field($_POST['date']) . "\n"; + $customer_message .= "Number of Participants: " . intval($_POST['participants']) . "\n"; + + // Dodaj sporočilo v potrditveno e-pošto + if (!empty($_POST['message'])) { + $customer_message .= "\nYour Message:\n" . sanitize_textarea_field($_POST['message']) . "\n"; + } + + $customer_message .= "\nWe will review your inquiry and get back to you as soon as possible with pricing and availability information.\n\n"; + $customer_message .= "Best regards,\n"; + $customer_message .= get_bloginfo('name') . " Team"; + + wp_mail(sanitize_email($_POST['email']), $customer_subject, $customer_message, $headers); + + wp_send_json_success(['message' => 'Your inquiry has been sent successfully.']); + + } catch (Exception $e) { + wp_send_json_error(['message' => $e->getMessage()]); + } +} +add_action('wp_ajax_send_tour_inquiry', 'send_tour_inquiry'); +add_action('wp_ajax_nopriv_send_tour_inquiry', 'send_tour_inquiry'); + +// Enqueue popup scripts and styles +function enqueue_popup_assets() { + if (is_front_page() || is_singular('individual_tour')) { + wp_enqueue_style('popup-styles', get_template_directory_uri() . '/css/popup.css'); + wp_enqueue_script('popup-script', get_template_directory_uri() . '/js/popup.js', array('jquery'), '', true); + } +} +add_action('wp_enqueue_scripts', 'enqueue_popup_assets'); + +// Add popup HTML to footer +function add_popup_html() { + ?> + + get_error_message()); + wp_send_json_error('Failed to create user'); + return; + } + + // Nastavi vlogo uporabnika na "subscriber" + $user = new WP_User($user_id); + $user->set_role('subscriber'); + + // Dodaj meta podatek, da je bil uporabnik ustvarjen preko popup-a + update_user_meta($user_id, 'signup_source', 'popup_subscription'); + update_user_meta($user_id, 'signup_date', current_time('mysql')); + + wp_send_json_success('Subscription successful'); +} +add_action('wp_ajax_save_popup_email', 'handle_popup_email'); +add_action('wp_ajax_nopriv_save_popup_email', 'handle_popup_email'); \ No newline at end of file diff --git a/functions.php.backup b/functions.php.backup new file mode 100644 index 0000000..719d8ab --- /dev/null +++ b/functions.php.backup @@ -0,0 +1,533 @@ + esc_html__('Primary Menu', 'grilctours'), + 'footer' => esc_html__('Footer Menu', 'grilctours'), + )); +} +add_action('after_setup_theme', 'grilctours_setup'); + +// Registracija stilov in skript +function grilctours_scripts() { + // Glavni CSS + wp_enqueue_style('grilctours-style', get_stylesheet_uri()); + + // Google Fonts + wp_enqueue_style('google-fonts', 'https://fonts.googleapis.com/css2?family=Inter+Tight:wght@500&display=swap'); + + // Font Awesome + wp_enqueue_style('font-awesome', 'https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css'); + + wp_enqueue_script('grilctours-script', get_template_directory_uri() . '/js/script.js', array(), '1.0.0', true); +} +add_action('wp_enqueue_scripts', 'grilctours_scripts'); + +// Dodaj podporo za media uploader v admin +function grilctours_admin_scripts($hook) { + global $post_type; + + // Naloži skripte samo na edit in add new straneh za individual_tour + if (($hook == 'post.php' || $hook == 'post-new.php') && $post_type == 'individual_tour') { + wp_enqueue_media(); + wp_enqueue_script('grilctours-admin-script', get_template_directory_uri() . '/admin-scripts.js', array('jquery'), '1.0.0', true); + } +} +add_action('admin_enqueue_scripts', 'grilctours_admin_scripts'); + +// Registracija Custom Post Type za Experience Journey +function register_experience_journey_post_type() { + $labels = array( + 'name' => 'Experience Journeys', + 'singular_name' => 'Experience Journey', + 'menu_name' => 'Experience Journeys', + 'add_new' => 'Add New Journey', + 'add_new_item' => 'Add New Journey', + 'edit_item' => 'Edit Journey', + 'new_item' => 'New Journey', + 'view_item' => 'View Journey', + 'search_items' => 'Search Journeys', + 'not_found' => 'No journeys found', + 'not_found_in_trash' => 'No journeys found in Trash' + ); + + $args = array( + 'labels' => $labels, + 'public' => true, + 'has_archive' => true, + 'menu_icon' => 'dashicons-palmtree', + 'supports' => array('title', 'editor', 'thumbnail', 'excerpt'), + 'rewrite' => array('slug' => 'journeys'), + 'show_in_rest' => true, + 'menu_position' => 5 + ); + + register_post_type('experience_journey', $args); +} +add_action('init', 'register_experience_journey_post_type'); + +// Registracija Custom Post Type za Individual Tour +function register_individual_tour_post_type() { + $labels = array( + 'name' => 'Individual Tours', + 'singular_name' => 'Individual Tour', + 'menu_name' => 'Individual Tours', + 'add_new' => 'Add New Tour', + 'add_new_item' => 'Add New Tour', + 'edit_item' => 'Edit Tour', + 'new_item' => 'New Tour', + 'view_item' => 'View Tour', + 'search_items' => 'Search Tours', + 'not_found' => 'No tours found', + 'not_found_in_trash' => 'No tours found in Trash' + ); + + $args = array( + 'labels' => $labels, + 'public' => true, + 'has_archive' => true, + 'menu_icon' => 'dashicons-location', + 'supports' => array('title', 'editor', 'thumbnail', 'excerpt'), + 'rewrite' => array('slug' => 'tours'), + 'show_in_rest' => true, + 'menu_position' => 6 + ); + + register_post_type('individual_tour', $args); +} +add_action('init', 'register_individual_tour_post_type'); + +// Vključi datoteko za meta polja tur +require_once get_template_directory() . '/tour-meta-fields.php'; + +// Registracija meta boxov za Experience Journey +function register_experience_journey_meta_boxes() { + add_meta_box( + 'experience_journey_details', + 'Journey Details', + 'render_experience_journey_meta_box', + 'experience_journey', + 'normal', + 'high' + ); +} +add_action('add_meta_boxes', 'register_experience_journey_meta_boxes'); + +// Render meta box za Experience Journey +function render_experience_journey_meta_box($post) { + $target_audience = get_post_meta($post->ID, '_target_audience', true); + + wp_nonce_field('experience_journey_nonce', 'experience_journey_nonce'); + ?> +
    +

    + + + Describe who this journey is designed for. +

    +
    + ID, '_price', true); + $duration = get_post_meta($post->ID, '_duration', true); + $distance = get_post_meta($post->ID, '_distance', true); + $fitness_level = get_post_meta($post->ID, '_fitness_level', true); + $hero_image = get_post_meta($post->ID, '_hero_image', true); + $highlights = get_post_meta($post->ID, '_highlights', true) ?: array(''); + $inclusions = get_post_meta($post->ID, '_inclusions', true) ?: array(''); + $optional_extras = get_post_meta($post->ID, '_optional_extras', true) ?: array(''); + $itinerary = get_post_meta($post->ID, '_itinerary', true) ?: array(array('title' => '', 'description' => '', 'image' => '')); + + wp_nonce_field('individual_tour_nonce', 'individual_tour_nonce'); + ?> +
    +

    + + +

    +

    + + +

    +

    + + +

    +

    + + +

    + +
    +

    Hero Image

    +

    This image will be displayed at the top of the tour page. If not set, the featured image will be used.

    +
    + + Hero Image + +
    + + + +
    + +
    +

    Highlights

    +
    + +
    + + +
    + +
    + +
    + +
    +

    Inclusions

    +
    + +
    + + +
    + +
    + +
    + +
    +

    Optional Extras

    +
    + +
    + + +
    + +
    + +
    + +
    +

    Itinerary

    +
    + $day) : ?> +
    + + + +
    + +
    + + Day Image + +
    + + + +
    + + +
    + +
    + +
    +
    + + + + + ID, '_experience_journey', true); + + $journeys = get_posts(array( + 'post_type' => 'experience_journey', + 'posts_per_page' => -1, + 'orderby' => 'title', + 'order' => 'ASC' + )); + + if (empty($journeys)) { + echo '

    No experience journeys found. Please create one first.

    '; + return; + } + + echo ''; +} + +// Shrani meta podatke za Individual Tour +function save_individual_tour_meta($post_id) { + if (!isset($_POST['individual_tour_nonce']) || !wp_verify_nonce($_POST['individual_tour_nonce'], 'individual_tour_nonce')) { + return; + } + + if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) { + return; + } + + if (!current_user_can('edit_post', $post_id)) { + return; + } + + // Shrani osnovne podatke + $fields = array( + 'price' => 'sanitize_text_field', + 'duration' => 'sanitize_text_field', + 'distance' => 'sanitize_text_field', + 'fitness_level' => 'sanitize_text_field', + 'hero_image' => 'esc_url_raw', + 'experience_journey' => 'absint' + ); + + foreach ($fields as $field => $sanitize_callback) { + if (isset($_POST[$field])) { + update_post_meta($post_id, '_' . $field, $sanitize_callback($_POST[$field])); + } + } + + // Shrani array podatke + $array_fields = array('highlights', 'inclusions', 'optional_extras'); + foreach ($array_fields as $field) { + if (isset($_POST[$field]) && is_array($_POST[$field])) { + $sanitized = array_map('sanitize_text_field', array_filter($_POST[$field])); + update_post_meta($post_id, '_' . $field, $sanitized); + } + } + + // Shrani itinerary + if (isset($_POST['itinerary']) && is_array($_POST['itinerary'])) { + $itinerary = array(); + foreach ($_POST['itinerary'] as $day) { + if (!empty($day['title']) || !empty($day['description'])) { + $itinerary[] = array( + 'title' => sanitize_text_field($day['title']), + 'description' => sanitize_textarea_field($day['description']), + 'image' => isset($day['image']) ? esc_url_raw($day['image']) : '' + ); + } + } + update_post_meta($post_id, '_itinerary', $itinerary); + } +} +add_action('save_post_individual_tour', 'save_individual_tour_meta'); \ No newline at end of file diff --git a/functions.php.new b/functions.php.new new file mode 100644 index 0000000..7597c23 --- /dev/null +++ b/functions.php.new @@ -0,0 +1,533 @@ + esc_html__('Primary Menu', 'grilctours'), + 'footer' => esc_html__('Footer Menu', 'grilctours'), + )); +} +add_action('after_setup_theme', 'grilctours_setup'); + +// Enqueue scripts and styles +function grilctours_scripts() { + wp_enqueue_style('grilctours-style', get_stylesheet_uri()); + + // Dodaj Font Awesome + wp_enqueue_style('font-awesome', 'https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css'); + + wp_enqueue_script('grilctours-script', get_template_directory_uri() . '/js/script.js', array(), '1.0.0', true); +} +add_action('wp_enqueue_scripts', 'grilctours_scripts'); + +// Dodaj podporo za media uploader v admin +function grilctours_admin_scripts() { + global $post_type; + if ('individual_tour' == $post_type) { + wp_enqueue_media(); + } +} +add_action('admin_enqueue_scripts', 'grilctours_admin_scripts'); + +// Registracija Experience Journey post type +function register_experience_journey_post_type() { + $labels = array( + 'name' => 'Experience Journeys', + 'singular_name' => 'Experience Journey', + 'menu_name' => 'Experience Journeys', + 'add_new' => 'Add New', + 'add_new_item' => 'Add New Experience Journey', + 'edit_item' => 'Edit Experience Journey', + 'new_item' => 'New Experience Journey', + 'view_item' => 'View Experience Journey', + 'search_items' => 'Search Experience Journeys', + 'not_found' => 'No experience journeys found', + 'not_found_in_trash' => 'No experience journeys found in Trash', + ); + + $args = array( + 'labels' => $labels, + 'public' => true, + 'publicly_queryable' => true, + 'show_ui' => true, + 'show_in_menu' => true, + 'query_var' => true, + 'rewrite' => array('slug' => 'journeys'), + 'capability_type' => 'post', + 'has_archive' => true, + 'hierarchical' => false, + 'menu_position' => null, + 'supports' => array('title', 'editor', 'thumbnail'), + 'menu_icon' => 'dashicons-groups', + ); + + register_post_type('experience_journey', $args); +} +add_action('init', 'register_experience_journey_post_type'); + +// Registracija Individual Tour post type +function register_individual_tour_post_type() { + $labels = array( + 'name' => 'Individual Tours', + 'singular_name' => 'Individual Tour', + 'menu_name' => 'Individual Tours', + 'add_new' => 'Add New', + 'add_new_item' => 'Add New Individual Tour', + 'edit_item' => 'Edit Individual Tour', + 'new_item' => 'New Individual Tour', + 'view_item' => 'View Individual Tour', + 'search_items' => 'Search Individual Tours', + 'not_found' => 'No individual tours found', + 'not_found_in_trash' => 'No individual tours found in Trash', + ); + + $args = array( + 'labels' => $labels, + 'public' => true, + 'publicly_queryable' => true, + 'show_ui' => true, + 'show_in_menu' => true, + 'query_var' => true, + 'rewrite' => array('slug' => 'tours'), + 'capability_type' => 'post', + 'has_archive' => true, + 'hierarchical' => false, + 'menu_position' => null, + 'supports' => array('title', 'editor', 'thumbnail'), + 'menu_icon' => 'dashicons-location-alt', + ); + + register_post_type('individual_tour', $args); +} +add_action('init', 'register_individual_tour_post_type'); + +// Registracija meta boxov za Experience Journey +function register_experience_journey_meta_boxes() { + add_meta_box( + 'experience_journey_details', + 'Journey Details', + 'render_experience_journey_meta_box', + 'experience_journey', + 'normal', + 'high' + ); +} +add_action('add_meta_boxes', 'register_experience_journey_meta_boxes'); + +// Render meta box za Experience Journey +function render_experience_journey_meta_box($post) { + $target_audience = get_post_meta($post->ID, '_target_audience', true); + + wp_nonce_field('experience_journey_nonce', 'experience_journey_nonce'); + ?> +
    +

    + + + Describe who this journey is designed for. +

    +
    + ID, '_price', true); + $duration = get_post_meta($post->ID, '_duration', true); + $distance = get_post_meta($post->ID, '_distance', true); + $fitness_level = get_post_meta($post->ID, '_fitness_level', true); + $hero_image = get_post_meta($post->ID, '_hero_image', true); + $highlights = get_post_meta($post->ID, '_highlights', true) ?: array(''); + $inclusions = get_post_meta($post->ID, '_inclusions', true) ?: array(''); + $optional_extras = get_post_meta($post->ID, '_optional_extras', true) ?: array(''); + $itinerary = get_post_meta($post->ID, '_itinerary', true) ?: array(array('title' => '', 'description' => '', 'image' => '')); + + wp_nonce_field('individual_tour_nonce', 'individual_tour_nonce'); + ?> +
    +

    + + +

    +

    + + +

    +

    + + +

    +

    + + +

    + +
    +

    Hero Image

    +

    This image will be displayed at the top of the tour page. If not set, the featured image will be used.

    +
    + + Hero Image + +
    + + + +
    + +
    +

    Highlights

    +
    + +
    + + +
    + +
    + +
    + +
    +

    Inclusions

    +
    + +
    + + +
    + +
    + +
    + +
    +

    Optional Extras

    +
    + +
    + + +
    + +
    + +
    + +
    +

    Itinerary

    +
    + $day) : ?> +
    + + + +
    + +
    + + Day Image + +
    + + + +
    + + +
    + +
    + +
    +
    + + + + + ID, '_experience_journey', true); + + $journeys = get_posts(array( + 'post_type' => 'experience_journey', + 'posts_per_page' => -1, + 'orderby' => 'title', + 'order' => 'ASC' + )); + + if (empty($journeys)) { + echo '

    No experience journeys found. Please create one first.

    '; + return; + } + + echo ''; +} + +// Shrani meta podatke za Experience Journey +function save_experience_journey_meta($post_id) { + if (!isset($_POST['experience_journey_nonce']) || !wp_verify_nonce($_POST['experience_journey_nonce'], 'experience_journey_nonce')) { + return; + } + + if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) { + return; + } + + if (!current_user_can('edit_post', $post_id)) { + return; + } + + if (isset($_POST['target_audience'])) { + update_post_meta($post_id, '_target_audience', sanitize_textarea_field($_POST['target_audience'])); + } +} +add_action('save_post_experience_journey', 'save_experience_journey_meta'); + +// Shrani meta podatke za Individual Tour +function save_individual_tour_meta($post_id) { + if (!isset($_POST['individual_tour_nonce']) || !wp_verify_nonce($_POST['individual_tour_nonce'], 'individual_tour_nonce')) { + return; + } + + if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) { + return; + } + + if (!current_user_can('edit_post', $post_id)) { + return; + } + + // Shrani osnovne podatke + $fields = array( + 'price' => 'sanitize_text_field', + 'duration' => 'sanitize_text_field', + 'distance' => 'sanitize_text_field', + 'fitness_level' => 'sanitize_text_field', + 'hero_image' => 'esc_url_raw', + 'experience_journey' => 'absint' + ); + + foreach ($fields as $field => $sanitize_callback) { + if (isset($_POST[$field])) { + update_post_meta($post_id, '_' . $field, $sanitize_callback($_POST[$field])); + } + } + + // Shrani array podatke + $array_fields = array('highlights', 'inclusions', 'optional_extras'); + foreach ($array_fields as $field) { + if (isset($_POST[$field]) && is_array($_POST[$field])) { + $sanitized = array_map('sanitize_text_field', array_filter($_POST[$field])); + update_post_meta($post_id, '_' . $field, $sanitized); + } + } + + // Shrani itinerary + if (isset($_POST['itinerary']) && is_array($_POST['itinerary'])) { + $itinerary = array(); + foreach ($_POST['itinerary'] as $day) { + if (!empty($day['title']) || !empty($day['description'])) { + $itinerary[] = array( + 'title' => sanitize_text_field($day['title']), + 'description' => sanitize_textarea_field($day['description']), + 'image' => isset($day['image']) ? esc_url_raw($day['image']) : '' + ); + } + } + update_post_meta($post_id, '_itinerary', $itinerary); + } +} +add_action('save_post_individual_tour', 'save_individual_tour_meta'); \ No newline at end of file diff --git a/header.php b/header.php new file mode 100644 index 0000000..06b1b00 --- /dev/null +++ b/header.php @@ -0,0 +1,54 @@ + +> + + + + <?php wp_title('|', true, 'right'); ?><?php bloginfo('name'); ?> + + + + +> + + + +
    +
    +
    + + + +
    +
    +
    + +
    + + + Custom Journey Inquiry + +
    \ No newline at end of file diff --git a/images/Kevin.webp b/images/Kevin.webp new file mode 100644 index 0000000000000000000000000000000000000000..52f046f29eb8b87d9b4edd671a484766e11706fa GIT binary patch literal 97288 zcmV(lK=i*-Nk&Ehd;tJgMM6+kP&gp;djS9tatWOQDslwR2R>~ymPsTcr?(<-xsu=w ziD_y!Y2RM)|JzW%b^oP@lrHkb|L;hy!__APN<4bu|3^2E|NT`(7;2O6ZR*O|AFsJl z^*`?(F8@jYxBQ2aXRv>i{h;^){)7G7{@?fSZjbf5pM0fAXb+-%_dmD){PX``|Ns3SwmyIU zum9is9%lZF`=9>*<$uceyZ_HkexQ z{ZD?N{{M$o?0#nHyVLOA8&i9@P18{hnI+poH-G5hayJM)oHn5nXh%j()pt&YHo~Ea_o~I`uxHd zqlyA^Y^Z_RDqhpT*0cTcL4Vw6DR z%_;7)De_@avoZc6d#)&$=q_1}qtq;a5v+RFqY>t|E|FbRQgay<6y~JIWPfLi{W>rX zG@@g3bpM12hy_R(Ft}i&B8^)lI}E!br4&2h|Hla6fs7ti>y}Tj98$8FCTiD*ehu#xv zHqN{2LZ}BVMV*+xz)~)zYNf+njv*A{2h!?hytlT<1h&VJAXs=UdM5QZ=;`aSZKh`Z z?m_@Kgt0}XC%Teh|y*+gj(FQnxT?1@qA8zX?~o7BjgCI zk5W8TUKa~3qCLf8%x$GhxU6|6}9Oe=Tsa$gTdx2^kWR-rNF;%Tgq=%Jf`{eYdYPNq(3?7tJ!k4S8NddO*P+ za4fvAj@3YZ0_bcKOVtE+&M3|7H^3gH`iDyuodB(4z5JO>h>RUQ!3i&db*QwTo}so7 zEkim~7(I%FO))9D*G{|;CXY~*rAUJ{<_zxX%(;-UB$kMpXHLC8^#=6kqH{#bYLiRN zTQt!}X;@)C=h130G0d^ed|=+(;;nW+n=sVus04NPUgu!c5Ior}GFs_It61NVWvWgE zD=q~L0tWRdP#u$9T=l$k zK>K64So=HjHWQAI1NWdnLIvVW;l03rV^O7ky8t1JIDJx%5c2O4lf@8(uAn*ahu8mA zAmSAj0xzKxy|@x#`W8cK0&~+lRGdgRoJBvHlW4*?uxWs%; z?<}296q_d>waM%ZQ#hq<7>6knB)q>g&qXABdzuZCwWd%|>D@F#$mSyjSdU~QwKfr3 z;QAry`m<}(aHh9@EsS`SCK4@HE*|l%~8NtDP`!ac`Jo*x933;e* za%8reyvD6V11!Vk$;C7k#)rIbO_e6-PL75tGNKNvRz%jFFS!ps2lpQF#JC_Z<4xI z2D{?n4N)@y+z_yARC{41E!t0G;kgw z?Dp>NaSo#9Cxb#~*`5*8YwZ$(+El4@gM-tEs-q=Qbk+2b*Zqp1W|MvU1%u!hB*bJS zhf_1o?*6s>da|viU_c%+eT&LA*f`+RQ_2$$R2K47l^`!lxM|T4g;KK!&Rv0&22iH_ zqlt?C99oa&G(~TVwTZ;%3W1tpwukmE1Bv}Ef#6=MA$yZf-PTpCxr5 zZ!LWALEp|pnkct5N>=vi0N|P(7B7d8X)CW)2?#Gg{0GkSU#mJz+4Y(R@;VwTxBs0O z(V=O;iA|!q4Kq-~R;wW^t|*t|@$WGV@J0-xE`*ED7u7~@z*_f}Gf$2LT-a0>LO5POq z?BvH0uW}nTbKP-hStCN<`2@mLFFLOW&S7tQ6M9TWil%5|)DV$Vs+HzVf?$jP3*lJs z=3UBYUl1@KQZL^Uw6N-$Ddz)OL1f@Srd8tvgvDjEpY7+4%2W)2_#(x# zS+U&`R7P?9M$xyFsJ|S?m5xMQOimV|r~Bw>95LD6BMzT_E_UlxXh$7n>eyv6)yaYV z1oD!FIR<|~99!9(eLwCvhQDLYSe>lYo%NaHXJl4fra3d>IK$&$y>F*NLcSgxyc5F{ z5fcgNYy(JU1W22J%o5`4cLy<@a-d+qvQ@HKEWA_6eMrwJ*2=ainnAQJ(pou^b==<> z*+75UQ=!Eg$0LUn9nkI3PvwUU4n#QBsM|1%E41J$e$h2{O&~12;k0?H50W82 zVM=~^&`f84zf>q1IO=qs9Y{9^r9?#71u=oI`SL|2~?=})=B{?YUM5k8A_w&V{`;du!_MH|zwHqKp0*Q;n~ zEfVR*WVG}A{%YYq-gV4q5oWaj){38NMN8hP--&yJe=(7wB)plq2mZGerb*yH@PH?2 z*s0xiOL>~gxv1DE#&CT)6iGOeZPsgX>Zw-1sq~wT`A!-^UA$AfidO}qCMwg;EFDx+ z2ut_Lt(>&b&R_8^cS@Q|EG~i`WxApy=BFu7T zAEI-%iw$F}F~!51`us|e3+lknd0hG&pqwxYac@)aR|Z8giQc`am912Gz{}TmJ~%>g zxFI{3EidR88CxVhP@VO4g1A^ZvNNUgH%ws17%s!B7w0c7V{n#8d<%)y^LVn8_z%S| zV@vBvV3N4>W*<7S2)gyrKAH_%pa5ApbYJCPJO(D;Y%K&|GRkIM$Ft<-l{ZNyh-0Sy zv&2A!4c(%nxfOz1BXwq3&cXeVt1bxBAh-UMkk&V-RWud^SNuDA^)8Vvl)F9f2=eSKfThBt&o0J4pa~0&TB#$xi+ysT4fNju1`~q}5{cc@eY?S`WwQYB?uc2@^Ij zwOcn*64g_(%$y-@*jXE}K|E4sCe}>QY{0RC^fQm24#j$ER7{C@1 zF14wwTYqhAKq#o_1A0T!uF_LzkrfCj*x*V=G7ouyTAK26Co}kS;O>Lr(K>5x;#xOemR$1 z5cLP%4vgAV4+jJw0&~W!S$H8ks-Xj&iK9Bj5T#Cuy> zrB^69VY^OBXygntmYj?V@Va{A1oO;DhV1?EW97fvFe!^4P_ zJf}ep!SOj#Y)p?kC3jEKSw{u0rVZ18=22eAe-hD-P2*}3h=MH)& zUXx`=*4)TxUMdcHTCWx7tA@P96fVT$9sj!}|9%~`%mUWjt)sFM0%@Sn&e^-HqBdP5 zM~J@wEu??_!C1T#rEP!DDdH1UxQc>VJ(c9lNDgIXk3puRor*%gmzgPL;j)M_qdVl= zo2vocM%EGox0AmUGMhfbYEWj6R~7_q8wvV^lw}9kiTqZTtL;l2!(iSd zLNWB7OGv0lrZTXx81e|rdZ3D??92))le}bY=LbJNg+ZslA!vx4l>^X`y`_xh42y3Y#{^$WgY7yk*mLcMm z;zGz!>{I|>@bjt}qzh8ZLy?`uM3!rAml~299`Nxd7*|HRLeD5xz1K$(?d0M;aN*JH+psyeZMQBg$!r=v`{8TK>r!(APr=cbhJDxx_0Wnu{p!W|py@XYxhReV8L(u= zz_+pZJ{aDDDv?ryzIi5!>nc%eVG9ey-D;hRsytc?$DK-aQO#$mx}R-FBz1VBlO|c%?=F9(y9>aJxG4prnS4+zADOI=fIZ;U z{}hKwgvF|)IxH~75Ii^Y;d2^>7QV)0xhk_|YCQ@=2hv_=O9K}4E|LnKSnQ%npl*<& zC91%Ue)HSUBQ}grOEj^&?X;{C4@O(Jg_d*w95GYqztv1!tzo>YI|E3E>GcYYTV7x{9S%jEL`w-ed;l=V|Q4D6t%D@Kqm?> z`+rfy?%L2b{H31!$OwKU4SUju0QBXTu@E1MyoZ6Nb*9h4xI!f5Cb`odgb_$j_}}ljVdOU1g6T?_o>@{Me+4`szjITWZO_|iIM&4pd$XIR zR|t$LfkRY=&!+9h}cibdc??Dr15Do7k_WD zt?G5)7WT;m&H%Ue32C>}#4ZZ(cQj(JV!#LyekG>LX`M;)QL}aoXD`oS#tYa{#rg7w z&zoZFdc1wVS`QRH{t|@pY!6x9IoPeAH4S1#&?Z^|3mKLu9W@+Hkr@GH2q2syculU? zZCh?dk7pVOGPMeJe+jOrx+4PlsHz@KH~{dynZDt09jG{9oG@rzPDfLphnj$*WA;lGZ_O7Z#bjXVaIDp9tjH> zlFRu0lyjqkh#n?}fyQLhsqoII=5gEA3T8*#Yx(iDU62kbuJ_@D)SbYSxayS-d1RiC zA@jc}W&j@Y$joRI;IU5=HxkEi&mGT zQ-1!hH)K;&Z*H(6@#ka^w&nhu)k1#(H`|TZ8zw!~)Y(ler6ey-tK4ZvqmK$x?mfW~ zZ)I$?Wx<_pn#8aZ;U{If%v_@Po#luB!Xe*%+5Ak2$czM8sMr0&z>G*50+5}s6VPNw zkZnZ{y;u+ucx8;DP8KeFZO^xs#}F zqb2#0s?kO%%J?yQ8LF{C_B5uyz?RL)!3pGDLlKv{R~{vIhpA27JQE28l0oKa!!eA5 z5mY+~)UgJuU6FEGBap9RrZMpfyMrKxuh$n%Y?ZgYVXr!g(6QiJOut%U&E!e!4M(sq zIXJV-0!Jtmx*|2T;m|{0SZAMXaf=-atyOMtaB{ScjaLDb;1^s``)HyfiQrCn;ZEVW z)YNs`X#5`tKQHvwUTNmTp4p*!(g^V@jD`lG5E~cJ>^Le}?Wj&-mL9d+*=Xei++i=4 ziEEeMEh_YjbmE8Sm~b-bp3tdGH>|o??wChyenMi z3O%tv4luIpARBjgOvJhgh2TGJ_+MY!Gg&{Wj-l`x7jD7N1?MRK>v)@>z{Nt{$JYvN z?k#OpmU~&AGx#Yr+9O2LtPs(bjqOHG4aqvUT&K6e`gfXLiu$1mfB_0TjADX;Sj7JS zSp69WF54R=1(0*;%dNVyA=dZx;aspOAw@&Wgv7v(1s?J^j&N(uuAiweuqJ$_g)f1; zqXzL>bQ;a~|L>#AJ+ke04b1>+JqrJZcIyK0|DJ2;95`XSI4kwV|4!~BBIfH^>SB_O z^e8HwbegQ^>leWJXTyL$8@MN*&$Da|BrcSREmR+-qerYXlYdV*XfFovxr*y6i=88i zKRYy(-O`UE85S8#rywW>EpVJ91}i-9E{PIV#yDYD5k?$(n>0$sPgqr+W`R&mZbeRoZ2tT7hL!IR z#y#Fu>3w;yGb*WJEfAGOUeT-Jq1X1Jsf0xfwMFv8wmDXvg$(8=pNbK$B<^7YFpSNa zLJ~XPV(_ZFP1+85!-lRO%O|e)Jox0XFi3H&Ko}unW&&0e9jCL;PfxFejth`(ry^o9 z-=)bnX>!PkVK)W)EjS6d23~xgk9%_cBrxe^STwhzME|pS-skGiuGnR{>#W0|7!kH= z(F9=;NZ10`9KV!CRSE9dR3%!{KbJBr(Dy+Jz}0%uLkfbewkHu!-_>FyxzeVscYZ&# ztL7~Q6hJ0X*R>GbV7sd0OnY3o>y3&u7=$=|Oeea@)kfDIi)Y*$XsDh`G4x;~p--vNe{XJ9k}Dd&$JZRA4Csof2Lym^v^1E|C89*>9j zjSU@r`eQawfomdUZLgA{#lwPdV+8SoZzm3uEb-k7J2c6h2%wJdrYB2Tdj9(qS?lD-6ffV_F z-2%>pPmcP7@Cq1XKNjC~8UeU?xXnVsPqjs>mUv@X9Ne&cM1m>KaLkE58ulIz5#E$M)^q5NZh+4Bg0Mr0(^ zhg=K3ltk^3*fy(fo?FgpvBQ=TB3@d4X7mZa2R|BpH-Q!5`pS+r;;~|gt7X=a6&G~4 zAWlIEK>*ao%EX}Z-9D6>fr25#HbnZr@YrTinw%)LVqg4rqO5{hCFN5LvH?mOy8-Gl zX|N9yNH5@reL9O}dl{L;m%ie_5l|6q|KvUz8eas9%HFsjfNI@-or1SNi;^YK-AZ4b z&xS!bX`WSu`C-925)WoHeHUh!pAe}{dKbG#Xi+a`( zyh*te+WVW~A}y8#`xuta!D3FL16QNCn>wvOvYfux@yV{ALyMj{B=zIMY12YAvmCXX z1UH+#X}xNkjQP5}$yF3{SR>=+sb88(tr=avaiKpsH(oSWI8U4yylaxZt;_BZ$H7DCKmi|$>} zL4PpMARH1WhUx?|OwQWUiJ&SwNw9Z8j^O$S&ae}neb@f^&op{q{dtY^bOzPgz@2gB z?(5oh>un)V>X6Huti(nln8BZJ%ptMUV$@x4T?YSxmFTH6#G zEAGc2WnKoZZ+(u6#2Z*R&*7h^)#qvXQ&c>`PShL%ZvG9X0qUAk2_*Nj zPxeG~^C8%kl6ya8_$Ies6Q?G#p(+6g6&d?Qoc%>KE z24qzX;6CmO77;>3ltLbl+4bOD)~?u+ncfw+UEZZiy4%UJ*=GL#L_{syGtmNm>}GIe z;pM=R0Em*bld$iK3$rj3B$=UO01~p6EH!XwrJqE znD$!XmaazaG`a<0g|Mn82d0XzQv?WB=y!1n#Wfj%yasBgH#kXCWJ_x*;gW~LVjg#U zR|E#X63KY!f>PgZrHSqF7xf9ap2Tc9tQtT2(=|O=M364lj;E<)m#4Ok-0MK6p5Mh5 zWk!X)#z*14)Y*rC)JYg|mbgeYvHq9RnaO!Z7N4{XS){|F^4uXK6(`>0{QCi}c?xR_ z@1F+yPTz@Je7>PepG*K35O8;7)@DcQKeh;(n zNI~T8L){F8Vdi%om*uvdR=zvGeN3*rYvvOgS<8=*f~c}(C)p9U{m*a_-CyW{NNzx zT#i`LZ*0&3?ChHM>Vl!KmfZ^x(l{H}Y5tL~qn?@OIqiRuiZU400Wgn6WSocTsSEMR zyoUn9pWU)jp;3Rp2+fW+5<#J`R^-GmuL=jJ8wVV@6YTrBB14r^HxWB$;>^w6(e3)o z;sV$uUlFqQx2R4QoSRxcaZc`SRDqQPZJ09TO2QLtt`n&_6094XrkTk=dCUfHoPt-w z?DsDLkK07YWE9Vl$l05|c2vFal7~NFKa)$lk%MLvyAxuZH;jT2fRP_G0I;( z-<$v`Sz?%5Ij}&;TqZ=WYh$d%5lLiYK1fqFYiRa!X9=I789?Z^EB|aPk4Zm-oldD5 zD&O8B*amJW*#o~^Y#&UqL-v~#)5y$p*tzYAPHuz|+252p%;JtZfT;HmLAsHe05~K# zCGo59=4PVUI@?c{etai3(DO7#6LbaFNP(wS1A5wDfCYB~DbG+>I5=N!p$1m-jzb$> zTp4f(C}~z8zxo(dN@Dk_G}MhuY(s|Q5j*kG7XlI&6$R(6yA2$=a&Q=IuT*!*5Ur9k zAp^QC8&b@8052Z9kegDJ-fNx;B+9m@_zUsPDCXf#0HQd4%6*HY^=pcN!AOt!xvS5g3SpDk#8@i1gb_J1b-m*ypXX-v7N?zu% zDovfy^cJk{*?kR&Jj2X%(<|`dM3-075Z8j|93-3cqqvh*pB>CUXhZ7y{IS%@WX98i z`R!cZ@PP+EYY095BR2}tr+sf{fh0-_gpwum5Eja|zMyt(wJt6eQM+*AzH#069YO;y7O6%fF1mu3@m@p*LZc%tV42F z4n$qGNf|};0-5GTunznP{hlWM*5FzI>*5XyernY=z@Md@vSuY5h`)}UmmP5j-}|*n zLgq~G)aUkBLLEH@JI8(`8cgrbrq815vvT#fYQ$%I@OfMHFT3J+_OI4Vkv;BZHkzZ9 zs!H-9LLFTT3d!Hv&;srEq{>nuP1v%>GviQzVZ8(PPG>^ku_$U@eQZ^r$2V&CECyCD zWd}d`A^E;Y!u&SyOQ$od#o(!k&9mj(w9OT%X%ZsBrJUIY8Uxr@HyQ*40&MkV*SqXH zSi-mY)cr;szyam@Qb6}b33u<3R}y|YB1?LTRybWBxHd^$QiphzpnNBjv{#PG7WrSx zwq2GwTe&OGtP9w9^cNXxe^}gRSZN1AP7gA+9_v=&mhc4py#))IX zQ)P6I&YtRr-Vd=zV^*IT;@3w-Ae~`NVFAZ*3Wg+Vs9L`TZq25htZMlXX&PTA$THuG z?%@`Mump>(rqe;QN+p6_!Rrj`k5?iooGZ{97z?E%ZglM3SGjfS4OHl=$ODJmR3h_h4s)pV*A&1K{K8V_Z!nL*Wp1hnv5N z5?e}KU9P=W0s!9S}oy=fqVa!h2l%Zg2-_z#64=@oCJlIB z$*A009>L|sok?nrF6U2@2?0RO`-q=oqC=TO<#dQE?m?2jT)p_i5c=aS%pxVi;kcpM zrjeuIDCp3{wFIw^is8!(l=IlM0WIKQNn^~|B(l895jnN^5%gHI`Fu$~g~qYRB*`b$ zZcE*_VR0%7HY|4h(1`xyR5pvsjo3c*0NN1`m0wbtrjA}`@yoTv+CSACb_k2n(GGU; zpwsfu0K=~t=bqH@^KI-F9G2o$b{)_Nd%>#{hgZxA2pI%kRnOiyq=ByYPCPD|OX0AbEj)=%%Irr}BHh%HB}5RQ<5?0}iNMhD=-u+kPR z9Jr@t#xETFK-%v`4}~H=LQJ2i=@q8*cBgg-DlwUrez9I-vO73ctyL^^Lq{K(?r2?a z-Wc!pLtndmO%KNa!sA6>4)kzf#o7~Z=Hb4jn{uAj6hL7o0ga-LiKf5bSq7h#BzODE zou7ji0WfTtE({#3>qiQQgignpCb^7{!Cgc4Rx8Mx$i0u#k}vBkYLv-mx^A1)<)xZ? z5iI+8oP66n}AMI13ZhL69La|8-NkZ@7uGRDWI}B5BSgknlNOZFrLJB#|p`*-+wpN*277eU2q_pYHr+`qVLtcp@I!h% zIVyMHzG34lexcC>TpDuJ*C7AcheEyOuvxjOPGmN@KgE1g~+kQkphnm$yW;z$Pr$bi>G9j1QNwa zVzfbQ4P<4DT%V?p)_nqBGMKWVas?qqp?(s+LnGg9(Ukz3G7;SAd0&Dt%SnBZLL zV&K$A+>A*SwFn#0u+vWB$sn?N!wz-PNQr?}`^rf8${XVWJs@DmBtTL1j@N1*o-pgLR5W7$Fw35`h&*EuaVb4pN|l@(PKU@40ntw1F@zIf^i8BqAU zVJoM*0Vw9T(NdDO!oz=U-d#W%k}w|epchig&A;T&9YCcSBQmVKZe;Ns5rY2RWaM-K zV&^MZ@5@A806#iTQCZ!=@E7?*6H-SBwlKNOo;r#pI4n$-BysC7T7vS0t^uTKgTNty zzVC68HB6nbpUZ?Hl>nw3Kitx31IHfo4D>(;W}_>~98?Y&60TT%e6VZMlXKUNqu#Bo z77U#*b{(qZ(Y$nfharwLrqh!(W%}SUpkT4aL2kdf1RhJMc0hzo<7Q~s)245Tg_ip7 z#C!j0^Mk4R7Q#oO?*re!ea@l~i@#6vo}Z6LvWIlOcLgN?$@=|Ov+r^ajJVffHnS7! z@Y};z&SgsCkq`DSlF@g(#-o?<{R3{DM>ICF=B@VZn%1xj3V19tu`ikeS_MAUv=m!+ zP2H--^k+J6Ew^>R!Y^jq4kjw(MpHwIAP@Iuzt*3T;ur6nkhYNz6B9kE@>j4dStqmz zLWX4Twm6E3-D}hFfG4Q7$(W{V$SYD>Dr&a5)9bx{7&oDYQEc#JrM?=KpnUcK+st9(JnBai7c6TZsWcm@@w(}lSTYHE9N=D$7Po%;NWs0 z?C_h2-_IxO1EPz0<+iv5&l|cW{V%qO73p_P(pO_EdPuyQTHd7!$`#&Ub^+55i4c*+ z`|r`x^+0sih`HHS*hu(S0KUs?N8w@ii&9`EzUzxkounDr z3+Q{aLgg`{@D~qi1LQQv!J&E$)6;rGr&2!hp3P3PG zIx+_S9R3hubv!Q{=#qa@G#3GfZjGcsFMRW-u4e1D;zR@MTcMkGYWRfIpGw-QznCUw zYDi&7iYg9eOV`U~2xT2My>qmaEG_Qoy}`zpW_O)r!$5}PE{2g zkTcLk@X$cIx*5~Mbn*;9b{s7i8W2`-rTG)@PS>R@lEL=sAzc>Zx7P8Ar)mMQeT6vS zZ=b6j>5~4!j>jdm>)|RQvS0S@ZiQswc$DqNst;`p?=`;p#1L$eNs{^an%jS%PD z@EQRV5|Qb6sSRJ20WWbc5KL@2ZT>b8GJ zu@r1q*r>{ygt&|d3NfrO*tom*SAbM17&_7oTD3|F5-KA1=@Q_~fSP6qP^_hE%0N>n zCRa@jW9D1v69kbpBeYDKSXX!m$htgO6DJAz+&>?AIviIU&2XDv4DtEX$3=pofOEF} zBXd)rWaZj}b-qsvvA#psC@di&t8 zj^yngVY5^dgMemS_jeH&a37Z?U<$}VwCUhYGCVDVNB@S4NpBMziO#}}fy@l8Nbkwn z3@B}+B^?bL>7);ST-$as0Z`o!c>)M}TDU9HB7M=E4(v|XymoVdDsAY3#dntzu@ z_pmHVP`P#$AF4M%OT{J4dSTK$nDS;A#<0|4LcTMA(;~gdv$2~l)fJJVZ9J)1P{LpVvO8^ zPC#(^jX49q<=vY_+opx{Ri>&D%F0bD;>}ZgYZ87$z$ABGSoV0mv?jK_JM*h*8-r#~1s~<-r6Db|!f>IH-A7F|6|-dWwo;MAP2*<&5;nLDhCmA6be6v?YJUBJEe4wM2C; zWsr`Fm19IO;0*3;DekzXMe!cgx6T4z*!bL}4Zb>LTFLJ(y<1pHujQnr zC;?K-pj3K;4^99`AqgK-lBdG=)ZTj6aQah>P<3;)=H|RZ1*u)W-WK_p>WC60G%cr0?t=ze-#TW4YPSW{Uz39@$Z=SdAuvl$Xn%#-G(E}>U7 zOSYbq$Qasl$}hAy?}`iFrsd4BxL%%~nwrbm)HbquI#O5++LamuAmMiFs?6;9H*Bodnn*JQ3_-kL&5u!GM^m+S_-O5G#~=fRrB9GN50 zGP={e%nZd^@w!XORl7^JmXA#;9N0#|*HoA}Pkb3{{$sbMNgqteO8_`AE4u6z3@HGD zZ_cE){u%Gbk`^?k&K6Et6~7Rh?nPm9vS$XDn`!Kb(W}r7q_xf-5o>x60QZroaBX%N z8A&ndsOCom{wrEAJ!O7c!F+ZN6wuPDJdWimDX$84aMdt(!kGT8L$D9%8_eu@TTpAz zfdQEUp+r+jKAv(NU%Lg~`j&8&h z`az`csS=p3^R(=HyjGu7edQ>*RqvpXbn*;-P&LDwFIQ>U+%p=QrArs_0ObaeNDanV z3w6>0Eo~^j82tF(CD`or$Z82TB_3n$b;x_3H@>;aZ26pK+_nX~cUl?#3sUKWmmQL7 zWGmL=&nSdjHRL(A#P11n?Z4N;fzP6v9cMb?7RjA6609p zJ}&aJ2i{s;I@fSpm{H8aq~)8G7+gzZGuz<3XbVMDl|*Oh+nWsPh4OdiEE-je3ct6Y z@Iu`#Hxo_twzWY2pM-L9dk=2in$WGx4K$9LW@>_r;J z-R=U`K>*O35WjG)=UOP)y@Lh|PcNXRb*Z>l&=R=iE-xeZ_F0eJ&)0_f$Pq_SNxER_0;_s?DBe9EjiuFxhEA8z= zXMK6DiZi2m!U9df?q6baAA1i~NbPR2V*Q&f+u#yc4ywAuB_UAa{=`wNan?IGQ#&tM zu`H)3!TY2Hn5P>Kl>Y2|Vh=XZAuEC{z+;$8KIwL!wrvtHYv(bcd6TvQdfBwpHrg#s zqe+A+7M3GAGqq=578J;n+ZKl=6G~U4Y6}w~zn-Y%({0RM^9yao&gWRPG;lsyO8J)( zOBF{lKQy$voMa6oK@(uQo0g8Uq*t|iigzL^u*yYM02DbXx+&ad^ruJ%rM^?P=O&qm zWMXi`x0wB&Ie3V`F`jd`yt+8)ZkKUGCR3BP)B(AyP6blV2Xq~Plw?3eN_~wYi3%5< z0DJLL*~vGglTdBg7W+VR&e02YUhmaR^CyEFpS<*~cUgG)_3BQc37Y@0lRZOT$9KZc zdOGaZg09+z8}4ud%t?v0-F|X3A!%{!sELcn?UfC?_$&{mU)*wD>PyBUu5ix=3h?h_ z`>Wyof&w+78u@B)NAgB`b*pM7vcmau!gqm)lewc~`C>kD@c&64>2suH_`?E|Ubszn$)KcI)-T)g(zp>F$e9R zHll|vVnlxuN8T8EF??zz&qX@=wy?|*nBR5%C3GpB;5qs_Dd2pG+`gpoB&~?DsC+1J z0&UOvb>jad8HL=Lf1Au3yQnOW7?HU{Vx4YieTQMv5y<NcEJ#nwx1d^?ntBUH#}SirNhnX1N@f&92F=T$vF zXGJ%ci~UN;XJs-0$t!ysB{d`672j&FTfAcO0P~Zweiu~{DBQfNr*SZO!H5)e3qKv$ z@YUnKYSiuu*uzU6;^HheFwCherClhW1bV_eUce9-h2FfF@$F-p4Nx2|o{uND8;G@9K8(S!n{UPy{o#~|t zIYa;(3FyhCC9GX+ypYg+4Hb!LlkF~BKrsRmzKns9<~dJz>R!IKBbtGd zF5sk%mrh3dHy@}E8`%3`O39!|6W_%&Uf5?1chnXUG;(>#JN)~}Xpsyw448|;6bdIkM#lRJzhe&_j%#7y$_cG3YBmV>OZ1U4 z!a2@C=eM%&>hi@6;))m1?P~a0K>7%{S)+8J2*f#I1~zop9kB1(_A4Q>*_+4X8|T%> z5B}NLBqUbo5T#el3pUQEh)J23lMM77eAi58Mdg$v7D@5OqeMnNB^)^E^$*yA% z%KcRwE~lZ{<%Q8ZZ< zV_+B%VZ}pytlYv>16b|-m*EP1SnPNKg<(E_sxm+73IuQ-l6*v5bJJ8(dy0)lOh5gL z0a3R8mxE6yP0@v~1M<=f3cAH%J9gC}zk*ejBG}=Wf85G#^!r7`-N_J7zC*=%G~KSj zGJy4B%>8gps=7W`gnbJbFV@FF)*vjz9M#?V~h&>a#i7$J{l&L%f-k!F$k@P+Dh8zwp@2 zpH|6i2(ywv!ZrZ&-fjJh_}(Q2s!Ml$Z*7bUj?`ACjqvlhYQcPpm=ew3g2qZkk*Ydu zvg9n-4}WSdSWi=a+aGnerT#0GcP9zih1?^Wx<2=nwnFKO)Ox@_oSuU@r92anxZQ)e z0?9(1B?t{=j19_@3zrM)1oI0wm22L)$d~7I3%1%H#d_Cxpq0phkV=3^emADd?Bkd~ z8e#^D*p|2(SxOkfvAb;HN&v1x_W`IvJ=NeKknEcR(I+{x^g{|wg``0G4noO1;slH4 z%#=T?D>BS)zhLmsZ*@5M(qjuf(=4Y9o|DT^M4 z5El`EEuxJLp-&Sf^55|&5j-S3r$mGEln0{%*UvX$F+?+6;x{JOWTxv{Mupgij+xo%>}QH=hOr*Rz|HVI)3@xD|BA(W*4u`+NokF96bKV?1fr`Io7da{ta~Bw!MCv z{A@Q|LdLJW{sldJC_PfKej+JHWzSLgA(lC;MQ1dd} zob-Cj2-RkPtKJeA#iyguFH~d>ab^H9K+eD4noowbo9zQrS|4X%C-^Ez-M}KnsZD*p*68Ma3s=moyfkACIW%+eo8W&FV)m+IPe4E8%3U6jDkM~Hz2WIpzaCpNCcL?D94?jV^P&=F=Y+)=Y5!h?R z!ngY4at6I*FhD8y=ZhIcNE8Jr?{urRzOZAw-|;y-`0^ZkJf_;fy-Q(+(fR5Ob-Nff)6B@-@chh9D|UIv2*LtXX7A_!Jr=x0Hn)hXZl&U* z4}(=Lyt34&7}Xffx;Lj!m=9)C!1|>xp5EC=PIsI0?!O@Pn|GVGlwfcVIsH-0c`%+T zYd}bk*1TC_M5-2d5FsIa`iuvxS4EF>6p=4(ZPgDM2|nkv)k$Cj;qsoQO6I@N!A3vT zuP%358Xko3GcAP=eYD4u{O=|NAzS#`;vK3N5E1HhY`4kuxH|Jh0RqFi3apN6dr2Wj z#5wXI{p^%U#^T>^voL5H)sve`phUy&6F%#ge)L()687HY>d*5Z4{vkqq3tdygGm&6 zI2OX4FjcVV29h}(QPx&Jv&wDS4Xps7-!ZzFrQa$%4tfz|d{K1%DK4s`n=N&%bw7QJ zk2~(Ci;komspX(iQhYWBg(SjihuJO)GVTEwD+O*=G5M=SoL#YbKqKW`st5?Bx0F36r<`<4mAJ}Q+W@Z-k|Cq)6cyRa1=VlY!}!U& z;Icc2{kU(~-|+pD+-A;72k#iE&42av<8*snc!WtTRd?Jm*Lwa2F|suFJRxF|){e#? z=4qKeMaluYm*yr)PHl088n(B6JN0xhpNk}J_zB!a-3d)-2_pW(PEFIRuY*;FTCL6S zKsD8?7oYD7gq@eiYPOY})#QD;H7%1@n;3+pLbnv!|M+bU6#!fIl)zvnAI4HXf=jd( zyuLvL41LiiK>%E+$^L{Im0@w+O>lZ2=aK7$A$q4`QpO<8-1Rah){Uvl{r2rSV72be zsDH4W%l9 z{sW~jmt#i`9d)$k79aP!1?$xp|E!}TMl|yU$9c*BRwLfdNIOFNGcTbZ=<;mbGa-Ot z3QTC~-e#3JA+iQg8HgheM;SS!#2+(edUi0IhOZHzoemTBouzNg7%XtDg{xk#p*Z^A z4HS;0`07db%A+J}kc=Cbs!cDRWhnIQU?J_!anY_0>4ayfc~D+HZJky5;T5la{Z{yo zzfvgpm0AV1(}1mZiE>(l_FzLQOzC5XpIU3IyBgtBv$1==EMd65ab{Bmyv|tGYyXu# zJ4XaTM-v;|YmtBN^qv3k&sN|3wwgGa-&p~&*dstv|7Y0dESsRX@Wf;drvreu%n?!W zKOcKsG?v(P1-mYqVPriFLFU!dNCi^rYFTcb;J)JW#yS&s5Qty@-DM+*Jr<4mMUP#m z@=yc~HRf*5U%OpJ{@+~U6SEY}f%x4&pJsmp`P}R$Y+1-JlXuzfZUY^&hp#5U&Yo2t z1~iZAMMU%LBrdI`hDF+EQ1Xt&nrN*HBQHYOeJ!XQc(;2`o@II0&>p#>p#e zsfq8ge4QZIRO%+!CF#I49%hC;5D3o@E6H17sY;8G{?=h>a2!4(mR6vZcbhqvNakO* zk_q>QQZL+}(9eJS^%n@LLsoH;Ey%`lrXR;pQRO`OAM7m84kJZma3Z5Yqa<@arjpb{Ab4GN`y@*#zs_1T|qVxmJ3)=RLzz6yxL%2jL1L+i;r zw>j{yqr9;2C#Fzdzbv!H)^)(#eYIG66k2y)_4b4zk%%t++IDiiG*t|$PHCpb@7MU$ zm|pHLUZfZ3rR6!sl8o4+^Th(b|DZmdeBnu__dnULNvQy0{Mkt4vGaM+lbx3&7aE^r z)ULErF65at-q8%+FO&{rzBQ!98!2wl0aKD*iE9|f+*2JNAu1iQ-GD1|_H4FA(MelD z+i*aiZ-P-Q`MRL}CBzLYdv6?!$@$DZX~d7CsNA8_XZ=eG)Enhlv;37>>(pMcs!oqV zE3ywcmZ@vNpBx*^=o{(7iBLw5->OL=)a8+I1jlc^sI6q1FAubI7a*Iv2T7=|&29a8 zHbd0+c|_pYNO+DSbzm5Njx~jC2Z0xPE#vNv3(o%snj>WZi1moJ$i6RkqnoM>!RNfu z)|!>`2gT#j1{dh`vJfNnHI;uF1%nvsz-S;A_=Mg0!ysmZE$6oxas%qAMU5QU zN~8^pV-X_GPDc|JPR0C^_HRfJJ>Yc5g;V)7eUFk;1T1GuWy5dUN-Pco92k2bWo^xAef$U(Tf7b>RD|j!gd&%*($02-RYSdXe*IAPGhq5ndp6)KQ*uF{y{xXG> zY2|#?l15zTDXP$qb2l<6hRa$^NIEg1>3bXcmn~$*l;IvN5uhy{$QI?Xe{d=hJyW$X z>f)|KF#J+BG%Q$iU%Y8~53?1VL+8d}MmFH?i^EFX8uu!WRM*D< zDMap*ivV4M3L+4>>-|A`4+_E&>cKh^aa%0VLtrlOGl>o@TK@8)cK}(JmUeY-DjX}$ z3Z)n1f+a+iM9xqfig*Y^2(M27E<&1}l+Zp>mMN(l9_;rWHHk@_e6c^ISLdQrVOa_= zXO2FM&m1uIMIc4m{0ZfI>ft(^551fEpS`*jI3pwqu2|sn!r(oKd5xXcJIb-;mh(OI zB|?`8fk(zf+P5m^R>+fv`cQjn+o2f~2IX}fJfy-hpnKoc6t;U6ox$qyMu%cF%Qm5a zulS7OI<#%%^y4)!dGLjhv=}<-&IxJyX<&C>|?V{b|#e$sdN~9*D7*jQXe%Jnx=6pJl^Uk0b&{fU6_R*{SRGIO*r0c zu^2a$(U!6O{bz}m5?o~urYbh4IM0jWN>U;S`FZ9?i<+(pc6Kx!(Gub zinV)kaL|OAwD*#9x&s~42Lbov1AG9P_E!}!fs;JlatZ}dHT?*Fa#Pi{g>D)K_*O>l zrxH#j?8Adxz4_B9H^fqq`@?_D7V=J$&OKJ8cNh$&bbY|W$DNV>GxbK-f0k5+=qH0B z;s~YOPYU1|DbBA9+>&f)G*Qp*@-m7^9=$C})niSH+&6SaWrAY>#lBj_NlFOtH{D;8 z@uwcc9gi_Hhs*xM%h-0WCB47Qg^#tn>SRmk3B4M2S@okVPhuk}0092>yJ^a39q$XN zx!|LrQVR5NYxe5QwLK<%t0I@N!f7t2b_%7PwRy;XY=c#6LN`Hjc@kLTP*6$CJqt0b z{46fNg0Vr27^*|XZ6Nt_Z~38VpKM1Tja7Vm?geM}CdCvD!-rpOzda}2d0Po72HiPy~%ZdZSuhOc^ny|at@52$ry zP&4PXJ2!DFFT9ETFm;SPyJv|WDMA9dbwR?cM)&tT-y|A18$_+5+)c+-f0`8pGrn#C z&skOE4Rsd^&mei-xHI!8BtjCs=pcYmAX$`SAuN`q({+@okf;rVb|_lbuX6`~6@|rx zK5^&i$}`E*B<}Rr&3y0l+Lc*Fa@PVsPPgfGpTTLjc^{muhRT!Qnjr0(W>`cpLjY&D zF2b|81RAPY%JG?vI(si2u7Znwh-PC)0pr6(F%lgW`JA&du`eiMTX z*4`2(OpG1XIo`BcJ`7|aNbJsg8%%?WakL^45IVkRvkyfL#13*w5Pu7qL~u^w(wZT- z>y@PsdcC+6rlrL{NL6|JW`qY+KsMW5ZErP8=-8W9pW| zzNdheGV;ogq6o3cy$T~r^no&+`(z3MO&ijU0wOZ&2q62nB^fbH$>rNJE`pktAp$M> zoLP7(Q3uvR<=H_NObtLp_;0Lzu(18W@bsGfX?vP1x@9{cH)yBBRzV%PD<2@7b_B`j z>khVjx4t(x0lMA5Wt>PDP`ZZ0iq+$rK~dRvgz;S@Dbto-~#V`|*wA4^c1#abbn#u_OCuqcri-oPV~v zH6bTUPOaQ5ZhR}qY?7}(rc@UUq|rxhdJ$^$m0RYGvbPw+5vCJL)`)fV0k*5>o=r)t z^=S0D58?ox7wcrp#{9{4aENB-i3hg_z+b3{d`6XNQ#;KngG4bN9=Vd>$W>@$?vcKHDWK-_SDR;$psCdD$oX*?%DJ-1u%u6;Ajd#LY zN;pAW_pT{-o~1om`_!ZTeMJ&sfNyfTBH}NpnegLJ{({-Wqd4|0Pe;57@__^(7z0YF zpmnzUB5kf@R24U!+|nB`*L=GZOoct*b4@iS$$qX53uPnK{Gqyu1x$`epq-{EHRq$9 z9t$+ynP4HM`RV|pR0hK@IQALz7NJ=Zio+@=e+}j(#P>knUhnwxA!LqrZGA6|r#POV zY=Ff0g)x1(N*ifmtc(W-(=1hF0<_vaCq<$u2aTv))8)1K8a)Lf8Z}?9=qWaUQ!2Wl zaCFF}ivxQb$n5>-$11x1NL>P08dotr-*u|I)E$L=8NNq?WEJlAzZf8q3oKH7Jyquf z&~DjW>}bZ;vPwNh@M=CxUk|&0h8jw8L~QI=g|yj`y}@$dH(WM)KOK5>4U%@98vu5e zXm4ckQxhM`P#uLlp@@wyT{>_*L)=#9?vq^SlnRgt%apl2O~ge%YK5t}s$vM-#9y0pdtSATYRWy%-P3Vpi1dDB8B~ z?e?KAGV1~VACvB9mB@>`4>EAJ>E}j!AbtGbVS*$9s4{@QI<6^IN*Fufz}8*JExCvd zb!Bk5GQ-?;p!QA2D>5uW{mE0OY|@^CzLLuvp2Z2=K3wfX+dGC{kou9!K-$x@pS}c_ znMslmKhMT;#E?RFHUHcNj@Lq89#i9JY2i%Er~$wRQyv5vUfB*%Rii!EzZs!84%Q7? zCe(U&EC_kCdz8;sWi=ZtxlT1lG1h%AyX@l9op<6^pvl~XV9a}mS=r(kh>1z#VGeT? zEA8AYVxe!;$E(hiC|)UA&31{(3lWxN)5S7x2s4r+UND;hN#3`64%NR-xHla8Q z+Y{lr1ycl`C-JADB9884dxH4d8xl>B0hf>p&8mwsj0kORJ<&_|g^T+=L$!q>sr<9} zfV|8(1TwBtQaLx4x z@KYA6GbUqbL0xtLtP_DMI7iLZNY+$8L#HpRWT>b1j3*n?c4kKf z8~{1vRTP8-&aIV*SV=Wv*{BA!R|t6*Ig;>C8|ve@G`~P}#=Tv$v8d)+{h(wtX!nlqyjOwG3EnB|Cs|#%~r0K5z7%*-y<(3;r(hOlGihT1s_=4 zaeoMJf^he`k8Rf8LQ%hkv>1ns3Pn*~-mYQJLPEEMmTvksg>}YXoU!Y z5cr`?_pEZ|dU;#xev67&_|Q2rF)@VtDjx3;&u1RS(Tc!X@mk+S*;>H4O+%uhPcbl^ zG#<9Hz$1YcJw{_%=bsp{hTNb=J1>m<9$_E2bvE8 zb`8H|`Bm7!pFoV5Qed;1k*}6@W`7kM?PRUF$fCap<4p&@tX{wi`NFYVw4*6?KYu<9^ZmMYD{K2+{HM-py6Mmi&lg~cB>vC7s<{tE zf&rYs+99f+HG%Ucn2c)BU{sbNLRjMh$$;ek@Nzi@V3M8FgWJ425|3N!?Wq<28-7jP@=bM}%-L)ZjmwR0zhu<0;)o^lgWJL+ z?@k3L!k6IE93r;1>DV%tY&to7&T~UdIj7dlz|g1EyRUzc66vr*-#0xIuUwZCMoJ;? zRNxcGf5y9a9sDk?bi2eYQyaP$hj!Jz!SjfXN$W`I!Etp|b{Td>Mvs&;1!F9+2;EC8 z@aq+dDY~C5WziO`VcvMLPZ1qs;OB8m{g)rIvV|0WU+)0rX5_b@8+Ny{47a&Zz9wOz zt$fJTTkAsynTCsu(myAbe+FilO6d67m=+QGAMT9%gHKV<(~h!si3dw5?^_l%(F`UB z2C7_I6Ai=b&8WFBZ9+P#L@(spnFbpN^AcWjKeR3BnNA)nx_Sd=%A9b|&@6&%vW+Q# z9>)o*Wx5xARTyXky2lnj7ey>2!)%7yi~(}bUk;nB+MKca@mx@d5IY;9AV&&JvM{-OssXj*z-x`kF1 z@G^U%-BE*?Q&w$IX>|0wkpDfdmMq`SIH+eC5ibs6Ap=dBSf zuoeY4S&I~Xh1fYrF&#~%00kdUvj^mg8IPKcJ>#7LTdv+I{cZkosR`}fY>wfDf$Rbl zVB+}BC>0dV9`2Q)FUj6rVYJdvuBEB%*5S{!etR=lL3BlYZ6*0}`paR01ptho|E4#q zFJls`^8By14B(tO`~#{m4DY(h|1SRGH(Sl4Uo%ey0A1qF=}iOQ3Bp(xj8*-&-!j|tPZf3Tpni4`1BbUf1Ko5*A*;G^Ep$oU35geZ6b2#%se zGe+sM9=D4gfqeRSe)NEIE-=q1IYpz9>nmQRTxXk?G5M#AmQyONJt^}l*zBKMhG{at z{bsR(mvcdq`8OK)+^w-VcX=fL*?&>y2_RjIoFn8!=VTmhVa$E^xSR35(SB;4DaS;v zYbOM|O<1LrpZx#}3>NtgJtn!5I#SpcX1K(ezA-2V1hKpj{r8}E`J~XLn@hBEk;zb5 zM`L1JETr! zP1;k4uw0l!pZby*#etQ$R!h{lQeLUB)FiG}Wt8hqDG)>+^xu|da`C>ds$etrDblX? zrReV*p45WrSdc~&g7abXdRGqg)Tl@d8h7#Q2ylG|2ywtgGg+J_DI1~3BBw!3>-%!~ zi0LUCjo>&ogMfYzs?lj?YT;C|owMAp3v8(nF7-1iA#Ll)>xO`-V|u45J|3`OJ_6LnGgHm~vG`63-2jqj{i-F7 zHrjoShPWAc%B2v;n1~~C;te0QUHT8QL%|>JKBwpy=%1x zE*2WN>can`)kAtW`ym?V%a7zG*RWM0Z)JS0CJ^lBnD$`L#t*l-d>!;yZzvBp@VMBM zZnB$8wa1QH!yn9ykpX6xSA}$}eqLCbtn}(@nffs-Z_~Z{$+c1gnt5e5vPg$C1Yp8C zF4?Q+oi4mZ#L0lco-bMPfr|qk1ecUT?M7uXRnimW(3MkI`a%~UhPr3t6)@H9nOpq7 z05Kch`{50jEU_$N$7JYAALx??R&BjZe=WyTE&OH)Qv|}{Dv5Mew{W$wAC5`w`SG@- z!Z)UI0kY|zFK?|rn4^X30LDul1pbEPikX_pj*oB*cV+m4Vg|#ua-@8>ny6kmdf8vzyoL z*MID&kLp_h5TjgG{5?``zelKqp0x6Kk))G%qt!RSyp|2Hs_^_~5+f9qEyxX54hA_c z`ARWe!137bW%b#)=9|{kk-9!7dOX+8P=>ilG`^03fAx)0`lb;cT<7v2WX!Cq-s`L;XX-pkMF zP;G$`br0KZQA!iRZ`#}P7s?k`TOB+biRQC5@3zuQi{>pdyl~ZY=C$c9cNYOaP>n08 zz$GtD{e2f^=C$?Z?jViML@0SFV!jymcc1k5FS2bNb8{z1SXwjrRHJBmh=)l{Mlgz^ zR7&?MFwJtC#xJt15Gt^$UXyboK5$Gcs;3tD%_4q%JH$dInSh=4>Im}ihm*;$wzyQz zVGbz1Ph04-hMW&^!^r)R>MpxR7y78ai|V7o&TSrV1ZNfJdZEaZgnv4n1}3&luUgl! zAP2)~6^G9;j=r+y=+ROC9WE~GX^Nsw*)bzavbh+uB8G@TS|$9(TAG~c$yOq47>UdY zN6Ov+%q1c-=z?Omrdu47isO_4g=Lg_+EYiHv4=$g7WsV7{gwNNAl>xf&umYGr-(_( z9H0Iq66JBTehL$p01M|O*pwT-7>^~Lb{q6zBci% zkLDEmKBkC`?Zj6wXTP41mZ4HA_1-Um$RG-U^Bu8SIph-wMu=V0&4ehjqr4E zVAam?{ zN!=jQuO1ry)Fzh=>go=|yRn%|!;pFDV7SDHbdUptbYxf>iwgv@*1CiF) zIoU-AekKoMU$KUANrO z(quEF-{bJSM`X_OSjT3-Pvj>Niyj8h>meL;DC1vZRyr^^9c{Y)&N&t`6k ze*ljKD^;lcn}Vh&=Yv_?5;4Ba9B)IUkb}yD$uf20z$IAI$6!UAb55#oa}2dbGP(5} zl?3hXMlnIib1#01>4x%M*W%|*1jD@LXSy!3O>7wiCAX`q7-n}k8axue6g+;W)U$V$ z=rub^j$+dCgF!%W3O&kf^cco2Ydll)Oc0WeKif>cF%$k3jyz@r@U9&?d4YRG@k=TQ?F`S?pYZ5 zS=W#30AwDZV4BzH@l`Wc3RT(exmhWr4Y%*5~AN>R%@&T+c79JqQfqoVf{ECTCP2{LFm0rzhTESJ~4Jm+C#%29#^LOS&O?~kBifK{F@M{=dN8}k!}y8 zB+uIV&sdny>)+WmO^$V=PUqHBS1f*ad-0w}(vm7Z0vSnln<3gN2Z9ItKXa>=t|&q^ zWHrQSCz$c16=_{Lh!X^Ud^UXJ$`06eXHbhrj0*r`tlc12(^As`Oz<;!1F@I^rSdls z)viVBJ_W7p6dVXGO>u8Sm%n>68_IFeem6U4kOj~kDHs(kndS*5d1H#7XfhafaXt^hicH(dlAvuf~@}b4vuaiL-1% z>A^dwkzcGt(NylmKk)4w#0%(uvwh2Vn7=_@7V##`1d%k5koYYl%@^lY*pR>(dgY_Q zFDM~oVEu~yU$x=mdTfq^*B{iyRbFvrnI=nUG>_0#W#*I7Kn}7;e1>4-<@oA(X`6N` zcqX5W&N&h=@a=iM){57&9g>5-*ZqPDQkP~>TFc{wegCJsC>;9>>G>8%@fHT zCRzo&)C8<(8A@Y>x{n2Q{)exS_l05-Fs}B$bt;B+=Y%e@901^X;|6ipwtL?K3$t9A zUP?<)bu&*2yXWFG(7#77r$^{tP&T0=KXk1@hN2AUEz|p`9=YY+A38A8-3$c$EaiWB zmE0CCDh4IHSd9Jzp~9*J;)3A1*E8JFoc}fR;`8`NU!IJM1=2(|8@l-G&|Munsn__2 zdrs?Mt@r%!2j|@4O6mj{J@vDSh{Ck7I0emD7`Qnw4UvndL)rl4x(t=KM0M7R$7v&Y ztLL1UG-?(=@_;SFv^ksG=D~USBd^93nqP<(O5gR210onK>mR3@-IhbV#&}D|+lj4R zVOeh~@|IW6H*q#4pFK)?>=tq(4Q!AAerv`E`rHbZkeF}x(_#`ZMr|wNq6SX?y}F01 ztR!Ai$xAlrGOhXRTf_O$!iIhPf(n`=__8+;>PVW&ARmb}cm3!kPZ1kMuqgVM;ib)n z9fkLKn=2=V;;MpQH;d)(+=QlJmp!EbJ^2A$6U_i%-tdo^=CzQ5cHf#v?@T+FPFpR< z8@t`Kqt}%mz0vrUJ9eSps(A zdx`ERoWAwCGy>0He1Ku9pDxnw+k`!04YQPx?~wS0xV6e-jp%Iito$@9WW#@uNt|=G zYvi$7zJzFrw3QEG<@{pV%rFnW5yuoJ@&*X%t@klz5vmAY%Ln^`2&-Jfzag5-M&m6y z0Hi|?M?N8WPYNFf&)GUJ;V0(W@8a%3gaxLDc{dL51L_yeUH_kC1`Dpm8t*}}q0!)I@8pbDH zq>^{wPUHmPnH*IcL?-z{3g8(iKL%N(#JNXPdPzU*B?m#?ARN@cQWG*DI;V&jRXOrW zKDC@+d0L?|kpP6*x z1M<+fn7$Vf4R-OB3{7G;`G3XNL03JSmvbw-4jMr-jCMKJ7HNpC-3KdRA!$H~@idga zq9XRQeHQ7#Jfc!9wG|$|eKNoXOlc@MCa(oTlOa6M=w>Jm^Y%trg@{LhxKL;CTFM}{ zFB3m4uPr3_GZM3m!9wjKP>i}XHBg;e>h0lS-MPKkHJ0C5w&;_an4o>w6C0O zSOp*igzEKM>;$x|LSFzJ&6wuBhRT_rKAm)@5BR|ywO}@4bcu`@2c3!R^~aVb28};n z+6=ucND6((_tMYRv-H6!j3Dae2kwb9CoxfeK zmN1Y~-Jg2a@@9&Glep^vq+V&4hA`4HVl35i4xt2@6f8i)m!3y}&niS`?nc-GmIMF~ z#$;#1PXe3;z5GpjA2aqA9eRozy@MCG90*o30d#ml0MvcrU*)n~1h;$sNnQa-pTAan zpKn}>$Ew5wjXv4su>>f53J0hf8J%=0wsSgb4}x43rJ4CL*I#MGx2h=PEM=}9+z*rF z*_X#`8addT6?`aZzyB1HXP!`C+)H?VF>s~GeC|z}HQCorRDzXN@V)}d@%tjl-GZmD z4Bm~{#FeL4{(Y}RqgEqm6mm=BE8Yz6*&@o-ZJlZN!R*XAoz7{U=(A9kAn7+W9Ac#= zN(l41`RaY0z`8QMlQN6V=8jaKAC9pe1{O8@351n7oR|Asw!`YUpyPP=n#YVAf#qAN zi4E_@-@Ul?5XM>uuSd95_I0n7Y`re;_}efwZ;1g4lY+H@kKR)L^J@PetIDi|))^K@ zZh*)YGolRsC{?eRctCb^8)~> z;K{ILF862`PE`g?Z^lyU$z%#s9`xMxNQfmfJhnk%TBb}Qi2GNRxwE8B!|Ynm<2Nd` zAb@|`)^6Q=0rw3s#P=p2GW9p&{F3CUwwosW<{1lhbD!!AvhVUjW;NEK-aERp)WR z4}A3`kj)WBF)KX40pyEZym5yuWYhsN_b}S9xTpeA)Xv7o+v4oR`NazBrVv}RztML- z){u!x8v#^?rguI%?tAd~o_PSHa~W6l^*^vfn)1`9rxiqY!+4oc^ z;@;wy^J9!XupWPL9a^U+boXYj>uRUD zs!QyAG$1=PVyjZ)n)W;W`=L{@XJ#R0safz3Z1FkNNWKn5oA789F9BKd02tcBPxPRW zEN{b=6=Dw3>E)dYHhk zNR@;F4v+-a^hvKY1R>cYfH77_ra2?~@+z)ENk%Irl` zgQA!U7tQW5melrwYO*jc0(ez@X_ItrjROo2Xv+%w(cx!~F`%$5rzQbv1QY;ulY3z$G+&v)=e1Re+ zF8`t@2`0$VHpGRUlk<;bq$Cu^RsWV0EwF=>t(sUbsllIW#R&n>uD7JGu4}drU8!-N z9L(sl-XoO%;`K^mRET_5I3dTZOJ_+iLJh? zGCr6nDRYi?3m&rH!V1^K(|!+NEwQ?)jqExRy!}nKH$&=U*qxN~L zks7KcH>>(C^EKb?&JL-7{5lpv^V@gk`?%JgfI=9&Y_4)M7~4VrfpNH`G@YTiX!Mj%Ut zuIcnwQd;?TAFQWPBg}Q%316`5E`%0lqJ|!=oaF|um54Bj8`Zdjw7Q%BibIpLWfS`t zD@-qNmW^<*#X^7;efFlc%=blmOtZmwR(QvM?LtKo{cL# zg9EaeGz!u_6bqjdu61Ic)gKHDR)U5g(%`Y_xI_G__5^iCYwII27$)?T-*c4NT;Xqahy}F>_aj^iv%l{aXfe zGi?*_$IMcy%^AsDB5~@2Q_fmp{G`GB)2zJ?WNQ;nU{QF}mNypxbji+sM{K@HY(7o& zrqxE^`gKXhf<@HWvdF+Zv>IDRo=A*fF@zvC4`-fSoir8M zG+WW_K)-UKEncS{(P~p`ZC{^Z6i#DJ~ob{)lSrS{#z@iDi4!agLS)7|B0j0cf zS_URQDWFE}CnFvp^pDx&K+bdo_O3{xe40hQQOyKpB;cT~Ymwo*+(Jxu1}dn3;DY`| zwGflmHG-6hjXI*v?33X8A2lnJJ-KpPR8J&{!7>q{8sOW+!gf%y*|H;t+~sE_fh51u z_Ne9hKmn2v;p9Xo(jO-g5~*Ueo2Z%o6}( zrkWIJ&fB>O`qW=1)>a}joiA@&@w$}DejUs0bQR~Dm_p&Mgorl*An%N#LMOJ*$XA>i zuFC``$9L^fi1xd>6p^Gi6p`MO!dF(rman72hxx%D8PD;2?w0~x6TTB};1R$(yXa&t z0W&<(SRdJ(aF+M|!iJK>2mdggc@qRV1G48%hDBPsHi{Phr4Gaw7;C z-HIKocQ8R*>=U9QQjBlUSQeVEyZqR9RCu7)pb6f zDHJM?%g{R`S5I$wq6<3U8xXPn*%EH7!;rsyv*q8jg$5m%Y7SN7x|!{ZDl+q~3|?kU zL#~^Yi|y&b?O&%W(kW5`g}Qebtv@={j+g&@@JuRgC$6ynC*B*kH*AJR4tJ-MB*)V# zSr^(J3GYGfcbJ+nguIp&NkY5q;m6k=;u4{4UX`V3KvQ#B67mDuHg*jH*llZB@^G)D zhxlZwkQUh%M6f&c1>j*@Nx8SlwF!g|)$PLG-#-$&`a;PVd)=^-jHN_~{pmA3>`E23 zaW_idXhp5A6j>_T-Kd>Gdqzj9(BwauzCnrMIRtU>G6_(NVlnPFGpYS7+)`R^RAZrx zt15_II1ksMo&hV`7qzn#aWF;qH+>x#?%|>sPqq+@Evx|#v9(zw$AX|IK~Md!*^e(g zke4_0W?R+=_)CAnEmn?tKGeO4GwBIRO&TF*08S-~A&-mJs8!nfL*cCKVB6K4a^rb? zd_`s~=9VVrW4Qsrvr(MA!62xEX(Gu5{+%@qM%9u!Q>&ZkzTcKfF+3mGJ~E+w9x*pyVz5dFWpr^`@K6(U@LyS!2S8r;=%P`q#vtw z3R%)^NZVPr$u!DLd8oL4ABgT&0aJD3RRyZ<%nXWPL7h8-nw2GhRUd+))J{5dg!c7P z@B>gR>}A4s=9X0S4*$5msNFTS#{xG!M@dDZVJIe`C)u{yfBP9R?UXnl+xTJF@e;t< z@);DBq@WnA;4YC(Qq&C8^-n}vl5$h>QL&IJRp!Ak8wRhwtKw-~YLCUgFLw78bwVN1 zqi3#VAz(SN$v7!2;5pJ@r@E$26i=lbJq$FXyL0gB`(+_tc@u-I%};c0fLDvgFzm-r zngc95;qZGXvON|o3xaeJcK`tdN;*Z1Jq&y;?8|&F;AnBAv0XonrlR?MG)Yq z=`(9W`0ai8!8YuUy5MA`$U0t&&h%(u>sv@;wFhU|V75OGsYbkB+#jDq?X3&5VzkyJ zMcxtV+5FAphExsB?E|aTuq=eEUfxvaJBpcsrdW(Cr$RKeg+d|3FQ?vQ!jT#6iJ8&5($^HKAz# zLO-GSAC$Ji+lH}O!I$Jf)I*REptnc`0=43C%L3Rn`0`z&qz@v4xD9$Zl~TUtA@oqh zg2u?6VnwSqK{}6!fwhc@#)_d0JEckLyuX1}u-C$Z!xzu{>a>hgjdEs=N3{ad2xA^g z$(MIIg_heQhdA+aJqs4Ee;dspyq3Zs>MVtr06##$zb)&C3)hfKpdR@Cs2WE0Au$U| z@mR3`I~h*<-t)!*%@Ct*$5I1o3l2!*O6hSh+YbeR{u#;JKY+#4-=tOm^&WbH5QaDX zn{IQ9g+Z$NYYI#??OeT#l6k#NNMpt5>i*Zyxou(+D7TA=g(#-&Dr!#r$ZAvbb!W!{ zaT9M5g)&;ZVSsh`LJFxp8X?42NdQ=y`9uuR&jp@KuXS%86awu zcAOE5LJU6*M$)wWG>@?5%-I4c8DjEa#bBW;ZX{n{NV$v>xmj*OBZfdN1{$7DqBus} zj3C$a)<>yvsXU7B%>U#;?Hb)~iG1NRu@4015PQDCoC)#;R#hg+M4J46GG?*q_WH~= zh&YZ!FuNN3Q90!=G{i}}Lc_GP7@a~6hW16Y5&%VoZm1S$nU0Pa6oH?{;iyfAPN+~dP7z%Zcktn@5f2{qk^#0sxs1`$=_9Q=Y-OKoCuM4& zbYc7h@sQuHzi9I{yJ7L7Xq;SsTse#Q$>3r=C2lb^xfT)Dt!%*-2UYyM5BfSzVyot4 zl=+4SVW;a+z?)I;SpDbE@-_?JN8{7+cumMiQdJDdsG0)^aX_DM8K`7Hv?=h~v9z+d zwSF3-smaG%D{>(8lxoY`mD!!UDT4Xn_0d^J!-|Tmqt1OA4_cxIg#fY~RMRl9n1cb@ z$sbA~KcX|KJY~g6f8M!3@a4MepULTq z)N;c(-c!wRaQE0wyp3vy9n4Z|#<_hwC0DKUO>1CMG&5@=W^H!Wl2$b6U3Ku;fO3Qf z#^8Fa=lzR}xJXYJt<`>Ly*bv(eCIM}i-k-2u|68~?zl50pEno{qHfyL70~ws6z6l5 zw1s1xhbtBd_Cji9H`;8~XiuKXnT?iYxR8@wL6HKW0{HacdlZ=H3;Fo4H2D#@Zm<`u zU4=)ZD^VpT&60IZBzjP4aOyyxh>qKba88ay^vELy>BBxN$B>G+b#@D#;l0WaLDO>F zrxq@ix9-mKU1%GA_hZQq(W@$~yPSlhQwt@6VXVY;uxTFj~9n73)Z?YTsH zRx-A>Q1i?be+jp6oE^aRiDUa{1{NT*nc)9T`4==-{91-*-V$;!yZqY`$AFa@b~c6C z9J7$MDxF;{slD(K^B87N`o_r!o%QHF;tCI7qwd zDUTi&_E2Ck2O(djIfA*s6yZsIh~}3}w|ISFnZTW_zoi26gbzmO5^FSuDaTwAfuraO zx)}%Qzv1m@WN2TPi1oF#SK_#Q=&M$gRy@zNoJ$)GIt+0ky|ejKa#Pz$HA=uS&DQp% z#!zLoXC~&=jn51Zy?&9|8nL?q=O)T4zwd;FHTq9Cs`3HD-DYI|Rm$ zeDliI7AwbXJ<%>eR%p_W0{P5+UBxc?q9mmifa35zssRaN6sD%*x&?l3g*(5xH@Zt# z$lM;?<8!kP89}dq7b{k7LG@gc`*!}zOi}u*4I-eOz8hGE`a)s*(o^khYA+*ibkq?T z_|{{*en*_0%wx=$+hG@DsXmDw?+SSDPV^|R)UdoGL|pQ}<{c*?G#W@r=mj1uqZ^|bz(xW{h?Y^G7R;^q;Y`){=>L!bS>*; zotk*xTEk#{1$Yr10sGi*Ey^k!MNXK{S4NhfT|6RaG05$F7VoYJ9(9;K_P3YWS4I%l z^rZ6wm_y!HeJcO7;rTV4XOYF|s5qfrxuurHuF!{1 zh+v=qc;y=SxsD5ov^$yv$_b=h%}4$`N@`K?ihzRd9Fuw)sb?pKlvyi zOz8Gf$E*!$lic?w9$&*IZuqD(NwvXlJ+l5#C-%BCRm6IA)}JE@sN1?DiL8=uKzUQ7 zW|65}Qp)@`0k!xK-s=p`p}u1tYirDlu(T^E6pN<^%P;_OPU=U4`)<%_H?SIq+--6+ z_=9qN1@?Mt^<7naCRqA(b?9{mvv;(rxQR=i@1AFd@mu_NC!2yb@Kg(Ey>Yge0TU-A zL1ObXf%Ti$*1~;Gf_IFW%{V-85M#mTE4e4l&(zwvG7^wh)aH|sSx9V(2bN~^)?P`9dLH4FXc`NmBWH>CL{eS%86b?{k{Mf_X#ZTV7k_Zqxwxo* zd#0|pb^!tNh(tIvaqN3?%$Zsj6kAg7C7X25K9sG7=^?w6mI;)4)xrw+T7#sPB`ZN2 z*6~gD^*=Jx17XWj|Jo|5o{>AHAfIr%ay&UyUU_|c9n*jJDKKMpAM@YC>JQ>Oa|OPc z-scZf@R(&gZ!)mfL3G1@Y)utBgMsyGg8^#V_qzxTUsOYP1Cd4qkC9bnvzFlf-OwjRgq!mM+7Ca}hM9%bFDiz}?C7)qZ%0Q#i2e!u9-3Vd` zE*zuow-hQF?C`9P6xcP)@GhM{Cwa@zm|6o2`1x?g|IM>Xow-3n4-h0YW-lIXY;5W8 zoiTEEO(wbUynw%x^TCcZ`W;#K>j(vVc{x*_|G z$yM34eIGDdyNbZ3NT@Rn*JgwXjut>nip(6O!(uQVT*-UqCjU#;V55jBn}lNb%z1*d zMLHWb(h?@x;?$TYLw7(6UyUa!&y{a_GZ~<%M!xNzTxIGXSd!3N``Oc)%WKD>DnFWH z)O42I5mdRZtX4IL25`)>9@M^EyuPv(Lt156nKZU7&7|ouIE3a7zIQZJmP8poVUWdj zR9AH~FN@B>XNLy_lP=2;_KYn={I57Z&3@yYp1USlDMJPt9Slgf)ppSAcbuoJ*)Y|w zk}3nS367HEv?N}ZA-AMU+@sQ?R1qh%?sv~l{*(E*L=KFJJFjyO*1O|syPNO!3>AlN zrM@Z-yh}CXwC{_r@+ti|=KLnP8j3{1k_!_FtW@E~sz#+-FUP>21budT5%2LZidv!% zuE)LH$IdV{uhP581GDD|@p{#~1b5ER2HPdcRA(LA%~Eh;B8~Tzw!#~l6F7)Ujfd%S5+TY89Vd8Fnb5N0j7pmnSJ}o zh}#YP(NLE`nV*M?A%U&}3cp_P!uNQ1J8rZ-6MO5Hs-c?p>QGQ9OBbrMcmZn+F2(9! z`;Qu3g?_XK$x=V_>g>VO@qJfIudMkWHrjiw7jFk0YM55c>yXT4+6jpd0LAog%g>E@ zB%;dwQo6wAk6Jz2JJh__!%RnnU}YSuj|DU}KTf?5Ux*R_tmkCZP23GHr?iwa$Vs-`k9YdrA_6A zmwNFym?uHP{rk8{CQ!b!t6WQZbR*kA{(pz1X`6Su@K$UJ8`Dz#$!I^&EpT)gWIEoB%LVC{z4tJ zlogGq5ARhoo1iufrW52Vi@zl%76OJqLgETkS>iy}^E05dHpO=H7H9I9|39PnPilSr zegd=waF_*yYSA70*$TX|7rUr8YG38PmwrrNbTI7YLyZj5Y|-93H8i}v$WyM<5$=gh zfChD1!C;Y(?bFn=9DZs|eijntB_=ENEuP+~SHs6_<}0#`7m(C2anYQ#p(t@QQzaay z@7FTe(U0*+8CCbL*JhHe*UxRSc08~LTVj{td0E5us6M}gxSl|Fyd4BGj);x`VOBIP z8$j%PZaVyFxy{K23CYI$ju|aRx!$*1(@%8a4yx$>FK|HLmpa|AZPhmC%=k9VqVhF6 zM(^ou=wG&kZsHYsMouVrQhW6eTT$P|okE=Lq0cn-@y!qqE0fv|9x2L5;!l=;-%UDs z3LT2)NbHSs1xrmP+g(PBrptj^IGDua$wK8u`&YmxMPcKhzM5XJLC}39_@0O=_g8MC z<#mp2BfObT-9tLo3YsOIrjD%afW}y1;5KO0a&x;h+X{;F-1$`KWVuM-XDjNy<~(zh zF_w8Bs??ut&&Wa=(r3iCu4yZ;5*T!cDn>QYj$SPXEthb<{W`@cI^ln3U$&(N`KH5E zN*i^Isv+|0q=4m2sFk17Bm}ab&zW-D`>MrsA&gM_h&F|IgT4XB|GVCSyOaT*F?MPh&IC#i+o_+U*q5=TJRZ8MrrcsD7b}{=5aH$`UA`VKepO#1tlIoaJqkg z{)aFeso_0dnuoyyl#*!f#e}k&>&p5Zrvt)Dd2zpj)ud%TQgVgbS*mTR2kE~vN6H)d z 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

    Z2 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 literal 0 HcmV?d00001 diff --git a/images/jernej.webp b/images/jernej.webp new file mode 100644 index 0000000000000000000000000000000000000000..8f5ce6a5a49d2532fec7cb689fbb126b449f5d8c GIT binary patch literal 679842 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�RE@P!yEGm7uib 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�&dwQuD)<6E7ih1}v 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

    |BvUv|dEnbW$MA;r* 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

    >zvO+Gh@_Ho$bM|40VD61xg z{r8gv5M<1xZ7Q(MF2Z>xlD)%NF1rps%N4=3H`RR>S(R!3dJqA$_7qX~Ncuy}++uI# zTAki<1BqjQu2WQLbeG6>u>p-g_W`O8?Gaar*7rVk63EfeAUQLcml)F z-<;gXitwL+Tu7;NuU9jqmSY1BonZQ!l^0%j1VW;kWsr~~^QF%aVqWKV<94t9ot$cT z`K;=gG}9v36FzkvIKwBOo<`-_u6N~k%oCiaq`AgVw5=%oGX9{-hc;^q`UrMAlIsQz zNRySkYaNttq5}WTDH;`Jccojb)UW(2hO>RwFefts8AjT{!`Ulik|g`qgH}!q6@`Ni zXjV(bN)-}3=+Idij>R7?2BX(jrHotzaH>V+l004J`fNw`6gv|oCId+XAeJO>O6ddU1eqBj6C>0H<`Tw_BI*R#h-V7WfN1{gYs zU593+G%TLK<%gL;7iB*`mpmzBx~Bwg${~GP4$TYT-KDpt5ei z{_a=VEbu~L`mG%VOFQ>cxYQ`S`WjPgJZ%u+K4bOoPflM9{EPlv7)AjD5~Cu zaV0T#ARoo4tZ>9!V+kYVSY}kzlo=h&``z zwiT>&EndIC9%4|6mh4TvvdMyt5S=|<66US)V%YkswyPM(rJ%fR)M@m4eCtadOB+uf zue5n1TPpNDoaC|%A2%A@_OwWf%;AwkSXVUC4L(q?<6Vjg-I}JCo*|kygqQskH5qJa z~)w!y%m7=7Y@!qGq8T; zo0I_U4?~r|n3h<;{bUpmj5t+0Wn^%1y&7(JLKSFDIZ;0b*XRNXQxm9SIA0Z;N&?0| z;|J*C4lJ2rEUba10ilY=vPmt#qt-Ip4cr)BVB%)`JgZM0csN2Kl3>9QG?`?F4D)@O zA7c?%DGsYpcCmny4zEI9X#^6KQS;|yMtQv9rzO9YaYU=vo;Ie`Q0CtRMEo%@jofrQM%}pVPU*OH#UyW#! z1zN#caDKU$#yNGsR2;>=&NtV{vk^Rs$$ z-c(j@(m{>a@#vt_cSQM29jL}$9YPM&g7*y*XWXIlHq5Exb%8TxeE4^7(ij`#d5jM* z`o6#Xmi!XI0~rR}oHO>^`+Y@)A)W{7O{lYw{Wu`GqD0cq=hpx`a}AqLMC-N6eRb16 zvm*75-|8h=#lPkW0~7K^BW)IFs-g?f20+K|T;D!{h2+42;kzF#2Q9kbkmawZR#(QB_kS8*v&c-32;fS zKIOVn@mo#lec?ybGf$M&q3UaPuZ`@k_bL`?8kHabf!(g8(0tQGq0$%|GjPtPrMhWl z5MkJ`+p=jYNodiT?T_MANLATJoVuOs&rGS#7Un!|dd4!RO!e}%htMapqBEUMd?qyX zy1jb`ywd`(00Z&A&OIKDA%gJO-ALoyo~kHMnXWJrDjjz64Xx~`uS{le!Zm?qY75sZ z>HDSil5n@W9V_Crxr_)FJGaA7biA%t(Ek1GMmJ-K zajm9vsYSw2Q85Kt;a&wEWQK(iEf_Q!%gwbBBUu`?kPCHudXGkF0W&QTJ(b?vu`)(G z5q}PumjU3}0i_s9YN^=ISvu;5^vTdK;FH7)e8Z={$f~f1&~kp2zW`}GkJeXMZ@Z6ZB{F~Cb5Cw^aY-2ZWsajh4GXpgsPyB&ny@$*6 zhT=)?bwWo8z6*bibK*`rQYOuipM1;jSr0E$`Fh)v%gQ*}uic|u^o!mA{B!hGPB|Vd zbaKS+nQ-+ALq@5GeX&r^*f=!2&%D6Tt|NUBOi^4!JimwoLs2B?ojG2WU?8sF5P}~w-n#Qq97zUF4xs}O`bi`R9 zmLblWD0FTC4{+kU=ax~?8*|-?ms9K4nI$N?mMTs1!^ooxO`3L#ENiy`W<_~GCc_YSXJiqOo%_rU>BK5^C-rc_m1A30K=eU*CU z`}PcfPmt-IB%slYjL2paLo=(7k<0zQb@^v78JP{@?T)!%hJKVNl-81VaDT=~Lf1 z0|y|d>c6OXP`Kf_r@GHBdvo+p)?TCw!?LhH_OJrX;l3aWAv%H{v!I& zp_0J+#qVD5fu7fltlaim9Ini<;fB`#XAt3~Sc$G;hNLoTR?0ev%SK*Cxkkd%%bl*m z+O|ykO$`tO?bI`T<%2uE(-_@E5~$bX={f_`wVySLSt#Xc;Ax>LI5wnw>+%wij4;25 z=cW`{_-4kwGF-d!^9#`gqwuHdz*DbU=-W`s4_4H0CKd0yS-~xBf@pth;m&R5xqtT} z2N&mKcgwE3^K3RG{Y?oMrVfE3Yf4JHP(8=H?h_p{=YDWw~Oq60XCQ-GYw93geC z`||!%bDMaY6jmvfjGE!eF#XjrI7oCQ6PBk_-*vArZo4#|PrC|e()V&>)q`QaT7Ne* z*S$LwO`&)4gp-Uwo7|hHuQ^*^@*@117(xmF$B45UC<9Is#doz2jTr$v7G(LDHH0L3 zBqE4gdEb8UB(~YBj1^nI2#J``OO1m+BpE;R77F#oyU5qtpV}(rCwDYd8Q&~2Tpo9l zQT1KmXqH#L#{AdgM7?jRiJik~q<3J9sTJ^SwU=Fa-7j=N@MA%&5ygHS_r=PZ+6pB*^j|%u-~pT23_jWbdoo(ilo9yR5dyBG}R>e^VHrr zx}9HIag=dVI#TiX88E~NA8HZ4gDr{|13vs>yoTL*r)7K@_t6@<3)+b_t zC_(kn&L6{i%77>!Sn48<^S*5qy@w5UHAW4Oh2I;-f~viE^ygf|G!3zjhdNLbAmC9) zE(W~SxsCwBlF9du>egcQ?sxnv zw)lkr%4pW{Z)qCFjhy&Tx?qLGyR|T`SiO|PEPoEG4@1SHBEP_UcagfpqKrhRCH&0< zzgM14OFa$oY!W&h<++Ah*ARtofrsB?D8WB5cdLZt6ZLsSDFf$sIqCHSag{La(7l;~ zk(uhB7AX!rTQ1wpy*va%ngPx_E!A#1*gF7lM)0p|04S zDJWp`p>Gk-e)Noxc{acj(brJ*AOK8*hVQixxa7clR$JT~y7f;Apj_t%wzGu&ap0mx25zN}DnO^Pg91!fu{PjC`P z;Agl%#=$fHvjA%l!PRw=nM9J#ouVt~H-Ag9peh3phtxN?mq1%w>1OJ%Pu=U&5eReZ z?>}#goV-td`#VG^Q4=mT1qXKdLCR@Q$sxmM0DvWFg*ahA!qLvVtm?D{TQ_iX z@+wg~SoGC0(R12)?THpm@3YkjtPk*I7RtYAj)7jxc0A>kENSJ*&Ppj%vcXzFYo@EW zwC8TWQHh6N_}FYb;v_E5w2HCIPsp!bhJW@b*shWoJdJA)-7YHh*+pG|9@qmc_=j!kc*FTOy*gZ9YVr-va)Y2recJf3`6kU|aC1|;U zvSjdpkB5zD-V5Wfm*Dl5X}aai#iMe@)_x8vC&00ay{7$CzZE`xF|-hScW1puH4_cC zf~5^h>;bh1+@#D9Ms#s=mfmhg@>6&&uudaFn2tdhEJ2k0g`7TCSkAtgD-eC^+s@`t zXRER5_$82SVu5c{re8|)g8%$j3`bJ9p+klRA_;WIgc=VPw;8 z(+F=!7H$k@f}6BL5cstEQ%RI775=HC)8y6;^zc;8ZEz0aOBiD<6>+;>FX^;}2;9{I zSpq~KXD3mVg(WIhU--%7izrNvK@R$n*Z&tux=3UWs|2dHn$@LK%cJx{@RVAY5nDQ# zRuq6}Vv+GjTCiGsVY><6m}#%;Bk^by)QFc(nWAb+F*o?H3<1BG+2UM&a8;$}@nOwHY960{oL<=TJgjcWkhq5=7@@B=IJ^cDR#w zT2N(}D-8sK9K+~D^0XTgQ^G#&YZ$F*ic>tHXBo>kPt>UI60gO^!X3q?4b3Ph(mQMv z>Gi5$47FdVQPIzMp`p`;Fc$lEXs4QJFZahOOqvNJ|pPr+{yxRzOp# zY{;}5`pZ4Vf~0zaM&ArzcvMX~|7$2#@S_5#`|}q#pv|hYi%);wrEFk*BAflu>6x!` zh_|!SyI2}$@vw3XdZT+5gNskX{)hQu(9d62p6j&PTFU6ZPkWA@n=@5Q}%*h+&w*&E|CQ)e5 zW0HvxY8;Q_Ter{x4$%%DN;~2sSqkR zXksqpIN!!50WkDF(Rz%cr`83AFHTyAYf|ByEtWmC7f{Or_`i+h(Eyy7#a8(E0CzXKFYLcgP9X|J_f5VP=+<*u*s>Xcd zqQ#ADH}{^sLxbdfbAN;RQN^W&T~l}giPe#_QI{8qDk6|z>)|R`|LNm&ui!ni36Se4 zDwEFkZ`yx9oaXAAhGO>T=i-7ni+lCRY&K`EhYKBa>dN!`M|RiH`zN|JY8xWi(7&KN z6~v#=1to@a_f4`{CMwr}$zJzhpY))S%mZ2@sGqAGCq*~+VCFA}PRby5bqh=tX%g{c zjsa=dZzU0`Ym@8VWAxE8RDyx2vOR8BVoz<)T(uOoPCHhR)Gk*SPH2auuJ)%V)Tlgc z;T(GTSnx1oq0{-?AdSB` zVSHLpy3o#+77jQ-x_Jiu>i)FJSZuCTL^e zDKE+0aS*Jja8a&t!#RW%v`f@5$#`WIx_kEKl5+p*E|a42$%j}u{8lAk+}c1; zJ35^4dpZB6ohC^&kJxpw`ox$qG#?)8!aK9wDNnCr4w777m5vZ?1i+0*fg2_r!;>d- zO=;9w@}`Y188BISn%STUTqq{}ER;kG&DQ9w`uk3kfBYMwe@}UgeA;yO;*uDDmSK4K8OBGjbavW{0}5c+%?1z%oLlI7{7)yAzeS^U}`!!_=1 zU9-cp#NIAWJUhEJAb^1}tD8j%gt11oIE}P1n(HslPf4#gC0=hAlGHR)Ogre2zBMT> zEY|cW?t+JW-3?(RIJNlb_!_ z_@yZzQj`(N-XG`;Jk7A|Dg4KmdU#E5;LbcTMb^5?yA1J zMWQtJy9}1MVc4qTvVj%Ah>&Vg+0wS!IX(c04vAyfdr}PjlP1pDjR8X2J=r-RLZE?A z)^-iPU_VM7Kho-v7pXAdc6)B_+mnr{R^7b{x%#xd3z~1|YT~KyoBI|BSMiVIqN*X% zdVWOXR#u6c9wlC8?)EFMCO&FhNQ!a>oxeaKRp2+Uec+(dwUXTmpBbh0^Sth|0`D|i z7R1Nu;S}Y@OW39;*Fitd6B+=d+thGxBx*ZVaz38V4xXWDNRQrQ?ny%j<=C#XXaBw^ zk~Ee32xp0rY29CNCHTT+OI$hJCQRn6GI{xeO4aH!|B4*=|K^?YgQj8<&V1D}tE0O0 zYZWw-@V+OXJv0*l%T8^6U~8hoz-ae%u2D}dxpn8+?4$5INHuL$nc4wf)2pSYOLuK+*Jmg%u6UmqYh9J8-Q@RM69&k0@)D512507!MIuWl`;G z%744b!xc;E^1XhCtEOaG0hNUfh2=|^`%YHx5Y0c-Wr|N*`A8KWkks(i1X6YLS8{+m z6T}xCY}IhouBoLEfn$pJ#Bf-K3^44=9J^la)`7#KZL}Y;@M4XYC1$aa;*>LRUT~^d z#ZJ7D&p5q|x9-0Gt?*P)a;s(67fOoG!y7GT_upQ;7A_bGo%skJw%=PbRzW}JFd7EP zX1OazX91o=?YS4>|58=4$`R)bDp}|MG@<+0lY}&|rTLN57i0Ks`l_j*muKK;sgY&rP0}u#W%3>=oOL;wDVGn-v5=M}>`@^r~Felr<_{+D>rg^}u4VB)3Lr1fG1tc~7n`bhTeTLE%}}z`z}hbYQ=J5M`uv~w zs{w18s=bdJcHVGuHdt1_=@VJeScp_KDs7*e+_^ijhj@Tpx@-JBEau;Eh-QSG$YdKS!aoO0*CY=K>27dVKri^M6eZ z>=KdEp92H5lEOZ^9wAdhg!TLU0-mS6R{gMOZz{N&L zg3xItPUE|Q6c=ZvV8E7}W)dJQ6lz&katx9&A+#kgl@cIu@fS6F=V_}JwQ(5#0U70> zcK$W4G}XvzvL@Sg@n_5kkZYmbiQ*;5Q(?x?_WlE1U>VWwG?nCcnLseX=cSa4c7J|` z@ATF%PpTE1GzBnY71lh|5sNJgl4a(8p0PRBvgo`JvfbFCnHb*F>?#KL_d<7Elc)B4j?=CLoQ`u9kL_a_t|e3 zR);7pD$I#Mf!>2aE`wHhSni|kh_CDYp+B||CJ05Y1`xAk zciEa*X$6p4{;yrk@st9*<}sR%A0jwGkdv)_?{KS;$q-=`< zW)@Vno=Rv=NxxU}IL}bIl$EPnqm9y27iDAsY_B)3f}1o43(crkh4y)28r0f#1;ok-7z=wCxTzn6ZB!5 z&GjQ*=Ti5vY_zR_nDtf{$}J(htwqQ-C%kpWY;U%7S(-~3^S7_r3a14bLo@-{AM=v6 z#AIP76H|xEk;BO&y@*ZFURd9EUbGo#@xf`~+sLR60w`v9i(u54VY6wU|^^ z6;woEc8@sxZHr7h`TK>HmKQx3K6N`d|Aoj9$r_SiYU2D0{Yja~GPBLBGOS)B#h-=pulTxRkEg8Wp6^QLx0a*d8=!Wgyxb~N;gSiK9t-+>-e zk)@vE=MruJGsX~kQY7L*+3TTRz1jCdPsr_q*K{Im8|!ti*YDSwMN&7N?7Km3BUov@alM|3}P)iLykQ=Z{!b8J$!|)T!0C%2gf^QofhwUIvo|J z9&&`hp-v?4vdfhF19SIqpZ7qX(zJ?KAoM3S0DgLOI3^S`DUixuxU<~*S>33EL-3tz zO%)%}Z|=-^FmB^&5I7t*)@@;lE0!{q-pxkbn#Wc+pHUpN*w9>T{r|KC-6(L!f)lsB+cAlKVJTLx&vE$v;=XCHg|88$9ZLn( zp7U3m3}Tke(YukjHRhhGk&Vs63eRhQwHPG3>9fFVAR1b)#!lpA2SGB9IU;~U5Anm# z(!NeyE-qOQE;ek?xP0}7GwVQo8Krp4#4X;!v^p*CUcksro09qFs*5Ac;RR>WJ!$or zxIIWbphFF?X`hUYxD_Cayj376ie?Ey*`xg#VUr!l_j_EI8py4UvgRpH1VB8gV+0o4 z+@r3RYZ2jHExf2DL2OhPcVL?k^HHs_>Gg6dpk^kK=E$5cE=i_A+@)*ri5L>@4ba@b z?A>k_Wp(j2@;csIC&~XE)m>2d1|9s}hVjhUaQa!r_vjo$z40^m(YTF=$%a`*J#s_i z0R{#cSvpFxk%lCm0fk(oDR5bMj#$;-P!Kx~Ban5}`-l=@bAS>Eo8eg$|xj*&=}i z`fsdHW`TpDL^CG<);j9j@y-zvpCLJxj?hyCP{Z{}o@p+?I>8A3SP(&bYY**-%8h~T zXQoKbIq#buGurHnnjv(#Ga)M@Hc_O6IOZTpHJ-&Jg|{zF8alL=MZ9F_Nroa347OhM z$ywx}fXD78>z|5y^cL+axQdqEBdPCm<4F`wj`2nqqN?CZFS(i1U zu^gvr@DNI$>pPrT&7+OKoF`~02g78!{1e?e+oM4)Vu1Dw;7)B@4fCmkLCnD+N|cey zo&s1dl^zISIjksNTn16b{N9+5rmP2!i!{_kph4IA@5(4N)D~A3ax6^}vP%gQm+WvG zy$SL69Hb2P4~ZNR+K$+^^*9ks4OsIudy=!Vau^ib83RkZ9-7NyWoF#kJ``}6SU7W@ zS+XulIvwb6D#T)(%gpaqoy~_506__|-kYkxvLJ8w`2^g|xjb2kwR5{Wf(E*etT!(T zxvckPt0K)idT?~k7Q#mowUBa?Q!H899KI4A~#fS)tW1?}0 zd%3Pfc5IOQY~0A3?K%3aoWn`Uqf9z&YzCDzFW6-s%daXn>KUjRa`2p)!W2aGOC+Kt zi19?cqTPUSZS6;d(CgQODLCP9J!|vJh=?1twL0lh~ z11QU@7jmhy8?UC8=6P4>fC-sYXAp2_>rno6Cti3J0^-iEbhV|l%2bhx{o|9NKM(%S^Bv~M$QOt zKy%V;lpv)VHrUG^granTZ9vOU=&fGB1p|?zh3}8_*_eZIbNQK$n)Q2)GBFh`x&`PlVGoV65*l?WyeSHfEoI4o@HxC>6Ot@+f(DN>$r{eUo7xfHTV~1x5GyLFK9%K!riM zWWW!0Bf_9>+UU>4SNOUl=EvfvDIOIIS%mBY^i11H+EP*nrjVq$5qdLMtPZdkWzmcY z^6ck$>Ly_;NwH1~?ZGAtAE9AwH0_2Bo5M*ba+#Mw4sz_RdZfDYPMAXSPS=@2Q9Yno)BjG0Y}2_!eqk#*=^e z;m`j;q#GLu8}q@D;xmhbrki@**wFyTD!%%F5w9D_=@H6eTTyO``hXZK*bql$**kh3 zf8YtGu1GKp8!&ax2mL4K2cqnzAZnl=w&=sfrRyULJoyFa&{ zUGo%Lj6FpvNUqMCT2PjTMJq{h^Iyy<@9Drfz|yjhNH;?Z;h0?>;;;t5XA+9fY7Jb$ zR#P1}z^rJ4xHsiD$l)`9=JHadqvp{$WksOhblyY%Q7wltNmJfC7<1(Tp1VrnU8)TF zGccKYct>s37Yuu&I3Su0MW-I?H?7aoaTc4c^P{CF5 zfMPx@8=fJ#-rZeqg3dDhx;M1A@*tZ!WckieFmY+gB(eu51`(3esA(9i?x`0Zb~#MLwvy53QXT9R&}w^9r;$OoB4r?p7CK*LhL!4sV}9|Z){hxcE|5AYO9zG%{Vg|~_Iv&KHVAx9hRqmWGk#0fuoJcJtU-#a@jm->;({{<8) zM46C%DskMvmYQopyjqb7fzqnGULM^{irgW|EBCn}ADk6SAN0*?RZx ziItvTk`OYN-fsQX{XFA7M0c9ZQ6h~`D`l=5&RAPW2ZI5B_J2^|P>x%UX! zeFf<}1Nms&kqn~}i0??nGGCx^aiAkdb~9@YYH+DQXrC~FRF>vtTbXC(<=?@HsCoaY zPJG)yYl&ct>#kod50w)x3Gy?L;3Tdud5iI!9U_EnBC%q?N@l$*b-)eAgf9v(CDQjl zkqsK_D*Bn#DLj2?r?Ax*q6OP`C)sHr;s}}e0s1b}D%od~ec8jKf`+Wec{k*JlGoiT z`;W`%a;fgM(s=+DeCq>yxOarEYv335QR`_skR!Nd!RjauUH>0G z;a8%>W%k3}@>Ik#n7Zuuds_Ys!@!@eSrg`I=W8Y$4SbH}9+0nO7WUp8wf&T}Xk`KR z186C+KL>k;n9l$V=+gFi#7&(knNYr!YZspO4_vGS*9!whPhd^@JG~QWG32j>@NVZM zT2+RlYLJT0=9AL&vcEf=4ipK(Lf%ev^csrw_w%ai`M|Z=1Rt*bizCap z|F%!#HpS0Zdr6;uoIZhS=&Dbh^$XjYFOSB60REg4A{X}}P0mG))syVkVn~f_dMpwv z7#@k@0J(JYYUU2##Cj;StFh3U!6UdY6gSxcss?q|J(uX>)q4|E zLl?Ql%5w$6G{Djtm?kzyGNGm>LyYPYC7NbT@OhU0xhVfl+&Y5YE4hf@s1qlRQi+mx z?M$)|ZnypP@Zw0yBvg`R+y*?Fd}ogAo<8?!98JrXoKzgT;O%U_Rs_wgEV;-iyb$PA zIkfVw#SObHx^(4=;Urx#Pmf@Zs;)@E-F6=@_zE*bs-u5I9^qa|23rH<00I>Dt{t^g z0%&H!QDx_7Jr{SCi%<^4Df$)bJRGs<_0^aRHbQX9ET(60x_84FnP=vsKeHDxfOTfb zdp*}5a^Dyp{uQVYH3(9EYJ&)N{~;R=_^>FPQvG&_@P%P zifZa(d*!b?a-%`b0*aKo9)9nO6<;J#FFpwfR2QF_va6VC0rtgYay$-nK5GGTo-y57 zE~=mqtgeQ?w1)Hak+h0Fha(Lj-4`S5&DRY`>sMBiGi&BUq0&z9!~-j(|Noy|!GSFm zD6Cun9gNZuq*N2i2dEikWrQ{MH}I$0fnJ zo*cFPA5V=^h*kFRNNn7m1QCJv3a5sKuHZOM5;XF zXt|*>cD)97u(y~dcpsRFRD_CEpO0VFn&0k+(R2pSO9@SQ2KnB&(6}-h)M;J8*>r?o zQVDU|R#+tCIg9`o3YtJw)%yMu+wK4~`5;9D2xD^#{Bq#uRcvXBVy+JfB$RS)nAaLy ztj6SV9-!T7Yu;(s zZW#oC$0pDVrPc*d@ z(nIr@{^hUYo+T$zJCr21+-MBMnf>{)ge>8k?mJ=*S8rsoZKQ8`N&cR}#Z(V@tU}kP zBz!qE9k-)NeA#p(B;?Fpkh28o|NAMDJAi#06uT#;@Xb6M{%v8%(>2xYfJb8U+uH}f zWQmmP?M$A;e4CBsk=q!+Q$$K|h!)E>U^5cOJ*6O`1zJ~JQKXU&t9~DV-C({o5qFU8 z`~)k|`Nrr*^dofOjqORrM9tm6Bcw3J1ci(;^mm%vJeM%QBV|_N(OCcrsjh?!QoP_q z{^{W^ObO6EfW{=0>pIU8&#^-5j>p=*z1d?*ZQFH1FRin9EtKOYApFj|^sVKc5_kL& z6z5`6@f?ww9W60p>|<-eoAL(VL(?(E+p$-y@kvAd(3FUa&mFndGP^DUh!^L~zbSZw zT2iiVjQbu_lGkQzPxDRqKv^0GzdYFdT`$>=h~@KJ&LoQ80VxVtb2|o%a&QRu7a7Fs zahAr5&)C=UkO!5AaqpOCaM&o-^!>Tpt&hr7*U8yCDmG!rX$7~SQ1}w{7YDBwIgM-- z?nFSc*^6RTL?i|~%LI?ktSlqK1USC@J!F_ws^0HkO@i7nJ#a=qT|m5f9mX30^QKW` zFw4kf4_Q+XZI)XRZ{ItMr)_v2nuNpr`+B(sj{59j!4LM-2t|JrUr4`8k%#lQV`VW# zXcC1&>9zfe!_MnR19n*(A*H30CzdUFVRm?Qy|_oETA(f7APyp9pcjvA**xTnL$wp) zzEpc)7OBrT93;B@WIn9ejJQa?N2&SiC_%n^4j(7m2~l503(|?@p2~=hoGGVmT93k~ za`l|bkgQ#;>hSKGHa7>KC()GYaDqM8tSda$+uqm=5wkM^<9=Jb0Lb2lFF_i+cZ90a z&W*lK4QMJDh{d1w3y8gPiUygj5mpnK33vDJy)LIJH!h!<@C z{bA0O2iz2v(h}IvMF!cm6bT&TyF;Z)~cyr-iWi_PXw(Zn{g18#jl`8{67z8QL*7 zvRIpmZU;_a*c|!K_)oVbPIv9}hJ{rJ5G04r7{?oW zEO)07Nu@KUOM}*yZQUCjZKRd%IG7$e(rWJb!hzTcGMQg!9tccXe7-{Fe%FCd zxg5<95jxTaTV-ElERz9Zt_$M4TlblKP>@bc+ham9&(iDsUex|M$iPmj9(ew0SKrgW;ipFU`vzu&=*H#8B2nugoYylcLpX)%h;}jdH)fRGeco$ z4Rjvy8dqLUSiBq5;C0cncH7xJd$q@cR_dzpFZ~99-py^uB9!kmDTak>@-9B5D7djk zNv?wFdT>!)-*pIEH72-u7ssMb7!!^dIWn+L%#wR?uR?SRZ9_YRd1x3Le%R&2ZY_^6 z!~L;sHHyEe6&G269XSNNBH`5@>546qaN5S>Ek=>E+9IN5H#ukX zH+k<&#JfAM9EU=x)Vl)J^`Z3C8yV^VjXkL%RL2*NP?%L(>ADlXjI^Skuo4gKz=%U0`r*r$HoxnBSA8YLbyK z*uaums{`9j_qABl>GY4qYi4bK2qMj364Z5f^g&mtYJ3wBg89?@)tG*eH#N?n#9l1t(s&dFh)ekG9>E_DsI?QrT71RXA!ld64is? zC0S6JKYOvQO zj7#g!w8$U*p;-WJ=yY|WU#~>VYC^Y7038$HLFnu3ZJosa5=yUbjnsVu#z;`}A1i&Y zW`E;ZB-afL7;gw<#Zn)%-~_6@u1h)64+CsW9dyn5n0A)@h7g&earFfLyi1BAYyX2A zLkXjWIoFdK4>`>682-Lmr?8d7k=zEDVPVDTMa~vB4~s@8+I@{+^2j(pFSpx6U)31B zbf%VM4c@*GlUiq#s1CsVFC=)RW)a~nTQ_R=83L^(TNrLM{*}dHyv+0Tl;@B6^$4-` zG53g?Sq3Jz=e<=ezV0?gvo^9|hVq=6*}092e3P*6H8qL9NZ_*9i9{J3Qk; z3e3`J*S+b@m;=cwEd}Um35c5LH8Z_0B8yv~NsjQEh1(!LCDhUWISe;RvA0LLX%EfJ zBL!kqTcem4TB1MTiDB%+VuFkcRBInVXfJPom#>tV7~<{cg=k#R^3+i<%e_JhL#!`v z=P&E8sdRzNW_R92>ATEkcQB8<*it!G!(kVkk$14Uq6p~ay+}zNv*RWXnf{@z(D0#2 znAc~&Wz5Y)F>02*J5l07;g72rmV>Q&>&-5T^ybAxV)fT`pa2zH4Oi!g+DI{mYfH?( zI@upue6UBi50@BI}ppn+e)+aYhNYrU!UVWHb+i%)&D!HB(z{XLS?c6MH6HLeWGy;i!Zm=y$~wM<>$eaR!FdCv zufV$$Itwy0D=bKuO@~Fn6qtt)L)|MOZQJ34C_QuTAdX>T1@;KY6&f8ITTWvHvB)?C z`}(m5FTH@OVJ`Hk2>7g2(gcb`61m>q>fht*ETE6`ZmBSbNH9>zceIizZ7pygm*9c( zZW_Fb@o!p1=C#AF*mYgY(DCmvH+X+Yz@ z(wS^;k)nkjVL*KU(_K&pP+B{Q%ezD^9HlZVz!MjjZK5cV!biN_@8)SJQRJ2(P&}`K4Zs2qug%!zS5_wIttA;vRNc_D9$=g;siTcE%l6)tXU13s?$K@f z{e7qGw}x8z>gef0y0D|}5noD>nKjrGpw1io&re;Z^ow5Q(>B`8-QN*T+7wj6RniT57 zngB6>xzcHc>jF?oqB<)9v=bb4BC`mU&`1oyJiJV9F;SNW@gRh$I$)T^HP&HM4DUKk zNneg9qPt|gYgR!Zd=fwzLo(M}(73RpZ6xep`K!HUiybGp{?@ynp} z-Z$_)J`-F7eC&O4uc7AG%@Ga*)Kx5^dwSIhNWAvQe4=db2~Rl&Y?2+wptqSp1~YAq zXrhO65MO_dY{G+11SN3xjQ4m1bQYlJgvu^!{i@l8mtrhLj5x!u(^D#`ThgA#GkfMljv!hf7RWPo6x_D_ zj;?_W+?kj|`vn*X5F~ps*}JjI4}5-Qkcq-%-EzWXSQ}=H>*ZBqfrPhA56N#nNP|b? zjk<>@($sFa*ey6chmBCIp3d-{=lGI9`1K?%CNWwkINspk>GS)0yQOI zVHp!R^4g|duee~DbO57DcEgWfYG=7AYs&S;+4||=ceb&nw>w?%4IDTVVbGI$`bJ_< z1txwPGUiMs5cg+?@^#mk!8$=X4J5eevc$kw%y)`xlERNmt#3;gtw!tXosVh|r+Fcu zbJX5k^|V7Y#GSf+q!DZx&Nu=@SCBRuy^f|XTG7QJ(E@@h*vd3Mu(a211h@}-M;wS) z+WCxUf|V%Mq=su0e=Zp&e#gH>f^hbUi$BHuRuo47DIKv~=a2`v!ZK9YutO`XbYVP+ zv`C=q{R^W!*QPz|3O+|PVP`iK(}l9Wv${pe@d#N-j7jF}+$1eNGoaDtDXbW}nW92a zy|~f4dc%cUY;8dXNYhG26mMk1G)gFsDr z*J^!K$Js7+@8Np^W7pSFq^Kn9WB8Vy>oxmVLT84AQ#ow0R~R6;$uhjdkWt)+5Vl-~ zt)9bqH{z3Ii+CTB?T1O~jViU*ck%^8M)p9!adgdU$QFlQ6eJ(HhuE(xH3(DDrd}gb zqu6Kjo2s0Y*^7RIL$FCBl~GV4l^ea!+hMReZAK=JE&1)WF<+`%d34qB(I?-jqA9Wk zoGHin11L*DSvwi4yz}4U+_osxEXM3N35c-_U~B{; zaoDZ!(G;T0aIZb$h-*7!gR15Y$9ifoy>y)l}RrG zIxrbQ9Ky2qb1kuFpok}VxIW8eT95lOlbE5NedU(TZ|if(6L^v&1bXfG9o1Mbw02RM zw{yKMWITr%?Iv^WTPxCzs2VT19W+}o9h`Qc)Oln05TiI&Jqd&X-CD6?aBnEUM`Cr~ z^qK4shW7CxGYfiBw9;V~8F&)gX@|)n@6)Hyb)02;1 z!VnF4hmOIluPq5Rm52St050oDs2!(!FxT9* zZc>u8JxTBl3nw3er!73P3l4TpcM+OF>}qK2LPAqYugY>fJhjhgSog3HIr1`NN4?Fs zf*H(Fb6dH#Gf0CGCQjCyv&gbf7`bvl0R>mz>gLP(b5DwP|IL5@YT)|*8<{1)hCB%I z1E}KGi1Npa2|jiFlt}a&5y-XUt2D*gCKr%iuWjjib>fIm>nJ&euv8Pgq?GtETt{?Q zo*7-E=-r+=gX30ypQ&RlO)EV;Rx#gIhWRHvz}8E){*1C|p@8ABJHOL8H}H&qTIQmH z=n&=+o19?;#}w_L!mSWNME>={C5{_69nJ9phnfr0&y01(DX{!3y-T6HN`sC%!vRam z^@vzXy)pq8Nc_Y{BJ#V^iDa4`dKfxYF`^5e;@deGJ0 zGX&r4?Ve z@l~9xnoT%66EO{u6KGpKE3%9186!w(LLzknm^E=WOQQ)Uje*Qr8gb!kFOQ7biMi?+ z=rd75=vK+tV;)vRBmrXK3zeyU189y6WGX~Sd$>Fv(||#rGA3K|N~iEYz;+)fIZ_ z#kEcY9tWVg>qc|KqMMiGD{~`lA+Y{96o11FwB*}XX@Q&$h&okFV(eK20Y#+Us0yq6 zEie6I*Bt>CF1P&wcUETMhw78SeSo+O{n#a!Q126uEcsEj7yQ<;aSJu1OZwPYk#W#n zxZLbdOEz(43t?_qIJlf8-TQPZ3&9L62Nu{6JrOSu!okymO$~pY!aU-`CWDAia=xTb zbEO*Ku-AJ@cxtyz=^oI$X4; zxJ4SQAQtZhDjOa(T*HC9Dy4m)dmp9St9vb!Q=Wa3W^FX@Y74(sVe>kTeE7w*fR0Zw z_l-Zdq#ouhCk7h^nd+%!V2E3$O#}xw)ZR`q2!!3HX7XLHI|EVNUEZqnH$R)wxZzo0 z-|=a;x3{sQ-;Sq1Ii4N0Dz%Xhmw!u}`f|2!W1bZN8~;e(y)jP6=c*d+3F|HNX&|>y zmE!1mao~v!%`{@pA@;ckhUaH-aJrF|8cGS(;^PmlE~w~`4a~s_&woq{=wFFWi%B=j zR{=}+8xyt9t8+Z<{*F!DbQvj^{YEn5bg>4ggdLZyS|n3ih!ACIseaUsTJUEwWJsvH zvJt|iKr}ynFiLK4KeaAS|nf0pPqT9I$hk_7Mjcbi*0$>b#xrJv6^VaFS zwBE>-E;yvK*pJ89B#cj73gBi@wWoKYFK;HGIk?zJg4veKQbU}(Ez1UoQh*+stM?`N>EjVA#lPs@{)ow@P1nE>m9o`S(fx&L%%dYo ztOv{tfcECExI=;OzED(2BXdxMpYK^FbbTI3i(~$Vk6oBrNcx&q;agfagj<9g;1S`V z0p_;G#2pfGoo4J6ik*#Pi;OpL4^LkjCTJ0L&zhAP#?Ys1p62I_(D@axoPie$VtlN8 z6!{wslvl%JRmOSlmjUQLTKI>d^n~1FjprA(IxyDeW`^NWGtS+;N=t5WwwhL_h(xVgXA(k=F~U9M4*ud*{8J;Fo?gWttA%ts5l*}`b6J2&U~gu)aly`x zYLx-ivq><)R&%RZ*Md>Z`4(`S@YYfawY4^74$st&V` zh~R*%E!!dbap!{;39@gZ0{X!ONq8i5*`9S3t}g3mQuoV`yEq~EnubF}Wx;#`!>2i@_r8N!C8jHr?Vh73(k4-H z{TV+QyapUh~(Vnm6q%gg5dwSrEbdv*{Fy2IjR2pWET#g%x|`@EFZ!UMm8 ztO)WpA%8?QNOs8b!p$np-Fi0GMD!Ek>C>oX9rHSV9u4Y^CT=lE01gztF>$qWKQ@R+ zR}ygvnh!ri2FwGy+mfIcvmZBa*;B^*eUCS8uJ}4R$XLqjNTtm(wgUdPKv(N8kX_6B zFI#MjKTD01A^Lz_M0D^}N684M*W!+~qJFl7e6ao`LYYniM}esBQNndqk})L>8VGU?&bkK8uI^L4c&+2K{I z%`Z0%r-CMdnR~9C3@dPtgeglgCBN=GzcKMk=P15cORusifB(@bJKk(1UD4cpES=o> zIS{VzLUCdd$4#gVrF;+dNr%6%3H$BLv@@@~aMMc#(_#pRaN<1NEITsE*Hh&V&zo)} ztZ;lB|85qu_q0w)?;h8mJI!0#^#(qJx*uht_KSN>{5<-r;vX@7-@VP`I(`Iv%L$yx zd$F{~msZXF`f_mQ1}mzB5hvW8?pmoCjdfp4q5G_0h$oQmgpk?}cRN0L@j;x<4hT}y zFq-93_3-pL>pPRaUfTlEmr{@<)g~47k-pB`_*_1Bh%;m_;sxI}SnMd*jWXZp;pzDK zpNu&UEPHE>*Wv59Y7m5uSnO;eyBuQb zpZt1;gSKh$km!^}5h0Xa;&wg%bi|&*rnxhzO<^z5u253Mlo+ zdU`zeShhFcs}S@vA(GlJ1+q6>#C>nes9o+NViey`6hxr%*FZ{#a0*YJk5EoH2Vh(c z3#UXt(M!S2I{#YhPH=`>dFVPGmiB!K3?gnZvgnDW)Pz0XOvw?gIP~mYz4=#e8yzq+ z{T8_+#hzeyfd_cso;pvxxMvhpK8E62Jto<#CEH{fcgLTO?P`2!DE=ZA(>MfO4I1xE z=bR*84kT3ks71i5Q)f5p?Z7z4COhdnw(r5!fV5UB#N`#bJhP2gE(I_qA~7(@Ltixt zARK0KS@XHe6f`!cYnKsGmpGFFG%L_xcz0hVV=?7H%@l$i7jNHM8Mo&JXrf3*T)xL8 zsqg&rx(=`SPi%J{hCfUS%tJ*6tT8FX#Ivg-SL_2-3RUN~=j-@v{Bz7ENXuF<);MDS zdJnDBB7|$|VPgLOLg5Vs#r+wa4UcXu58zclz=6D(vH+YX<1 z3G;2+o}>$5-fWclO@+2GNWH^p(w%vNF1>!lU~k& zF&_;X_}D9K)mE+N9mOwQ2&+kOB0_FjvRmX`ROiIS?Dw-iQgm(n1Kzrulc0KQtWnyR z9Gs%<-ssr}_W84KrEi@bL#c@2Wb{Id7M-h89hP1euCAtF2>Dm=BVSsIjs-!w>3cCr z?hz}Gz0v)sJidS)Hiu~{_i*-S${fEPRNGb`l~G(LcvEFDBixhQ7#`USq*S=4)W#XH z<{NvR*Uap;Y|N&Pw)&^eD->Q>3Yy6{4FQT%KEnoeq+`=alri-ZKTg71gikq--~Zdw zh{#aqOml`UO8iel$)=O&qoJG^!xwXNfOOzat%Ap2!~tN_N&U-2puu`&uS>6w>XBw$ zG2yjPPcACG^9s<_&1-Ox1O!V5fj8dV2Bh2qX7<<-@2}eshjl05-GWYPq{J??cix|c zr|V(3hWaNF2i@lxL>XT7$};@gvs?8(PZrcM>A!`u;ui?+Y!>|&_{5=~GnPX3f!!^a z44ubR!aSR0Im@DR(T?gp8gixfD)xeFCnU_(FDw6&EW*b)P_T5vl5fZao)HXh+rdG9 z0rt`IyWr7WDIHO5E*^rXqCIE?SeK^=K}^<$AUwCg0^>~WwO&3kM_BuUiu<2Gd#|+>q%ZTou*S!om~J~&LpjH(*RJEplp)h!V!g0 zQA8JuWdzPdfRxEL_?>S!I8#^EqmMasJ^NvOWvWC;r&O8wF>D`$xLNEZF(YOfB=mK) zT3y&!!Kb6ZWh>(%t>x|dNNszX zfAYX0BFinCTeBKj*1`JzaRtr@v9M)PH~Ut}KiWd6V>@cP!rw_0K$>RJE6B zf)Mdh^#f}Az9zTr89%}%mcrV0rS`4l9fbJ->2)K@DHlHw0lGYfmxly+DJ1aDUQ3&f z@gFs)rGn;WH&bMqfjqWJpVj>X3UELgyn|``ntyM5_AicW+WJb}KU9{=NUQj&`!dbTDh4ua!`RPO9Buos&Xx^(L5+jEMV^)5J+ek(rDwK$0izCStTTUIBc4Zv!}cj z`6Xs;ei@lpIJQf3c0v^|GLriWiSM*`%0UK=KPy`RFJ21G(piTj$aQVFmjSw^MhBtd zM|`}{qtSsah22F-3f42i42L4)%*iMkV>9Fc1MyM-7R*XWfB_sE@G5}ly=)GUIvUzB z;O?(uq^djJ8Ngojj`Rp!I~(%2NM5ewzaC`FuR~%^X?;FGkf{??DTNv zn4fQxDo5oqkN*Nu%pH-l@C?y=WWqE7GjgkFFG9K3piT=Kcv;Jme3(Q;-<rGo+~@#zo@|5(+T}`7N4m;KpT!!ARS**})}3K{C9-t=NVhIV=cqy(9T%_|Shm>! zAg<`=hVHDIVT)aH+E&Tdi^Cp(o0ALKQFMS4cD`2YFJ>~}~>Y-yJn8%=-9 z8TkhE$QgjG0XW%0KOoZ#XnF&}6STqFn=1x-=HJJEQTSj+K z3CB9XKn^HUA>vIb2!aQ7u;%5g`u&mWj3uQ5yx@{) zLn%P0fN$38c|-_fNEC9%uwyiLT$3)KhO)S%QviNjx~`1YNNl1~$TOYVdj9E_< z=v+%6t0a1$C*#r-Hats>Acfrv(bZ)k6-_F0hS=<0Wl@s1n>Pv~h%8l!tX2_65-^98 z+Q;cqLig7y&uJymq0YcHWpd9nC2j`JUw8M9y`U9nXxvT*L|`iR%|F<0akkSt4ZjQk zYZ&<%=T-K3Rc;AB@3Yv)2SmfBzUEsy40f6O#8aaT?y0006Yu8d&=`p>6)WP;x`Q&! z>)AVP#SPfGs#dZoH(#n>t%6>WDW!#Auj8FKN0h)qIyJ$lw7T6NmsNS zJt3Yd1Uw6#&ucH(ze>C+6dPj;aT9B|kXJl643BWkg-!;DLrXQ+d+*8D#M9&R%`aWx z^56h9%%SQ(*7E~^gcSb78ky-Ng^g>fpVi?Dh(^-^LNak(J%fni#}T$P8dxC-!2 zV*Vofla{7`BkvCwaJ7BwdXHQ;hNZn@w;o4CgK`lyt$veC($)fwdf?07>V&1jV)h1v zB=ZQz%N0E#x9t1$@nrY+Qa0^N&o`o#GE%4#>_ti>6g72)7vL}7qk7v1UzIABoFX~? zO1Qf+icsLx;7X}3ev4pjb0xh5W>f7IVKJ-w3cvK9buafO`{rN2#EG6tY=^SjW)s*W{MB z$h|m9uaDn8q=q7-imM)1wAEIXX|i8FZxO0^=_%zXERfX*{2lDgo*S2J*fsaIIs2HS z08L;S<|$^4i^`U6&LVKPomfLe{%8(MUslCCLcaAPL9PPB32szGFt5Ue40#*a00~+z z+UjcwLd@m?blGt4@7$8(H#l+20mI1@(0E2|iVbOIJN_(;_&{7R7479Z1WyDSi@O>T zs#|pmoSengHiT!;fhS;y5NEVWz61mD^JhUMo=JzDj3TEVxB|wUrkEyy)HI#2HW_P9 zk!f1ZVF>X>Og<|tZFjV3k*vN#t&5=N#wE#&p{;T}5-cFrG@NYp_8XsI-(hZ5WZ^q{6~iQJ=#WYZY&jxMM?6yYnB_pAsUKyxP%DvFhpE;( z*5%4g0%J!5(fMHyNO5rMb@KEPr_3wq2pGJE$)+G8aZxOaJCPsF% zXtP24ey=zS@#s@ea-yls=GC!nBefaHxmI%HxUIo40zIY~W!h*Gj`na2(v-vV#n4iD z>A988G@jYHKECYNE&BB%oYfKS5@NVMl!!6$u~Hk*`M=UB0WJM#w9DII|3mw3~0%X{+W| zE^%#^Bh0RKi8S^hC+ev`8B&V!`pe%}?kRk}HoKQLK&>wUI%;0^<~B7T{26m*&PaJQ zWRS~ZJCLGaIv1Y|UdOhU4T9c+n6hkG$xY^nQ7yfJ>+~?va!f41Po>=_wh?t5XscM? zLl!{$xcRy{K};a5J(q7YU0Jm2F5;D@bNI`;8_A3GhF1}`#XOgtNnsJk{NDmm5s;ws z{K{C$Oi1sz)>uRZFP-4QylKm6wei~{MD3$_RjJJ>F|9F2H;DXnI6g!W_Bqx?6)4}X z(h_npwOoGo!|QjLiSH-{8oq&YZs+#xok}10X$y2YXPDLo2`K|PZ(1I4fdr0hMO>8i zf6915@66;J3XXEmT!cBbz6(VbrwyokRvd3xbWum?a*%j0d6?>ZX1%9<&_c;6UMdZF z4#w!tyZs=1B^OoMfII>IT~<*UR)n|2TeQ?_p$;CgMhC`aR|ob2pI~E{mKU80y_9Px zxJ%6lRIIP>>cE{rq@$|QgxrJ1PD)32u$!g7zV$NG818E3Wm{Qa_ zT!tKoTc|vz;&u@z#;s!9^*`<0Dqhw_4K`lV{L_$L+2*@-C5goc~kJ0P7$%}U+ z!gsB)Va^ziCY48|mzp*71<&YZvfc9N&O9>y@teT$6XcdTC&P(c)bXtnmh}w|pqrYC{ z4L0_=IlCvNNR|9EBed*))~)t{#o$X9vv_RW+rT1zP@`nzfsTRw`0QgsJDN>fukjA~ z#Z!!{Y`zI!+i|+;ATamAl0y0!&(xlfa_c}|ynqCsF2+VLwfOs+Rnv-h)qXjCPZ3)< zysJRWMa5xFGcKNcLHN__)na+wP6kU(NzT#sti01`@` z3_X&tS$~`CG5)(9&Ihw+t&45deAjBv7GCN*?>PA*eG1`4W;GJxaw({mwc&}IFp#l) z#sy-(v`cBl@rTm&2#Ubn#&IL`9by(S$6{2mte`pKyw16=NIo&m$C@N{O911_hd;5C ziq*YSj`!f$=9|gm{5oB8IJL{|G|*|txVl5k#CcUu-Jdq}Ji9$OT62(xGL6`qmTns; zV-=Cn@#Jul22(m6^P}_$^)PaTchN}Zv#i+fzB?pAIpd^^+uZAoox~q^c25d7$k`y0 zxn%J4ncg{7hr>sc4{;srbYdZ}^wIfIGrt9kQ}}swi9q891W8#p|5aql(N-jTIsZYT zJKFV9JMjP8`@0Uz(avreNgOEsR)kXjW`^>&6w`HG0p%0C-B5G2(T_<}jK!k3J>Ft7 z+CbXaQ7Hv*F9T8xE`?LH02voa(GJ*s5<;sg(pzjA9@SpEAnbvv_kTi6gHD`%CXV(77_T+%|U90~)U z;Y#J0%Jd3Yf%|?m)!9_ldb#o+$-EV6O?vm~`o11^Ih_}5X}N-J8CwWtDbrYp8)X@4 zS3O9FQh7>+)K;k$A4eY_$#5sOb0{{O=sdw*Jax*K)6W`1W;*T_Y-U)GF!kv}`8w+o zV*>RvYY&3o^0Qco!V-Z;^QMo-mzI5&8J=m8Q3$(+xJ9Sr3WEbof4KjBJZbUw%hHh5 zea~ihwalx^wNg#5e=gJ2qIEu4^9DV9%VZo@lsHewSs>%dL^l{7D%D6T9BKPZwi&#UNXhB;?fXGEwwJflvjsSWsi}GAj#e# zOKc(xgzM0oJg6AJ{I^}Zuq4gX4_Mt#8~uDQ?kU2F7cCLlXw{GYfDzgCWY(CJpBI8t z9sHO>)0!r4w1-8qX`GcE7s8Re+hwT@#ax$*%h=z~%c1pyf@J-Lf>8!iE4=D61Ub}O zNnV$a(Xi(|ePJx$@HmF;<{Hqky&Oj;VX_|+^z-BzBtRqZyXG&K`}_oWfaNWjOP1txaczxf>zc)(%;l#1VZ9hQN2Z1Do#*d2jlIT0IxaD^e0(Pxxy!Wqfe z>)jVg8!balCHYvlJsms=wX|cjJTP98^=r~@bR6io;CxnDzSQLhIEW{^kV2w{bEu28 z>w7h3O4>eju={^!5KgRh^PNy37X<^mkuk|f4XYW0jLpu*#Sb~snKyu?Ez>_%S|!%r z2$NN<3r|SN?etJ6(XcdC1wcAq#Oen;z?O<#lbH!#5wJX=uxhQ_xZvud?Q;b+i}}cE z8LptE%k_E25`G%rR5Aoci*Z+Wdb<5evwO!H0x%yV)7tec<)y_rEYqnm8(fQglezow zi9ef3l5}v2Pp~?x(dP8a$)f}Wz}v8A5>c`=TQ)ZD;pTb417JtS1=g7J{tI9LEPw#a z0Z$*kWXlonZCg!(>5Jl%=n6YXts6seWN+?!GmYF;2(A8+C&rMQb{CZSgwG*>Aolm< zp@g(Yhv56sY;0}89>EnW1PO+!ogK(*5-i7EGfS2Hggn^&1M!wY12m$aQ@YXWu+YKDxlA~D%)Yb)u&85|I(~xD!%n#*_V>w1He2ay6Vw;-oV#K| zN35p@<>f$UE4WVZjU_~?375XC+>ber@~`(!Wb~|m9>NUtmNvDL(;e!ho&mrG6WsB5 zA2cbDyZSWNBJeQ}Z!zP-Q$7&urx1UqwRiFdP$P2JoQ$mB#5)EFwF!lO#&hEHYB0B4 zPy4G>)1N$^B^{UbT!RTp>&|?aIPnZKz~gdr8J3jOk8Sbi0#|=8a)Gm zRKSK<(dSu9#SY92zjdjHJq6iQIKP*O)RIRcuNRtmJ=tydiKo`z6L^=IB}`sBI5U_9 ze}JFYbe&{9gVD%eiVEht)KgV>i{vBl&fC^_swN!^dUcpUVS@~vX@iJNun}vpI z%_cKsR#^`^xzSJ+0x8l${&hXmkNx9FToPGp!!N9n6MU$j9NWmq3xKqD!-6YI~I8?NdX{b0Mw#~ zz-DcDevDQ2HVV=TatYKuV4Unzr2e#*xguYyq_w}@$K zh((#3W(?ZhgfF9T4$-2}UsyNTFW{1HgI}3MPRWe$-LR>cz;hrU7@i?%{9~ZTv5m~t zsAC&X650W~YH(kgTi71jzVS&%V3%_>{3)(5*_1m+d9}EsD5gTPLQ&;b-#Ys%_Q#dR zqXN&WQT4slLYC;|>K=_`3{Z~lNCoWIV;qS2e1Fp18IzPjG2sDyMxSHV!2gC*$`(6ppoA0Nhp_g1@4IQLH0>KG)`7NTjQY{m_&;}v>Lxim)lO&L zX;>zQ9R_IKnZG%N>%maJc%MYg=G67a&!2JwOG%Ozc>8vfMF)?D$j4rGK4RI0PS?xY zN~Ydh4Gk6;0Wa(K0=gh;MHr5JH(~LU(5QLXzAXbdQ9_w4FO2rPkIcu3Kk#Hd6YHvT zF@e|PM#qU6;SPGva;?1F_=<(*f{EI8!?0jZ97713eOu`PBmH3HFbXYW9=xWs(-zxh zo~Nm(h`4I4l<)PGpr$@~i?gu5vySyLzURq}+X!j09G#I(K;tK5;;Nqb({*v+;L3{~ zcI>{vx?e`-3!oOD0qyiADq;SM^_8PFx_RBaxklST5COq3C$p7WR0D-<#F!Q<;>y<% zZiWS;G{hWSmUt;^ILP1M3j=&{-(yGx#C&qI)^ro;)4B3oN5y0ynRLikGmeJH%$7J` zmF%MfxE(|ayKuU998jA!WY?5;5*fJXzMvL5b(c!Cz3`3~Lnl7n6|>FOuuAy~fXC=RUD!o-V;ith zdy}mk!Ha8f&}}6MBLdt6?j}^a3GYJ-(6842OBXpCN}8+f81p|Nx8n{y*~PK-p7iP6 zxZU=A3+Wlyc!=YU_T+Bv;TD>{_(KFLuG(uDt^g3+%(fk87PrhOW+~76p*Y)cypm7t zmJs5si%6CU8@Lp+iemmqI%xZQ744ke+63pNz-hKp{B zE-x8I8qxw?TIp6sSrW^eu;5BvySWP6^1pdkUzjr) z*eQQ0)fGVvZls}*Fj7z&*d&(zPmfNBEJEXFt69l^0M;Od;aGob;a?1huIIc(zd$cEz$6Zn9UO5}mBW>2IGxG-Z_O}3~)|B8OWNlAg@XhsqbP$nXE*#?=@4E~^I zbfR+7HkefV0;?7oru<-w!3Ux|0;1l}q5&jn#+dLtFGkPIh2lf{%KSmkmV;qMV5bje z**qeM{q(v9!-IDqjjN^-)(lZWas?ohwq=o|ZSZ|GRN_kuwA0%XAZCzP+(zxeMA{zJ znnd+C2|}?hD|vV1m!`|9R8}JqS`{2t=%`o3_XicE8?)khbqC-;K-I+nmv`ghaQPQ$ ze?wNw1>eK>rA?V_?L}HYvn3o_1>Ks#Gu$Y17;LA@)O?&VpMe1D!2$?aeZPp$64PGe5IIXJm$`sT!ocO!`` zL#&r7V3tqlVTZE=A5HxErtWV|KU=~k)J?Z^(ah7mQ&}MU$7oi+lhH;7B1fE>198&? zYax(CU1!$5r=)(&6{l#L#6I4o4EfC91y;9qX+fSR%jdq%@>Zj|a{G}L4~HWDos0d2 z0b70OcGB+{DRXtjroMuU2(SwyG6EdOEZHXLSQR|mG>|3=Ieq+Nq+^QyG%~oF<=oJ& zKptZq4V+hO$~E+vC-p*W1~>^BmIT|*b$$=nn?`-ZQ>_Q~am2pNKKoZjyOql1{f-IU zLo!PD&2L+OdB~~)^hwPEm3G@|*wXLuMdp>mN>AUs@Byw5!%Q;1l9g`vt6a-t1F&Ic zeY!$^ATC80GWdLl=(;^lA<+@$E*?FhR@lWTSN^;WLKfJCy7lFlj0jn1B6}%1=q!

    Oj7?6(##rPV;wn|rqCYR*bw9CIRjvA=Q$`l30 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%0AMd1W^i=WvB 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 `;81*#^Z-z{-9w@v{VLB3c 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 Eklaf; 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�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�OuQ->Nrb3epv+WJ2cOh{Tmm-)`SUf$s7ge+ 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≻|V;`s>Lf39AkM@_!q5?=}PZcECw-{bi) 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 literal 0 HcmV?d00001 diff --git a/images/nejc.webp b/images/nejc.webp new file mode 100644 index 0000000000000000000000000000000000000000..06cfb00b7e600c4ac4b9ccf7c3932e46d58cf56b GIT binary patch literal 827028 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%0Ay}WQoi0kv+?JDGg7ND}!G+K=Z#Y#Nfta_) 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

    FZK_;HZMUNX^`Ri+O>PKIAJKmz+6_ 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

    WyfgesFTs$X(ceorvD?kG};c=vD&=phX3$ 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%0A6zn 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ɷ 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

    D?nHMk^aO_jIDVt29C02t# z!4)0vzjhONbd;?;z1JV1U^LXYShMF;cb06LlGJ_WJ9SYt7y}>&0mCtioesSE)97#a zRtrefhfNYgfJ^-pLQ0P|p@ks`h({4=FAu{AWn?CsD~EV!rBQe#2*a5Uv1*CHVvAmj z3K0Q#B8>&djoM+k`|V6X6G;uS9NwY4h0Zl5;at2ers*ee*3DFBGT4LfMMjwYrx5lQ@07Hr!X zVQb7XT04{;Ku&l~9Oj}f6CpV|GOcU0ylsE10MRdKF$NO!-ssJG}S`>O*2quQ$DMsVM9gnxW z?Q}QxJ3OkJHccbc!jL?L{fG!RWAf~7ox?-?&e}IHusv-S6Dx|0DGv1T7|LVnL>j7@ zT9Ff7wc+mpibu>zG>7T{qn`Qe13VES)DGE(@Ru(&^5IRY;ckBv`{7a!ILRwpx|Y;L z|FwtE%E?v5g=zYxG5s%fLeg~eaXq&Nz9f9ir(i*Jk;JkpU@Ql%vK9mF!Bpgf8@Ua{ z$q3%Ho!`>oO%dz}HZHV~BjeUM!X_p{e4|t&=Hjq@mtZ#!`Ni^!sih*Cnz;icPr9V5ru4D^blWbeEg6$mn2m^;fb{+*y3ce z(yngm2t-f;LcBonOeHqur?6PTk3bWzIVYc~Fh%a|Ks#@Iv1#$_JvpOMkD`~~>tG_2 z39Rcx0TW)(;M&mlc$3@ucW~}+C7Ri?^e4e6T-U(K>et^2!uo-Y!{`d=ieT z^kCUtbi4D(;#7Ic3Gq8HL^@NyyNrj*^m3?+oirzvGN~u5t6gbTSFk5ImKg&s>gIJE zbdD>u6*X7wwPUW3oC2)WM|^=%2;eF^;K7s)!E015{3AWWCP3Ox+3HBAX+wnf^TurX z10HfMAZ^in#*9NIRCzX2aHlt;P#?AQBi-gEx16b6dO!G#i4FI>%4rq@&iVzY4>i3N z>LY=|tLZLO0%j(rsHt-`IQm`b8mGA}3H2iz5i;9=%1#Cm>o9dBn91?N4WT-048?=_ z4$W^X2T9dSPwyHEt)dx6)_Ot*Mju*`|8=z4w}b^%xmM%I*mduJ*p9e|7)`>$Rigy& zWkeW}PXE`5=Jdo5f20sw;=%21@P5lMgda6Pa${ZL8bCa&vvac>d%~C zW27d>G+y~?F5XUC*c(Jr60xQPZ}q2E@5bd>Yo`%r7$i6bFpX0eg(d@w)%jTE%XYpI z@wiS(1&8?5`?RT{-D49U@;4}mzCXm1XwGqM#1gNo@n4L{okULIQs*ggf^x4GEdwejnO-iJ! z;#ak?pi}asipOgOsQasr+QIF-Ipf&qo)cnWhlMLcYM-M1)CZJlm~B%(p)~XabBq0q zr<}R`jxTigv{Xo?pC};Uc+v3*>-i+#i6OtYIc79>f3)^ji;FOQ36Okjypsj;`#5t@ zM(GirR3wf|+53K|Tm5?QgtDE0%KI)x2ICiNmOsse zj>xOO$%g1%$I$pFR#kdvQ1pqdgP`K!KXA2`{O#Xo^@l)0B($8$H&7Q)x*7!PW@iWY z&g;X{5rT{^7e~JSl%8sn*B&Aci*=-X?Wbr!3^S7sEu6``cE4XA{2zPBNkdH94kzBO zmIdP(J>@>&HtYmu${+ z`Sc}K{`p(YPm*fO9Q-}f%ASM^w%E;xLZ$G@CR@g6n5xXD4k*F07{&Y8BZ_9vxgH)t z3ZR*(U}qKNOFZK!@nXV;N1w`R(m-hcCyDN-@n^=VgZ~SmEgf*uT$0Q{sGOWJ{D{jt zVg0_@@a#7608OKO|x0<}Ys6t!EAbt@a-dUvUo)_i})eTl4Ih5^MYA-EGNiv1O2s|ZbezE?|BR3ff$N107W@VWNBecM(NK9Y3euj`mn@Acg>5^&X1~S zO9bTG0Ny;m@AvE!=|?>~@3$re)D@A~@X^!YGJ)t$XMI1v9>cW}J+^_i9VA)SBLKU6 zD38xbDYu!K7y6RDN|op@k132^*@#je0^wXNk{Z8)44M&VNs6wB1qnvyk;y)pv$XI@ ze2*X}!Wkj^T~|?gII)iRZBkO9L@J9Yv2e%tdQf7iCU$WOgW7!-0oo2nI9tUW_&aC1 ze#>U`qyEEDufm)bXq$9h8wG$MCapXLD~@>&kd;8*DKZT|;ybdi(x7A68sM-cITWR) z@vYgh-x;@OESR}ruap{#Q@*pbg*5usl~y?OCS5^ zu%TV^bmA|Vh0lLya1Gnhx9hoU!dhIMml6xV!F(lZJ$G$>W>`|}(|;+5pR7kIDfD3o ziF3O*!JTV%MuoM5h$}aCW9)gB&kasF_WuO4N+x+KkAGbx?vs8^h0)<``>h%TNJC zF&K{f4gtk(a!$S-N8(*CgV5oIrB3Y-3zk+LmO-G4`kzmj+=F9^y_AU&+*a;Y_n5rJ zn5jMGMxeYdYRCksvaNv~!qjR{tdL?G1>lmCH&jl?;-mlZ9{p?t`X4>%C)Ul#>{E@A z%*q0ZO5&tP(ZMha*Fv&hLM`d?7V0Q1uRj9@epO*iaK*Ad(OPdO1p>HS$ys91r@e z`*(XpP#pwn`>;~R!z?yt$ABi2xu~lPlRCO#MwB{sfM@w2Ik-)v#>@&b5?WYfOCv=c zU?l0o5I{v!rX0@^`^OGyLy2;1VtH(p2N2PC?k4$&X?g`TA{=y!S3KNv`htj@j8t~z z`E$Q%;5nba%{-=Q{ylH{urWj*Hhrj}=!pEXW(e=88wEv!&DtA4YqICROOPeP?tkkg z<^4f$=fK_Pj*M)P--KDFP%;h87cq4ed-Zp^SyVy_7Gy8mj6aTnTPCm2WCks6{{d)0aDPQ_|1PJPAH}j-b2C*F;s+oL!^%zUBS|I zrb4Mgo#E`b{|L0l-QsDXW&MF?xyRd$JJX{SD{Dk3z`^hX{As}4EIj9I*}SPJGTW|PtT z%Y$a#?1#lGlSp9WZhTh#oLLrMpV|w1LtXWnR5rTY5$QC(y2?a2;U6j_lz$2sL)tUu zWy>6GtIX!GU6!_-CitpTmp$;UInJ}izb*^xLKR>ODpUDDXe)Yfp#ctk3}p^0s`hUD z8e)OQ`N0CArPIYz5h$=-PaaKPuw=7e=6SPFEr_DxBETCQ<#1N%QPAeThd(S}_whr! z@0y$$uw`Dg%R?bWDz5sLb?sAtE!!&h-I&b)d}|0#vPmY|8D1I%3c|BG4_U9wU9@#r zrWrLR&+zkpN7=t*pUkx?Pk2B7Oj4Jl*)lB#?ZX0?++P_LO7bMmh5E3i_hl*ScT?o5 z)6Ia6%i^Uy>L?Nyj#Phea*ev7F$xtI?;r}JbAFqw*?zW9Y+FbCZ6Fr%#epY>))@zp zsoioSJMS^K^%Dx*v#L@P!MXDQSk!YzqGrU0@qQt})#SjQBx=UeJATRK$-1aPEQ*6< z8^lC_A88M@(#s^rXtz(Ow1p#yX$t2wvFG~f#$0ZCaX7q8!MFkMRQIrih53#pr7v62 zFrr~Kx0D0tr|U);?bh?a3Bd4(Qi<&5f}={A{yIg6FN`h(>Bm{<`M}24OlvHnLa^lf zwQBNrS4}so6exRp^SB>k{yRR?Ka{u96ydW`c7vq)G<5od93q8g5g7n%j1`!MYUS=h z^}mUpjX>^+=Cnf5K0!RdeWgjj1M*b0^vrAOOX&tkhubJO6M?=*NJoYm`_!N`Nn^KZ zc168PQ89A~*8SXTk;meB@JG3j6Dxv~$q(7-4UT~nT5ki*40-9lY|U3t%i=2K^q%L_ z11;0*(%-J9(*Eso+f?Fg&$5TX$@OPHM$h6-Rx6Lx{&qw^1s-J1e7a-Rp3VEf>f@(P z+h?>x`qZ5r?zPkDhs@e$e#_|UsF-iMO*0eiddM|}h1#X*T=Mo+F2LAGvo2ibdA!Kc z+#Z=;l^|lPvM|-yHbF)4++y(LLA$cJuz8k#)ue_bV>x6NXjJ&PpMmy0IlKFBw1uQ} z{P?F6Ley3z{`#8zy1f;#&ep}W9CLk^bFcuPf=>T(`KWIHK}3KxE* zc*gRm{MR4?QZENCy*CNb%I&b7ypHV091p z=u@0xP&`5*JQ%!SIT!m~rVGIPqNyFbx7WI9KQ42^zdyu%{3#labFFQV10o%K9Ry?a z8Ly>)m>^1;{@CpcpTe%z;o*0FE`sJZh`vO)mtpn)$egs`02PrWtnaiXuqpv{AD zo71a%_!f$F9p8R^77mq-%5~o1)5NzG;(4ROu7zG-k8FEogFT&?@Pu>)TNW4{?EE=^ zTAL@_-$l!Ib>X+RD~P=-zFQ);QHOuaIxv7hvb5v(&KT6ycnE>$ zEQeP+(e0>wf%c-8&Jt7l86ov&R%+=(zPl2H-I7XP~RfMxQ!74GXwMu7p}QQ6}HHAERb_xFQHyS6{W!Q+Lgh zun)cwmrg*18d%a${m^8wps`N!V_$_k$R=K2S)511cAeHA8WCW7&~RX8?J)iLK=abl z}t%D*0$0au*x}1 zBh=cKfA=z0L4T~O1`=T3<2g{X0jr-t`#0^&GQI^&cgmoz+A+iY{Q5{#2_=W1l9M(s zf}X=psGmdZTH6)i9)?ilE{1uH6&?~8mt_j1al-Ou+s0CY=ZAs^ebP$FNML?Pj-iF_ zc7)>p<>Vps)6!4J%xI8$)`yHnKH_RRz$h@N)>py%4&Jo$1_l$;cKu?vZrEySg$kV< znvy_UuHhLge6t1n%rXoAPzK}^sYNLIy|F~nSD@FYCUoy}GBhi2xY0?<*t25)KX9p+ zEsB;=9y<^>(Ydl1JPw>Nzqd1uDSg8~!wsIvZm-bS1+uCA-q4_9Q%Q0jMO;DE&K$vQ z&w4~gMJO;>(<|j44c(WV-&fCm5^(j@4Nd>tt`Cq zT0&Tc=(WdWTY>z`QU-ME4-oXSN1WQ?L>Uagni=}f=nuX@)=Dx84Wkz$^eiwjzEX0j z@YYfD7AEV2(w2A~5CyBh@852zVW~u=`UV0++GMAm2;Zu9qhd<~ula0#q@egkfOdx5 zsHS{^6p!;2qqTbqZme;TuZ`beQv_`g4hbP^EXKM{$b;})JZ7!%ey&)?oto6 zc(llU1URMGaN;`0&x^iGzUc?${XDD{#R!SI9sSUdH9q@_F?*kV1EnCk zTt@x%aV0757eaR3tU6y!JpdTFI*Ux&eC^?7f(d@++cm^*(aJc27t|1~xWGO54`!G5CX5 z1mne0N9aSPE=1)M_7X1BnOE!#ky%}Jp!qY=oQdriU*)XziCC?2D- z)m;nxpxs9gDES^+x-QEpV#}NK3>-xe6B4637LAByk+%c}xVLI>2?j-~k$Azb5M3A* zy;tEPx~35x(25?G05?E5!Qr(^tz5*Q@wv*r@O8Fh7!7^_W5Wzs!tEMj_ej@EVgo0! zdlcZL3~zBxKFFAjyL6tq!5pV;zEwPht}0^=V8}|iY)k6k-wxwj$I|Fj&i7D5y@ASV z_~eS4IxJHBDK0h~pqzNH!6>(cE;@r-h=}R!!Pn1wffMj;6X$qYM(0BjVn_R|AP{Fs z;c@N3rvu^%E;fsuEv`^y>cZ&c92DiX>Y}8%U?lbl&m;A zp4TFN$(p#{!kOIN2F$%QkC#)XBjQXdbp~4XLf1e@6&Ilxn$HGH$3Z8MKHZnsn}Abs z{ly~}MMIV0QdO4mqgpE>l6FfNjMxxu;A)vS5OcWUitK*FPM`xK_Bk*)gj?oNOmDqL z9h>L^x`otvy#tZ<6t?{JmOQ4IPBkuR;d^zw8Y*dEFiIMXuaXFv->a@I^hrHrj1W?+ zO7EV%`CEw(5O+iC-DCpm(DNMoS!owX7?6dm(^UA{b#Eh{B-QDR!+6HRWYm;JqXB)c z!Uu2OKQc6JDC&eYk?|Y1ssRatIiX*K=GfS@HGX?A(5^y%R6s-lX%VqXDQuQY_Lne9t{-CLTOOdY7$vGSr1{5HuogD{;fG*+NowSSO zoHhO?k_mK#hC0FuuIJYM7$|Azb%q|*`@3*)T#{y^;4KffqYo>893ISCcH^UxdG%WQ zOO`^y-f0#Jr_H7VSvj1^cU=IzuzY9)Ejz$caCydpoGoOWNu*pUBdIdfiKkn&bVAYV=khFV!-G#%0!SmMs>dx0Y$&@fU-Ky}NM^hhA0t zG4(yMEDZ>dyc5NIY!10FHZ=x1w(ByQ^F`&TIO5R(8!vrbYJd#%e;E9{6F9V3PX~1b z_P*=3aYXaW+$BlRd#vD3YS- z5EI%fRK4x5-N1f$vYa_<`4qs$rlWX-J|Mb;Rc z6zRHsnax}NoLtp*MDa}d59`XMu$zbh{|#{_+oSZ9&@5{|@vZ@y{~fBW(X@>?jE}Nv zL0H#)TFLIwXGWi!3lG>o$wfnC0W-KoQ@{T19Ct`6OgNd;!+4#$fhV3 zt}LvFLD4BEP(midu9TF^vYq3pLwe;j0aJi;=yf`9wvml89{B8{Xk7Hlgc;(0y+NiY z1v`bkiR=&f1HMOK45?C%*h@5T^t$IejgtS*ai}s&YO`?D+ayq3lgAAY5kUV0^a9o* zt3fgGXquMHKm-*B_W9~eL~^Ph%(t`}0ft+c^`~+bID|14Sica=Ft5S!v1a1LC3s2x z$B(Ni<9nc&yT1ek5t}$r?EE@+QvqP&+l788q41&8@|N>Vv9>hoINS10RmM+U)~q{_ zb&wvC;yaxt#e{~P34)HAdJ*nUYYNwuD>B6UL!<+W%pyC(F%TsAF*dST0rNurRZ11c zqdd1_Cb)z`R*|e080V$c_vG(me=N^}aI2~?cq!d)5&eui{_vEH7A#dBrqX!9xRXw3%S^&!f&S3K0ZRDdQOwDMpzyMcU>aa(^G@8o_u!2nCh14w)T-elA@wQy z*N`^rlkrJ=yd$$y(HbXtXy+atI68IuE{Yfud1$#|IJoT5xi`rmsf=crVF?0ZT*d+U z@BJ-4`LXdyo;!CycfedPO~yEU+6%i09X=f4ZlYtnvI0?LJ|5#IJ3H^K0KM+uwynd6 zKK~3!CT=}`YGGYyptF*&B4+o#j4GCh{uZ=G8$N~eN`{L9U=8wdjv~P0-r{xBiDW)a zB}H-2G9RZ6*Rw!t%mJ{Ng-g&DcnX}(x>MW~%Fc>TA!#tnhyC)=0l#Pv(0F7EF(KvM zha^7`UbJ%z)JF^NSLIwC`?dbtpIjp)6olIH-fZ|5g#Gh9g z)f5qRvNk=0uw&PKvOh_{sNQC@|I$|;BfQKFL|093Bcb zde_Z(q~24N-V018km-tC5XRD(VPUd)58-pOkf!Y03WCC2~>zN&&*!dsz86|Za!HSvZ-=8|GOu@4M8Iy@TrPT z;&(v3H4riQ=b2|EKTdAhjI$b#l0XR~DPSFW&*D+A8SVT05WO4HBh~&j#c^}P=OEvv zet2aD%CqOv%eL;Trv|XE{UH1q{4>X_{2E1-K$w5e{7a`ZS7X5^s449N=Bn$`c-)_> z0Eio_l3x7;m0Q&-9jaaCQ&^uu+R8}p?7+LZ0NnnO^A#ovG(Wm;R8M~^GRB9IYL5LQ zC)7>JkeYQsDGo?>iB?DDaeS0A`;XmZ95ecHlyFzPDGYMx)t(%);e+I#Hk0oLc?A6Dk$4FzI6$IVbcl|9iIr%L-b|Q3yqucij?J@a?Ii{F zMzv=)$n6@O^I!fx>39+ZS!lRGRQe_HrVNL=S`66Qwv*x*!H87;Q`b`xt*oC)9)E+} z6NWt-{4BHKKCHRj>sZqPE)w!p<8m^_=`>MN6cmiu1c^S~vC7RA)n_|H^4cJALR;~E zZfB1M@t*tz4|(fw7b>zU^{A&H^&a&dp_J`lb#E@-rQh6s${Qg37WT7sjyNntB`N;r zeP}d(3drNtFDw7&f1>!1?&;*kr1Eof3ElnD8J+nzbIZMq!MZBXqDg>{y79nZ!)k`d zfGI~og8-xP(bg|qfwGFbzIH`rv3YnmSL~tE%_g7O4X~N3fWGCb4nqBV%;TBq+$lh~ zC0O!~<}Bt`f!a}j`^scNWg9sOi%uR>uM6bl$Ke8hrSEsNAUMxL938W~S3g)XQE$DI z#Z9WS-r#Y}tZxH?2>lfs<@iFRE<$jV($eL~?KgiiMKx^=iu~~>I#|nx{-PXqO~H=% z59+@3W!KZrG}V|0@)EwRd?s}IiYT#L;unKfVdEA9vbKY^0?;a_5stiO z<^t)E-LRgWpC*LA2;*dIVXWdhPaARa-nJoFbTQo@YAlC-a^cA%MID-D;pmjq2QBk9 zW^&DjBKO-X-Yd7vH^2p0KyiE@vMB(Oxyo0tAkQ8q5W_BV5$IDDfq}sidhZxyC3_D7 zDJTYvqQ51om2rspv)0zGq6Wk9_IqFek0j8$;g7WssY@d4^TzcAhbJk7I+TUMW|41U zR8Ooe*#uOdVWxpaW7a9dkW%hrMR*FpG9gE{x!Xt`mP=o-KWZawo<6x*-%(LvQdj3F z<(_j`72b=bs2AKSewaR?60>olU_o<7wP${k2jCv@*5xoXjDx}UPngjN7o_{JYJ$>E zQJj1&7s#nZV`|i;rZP?|uJ~J`2y+|{U4;J0W+<)R&Q(-=9Wl5QiRu$2J6EewPSTK2ft|N`9ybp|THW&~g;o48Dix1qS zT9T|9Ve@kYvzpW zEzTj2XSz-{n{~{r*7BNTMs6`cVEtFpZk?K2yTMw5e73OX(EQw)Te9>G9gobeP3PGb zbsjDl-FlW^)<*=u&h}YmxnEN(eDylrG8Q#by=7W*+0Nx#tRj-kL zlyCn_RiI?uZ6p{)Y4ie|zP}@YZ~TP_3BP9E?)7)bQrMW;?l?RATr_w?-E>ygpH$Y# z-aOs=jPUhMCwuZ3VXm4buHK1vC8sid6hKUXGJE+nXq8q?vlv@~JWlpkSRfAL3QDhPGF2Ab#uo)@vU9_rwF0`0|esHxf!!J)I}Ip1w0a|_2|6V6(8O#gF1Ycy`$o8o+b8G>VP zRwTlV1(HWch`PSY3s;q)Gk8*CD@1KP+s}mH+H&G`!k*5Fp~wAq-HV)WvSEIqQf_Aw zOX>7iY;LzQ7cMyiDsMM5M$UXn+Tu9JN*Ff4zZ*H0igP+DNyNMF|H!i=qg4~er!ysj zbZ6Ov-W3Ky=jC(>IGiQxr>*YbGgT@kd?pG_vM}B{+(?wC#m%H0N_yX?SOVUf>KT-f zGq^)Vw}2LBc?Y}V4-nf;UH%hpailWW*dl4chhQB>r;J?a(l|35>qwjIlkJ^es0xjZ zy+g>6<&SuDWxAx)MI2cOZ7#d|%bpGsA1iQ^qD%S|BY_SQmg?aNWI0nb^RAM&@4rKw zSk`ecP|dJt>==G9wM4`G9ZX1h%=|U1dD2dL$lnrB)h|M8uvuf$3rxwki@<37Oz^>f zNiSshFJbq2&Po)ac}HNF%Ri7Tsr>Ol>Y%HR8>68G=#xkU{( z1yKHdMl!P1*IfN_q>hMCz8rDTe}>;M$vzO_U*_`YWl}*UZ*e*y)YVdenNL)o1`l+L z=ndpN01AHIN_ZlG40Z7CI$p}w5ys?fGiKD+tS8tM&*WKR6fV$Y^h^tTLP%-u+?iRt zc*qT^Wqk$;JoByA)~o?<6qI(WC-cV3S9Rbp>Ib*dFwspvW`^NtdieyUjcGN(as+E` zLKLNfUiVR=_q33SjarXX6wV2sY*Sl(05zy`ku|A6Jh_z}@obCkUAkRG-W!az;C7Uy zRU?J|_J#xO#~g127ct?2QWwndg%^TbJ-0Z3o(%y2a<}#9+vUf|$>yN)$L{ro)(T_I0cNMrIB(;~Oz1492ieM(ic04O z=3dT%i%hG$l5Mmaet2_}WJe@6}EkzzRt-weG@-)ZSf%Q%Fh*NzsXaTTV^Tkbd9 zoZyb(+uym0Hha$adb7xy(HT8Zmb&ayMJVBW5*sbEEmZ99(iu{U&$FS;s$0(+{lz>^ z{Th7cx*~#kh(VhP_23qyCq%%FjxqFvIDM_*FDACrdcVND@akvl*QU<1#8O(U8IeK@ z2ngCk+-YqvVltV_F~L@p69NxVgcAPj^GYqc>)~KEg==(YB0yp-(XVs-4HvX_Xz<^J zMAK_!;)66JzC^Me+L~1#J==v5Fm)-@Mu%d>hv1hr>3=h+z#97PE`#1Z>+Qu>F^GIrhHUgg^Hi z?HBRNJF+u2Ne;WE${BD(o7A44WLPp)zxP`H;X;E#b=UT=_4g!c6wTT3hz1Jx6h3qK zj2<2wl}fn1;I^rS10tU{h>)}Haw=e*GrtL1`U@lst@15R#j(kjd&{AdI7m>x55JB! z>`ZwR2506mPP)ga31b>w_QZUg7xT~rdWkN8&3s_C*;l`qKQFpLl<=FViTN#D*W8WFJF+tg!&b*M64!!IpagZ4z+W{)?MeavDMsNSg@lT@kW?ul*GMIB6+(C&k!5%woo9 z;P%ZHcYa=`2auC3jj`cX>e_MR^E_{)d|GPTmG9G$^y6J6^dGHdUrj|x5UE;cjR;*yo7Fk6#q~D<{c^ z)&7zY4d4&r-dT0q zCI1;xcr;MqQNs#xkB{pMjtlrU!jRq-6CtK}Lfn>f`^7-#rWAbSe(qg0HZCh(;mEBW z=U7Im-N*no7FAmdxI1waU60Tetms`|vxz#Zf2%hr+k)4)3NQmso^D@>Zkh326$Gkc zzPdynfd>0UM{9R{U;y~gYL=6RtMf0iqu~ZZj_iqg z?7RN50s=Ew1NK2OEo=fN#q$`&MBx`DjGhx7{z(4r(*rS%(xL30!0rpRa{54f->A*kxPSs znyb=u`*b7d*#OnPpm2JzJr+P-#oH%04&m}Z1tu>sDiI+IMp>dQ3B}iYXarZe)R}*0 z8*%DC1f|WtS5HYmq3Khp=}oQWgajou7L<2dwvhFF*(|YJ#wwE#`#I#Q$)qA(OFocxctW zs;q(p*lzt<)+XN;lln=ASVAA?BZ#>hGN#>lFN#&4KAX}vmH@qGCpsp7w-Q%1Lp7;W zm-Tg5Q?3sA^4ohPn*u?GyKWoBqR)34zVFBvYlV!2&anH?W!*7@PkbkT1AtLPoaXJm zoK3>WQOU*k$nytJdO1=r4v7{Kay($7@E2vKw!MZ5#4H4X6Sb@ z9HqAacK83SZi_k~p_I~i#&e7*YQ(lA(Q39a5CYbs1AGH40PRZwlJ7d;-Sp)K4Cbu@ zlzyIjl3zav)-h__Y~Euv4{5yio?DSvI@+9^cs_#+rCMgoZyfuK?k~*hO%OLy)y0Y7 zeg-^#+#@L&p~j zDOAg@Z@uOr3C+;s3ANSD)ZS3cQCJ+#b#DBb6wTYN1>yD+B-SkV(oQBhC z)vYOOgbj06&Gy|pOl6>LfmzKPxlv8S>p_#WWA}3hxDsx!xch+8zlZKKRQU19Piy^- zInT%KHP2JeSZ0GKjyf=~8k}bwp$bHh85G*G;?Mr6HcoQ&W*})j!;7rYqKPKs?({rnSVU(%H zlZ1@u3iDx`>QQ`#*TKY?buB?ao*(^u4w9zqR2c+De)4Rw*MGM12z}0uH0E9Ims+0N`9bNAIJPT z=W!*u5T5X}t%dK4Iiu_Wm*z8CQZX%Ivm(e_hpL~9YI{6Ip^N$s>%5`+6F;l1aaf;O%hkbg#P|Gh9zaxo2 zv`NMAd%EgOWgQg0`D)6D0pVbk5(m+(9W6rCUH|5AHiDVZA*wx>I7|g0+>x=MADT5o zonO?ENWzzSVcl9fo{X(!8dro)C5WmueXrVKw#-V5c<48~;@{|pl}?0JnhOPOrI6K1 z5in*}Jja@B#!qh<=Dj1wK@E_7$!R6?mFnU&U0lcu*CLpZ1DS z=1J&=q;jOP$B^B9=t;vf6fbgvD+=ShZ5`>4C}1Gr;%}bh!101eDZ=%ru1BBxX_Tp% zyp9GOl(9isxYLE+YSR@?OV@3j*=8ly@fW2Ow|M$bi~+NA-KlH30kUZZ(A68XA+u?K ztktF?wA<{p4HoU-;_Yey+{BPaW{xuC1snjG^RQ`Ct+kU`cspJ`MnoDRD9E0~MyPO3sI_gz<1*G!Ejd)q8Tffydzi00`cS2$`?_+M?9t<(+D{%PWN zfp#xDcaP6jjE60>gY6>60cyIBw6t83g=YugZ*7=&a|iyB{N#9k3&8na9iSWTQn^J; zVyZ4SFDo?VvIljOI=c%yjo6kePy+{Lr%Ae7uY`2VG5f4Ig*)I*^3& z(>C!lR-a9c*q4sxAUzQX%(i4zlMKmMB$bjkn$*Yt_PfO@cBJ%+ICqzYPnQuY9$-{F z@zQ+RDyd~w(?Iv!uTRo++B0mjdR#d03}-D0q->4E0G%b&Y-i!|Eq*GQH<@4;fjzA! zyll?2FovfzxkCGua%IpH`Vf+DBgRsisC>EI*14BB`xNgk@6<m2!(2At=5N6w3HQnp*FikqFRZ%JLsKlN0@B)nnBXQ^ zzT$4F#E2z&7P@X%bT9}uzjCB^f==8G%#OHx%7-z0PO@2$`w@`+OTr~e~_2kAlxj$R*pg-%Fh zH=e@1ldyO)8-k=QR5;2N0htB9y#kIdR&A}{U~JQFlc^oiRd;1%w|Uk?sW^9u{QO+O zEMKwRJ}-0$8#|sH5GEwUX<=>}78DoAy08ITC zdCS~A3CxCx^~#40!Z%|a=&uUw+wZ3HyGe<(5W*`PYN@gf!09ZPdrJxLc9UZ}pjV6DIix2u%> z94LM|D)CjBxe1JgRKM00jAdi(75RKkm@q8C-gh2DIpX5k=%wCgpDE2>#NTM7MNa7B z_0W-TyG0BOjqeKR#n=YN@8H@O>=49phyS38omz~jI0pJD#v1Jv5f_dRO0x(ieP@x2 zp}Zepz{+Pn{r+JuR+|qG@t)F6Kb&~;8#uYc$;f4=M zw0fdnM9n-2Y)o3amTnaH{^<|+jHPPMH_vt16G@mg{}D#|H1sn#JTtsGy$pR`_uiRf z@_Yo}oRH=IqSLkKKs&Y;_RzQ=s8QGdoaQ92>49kSG^5(CN!jhgk=6bsT{LPhN-T($ z6VDCxX&U;yi5m%t{}YzdYCRXhu|g zLe|-*48`Qq!d*pRcut}MK^Ly)SlnC2zq~;_nn(NOEnKn#p(bSKKT`48gR93NWw>qn zeR)LaQu}+f)`4F0l7k4Uhru6IT!k4%C|*A41(GmCUwxq=hD|+@w4AG*6LK@qEtNwqH~sRkZi*Z z=A@Zs+yuP;V`^Ijh>QW)Kh#X|MeLw8!5?jSFglpvg;A)##vg4^tpIaFVog*JgKYr2 zr4vhQNbDaajI?woFAxaB5)5D0N1py_BN+3jlO^+$**U{Ih}k9($1SNiG8k1e``1{w z&$HjEl@$N&g&WeaaoxtI9H~T6ZzTV=!9jhomBzs-{OwJItwhTvfNppg@@x5e)b^Aa z;(sj`q4ag7jV0flJy7T;ybYgfS}F*;Dkmr|ob{@C3AWm+;8bLH1bx8RgKyk;;GHl3 z-;N#1AU9|SCx%yUos~q9j}h?K>>5a3eOgtB4H!hDv!w9IL=-Rfn0_-2fT@yEj+l60 zk2;TX&#Ww$P%ve!QHh0dv4*-RereG%pZvF6Zg_jj#(0uRTt9W@T)8(cbIe(Ai zw)ksP0X#O=0~h@Gn4e6^%WuMf9Z3WThDl;gS@m5ehr10*C~H9G8cCET0%r>%;jAri zO&i8@*xypi>C!QJ@F(A3tE}czP^bYpXTG)2&La*{5{h~XZ*qEbGiybTxrlML!rxoA zgzb4dmBg-+dEQ#*qSywK6N~$&W;$%%*!{XTPV1bF zXWy$ZiFPVeH~fbiSulA8&jP^vBI0*!(%Mjzbu`^K+cTYvSn)V}#?swix0_J8IhP$!8>4sZM0vr1M& z&gGrViOqj^_Mvk6rkE_smh@22czEy6C0Wii<_l-EtnXagtQ5eNFY>M*iybQCFK~l z2_ku=6L@Wu#+a4(gM1wwXwuAnO-T*LCUXLy_#@f|Vr%$#%6C zL%K<*NdR!%xjI&_3>*Xn+V($5WQ3A!wq+m9f$5f53aZE~=5hEt_+&T>y#<>#WIypu zz#OY54iYmXfJCRw_q28-Jw-JC^N|meKHXC~Yg}2dB)>pk9dH^MBCo|T@^1!^L-Vl4 za`v2q>_%Y))b$H&Ec&m3YL#Jj|S-XSzk{YlK|9^clRD#>^X0yX@NNAc=N%COeSm!VkspORDOEE#{#mqGKj5+^luea9TNpH&cbrS`qs z#m{463+^eUN2;kgv4!a(EZ#H8URudBU6^>gE5ecITpBwV+XG-=)-Q%(T15fMm&dP` zpf)iUGj(JEkSKq~Y-Lc-Z3LVr!`Y#oN)H<~j|R9s-02cCujr8;Vc{D2I&VLZ2yJ;} zzI$=KM#mdjHw?R{+6i){#Zd}rBpuBe&$n^aLf@r{E@CB$$Q^b472GyQYZ8}q3AxA! zs2D zES39U-^ZR$dXf8C&|q|O)j~{$1YWFAXIk<)VdIznyK5Y5B9ktPc^Nf6cdh?6h?@E& z3^%Yfn@kWv;;afIN;o!mMye`yi97^qZ&yv6b9=R%kXibMXy%u2BGV5~LwO2!x5k?i z{fvaa4czV>yoEkt*E;?&J{BFlfn-NN{>5FC2Ut{Jt}xn|(@o=S@LAokvgt3%MGyQl zvT}uuU(`sV1KK_CofMV=0BpjMdc)QkFWLYbhr1$G5{@(fzT>=sY>uc#INhErooGH7 zIOY*+!M;wsCww6%(mLWvpL95a!DHsYOxE`kd81jCVpM63=-P|j|J4XqCJFn8ukbia z=typd)D~CR*Kl_+98!n><-6^tvjLEJabqDNg7TgO1Md3>;o)|7h+W2AOvFob0wL)| zZzxmzV3YyPCb(9w_OvR23gZIwlGO2Cy$6k@djiK3*~wx1O#yQG96Pny5oULb_4?1P zeE`^%uf%DOZ;(Cx;;#~9g!T$`@<0uW&7G0jEBt?O&Nr0GnG#y|gUl<{!YoySmQ7W< zTr%CT+UnTy>ldw0#Rf&Pe369JdeF?_BZtQin8Tun%8IyENrZ~)?*zGAdDkSxf@IFi z2xjxQ4A*^Ewt6Wf9E|fdl>u-X(_$5_&j$gE20zlD!aXs~Y;Q}YtT&@pzn@u=W+T{D zCoXjl~$r`DS&^V84GP(I-&Wcf0VBx{JwiF_ABYDl+esINsczybcl5jhOXAw-*U z!qQ2V^D#?FUWwM!QnxVk{p!e1h>YZDd!n#>c>TVs7 z=C#6SxoQB)W3yn+z{}i9CQ3GIhl*S1o{0 zq&=UI#Q)v1NXD1+7t+n%(#=qCS>YfQzr<%u^FLE`{*A!8k;*}0Io4$S$g=ky!fu%L z^R=^JtPwr-Hni*EbO>P@>-dY?rF9$bpXT!}Mzok(kYZCXEO!C>y09+Z1;MqAe|vD% z>TWAmJ$ivw7+%WK54`wPv>AObEQjBoc%4<}M6x84^aJG3xY!&3C$owhST3F|7Pj2z zEmAXe;1_IeJgdt08D)^(UaO zUtj)Y2B>ITm%Ls=c_#47NfVPgBkVZDK;f?m$xtrvFmaL!j~3jWirF*RC=?DK~gZ$mjqaa(= z-lc~OtRAV{>2BNwaU<*lS>JhGIgl7*kX=~m_P*nX%uNr>h)Wu4+L@fo?dV&tGMzlP z?{^AUYsin~S)u!{8~*057}S>Vqh>s|r+xZYuj;$$>v~%^I!o{B&{^NQc(0CtZkIFD z+65@&n!@#_PK`RY=mACn%vkq>Gk)O729F=FzBzVK{M+;1#hSVc{;*-%OcaON8LDro z{gCqY(oz~9A0t`*;W_Dq&&&F6`d*EqAoClw7LdKT z^K*|||Ln#5{3w;#ilKwKd+VVuN%v_w8T0Wsf8Dae7z-fBQEP#@olK-P_q8wBy?zjn zLY2`6Zn-`c-=TR_;+MMVu;y6pQxnDYSUAA)g>BSJg{E6_bw6~Q1q*F@u)xgei13bu zM^P(s9;)c{TF}oAa9H3&@BlJ{OTR0?`kn~E;Jiiiz|3bGgORyPR1l$2S;jj4I9Jh| z-B@>N>V1p*FZ$*y?0NOJZk)iF3!=O)h6?OfT-rG?`0p~mmE9L7oy zp5i5$Wt2=-700gDveNp$b0HRLrg0AIdwOPV^9sQ%eJ_ruHD3j?Lf+`r^Ad-0FO^l> zoYdDi?>@%GPWEj4{cs33fott&JM`z#@v{q=W@8QXxp^plg8*qE-`BtHCa?m#aZZge z3n>n9pjmQQ!GAW zaV!0OYLdszG)(;|%1l%)bH-=!F!`kVgcBvX{i#E z>mw9kD{g`1*@MlENP610O^nAo$3Gt^Uav}nsh=bwsFE6!fKEzZND>`47g~WB4%VA8 zj9CKBvkGn>y8bZgZq}9IHr_tI#LmBzLtiw5v?u4KmDzX%%yt|T8f%FsR|MbH4}oae zDw(z7F=tWhK1$N0W|Awe!@#?j$;7!6plTxup8D?{%4^}QW)9N%Ftn?nGrVO{ss__a zO(5h7Av?2}A{~k_ZfnAryX_XI*AM$|!N)EhMJP#{@|o#5uDWGR{Z-7)f6{=%1Yrh` z>x@P3%4%4@v_{sz!ALI*qb)G(d6}o62XTW z+6%8>h}o^l2hC_nCM5q*!sEU;%7NonR=^P}(#0|({rTCHK%+5N2L6drTv6W@HK1IQ z<_+Ck>to8$siF{tE&zJ~sv6T;1)C}`K^bodU*JJQQl&b!plvt9=xx%}ZX~cTDBgQO zRniXk1CT85iZ<0l&EFy_YOV3vv1dVk_MQ<30B>}H$!4I-;=6p@SFP7fA^C|8zSsp` zc?f!o#>h1)H(f0%)^_Gl%X}UmM^9$w-*67Pj+MJN0aA_yy1vl;6IN#tGkREM>;{{! zF1lOld$cS*7KX$*t2=)Qq~J&N#}I~s41gEb{V}_&@&`GdvRfJiM$i#y?M}l_?*EP4 z%b>0k6`H>_FE%^$i6JWjl@9=|GzM=oQxX$I5S#_Oby|5ZrHzQD-})4bdc8q2oSgkd zf^DECM;Ek`VU)+2n%SWi0?}Ve<8$z2-wxufwgo0RJS zfp>iOt;IYxLM2DK;h2schPg#jA5{L^Y>Dxi6`gQqz0U;~N5_B!?HvhaF2b=JY8m!| zz*j<2UgPuUIZ^#u=-boRjUCq}ME!E;1LkPCW2+eLd@?MSw4Qh`9U-OZc#(_4{1>&P zZEdU^x@Ub@emEP*2bz~ys5&*FMvI9*vXb->;2hJ?)Z(Ly0c99Zp<7qM2%k2wZ*-QTi=3>Ha4|3#w0 zY}sEJlUi;WWpql|2Xlo(eycRBK1}|1u0!M3^1qj|H$8!$gD3T8-QO9R+>3@ayah4@ z3lgq9(yqY0cu4izAy1sXQUSK;I58N6Qgy)OHx1E&$cuU3V~$uxz;AUJ{@xAMD|p59 zvI!)mw(Od@BB!a4&%W-mea_B}tPC^YPuVY7=`%g}G2Z*m&IkR~dLiOu4!vnS3y_sT z!yEmH6F3*f-Ec`wlL5QS1EfRppcKDoWS>$LRIK<3U|4Gv!B|4z6nxzL>||-xw0Ni$8GlE)Iom(^kG9ZO zzTDUS$w1}|diolzg^Xb~G|x6|ir05s30h}nVZ?gi+-EC2aV@niPinGFhwb)>5Fl`= z8XWz9`%eE%V&$=*o>9fKk~ z?4uc&Qxn7q!5JXo>ZcLttzhXYBl()61Z=Dm@j>>I+}190 z4f4X6F#rYl?l^#`;kDRCPmuBg@Hu@f)vXgdPnk;&948YMO)Ae?r3E19(o|2i`Gw1N z9IYF{6i}6;h5n0REot?~i%*l0DRb%YA+kRO2ptEG>326OH$mT(i-|}lO^uFntmsGO zkwe$8+DXn4iMyg8-hwh2!eO*!zLEo0z*~R~%X+Mr-wW_}k8ZvR*XUd+lViV@2*c`# zOr+H8o2s1yBHm>$R4gXdYJFxRdweP(jApsH20k<7G|smvJ4=JiSG}o(5Ky&6lbnGc zjf?pN(1jtqj(>ZMoENJmY7jp{TJHd_?&Z?YYljR?ZOyGMqqQwV9tXbWl_z*TOKnmS zwfosa$FR(C@rrr;m-?eOF-adik1a2(8El)O3F`OZkBvYzz`nxPyFcwM>3;;1w%Z9G z4*vP92s(F)F)n4JDw?(-ANl=KWMy%ZP+dU!4TM}7_-F_KW*1anmB^3Ucmx*V*i9%y zAq6^_udKk_ot$DAQeSz2-#gDS65}A5q4ppr92N=`TzRbV>X`$EDsW^TAP`Qvwb!){ zCxs`8$WWE{i$`!Uy9SaG`Nr!L@z-QUiHxOzkAU!r%~L}wKdvXZ9!|1OjgQ`{?Cg|R zu6&v&wjzPOmysEA{-zqWFMzH8EPy~TDJ5&&A(Vz4M1W%R+56@xq$K>rhUT3T_($G+ z=LUn6)G=pGbFkUNX0+h*eaXND*xW)FeWD?UIAf#EpQBg__YqIiSIquecsv@M`)nu# z5aX|#;l|giPzX|dre677JW@LhGOJ-}2Z!5S*o5C_eOnC!o_>yt9I7`=UWJ!kZs<|XKDwo(ebs$4bo5g@x2%}hPn&O*ZJ+Sy~=XZR2x8`o4 z5uE!VY?(FKV z3w>zgZLiO4s}rv;Lh4vmc1&8SAfV}jp^me=xvJ5U>Yq0JwI#qN^SRfLx= zaX55s26m#PQ}96AYMD;YS|y7N6kgYOmD!iI+a1Z3?B_ZTz;c85#DBoiH*LKfWQ024 zx`holc@;@d$^|hfN_lM{*Y_N;2=JK^i?-~SfFXrOVM7C1Qe{Lj1;THPb$T9o8}-y; z<|`#bD5x|cm&H8Ycv!U@)cm@l4ip1i4ZRMxb)kIwD&pv~b0|%YnA7Lwi{wUxwlb|F zO~?{9iPDP7SR?)V~aUOgy*zHHo&L#YtLIRExin6WvoNXCUE?-xLtsGry^Tcd;p%8V5K31_|U2N?eUO zj!eqzzhiw#bu1z4`!r{V{$l4w=Cvvooj*q+EeD+nN~I6n(btAmxL;Xy3&*U8-q<1e z#P;>2#Y1AmGQWJrB3)6wbdiyW*I-ylOA6uYG4q*lm-8(FB# z@XzS-GfO2+c<(P|*6}f_N?KQ>C+TEUC5tUgMwOQWX3u)(M==d|6B#x>1eUmx(!=j| zBfl`8_I&yXH@NN#ci7?OYGJZTaGf!|Z+oGCX0l+$<~vSBfnVsOz}sG_|8V zP*G%-FNSq8JfNb|NU=PsjWWgaA9wfQWg6G2j6jDj=Qk@nx&0hETFMrzC$9ar*@M?}akV#!N61?AoUrn*th1Jmed%It z!pYZdl#%@i)6^<0W1J9?C`oonQ3YmSH(ct$=f6?`+{AqBE6kzR53uafX2EBLEfKLt zMSc5GMv`^dJjFxPnpiZ9m4bU7b21yN3DGzMtKW~&kKvqcJmQP{gc|etiPr(UKxZ~t zZr6ThjOVr#A%b?jxFNFl{#*zJ{yGvW-&!_-eFWOFR%YgU!+oouk6kR082TOkwCR_N zEtAV~hK39qTz#|*L}GR8bc4&dJ>HFM(4tcI@0SN;_{1ba#aWIO73Zk`Ax+KXRLG6p z3*hs<^-0{=QJ#6eQMI-b$9m1Pdwn1P@lfJqfx$ttT zPDPAz8n>+HQ+m(U?2ndWg^j|J+lb&^ya<~RD8yR-iXmyA1WFSFT(Vr~I8xFwIZ*(s?pkjWNJ(i8@s zI&hbmmPe0KsV&$3k{!8+ol;ZPfb%snXS-i);~2w0DOh+tw+ju|;-m3PAZwdyltgSj zDNUg+lFWQxifmT=M8_B1~pjr{1x&{2ie&S{cpbfc|huFSs12K^% zi>q4cK6P5OTt<7oXw@_!NVB@Wc=1#w}

    wCj#!jq~uDFlemYt5kWEQF%P!mmH)L4)dYDDsq-YcU`J zn&yp|LH3?r$dY37FZ223v7A`hqXeXds?|0V3YH%0;RdQEdgBoQIc3bbFGgPZoe;O z#?E4v6HpM-Em^W%0?zUm^hEfQ7sQO9_ z^q4DTBO39U%K73|Z}E?abw!I~-iV2XKTYcY(1@t%Z&Z|#h#3|l`mq7_qGn-uSc=>! zsSQD27RzzHjB`XLV}u10Qm(-E=Xb#Z3zEVpcGl}J5T|0D7d8{eE|Ib5xP-{ONScM? zk9dl}HBFSrYo3>wE@t+_GC)>UeOvZ*{^%B99zhjGGma!{uVk)=TA3n4Ws0j^xhq@n ztuX6^8);8Q|J$TujzAotfxFvHfa`@Zw}uBMkF*fm0XciWIqPV#P>=BKrGXJ|p#?Z6 zb8k*lN0#xxrBj&3PxQU<3Pbh$Ifh>g^fs}yiU_p2yS?K0=jQlP z&d}LOr{h_WfCM+5jQK+kDUD~>|77|*mi(hN^~miX5@Je3>hYB(&+_J{&_Kma;-O9O zwa5)5BI>a>Y%r>ZMChS#kMapCn8;St9$x#s3j7uq6~xop?7b?e&5ukD6sslYr-oDl zxHYaB1AJ@=ViiIFML9p+P( z;sz{z>w6B8o}GZ=tf<$mx<`K_*zG;tXMlT7SA}sZ4Vvs03#g8lLKEGnTCIgWKs4#3 z)WS<)02|{Um`VaJStO+gF|@2=cU)sP(h@h1pkh+#D?}uud+@9y=?!!iPvTPWCN&=T zgRmHmICZ8l?cPd`qFsVX+xkT0P)p?_OJ)gj}yPov`X8bJ*kHPSRLN;b22~h zOR8tm6!e%_bPb?4^=-12g5rRBri^y4h=6zd%lA@+7Z04~nGgCef$SF0@2iUu65CV3 zvL+#fUPVToAcgRLMp({0tL>;}(ti7-dF!il$L|3lC>Xw30~}SsWqdrh3cSP@BM6 zLoF_%qQ7j%Z?Gv~>#Cb^KmP>?Kr5-#KlvpQDOB=__w?6`CMOR&sAbXh3j868@Tl+a zr1dX&&Iv^E>A*fO@7QnMPTz#u)?WWuXO7ULb$uM{B)7f|YuVv@uw6q`?u*|s!lMCH zm?ef?*hkr#Ir|;J+p>$hZN#Ue*4(i!cPz@itZG^ErCbjbYk3PZUsC#Syyk|(`|oN+ z+#Q6emF%g-?782z|F|}|dvR8~8QJ&s>*$!61^8TW8L&@6cjqyrp-7ny-UEqGj;?Z*syZnnZ@FEgF;| z?reu~it)DZ5$FS^=}%5!^Pllz>3&0>h{VJrwm*LHPMh=tOFx>ykLem~qmTB_nNTG* z#MYcQN7i+Fnq)A>m#U}>O6M<>!+<0cn?*aw z6!j-wAVY?Dj9=6h)vpaR-Ylvgv8lX00S&J=kCle7pmI$BeLFE17uO$Y{N18!S*m?s zC+(VrGSXz>cUYSM>ukt10>}QqjD|o3qMAgsaf}4xfiRCfJ z(K~p1V>X*cQ1%rc%y6h>SHdL+^FDh^Td83vFRit`5MR*)odKkZ~&eMcQyt~`GgoqJcv z1wz8F-#uPkKgZaxwXv#n^Mlt^9$?SN9eM{Q04)Fdbj(_^Jesy)49AW6X36-XE`6fp zAsFQo04$!_n)o`q6>cJXdhL>-*A`&v87Q=m;!W_v$~C9Gje4TDM4}zM zvHDS|1H$Veq(_P<1GxW$)E-^ryYpXE5yp+I5?yvBSS=HFPfk9HRSmZ!G|~G_$7+Ru zVqb&)pJnr9pb;CGpgC0j1MLG-$5t6!3FxfBM^QI}e%=X9`tSp;v&?}qQB^U=j`**y zW((`iJF%4(XFZF-a+QrR!KIt!Q^Tj^p0}i;g;8ghg&N`T0U$d@SuVrQC-izytjsE)u#dQb$kQ(NoqBh0;~tn4TGFjI2;7iXHpT0rOZbE;T z8y6JS>=0F(SI^2zS$X>-2@rKEQdEyF=|h^ir0m#9YIRTY|41za<7;LA>q*o7@s6lk zmXF!JwI6QEV(}-bH2@WmV|nzD-SuVKA`7DfhY^Jds~=Q|o*b_0S=G3tKj_NOCn6et zY`a&w4*@lAhkYo$25vj)5|naeMHt)`|z?$%gySaFS2HOq7Sxc{h1Q;*5RM zWcK?UxbPNw@wUMk3vSE^_S+~UY+3px|5n6c$d%de9{7lD;VSe(f2SjJdW+!EY_U>u z1y%x+Tc98W!PoPzCrBwN2ZqWuP^k$D(};2z^==B#4KqGPlHR=u3!Ecj7}!5#)ed%@ zVnu_9R;c#8#wt`Vaq0si3MPPN=9a;Y8K0#kgMQ}s_Of~0U7^nMEn21zg$11zvR^zF zq(T5~hsb=o*)_B=rf1_+dpV_JLd#dP-VD$Ig@WR3&{hEhEMux{3VA;n#Gzp)lG`O;OIF1j=%0jJCPOuTcSF9RzVWY< z8lnR>QHOtRqDT>$XuhN$Ai>#Vl7O(bRTL{N^k_p|QrUN*z8S}jn|SqypJqWTltx`R ze04CP>jW`(7u#CpYEreu87>`a^CLWonBB~qlo>g7v`K5L53VXZQs{T(O{LLHzU2xm zyboOgKRFW^q68?o1MQVE4#@Qm>u=MqLboQ{VGCgQ(XhNe4M^Zi*K}%-#L3}_0LQ7% zgI3u!nwim!{3-hdgA;F@KW)BXws5`5<}Qqb4*0Eb1=KMKRWLEiKE2OfC?d$bE)u0K zh%r@=m=z?1q%97NeNyINg34tnBvkQvIQ*jCn3I$1J=O>YKw2US%S~q^vFxfckuV)m zV=u)fL}Y3r472be)q9!5&CPFk3Nyw6?kXQ{-D@v}uk{~-g>LEY0}<5_Vjn&Aa2)?_3tx`)cq+lJh`tDG`#y&(Nj+3K z^fJA)Rbev|#FuJZxE#CfE}9thW{Bn(+e`{#?}HmFGh-B2Sn)hEU{q#I2LgP@&Lzq$ z_!7L+K!j_y$|Uu%i?@JSnOmVpxf{nc`6P51-2sn#e{wm{u;mY+#@*oD7V+G4k1+Zn zB8(5P8Kj-Ii9Z0fLV^dHc@P+R^uYVhvKSGazEvI8?=3&+E7#LmH*=w(M>8)Pen;Mh zaEogppx#>!vLN))`O%~jlV=5}ZPTstU0!e?6cDFVtxyaJfTBT!14;b_n3t5jN9{=s zRvDl(8JlN+fKBpMpx}-RfuO*q(HLd&1QGNZUm4dc|FWtgh;rrg*iSga8mTbuSmb{W z*J+7efQVUjsrUeGuRlX`^McvOHrs=Eo(;($gP|?C$yyo^^ zS$bDs(1n@CJV=&EIlHkD3)`?+wNJqvj57%kLV`eL&+^DP(bC0e4XmftR4bWpZh|F+ zSukVe_*D@dTRO`v!m36r>BfBM;x22wt>9u5``{Hc;NJd!jBkQ=VX1xHL)>M~SZZcm z7UH>D#D%GKZ$Jcke)O5OyZr*kK(FSvv;$n2Vvj`#^P&FPCOF_!;M$HtNl2vSP6EBN zJqm0_J@9C0485P$mAt}3%Fgs1S4N*6WSjswK*qo6FrG_F&oRGd{te_fd%k5S(=oUi zL=UnU?a5GMc?0>Mx}BI1kay-1PPe~_+?h zc@NA6lTNQVd1XTJcYI<_rI&B5UrMY(>Vc{<7(%E)WNT69S*sV3ich{=4C%t4HJA{$ zg`U0ZBIcf=KUbg_p3UM4zl>-DMW(#~R3c>fESK@VNotJUPhPdQ;XY_LUI{y{!_X8n z^${yn-OUX-ZEOO%^VBZCf%?vkD?;#-vpg_N1IeJtJuvR760hlX3+CY`nmd*MJ*0Flw zIc=Z7$nMvbL2ng`3c0->%iVfF8|leNFh9q9144FEFBVQM#Cd+3H=!Am>F49PR^n4t zU&3>>zCWlrqWuO^^d7M&$B(`o+bJ=8m9yuGbDKqpq$!Jk#w6yc@Ixl`4! z+fn=CFAIpbeE~GcqNIZ6NI$rH$q01cD0;DogLw=^G9%!tTTGf4-y~)NeqSOhk3G4z zi*vIl*!2wxS}Dfq4h%e)zF6AQEYpj6PrM8=oiDp@T8ARAp_)*q5qSp}J2=KWDHeht znKcJz6KYbj%VwuY+}?SLiJuD50C6TcAc3VqdB>$ePp5QyiRRznY_hTbE|dp*ofZ(* z+gAs`e2W8jr5A`vUsE8YTzz~!#??$ZpRNO!1cwQ6lBLK*83+_D%8m_`c_dIKr1>j^ zN)STxM@34TV744;zp4t^$spI4eSxIdqX@)1WX;fHU`?xp8BE-i&Y^VMHnaM0fl`Gy zxYJ4&0l7&TX;!w4GHa(VZ za$+S`A2iId`?#%_snNA<^ML%cobBACWE)KI*Y2OdKzsBi&ao(aWyFD^Z18bsx^c+Y z|J7TZD=|~5t(54jObaAgK?9#U(Kqsz!jX|3fb~*|Pm~}+m$)d7KknEQpHJhQ@UO19 zohqTry9p(2HacW9X3;0Q>SsiGn|}Bgb8?%^Ec0LK{kQulYN2^#IW54RCPrN#>u9nw zVC6trsLV}gqQ3L;Q%~FlsiWc`i)G<}J(dS|rmC_2z_QPMewKW8mw?T2&lnQW$QDwV zK~VxVpzB=rm$Ll7m@EjWC(VQ802w7Bd{K;+SRd5P@#Bscm93B2*fma8+#Bw@2-}P; z+CK|8u4ZUmf#pF4Av?a7o?_GthM$_bto?d|X0KU+TfiRJtoxwdp1jbOLM@cA02=|I z|LA*p_ZNwTXbp^0=eKyJvJWU8&mTSP;3PZAU@X8NuYsz2$Cg&gg=B>wKDUk^tME?b zIp(PR!E-n~4IntIQ?ffepX3cb$az|7pbRx*$W^bS#h6~)MMZCxbd@#$<^ezHDkLn4 zfx|wy)lNH$$YIjz>dHzThHMP==U82zpo`aJR$qg#ONR6Rn><2PPhh*0ZgVxLfSp-v1M**KkaAZ9#X+%wof8UTO+M?LEs1Jb4X1lJx=S0kr2bSI z+QM)5$F#vERf^#qqyk^>VUj-6WP~5fYtr7wye|=kfNA_6*8r$ReM%F&B@P@i{;nc1 zeO`spGBUUD3(}!HIMjn+6ES5#<{s!=1*0!#&O^3wo0(%vNNXnRK;|hFobv(Y{p*lw zFe3H0A%~sLA9?Q~juZZ4@32hu)U%~M?ZBsS86aX^AchsIApZ#WKdiIb`d10XFS9Ht z955rIzH`V8dCBw*KiZt8x-85Re0-(lT1jA*e1xoPAGlT!xRNEvp8m8@Nk()1h4~n8;sI__k6|uayY$!2s?Q zmn+9Ip!Ss!JTn6=F@$UOn!X7*84n|o;KAurf9&Tv`$7zYS+2L?P?$f0x^`N`AS)m> z?U+s9;H}GnsRE{pQTnynwXU=8?(C<~^gdHS7lI)XoX2yq6-} z=86j{CxyH+8wleOgDaYCayQnra@WkSgV^NQr78(}cjdq6_#v&qcf%pOm$bJpHK(up zG__9fpjS)xvV8 z5*%n2$vKd3^HhzexM8g-A>0_=2mU5O(iE-2&Hr!7>J@qX6^BI_te7Z;ET%^X=R>kC zXM!HgQuIE}I8KZskvmEkYv^b~@J9N$1}fpQ{e!v@l{rk}mudRa*vKC)rG!V0vl?`h zs?;46@ZcY2BoTsxhvxUEPLaZ8v+M8Z#^l;>uf(lGvxl_EP?GiG z*aQQ6DH-yIw2!^7heRd4PDGbqm_D(N;7OxKZ6=llQPNoT#iNww4&s$s<1vk^7yvhU zsJCx4EByu$qsFvhyq1w+%Cz=?(p%0xqstxF|2d3b8gm-D8V2&Uc4938N!(`^i{G>g-2Qh57h}HJw-=E?!r*wZ;f(v(L+69cg@Dt_$2>vDf|4{pO8MM?kly*Y$J!txA z(Fj58<#$}gib6SDdYcFLuy_uiH;UONm;{N8dx`oDQz;#m7yh5zQRma{rZ31>SFTSp zhj_LnEwAaqj69f>rfhQ?n~|uI4y{m2IzvdPn72k~<0olvT%RCXzc z!Q6ng(j65Kycp^R89n)I%M>t4CECZ%k@bEIER|MG6eDjV;9EP4Q^=_y_@Rs}l#E+K zBR#M_fpy}#n^)7dwQ`^K=|5+q8Y1+N0F0Un?;*FX>CSn4-Dh(<$Z%i{JfFr&t2V07 zP`xgSR&uHWWB&)wQhlNm0`tWR&iB*b$~WyItjo>YcpBHB_;ERHoM~xD&a7>uNeeRY z&F|ZgbaW74(Ai`)4k~V^* z^KF`d0wxPK2~Q_)1h*tMIt1JE@LboiOo0g<4=q>4rv5$P--i;hTTo~;f<$Z}CQe?aR`JdxEEao6jttL;z6{~w_%=lG^CMw&QL-Veu#WxHD&IH;O@4M3 z-AE9)`3gA@lm03WE&$UhlP1wWfPE2zC5m=FewV{N#&xn!7_pgnXZ0y-h1)W$-J!WxZ z!Ia0ab_C~rT+g>6Dq(h|;T}cC5{YWA@;}&XYGwL4-s*LDZ~FOgJew+tT2ziH;#qiF zkY(sl>g4vN!_s;oslaO=)J+1K+DXie+wJ~qU*m-P6FSvV;#KWmNTCsF5uk^DCGuWG ze-`P>xQ+Z0g*0!E)}z3eSI$M=yX1JMgR*r6JU++JE3REzfJ=b>w86Q$HvHs(-1yR@ zYWb)!H!pDTQ$AJx+}JFl0zE~dma^-Hd*MR))g1RW1+XL_FVc>2E!U3lM!HYO#=qQ- zy2ah|QwX1nP~9^L;3?!ik6~Tnd-uww%?dS9qsVpC2-%JHPxet^vIl2P;o)u)Id5w`Tq5G!k0GVDOwq^ z5-Y+xQjE3Zs1u25RrEk_7{6_vFQ0Y=U2=#@KuTFl$o)tdy)-00YDvE3TE(VO?b4!E z>3SSDSz3QXHf}^1!caQHTY4Uc(2>)x5PMe{X9MF>kh%uu5_q5_qPmi(wMk)Pq>CCbxlcHJgcp zlJD$u7lH0djeRvMy;Xhtq=2e%15wR$>9rXD@f|&m3`Zfy99J*+S{egvYSc%%IKB3~ zwdhFO8!qDG5a|Q6{)r0a8AnKp@_H=_oo>lFuJ@ASu)3m*@M;UUZGtLn;xJk%*=z%4 zkZLCQE5t?<`~=Pypaw|;Q2+o5lTXA1(J7stIO|`jE2mkGUqCN~Zpl35)~S>dFQA&9 zC6E)JCuD~5>74aw22#Bj!GN8rf8W|b$jvH8I%l!dW$N=nM^51vY$08l%GuTGEoHOA z$*(9kn&KIw^OOJC^1Y|gX2jX595Gfz>*p?mU;rDsHnBU z@+12NS1mqEc=3bq3*R+!Y92y$?%{>w$hNZCvhiw&9zjG{gQ&;|tVqsAr6mU(bA-Uf z*r@scEt9CcHLuPg>5k-Y?#lYkND*|pN)?a#$d;9XFHzqx1R{5fCvvqJ@B1NH*X+1G zvkuAc4&i>AMh17Z9{}%Dl;30vS)G6NxF+1o9}Ak&Jz0@=YI!Be(o)4z3)gPNn?=y| zkkliU!>0`S*<#2+SiZ`mJ$F`cy~CYaAcw641{QXyoK;)SKiD-!)Yfa)pHcsalm%74M^OjOi3W|fbKZ|gsz#Zb4?-6|TIGDKwT2Ao}#TROT+Xr`bCMDLD&1zeSw0jU2)9uArNW}WKQBp_Lx(L?* zU}cEjk`7R)f^A2h$Bty#y3bX!f3#td5WcS0H-yDOh4nCLQ8>|hs4^aRr6&5#@AcQP1yZxs-cJ%J>BNTvn|ZncsDzc2`U7dA9<{diqoUZ9vV7j_SpIYC}*{pX%Q|| z)%>brb4oK&U9h^$cZ^ov7QU!JuEorf5p{MiR0#~L)+?gsFs4?p70G3jCL9ueZ=4aWNnVG`T@B4_sulRNJj?)NsGv& z5(?mOr@(@4W`xvyJV@7oML41$LN$cp1nOmZQ#NQW=0|vdx{fEPBRI3GI4eZiny#?m z3;41?u0dKC%`3UY#W^V9qWf-25D~9&=G@MMZg}IjC<3xXV!*hPVHxPl_(w++*9tU7 zYbf~0szUOu#7mK|X$);SNubA7fvkOw%g1NQ4b~>oy&?^q3EuIW`XSTd5|pYMLyj z6J@~ThSxGu;sndcPjI$sQ&JwttL^qf>Hjr@q#^}#ZOCt|o~!}hby~lQQ{$ULP`uO@ z!RbdMv9kU-r2Pt2|4-|{$J@nsw*zcmwKzb}i(XY(%~t777|9%QHXDrqJr_kuA(S-) z8V?UnX6vFDCLdcQkl?CqmGEY*r}-pU^c7Pwb9jvP>GJyw0Z{?ysIRVvSrE$d)_Cc? zY>qtv(Y`G*v?$85Q$=sf0=CI7m~m-h=obpu`xR%U6vyn=Vq?rOj!%H?+ z-{hA?-4i57!cVAe7@p>VwD6sgoD%7se^;OKp8Ag#8H|cpf zC7FH>e^NJBPYP;bdflMN7iNY9qYR>e!JJdlLT2>(5%?PVF~n*aQc&t+x4leXY!cAH#kk-4M#db&a&WmpL*Bi(v%jgp|$B}FZN z_o$0)a*G`22*6!`J-PC4?kSbLvl3o0k#lB0Ef~`9Uf)%`>EDc*(rhc<07Ho=c*IG} zM&eWnciG-J?{jr5T{e$>9y&(Zi*6OP-po@fZJ`#2I*`9PAwiEAr!43R<@Ur0!z#SV zQgvbR)#gUc)PW^n4!?4d8EDUS)fK%)Vc?89@qyW?Ip4o$iACxvbhfa!gZLZGgwc<7 zRHh<~Lwri672^SGZiuva;P`DSt?%!2w*dSzr}=I9G-%$a^=T!XiTaj-h-=+$!(#M} z-OkmIl{{77Y^f!8-o6T`EcP;mnzvai5-~Q?oe;*XV)!1WbS1|}%RmS+~w__AQ7G&oFIA5{Sc#8{+*H_)}0j7bdc*iGwCMz!PZ zhS)sH)(7`wdh30H^dINh+A#Gi(U)3@7~#x`?wI6s33GDbd%Ka*%a6 zp>QV@i7*_gMNhmZ)292W<`Tn{a_$m~YLy)JHQ*JF2}3u~b-WI$iXGqNZ+|wirc7u2 zCNQ#z`WZh4?0iVeneCNwk_3E9zTIpQQIu;M! z{PedwX=$HzL}N^|-OXHAB(Dd)gP83h>abS$K`JoseAf^DZ5|Qm7+KRsjo#Kdf?+m= z;6Ud_2L@dt9~S3AwhDjbYW8NoJ3PS#_HyrS)#wGS>Pk>o0%7b#!#XJ`R||7T6Ty@a zsYopjf($FT^jGOVarr_Z8zh7bqYR>qlxyC_ydwC!R!$t*n2Zn;tZqrsE%j#{S+ zXH3pA+m%#v`QekuO9Jm=U5Ez!KqhTON(=clB;lt~=^pzH&;v50msaL=p{}~kL}cJ{IGu(pA8hT@F$dwZ+gi)SVy0rx zJ9*)MZ0t?z{MlCJbky-N-K`#ve-9seL4tyT4Gq}4J-ULAe8#52_(>am70};tK}4Sp zdZfkYYO~Gvna78lN+qKZ%_n*^!kz8$3&ugw%7tkbJ%UC5zLISlp1bx_KufZ9f|M@b zs1p;7nGIXI7vSo=p=BKmoV1Me$D*bKdNovWHIzT~C!kC;1n$H($fi{=I za3*`xIH$^Prb{#=1?SoaRfGgOs$xBh3QGa>@7dMpxAC;2`R4d^EU8=%;HOlDk!`*d z0R~7=X-K1cJ5qw4s4={k zZb!*H8XUjxY4H1~ukhF1N%6vU7tniSvR_?ob$20jbY|L9$(=ilk)%l$3k}4aIAOf^ z11_M1x$%McqM7eAh^l^WL+6NBe$qU4MU;!hlEzvjat^kt;Qn7bdBFXVI-lX}FXiW9 zLTu=#W|ES8_|*$<{Ft!d;)88rH}}@3*?Jz%9hz69yS+3)ASxvx(J!&G zRE#|XtRy`L1}b*Be5b8|;>Iiu4p)p(4#hS6&zLkp!;=c?t8)gGo+}Yxr{E4<*Rk}w zbd&EVBM{mH)wCAsB&_MDorT6!o65fw9Fix*rk*=l`y4VW6SRd^#a_QFHM|0fd(bq5 z>l$!sRi_#WKB@_U`2CEC!CbV)sNsAEDn88;Erxe8e%KcF*5c+_E~rQrS93?Oy@p3# zt5lSW#I^{Y6Wu0xbY4&Gk9oAokNb3JP#RCw^_mS7;ovY!21*!7;I()!p7&ZIZJM$0 z6|b@Ltm0_8z0h(ji%?2hzWuK7kqoM)Wu(t@x*Q%FN8q5dIRh2wQFBFIm;|~=t!HMA zvZAs9s0Xgx9@01rTBIoxj5UE&EXh|?ji zot)>C=2!{95DI@1w_IOXa>zaaKxexU%oDb=bKJ!BB>$e&9FR*#0EXAw?~Qv8Q}@_> zsKN+;ZVQA*9|N7%N?=fZwtZDu#f%K6cNogag+TM%G!3Ll;lx2NL_iAcAV~Lw{VJZ(O{ahF1M6RMGL9G!NoNB4kA#NkQs`^^nWVfpkK`0 zgK%X&{~B@5qS1IHM?}_y{`4#d2{qvWx3_m2bA+dYJ6q`;`J@|vQ#crS=88;Qh$9Nt zq6u+4E6^PdNEq?wr&3FyG>{i$Tn@G00vSPKo;(jH`tXvAic0OzELVlvn`0q=BPccZ z+%T=0{D}n%B!jarzv=gaKNezH2WL>ryKwlFQpssLvP+|B(1euQex}R-*^ zRp4GF)^iEydft-|Ys+)#+5oSD@^oBs3uv-0hSZ|~f7bdY+n}l&@bR07`SQ}G#@CR6 z29$Af%p~S(szx+f<7)A#K+D}f-7O--TC7Ynz*ZZZZ4{8<7~5oAg(bfe_hX=vLX_JX z?rJS5>|OOk<#f@ZgybvCWvp}kWtYU1_)#s(wNZ>rIirjD#=Tf>E9mcvh;QB%0_`V| zhMo!ae;TUp=fW>UlVpVD_vjiNuyKq=%Gl$TT}~AuCWPY88pa)PwxUcVQ(-bv63XhH zqR}nX?y-ZJw)5x%l50pi?Z;?IdB$dOQa{!Qe zS<3qB*>)l6&(5UjB3Mok7yNtyiaGcG_Vbz&3;9~727qEfNnnhbWH$B6iNEkY8Mdj> z(=sDRnq20#-s9~vfYSBy+*cGao`mjtt=6FZ*MHE>M$dxl$It&_-@7eIL#*&HT}X{gY{g@Yb4 zM_4NMyv9Wo+?QZ#id?KM8eh%UDZ!S{&na%Vt2WDI6Oo!2P8w3-hMh~h+_?Q z>~v46jJ|FgRs*6;f`h@FizFZAcCm}ipqzuwsJ#*3lybcTqoDcmp%g{3(2ro!GF0P? zpb+9|mr*%^sA3jPpt?s5C0U#L0h8G>1~Q}auhSSIbnW?yTJ4l2g}q>6gq}LZBL?d; z*QQc+(Kp(gZP7UgWMoHb0bi4J%&pahZ1m&ouJ;20nf0?8J{I5|yE1*cuGC`2pQ+1J8HO+vyxQ}OkX{7$^OM7DKiAO2& z?%;*k`}B78+HyNhnBai}SIo%om5twQRcfgujHYKpYsoYUVO3`Gko>l6G5i5k2*x_1 z=bEgblTsm0V^28YDHk$Wsd-g)gBG1yOZLyFBok+STJLD&vTo6AqjAcq?J)?-SpX=T zVq;K!@jr9;oZ(LD<@{e<5_6vz(nA~j9b#Kx%uL`v8evJu_8LQhDVU zxuiXneaBiESkx`UW^I2KRvVYm*Q??`&eSAW3B{`z)+}hpNlTGoY2t#fJ`NuH0-^4Y zYj5|Mn$Lrv8Ya0NQiPFKX&s!}Sb!K*&(^$V0I3;<#=jU6Orfh=Fpb7I*eb@Qp25(I zEY_}7P2uFax8hgBO}`sIr1<^qofeJO^%o<#B$}4$hZbsQo%ho$BzPlhU4kscDhlmYlFBE=4%Ap13yFQ+wB5u zueceWAL}ApPzHxc(sWTkkm2yUdgY+ta$y7KOP6OIX0O@2dR{*JXi>@&U`L5iX-Toq z;Q7x%Em*Q>zZ;|dd@rI@u2)aE_?#xp!^N4=C8ey)1gt)Nf&Ah@t2igIHG@=)X<;cT z2#ugyC!3lQaA(4qyBQ0M~0bg)b&p>VT zpYJr0FMgV)!WGlrw9R5W(YWo583iRUi!05;Vppgiyk#=Du$O7f(nWOTf_5xl&XPRS zf`mo{RWys4$Yv_M1j>qppxGjq4ygJ*g_Y)`7F}))lKNIcgUgJ+Lb8gRB_whojaobW zH{1c1O}CrQ+<*iZ^SQpLQTMoGyIS2=)nD7V@!wJ2iSu~7s~k>9F6X&MVNr`rvoNMZ z5%|`|hmkqkkjjz;P=1~~xvepMDN`g;Z}Bu`Xxmb#cgWAMY+`=4wHIW3F{R+$UdMnl zX7@Z#h^}gTBI@SjRi8W~zOsS$0tJ>`{}n$&?Jn5D`JrQ`*^UJf?Crk$MQN{^cV-8=sCielq?Gao@5vOyi-@RXJwj!o)m-|d3Ot(xL!t_&IysW&0Lbx2SoRMkaHi zfYCqT>zXrW0aJ-!#<0SppLF%cXs~`*N&fQK;))K=3dE~H^jPOw759nE0cB=;!Gp(A zz1a(A?Qvy1-K2mMaJ+jmULbJG4QaJFRgY^*{cdR}f7pt?e@E z*$z9jjn$@FP%SH{f9yUn0igY%%)L_p)NbMxwT|Y;;NLjlo&cmW$(WIu-(Q!_!UCQD!M^+$4D?gtgKwSHY;Lup)P!{N5CM|K(PdP}XYq4r17cZ?A_($n^fM9Lu1baPZ z%MT@i2^3(lMDje5u>ze)^0OC>byH~WJ|9eZK1^i=P3jm*9@4rUx%2d;d%~AerJ3rN zHLq+Up1v;cnTTIO*ja0y+=+{?TWnw)zd{mSv6+wjh&v&DG$Xw_jNxfh@^LAT3i%0FL%9jj|G-hMWXE=5z>$?vb9BapDS* z0I3E^9r*fOh>jnul=r<0Hz;NO>z$WTr4Vhfy)Z?mlnk>s!@LOjXZ9(5V_oUNEscwzQ%N|D26AL;{VY{} zF4{mHcmaPY+@p(QA2TR@m<|g^-~}W9(&I4Cpw>ZF!@Au1c8(hhc%EhwQPjiioYc^J z(Gg>bH}E*c@iab)-EnV5<62GL{Bvb?S*r6@d*m;a6pF6!34BsX0vZ_5dwaapFRV`c zdW=Ld57R#1p}4bix)uf#wUaqNXy1g@`ljMlO5S`N){AX%6sjQo{QE$ld@LILDqbG% zZ8yBkWU>buT1!GaQjv99A|;BwiNrAef>z((MpIv>?03=GzEI!XeBu;8~5-h^qoXI50>A{=NBk+!=q zxW5{d-BCgltLU>0!^uGA=*rAK8vK&DwgSi@FfAF;MI+f_lm*H_ZFvHnDAE-YThjXG zhL!;I%js{bob6LQ?0_blFqOL{I`zGG%z66 zm6jE(GI|h5Tk~Y}gd>7(t_13GA)*e8Z70|I&ogUNowAP-aC-Eozr9=K?(!&(b99hL zLG3o22}S>jKTRL(gV#fb`OP6%_gRQ5OhYY~i%reug?>Sw$03#3@!PY%lq~mZNU!*W z1;3->BOvIsL`lI-t(b`FgmA5i(8|toxg=@%nGx;KBbmuumT6UWvXdhh>C%KdglIaUSrR) z)t&G}pb7|AMhThQDwz;8wBpz9(7i=tw4k4oL~D;9K#+46Tvw=6iyj)%WV|1zNYAr!98`-OLPe+#)9*6- zh+5R@NGr!)v9~Bo9S&~G`_|gxk%5Pvl!iVPSaxBeY*Zfl>4Mhsp&zqqg^L(KI{3;s zpNhhPfR^`Hd6)ycw{;5s#jQl2Yx@e z>JOYKsXy+OIT1wd5Fr1YK}U%f&(&}i*9OoEUVdu_t{4?LK;L~1Yp*B%Z!I;FoO}InT?bRb@PQYzx=HQ z3BBSub8e(~5SU@>SjzaEuh+N)%iGZ}pO(1`KdSHhs1b!t+6jgY!YnI-UR+K7fhw_e zM=t>5BYb&tXcXOmcWW<0b?t+O_79Fy3_Uq0zN{(YFi^LoiDUZR2XDwfs^17o{VA`{ zi6TqzZVYfBiO!$!$EXy>P;701RSuE4L>$-31{Cnzb?np&5$^2T$9xV_p8;<6Ak%__ zRy!_9A-*%TU6x=@ufO|r3i>M8&KGvD1DjeYP1;VxJYlZKo`0Cn0|K`C=KYavQr^Zp z@K^|=M9eU*dt?{|mHMHKx)Y-PvsY>ZQ47yksQS zmF&iUVI%z2U+O`H!U1_0%JQ^&}e}3Bf}BpVMuD80}_5$ zFbDTx;;M?4xlMWQe5O@pkm_2Yuna1}rge7JGhlvJFBYFMIq>8`y{Cn{vbW-p%Dz9- zGNUI1)6NCsz4bJl#`4Jj{4|H_J>odZUvTQX60e|&;tCD*L?YDKO(~*EyjayEL z%qm=>onH==Y$$wk#Dd_Z6#OARxBKboI?(6E;LgUEw9zl6^L7ApcAu5t;w~Uj#&}<4 zT`xdVU?{eou;%v&l69KTv*CDVEk540+(&u<9t;^A`ZL#mK-sz7mz;m71=M?71NriR zm_;lNvy7F3$lwg1#FODX>H$X#O7IYf4~Hnfw!vbzj2#1nEymIH9VG)buyZTjSj>#W z(;HucmRe*1E@|LIg;AA=|04n8l2Wqfa+Fr<2@MYG``eNH zJNOmIdFp;hrVu4wzbM<_VC`1Z%0lG%((AIi%mF}&jY((7^OZ2J$O1a3==&VUrz08q zwwp6`nS|wtF->j5XsJn|C8D&!e!LF(MD*)wPoW3*y+w{m+Tx()1Qmx*l;7t= z>I-4-{m*oyDA4Hp3xn7qs?%xCmS>DLj+0a@Q=TwFW*znN-j42|SEv~{q?Wx&(kr34 zSudzUT1OA(QshDAk^JT>`v1?c6hq6BfzdGLAgq=oz7XzVYi+cHACgr%FD+Alg zy_`FnP*jDC-oQ>TBWs7|DP~%wDP93^{>|8UL&PCh=CtEkUY%(nd!q)R4z4Lg#IXhk zXaMs%D1VT%NSQi48{0fC){wj}QLH0EffYj*;&CgM zDnezgYBzbP$RcHBN6_97dHetijtsN#{N%JcuNGnm%`koKsFZ* zMxMnWR-_x`CI;Rw$@+srTX*rSg=0Awjvh=>?;%CWL zhd7$4lWMx?|n_%P^1sfUEEpy zPz^m4WT;_d(B`{n8p$NEFl18yQ&j>O#W$l_12MW-EZj5S4)IQ!mwc1%NUhZCthoek z4;VcK>}PycJ>i$*Z6rYAeLc#j`LfGkDhxs68|Yy%HI(?c)z?j*#%^_GYg5%R?b_fJ zsVZJRFZ~o-#oSdaLuKM({9g9HC9@uFKXSX1$`pj*gNBHT$JAu3clIkKxBjKexXIw& zo?9fm^y62ZY`>&1XqqxPcRNY>=N}UeXI!CojCmh5WyKzHGB+_lfMj(7MjyW38*|S0 zzZEybBY(p$yv3f9LLIGwqkK}`Ntqz>yE-(P7)zmmZ<8@DO9kNBpcR7eRhFl1h@Rd+ zo?=-EeC(R0kbX|G^LGZl01C8ZA}l)biXg%lon{;B9UxLHMtOo(G!6)^HDYknrr64% z`Uki37vTVJs?Bh=Db;VKGcc!+r`aX>DeiDUORdtn=-2|{Dy-n1E2@Fum^!UPbsm+N zs}wR(C~6kunA?u)K~M3tdDzB(gDH;|{p?@E^zCGwSH^R154Z7n3k_d%$bdqWpyO*L z^O~GJ-fVmWcEc1thuQcoXoa%4v237qtn{++u{tp!B2q|m+=2lyGzBW_tkIgRPs^I> z!JHY7M|YNdomcLsi$n62nsB7k`CYb6q;5hpp=fYGqr7N}98NtU60LI04To^3Oogx- zQm0^!l=3EuN9x>b#%S3Lh9}XA*SEkLGp6G$x{*}v7_tQ3m{N>J-INQEeV1avWGl7< zY}pJ47weo)QyzwzR6Ua*Nk+&{#!p;t$OnH&JO0|;r)Z8>C=5$?rCpXMW)-Vgv(K3>#4aziR6?UBY30k=V=BBO5u}Fn!sI@yH_~N3ezTQs67Z4R z-sD^EN+Zq7>^Tx+k($K;jt7=&ga&7{(gX``D$>vCAaVKP>WMeRTAh&($5nq$TsRIG zwV0ST+6{Ir%U#l<`TD2DXfX78BxZR%CT)%(>W8mdqBpHKP zXFjudj5gFm;Ez^50~u1h$=B_h5@O&3?3ygHrK7+w&$0^bHmJ4F-De+;#EA$e&4I19 zHw>gJxe1$Olfx`3`sJ@|+=s?==uIubJQ|Q@r>rA&Fr|g7t`DRBB61&>{5-3xzmnkX zEKiqmkdFEKZ=rtJ9?87vcw?+)7J*WFwG<*_96%k*K^0CRQdKdg+Qq1F(mhA~UJ@Sb zkWJ5c(NPD<&*jQJRS5lmy`{*#-lx5_{Dgmoft){`>B6+C0E)UwgSx?t`aF09^Ordh z0bDnUm103@sTcy^-Ui5$=6tHyQoxf*iv7u$JD@^VIDUsS7w@kZV~t-Mz6D3cB1@7G zoElbDSxL42JunZ2goUpVYcHCGZz7mAUYydRGb%rO14krF9p#y}1j zUr@=J!CMAfPcXqK^n6I*=cyZ%YhXXuxs%$`&i{OhtJr1Z*8cY`y;=|$ps5)*U=Xb) zEB56a)1DBdk4ci}%q=1ZJMS9k3h%14ox_*GSIa72CpL4z@`H}vtN)k^@v%c@1;THR zg&Zc8M z?{(J%k_GP!k4aK}}mdyC9Q)E`#d_@Wj1)MJip-&3K zxJ~P?Pv7QXW^biy^tL^uSSg~iVc_9j#*crT2{ zSjSN$DVl@-XdMUdHiP~^qgp-OScsA_{qqpTFe4r`@K5krw5MZRjOqdJ%N1+BbiEy+ zgO8Y>?&-ZF(6=464?C+!Imu?t^T1?~)Mw|?qHq{yGYrYa;g8;@44vI1%u!C@T{J_&R ziGEqmb=EM-63eh?-9wj&E0%mx2}Et#BqeAJJdf^EFy683gteO$*mNzEidq0u9IULC z>k2KuakS9kw~~ZLb3X;#laJ3ka?rrANIv+?3zI51fP*+1#ht^Pjj*1Ty29orM<#RMvkh5vvSqP<_mNO@dcALElS!4@^YQh`{gJ}PMO=WEg$ajnvHIw{hd^gV ze?uytO+eA*)l5G&w2btfObheH-plAZ9YRV#taZv zP!iDnKH|%ZG?9$4>4_*$EpxG{oTscbzw(76cgD+LLy>)N*vUX!%u%4k@OLx(a zqZOXzqFdBqnA1pszINCW4DH@>{_eLc8*>RnZO{M$1X1dY;B!hZix2e*6P&monluJbD`594rud6}(8gahl{!?YObVvcJ-RXPYiT`r;N&?#XY1HK-A+hZnsJfg)qW#GL%kiX4E#iSZ?_WfYrTMHcwlKl5lh`x zn(E_X_50W67*`|}2GLh_jXYV}^4g$;)}CyiG!n^I^0%j7YcO&VlkYr~_d`z4G|A5Z z|7N|Jm*6-ZSX+YmNm{0d6T8Ro5MR9=+6STk1X1BktkR5f-VuKc09in$zeON6OPTl) zw0B4|nS6p#X?44bdoF9vm&;m}ft``V8;dsT0%?Y#PTM-8#uycAM{NfK>9oK3K+k1& z)T0Vgpkuio3&rqhR|?junIL;v5ZRG^DIK_+_uSHK)Yl{Im>reoj8s_hL661A!C~rG zW7Mj5JEBVx128jIIF}8fIHnN!GTec?c1<29;b!mPOUW)t3dNiIj)#jE=%+n2 zLD8Pyf!dh+pd;YX&Z{LreS3y^ih81zzU!(Yl2J|o?`$ZLrg9=5hG2N-2Xo{98ooLd z0?R#slm$JrBu`=h6_JdqH;)EH%li||ABJztg|CViec+(UNjO5<+I3IId+|N>xOba1 zr%d(O^{TTL7b4vWVBFA?Zd>o*nbYsI?u~aB$lx3g_}{o3Pw*KjH5vtNL0_fu8lU<{ z{!Y0VC2an(fb;$m2z+%oMnTQpfwTLujCECPobeuN4o5w_EKl#m z<&V9@8dxPJSn`MkAoY5*y^T-2pZ|X^2J)_NYY?_K$?wo1t6DwCxs>1Q9+YKxi-m*- zdaLIcO&>Pv6$N@o1tp`;W@QyUb7}B#)w}t@A3sf=Fn$Ck%a)_9BO=pAJTM%N1nD9m zIQUU7TPW?Yc7s*ZI~Q+%6k~q;mW7}MKo|^kqfvop7muPAd;m39bV&$%b1jKdnb^DH zzYztS_x6GYCpy;glY=V|Ir4Uz!=J*l_KQbeI{k2qjk0?Y{Gw_WpcMe7HPp#$s4MhZ zXV$V22*g?Mow57Wb4hUe(ag*8KIp|6Ww@&StuNki$>fO|3!5C(sG5YeTxqU@y(-i2 zp_9QYp;Mkp^wQ5xiK36n$b1bleF%-+gwB){(7pIvKdW*Bn$>XZXFbT72FIVic17Dy zi5ryywDqoVjW3*Q1(g53GA}%2h<&pY*ga(|jJ{lux>126oGmB=>l$bk{sRL%AB)@5 zdGqQ;)ERbRP608g_grBX2b*mrG9(#wUNqZ_55d)A`d>%@!i#b*krQweS@$%a;?nE-3(1n{ zA9?iJz(tud^s5mDEAK^mE92+)(tSvpCsDg3!n1||(QH|;j!H^?ms29}%S*#$p$4J* zGF#OsYaL#%%i0Ul^*0al!V%INT_tIrsKK}=OM4M?O&yuJA%Ux2YtgdvVXoK&mdpmn zGARy$K1we__2QaUmq*oxtrSQ8ZvSYf=Ym!!JgmYtsgW3)BlnEw2#%`Nx8;VTk&S&g zY4l^^7cdPbO1m!+gfW!;`xKP`0iY}1iK77b*oSE_z+rMfPU)kY_#gN&5pNT}q#;r4 z8;@vX);X+x_~E9*T|lC(*84P89Y$_256wR^#Jqd}*7;tG?ynCGJ4LkyfhC(OwSryR zFNp+nhbRQ<1Ua`+XN5mZ{-G?xzA}inL+XTQ8-8TqEe6o}X|4)nAxmfpA1^|1S8{Vv z4R)1p0FjnaYh$z%_!Z6lff=5h;nwBbi$nBwUO`!XP=Q`zqLuR{YWo#D`eovD3`KUf>l+NshuQ>VDX?B}wIJ-NAR?pdfjE-#I^P zx@v;43nAgIR=^&aI|5#Ja&ZJakn?SXuyRa~Gg>dJSFlVY?t_2qxf23{{y|oWs2->* zOYGf-DXOFcd5umnDvjvhtHu?-+UJj9qjK^4gNkEcBS2=joI>6mAE(4U5wO-o*!lPk z`|C;z^hcqKhO{5ORU+XQM@D9E zk=kD}ejqk9vo(M}z>($bpX7u(IBXJK{OMhdHX7D2$Ae!w)=rXs9DYqiG^C%F4o%hE zU;r+cAgJsppV4ik?vu!F1U5R=V3lu*3h(a0A=$_l@gPymff#FeZxnqgz`D1V9M47e zG3hE^Fupli4`0Y9B@Iwmvf-(m>h2595WfG-%B|kPv=)Iki$+NA&H)Z$#CT-$<;qAn zv{_!lzL}t?&aM55UUud3?x)NT2OKXuuAD3^(3M=ffVOtTv)Y+){5Q5Vu$;D<}SUu^YK@ z>%!CD3I26~xb|4yHMmj^Xio4ZSdY)#P_S-HV%p_NdKrP4Vi3>9pL01v!K8)CRp|c; z1=Z@uLgI})F1;M44P>7+oh|-=OkFVVuC5DQ(6d%iE5z&Rd%{yli@$YTsT>!9Hrj%m z0~B-F%iI5qHFSIpt(%^F9G_4Ss)3Ks72uygFji6S=QYz8E4C>cU|1%JgWz(eTE0x* zE0@JO=I4xOL^0{3)#<-|22pN+>=08Dusd&rY0OmYlq6*XM=YO3<#LVuG_r*du72N0 z+LYy@*))VVcM)ubV-8%qbe)iOpk%h8X!kH~oVk>LRklynSD4IMYS1zhC9{vT6>z*RIEfY=Z^h z?sj6VN^E&yOH+#k0&B8@Zbn|X5xmF5Up+dmC+Y#+`ElLIFIPU~V4YO4|Iq2E?o zwsRzU0z`ap*MQ3FbD{k@ELe^CslwV;gmJuu+5r(c-~FYt1bdJ8io?zsF&HrnKeb$u zR1-5acKU|q+baSZ{#RECbkBQp1-`@-EK08Skv=!F#wP`b`r%I~OX2ap{5dqY0J{K* z%C|^1SFw^$Q=aqNt|o?UDrQgW(aS38(sX@l$V-Hk- zPqvrs}xHpMy&M8skB}E^IW-B0K$?n@l8T($$Y)!&ndbTzZ<2y>3Vh zHE!~Z16Z^F`eR3by`aql`UI@l+F!6Gf_9z@E(X@&2 zIy=e;v}UOyoeJ_a{pBqnEjps-hAC4TZ)Y0u&Kmq=EZ}?hrn;5BKv(}HDfs;UhEr?eg2@m$`v{q8Cqqh0*NbdN`Y$?1(RK}R0dgR7&(^QLq}FakBHb3C=~vAPm5xUf>y5fXu@JXpZ^~VrR-xg>MF;Vxh{cN7UysZ&bv=aMn(LG~ z38>e)k%ns$ZA1icc0rWC-%*NIO;@*}<|IqzGn&l2*Mu0JxDs-VekH1R5x&90H+c1t zv83Tnuahi)mZ1@{@NfsFPb*dmT?Uz*hi;5i{VG%Z)a8=9Og!6cP6;2io0noJI6M+R zN(wo%@*6he2%`yW%}&N^KbqUO9hsNfF|a8sFZV7V8DR66PRvKs%&?lID1XVkxho}7 zTj>u7FD>oEy=@NQ%_;i4X*X5~y^02Ik~lYcTTSzQsu)M%C7}i0xIdU!T#*0YL)_R# zU4}OfSJ)Fpd+BHwd-}l5rP^4Wq?G*)qyQU2wlw{(ms94aO;#qI2{Pm8Yi^~`6`{hJ zjk@FDe2Ux!@NMzD+FrucNF=WMwNF`Oi7zNt0cppx1FVrmEx0ciCvqq9k{;DFA zX?9uqF857`2qi;YHgXJR!I=(tfm^!SAhGT|*T4@_B{Z;nGkySn_ZYB64hZq*7Y)c; z0K@_33FM^K&G#T{(gGxlTe_EmF zhJZ_~QCdh5M86w2nWQ$dTzgpz4g*f1g6*B+=D-1K(sJh78i394`+qv;cVajQ2S(<5 zVn2v5De)Av=5Sd-{}AqcB2uN@ibyKFlz`?dJ;MB+Pi8TcjABPW+Z$eDMnQwYVzv06 zh4OD8{0JhA(|7t8Acf}8s!s&JPR&(=a)Np-^xN#hFzu!2)AT{!BGM zk#2)BYqXg=!JoQ*{?K~v5!LLk7nG|ZZDKN6WV_+a-b4--TW)%|$AnN*!4tUH*U`XN zQz*LxOX?=V==&O2YTrV1W$x%y6B-I)D)FDT1EkJhNY2mp`FSjOd{q2Q3qNlw$3xQE zA-^_56=vNlHu;bb{XQX6;YB}bDGa{k%xK9Y#7+Rz-mW4S0?{E{5=1Fa#RmvMT3Mh3 zYkl?`frp*a7-FPS95X~US=p`GzF7hUd`rn`V+4 zKb;wf&EKM(!j#(+EGh>CrZ z52!2V^7t(k8DK?UEEolkG5$<-KWt`aEX}LFjH3kLLkBGSvr4pQ^*0sLTxn`o;NYvs z`G)$h*DcM;L9Tq2vKMNs3$}QBG_P8Qaf~(zB@2>2HI*huMCM$&s4R)ZFq@ev;4YDi z#7znbYGU(aO~@L7N)L)6N$Xm9;+v#%sEgZStj6d+WGASjY*JY?fpQpXV>SA}77bib z*GZ#4ibb3pvJoOeaFNg3%qHFq^E>qbEKI`PXQ`bx!?NpQx9p9J%A5=-ez)qXSHQC& z>QY48`|~;EQ~Hfm`O*!TVrjUZ+#;Cd9~rZFfzSe$_&Q25CUttbg~us&`d`!)Kw&vE zC%31n!p0mNJs0S()~Os*=lWH`r%TkPA9q{Q`0-l-D2{LrEohu2)R~1i07u8kpI$8- z3Eno^0*Zr*djvYKHHwCZn4KQxE^ob2oRTKf7DwV{y%Xaq*{dQ*qGQ(QV>)5YrG9Dl zHokEolG{ZeFPX=mNt*A~*Fwt;BqIkRF1(^WIVyA=5MEe6$Fs{$w3Hv~^tZej8>g2XGq$ zHt4NAT$QQK`CDMy0_D#A5&k6z57fy^u~->ibV0I28A&U9pTrN+X00Jsb--mI%Bf&c zcjmGwrYVJTLLdnwW0Zqt2*kplYJvJAj%W1Hj*?kSvx|ptb&OWPjYBaXLKT~N5HVn; z{pMsQsBOA(4|;j9F`)CbG3OPjH-)9Cu9}w%SRe06j?sp8o;o*)%>m#pjxP62gkf+^ z_g-xOTdlY^+`cWjCJ~+cYh9z$S1boGl=uWhS`{%SVYOa9G+Q%Ftdc8|3e>uzUq19P z+}`uhFkAEy4Sh%TDESrhPR|#6$;DS-0g+6{gH;k=;5x03PBfG?!IfZ(qM2or*V;;< zg;CBl=u@6+mQ}cQ)A#jThzAFa4hsaY8(Z2wS25F=Y?}I~bZv}pna)jT8Lb`mC>z4{ zaSLx$>D=O0okql2Ru1hO5N@XH?U}6kLjm@)S;3_Z4<)uY-+KjPV{UX9mQ2?qN;~oj z#^!;pgtkTN1FYH30uU;Fs#RJrB^0SOgD;ne0;zobL!JjN>k7}LjNln^AFB4KJ&`PD z_#?#Q%U4(_RXqyO&KtWvQe#onhl=MPUWH^f(@+_4Y0d=%cFBBvg-C0cWryVZz90pb z(PHy3PN|-lDJuJ+Fd1;Dp0ldz3G zAPOB|DutW(oP5aXvM2U5FqihyVtIa}$@e(Sq@++@MQec{pOR_=D0-Fj#{7|^;AnK_9UYgH(q(H+ zC*;iNb}vYkiLb>o0|Za#0Dka1H@F_z{zwvt@F8+D2jHutxO$ zA+j3}M1R$#=>&c|s$`)FG;W;0Y1cOmwy* z%Q?XWDUOXBXlEygx2b6}QM`e3NEU%jl9gD{SAv4r(QD80<=A|U=%U0oKY&H+9Lwzi zd3T`#tYO0K+*#&q+$A-JhUfr9p+<|BH}$pD{D;Z;igjgH#c$}Ghw9c(hX8K(>cY;h zWcS@rPz`2KpbCXaCA^#S*KWv7punbiCCAznb~wR>B2TJT<{Yd{TRN0Tv;lf;U+M9P zZIoy~nqjrE7Yo7u{eZDZkj|rPLV~#w>*S3i-rSKIaG$5I61%V!X0 zAP5wfAXPW1g)Lm~88mD{gnQquXR=xpo|+7{hKEN)cHa@=Hvskh9>^DgK2XVfg4UR8 z#*;ueF}9Tpg*lQuTDw<270&!p*|x zgL}r@Q?#Z*P8b2-o-W7POD}a1Gjp~APcvvEx;|`khsf!V2j~FWz`gis=78B3KEP@H zw#do60$r5yn=cp5Ub8@d;B56+5C#whCpbIRjN0zc&0TU4(MluwI zSs~cGq40{#*+XMnapE3`?T$ziskJ2N4#bJ)t}tp^`yWcqgnl{R;R8vu56XlLB;>)5 z9^|VV+_kZbx6??Zd%mTTe1XPUf|&YYd2}Z@r`7v9}8;hW0lWCssHPu8)kob;pBh+`mnZhkg6vAXXUDVhk)UJzKm!SUE}-ob4N8{YBzoB+Qo5+#~Gv$)=XD4k`6o3 zfa=6x;)MLkg*!%;k84L_;bPTT9Se0w+Lxk-=((}CSuhq9hm)aZ#BHEP4g{~jqI9%S zQOw1AkFmc#pbhgHzQ&PHIl^+OHuD&%KVz-fP%F*>8+c-OTtLqpJkiXJ^ynW-g%R$< z8daK)xEZ>nw;X2sb+fq3?q60=3ZCG1W?YB(PtEJ<9fn6{rw;&IAXNPUJtZbJ@J;uY z6^-rtTT#lH^X9kI~q+DZK$Bp6Z`sACq3mGifbks{`*L*yU+>8 z&^C+3i4$mW#bb}uZW~N?G&i9toaQd+*Xpp6{`|Q_6QpzpV>{&k5a#>{Z~SNwaTL~y zpS_C+dMYSV?of+?L<~czw>Vctm)a11t}Q=G7)Y(}p=@`VlV#L=92~J?>UF91Qp(UP z_F3&f(?V7`Yy9dg2e5HFW$rQ9Fi6h8?2aFya5MctO*%=HgmuwRA`S4D^-A`U@^ce- zQ_~=LqL|nd-43@H0U8d!x3!;N&X{_LQ(5F#^%>i4WKo<$5t(T8U@3LF#H3q!z1>sR zC;A8)#gRE6E<6edaEl=W2Ei2S1ulRZKXdzr2Jvl*ia1f4W-v)>!yybU0$eB>q;F|ckF+JbE~Ka?rK5N#KIQ3 z>__gynh9HLWEL+>#8+VV(fU9%|5JR}$we3n*3dy}J2O{&ZP|w;d|%OEf_#+BANu}? z8=)`Zb}00MDtZl(Q*m-Zy~^n0o6<**P{ef%6fY@PbU5Ypvq%pNKTUF?nm8T0(648q z&koX4Z{nGM8ZSXUKN+93;HBsF=azZ(dqzesI;}N2f zFHiG{Wj;-yhJf~EQ3d2{wbg&xbVQTHs)Wr(oS=eEvq>|rL5pDf5u<4HwS}?zyGeY6 z9(Wqzc*?W@A0?~EaH4bHQV>!`WCqN-p!Mg);nBg<*XWr> ziUjo53(MKKA_PjNdT&ZRLb~s2syPnW$?tmq19hxct$Rj9{m-yn(itAx%_uMiHbr-G z70Fk=2JX~y-8U;4A8vq4l7zZmK@2X;6rMlN?g3*4*F6!4X27M_o&0>3hnL{7fmaQR z_GW<$O*YYqcWC)(_K9QRDrtsrn1Gg4d~7;RWH`vl_$DLSPnpqURO2^^cRgiOM5eU;NgYT&gnm=BH^I^@ zM2069%PTPYh{b_i(occ8t)iJ5B04dV&0})U9vs$HUwMLbvc9Q4017?Aa*Gxb^YSC` z8OVwdfs(XxjS7w>OBxTx+-uqh9rRhrgAED z63T{x7$;_Dqd-6$zJdQ^DF!&h^lC0gM4@Bpv@OU%U}ZXSx7&ooladpLC~=s83Gq%2 zGg|eTxNHX#rApRp%M#h~WtarR7GaoJPahHA?lULkT$B10nU3#I7CNoE^8fb{PX)@n zWHsVh_K>9dFuqQBrDAF5lWj7i^E>^u8ilnoQK5J(SkXm@rn@N%lrQ?-;z1KD{+}Wq zmxjh~CbR`>!_syv@9xzrR8ia#c9Zt7b(g5ccZ#;x2zOvVX>SV&tHv`RF{LAh0(g*t zN|plO$AY7@4U|dHigM)84-5eH@>xpcv}WtD7`G`6?zPkbB?d|Z^_5LM(fETo;PSc& z7<-rji8y2_%*LPK5W4H1rqSma37NL$U$S2DG)Ahf7PU+G3MM5nrmn1bIv`GMUWh{? zpG8QJ*Fr|HUMX-@W7SZjahEIiY0fN!o8jz>T`Jdsq3dv!ruNqSf}~ZFjs*f)e#apY zB%O-QwlXbNtYMn0Mh(Z9Uh$j`&Vt12oT@I(no-ejL!ZcjLq_Kvh6}^$7Lng&en`eh zLa3x-=N4{fmhf5liPXGgwnd;WHjy$%%r7s^o_OxF*%L*dxaZP8-Xes9mwD_cYo1Ta zRxA5+h=KXS)Ieq?#bLQx7?{YqIiDx58x8(!0yN)>Z5l+^dJc=F>qZJ z2!>7`?2YsdEs)5C2A8O)?9okQObQ`}A%*)hX9Q&@`Ljm%_H?^;{3af~SclS;3v&g`PAQPM7Sgr z;2uC^Q?Fr!GS6@_ypZd~SY0UE72o#-94BL~ZY%Gnl?a zhBW~UvbGYP*SU#tek8Jz^X$D^horJY`Ban$aK*u&nPktQJ5jncQe zeFW=M!Ll1GggZr;kPA-6rlfmZ^NM&gGe8?I;%f62>nYKQ(fj45ly4B8(9RuN(r+gvdz$96Pce|Dk#DQ#NRhVdFObb zzm_hIgQ6u&46t$G>fzO-P9^>W{bZg7@vl3V1rQP5iUk95jx4{UfLjM$PjtGE&PVvb zI4V`Jt<1XuZ~(hZzBL{+XY(R!0b_*AaEq=nSs&vQf}{qZi^X*zfTPM>59-pk-jP#R zgek18&1IcZ;7m#$n^!>k{$*`paahBtYmb*3PpBtpfc$(&3p`@d6sJ`Leb*EOy`!s# zQ7VZy$fK(BcWg;?HT?k~_lw`7%cTFjFdfyH&4=DtQgC2fqHK$xBQfDgT2eW^Q?W{% zwQ@UXvrF>IL^+|9&`Di6$bV^t4$<()@n>`O62ovC*nUKZ1>9wa`$}plP`5KxA z8`=7*+f)EF$l0vWJpcl?fG5qIx#PUH2vx!?mJ1(`xXG^hhs#`)O&Teba9ax#n>KD& z2K#=>8;rz#EC7P`aSmsYN|6my2!#@uy;2n3VVnzA$B!a=m1pgOn)LxwmgobLdrOTV zEFRxuxX5M%w$`^9mW_u0GBWo;S$e-B;pFuJPFo5K619rc*{^QQ#dOTcz(C`Vkd`v@ zd?zX(z=dVYvVBJY{55lpVqOcx&Em2xrxWyVB^}2LGQX=!7$uo-1zJ`zae3Z=^`p9w zYj@mS^EjNB`7vj_ARB=`rxOtTSFmA|`ZFJWsZ9@7Z?$CN#+WDf`}zjyH8;QEtU1RP zPe*;Rv-(7M&vN39f=Fde_gGA2GvxVkI4^~yy{3n`VP~;H5kpaARIs;ljK?xrhQz%r z+r9KIDZ7BFz4@3K8lB^mmYuYEMc6ApfQV%+Jh#HAT2w&}5KaZ9W7FEE@qeroEp*W- z25D^ThLL`E`h(!sQEE-DSV;R^?~q$_+*tg!ip@dkGW2 z-fB4)1Q~G5#Xt(idG?hG#fU-wKY^C4H79$KMq}$O-oEXh@A?#@=FtqK z7Z8l%;=C0?lb2=xaPeV43}#t-s{j8d>Hc4q2YE$L-4_B~pW3YXdCq?B5l@%p5wqD9 zv7nw|d{FNuf~#(RE{Be?|C$eK83x01^g%t1dCp~dEV9(RdCB`)&_R?^9nj!ne4RP zWB6~mz%Eig++{=9D@4CZk^l?89i9)n$#gBfw>B8o_t%zwO-KYj`{zzp`S~B|bAYLm;nE5e(I80ZHPvAX*f0v=5w}GJWZ(Db-HDqzcDB>9IX zRv{`7*ojn$g=*_!AbV*gnjpa|%cMTCvc%P3$9|p%9HqmW+}r6;T<0N{MgDL=WZAh+ zwD+&N$+nDBLy$#^jtmafOq?l*JVG0O5=+|hY*NxEwx*9#Iup1Zu;9-W_*xwL1!&6ohRy%=seBYa2PLH z;{^Oo|7CE_K^aB`<$GFdR{8#j5)D@od}X)s!`3jJyu$`WXtm^lythzIEXLgZbOs`{ zHq**~X?dOGEmI7|&sKH1rJDIcn=eRFRc7+d(&(7Z6@*CM;;l4z=BJ-xJlzq?GS?Lh zfL(w6=oXwbdGmJHZ;irHwxr1}UX?r_)x-;)DH4b<+d(5vc6ueXjhhrd?%BqRQ38nU zpvqo)6CjB@kq;sUq!*-?4AqkSIfPLX9X}j3NI}3})B}D-6?kR@4lQNZP|#9%a**Fl z)0KM*-9&~eO%7NO&j8@?q-$@f&u7j&TR3`N&vDO-{S%5VnyuWDpDl6(xQpTpWOI=? zy-^vu&OhcBwSWxfSVG}jf1-A_b4$NpGtcLYihkuZnyY79imbI;laU=TknNYNF>sZf zBc@ntq%=XM*D+1_nhir6%}Zq=r29GF1rDl^(PMucdwB3YyzEnLeS&4f)q(`6`bSz? zCGx=!ZaY;|50G3ji->*fN0T+(%o3wMV#xj2F}Bg#X%7MeMEHWINav+dp|5QzJmg}u z7&=M;W($9^uL|cAJhU0w4!hl~tEjK$(SgsdlC2d$qqovJy-z^+cS|52&S z1wX;5+b8!@`AGniVMc+b=;;Nq5z;+{Vc@UALSLDL*# zcyZY6k#At~jaVmg%+%S)VSsu=nPYFtO%RR@NAi7ZvvbHz%RT;sX4^(N3;JwMHw=rS zPF0TSpED_nsep}NN4zey6wa}!aVY)3s@W(D1vdXt+p+1Wl6&DT_#am6>v_*snYfUp zpfAAF+^GWvY%wRpRYXrJum&ELPdj8o@ws>D*8>!hs*dLp)^r$Z7vZc=B=w9pB0k*r z`6NL!S7S+F9oLLyz3(Rufse#lC+KfaOuRNn+Bgt@;8%^Po}Ex`54qxmo?=)e>jAW= z;VCTkS}5fWQz0TcVGCbiH&Z37u$S%R_}^FdjuAlCrE&J&Kn)nVLc4pI);IK~r$3Qb z2HUk-0btZbzsLTIJskn##gZGvvAQR+Np#mao59#BxoA_7vQ-b5@=Nsa+_Q*EEe!{m&t?e*_%j{ef8#L61B1L^QmayLo?dNh+=T<^8#X;evjOo0{8`7!D z%cTu-EZ*h)e>UTIhf*{z8J|C7Ix0l0^aT@I`|v zdg08Sjk0Hh=XxecoiwKsKsyy-x}}+5*0bh(1uHUu&KE#k?*zO4%3hZelik^e76q2m zR}=<|ya9foG~kB~wG9lENs#o$jclzT8ih5MqjeHhn_34VoCkbapOByk=(U>A5X$Q^>>kPKu`cx9XDfMJ1-RwR z>?0XsI5smHK)`TrqKmBf;291~l>Pv~g{RRY2Vho|U>J?pHf|es`mlP`q_)V7AHwVrpGuK(M#Y+6&ZyXC+YqbDMxtT zCJl+Wuhd&Lv+)Lm+uWBH$1_I7a`pgq-uxC$vYvt?^?&XjBNxkymeyp+@@&%Z zw@rbl11OB0{XQTBO{XT~7%qcUu5fxg;vz~*wwJU*_fgXHXxSJb?Mn8_P%MIS87+3- z7MX8^3c~VEDJ>}^$v1{FW2-`;bu<7p#NjlRJuAawxrJpp2=oKe@U*I$6{(6txL9b> z@~3GXR$F8p!V=>qL+D2xApO*H7u%wrW6iXH@+j=$ z9i0&o7JUrU=9x*EwvyXd?W^Y^Ts@v`a&Y8Uuh6KUELY(4DZ)VpwMNqc6rG&df@t5M z6zo|IoE^w<80eCwA*;QHZ!l+;j<{Chbhh5d6J}d7I2hL?OihcRIo>QS0W5}Zp}bUX zvaPFU-9&$ST0H4p8NCAy`&V_THncW`;3lnthsf-nL-bW$KCzzPk4i>kh+gj#xRc`* z^>y=e?`;q;LH0Uoo|Un$hgEY|-4%bCR@&eEwQ@J@FY#;VGEuE<#?+4Z6I(!;<;Nkk zl^{sWydWqEgjp+_(G>(Dh%Oqbr4jMNKJaTnKe=*n$9q|MVFb$N;JH$H)erU@rW)g7 zGS<2i)Y943m(6>X>gIjlOM8W?F4s&2;QK=Re;Hh$D^pBsj07f;+wAs{)HO%ypW9gcMEWT*KT9C#wY!Kg^OglyI6q)8MoAbl)+DDlKd!New} zL?g$*)D&9>w4j%lSC0I&Q6u5RC_9jQT=uojfO}tvtY}M0I^h4YmgD*p%j-l(P2!OtY*A0pRG4mY}V&ar9MEgXXKlX2|r$3fC zJXj+zz^3cLknbbtZOog&0ld}kp2ZH;F%Hp-ABQbZ=?4SqC<@%vzY2)MxN#ZFFj&!p zi7gKwR;s6w&>h{>VZ8P(^^*_Bn*qjJH6k0J*4LbvoPYS4S#ht)O>>S29nL5KyykZBBDj2toiglpgUnh z10x9J5AS(zb80!YLd&FMEF3B2e8Co8X=nvPOd$=1m*-=drS=VPk+39@R}1N)uZ7O! z0H|R_JSJ5JM&~oq(v$R3uQP{yX>T}p9B+y1!LAS$!A2L0phz1*C_}NVuk8(c`DVtg z1a_yWbngTr8N-TOo(2)(Qif6!FN5E;MM$jsld*el0U!viA`LTrE#v+>c6QHB9ks%L z(uWw`lS9(OZ_Q79Aj+`-0r4XRP(Ahjr~vBel$JJ&lh0b1Qx`r3+mz7S!Y4crIM>30 z=S?p)9ktcnM`0Oyxbnq7AqhP>adgi_THD68HhN30#i2dBkeK07_-voe zCpazeJoxpc2XzVtJyeRq#ftQ3lm3U2d}nKmnbKm|j$I2;UIi-&UW>mCWx3rvQ^*B? zEAQTH+vEEwJGNUDQIzo&Q8wq`rd48+RE`PKj}WeBa|54cG3TXM>3y--m%ES7=Bn08 z1l90@{gJ1M0yGMMq*z2%{o3~zDWY#FZm-8ZuS}TMSAxcIG|Ny_P+dE$0CFmp#&MI0 zKwRMqz+!-#ICKia1w#z`=-#${9(196gHdR#-A|*nyYvy)3S6r`S|FjpMl)|hSI-Bv z-o8%eNxJ`bKpRfc-U645KWBplpvsrU6NdkEzADseXMY6jnzh;-gG6M@;H{iw-H?yY z&8JTm0}|{*kmQmpx2o|%w`*92SkY|E;{ds1R{77D=o`QV_N#-fVym_^`UOMPrO5z5 zzs?#I1EKOO2p7=YMVacT*{fpt zq0@qQJa@A=O{chjcvl#j%Ty%%225&j?a@`3xdJ>2tvtI+^5L&>mJ2DnCU%tL6G+by z98nc?4xkp&%Z0Yid2OrkIq1ye`JC+=ev+UZvVZr?6RRfy{|JxDkXZY5%IRk8HqKP^chi1dwbcYt4qn|nf{ye42-!&7|FaKxMwG2O2u#p~|S1+{s zXm3bampU325S^cP%EXbqu532XNI(G-10w2Y&h!0VMXO&#@LD`;$a>kPK2H}8RsRIO zsIFZO$7R2%{>HklU{n$Q2ptBX;0}#$bVO)zssX??M>q4|zbkVp{Hz9IMGk%mGt>YS ziQ&;!77a8}yv9L-?*nn4?D}PNug%8o(5PmQR;UfMwfEwU~+}| zAb|2bs8$z`W=}hDk+Bo8l(YO;8PPclSTQIEd=~_u^8+`fr&1%R+>u^UvXy*{XG9WpX&pd`$tCODNk7P(C9YqV3j{o`!9%y+TU&)JFdX9zL(exgwP%4`SrZlFgo?nW4j z%HiFm+Sn4s+RQj+>6*WmTTVD@{(2;dR7wHe@?30}&m@`KgrdlET@Diy=Q|4-m@~1b z*RpTz93>KP)#_LwxF_|^{>EcILHST3!yxQa3(k!8EQH*6^_$se5AX7ByFH}?qE15@ zD^05TlKhZhS3IZgfE-Vj*!E5RpI`is;p}hFKw@r#3S4=w_$H5&flIs6jYUA?{jzSr zwzQT8wkL4weY~ojm8w2+l-=zt!E1MP(qC7ZVx7E_zP!oIcM%^izY&8gzqpPd<^r|& z0^^d3(XkS#%k)n$ECp9x#8r!2{YNI;+kf3fy;XX8IPt)4RWf8%J+vLlc{$Z(3faFw z<2xMJ;0C6T9b6#i*R|Oy!zNrUT)xKz?lX&^!3*zf%Ne}}yXnU-OZtR?%~}|#$=%J< zP^7XGnVXU=$_L4de!qc)6)LpkHX99&!gnc4mS&PR_o-?_Bi6Iutw32cbT~w!af6YU zG$$F@%I z{5YpV!0Bb8eALVYMM+c&aS59FOqc&{Q?QdW4fJRokw`CmPU84he{<*Mu<3In~^B$16vDVf=%l|6NWlP~r1Dj(?3!rY2j@ zBIrj)VrP3o?YeJ5i32ZhrXAU$bM6xLu>9+CJ%b*5R`HYj2logL58h=I>D*TF7E+C>lAC=F8?#)|7r8mDQvr{ZUr8GW5Df@uLyA-;}xB?6p zNI4$&D!uzLzj#)8&S~r#U;}3`PZ9V*;Xr%uKnE``JB3;$8S=H3FpNM?516p^V`F(8 zP0!~+=k?uVRT;_=9mFa(0U4Ce9rNai-Q5tJsK-!yv4ZiUx?tH3=`^6(DFBf&NQ+vK(pIh%EFfYJAX<{)S#5x#_H zq)`;X-jb{;uAdw+#~~Y2sQ?w~<5=#3^Q2cR=9|~Ra{2&EK(xOa7+{KD+=`e848@`h z##AzEvJmB3rud@8fu`R&F|)oDvR|MY z;mQq`;4P7LUKhOx9!qYR)vv!F>~v-9Q6Ah-T>ZP#O$JWqsv{Ojr^!j?rZ$RF-pL{& zUuOl&8M#rw$lc~GUserU1h^1^dnJK*HFPtW^RnKKSgdDR&GVnm0+rZRt59=}&nk*J z!4HkyMgf-eD=YL*UllP>_-V}M>at?VWD(5=&l2OedSYWiN^O6q5ua28mc;2k&JQVJ z>WDI?r$nkMd=TZ$GsE07^lDqfq8KZq>poMJt9~};h{}Fzo*;Hfe0bV{x)U-CJq@R3 zUaV*WBZt}oHc;)Y%52IjvP#3Hknc%h$B5E4BmpKj{il%m4Py3oj600*;>pw?!MUWg zpFF%>P1ncTR5_`J1-rC&R>w+#gElNSWAsl!Zu^MN~5uDZpHNHf6=2f_pN_SAY`2bc5aCX@PR$)Wg zdDlqgbd?FU@k~RnZ4i^#+B5vA?u1J=>0g1T8}B1R-MC5<8h7&kvU*svSI1!JBaBx! zRMF%2o-DtJr-9pEM)gjiAhU`&&xzTkXU;;jBmLoCeT@j%Sj^PPkn6zUnp79Lf z%UwLA`r6>!@lzf=HDlv3$@Pq>s})SoR_gX%jVU?4Z$ZYtAgU z;bz(P;vQiL3Da`$z~%`n{yIQ5sl_X*~E5k~SZi1r8hm-Ij!0qsue1VvicXN`c9-WL~B2ycuR`?keARCw3x&(crBN35S zAwu%)V%teXxEKAgB?pB_-Faic^$p+3G2z4m44WC?W|7M1MoBX9z~Yo(Tpv3f?ELsZ zgIfA0t~S$}!Y`TMTYu2R0}|p(@O~{eBkjm48N7I)zk8wwdwCaKts5$Cx~G$!B<4JrSHa|c?U5x49b4TRXIEX&>QYpXbc=+ z+SRZS9EQWXg6Z&vN1H-$7Z&~L&JCDphY6(V8{TIj%B;JDQr-0v+bCfCGg6{L7Dg&v zcV_3I+A#Oaa6pG`oN4dP6X_Yj#umAq9{ZE>pLyRm(97dv(U?7FAsW29yiZGu@8zpy zW2vWHYY`JP>|w?lLb5<@{`rLFgDH+dl?@CAeQy^xHsswdbO_+B%SAg&i9GXSMJo2&t?T$^xd?iCE>t6JPYvHvF2f zv22^$v19akFE~8rO`(3)fcS70LEsrgH7)OAY9RhrdlZ3imb4sMGceN zmVpFt<`C&3X=ha3qIr(}`*WV+@NjSQn3J~q$0jO1_H@WB*+U*EC4zy}RDj6J!UJ^L z`!)3C&JeY0Qg882!s_m*ac|k8`rwlJkpq_`l?X)C?@D~CknE8V}uItVyCFnB# zj}0l7A<4ek>@tTnrCK_8Gi$}xJ#da%CU_?2nFtaw63rY2drf>nr)_E{)5mwGTE3~} zW^B$t#~BVLH|JmJ%KizJLJx5Ex8cH@1)s77a^=yoH_`^Eb|XsNFY#P3?xE(g2gh2T z+i@Lmb(^n<=)1enW2Nl*t5Y`eep2?mC;#z2$2M>>_=j<#89O-XBELB0R1w$Je|`J4 zFpvUy^*H(qo0S*b?d}n<91osM@K2XB)h1OhBuWRdKxtyA6l=e1iDCQnU>z+pQC~dK zcVIi!$A!qM_c|z4xD#$`fHT6D59#bf>RjXWLj?_7>C;$C=)VD0y3~`xqe%kHkd1J=e3AB~Zfi+0 zq?STWU>fSP?LW@`43kDf+B$Mq(8A}mWKwHL+jl8{N$UIieIYW)-%yl>QE&PPxPIsAFa|5?xw^aSr5ycSHX*l<)_$r4qb%ooI~(l5|_YUziy z-uW3AVaz9kVL#IAM8q7N_HcPeyhSU+S~XU{cm~$+K=K8sMjl42M=yC{>7{LDqve&t z7)4!HE$meAMbfqN7ziL#>^ioUC~ns}QG3hIkQOz3*4>0T`MH@ga}V@`hA8oGvdOGV z`Z4fZWKT>FNg8xhwlVavVvcX=N=BU(%`s6=cwmq0Q%!k?F<< z)k>z-Y|Vk0NOWKrPcY!Wc-w!C&8X%#W#5~p>=@BLOS@hf-E0G~ViXE@U7d5@41D7H z>>-!^k>yih>}-z>exSgUQ-wFMQ!n&)3*eT&gx-geb?+YCPWy;~mP)f`q+WIQ_12g= z(m#Gf@c)SWM7Nm{^POLhfZe)R*d`rn`L55y0`_o8Pyv=%XL#%IaaO}mZ%U_K95w7m z&e~1J>Ch9B)QFlYR-eKDhI(}v`=6U17BHR%+~jh%g1i4<*Je}n{Vi05XD8z9$ahUQ z^eU>#`qw|W(DmV#$&fe$v9sUkbjRJG;52Ib(^&1%u@g$ZrJv2XCq;CwC0pZ<&}&}d zeU{w^zX)5c`N@i=sO@4=BpB@Jq>J1~)t5y1z}Qdm*!jNEW3Kb=S7&Qj2|eRSKEhMH zw~=CNti#p4uOS>$W+K)E0;L)%7W=~i@j+bPC$k0Z0v}lxL~k-#&mIR>P7s0`G^xqy zBS5c!G;Jg!R=-I*z6HIO#37}G&^|PGcHn<1d-PW!Wf$qM$g@dh$|hLJk#=p!EvYGw z`JH5BHWEV2b5$zQQn*BqHAb!C?Raq923A?pIlwTd$`p|-B)Ee;z&hN0z0hz^ z^T_3m;&8-QN(|EWFULx&0E0RPdAXn`F_C~ffFEftG!=u{(n(C##x^&)|diAuneNt2NV+pPv7b+u*l_LKy=Ko22HtbUvOZEe@E>l7lfj zJ+3x96;%eOfld!mYx70W5{BwyY6-Ld7OMHLPKC`tzV$nBtf@ zHRp8c%AlH{?9@t)*}xON8c7vfL&=!?mWByPM^;n0kXGtt`X7im@J9mAAUk;{TL*;+ zv`6z#4vPdq{T?G;C}1`?rv{R*ha0nk``*nl-f$Je{KXtVPgXRuu>;e`3AB1C?8o&K z`~b0@obV9%br3l(i<{QO&qU0i?M5Vk-n?9H&2I2=GTnALAqZ^zbk2i~g8Hm$?27BKFTCjU9F zQP{`Tkn;mA!ugqN^!|%`RgX2*A~CK=`Py2Hx*iQi<87H}>vXTp zaQQVnE0cp{#`}H?-57f1Q(IxG6aH%uW$8cN4(uN+m3QAcv12A4ED@s)5D=mE-%3Sx zl$WhVUv1RIsHMbKyayzVpK8qlC|gig;VzEon#crX%&?^2@qb4Iz^)}BjFZW8TXjBd2) zLGOmakZa9ku3?rH?vTPep<3W+V%w2P%Q2Pc*Gjb$$ly~#Ln(FnFgW1Fb~}BJAy$lM zvAWw(pEGb3|TJ98n0Ei8Gng~VE%j{G($IG%iZWQN# zOuI3Jh)o&b9HE+NxX|g5MA_1RpE`;e;71nX^EdUrfBQJdEMzuDoo)%HTTK!*h5AuL zHI=H3iQ6fqm?a&qN8)0E!qRq0EnuE2U{OhP?Vr}LeBBH~hf}S>}=O;eTaCt8v zsB@P~LhgBi-a`v8U`?S9X2UyVB_(|F-L%jffP*^TX}!T;@Ui>cV92@smaJB&PKi$K zG4RMAxQDgBw&0E66Ues3L=&aq{UTiAes0lA*}lb@Q3PA!66aA5R4oTH^YEB~vJcuY z&^k4qDU2VQ0$E1DumNyOm8ec!CZ)OB8&i@#8%$!1t~Vwn??fgxa)t3~4D46K!#@~v zgr!2lKvo3;^4cvZ7t?pzVTN(cu<8vnWb!%fXE!L0nqb%0QJMHR(!iH`FV=1X(Gf#t zaFxq1q6t%lts(&O6h-Sq*Ln#DTG?@$HeUi7g8~s4R76WS_?2mV*+P(Lr4x1?E{~W| zh;GZR+&C{&%3xF=9kF)GtrHlEgns*qp^6fRFE)M{`_lR50OgX9j@#HHQ@WS$mQy&e ztqaP~uGhZP(ZBFliSIsu_W>mn0yW>z|MjY`fww}Mz3$+K#0Ih^)WbyF&NdAfQuQm?G02P8#R#?=1dK862vk5nKXKp=(ZJl8I%8wRA#}$Lb zWK=Vy)(|0R)C15g;q@>mIsO_IRQrlrV^vRb0>m<&#OvM~;+p(^HnR+7;uBq1RsNP!eoHUcZ`Xvi_XN@$+)R5R^ zjjsI(ac#7$k;DHg_DIm4;EyokezHgfyHGYG>q>2=5uF_v%X5%?xA>&zCIL$y@*ly{ ziYgQktim90a{Ozd-z_$*mU61Z{}qFoA>u5MfSuTv<9GYl$^*Vm}?eAS7Ec+sMKHahIa2$1+ zyP$~?xpGcrfXdCheCX1B!p-=!3-p8gC?9uv1MJ1H@#Wr-x%Ri;>}wjPkr@`X3UE@l2wUK$IolUn9U`VPD*SP z7C#OcYu?JAP7IMZpTeOJj<4&TDM!-?897C1F|(^o6Lr!0 zDA%>-`jGWNq}seAb8Dp0@j=j0o?cMAl1w!iY{hBzqk&pl%H_)Law;@cEw z-=lXDHfXrNS_KEjnrP@)fspduvne>Rwp^{tW}pKEvqlhvg5O-8Y#>;5Ie9p!gc zSWEuuHZ4^KYU7*Ut5@0gFbY|u-ubTbx~iRk0sb6h;5k4rM9GDN1Xcu2iUdLxcQ*ek zQ==DG$z>wSc;O52qIVUK5(c-SVDgMvW#^dBLurQ+b>E>|fbs3iM|5K9^WS(Ij>LiK_&$N-kEK2XA_T64Cf~P}i14 z!~q)%2^Bdx zf}TM^k=TW^6zfy)X5QRAzn4>kRnQde9#w`u-;UMW7s!L-OolnYl@MRu`Jenhrea>Z zut|zp33F(s4=ld6SRod%Vvb1U)HIcm5q#;-W)f~C3ax{0IhXEh!2X(Ch;})?xYU681eE;L!q%aN0%^2EDu}1R{oU8SGrZvdOg%Gs-5G#qm z0j(exfF|;(s^hHGHacoEfA{TuhENQk#)C#tyw%4S)9Av{&7jzCtlGlUL4;n}6N`pL z$HwunyB93gF=7G4f%C?;De6nFoN{;Eh*Y|+fq$cH3k{xy-AK&`b?_!Qh*=w+&t#xp z`e(kp|1h1CgGPvj3Hd_Abite}I_@IAPUheBOc4Sq|M0mt4kebssLtdcA1nGWV)jZr zicNwO$$8H^g&!3NOg#cYIT+4=0_$KM3?6RQhwyJAhHQ+o2EVZ$@g!;s0?@AxV8vt< zOHTji<>NahncEc{j;n89jfu9kIfgm__>Uu|BEj7pc+p&H0j^Tdo+5u!yjZ(d_e1)1 ztPSM?`C1zUVnr!xHN^5^TZq;=YBQC*?FeKF*=-ow)z6wSl;ia_ZKo_EZ!c!dv};{57-m|mjTKfE6BA?7FVB1Zt6lI;Z#oLGF(r^dVY)1LJLh7XaiJR#NMaa~0vs_lJR5Xp#lRL{w< z)JPA0NAZ7YIGt?zwq+ls-PhRYg4NAR_mHQx$X%zzALpr8v7t{rpRf*DJn{Y@jd4bt zfwss{2QC|=OVdVuYf*V(WpzA%GKGS177$sCWT3QFDr3i9BkHW;upIWZ!h%alnc2dbRnsIHm` zb0^4}QJ*~x{Rg|-H(rX#UFQ3)+ml=6d*=GB;Kg`mZe@*y`rG=sqEin?m^1iWvC*Dh zV5}aBY+#Id>{EsXgX0fY4BWbgRU+9!=K2EHj!<1QWUOpF7h#RN4M4N}xz8w$Fba z=Lgj@t2M`WFYQ1=Hl=AnqwSaSD!^BOLuKGFrjx#bsS(zZL>3l03nMsiSs!udfycZR zvqAasf@itqH3fZil;wMkh`@!&INJM1!SHflBUZVadO#ExGc-syT4*Q$Av$>pQB@zS zm_4rH5tX@-CT{4GwQ*>V0TmSdvNO#f-HxauK|YM^f?#%b$vSjLRy zc;uEe(5|A!6-)cOIkd89;hIFBPk>AMy=YCLQe*`)2RR^KLRO z@NA;%{pi7?x|k5g3nP5&8lri}x2Oab%h|a%9WcQ-Z);j=a7xOl`#z6K;b}o%uD&gZ zPPnC(i^P2}Z@o)0N(+tvUm+7;)a2~NM^DFpyk%5OfFD3d7y7_*s_d+I8ENBL0vPT6 zgQWzCyElOpN-$7D0DKl4d^(QruBZ_#G$Ty$HsU4!rfa)LtTcWh6F z_;%9r1sqYD)B)Xu!E3;_}>m)#H7L;r{>?sur8s_p|a4dOP(=uotQ`Yz zzVxjpzHy)V>8>XO1^S?>?|~clGSwVhq@M{PVbjLjeCps{6YZ7dAU`=f#$XbR2MzZs z%xQ?L0aIE7-pGesJU9!Js)i`~u|aW&;`-QSpwVC5EyHB0^I)V?&Xs%?`kjT7d*k14 zEFcN7Mn}MVUS1V6$!OGpNwqv{GH-f3gg_$%6pPm45RqY6W8RFz$=-p_XKCDOG6xFP zR8I~YO~}jJlgkTn8ZT%gDE^b>az-*gsB%;EGr{_1mJlP5p95STfk)&?r^g4Nrsof5 z4-N!NT6fA19sfm`pafD|kcz4zRyUJE*a61-qgt)~v|OkQ*dkayt0`@-qc?L7r$P@G`wF6Kx<@Aq$J{{@9q}$AUF%Uj*SYQ40bpHeFww};42Q)K$mXKYJd_I*7aE3Ufj~f4siW`Hi%`X zvLD=+S6iIa^yLx;ZZP0VKy@d>#b?%t#cSHpCgZ!>D_j_GtU3WnE`#7=zldOnC4;I> za}d$Km(Uu)=q4qO7hk&!*?@h2zmBvibUb6ciqT`%HgXW{i1IgV^Kn?R9~hhW1zf;Z zBVY5#?|i}1q+tL*HngyQ@qIhc^_jQYlpzwi z=M-R_eLxE?y~~OU2de9ILMpU#zpRw_lCEd;xQ++_9+&t&WX+L}#35V}y3Kgz7om*? zosrf0MNwd)?%)8S3w$`4L~w~zM0y49?9tqhIRHVVM0Xze z&01It=qn%*#yuuOZpRY7dPp2~{63=%ZmWBKO0ry_V`Y8DsktR3z46ZnJD6 zn#$HRBNfGr)c<^+-~64O!SmHf@e~7Mg3ah&?2i*wl|aviAX0hHa=R6*i7b{WMr!Gv zrcSju1WP(S3i@t-<7f_Nj=FWPw_zif|FctHOC*TB3Brzuv+jh7sYj_F#gP5vKC6`j zgD-)ZRB#S>?%==hR#JPxuC^pGa<0In2t;euz2TCI4l4RXd7~)~-68E9?Zw$-OWP{d z5nMZ|ib<9N8hv_C))5r@waC8zE*Jp-lG?y_4FVWb2NZ(DH@PZW*M-&YaeBAG)btuU zyAMTSdcR;+$TTRogMjPe8ih8%db(Yg@}HiI{TRWutfb=yUEIbSq#{KwvMf5Og&d@u zJcsh)yUb-#^}Am80~5*ssUerpcBI0@m~^P4(y(KNM)b`U(6JNg^~TMXUZ=gp2asTQ z=%=l!GfOBi(Dsq~=BSba5X%UFsn;-#8A5Q?8@GTGb9B%bmb03JkFOTF#$kiVGsyjI z!vanR21dxY>oq|ouH8%Sx{g;uySW1C#7!{dZ&JIg)I_uD4AThG zq4BSPsbxOWKRkX5A577PZ5w6@tOkBD%Tro-jmY#@zP_i*{NaIOHX#MqVRB*Y5!~IU z8s6#H|M{1@s^!h^QSf#f<{a}bH5^ee_{xA$0zRng$mO)nvn%x#k*$E6-BDHtgb@(s zw@h&kY_NGl1|CxL2E(jG!1C@#s@je13oxFtiGDW_VKZ#rqePenKhcZA1_>?SNW&!| zxEjv{FRd9cmsGLi=?k>ZL|})PVlJt$YKrXK-FR@;i*A2W{HlZw0ZWj5+Wl) z4da9ZSntV8??6dIFHM<5_nP^D&qur|v6;TC--sM2#4PN17Rt=NZO1pK{Vqe|-_CuP zESW(u=;KIB__u*L!?qjN{A~C(7v7Yp{#01sv@N>6Oa#(tle`=ut=Q-+slptq`{!s} zG2-^T7EL08VgRPUK@UDN0#tCxARC1QliTrONA(5atM$RRO*0sEb0!Q!eu8Y|S=Fu- zS0C)dMRHXYHSdUvc7NAU(2&R?4PzM{B?7W3F1J|a??`SAfv}Nww-adb-zEScCzH{x z;H1h?k4y6^md0S_4a>L&mkUiyQY2z?NkUKrH}*?$or!jOhUPu!xB#!sWi}}x7|K%s zgJQ_)!`qpzaTN&meLx%<0~)fr*1ktnoh+3W`1tKIanTjWPf9>8hUmp4tw~W)F+o*o znr%omh=|VDryIx1?7jVlzsyM-SUhl^SpwyKMl#ueRu+OcZIPXEOjPm$<>uSP4Nt1q zbjt`%u^qjb+q+2NkP4@z%>+3xX3Ocm+`ZIefC9PMixUYU0jt^PM_hCYNwx6}xf$}E z6RGK2?*NWWmILyy+5m_T^W!?COa&5a=b!Bnb+%w{(bFo1VUZ35HbFI+8r3AzPY8o8 zw!{E?&}#G0)?mM3W)hC&bj=_r9S+GpISAiZ*zIL%J-UtgBe0m3uQr1^MYbyQ&Yuuvwm?kCahArW9*j9XRjn=!JDE| z7E&YdxeLxFqB0__;rk@9=RX1r1eb;}OWC~M)BBJB&o+0dBN&e6tLAS>U~ZyUM{GlF zCOSo*T9$ILio1eN?OikO@kG;^cp4GrODJ46rSDDe#`HsjLI!o1!&G9XkOWW}$cd$uACtj>)hRWPcp+?`HAGVejuy`yIlR)B zQ@lcljK-wdIJ_%}d+S83Pb`-fEOe(WWBUNk1xAHy%?s@eHxzVdm-U8@m-u}Y<)nri%bx-+@YAlE=#Vrx&f%CFpgHY~eQ*hX@ zBFIi;#drN)QW2{V4r>i{7$+etu_rJ=UO3Fd`*Xx&j1^nw+$Z{9FNlK~X>>urWQmH{ z7S}B-{oiJck9g;3)_dDkqo*t}A*IjP4SC_NQ{yQN_r>Kp!3@#4b~X(b<-e_KEF(p% zW?9TWy)$)me^JhPXvqO%ZSPnN36$ZF&}0 zw|mv|P1c4#E1&61v&C-1gNl^jF|aAp5mN?l1*XXg_1tn}zst5f4LE(WM-6Z-9@9eI}DkYD<;5cZY;P0gk*>yRVHaO!k z&0!1-y&y*I%2J-uLb@*V7j|vPeQ>A5QfT%Zg%6b;hTU{TMZnI(u7G7U!E4ie*VQ{Y~JXg zEzUg^8z-?@T5J81nEtd@!IQ3?x2z!~67rmRc0YanG~&nU@{iu%&X3%_e=`?PCLVM% zZH!Yveb)`s0)!rMNBrWSZ2b3FPj>Z?6vSU2F=q*X2!6-yYAFB?-yBLcyB?3MIQ??W z)^mN9-F}v?>Zko$ExjVEFN8`gYW09zFd%_t4RQ2S4}RFYgvI_1d+8G zSGmyki3=SE1==aVb_QYY-ujBPk^UUrj6g}zHB_CpZjrl;2&~_=ITGLDLNkmLEs4eg z$!uylm>VM_l?8bTY-Nna&uVM6)`~Vv29Wje*rxsJb^u=h z{0N#>Dxp8rDddSiNsB4#nY*WCG^Emhw43ye=G^RSN7}Fe(|U45?N8xm)Uao73E60u zY!Eo0P|3c;#F5_X^||nuwgNcer~*Y-?ZewF@fy6IATom|)_t(ek7yM}*Yg9H>NZGY zP4BVqMn%=y_2<6j<^h-VRtMb4Ry0%qM4a-*Q5Ge5IIOoKPzfNU$8Oo9L&Y0r%m z`H+m0@72xwB~rJQ4Tt~$UxhO4#0zz!!Vd~NWI{kdvNfjG5#ZZIEI}!ct$4N+ihzVl z>M;VS^KLS_4j68K4o4L!vSpsJ%nox2{#>v=BWtzxEoobgMWrLhU<*A{8;uv6QVLL1 zRQcSv=GsAo<>Oc!N&up2w{q9xgW-?qYWV3Pb0u=|vSF@QpdL zynmbVzGWpe&t2G%MU6uB7mPjTBcHuwg@Cc3ZN&3xWJc(fluKcl(hSKxM>nP~Ia*{X zJuAfO@6xkRX;?ez5|3Q9jxlM*ljQ)G^Oc!{F8U-+oRa)Ks%4v}zk`xX06VveVis5u z7T!TXptj1FY#bpqCzk&GN7#X8{h z2wnAal-~eje|KdkRDF=L<@>;7VPeC4#q=*&z$A$P#%q-MkvG2YvMx;-0nBlDSP}2$ zlsJoimv!5ubTxJ3pmzjT-|k0sMED6x#UEi<2IIMZvWi&jaum9kXm1|}exH4~zQ6Co zGpAn;?l>!E%M^gfse7cO2*1S5_jMaO+LWL|a6i+JI5+!*N=2mTZtSZsX;D3o|Gb%P zBQz;{<+pnee#h>Sp-8ykZXvQ+?Ai9fXcB9GVcG^W5?r|D zacsy+QaGW1ctwN*{2OomctlXxP__xSskQNUiWrfg-xJSvvTa9;rQbQE z(5-;6(jaWG*B>~}KaRzoKY@=GOK}lJiuT)@9S^>3E*qJ;RVp+yv4+Ly zo&?vG?|!+NB};K%UG@!4zU)fo+`{%fN35LEoQYtJ9aE}1K$?<)%gA}5DLHhf=My+y z^vIxmwBodwYP5G|ol4Yw?Nk<$a|@9Xas}4+2z&_Xt0%nRZ0F}F){LI5)sdpc|H4g| zVj-8)PBeVYp-wdKmR;}NfFtS1T-pVfV2TFjO{~S(+Yb#BEwV6MCz?B+Mt3{w9+FA9 zI*srNQ3^1(ND*HEizFf4^9E`#Ng@M){#hwYjt9kO){B_rzCX>6J7uYx<)*^&`%nzn z%;f|l;D;i#X0Fso%Dv%G?iggEQ9{!U^IAi@iY9Rq4fhN{e$#ifdo zk;Fk68`jne5 zf%=kYBVz*q#*T>)*J^zjLRa{f!8I`1#{@FZ}vGVtrflE&xKt61Fk;EPI= zZXt_#+c&aYsBEm>4(-0YViA1gF3<%SASa2jn9yL(%PkQsqb14S84x7D^>O>Yxs6c8NnD4Eo}uI0ayJwJjo;K7y`ye%Bcyv}S$U%8uSk=-%B>h(=oMtMs z3RWSIn9Ei=L(amO!w+w_V3*~y_D$E5_pkVyTO9PrkZw|y&a~P7_^-M+*X7%?y5{XC z)P!N_=Z!A{Ab&4j7{gL?5Gt)O`}M$om0u0ttQrBv57AUNNSUSOyX3_ZbqA*%?RD;uAOX}S88JNDSf?x49(`x~k4;HEV ziR5AY23e(DH_u(i44U#gMbLrZXOhhndmiaatnq|;Vgj@avBeZ2qc$Z9RzZIKJB*6vn`olkwW^|R5e>AFjKuk)7m8#m1Q;LS zWnJj4PHhl!UK$5-NII=%A}eHPy;wl2qF!0(Km-)%mCD(MDsFo^Y7st^C;1htt%z^^ z+39KF`mCc!wiG0Hg?%f1j_4GxEkEX&(lXNd89J)-qEX(L>xw(BJ{Esq`UHOAV*q}p zJl$Wio>DtW1?yYD<~i@DpP{9SrANKIO(j3ZbPyf(y{Y`|ojTis_>%^-Y6iXu`+3&EMLkD%;RXdbeZ z>!n$n@KoRP2kFGpjaPl?^+l5FZM5#+{QZgbZTW~TZd>2@OZDtFwayW@AOGI1>G8Pn z1oXPT+(azAn97&fw~*aCG0UCDI9H(lGi$^22nqXw`Xy4zb<{2=&xg=_w7T@l6NUZ8 zEywGSeod44;L3ThYd;3QY(ivLjegIzmnNUD2W;{a)PLo<7zJs2m#UY!yr4}n;j}mx zL;L?~pB!#_I+j3JY1&=8P+BlpkQ>+`kxcC7_bKDdJ1X|s5sSPEX^;fH1a^~1b>Nw9 zXx}nw{0l1~7r;%_SU>pdYz_3q^P3VX7X0W+@+l1SkREmx4kF?{0r3>_Oc@a2_8|y% zn9~_^ROO!ffPh-3YN-BzzzMp8V4q3klRD2Nz30V^F#nB_vfMZ~j_co)U%hu~8Jfz5u!5~kJ4Gyf`O{+;o_le3 ze_Ev>fXzzDIMuB@=#t|Rr&n2Lrw{CjR7gQD($X%oczB%b1V;Bv_Oq5ORlV<&vgP^xs>A?-vZRtDA9Tn(x!w`If#ih~6W&0Ytb zpvS?_8)C=t22{t)o1ez}H=)b&Cb`ncC&{Y)ywNuQ_db4}feCRaEMNpfRqc>|a-5#DF>^3?^X`o>5<^GC2NH)gP=FGu-xRxd)Yc4>ydE^c%V;_dSN zv3ebVsoNAsN^I^doFpEIRYwa2(;K)+h)DlS|6I-wrt)8{J5PzVp3$L%HD%`lk{Z){ z`(QZ6tSvZLeH~lX6(;u2p*jRWr3a z4@|0J0F2Q0mZEQWXRU-@HDZ5X00upwKcdRU%+oLa;rrG@u4-@(vr6xqaZnUg+8K`v z0l{ZCk1)J#VI6<~KpX*}VX`OBi7&{{snJC1xbrv|Tb*m{;SB?s0}J)Z?j`{23V2B1 z(Lm|ut)TF3nofD^%IPP+a)^B&*$)Mh3yUUu&aofwHy6&a%FpIx z>)-%U)1B13b8_?~)aoMttL|EGNmki|^XkUg(c;=-{SVis?KA_1W#-!At{Dq(9Z1x8 zxF_k)cF3aYXRU( zIDEk281uSQJ<>#)Ps~mVt*%?)!IQ`$5_np(Vo2F+R5;nS=NQX{>!j1N3UveRG^cz6 zwhWdxu!4{?6z^t+?PM2yVW&3m0+o~EmvE#dn@uwj`E1b;OJhY*BkA`=^j<%f%~aYk zp}mbHsT@v%`bU7^{yq~#XA_*~I?_Nfyl8k&T8|LV$#rh+Xq^#dJuDvIUJ>vrlIFZA{vdbDG+I#~WX5{(WDk(9|8~RVD_WFi&$vbqk&O z@E&;S&#!j>^C80;(OZb@az?muDs5^kS!@QUVfCfo2HC@gMKo*f=@4QAnfz|B)=Vvd zOi1_848U~ao@+ld_zxE&mwAj|R0rIftCfU}u(L%Oz#5hr;PEcg5p5R^tDDO#EqVHF z9=?#`MI&>2maGKDR_ZLFs0lL0biIxv-N>~Sg6;j3=5@%J{-niF`H;x!;w7nhG_nf7&1`BYq*g3~Q4PK{^L2XhC3SCS$o3F%-P^2iM+Bm1O1b(;Fh9JH}Z3uQUqBvcv(v>pdXDs;?s zY;R*5UUjvxMUkCXx%X>#x>zr(JxKG365mH}l6tcLq*oI(o*n3Bm51eQK%BoMr`J@t~s9?l_fcUomkNEwjFuR1i7;3b&4v4R{(|~vO2lkFp-4N-VhPJAKz9?Et zDxJ69OH;=O@DTB~7cSDn*hE;^nMkTt(Gr!V64GY40_f&h2^Wgfil?&H>nGXv_?t77 z3>N&%hE$IH-VeR&x+Q(~8>oyp6Y}&MYqQ|~U_w)v3+Ey3W>t-0yVF4oi`INH6wB-? z6j^C&J@z_^`J3Y(&8^nO2^!Pd2}TQOSamg35HHoM$xig~VpQMG~ruO&G9)+Hw(g>Tv*n3Y1% zDzBVyBK@4NZJyIF;xhQ>M@WnKYVXzPA%380oLLbujHFZ(n;4UG3h^)!!&$gk^Wb5BfXa#N{vP-u7-I?4UKhlHMP^xXHhsG1axC_gI!q zVgme+CH_MR3o0q$H4Ku!9q5Palemxa6)Ix9-%GQos+1hWpjZ&080;oNo%tqJ1d~D& zy9b%vc#3+K=?ys+6E;CEl7t>k2GSDEsU=(_eXaS())-&PFgC_I%L!LiHS3{WJW0ag zdTX;4ejyL753Li?0};7x>}fe5a?V z95qDJRGI+#U^!eKJXF#iop0uB_+S%B)g)pASvUnR*zPY$Md7kBZQj1Msi_v7uLgIj zer3zaBPXVdwfl4x=eF5rOd$D{cq=5yeu9h+;ly|cFnD0HZ@SFP!l{Y^mwK39F(I3f z$?{nR7k+j&=n5M4K7a z&fxr`6(=b=l8l}rh6T1Vb~GB+tW}K~*UoC`{0r|Rn(u-d4k3pwSqZi1JhtHxh`Hq0 zF*dc6-G;L@QAVo59?;Z9YxenZCXvAtRiLY?hC~2{De_LNCmURQU_cH&c?)WrSh9cE zFY_1=?(L|-=7ZsoeJ*hgJEb1-13%)BU!&p{VL#P3fcH2xFA_kLU5l?UTgT-V0xBrN z;%$b#8Ri$`zyj9-`4x}W4L7~qzn3olr);+Mk#u3O>Jiwofh3%fvK2`NJB54KGf3;H ze}$GN`kBq=z#rXUFq=9((W&s9^7^%`bY(>%KK^x0~E7w8EfOJ?W zVf+yjio*227Fs09HMDC2=j8z001eq3c}qnrBfYUP&DvLwK;+bXA(1CQ-$gg9*Ko+O z#e!R?rs)_dqDq_AnO|va#@3&0t_X1IOH&7D`QSSt!G*%j2F*g#5Cdx-6_q9fzS6O( zCH`0o^480{G;0At1bD#)*E`h^DPOXm7tgz^u3|(tx-*$D`17ZGeN}&re8!M`cjS0s zfQ7*rM!w+_pt3kNVkq5AlSp5#68LimO+{j1k1_6t`+={&E8rb7eI`cx~y1%S#kkU|<7{hD9A?JCE$qT^x<_@<2Sm1Y_1T1CVJ|J9z6=aGH?j z$rc*XrD%YPu9arLI|paQf8*JRhvWk?w1&!d$!MkpF!$j_M0kFOd;vR}rC%%hv~vv60{gL2O(4T^##blgf|6`R5*-_Y zjFK&!vpu4>=40t#&&Xx5RwS$|^#FDriq;`MKr>20K*G(1o28!?Zdu zUnLC%i8fshxbnBz#*e6sIw`Z+sa7S4H;m!L0!4jP3jVbFVQaO)X*unoZ2e{?E7{b4 zz;Rfyxc{9sxcZM=7BsP_DwW`KwWD#jUxZfCBlXo{U6o$3Nra==A5aq_I}=Rt3r^3! z4mpX2gTE&djLI=Ivm#y3AL08Fbd~V?p;GXt8NJhx?|6pSifPfKVik_-jK^*mffDkIT2k6hUhVJSld|^v``-+`)BWr;Kv)e6#zXa^* zx)3pA-+crKxhyQFxhY**ll~axx5&6%YTgkk+9}-$li~^AkD#>)Yo5Y{n0XvVJjW|#ohecK_i4x@kW2C1?+g)>}b9`*~zcUV?cYQTL zu4_h+27h61bQ7Mqiq?M9?Pm0no>k9LQPVhxs8!i6?&`c?TU;QAD%I4xfpQ1Eo^Uuc ztzWkXI0~Wx<`=ceQ%T*Z<8jh7j~Afa39!|7>J(*U-mJQD2XjsJOv$+c%nq^MkW9{{ z#nMATF6WAgM8*w)ndh^WmnwY0fOAr!Z@8*6 zkl_d6i`zXH&cGl+S%>^e4Oo`QI{Cmzd|gofF_GXl{v!@9AvlY8c#4Vm7Hm3@gSv8L zD>Q)>E`k0W@hUqOe13n)%hdh}M4R|(TuF=(+gKX{C!)RQ9>Y!gwQH+efFq+~VDm;N zH#S`#rOAA_tWwqP2hRdnVR2!upZC%^W=@jhLlulwm0lMI4ZUl)LuBwbWi#uV`c#+;HKIOM2GNt z9DNtQ)VG0gM}}D~h4ThZ!+o7qJ+nFlJ-cbgG9%)LzjEsLs##6#8B7h$ z26U58n}i#j@`xaY{EPRKN%5}HL9(gnnq<*8{3K|dLU6s2>#ShMZwwG)qvm~>cOcK! zuYvI2hG-k;;}S3*8CXSKmSbwOEcs3$o2D=2_66@pqfvs(`>rCH)j}N41}%v{2{jrp zN}f+t(T3YT?Gtg5{SH19nVHo2_c z;hFdAaaz$?`sG#Y%vxB7UOharbSe%UV5P$jMvA^b3Kg>;-fW63G{SHm*Kr0a{q=O- zgFMWg&dW=!Am~AY6te!+nQ@RQc42ImMCPx88eq4it;dGOV=8-fcH#;M@_S`{fp9gX zEK|^VMBsH@LA(QZyx`^{#-``p5g5*SUr3hEJu~f`q1R=76hE;KDC!JHzj5`xj_$W( z^L}Ya{VT?c02a}$0YHEd!e-H6rxgx+gl<#35@JXxmFdkO9t)$nuZng6v+gXJEa(jSwyD8aoH?+eZ z4a#3t#?R_-IRckj9w9VMf2X+It1RdUk38YPR~r&HVo1YZusk+UOfG)?2ac5c)SWpz zDBmR`+YE~g>sk+KoGEyFZ~}fNL2|?5=sCZm;Fv}N)gSk|7{}Kwbh@NYWVa!lDSq>l z7+MM4q3;l$9~qB8z}ltfU|oRr9;_&SQ8I~6gkY0@4jqz19=<#w>taz9r zWZklI>xfs>j&x8FWi9_9w-!({q8z4@>t$Oe%1{9 z{aXwpW5ZZlc%1psB(yk#(($&Vp-PmBqxlCk2{=th3ql~`(g{qJk?YM z7eM?17${1_r_{VG&!?9QeBvf_)tN?z>z<~wfC4#q*+MF@Y$kR7@2+c3HBVj zc)!cDOUXr7+kZX%-SaziW_$rhdIqQ*#BLD|6e(v?PWuU=;y+|68fQZ6U_eyu!{u&0 z_z2cR5bnF3@IMomlam0kZWL&`x})8(OW6hd*L59EJ`wG0g!e$f{)S176M_}>Z$Xzd z{+3crf^E6~ER9GQ(0=D-s5;(S0NLXXk^`=H6$apU6Nli_LC511MhH6JR2!ltvDuy(t&=P(mibtOc=3OO4?Eryj$%OwBTT0fJV49|H3go?0CP1=TDW_*Ka|I#kt zT=bDya+6EJCgN9A1x22hj{i=_<4_7=8; z0a+5y>lV`^6})Anfe#}m&pu`aV|j@F1&_#rv82KhN>w6=63*!Ex!xu60){;r;Rh+O z6wKCyG$nFbXFISl74FkXnbt?6ry``h>LM(S;l7NP>jM{R^3S zZVIw_0iLBbJAsIPw3d|0eaJ=-<&l`B0d;r?LRS!`baVFpS|M?w*>y90)$!f~lFM{xP5q?F2vWRuP?-hNT|7Np^9^M+36@1bWB2S&XzHvq2Ty5!LG}SD#%5puQZigS!&VYBzEQ zDjozLv=dRO^YdizCC?F&Hq0{?#!m@j(?Mp`BF6X-V0!VpMzH=Hw-{)Pk1hP7tapVU zQ6BzyOiQYVnfWirkQPI+zuww~Mx5Gh>DCPSz2)1=KCwBb71SX)0&VA~L#<`<;N5;2 z2*yargjg%yDtJgSgOJgsW3gsQ_>Rr^GL)57u(Sm?=fQ((!^4U_1cO7 ztr~`eylrl%j;PCM|BPQW<)qU>e@pJ0vk>dEy`JO8liUK$!{W`_CmQ3`x|PGJCEErM-O&?=!X=P-S>#JUfRUuAMZn{xo-^Rla-a%~+U7o*g$Yluqp=8u`ZpDED#KopsZ`vUO3 z7(Cm>1W`@btQ85Nuq*oDV1^;hh^Zn;1g7~A1_&^uw$NaIS!kPGD^I(w*#fCFh`&KO z%ujPEFh>x3wLh*50DBw$k=3k2IhDn<%#| zZIMy~IpNAqX1@fef?v&XC~j;BaL<`Dh*nxzTbP?|EjxFK5xdDm(YU;G0jW8axk&t( zy7m@0EOn*89F79+zECRNG)R40ynyu zz^JMNLTk;knonW?`|_HD{`WP0!|NR*TD)N3+rpFjf(>6rSqhM8VIB!-JO#Cg(m$sD z3R2+?Cq~n^EL3KA+uUVO!w#AqDZ#PhaaB)*a)qGi&L4*2^&}0Wsp2HAtP<_`51gnn z97sj0yO?VxQ%h3&fRf_2KLcEdt=-D(Do&)Y46f?9x%TM-3!n_H2xG5XgC+uq&9CI6 zq6136eip099*oN}45l;)BwnnOxk#`%Vr7!b-K%-$cY|?VPz<9wSAOV z`)X5mew32WtQp4r{k+2l#P!x}q{Jv)Mr?37d9=C!s9oCj6T->xYwbMSR5zwQF7$Ps%h;XIDLAAi-}A3bY353gP!zvJn(E zTsYf7>8~7d!pZ6y8W^%2)I7T4Ua4q}0>}>))5$FUH$-7!awA8Ljq=FqWv*zXlo|EF z#ER@IXISSJIl9BDN4b(CT!mudq~zP%2l1ax|8F$^r`qkS*ObswI-7(%JL3}LR{rF{b-V82h{e-xmY?7n+ta zL0K4Hbyl9`j+VG{;&q(IQHux%$T|T#kMIdmA%pblA+Zg=>zox9EZ|<;&#yqbKm!;d zHL@BKp88meM?T-R$yda)4|G4EQVUX2X6=rAFvG5HHxLlzWz&-+^|bqc`-|oQ+ea*< zLq{51fY*B+o^AUTF9M!u;N)G~W#vjVO~bPg+ffFr)|c7y6G(T6PU45N$yp_ota|cT zZR?cz_Rn2%7DRL?uk$H>OUpyxCQv-e@UxKR-c!XKIgG)g_8Jva9FXbJZve#G<`M7y z7!S2ig~CnD)mWV^5$pD(=Ip#t2D9`H-;;<$(DTzw%K}?%Nj0kq_hLJb@J+sTIK!hh z_JBAT{!|AX_-aWqJW!E`!$%-(EV$0P!M`ocw7% zikDdp;heX63ku=8#m_1oq*LumOjTC&$QboE9l~&d7n%bSi zktu2$I_Qzve6T1AJ>Ydco38`-MTd1}g0L-I2%($^r3r>sXHsYlv#^gUwzo>Msb;Pi#*7JPATQIZp7##yZs zYhXeP25VfH@GvGQrmK5n2)aH+y|hA+UDAa{=H{f4x7rOyj`UanzaAU$+p!0%0y!$o z+>UFgRCy3|)X0EXOEz%Jn*MwnoVnkuD+aa_xaL;5x)OcYV166x8xNX!(l|b8eUQQy zsWrgbsA}Nfyu^dki{;(0$%cbi1D`ijNty%ES*dMqq=3H$!FNJzD(sCpLrolEg5z+2 ze`37a@&h0ivWlGMA@Hr1bc3OGbpfMUhMB3}%Nzqkx-jmmE4+<`#g7_vvw@w`(p$jqXO$;@oC%6bk=i|IPP?DDdZB*)}%e7@`d$2o~8BNA~72-U1aM zAv$Vi_G2KxY}2aH{JWMvtE0g1G{s}>oO64a_d3f-ARG0f4aPl?199dQ>KC){Zk=iMczz2o}G>k_)t$`sXJUJ-O?55PU%|3@aLS6T{!NCJW|xKZ_bUwo-z${ojMQF|60O7|tWWwa znHg3VgQbY)JG{g7wgKjrlMlRc&?jZ@Jea{@C{k@&C2|kT&WGIl4A;8c0Z?3BnlO0W z7~1*v9PY(|5Bntw1{G~{+4?;($H}YTFA6a>uwIKHbjWLg++g+y1Ieor2_e{*Tk?w` zv&Dm4J};BRbCvA6SM?VOW`nPW_(<0W%DriKS9 z@g~MwD-uQz>|1?l31G24lag^gN*yc`CRoyuyop6$XPU8Bzv)k?tt;_fN0*X_iFcB; z6K+i%T;>(-81C z86BWv5kO?Cf#FU$tVQ%-O_BzlTn5nHV@DQO zYQkvDAc>7PV6oZrhMhyx*LcQp`y_^IWRpNrBH-iMt0)q8vhY{=yL;ITH>Pn@TqDoL z)kmrNOS>d|zF1VZFL$1)6bwXSDU1_24X#{k;J=pTronh+{n25D-*PijArz34) zz^VasgaK2k*T+;{rgn(-hZ2Knjvu(Rr!l3maRjwdxac=afj**;O=SR;aO3t+Zr)uA zw+xajJ^6AygmUz+<7sJmFk@S_##DK4j%ke>B!hV&k7YnfuRHJu2_OFtN=Nk-(Jd&5Mgbsb2#^ z$39aHS9)w!ZWa>Q1H}tX_s*Y^VCiQz#n$0%Oxwu51T-y8hxOuB8CY~0OIUJHJ#UtC z>(3&i^3{HRWIXd-fa^vIu#O;|Ihav<5A_C=G)Vi>6iT3(U?%0Lk35DZMH$xJNpkTb zQZ=8To^FJ1K53LKU1=cC6ERPExrW|w9I#A|QmVzePE@C5Kv?&ycuKCFZ$M|J3Zs0B zs2(aZi(X1yXOFR}L38_qJ62WD7T-qw0kQ}tQL7kp%{mMvqZa|gY405tUTrx&9C4BS zzot~xBmb*mK~0r!fj#x#n5tju=CP3pP*q7wjq@9s{|kYI?-r zi0`#L-g}=FFq+fr{%uY%sHyGZ#;eK2o>yallKrP<5cB@kkuYJ2;1BN$6tq0X&03Us z0*SoHk`sH+ad9L9K%S?QeUi?P+cTFUk4-o_ORG3-SgnwLCtPjjKF9knsgDskANXf? zXnortULTS>^A2$92?siJ-5^46wbUEtiryi=%5OVzdInZ~we?EnRUQCsJo*BsrOaC5 zQ98uaYt6YtHdcz+U2FY4CUr%I0JSURurF?s9R)JlW@>RJi3p!SJu%RDeVjSw?^X_w z;li-@!lBtp%!aT$j)b6)KpFL(*7$J_` z5*%yf4kY407*=R@W~nla9Z32*9Gex{d4XpR`cXJW2y7!E7b#;{^0@|Q+Yw)dj9rQ*YMs?zN>d(NaO1=WH0abVrZe34L8dYZk7qH@Rlv?ILy%AF;VNYPni`cp!&V@ zX`xFSsdA#4OG&0m@D_B0K&$vz1IRs-MMfd^)Q?0MMcCX^F>t0A_5lJkSJKSD(Jv%_ zP1%s)-{D1Yg^M{y&|Pu0Q22U%8FZSRKyI%jR;cy>6d(YFBB5GF^#VeE&U;a0;-lb9K2idP3UK9Amc^+ zT45V)AL{I(c;Oq%OzPmxx>#S|snNqV(3t+Dy$-b1Z+_|K{ z2(^xx%gbRcX|~JQ;;uxt?!GRG2|4+H;o^bht!rj61ck~drBavQjd@P)cKKY^n-2OP z+qkTR5qzx4h^$DQA#)t`Oxs;@gDRbFj7*UYTLQNfMiLhMpyq-d9Up9`s^udcxH?7F zxG|?~JO4hdR)U}%@193=$wc}4dk|(;qIaLL@a!?V?kT>J{{$K!JUW(W`bWJ?SELWb zC>Iu~x=B>`S56#ASy0`T*1KsZ9z5iq*5E2fdVS7}Ts-?badx+JGM$vQ;7=g6HFakQ zS2Qj3Kb+~WgKrc}fJic4goU{>3C1&m#eLzQA7{lejf`@O5z7sqCQqvxxyiucTcVk6 zo=*kNA{XaB+ZmFURrZ1aAG2Pf0)S}Pv_`Hb@A7re#i+RCg|1@Qj3itsEg0e1@l<*r z)1gIcv^rtD3~2>mYSs?;j{oxfTHg zYgAC@rDLwd?f6#6v>%?>xg{rME;!XC&V~#>d{hFaJSwj&&pX*p3@g}*f<2o zx;Oly195?h=HiYk;<9OOG*kzN53B@tz_{6N^UP6NWIUq)UBY~GjH?zc0UE?eze%SK z-MNhR?seF6fHxthzYhmG=BkD3c3{cfpEYEeq+~aHsYDI=c@P|&E0^dtlai@8OXlFL zZ;dxSNh{%Z#BomG2XE8{TY*F|LhZSDR8sB9ZAnLK7MAv0&bP3`o?xC2nq6k>QeVFTH z;S6ku>vR|EHX&vbs9c#+>al9EYwvoTO^Qp}{mGMY8Bi3~_pxV^x^tli4Fb)L&8gnv zeN{$O(&7Ud@6-yTd)*w&nIp6k07LkVVezF{oh^i((jW+DyghnENzhq1l&-lZl)!{6 zhA@j_qtwBR&%;)Z%*-H?=cGGD;Em=IEs$Tk+eh_8@$`t+zD5;kq1V#=!L!CCV56n4 z%Y!BPdjhrwehMpG?9)B6z%;0pwFNn)1{cxr<1Q)KjutG&LF>m7eK0Z%yF(~F?E~E_?#4?Y_nC$<38(X1+3Ib|xqsBR^uU*c$?bziW6B0fD1dWC<5pIkM#HBpqDKw%0JNd5Wq-bhnPXiJ_=Z`!U)sc4Kr6bym>uOzsJE&@ zZFAUp8rS7b{=bAu`%Dd6HlpsddR_O)UTBMkv)VR+NF)Yy*k>+=ba$HQ3)IaY<;^=; z5x8ZL-RepDEJLYy?>b(+qKimJ(+U}#wfbbcD|(~T>q~K^(c`U^n&QEYWG@P=teo$Y z(bcyhDe9`C=?n1EWss0F=>-yCoMUx$?+ohTb(#z2reAZ`&Ksn{bBK~4aiVu2WWG~+ zU>J*dMptxWp5d4f80LW*duE>kbXs-b{|7b@-S%~jd+jcJF9U|!o%tQR_L6Iw;oguL7#Ej52Ru5E9FI`GA9FkZ8=ft)`_oZP3Bml_fZsgA zVgMW%rBu902@&nA7A$gcSX@{|Tejh#OjNFMNf=@n9!5-?_VWK*e!2-!av_uw|5af> zFaqCg$ry>3$}gDXsgl2DPMM+fxJs9}B=;W^87aR(Tm^1iHtA__(`vys`LGz}2^TFfRHa_h! zFW_{oCjl;i?qZ84xVBP1X14Gt_;%eX^zhjG68Xh=``Rl*w+R>vJ^MeN1Rp3nXepoC z4nY+x>RQ;;C$re?rO!?|hktMIm2)EDFACwE-(!S885=)T7{xL4>Ba|DN>4{L1Y6Dl z`N@x*z(vXp#e)|OAU2MIq!A?L+6I!atrPrJj{We_gLDjM-~52-*wz~D+070_X$4Db zk7%clkti!oYIIM3n4K?!xsoKyLz6mNExWtoO@DFgXNBfii>A0&KMtvCC|cfij=Qlp z@MzX#9(R)X5A>w;Lzt7!JngB3%gLJ*bf54e4-dBvbe|@L2Z1EYrfdteNI1QH(sXHD z4(ri@aALhrtB+ov zb`R0k<8V^Iu2!d?C@sCd`}~i=em)!0q+!2(Jz013O90(`G}FM+p8oS@ifO)S>Yp+> zly&C3+TfsZnIi&kiF}@7Ga}URt!TfNK3ZBYery-LF*}g*LBFWXo@y)mEWOZFYs?Tw z>^3i$na{4md>*Iz(7kT0KM!D&A$Gm|wmQEtiDsm=tejEo?uq2v3h%c5lGEUE_b7s2v_ttXYZ4{_ zG+?{>-4adN4MhGN9j4r3s*Mc56@%fNYrDQ=UNY1xlB4Al> zC4E%<=uvYj)&yq|os;Gdq?$4t;iqUo*<7#knGI^kE!$MwmA%606&icw&z3{*{0-f0 zN!?x+O5W7oH?3TmU*yFW7=96}cW0^Sl?fqo!?O(XFskMaF3Pzw(Y#OkJyp{19&r@d zK&Unq66LmmHgI0P)q3*B{aw~I_gt^Mw=rL@2of8ADCMJ(Rl4b_1l~^sC2K9m35I$Kre>d?Kg(fhjKcNi2X1b2)d?@>an3Sm^O$|Zdd87Xd zqMbk=9K`7?O&}UfqV;uQS^)3lD=344Z(RkePff5^yHS+*B^*;O0cy#LVO@g=nE$Vq zIisK{$BiF(G=O|4(+XqiGQpwpET!~EZ`92xh7 zMx*1jl14{EZq4(id=>Yf+D7ABG@S z_Ovv6pp2FHk>&J6Ef~Zzn`oaxtqky+`cc&k-}#fnM``@b0|J9tWSSG%=sAb5+CxdA zk*OG=|WutBogGe9*p-4i$Ox8cp1d~8Kn11L1YM0qn5Uh zGc6Dp^`(`8^rAn9!<$vT@9c6|hr$14E*7K{S|h5!yfp%Xm0k?zVh0Q*Pzhid=FOMc z72@H|oMw9lELE8`z#No*xGr;Gd^$_*9 z$uL{Sd?vz4tdw5HIzXm%00g8-Y__Ic#3tv}_ORaeP#8wWA%6(1NavLpC%CuGSad|p zmIl0HY4lZ?iDvAU72esg{&7bGJkM<_7!HRLw1bdhg~9ztz3&d7I8Vd04KJ59CLlG~ zxm-)7Gi1XilGCt9YuO2-3LO&WaeZzo{2e8>a6;rc8ZJmHtIt8t3Al|&pUu6ij!O6E zrCB~|=9;ysrPaE94CmGL&N31omL4MM3g1WC9Ii*)Qvt`C?&^ zWt+6)T`WgIslY@-KGA{S7>kGiR7NiXBkR3{*#?jE1(tFgaPK_y`4n zz^EQQO_dau1FiO!40+~@>73)tmWK8X!A;}v5H)dy2eS_t*DB80+PN>hr_k)Nz97qY zqG2Yjj=om6;89w6Z%WdXDrSsQa4GgbrKLIunW2{Y)03!Yv(^qUBNXM}ANJ^n9+Ne! z0y?Mh#uR*b&`>q%vx(E&0p%_&Ti!Orpey`D#Leg9ln)Vwsn7snWeBJQ6BuBEv7+}3 zBa7)dTcw>d`B(8La-r-e)cj~Q-@wZ<+b3OGSTLfLi3=+p6V0X0vIUDa%11>(%jdF( z!0u|EqB<1|R8?b7*7!brh_e zn1~v17z?v=D(iVOaUC@WFlwctL}fwrc(@-1mQhrk-I%KA*6M(xw$oZ-Q1lypIzs$A zp}=0*O(hnK809UX%(z~r|H5dAefzuKO&67bpxqKRi`pyaA?8a^+4eAGJ?#{?4b8$S z01wqf1@H+c_0ezO5%F17k9@;>qA(Dn`xD3P%@+=3u@qTM2I1acPS z-;OjQZVo3E5+pNWt(1W~$0G99r44{cSl9Lk!gFTGP;N%yqk0Rg8L8Lzy-1$$nI&b? zdJU)l%UF|odZAyxu)0>HI?svU<+?=%dia3XFS20>z4ns9Kx~?_ozG#F{P#w_Y}WjqFJfoH$n_& zMCZm=k{97Ia^)-ISk_8-Nv_^M5JowE-nVBqRflBoJ#t}>6}7+lXQRW(3`1qteY{57 zX{XAdoUI528QEc9IHlT@AE$*881rwPelq=hXiI&r@?YbWebn!*qU%O%2X2IRe!1yB z7y_rZ!~GoUY%##nmBu`lpJs`Io2aJ#;!(TjL*p%uON*}HIM)%Mtvw}bPMvH78|`Qk zWD!4a%3NQyNT({j98o3rKqslxlP*e_2;BsU?$`Agv56X1O8D%cMi33(2n2Vh3_2=J zTE8R0WX2{H_{Y9M3`Nk%f-Ebhfh8W|>$S&HPee~@)ea;kv;u1~-hCNGhwRQG%XL`z z`ILr3u`(HI4;foWn@PCP_0aN_X5!@qVxnOZGv_IA&E+akk50CnT%r+QXN<31mcd`W zmRTs~B=>DJY-Z^xb}#jh3+B4oQK?m6_|)q9RK&2}YaJ}9?8rl)wECTZ6xl?hA_Ot1 z?+KsbyGnfGnjJs9*4W!NnN8*hd>`XXRI8lQO0ZS`9p(9A1JR&=*AR`^4lrZRove0# z*?~)`xM|r5Pgc;5R|w1;zs5vU3kSGB^p6spjM3!(e`T`0BU;nzpnHI!@4fE$ZwAcH z#epg4PlnjF)Mt`LhrG%~&-gySMB8ri`?cAaa^C11HgZh1#6N3%gb-2B6PHLn8$<9? zcR0y#^PV>$br6vhFT@*(;DdHXuB?f2?eW6t^5I5u$VIP!r@6VY!3WzJsO9QRq?h$M zDPtPrt)I7a)J2&dA`onGtN-eR&au(~kw&SXNy}5*?mrM+D%YR!@5+Mo-z4Vmq`*zl z%Rw{oQb?CR{*dt|-Iw#;iUY?y$o~zO2h<;XrBVoytza|>zYJ@Eob5Y*c5tg@&|Bae z;DZ@h%}*3aWN;Nv|88vzTnALOLn?gLBhn+N9xqC6wJ9&yk57*!8L(7glcG}jK=G2} zuYe{PNw$p*8jKXp$Z79*;p(bP#|@<_R;6WFAmaLxy+rhK;LVtYU_VyHKFl{@4R_H6_)l3@ShJ~@jl*Eo|Z?gN9mmT{#UieaBBr!mX zz`!`cO%sC{)SaQil>bNM!Nujt&F!Hy3lKapNA2h}Cg_lgO0Y6Fa{`jf>4YUeDy#Wo zpT`i&5NK<(42_MW0#;i=8o>sc)lEZe7blHO$!ycJsdMNI>0bKUgVR^ddp@7nC2~PY zZ-BPRREA{+HC75btM^0Dogo9Z3}1Gw=kIHW%TxV3gFVGf$rTUYw1Fk1zj)MEjmE+TU-X$0{RCl-14rZX4RL8u$BJDh(V(hsV!eY`m z@=i>n4+|9@TLUl$i@4$)O>Mmcy7EyC7p@g2cNtSyd5Nq0>8s$|@Z5i4o)5m|CWwRt zAsMA1Er@P2AjUwe$mfIVY#2va1B+Q&FgDT9_`>63ch{2cgDfch`Og)n?1L@nO%=Ji zm#u8K2~qrTBHoH5t^j0<6Yf{Fgl8~4o?E`jh|Z6trz%8f|MiJm;p44l(@)aw}>LRZx7I@1pUy$mGoga z?F>?gUfG%u2KCQDmwlppK3*eig==jG{M4P>3~djfkgAAKzp_D5uZ)mtfZPU7$#w%1 z5v@AfDR6PcwuK=8FEVolNqd%rJ$DM%t|-q74l76AesT&uw3n1GzWgVY$zfh66|nB3 z03Sf$zgNhBzBCrZ;*C~=h%r`rh=dqZ0W9ZN0|h9yl^I z=-lh>8rh92Q!>xUL#5H$s~cQeCYy;B(O8y^T80g0yOYw0_j9vfE3Nk>h}Gj&X)J)d+gZjB#gYo` zQ|X^BRthXsg2@~JSe>TwZE?%xLP0|p-z8>WWcWd0;698%1dqftNK4WTJP+(Z0>A!f zu4Gf0&I9l55*(bvasw`EbCj(p8dFg1)c*-PM&Qb4iBk^1;P^n&= z7gHPveElW0)~4PX-EZ^TdkDUfUd9BVn9BW!G=Ge4pJ6Dm{9x~&t-hdy@mu7m;G>(5 z0m1*GBvB!XMPyu4w^wAa65Gm6T#i{XQ=Z~)p7x#CO&bCH5@qQu3QiP;X+rm?h+@(S z@459Dkg!+8)Ht%$ zEeanV%)p#Z&|?g|1Ru;5@rkJ(bxZHWl*f4emii3X97LHwXN`#LfFwFi5d#t^6rYxQ zZ)KIoqg%O9n8{|k-0QAP&?&aMjUM}cjx02{n{-_uKH#q5i#JF1io;*Bl) zR6_GkWI&pOgIlY+!Pl0Kn>Qk9z%L+TRW1&_Box&zr=!D8ySnq=VFcb&E;v9XlfSIp z3#%M^7EqTP)H7v-IfikqTWi&;k=o+d-)Yx5R%XU-TX-%N0qr4kT0EiX5Z=>HuwOw` zab^W}f)tpt##dQS>r~H4pg5At-NRuK?bksp8 z4K4e$y|=b#flwM2pGHRVW)3lXBbum*&qoWJ;;TR2vqYz?9q0?m8T0>c5te400n4L6 zji9a)y<{Sq!>!66RbOm+KD52_h+o@+Xp>22^F1m0*!*S@pzl)iCw0I%Iv0yI{fn&r zAX^RIx#Qv)7W=s!EFhG5u1k9 zIWK-nb2p37yvZc;v|UFg|CMh%tpo zH|z`W4~v}nHkiB*5@3BZ@0{#nm+|^YE&k3BK1UoH&7VVCgXu66U>&jNB%_pDOqz|g zk>Q;$bl}$jx(Ks@i46OIM1XS&_OlvEH_)5rReKGl+&_DP={=Z+8!xEbwWbTA( zhriDg$r!1l1Fom7Q*h3*aHbv)BMY*OGtgRm&K-TFeqg!S)ZICar)kJgw-Db6> zd+mpbljik{FHe41`_)M&S~23zv;!RZVbU&kZL?$p;iaM~wq@JS%H0<7I;ld0HQRna zt>9P~^p(Y`|xa)Ei{fW^y|5e}FZZj4B}iM~{1{cXEu>p`}sY$@t3AT6vKe!0*dq@+Lk_7j3!isXOD08?a)T9%^Z35I+csh%TskTOlR z-WJ4k5bPw}xUNNWARx*}z+oDx4~>XrEhV?~Y%soVV<>e;n&Zlfq9AUsbuaLS-9BU5 znj(f1q@c&w;MooQFw7$Yf)8d--r5wt=eZmDLn=%wZm_=q#26jCmqx7($V#?ul84~F zMb8EXCyL4=BuavEvZ8#0@Q^1HwM9_`a-C%nX85Ec`~`aYY3^70rzXF+?CRL-<0N7? z7(N84K}LP-^W$!Z;Uw&-zCwGA#(^>$Wr0<+6WeDp3j=)Sff8q-`VXJ5RJtqk9ZBGqt#@q2diwQ* zJg&FLz%0f=H(Vf|p2-SxDUbW}Jw*;k6$4%5_qt<*%l`(UDkCE9+8lR-7O<0gB5k6; z4Q$&sK@Wxn-(f)n-o+&8UAvgl1@Ag)6taPw0RXm!hk|9$@4;6D?A01hpFq{;NiqNz z5IiIjPlqzE7-U*hh(1KQQ88mpC^iN(jLCU%=ETJw#H9RH9XIJ(({f1t8_?k*CE3fM zpD|@%QwHC4pHM;+cmT!a0Vd*aJnJe&<*Hy_W#$25Ou^GU6vLB}t zVoOPq4)3ydfAN)KaY=Sp{^f`lOQI3YC${6s-BnuDd^({?Y;_#ZWMry4=4_K&HS6ld z9^~=Xw`wKTQG_r|Vs|l3sml(0 zXnw#E33<6%G^fSk+S@-50plLI1dmgWXq(AE9wWeg((+Z4GIMQZ~=15?%>a1^Vm6YDNzQ9Y7;G#bc!>_gDB}@PF zuox7RU9j@YlnQ3hBMGljk9F7O z=Pi|WwKAeM4ynm z&FEnz7rG%+svp?wuXqkn5ujDFT0~lxlCo`AFbX_-vvYFa z*nXe7b&9)WGK(z=3Ini{{?0FbZhH zmyt=U17VSXGb=$FkAp!5-E)_UfGqyjJRkd>@Sk}j`if;8)tF&Q6|8&#YzA8JzgcT3NJ$ZD&G=A6Ip0qD_<+#kwCimbEH3A+9pP@A4+^ie zH9y9$N9VE!bjkj&&(@orQ6|LQ0GK|Vp6D8GPc|oebA>XSh!+#$PEn746bG}dvH8m- zZZGnRzoy#?Q=W1U5cjFEasuMMGaQmcVtE;j0{?wjR4pBi8_86C3`^W|z}FEc!_NTE zLJw$SY+Rc^9P*z>KEi<8mzyY&L?wI?2=!T8^nA<0XV?bGrcITD-O#vI6Vws1eg${wt}Px0f7rBH z@7Rvb<`#y=G^f2Q;*Lk9`j4L>*XQQ;QKy}8x!9xJTq*hXTL+?%2G*r>Yf5Pn;W4JJ zpq%CJs?j7>neBj=8@RMnuYDkjxsgW}w-@Sx3N=)LXlxF6$L49278dcIgL6|a2t zk)tXLws0Jj;nIE`fFAh~ubIrX$N5tR0@JU!zrCu0iw0>I&b&3UMtIwN55i{|cwb~% z2=tH;_(&1qMzd+6@1jSo|@{zJHOuN6aK(9 zFlj%!#5&Ihl|V$&0I;}h|K`EH#ja5)rCC-=Bw5CZqDG5Lxwy6Y>d|<55E~%Ef^dgw zba4Mpk=EZkX89tj&Z;-Y>@{}vJR7}eZ#&RvoizN&6P<-sPErP66c$|$SYAOG^Tnju ze#_tj&Kiq{SN_hapzf z9Ta?xDQvUKVgDZ|$|0IH_jqYlSmmoEDJds=p+N z^2I_9n98td<^%_lSsUtnaSi&;=&eyPxbG|aS>=egs^XOa1s`q9MCn*I;~Ed);Eujo znREjZrZvF#V4FbvVlD}EEo>FFJebN%IS?jCxs;BVX$%|zeB&IdvfZ(3*7wL zEnWRJ43J!a3WgKIB1wX+RwKt`TvTeO0S>6bAf-<6DPy#FB5m#!X0B4BcX$B9{{KD!SV8@T1vuFi@PCk`FLkr6Y!5xa_lx^j6eDq4SdCs=YKV;fRMcW*7`%CGGzj|e78y0YfXk^JSzcmjd7CwXbhO#0I6Ws2TA zD(mh=rGar?EoIGbpwO+z4bVY}!DPgV!S|1iFKnbKJyIuEl1Y!BD1w;Z4s4j zw4XmCvzek_fB@zzk+T8L^_4dSz;t4#Re7Hmr;O$OSqVVf-J00Ve(2x7<3kn(R%`J0 zI)^$w|x968>MiwbS07MnS#MzTz8@KQ=UG? zAFdK~HZUW&%^>m&HZ&X%8k>@eS=i^jMpO@MJFE8%tA;sz~rd=;1~aA#~9fe1B9%NObqy+|w~oDr$Kn`^(lB9+Y(J zP#)_aan?w-hLoZU5nTrZ@kp1HvFyHD+0TvZ{*3n0R;HnBIxEcw3@!b$W^&L)r;5gB z8dzDEH2RPlW)w5;vp%WKH)R6~qu0TL^!thjwnqE-}*4T<4c=|rh%{bN=ytjUe!&UN=kO8InN z{*+3e^mh;~M2a!^k;3MHWB)^QAFzz0kFG6Jc7W&LrQTY9NIBg`TS>gyex2?%z$1xn zLMO@tNHS6N(+E;-K+vBPg@2;~tC8_A%^ntoNI4<_N_BwL4VG9>_DJjPXL zxDp&iS%j4uv>M$?PRbgkBPSaHY>^Mor@+@hYi{nqxwo$eF@tcMlbn;LnAm}NlWCh( z{`fIF66!H$!XyT^)e19vg1rgNQoybVNhzdQ2Yg4kyE~6l@Tks#8#Y^?Ry&i&TfW|v z_xmNhU8fDRrEYP1Qo25QKm$uHysnWo=H{~!Fp_Iby3pu{$sV`Cubj&4uRNL@lE*cc6M}no3^eDYCA6=dReiU@e zQXAc=x}N;Y_MAh&1ER=7!ji$uoH(ao;=IYBJ;z)2?AYMnU2P3`vFpHoe(2?8lw#0C zkPC<&_}x3pishya?;g=s3FD)czlv|xvxBy=ak*$li@n`^vg4s~Hxv?a&)a8#3+rOPX(OLV ze74^}+i85WK}s5g_dOeYbjgM6XqpD41rK8i4G4*lkNnB#xu2FC!SRm;5Y}rve5KF( z>1mY$bNCp4y$O+x^^gL#qBBTX6;(bygP7IXN7cUv{&PBZw!F<1=2np%{Umq3rKzYW1ThM#aVh!6^hpsx z!_kaFm=3`Nk#Ek|rt}fJ%;;D}%NhG?Ynktec_U+l_ILjc-QY)h z1x{*~nTR}8t}ZSq2B_9P3_GDTtD(ALXyG*b>?e7Tg9xf$@Il-$rXwc>fEHd_HgLWM zSR2qfXyUpo*g8QteFB^3Q!}Az3m+Z|1ksHC$Nuk=9a54}KFv#9hwVjsfF{!_m&>!b z#So|Y>^jp7O&lWSDE3=+m82$!X4?nsf?qI0;>J>X@0O5^$m4mIOGS;OmrV`Gf=iw5 zVSuwYhi7{`2x&)aj@!N&Uj$or+f(q|>#w5_#i$4TsE=&7@5uwK+-bF=_EMLxc?xTJ z_jhdjQ&!g2Ro*c2qj5{`13f=3@R`aDBT?Z^= z!t&;z!jiU3#m!V0ub(4^c2K&7+;kzQ!m><&zaW_7A*_h1do4O{%R;QLptsK>G4*|~ zwdjYBmP1hNGAktA!eiMGnEe`(LhCYT(&15I{^dcyxG0&jecjb5{EebMqJ;zm>o9xmG^}e1Qy)(3=HLsA=99_3B+>9yRU#f@7sn zeg$w5IbH-hX9DbJ2a<^qCU!hU>9=b{aY&eWh0LEtiG-agjwLfa*X0R)hjmbn$FzfM4*B zmVOS1eB&p4C^f%pdrem{Re$6 zdfU?C?&#XK&+d37-*dYUN60*6M@L*bGdPr`tBh6U{z@PZ$M&v_3Eeh(Ce4W^h^?r>sR zexz^-8qE3d0Hf^SfrgoBJ7cA)mfzK{LgmH^3kBiZF|IR_vOTe%l$AeZF$=hpQ`+>4 z(*0Jk^qC$)U~B%TLk`%Q(D`b($~-t{T1q#LRJ3A)Z)EejQdtr-4g@U^YC%YS3PCdVJn(!$a z=tR=}^J^>%67w=nMc@f1CsWxK;&iE&jRa*Ut10BagkV4?Kao6XW$Ac*z(ba|`m7xA zUutc{-_Q79oWpUzWtQNM%(9Cg%qy6PUw1^xgiwirFSMp+*vIFoa}zLqeY}~`R(H}X zHbXQ^oY~cMNN|Xj16|s1aD57O$C}4774n|FWKCRgw@#VY?rsS;Ppu$s#&)o^=P4Qp zCa@JlymmF$t+*^^I~>zVZD2FB>5FMKSmYplX=MjM8({AiKEl&J5<4I z&ds9u)UbGT)kDEDD1P$Sk2{%g_te85Nb;I^VVy0jmq}9Z7x&N~@@Y9_P5E!BC>|HC zyw|#0Hu;%=DDjzx#>x}mbVE}00^{>aoG!>o`c?(yOlV;qxDPRexmocPj9ne2+Ys$@ z&hg^&7z+2QhErG!p_H1j%ZtVt3qxvH8HMNC=W>L$zlG3?ir$`zdYu76PUas7fLcT?pH>*2i#si$3 z3>a>SAZ%=C7u&`M3NC7A2Ytw5}I1JF+lXJdvVT2t7_SutV7w<8@Z+}jk zWO9N=MwL-|`Eu4tG-!XhaqmipzJuS^Efm1NFkK-r1#%Oik&R>Dn5v>zYhfk#H{K{+ z?}D0QnxY^$G+o6}PYHctIe^PPHY-gc4X{dq*HU9$hU{_%TGS&&cd8}WYCj8CCdrJX z?wW$P`~|e9k)iePbwYP*f7v-)O+3$DEwfs&(nVK^k#ao<5y4{LF-i}n9^{Sf<616yDq$m zKQZc#rF@p*GHmu7-ar{si`t()QcDkaw6sQEF^SnW);&~{i7$M#My*B4i^?Y67y`P% z4DZuMeq{$cj{i}_>61VM1AkuY9iO{Cd70U$Ajas_He(|fbop&}C>C?A8ZB?IxnKV< z*FY3rXnQC9K;v@tx^z8McEg3kw9fwS3V7;o)mR^wy1CYYc8=1|-`h{^=ufcg;x-ws$jrDMmd%2IXp=-VD< zK5-}eXD?J~3bgRyhY;@``x*^~MN$i|6wUW4WgC@bE=ALc;3yy^Kz8> z8f#F`+!#-MfG59YAsq2$<)JfGUnjW(Noo2Iiuj~n*YIBVRNMn0_B*-H`ZD{P1o>q6 z`cv{_Y23bIv8_YTElQW$x=ePB9K_^0z}n4;WuVF z&(0IIZv1Zv%HfyXNpc||{AzWk&t{6^zYvg9;Fg4a$fN3dw!%@&gB~Zm!^m&YaIBAu zDKZM7znyBlE{-&lq`Xs553|O+Za2pXAhP^ZYNzFoh)Oy02m{)X~Mrr+&t!m^Wjyu zmm7)?hy(L2vZq;?k(XO)a9fY>4H0VndfF0V!gVnX%oZX^V-iS{=lzxV911gApZp2~k0)v4NqK;JCg3ZD!iSfr5& z@Pd$q?mbh`-yTr76P>*N>iNsBId?RSmp$hd8{O{*m3%Y5N*8e%9UNx5$lcswVlWOZ($8cBLO8SR^ zewQ!V`;V-h;57zY&Y}?k@YPAI`@F)AN>KvA;OYyHDz1WUZr(Iw4-~1`JjgsMWUT>-_$XT3{Y0OU7W6q@9FZ{nyc}_q)g>g6cFvKAhbm8q0wh|7vy%9GVX)rVnd83(9C08b7tCgKq zsOv;moBN#X*>n8qwOrt2Q+zEV=oseUEQ0&eDWyAy{4@(0-W-?lJ|T0a@B(K!I+7Ir z_e!){NsxG6Q#3}s2g)_Y!I!(g=OXxU0%V&Vv%D0hMSyc2Oj5(=$&=1x4WTzm;|1G$ zHR@pcNbD{RrkZlyHJ#x|Kr#KERX;dN?-KnoWTu04%9qi` zoPkIfE!nT0rgFB+^mk?C=^3j%4z#}m($#@fB^4pTgDg$-#tKp~{=uBGwpA<-xclC0 z*db#_BbM+{Gr#=BxhKniv#_9k=2CcPS#4+(5}j zRSgB`qGU|C)HDWEOHa|IeB8^1#3;W(B;cB%5^YWFocJgLYjoi!96}NXv+TY5M*aU- zk@^FO5tHK2amNjQK-oJw7dtx-;@`^>WA~zAren3GL#@3@6rK)1&ms$+@)Y}h?GW~A zZ8Ene-gd?gjZk- zXCpM>r$sL2dN-aSg7qfG%>;GnLuqj4PtSUA;{;QFRg3mo_5^gWeCm5$$FvQg1ANO5 z()vsF5tNz{Xq&0xjWs91_V3uWmG`O+=!6THjzGTj_Me@*hLl2kZ*VPxRULYq;DLfY z-9f>s@Zp*7DR5gvNtk1Ew9-;Kw2mFIrd?LpbTP(5G2XG3r~S)l3vk-88HT%p>>HVwOb{PdBjC;P@z70Co)7ZxKUu{ zA^|lGbG4R3%pj8|Jd&v7 zV4+6THP166eDc-4+r&>WYSeg6w*7}YCuiR}*xjuIS8!5*gCs{EZJ1XGYu-!hcb?vZ z5QoD^_=7k%nKZ+9Gl&7RL8Vk$zV0ZG&9YXKA?3q>Jhi*a>lO>CS&1S0d4 z?do~OY}JzlwoQY7@+6w2)q^WT%TC6;zVy!wK~Kbn%5y2DmmklR7Q0WAf;zSO{J+L> z*uzKQm&pQ(IVf~(ci6UEIzV<1uZwg8U%3S9`?95}x5_%+ood!!r7pl|wqiJaWHT># z=e-Fil0N?NnD_|J^JT~yK%``Rl8Ky`9gRm~x_DYpr%M5E(DxS~GCQoKD*^*vCgr7_ z61q!zuz&S=Cixc-n}zs_L2&<4L`%tf-et@f26Vpbarr&ulpRY+4eu6Vhr8g=7h zQ?}Go}U@es1 zH)C_6kdHkTRFhUafFN@=uzlmvedSOjRF1XIP)#$#B@(OK#AD!ab|ilMZ{pGropP1V zq{**Li6(D25aFaR(se{I@uo>rHp^A_-yWQV7z#Th2XFlxt14gh8gB4_qG>+9EJ})^ z1Q@_eG+6=bm}(TF9!wF=^te)Hy1UlGzV9-3VLE-&h)5y(c>2U!<@$#>wdR78CsF>- ze~C#G+N>|^ko+k4Oh^xTLxj`yaGHZ7q-4W@ks-LUK5=k2KPoyiJc=ufIFa$sTS|H! z=w$Hklh0dS(SIJsgm6L?ucG-Bms6MET&45B@Qzf@KJeBm?y7GkE`Z1s|6o-r;ROeP z7xUUt=rODhO(~4@G+^BH*QOc{g{qwQx%<2AGDCu<8c!|HmNlh9V(6|HO8$$}PQAMP zbXW0ITVBQzwr`_r|4>VP2es1_-$&~$==ZwHElbKdR2}$n6}ZQ%yJ;B=1~j<#LOkN)D0n_uWS=7N^V3n zq52cB1$_0W%h&6pLxZUPNH?7NTg!hJO_Y--aL|Pr+U_qbHlV-1f5@{T^fIm6E=N=0 z9XuaKpt8{dDKflwO8EH=#>5uks`FdoMERQuf~3d#>p@YZtib!Oe}h0>4{-ylxcf1D+>+2wXmC0U37_O8OHK%z@Dyk*- z8r{zPKaqfV8XtIb+L9fu#7y|RWs zPd3Ege2(+16l9V?kY#EIS*7Hq6u?a*vGGU8m^^d-P!%-WgXV^{;XfqIqfss=@`~Z* zg57#4w-H2JB5M`nlg;9g;hy1G%E0xBx4Xb>8FpOr?-F+yX_*D#@DAb5rd5&)!kCw* zf=3fBFP`)f-3z?w6x`BCe`ItO*6>j-xhfMW;GCW1umH{ap(yRjMp8h&=1yL0^J~*= zNzG5Kd075oAYuOGyfxHef^L=}1Q5e1Glzv|8KpPyq}-e|DNXLCd;#Q`uBg$= zVkA*?D*Ve|<>Gg?tjeu^=U4FzkqPRL``aIlq{O~7N4n_sP6Q>=}>a?swu9@t4=%usSLW>#)ft zZNDk62i? zcJuym%m3Ei(X-k1CV&CVo)S5nxouQbEUL*}(=Tj8Q@Uj>N{lyNCG&v*z9W2D!U|tG z6iC>UGi%OC870dh7wC(5_SAIKvAyQW&y>w7ktPO?Zs4K?r_UywZYENss1UPTu|Zz0 z+9g_G@B3SLl+hcJVQ7+o)#i=x<3UIEmy4CQSW}8j7u`gKE4BzMCDP;;gnuIiwsvo0 zh6HrT5%)V6&5Ck>JW;lV>A6*^(0)y$Td4mcT@ebeO7RXn8V7OqIwC6+z9?#df!CAt zia~j0XWmoa=MWycgk8ae>HEjvJazh4q{(NrO@v(%gc!p1QDdN9s*1eoUJrMqLsty?KgunULv(qp6w2 zdFT-Laz1~WQi(8u>h!R-U=prFHmyb@$M<^KK$_+RO0=3Su2k$dBex*!XfU%g0e@6b zsu8hJj%NrCq~$loe_2L2x&SS?64EJNJWtOA%PG<)KAh|`z#jtJ3KpO<2$MaNjnR#N zxDFXjogzp%|~fk=fu0JVPXQ{~LMP^?gl4a+8slDKRhq75zm!y1%v{M7_Z1KP^eshvi;iYuX3pI=UM-FEr>VLj0Q8B`15 zI@$Kb6+*<51u#a@1eNi|j*K~mJ`7*gK2TriY=xtc050ZFs{9Sc$sa3>; z$RYJT!nRp_`Vl3e`m0d+>!Z@;p@x|u8!Enk4+)srQMxq?{R}ZWX=B6v?)GeK6KJS` zVt}iAL|eW!hW(6yvr1#EIElMIjK!BFUMIFnwWjjLX#BA(IPJg9d`;FhrfW02|M6|0PJTLC6gGM5WZLe zzg5@r_zZ$cbykS0PjI;V)RsZ|-oMOS%poT7RY2GrYyua!={3?vr_3no(!~#QpOzH8GD5%JZ`Z&F?~> zNS60_?|VEj@MfDp^SCUSP|+vhzVnnUDXUN64^PMXPXy|HrlGY+t~@9GG?Fv9HOvZy zU7ao-t3JsozWOaF1O~%`RrP{Lb_jUw#ufPWS%7Z6k3CWN<+*?fNj%_y(hMv!WB z!Uon++Uo%RO~aLza;0h0V1;q=xL@M3vYxN^d#Cf#Q|1eV6u&mQX9SQo4ToU2<)>F~ zgkZ!Z zWmsin;up@xrf4@KRNKKCo-;DqIT-E=);>c0L8i>L?2N~`>{J=Z;(M=D!1C*8)%DGk z@r{kzU!&M5!0%9avCz$r9?5-|Vh}Gk(@TJY5pfQ&uH)ENSYhM;7??T-PQqmh%{c{} zJy!Gkc{7DMQp#B~j%Ok@T(1V5IQoN7o=sy0K?WfoZT0dMeS^Jc{3$w=s<2gRyTre;ZJ3&$ zL7~~AMB(4x(g~uS^bn)frlQS<*nqx_)x@63fiEh*eynRY6`Bguu(z*ksVCo2!#Qzx z#r$hVHrkKbZz&MTmPg8iTj@vd7jbHWx;>L<>{2A4-UnG3U9#~?+$g-On%5QJm(M-l z5$BGN#IAn_B~)&T=lhE~VwkylqT+O!d_nxYf|dG-&7yUmO2fl`4Nr8z{bPo9rQ;&W z43V{(@Ej9@1~`y1a#+J^)6WM>8!R+G7He0#7OFsJLD!y+mdQsllo=@Q=5SGa+?na2 zp6mfmzO`VzFI#J9Fv&>046c(P9h0b5;1Qg>7!ma9WLbiNq9bYOJz^nE6^mhO5~`HX zxD;i)VsDGuB!>5YE*#fWzUDR6Q)4C&?f(69^wixV$G-4ad`ds7ij5sNeBI3*7w}HL zXVfIj!VYBf4tT_E)Do9A#1B1{&0OtVrKY^oci0#i>f9dDHIUoT^7fM(Ilr*Chw^ln zZN;psI!*?@YUGtJ0-Lem)gC9Am-Fnj?D!3L#V%$n-nRmw<(40dRnvToMRWvL_M?o; z=I7e&)YU3jN))ruX|aDhw<@JRdnxi!m&*^hl&HK(Q`*##7+urSacFBLR;z zEZeOsZiF7il4=cRqy~vn=g`ZzwXvw4WW0$zUf1LJ6Ai6R>mpL3&+5w?CMc?6miSgO z@HM&;dS&~(@yGymFDD~;7(r%mg1q`yOEdvQ0=jg~M^_2rX6ze_P|+XEAIrFes9rSk zdl?1f2o7?*3bsr&w69g{mgab(4yv_VsdG9uCoM;kvhqa>b8y;RfVGAV zT*?2FqKwjZEy?whoC838tT>E}7T$lxKpw5UJ7-?!x4MQ6@swIOi%csO0SDcI8pdy# zmj`#oFy6Tb(W_zV>-;JV2O^l64(TSO%|P}g5*hQnz<&D7cqIaS(c zMcUqWcn%1d%46b(xr>-0k9YD^6!`x`?;VxW)5xz~DJty>=IdEIeJTlWrSkoJA~8@e_CT^!V=y}1=a}Is zx@Pb1Z8{;0!)3yC+Q5aVVr68U;l>sKe0o%ZL~RIcH!oP2odcHaPEyiRg`sDQV^r2r z&2+Nbs^RwJ0XhDel3uQIoyUQihYD6q0oWqm9Do3@zM!jL$;bDJIbgE4cWEG3Rk#)mWG!40F>Wn%DcO^jV zD}Tmu1(DSlwHba8$wTC+=Mh$E_@6}G4<~%u=l6vZWngCzQ4l+a7$c)^Vx*%35JgR` zQ~Q<);==SThGYJ=8Li!Hr-A&L`8}obZ(Ds03G{?CG%8q>a>Urmk=yT&2pi3&t@uq6 zv7duUh$T(qmh2tgHhf;9MvS6H!bs9A>L+464F$ZOMK{6BtvzUP%2?v4MVSPUAfK#u zos1gcgJSAor)VO6>`RI-bN+SVg4MgWP3qc3+H*xHn#jV2TuT>0=U-pHx^8!OiOvkq zdH>0-pU)vrIW729ZiJQL2gkRs>rlA;7+`mfkX929NpbsF;OboGH{D{|;}nGDt9b0> z5EyVn3tme5uRt)Wz5DwkAA0@S-kBOv=Pq~C+U*q2;*5PsiGom@$aV+8}VjA{Zw*z2Yhf>@86f$@F zfGg$&H&S>*;CF_;We^eb&u#-Ne3j0^84|77aa>7Np7nWPLr~Y2AXYyO)JYj(z6M5_ zreWD*Apg4JR1s-(jsb=1z>tkj4WVhNEc2T-Wl9U=`e zG_Rh|@$$-m(BLS?O6rn=Sh9`mfh@bIY&lghAi`=QbO9WdrE@^ybB)a1ohjLvatCQ9}9v|$+;jPZ^7q-AJEhG;bV|@WE+@Bsa-U zuyDcI0gp%4b~UId$@m8X?qoHX;jVHY@qCYc;KH3^E17$<`rR zqW*&8?%ZWDm6RW|hCTZ*0Uazk(fb0k4hn9oM6Dcc!|<09!@wxMJ) zkLobNBFUdy3YI8eZUD=dUf@IoCk3`T?o;d6ppgq%6iu@cJPF+lna`elL73HNW3nX+lP3$q0EuD~zG706##$zhfxy6>ItE zGEU;vx9>;(_wV}PWK zw}IaMJbCvVASeca5mZ8|Ec_?BllcWa*Ky^)YQ{hHyJ}_At+ilXXym0i!q z{TS`Ls09}a6(^%x<#HzG12A5E4>86W?&ZRO0tQXUsK6PC3!}_K`y7%O+{*M_ZUd!M z-9s-QNhy_Qu~q>!!|w)I$G=*E9-u=NW85@t<@rT@p2^H$!or%TYW7H(MVG1$c6DfDR zbqiG5#JJ`Del{ldF>=I`=No_LYUm30x#^rdb?ReFws>(>{VxLjn*dZb{PEZ%9?Fa+ zYM z9(*()g*<##>;wwtMGov2X*G<*;-vha>}*Tdh1dH~Vv%l*0|YnHldQn$6QC_QrOlt$ zsSf;#8I$bw0>Ciq-K;SEe#~?1zRFiP6P_@ps{~PB|4nG3d16iMc6;8mBEAbtIaz2! z_a<_$F^s&lshY6ZI=Zh3qOf}tL;7nDTSDaGHPDO^uGL|nZ>_(b7M-s4gsYB(Oi7AA z{MkJ?oIMv!50#{`^;kN}|Kvf5zlFL0Psaf&hl1@KV^Zr%xq2uvY~-uV=|+gTdVe)_ z70LXAL3gTnRU#?S#SA-4Vm>C;uW@{38k$vuDpZ=HWOLG^>C=C8+1If6)49@@t;+l3A?qRsvc z3XJcXUdjAs5No+TPKBF=FcwsloGpz1SZ%&`%95;NP=R%PkFjbo9t|m6S0dc# z&RCM%gzz`m5;yBdSqf&29I|kW5OvCnUl_Ufxs=dj#Nc9H2K&Tc=TV+w}ePMHk2DL_J5}7cFr2sGWmgjA@|sJdbN;zRvD(1zQsD zrdVThxly)%!E^+dWy2^%&^yy(9E?b+1r%Ps-)ftO!QmYf7=MjIU8rmOp=>-SD%8<8 zG9I9uUz4Nys4i9V6S@cAF+QGprIG8bnFW55%qW3JaQxMuq%7^b@CIau+Mxim3&EW{ zvJ8yFD#PhXFv`BWNNS-=Hx|e%N5d6?vRRdjT5h`ZG05v59+N??urHDtD7shDnBas# z(tDM#09(+2vR#8{O?~1kJUs#z+(Ib=P<zePyqdzdBgTbMpV== zZD@82`*Ou+v1&U3qkDD_J3eB4m=AGrtj}b|X$Z7XF)MLpBVPTMC-?r+ZQoLj) zvj<&5_q4HuN)iAev@r1VTOm!FwFK|?WUvAuHf9yDG8jXZCg-BF)sb78%LTGBvhJq_ zf-aaU?3HocED+0v&A!{i|FTE~0{e#}0WDM#K%o#HY%@q7?Eyt9XC`Oz`?6m-=Sv*e z-MbTE*)u^g-d$J#X)nM}jx|TYKYtT-cm56jkHDbLLDMUHhvcTsm>TbBRv$YcI=3(r zmoS<apIlx)>bHtxrmfgMFLlZf*z=8CJO2Y!DyxTa@?cqX?~cxwIx z+c=78l}}Fmv(Ta(e!*%8G%+uPwzA5~8vOmB`K}H~;#D!)2(~nUBMUM6zD_3^K?0$= zSgyxX$?7N`;}zR8tb~p#9<9Xq92!je5b14k2P27hB#0)pu(KUcQpCC%jG4SI_f?s& zvV=v_|3VIF^zD58ShtUYhS{Kh_GZ)mI3KP$HugCRnm=DzfgP3{Yu~eh8vroER z=~QTmY7E^6{oeYFB>CxA{7_TTf1|fW83&=kfTNLq|F@>^$*hw4Jj!*RgTSjML$77IKm-EQdz*xFY#PA^oeQCym_$`L zKO|xPQFj$rJFU;o-d%cp0k%Bs{WTb3dxXg%MZpXrCfkgBkHt@z7(6)Z zV{@%_nW(BLPoSeg_qvd=pVJBs=9;b=r*F9gBxE~3OP;`u60{EKkD(~f4P{P+j`|OalLAb*zB@LfEVrQ_R z346L9`}sUW>s^Bp+m<0a{%M@&dag}acZF}_E`A{kKvtmOO(&kB#gc5_#C}>M~`m}0@!JH|*G)jnHjT{Z1*+uERW6B(+ukP5GA=M8lTaig= zbu}p|7&HtsZA=tU?q3`~#?}QU&yumGmnl4@*-kc41I&H}VY#m12)7??@;q^LgeQV= zdoyz^=gSq7u1f3`TS%UI#IviQ<^+D=ej&N+4!6$`r7fLj0&oadZQL-;XdG0f(2Y(& zd2V0@kf9xEERm9aPvdPRsR0#m#X9WisZtifU@SWKADEnczjHsr1xFrSp9eauc zBOiziX+G~e{0O8}$y{QP#KFqPP&&XO8BR}4Y5AK+DINA9d&5gr7Wn@nD-MnD5mh#H z-}~{?Oz=*@XoPz?wvEi~7=#0vd`slVV8410j5s$5E6TpXfxFvOaJ<&!9O~Vi?>%Ln ztKoRJWMs}dTe7iKs1qAF7y3!Cf;=_KJHUu#dx#suF}raiTkrt$eYcrSwYi+n@1hcz zktX9{k9C8|W7Tn~!SesXX;`(;y1DF~3&*_yy7;h8i!LXN&D2XqO_87+l>a+Ho+S_Y zP%~)x#DFAypH&sP=gy|I0V{o4Phdz)AQCvrXQY|gY*JMcjcZjAkX8wfHifXC`&%&D z5s3L?m%Wr{ifsJl4n^_Dcdy93bb2Q{mDdX!c=OgL-Ea*-#hVZKC}C#(|Ec`dUosEn+e zV!hyS7~4*QdM^sbsnRpD6H~r}zI&eaM#w1s4Iq&Yj`M~q5LX@&I4~ z=_2hZk5#eF{;W?#_Wk&+vdb#90b3*Qdl17vz43@4#NDC$gv|#;mP>MxD2&vfc>}-3$@&_BzQ0K2>^kLE zdPc5aSyFJPnz~XFHGC7~ebJ=+6PH-_#iC?%iKe(8XJ&1;o@oXWYB(R&zLA0{`E!QLa--1!fm0G2@+F zkXbb-Gydi!$<2bSwdN09y+R;+Fj(4%tp(+wE$vA-DE?Gq%1UTxV8Ekkooe7+5G0wv z8Zjs(Bn9)yieQmo2E~zgz`n|3mC-&6oe`UEK9V+ zY7xU;2?Ea+xIYTg8qDAE!$zq;nXmG#fo+S~LXmYLNlS;qrbI!A;Ziwn$fJLm^9G#~ z*`MXQMwUWs!;OxxsYz4Deb?U!uQ{6cmeBrJ{?eq$tFJ+^KZqPGkWi6qTPK?&f-jwTsNsGP0n1F5F0v+=3L{&d@WbT&rmCkD+N{bO(Z}qp zZO;`D)xf(u_W#Q#*lm~WX<1(zhLtXvI6m5RR^Zy{zNOtG?XgRo2bdNC-6ATXld_d5 zR~+n(g$%+VM@OvY0$t2VXxzc;B!8Gb^suIgbjZWYZV~geu#n{(Z9VmKF028IQA4`? zxv!D;c%q{W!#3*mhzp_!8x&){+|Og>{uX#l(I6pPw~Znp>Xl zW+{OeqQwpbs<}%lA4Tuh6Bg@Go%in?fn z8u+)G0YFjX;ZGeGmo3~^%me>0rDAoF*R=!ZquISx^2{?wT(G9a`4r30wK70L(ox)s zhm=Y%Yp^JhT=CgeV$j*+A;HYXW=_6k>0n%vaVtbXGGp__Y}2eXE0w5%J9^km29wo><(?k_;O5VH{0@U zTBkLhYoJ+0A5Ab54!X36gM=5S_|{bbF;1{U`X>JimQl?&v=6;eu9?&0HrC(L(9UJ) zhQGYA%wYdHkN}uoXQM=ZZqqK}HyBV7@X(89W*LdxbUi(wDLZv2>+vEW6os zjhYT@mV34bUkxUmW^Ws=9m)#0fA4wKisfhZRj$Y%A4S1OsbmV#-2;15#BelC-D-Wx zNXyzD-_h2?SA+1f-DVKju|Ovi2$W_L;@B;*h@cTxCIH$@L@#o-*$Z|wWAF4!SVtl- ztny5lDv`od(AqLjO-HsFl9U`tBUiVZO1(g_fH$lS!1wRa! zz$UPEFS*kBCkRtGH=Un}&1;90WrH1RQ02SN9u&u^7)c;O~MJ|=M+^lInn6+q8=nB#|{I@8s{-hY^6y9t6Y z*39>NFP=oj9w}o=^DCKoMH4UI_q=QaWBGJ+zWf6yJYgF@$y7V<2Nck2du~9MmAyYJ&a;P7 z@OdhwvAx-IJ2mLu=ZL`?=Rg@0AHeAYF?CJo*am~DsgnaMlcij`#>X-W?h-vYOudf`RtV!HYQXgD8_E{&Z;!l&wU zeEQ~tSe^~l1&6{>#f2I#->jxuBbf&&U@FE8N+fontSV@-r1p&insrr1s&t@ICLJr5)|TIfgv|GKjld5n}!gWKmQVb z4l(V4&gy;jr-B?@-Fe?&Cc8|+cK@Q;EVoxq(ye~k`v~lRYDR(7$q@DKuwb|?x1SJv zVi=8QIa%)QX?EyW+qEg4uTNM;*%ytETN{qz*0e8i12zi z-DeU(1iHPM=n0%S5hG_yj0V*=)O7wFc1M>B!iv(&3rpwj9B07(#ImQwHRnKJC+dR& z+yj7%FejrlZpff(Xz#T*BW31AscWF_U?evwwrap-9SFUJ<(>p9=)+|>W%LIQ=*Ocu zStTPNbM=zf{}J5CN7=!<;u6vgT3ozDnvcb!6T|=eQ$*Vl&51QhDJ2$KSP=oyRZ+Ky z-KxNDZrDejYuH@mwyT)ksSLIv3i-F=1bWK@GglY4D}u2(P{TSh^m(g);o~Whn4+P<=FrP_p<`m$ytWPoyku`Bl)#JQiQGPx}iwU zCgVSk%USh?TU|5XvbxzhK>m^&u|pN=&pjgc+1Vv(DZ6V%q^>jHwhI12vG#% zztt6>({|8!VH6Q#c_n-&k?#q5fhB+z^_4i*nJ^7IpLJyu4IR7>Mx?*b#KOvL+av+P zIoclYDeM%uCs_vTcolx9$b`6!i=>=!+OlWsTEhit{1IauJsG`+sGeRGg(xaW+&Bn% zW>sdG10YevBx!)nz}eO`J`q>|n42B5n!Wq%HaWq;y^k1kydmXpJ|*Nz{#xSMiE045 zYW~#}=^hq;#=pgng~B?q`?gKkryq$41WA+#J3RW`mN`Qh*7JUrwj3Qj~t1y zr3wGGVTL7&DXh|aXb$Bj^??_=4CyH*E1d<=!4o~5f-GIBogbddFgRZ{h6E&(R#f><{J?~%sez2@VljYieB{PEZycs&+ld(-Aegx| z+TUt@zme1c7S~@gzyKr@^5yHMxFy%QFj9HE4q7%72_i>>!F4rzs3wWBruGxcV`GT9 z1T=AZhzKAf_5r&4-eqg)hej4KU1oatL7}+`EGVakS5YFZ?45DId<<-;5eD@-9Eao| zO)XrI%@J$^f^pAv|5*SaHedZ-A-cmWDCA(}`CQlDTXYVh!)_=mjiKYOx6<%ZQg!2>}CQmyi zXHyiP20lQsP#2&q*c*S?Zt-!6BeemKSC2_ZbWn7DGiD@!1iwS8B3?xO#>l4=X^TKFn^y{0fH{fuZSUy|DcD%_5%p4d8t`7)lqMYR8DZ@9^Y6fQnk3F z=SMsFzRVpv{8Kbcql_ga>0+wHNLU2>u)=t5ciMNRhX#~u2SdEB%?lsGCQLK{dH1e$ zG^VEJrZnV)e*%CL?qF8A9qD=sIbT-Mxr#=)yvsUFcKURvlb4v@L~O3@)Zb@A#&tY# z1(WB?aUCx29z_B`X#-)aID8j(J4e0!5tx!!XoZ4MA3r7BS%V(swWOUT+>Er4P z>MxT)5}i{&CqQHnM7x_NV+A<}*H@J3CN5TEw{0ghcwiKc!-NbI6J6y7)evtAZvgni ziQ1y~#wyH@qXJlOZ%iI4g)ejTVQKfexd!TeK);2@L6W=)J*P|H4 zOa)uM&C#TA1z13&%Zb_ouOrcE5$cNcdnEyNIh*kD(hzROS3|PUc)W+Mgto3@SEEuc zUivSux2eQmu|A#CTk>VFc)2aGgRM^kk6A7EPh>EDF@gSJrsKD}FKpM)_YQtjLq&2X zGWc*bzMJRE%F1oJxk`ByiQdjPnN@_k>7!+U(j26Rar(?@3TZA^1qnqnz5q)LMY8ON z;=g$7Xkzd_i$*|WMUtoYkklM|KT|N?7Ya+6^RW2g`oNT#aDmF-)yWMKo)<&1v?;qxIW_AUCi z*nwfQylGveNfOB*fcX10}Ke6?!3Y#3VHKYVawWV!A!%mTt4K zN+7akDKueH@`8 zkbTB=@a)9xqrU-C+&e13JXUmODti1Y%9_0O+9{_E2fP z->F#nu*!xPNn!>Hrx9xiEKz8n3R1CzMejBHhIul^1tfffo7N5#QGeZA=ZE0;v%6m+ zYynPCDb}T{f;R0&;F}?@B@mN937|wM;NI6Q%WP`HepAgE%LzXFIQDT&OFx(f?soLr z)%>)=l!@_YZk831%J$0F> z%_5>p)kXj8>mdL7L;KSgw^#xmZ#H?%uAX#UV+9&mypRA4f~Jwn#t6zRCpB?8F;RJj z+C5=1u!N^E&8h^Z3>%}=&~nqIB9q@NZ%M}OswM+)F{sYDQ~&P4L53*mu|aG%iVe29 z47R1-Vk^~cf&f2k@+XId5F5JiM1@j~KdG*HG-;4s42ID!`I4ZGR}EfsKK|L5W*GqJ z-Oeui4eH@|&5SLRWwNvu1r`hsn#^I=vRUxnP9UushYv?YKAIMKQ{3SIFzQSn zg{vOU^#C8#e^ptVSjtP2YzS^>fs8R6)LR;@?{37s#7?el$myIKS8R&ajrG$PEC>Nz ztb-FU>=00ZDymZBAF#3PjXX(NWs5mOF%Ve1LO(e3^RK6FjxGO6tZ`9laRr4DYy}|U zfLzIAYtWIrTmzf^pHBueATIz%P9X#fTsz);_HizT_3yhA{-x>=dNY)LXc6*%_yE=5 zlV&}l5by?0%0*;yChijT>0?Na++On?7$fC}2byr`ZV|NAQiI)ckjze<=WK?4pmm<; zKX8JYw&J-GWjz#@B&ncckMo+Q5i5`03ehCiGrpAZsbVJ%i@O;1D#}=z#x&65Mb$fS zS}XNUMvT~fehJ-?`;+?8sfBlOVjP*ZPz5)o%KuQpO=HZv$NVmL5AzjtV)14NbQm?tG>ndG_#5IIy15VR~a-IOL$2To>3CF4*Ns{mBf& z+4BiwfioM>_1(EkGCMEochv*zM(CagfO;PUDY zV)#&LeLBI|Q*nENh>Ah)j&R>?D{ILQ`AnaW`J#V6Q8Lv4Ee(bc?vZ&;T*VL|Y1z}e*UljmG!$4B(uuzuRq(2Jbw5lp>1OIfOt zBAA9&xl&L5TJw=eX4FA`*?+pB8Cul3-Vd;iq#Pa##Y$%ixz8zKnIX&xU9G?Pf%b+$ z&C~}0Nf_u#u6;7|Z;aFv46i2mB?beE|B^hIYm`f!;Bcr{C96Uj@n)n#buH$Vxl%0i z?w0O`AOsLIeTsZmjgOeo^zpvEfj$pv#ueEKBel(^#aA6q?lX~ zrbtr{zVT3MG{q}+oc z6RglV0&xAjR!HB{j0vPKE2paGjV$BmHTSf; zkiL@VoCZ@TocP|nnTh0~QtJ$L>x>i&>j;?yrOLA15B`Ekdm3(ol9o)3=% z3L&5wC$Z2ORaS86pG^uB%dwzq>H{<=W@KcS&lb^Sh7Jz7uZ6|I2y9P1I?be7zFl>@?Jjx{yGU#g(kq6p`{LS(d8fh{p)!EDe?B!yEP z!_e-Id_ZSoFJ&9d!^-~qWDAYk`qK|;PR`c~lHYZPO9Q<75rXh#pu%o>3j`Ah=7ekQ zVLATI^&$khVo}N*UoHTbKTy0T(IB7`%hF7VC@H%)Ij4B-@H6A*3Z-l8-%Y^Hc1^v) zj~VpjRbhYaOwEjx;CYWjq^+mz@57m3b2$YR;GdwLCrPdmfg`rQ>1P}fo9yl3P?Vdd z%;SwBTuoHbetR)cUb$J_q98a16;XAJ7szZXuF}g_S>hs$EIMd};S4U<9(5&EpA`b6 zQ9jZ z8Oz`RFecYCVjOJP>E;Cpa?&GWArzG3?0=1^+ViBW`o=P&*?U8YoGyr+7Lap4clN!w zHOgOqI25DhN;q{L_S(G%%j+lDf*!2whyJuzU)qIJ#bfYQ){cFWv!vNgxqK=+omJC0 z#n2xBV|?4EE@S-|Un0uom{APS1If^w;gjEB+={1ZU`vQKukvXcJq zy7#`u45EDdphfZdOy;B;gP1P%OAuA-MCUI@!BB>J%D#;eNJ6yQ>^Liy=tP=d3X)hz znU~gCF5e`d-&2&~J!EF>3I~P=6zDA8G!_+*C!!usB)t7*ODFR}%+j)72sNzj;ElzA z1A`VQ4F4jDU}iQDjMTlu_z8DmgxdCJkT-o)S6i2FPFwj;-VFF_oSC87tvxomD|LSg z3$2wxNBBkE{DEfjrb)KCcUIBhBV+1Dr976(b70o&ACw#_ZY2qB{UZP_$G-%{!GiQj zV#F|ux2!f!`xz=THSRorfI&(QLLD@x6-kE@i07sNrlSpY9(!en`IT{jSn;cg@rfvwv*)a75R3r`Ag?JAh%?60-6x7JkB_@} zL77m3o<%kSY+1cX^Q^BQmzCf)`(YKw2~^Eqlw?iO;q?PXz4k-Y1C6VN-d2(+Wz$Xh z|M3qW(@o`o)IJNnFi8Vh!T*(Py>62ozXfl1n}D|#3NuG^Bi#cjT#N{;$aXUGJEKQ4dT5( zY7teOEP2UH(=c@TC)vIRgg;$KcEr7^oYpjVZv(%h^*d zr`>R6L;_~(yjm~EXAeQ?5&CK~HhmTuhz%$l+M#l@f%Q$DHc%AB8e%%Wv!rp>IvA_J z<^y+76bEKt_`ek09uxdEUS<~dD6enp|Dsbk>Gx!VNcwtS0rf-h7gPm=^2S1O-T<-B z>aqB$um)92pYEZ{TRH!aXo=h?)OM11+6h5U{B3E9*Nn;97 zz|<3XUAI(*a((78R7q**4W_qGXq4F|awBj<^D+f#dDP%&U<_#-g#z}Kdp;k%>P~L{ z8MQeq=?wCj8kx8%+vjuK%C*Mm3KpJc&WL^C3M14s!0JES@4oE~?C`#VX}FtihIrcn zKRhRS=5u(8Dyf4f21B!u6TfYo`D8oTf;J+3THDGIrbKhiO1m7!*VTE=#aCgoj@~`n zh#v#0t>LR2HhZlAN|b!yd1i-gg6rQ$%`dG9hWZ0_!&800T z*TtNz4E|(H#net!b@bL|>$e=A01r9w2_*I{-OVhLmkaV7cFumE^CuAqF&F%h&12uv z>(UaFr6x)%nO{EzIiOQk`&yYgflkO(v_bl|2YNF4O~s?7K@#7pLdyLO`JAmIsMpYz zWMG86l(@msf5A3pzlziKtxua%MmRO$WpvT3#ucch$=RN78hpeA zxNyp4b7yv((V1_^cCZw(EXw)}xb< z?wI6E#-3IJlVrdCnk|7f-pc0OYPSVUH&>Y8Q$0PsTe6 zH#zu$?ZEVy7!_$e3$uM`1R7IQ3$uAZ%Ho2yc&d>eE(<#}xz29%(V!VX*YbA8cl7pM zfil6e2xBAu-ykb$gn?~jSM^2$k6gFCl-f5Jojg;GM=lOJW$n;!E7FOr`qj5!QN z&ohXve6)%_XNp$TH|@n1*$;uQO1*IuWy=v0pU=l=Ul70TsK9ukZ~F!IMT*d{$ogab zx^+qf)$6ME`!Gpp&7+?qexxH);`m3(3WCOD`LLBC-|4--s8RI5R_d7LF&@hg=`lTIyRu*8U2!V^nj7Ln9eZRtII-AV7PhKmaoV6d{5x%$E0zLKQFwld|Lt*;%NpV#m>4&!VP z3FQo$DW)Q-a`AaH55jJ^yURiZ8}9;vFQ4!VteyFwtbA}vrI6`B<*nA?1+zx-P9Jq4 z(lw#HbTO4g#yRrQ$ugn~z{>L@cTtyBt|@xIoIuvUmufQ@+l*PcX4wH4Q(cGT(hUm? zjH{wQa8&8ovxC7hwBFGrDu}%!AOe7%f)DmA`JlJ(^OQ}cZ6r1OspFF5j7c9mOs?Be zPa;X9PBHjN2PZUYqH61I+Y$E!Yzmx17C8`+UPQd|HM>*ZVqQiGhqd)Z4BQJ87MSDy zy4IJlU8rBrf9Z!g%6DfDufMt2xk{(Y?NSSz8`DaFi}`A5-wK|kr~+CAR*_l zr}lK0kB3V{bcCmT|8GC8e=Z8T4yMGx7Lztw!{i06Rq45?-uijoH@7{iKHhz?-wIr` z61V!Ak5!@ac9#`D&=DNy7KKw3=Q{pNKfm3CaIU!{j`!|2=H}LZAW@?vjr(k?l))C4 zWC&X@jfU1@c{3cpQQ#kWGJ!&bCaosohs2?A}G^P9J zAF!H|JP6@V1kBrd4M5nHZ$}k4Nmr+D5NJMp!qm2P`dOOAAy$cFcveO>T|7bDo0q{~ z)i5uhsU@z3b_>(KvD#DqZ2Jv=N)f&t%`%yUOBtG1Z|R`jGV7?XY}*S>F@2T`m7L`7 zkc~!V)c4Ahq!kiKCIoP2H5@bjI%}s7Ytk0RMYbZ;_;cwHjXJDh{a6hVm&z>@w~6+H zsekG;+(++v8v-NK{UCzaC!d|RwUfDQn5Xw)w-8WK3ntpbjatLO(I|O#wY^?g@wpHE zf6TprJ^t$NGt=~AvrbfmN~4mRz^Rce$_ldd0h6|%0`Ih+2`+HgE|1HDx=J>v$!yRf zOU&`81!citMP!j1YeiF33b}wb*lsDWVG05p3^~%{)9Ze7i~vZXmm!(*-8bvne0!3! z-bOz&cC=I_JC(lD6==_q!0*o^1xeUh(PXX7(D6EX(d6s<-X*~23N~4DEO^|5O^5S@ zJm6l8Y9c!WqlZtONV)gNbv8|V*yQ025;<<2W(oA+&?EN+y++XQ>wVB9KP`7m@^7Cv zvzgyf)15l~vx$nes%dp1P^QWCvT6p_sBvEg_SDMzP3t3x!cyM2Ce*CDJ?0O{g7uYi zpvQL)F)9uq@1Vu;F)w0c8p)CuwcYNIHp{Y8UB+^kLyw_C8h_!{iIsp2h4Ff1uIGv? zp&i3@Z%U6RN-6{%63BNR`6shI74(-KZh7VQ<_?CeuKW!>gmsI#Iu`DyEwB_}I?o{d z^5K02mn1y<*)5j@FfXPBas{k1@_9xQK}!h)XJbG@+QWsM9^d3-0v`^Dvg%m`z zZP#jF*`{=Gp5F-3GvjGWOCX9&#aX|9T>hY^WXngX9RUDR!7dQRV?mhL+FmGv?W&qA znCXNQAVkujmDFY$B#D?AGvGB!v;L0Hj`dtUKqRYaMFzm(Rm=NR%LYLN-!mL3El;oP z0_rBgD0}tcB5~RfVKY+#CTrwo%LiyuStS|NF9wYO>`rXi zJv-=wbkyO?ULg*!q1ATx@oQ6DV)67Z0-VlY1`$&DWi4GKulG;Ivpl5;5KS#+X%VJR{sF{{yPPhmUG2>?g?oAN~pz%P&lx-~hyf`2^|Av*^0e@!y` zkijVg>^5Xe^@Y$Y=9&fIDQqupvQyW{oAJ3j?w6u;4Pc?xAndxqKoE;Yj@c-)a9;v= z;%UAx|KiR(3#)KBqG}X>nspX@LzU?~ZS4E`N9Q}5hL~+O66_1&jJ*eCE(mHy@nkdI ztz;r31B1wg6wp9GhTIj(YZ#zh4;y43oaD|V4aAQvi&#UO%&bOUB6d{u+EPGE1Palq7fkfCDaiL~mD-hKG48g+x{ z*bacuO`Q-}z!^fg|IN;mN0w)3tRMe<>w+o&TfimY%jZMcq*Aa%mQP>r)y|ZP{ zo`{o`5rrmVIrj)T?zIVS{Vj|er!*f-eAJJB`?52~N(1*o`%SpS=An&syG*!0m?ZyB zuDaWgUE+O)a zaafr}SQj;yf0CV=cP#2>8h-!K+Ue?NJ;bAH`GtEmoXPmG9><(`Xvd2QTv-;u`W^Pj3e6S^1GK zgkgt^3qqmiFMR9`@kMRaqV$c!xc$HI*iI_TEX&l+z( zBo31}#nb3o{61r}c89D2K15pY!6K#`p&*T9HeW5HUrGKPF<$N9OJ{W#CG1FygG2?i| z3mEgpY)yZcgv`C|uqo&&hbJGuLz<4+H?*jed)SrNgz8VO2FKPj;K~4)#dtwAF(`A( zv!cR7;Te@UFWu#Wd^fOjlaIXD#EPmkBmL3v+q_Udm`wW&tO*jJayi>a=#b>CkROC} zM49g4=s3RiN_1SA{hKSuOm*4Jr-#ZTqUK$LC=GU6U)E=mX?bNvAraRE7w<8_iRvEn zXEvrbVfIY`#{(*(!5!isU;7^jCq?|U;|+NBhpgUuFQpEoV^c$EbEY`sK_h?w-q&oy zh6Qh!P*gGwWrui~T7I+n61UJ89`jo#54zCG3L*KAp44ET^(ar6k*4M1Ncgpp%`3Po zQazQ0Ke5Nrhrlq*{MyfSdlJFzM>(qjIbF0+R}T3jRyhBfHpp#M(!OlSb6zwH+^h~j z;h^b!pt{qV_h@4SVHZY-LCmD68ox-Blb0ETjz2B+Ji;O$Yn%YA${3Z5BS5psKm874 z3hW>Z70oPIP>J%4rc($Jx+8w0LxAzP%#~R;sxrmoc2J#&+{GyfG2}L_(!gtIl#=M{ z&2?2J<$}SVFXkf!y;1@zpjBl|fVsm6IkpA6!mrC>JPH1+!b6IiVBI+MtnKV(Wys?)gW0K9TosJ+j^Q&v=lta)FnvB#rJHXOe|(_zHN zt^70C`ng5JJlgY_KcvZTJL|yqwcdc+h~*2V&f((8;}!b}FwYOH zoYnS=rObI)n=xj8(LKe_<&_;w1jOAqc>27pROq)|X;!3K4V&~k8SDzeC^9G|plaH` zPp4NVGRzg|&H8VBQ9%YF&mMcEM`Wt}N}D{$l{FWwr(<=2He?k!`EJ}!ABWK*O~UaZ z8_W5u_T8ti-Sd;+M@LD9mj9-v<)Ih>st%9b6BQqo$2RTDa)o%dA>$0z`R2K-QNg{yrrV!`o5T*S9U(OAs3l3b5oF8vte2q@TU(CFK^&M> znADOz2=sMHi{ob9^{OGC#ShzXAwm2@z^K(9Ep1+$n><+0!Rn#%;XiXk_2O50Gydb% z8hf!b1Q6Kp=>*PDOFG`I1NRdK(Ar|!n^Q!iw7Wggz1gx zB|cdLu<1)iL4~nCQ2y=J+&}8-x9?4)8pgWqZ~&!VM~#G{#42iW-ivgdt=Qo>e!+t_ zt6SrIhuU(5ea_b7*Hfq|oY^t=(x%2n9cxM@=Y;e@IqKe6?%911pH3WF%|(ZAkOu`* ztA-wXcYtT^=ga96Ke4QU4^~fYJ$*2Lq|ua8v9>~Fb7br8!Voe4ln;c^Xn=FojZCDR z6^I)}*#@Fe1VIhX5U0*ajx1Ev2#e8W`Ry{r{y{GacIu1^w}C_qm(Vy0Ni- zF_n`U;6!<-!N7^cOFc^t`QCfeJT)lindPtzKP9kh@jwyxe*TW38Nz{g=b{w2^Z370Z=hOe-3->787bmlP<&Dg}&QXd6^1p)JT}EN^Ac& z>hg(hCLLDUl2e!L4K^Z{pMS$yXG$uS3jO{2%yx9*Zz}I0@D3R7MX0MBdWpFmBRuj6 z1h3TWooT81o(H@<$*y;Tg-}BkFZW^}-e|AevRy7^oZ^tRH@VjISy7wLXmpD?m9%3& zMl2Su-TyAOs0keCX<4={c$bZv=I((k1W&YZ^x@W8;lpl?2*8}wSyj2N3fQD>_(s?O zhRh-)Ky1q{oW9U3Q!u6iTFUY>AVi%%KxjKyTcu;sz0B=7fKP^nmkpdCBc#~!P*c{i z`c<5Hdx&dP07pQ$zZQC0i7~J0jZy4QeRLmu`__QydhDGjy%no3{}im0^N>uzz=(tg}?tO0Ni=tdxC+ z@^}}D{Ti&KU!>&J_r0b6O1QOI`wXxJhUe(o0pILAqxJ#BTDo@|16TKgJ58(8R}^)LkX zYDXqaA9G!qrXu9JR=cfXq%ZHDT79nZxXk|;waM<#WO9FU@D$i6A|ZsfJqzFLHf=1P zhQONk9<=A&8NMM$ECM~gLG%@dZ;PH}<42L8J|;R)7nQ^nj)L(q7+eH}0t}$oPa|>d zwpz@sW=3jtp*xyj>&rD2_#?77VuQnBRCy|&#|vOU%OuYNFM#Q;);LH&2f5A> zRMk&gdjtYk5zeY8Stp}A>*C#~fkb>v_7>;*_SlWl@8wpF=> zW_wv$h}pu^YmIz=E4Hz8dr=>2t4i=>#k|{-Gc1?rh_4f8hZctRq zF+V;*S^zv7CiCits6x5Lo`^*5XuwO=|8o_(t^mai`pDx1j!NOAtnX%16BY|^3p2Ew z;!K4*el{4ps-9EWO9kTyGzb>Mu5q#d*JTupK@;e^piYr4QBXh6orYh<4VoFu6!F(D9@6%h^{jX1HH#_aQ?MOq!ba=A_-RyTaF&8U;2pp4N+PHy#kb zO8ty#CAgpgG4<0iv8145mcvI$j0c$Le2``Ck_vf^^YC{FYz-2DHZ%x56Kj;3;r{B* zd8bVmC19H)Y5&>Jew)SoLIt&Bu))sA>Ops#QuEAaS*l)1+tky^*3E?lqU76RHZPEZ z<~278?hV)mz+)n-n|;lx4-L+A?Nb?1Utsq9zcORnllah2$%?Y8 z=E=}Cm(IGxaBzT@32QD5x$jt1L24S8ei)UIBox(X--&$lVW1mzG^C$niqFjrs=gVe zTi`d%wGuOlNF2MLQVD*G7MTeQl9Pwq;i-sArNJe;iDZwh5T~>N$N$oECd|SUDD_@~O^7aj?mcRj zNeAmuTTDvr)~DlssJ`Jx#aTX&_>1#IsRIueVM1&>1b3{$sWr({6I*$Zy7i+f$ijMt zdTWXqF&4%oS{2s@>Z7lXSYC#6CO=q-OZc}|BbbF|C(IXwY$tK)xR^Ps3oJ})jJbtz9oTqaB zqDoJ*E6LLCIKL+#po&DUt$!`J;cq(Z7x56XffEv=nd^_y%oAk1sJwR%Id?)`@&ws| zIW}CB!Y^xi7CsaH+W)2P{ddpA_fFhh2Z<2ar69OAYe@!VY|b`MT(bj29e_ysCp_*j zLMkunqUSu<2Rk!WIy3>U=QOirv72g^#gV7OoYX?c_h}(de1R6f1%|F6u*+;q??b#! zWkqXeIy#boZ<8CS^695x-7m_A-7 zDrht%FwAF&>p6jE8k5ZBS>nli3Ok6z2(H-@m6U$)`3A0V&8jFn0PKE&aeIy?ilacp zWg5~&-SY&+si&_S2jh~!K&MeYA6ay{HaqCgh_0#!W+DQSD+%0_M0qnvY+Z8d4nbl4L~eL z#0mzUT)KE?73>>^9SeH>LMMSWbb;ITtk`LjMMgV4NXG(cJpOcK&4DozVK0-jA;Mwy z*}%lr1)PJKWtb1js$?yhGF#O(iZf_asAvtX8d{gNzc$7 ztAGmy$sC>WYrx^s!D5xzO*1d&_P;?*!CGRe34>ClVR1N-#}BWc6XnD^4zRX(*8}h=Wub60x->*fs~C3S1b}LT1|jwmmujseMdL|d z>$PO(3Q){=ke6ptWGj!6k(OrSWT0_11y3`7xs1*^@~1_A+p|AoY<1?f)k`|$m8^1UFuUr=+wcN$r)h*K3lW7Eu2_dmUcohT9D2@$t(xpk z3?rYM)DZ{R^>AN6nck}d$nVs}ry#rH<8Zg`;-EaQDP%5z{oPF6hg2p^W6t*d zP>(H)z^MH%YXLg#)-1?VBXeEjf7N?t88tUjz7H~`0B5vpKrs!Elj(S<3=Yr#qa)ly zv{*BX+vOswus#I(?F1J*w8F7eBcR{1@^tTmmMhVnQ)c1QyIzJ0u_dwn&Ws?p?!H8j zxw6Qr4)aMpAmwZp;|@Y<;wjT`9#)YSxTOm5Aw1kv0NoWZ77#(=hqkY;MHGw8R%lDe zinsS)XYP=}@#BnaS!su4X#{ZpWxb+tIx>>;Nr$iqL*5FoE*d{=?*k0Hr{HX# zJ}dNAs%K#}Ye0Q#j6GS^W8O3Is~E$*oaOp|B~jmh&DGHyWuw@xFI7j^?qrISj^k2E zf{ZfG`a#-=8aQD2CmqmTg`g%d-QicrvD#nABdi}EIPY6?@hp$w1i-FZ(XasN>&Vg5 zmDbEt51Up?xwgHx$rhmmzmV_{YVrG=+g3>>kr-IeTwz?aaUl>WCf<8mx_4lTbqu{q z{ddh9wu8c9MkT7CP=5p6BdcyNGoGErbwJc^=r66WY)BCy3h8fMf5N4dXgcRm+<%FoZhth9lNi+wj5sK<~7X5?CBEB-1z{K+e(_M&mIND39x=OY< zhJ;X6co||d0c~^}nqLXuRF8w*CWa7}Y0Glinh*Rcd%CbCNzP43m?rd!FM-weMi`e&CtdH!@#6lB`03Qb=^I(c z|K39a#u#S6Q-KN!+nzKdXo4f6W@_|e))PyV0t?=W;9(nZBMRY`Y;nT&8HC@#OmCUQs|e~V>lsLF|zE)3maNpuC;R9bg=MY3&u%c zt9&3(0bFy_k{g(MVX5AXO>q86vBe`yX>@KuXqj@g#VwXyv$ch0MpypRC)1VkDv6O(qa4 ze0#N<3>|VDTFfd>m5tc3= z{cN4TUoJ9TZTN5fr@E}n>mZu3C;Mz4g>+IGZSA~hV~OC&jXH+mUH?+f&wb=MF;v!D z`PgL*4ZbEn-b$1gww}2@`bQH*S_}Z*WxTn7a4udOu;#KW7SvULf1bwaVO!-fUE8(7 z(hZBArl}J7ubsP?Sza@cH6mA0(nMfbj0i}(1Z*fG5Q;qjM`)WtZJZUB&mOPTJmAW@ z5+f=nMXLZC4}(NoR70fWO+=I?C^qv{W^5>U2G(wD@^lW(ojNIzXc|=^|qC`Y;kYazJ%NP(SC}^#R~N z3R@mLIN?28H=swE3r-249)-dzu0geHN)R;ZoSTPYj`3+9-bA|b&K4WZ%Z|B6m&YDr zx&UlPZS5&0hiQ!78E@gB5&LP1W4-gWxg~~tKu#jZbkT0lJ*TxYZnI36m|#14jQ>3C zWU(!B5z@De-bL<^S`%3#>C#w~4n<1zR;8wzejXzJ>ZUKl9xJ3?x#to=DfO3IX=vUB zBDP0kUMwgKAfoweZ{4FEpBG&jeRBtvIK%2;^uH^ z#P!GI*I|+Os)D)El(#ZQ`%zh&o$>G%DL+&Ux-J3HqMLi%j zcL8z9#(>PXr&1@{CwF?Domz83gcxHyND#Us5GxUT=ioc)!!%%{h|c7rEFS}c`d+o# zDEp#*4Igx$ecI-B>clMK6vI>`S1311>3SSMU2;2k;Czf&IX)h0qH|W#czO&dpk@?9vH^Q&omymMW08Y}S+&igT=2=-f zd2RyTKKVR&B>2{OpP_D-D12|GVm$Uf=(XA%=?&PRG~LSeMheV|1@RoI7=>)>u!PNttfc-1bD zIt4%D;+LrY>x;Qr>pb>Wt1>>vSBpa8n>c&D0poQow&>}C9AA85fQ-JNedtec8>mUp z!hvF_nFQfj(vX(PgkM`MeadGdmGwJW%5)Yxp9&3?{oySDG>|JJ6M8+45SGuOw=j|hb054-Q=5#t4+Gmi` zend(xD*4_fx3}Ye*TZ+nz`&vERW94q?o+gkCi}WE)@*#iyTSAVS|a%W*JbzDqN)qg zNU--lq8bpWCcQ+(Aj|EsIz4NsIY#b_5s$ek$gTCZ$Y5F%d^8+5y@2)x#Gi)3>|(bYJ$ED$OSnExXZK^wjN8w@)ebs{ z2nsuAVbrtM5eAf%m+X~|cgD2#2m@SXrcN=T(o`L(5r|J9i-^G0)lfpLnqZ-3dBDql z+8(16p*rdZh`sRZz)-gmsgkGL1QwnyuwO4lFj6kP1PKsy90Q*ZJdz4S*JL z;ljrex+0RY#SW!g?SRZo)@oc4R0oM0bTa)Zt>h22xR#J z%S@!haF26c+4?FUCgljVe|Y+jis&^{hzd*JS6}v@j+Od^cdJxwA7RgKCz=OPQ5896 zuh3tmNA@@EO*FD+5qB7RXt{44cQ7ihl`=RmN1B~5_j1#O0_DOfSb4E29{53xyO>0S zxFF#r4C?!*%hp~}cQCrhZu1BBLJ`EXPs&t=V{1~xGmP*%gg0wIoN}B96~obgz)d>vSs-^`vHNkJBhmJ>mLa()VM-FpqnxseTc@7 zlSc4u>9N;+kZJ#nQeU2rt>r zLc`MX^`|_tFh&}Af*0jlV(r>_QJzP|_s}HpoW^ew$UWbkxw5%bH+%)o&&bXzr4}Km zPC;r9DK;F<%_zn(x)mzfbKA+QuVcuB%&?+IB-rWuX#22fyt&E_%IA+-=TEWv-cq5umyMTJ;~APcS~BclSYb=S!ULT=uybpHtR!mD1%R#0S`Ij$227;f zH~*amAV4u(pFCo|0dliq`2);>iPM`C_ju(^beyl<5RDvXr&0XBYrsN8FKxvWIljOs zK50BgB;~7uWhcw)&Py#Jg&EjDe`d+Az^{khZgtOg`uJd4MlzvtFfV;7Grftc}U%>Q!X# z>w9@^uqM>W5O-&Pt}U60S>67!RR_#^kc^^am<@%!0mn;3aOr8+e3YM_)6C>|h(NaQ z4u{&TTXBy}OpJSl<=)1JC6_%weo>sw6|4%Zff9He7TY<`_7xP&!`eNEy>gyK3OfqF zg}Xl?(GYbKAzv-o3KKX>Hov&;OSYQN&1VjjED9-_u}@#bomc<^xy|I?!6GPo>3FA<3)MXH(?axau5s#oH#R> z$UNuLCx(wP$Ms)AUWIDrh_R5M3_qEx%JCtu#O4Z3TFWp^ zGV&IlPW)=^HK4iFSPs5&(w+H!Rrb`n6QO=}kbN>K!jseh_JZY*v#J#k)^_+&)3z|b zY$lYlSoJ|(*R5-o?l)3k9zG;IDh7esHvncJO<7M8f-rILjHDv6@Iy4|;CFizss8Gulg(S{$^; z8F{91+-|^Mpai_%52!fqP};7YkEzm2pkwurY=J^G>GTco#r~U-au_v56{MY2e4f z_2G3ga{DoAE=%_oYAd7M5;!%B%LIpn#1j)2aAXs-qx8{(I&#X^ST~8$^o|>@E~NX; zN>sU$mlgl(j4ly%ro`p1k=e${gh(go78OfG6X;hvAt2;NWz#-*@qwUTnVC2;$6_{} zfuogJwqwADr)Bm%fL{gR66}nEM{B-L`*m6<51M5qqH_lxgZNrKJYC`zU%cp^31#=8 zZRGw2gm=uzYm&SKYcqpEeqvbyfD!V6&uEjwM}Y}4s;x)0oK_h)8xOZdArQeiQfEUi z=6`B5?s{NwO#r!4vjeGqZg!s;-UGo)%B_p%Z$VzwJY{&Sk;%80Q0^%)9U?)~Wh#mM zc?`TLxAL+$DwelS3r@OEiqG?>8eHS_g`QS{sBF(n;@Vc48zHnLK4r1{EnpL^zKuu{ z>_fF>2ywq8fG5X4E0_2fW||GimOQ@zAog=N@Of;ZvfC`Nd(Oj~LqWR!d@2-3pc(iU zXVa%7fx5?esv$U)QcWfnM&xU^K_fWELnG@I{U+V4gG^}!mjwQm-t#6VekuVl*yfWD z%b%?;3L3RB|80#!sVuCC+?1%ec|!$Gp!emI;vHyztOTARvQN&pMcU{Nu;+VcD>Not zb=spBf)J3@biJ#i8vfH33&0>Q;sdyZcIMXfM6qD`^8ap>*8o6)Ar3d-sWWRp{kk0s zZ#@hdewE?V?v#%u`@eU@{+T)?_k#5}%l22{tbyo8@obCJZk!=mp;;6f1-x4swXAH7p0pK@HZ07i5wH0WA zk0y7yOhkM3Gb143<5}?^(Mm@nCj2+-O7T!}^e|ndyj!h2TI371QLBx*l2gB&x=-yO z6At%fqOLqUO6653MXFDLegnp#jL^V?G$iQid#bWQRL)OeT|_YfpH$egzHW5XIPFBc zA8J!%i7)-c-_&zjqYw`c_h@GfHmT+3b1Y}*d+mO>OfZ?CQl}_%Q}S3wTfNnJ@G0Z( zt+rvAJ-?f`%egdk?Bsg6eXBB3cDKjP=FRBK5sOt43na^bB7dfYCKPqOQK$>>n8>ue zTGB;{*z`fmuguS?N`N#NmPZuvn%eBE!EXIgMwyNP?Az_tVw5`{Ci@||_57I2N4nYZ z6IltRAtHERm#$f~<++8$3}d4gSe&BpkKdMungCy}>{9lz(B~~yB>UcPygza^ol&J1 zfOjVNoh)`~3^|Ba)tEWiBkosS{rupksdURxpFmikQ@te7!mo+^va#Ne@B#}*7uE&2 zv1n$#n`J@h8PU~(4S|aLU^RwYSer9w6GB7}V<0We8cU}L4?LRZ8j|J4(6RF%GPh?b zCChne59wF6rAO{j#ESbqSaVVN8fA=gw0UnU$co+Ac&0p?YV3`m2r&{vPQXWVFs zvG^@h`L;18L!1M-H+L_lH%M3rWS?nk`MSx9Gsz(j6%|SfhEMIs`r|DkL_ir=$~8T| z*cv%_DI4?VEN5E4_4MTcb|F5#+Q-Wa#`5-~Fqy84JTP?{1D}z3>P&_)V-s+Y^O&qg z?t+uvf`^2Qr$%1-6d5tt&ywAU=Sicn@DEqGcz}-5)Ew?-%n*U=w;Mj)>*~T?z3JL( z1KLxMq6aE4EJ*ZqB7fPrJgTS?z#)^%2AQD#T^ZS5dpNQhhKbb2ZGuh^Ln)Q?g6mHZ zicQZ3UK}n&6ey^pg7!K@mj@lxut@U_C^#=3w7e|ubN$ld2Fbnro}Y%#-Al{P%NkFkBklbx%Ku*P zB#?32sk|bKf^!r|aJ^|%zL_3)a5hvLUzM>@K)jO?XvEU6!pRNVfFoVsxmXDcyf{JyCmdpK6UGj;% z`%W8-Q`76m>5Kir;A?cFq_DBQ-q35jh)GUBs-og3eTsO!0GmF?*@t#*O+{cGcZq<5 z)|Pq4vk6OM1E;TxVuAu6E|(!7#x3Bwx$4-i>PBEM29vu=a_rHRF&yekL7!dwt!!g921}=3gIXjPDV&VhEJPd^3$a_0hz{;&avhEk;XSagykpH|u6JN066n|x zK`p+-(jp9pXJYXD+9Ew2DE>y8+1^1_1(6`;Z$U8H4)7{V^M6VKKS@|XE?huIk zvT&rZG2YPfIx`Y#O+7^!7?=dqmO&>tmF$hB+omL&i3v6jTUp|HXM|4vCoF>jl;L$H zVV}WKr}zF`*HCx8G^Bo2 z-&8cKTe1)JL!Id#xugKIw%Gp^$GYZFT5p6B8PWibN0>g>>xvuIQ_Lyygyb>tyibeB z#{U8jAvxsu)FM*M8SzqML`6nf=wa>pi?xKRkb#}x{e;1iLudmNdO9BB6W?jAnmL3Q zW+~3NwEdK9g~ma^WMM~7f8mkM4*sx65|c~r%_YKMh?d@%V5`xt(q>~Q^C|!nh?0FN zwmkzF)$WSNI2j-;lBO5EG>7%YC%z`8kKV}SWh1Fcq-i$~?~4g#oFtz?1Rb~aSLG&n z?}lL1rAmj|;wSP8mbMRoj7gzW{rKR_e&%Pmj7jwr{1L6>#K3Gz!{Z7l{$W-CXK36( z`&rudXazU;^|9#^01Uv6(V&kH;&MTDru-B$AKr1N(3u{J>+X0;TUoJ^LMD-J$tG$f zfDY4udn{?rz9;vEAu+3^*f}Qu#1`^IdyPOD@uo`A0z=~_n!Jd1I+$GGRTPFQN8{)<~n9ZBl$^ioH{3wz|Cjp z)Hw$k0Fb5`ya0<4ZL3_Ym{%FPpb9~h<}J%?EvIVT)@}b&1enu1B)Io8F%w))*+p|Y zR*BlMwuYrn3twp*@&oMi@&oRJI!v^NCx9PTNH0HV5S!#-T*hv#pQ!v94{bgnhtRv2 zqUz4q-ABT_4~ z9Y;mts{s_8U!Tz#!)aG4?P6Mmm0`V)^UD*?E)925SLL_4TLm#(`{W>?q-UE@m|cUbuIbG5*p_$Ri`6cxYK z(=y%jT~;4_BAkYZ&el?6183$0+Ryxha2yo;Yc7bJEjEXV^l=-35Dsrj9evBX1&d?} z?!1H#l>!2LAapNuh3J-tA=HL^9l_l&*E1b&_{E^#h;N}lKj4X>N@Fo*D8mukU@ugM z|Cl6G@an?>{iYS!@RLk~5N&E}WQ9JQ>ieo0_{GQqmBP%i8+r`g$Ye?ibe06Q;Yv1; z@|k!c-FU_YBTG`NG)FYoor^?gl8ru}0PD)*14w%5h=5L7UjDlk9lMn4A!x!8ly3TQ z%pkzR*yE{t?}${z$Y5xx;R^!!n)36&PDIR%E@Ut!#NfUTOGBuG09J#zASG+Te8VGE z={i#E=~4(wpZ|sa9ZUi>acyx*g31KvFdgK-{ud0F*d3Cu@b`?e^OmczaudH9-%6j8zYV)~uq+^8~q? zdeB2?bKj6)HGViHlpc8tT60fyc=M?i`-e6kXNk7%?hKnqrBzG?FjA2oV?ZD6A$d0& zV|*7qDe0%R`cqVvVo7H!Y!LRppV59T(Dd-c2?plEqGNwz+7DEtm}IAVao%@E>?IUk z2XBfl=ugZIBv9lW*3@Nyr|B21rfb4xqx z`=MMp3Wm|xGv6q_)F|4Mo8|zHPv=_NVugn$p9Lar$x2X2bI@uEmERA*f33D70qxNP zHNqd@5}r$Ey>$Ko)h|7iY@+%df+tHf+yI zomU=pey^qXPAPGO2R3Em8clwTj-W7xs+iZ*Cl|hq;&iGiis4`uY@fqXl@mVsQjH;J ziH&hwSGJR9j;w{F+hJ6@IpSPgnDNh0jM!16AM0Q%;9=>JXkvrNDQ-6qc~{t;IaGkQ zbpX1gYM5LqXuTFIw~A*N-BkiF?p~x?XG%UvW0JUX$;H@@o+MI?XQ4|eqFKbul;|%S z^6QDY&E=O@gU`5i_TAUYyEH|iOiDW^wIL|QFRVq7feZpaZye1;?(N+FQI=vB7V2bB z+*iB1ipB^n^hx&T`WbNSMrv;8L|cBpz?zuVrQwnmfa1)XAC$X3Vp__|Vo#H=@TPZ@f}>Io1Dp?Ce~vH*gI18iJ!g zqJUt2lTeo3mq_4)7rJQ}4)R&S222Ieo)TBr$Yj~%#63pMX7)6Syk` zk9bzU@6*UTok0oD_UqN&Zl9q>t@OdW6<9O62*R1?9<55)~RR9 zSC=F{3YJMf(Fl4G4oSv0o z1?OZ-$HvHc&+G7L1F-Mzf z=iLvfn}>>qOtkjh;nDL_Ryv#eNmW@T%c%;UZcihsr5Ox?_+{Zb>P8q1*WXpK8cS#U zm3)&bFsCs+GEC<4rjNc>a12MjwjR{tL666D=iqvW1DaWr@HD^rfcYn5M;Zn!F=9>_ z#*=)iq&MFM-S@x7H;!i?Q~FwTD%%I?k1g>>k-@hd((PFY9yu}TYUlIPe)6K37Pr&| z!>;yTUPFnaF@G6KQfxw4`=V8STH`jPNSX#?GyZii%E_JcQJ9TYr9o1(iK&Vl(#;HA zkm_mh-75cZRa499{70B>lbwBf$Wkt-IL21Kjgoj$S{|MKGNWK)?*g?&*HB}%e;8c+ zyWeKUiA5Of^Id=+T}GVdivR@Jxe2w{m}O!N|N9DXLCsDGUvFsi>aBc2Cj35NO3N{r`e(V(Uwf1gMYN?k2)0P`gPhPeu9_txq=w)EEa1J?c>M z*Kt!VNvVvI?7^mwMs@xyD(vU+9+!x;syK`Geui6X$YMQAXj~!&TR?73=0Rv(GxR>- zh$frUmtFP;il#W{XnJucEU}C`AU*!lsG>PDJb>fbGU7e@KGmgIo@oJnq8#J$iDG48 zw_Zj?5GufN5COXtZ#JWL&?wFgl z?~_)3{KoRV8qO^3T+hX?t~Jnp#c?bN*!82ZnGJ8G1HLdw^;u*`5_qO`^~);D4v3UD z6%A{g5M7X=u6FU`T&zY#BN%)5wVt(q;dd8T)W0eB8 zoA@*S1h+Uv2WzmEvZUpJP6}B%Ud7j`B0ky95$Mr}M7ukhLuBt)?S1<7 z3-87`Kd4qY8_u3Ys^z75X(~+&lFpeDFE@0C4_0Y?K||AB|GD9RzwPprcbMU8z@!%K zMazumxmar?H9@|tdPDJ*d;Q#DO82WPnIM-v!I2x_VX}9Xr48C$WB|v> zpNQOIbk(x4*s$sH2ABLJNEZS#ZT^A_zZphdC|D5@+gmEK0_`Z|mvXd3@fUgwo?QrAAf zbsW=CN3Zz^d|)BGKmu?B%+30UqA`4GP(7{RwYZ}26jjp_Hbkbrr`GAO;x6@s9HjNG zuI#D66uqrA5NqtGK)nO7zRzrV-RJ8Ygsbcl4DsXNVfGUr${{tY^YMz{qD`8^t|{IL zp`{|t4gZ3HIHfuc+CLW}I_uozDjcL>i_Jjfd2+{vU4&29|713~MBGEkWz{o9@?^%{dE12o>JSnNv; z&f)G)CEa+3N&&Zr%@g$(rpFYmcKB4w)swh=d9qDK`URh*F_9S_G@@6n>gOMWg79ZF zcH@t_^TiVS=}#9%EfhOO9k>O(LrW@+qrYs>tqfDN^&@tJ@P_eFmdPpTxm{1+o& zaotMoN8f5;QkmIy-I16DFf(wP*tYzV>W>D92nk9rfk`xQo`1c0v1*0FDqwh2i)`^z z$2+|8bi1=y4;nPyJxI9CtD#NE1#8?hld+E8pNQoFv z>)FcVieRyzpU*sD%lygZxzbQ7CaGmG0G~h>LV54kY)>3y z^QZ$ac6_xC^gk3ENhTD1(`ijomxKz^^E%=k#EyHv--)i9vqpojY4;gCaEN-D zi+EPCrx!!c?Z}-<;v;5fh$3-MT~#nrK)&0N0o#<$6T*4FlDr&)#(%0-PRA;T!@0jT zg-Fbsw<38D9op78<5>wyy=I6Cps})}^(G_(w%Fu!G>qbmmOfbOf`ws4ysHMkgvcre zqe9b*K6A-su!!HF3JTXPr+vh^Ta=fA7|Fe7c0d7}d32W0$MR8)TNxOY`|0vP^R)Kjx$-2SX$)?a5_I@cI!n6k%RbC%S*1}brO%?JIceFS3~H(7mIN1+D0?lW zR|yC4k5rBWNJ)ksf#8<{`PoQ5&22Y30m7=A7x|TuP^1J5Tpc?U8Mix5_uSOSqIX?s z&vNiH@F_7g6Qaa%E6B6{F{|>R>Z2VhZ(}v1h5}Xtrhhd6MgeWlPSqy2u%v!m*<)t- zvVOyo(7akmd1~K3KjHv{oP)XT*V^mezriVjrsoZ+^Kq~GTA&`Vi7{-nGi4NEj#f`V zOK~1wVAxDwHhOi##-ZA%jPr-3Jt@&w%_I4YH(j0PetSP`IX*^QtF-5a-U@@AhL6uk zCxj7I8_5Pz|2c@q^-P>Ol09SB^&?SPAOM>%!>!!CVuc|A{&RQ&E_lpu(a=GWSAlgE zy8Ni1B~$n!SHDuZ)GiKj#ZlBSL><1BQCEsPWORt03>zE?u~d`=yuBlG9%etUEK?Rz zCyl&D0wY{b^`aaJ-HC=`39>?HuSFaP)sR0^Q(_1%j;j&T z?qdg3xm!z=7OL^-_gUoQpiK11zQ*BV9v-PNo2R)$os>=F9%oD69uWXLi{VRNOLcX4 znoUp)GMxMUr$*1SxJDwPUEQP1t!}_q*{1-GMjSGB)XQTm1MxwmE7&SWm;q4^A;g3s z2e;#jpE>ULyJXh>H%b)zO}(RXTY0FNPam|`n=tX zUT&)A2${`G#bEgnKrKJ!)=}U0eM;Z0myflX1PINsYiDNvpME-u`!g#JcsUbsppDHU zh-1x}COnwsxD@3ZL(;#GMC&Z}G)s(Dpwru^Amchv5K&Q@jh?QOHjC-FJ;#`q)_HL} z>zWy8=Z~yKK(xujqyWs6p3idNw;mD>7oHCI*q_vqGlTu*lGudXjF~d#*gC&QA8ce3 z%!KJbf|jHd^w4tx1|kVt&n*XgG<8cC6!5uf0O{*B!d}Cn(S+4V**WTCj;o6<+)wUU zu63IO(Oq9a5hMR(d=)c}RGwB)l-g1rk;!xmzLzo$(tDnp(Th&5^`0qoKG#ev>hnG3 zt|)kVBPYWG^wHKv?hbO0f0h^ohzHSnO0#5u6pHKk0_8+h8>-+kuq7xs?bBr2OnG}A z!A1@a>}gNUFL1~Ze5F%PqdV2vP@0nJhPPOSZ<|$_!3Ppmyy=nc)RLVSRAnMDxY#~D zayOL$sT$bZeq0Cu>~MM&Y_={p)*3Wqm(!~%N~WT4?_d>JFMZh5a?3=N5!LOfRZO_! zRJd3xdA309c>IkI%XS3!qyy80_P!x08kj*&_)xGz>fEyBc)=rN>0+tG;|I0waDhpc zV=zwD=cU;<_O8@g0Epzw&#$jv`Ys2eYus`uWu*Xi%keeLMvZUKJ(Nm~ zj}1E%vUlKNKL)XBl^Z-nbNAxE=nHP-@}dmAp!{4UKmX&ze2Yb4%Y)t2_7MX)9Y05^)%&(Y2qNxOP>bL%KUfD8yGXR>*DIf+( zqxO8^IJLk-do~keAnncx^Yk>22s2e`e>VS5Onl~ToKr=Q5?Xkt`T z)NE52d)7oHFE}YH=pdQr21Luw9P4R!m}|b3uA0fZ;f=;Bo$UcFt(T{9x&xEB zm7YeRb1#qnMQ`&(0`>0lOH#IInX2f!}u3Gt6KE+;?U1`AnSUD84{0FDx>>tXY(oN$lRHfO`5la2h) zwHnW-bsPsfu#%wE6zi}kg@~ZQI@}nQrAK}1l2q8ZifS5}Ul})|eD?Fp7E6{j{S|&% zrz?C~*DdTu8&~-fPas%Ov>h!WQ5zBX6|~5s{9mzxfXqWLH3HJgMDc*EKE{E3DIbP} zb8(FJag@+4QSXR#zg9L~f#q=PFHaLJUL!-hmWWOx0Qg1n>WfcwS`_DRNy)jq_9ImA zw?21ETwyCx4fWRHihtYOeA1U_gH2ZH^l_k5b9Hqp#g0@2#0|NSV_STi`0}r@%$ar+ z$Dk^QvNg!I>=vf??uq?yKL)-x_t~;NR57VeA;VPifgSKQX-l*p^piP_lg}|N@X%Z3 zA=Ctj{VW0%(}Sl1yU3~Ncw|8n=EMfq80E)GOR?vRa+Tj~%jqsrD=s9TUf$Ss@ZY2o z;u6k3Pz~7I*pD2lD z?qFI)RVfvuL_MhI0hyv=XFZUrT*m9_P{6=7$RJW)2~-nXqGZ0Uc1ij4Kp7&Q64Zfk zP*MEqa8@nAAhe;~JLS!CFeY`r_glR(2W*APb@FG0QPW-a9%E%i8kqBLu}#CB8s4Ut zkBYPdAy+8^hp~nuhswE#w#-IHK0UU~hG(cT2kf_f&atG1uc|=&aq3%3Bw?Tet2J@W@fEaGX{;~D$>bl_L649cz#3k zBQ;ad0Z2UwC_tr_ldn#xs;1YA27Uh=`^rotV!Iv05OovL07pQ$zc{$Xzz6%{;OP0I zU8wrHQ z9esE7<{<0a9PZ;5oF@qBhPecY?a$yZ_W7L`bf2dbX1i6X38CVCXZ>X=Kp`30M)9!j z9jlozj6P5dO}@DHexAiy>HzTlNnk+h1hZFA^WBa* zmbv0Uhz1uAEpizW+k)Fj)pxdRP85jmnl(G9Ma~({((wCvWR7z}y6)=Xk1|fH z9jxE~vGNUTB??yF1M7f9sk|xqSAW+Y`MZJG-V&t6`IsLEPf3y8$ zRg+@S4Tmh7ML1wT!3&CBv<)n#m5_#BIzy%aWDBu$oS z$Hnq=Cu?iJ>Ze+##%I8~GhWpUL<9{N&}G(0jZl1SH5!wD_Z&bbxS7B4@He2Ic|LCj z=tPuDdgRAiblw}U60Uw&B4Msl0sI#P`xv(t732Wy0f=dH*UNDn&s_z>#x5l{UfU05 zvM=XnV9>)sH5e%mBHb7l3K~5t`X!sJw_E4phnbqXUW#_POtQ(7N^kYhUY`d#5I#94 zFSz^3r1T*405eJ3L8s#kMXpk?CkWcgHDoK4O5Lx`2^Y%rF-|$w2Rguwb4~F`DHg6> z>XCFc`DaF+=}@-U1A38~!{3-*Qe`{_0bJ6MEsN(k%KXP7iqB<=WSy1SW3^>(z@DxH zSlzJB(0-Ur>!iNBwHsQdiLQRjMv4dPmRrJO&hYdX7Rta zsEJtshl!cvpnjvVFRzEon>z?(ZOh|K+v1FnZ^-+8E{A8%=`qwSP*Xn?6p-}s0iOr_ zF*}18r4M;ydK^Gy7pyAs-T|??usy1x%Sc*0yQ573Jk2nW7j6NsvFQTYc#WZ*rQ1nB z*AL-Fu(`$M=XG`|7nNOW!v1(|fVN#XMy+v)J-0fASpd|$2fr61Pqy<3>RFxy5F`r{wnXZ$0%-yf4h~b;MsLnL zxfecbyI(_UQ2R-u<44$qNquldF*!O(2YJW}bc{g$i+FvU+3zSHnmmMH9UJj*uD~qMTr+oHNk1d5N2{tFeZ6zV_pK~%JiFwS zzAj)#8BBT&<>u6Hj-~<#;lISD%)j%uw*0P#g&_8Rn~FJ9Gg92yxmi=%hregYtG8`? z6Hj(TRK5W17^EzkTI?eaV7$k#kJ1LEwnJ`j#P6bx&ybR9d!jgXxQfG zd~LFpJXL&;#q3r~WvGTsVah8fp z8}jZcW)@tEKzlr99ctJMD{Vptd}%!_faY}8uc#qn(W|u0R^eAHNeFGTXUbw4sj83) zj!I^qqlH0ec0f%A@2%IP%?Ve6!pXqOzfp!GO{No#{1wOben;mC`S7c7UVWe3iBy7bvm ziz%Y<`r)in$y8n^NMlQ#MyMjC=t8b;k7rIMJuK_VN+Lci z*8-FyCAH&E!|3eDUF3ov9|Y1#<*)Wa9YqDz?e|dr;^w+imeghj$0dOneyn3&jtA3Z zRjk8~+QC~F0^3P|Ti{9Y?~I>@w$YvjwOLAIjGKYY0kzh4u zOh+vCa4GA37m$zqBAxP9m?aHbvJIIQU2BE7ot{0IicR7e5B3I;f2qVlAZ?SL zn-+%`phi^oPY7eNjbLm%>fG$7;RzTvoXq@N#iYQ-8<>^%?toWDNebNXwE9qB)}}#? zz8n@FI`kujy|~_{6!*m388y!D;+B;67Nrn3oUs(4k{22l9bT(6+T6)UcU4YJAQt?H zx>kz*W2HSjD9dh6$l*7N%e;YxD0H(QpXZ6!HJDp@`%Olm2-(lTB3o4ei>m5ayUHlB zouA{y3;#deqqhB=z#_kAd^8mDB=+-WVaJ8So0qW=CcJx78 zY0^&5_fSHEJDjt8aBn&MABdVP<7Y0;iP`mgoO6`~htf6HdVwpFSm2v1?HaAZjglex zmg;=b{cLjNyn|LQO+^W5#i+@+@L%B<-UI}Tr@RQq`CHGN~z_v&^tK<)F-j=AkE%O(Iw4h^YTyiN| zps$$cq-hIv=a95$n+NySoXUs=t=RzE^;fDWA6N-tF`AK#nOqRp3|*&6(SIDI zq8JIV`=0NwKC2)g$|ApKV!1Pxi!A6>ml;-WO~Js?)_EERxP_cJ|zhg``cLp?NX@$v|-x zkd2+-GsN+8U~5Zm5M3{l{kmFxMZm|xM=N?VW!EFBBM2}y!=e2w{dXbhoF>J7MDyPg z!JfCWN*3ODdLFbR&7sp>TUtCkIoYJWH0#QBOyo036ReJvb5lcf9G(*dzC}&m$Wo66 zCz=UTrE;|C5ju(O=vk{qu9?kT9{?lpx^E#|6w*l(N`yO$oJ_h^8evS&F+zFp`t^m< z(Z_MsdqUSZ4BHGS(yo$H@mB}W$+3FwmU+Ekq}j(?E@04pFFFnIPem2*3QoV(ipjzu zpS(RD{#i1vfd!)jYX(V(wtUE9SJDmhynwxO(-FC_n@Ne-k&!BI z18eRGi*t+a#N!10eRi!!Fvchr^9({3I+~a_GZ<({8`O zBMd=YskB_(P+eRkODUHk^@#%+O3&T6-_caXFNwVX0|3u4Gb;kt<^?tg}4xt*&L;_M(w<|G(AC+&_czt$<5--SnX(9-a< z^?SatT^xZ^6i;68yEo^4PH{-17Wlh&8(uJr_pPSnBskhfg>Fs@qm0Pag-?-p+%%t_ zf7lsbH2&A5S6OVp3Xb+5$X>@f{zJv#cYb%a;+y8+`cULmr)le{ypGK>D0$n|m8E8n z*t>k*^yC|7el1_u`QOgp+<&4g&t4sqxYnaoHO)fEBc>?CC$y-dVG>*-S{bb+XBr`Veg_JholXCi5N=fX z3WjdoQZH4<_KE|%6b51+Io0omQ=&)Cg_jNfH0%c-c+$GCSct$p7`|0b##O6h&&ZOb zQG&=P@D}2vBXiG~2MJ&gSvmc}etEH$KabdDaXJ1oU zdo}+$#=m`%1sK)^Sn8gMSXuluh(}tM zG6r{1t?O>IHwC_P|Fe(G+89Dmu3u>Hyhj$QY^gl*DlLFc!O_}vg6(zV_I59Mc>B8&Z38ZOFpm)y%IL9 zfghRp<-mTnmenZO;=O|2?I^d?=5<-ZW%e-Cyp0seE2>$9Ogkv7ywuZ3#e^HNozGYd z$dv-BhF81z=)OKr?_hoc4_la*Wr|`@!I+^7S1v~+QpU+j_t&M)X+Zh$6C2Wp;zYdO zn2V}R_ffsU;#M{#l0Pza^Rb#uE1S}ym8Dr3m*d=6z3S|BusdOamW6xhNR(5iZ98@s?m^(!E~Qr?tnM(p3}X7=bUwU;EZl$cul2QOFVR@R2SPSXAXcc5ykuzX zN#-ON{)OpbfFb$lakkC}J{D%Ci#>9l6CLlcc8m%c8Q33)_uGW)Z%9gm=9;DC8}<24I$H`+WPn z>4SPt-YUL-LeA`R@gF~}RM$g86ByU9t)@ly4<|Jn0Ypz8Gi z(F4#ne>YCB)yc~3*g*E+C-p}k{$zbHTkxBM_6*g6OwKq3ZWpH}--#>f5 zw-ClXlV!CN5xHKdt-%z+ z%d~Obx^47N!&=rx>nDNVdTZjWVH#k>Obp^*kcBQ~wqw65m^+H%)4?7`;~qIC&~#E> zb~+Z_Kzu%PX~=XmX{csG*<}yUB36~xt2pwLGud01Sf*f&HtaJ{n|rIP*8+;?+$isM zbBf?^LMG$?5f0*o%jj@3N$|1r`11ru6n99I9# zr>iyvO>gNdlq$oBjs5|Qj;pMjX*cu^>`6_4ANp|rG6UFGS}o@np?JGm%!2y zSc1`kH2){dwTwKqb?o-?FE*bvu8@eUnA<#qwqFtbV_1vGbTmt}3rYetRt#9(a@(J1 zkm5IYZpSi8|7Q|sdhL?B=%|t_$a%%izg|cv0DZFe-wqQt7j=()D*nsh`4M-=R@D5z(2()3@NC3~neE>>zvLfvSRGfv;`{ zzd0e>Kxm*yav`V$TJ260S-RB$PW<l)qhR9~X`Bk#yEIg!>~god!qpZh5-iR8(}fn9DPnnus^4f4smyMSSTFf^Rq9Rogm%^lef~c zxxtm{x6Wu5+6r;1Z%J4{TO1?cv|H09zqV*iNjW2sHfa9TC`1QUTqD4jMJ%D68)(&3Sea`DmctIEZ>M2dJ6K;CM2w~^!7 zi5g4)M4eq@Dud0-C7{KWVDw^O7*4r9iEylgjw40Psd|w{jxFMXrcBRVA3^Qfw9~#5 ze)Fhf;Ky-VG_#j0tL@r+Z>^*THrfk92%Dt5qT zMzlJwI_;`GPLMJ?mr3Q#iI9@EVYFsBs&#E|i~k7b@20hXCwO>NFwGL>KuO3JdhV3cUwYCGX8m^w+s)-tZ%oYpLIDIc5wH{0 z=cAZ6oVM`jrCG!HAWthjgG&Y6Okh4zPFBQkSeYX(>q-@xPwRueuy8KI@hu47i4M}M z9e{E{_zz;M@iF7iVX-6FT!zm`m$(@Y$D=5lGogn zCNxsss~eXGJK@{;H{-Rx^fCtRS;-<_6kDH36DTyfw-fWzi9$CV$+|mraRx@0xiH_y zqvifiE<{WzmC0&vG&pR1Op<4523<(!T~8{(zMO_W-RB@pndz`jElz!~yTzN1e8u(D5C1cUs6gUneGbmLX0L$R)^dj4HU^k!aN^y^6%p_sgc z>ybWf;KZ7)H23?@osu#C^n0C;k}Sfz^{V$^arTH~x>cPK6AI2*{O41Q1*7sTizJ*D zX1}46|ETa;9uM()3ucA&f6H-h&RTWI`dT5RnLk*-iwA2M#1Cg{*8dwNM+LrM#fo_x zaRwD(ZhBG{X%5%V^W0<##)1|39tEV9(&vmyds3+ec?7UTB$;6UzMjJt^p^-#=kg! z#UAMb#;B`bAP2C$@X?fS5Kw{fADyQtKH-RMsvDQY2PfW?3u0dN;M=f9qM2Rniha9^ z9veJgN77!EM(j?56lC3m&|&+V2M_cAT^tzT40RN#R?aB!mxB8B+6n#+XMK~IPUIAI zmxp37DQA!=*i~{L>FQ_nCp|oH8biKNJwP7}+%h3VMYj3ef~M!uWXfHl2T1uzU6CqB zoj`Y=V+PdHRtaMFOl#JkMt$JXVffP*nP-+u#;6&YoF%C)brlxB!bZmTG1QB?Px5J% z5MTkh10=$m?mCfNTAggek&V+{4bSGYpS1#oT~tAqyz;^sn*N>G3kVfGT^AQW7b$&d z`xxfWvaKCgHq#^ZW4=TmfYMVzsBc%KA5?$W#HTln_`JvpyU!3oZa}6MIg2e^jko3P zbxo`fT4qebfL14tFG^XHP7~Z`+F2lKQZ_d(4O{18t}mvatrQ|z$b+BZY5dD#A1jBB z1%nX6o~c`XDAk-FQN3A^6$_P%e{H0g3}r+~^<%$~4hyKpz+~Jis55fNG-MV{+0-4& zIU|itf4a?AyK>WQhWP{?zs&H$jDS@-cmX3OrHKw@dv-P9j!}5 z;5-08r=Rg}>Jv0n0?SU$tb=>=q%FT*WNdt$)4acL(3k6oC#6xvJ14KhQ!N<=G5XPO zk^TJq&X130D&Qc*YWFJtg{oZtb$SJut^8}!C(W*JG*lLs?vE>jVL57z8I{gHkOyoL zS`o&N?*~lGcDaL(5}^81W&PT>?O5oxvIJZ=wUC!HgT^W8JF`_}*b-*|JtUE3FE@|9M5d%+?yuwNvi#E`;?lF2v$ zj~rgwo*51F6MvsPRc*Y<>dlNH&IdhwyM~LWCBY(-J|{;ZKMoS1eR#6d-elJmMOFu8 z=V{Ma>v}6+cAmqbxcT*0qt3Fc$^CMGe>9WPJ1Ajx&z&dFuNfwuME9cUbn%qfWtlpe zK;kZ{AQasad7cl$pEFYQ)(ywD!5c$6OT0#6s4^qX-0yHLBiAHC}sL_BQzUb3lWAxDGq}hl8{NFF~|L=f%ir*0@xYmq9CtiojUIBt8 z!fpM6Q*pBk^#1?e`gy#|>;c7$TQP1WU#W)7ko?5`l|+S2YM3?uQV#X93dR0qgH{^u zMtrP%S)NZ`gcqK{tKJmRg1^9BKEE6axIAnH?Y$j(JPL0|yi=mb3!+Uz7fYIAU`Pgj zw`%FLV6(t-EX6Y73zj=YnlEoxhd{idQ*s(d!99V52RygiI@T@}oj zB0nOfPymueiz&m-$96%Y)Tud2=wuBO6$my4zA_lCSpsF`14KEu_vTc%K#6u~8W-kU zZ63i0*QR3SW@$zpyWkMID=4&th(_I+n+2#vw2O24^+hX{4~8ygYBvk6!tAa;CNK{= zS735gmE>$9uns8+nGkJ;WFgXp7jm$z5Y33(GlXx@b;iG%_MGqGf(#e3tXuT0q9nA6 z#>Or2btWz=jTk$8Q(5<{(X z&$gxJy{>gRd^JDUF|5TPJyYDibVl+D&~}FKIkI$(3>sv90qpM;AKx~n4Vzm z*MhB<|9qH4pNaxXSs^fuOwIbp8SLjnQP@-fJg-Ov4hr zT|^kge3$rvgu6I<-%>hW!>_dUkqd>UC)6ASK3F~%7uSQW@61g}i0kf)^kX}{Iz{~> z{S{~kC$#EuDX~|Udvnu-W&eiSKIIR@;Tl+qt7-@pO+9F~+fjR}Sj)05Tl6U85m!BsqyHwxgx zc;~>a)#u`!8%f#Om>;ELpkPw+gKc8EKC2=K!Jwj&6*0-vp;!`71xJOi&+y&Gr1p0UO__ zsCW};$A$Umhcmhlm)TkGb)@nvd02)DAzc+`x39KE^!j_tD-Ia(sij;l2|j@W`_AH) zo*kl-^mTWiR7~Ovm(_KN@^oU`>>|vxh}0oOfax-&lX>b;689{{xbc_q+ntN%t^B6U zJy~!8Z+}~IdWtpP8=4Nk<{3v*IJsCd-2j2JOZe$`?cN6DB?op!M8bPWt@?cZJ>ux0 z6AY%AN*q2nq3|#vwSO> zA-guIKfQw6N!MpZfXMAfa8)*=K@Ie>`ULlIs5O}<9{>HmFSQ-ifp z0Y}w&+#(ze#|wmMMLTb?&j4Dd#jPQNzSWyq++n?8S!2S;N<1v)4v=jv(#Rv(6cna_ zn!===Es)0d)P+K?t)^BkFe~Sufl@0M(92+(my_R-t9(^yAvJ0tK7q*bKl-z?1z3YI zTg9zYYY9i4SS=DNbJ#!7K5w?%?Iy+2J#6hamBqgMO;>)RsM<4*Pz(h($@wpJJzmI+C$+%Et4ti0WM7xGJe?SR51oss+%-%soS zy2Fj;YtE*F)KlwQ1Yikko1iCho1jJKt>1%sP$cnf*0XvsIp~|JSxR}~Ji7H*z*Md_ zmtMD9D86c5LpLdp!j9e$prF+*aO>wG>73XJ@xFFEynKjSInp+MC^?574IgWAFGu_? z*#Om4{ih>p1qb9xWD{Fj32&NNW7zrlTJ|PHYQPMsKPDk+KEy*lGbiKd1=m$(yZ_Ydx;RN zhP2%i{6^nyBaZ!~uays*+iyNfW?p}`T7q>2K7L-nDTQnIXzej3GsHZvHE*7^rYLOK zp*TGe^H-Q#LLH=pQoHRGfC4ZC3W%u)HXax}A>*xVCdnhA2=HVQfI-7}mW^nvIs^WzrlI!51FN3)8>rkakEpwO>N6L zLqfN{Xq0!-KpPnF@f4O@Fiw2RSSmh+oIT{4n{A9mor+mDP@{(PuRoQq>|cFJl;=F{ zTjCc}dnd2GQV*=9q6l$Yl}UR?Ypi*x2W`?i-y_E8JuOaOu5yc6Par}>C`KfEXJiX@_fLxs0~WL1)s>x0;26I!%R3D zU^#mZ9U*vp+whZAls z9lmwn4l}ut=U-+lrzP&Ui600HdKbUP6{|r7v|vu3-L?;Q@#x#)_EwV1qfPQB%KA2v zOxSH+T>QI_5fUEAP-pYxKHW0HqOFhSMiUWo8ehk4ns3EP3Y}j0D3Q83?}bfpD<{UO z+)%bcC;);7LuG`Qrkb5sly-~?KhEa&>MTx>HkZ}}B9*yKYzqYCy)_4I((9_uFitPG zwZGzxbEazOSq0M?o_m^MCJoX)K!MemLtjX<@kG;8KQ2`u^k=ikaexc0ICUvJGNqrm z$3c-B#}v1B^eFUMS)xZldlk%j`aMDTGH_||Vlq?~lm4QR60ILeq_oxoAe0{Dv&4&F zq(dN=wd68>VEk;;WrILAa;m(T#*iFo9^YBmo%jFwQ#EPV#%2qT%F=@xL?pz)zPO~E z{nzRPkPDXog#RKV?~Q8-oCS~!{0xz*7Q!_v8Zen4T}2^+5gFA7hf*bd#0Xj!clm3% zujm-j1qLY#M4A?caKG1h;**8l(Jsv2GXGw`$j-8vTlso&L^I6VFZ4;oSM^ht5`Zf( zeuKP0;U-?$R7PNgYJG3s$R==4GttIu7Rd?61>j70D@cD2o|xUd^ryj6<=wp|?+QII zMp<0`Yq4m1KtL+2;hvl1XfL}m&cYapnPzFJXOB{?_i-rypnDj5uq(@|B&?}kPCI+> zv;!l-5yOJor2Tc6Xa-4i&B<53xe<v#?mr5G%VYD9iLUA#7I*0*2>~7U zHE@~6EKAT@?YW^`B*#YK=>5Hq2wWS_-t=0CwrUGgTd8C3urj@FM+-1BD z*1|x`6eOj6D$5CTmHNz$kO7ychlrH z*-Z+D0xua->KxjQD4~H4b5Uo-X2qIE4l^YYqUQiKnHsk-AQFwQVL;HwtRVwfFx_f*gAZ3xSk_C!*#v zO(BD@HHT%aRv+wtPwN5ZaN&nR&C%7I@9XE+0JnTs*-bX)kG4|xEn^ObBS*b(+2z`u-@L^~ML@3`a9`wV`dh@<TtEc`2xk3O`p z!JP&>AG~;(!SLHx;d8rC>k4b3>vw#oEjVwm-er<{L*3Wv+D{Fk-N_ymQ9)mQtMspp zT*e|cS1e=P1WNJcg|i#Cldz+n&~O|GobMfCwfsxcSgvsyx4u?bF35(+Z`sAyRqgRD zWZm(vgFP(=$rt{%NAXvK! z2J2hDrAx=|?jMema43iAlAsOeEPq`kJ%VBYTSyb`%aS#}8XN?twz43sMm48c+^mS4 zu6$e!3Kw|)12KMb=*N}UJ%Osm`J5vsVTEk$x)EEZUm3uq)7z1o@NpMD2&9^RH*vF=|7za-fK(xK+lnQZC~AImkf)?6jiS zrNHOA;RiMQ2rA}~up*|v7u?pBO4#Ev??-(joz8?BvbHK=`&+^{@xukSh)@GFo~X64 zafm24eA!F5fmJ^udv7ml6CJ4{`y#5*A?QDqscw_vxbMfiKG9J>B0LoJ%y$P%JSZ*^ z_zrRhiqQxNBX!q%q)ixm6Ud`(oZcFi%}DacFu_Mvjr*J^Dp-BfwJ_x;TGkFZ@QBOW z>(nPs{9AHh2!U@cG~cj4m7{C3&qf`;dZHKfzhq~y18-d?>l80~Vi|8B6z*fXmPAd9 z-&8H8XfarWu^jAX6V`T${&_)qFWU8lwQ7$K|IK}bB!RC1S)@C|aVVdN%ZzM5 zXCPotIn!a7X5HW+`vn#`|LA7rLc_?fV^jH#N=*!T>8E}1IBMjOh1S+Eg3@2wVwPmr zQm1XWe-n3+d-U9SEVz0ZzQc9l?Go>pYb80$RMR zZ|bM{PbxUDK%i3ofCd*7cc1A#b-+$$&d!F9K9yH7)Qo5^o3Dwzc)+vpV(681Pz3@m z#Wa-2a(rtOGJz1PD8<8{jc7?P;Ehz|(-A&H%r;QFwq`X^w*)=(`=)1jX-%ycKGQa@ zvoX`giy@YSgSRDL$^#--zS5XYGfIod%4;sPGe3J{(AYaGZgtT~9vx?&e$!aEV1}kK zwGlhzArx0`=2;Y8ONg8%iPQhEXfTb*Oy@*)_ZMQ6Usj^GFnjQT7(FFU#1MZsR2eu* zhuC16x88ugneWeL^DhCI3$vx~3K51(zNenq%S(YR zei5Crzyh=Zu^ViuF<_9r5A5UfDjI*T1aJS}<2_)G*Evb&5XsmdBtKyyVo}7DM-|N3EHH4(tHF6-6kd2uWZNJI zWeoybcm4Qd%iJ2!kBCDUgh!g>TovtI@eU=EW^+%`2|c!#u7~YtKNLgL{d?NIY_CqzXCMHg=yy4zd{Gi#dFUTCbSG;gn`vYm zV>F{C>n`Q(udPL2O6%Ei(QHtJOqv6bQcdGYcls6R6N$w^}5kdXbzVZ^vKmP5*8 zb%D^ziE>1lkLVAb=qc88lBGV3WjQs@-dhTc0OaL|55L1v*Dw$0daHXtURRL#aTC=1 z9|&=frufC>rErD~($IeAudeqD2g9Hkz)nPyzfx`Jy8gZ-$rt(9JvUUo`Ab6_BXKBH ziCpSK$k2tKaHqNYn_W%G@tLBsBcOLv7sdEY#9IANwr5P?I2C2baB4ZI_-|)eOB*0Xqgz;@Rrk-+5q&c{ zY#)54Sc@!-J3Hy9FH9RzHP<~fTsB!HvypPSw-Q{Bj-+{*Tm%PeJrExBWGHkuS-C?K zW6&XUVrD_J(w?2#>>X6?-vnDgB~bDDy_xaFOkb`_oLkFUVA3O7Ocn2V7B*M>led8t zG=&1=E0y9)P{dV^g@yXL9Tr|!m1};9Lgwibg%Wj7I0OwG`tuqecikg;>Ypx}5ZK$A z^{23j=!lqqU@}jr*!L4OoOtbi%jNguf9Rr*I_=N}UY8@_Q^eIgB#1_XF=`YTyJhof zgV?7=>P{=D(|(TBlEq9Lw$x6FZ^|JB`;U2OM)2fXBDQt`7lDX7b9W@G1Oq&{Ke8su zxuW43xra}~PC{t7*8Ku9p~=7ZS7Zr7>#!l;BdIX>F7gMkeKfowI~;QcxrZFPZNa-k z;6^@#uYZDwq8cWXY)%ejlSh|lv9m zIq{ub2*CoAZ^Skb2$oiXXh=?9MLO0rp?gFhunOddcaU(zx#oNfQW#^8CwCG9ZdGR{ zu6-Dw$s00hf9SWfLoosmNkZQ1O2a{-g`)W*Kw=^AedB~OkTLM6b~ixdl_Or2)yVdw zvkSNWkf~6#A;qxHRlL(1xaL0UWoR)%lh~x>`tre@Fa48FR$s>Et5IXKLQnfC3Ag=; zhpG1I>cnb9E^+FHN3F|oXEfMcUzxmEW>Y)MG3$07Sl0%}bB zV_5p@fr35~40MUAiEg=AyA8M+t$Iz=Lvq!C$>bcUkR>TJXs=2`5XQyp8HixN8V5|* z0pgAEI#yL`09J`XE_C}>_&G#j_qji^)^zh_jkhEe7GsGN%7~1<%lvQN339EIsm1Ag34U}9`$O>n z;&4=F?S7J9)8sVsGG2GBB)9Af$)wT|6EoR`Ft!Yr?#-i}obxOvoHLa8%g63ZPWW1Y z&ha2hGL4$5&B^f$54XV!eW2_d9{zCymb1!T__6{5k1%33bsrpe1VP;B4g8-Dg~p?; zCm5uTApGId5W;GcaEl-K6#0j@6V5j?0vj*U#ZN^^MR&OWI5Hh3%)9`91AT*2!<>1I ztt0*^7u;c1`))cP49Eo&wCZYFXBW?Y9FZK?gy=5Smo{M-&Qjw^vPgeFW-8HKFJYfi zyGGz?G{a?n@V}$l7^ukOr-^mx{q#=a7w<3anuOKg$!>W+!Tg;*Q z_V#ozZta8K%(+Z}>(f#X6Q|^zhzZa~(Cj~!EDtWQnlV!s2gS?>#Uhg1Qv2NRh$nNk zm;)S|DS)4kI4pP}dBLi05~b^E4pdWP@8W44FsM3F47E3;ocI#&k$b`%n1%%tqfcJi z_l{Su(0kaVhcRLI44R9p@;(=;;PF0Uq)gE;N42v&q6Hj2>J>t-H!7M^198R%UlG=W zJ=oZdccp!KK-eA-zY~jK2T88q`r#9Y;9&@~dDtIgoDa4Kbu3{q{a7Fl^s?&7NwAY- z#8^jX+%eJ>EG?0tO({UR19M0m%q?Jsu*{B$rs_dXrjyaiNDoUH?S{-TIK5|&QzEC` z!$O9_Y;c%0r=i{|jQYEDQqN^*sW%nzvQ%=h)s=hMuX?dmE~Y)eQ?G6?Fy&}e&l@_4 zL0!zgvx_!ah=XPKpYJ}chl-!SuZy>ape^xr4fKEnx!qp}f5}P{Y{fSR-xjNqH3z>o zdf*B%1c0_cph0xx;{gWXo(35owUtex*?-bMx{U} zLrYhDX4%~5pC4i#%GGQtuvuotA6^dl0K)xxsW$d*{|*VhjW11Pq4pdO3e8;bDkBn@1W+p$`(g=B5T%Pm<14=la zb`&DW!ghj#37%&*Of&5XQr~m`|4DrZ%&ee4RDxY3LD|{u7DIb5CHl+Mqlw%HDh0ua}D0y1BNGApETPehCvZ4GUV)Z z2?UX@q%rNrsPOs-0ipyX`b5gklt^VAoPj#W2MzbKF z)G5P(AqwHv;x1(RZ%AmD*Vq~n&xP7g&$4-mbhITPb|+kv6F$E#3;M)68Tq-rK% zZQW4~$9okIIq{EN!Sq@Ns=|N|_yl$N%EEN%5JDg=mD&4|7@Umka7uV(56xeWKnuY} z@+tDXY9XCY5ivVr(|4Corgp@0%Ci`eLYbZK0mwXe4~(zKwmNV#>T{R%-W_8;G!D%T z234C548@sh7y%W$OV_1Pz_QB?Zp7dQdi-_5JESw114T{5Ku}|kADoW@;@+DI*DN-3 z$Ys%OT4MCD+G73{87V6J>5;&MPOBTzjkH0CYnY|=i7Z`WJ17rT;574-L+f>(3JMea|8pSj&_8sqk(BLY=1 z3~Q`CQ<{ivAzU(@25(tx#c6w!8k6Vt6ZLGW{2%}Kwnoy>Z9iHP=>6bCKVbJ>ZG9{%YKOa#B&JcElg zQy4*BH=g2T$WoKIkdik2FuG*GIbxPv#+MofMH1#0FdsuWQa0NE%T|B?cu`5l!0MS> zyeu_`LnrUbat%J&iX`FPu*VQJP?~~JQGrU&5gtLrp^$xlN%bTJ4ZXwV zae2;#a!k$a;oxh+lwn0ZuzRtc(j}0X(oZ*V%Jfj}ahsooYqnZ=axCG#BusqC3S4L8*Oz{7hW6(1 zu|E|P0I{0%tx+}&;o#F0r+c0wcGW>;8g8?iCH;pk7zCdUsIqLr#N4V^oP90q)a4p0 zq?Xg7D|;IfNe>4*Sn=Z75s~DppWww#iM&HrCIz8C-SH!SsjWC12&__Ga{8*^BjwXA zxM5XBq+cu%Jue~zDzLtP;)Uurb(<`y-aG4Wopx%U1+XB92Pc*?29*#p)YF`Jq) zkPL>Zb>Iy{1K`6#aTRR>|HF-zLv4l#eMVr1X^l2nux-uXxk(aC=Rz@EfB>TYq+Dlj z*_;_D6e?I!!MYfhHOEyFc8`S?`)OgK@ki8sf1Pa^S=NEz|8keED$0yyoHXy#>`QQO z?~UIr(b&kAUd=DYcnn4D+?aC98cDN_-%>*MsI0Lfz1E^shJ8Yoc4)g)um5}Q&NN6y zSu?FGU`$>3iX-IcDPHTCsUMISh~U&%IX;5S*bNd2!a-|gW==BZ$4zBDUiweNHZ-3z zIptoi#84I*y%ZYrsZL2ia6~e?!9A0A1RNx7e{;U)UN&wU?zT-xq91_xtkPbcZ7_{G z-0j)XLhs&apMMJE)Qdsb?h#+<3nT`c1qz#}XND6Vgzrs&7V_0dBbuwMf9f`b|EpN1 zcJz~A>dDu1kRR96zi@mLzhIU+8tLjbI(1kFMQSvLV^*M)pv0L-RKX53Bqn|zf3WG* zdTV8E(_w?DESPT)RK0_TzU|-h=FP{Hba8?V6DSz#?!Z1JeQ|Vx99Knz0#VU8*I5OB zl+aG{h)qb6i+|uF)wQWeD%lc|yWfGoE|Ag6Sl%qp0L=i^Gj6K0{MV$@#dJ7YmUe|{ zjr!Su&!wuC75bnJ^b#lLswr&QlxAdM_)1#h%WDyhQLf}nIU&+N-QP!(yECz%j2HEV z9IBCV{J|dLT{_qpC6;(G|D?y)YvK||Q!#v!GZx|9+;w6G7_IDy7X82V-VY)BU9mwy zob0y}o0kE+82->}d@wDfdR3ljHeoJgK6;O#-^LYYc-nbypUcfkrXVSL3gG12P1&ro zLMshCQP;`;*8E~+>1#FfPY=b^D@rBp9q>DmDn3&c(G>Us>itP%jnFt*!QnH!Mq+Ll z-L@8eQb>r0|8L}Cpa9A03dHAvzZ)MZ+E+vZuPy;ghDM^Tfv{Nk-C@M#@uGRZ8ES1X z(=dz{S75ABnc04+n4YaXmhk#%jxaay!M!}1?3zK2A5vfurZi9aHdeZ8*AYL@h_Dyr z>f!5W`- z_ZF2*?stzoSq(SJ_*BVKs$xp6<;|d;^5Fc5(cY}(x>wXfmVJnDNr9pkgG9^Gu911VNH<`jLBrlk=zaQ0EmnUyY-okfxU`x zp8@hBrccF((w4ih+2BTu+Ki(l_>Ey+y`fN8o9DjNc@YdfYz>$LjxukN>XD~Yjr!4; z_uor*VLY$pj}*3EcfOFAmc!jIW+AB0yq1<{YQayfWf}80)lX|9WnMarxr_CRf))_5J(GY_>%nd`aL-$Ip@C{V0ZZ*&?(IAdmW&b^zE6%g*8j ztaSsGNGlRC)6m$Fkv2Q$h(M=IGoe>Krs_3QOZ?R{l=gKs~F1B=e)EcPJU{K+&cM{~Vr4rklrgm>iRTTyJjELC77kYh? zbAV5P3p$+1pX5?twaLZm?j* z`!h=;Qs#jQ1TBp0TX;Rhz{UD10~9qIBkL+nL|Qcih`nmZ6n@r-SenL0E=>NmvJJRy z&S3=dRdvZvFTYUZ-k)&1x)i%B|3=u+dqhrliF$$J59KK%EDHMC`^cgOps@zzWOq@F zY~V&C?*dL9&7P{1{0D;5oF<_7H{pYh&&ZxUVi>Y4|D~`jo_L$Evw4X}rEnx7S3N*s zhdX!VsB*S2Spa35%Y;={4VYQ@giCrq9rl};28Cvc^ zDvi^q$)78evJZw9Ndy6`+_|zk)uSS91GJoY^Rs5-lAzz}1FiH}NMS7{zDnD|UGu!T zf#kq^@`|Fz5h-{5xgIqN*rl~?{{efrPgZ#g$ju^=VSQi^kX{mQK#$9D);$*8WYnYt z^CCi{8x^Gg>JBSPg|D~#m7!+xciHdXVK^gn*q0(}TA$#$`Xqp-x~7s0LBsx2L{LDw zAY|Ncm$5;>m!p5I^KB|vHJ@is-;rkAYN(Nu)pFK)rVVn|5B#zA;rWR<$>#}H#-2on z*!A$Zb1_)jYKq%chKO-GO5;73c$Z{Rz0uA&;@a*}-YD?7PdLp}$>A2!U zH;7ePRMBA{2lrE0HAB@tf~$?3{zq9YeXlU_TRh8^>e9k|GpHX#aHj;_#BDW-1VbQAiTC5ubqcV@q+h?D zyv^FC!p!1Ufrv60YD@3NB+1GK^Xl zeTX^UE;wctn0JPzc#NXL{G|%owK|MZs7!`aDpsVEO@1yaoWci<8^pE~#d1a;3gk=^ zh+SN)ZHA2R30M!9ZcD_|A7FCT3U$c3E&OgVH@S<;57k2R#2*fVkoLbCHjPj3; zSa@s2l-po$$rTY6C=ci(>dllGyAP>1-WxK(pW2~GQPcTLg@r2qSXLv4~?UPNPA8Y*Z!g`flEkcyn( z)TtIskiXh=ru zJwXWbSE=Ra1)5A>GIiPr>OAOOlihtJ4f6nSoOmG3u_KGq@+*N!?LbA<-{s(ij#)rc z_7G($y;>BRiWaA85y!uh!BKN!kee*HP8iR6T=6%MNf&^7zTqP5=9V~oAL|1ZpKpnB zL4hLA7M8Vqzty=-!oGzX0^|9#D3gQ6Z2C91lu!yVb zaq}oqXTkE@HBhx^V!d(D0q+$Xb;xq%u$;8GiArZdbhNRGC`zkc6uIDEz={n(kK zB0=WWo+?oYaiboRXkaTp z99|gW%8nRsYmqTV|4_#9i+S@4o@8;=<;m0gQ+Kj5eBu2J40@#CpQ9^N`D6|3)vtab z{zkgeSt*zJLu+r~?Fkjob#O^S{NUK3ph>w`CE6_H{bs?y4ZlQ;$3{b=)S)~(O!C&> zw^+T!bM^B#7k7mYs*>&7Qag`1GF|(_1Im94Ru_KTqY*Kr#ZASg)MwaJM14 z>hzvyl0Nd+F3r&u2y!Mi9g(fZ@+BfqEoV@y#n#^E0?To4AEtqgB*`l=k!J%zu?*r? z7v%|TLu}+GF6Z^>)Eu2iHN8aI+!@GM4zz3DL>T33NhE=l#CobQewTd!mK(}nL}JSq zM60k%B=_)oE6QN~zMIxuj!3_dw%%Ybxe{+2E}xYDn*|FCO8k;_Hml;Dx~{1@w1R9^ zn=IP(i~!>DZpBHuHj@NMNOm$)brs0$Pv%z!BYV4#(<`=D6z8OCH#7*eQ^k(8H*xXZ8Cv{BNrn zGsMhp6WG65s0;#kU5^=Ls7@Xhv5g$ zY6$}Z)}vMb^}_!2u}I1G$*3AYyhQmNaBpSeM3zJkNbBG1&~y%w`=LGoOi*-}%@YZB ziMtTt8W8aMlAC#K<@AuoikGDp3^H)~%ddIp_c-N1wTh}NgP5|RMyXo{E`Y!qdz6yH znuXS{9dV5rh9pTveUk*`gSu{>qeE$og|3ETGsk@lnMT$ZSj7ket9-WRIa+iX$APV_ zI-D5>EsPATF8O%yjM;~TL4I$~LDJEU5FU`EA;opldfK7L zkn9PA_tx==4yZU2ZI|c;gV>iU&v8!7-}Qem#u)Uvr_0CMylykNuKzGb+;AwRkC;Jf;bIdyVZ%%6MPz(! z>~e+gKrN>>lmG=O@sC+dRPa=x;6e9y$p!Y8Ph09h2*ipEM^8L-bond8Dh(M)p8d7N z`RcEt<`O`Y69b?guCG}GfwRJ=YQ{iSXi2)W3P=fvt_QpOS2X&OHU z0IN{r>_yN?n=0Xyq7!_cd5)kg+uW|1Ng!EmORRyX>x3mMkv!k*9=}Xry0l&L9*aJ# z=WFrt8vgCW^68EgP8T9#Ux6{oXrJGl3YpivJzODm*2`D0oaHqkTI7A6Ujzb zk0wl8y+OntOWc}=AL8i_=HI0A!nvDy3)0Ri(zah~*BO7rc$w=YM-~QfL4?Sj4nl85 zJs1C#N9jUxF?6+=xE+j>lciEZBt7AjZ@y&P&O=X#e<@T^^0*jq5?T#6p$)1C!PMAZ zhO)&a6;(_*p--1mCpQULj>DyQvjVq*guSvI4c1Y8l|WKJKTyMx0gS=lIlQ9H56H}T z2uBE$FGuw#ECB=zg3G!1t4^iVC->I|Rp+w&o?agY_G~9%#cY5TJDbQ3&DO~@4F_rv zv^IaXxz@&&+p{^JU0~+!AOum)%^BB>x@<7#AWQP;%`$cxC#8tual2*HawY?JX? zloj8K1Q~uCan+f}01^`WdDy*tGoh=w9?ADENZ%gX2Tdj`EWhIKM`r4cD^zxyhjqxO z)xgP`j!GFMwr?`C#2=5q)yt)eb_7m!(@0w6pZ&2s5T@=&8rT}C_!}t7e zY3}_^^>D83)BeaeTYRC*mn4^^{QkpLr5_65Yq0L6yxvl` zpM;Y*jc^hY1^=WzPJuz+rRXeI)cm&$r6U-AA3HmrG8E-;n6hb24qYJWdrj_gGYw{9 ziPV&TNh<8}Mm#SPL(hWU2y+|DOFw5FaXe)+XnBa4l^PU>ko7~oD-Mb!I;AQ}*V(m8 zolfvLKQ-hVU=lNyO|P$rJ`p#DDW+zhR&HGRF~AV{UFNFkGn}7&!@KJc3`0!RM6MjJ ziAC2ch>Q`AzNF-?Cs9FZsab8EOmo2bP>Hk$T)5Z1aJcAu3*Cf9&aFd!&Y@BGbS$*_ zUn{VB>EMhgCgr<$76|+G>DniCKlU)cfjIFrhK5AP%I24a5SPOBoc4m(7)GJKPVQ6-qZq8X{(fZW0W?J zfxHM!{A4ybL!QjHqBdC%S7Z#QDK@4~IMy0gP2T{$wb-QZRMO;SHe1ZIWxj(87PGGY z&0rsWT2W1Xc^Ce>EXmv_I(fbnk$kwRggi(0X)*eHh7!tC);fZgdcsu{#*;8JU0`En zo?4mb){d@$F0$4SknNzqa3Pl`AkeEOr1qY#66x(U*NFYHo%$Z801e`Z9B4tgJ(Pqd zGgfl&^2=FqkS|>dtRtADRcG8Ug@bRi>Z&>=-wd+)6{6gcPwC_qCq2gzK>%`VRTekI zT1mfTL38O1@d;Q96Kt(YYVf3PQtGU_^_sGckMu|bMQz`<+zDjrj>~Tw5IjWj>R8=)*uoW{V)=$7AqwYR` zth&{G`8Qn`aR+fE!JV?o1$HKYxTuz@bFF@lBW1x`Al@-a)7Q?G9{!xz*Dw_o^Cw4Z z+t_UE3D2)*qL!WZFk;KtPCfd(Bsbw;nsBl4?aF0)ioc~^ge&BatKitt3n{EG)EuON z^!iOZ2WmkCu}I9^(0f`S2$@}PgKv~${>jLX-n0}jrayFKMmT3*tm8Uio$m}{Xq9Oc z6e_88BwNsfj2>-?zQ7(^Jr5w5^p3NIN4wfL2xbtr#5>bj#A^8Z`3CQ`^Dj^f zcgkVVe?2vP&*pSBe+?O>-o8YUiTjLDbH zMBvh@^+D|Ho*Qjn?vK8*r#o3EF zX_NM~Rs=S6pwvphM`Wf?I$F9(Fss}9ISna_Y3(kM-AHbaS4-6f|HXp=`d=jtM7<*_ zS=4@Ds4O-D6ga0L8#=jD+eI0zk3^Y8*LELjxm)s5KQ_pbr$WB$i-dsASp8C*^XX}> zY)!b7uNjeUeG<&?J?V1SuWx7JIEbX|=P$sADdKIz7s&mhXuU3US=vc&`pNQvc zKsRc@M2s0jXwR(!AJ7W%sN392rLae}q_yaw9)6e<2NW=M_wHr@`g|iC37bX74QP@GxgXcHXYV@VI!H}z zqQutlk_TH#(92zC+9;-j*}UD821t(HX|#F~XA;}KKc&(Ch2ZbQG85jr8{G)Ow!^h< z-<|@;D}22uEf`uRJ=iF&VI^5l1ES#^DZV&C^9x(yogyApHi;{qKtFP5RJA7*!YcZX z^L52^+C0zyfNYv#CnX$L?Vo44trhXF=%i+~DY)^MpC*R4d?YU~NV!%Ud<xn6>kl9b0vTh=iM3;*axspGLp`ts3QociU!d1}ecy1@JuS zdSyrpcgi0lWyxcv1Buhx!8x zd3(SmzRj$y0*T7`Zu~@F3Mw9p3|i@CD37ZS*3}cdUi$ZcEaW&- z0?BV47PG|+JMFQw;k6)}FdtEjob9f9=ys9%z{3RMeyE!Woya&hZ|$p(&2Ur$ua^%HdbApBw=t}NMU$rhIapVhOt$J>UVsarhKH;P!m1nV z5u=IKhxjc@a7ISso!DIP(70+CCIbK~3SzT(?Js#|DYTM5`opz0NhCyXln&`7L4D0O zb8dNf6n(XSsp%WUVuu6Np$L0K_3T5gi`7Xaj?JnoMD60YhD2BzN-YO4g0QDO^k-4) zsG#o+0;H}b`W5-tN7VT4=^n`F&H$675Ztt&GAHA-4%$8Ylxl`Xxo&gLU37tlWYn9}dl!dw$yf?+lM z_w$m!38=+~eKROI{WQ*Dyp;CcE$^5KeFBEnxmNO2n*I#K=zzjOoA=I}c2}@tnn-hg z8u?f6SfoZ^e{I7ZWKjlS^d3nWRTE>(?5m@>xGBnU$t?t+&W!g|QI5E8Laei8bBrlq+|1a{(nDA$&x1q2<^O2ywv$5zCa$p96 z2BY4{P4XImB!JBm>u<^T;dl%H;dfmww`R7^@GI_d@al`+6znhl#7csi#p3%*H7Xz8 zuK@BrM6;_wchP>L;1h{p4h3zf^H>2%JTKZlA2K1b8fZ18x|WJFHLIFbI4ad0v9D`e zJakR4PaQBC11D2`Fl>?iK@UMP=pYBS#c-0PiKKzCry%s(ns>v+c_f?j};{%P0X zbLrBi|Kv)NhNHGS3-sdhxgo{jsyV0`bHCAL!NCk&)+Q%${1po2(kaHBwt!-IXkxP# z-iKi5vtSZ5;o%)%%Gb7;i-TS>nSytS@ko(TavJ3=Yb|Q}ROl>{Ca)>Ie;xkdWcx|* z2;q>%s3rkW{68CYq@J8Mzy$ z<;ih`SAc=Dic)uVz0~|qO_)EGD@`z8@}PX)9kg;j*}!8WnCf zET`=zc^wR=yzNV|Y$JBw`sP3jYt2CGKOtWG>VzUAaGe#NQrgH$FFN|(Hh+t+z!ee? zB4^4iVsjA;=wdw32RLx{FDy}RK`V_ZEk~BQieN*tuWe|-f}v~Sq7hBX*X7<_<|1r>op+V%wNB^@KQhMDapTB^g&?-h34 zyuiY}fmscfLtEtv(>2B}WK{J|^%pi+Xr>^^#24GHAfm z@L>cBnN74xh0^cOl1EvrHQ9-Ik549{Q^NMu>#0#VZ-lt;-+Vm+QUn3jLAz-of(Nn1 z<9hd(7yL-Fm?5&?>$gK5n8H@-tO7Hpj7P%C@1alas^mRGsq7VGjI`dbd4v)PfSeO} zhEbE?H*dMG7YCf%o=Yywcf6pk4oPd%8^^6jyt*PO(3R|sjA9Ep5_oJk4Tc9~g)Kpg2L8(n|A=fEeSSae^{{_o}QSni&n2`xyhp}q)0N3<|RgDnO7hmsK>5E@0H8UM@+ z;1%N{SS+nPb%xXzxbnTJDXB8X+wY4jOe=WOC8oMh7bHWN0 z(C9d8D;S-`4>*D7GSDUpYC_27;@OKqPp^*zsJU5qY}4yP+vaKUL4R`d$fkDf?0Orz z7^K`_S>+pK8Kx?y=#{A|$Voe_ZeM5`RkcW?dZfmXymA4u#Zm;bzVI4%&R*U<9o$rT z?oc4Xiz?aH-|Gh#_Qof62l$k8SEG}t9&(MeF&Zv|rwWo_1zaqt3u&@>SLu<1Y}fSR za%8CTU1e-VLQB&U+~-xtB4Nrit3urV9eIYDjIbYdAh=TUI0Mx@Fk|`X76x$*ZxCiejnnowO4r?4 za|s>eP$0}8O<^y~v6K)JN-GBN5Km6A!db|MEr~O^=-kV1K$VG5N257E+N59dUH)H{ zhDh_6M|bF1W_#BaybQ6WQqr)r?w|#2wvcaAKzbhSF-U2h(c(RiNChC2yVt+@tO62B zpvO_SCDx_1$>lM2Dgz-8U%yaUf5$T%Cl{KqqK~(l#{05^0wQ@H z(w?vi*6Fii3l+oJb?Kiq;Opa2t9-Rlt~PeLP)m2)+V3AL?3Bm-El#CO%6)z9d`GbZ(|{%K*}dp%P^$Fq#p*0{0k(DcS~+ULu&1#dsSe{L46ap%#kL!*^eV9m_Es!B(~*X)Pcydr z?;C>HxHFV@zPdTH@hR6wabq3<=O#6_2Wq(7XqOlET{+m=jocY5L)w{sA(jYIO_G?~ z=d8TJS=#7ZFWO_@3Kuj=LT`-Y0n15kBGYJ2S^`t=z}m-eWKNcxTiO&)@NHcwU=<|7 z)kra~OY{-)73N1ICy;c+0H{RO;I#HO2Tansm415KFyWgEaMNNi!D^sug}c;V0v-~F z8_{w2$H(R^`%@{A2u+uYWc_{E>r!!|o!Q{Xs_TUX46h9xismcH%DKbe4~`3xqP*jG5>XKz0)^Z##n^ri>2p7%fyo61Q4G~ z5b%?+7-x=u-FAKLE1u_?n=ES|(7AvyT%L9;0(IrEr-dgR4FO`wI_N4_R7Db}aj!Z# z1!70q0JQs}S@fZQkN1_2XX+I6O1+i&C>@f)YN-iX&a>jYg)g!?ZQ_d;y#o=bPQqjo z_f??o%bTv+BTXAhSKG87DsjYM{o!cDXc4RHs5*x{DJdP~;wuPIbTqW!V7{FF`2rnmjJPc&t6|rL{VJsLqDvAn#ql=>`xf zB#YwE|n2|B@`mffcn#YwZE8cJf8hCzM!M4h8)I4Ld zH5y-uikW0ppZgmaT+^`sbeje`OsK@5>@97tw)q1CK8aLaUh#yz+uKd6oP9v#oH%cB zc}Zd5c0aIO5<&Mc3^HsM$WcvlYk(Ng8uT`Qb9Y3LF`?x|*hn7O=7mj5)!8#(O>7iB z|6pvG+4+GkAMBGA10Y?{8PuB+wRkqBRk&!q_1WXj0)tB7*?>dmvsEoWrxA8O>0{6$Kz_FAa(R4)gj$DA5 z5T=q7D8YhD40|3ES@+2P;r0=R+mpmv6JDs_I0RGJ56*G?NUtc@v1HMJC(`}izWZ5= zf?^wmd%pE`Lg}d)my$JlwV|+cE7f~wG-wG3gEugcy7iXZs!}ck8^ECOR;rw!xc&xE zJ9(8e2U&+0NT7Ts!aS_Vv@5hjLRyCm2a=rh8-s>?bIemuaQx~_bDZKPL3&K(MF}%^ zId2Hc9}I1Zk{xi^4_{d)IeJTD&v)4y=qs`S-+>b6Mk1e`BqB1B*nqUnidAS?P9!5A zZ#w?v5DpP>^NLP;$@nrOupbui8I!xzAmCTqN=7*%;-@B7gxHZ zQe;^hmWkh*C||c7&}3DSjl)hGqG$;8bMv&yaE5~FK<4o0zBJqdX4$fFAI&| zsA`Tk+7ybZ!iszNY*(Y*?CfsY*-a~pKtdp;@!CjAJZlcgPk_WLUry!5J;eEQPG=JZ zJ>UqgeMP13VqCsH0hRm2VuaMiBywfoN~4BICZ#zlqtu-9f=QSUg^9PZF^dkx;m;x{ zLt=X1^1ttBn8BB-ec256#bI~Z4$l&3Y2X3&=I|2i!2ZTKiTgzsGqWu2U!N~MRx`8H zkc=VmD{~8vgGv)ooOq=Vj6fF2(r@Zpg1Ed6t}bd=KvZJg>X$WRdL2I;k7|dt=w(Nk z7vxt1s6X+ys0?Tw?jwtprFU^@3<}wZ1M<@Nm@kA|C0APnD`zjH=XrdgpEVAv5a}Gb z&lY;_N_}DtD}>Ss(wK>m2Ap`oV?1MmWluo41k3+^MEx3rcBhKd+M*?h3Tk~``-#BZ zX;iZ$t+Ipe##6rwE;C%c>{ zdUf{vU70*YsW#i#-sa)RcES#*F`pGcj5T40fMkj0kS`Iw`Lj{0X6i+FD9NkbhF>#_ zbp08S5LvK}whTD%o=E`yFExHGNChSUz=%}mR06(d>(OLgr!6aP^nCK$CG`Wv5{MIS znZf>$a?%aG8i2-w>#h_Z>>H0t{9ckUTxa&XxIXk?hNg_yY%2xFj6QWWP2NEYR}nW( zI;s+?tdH?e*t^?W&27IBP0EXA~Eahg$it_ zIloW(iw#1ry0iGB$e|`LY1R3Cfp{baVj4E$SSIpsNBT(iqIPf&H(WqfRJ7L5UwQ{# zTerxKvZM(DT&c6s&eq687=731ux99F)c2|3#FU^Gsy3K37}7_{P5?Hw%XeP1@}k+s;QNdm|cQo7;ph~nuB3ylqIAWH zBj*$(@$vs(xc@@VxRZM9q8q^9U&>4vn+@Lz;9;=aYBaf#;p~^h5 zd4Daty%Zb7KGJgD;5!QLZ4mF!Z23Y%pt%DPcWHR|Fd+yGySvo*f7t`$*21pFWiqF8 zU*}Ae)41DK$d;#!4#nO7Eb&DnUnwU-9(XenJ07J-w0tIfBufM^q=&*D<8N#QDdF($ zs7IPBvi~@jd*^M{NR5GW$*i5H1-R zm?|K-mj&r8zz#dkiZg?zm+k#uqf&4a2x+hEAYk=bV<@_?lDc1FukRyQhRIh>Q{-+r zcM%dl$lfTX*eERMBoKdYmC3V~zFJ|t3N|F0hOW!vQb0})?Efs3oK{9;JA9G_^RYAM z+vgI+9FK>|CxwZkYZWfSA$W>(YpC?YiAz(q-Ad4$ov*=h^+KfdP z%no6wX|z4t(Pr6ex-Qql-@@t=^Z0jyuETL)un`KhZV~%LEzK4#jwxWSQA*FJz|!T9={rk8Vb#L0Y+Q4*l4ipdqcMp z=DO1?VmgOmEd5e-k$Iy-DiIc)J+?94815eHV;{=$BL0a>sw1+iKm1D~^0747?=a^Y zmq@$>p#In(Rtcw_@-H`=>eoFK)O8~oExhdv_+GiFr*6B(do<#2%0Cb-bxW$W(v=Ex zNa^6Dw0xZT@WRX4;hj-ze;#ZH_zvdh;m5yPYx_s>Rb&F3&XWYeja4=xRM+!wK{DK> z*MYiTC2a(8M3=k{O29_4+1;zqAN?T)6xzWxC%kV*inD?GSJQ-Z zmtOVmKmBNt?=f^!@9ii zSoU!Vb_LQz0^^m=hq+uWtOvjmlD4p`oa-3v=OHy=8(CG{5}d+539oaSh}S8s>t2P9 zQ=1Us9q8|AXxOgQR8;NCXxbzWJE=|jPmv}QON=`Wu;4U!@fJdYKSfi>qR4CRXg7RQ zqoNugeH<0*#B{uh;FoyI|K`g4s6y#2dTUbyeqX2g?CL|@S#>5)=TPsrQz$Fq8*)1CAlTg1kk2$n|eMc4PHKzwf3{J*!31P)!jX-!(3+peDL zncRZNB?qOWw6V!J4biivuZ2mtKz*_%E=BT`hDi;D2_vec6>$Y7x|Lo2XzCH|&qjguv3_)9|9v!nOrKQMDaWX)cV-?=63W@-RWy0t=yxAe z_9$n_=*7>;L1@b{{$oGiv5acY(iX#$Et3R5r?trGv3Lw6w|D=oHrY%moRAr~;Uc{+ zq#p?ckUZU7QuN^!<+HUHXC}nJ?Kr+-g$6NH9zC0s2GaHz%c4k%l^Ek&7v*bLVSK3J zMI4ch>Fs3+#WA;TW^vN6ZX9zRWx6S?t-Ig~%P$5T!lbKBmG{$r)ij8`Ar55KDY(-3 z0W>${i=6y`x0BSt0X#gjpb1A?0xFOhJnqTd7_@89F|5NQk;)`pKN@uG{{P;+y4bI?+BX=)SSU@#NZ+ykt1n|$D6%d4+U`yvp?Kxrx1D`m$jH~D(7sjcGdqZ? zVNwYTv>2c97Z>tIJP2J$2^Y(@=;x^EhMJ$W$7L-|RTUf+ou$W;Lz*)3)j0j2mn34@ zjW2;y^fVe&hq;j4b1Y)WAkciCWJVD-@>lc4QyV4^EtSNhu%5PI_1)(vd4Dm`&?dLb zC=HRts2rjUU=ymoV}pgBkpl3}=9C^&#>I>+V2wvx3X}|jhG~qDPhy6WQBm$sDSb`U z%C*RY?mjMUMhC(Yj?j(3&o*}9Cd*Tf8CW99zsp9%I-1;i=3@}sX72vBb%b{%x`IvE zuFAc5z>k@T-E8T_L~1MtczN%0mEKDAX|BPuG;I(C z+&eFC;9~#kr&LZK=qMfQSo@!?;8C_TVd(anX~+8*NxXHM*FrF#>SgR2ajZRhmOmZUk?AGfu1D-8IL6Z5K>yRCWWzU_Kso*ici-tNA+JKww!fV2PKezi(8cZz4#ffN|EnGFgb zkg5GVt^(*gcvj*}i%U&V{XA@j|JQj25BP8C*0L|{EAPoslZYkfb`{Kt|7*2nFRI7R zOhYGlQaesp)&UmGDJy*?O^8y7^tyEssb<*C_vOD9^`b!y{uV&tmH8J*6*fJ^won3@cdm*q;3#}eDq{Hn zBIH&%nrY5O#xNU@x7k3S&eRa=05~!hrMvN(X~mCy*p!>X!DHy_xzvr-0pm?qU>L^6 zh$6R=B!1XRPKi2=<5Rk99!S)%+51ssq)$dcJdgYu--75?<$Oz#r(ti2MpO}+Rq;4-%A z>iu0%pZ7d`l1I(&pJq~+8~XDDBWFf7PUv;CIek1&kCe`a$@H}*s!mJ;sOq)kUs)kT zG&V4sKQ1EMDrC>72*6h8F9Ua+nveGx4Tj^CL<#^Sf;SYZuy!bEUx^u7npnu`##1tu z5==wUNJ>i5Y(XvUxeK|pVg2!%dE*$U%ZU6w~V3%#NI$Ng%y2IBi;(*rBIQ)tYP3DcUO4xdfG?oo_;-9RibsOGpS!javd zIyuBxtKa6KBN%4}(l;nT|Q3d zGzK%Z7WKPAK1{X@JRHpP#u`I|xIE7vsWcj2LOUVLq^U&-CI)M#jE{2%<;bi7SRZCa)f5HW=h$zd+TFt zg33o8@Dd;_Vlp{rVl*Ic!z|)un;Pro>xVSkLKw62mud)ezxR!U~T8v z^k+fZAYH|~e7zhsqt52}rG=0jo+ri}guTf-;9qRfJoR;zygu z*Yvfm7!nkRm7rvWg$~})LP99}LeDyDPTBnb2wwfm1F=~!Oei|O(?@BSCGp{Ms>Yib zNaZ|#7y*#LApUW$tgF*4rW7Fv4y`e!T!--1h-aLccR`mDZ2shVBc{+ug#s0LE=6Xo z=LzoZ?Ec(5*qUGD043I7+C7~QB_2x|07*c$zeb0s;?MtGvTWkFn67fSDn}r!RK<n;jolYcW` zmtqw9%?^WzHf@Y-^_S&9PX?@Q{>}?fXLWihu?TfllwBDz3aAU!kn4WtGmlj>vO1gc z=W*bk!2qd{*(HCJ)M}a}8fCKY+k(qN;wtE%K0Nq;c9>l>$IR_=+fgbt6Yyph^geJ;%$>U_kRm{5*+(@<*qMrxbvw)eZ!%<6<4e;H zeIRD662%-eW0;4M=+3N;1~}QHb07Z;IC@;9XozU`arCBD`_b?)WcTTWH{NLEdEu>Z zcX{Uqv~%j>iP|bB3Ow(oL@kDqHt316kmEic$vmYERv`80d(lx^!-%eYCj~mW0++Hn zF@=`u&moKimH<=K$5B9#2}fzI+6VQ6F$_W2`6i_-V2{ohn+WvnsIr_}R&%UKq?a-V zTYlPx+xKiGDTMS;^HVoz4JsnS9HCd!_lX)OH1-3pbaF-RYVIxQZG3zY7_tkzF9qldCMEhf zv1$o3yA)quiL?Q9P|-PrOndzfG0?(sD$aBB=*bjtRhPbU6I@OIYqpQDtrnPvZ+FPrY{?_48!bR;sL7sjW)3jY}}^qXM4gxf_vd2d@{E36d@6 zwt9Y!XsN}J!KNm@`g0K1uUbhYbX9D`mpSEA>ld1#!I6LPsY|qy6XGlL z&-cWd#xqtmGOwvS9*Aw!IujY5^T{cnon3-xuqrHStTsQ^kH2>roNhF>HJVF7oeby zEM&7L-4r-lCnN0Y;^2|(8b-)@QK&pG?_(M%SZ;NjndiN)U1E`>wTkbgPr$2BFJU%Jtq=+*Pxope2Z1$eU1z|g0?Ofj*;6*IRnfq22%o549N(fb~ zjVK7M~pc+?JsWB8A=!vGJ43r!HT;umm(klGh zM^bW$OkGr-CPX0D6*mX%Rk^Ie*1A7N-sMaHbC-OFvdWIZtv-W*Lsz&~Zs6Npa{WLL zHR^fB+wA(6#33M;hzLa??kp%TI*%#jj^9?t#?w18a&(`p%C=BHV=s}2@6}_gkf9^s z%8L+BAjl0osDoJp(VSW4`&=4_y2lHwP;?#v@wKf!{Ws&?=D_ifI;#PNYiTUaYQzd+ zMD#eQ80J)_F2tsYu!zVob!^Nqyk3cSLUD;g4xh6>?a;1a# z)2h3ZIPz6A3BIjHv%%Y*v;hz3t>b2R!UAd3__1+z&)E}wB-M*j0TNY6s(C6CzCRuk3%#0}uL@SEPz z#G#gL((>%G;#b3Je~l#yvom}HkbHrE7k)>eTF5P`!P&m5j*=x*R6HU;i zyFu9BQ>aYo+Ii5zZ|l@p-qw{eJk|s|Ny|u)#rFOX8BRqt>Vtk3jI8$ud$eYka@lTC zhX7nRcuaS2*Z?tU#iJ3^mX}tXm1aSF#nOclkz_GmJB{EipB2>TEe%3 zZ^ulYC7NJ$h(9H1g+>p=>pCDPTiIyv|DebS?mF+G&f+MDCHXj=%n3GTw^wu2&a}kg zZihrE-%5q#6j_u3{pkwe@aUCwV}P_ndl`LK6cLFieJf|{|3;*z{EKr~x%0AB#Fs#U0sI?Dq%zwl1>kup;UZQAIO&%{)^$!}^mJ}C?Q{4dxrb`3`6kaVXM_!W*e-V9b6NjNE4?!)>3Yzv=&Yv`j$HOqGi}6pH`=!GN@bkF2#_5Vp_m4lip|Yq_ zDGpjsjeewo554o8-q$p82o7Y&QC$A6{KAy!9ylzak~iLhIUAI*^>6Sz}l)r8Aq{%1#qG6;urcn=06 zs8d?8NiYixGm2!CpIS29G6peurLL4rBe@Bk0t06-&97@Ee1D3 z7AlGgve zBshk=O{3=VH3>o9G*#mh9jNA(naxYmJVVa?ia$%eYl2LJ%@;(#JUk_}Z%Ob1*;JK# zAZv}ssp;ek9R~^exaiNHKr!aVdfGAZ&>W^nfVtNT>p}-FTEoWh% z^4fNd0!I}T+1L;Sq2=qfaL3jPzl=ZSN{`}c>s{)RGggqo&l@N)dTy7u>OP{_d`SOU;r0ktGkrxI{MY^ z#(q+qI28fjBgs_nrpi?95Kqc^G53&t0ku(of#sU^fFLFKdL(O&a@gZV7R9(xu+frz zBCopgMRt+C(-dbg?;B|08Cz4I37L~Fh3_^C!Ne5x9HI$b*7)P4vc6to~l z(#{qq_DNJF@Q(0W+!KAX15;2%yZo=^zB-?45YWqEh@1dJH8s*<9QH&{hA;}`F;vZB z+t{jSJngJK4DY!|gL4vjMqc>Gbll~Q@PaO=)d;}@`w^`ZTI0t-U4oMwFjFtQocu>o z@PT+Pl;pZkP&+eAxtd5G;K=F^{5M!6q32t*CBf_7MFmBtbJ<5>+OU zIGHg$iB1prTgFQ^wqB(+jdfvC^k`pzvo}w4Cv$$L*3*#nmIQty7uVIBPibuAgr!koBu69 zeJGWruFJx;s7u|EO=+j28VEa#4L205GGYV zUKBL4XDrJdFV#!VdM7&-T6E$Y(hw9Eo#+I8R9`2%m*nRiozo6BjqF4>8J^-lZO`2J zI*Yr=juqf7xvFF459Vp2BNd($*pl_EVkGPAs=%m<<2-5UjSO}m)EL7x0z)=Z7WAe2+OAS$+AkkRq=l#$(&9d+ zs`brk{?+l%{B)joeoCETH%hQ)nrXQkeY&VWD<##&)=PBaOuYL-qi&SJpWr>b`>ZkN z2%dtG*rY)KVXTYU(yl(_gDM3IayF!S9i|A#=}ruXQ?4Y-H5KILSPIJn6B7uk;iWQh z--c&14HUjadY2Er`M$d40Fn;CsI5C(S%g72bbYWq_1HSJ_JOD@zzA))=KH`i#&1v% ze~x8cMdiN#`~A?ti@Ml0sbnOE8<5sh+n&$V+Jrt-?yQ%IhrXt+A$2qfyM!H-dO^%! zWY&L)wz?}L)n@p=^ekva#m6EDDo}PF$)^U^KNKx_In-)IuP(pJ?&ZBADK*xkB7O-+ zPzsO2X{PlHS08cv$k%$aLBmV6!UyaYpY+?N&G|$B!qz+6rCUF&d^Obz2EG%*FFP%J zim+{j?k$|Loc=MYAPTU?y%FyMv#;L zlvz<-KOn%RetN>U9?fNNij(AKp?aP{y?p4okBPjvBBtDRv5lzC1K-OK}C843=No&*$0o(KvcyR~`-M zpVJh+r#6LJk7pRTCn*v(?mCz9`S7qGb7GhkdcxIyCCz^UQ`{A zVH($3n9|#lX^6Aw7!z&C152Lw0fj0FFo%skLr`Z z+rMu5fy;aTanWb0C_aJ~1`8i8XrG1&C$QH~VJGa07Sr}2yoT$;@90059&wWcq0=B9Ma4!U-c4Bvsw-)(cBi9?JSi!r!PKgvw7OU6Ld1)UOj&_y zy~3j>`_eHIJ_`X^TZA7YvbC{L6r6*y{vt_Cr9OM3A2%HW#>NtVfzekY3s;UhpI+Ir zpJ>c^MKjb>jaU5AlQjnZZm~xp2x&BNBD!&`wR@Eh@<=I+_(f!7LQdQy>#}71(Kn^W zoAP9?T7)+2Iqpr0q6G7{PPYbYPG~4!yBxx1j%>k!arVze92rF`{72 zX@=~?{Pr)54HidJ;7tV#xrry@OnmuV%dNnVvCnsIvIRNOO3L2oj7iG%-fnM&j`XUY zF;>z#xDlrmiulfPbcQ{I{EBh_-|)wrR)KIMQ!je(Qhy zl_qqWx#PBO7$z!Wxq)SwTTeiE@qpRCwH@L1A~ zlhhRyut-R^IYshH$@gg5Ms1gZU)`NuiHR^w1~-zfooX938|{f-jMk?aM&E@AiY|k` z2a9ibEdiYh!>LJqWQG6Nm?q}LMKnxH-I~~ge7%`muzIa01YLo-RKhwg)$&i%a9tiA zvx8i{{Z{*2&~uy94JvUO*AWqgy=rpqpc8;j=#_6H9qCcO+mzm_i;FgIVe~NH;!X4Zpf0XA^_vaj zM4i5{u9d7r;er%N=VA>OwvYge4p571;8%W!#;FCQFR`&VpnDZ^lcu4#M^AYLk##t- zK%~f&0flv|i6y(H_Cjm27)4W$E^2)xlgM3}qyfkLVSHACsL64E&+roK|371G3F zb^@lLn39`}&E2B_$3YJ#xf5-|n?|0w$2~w;TX6h*!STh_hB&hXO>!IoGpZO5;5g&@ z$PBYW+0WIp zHhpyeQacH`LQvjxRcM{(I@;C>7YD#8Jkba1 z?%ZJ&lona6c4=p4$i9!yE0bu0Ycl=m&=ZqKrO}TbXGQ{j0ghO_%Yt+Dgx#OYOaK4P z!eG$`0}N$TFbAcU8-3~zvJ?FrGGj+Nt$EqgSP{R>AdDDpO(qZM?D@Y~NU$){b3TKw z*6ExRyG|q4mf!?vYvsm@D+4E0$t%N2%1%*+G06FA8Qp3=3FgM9aIWR16MYdS zJLlovOouJJM=25K$Iv)|!E1%!J9hLhgE`0TqCZcOv?)a$=Kc585jWuDqxW?2!Aymq z{xoL#l!ZSu#+k`L*T{fEu=_^zc!(8=Rzc4P(y;SX7IY0oui>wOn zkb@X~y4vatnK%((Kg^@f>*z7T_2}(<7@Z?$lO5EF2al)BmF;kDesFjLD7@-IO4!N9 zHUg5j<0C078`z*rdj%5rIf6XD9QWNORVqQ;5~QUj-6NQj;-&}1P4Xw_S!8>jS+7I zC?Sz&)ZAXfmsEg&Y8i;{rZ?wwt%3J2hH$;q2PF6pOucr5f)RzF>uwuZT;fRJQ?b}J zoo(&z-v4KUhfj)2{oTb6Uida<1(&7hVxw_fW z{A>v*8aopk?tc}zw%H@OMgtq!h{Hy;)~q6-l%Q>uBTSw#Ml6fuu8Noj+!!f}Y2SR{#$ zVH`Y2ns`Io8T0sF;5yg7{0hQCni38JjR|sg>l4EH*E;l1W&x>lEHhQXdxO~gE47Hu zv_Zwel54)}96**q7rJ6+(U9oz56<@a%p%bd(RN_sE38P|r{`&qlzMxU0+#i-M5eobCB@ms*=kb_ ze7ZxSr=TSF!n0cb%=)|L0A{5JCJpnS8ZGmhU|Q zp%H>(#}$$3VkN7+xf!jwkNzIOhlKFtanE>TTyyRiwupNDKkLIR58<(kadXxTLSTv( zU?-b>o#IY+OAh`zZdg=rVpihHN?~)$Pg=u-?5>KgfEA44PCZ&4w@3E#gq2ZW4d+b# z4p%9;k(P}))n7`ZqqBHrBHL_|C2{(cA9s;rdcT}0_B;wrKlo9L;cw8i_Sv)qf2E7k zSeQd#9aRa0?(VNi!Rj8(%Oq`xD?wEW`|MA8jSRNv;qoM%1pg$j=qYxo1Gu58ypOml*d~j+!;aJ`tbqMC*=^D6#O{p4(-;JHlcKhtdUOR?u61}K-TLRw* zw@J!R-b}-}!NthlOyLTrPy2da`xjAg%i;{Rz2>fwa1Oh#L4=BtrwtU_Xp7-Ki|3M0 zcs%|QUCRg#j=SCnx+9%S&t%^x0f^jf=l*fsG=30{Fn2A{iOP2weQ4;MHIh&zCp<$q zuQWN=oPf_N&edRju=wIh_L0Opb+){1ORS|Sqo9Uzb{r-;KI39nsst3lM@IUjn)_(D zRx=CPEbQx|80h?T`IRDYz^+Vnc^>SFNH%_i;d{~c;um+kj8)oBlQ{01AbVkIe^0m$-VL6>=8Jkui-vkbaH)n|fA9eRn z9!Yl90$HMYDw3Lh$-gGY78-x8@IVDqtiHQoWTnb_vN9+(O8}u-5i=^j{g|~P$!Nr{ zj7wScaG?$}3r->uP0b%lI~<)OV3wx(3bl(qU>(hIdKR}TlKGl0>A&k?^G3uCn|c+U zj$had4-95;TlNRK#_<_E;eFNnaM6m0>{jn7m&)kARqb>bT+!d71N8(UPq>Cs;)O-% z4N7!7>$958R&m`u&I&G{ms;3P5Y890oS#fblioNDGI$fG{R?XWhCd~bB@2f~*W(;| z*0=oSGsB&bHJ~n~e?4`{67p&!*T>>iZ)L!F=LSdLl@6^Zu;6xwt9C@F!}OBr+U*A^ z9>Le%hoI;Y54s>ETqk*|;eZau4#=Cpz2{O19$U42un#Tlc?xwvqTvUYU%-C~(i{Oc^rh<|-a?+Dg zqWSpwe9%$GrnsC5D4b-l7=DhRfIbx;%s}HLQJKKXuf~=k%mmgJD7D`nm)P3B{HW89 z0upkOo{SPW`X0I+POJGIf#wA(iCq!+2p6Z_9U_Kjvf_jsRX?B=&1Z9o4ZBx|Iw^5* zSqhC970g8X^-ubjm=W)Zk*=`m0t~I&S8!BirnHI61;-LgP^gG3oR2LD8>$gT@`P9K z*3YCO^rMxO2JEnRwkNMHp09l~a7W3| z6fgWA-48--jyicmFM}PjVs)C_$a5Gw?zo^BjvDT_u&{3JcMgH8vyBgF_|8j;@w94* zv)Y}U4(-mTxF5doeB92qAZ`9bLSu6gO!0231FENi8n?|@ZEmT-A1j;UCcSMDS6o*` zxE_I1!nMrq|2ufloRX=D5@I=~d@5z7%9rwfF3E>pd%<8abe&=nUF6XyPW$7jxK7IE zFU~>*#hjw*A$}j*b1GQw-CQH`U>QCT{zqnDtZF4>#Q3=wsygi1MW~>dGk=sH$5C+{ zzBib74S;Bz&l7Upq2>&&^+q0K;i+zv4>>f95~Lx$>`LgwFsg^ zvhOQb7aG3yVH)bjfv6O7+cqK2z7hr&&ChfFoyC$Iyu%Iipj z$17f24aPio20Ab{55sp=zhd2%dNWQ}V1~#F$zcO5#5?8et5llA)6l;uI=Ik-)?M)5 zs2_+|kt>=qumN~jkBTzYGa;MVqv>qE%Ch_CJl=@KCxz40)3rvh^d~@Q^$2XT;O^^NIvVcZ zYbbV_OKqGG_y7#&#;@SRuiRCnVT;aE-t(hyancj6FC}(osJcb%ctuu6*4(Ygmwu3w zaP-#z)0if^PTkSj1C*Os6>z3y5g}&Aa5ED)T!|P^X)VNnK0p7$rEq7vfBKahYUX6Jq-Y?^kE`7T-?_(-MENdLBrYLP6 zGt42dI?Oi+jEuI0QHuAc8i*cwmPgR<_k?HP3h(jlS3lEF)il$UXxyNAfug@TomVwZQ2F7_I8)$XcwN?*{1)XR zdjAK2|FXS-$^-BG&f<7bi4HuXEhDGDZSz=66_~scvSI&74 z#H`sQB-H_iB6SXPC}5Xm1*#AX9##y>!pPy{B{KY6jI{)3Z-fKoGx1X}s{)-j30QHX z`7UhyF^0kg$e`-6;weFd*nrokpMphZ)NNz1VmT8RCTGROfi{rC)UNaru{gvP- zXCpHHf+hwOJBxqUq5$=;KG&PfV`F6qH=WC+wIAtC(fsKF2?sOZ+*AcuBiem1|3C-rJX3u`yz*VAF zxIueX_Z?d^etj0q8KtiIT{+Wwoig9AD|r*T72?Td4P}(A(>!ZV#E@!L_#G3+p{JcE zA9}TB{QF!zko%+#)9sPq6P6;6==LZ$G%z83Izi1tzLdDN^}`6>mlLgsfc0d@xw; zk5X8?^~Dg*1B?op#HR4bZvq_dkk5p^eeCB_~lkfDKCr6abLu1 z>*M~wcNdmFr2 zYHLeZFxXRhrl}o#5n{{?YXPRPe{(#-s|i!zhYaRK9#*U~sVO;JkF{xUKdGpOXp-y&$k&gmTf$owgt<&@AYn98!U`(wldFNke zNTS)V)>Wdh;I^p`^e`cdQd9}LJND%`*af9P;6eN*4zc*#n!v%ie{~_z`4(#m-9lvB zdJ4=505DG{;4abekrXPt32_UxL=ch`I93@0{Jny-^WF-0jAym8jeKQHvz{MGPzm?3 zj&w1NhB1ZQPFI^nj&V)_Q(&Ypah|H9*Zn2>1H)jBOXZ?e89-zhqw0SI`;C)_m_$c7 zFKtt5O{pa4k)xGT_-w$$^O80!+RUpY$5uYR<$-8wxVv&J7Qg8EX5#qoc}H=_au+K7 zGp^4Q3*^3;=s8Gl(77C`4Sa&FEv$0!>I`|Qs9}KEEyf<1&9aFJ0{ls@;+$EDKaz-oP;baEGzINy^%jC_=~skUodpULo}`l zCdP4DM@w`)U~MEEh0sn#TF?!WEy>3@cAZKI`!JPG$F|`W1#=pZ(6&!q6-PMT5IvkP z?93r&p56!T-;5XaJ%(A?Z4Emuj2ua3j0adK(7B0QO1u*Q@hK8&L@*-8Z5 z8c=O0?0F)ixjcJm?^!K8GW3KaUDU)Gw^pT3!h`nIvZiqBKE^0f0ALN; z<>^4|wUAjGK1rn=mV^XSYu}`$bD4Kk$MJd!#722sK9GWl`W!!-)ZHsO!<#_()8go! z5c9s0JtIZvT?u0C63Hmv#YV@0$3inqHikEK<<#Ey0bqAxKN|jevW1~P;%-#BIb?Wd z-ulUDizV&kWUhuoyw9&MOOL`Qz*&fJ&1T$us;($_lC1pHtyh?tzZLkR1H=bqH1BEM zf<1~osCAFh>}~#mABZcBHl`MRtuW&un zs~b?QTL)-V0MBZsX@?ZkFG9FTfT3VCUTdQZNB-%P(Ap-3B!&uvoqlt?>)qF7PF2Az z3)g=_ifA@aB}X= z(pYEl_At+4s!q4{YaBg~FU6grpQe=&m^e2KxxIp7?~Ga-@@82ZY)1(AJ4ByHAR=jc zkBlUoA=D3H)5`=MDb{w7T)oJ#G5@h;K}}FcNHONE0fmfrp5D`T;up>vNhM{JPPaof zU>)V@YOf)W%H*ftgBb|!if~DKvNG3N6t@>FbrGUn_XHQML#C>PSavVcDFsXmR-8AA zv*plTuO>uhqsi(Q1)w61y+5KtE@dNE7FM#w7ccAJUE4R6JoUPwn;Ts7_ObkFiepBL zSzfHEo+<8+lUunKRg>tGA0_NC<=5MmQV#bG-SxR0O_PC~0EP9QZf$MI&A9{MlAz|tgb`_GlYLmgt9J~Y0|DX9PA#*o^*U<9y?TzyIW z9{qJ{ij2U}m#ErNduXF1%cJhyeCxo5^<4HgnERmw1DzI?`n@1ljkUwlt<{ZA)x|MPCsy{8)H|qGPn_X0dM-L3j)B-aErNxdYRZXJV5SNedaKlSr z{V^~AbmIdrUS+Tm@*`#pem!nB=eYB?-93nBg7+>#P)=S?;3;GfA)Ouk2E%d{ri(QX^?Aa3Lk zoR8Liz;Mnoun+7Od0D<|u{HP)+}KmgktbpXWTHFCLPp1XBkZ1(6Sv8{w-W`u`dt5E zTo)8-P2NSbwU>$*lN?#(m~X0W^viD~Ph3>v|1@a5VssN+;yt3ew?+HLdrtUO8d6I%#wZaxzc0RkNB~u?i zSs^JwWEq@)LaO>{48oy0WQTY@hKA?wi8S6 zb``cb*B7D*gLr&*IR=9@5`EC81m6{|%sGMAKftq^JbbvA|8jG7%YHnzmTAzijiEch zL@W&_^|)2~d-v9iqlx8s`{I*a zq?7;9fNk2fJj%fk)q0^MwSwTpxq*7a$B-_IS(|^mDE=E8CV?`Uk zrzxNLspWRInMgSe&285WZR}p1-R=4MDI+S7m*Q(<)!-?-E0(U5W8i-QT5cbIK$TA4UXMwi^M(e7c}@|X;*ZSWXla6v2)}K~Yk*6Pc7krVssvc<5teY}qU^N@{3Mq;dniWXa&jo&~@aMa1pmA6#j6Zl>< zCKWaB(r8RE!h)`dDlH*Kpk3}bR zhN##@U^4Wt9}GW}WsXKd&2N%#TYewdQzZhGU9s(UZ1soDJ>|S0yI^Ijp0w|_x?$#u zY$*EgWK6D+qqZ64U!EXmOXx!&O$lkIDOJ`a5#sxQSiaP@RWe?jk=|j=m7`!bl+U>{ z0kh9qPvbdckwwcJm{xLMj<#t{K!@|i3IJ@bE1h?sUn4-)@8N3UI4w;`{1|Y!vp94q zu9-D+ODEwiI5ZF12B1JOLbsVqnUo8@CxUa)4SSGmW^jf3{<(wLrWd zZ+AnbPEUPnuAS?5Vc<33k7tBpW)h;DLQgIZ7=#6yKgnKNq~YHFD&5w$-LKWbv}VWA z^1_3<>ukB`jZchQf)w@W+pdr22-LJ)qQZBA_;yLt>ljXRoo*iQN{R{e8N>gtGbpvj zOG!<(XNLQ5#(_xW1coSjIvL~P%e%%YVLHPz)ff{areXBh8Fk{00 z)bW>AAaS`wI1?`-o8F|xKq>7W;!ZV_yqULC70g7>sKx9mDIeVgOu%mXQ7KLR?AKnU z>CW7C`GhkW?Hi?!+ozy#y1%>09YEZ<1{_jPA4_SENySFz+({&iJt)Zea`zWI*tn^d|;~!)){bqd^djm*zi_rOPVsFWC zVwn!c^-Bi!D-P3)gf7JhJqcn0$u-jgQJ}X-PdT0zm~E^7XT>v3v1&^mq%r4I8e~Na zgYBy;Z*O_%H4dPGC{IaZ6rL(hNXtti`^Bj0&XVsL!0W<3Q;kRZdI4AQr=1NK66UY4 z&_-TSD-#B`w@Dk2Kb!p#!{SNQC8fSp!(xZAOzJDQc9HM~moWdd?2f9(s6_g&D|H%k zqejuc@MbF!KMW0^8o3uj?f69a*5(vbkkdEP{xx?#0|CefvEg zDmJW#X2nuSHz(nFa*4F7QfL5~-S(4UnEJ0I8r@Uz(;YIPt{DZuT_V#5vDm&(J4B!4 zw**M9NG`ox zZ~)>;+ z+=~iNnm|ty_zQ$0(i76!#*rR#^^ec}gH}v#FFQbXL~OYhx2_npy{51NU}pj=rF>$| z8!axMIl+y~x_TkQ@f0D@={^i!O0#3sk-aZEM34*0Ty4_GL-U}o-CPc=?WMJob*7Oz zgRGE@j3yJ%!$iRkz`XIfWEie>H;He<+8v7vk>`f#HpB{{3n|j4=$204M*=9^2@a)j z)YWlf?QnDMP8o7H8Sz1FCrCT8hbtlt^jKWWHYZu8+JSFEvz+qb`{-CxWb#*1Q2xrw zTK+iUKWu4b>r0uU2I!pZP>Uxeso&TEmFE<&q{prGP}rhu)@$xzw?smw-%_pB@Drcm zwZDjTj9+<+qmF_nRp;>t^Qf8jzW&c7haDH+-38PWMA`4&=vVD`N^2S#=hrN@%d_k` zw~+ulK*Yb(a1sAbK+BFY0IFwI@(i#h|0%vX`R3MWOcZ^3h>6Z+*DJMA15J5ZwOXNG z2<}jjPOa7m#x>x*iLWV@yGtU=Omn;$2n_(Z~#7nIEm^MpF5@JX7L#?9s1 z>5f)E3C1`374%N!nx2YC=Tk2xZFz?0=Mf3ekL}cZ3>ZyBkdX@c_7de9%w2C_ zcx_pQ=eTk(K_Z$Z`No63{mr3=_RH%GB;}D7Yfm5$qTCwF$?tPqor$c zoCS?U`DU$iY*ahKPO0lj?D*Z>TZU~I@w7CPt;52d8R&-clV!o zwPsOZ3Q}p*wy!E@c%G_5TLv6g4uU@!vj(8A($ZB#Cq zTwEJ}YDq}VzRK@L68UJUVx8;dX;1&}eNvp6C#c!fsh2jo#Lq=QchS&&Z@b6f=~;|d zuN^P_)@E@>-!U9$*P0A}?;GCs8ST7y4bbI)NbfmWW{AF|$;qIrs?1RI1uhbshXLDO z!9h5UW)c;(H^@ud9R~q|W%~7-nTS-grj2Qt?v(I>pC~pRos;f$)+F939reex&&u_1 zi@No;f)u$m&g2k2+J=hxh9RU49C@&2x6ojICs}x9rb_YuLns9`wmC*(v%z1C2ZY)` z+j`VO$m^1^USV|n#eE2UKs>+cdXY~+PEqg9!#u7f@H+5DK-LlWE$QUY7L+9 z(1=XPiDre$F~-J@`c;C_s#E@Og(UQf&n z>^TAGeK_3Ex<@_h=cB$g!tA{cFtzRG4?Ev*RAPy{c%f5wh?rHlMXsW<76g~=sd~df zJ2A`4kTrx!NMV{+q!*WXS1rNVGyL&JaRirk&um2k#~Sn?-!AgSr}tQk?L#n}H1ovS zxQVY`rIc-0#ZUVw@L(dqY)kr^{ua$JpJ$5Vx{{Gaf#;wySyn%gk^)AowQZ6Yi2cbG zB|tZA7ZMnkRe76GAt9aHhp8ANX_EBEnE>|G-glU30DRB8b(D0WbJGkaek0Ho^D&vI z+t<6q zdzrrcvxfg@yHR8YgHGuxbCT0_)`#4M3vNrAL6`yiT3i$P$$~G7Eu9*}b_64P;rLoM zukeQ$_KAxn@%IcqzHh{hE)7R^1=fc#YhL)2M=`ua5f3Lz@qA@~ej=15TK%=DRf8%c z5&m&H$_HGBP zsBBOkkrSq@?^MR8y!i71;ZLlsX$4>Q|MvMFj+mhi;p8Bs}UfyY4CD_sj<21|TuRnV;^vIs6gslT4>N*}s1M850 zdwSr%04j@T^IZ=Ni;P=GX&Ke>SFTV8z+GQUFmDe+euGoy4@D@*@S$>NAd4C}I?U6n zFO7=+*4pQmtBr{=dp~p_fKr>yF_R1##|NuDM-(;ev3J#lvBJip*{xvIgm^ZZhqeas zva~SS7E*=}nc@rQi+S+R?Zt0oLjUPEeB9L_&2zQ0)Kkh4G2CXz8Mc%Up)DTWBe&!4 zQgcWzqz~|fU~emhRjdo4~lq`jTCSIk)OvU10Uoj_`!!`y*MsO z$`kion9GI4RlW%f`6*=9yo(2k(euhUG-2}YiY{QaHD}QAJ_!0Gnu`1W5QUH{3bLOQ&vY2p)F5+4( zA7|`8miH`28m^d28UYR9EbY^&UE!F%{N_m~D#>jz-LJJ=mkyaiabY+j^60jqW~azJ zV-=hwXmcm|2Kn9@2osncv1;88(096(yP*cG_5qQVPnv(L8S$?;e!}4xuIVS!Nh>p^PrTw^gj9D$%8^y6UFF@vb!@v?M zvV(;~2eFMk;!NYI;f|z6wF$bET+=@+c{yy0GC>21<=$b+wJ`3t06$y3c}Ae&=?zsO zrn`XIxrtu?F6D_su75pho#txmw}~cxULtM@;fONmqFH*_*8R6?hpPvU>T(6b1dujx z205&b2NMYSm(T^#NZ~|_ZQ0<=sY|B>!#Eo5$%gx_MQ7mq*qo{B-!a!4B7XQVF-IUX z<<7}iA*G!isI9e-kKqxVPMfTQlV8RV)r42Yx=bx@#Dz$4gX}O3Tqa9qNnyiBXx;aW z=h)9i`;ZQd1jvJ)PpYB~NM8e>IjVzb$HT{VbhrsvhkD|+E+Yua6}^bZc@`n|m!o;7 zOhdYW8Z-_PJu1(SmjT-UUOqKMo|jXGNlqeZ z+lv1vcIU#_U%3jAaJk1|9{tq;bXScQN=?1G@Rf!FB+sbMgF;;(pYMIy8^sT29kxLb zPKAT~GXGONVl(iU^yzd4PmP8f9OpLVV!p&KI83SFr@&1Cj##eolgYxPlgfD4UdH1_ zjH#-{zOe(Z3d6GO*Y{ca>yszHujmF`ntg%m%O?`T^3B@M>!YaFkV(KZ=ke*Mr!Y@= zM22YpXA$xL9$Lraphl#$2i9Z;-%KpWCVi%*%CHU)-lfRtOe3*luVgLjTO%2mUfFdTXQdj{rB&#^)v`7VjPsY5A7FV4q?n*v8Aa(engqR4?in z+L5ggGK2mAE*LWZ&o_ zFMKgLUOv|kZJ$d0tHCifQK4gcS2eU56KD+|j0$ZxhAfKiPvq4>zj=kHBSSFdkFp`L`78EIeu{%$G>g!bCQ~z2uk!9kuUp3bF zW_%`+OlT~cy`mJ8WvSMA*2RDm{4?;gWl)0>B@m&DDGRt4%QJgaZFs?+5)%PX7d)V&>OVI+;);U8%F| z@}3r)Qa!cr{84_&7udCyu%P2-^w; zQc3x2)a;!wYu886hJL4OQBv>D;7TAold)g>q3b5x?*j>-1H1s3T_%~v9Dt*MmxY^g z?rn9?Y1M#RgqVow{na&VhH_~oGC?PDHe=G$5jH<1tMIX}+d)>9TNnKNmP{B5C*4&j z&RWxNz2-AW+SO6r%;wi-*q^^N4=K6c@^+*+HdTY7b!Di-Db{itR*Hk;bpP`$uo8wijQP1H;bINs8q7mBU1GWmiL6#K} zDz&9BCHpb@vtMCNxFiMLe$@?5uH(ecLsqCva_eov^44?pY>)C2&Mo8avR3DN=a&bo zr5ndh_>Iz-a8K$b+Z<;(`<($E!U=I$7%9bBBA0F!htR1Wx^)k+a$!f=t3(t95PNwNX?H+58;x z#@LFA1YC;Mt=A4JbbF*B6ruEo*C`{F+!8<7SH68JTkWyoEzBIFGf)rH^sttGqicCA zDMe*ZkWM6Lyf0^7nNyW{#aHjq+u7IOCL*di!iLhOjJtv!0A82hIByP|^2G94fU8?v3pPgHwdLi$=Q@Fz4JyiK=0B1F~*w$%-VmzDtV4ltuig<#Bp-}jU4*kj}mOzoE z&PQd@>MDXst$IFF7NQi)eIKb+;}?tK^8AaK3I8tV&@s4${R>Simv)(NI&bo(e;8Yn z`+@%x2D1?}c&-GQAXq0)jw1?t68e^}?Y4{=w@{8X;321n%<8X^omP4&FbYQ_j6iv9 z!h=FsGKvG50K8K=;fj=A+?DvmRj~iqLLJbIXJ|t?EMq1MY9&!9(MeHU_W5-)rq0t* zvAJaH6VPbYlB3$@8hV0t8%)H~hOeU(FUyu@&hrz}ea!X%6|q`0K&`n)ucfa z9hT4x)byX`=X3%=QZNzi%&^i`_v3xp^=AjHE?eNW!6{&@%)7P3&St7*vGbZtUa=0P z+aQk9SS@F5|9Nd0qJoyrp)nghGTlrKWGUZZ_8`HvEyUWxB0_>TzczSTz!yoA$q9lA{KQK^asFc(8#7zeOupp&=W1w_v0pu+}S(H zNr={Gwjy|#HWJzrkk249@C!XSGfe;d+$x0#KM71K;j`DlVx61q-@%~||ZpKdgJKa#Q*$sOdxH#TjW z_hSfQYuKfneD%>S{)#cbOGl+{cwQiv{HP8y!pA5I64|IUg+Rn-ZB5;0{{!-`O{faD zaY7HFzQcDEqM!h&e{}251~2#XKiO?u{+6Ehg`eI(ASsD|TmnQT(UCY$_?*%Z2ZNto z!{%FjFf_zPpU5B;8id6jTx~KQLJLh*dKu*V-8P3k?${w4Cib8Im1J*oGTBJMxTBI3 z|MT}J=;PjuQXuc~gCqkbb_RZ00i?eu{|2&c%TukW9Me&J4pC?I*ZEll9VsdfJkbsi zsWV0@(5_7pSK=DOwl`A!jhXDr{N^2bT$>RVOFEJqt=i=z*m&RqK1)HWg27+Pt;q{7 zY+4$HkwlvvOBd-NPDb)w`$}>M4{7T zQEQ;7e?A$=Y7e}#Us{q0g5L(R$%DiJi?G+YC5(1OEvZ^C)Scsmw^7CNsEJe4bh#+e zEq-%h2dH0-$hWEv3_SeIe?#ROZ0&6>I;|q=T1q{Nad$SzC1}vPi{6fi!ZO23jL(ZR zi#BHSkpwqvrG<{caM~`FsILv5$ z%8@^$aIkgcPgy_OpyaDD(GpTj6&s~-O6o~xo?V~rV?4*QTurDO*Qn*1iK4kHV=`Fo z3#_r7|1XwviPtpE0u6UX@cwHZj2J-i75fA~=Tuw{2;X@1ZFFaeiE7}} zu_!nL@=tnbnzE4`L@6Oy=z<81%=d)Ek%U+ha< zo3mWPgM9fvBxZa^g^|&aKcMVVBFO`fVJ2+W@Jg7g!Rp2iXr}{Bw&Y_lF;MU zRL9zZP=z{Zsy(00T*W_G(&*~47G?*;4u4vw^y4aZRF$fn2iDqE<6HpWe-#4!%zKXU zV(#oDrNRd=!h>tr5l>p;H(q&UIXvaK^j{u;sSLjxgKDw2!E;S|x-TS*CQ897T~A52D)%iSC1hvIsMH7KI+$iIxqH_}asZrVt! z>zbM+6-D`ThWiV+*OU(zC4OkJFA2k?KbRsi?!@BqnP0W81dCd*U~~}U&E+UX_q!wp z2_s!-{y$TLdH6EnwB%nG3L_#>p7gI%4kxu?6RHE@X5cz83eLxhI|5-JHDZ<6 zdGo;Euc~Ym-;KE|nDkoz`>R~f4$=X@gQ<;+Dl}fie#cwZ;a}Vz0^^MGrn5M9mGr&# z&&!{TWg}~p2)8el(dzPUm4(&SZOX$UA{v47_K(DEYdQHqfd0S6h<48y2MhWO2##r` zj&r6Sb40PygUzH>x=DX@3XBvhXGD11B*FZD8q98FIIPa=1U15Pv%v;I2JcCu^K-2K z$xN&5Mj&`?m9Jc3UTiA=j~V}M7z0R$_fgw^4A(S>?MXjPMLd|1i#TlY@%s1qS?q0x zR-3Q@Tj~G}kje0TwNj{%+`IC%(J>hXP%2C)}@ggEbiKyN9%G z#)2DIGxK%qSPq9byIn{bLg5z?% zz!a?nn)#lz2Suw0Trz;G)U!`8pc5Dz&Z#0R;=?~CYAB9=M>h+RWenUEL9^AD4F@gT zQDBGSa@}nh2L0mGR><(O0&qjjKS+*XhEL&O4KJVs;@jHufM(bz;9K5ENEidwOLJ{K z%!*2iLKvfDy+v*otd=^dCN^}o`5+H9VZjz3<_oBaD#O7K6U`YSsggIyl^Sz9x-4sxwmnefO6!|c>QJ27Kr9tkRS#)MDGT%S>&ue1N22d2I#(RM($2g?`3(EVyyAvvj^&RrXEXKticF6D|fz zxROp+yg<9~WKD9nYrKtIQPXccvRAPQb#C;m9hNSs1W9v#51?R|>(XpB`~Ya3{_1Ez z_>vLryGy!Z3xZ-Z00N>Q%Pw~MVATPq$un~Rwg7B^XLnOZ5C)bMQYZijGkb*{eCNG6 zDXOa>&={IcFPr|C@AZB19);(MA1R04Tj-w0DZe*TF#((jsqZ6*QoW6I#xES6=X{a< zZ_XT(T>3)#w2E70XO22j>l8H%dCl)AbY%rwF44!(yc_XX_%+`81!hFjVi;;Mzav5l zN#RP2wCQ{jcYjf=uNR&3rcl`Kh3y>&^&v>NqT~$ zd<8`&eiKPn6Zb!$JtH3;g;W-6RP4kC$|mE()Lmd7t6%(Fm&0DPEav!|*C=QVxo5S! z`Ir1+)>XJ+b1LJpz$=z^pZ4Im`@G!D=|!y3BU3Aklxs=&NLnP01G3k6=_`yUY0{~* zgm2#Tv+!OH|E+BHR-|7ar1bXL_&)~qP?^kP0^UV-u#f*%MEU1keI}M)@-2KrUR3Uj z^>oYglH)Fa2kD)Gi0t(|FK9dJQ3RLO!6A}*BWo6?|z3M$=|P-9D?12KZF7d zQ48oWE5B}1k8|G*%|kE|4QPJJgonX}QiDk3?^@cz1zvOD`^iE=&l!Q=2?OVQZ7(JB z`{!Uur>JW|1z~4a+w{g9xVp9Wx)*w6Cy)rgU1Iv#V~bMr29L9xXX+}zaQ`{)e%Gm8 zR}e|)D4Y)`a}+UymE3Ynd?)NaqnKy6Z4GaHJGoVGocgn{qGYf&@@E(k(?lgERTYHs zV%K*=B##z7rpBrJlEpAUGcynI4!1X|p|fDr?O_}#5HubK&bc}{D1&C_bwFm_6*0p{ zti?UGkq^O$qzOwI4AU=4#<3YwmL3Ja4`0@{ABP;Y;ch6~MVmF9ENuW^j161zV_DsU= zG)yL;P5t$;Yz8A>iBvPH`Id>-ZM~)NoRN^vjLhz)z~V)mTF_}Wicw9s88w`MzZyJ} zL_8%YSqxh$VUjR8%@wz_gv~^__b zX$si)DNTb4*C`GAWhI?6CLd~#fzqD!w8`C^(bl~i$9VQ7;Yo)-Rc2c$C(Bb)EuU=g z^H2e`z5^lVl6{;*?zpS=fKp0owE4h5&*Q>U&X48O)=ptAq{wd&*|R|G0SRE^LK2S? z1T9x7BH{m}6aaL<`T~pv!M%XVbE@yrn z(S3gu7EfxS!#e*(7QQ-Bbj%Bc;i_h3QUh0hi609YJO@KE+za*GRWB{<_!J=9klyf` zne{1uQV9Mj@;lXKR*Sq5!I9 z1g7dSVQTkY+cnMEAs|qfOg!K$XU%$|bhfus-!{bhOXm33DGH6Mmz zL7m37w*g9#m19!K=opmwORz$TVY$%<7I8)+&~UHf+TKc65X7bW#GOVtM4=~+#MAKyC(~bTSq}D-s2KsAigRbC=GkRoz|A0i=zx!0F8E1;ZSK5*2oR;GR5Q z+z6x|9OhJ9;Jl(?xbYJntcH~Qrhyas&r;9`P)Q6lE4%!gjh?Em3o}UXeH+-HRUtem zv|OGzs5RsDGQOe}vL_?~!j8m)D;i~TUR(`x22uAWu`Rb>P#WgDz8F&G67yQ(dcF2L z$-IO6?2&iRdyMfFWJ5C65IwiHN#D6}%Xj{)+~vc43{GYq>+&y<8M)~eYR8)R^t7AH ze#CY0nP|co|uK7zN;2@s6T)BElE!xZHcc%jHnr2nrGnCm+GE;k*E&dzKoRm^#=z#XAS% z4_MrM^EC8&QPn_{bVN@@@m!SUQRUpbZ5LzCI#?36fE~FZ-L1rCL*w0D5M-J^vNt0?hM^|-RVojwW7(@c{qKBe0NacRhUejFgSpxW;ietA-_>_e^lPe{)A z#ZSCoR9)6GR_wj^3wO~t^$`@iY+noFm)p9_29X^}4B!w!tU_EfAtcCZ>9VGJf{}V& zTDnZAreIY?B z?|1w2au#hwB=Jf;H`dz&CW=yS>u%R$WXI{b)DYI|d*5rkok*CcpkR@Zsb{c2sLGxX zLuu9ACvoMEt^u9Nj3)Hj6X31cdKGdw2r(S))tu>0Z z9f*Xz&FlsLtZaNCFEmd=9gB7tok(yfpbE}4XH@`93v~dHT;cZ=68sbMQl!HD>ae6L-JB9?7qLPh7Mu+huK2JchC$X|nIGT* z1zfKy3a!pkT**s}VJ@Y|zyZp|EZF6DRH)>Dr_ z(1Z@Tl9strjNJq6_!MEHhhJcbw-iC6P#(1U4%9ri8BBT}W{#tJrD$nSj z5`!GzsAHf7YSm@a_0a!SE-`dMQ}K|nfZ8a6%lb&yJ1&bkukI|E<=mBH#t#;qsF$1| zva0(tS@6dg^Z(Z_Sz=mi4>s&JlEQbed%I`sC1|S>l-jli3yO`a8UtG0lQ!uY?MT6K z4NXz&eMTwwZyyeG?r}5u<^otEpb23?D8Nn!SlM$_aJLNZ-~l0{T5S4|P&4uV6PCB< zI*y=(u^u5wr2{$w`MN;QCftC{T9x`;p;mtTwi9+gqoT4`@Kq%VXl{f@OYhah@vV5LJKT zHl?(xEmC4&GnV^cnB_9}%>gTY0C5%GACiO}b)$U}AsS6#y-*c!-%Hig0?C&I z{d(W_*ZQ~2>uC+`SpZzO@H#k7#Me_HN`GIAOA~jY_II;5P0^S~jo#XV{TZ6RVG^u= z2QquXNRPekx^+?FE%?NTvlhJw>+k^wd_`2zQ~huN+%gJK%31QkhI_v2%@S_uj~BY) zTHgqfoiTHa+xb5b1%35;elXnxsiRS@tcnaeZ2dD~mI{@9mWkP6Ur{@6-@s#N0*mhl zij5?^L%lb=L_+@dGrLgnDNrph?lxULgVNK^EU?1lslE_m4-i)1#qbh&Q(t*6I*&nt zK!R7ZwgZVW6HHE|tq`lnrogw%`H)!=-S0=J-wyb4kJCZ;$LI1XD!JD-Onr}N1aXaW z(S1ysu!YlDhWEYgB2)MSmO_X%G0IGV9M(#_1tsuSo=&8B#U+<-uA!nTS)A zOm3NxUQdA#2p&gpBvoO|UqX%dNPK1tWMVh$+zcyREDRGufk{e&B>@XC$_H7gyHGwO z`cKMo0XT0e%Un2Ex%=S~*{bWQoF=fpEE|v5Nh#GG-#ax;kXPvTyM3Ee@UNQ5s8N>r zfG|rk*w9W4$xbEr{beisYuxP9VYLWNYVyGNO65r0EL%f@3JDS#&1`jynEJm}a1=o3 zOCOa~W3fi0Sl)#SHPGK9bt>}QNGof5B5d4=u8rA->2KLdZL>&i9>xB2t^ukmj*G@% zy?DWaFS6*>3R5~MF zfe}Fl#ZlaBN~R_A>Jb#&>5dt?Owrjaij$0;m%!}wV|3ldFc)-RX>pv>PN7`TofgEA9pH0u9K=@G*YsD1+U*ve$XYn3cM) zoAhc+V_~WELCVS3)v}76H=Yaa#`*!VBzj-VGrTjqpB({hjo6r-gOMvp;HJdhaTn!T z*P?4yrA{$ZnTX>m`M*-9N)#ldJy1#4)VD8#{b>RHd?G;w36*`t@pDIKw{Q`y3kE_E zj({&MM8qO%Dqhzyj0gu46&i0BQ_fR`A|s~ z8_7hHBLIbTO`c#~ZOWq8-A7wSbo@CU=cAaIh}cb3=)fKP4+Hv>t^SF=gPjh`6m54s zs$i$a`0KEF)x&qh*Koq>sQB{i2L=yE0Hz`1r299Z~gT?(A$WJSbzc( z1xzGz#4Y{`#r$lo%Wm4KpF3?IAs(_DHxuKWvkuYN<;AqhRN!f-VLk@2%@+NR9@Y6b4ZVE|Iep7k6}AQBVCsj(7Qun51iBxt``3MN=IFh zXxrqn9hIZRe zy8poaXRWajcUEP`1j-gg7SrIEkVLALin>E{+jW+{jA8EqV*n&lz+*r@>ZKU54{ZpJHPp&?jNq8#trwwbR-5Q43 z`b*Gr4N(YS3JlE(K0#OoBn+kLY83F`0p^-43{lI(&sVtR^_anER9@N@53Kfok0^Oj z%CW_cV(_%Vry-xki~m1l*LZ*LJrHZ1q=T@c zVZBl5YV-ShwXC%Vbjuz7wv-#D5T2IgVeEC5e$&9L`KbB_w>!skyAzlU00y?3wP!zSZKn!RkcF{i&p3TI@?xL=5 zmyo=OVvXk}K%sD&z8SjE;#xjSUhl`4j>IJ)e&VXjT1O)}!Eh!!o0~VeFZH_+kI?6}vffAkFY*5-DG zALA0@j?xjw^a{sESw;}g4Eyb#9r?_|3esCa=IuU4KJAP*`83savt`|{5C)wDnMe8rJ>N@)-aV3`0^F#Ji)o3+LQg@jjsH^1*3OdxUtzQ2(n5 zTv{403;W7(oS4N(F)c-^DO64rKyWnzC0R0r(F{zrH|rz#QU5SQsB}B(%@NcpQVsqb zVegBdR*Mhg8`Ha-q|4)QxGFxjn-3w&8*BUkQF6HeMvoXUH1@RtPqbKrl9NWHJi#s# zYtaLd`ZIDM*V8Hm*U19XAM+& zL|P+sOL{t6wWOJKbu&UrH%%yXNp~s5#xxlNnnx&_qQ~wAjKWQI8Rhf)PykYLJgVCI zbF`u@3uz*95G~LnmDIIU?A*cAJ7)rM>_Vc0;`$bo>vTE}a2M;|fi_+Via0i08{?>C zw=({jL7tsy{72b1e^n#6bx;$%W_$$P(ZFpGDms_!_CHG-3%H3HNr@2STXV~x_+OwuM zJ{4s=RKc|C&CU6tiz>1d;&^euZoSQ^k$EJ5ag-Et1aTYb1<*hKO#6JY#6A}0g<

    +3yxHpVxy4gw{itJ?BZb`RkG}HP`tn_Rz9c}s(4fx5IlHLjxhX+d zXHTeo8V1KcH`B)aR4ysbl(1rHF72+O)jeS^PZ;6mPi~eV^V%^`l@VPus4ycBaoPXMJ1jJ8Flgh`V6YOY8ZlLHtsdQV_oqj(kHO&wf9hu9h&MwHodiIZuU| z@w|s;Q!}AF6W9uA8GB$4zkD*gTASK1z@kSLahYFeKn;w5cAx^EN=zxD;qm~rm>th_ z0aB*5y&qe*b_+RTLkm{dZOvW|WFo;AXFf%OWV@u1gf70s6ylGJuZuk~GHB&sSl5N= z&0m@$R*b?-7IHlRzrAAPF@F1E=&i$T>S-a1m(V^T9l({;FWCMAF36Q2SR#Aypx9L; zS1*4y`#a-2T2c+#{$s@q=1@GX%o3&Kx4lp1_=Yog@k<>`yDdJ6@ibzeh zdV0(6VeHnb#_W_Blqb@~BS}CtzXk^8im`Y_Q+-pyk_tI4fxp(DkmVjNWc^JHAm{Qh zS$$-6%sA_7y!|&MrrM9vMjIk2uSB{2VSh|m{lc`HqWr)^s@UZ?7Bmmhudb(AE}B2h z#MuA>Op=+;M{<{&-R%z^0?f^lqBdOWz=5)YZnWd&Syavbs^*;0$`IRFTU06(LiKzs?xw?Ef#DE7mcew5qd6Ys{sg0WT`}(aNx4Kw_=-yufF#pZ544JXVmBrO8 zPolC12KO9qFJS*lESuJ(3!wU4_}afij=_@;KYAXs-ru7>a|HLRJ9ig)2>O&zTb=_m zzM6+ie zuf73{1KsZacTqcJICPc&w;&y<@A_mZe`l?0Z9Ie@Uc6aZU`$ZusC-^6JHm(ue74Y% z3-LM#0kcgtsW-;;cp9DMcy?kexc#bY)oodGPuZ%8P1zI!4S~(QV z#f~wjT;$oFCW`KePVe)e()7h@uC#+MyEla_cLW-keTx6KWngZ}Mj-A^Aaob`t0Wt@ z=Gph|-CbV^QWKQJq3XEqUOtYd+G5m~XeNLJQ3u z0xwq4Lpf{7x&_l%?PiCgyo2nTPg_eWufz4!d<+Gu62WWrx<0c=3FsXxk)}v%-0^7a z)Z6uw!A>HvhbPkBh11q`={1F5kmdKQ_P9NiqZcD2zzKn+9~wPy^$zKT(>yjvo1x__Ej_jjztj;Z4IGNRpSkMFX*#Z4h>IvZ+)xi^373}c zVx*E?u1-TW18)({Fl2>5@COEKiOb5<71u@75)7V$KA6~1r+o)M20)8xH!pC-{H_C& zF8e=itMEo)@FHKUF7pzddLwxG>k$!tpAI6d%VAuxVF)sZP|N9v9@QP^o`* z8K^AJB+KLI7%HPnB3PgJXAvip`RUt)px?AJ+B-pf5JN4pHph)0|H8JdkNA`+=8fw8 zQ#l8y<>0DYZNk$|i&)=FNJ9pQrXM0-ECxlQBQpB1e3dYBeIO83iReUF?5-h1q?{ghW_;eQs zZ|#s82A}iTzmzC~<+cDSBrv6anGGoe_f%M}e1)kVc8md@h&I%IR8qeY1369vAOO5N zrsKosBEHWPDgyjLP|#(ATR~=#AiT^+oMVG1?wCOwZN||286mZ zo)rBUbC`Grf6xGH1<58OF@`@9AccZxxes{@koo zT}Vw_Dd|~u=?Wa6f9Ffbb@U$(9U9Q}3kmf{l5q;wuH*Y`YunTS+!LEmU6&uXpce*& zo6wBtE6McWIImT7TM-^rEl(G9g9rv&bp^gdZn5-DHx&1Wv{`t-7$C~C_e|p{5tel} z9}pJpD(%ma)7P6T1~oA709;JL7IvN>G+s`*jB-un2*$%^f-;%+e^KW?<-7pk&^EeK z*_!5TJNT5Dk&BEznmosKYa#6(aqD{u^>nX%S_i;LQ@!oeHjwWE_>Egz2SW~IuYDl; zg`NIJxdsW>G=)2y@00NW6VQ13I7{PugZ0i~6@~p*9-A%BPBZ$TiKiq+dJYaPX-q#W zn^}69T-v_ks?0^ga=I^!HN#pK-3fYzWmgPn=5ep#V+j8L_jEZrw>XA{>T;Zk^W#Dw zRVbnWa$>US84|tZ5_;R((1$Rz2hYs$r^>fXDOmD85d-_zH>#6gIQK`LA^Qs1cK)0B z#@Yyu{CjsDGVl6P?l&i0@o69iZ#up&;3*#zqNx(6PeSzpL>erhEFL(z*+JK++3`9Q z1tJd*4Sd-8T{7vY`u@cx?v@(#%>^H}{)R#@@qr=U22c5X#QRskQ!>b=rFX8|7Il7`>d5>hbnrsg`Ejjp(FA<*7$>Aa`b zP)f%R;4JHY1;heAhF*1KkCsrW!2i;7!o%cPNci*7dWd8e5%^(!xIE$*bvQ(7s_~D| zKQ~uzG&I?r9l|O5IVhqvudMLtZayj)faJ<;VMwU5o{{OLF2cj|&()#3^=7b*76Nc0 zr6T1(1b0c_f1p;vM;%D2t&X`cXWnd`rcO|VZ%(HHrzG^iHBA;FH_V_$@i&(QaWb-$pL)p*+V zc^r6gqY`)vt5h6{5sfv%|Gy2@w9T91AMFIafOc=6o%;N(pUd2bQXf?W&1>d4O^HR8 z%*;o7fSL#q6~MOA-n7v0Q3O|`h!8RL-JZR`>n~aP^O(#xj@N=E({kka&ljJ>(H4}esUE0>RU*5CIV5nr{8D_>n2vcI~4vTLfpk>y4PN6TC#Vugp;TdG4bJj~;&A%mI?dExVtVU2TLt zBse#j#NCXypkc@+SuBl1IwX+(YVXT-0{VsDvRpe zQKUM!yfG3M^83t&4x!oB6RNG)g3ZSPKIi!%iB<`8lOrB{wVOwS8QRM@D;PuydlIjJ zSZ8Cd%)9;dP5jV|9^yO7^QlZdu`*+|N^3zx)HI)|B-(=kHKqp%;6jJ`#MJZ962idR zrOi*SY!!!k68v9rDt}*CZk>{{uhy)MZ8rx_a4sfhv$(=}sG>IG{jAB72W}um6lF^3 z{R7g)hfY%nZJ9HgQTgAVA316_gfH>-^2Z9cG+!=$DxeHQM9cvp*NMlg^Jm45a7?2eaov!*NuAM+^? zAw_QS5*s|g3@}Whk^0I>ntTaJeg>{@sFa?8lP@bFut1wUPng&vQN0cxHt*lgcMW{> zy3SjIPi$~yKQSxkR+mgT003trMh9ib``L+ewfE;rnexI)e(^qL^nq~S_X76-O0v|V zDeogU{}0CoK-WwR^$RDHiIRfQE!dQU3d7P4?PK$9evWdiAPtzJc~K*zAhxQc2Gv#@ zVaL_$ab`T_#Lk|5ABJ6@#{SA!$pSj z+g$=H2aw=;vQw9Bwe3}$G;n+HeV5h+FYR?QY?;xA#RofeNEPtOmX$fO<%OTg zivps+iu*l2k{|zno@SbM()7O*h0mVjBcBei+tprsLZHwP0b%nEK@rAShEk_Te~CJV zOA#*zb(ouw8UMQ+c|>tK24@XZ2N7RARA-bz6DuHq_Bhla(ZT|vgkpwoSmP93nrHzZ ze)FA||FS{TJD3hZT061#(S}ZwzPt$gy|S*`7ptZYpq3E%4R6}h5EfbHDoc*tEk+V0 zFbS}fCX=>Dc|>Sze$%(l#y;=CfIPr<{9zP2chDtmf?xj@9HB)~#8;3bgpe{C*~E&# zGX6p##Xj&e9wIK|bQRvP&el(U<;ZF%ZVroRbl8h9a2rw0d+V@b=+II8oJ!@Au9@E= z0Jxc3#f*b=NCzH;Vqd+;%*e_rB!%O{cuj}|Nq8ORdW-SZ&n6Qu+61i4-^Vtx%Y@U` z57nnMtp)u+*4=1rH`0ahQ8(6w)!X3-+`Af<=JDIq{NhdOtDX19ZaTY+=ZcJn#&?IB z-dct3kCkf8tP>t3`^(&|w5I~b<57Bur8>9USKa#O4w09fCYm$w3dt;(#PJ+Fmhqho z%3mPZ`vbJ=pfeai`m%YpEgCkqDg`1(?7V&4x%wOxrvLq{cEdrR2VZ}YE z0v&9?2Mlkxqn&;n1|Wb0=)F;inl>Z*mOFn*FNVD$di?y01Iai*Ho`h|DVFvMo+3u^ z?2|(@P{5G4jxMc0Q?Ahgpf;tIPwh}wyP5oSsOX|@v;-97BP(>@?2%)zNoy4+~I=49W;(p>(vopK!J&119z{PXeR`0O?zOzOfx33YtA$fslB<6uv_O(HC zC23Q#CGaqoE5{^WsLu(M-^V5>rBQ{;HRvu5V5PLdZ4uNLjQ@eT0JI*-QdRW`y*mn!zyTu?8YuM@p<9x84sj(1?^4%(Bat}f*` z^aJ0{%g?sNMxVDyL&&2(r1i~yd-5b7qEI;rx3%LhpEhvu_uuRyhav`cF}eaN0o(xW znQht24X)sWwR}<;BQmlRS5UD|7SzBYD%3a-Ym9V6ICfr4m(zy+;|)7cphN#P>Jc*_g!uQttZcOy|1y*pF=zz*h^JM9{s@PATL`5rcg})Yk*d2?8HqL) z$!~oGR7T6fr94nZ#Bs5&9?^(bcKC!|{rSUPtA8$A)^u3y%p-=8m?9ocv$-))1s1URSg5h6RE zr~g42bo%(!_!JU5(?A)SbilsUNDoDH40z?T0o1IRbOn&CWcSxOf?}m<2z&NA2zg=` zg87a|PH)rKOK`1CI%lAx3=xZB(b17eqNpwX-E`8WCAazCEDxj^6a%y;$hd=jWrRAm z)sK<=7n{&McIc0Eh0*R36;CczKONv&los+E0+51Z{5`P}AuP-K(*8nr+1&cPNr&3D z>P(DRz(8aH;L+A6&|-C$FZ&ka9bfGpQxw=7R8bii*El}hel;#E3=#pwo;8LP;r{2x z{{|^<6@cptH=mbe_!xY*m!ADCtU@D~60}5aV=}POVGM_DrCJ@YdVwFNKlXbldcmqr zM->jjV%R05LpYvq0DGS5HzHn4xsqM@#j569aInJj1XB_>R@0~?(JS;iZ$E}mQ=+Q` zYl&#s|CI{4log^w$Y;JSR;61SWdnl7b5J|CGJT3HRh)imx?cUSzvSUBOCpw%YDLQQ z6LA}UUSJ|0jDG}4ZsMBq*!`vK+GlpEN;YJns~z^3(#ux*^);9Jyi!TyMzZ}R4fWFJ z@}J<0!B9ho7Eu6F)FR&HO`C3FVAE!O< zctq>*FT04T!nB@Y2YKm*SARAh)YgR}EGhb8lZQ9#s%nfB` zUh9gvBG}1(?RbcXoUUJvqmSi%PLf#L1R(Sww(35a7?h3~?QYmln~=4C=E}#He6Hrt zVy60fWJ|f0rW)5_$qiR_USvA7eM(zMG@~24qGi;8jxBCLsvG0Ow;on6)XjU z>$m&VunM$~g!z1q!O}OiGCj zxwOFKADK(|S$<%R#~n8Yz5(i9wfc&Of}zS_*-P0Sv;pH4fs>sv3Ec_ex*nAvGFgDwjW-f{k2L#*AKNEs< zPTJjQ`xKK(3cX?4Iwn3XFFJP&xda%8O!s)%O>Q4096MQ`MCRY4P20KX*Z5@fUS`W-&wZxH)PX-V#J>vrCZO~1XIWA*i zTd)|+*^LE^K7=^0_CrHLq0S??9i?L|Nc?(OYQD{~bXVad+7#~qD1}l0Z_*g#3g84< z@45wpN+Q7+9ikEw1z+Zej`J$O@bjFBhl^EkzsG&2;$;PL7m&^GekWlieYg+Mu_Sx* zhg4moarR+lhm9%VGU~eS2ZmmSRTQrB8!i0L>niN7z)eFl-O5NhNp8aAjJIw3zxi*u z`6V@@>1R;yvI54ZdI!Cdr7%XeQ;WM>U%5!rjOWl7;xFsK5k1aUQ?kWc7jV`^A1EcGZX0lr zNqAH!9Ybdwx;4U6+Wf+6nk1drMXG9<+foA8`dHHHLjxgY@fRA{9E450uo9l#^mICX z7SDs`m}Iv`v$)E;pRbw#e)kn`I7ZPk!4VOhkUhaVM=53&a30WIn=)c*7kj;uTO*?> zcN0TZ5^O#zJ>ljI;XDWCK(f7OhRkqBGE(B@al{CL>VHP4e~bR#gn z&*@p30=GNGQvf%4dYSs#wbVq@y*XQl#5Y(fnNAVwQJ`A1yMoYCNNwpr=eQ_`O zoE_EIJaShf9=kV_3Vtqp1;nrT%TR20CCVDHUr%|E2V?uVI#j~Ma!o5w1E6ajXV_gS zT(0HTLa10&1EJE$+18_F8 z0*q`vj!ou)=`g~p=h&^eBFLU<%qGvpxr48nQe0&fO1Z$`1hd`z>x(#Bz#{~n&6){a z`V|j6a20E9jDruUcp{iF{v8%iU0ub;Fg60^$+INXIE3tZV~qhGY1X00H$?Wui36m) zGlGX5m>p?HLRs%@4g%H%u-(_W!+@Bb4`2bGQ*isM{}0Z{Ga-%Ykp;tG@4L{8KL9_O zYu-7F*pTceFSa)~`s|r-rCOu~SV?|~k%gVv99p1clI(Ii=;3= z<}b;(altW*8QWVpYVy=i*}Dq6qaWMV7vJ?nHlX+V+Q_=xj4Q644USYeK@V3pLsSlY z#_|`2Hj(w}(=~_n@hN3(CR#mSAUvxT12$XWct0M@DyNW?2F}_vgX1K#fa?T)>hWMe z_=G8U;B-fKyX)(_xvoDpDg1Lo8Z{wm`l%-{gvU6h@VpDmSRvHrsGR{8U!C%-KIe3u zor%u+tBm#0WH`;y)=qh~Y!Gij`7`{S?dIWkL7qi2?RTTY2}}6xwWksAsdvHbTd5 zapRBnL?*}kjsqfz6Y%CZmw1#6SQY#XrybDx;yMh&5BK&Hb{E|}!6Tr4wSEb42Nrt1 zoa0@6d~hts)!8Mi9NEV$ZX9@hVZ|{I+1L$dr(Ff>nFm#hPn!x|FTKC+kZkF3Ag$cJ z_B)RHQGQPp56#^vQCV=zSR+SN2hH10XOdTvGee@ZCkbWyu_lH6$v)w*a%NO}%qf-8 zirEL&K~}zX5$v@<;_7(I%&qa$Os--3liH9)Y9xc3M;#Pyutp>w#N$cK&t3x&LdD#8j;-WrH4Ws*3hNE_IZY4i{>Aqd1C?DfBtb?zeXBnl` z9C|E@`5wC7@K}3~{mPF!c_@_1`uDue{1FBM*t`eQ+SO&ZPNovRX3~rEf;EtrrDBNo0a1!|RJ>)_e>4u-k76P-npXo`yIhCt5&-7)GK0WD^W)>f2fc;YbQ| z*RDQQ))O~3hC;hfY|Q}$Uyd=#K@tVO9zA)%FPzk}8J71c_)&Amqctku%@m}2 zVAP`>V>g?v)umMfHTVtu@E_?!a!fv4Tj*}x3@P9Y>SC!eQh!_ROy~F@e;SA?w${3d z%h%|#f-mA$)86()?K5{K6CwQc+k8{GWQ*KB-E)IATz4|Jj^gA&q8UMZRqHc3ll#pw zhVzNZV6B1r?*YF>6msv}$je2+QY9Mv=tTjRt33+)Ah85Q?!)^1%No1Y)g(3L z@uyUH7N4s-$P_!Kuhz%w+=&Pq%@k8w-s|AiT!(5IfR4r#4C}(65X2J0dHhGtVs7fl zO*ifcjMahDA*;?#9z}TB{2L9WF`H&A@q!+&(=Tud%-k-ej2<4O3`MlQ*M^yq0=n!) zsp^QBjF#CK;wsdIk@WoubLeBy?*5u_^nJvLkqG-poO?t4vN7w!m;vn<4s5OhhH##? zT-YcDHtFCHDluuukz8B_^W>&#H6irPcdK*B_LZed2;zn4BMnSy-=~`D5PrwfP=-0= zv|oDZ#6w>cue~c9L%%rFJr7o)B+%*JO z4*hSD+TOS0&>;B~C+S1}cKOjs8#oIX#vF=>QlS~c2zg9Pi$Y2y4PwmykqBuw8Yf)h z`71C)A&5u2EmZ$2tF@4GK0m22S5=9L?}0ZSvL0SxB1nF~c{V+! z550fsFw6>A-jkB2%`F4#X8Z_yZy2D>AKHAKsMbC+#d%6}_S?UzNz!#A6Q!I9`hIbC zJf)-d9r-XZP7Lm^VKi4J#5&knH?Bi-E#MwQ6nGy|jbPJ0y2S%HdRy-%Hjd3by;YFC z^%lqV*PxJqM1VJ4kxn8@Oo9hI@PR=$Gt+)-{O#)s6i))jzFJ*Ug@(cQ2HB?=7BdCW zuGFdQM(BqU4E6osTR;I^t8^54czKpS@y7{=eJQdQi$CF|wt7xy_l+nJH>SKzoiP~*)Ut_o3kRSmip@e0KD;ugz8XS2Z6UWx6=p{(yn!z%mU6n z%Xh-qbOkN`I&2?+hfh$Vhqv-aDKPf`1?%&*jXIls{ksJ3DUw5h2hoXTB+?Vx27{a6 z-MUfrxrCjf`w>rK$!cZ$o!Bo$+*Z>vqQ>FL|HykW zXC2>nWbeHJY?>et%@;0oXq#o64j>U5ZEUPrtWjZrW)Ld*NS|IourK3YZ+RFsjkRww z?a>rg=tmcl?w_V{)L`*{+#=bMRAoFOTa}qkCGT{EDzSJ^T?ssN)!jVGGhhzebJPlA zMg$MLikiE0CA&kSK`lG+Jlj$RsxNoqPQi(aDRQ1Gb{%S_v1>O$e|)+P^fXePU=OH1 z)VODMt`t1yTaA3=3|cQHjkl&FVhXLQ0aaFxSU_e)IQ-DuCe?>oa&k@IL4kEf_#%%? zhH8#-wyP|Ni{UOyf>J*EZ<=kQMuNM_iv2;1@#mX)u{~&k?t>LoI|BX2nybQh_#Em3 zf?<9~KI4kdaI)HM{9bt7f>UlE)^3xh#14Mo$zjGc7si7gxs-Q;B2UTbHdzQL@pYkL~^If z6T(_W&Han*_N~`KfP@$aT--H1UF^p!%IUMGbZx6QwE{g^Eu^>T$6ofo_PNK>me`!0 zv;_f_TVX9>fnt0yn{NUgfKu-~AE6YL$GRn}{NlD_vhrZe61AY+#u~bMQhMu1Jb zFN+st`+QQqmr+ps%H#QSLwcVGm`8m*X704)LD8a=uN7Ec{D39mCIYZVSuRT%@f$YalTj^sl6On zXF!NIe`tyi@FTx%)iH3-5wkw1)QSUnp>fu={>#4e?gLGW+r7-s87h}#i9kO5f zgZ1(T&-?}`?8^~jG+pC2Xp*0;fb^fW#F4cLyGVw`E{XR%_40?nyZ;Sz9H?OSS0XW& zIV%DH@#!aVpNu_o(tIb_nlBYC8_m8qHGV zpa@4EGlCZ^h*?>9Re-N9dLM;k_K%6vF8WAvDXg%pvw=*%e(lYYdFabhedWJXr zg{@FmE5cW34OV}my5v*!APYC$ed9P&$d=Efa!&~NP(Q3|Vt+O<0JVsX{Zn>!vI0_4 zm;W+BjwAOIEH;8q@X7^(^;0Xr`Ja)Eo$Y{7St>I~%mBE-f3bj*8DpG)S7TV;hgC|p z*0h`zeTvC0z1JyStjBiHq(n090wbIUMNr z@uTTXwT=LN?I)w)b2$=`zg_@iISz>{ngccM$4g^%`dK7(l0k5VJ1BqdU-0WkizGJ< zUY`!r)qA2S9m=zw)dXP#Wu%5eBTUDj^ES)a+RnHCP{UET9`l5CnLKtQuuF{fEQ&U&qTQ4#Km zL~e&sNat|zgbDk^uBoiw}Ka1 z=9mbqZveqO))1>h7mIqXiC4Rc(;!+9qOhG$y8%)E>9SZ4V-xYn=k zt*V=eAAYuo>LN5GjdwT;@YD~ZcSva9jG!kgiqe+Vs<%mmi!<{=a zt4kffM$UQJs}gq_9ytM=VNpqyORCCUtrv(a4uNNf7i=d2y6YfkrE5Rk(hupnAV3thmw^sIvvpQX zu|A|qF^mR^7MZbp%3_wl3KO}@dcyn+!ZwzTGHVp)sIZIhVhIAY(>7Ubdr#~J zvR#&@LmP)o!_eKwN%!>m=*c*4=@1PPH`ebs!%sARsOvM=T1nhhK_V1C228Ahc3#*( zeZnZKK_XY95T?q)~Y)>OJR{1431}s_sm#kNCq3Ft$aQ( zth2)GJekJoOgh+?L1WIzgHHn`=ar1%g3Sx6h6~vtqxENPOC#hzGLgRnc+a?O-O^x6 zcHOG34*SzJ&%bMBX#51$>CC^T-$lvD++2Y)q z(lyU?DhBUQEGU|_63zDH%eTsEC|Kjq=hixL427n+2ZAxa>1{l&%RnWp^?b)Z~TT56qfkH+6U)%_Vf zLZ-iteBz&147o{DABHm>aY$0?ac@%&98z#&mvsT2fje(^?f2~OE#Xiv;C=X7e6nNV z;m#Wcmcz-HOfD+^nAL=X34Kg@*sV`q+|ML0pO6W?f1GV{6@Am44ie)cPUA0=;=BN` zR=-b?_Yj=iPA>H`!fyg>^+#jk`BE)rhLB*Y*8qzUEplnKIW=wpJ9lKT8xri3W-Bgw zNEfIc;r8*Yf*h=vsA$t6f$kdTh4UC8dXUmk*mEzbMayb z^G;B-uCk%Annelz>9^KCDDHYb8PJMB^l2a*WYwFZly^uilDgf4hyh(x#VM}AaOQ)b&|bP(W2Z}J0F!pvw}P*l)$V;l#_%WP{lQbEOIX( z>W!nv61xRPy7kn?9ji@O_Z%-L5dY^jZ#U40lX=255xN2%^udsH7 zla(^cni}LUx;7Rgxsp0uiZVMq6wAn5Hv!MFpc>}6_o`M(-9WK943dk=KT(M6J|q4s zcDkZmIIUVV3I=ww&mlcfq&_a6xPAytgE*t<;CxR8qUbc0Mo|Q~Ou>}$I z+5*$@TgNa*n~nvnBkLzuk0aLb)0rcVeqVkiH8x?e$#daJ8NDK6D07O3D;)_dXml2s z8kx6)|H)VpX2t#OjDl3*4#yd8AzC8F`Jc3^Z;x%=vM&+y<$avyHqFed)r!-e@ZAAW zmpBLa)dh)@SOwiiV?QCg!rG6%Y*ujgR@Ssy3>{<+c74lSmzK6ohfQHMUW@1@lLb** zVrzWni8~92k2r&r%Rrn!y1%7n(2X9@yuS(Sx7!Qg8gT;F=H=nrlv&Nv4cqiMsCYz+YgyPRAM?lD0Lux~?7Sz>Y^dvkK3x6-O%1bcQ8Ge`b%@x`N;UA?AM z)Ff8Jof8E~KUul)1h3sm+zS**Lra1P8*ojEn}5_fK!e&ni@JLRb<6Mfe~yqxCzFK) zMaqchcCP3S2C{*soRiQ-NnoocE_(&|QGu8TnV%U}0qWNF5KwjeDq(J*o}hVLS86Te zM1#kCI~Y9|G-^EF_A=M{mkUTh3AkNTbFne`Y#>D)b>s1by&8S$ie0_mlrjMdex61l zld`MYY%mLCTE&*jlh6V=BTjX3iN)&x#x!JHdC;GtG6Snz`|_4aru zulNOa@{NqqP}N25d#jSwAnu%aR}&BP+;bsV$5}A(J>gpjR{41;$9;*weg+g0+3U6G zn0vp76<%=gM@UaBzuHuONc648_Jz}1>i>V&&J!wPTxg{pxi2uE$)@cSmlbOHJWxl{ z-sy)=)*AOoGF|XsDDS2Go@SOQo`JrFo&&v!wI~mCvXL{{#Q?6GnyQ)}i_9tG&m%*t z`Z$(k0q{EDNX7?>JirG-_md(46_<2PqR~eH;X?O(DZ^L+nz(x$%0B_2jkJpKA)A3v zCw6U#4Zb1=qT^tllFmeiY?{HFJfT zrXOfnUmd-a5|Rv%<@)J}AL@8xA%gPirCu>U)OKl$`JmTDn#1|IDPz=-6JmAQxH%*U zQ-m=PXnVY#y_=zG9N7E?0ecm^0F1OSHj$2y;Pj!$$nZu$qtwOyJ*3``z}OzYIbxZ@ z9!_K1Wh+tSE}1o-)fxz~)8OYjV#5E}ad{;u>Z4}ZEyrhUSbQpK;pYer5;In z#oG&h@)Wy8^&^h+cBg?UuJOhTmzae{V(~58HDipT32KAEXlyoFF!Z~Yx<}xHOQka8 zBK5a%EItU3$^nr}Wk5_P_->hxW8j>(ad(=ud4chabfXK0hKzkVov^{u)W&2?C#HtB z=$*6y*Dh}^b1r+Dl3y1UZ|9v|mnv2Wc@%TgKY0pNv-*x_v2Nzhqa8g9U~2C$gbREN zG^Ar;XsHU#;vFH+oVJI%Dj8-JOiJJiZm>zVhwT|@o0CJc&Q|YQX@flgRXv31^gQRl4m>%p{w;P?VfjbkH zeg-&ZGf4x&^M3?rU|#vrefNFd8x(1;s4xiPog?TUo|&v0hn|vHq+uOa>k^a%!rB6Yv8h4Op`U(QjP2-urfJP)Bor-OB3h-SMsBBEus0S};_XPJcL$O}VSE)qe z8eW_DgMy1Z%-FmT3SqNMR@Y)!6E7A=6L{UpU8zL=iAJVOQsO@N3OiSSwI6DZXl%?? zdm<0Plo9h=p5>)PE-t^3kiKIv*Cr&s9I#_G1;6;!t}q`6YNtC>5+61HXnD8q8c+p|8YhcFKih4GI6X~0$+Guvka35G!HP;^}UNtDmBk3Sp*5|4(w z44uD<1-{yJ?r_n-e}$Uhv$kWSihfZDJRZ6~{oCFhpA5LR)ID`Dl6^y9 zb5~&E((?ElJBk zhnT5mf@$H`FZF?T2_|y^QSkkgem&`*c7j(s&6`P??fy)?q#NVWgcG;&dq{Oz1;8Pu zb$Y-IgFYzJeMgCL;gOJ#i@Lo93(HD2IwKm{tG9S;8G1jGJ#^?wn&k!{OOhMA8~496 zxi&ypehbtd)QLaNHaxZjg?>zuFI-mKJBt&w1H2a9H-CcrE&FTN7qjgU7&@V%L#*+_=f#`>lPx`5KG^QaYL;wAn@-m zXWcgD$R~Zv^3*g7QRpmPIsT(qDH8uFLQD&D|CVE!hab^pH+6R)aFQG_cd#?MucoWK}M*jCqmK1x#A?qD%pRpveE=Sf^njxhisuTU*e zyV(Zo(5`7e(6`qsH?YNP40ogPTPZ>e{Qux-vs#XT#>I&Xqn{N}KYluI>;MgWUmZ}7 z11sf_OQKVIx(D8U^4yt|OAiBn^(^k@AHPam><@V0pFGvevl%dt2<4C5p00xTc=}V= z7)~t1U@%UMoFz5iq~xp1sncaZW)8>#(&&pFis%WP#fcc3I?ttYdhNjTbI8f2js6H< zi_D1u?=yfkPrmSPRgG@&Tc;7@@x5Bl;vVBMSypr*{#4Y4YWnq4<$U5s8!TfOQ$I(M z1}g(rOE{r;(yNKw$sNOv3q&mzq3M$6wx6B6w+2gzjbo(h9y1%Zp(!v&QLOdhjgnhT zn>^(E)-wY1wVL!(6gX&AS}Sh!ip!dLsX-T?oRI{b0gzUavt>V-;kwO#IuHEcf4j#O z96I<&KMdi)UwapAkEq*d3ME$xZZ8!yjKq9^0E62u8Kj5O8{IY;Z zJW=-@4JR}>Wju%rP6x0x0lDV-;Ghc?zjnu_w`XZg4~6BjjDe^jV}$b%^a}^pix1q4 z9vr%};^aMT;9IXD%2158QV|16y707vfU0TWe=Z)%^1dx+-nqlzABe>T;8D8eBA_O% z9=Q9AuMsnCp@2=(Z*q0^qQ|W~0{6~?L_Lf))&**EMCVI`lX@1u4UYl)cNjU*5nlUC zTM0K#pl}A4+NKl_{9%o~YAWBs)H`LEi|45@trY{n57OD#1AP^*qTG~I?cfuhr+7@P zl>r;nVR6XN@21NwA9zC9WJmlte;<5hw7!m>aiiz*&UCeFpF?6h2JOkSOGwSQe)BoB zm8d(-HUP7}QZ#hVIPUu|!VLfqaZX*!^@agWtMb*=zdXG<*ODN*8`1^M(=0`A7CFK8`IOugiZ5%W@vrVA{!SHK>QmIH*ICo&A`^+cK7(aw(9(n3K%wOcvf`ozm0G` z^(+6h2oCYI^l}c0JOI2>lLN1HTp{yTA34P^_8OrLXFL@&0q{+d-W0h*uT()!ER2%N z>UsL2Jumo*n**XJug}NX3-x?pWnar@ug;aFz8O3wIU7%&8g!i)PfRB|!QGP966J3s zjH#mpTw=!E0(&quXsQgD82SbIB9w9;K`D@2?ijc{X~#vy_=OroO(~)eug$#$aoVc#OFS!`;)jb%0|(-Y?)}T~hxU*GVRg=tSd9Vt zuS&8P(Mzt4)S}}bbT!Mk?#{DRLe1g9x7fd94nn?}DnlyF+-05HEsMu# znG{@s1RsA@(YyEp!k_B=8@RE0hKvQGCx_sg{M7LxEbRKA9yVaV_rG@G4$YPn?l4p4 z^bR6$Ddt?%hU7P$vp!eb?rf^ci2L6&`Uc46;MmBVZ)qw1~-Nq$OH1hINO>44bYi%HU z*QC(O*F)Bh+ltMGrkS&BB=LL_4`tpL{$UWCWbmX3S03??@^06V^6A?x{?p_e?Y4%$ z*F~jiUJ$oZX%Ks@J7~SY0MsxNwHvkaCUZf!;9~|(iC8UiIAHY+t?fK7k&mp-mu@46 z(WnpE2XcA@c+5cWl6wBt=T>e~b0@r?RT{#cy}U|lPhpSbDgf0dhsoxQ z$RcT!nP?)3;+VB6RwoA&yRzHN9j!d12E)g_pb^FlN4ZX52NbA7(JC8&tdj#*vcTZc zLlgk;1Grx&B!m*PDOL^OLa2?360c$geO-#jXeyhNQl!A#{I?)82s96fhZNIpB%C3D z1mhql0^`<*hqDUM{r4-)<(nAYjg27aa~l4`d_otAw@Pp1`dGAwSdy+>Fum6Qt*w%% zp{#hs5?!6DN_%pX8~!$8tth+xaaEmjgo>(}3tZwAIr3ZitPt*iWR0sZ!(M~c34q~R z>n5=$XP6`fq(_L%Jt@U94Ef~B!=~YGdc7_CXO1-0viy_BRP~0MWgS&`KSD5~!F8vO zj0^1CpMDDK*lk)$$F%FyO5iKEm#>*!7(mFaFCa0xz_!!XZ7_eqxaP*V!|yA=SA$99 zQgsy)R_K5>B>bbT5Q?#^uWiQ*lmhEqCF-0*JV z6U%D$qXcGad+qb3tk9ajv7B^eg-qUBM{xvkX4 zant;6Y2__!v7d33gxQgg;Khm!RHNlQ9l2BgCHBA8wZzqT&A)R!FFiFYJX6$g%X&zZmL3z(h~tPu)b`7q(? z@nwPsf=cY{B~f?i*zt#>DxkpBRG>i4%38}g%;_A?4olAvE_6%Q4=y zFNc4kG4Aoe#+zLNMAVe^ON+kD+_YU5<5)2k>F*57L{c{lJjPesB`-kbO|MSk9HtWX z6pXKFxVGXwA@#%L8?96a2O_uDI(~DAKiJN)N?KQZTqzUzrc^M{wuUPDjKSdkQmG|z#R-j3@0HgDSUe}EX_t*Nj&s~H%dPa1>9%;`kG}VQ7+Q{ob@J7d_j z71QV`!T2>%z~4FYjdc)d8MMsnQ#A)l^gLS%CuBf@8>eh6u#$K+DCK>^6iymQ{@4AC zRZ%Ir^2!j;*!u#H3nN5&vIlpBP^SP#K)Ao9M3WF&SXC|N{teFAyQD+F=)CbT$@TXf zSw$hxxKDd>muFt&ihd*gs#sc%Ov7=lpAm{+*nG=#Bc*|5zyiJ0j8N*~YE6Qpr+1eH zsnD~;++m}dC$=z6<)iRDopCI|cz%fjZ~GsdYI$8DrQYiICp?^B%K((jz|C=#05sQ5 zSA)ncrF*9FH{#CDhIFB2tmM>}SQ56;)!FsKRs;bnd$GVzZR2rI5uL#gol#~jv~4Ot z#nzWAw-Ty%aL$brnJH7HF^sPl;<4{%vVem1(vpTyWYqIbtYX)}-v9|el2+H5w|*~2 z$x>#xVdvU0736$|?xc84@`-*YJtHok zif+f-8z^5Xv@qs-VT*h?)=*Ls1NW;y0d6gvwtRG7teA{6darNQKWBo%751j>`1U*m zG;67V@O+XcXy|@xl2{bIuNJmc9yq zTqWAR>0YJ2KP2Z8> zJumF4cvP}JzczD8qK_Y64g+`4*WqwCekHbp$&UXHm_=siAA{dLzOkVjbHIk&in?&% zfpjMx>OzZTkjF@Vq*ivYu?@O)mgMUKre|KNinffQKdz?m{Lk5)9_=dP|6@5vnsYIB zQ;nqJN}R2KSI1a8ydE(Fv^yJL2+ZnV+XB+gD9iqy?Zw)&&}SfhLbYB(p%E?Pgx?&0x;{nYp(&T=P_dbFp64n&FB$K(lsa@X7Dh`7)t8HY~i3 zI}~;M@0No|Ne#81ImHlT{TL5&kIGp7xh~Wxzt@K~7vgZ2zl>Ea*PRO}`r(}-4n6pF zNzwuu0w9Z1S86hx*=Ib*+E=iFu5X;Z+$ZSQ=!|2EkHc-dAlW}M^a!T=#Gn0#cJ_(u za61#uJYfjm}+{rQhCyUfu0@B-dvYU`~ z&iI7c;n~5AC?A-$mKBc2wokgX^B%Y%7X(Rl@W&(+=yfuVMoS>epHHMuTOrSo!c7dl zCnh8Ke08%?8 z2fmCZOXJA!A_n3>>ZD@rtH8Nv0h)4s4Qxka@M1*=%qJ}0DRkQA1)3QMndL!ei7QlA}JpYPn=FW+O}T+tQ%=5ek{Vp?SOBO-~{;q z#9US20Qyf4%zfE(9nx$<$i(5i9)rO>QsV({pU-i4bxyZn&LIJauXFv#!jMQ%*2Ef; z+|XEm29xAEGM1$l$`WtWCp9@Q=|Q%NoD?Tqmzv+74M8`?mVCp^>?VHsbb=yDuuh2^ zCT#;YON=DhLrdnXnReyngUG=IZnNKcMf5a}13&XGz{P-6|6)Ff##nLiw!h$uaaZeu zd!b3Uru$Oaj6SOsoPm*l zc0gY&mRL*yhn1^ZOF3k_ZwT83`D)Z?MGiH+h#i?eCHO$I-G0}fG*H=yG{K-p^1=7* zS)P^9I-#^oLn$0BznmGqT}eTGAW!dT71@`^Nlc{Jnge4HoiaW`5;*~B50yZ-L7od- zWYU8ob`B`ZhM@0qma~!`3NL5c8)mxB&HyM5e1c$v6RRFM=)q*kH`C51lpHSniv*}* zVyR|NyIg|MPUIxr?BtZwg^6^Gh=q)+tDYB-Y8Jd_DA|lEUGX!J!cH zx$Rk%KI4L2IR#H#@c3|RoI<%F?&1Amj6A8^NLKyRAO^ld(#ymv)n?in8>}NrntdFh zlF0ZzAO+>p*&NjU4iMmm^Wvc!6^jFy+Z8WH;mR*p9P##|o@6aaj!g#fi30eJI7@L~ zh_sJpmc&F>U@ni5N?HQTATVM$SfWiXV@={B0=Tn=@PZqTjVmz?-tV=9maQ!_`VDwt z(G_7qx6OOD=>4qmq4BYrSKRKTJ;UH(wpd-UFZ>=^r=T)4I=LeCFlieV>KQ2{`iK;l zcv53!AOR8q;W8p-D*t&;1q8sUD>~eCX7sQSJ;@)H+aUD4_aP+FLCxuPslpyNuy5QB zhn$~_j9fJLly%l=-7>e;d?*c>kXx9TaLuAj;ycdiW#AgJV!jO36MOLV&;U*Tm|4$* z7R;;8=M2L#xe5kX_lZmbNB_%}(g8G;!D4mWAonOnPm#2v+FK`we3n!Mg+drzV_g0omEVa-_mzKVyLOT~(S*Z-q)ih`Ig?~15E}c)B*93P;!JnMw>wlpaLEkg?H{3Oo@-R*JTNFu?zM-m+4@5bVIy z@eJ>06SX1Kw)BAo;c2nCNWG^Ro$Yyrg)v;<;H=Gzh;zn8R6(3F`ROQx3AiX?P1g60 zozn2TOnA!uT4rGfSN=_*`vn#x%#gQ!8iKb^6y(8W%GR*tcu&H3UnWFE5Gx5|jKuSn z6eV!+6~y}iBapR7*5j=$+SPAyY0X_Kq3*+)M=+5I4bM~!8VGWR6KT);TTi4JOLp5S zgHj<1d4~>SD$Rrs4C{AFEQYb!7MG046GBjaFvSm%pWdr`h5vJ*^?29OfJ+rWih|U|!M9k&!m3s95;?GDlky&zDk?KOQm% zG#x+I@VV=9Rv=v6sG=ihbKB)Q*3?Q zDSXu@OU_RCTh~eZ#0hyDcHig{-49EX`4XCQ> zJHv{Rc?B8|E-aNQrh;t8ikT_lzmZ+q_2*B~a>7c?#U%^reDs5oP3JDmaAv-1hE_M| z1Nd9I*)$Uubi=7uMI>ln#YRNCbvxe)qIK7jR_4PIF{N(d*n!?7=6oO8`yUxf5Y68C$q{_9)tkb! zaK-QBnnmF?63C5804w&u8+3!*d>&oFpy$Ikb3%>S3`%yO1l2XN9=$*{_QJZ6lzK_% z|5j?5B^gpDj9MKFW{aUz^SZ-4fqI*ybevuKEV%qc3GC{1={Y1&w4E5}-GPQN@d)^= znWOb_D2?YvI}-F!Hq|jx&lVQUKC5V?Q-!s77q_*9^tY081zN%1DRksvIn=&4)(yDm zWB*X8Kgkuc6tFob1${WgPrr??jklHQ-2zb9DsJpfUoST|$wNuVaif!mk%)?cmfm+S zN-wg8$S!q~Df1#?oJbpry&0gw?C(NHNZrJYCSg0@b=XRvvDwAbz^BX0tAx~xNlu$V z4%-jPV~@2QD2q)pFe&j2(R1Kg@wpDpCEmH_=Q19ZMR0^1i}{HEw9#$arQlFEN(q_=!PzpgOuja zz?JY{gyK53fQJgMJ-lJG9&Q-sG0-l6BJ-CT#o44ceS#<)5&E*zSOJDbVuxB#nx!IK zYB7HhhcJQy$ZMWf*u$71!Ep8~)x9dKM!Ubv8c?jP#t4Y5N}`B85czjGna;sY(pJ z-4Iz7+w82ouONXI>$`hCFBJUsI{qt<=-jSAwd>5!u2oOVDn90%bx_AG5fg~tUEgMS z3{~HYnx?+iXL4|)mk(Z(RP-nZUztqIK86cWE!^;-`Y*7*FhW?*)yD*)zilzaJJf>;%Tp{5Ct>t`evTl3H z06a9fD`jzuL2+vCSI0kPCSE1>HEk3ep2+k5Q4JMx>zhv;x3!~lp3cp1`24u@Zqv6O z8e#*Pz}xE`aM3V#3S-##8r)UHVG;if4WD!SbeCi<=$6E==sKSkdDDI&Uk1Pazx}DO z(N;I9w!-sW@sEu)m*9wq=bB&pP0r(XF?@Vz8fwQT!)$-Kr2-x^u9k>~nyFV@-L%I! z?ghgTdO<+aSIKBG6;$j55SOp%ZLp%01th20S%exKZq<>`h6jEB39uxJ=$F^D5U!%X zFZzdV)KH4Kg7vhb!W4Z(_R~Q8-35C@T+g>rS8Jwx*r6bhM9e47$IyUa&<%0`9?X~% zi2w#<2$_TV0cll<$+nE%PHwuqHav8=Pbt=wAc5M==hd(vk`u(DU*}y+tnT-1=WY4~ zv2w#j^_t}Ewo?WCa~}1_uAWAlc8m%*J1jIgZbfyaC`mYR1wGldlY-MRzMvQmsxOTl_#u7P_5;JFDLTu$0AdJ zC!-56!K{vFsMgq4MhTU;ujGCpxpOqDIWE^5Be|fMu#6(W^WR-wE)4~3l z05+Z*Qp~QT;|I4Q;)xn5l}@Uv53T zUu2sQ)zGv=Cl5cNyF@7N1K~`;3}<^}+1RKza^3PzKB1|}lFPcjT1x8y73m3UtVYtF z1{)l?rEI*@2)dFXL|lMfUF3>1&(xIW?{&~0_F$psF*9reC1}qc#RwPoP;;2q0vgb~#v@W6As(-L@ z7ZY2ESd0jCI_wWm3D6S;nSm=XscG>7ChGa8HBSn@wY&&GK``GfW_mH$z^=;EBQLa| z7vj7T&Loj#2Eb6N=p}Az3*EQp)U=__U0-OSjdP5=r}|e==LY)#lQoHZc1Vum1y7qB zB_f1J>DXL@1Gacg`Wwq98fz*Iys%Pb2$C%x5Q4(IqoLN6X0Iy@l|R5^D#2zd^P=Bg zd$WJS6)*1`aG5Z5Mb@VpA+q+njny5f%(_iCzRT2D-94T-(Gklx@qz%hlPFCN6^+uK z2&dVwO+PrN0YA957~Z9$nSisTrIJ4!dIzzHr=&^)@}z&t+6V<^tg`@)ixQ6ln-foi zEv}=c;XgcZe(V*?02rZosF3Jg1PRwv$jJL;g=C$jtGU70hI%l zf&=Og?x)e#b(rWE@UY8*QPzD7mJJ^yS}nk|41K~pro)|@k#jG%U#f2y0~Ma#xQ$jqdf!C}3{>Mc z(wlD+)&(P(Z;SXu!`F?NrX6}x9MUY*1J)pcZk5Pk-MS%H&uC6si{MMu{0wfq=Pd0_ zz9#Fm`jrNEx0NDrp#VV3wgW-sDQ@`8A>Vz__I>IYDUKY`{x>icC(Vo)G{J9PU>1rgxq#g zU$iP_F>YC-EeJI_mXL3FDMh??x7p;jDY!HFbE+~*YfPU%UbY1wzwfv`Ue-|>x{;Y7=gO93uo zFX}4KvllEek2mm|mS#UaDnJhWaD?j+zFZYJQ(A*Frst5wFYxMf-aURtlA9NOP=U;QH| z;{w;*i8H>Zt5+N3=H>fD+wt?#mIZ~pQzHTqqFPO?+wOq|5k4yyhMAzG7-|S^jUAZp zrJ%OMBvQO?(r-5aK4u2C+*mTDSxjp)IJJ4xM)9K97 z8$HCxs&hVju_yx-oPi)xRXm(mzQ8q?qt59q&ezQZI=Rfa899IbEG7@M;9$OyIv)dh zt&MK|7^H-TEu`eG@ZpHaNinHxy>r(x>>)Fb>IhE$x~CJy<8+-#|HK|wBHsnm3_pYa zCmw8x<)4LGsU8*3kM=pCAw_N%?PF#!io1fkKXtdB4&+0(@PV&H6L%cG^D^Av!cep;h}4 zhw0XS(}mY_-0_>Sq?Y>QRz}ErHD{B)N1Y-%aDcl^^^33 z(Qa}1kAggR&BE<3x+F&!Gs38Q?P)5yJ+cl5LiXzue_cqL18mp~uN;;jGm)3{N9$H; zSlplrxqQznC%FO%o;alGJhiPds1{|_gjAP`-r;H_sifdrj~W}CfHN1veAbHY(hCq) z4n6gh3yQ$wT{K(E5j1T<$K?4mw}d{kU}ovAW*hm9okc&RKLfMOeW09=(h5wq`S)?_)xVewjDGe`teoLtqUZiSfC)7d(1XN8jnfvp! z@X6zML6lstd*QAMl)DayM9(nfMHmaOWo>^#v1BYL#c%MBaz0-Vnav8L6DrpVs^fJ& z)VVLd9dhEqLssyUy)#wReY=BmV{{qj;sfCiImwA6SEzeEVI*N!Tetj8 z1Fg%TV{K*Z=|()U@m?*uK)qGCj>tu(x>rN~?nCZxa=(T0uDtk`aKE^V2cA(!xxm(e zD`SdHyIPp|wL5o0IyQzJ7@ymid*g_b6Vo;xmlq9Ia6(9Wzmp*eR98-fzvpb{`rX#b z(9vmMr=`;MpwmGog{nnt;bUU|BQ=i?p1KR;S8;p+g%q07P7y#^pa2GS$3SiGLhqmg zqjeBB4;TOsD@Y1}1T+9tM eyqpmOIQ;qT^uz!MKLg)b;2Yfm^3L+$Wd5UyPGp1r zwJFunln1OZ8~wD;-DnXq@Vc7LksXl)3n^-M<4oq8K`Va_g^gNvyzgY{@KMcM_4E<$ zPz5s4XOr}M6-3Lm8h?hP3Fhj_4|_YN4!nQ0xiTMJ%OK#!;P;gPoWtOX-xZt6K3#>O zV=T=NIokkIJ$Htocok=AxW$ziSQM1@$UprkgLqMTpm}|9gaLJ+Q=BNq>0k z*#L2EJY4V=?s;>Fs`R>7Sw79&8UN&B+Z;7|2+L}vronqgWJKF4@=1PX_-SaZExmz# z8v+*Shu_D(uLefV8Ql=!Go@kev{M1niMY1}ISLe!)f)LJR;(q_kSt2V##>u{CR!b^ zS5ATao|tB8=W)Kq$b?6$QG-}0rAF)rR_+k@a#>0w!5PKJ6YKooT!x-K_hVirrPVR+ z-u`3{U{@H*H)vXK;d80oDy!abSMKx#0Pr|RaCk!(ATX6W^3a4)oXpfR6Yb;CH8iKI zZ{QQirzAAKj8S{Sv_>}V|5$PB$tbyxk>#KlK+shcm_uHGv?V9S{OZ@8TJ_~bX?7^e z<7s{*D^+A8@OY<}v$n?0eLz}%Wt@*TwCgy=%)dR5peN@z>^q%SC3YE-gh~@nl&j$( z4YkBvS)y}ULY6?NZ$^i5fb!}9URKEU(OHA%p!EENBM(<CgMCTRZGB$K zVz7$N9Y}Pk(*~xAn4cCT*-em8PK$VXxPGg;>6w6uSz4nQuBR%Wsf+{7}%AKXNMkWnw-H(d*m#-=i_x1+icp|5g2Q49|FVsg}p^ z=a;~T?IQm$j}&U`%&vp)WX7F>t0Mxsf>7Xp7Mb??5Y$8NirqRl&cMe=2|Q3A@uUkP z4Rj)B4+r~(09t9t1{#mCQ}XTksYGT#&~Mpo?0CxCVT97*CrK%0*GTjm&kxzrp4hzf z7EECfjo>HzU=M6k5DQ!2Uz03>N>A=F@bKVy9uoQ}@`L(50K?uufu>9HeR6~RDIXnn z{#Hi%3PUvrW3Xa^9aj6ZGmd^h2_s`_7%#g_`Wp1BrlU@nWdZlZ*Q9IBZm|ukik}!A zu^7zPi4*m_+9t=)+50XR9AVb_F40ye6uPTb@r#hnB&RTY@&$4(Z~{)h3gmFn8M!^B zD!Q5?XaFRQP!u>MX%1K>MkKGNftW6J3Fhv+@JrB17F7R~EM@7y?M7|^Vv(qO37o+k zVE~+k!?%AV*DN2sB$kKq2YRtVqgj|KX-xE1>`*I_ct7&^On&UPcLecbRg#S04Akx_ z{ZphL7lHxV`Bq*JC~(cp_OA*TNXHKEM&+*aL&eu#Rn*9Ohxh6vgj1hWp0RlI0%<$E znaNGHR9Qat1aOsF{>zjnxoEr;9BP(x3 zEzPCaH0LeQ8>?+gYk-?!32bBli*A$KAi(9o=T)ZAzyTXFHT4*Kg#9fvnCwZTwm#j~ zZ%``b3UaE$OJrJLIsk}k`UyWKoHN$9Yka!rfVd%#+MCqmE+y9>pSrcO%KX%-tiRp8 zB->M|7?YbnoH{Op@9a`3PUBvwoxfwN-eVkgOJWSF#=^4VaJ^@ikCI zf4tjZgA*lgaQRwPrTnU>F)JycNy^v)FZ6t>H$Ai4TEY+*AR|^Tr zMD?j5jx)7s?Caq2TH}+{cKNtYA*!g^#L9s{VY)2)yWi#PZDX5$0Am}jKPb8xw6582 zz%>pmt61Q$rs=!kzExL%@cbdi1!FcHy}v%xH9JY55~sv`Sek< z&=>Hb@4drY3Fc4f(Z+=U0*wazmXqIYCA-t=DaijQ&B`07wN!d0Eu>HouUDInr6=jFkoq2uzIl7k-*I_DiH0>kZHO!GM3<`K$0M7D%L4uko^K3Wh*IHpK{-I z-ez{z{sxKuF&oFVD6_*<3lHv|MhRzCUnEIny1v=m@tF1eHcdsP2hA%RNQ8iR5;jXU z#*1YIlML}cKZh}odFDx`Jl~9v;v5|qBic)K0?4G5liUvEX?K*Y8k&XWD`C+WQi-&* z;AHw0{DrP|Kst-w6E=|(OeQ*Ft?q$8Awv$TVx-PuJCi3*4noTjhUsi(Rgj|}!75*U zMaS=V&cWtLY%k>$vWv4f)l(xvW#%6Z)y(xRpq#!k9lv53T#n!%Tenf!;}~B{ArTH5 z%%w zs&bTOcS;%0GoTUK@nvD7+`xMt@&aB8Ty`3ibM3(WVjLk}F;@@hXqSc&aL>TVZyzLMb|sJcM$g}?X_MUG8)$DaBf@+jB9Z`qw*!CKYpBVt1_ z(q6s-9>+Jp4h;J1IZtLrR@YPi-@$7Hq-Jw*IphK9icW17 zWH#!iJL`I!s)Ee~Y`Hk$V_3ip%zT>y2Q4ALa&ajA#SPHi+bZ9URPOHTaBzx|`;%b( z-|cYc7Hv+R{jS(2-^sV%;rahdMBw2Yq$}~!PwUE2bW>ZiE8e2p#UPIzybhq!UJreN z6G5A(+I)$KpD@HYw(s7@9OwccHvuj?)t#c{3s08Nm+#tF5l*(jIXuE*4!o1lDv#}*}YI@6OJ{>FZl2}uO4TVa24Sx+D(tux(U!k zZ1gc=gpPp5?HjPsm;RQD*;za|iT3K$i26asH%a#F0xHei<)5%^DV2@@07|Q9O;58r zMSoY~3G_@w{omBAh?ETL2$MY_aPc@WVC zSCr>J|Iq|(d9PhG{C74S^$>n(s3gwBY7jA|VAK?*JIRnHYECG23joN{dByvY5K@f( z`lfls%X%|$p=Er`d1sGMNk49fyx?HW84)RfX(%mq-NiM;A(jtbMB!)Lw-qhYJj}Xf zNVIjLka4Se6ZtGC48vPopc&{@UT4NF^J1efbSoh7Y@QP0RP{_fXL_oVNmDvUP5w}k zgz#gY!4I>6f!>U z34x%r`4t`ids$Agp~&_*fRg+*8JdYz)-PC-y%K=~J902cXN;oG=uJ z>}jjqRZ79DOxF+;AE#j*!?+$xVQI~LUfswfC_da5H4N5MAZq3XTjE2u^{|`$cF!^e zgw+Q)1v9-XUCYGQ5F$KXufGU}NjLnB&UGkAmEY1;Q*h*~kQbB#%dERqNeu3{p`j9o z!ZHa;|K*bbEw0@W+L*k~l3g&aHX#)RYS2cD60t3rA4WGXk%a4iTl8wy3zi?18Goyh zXq}Q)*}hzVT6$eF^ys&}#oi@a%^MDI_?%Qof9|OGTF%$uz$A;&iJBZl`GX#LUQDtORyeLje$G0Ts;h*RI6f(?VV>V289u%w z3)9g-uB|~(36c9C0wrXFOd}mf*U_U)x{v@!;B6s6ArZQut$!RUZ_s0R!L0sJorPNL z;UjEmT+KOYsbf_ZuQI?pEc`v)8yRhHD5>k$A`JxT*0~Y;%>;S~hht4?HSL1(wyteel%77S44LbpNGc=h9hVZHB}S}cKLq( zCDa_W100_t$ zI+Yh3k3N`S;hvKd{XFTCnbV>(CLGrudpN*MkCF?{vIOVSH(?J}X z7)dpSa{+sBgG=O`4sRRwiruetDn?2Iu;}rTy77of8l47s2jbUZy2+WM=u3|ih;+zb zxD}9xQM`)7{!ea%kqr3STK*o51s$SsR()u;^20)HzF!A$NyzvApW}f8fq&x=LI5e+Hl7u0@hfXL z6Yzu39tiZ;_(wwgD*P@S&sWYZX23SnCU8_nIBS}=%v`%m|G*7tLEVU4{&JdE1azkD zF0Ti+*l&bok!{_+TJxWZ86iE@DvNYsdMz;Sbh>+yH1{-iulH$(gIgC6WvL+G&ogI9 zdT%pPj6i}AeB>=8W5IJ>O4nRTRxHn$0A5mCKm(wM1-dLOCC2Ht9_STSFe*}*j2!Yg zKEULwoFe}Dlk07)gq0NBf~ZR8ifeM|z~a=M4dh@X;i?2HrPClRVM*vujWmfPNnSdJ zw2H^1)e`3)45_%-av8Y)G$T<*52^}CNZ|VDJrn*tB6L>ZPU;pJu(#2T;Q+y%XZOO+ zlH5YaiVgYylj^oOPx4h6$`4h11AgmFL!1Zq8u>R3DO2Qr7=KFZB{CC!Iek}o78R35jPrEr!oIBD%y6B=ZTtQ7 z8J1qtV9g2f{W$?n27gqk$M|jDJN~i-bKYRqA20qTQ>wl?{*#kW6G?o7`&Ny*g*&~9 zg3u}3H#5W&P*Km^UL8%L7}YAoO>l9DPTKC)ufn%Evm5gQOMhQrkofU!pfz(MJ#vEE z#=bNizBBq7H7JWH0c==pFFLxHw?%xBPm&+{*yQV3H8qM-F8a4*({fR~VZH|+#`v0a zKy)C&C|KuHxR#HgCiH3-`pftF+Ze>%$-(Tn7;WFW*#N2;L-lC7W$UW0+pDm(=!vgG zkv7?SZ$3o7Ub@!+;_%cewwaznduJ)Z2qc(sZwU8ZaHD~Gtq_!?CusIq_8y4`nGAxJ zZb#3I_0t?R^&wZpaM-a^m9dl_KQxJGdXz;S;%hk_K)cWm#f>OkskjX!+gQjYLN)kY zq)mAW)y;0=XHQDk^Y$}4Eru)R_1b^G;sTEa$bq|WxZOcul5uN2utcpqyOC@&<)ey> z6pZg!693gl0_8S-tD(oU+8wh&b=bS2tO0WCcSK6!on^w*WjU!vQInB!kET9oFh~}E zaZ~`YFcug7OoI5d?6L{gT(XkN;W09Pw6<(%&G8QLQ;N~b=Zp@uBFrLvDwog3jmIV} zr6Ij)>qrR!HJWRKpDib`Vz+Du0ei$|C$$r958@M=%VJ^pYhrQJw3rmp5 z=r%4V_rYwD7}#@c{SNL=*$3%C@A?Lj!_R~QJ4_{30eKAGIue();9yLW9{jzTl{6(} z(DzQ6*6{DwUV|Hw%TmudJ2bATR1`1i$x~A}EDVx{OVQ67VB|2{m0f+96U8iy3%nU* zE-YJ@f%OywiyBW1v}FNFSNd)H-_ec%Vm^j;$=9?3#tDzW;77sZbO$oOeLI{yRMIqU zg11w9i8{#iO0dKv2%b6!6yvHDWm^a_h<0~~)!QN*wFIA_NdMILnTrL2YN$)Ksfe`Y z2-PZ|8n7?YkN_vRAnXZ!`2YG*XWIgKPzC8hjBN=G4V_aRjP}T8|AfZD=!IsviCH^? zds9mv6+jHS4Ltdll=Lb@U{?vmE{)iyEW}NMT!kGbo^vPax4~^;Gno7lOb!TDQ{5S$ zu5AJIC5qB4BgLA@B;kLm=W$n!{XbSvbh*=bednEjoysj6p+`-Vpi6Y#&OR?bBdOz^ zr_4IulI0GC1<>Yb>8WhDNc4mwihH(oq40Ty6qu!;ByIGakFYhZ#Sh`MSt)XvG(u@_ zEU~q_`Ms^sl`k%4?UkfuJE-@V>8%ATaesAG`8;ztYyexfqs;zX3Q#i`7i+?BP$>ev z*q^fY`BO84kyL>zMXhR&^@u75w7z%}ZRFPNIjHqksg{tj>xw=k?FJndsk!L!{54f5s^>iSqNdHoR3 z^ofE{9ZIsS`ANW8ha9lq%~|6wdu|AoWtk7*2Jp6S#I=RKTR8G?O9Ij z4r_gOb~ru!oLeM-;SFbtDoWrEQem<$Hd8?VUw0CnrW|4(f_es?TVJbVN$zmtw%sue ztpu;#hD@OUnsy*97B<;XmI>Giw7k@g zsATTDI=q+Ed54^3YaDE~J%NGC`-X{zlDu8`X~i#fvm_;>FH)ta+>@gkKp#{bo-Cr% zsNIhsz;%ulZmGJBfJ2ac^w^5LyPl0UP&zb6VsFBPK+5ed?AnhA74cD1hiA>gU}>x5cMo&~POeYh8tEMe002@@Q0WTa)t(6ZB zkYuw1xhP4@eZa6X%RcVpGJ9XO~@lede^U@ds$JR^O_nQPsnB+7?1gFonEhTGV$f^+=*w{LI zNyihTw;5xen20fZNBHB67+o^MzVWgr$=I8KE}Vmg?lOao+jQc+q;**;nA{Wlkt~i4 zt?kXNdV*S!I}M)xO*uOzz=3m_c5$_@gI*wSCBH4qV6V^a5#C>kt7@1qMbA#RR@q3_ zdQ5m4FDXi;Q|}-FG}?$i;)l@6YZb*vt}P@bllW_iW-s8`a2n$9v*S6*2&=LBX-VSXxX;$Da z?MD_NA;qrXE#o=YLA=2`XV5Jec5z#2FFNc<2VN8kf@`ly{X zgiN(CqcfRHw~Kc#v{Nc}i@MsGEU+|b>*INGiVQfc+>~K+k^8532#hKPI{)Npu>%7x z2?)eEc|np@fUihhQJxbW?_`?$4CD!tHM~gvmSQ>wj_l={`Vfdv6iHL2O)hI=J*8dn z%2F;&rQVfw5(NmNVd9hDamQ>*ebZ5oxZa>}kbd^BSkfg6YomKw>|vOfeR&P4bFiyb zmlnEK3nSzB?Rv<4^e8Cww}?@ablcHW7f+cB#v+p?XkjmL;UyD(UBf;Y5#o>)y?aY$ zyPT>l6G-r2LuT59wUIt$%XJxm)B~rGx<+^8`F@poznvWq1W87K?Shmm*bPi1Ye4M& zt7sE`uMo%xErX>x;{?v`u01!Pu<7lf=xU(s?ruP5$$MBPj`}Y74-FX3b416h<?&>o8nLlzMV0fNiyCuSQh*Ijk(~7 z11nKE^;*Jr@76s2rOHsuw0SN>cFfyS6=CuluMM5s_x0#Lg|~9YXyG$0H$ok95fMO1 z#$q-}b;JbYJFhTcXTLGX)4)|1r?mpW%aNB&^%9m<&xAnNFvfl}9&X`J ziGNds{dxT)Q|hBHYVIg7;ximL33_*658_R)7ZJ`FhAkEy)8?$=gOYC(P|jbib!z}a zK)k=1*)fwhu%k_mfYUO!P>9^92$r`S67INKAmO7&_ic)WfSkZ>MICxitUg+!GroasOf1aKh7Rir38jYzwCkJI3QrV-(*(vO&Tjk9)U1?AV%xWQ$v zg2TE|SPy!5oUNbo!|@yFBLAhUoKwGiCgRU8VcD&PXD6!kH10DPeSt%1*vlq`mq;A4 z^5p;u3%CQdSkNG`x-#Z+PkiO)m(C4wK06Yw9N@Wm>7^gpPCCT>K)6u#$(8K$%dAya zaD0m%;*3Vfthqm|$uD(K=-HD~H2xz2+pm66W|MDUpKbX#&Ba$E#P>X-GAZICNf}zE zxTaeU*EKYdZr4RL=SV=ABiNXoAdBia>Op$)xWVJnSaBaKvCV`S1CTqk2jH6`xByt* zj)nOml6N(z*B4vj8uJZ>Aa=WESm=-23in6|Oj*pML@ObI3Y9orB-x~bA?g18P(PNk z*y0$~`bmVn5P0tfbOgfKGPCs=G9m2oK;=bf~%Puxw#SKK_Q6 z2TfS~$pCqBvY|m6!K`}0-sqvoI^~1FS&`mhyzmo;ynV(1+Nh>(yq^f$`-&)YhVFjr z&wMRsSZN}X8@0W1+R_EeO}}qaB}pNWFAPE7r`QI@zfN%zw8m-rj-&E9kk^${>gxWi zvp<4X2|F+)Q0jp0oltZD-VneIvF9il-loy z@`WdN&0O|17=U%4T+I0}KB2%Zf#gr=Vr(-dL^8CI+;imA+Ft=p zHaYV%Lj%BlHh!`8*bM@AY5XMFzv~jAxW;Zd`hL(Dy!%PqZ%7#NZyC-4&9Z}iZ}$(| zlT(tFG@g%puj;)iB;l0#b$i0^-FHRRR?1mMba*?aCyUcHdYL-1+6OD_$VA-9Bl^R| z%u^&Jgc#uO6Qt2J31+TNN-1@A6h=XS2q)8K&RcVk_}tr{%^Gg~UM0q7Wb=nvZSFSwBzh7!j5sk%hvlw+=}usg;!_^7Ijj@x ztg5*R#4Js^)t5$~MjupO3)>;scb9x*E;<_yGTjEjZ4=L1o zY3MNvF<%*WR^sZp>hOsp0Izr6h0&8AsBti`E5!7CoDPmuwnhv^y+{oRnVj0UDCDtp zjA%kl=#hMK%XLlph-eyzg0GbfUthT78kY-)o~ z$;vFZP4-r@R{xi{6KQO%Muzdf_ANf{{=;645~{^cvcO_C6;8V+=#9( z?LA7f^V4S1ZkACSKiW*V`4#|Ra+2QA@4b?#KdIP|B7A)qr(81D6q#5ToPJo?TjsrF zXPK?jxLU1kynLrmT)VVjhSePzZC4pbz&EdKwWXOx<%3!RxF1$@FmfcK4u7Gyf$Z8J z9oclJFe5u_Cg0B#pW;BMCgXz3Udau?I28pa3|AkK`y}HO$hMJddRiX^qI(*a9M~7- zsFIT?l_meRRU6%=kxPD^@+3ZD6X37oL-xFjL=VdO=l>n1ngPtTOHiP2sF5r}JSoV# z>@_?7w)Ms>36ZWqZ<>JakqZjGT^MHIZ=2&(-Pll~LvuVTbYIj~2NQeVGM!U(ft0Eh zA-yyV8EULeg9p9TGXX(4v&Z#ArcIxH>oxYfKxUMFm4@Lo zn5kzy-%4w)*DAvoI&|JEfN6*_%OC=ib;^t}E!#ENwKEh^o=Z^uNLk1@eAk7hMG9QK z%1Q^z1#HD|4dYOjtzI}vHJv2asI{~8+BQRo2|iNPJgdi$s9%VZ)8p|3^*$-EfRS3Z zL^wfim83DhLSwbh`8v-uAn~WQAib#SvKUGy(c|P>={WItdNcH3mU?AM4iiu&7y!WdcaNak*i{uuoKYUge2M$(@3etR&^f&=!{t|uG{zH zkgz4l3U^PtX5kJW99mEJ;9Pv9h>801!`ca*=MKNW=3BN|H4}3glF@G_CGSez3;j4U z;!3!ieVy|eE&PD3<|#CavTJ^MGIog%M3X?nG25PQLdr zfiVKsgo9+5T|(3``zSP*!SW_XR`ofu?s1jSK*|aPjqb-ZkDvJ$ML048FydzAUuJxm zdYnp_+s%g)AvoHn`{U}_w~_F}uP@6UfDj(HKtq;8s~C5L6|3=|x5RA|_h)pEOp6+6 z4^J=Q=*u7I4|mkes7Vc|8=`DrKBAVsqx1h+Q?XgAVETv!Wzw7Z2M;U(oEbQAg?NWe z>oEqAN#i-9hcL?M&&ag4Nqa{)pOV@<%r$vnun>Dx96oof;vVt=0 zl?veZ^OJ+Sar>U5`dVCOD&2XvzX?OGh%&};he66~yy%$8g025wi5IIj*-vh9o{j6= z^q`qv>b}M+{|=+N;X76pX>J(kY`oXQ0JDz_Hb=WC>OAxCE6g;t>XW{jstV2o$fXtv zy9PHI4%oM>L>FR-=Lo5BoA3hLs~5S*9c!-YexXKAQ>(}YX+TaAMW;jvVK)x$C{aCU zStp8lD)~4;W!G~NXaMS3s9n)Vjb>py9|jZ?;3DWnwO%DDv;MrJ$QUR$A)oTSgV(o{ zb73>-Nburgr{Dw3rcR&qW_6|?D6>B=%S#>{F)YB?F0vtrizfwfTj7wF90K!DGWx%A z$tMM5>Nbj5cE+` zWT*zw^LTn6P+fjn{0=jmRI}s==+rQ!(6C&kKGqZ909t1-dk=*;h9J#w5p$FZCt^>nU=7s|O%y#T~{5I1h>^66n!NB~;zHxZjN#9yjDu3`}MaHXSjy z0w*H1oS%(kqKB!5jFj!gUz?agq?gEM@-S`PfRA#`bmD6nfDl91v66S>zB-WimFSqS zT>qPUzTvo0o@*}pT`XD4DjM0NXL@M8bQ3(34Yoww-+dDT+cRGMmP8K= z-K43;`88U(y11S)gM7WauiBPHzUg*A0$)F)5R+8=gq9L{^C+T|bH{iDx@L*B`to z)|lbNKvmM05&k>d1JQh*EPXgor}s?)I1zMp zkPpxRA{D!Ak7C$vrsT1DgOC#d+BFbZ(1ZQap9!KyR!*0bMx9b&LMXRi4veTNb%I7psHnt=(_n+q_MmMcu55e$1DR2)ZabJ=%%68wYi zk6&Ciuy^x;t^vfy`HD@zx-LLhS-9@g+J$dR8c+LWP+}O_0IK}q%&nQsP?Qwu`_UOh zY57?8?|yXG=}9G?M06nLDCCei`?XZy|A72Sv2wDX1cxW{-Pk?%Xd)}&({JH38vNJN3hMcY8iz#CrDi z40_~NX48?A{~+sY2qVbaxdz~X>RO4~#;xw|Lna^nCG(hg7z~KZ+QnA5owba?1sNn9s8p|r9H^=nWDf0ujvWDu`%e>Iw{$;)fOSqt zf1MM!6x^rUj~!(lT=QEi-VjW*A+jxd-&{D9GY>y1!Ky3zdl#H1M_Ib7LcjnlOYo+jFweepns6{OU50Ddje8t7PJ)_dfKc?R z%Wf!96vK~BDk3pWD@2>WCwo zYUbWI;b6XT#tVx>w=HwnZ}n6ee&D5uOYn@RJMKf`W_jjNwdhQ0)+EQ^iKLBq`^{eZ zA7`jja0+e<;{E+{PWfijvAz-1zkHEKBaDJ1pWD#Qx5-NVd~uoEjV0t>)Uih#&! zY9fb44O|BonUIgXkPOiPK=B|Z8z%=NQb5a(4%DG$ScqHTp$pp)Dk!0O;g==eDS?RK z3JbQffPU@$>@3m)UGVkSyvw*9VEe)1D0e#77UnKMw>&gu!JL|;Cdd1>;m<^M<-?xW z4VI*HebMEna!FVcs37PR7m&K4xT1SlJ8WQK${#Cncpb;liDCP777Q}%Hy--2(xR4j z{HTJ&9q-}PyM2a#SEQwH`&bWi8Js)&r%RM*a$fYi_NYJ=)7pI4F+Ck+agz~>rD7D1?QgPq`_C%IYKEYgqvZ^l7t!_;+2)Xd6h(3QMjgB|nH+l&8hO2| z9=mY`KhK4_vNPljQJ+>NlQZzlN6J+&A3<#1lHRdh^%LA8)NQw{h}XR3YV>Qb|w z*hhAt_XsXLG|@=#*a2c6Wi$+9#%J$L0JuYimC)oe-e;4%=dquD`c+df`*)ty-}x1U|~(rq1up&asgq=aYU&qloWg^MsE=!E)|zR z4%ikq+}VdOlM-2aLCe>%ii z4fD@$X6o@Y+$~JWGZAHJq0SfynqM@=-(G1~qul9yXk&%m)OD5XIi;(_Pr$X%YK-dR zE^6v3Fux|2;ddg9qK)Ok-wp@L6YVFHIy(l-?mIv1aPXXW8n(~mI`(4h@%t?j^kkjWPsB8iDr!i^Wo*`(C`MIrARLOB z$*VKb3NII14K`DVWc(98q#zAqjk)3u`JNlf{ltoR+zI`R$&*a;R5<0Rt(g0Y*a2KX zE&&5CCks6-0yde94KVbHJST#Cd!(toP;#Q}%%0SEN5y&0$Dywc2sO8L#XvpNOg~gf zWFfR-cKUxtnrxLS{DSg#yK|y$qeF^s)5FQIm~TWgF>js05l#azmy{f*ge7n0 zja^U$D^wJ4z3&O-D*{8FNTS#BRJo^T-X&y~dhTBAy-f5o>xmq5-l1+Sy)+QOwH|y3 z=rSU=qdYzU;BFyyaFUu!2r&rL~|L`1fW%V_B$~n$?sHG@Dm*3 zI{Xw{GCY(&Ue9V+m*mc)bH!EOuwyM&eR=>tT9DuOIdz>GRM9&T8%wN+6NeAA+|7|c zCpvzp&I{|}!}Ip?m%#0?;M_x2OZ9UbpoRl^YdPqbx$G=44v*QTk8Kjq_L&IBTTL`VP?PwJae4h`t?qNq^!&+k#o9@~Q+S1#@I?k7FV zPT+b!9JGHM!iw~+A_Y$NE-m)CMzjQ`YyFV3!hR~}IigyM zPk6q9(hEv69SL)LQvk=(R8SH^KfcS=j*7;`V6ZaV}j(xf~{HQuhsE@SZBC8IO@IdzV}c^8MI2)GcAT{ zpW0)SXyxk3qJz*VHLCHM*~z*SC_Jx1YH){U1F33I9*a{fNG&U7!U6Z>OO}!*43qX| z#9k8v4s=Q8VJan}M2*Mm))uO$g{=J%P*Gqq)-@|3Ka5LHJLYuIQsBa@ozH-wAg^o9 ztE^z$om*9E{m^@%htKX^E~ALU4&3PrY{PB}rD)kwAkNaMvm#Cg&>j9aT{d^oW4jNN z5~=*CFN|6lEx;f$!H5O5Rh-1QjexZ{D@4k=TXiJqP-5i( zgZx!gz^jM@O2fT4I{=|JOZs<}g^M0x zidz-S6|-L_8^^Wa?XQKjBbXfyDi0u;FcM*cq&VT>tj2<*P>0k78KPv;VL+S-JOnJl z`hLc+hxvU%U}+Zqz7~#S4~1mb_j}h1eT+J&KeuIBRnFW}tz%3bdnWI5p7_fC>W9;l z-I%~+^aR@D#9nkV9ZmJT{_CMxfbazOCtZrWF@!+H)i`Dh%I;i4 z*V+_MVU!Tc?^T*v|GH7GtGW)pUW+ZcJG0R1JI5oDSuzoY!FSanR>V$ zzi60k&#Z*F26t^N>;>(=KNS#t&`!+NrvLQTO*7Ou^EQ7{nnizm+v;(haF%jt#{;?UG!f)oBeWTCSNIci^7^#&LLD=sGHtO7 zNOMg=F}iY4Z{(swuEIj+_zP%%oCW2)dZaGZug^OY6tjy{q6Fc@Ft3nY4fnqUpa|EH zJ60+x`#kR4ehN43|B*;7sFI6%!Js-+n=}2n#qT?xkMSc^X!IoP{aW&gw$aT8N`}Ju z?eHp_okUoim-?#-<8ZIHO3|y zOjp3(!NNBySIYHPBC%>oHevGBmBU|ONB%PI!@+8=IX8-9Q#GRTNOQQ+T{O=@>!K@O zy%7`x@lZOiLr_!9SoYm&a|qMT;fSc!M&eC40j6hpwA8dXhhoY-s4W%+Z7+}hFh0nu z>`{mI&yONfTtX0;u@Gbr)#+-m93WKvI5Q2v80Tw?0o~?ic4wceU!%hP&Y%?r0C9Pv zLKk_4vpdeZe8{EFfvF0b)yv>xXS|+Ll<0?y-EExWGQLu>518r)R0NNokck0OYy>E; zoh?)OmK9yDkuUA1JqU6q9A*sWf8=9NScIlhOCL`EKis5c;duj!B-Oy~y*&F#>;&zH z#N2J{I$C?P)s{SwKz?eQCFKB^Q@>t!>+)A;25G#GwcDnsE+0{`7_q_=gIh z7d}!)58=<;8GCG|03d)`o#Y6pH)9Zq`b>hCfR7^BFy5%DB*rRoM-=8&%Hpz9>+rLC zzYvcd#!#}Hl9@o6!>$`%CxX0=}&S)k0tx0QTbUy|KC@cM#5^;>x# z*HA?7lj|6vG4Bf;U_CkUmF8Jb&A(k=tFA#nm3$4?OLZtj@kU8^6Ca4h-t!>1?B$oO zEURcjfD1$4fu#W99Ukhr*x|E~=F;ZJ8-Ibrl8wq9#)gbK1u;!M3az~Acnnu!m;`NM z6WDjQwUE586`n?=qZ6i6rtWah&*-%m!aQiA`U5`?EB2mG(1J;)(lw(Q(?fYg3c}vS ztGwB!o8t$E#Js1+jz=sKQ8y#8@IW#Z4TR?X;0jH09ta)z4hZA)K|hE15`_U`;w*ls zTPF)7*g3o!R?q`{`}%;4utTScC^3|G3^5idxrbsGNgNCJO z-d2zlAwIjbz2uUAf~e;;3(}TEO5EWHavcLAgSCIls$$+6ovgGs`zV&I3afXFmw~SO z-kij42ENu#=FIpN^;w;&;hlcfjC6If(xVxCR*U1SZSH^ZAdIcEk$4j%adm_56OS5{ zie4pPHwm#`y3R$8N&AVTT~grJPLV2PooF}g!{WKd&QMXJ>hm>!(YUF@=dLbRhcKOE zAp)PSKZQC`^fQKRe@!+145tfE&Q`oCsx}koq@LBxzF@Pxs$rHcCG8jBygw!d9_SR+ zS5Fe#+pNOWuF)jpU~gxxQg9JxB59325qIA)K;0KCfcI2?g)+&ds22Ze*g+qP?(4~T zkwhEG68PqB=?|asSMgXM=1k4#rv>(UFe)!uiHd8`nWENTs%$g!&P#bhgC3LByBu<~ zr8nyj1l3;E0CQEC2KlxDy8?!V(p&>!v@9!?L`(o=U&*HCLSHZs6^5ecuZ`PlDZ~-J zP;URWc*p#y?B)dbxz2pA$&lnW+oF(x#dz~h6V7$qA)>WDpF55w*`jo&jBn4x4m6pet}8Q` zc2sXFPmXj6j!Ryp#9>cAZ~mtdYbOQ8%H;K1jr7X17mTn}`=J>XikY2-ocA;dV>+Jn zX9^|8{2u)Qt#GOF2Q_#+o0Jf&&W6ieGcI+RY&khj*HX~bZN*HT}a(W!SO+JPU->A*|Zg zKp`L3zkvm$U8*k><_m4Q$aX*lgN&_YPE5Yg&$<()Vov+f&g0 z|FSHspSP^47M5iOO+O!A{z}7_0h3n%^m<#7)8ZNB2RQH%=I-bn2@73K|FYEUKlYIUF-^(y(yD(BT@DI<*QPnMW>v>-nA6W3tPg~1w1GS99 zDnnmCb$$BmX|u8vBQVX8eSLJhg2y73VU4cETudb`@yGvudo~<)OIqB!U@RhLD^yFEp|blnSuZ_?YHB zdOgbNRG&OiI;!6S&9EfMKow3tOgNDoUu+@4zO0P&=FQ=ZJuMjpR1ofI^XcoBN%Sod zxRKK|07niY8L4?7<&QQXgr?#nx=M#-Vl{++C0-aB7|~X^H#~AMa;i$A#X~V`7sz@% zy~2CldTieolgS$jT@@bQ1IG^5Ngwk}`&|cJ;k==`=IsU+Ky`#GhjDZ=WdQGMFgYbc zDzH(x;!!GR-FHDh+a<}gA8>=<7|gJNDUfH2goIk6Mk7Qb#6yrq`+L@Wj$U)rg@%=& zu{^ACtU0;c7vyLY!3CCipW`&otMP?01(0Ap7D&VPX4=e#!}}epOc(4)V35GnP&&G4 zmTDkZmGan75L)`%fT{bb1fg`ql3De>Y^7|hdzobFL3{#1*z)2PM_E+8hi(6l(K#FJ zFnCW)LwD*+-WtMz^HG@)0wYrr?5A`kH1hIOEP_28pwVl656x2eb6;)HOoE0n_ zygjvsyxGhbgk4zily^E7bP3D%+I}@kYTV437cy{g>TLR_6od)heh$cj#r0oc4?zi~ zd4{$-&lOJluo~)%Atp;ZI$K>RdAxe$8O?2!N^so3?D*NB)#tmqISh!wC3l2UA&Ht| zEe568T)u^Tx{TwyK$u+A5d{i6MHK-O-6(TW;f?+fu%~8f^25eq^{Ud0QF2&*BJ;|9 z$2IVga|x?}d)_%+_>V8#RWZ{kcD%}oFJC8>WYdClKSt!io1d0^Yh{}@wX9@b*khdK zPIp^3YT1-8H%(cQeBrW@pD1p=5RhXpwt){8nzg^c^eW`r5@R~1)?;1yW1X9j(lvJ> zF+_dNh&smGl>D}b%q8I4Kcjsb89N28y4;}XqQkx~4@@PC&}rD{0+)){?j8LqIy_%Z zX+93O;;ITcW`+46X)pXd9NI-vTlKAd#+0PADM(sjF;b6^>Q2>Uhv_E@sq= z!0!poh>jBdVW+PBUxp?0k1M@t;`6PxQ<2#C6&pC%;f8yTraD6(=k zr)<)0S>V6&_au%bYWIgMcaf$O6ewcZ4iuF8#w@;#)p7r1joGgMylc(g-z5-+D&u{tiq{Oo zhSpy9>NeP$^M|>RK*F8pGHJVt{jNzG-(6!7%y`y7fK6#^bA9X>ID2>oFtHSVqUW&I zkXjAsizvQRtz|86QD<(kiW;b_NqbAfB_emf0OAx^0v0J{gOWGM?RtB*gNN9#d|0EF z`pU`#TfryMXX(c6XzHxd**36*R0?*QPIaEycfP=TT*%I)(JSmvziN7l#8BI@PT`k17TYQP|-crP=2_H9{4c@F1@}2P;T9fRi^EnM@t$rQtE1Sps zG}%yFd2-uHvOroyBmP}u%iO^pE~co|x`M@#@ImMrZ|k0FP@EU8TJZ3f3N2jsasdTK zWK0M(4`T!6zo?VWQ(|z%yn((jE6DUpgjv)y1rgPHY0%*A&gAJgB8n<~epc`EB0fy_ zBgYLtmbU+_y4QkJ8S(go7B522=lFxT@2kLU?f(1*G%+F5hl|ARdK=3KKH}0ZkooSJ ziEgkkT2%!t`(F2mWFv>X2=aeB&by{250U@!`4s3&RD-u+3aL*E=DHZjq1>Mjpz^N< zo~ClZ4}y)LH89OiF6oqV+ z#G;xUo1664FeR}xwfnLmY`v6bpvItOQMgx}NOr*J+0#4nU^S)&?;Y#Ur+@^R|*dZ)>uyY!#oLQxc&wuPl7EOwGzQEM8KF zlo!z5O>Ccl`~#JuxKO3-Z%pK%#H3v(`=AN ziG2!F(>B1xfe*J@@nRT@RUZfch~z))xDaQGtjNpYE1?-Ufz)Q(s;alR zB4A@L0S8H?P`aztb4kO%;+?xiX*xU59)@d zAN+K9lgSOKQL)TiQo+D@hft7>(Rr;yQT-qG3c=R)jX3_jStd`B4QG0{cBVu6uVzec#a=&}Pu5eMKOvtdv% zXsV`;LK~imfG#sFuGDC7-l3PT30S(XS)t26Uj$Wvn$$!Jk~oZ`3k96LVWxv52_So< zJI@Xb@X%c5z2S8~2V7>9ENPQI#+`ETq**W0+W3})ER|_7c65+yH965pyimPjvAy;d`jH7Lc4s^S-`Qw~shYhyTuGK%Xvv%a%5j(0tq2`P z9Te(GU!+6=KaHo}qSh2fY^(3XZB>`b8Ij7-BF&}(IbXib>f-?fxil+Kt zh2P4DGe)n6yHZ&1?L#fr89Lg!r>@$eK~WykvqHhjBDj-(hu?yoEsSTa&c|Wif5=|E&sg;h z?!d=XIL!F)={tQ}eG#0vOQB1_1hu(@4vge|vdVM|);Ze93|m~*nqUw0F%Q_!=D0%8 zsZml0$4tyP{+#=hyt8CgW@w!u1Tx+=gm`0wT3p6d<3J&~)S*n;ZmiXMbUm@b zz7*p!IHE-iYEUxobhXsb>)^o;64r#{40ZMp5PLhw2tyeVCPa}Bm0)6G6N!K$sjtD= z1?nQ+TQahP77@4pYK(V`0EaXSorBK;zX09U*`4Xq=9|;LkS-65YuCSAytVWlM}xAX zAMUtmnz`iEy8_i}4G>gr!6Iy>;fG*^%Rt=1fSuqeW`HIAU+@yba;Z=P3te3AYOXob z%I}&io*GIHGzKvGreV)M9G-#@R@?_DYr+g73QLEv*ALWGdKId1rn5&CYkdCcaYg?Cw?)Si=Stu##W4mY-_E*l`V#q=N`U@S z1_4yqLNCz(ro?RBbu_Dvxb0sV2#I+L+UY7T-yDL!@ul40BzCSy{^$3i7=<6i%1qTt zz07{#@L3aO!Y=Ww_N9AzkThZQ#w*CP)DXz~`W6B6&65$Uzn=NbxhuQDoND35ARjMi z_bZi~E{K@@2y-fiP{$kvB0&t0Aet}65?$NfM+&2{B3ELqTPt)Z#4(W(hSy_2*cZ_i z#8-rj#L;xa9N2UuDCcrZH!q!r!`geL5q;*9Fr0lEoOdCA=s(A5yS_O9BLXPlOEv2^ z6?Zuh&-2RV)_~|{Q?eJVkY^iVyrzK(jNo)eAB8jO-c#d({|L_|L3wU|T`Rd=jT zMp$qoJQS`p^;pgTtZ)Kz&HaPl+sBf#>j-c~qvL>^xPBZ(jg4%g`F34M%n?{?>j z=Bx`{+sZJ8Fitd@I()7(DL~SzXx}!wvatPl09ulttW6joHL_zc@zU5{G!J=!Kc|ry z1Zlp4HEbK223uQVNT$pCtT^!1@O4vfvw=b-v0VU0I++*P8OBM!0;NYu@um|Qfi>cU zGXZh3atru-MpT^Ojby{e&HiMY1uNp)=Af(Rd9YfYM3aJmi_lDf^Z?OVTY7bqyI z+sh%dkYia`VBK}5bG4iM{~7!EEkb;4X!fDXUk*;q5mpDzlzu{dz-*znS#VMdayo}Q zM2bOv`fq_ryOr3W!l7MUFh|V?&kGjGfMrD}CPy81cnmHN4iD*ZaSK<{y3Sl=9$*_Z zd|E^qGh2;ujUQ?o3TynvY&Ljq3N>LK2God!(o(v|Qx;(XCnmAe- zMtgtFmw@D_UzY?llg~L7163s~&Sbk5EkeeUOwJ6&s(~M99Eddd6)>C^lNmPz7b8Ac zGkMALSj?$~^p_1N0+hSJiCziVM*bcclOjg4#x_fo@2S`APgj@P5t zL+sxL4Q;H!s_1P79y-YIWn4=@EH{UUpV(HbQQaPmYUGA3t-^>UFi?s*DM;NG`NPoi zuRuC=;Sgf<27;B_4GRJDnUT+nbHO`Qy zkpGQKvHJkx;7@lQ<}o z0}ho2F>xvM%|8I}TKtV1oB+KCUjPFScEn_XLzORNPx>NVGq03=r+oy@^E3)`2!?~i zzYgn4B2SY%$o%;b76*M?D)k2!M5rEWN1n4uJiKPj?<{~adp2`B906_kVFMre%aU3Yj{W=y+=cj%$D zYxSk61RIjguA4_|RD;A(8)nlbPct&qrCOnd3J%K)_K!L{<>giyxGxWEWN-(XHN7;R z*n-%x3FsNs5N*O8wHsxqL!6NemHIszt)-jW1tLzX@2pI>re0msWndGD0iiZglh{i& zg6Dd`$@f*f3d9dL#9A{TV}Oa1Al>+~ka%7f@lQX*f|(1^j@`?lZS(Ps=+wxr`rZ@IVjIeIn`wsE;tKbwFvMvC5ZqbYR!e~M7zPyf++%K&MHR#cjrPzI)U%3 zm7+kDQTZkIjhVa`GT^zU^s@YN>KVEXS`MM*Bu?D1`Zbm9S$fKD3={b#p;D=YSKxB< zVwPcuMzeFxW$um$O8%gRc)?nQT7lsVKM1l?)AM{SNL9|+5bmhAr{OnuO3EJZfrBwl z!`|s2)E9yFzbIz=PF2aKKyuAyJhd|J^Z>KE8jP~)r3$1PXVqnxVC|UNY$p=BCDRD^ z9ck8YY4r_6QYoU5`;a2X-p)BpJ}%i{ieQ*`jVJO`xZ>Wo-p=wp<&Gkhz@z6}x5~ca z(NB#G1F)ax3pHUXpa7R_gEc#D+p-B;C=�Ah#mel?BL0JbA6xv|1<`3lm!c)>+`>17 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

    NCqX{Dng8J;!ZrzuML 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 UMxsR8@m>IWA^AbelpX*80Nce#^#A|> literal 0 HcmV?d00001 diff --git a/import-tours.php b/import-tours.php new file mode 100644 index 0000000..12fbcbf --- /dev/null +++ b/import-tours.php @@ -0,0 +1,82 @@ + $tour['title'], + 'post_content' => $tour['description'] ?? '', + 'post_status' => 'publish', + 'post_type' => 'tour' + ); + + // Vstavi novo turo + $post_id = wp_insert_post($post_data); + + if ($post_id) { + // Dodaj meta podatke + update_post_meta($post_id, '_tour_duration', $tour['duration'] ?? ''); + update_post_meta($post_id, '_tour_distance', $tour['distance'] ?? ''); + update_post_meta($post_id, '_tour_category', $tour['category'] ?? ''); + + // Dodaj highlights in inclusions, če obstajajo + if (isset($tour['highlights'])) { + update_post_meta($post_id, '_tour_highlights', $tour['highlights']); + } + if (isset($tour['inclusions'])) { + update_post_meta($post_id, '_tour_inclusions', $tour['inclusions']); + } + + // Nastavi featured image, če obstaja + if (isset($tour['image']) && !empty($tour['image'])) { + $image_url = $tour['image']; + $upload_dir = wp_upload_dir(); + + // Prenesi sliko + $image_data = file_get_contents($image_url); + $filename = basename($image_url); + + if ($image_data !== false) { + $file = $upload_dir['path'] . '/' . $filename; + file_put_contents($file, $image_data); + + $wp_filetype = wp_check_filetype($filename, null); + $attachment = array( + 'post_mime_type' => $wp_filetype['type'], + 'post_title' => sanitize_file_name($filename), + 'post_content' => '', + 'post_status' => 'inherit' + ); + + $attach_id = wp_insert_attachment($attachment, $file, $post_id); + require_once(ABSPATH . 'wp-admin/includes/image.php'); + + $attach_data = wp_generate_attachment_metadata($attach_id, $file); + wp_update_attachment_metadata($attach_id, $attach_data); + set_post_thumbnail($post_id, $attach_id); + } + } + + echo "Uvožena tura: " . $tour['title'] . "\n"; + } +} + +echo "Uvoz končan!\n"; \ No newline at end of file diff --git a/index.php b/index.php new file mode 100644 index 0000000..8409cbd --- /dev/null +++ b/index.php @@ -0,0 +1,19 @@ + + +
    +
    + +
    +
    + + \ No newline at end of file diff --git a/js/customizer-preview.js b/js/customizer-preview.js new file mode 100644 index 0000000..301f024 --- /dev/null +++ b/js/customizer-preview.js @@ -0,0 +1,20 @@ +(function($) { + 'use strict'; + + // Posodobi predogled, ko se spremeni vrstni red Experience Journeyev + wp.customize('experience_journey_order', function(setting) { + setting.bind(function(newValue) { + wp.customize.previewer.refresh(); + }); + }); + + // Posodobi predogled, ko se spremeni vrstni red Individual Tours v katerem koli Journey + $('option[id^="individual_tour_order_"]').each(function() { + var settingId = $(this).attr('id'); + wp.customize(settingId, function(setting) { + setting.bind(function(newValue) { + wp.customize.previewer.refresh(); + }); + }); + }); +})(jQuery); \ No newline at end of file diff --git a/js/customizer-sortable.js b/js/customizer-sortable.js new file mode 100644 index 0000000..d6c9ed5 --- /dev/null +++ b/js/customizer-sortable.js @@ -0,0 +1,17 @@ +(function($) { + 'use strict'; + + wp.customize.bind('ready', function() { + $('.sortable-posts-list').sortable({ + update: function(event, ui) { + var $list = $(this); + var postIds = []; + $list.find('li').each(function() { + postIds.push($(this).data('post-id')); + }); + var $input = $list.closest('.customize-control').find('input[type="hidden"]'); + $input.val(postIds.join(',')).trigger('change'); + } + }); + }); +})(jQuery); \ No newline at end of file diff --git a/js/main.js b/js/main.js new file mode 100644 index 0000000..a1c98a8 --- /dev/null +++ b/js/main.js @@ -0,0 +1,64 @@ +document.addEventListener('DOMContentLoaded', function() { + const menuToggle = document.getElementById('menuToggle'); + const mainNav = document.querySelector('.main-nav'); + const body = document.body; + + // Ustvari overlay element + let overlay = document.querySelector('.menu-overlay'); + if (!overlay) { + overlay = document.createElement('div'); + overlay.className = 'menu-overlay'; + document.body.appendChild(overlay); + } + + if (menuToggle && mainNav) { + menuToggle.addEventListener('click', function() { + mainNav.classList.toggle('active'); + overlay.classList.toggle('active'); + body.classList.toggle('menu-open'); + menuToggle.classList.toggle('active'); + + // Dodaj aria-expanded za dostopnost + const isExpanded = mainNav.classList.contains('active'); + menuToggle.setAttribute('aria-expanded', isExpanded); + + // Eksplicitno nastavi display stil + mainNav.style.display = isExpanded ? 'block' : 'none'; + }); + + // Zapri meni ob kliku na overlay + overlay.addEventListener('click', function() { + mainNav.classList.remove('active'); + overlay.classList.remove('active'); + body.classList.remove('menu-open'); + menuToggle.classList.remove('active'); + menuToggle.setAttribute('aria-expanded', 'false'); + mainNav.style.display = 'none'; + }); + + // Zapri meni ob kliku na povezavo v meniju + const menuLinks = mainNav.querySelectorAll('a'); + menuLinks.forEach(link => { + link.addEventListener('click', function() { + mainNav.classList.remove('active'); + overlay.classList.remove('active'); + body.classList.remove('menu-open'); + menuToggle.classList.remove('active'); + menuToggle.setAttribute('aria-expanded', 'false'); + mainNav.style.display = 'none'; + }); + }); + + // Zapri meni ob resize-u okna + window.addEventListener('resize', function() { + if (window.innerWidth > 768) { + mainNav.classList.remove('active'); + overlay.classList.remove('active'); + body.classList.remove('menu-open'); + menuToggle.classList.remove('active'); + menuToggle.setAttribute('aria-expanded', 'false'); + mainNav.style.removeProperty('display'); + } + }); + } +}); \ No newline at end of file diff --git a/js/popup.js b/js/popup.js new file mode 100644 index 0000000..00381d2 --- /dev/null +++ b/js/popup.js @@ -0,0 +1,121 @@ +document.addEventListener('DOMContentLoaded', function() { + if (!localStorage.getItem('popupShown')) { + setTimeout(function() { + document.getElementById('email-popup').style.display = 'flex'; + }, 2000); // Show popup after 2 seconds + } + + // Dodaj poslušalca za promocijsko kodo v popupu + const popupPromoInput = document.getElementById('popup-promo-code'); + const popupApplyButton = document.getElementById('popup-apply-promo'); + const popupPromoMessage = document.getElementById('popup-promo-message'); + let promoCodeApplied = false; + + if (popupPromoInput && popupApplyButton) { + popupApplyButton.addEventListener('click', function(e) { + e.preventDefault(); + const promoCode = popupPromoInput.value.trim(); + + if (promoCode === 'HOLIDAYS25' && !promoCodeApplied) { + // Pridobi trenutni znesek + const totalElement = document.getElementById('popupTotalPrice'); + if (totalElement) { + const currentAmount = parseFloat(totalElement.textContent); + const newAmount = currentAmount - 100; + + // Posodobi prikaz + totalElement.textContent = newAmount.toFixed(2); + + // Posodobi tudi zneske za delno plačilo + const fullPaymentAmount = document.getElementById('full-payment-amount'); + const depositAmount = document.getElementById('deposit-amount'); + if (fullPaymentAmount) { + fullPaymentAmount.textContent = newAmount.toFixed(2); + } + if (depositAmount) { + depositAmount.textContent = (newAmount * 0.3).toFixed(2); + } + + // Dodaj sporočilo o uspehu + popupPromoMessage.innerHTML = '

    Promotional code successfully applied! We deducted €100.

    '; + + // Onemogoči nadaljnje vnose + popupPromoInput.disabled = true; + popupApplyButton.disabled = true; + promoCodeApplied = true; + } + } else { + // Prikaži napako + popupPromoMessage.innerHTML = '

    Neveljavna promocijska koda.

    '; + + // Odstrani sporočilo o napaki po 3 sekundah + setTimeout(() => { + popupPromoMessage.innerHTML = ''; + }, 3000); + } + }); + } + + // Pridobi podatke o vodiču + const guideImage = document.getElementById('guide-image-data')?.getAttribute('data-guide-image'); + const guideName = document.getElementById('guide-image-data')?.getAttribute('data-guide-name'); + const guideTitle = document.getElementById('guide-image-data')?.getAttribute('data-guide-title'); + + // Posodobi HTML v obrazcu + if (guideImage && guideName) { + const guideContainer = document.querySelector('.guide-info-container'); + if (guideContainer) { + guideContainer.innerHTML = ` +
    + `; + } + } +}); + +function closePopup() { + document.getElementById('email-popup').style.display = 'none'; + localStorage.setItem('popupShown', 'true'); +} + +async function submitEmail(event) { + event.preventDefault(); + const email = document.getElementById('popup-email').value; + + try { + const response = await fetch('/wp-admin/admin-ajax.php', { + method: 'POST', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded', + }, + body: `action=save_popup_email&email=${encodeURIComponent(email)}` + }); + + if (response.ok) { + document.getElementById('success-message').style.display = 'block'; + document.getElementById('email-form').style.display = 'none'; + } + } catch (error) { + console.error('Error:', error); + } +} \ No newline at end of file diff --git a/js/script.js b/js/script.js new file mode 100644 index 0000000..e4bd878 --- /dev/null +++ b/js/script.js @@ -0,0 +1,362 @@ +document.addEventListener('DOMContentLoaded', function() { + // ---------- MOBILNI MENI ---------- + const mainNav = document.querySelector('.main-nav'); + const body = document.body; + + // Ustvari overlay element + const overlay = document.createElement('div'); + overlay.className = 'menu-overlay'; + document.body.appendChild(overlay); + + if (menuToggle && mainNav) { + menuToggle.addEventListener('click', function() { + menuToggle.classList.toggle('active'); + mainNav.classList.toggle('active'); + overlay.classList.toggle('active'); + body.classList.toggle('menu-open'); + }); + + // Zapri meni ob kliku na overlay + overlay.addEventListener('click', function() { + menuToggle.classList.remove('active'); + mainNav.classList.remove('active'); + overlay.classList.remove('active'); + body.classList.remove('menu-open'); + }); + + // Zapri meni ob kliku na povezavo + mainNav.querySelectorAll('a').forEach(link => { + link.addEventListener('click', function() { + menuToggle.classList.remove('active'); + mainNav.classList.remove('active'); + overlay.classList.remove('active'); + body.classList.remove('menu-open'); + }); + }); + } + + // Zapri meni ob resize-u okna + window.addEventListener('resize', function() { + if (window.innerWidth > 768) { + menuToggle.classList.remove('active'); + mainNav.classList.remove('active'); + overlay.classList.remove('active'); + body.classList.remove('menu-open'); + } + }); + + // ---------- PLAVAJOČI GUMB ZA POVPRAŠEVANJE ---------- + // Ustvarimo nov HTML element za plavajoči gumb + const floatingButton = document.createElement('a'); + floatingButton.className = 'floating-inquiry-btn'; + floatingButton.href = '/inquiry/'; + floatingButton.innerHTML = ' Custom Journey Inquiry'; + + // Dodamo gumb v body + document.body.appendChild(floatingButton); + + // Če obstaja popup element na strani, bomo uporabili ta obstoječi element + let inquiryPopup = document.getElementById('inquiry-popup'); + + // Če popup ne obstaja na trenutni strani, ga ustvarimo + if (!inquiryPopup) { + // Ustvarimo nov popup + inquiryPopup = document.createElement('div'); + inquiryPopup.id = 'inquiry-popup'; + inquiryPopup.className = 'inquiry-popup'; + + // Vsebina popupa + inquiryPopup.innerHTML = ` +
    + × +

    Custom Journey Inquiry

    +
    + + +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    + +
    +
    + `; + + // Dodamo style, če ga še ni + if (!document.getElementById('inquiry-popup-styles')) { + const popupStyles = document.createElement('style'); + popupStyles.id = 'inquiry-popup-styles'; + popupStyles.textContent = ` + /* Popup Styles */ + .inquiry-popup { + display: none; + position: fixed; + z-index: 9999; + left: 0; + top: 0; + width: 100%; + height: 100%; + overflow: auto; + background-color: rgba(0, 0, 0, 0.6); + opacity: 0; + transition: opacity 0.3s ease; + } + + .inquiry-popup.active { + display: block; + opacity: 1; + } + + .inquiry-popup-content { + background-color: white; + margin: 5% auto; + padding: 2rem; + border-radius: 12px; + width: 90%; + max-width: 600px; + box-shadow: 0 5px 20px rgba(0, 0, 0, 0.2); + transform: translateY(-20px); + transition: transform 0.3s ease; + position: relative; + } + + .inquiry-popup.active .inquiry-popup-content { + transform: translateY(0); + } + + .inquiry-close { + position: absolute; + top: 1.2rem; + right: 1.5rem; + font-size: 2rem; + color: #aaa; + cursor: pointer; + transition: color 0.3s ease; + } + + .inquiry-close:hover { + color: var(--accent); + } + + .inquiry-popup h3 { + margin-top: 0; + margin-bottom: 1.5rem; + color: var(--dark); + font-size: 1.8rem; + text-align: center; + } + + .inquiry-form .form-group { + margin-bottom: 1.2rem; + } + + .inquiry-form .half { + width: 49%; + display: inline-block; + } + + .inquiry-form .form-group:nth-child(3) { + margin-right: 2%; + } + + .inquiry-form label { + display: block; + margin-bottom: 0.5rem; + color: #555; + font-weight: 500; + } + + .inquiry-form input, + .inquiry-form textarea { + width: 100%; + padding: 0.8rem; + border: 1px solid #ddd; + border-radius: 4px; + font-size: 1rem; + transition: border-color 0.3s ease; + } + + .inquiry-form input:focus, + .inquiry-form textarea:focus { + border-color: var(--accent); + outline: none; + } + + .inquiry-form .btn-submit { + width: 100%; + padding: 1rem; + background-color: var(--accent); + color: white; + border: none; + border-radius: 4px; + cursor: pointer; + font-size: 1.1rem; + font-weight: 600; + transition: background-color 0.3s ease; + margin-top: 1rem; + } + + .inquiry-form .btn-submit:hover { + background-color: var(--accent-dark); + } + + body.popup-open { + overflow: hidden; + } + + @media (max-width: 768px) { + .inquiry-popup-content { + padding: 1.5rem; + margin: 10% auto; + width: 95%; + } + + .inquiry-form .half { + width: 100%; + display: block; + } + + .inquiry-form .form-group:nth-child(3) { + margin-right: 0; + } + } + `; + document.head.appendChild(popupStyles); + } + + // Dodamo popup v body + document.body.appendChild(inquiryPopup); + + // Pridobimo varnostni nonce preko AJAX klica + fetch(inquiry_ajax_object.ajax_url, { + method: 'POST', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded', + }, + body: 'action=get_inquiry_nonce' + }) + .then(response => response.json()) + .then(data => { + if (data.success) { + document.getElementById('inquiry_security').value = data.data; + } + }) + .catch(error => { + console.error('Error fetching nonce:', error); + }); + } + + // Poskrbimo, da je popup začetno skrit + inquiryPopup.classList.remove('active'); + document.body.classList.remove('popup-open'); + + // Dodamo "click" poslušalec za odpiranje popupa + floatingButton.addEventListener('click', function() { + inquiryPopup.classList.add('active'); + document.body.classList.add('popup-open'); + }); + + // Pridobimo referenco na elemente v popupu + const inquiryClose = inquiryPopup.querySelector('.inquiry-close'); + const inquiryForm = inquiryPopup.querySelector('#custom-inquiry-form'); + + // Zapri popup (X gumb) + inquiryClose.addEventListener('click', function() { + inquiryPopup.classList.remove('active'); + document.body.classList.remove('popup-open'); + }); + + // Zapri popup (klik izven obrazca) + inquiryPopup.addEventListener('click', function(e) { + if (e.target === inquiryPopup) { + inquiryPopup.classList.remove('active'); + document.body.classList.remove('popup-open'); + } + }); + + // Zapri popup (tipka ESC) + document.addEventListener('keydown', function(e) { + if (e.key === 'Escape' && inquiryPopup.classList.contains('active')) { + inquiryPopup.classList.remove('active'); + document.body.classList.remove('popup-open'); + } + }); + + // Pošlji obrazec + inquiryForm.addEventListener('submit', function(e) { + e.preventDefault(); + + // Prikaži indikator nalaganja + const submitBtn = inquiryForm.querySelector('.btn-submit'); + const originalBtnText = submitBtn.textContent; + submitBtn.textContent = 'Sending...'; + submitBtn.disabled = true; + + // Pridobi podatke iz obrazca + const formData = new FormData(inquiryForm); + const nonce = document.getElementById('inquiry_security').value; + formData.append('security', nonce); + + console.log('Sending form data to AJAX endpoint...'); + + // Pošlji AJAX zahtevek + fetch(inquiry_ajax_object.ajax_url, { + method: 'POST', + body: formData + }) + .then(response => { + console.log('Response status:', response.status); + if (!response.ok) { + throw new Error('Network response was not ok: ' + response.status); + } + return response.json(); + }) + .then(data => { + console.log('Response data:', data); + + // Ponastavi gumb + submitBtn.textContent = originalBtnText; + submitBtn.disabled = false; + + if (data.success) { + // Uspešno poslano + alert(data.data); + inquiryForm.reset(); + inquiryPopup.classList.remove('active'); + document.body.classList.remove('popup-open'); + } else { + // Napaka + console.error('Form submission error:', data); + alert(data.data || 'There was an error sending your inquiry. Please try again.'); + } + }) + .catch(error => { + // Ponastavi gumb + submitBtn.textContent = originalBtnText; + submitBtn.disabled = false; + + console.error('Error during form submission:', error); + alert('There was an error sending your inquiry: ' + error.message); + }); + }); +}); \ No newline at end of file diff --git a/mytheme-customizer.php b/mytheme-customizer.php new file mode 100644 index 0000000..656bb04 --- /dev/null +++ b/mytheme-customizer.php @@ -0,0 +1,108 @@ +add_section('experience_journey_order_section', array( + 'title' => __('Experience Journey Order', 'grilctours'), + 'priority' => 200, + )); + + // Add setting + $wp_customize->add_setting('experience_journey_order', array( + 'default' => '', + 'sanitize_callback' => 'sanitize_experience_journey_order', + 'transport' => 'refresh', + )); + + // Add control + $wp_customize->add_control(new WP_Customize_Sortable_Posts_Control($wp_customize, 'experience_journey_order', array( + 'section' => 'experience_journey_order_section', + 'label' => __('Drag & Drop to Reorder', 'grilctours'), + 'description' => __('Arrange the order of Experience Journeys on the homepage.', 'grilctours'), + ))); +} +add_action('customize_register', 'grilctours_customize_journey_order'); + +// Sanitizacijska funkcija za vrstni red +function sanitize_experience_journey_order($input) { + $order = explode(',', $input); + $sanitized = array(); + foreach ($order as $post_id) { + $post_id = absint($post_id); + if ($post_id && get_post_status($post_id)) { + $sanitized[] = $post_id; + } + } + return implode(',', $sanitized); +} + +// Prilagodljiv control class +class WP_Customize_Sortable_Posts_Control extends WP_Customize_Control { + public $type = 'sortable_posts'; + public $post_type = 'experience_journey'; + + public function render_content() { + $saved_order = (array) $this->value(); + $all_posts = get_posts(array( + 'post_type' => $this->post_type, + 'posts_per_page' => -1, + 'post_status' => 'publish', + 'fields' => 'ids', + )); + + // Split into saved and new posts + $ordered_posts = array(); + $new_posts = array(); + + // Keep valid saved posts + foreach ($saved_order as $post_id) { + if (in_array($post_id, $all_posts)) { + $ordered_posts[] = $post_id; + } + } + + // Add new posts not in saved order + foreach ($all_posts as $post_id) { + if (!in_array($post_id, $ordered_posts)) { + $new_posts[] = $post_id; + } + } + + $ordered_posts = array_merge($ordered_posts, $new_posts); + ?> + +
      + +
    • + + post_title); ?> +
    • + +
    + link(); ?> value="" /> + + + +
    +
    +

    +

    +
    +
    + + +
    +
    +
    + +
    +
    + <?php echo esc_attr(get_theme_mod('team_nejc_name', 'Nejc Dovžan Kukič')); ?> +
    +
    +

    +

    +
    +

    +
    +
    +
    + + +
    +
    + <?php echo esc_attr(get_theme_mod('team_matic_name', 'Matic Snoj')); ?> +
    +
    +

    +

    +
    +

    +
    +
    +
    + + +
    +
    + <?php echo esc_attr(get_theme_mod('team_luka_name', 'Luka Dovžan Kukič')); ?> +
    +
    +

    +

    +
    +

    +
    +
    +
    + + +
    +
    + <?php echo esc_attr(get_theme_mod('team_jernej_name', 'Jernej Antloga')); ?> +
    +
    +

    +

    +
    +

    +
    +
    +
    + + +
    +
    + <?php echo esc_attr(get_theme_mod('team_kevin_name', 'Kevin Krajnc')); ?> +
    +
    +

    +

    +
    +

    +
    +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/page-blog.php b/page-blog.php new file mode 100644 index 0000000..67e1c29 --- /dev/null +++ b/page-blog.php @@ -0,0 +1,251 @@ + + + +
    +
    +

    +

    Discover travel stories, tips, and insights

    +
    +
    + + +
    +
    +
    + 'post', + 'posts_per_page' => 9, + 'paged' => $paged + ); + + $blog_query = new WP_Query($args); + + if ($blog_query->have_posts()) : + while ($blog_query->have_posts()) : $blog_query->the_post(); + $image = get_the_post_thumbnail_url(get_the_ID(), 'large'); + if (!$image) { + $image = get_theme_file_uri('images/placeholder.jpg'); + } + ?> +
    +
    + <?php echo esc_attr(get_the_title()); ?> +
    +
    +
    + + + + + + + + name); ?> + + +
    +

    +

    + Read More → +
    +
    + '; + echo paginate_links(array( + 'total' => $blog_query->max_num_pages, + 'current' => $paged, + 'prev_text' => '←', + 'next_text' => '→' + )); + echo '
    '; + + wp_reset_postdata(); + else : + ?> +
    +

    No blog posts found.

    +
    + +
    + +
    + + + + \ No newline at end of file diff --git a/page-contact-us.php b/page-contact-us.php new file mode 100644 index 0000000..0c265e0 --- /dev/null +++ b/page-contact-us.php @@ -0,0 +1,69 @@ + + + +
    +
    +

    +

    Let's plan your next adventure together

    +
    +
    + + +
    +
    +
    +
    +

    Get in Touch

    +
    + +

    123 Travel Street, Adventure City

    +
    +
    + +

    +386 41 444 290

    +
    +
    + +

    info@grilctours.com

    +
    + +
    +
    + + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    + +
    +
    +
    +
    +
    + + \ No newline at end of file diff --git a/page-contact.php b/page-contact.php new file mode 100644 index 0000000..dca170c --- /dev/null +++ b/page-contact.php @@ -0,0 +1,267 @@ + + + +
    +
    +

    +

    Let's plan your next adventure together

    +
    +
    + + +
    +
    +
    +
    +

    Get in Touch

    +
    + +

    Ob Farjevcu 50, 1000 Ljubljana, Slovenia

    +
    +
    + +

    +386 (0) 31 332 823

    +
    +
    + +

    info@europewonder.com

    +
    +
    +
    +
    + + +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    + +
    +
    +
    +
    +
    + + + + + + \ No newline at end of file diff --git a/page-terms-of-service.php b/page-terms-of-service.php new file mode 100644 index 0000000..7116878 --- /dev/null +++ b/page-terms-of-service.php @@ -0,0 +1,116 @@ + + + +
    +
    +

    +

    Please read these terms carefully before using our services

    +
    +
    + + +
    +
    +
    + + + +
    +
    +
    + + + + \ No newline at end of file diff --git a/page-thank-you.php b/page-thank-you.php new file mode 100644 index 0000000..3e0ca58 --- /dev/null +++ b/page-thank-you.php @@ -0,0 +1,128 @@ + + + +
    +
    +

    +

    +
    +
    + + +
    + +

    + +

    We have received your inquiry and will get back to you as soon as possible with pricing and availability information. You will receive a confirmation email shortly.

    + +

    We have received your payment and your tour booking has been confirmed. You will receive a confirmation email shortly with all the details of your booking.

    + +

    If you have any questions, please don't hesitate to contact us.

    + Return to Homepage +
    + + + + \ No newline at end of file diff --git a/page.php b/page.php new file mode 100644 index 0000000..2a1038b --- /dev/null +++ b/page.php @@ -0,0 +1,30 @@ + + + +
    +
    +

    + +

    + +
    +
    + + +
    +
    + +
    +
    + + \ No newline at end of file diff --git a/setup-theme.php b/setup-theme.php new file mode 100644 index 0000000..18e4be4 --- /dev/null +++ b/setup-theme.php @@ -0,0 +1,59 @@ + 'Home', + 'menu-item-url' => home_url('/'), + 'menu-item-status' => 'publish', + 'menu-item-type' => 'custom', + )); + + wp_update_nav_menu_item($menu_id, 0, array( + 'menu-item-title' => 'Contact us', + 'menu-item-url' => home_url('/contact'), + 'menu-item-status' => 'publish', + 'menu-item-type' => 'custom', + )); + + wp_update_nav_menu_item($menu_id, 0, array( + 'menu-item-title' => 'Blog', + 'menu-item-url' => home_url('/blog'), + 'menu-item-status' => 'publish', + 'menu-item-type' => 'custom', + )); + + // Dodeli meni lokaciji + $locations = get_theme_mod('nav_menu_locations'); + $locations['primary'] = $menu_id; + set_theme_mod('nav_menu_locations', $locations); +} + +// Nastavi kontaktne podatke +set_theme_mod('contact_email', 'test@test.com'); +set_theme_mod('contact_phone', '+386 41 444 290'); +set_theme_mod('whatsapp', '38641444290'); +set_theme_mod('messenger', 'worlddiscovery'); + +// Nastavi družbena omrežja +set_theme_mod('social_instagram', '#'); +set_theme_mod('social_facebook', '#'); +set_theme_mod('social_linkedin', '#'); + +// Nastavi opis v nogi +set_theme_mod('footer_description', "We're a travel agency and tour operator for holidays, activities, and other unforgettable experiences in every corner of the globe, and for every sort of traveler."); + +// Nastavi hero sekcijo +set_theme_mod('hero_title', 'Grilc Tours'); +set_theme_mod('hero_subtitle', 'Your path to unforgettable cycling experiences'); +set_theme_mod('tours_section_title', 'Experience Journeys'); + +echo "Nastavitve teme so končane!\n"; \ No newline at end of file diff --git a/single-experience_journey.php b/single-experience_journey.php new file mode 100644 index 0000000..9efa5a6 --- /dev/null +++ b/single-experience_journey.php @@ -0,0 +1,285 @@ + + +> + + + + + +> + + + + +
    +
    +

    +
    + 'individual_tour', + 'posts_per_page' => -1, + 'meta_key' => '_experience_journey', + 'meta_value' => $journey_id, + 'meta_compare' => '=' + ); + + // Če imamo shranjen vrstni red, uporabi post__in in orderby + if (!empty($order_array)) { + $args['post__in'] = $order_array; + $args['orderby'] = 'post__in'; + } + + $tours = new WP_Query($args); + + // Debug v WordPress log + error_log('=== EXPERIENCE JOURNEY DEBUG ==='); + error_log('Journey ID: ' . $journey_id); + error_log('Found posts: ' . $tours->found_posts); + error_log('Post count: ' . $tours->post_count); + error_log('Max num pages: ' . $tours->max_num_pages); + error_log('Query SQL: ' . $tours->request); + error_log('Saved order array: ' . print_r($order_array, true)); + error_log('=== END DEBUG ==='); + + // Dodajmo tudi vizualni debug za administratorje + if (current_user_can('administrator')) { + echo '
    '; + echo '

    Debug Info (visible only to admins):

    '; + echo '

    Found posts: ' . $tours->found_posts . '

    '; + echo '

    Post count: ' . $tours->post_count . '

    '; + echo '

    Journey ID: ' . $journey_id . '

    '; + echo '
    '; + } + + if ($tours->have_posts()) : + while ($tours->have_posts()) : $tours->the_post(); + // Pridobi hero sliko + $hero_image_id = get_post_meta(get_the_ID(), '_hero_image', true); + $image = wp_get_attachment_image_url($hero_image_id, 'full'); + // Če hero slika ne obstaja, uporabi featured image + if (!$image) { + $image = get_the_post_thumbnail_url(get_the_ID(), 'large'); + } + // Če ni nobene slike, uporabi placeholder + if (!$image) { + $image = get_theme_file_uri('images/placeholder.jpg'); + } + $price = get_post_meta(get_the_ID(), '_tour_price', true); + $duration = get_post_meta(get_the_ID(), '_tour_duration', true); + ?> +
    +
    + <?php echo esc_attr(get_the_title()); ?> +
    +
    +
    +

    +

    +
    +
    +
    + + + + + days + +
    + View Details +
    +
    +
    + +

    Currently no individual tours in this category.

    + +
    +
    +
    + + + + + \ No newline at end of file diff --git a/single-individual_tour.php b/single-individual_tour.php new file mode 100644 index 0000000..85f255a --- /dev/null +++ b/single-individual_tour.php @@ -0,0 +1,2742 @@ + +> + + + + + + + +> + + + + + + + + + + + + + + +
    + + <?php echo esc_attr(get_the_title()); ?> + + get_the_title())); ?> + +
    +
    +

    +
    + +
    od
    + + + days + + + + +
    +
    +
    + + +
    + + +
    + +
    +
    +

    About This Tour

    + +
    + + + + + + + + + + +
    +

    Daily Program

    +
    + $day) : + ?> +
    +
    +
    +

    :

    +
    +

    +
    + +
    +
    + + + +
    +

    Included in Price

    +
    + + +
    + + +
    + + + + + +
    + + +
    + + +
    +
    + + + + +
    +

    Available Extras

    +
    + +
    + + +
    + +
    +
    + +
    + + +
    +
    +

    + + + +
    +
    + + <?php echo esc_attr($guide_name); ?> + + +
    + +

    + + +
    + +
    + +
    + + +
    + + WhatsApp +
    +
    +
    + +
    + Pošljite nam povpraševanje in pomagali vam bomo načrtovati vaše potovanje. +
    +
    + + +
    + + + + +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    + + + + +
    + +
    + +
    + + +
    +
    +
    + +
    + +
    + + Per Request +
    +
    +
    + + +
    + + + +
    +
    +
    +
    + + +
    +
    +

    Frequently Asked Questions

    + +
    + +
    +
    +

    + + + + +
    +
    + +
    +
    + +
    + +

    Currently no frequently asked questions for this tour.

    + +
    +
    + + + + + + + + + + + + \ No newline at end of file diff --git a/single-tour.php b/single-tour.php new file mode 100644 index 0000000..64184ac --- /dev/null +++ b/single-tour.php @@ -0,0 +1,76 @@ + + +
    + + + +
    + +
    + +
    + +
    +
    +
    +

    +
    +
    + + +
    +
    + + +
    +
    +
    +
    +
    + + +
    +
    +
    + +
    + + +
    +

    Highlights

    +
      + ' . esc_html($highlight) . ''; + } + ?> +
    +
    + + + +
    +

    What's Included

    +
      + ' . esc_html($inclusion) . ''; + } + ?> +
    +
    + + + +
    +
    + + +
    + + \ No newline at end of file diff --git a/single.php b/single.php new file mode 100644 index 0000000..f71cb22 --- /dev/null +++ b/single.php @@ -0,0 +1,386 @@ + + + +
    + +
    + +
    + +
    +
    + +

    +
    +
    +
    + + +
    +
    +
    + +
    + + +
    + + + +
    + + + term_id; + } + + $related_query = new WP_Query(array( + 'category__in' => $category_ids, + 'post__not_in' => array(get_the_ID()), + 'posts_per_page' => 3, + 'orderby' => 'rand' + )); + + if ($related_query->have_posts()) : + ?> + + +
    +
    + + + + \ No newline at end of file diff --git a/style.css b/style.css new file mode 100644 index 0000000..104f4e3 --- /dev/null +++ b/style.css @@ -0,0 +1,952 @@ +/* +Theme Name: Europe Wonder +Theme URI: https://europewonder.com +Author: Europe Wonder +Author URI: https://europewonder.com +Description: Custom theme for Europe Wonder travel experiences +Version: 1.0 +License: GNU General Public License v2 or later +License URI: http://www.gnu.org/licenses/gpl-2.0.html +Text Domain: grilctours +*/ + +/* Reset in osnovni stili */ +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +body { + font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; + line-height: 1.6; +} + +/* Spremenljivke za barve */ +:root { + --primary: #edae49; /* Oranžna - glavna barva */ + --secondary: #d1495b; /* Rdeča - sekundarna barva */ + --accent: #00798c; /* Modro-zelena - poudarki */ + --accent-dark: #30638e; /* Temno modra - poudarki temni */ + --dark: #003d5b; /* Najtemnejša modra - temni elementi */ +} + +/* Hero sekcija */ +.hero { + height: 100vh; + background: linear-gradient(to top, + rgba(0, 0, 0, 0.7) 0%, + rgba(0, 0, 0, 0.4) 30%, + rgba(0, 0, 0, 0) 100% + ), url('images/hero.jpg'); + background-size: cover; + background-position: center; + background-repeat: no-repeat; + display: flex; + align-items: center; + justify-content: center; + text-align: center; + padding-top: 60px; +} + +.hero-content { + padding: 2rem; +} + +.hero h1 { + font-size: 4rem; + margin-bottom: 1rem; + color: white; + text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5); +} + +.hero p { + font-size: 1.5rem; + color: white; + text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5); +} + +/* Container */ +.container { + max-width: 1200px; + margin: 0 auto; + padding: 0 1rem; +} + +/* Tours sekcija */ +.tours { + padding: 4rem 0; + background-color: #f9f9f9; +} + +.section-title { + font-size: 2.5rem; + text-align: center; + margin-bottom: 3rem; + color: #333; +} + +.tours-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); + gap: 2rem; +} + +.tour-card { + background: white; + border-radius: 10px; + overflow: hidden; + box-shadow: 0 2px 15px rgba(0, 0, 0, 0.1); + transition: transform 0.3s ease; + border: 1px solid #eee; +} + +.tour-card:hover { + transform: translateY(-5px); +} + +.tour-card .tour-image { + width: 100%; + height: 200px; + position: relative; + overflow: hidden; +} + +.tour-card .tour-image img { + width: 100%; + height: 100%; + object-fit: cover; + transition: transform 0.3s ease; +} + +.tour-card:hover .tour-image img { + transform: scale(1.1); +} + +.tour-content { + padding: 1.5rem; +} + +.tour-content h3 { + font-size: 1.4rem; + margin-bottom: 0.5rem; + color: var(--dark); +} + +.btn-more { + display: inline-block; + padding: 0.5rem 1rem; + background-color: var(--accent); + color: white; + text-decoration: none; + border-radius: 5px; + transition: background-color 0.3s ease; +} + +.btn-more:hover { + background-color: var(--accent-dark); +} + +/* Video sekcija */ +.video-section { + padding: 4rem 0; + background-color: #fff; +} + +/* Header */ +.main-header { + position: fixed; + top: 0; + left: 0; + right: 0; + background-color: rgba(255, 255, 255, 0.95); + box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1); + z-index: 1000; + padding: 0.7rem 0; +} + +.header-content { + display: flex; + justify-content: space-between; + align-items: center; +} + +.logo { + height: 40px; +} + +.logo img { + height: 100%; + width: auto; +} + +.main-nav ul { + display: flex; + list-style: none; + gap: 2rem; +} + +.main-nav a { + color: #333; + text-decoration: none; + font-weight: 500; + transition: color 0.3s ease; +} + +.main-nav a:hover, +.main-nav a.active { + color: var(--accent); +} + +.mobile-menu-toggle { + display: none; +} + +/* Footer */ +.footer { + background-color: var(--dark); + padding: 4rem 0; + color: white; +} + +.footer-content { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 4rem; +} + +.footer-left { + display: flex; + flex-direction: column; + gap: 1.5rem; +} + +.footer-logo { + height: 40px; +} + +.footer-logo img { + height: 100%; + width: auto; + filter: brightness(0) invert(1); +} + +.footer-description { + color: rgba(255, 255, 255, 0.8); + line-height: 1.6; + font-size: 1.1rem; +} + +.footer-right { + display: flex; + flex-direction: column; + justify-content: space-between; +} + +.footer-contact { + display: flex; + flex-direction: column; + gap: 1rem; +} + +.footer-contact a { + color: white; + text-decoration: none; + display: flex; + align-items: center; + gap: 0.8rem; + font-size: 1.1rem; + transition: color 0.3s ease; +} + +.footer-contact a:hover { + color: var(--primary); +} + +.footer-contact i { + width: 20px; + text-align: center; + color: var(--primary); +} + +.book-consultation { + margin-top: 0.5rem; + color: var(--primary) !important; + font-weight: 500; +} + +.book-consultation:hover { + color: white !important; +} + +.footer-links { + margin-top: 2rem; + display: flex; + gap: 2rem; +} + +.footer-links a { + color: rgba(255, 255, 255, 0.8); + text-decoration: none; + font-size: 0.9rem; + transition: color 0.3s ease; +} + +.footer-links a:hover { + color: var(--primary); +} + +/* Responsive design */ +@media (max-width: 768px) { + .hero h1 { + font-size: 3rem; + } + + .hero p { + font-size: 1.2rem; + } + + .section-title { + font-size: 2rem; + } + + .tours-grid { + grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); + gap: 1.5rem; + } + + .footer-content { + grid-template-columns: 1fr; + gap: 3rem; + } + + .footer-right { + gap: 2rem; + } + + .footer-links { + justify-content: center; + } + + .mobile-menu-toggle { + display: block; + background: none; + border: none; + font-size: 1.8rem; + color: var(--dark); + cursor: pointer; + padding: 0.5rem; + z-index: 1001; + } + + .menu-overlay { + display: none; + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: rgba(0, 0, 0, 0.5); + z-index: 999; + } + + .menu-overlay.active { + display: block; + } + + .main-nav { + position: absolute; + top: 100%; + left: 50%; + transform: translateX(-50%); + width: 90%; + max-width: 400px; + background: white; + padding: 1rem; + z-index: 1000; + border-radius: 8px; + box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1); + display: none; + margin-top: 10px; + } + + .mobile-menu-toggle.active ~ .main-nav { + display: block !important; + } + + .main-nav ul { + flex-direction: column; + width: 100%; + margin: 0; + padding: 0; + gap: 0; + } + + .main-nav li { + width: 100%; + text-align: center; + padding: 0.8rem 0; + border-bottom: 1px solid rgba(0, 0, 0, 0.1); + } + + .main-nav li:last-child { + border-bottom: none; + } + + .main-nav a { + display: block; + width: 100%; + padding: 0.5rem 0; + font-size: 1.1rem; + color: var(--dark); + font-weight: 500; + transition: color 0.3s ease; + } + + .main-nav a:hover { + color: var(--accent); + } + + body.menu-open { + overflow: hidden; + } +} + +/* Page Hero */ +.page-hero { + height: 60vh; + background-size: cover; + background-position: center; + background-repeat: no-repeat; + display: flex; + align-items: center; + justify-content: center; + text-align: center; + padding-top: 60px; + margin-bottom: 4rem; +} + +.page-hero .hero-content { + padding: 2rem; +} + +.page-hero h1 { + font-size: 3.5rem; + margin-bottom: 1rem; + color: white; + text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5); +} + +.page-hero p { + font-size: 1.3rem; + color: white; + text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5); + max-width: 800px; + margin: 0 auto; +} + +/* Experience Description */ +.experience-description { + padding: 2rem 0 4rem; +} + +.experience-description .container { + max-width: 800px; + margin: 0 auto; +} + +/* Individual Tours */ +.individual-tours { + padding: 4rem 0; + background-color: #f9f9f9; +} + +.individual-tours h2 { + text-align: center; + margin-bottom: 2rem; + color: #333; + font-size: 2.5rem; +} + +.tours-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); + gap: 2rem; + padding: 1rem; +} + +.tour-card { + background: white; + border-radius: 8px; + overflow: hidden; + box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1); + transition: transform 0.3s ease; +} + +.tour-card:hover { + transform: translateY(-5px); +} + +.tour-card .tour-image { + width: 100%; + height: 200px; + position: relative; + overflow: hidden; +} + +.tour-card .tour-image img { + width: 100%; + height: 100%; + object-fit: cover; + transition: transform 0.3s ease; +} + +.tour-card:hover .tour-image img { + transform: scale(1.1); +} + +.tour-card .tour-info { + padding: 1.5rem; +} + +.tour-card h3 { + margin: 0 0 1rem; + color: #333; + font-size: 1.25rem; +} + +.tour-card p { + color: #666; + margin-bottom: 1rem; + line-height: 1.6; +} + +.tour-details { + display: flex; + justify-content: space-between; + margin-bottom: 1rem; + color: #666; +} + +.tour-details .price { + font-weight: 600; + color: var(--accent); +} + +.btn-view { + display: block; + width: 100%; + padding: 0.8rem; + background-color: var(--dark); + color: white; + text-align: center; + text-decoration: none; + border-radius: 5px; + transition: background-color 0.3s ease; +} + +.btn-view:hover { + background-color: var(--accent); +} + +.no-tours { + text-align: center; + color: #666; + font-size: 1.1rem; + padding: 2rem; +} + +/* Responsive design */ +@media (max-width: 768px) { + .individual-tours h2 { + font-size: 2rem; + } + + .tours-grid { + grid-template-columns: 1fr; + padding: 0.5rem; + } + + .tour-card h3 { + font-size: 1.2rem; + } +} + +/* Tour Hero */ +.tour-hero { + position: relative; + height: 60vh; + overflow: hidden; +} + +.tour-hero img { + width: 100%; + height: 100%; + object-fit: cover; +} + +.tour-hero-overlay { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: linear-gradient(to bottom, + rgba(0, 0, 0, 0.4) 0%, + rgba(0, 0, 0, 0.6) 100% + ); + display: flex; + align-items: center; + justify-content: center; + text-align: center; + color: white; + padding: 2rem; +} + +.tour-hero-content h1 { + font-size: 3rem; + margin-bottom: 1.5rem; + text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5); +} + +.tour-hero-meta { + display: flex; + justify-content: center; + gap: 2rem; + align-items: center; + font-size: 1.2rem; +} + +.tour-price { + font-size: 1.5rem; + font-weight: bold; +} + +.tour-duration i, +.tour-location i { + margin-right: 0.5rem; +} + +/* Tour Content */ +.tour-content-wrapper { + display: grid; + grid-template-columns: 2fr 1fr; + gap: 2rem; + max-width: 1200px; + margin: 0 auto; + padding: 2rem 1rem; +} + +.tour-info h2 { + font-size: 1.8rem; + color: #333; + margin: 2rem 0 1rem; +} + +.tour-description { + margin-bottom: 3rem; +} + +.tour-description p { + color: #666; + line-height: 1.8; +} + +/* Daily Program */ +.tour-daily-program { + margin-bottom: 3rem; +} + +.day-header { + display: flex; + align-items: center; + gap: 1rem; + margin-bottom: 0.5rem; +} + +.day-number { + width: 2rem; + height: 2rem; + background-color: var(--accent); + color: white; + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + font-weight: bold; +} + +.day-header h3 { + margin: 0; + color: #333; + font-size: 1.1rem; +} + +.program-day { + margin-bottom: 1.5rem; +} + +.program-day p { + margin-left: 3rem; + color: #666; +} + +/* Included/Not Included Lists */ +.included-list, +.not-included-list { + display: grid; + gap: 1rem; +} + +.included-item, +.not-included-item { + display: flex; + align-items: center; + gap: 1rem; +} + +.included-item i { + color: #22c55e; +} + +.not-included-item i { + color: #ef4444; +} + +/* Booking Form */ +.booking-form { + background: white; + padding: 2rem; + border-radius: 10px; + box-shadow: 0 2px 15px rgba(0, 0, 0, 0.1); + position: sticky; + top: 2rem; +} + +.booking-form h3 { + font-size: 1.5rem; + color: #333; + margin-bottom: 1.5rem; +} + +.form-group { + margin-bottom: 1.5rem; +} + +.form-group label { + display: block; + margin-bottom: 0.5rem; + color: #333; +} + +.form-group input { + width: 100%; + padding: 0.8rem; + border: 1px solid #ddd; + border-radius: 5px; + font-size: 1rem; +} + +.form-group input:focus { + border-color: var(--accent); + outline: none; + box-shadow: 0 0 0 2px rgba(0, 121, 140, 0.2); +} + +.total-price { + font-size: 1.5rem; + font-weight: bold; + color: var(--accent); + display: flex; + align-items: center; + gap: 0.5rem; +} + +.btn-book { + width: 100%; + padding: 1rem; + background-color: var(--accent); + color: white; + border: none; + border-radius: 5px; + font-size: 1rem; + cursor: pointer; + transition: background-color 0.3s ease; +} + +.btn-book:hover { + background-color: var(--accent-dark); +} + +@media (max-width: 768px) { + .tour-hero-content h1 { + font-size: 2rem; + } + + .tour-hero-meta { + flex-direction: column; + gap: 1rem; + } + + .tour-content-wrapper { + grid-template-columns: 1fr; + } + + .booking-form { + position: static; + margin-top: 2rem; + } +} + +/* Tour Extras Section */ +.tour-extras { + margin: 3rem 0; + padding: 2.5rem; + background-color: #f8f9fa; + border-radius: 12px; + box-shadow: 0 2px 15px rgba(0, 0, 0, 0.05); + max-width: 800px; + margin-left: auto; + margin-right: auto; +} + +.tour-extras h2 { + color: var(--dark); + margin-bottom: 2rem; + text-align: center; + font-size: 1.8rem; + position: relative; + padding-bottom: 1rem; +} + +.tour-extras h2:after { + content: ''; + position: absolute; + bottom: 0; + left: 50%; + transform: translateX(-50%); + width: 60px; + height: 3px; + background-color: var(--accent); + border-radius: 2px; +} + +.extras-list { + display: flex; + flex-direction: column; + gap: 1rem; + padding: 1rem; + max-width: 700px; + margin: 0 auto; +} + +.extra-item { + background: white; + padding: 1.2rem 1.5rem; + border-radius: 10px; + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04); + display: flex; + align-items: center; + gap: 1.2rem; + transition: transform 0.3s ease, box-shadow 0.3s ease; + width: 100%; +} + +.extra-item:hover { + transform: translateY(-2px); + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08); +} + +.extra-item i { + color: #9b59b6; + font-size: 1.4rem; + background: rgba(155, 89, 182, 0.1); + width: 40px; + height: 40px; + display: flex; + align-items: center; + justify-content: center; + border-radius: 50%; + flex-shrink: 0; +} + +.extra-item span { + color: #2c3e50; + line-height: 1.6; + font-size: 1.1rem; + flex-grow: 1; +} + +@media (max-width: 768px) { + .tour-extras { + padding: 1.5rem; + margin: 2rem 0; + } + + .extras-list { + padding: 0.5rem; + } + + .extra-item { + padding: 1rem; + gap: 1rem; + flex-direction: column; + text-align: center; + } + + .extra-item i { + width: 35px; + height: 35px; + font-size: 1.2rem; + margin: 0 auto; + } +} + +/* Floating Inquiry Button */ +.floating-inquiry-btn { + position: fixed; + bottom: 30px; + right: 30px; + background-color: var(--accent); + color: white; + padding: 15px 20px; + border-radius: 50px; + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); + cursor: pointer; + font-weight: 600; + z-index: 999; + display: flex; + align-items: center; + gap: 8px; + transition: all 0.3s ease; + text-decoration: none; +} + +.floating-inquiry-btn:hover { + background-color: var(--accent-dark); + transform: translateY(-3px); + box-shadow: 0 6px 15px rgba(0, 0, 0, 0.2); + color: white; + text-decoration: none; +} + +.floating-inquiry-btn:visited { + color: white; +} + +.floating-inquiry-btn i { + font-size: 1.2rem; +} + +@media (max-width: 768px) { + .floating-inquiry-btn { + bottom: 20px; + right: 20px; + padding: 12px 16px; + font-size: 0.9rem; + } + + .floating-inquiry-btn i { + font-size: 1rem; + } +} \ No newline at end of file diff --git a/template-inquiry.php b/template-inquiry.php new file mode 100644 index 0000000..1e8efeb --- /dev/null +++ b/template-inquiry.php @@ -0,0 +1,75 @@ + + +
    +
    +

    +

    Tell us your wishes and we will create a custom tour for you

    + +
    + +
    +
    +
    + + + + \ No newline at end of file diff --git a/test.php b/test.php new file mode 100644 index 0000000..e69de29 diff --git a/tour-meta-fields.php b/tour-meta-fields.php new file mode 100644 index 0000000..d04c75d --- /dev/null +++ b/tour-meta-fields.php @@ -0,0 +1,943 @@ +ID, '_tour_price', true); + $duration = get_post_meta($post->ID, '_tour_duration', true); + $location = get_post_meta($post->ID, '_tour_location', true); + $experience_journey = get_post_meta($post->ID, '_experience_journey', true); + $daily_program = get_post_meta($post->ID, '_daily_program', true); + $included_items = get_post_meta($post->ID, '_included_items', true); + $not_included_items = get_post_meta($post->ID, '_not_included_items', true); + $available_extras = get_post_meta($post->ID, '_available_extras', true); + $day_type_label = get_post_meta($post->ID, '_day_type_label', true); + $hero_image = get_post_meta($post->ID, '_hero_image', true); + $guide_image = get_post_meta($post->ID, '_guide_image', true); + $guide_name = get_post_meta($post->ID, '_guide_name', true); + $guide_title = get_post_meta($post->ID, '_guide_title', true); + + if (!is_array($daily_program)) $daily_program = array(); + if (!is_array($included_items)) $included_items = array(); + if (!is_array($not_included_items)) $not_included_items = array(); + if (!is_array($available_extras)) $available_extras = array(); + if (empty($day_type_label)) $day_type_label = 'Day'; + + wp_nonce_field('individual_tour_nonce', 'individual_tour_nonce'); + ?> +
    + + + +

    Basic Information

    +
    + + +
    + +
    + + +
    + +
    + + +
    + +
    + + +

    Select which Experience Journey this tour belongs to.

    +
    + + +

    Hero Image

    +
    +
    + + +
    + + + +
    +
    + + + + +
    +

    + Recommended size: 1920x1080px. This image will be displayed at the top of your tour page. +

    +
    +
    + + +

    Tour Gallery

    +
    + +
    + + +

    Daily Program

    +
    + + +

    This label will be displayed before each day number (e.g. " 1", " 2", etc.)

    + +
    + $day) : ?> +
    + + + +
    + +
    + +
    + + +

    Included in Price

    +
    +
    + $item) : ?> +
    + + +
    + +
    + +
    + + +

    Not Included in Price

    +
    +
    + $item) : ?> +
    + + +
    + +
    + +
    + + +

    Available Extras

    +
    +
    + $extra) : ?> +
    + + + + +
    + +
    + +

    + Check "Per day per person" for extras where the price should be multiplied by both the number of days and participants (e.g. bike rental at €20/day/person for an 8-day tour with 3 participants would cost €480). +

    +
    + + +

    Guide Information

    +
    +
    +
    + + Guide + +
    + + + +
    + +
    + + + + + +
    +
    + + +

    FAQ - Frequently Asked Questions

    +
    +
    + ID, '_tour_faqs', true); + if (!is_array($faqs)) $faqs = array(); + foreach ($faqs as $index => $faq) : + ?> +
    + + + +
    + +
    + +
    +
    + + + 'sanitize_text_field', + 'tour_duration' => 'sanitize_text_field', + 'tour_location' => 'sanitize_text_field', + 'experience_journey' => 'absint', + 'hero_image' => 'absint', + 'guide_image' => 'absint', + 'guide_name' => 'sanitize_text_field', + 'guide_title' => 'sanitize_text_field', + 'day_type_label' => 'sanitize_text_field' + ); + + // Debug izpis za administratorje + if (current_user_can('administrator')) { + error_log('Saving tour meta data:'); + error_log('POST data: ' . print_r($_POST, true)); + } + + foreach ($fields as $field => $sanitize_callback) { + if (isset($_POST[$field])) { + $value = call_user_func($sanitize_callback, $_POST[$field]); + update_post_meta($post_id, '_' . $field, $value); + + // Debug izpis za administratorje + if (current_user_can('administrator')) { + error_log("Saving field {$field} with value: {$value}"); + } + } + } + + // Shrani galerijo + if (isset($_POST['tour_gallery'])) { + $gallery_images = array_filter(explode(',', sanitize_text_field($_POST['tour_gallery']))); + update_post_meta($post_id, '_tour_gallery', $gallery_images); + } + + // Shrani dnevni program + if (isset($_POST['daily_program'])) { + $daily_program = array(); + foreach ($_POST['daily_program'] as $index => $day) { + if (!empty($day['title']) || !empty($day['description'])) { + $daily_program[] = array( + 'title' => sanitize_text_field($day['title']), + 'description' => wp_kses_post($day['description']) + ); + } + } + update_post_meta($post_id, '_daily_program', $daily_program); + } + + // Shrani vključene elemente + if (isset($_POST['included_items'])) { + $included_items = array_filter(array_map('sanitize_text_field', $_POST['included_items'])); + update_post_meta($post_id, '_included_items', $included_items); + } + + // Shrani nevključene elemente + if (isset($_POST['not_included_items'])) { + $not_included_items = array_filter(array_map('sanitize_text_field', $_POST['not_included_items'])); + update_post_meta($post_id, '_not_included_items', $not_included_items); + } + + // Shrani available extras + if (isset($_POST['available_extras'])) { + $available_extras = array(); + foreach ($_POST['available_extras'] as $extra) { + if (!empty($extra['name'])) { + $available_extras[] = array( + 'name' => sanitize_text_field($extra['name']), + 'price' => floatval($extra['price']), + 'per_day_per_person' => isset($extra['per_day_per_person']) ? true : false + ); + } + } + update_post_meta($post_id, '_available_extras', $available_extras); + } + + // Shrani FAQ vprašanja in odgovore + if (isset($_POST['tour_faqs'])) { + $faqs = array(); + foreach ($_POST['tour_faqs'] as $faq) { + if (!empty($faq['question']) || !empty($faq['answer'])) { + $faqs[] = array( + 'question' => sanitize_text_field($faq['question']), + 'answer' => wp_kses_post($faq['answer']) + ); + } + } + update_post_meta($post_id, '_tour_faqs', $faqs); + } +} +add_action('save_post_individual_tour', 'save_individual_tour_meta'); + +// Dodaj podporo za naslovno sliko +add_theme_support('post-thumbnails'); + +// Registriraj meta polja za REST API +function register_tour_meta_fields() { + // Registracija meta polj za Individual Tour + register_post_meta('individual_tour', '_daily_program', array( + 'type' => 'array', + 'single' => true, + 'show_in_rest' => array( + 'schema' => array( + 'type' => 'array', + 'items' => array( + 'type' => 'object', + 'properties' => array( + 'title' => array('type' => 'string'), + 'description' => array('type' => 'string') + ) + ) + ) + ) + )); + + register_post_meta('individual_tour', '_included_items', array( + 'type' => 'array', + 'single' => true, + 'show_in_rest' => array( + 'schema' => array( + 'type' => 'array', + 'items' => array('type' => 'string') + ) + ) + )); + + register_post_meta('individual_tour', '_not_included_items', array( + 'type' => 'array', + 'single' => true, + 'show_in_rest' => array( + 'schema' => array( + 'type' => 'array', + 'items' => array('type' => 'string') + ) + ) + )); + + register_post_meta('individual_tour', '_available_extras', array( + 'type' => 'array', + 'single' => true, + 'show_in_rest' => array( + 'schema' => array( + 'type' => 'array', + 'items' => array( + 'type' => 'object', + 'properties' => array( + 'title' => array('type' => 'string'), + 'price' => array('type' => 'number') + ) + ) + ) + ) + )); + + // Registracija ostalih meta polj + register_post_meta('individual_tour', '_tour_price', array( + 'type' => 'number', + 'single' => true, + 'show_in_rest' => true + )); + + register_post_meta('individual_tour', '_tour_duration', array( + 'type' => 'number', + 'single' => true, + 'show_in_rest' => true + )); + + register_post_meta('individual_tour', '_tour_location', array( + 'type' => 'string', + 'single' => true, + 'show_in_rest' => true + )); + + register_post_meta('individual_tour', '_experience_journey', array( + 'type' => 'number', + 'single' => true, + 'show_in_rest' => true + )); + + register_post_meta('individual_tour', '_hero_image', array( + 'type' => 'number', + 'single' => true, + 'show_in_rest' => true + )); + + register_post_meta('individual_tour', '_tour_gallery', array( + 'type' => 'array', + 'single' => true, + 'show_in_rest' => array( + 'schema' => array( + 'type' => 'array', + 'items' => array('type' => 'number') + ) + ) + )); + + register_post_meta('individual_tour', '_tour_faqs', array( + 'type' => 'array', + 'single' => true, + 'show_in_rest' => array( + 'schema' => array( + 'type' => 'array', + 'items' => array( + 'type' => 'object', + 'properties' => array( + 'question' => array('type' => 'string'), + 'answer' => array('type' => 'string') + ) + ) + ) + ) + )); +} +add_action('init', 'register_tour_meta_fields'); \ No newline at end of file diff --git a/vendor/autoload.php b/vendor/autoload.php new file mode 100644 index 0000000..ba75092 --- /dev/null +++ b/vendor/autoload.php @@ -0,0 +1,25 @@ + + * Jordi Boggiano + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Composer\Autoload; + +/** + * ClassLoader implements a PSR-0, PSR-4 and classmap class loader. + * + * $loader = new \Composer\Autoload\ClassLoader(); + * + * // register classes with namespaces + * $loader->add('Symfony\Component', __DIR__.'/component'); + * $loader->add('Symfony', __DIR__.'/framework'); + * + * // activate the autoloader + * $loader->register(); + * + * // to enable searching the include path (eg. for PEAR packages) + * $loader->setUseIncludePath(true); + * + * In this example, if you try to use a class in the Symfony\Component + * namespace or one of its children (Symfony\Component\Console for instance), + * the autoloader will first look for the class under the component/ + * directory, and it will then fallback to the framework/ directory if not + * found before giving up. + * + * This class is loosely based on the Symfony UniversalClassLoader. + * + * @author Fabien Potencier + * @author Jordi Boggiano + * @see https://www.php-fig.org/psr/psr-0/ + * @see https://www.php-fig.org/psr/psr-4/ + */ +class ClassLoader +{ + /** @var \Closure(string):void */ + private static $includeFile; + + /** @var string|null */ + private $vendorDir; + + // PSR-4 + /** + * @var array> + */ + private $prefixLengthsPsr4 = array(); + /** + * @var array> + */ + private $prefixDirsPsr4 = array(); + /** + * @var list + */ + private $fallbackDirsPsr4 = array(); + + // PSR-0 + /** + * List of PSR-0 prefixes + * + * Structured as array('F (first letter)' => array('Foo\Bar (full prefix)' => array('path', 'path2'))) + * + * @var array>> + */ + private $prefixesPsr0 = array(); + /** + * @var list + */ + private $fallbackDirsPsr0 = array(); + + /** @var bool */ + private $useIncludePath = false; + + /** + * @var array + */ + private $classMap = array(); + + /** @var bool */ + private $classMapAuthoritative = false; + + /** + * @var array + */ + private $missingClasses = array(); + + /** @var string|null */ + private $apcuPrefix; + + /** + * @var array + */ + private static $registeredLoaders = array(); + + /** + * @param string|null $vendorDir + */ + public function __construct($vendorDir = null) + { + $this->vendorDir = $vendorDir; + self::initializeIncludeClosure(); + } + + /** + * @return array> + */ + public function getPrefixes() + { + if (!empty($this->prefixesPsr0)) { + return call_user_func_array('array_merge', array_values($this->prefixesPsr0)); + } + + return array(); + } + + /** + * @return array> + */ + public function getPrefixesPsr4() + { + return $this->prefixDirsPsr4; + } + + /** + * @return list + */ + public function getFallbackDirs() + { + return $this->fallbackDirsPsr0; + } + + /** + * @return list + */ + public function getFallbackDirsPsr4() + { + return $this->fallbackDirsPsr4; + } + + /** + * @return array Array of classname => path + */ + public function getClassMap() + { + return $this->classMap; + } + + /** + * @param array $classMap Class to filename map + * + * @return void + */ + public function addClassMap(array $classMap) + { + if ($this->classMap) { + $this->classMap = array_merge($this->classMap, $classMap); + } else { + $this->classMap = $classMap; + } + } + + /** + * Registers a set of PSR-0 directories for a given prefix, either + * appending or prepending to the ones previously set for this prefix. + * + * @param string $prefix The prefix + * @param list|string $paths The PSR-0 root directories + * @param bool $prepend Whether to prepend the directories + * + * @return void + */ + public function add($prefix, $paths, $prepend = false) + { + $paths = (array) $paths; + if (!$prefix) { + if ($prepend) { + $this->fallbackDirsPsr0 = array_merge( + $paths, + $this->fallbackDirsPsr0 + ); + } else { + $this->fallbackDirsPsr0 = array_merge( + $this->fallbackDirsPsr0, + $paths + ); + } + + return; + } + + $first = $prefix[0]; + if (!isset($this->prefixesPsr0[$first][$prefix])) { + $this->prefixesPsr0[$first][$prefix] = $paths; + + return; + } + if ($prepend) { + $this->prefixesPsr0[$first][$prefix] = array_merge( + $paths, + $this->prefixesPsr0[$first][$prefix] + ); + } else { + $this->prefixesPsr0[$first][$prefix] = array_merge( + $this->prefixesPsr0[$first][$prefix], + $paths + ); + } + } + + /** + * Registers a set of PSR-4 directories for a given namespace, either + * appending or prepending to the ones previously set for this namespace. + * + * @param string $prefix The prefix/namespace, with trailing '\\' + * @param list|string $paths The PSR-4 base directories + * @param bool $prepend Whether to prepend the directories + * + * @throws \InvalidArgumentException + * + * @return void + */ + public function addPsr4($prefix, $paths, $prepend = false) + { + $paths = (array) $paths; + if (!$prefix) { + // Register directories for the root namespace. + if ($prepend) { + $this->fallbackDirsPsr4 = array_merge( + $paths, + $this->fallbackDirsPsr4 + ); + } else { + $this->fallbackDirsPsr4 = array_merge( + $this->fallbackDirsPsr4, + $paths + ); + } + } elseif (!isset($this->prefixDirsPsr4[$prefix])) { + // Register directories for a new namespace. + $length = strlen($prefix); + if ('\\' !== $prefix[$length - 1]) { + throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator."); + } + $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length; + $this->prefixDirsPsr4[$prefix] = $paths; + } elseif ($prepend) { + // Prepend directories for an already registered namespace. + $this->prefixDirsPsr4[$prefix] = array_merge( + $paths, + $this->prefixDirsPsr4[$prefix] + ); + } else { + // Append directories for an already registered namespace. + $this->prefixDirsPsr4[$prefix] = array_merge( + $this->prefixDirsPsr4[$prefix], + $paths + ); + } + } + + /** + * Registers a set of PSR-0 directories for a given prefix, + * replacing any others previously set for this prefix. + * + * @param string $prefix The prefix + * @param list|string $paths The PSR-0 base directories + * + * @return void + */ + public function set($prefix, $paths) + { + if (!$prefix) { + $this->fallbackDirsPsr0 = (array) $paths; + } else { + $this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths; + } + } + + /** + * Registers a set of PSR-4 directories for a given namespace, + * replacing any others previously set for this namespace. + * + * @param string $prefix The prefix/namespace, with trailing '\\' + * @param list|string $paths The PSR-4 base directories + * + * @throws \InvalidArgumentException + * + * @return void + */ + public function setPsr4($prefix, $paths) + { + if (!$prefix) { + $this->fallbackDirsPsr4 = (array) $paths; + } else { + $length = strlen($prefix); + if ('\\' !== $prefix[$length - 1]) { + throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator."); + } + $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length; + $this->prefixDirsPsr4[$prefix] = (array) $paths; + } + } + + /** + * Turns on searching the include path for class files. + * + * @param bool $useIncludePath + * + * @return void + */ + public function setUseIncludePath($useIncludePath) + { + $this->useIncludePath = $useIncludePath; + } + + /** + * Can be used to check if the autoloader uses the include path to check + * for classes. + * + * @return bool + */ + public function getUseIncludePath() + { + return $this->useIncludePath; + } + + /** + * Turns off searching the prefix and fallback directories for classes + * that have not been registered with the class map. + * + * @param bool $classMapAuthoritative + * + * @return void + */ + public function setClassMapAuthoritative($classMapAuthoritative) + { + $this->classMapAuthoritative = $classMapAuthoritative; + } + + /** + * Should class lookup fail if not found in the current class map? + * + * @return bool + */ + public function isClassMapAuthoritative() + { + return $this->classMapAuthoritative; + } + + /** + * APCu prefix to use to cache found/not-found classes, if the extension is enabled. + * + * @param string|null $apcuPrefix + * + * @return void + */ + public function setApcuPrefix($apcuPrefix) + { + $this->apcuPrefix = function_exists('apcu_fetch') && filter_var(ini_get('apc.enabled'), FILTER_VALIDATE_BOOLEAN) ? $apcuPrefix : null; + } + + /** + * The APCu prefix in use, or null if APCu caching is not enabled. + * + * @return string|null + */ + public function getApcuPrefix() + { + return $this->apcuPrefix; + } + + /** + * Registers this instance as an autoloader. + * + * @param bool $prepend Whether to prepend the autoloader or not + * + * @return void + */ + public function register($prepend = false) + { + spl_autoload_register(array($this, 'loadClass'), true, $prepend); + + if (null === $this->vendorDir) { + return; + } + + if ($prepend) { + self::$registeredLoaders = array($this->vendorDir => $this) + self::$registeredLoaders; + } else { + unset(self::$registeredLoaders[$this->vendorDir]); + self::$registeredLoaders[$this->vendorDir] = $this; + } + } + + /** + * Unregisters this instance as an autoloader. + * + * @return void + */ + public function unregister() + { + spl_autoload_unregister(array($this, 'loadClass')); + + if (null !== $this->vendorDir) { + unset(self::$registeredLoaders[$this->vendorDir]); + } + } + + /** + * Loads the given class or interface. + * + * @param string $class The name of the class + * @return true|null True if loaded, null otherwise + */ + public function loadClass($class) + { + if ($file = $this->findFile($class)) { + $includeFile = self::$includeFile; + $includeFile($file); + + return true; + } + + return null; + } + + /** + * Finds the path to the file where the class is defined. + * + * @param string $class The name of the class + * + * @return string|false The path if found, false otherwise + */ + public function findFile($class) + { + // class map lookup + if (isset($this->classMap[$class])) { + return $this->classMap[$class]; + } + if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) { + return false; + } + if (null !== $this->apcuPrefix) { + $file = apcu_fetch($this->apcuPrefix.$class, $hit); + if ($hit) { + return $file; + } + } + + $file = $this->findFileWithExtension($class, '.php'); + + // Search for Hack files if we are running on HHVM + if (false === $file && defined('HHVM_VERSION')) { + $file = $this->findFileWithExtension($class, '.hh'); + } + + if (null !== $this->apcuPrefix) { + apcu_add($this->apcuPrefix.$class, $file); + } + + if (false === $file) { + // Remember that this class does not exist. + $this->missingClasses[$class] = true; + } + + return $file; + } + + /** + * Returns the currently registered loaders keyed by their corresponding vendor directories. + * + * @return array + */ + public static function getRegisteredLoaders() + { + return self::$registeredLoaders; + } + + /** + * @param string $class + * @param string $ext + * @return string|false + */ + private function findFileWithExtension($class, $ext) + { + // PSR-4 lookup + $logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext; + + $first = $class[0]; + if (isset($this->prefixLengthsPsr4[$first])) { + $subPath = $class; + while (false !== $lastPos = strrpos($subPath, '\\')) { + $subPath = substr($subPath, 0, $lastPos); + $search = $subPath . '\\'; + if (isset($this->prefixDirsPsr4[$search])) { + $pathEnd = DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $lastPos + 1); + foreach ($this->prefixDirsPsr4[$search] as $dir) { + if (file_exists($file = $dir . $pathEnd)) { + return $file; + } + } + } + } + } + + // PSR-4 fallback dirs + foreach ($this->fallbackDirsPsr4 as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) { + return $file; + } + } + + // PSR-0 lookup + if (false !== $pos = strrpos($class, '\\')) { + // namespaced class name + $logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1) + . strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR); + } else { + // PEAR-like class name + $logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext; + } + + if (isset($this->prefixesPsr0[$first])) { + foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) { + if (0 === strpos($class, $prefix)) { + foreach ($dirs as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { + return $file; + } + } + } + } + } + + // PSR-0 fallback dirs + foreach ($this->fallbackDirsPsr0 as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { + return $file; + } + } + + // PSR-0 include paths. + if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) { + return $file; + } + + return false; + } + + /** + * @return void + */ + private static function initializeIncludeClosure() + { + if (self::$includeFile !== null) { + return; + } + + /** + * Scope isolated include. + * + * Prevents access to $this/self from included files. + * + * @param string $file + * @return void + */ + self::$includeFile = \Closure::bind(static function($file) { + include $file; + }, null, null); + } +} diff --git a/vendor/composer/InstalledVersions.php b/vendor/composer/InstalledVersions.php new file mode 100644 index 0000000..6d29bff --- /dev/null +++ b/vendor/composer/InstalledVersions.php @@ -0,0 +1,378 @@ + + * Jordi Boggiano + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Composer; + +use Composer\Autoload\ClassLoader; +use Composer\Semver\VersionParser; + +/** + * This class is copied in every Composer installed project and available to all + * + * See also https://getcomposer.org/doc/07-runtime.md#installed-versions + * + * To require its presence, you can require `composer-runtime-api ^2.0` + * + * @final + */ +class InstalledVersions +{ + /** + * @var mixed[]|null + * @psalm-var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array}|array{}|null + */ + private static $installed; + + /** + * @var bool + */ + private static $installedIsLocalDir; + + /** + * @var bool|null + */ + private static $canGetVendors; + + /** + * @var array[] + * @psalm-var array}> + */ + private static $installedByVendor = array(); + + /** + * Returns a list of all package names which are present, either by being installed, replaced or provided + * + * @return string[] + * @psalm-return list + */ + public static function getInstalledPackages() + { + $packages = array(); + foreach (self::getInstalled() as $installed) { + $packages[] = array_keys($installed['versions']); + } + + if (1 === \count($packages)) { + return $packages[0]; + } + + return array_keys(array_flip(\call_user_func_array('array_merge', $packages))); + } + + /** + * Returns a list of all package names with a specific type e.g. 'library' + * + * @param string $type + * @return string[] + * @psalm-return list + */ + public static function getInstalledPackagesByType($type) + { + $packagesByType = array(); + + foreach (self::getInstalled() as $installed) { + foreach ($installed['versions'] as $name => $package) { + if (isset($package['type']) && $package['type'] === $type) { + $packagesByType[] = $name; + } + } + } + + return $packagesByType; + } + + /** + * Checks whether the given package is installed + * + * This also returns true if the package name is provided or replaced by another package + * + * @param string $packageName + * @param bool $includeDevRequirements + * @return bool + */ + public static function isInstalled($packageName, $includeDevRequirements = true) + { + foreach (self::getInstalled() as $installed) { + if (isset($installed['versions'][$packageName])) { + return $includeDevRequirements || !isset($installed['versions'][$packageName]['dev_requirement']) || $installed['versions'][$packageName]['dev_requirement'] === false; + } + } + + return false; + } + + /** + * Checks whether the given package satisfies a version constraint + * + * e.g. If you want to know whether version 2.3+ of package foo/bar is installed, you would call: + * + * Composer\InstalledVersions::satisfies(new VersionParser, 'foo/bar', '^2.3') + * + * @param VersionParser $parser Install composer/semver to have access to this class and functionality + * @param string $packageName + * @param string|null $constraint A version constraint to check for, if you pass one you have to make sure composer/semver is required by your package + * @return bool + */ + public static function satisfies(VersionParser $parser, $packageName, $constraint) + { + $constraint = $parser->parseConstraints((string) $constraint); + $provided = $parser->parseConstraints(self::getVersionRanges($packageName)); + + return $provided->matches($constraint); + } + + /** + * Returns a version constraint representing all the range(s) which are installed for a given package + * + * It is easier to use this via isInstalled() with the $constraint argument if you need to check + * whether a given version of a package is installed, and not just whether it exists + * + * @param string $packageName + * @return string Version constraint usable with composer/semver + */ + public static function getVersionRanges($packageName) + { + foreach (self::getInstalled() as $installed) { + if (!isset($installed['versions'][$packageName])) { + continue; + } + + $ranges = array(); + if (isset($installed['versions'][$packageName]['pretty_version'])) { + $ranges[] = $installed['versions'][$packageName]['pretty_version']; + } + if (array_key_exists('aliases', $installed['versions'][$packageName])) { + $ranges = array_merge($ranges, $installed['versions'][$packageName]['aliases']); + } + if (array_key_exists('replaced', $installed['versions'][$packageName])) { + $ranges = array_merge($ranges, $installed['versions'][$packageName]['replaced']); + } + if (array_key_exists('provided', $installed['versions'][$packageName])) { + $ranges = array_merge($ranges, $installed['versions'][$packageName]['provided']); + } + + return implode(' || ', $ranges); + } + + throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); + } + + /** + * @param string $packageName + * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present + */ + public static function getVersion($packageName) + { + foreach (self::getInstalled() as $installed) { + if (!isset($installed['versions'][$packageName])) { + continue; + } + + if (!isset($installed['versions'][$packageName]['version'])) { + return null; + } + + return $installed['versions'][$packageName]['version']; + } + + throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); + } + + /** + * @param string $packageName + * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present + */ + public static function getPrettyVersion($packageName) + { + foreach (self::getInstalled() as $installed) { + if (!isset($installed['versions'][$packageName])) { + continue; + } + + if (!isset($installed['versions'][$packageName]['pretty_version'])) { + return null; + } + + return $installed['versions'][$packageName]['pretty_version']; + } + + throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); + } + + /** + * @param string $packageName + * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as reference + */ + public static function getReference($packageName) + { + foreach (self::getInstalled() as $installed) { + if (!isset($installed['versions'][$packageName])) { + continue; + } + + if (!isset($installed['versions'][$packageName]['reference'])) { + return null; + } + + return $installed['versions'][$packageName]['reference']; + } + + throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); + } + + /** + * @param string $packageName + * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as install path. Packages of type metapackages also have a null install path. + */ + public static function getInstallPath($packageName) + { + foreach (self::getInstalled() as $installed) { + if (!isset($installed['versions'][$packageName])) { + continue; + } + + return isset($installed['versions'][$packageName]['install_path']) ? $installed['versions'][$packageName]['install_path'] : null; + } + + throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); + } + + /** + * @return array + * @psalm-return array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool} + */ + public static function getRootPackage() + { + $installed = self::getInstalled(); + + return $installed[0]['root']; + } + + /** + * Returns the raw installed.php data for custom implementations + * + * @deprecated Use getAllRawData() instead which returns all datasets for all autoloaders present in the process. getRawData only returns the first dataset loaded, which may not be what you expect. + * @return array[] + * @psalm-return array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array} + */ + public static function getRawData() + { + @trigger_error('getRawData only returns the first dataset loaded, which may not be what you expect. Use getAllRawData() instead which returns all datasets for all autoloaders present in the process.', E_USER_DEPRECATED); + + if (null === self::$installed) { + // only require the installed.php file if this file is loaded from its dumped location, + // and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937 + if (substr(__DIR__, -8, 1) !== 'C') { + self::$installed = include __DIR__ . '/installed.php'; + } else { + self::$installed = array(); + } + } + + return self::$installed; + } + + /** + * Returns the raw data of all installed.php which are currently loaded for custom implementations + * + * @return array[] + * @psalm-return list}> + */ + public static function getAllRawData() + { + return self::getInstalled(); + } + + /** + * Lets you reload the static array from another file + * + * This is only useful for complex integrations in which a project needs to use + * this class but then also needs to execute another project's autoloader in process, + * and wants to ensure both projects have access to their version of installed.php. + * + * A typical case would be PHPUnit, where it would need to make sure it reads all + * the data it needs from this class, then call reload() with + * `require $CWD/vendor/composer/installed.php` (or similar) as input to make sure + * the project in which it runs can then also use this class safely, without + * interference between PHPUnit's dependencies and the project's dependencies. + * + * @param array[] $data A vendor/composer/installed.php data set + * @return void + * + * @psalm-param array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array} $data + */ + public static function reload($data) + { + self::$installed = $data; + self::$installedByVendor = array(); + + // when using reload, we disable the duplicate protection to ensure that self::$installed data is + // always returned, but we cannot know whether it comes from the installed.php in __DIR__ or not, + // so we have to assume it does not, and that may result in duplicate data being returned when listing + // all installed packages for example + self::$installedIsLocalDir = false; + } + + /** + * @return array[] + * @psalm-return list}> + */ + private static function getInstalled() + { + if (null === self::$canGetVendors) { + self::$canGetVendors = method_exists('Composer\Autoload\ClassLoader', 'getRegisteredLoaders'); + } + + $installed = array(); + $copiedLocalDir = false; + + if (self::$canGetVendors) { + $selfDir = strtr(__DIR__, '\\', '/'); + foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) { + $vendorDir = strtr($vendorDir, '\\', '/'); + if (isset(self::$installedByVendor[$vendorDir])) { + $installed[] = self::$installedByVendor[$vendorDir]; + } elseif (is_file($vendorDir.'/composer/installed.php')) { + /** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array} $required */ + $required = require $vendorDir.'/composer/installed.php'; + self::$installedByVendor[$vendorDir] = $required; + $installed[] = $required; + if (self::$installed === null && $vendorDir.'/composer' === $selfDir) { + self::$installed = $required; + self::$installedIsLocalDir = true; + } + } + if (self::$installedIsLocalDir && $vendorDir.'/composer' === $selfDir) { + $copiedLocalDir = true; + } + } + } + + if (null === self::$installed) { + // only require the installed.php file if this file is loaded from its dumped location, + // and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937 + if (substr(__DIR__, -8, 1) !== 'C') { + /** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array} $required */ + $required = require __DIR__ . '/installed.php'; + self::$installed = $required; + } else { + self::$installed = array(); + } + } + + if (self::$installed !== array() && !$copiedLocalDir) { + $installed[] = self::$installed; + } + + return $installed; + } +} diff --git a/vendor/composer/LICENSE b/vendor/composer/LICENSE new file mode 100644 index 0000000..f27399a --- /dev/null +++ b/vendor/composer/LICENSE @@ -0,0 +1,21 @@ + +Copyright (c) Nils Adermann, Jordi Boggiano + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is furnished +to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php new file mode 100644 index 0000000..0fb0a2c --- /dev/null +++ b/vendor/composer/autoload_classmap.php @@ -0,0 +1,10 @@ + $vendorDir . '/composer/InstalledVersions.php', +); diff --git a/vendor/composer/autoload_namespaces.php b/vendor/composer/autoload_namespaces.php new file mode 100644 index 0000000..15a2ff3 --- /dev/null +++ b/vendor/composer/autoload_namespaces.php @@ -0,0 +1,9 @@ + array($vendorDir . '/stripe/stripe-php/lib'), +); diff --git a/vendor/composer/autoload_real.php b/vendor/composer/autoload_real.php new file mode 100644 index 0000000..4efc34c --- /dev/null +++ b/vendor/composer/autoload_real.php @@ -0,0 +1,38 @@ +register(true); + + return $loader; + } +} diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php new file mode 100644 index 0000000..a2605e0 --- /dev/null +++ b/vendor/composer/autoload_static.php @@ -0,0 +1,36 @@ + + array ( + 'Stripe\\' => 7, + ), + ); + + public static $prefixDirsPsr4 = array ( + 'Stripe\\' => + array ( + 0 => __DIR__ . '/..' . '/stripe/stripe-php/lib', + ), + ); + + public static $classMap = array ( + 'Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php', + ); + + public static function getInitializer(ClassLoader $loader) + { + return \Closure::bind(function () use ($loader) { + $loader->prefixLengthsPsr4 = ComposerStaticInit40aa654f2e66c20881ae0572fe987a10::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticInit40aa654f2e66c20881ae0572fe987a10::$prefixDirsPsr4; + $loader->classMap = ComposerStaticInit40aa654f2e66c20881ae0572fe987a10::$classMap; + + }, null, ClassLoader::class); + } +} diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json new file mode 100644 index 0000000..39cb05d --- /dev/null +++ b/vendor/composer/installed.json @@ -0,0 +1,68 @@ +{ + "packages": [ + { + "name": "stripe/stripe-php", + "version": "v16.6.0", + "version_normalized": "16.6.0.0", + "source": { + "type": "git", + "url": "https://github.com/stripe/stripe-php.git", + "reference": "d6de0a536f00b5c5c74f36b8f4d0d93b035499ff" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/stripe/stripe-php/zipball/d6de0a536f00b5c5c74f36b8f4d0d93b035499ff", + "reference": "d6de0a536f00b5c5c74f36b8f4d0d93b035499ff", + "shasum": "" + }, + "require": { + "ext-curl": "*", + "ext-json": "*", + "ext-mbstring": "*", + "php": ">=5.6.0" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "3.5.0", + "phpstan/phpstan": "^1.2", + "phpunit/phpunit": "^5.7 || ^9.0" + }, + "time": "2025-02-24T22:35:29+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Stripe\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Stripe and contributors", + "homepage": "https://github.com/stripe/stripe-php/contributors" + } + ], + "description": "Stripe PHP Library", + "homepage": "https://stripe.com/", + "keywords": [ + "api", + "payment processing", + "stripe" + ], + "support": { + "issues": "https://github.com/stripe/stripe-php/issues", + "source": "https://github.com/stripe/stripe-php/tree/v16.6.0" + }, + "install-path": "../stripe/stripe-php" + } + ], + "dev": true, + "dev-package-names": [] +} diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php new file mode 100644 index 0000000..8b1128f --- /dev/null +++ b/vendor/composer/installed.php @@ -0,0 +1,32 @@ + array( + 'name' => '__root__', + 'pretty_version' => '1.0.0+no-version-set', + 'version' => '1.0.0.0', + 'reference' => null, + 'type' => 'library', + 'install_path' => __DIR__ . '/../../', + 'aliases' => array(), + 'dev' => true, + ), + 'versions' => array( + '__root__' => array( + 'pretty_version' => '1.0.0+no-version-set', + 'version' => '1.0.0.0', + 'reference' => null, + 'type' => 'library', + 'install_path' => __DIR__ . '/../../', + 'aliases' => array(), + 'dev_requirement' => false, + ), + 'stripe/stripe-php' => array( + 'pretty_version' => 'v16.6.0', + 'version' => '16.6.0.0', + 'reference' => 'd6de0a536f00b5c5c74f36b8f4d0d93b035499ff', + 'type' => 'library', + 'install_path' => __DIR__ . '/../stripe/stripe-php', + 'aliases' => array(), + 'dev_requirement' => false, + ), + ), +); diff --git a/vendor/composer/platform_check.php b/vendor/composer/platform_check.php new file mode 100644 index 0000000..8b379f4 --- /dev/null +++ b/vendor/composer/platform_check.php @@ -0,0 +1,26 @@ += 50600)) { + $issues[] = 'Your Composer dependencies require a PHP version ">= 5.6.0". You are running ' . PHP_VERSION . '.'; +} + +if ($issues) { + if (!headers_sent()) { + header('HTTP/1.1 500 Internal Server Error'); + } + if (!ini_get('display_errors')) { + if (PHP_SAPI === 'cli' || PHP_SAPI === 'phpdbg') { + fwrite(STDERR, 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . implode(PHP_EOL, $issues) . PHP_EOL.PHP_EOL); + } elseif (!headers_sent()) { + echo 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . str_replace('You are running '.PHP_VERSION.'.', '', implode(PHP_EOL, $issues)) . PHP_EOL.PHP_EOL; + } + } + trigger_error( + 'Composer detected issues in your platform: ' . implode(' ', $issues), + E_USER_ERROR + ); +} diff --git a/vendor/stripe/stripe-php/.gitignore b/vendor/stripe/stripe-php/.gitignore new file mode 100644 index 0000000..2049c20 --- /dev/null +++ b/vendor/stripe/stripe-php/.gitignore @@ -0,0 +1,32 @@ +# Ignore build files +build/* + +# Mac OS X dumps these all over the place. +.DS_Store + +# Ignore the SimpleTest library if it is installed to /test/. +/test/simpletest/ + +# Ignore the /vendor/ directory for people using composer +/vendor/ + +# If the vendor directory isn't being commited the composer.lock file should also be ignored +composer.lock + +# Ignore IDE's configuration files +.idea + +# Ignore PHP CS Fixer local config and cache +.php_cs +.php_cs.cache +.php-cs-fixer.cache + +# Ignore PHPStan local config +.phpstan.neon + +# Ignore phpDocumentor's local config and artifacts +.phpdoc/* +phpdoc.xml + +# Ignore cached PHPUnit results. +.phpunit.result.cache diff --git a/vendor/stripe/stripe-php/CHANGELOG.md b/vendor/stripe/stripe-php/CHANGELOG.md new file mode 100644 index 0000000..913d033 --- /dev/null +++ b/vendor/stripe/stripe-php/CHANGELOG.md @@ -0,0 +1,2613 @@ +# Changelog + +## 16.6.0 - 2025-02-24 +* [#1809](https://github.com/stripe/stripe-php/pull/1809) Update generated code + * Add support for `priority` on `Billing.CreditGrant` + * Add support for `collected_information` on `Checkout.Session` +* [#1816](https://github.com/stripe/stripe-php/pull/1816) add codeowners file + +## 16.5.1 - 2025-02-07 +* [#1811](https://github.com/stripe/stripe-php/pull/1811) Include a useful error message when a null byte is found in the URL path +* [#1810](https://github.com/stripe/stripe-php/pull/1810) Make `httpClient()` a public, static method + +## 16.5.0 - 2025-01-27 +* [#1804](https://github.com/stripe/stripe-php/pull/1804) Update generated code + * Add support for `close` method on resource `Treasury.FinancialAccount` + * Add support for `advice_code` on `StripeError` + * Add support for `discounts` on `Checkout.Session` + * Add support for new value `pay_by_bank` on enum `PaymentLink.payment_method_types[]` + * Add support for `pay_by_bank` on `PaymentMethodConfiguration` and `PaymentMethod` + * Add support for new value `pay_by_bank` on enum `PaymentMethod.type` + * Add support for `is_default` and `nickname` on `Treasury.FinancialAccount` +* [#1805](https://github.com/stripe/stripe-php/pull/1805) Restore testCoreEventsGet generated test +* [#1807](https://github.com/stripe/stripe-php/pull/1807) minor justfile fixes +* [#1806](https://github.com/stripe/stripe-php/pull/1806) Added CONTRIBUTING.md file +* [#1802](https://github.com/stripe/stripe-php/pull/1802) ensure dependencies are installed for format and test recipes +* [#1801](https://github.com/stripe/stripe-php/pull/1801) Add justfile, remove coveralls, and fix AUTOLOAD in CI +* [#1797](https://github.com/stripe/stripe-php/pull/1797) Added pull request template + +## 16.4.0 - 2024-12-18 +* [#1793](https://github.com/stripe/stripe-php/pull/1793) This release changes the pinned API version to `2024-12-18.acacia`. + * Add support for `network_advice_code` and `network_decline_code` on `StripeError` + * Add support for new values `payout_minimum_balance_hold` and `payout_minimum_balance_release` on enum `BalanceTransaction.type` + * Add support for `allow_redisplay` on `Card` and `Source` + * Add support for `regulated_status` on `Card` + * Add support for new value `request_signature` on enum `Forwarding.Request.replacements[]` + * Change type of `LineItem.description` from `string` to `nullable(string)` + * Add support for new values `al_tin`, `am_tin`, `ao_tin`, `ba_tin`, `bb_tin`, `bs_tin`, `cd_nif`, `gn_nif`, `kh_tin`, `me_pib`, `mk_vat`, `mr_nif`, `np_pan`, `sn_ninea`, `sr_fin`, `tj_tin`, `ug_tin`, `zm_tin`, and `zw_tin` on enum `TaxId.type` + +## 16.3.0 - 2024-11-20 +* [#1786](https://github.com/stripe/stripe-php/pull/1786) This release changes the pinned API version to `2024-11-20.acacia`. + * Add support for `respond` test helper method on resource `Issuing.Authorization` + * Add support for `adaptive_pricing` on `Checkout.Session` + * Add support for new value `subscribe` on enums `Checkout.Session.submit_type` and `PaymentLink.submit_type` + * Add support for new value `financial_account_statement` on enum `File.purpose` + * Add support for `fraud_challenges` and `verified_by_fraud_challenge` on `Issuing.Authorization` + * Add support for `trace_id` on `Payout` + * Add support for new value `li_vat` on enum `TaxId.type` + * Add support for new value `service_tax` on enum `TaxRate.tax_type` + * Change type of `Treasury.InboundTransfer.origin_payment_method` from `string` to `nullable(string)` + +## 16.2.0 - 2024-10-29 +* [#1772](https://github.com/stripe/stripe-php/pull/1772) This release changes the pinned API version to `2024-10-28.acacia`. + * Add support for new resource `V2.EventDestinations` + * Add support for `create`, `retrieve`, `update`, `list`, `delete`, `disable`, `enable` and `ping` methods on resource `V2.EventDestinations` + * Add support for `submit_card` test helper method on resource `Issuing.Card` + * Add support for `groups` on `Account` + * Add support for `enhanced_eligibility_types` on `Dispute` + * Add support for new values `issuing_transaction.purchase_details_receipt_updated` and `refund.failed` on enum `Event.type` + * Add support for `metadata` on `Forwarding.Request` + * Add support for new value `alma` on enum `PaymentLink.payment_method_types[]` + * Add support for `alma` on `PaymentMethodConfiguration` and `PaymentMethod` + * Add support for `kakao_pay`, `kr_card`, `naver_pay`, `payco`, and `samsung_pay` on `PaymentMethod` + * Add support for new values `alma`, `kakao_pay`, `kr_card`, `naver_pay`, `payco`, and `samsung_pay` on enum `PaymentMethod.type` + * Add support for `amazon_pay` on `PaymentMethodDomain` + * Add support for new values `by_tin`, `ma_vat`, `md_vat`, `tz_vat`, `uz_tin`, and `uz_vat` on enum `TaxId.type` + * Add support for `flat_amount` and `rate_type` on `TaxRate` + * Add support for new value `retail_delivery_fee` on enum `TaxRate.tax_type` + +## 16.1.1 - 2024-10-18 +* [#1775](https://github.com/stripe/stripe-php/pull/1775) Deserialize into correct v2 EventData types + * Fixes a bug where v2 EventData was not being deserialized into the appropriate type for `V1BillingMeterErrorReportTriggeredEvent` and `V1BillingMeterNoMeterFoundEvent` +* [#1776](https://github.com/stripe/stripe-php/pull/1776) update object tags for meter-related classes + + - fixes a bug where the `object` property of the `MeterEvent`, `MeterEventAdjustment`, and `MeterEventSession` didn't match the server. +* [#1773](https://github.com/stripe/stripe-php/pull/1773) Clean up examples +* [#1771](https://github.com/stripe/stripe-php/pull/1771) Renamed example file names + +## 16.1.0 - 2024-10-03 +* [#1765](https://github.com/stripe/stripe-php/pull/1765) Update generated code + * Remove the support for resource `Margin` that was accidentally made public in the last release + +## 16.0.0 - 2024-10-01 +* [#1756](https://github.com/stripe/stripe-php/pull/1756) Support for APIs in the new API version 2024-09-30.acacia + + This release changes the pinned API version to `2024-09-30.acacia`. Please read the [API Upgrade Guide](https://stripe.com/docs/upgrades#2024-09-30.acacia) and carefully review the API changes before upgrading. + + ### ⚠️ Breaking changes + + * Rename `usage_threshold_config` to `usage_threshold` on `Billing.Alert` + * Remove support for `filter` on `Billing.Alert`. Use the filters on the `usage_threshold` instead + + + ### Additions + + * Add support for new value `international_transaction` on enum `Treasury.ReceivedCredit.failure_code` + * Add support for new Usage Billing APIs `Billing.MeterEvent`, `Billing.MeterEventAdjustments`, `Billing.MeterEventSession`, `Billing.MeterEventStream` and the new Events API `Core.Events` under the [v2 namespace ](https://docs.corp.stripe.com/api-v2-overview) + * Add new method `parseThinEvent()` on the `StripeClient` class to parse [thin events](https://docs.corp.stripe.com/event-destinations#events-overview). + * Add a new method [rawRequest()](https://github.com/stripe/stripe-node/tree/master?tab=readme-ov-file#custom-requests) on the `StripeClient` class that takes a HTTP method type, url and relevant parameters to make requests to the Stripe API that are not yet supported in the SDK. + + +## 15.10.0 - 2024-09-18 +* [#1747](https://github.com/stripe/stripe-php/pull/1747) Update generated code + * Add support for new value `international_transaction` on enum `Treasury.ReceivedDebit.failure_code` +* [#1745](https://github.com/stripe/stripe-php/pull/1745) Update generated code + * Add support for new value `terminal_reader_invalid_location_for_activation` on enum `StripeError.code` + * Add support for `automatically_finalizes_at` on `Invoice` + +## 15.9.0 - 2024-09-12 +* [#1737](https://github.com/stripe/stripe-php/pull/1737) Update generated code + * Add support for new resource `InvoiceRenderingTemplate` + * Add support for `all`, `archive`, `retrieve`, and `unarchive` methods on resource `InvoiceRenderingTemplate` + +## 15.8.0 - 2024-08-29 +* [#1742](https://github.com/stripe/stripe-php/pull/1742) Generate SDK for OpenAPI spec version 1230 + * Add support for new value `issuing_regulatory_reporting` on enum `File.purpose` + * Add support for new value `hr_oib` on enum `TaxId.type` + * Add support for `status_details` on `TestHelpers.TestClock` + +## 15.7.0 - 2024-08-15 +* [#1736](https://github.com/stripe/stripe-php/pull/1736) Update generated code + + +## 15.6.0 - 2024-08-08 +* [#1729](https://github.com/stripe/stripe-php/pull/1729) Update generated code + * Add support for `activate`, `all`, `archive`, `create`, `deactivate`, and `retrieve` methods on resource `Billing.Alert` + * Add support for `retrieve` method on resource `Tax.Calculation` + * Add support for new value `invalid_mandate_reference_prefix_format` on enum `StripeError.code` + * Add support for `related_customer` on `Identity.VerificationSession` + * Add support for new value `financial_addresses.aba.forwarding` on enums `Treasury.FinancialAccount.active_features[]`, `Treasury.FinancialAccount.pending_features[]`, and `Treasury.FinancialAccount.restricted_features[]` + +## 15.5.0 - 2024-08-01 +* [#1727](https://github.com/stripe/stripe-php/pull/1727) Update generated code + * Add support for new resources `Billing.AlertTriggered` and `Billing.Alert` + * Add support for new value `charge_exceeds_transaction_limit` on enum `StripeError.code` + * Add support for new value `billing.alert.triggered` on enum `Event.type` + +## 15.4.0 - 2024-07-25 +* [#1726](https://github.com/stripe/stripe-php/pull/1726) Update generated code + * Add support for `update` method on resource `Checkout.Session` + * Add support for new values `invoice.overdue` and `invoice.will_be_due` on enum `Event.type` + * Add support for `twint` on `PaymentMethodConfiguration` + +## 15.3.0 - 2024-07-18 +* [#1724](https://github.com/stripe/stripe-php/pull/1724) Update generated code + * Add support for new value `issuing_dispute.funds_rescinded` on enum `Event.type` + * Add support for new value `stripe_s700` on enum `Terminal.Reader.device_type` +* [#1722](https://github.com/stripe/stripe-php/pull/1722) Update changelog + +## 15.2.0 - 2024-07-11 +* [#1721](https://github.com/stripe/stripe-php/pull/1721) Update generated code + * ⚠️ Remove support for values `billing_policy_remote_function_response_invalid`, `billing_policy_remote_function_timeout`, `billing_policy_remote_function_unexpected_status_code`, and `billing_policy_remote_function_unreachable` from enum `StripeError.code`. + * ⚠️ Remove support for value `payment_intent_fx_quote_invalid` from enum `StripeError.code`. The was mistakenly released last week. + * Add support for `payment_method_options` on `ConfirmationToken` + +## 15.1.0 - 2024-07-05 +* [#1718](https://github.com/stripe/stripe-php/pull/1718) Update generated code + * Add support for `add_lines`, `remove_lines`, and `update_lines` methods on resource `Invoice` + * Add support for new value `payment_intent_fx_quote_invalid` on enum `StripeError.code` + * Add support for new values `multibanco`, `twint`, and `zip` on enum `PaymentLink.payment_method_types[]` + * Add support for `posted_at` on `Tax.Transaction` + * Add support for `reboot_window` on `Terminal.Configuration` + +## 15.0.0 - 2024-06-24 +* [#1714](https://github.com/stripe/stripe-php/pull/1714) + + This release changes the pinned API version to 2024-06-20. Please read the [API Upgrade Guide](https://stripe.com/docs/upgrades#2024-06-20) and carefully review the API changes before upgrading. + + ### ⚠️ Breaking changes + + * Remove the unused resource `PlatformTaxFee` + * Remove the protected method `_searchResource` on resources Charge, Customer, Invoice, PaymentIntent, Price, Product, and Subscription as it is no longer used. + + ### Additions + + * Add support for `finalize_amount` test helper method on resource `Issuing.Authorization` + * Add support for `fleet` and `fuel` on `Issuing.Authorization` + * Add support for new value `ch_uid` on enum `TaxId.type` + +## 14.10.0 - 2024-06-13 +* [#1706](https://github.com/stripe/stripe-php/pull/1706) Update generated code + * Add support for `multibanco` on `PaymentMethodConfiguration` and `PaymentMethod` + * Add support for `twint` on `PaymentMethod` + * Add support for new values `multibanco` and `twint` on enum `PaymentMethod.type` + * Add support for `invoice_settings` on `Subscription` + * Add support for new value `de_stn` on enum `TaxId.type` + +## 14.9.0 - 2024-05-30 +* [#1702](https://github.com/stripe/stripe-php/pull/1702) Update generated code + * Add support for new values `issuing_personalization_design.activated`, `issuing_personalization_design.deactivated`, `issuing_personalization_design.rejected`, and `issuing_personalization_design.updated` on enum `Event.type` +* [#1701](https://github.com/stripe/stripe-php/pull/1701) Added PHPDocs for `create`, `update`, `delete`, `all`, `retrieve` methods after moving them out of traits. +* [#1700](https://github.com/stripe/stripe-php/pull/1700) Add optional appInfo to StripeClient config + * `StripeClient` can now accept `$appInfo` as a `$config` option, so AppInfo can be set per-client. If not passed in, will fall back on the global AppInfo set by `Stripe::setAppInfo()`. + * The config expects `$appInfo` to be of type `array{name: string, version?: string, url?: string, partner_id?: string}` + +## 14.8.0 - 2024-05-23 +* [#1698](https://github.com/stripe/stripe-php/pull/1698) Update generated code + * Add support for new value `terminal_reader_invalid_location_for_payment` on enum `StripeError.code` +* [#1697](https://github.com/stripe/stripe-php/pull/1697) Rename section for object type generation + +## 14.7.0 - 2024-05-16 +* [#1694](https://github.com/stripe/stripe-php/pull/1694) Update generated code + * Add support for `fee_source` on `ApplicationFee` + * Add support for `loss_reason` on `Issuing.Dispute` + * Add support for `application_fee_amount` and `application_fee` on `Payout` + * Add support for `stripe_s700` on `Terminal.Configuration` + +## 14.6.0 - 2024-05-09 +* [#1692](https://github.com/stripe/stripe-php/pull/1692) Update generated code + * Add support for `update` test helper method on resources `Treasury.OutboundPayment` and `Treasury.OutboundTransfer` + * Add support for new values `treasury.outbound_payment.tracking_details_updated` and `treasury.outbound_transfer.tracking_details_updated` on enum `Event.type` + * Add support for `allow_redisplay` on `PaymentMethod` + * Add support for `tracking_details` on `Treasury.OutboundPayment` and `Treasury.OutboundTransfer` + +## 14.5.0 - 2024-05-02 +* [#1688](https://github.com/stripe/stripe-php/pull/1688) Update generated code + * Add support for new value `shipping_address_invalid` on enum `StripeError.code` + * Add support for `ship_from_details` on `Tax.Calculation` and `Tax.Transaction` + +## 14.4.0 - 2024-04-25 +* [#1684](https://github.com/stripe/stripe-php/pull/1684) Update generated code + * Change type of `Entitlements.ActiveEntitlement.feature` from `string` to `expandable($Entitlements.Feature)` + * Add support for `mobilepay` on `PaymentMethodConfiguration` + +## 14.3.0 - 2024-04-18 +* [#1681](https://github.com/stripe/stripe-php/pull/1681) Update generated code + * Add support for `create_preview` method on resource `Invoice` + * Add support for `saved_payment_method_options` on `Checkout.Session` +* [#1682](https://github.com/stripe/stripe-php/pull/1682) Added @throws to autoPagingIterator. Fixes [#1678](https://github.com/stripe/stripe-php/issues/1678) + +## 14.2.0 - 2024-04-16 +* [#1680](https://github.com/stripe/stripe-php/pull/1680) Update generated code + * Add support for new resource `Entitlements.ActiveEntitlementSummary` + * Add support for new value `entitlements.active_entitlement_summary.updated` on enum `Event.type` + * Remove support for `config` on `Forwarding.Request`. This field is no longer used by the Forwarding Request API. + * Add support for `swish` on `PaymentMethodConfiguration` + +## 14.1.0 - 2024-04-11 +* [#1677](https://github.com/stripe/stripe-php/pull/1677) Update generated code + * Add support for new values `billing_policy_remote_function_response_invalid`, `billing_policy_remote_function_timeout`, `billing_policy_remote_function_unexpected_status_code`, and `billing_policy_remote_function_unreachable` on enum `StripeError.code` + * Change type of `Billing.MeterEventAdjustment.cancel` from `BillingMeterResourceBillingMeterEventAdjustmentCancel` to `nullable(BillingMeterResourceBillingMeterEventAdjustmentCancel)` + * Add support for `amazon_pay` on `PaymentMethodConfiguration` and `PaymentMethod` + * Add support for new value `amazon_pay` on enum `PaymentMethod.type` + * Add support for new values `bh_vat`, `kz_bin`, `ng_tin`, and `om_vat` on enum `TaxId.type` + +## 14.0.0 - 2024-04-10 +* [#1673](https://github.com/stripe/stripe-php/pull/1673) + + * This release changes the pinned API version to `2024-04-10`. Please read the [API Upgrade Guide](https://stripe.com/docs/upgrades#2024-04-10) and carefully review the API changes before upgrading. + + ### ⚠️ Breaking changes + + * Rename `features` to `marketing_features` on `Product` + * Do not force resolution to IPv4 - Forcing IPv4 was causing hard-to-understand failures for users in IPv6-only environments. If you want to force IPv4 yourself, you can do so by telling the API client to use a CurlClient other than the default + ```php + $curl = new \Stripe\HttpClient\CurlClient([ + CURLOPT_IPRESOLVE => CURL_IPRESOLVE_V4 + ]); + \Stripe\ApiRequestor::setHttpClient($curl); + ``` + + #### ⚠️ Removal of enum values, properties and events that are no longer part of the publicly documented Stripe API + + * Remove the below deprecated values on the enum `BalanceTransaction.Type` + * `obligation_inbound` + * `obligation_payout` + * `obligation_payout_failure` + * `obligation_reversal_outbound` + * Remove the deprecated value `various` on the enum `Climate.Supplier.RemovalPathway` + * Remove deprecated events + * `invoiceitem.updated` + * `order.created` + * `recipient.created` + * `recipient.deleted` + * `recipient.updated` + * `sku.created` + * `sku.deleted` + * `sku.updated` + * Remove the deprecated value `service_tax` on the enum `TaxRate.TaxType` + * Remove support for `id_bank_transfer`, `multibanco`, `netbanking`, `pay_by_bank`, and `upi` on `PaymentMethodConfiguration` + * Remove the legacy field `rendering_options` in `Invoice`. Use `rendering` instead. + +## 13.18.0 - 2024-04-09 +* [#1675](https://github.com/stripe/stripe-php/pull/1675) Update generated code + * Add support for new resources `Entitlements.ActiveEntitlement` and `Entitlements.Feature` + * Add support for `all` and `retrieve` methods on resource `ActiveEntitlement` + * Add support for `all`, `create`, `retrieve`, and `update` methods on resource `Feature` + * Add support for new value `none` on enum `Account.type` + * Add support for `cancel`, `event_name`, and `type` on `Billing.MeterEventAdjustment` + +## 13.17.0 - 2024-04-04 +* [#1670](https://github.com/stripe/stripe-php/pull/1670) Update generated code + * Add support for `subscription_item` on `Discount` + * Add support for `email` and `phone` on `Identity.VerificationReport` + * Add support for `verification_flow` on `Identity.VerificationReport` and `Identity.VerificationSession` + * Add support for new value `verification_flow` on enums `Identity.VerificationReport.type` and `Identity.VerificationSession.type` + * Add support for `provided_details` on `Identity.VerificationSession` + * Change type of `Invoice.discounts` from `nullable(array(expandable(deletable($Discount))))` to `array(expandable(deletable($Discount)))` + * Add support for `zip` on `PaymentMethodConfiguration` + * Add support for `discounts` on `SubscriptionItem` and `Subscription` + * Add support for new value `mobile_phone_reader` on enum `Terminal.Reader.device_type` + +## 13.16.0 - 2024-03-28 +* [#1666](https://github.com/stripe/stripe-php/pull/1666) Update generated code + * Add support for new resources `Billing.MeterEventAdjustment`, `Billing.MeterEvent`, and `Billing.Meter` + * Add support for `all`, `create`, `deactivate`, `reactivate`, `retrieve`, and `update` methods on resource `Meter` + * Add support for `create` method on resources `MeterEventAdjustment` and `MeterEvent` + * Add support for `meter` on `Plan` + +## 13.15.0 - 2024-03-21 +* [#1664](https://github.com/stripe/stripe-php/pull/1664) Update generated code + * Add support for new resources `ConfirmationToken` and `Forwarding.Request` + * Add support for `retrieve` method on resource `ConfirmationToken` + * Add support for `all`, `create`, and `retrieve` methods on resource `Request` + * Add support for new values `forwarding_api_inactive`, `forwarding_api_invalid_parameter`, `forwarding_api_upstream_connection_error`, and `forwarding_api_upstream_connection_timeout` on enum `StripeError.code` + * Add support for `mobilepay` on `PaymentMethod` + * Add support for new value `mobilepay` on enum `PaymentMethod.type` + * Add support for `name` on `Terminal.Configuration` + +## 13.14.0 - 2024-03-14 +* [#1660](https://github.com/stripe/stripe-php/pull/1660) Update generated code + * Add support for new resources `Issuing.PersonalizationDesign` and `Issuing.PhysicalBundle` + * Add support for `all`, `create`, `retrieve`, and `update` methods on resource `PersonalizationDesign` + * Add support for `all` and `retrieve` methods on resource `PhysicalBundle` + * Add support for `personalization_design` on `Issuing.Card` + +## 13.13.0 - 2024-02-29 +* [#1654](https://github.com/stripe/stripe-php/pull/1654) Update generated code + * Change type of `Identity.VerificationSession.type` from `nullable(enum('document'|'id_number'))` to `enum('document'|'id_number')` + * Add resources `Application`, `ConnectCollectionTransfer`, `PlatformTaxFee`, `ReserveTransaction`, `SourceMandateNotification`, and `TaxDeductedAtSource`. These classes have no methods on them, and are used to provide more complete types for PHPDocs. +* [#1657](https://github.com/stripe/stripe-php/pull/1657) Update readme to use addBetaVersion + +## 13.12.0 - 2024-02-22 +* [#1651](https://github.com/stripe/stripe-php/pull/1651) Update generated code + * Add support for `client_reference_id` on `Identity.VerificationReport` and `Identity.VerificationSession` + * Remove support for value `service_tax` from enum `TaxRate.tax_type` +* [#1650](https://github.com/stripe/stripe-php/pull/1650) Add TaxIds API + * Add support for `all`, `create`, `delete`, and `retrieve` methods on resource `TaxId` + * The `instanceUrl` function on `TaxId` now returns the top-level `/v1/tax_ids/{id}` path instead of the `/v1/customers/{customer}/tax_ids/{id}` path. + +## 13.11.0 - 2024-02-15 +* [#1639](https://github.com/stripe/stripe-php/pull/1639) Update generated code + * Add support for `networks` on `Card` + * Add support for new value `financial_connections.account.refreshed_ownership` on enum `Event.type` +* [#1648](https://github.com/stripe/stripe-php/pull/1648) Remove broken methods on CustomerCashBalanceTransaction + * Bugfix: remove support for `CustomerCashBalanceTransaction::all` and `CustomerCashBalanceTransaction::retrieve`. These methods were included in the library unintentionally and never functioned. +* [#1647](https://github.com/stripe/stripe-php/pull/1647) Fix \Stripe\Tax\Settings::update +* [#1646](https://github.com/stripe/stripe-php/pull/1646) Add more specific PHPDoc and Psalm type for RequestOptions arrays on services + +## 13.10.0 - 2024-02-01 +* [#1636](https://github.com/stripe/stripe-php/pull/1636) Update generated code + * Add support for new value `swish` on enum `PaymentLink.payment_method_types[]` + * Add support for `swish` on `PaymentMethod` + * Add support for new value `swish` on enum `PaymentMethod.type` + * Add support for `jurisdiction_level` on `TaxRate` + * Change type of `Terminal.Reader.status` from `string` to `enum('offline'|'online')` +* [#1633](https://github.com/stripe/stripe-php/pull/1633) Update generated code + * Add support for `issuer` on `Invoice` + * Add support for `customer_balance` on `PaymentMethodConfiguration` +* [#1630](https://github.com/stripe/stripe-php/pull/1630) Add paginated requests helper function and use in Search and All + +## 13.9.0 - 2024-01-12 +* [#1629](https://github.com/stripe/stripe-php/pull/1629) Update generated code + * Add support for new resource `CustomerSession` + * Add support for `create` method on resource `CustomerSession` + * Remove support for values `obligation_inbound`, `obligation_payout_failure`, `obligation_payout`, and `obligation_reversal_outbound` from enum `BalanceTransaction.type` + * Add support for `billing_cycle_anchor_config` on `Subscription` + +## 13.8.0 - 2024-01-04 +* [#1627](https://github.com/stripe/stripe-php/pull/1627) Update generated code + * Add support for `retrieve` method on resource `Tax.Registration` + +## 13.7.0 - 2023-12-22 +* [#1621](https://github.com/stripe/stripe-php/pull/1621) Update generated code + * Add support for new resource `FinancialConnections.Transaction` + * Add support for `all` and `retrieve` methods on resource `Transaction` + * Add support for `subscribe` and `unsubscribe` methods on resource `FinancialConnections.Account` + * Add support for new value `financial_connections.account.refreshed_transactions` on enum `Event.type` + * Add support for `subscriptions` and `transaction_refresh` on `FinancialConnections.Account` + * Add support for new value `transactions` on enum `FinancialConnections.Session.prefetch[]` + * Add support for `revolut_pay` on `PaymentMethodConfiguration` + * Remove support for `id_bank_transfer`, `multibanco`, `netbanking`, `pay_by_bank`, and `upi` on `PaymentMethodConfiguration` + * Change type of `Quote.invoice_settings` from `nullable(InvoiceSettingQuoteSetting)` to `InvoiceSettingQuoteSetting` + * Add support for `destination_details` on `Refund` + +## 13.6.0 - 2023-12-07 +* [#1613](https://github.com/stripe/stripe-php/pull/1613) Update generated code + * Add support for new values `customer_tax_location_invalid` and `financial_connections_no_successful_transaction_refresh` on enum `StripeError.code` + * Add support for new values `payment_network_reserve_hold` and `payment_network_reserve_release` on enum `BalanceTransaction.type` + * Remove support for value `various` from enum `Climate.Supplier.removal_pathway` + * Add support for `inactive_message` and `restrictions` on `PaymentLink` +* [#1612](https://github.com/stripe/stripe-php/pull/1612) Report usage of .save and StripeClient + * Reports uses of the deprecated `.save` and of `StripeClient` in `X-Stripe-Client-Telemetry`. (You can disable telemetry via `\Stripe\Stripe::setEnableTelemetry(false);`, see the [README](https://github.com/stripe/stripe-php/blob/master/README.md#telemetry).) + +## 13.5.0 - 2023-11-30 +* [#1611](https://github.com/stripe/stripe-php/pull/1611) Update generated code + * Add support for new resources `Climate.Order`, `Climate.Product`, and `Climate.Supplier` + * Add support for `all`, `cancel`, `create`, `retrieve`, and `update` methods on resource `Order` + * Add support for `all` and `retrieve` methods on resources `Product` and `Supplier` + * Add support for new value `financial_connections_account_inactive` on enum `StripeError.code` + * Add support for new values `climate_order_purchase` and `climate_order_refund` on enum `BalanceTransaction.type` + * Add support for new values `climate.order.canceled`, `climate.order.created`, `climate.order.delayed`, `climate.order.delivered`, `climate.order.product_substituted`, `climate.product.created`, and `climate.product.pricing_updated` on enum `Event.type` + +## 13.4.0 - 2023-11-21 +* [#1608](https://github.com/stripe/stripe-php/pull/1608) Update generated code + Add support for `transferred_to_balance` to `CustomerCashBalanceTransaction` +* [#1605](https://github.com/stripe/stripe-php/pull/1605) Update generated code + * Add support for `network_data` on `Issuing.Transaction` + +## 13.3.0 - 2023-11-09 +* [#1603](https://github.com/stripe/stripe-php/pull/1603) Update generated code + * Add support for new value `terminal_reader_hardware_fault` on enum `StripeError.code` + +## 13.2.1 - 2023-11-06 +* [#1602](https://github.com/stripe/stripe-php/pull/1602) Fix error when "id" is not a string. + +## 13.2.0 - 2023-11-02 +* [#1599](https://github.com/stripe/stripe-php/pull/1599) Update generated code + * Add support for new resource `Tax.Registration` + * Add support for `all`, `create`, and `update` methods on resource `Registration` + * Add support for new value `token_card_network_invalid` on enum `StripeError.code` + * Add support for new value `payment_unreconciled` on enum `BalanceTransaction.type` + * Add support for `revolut_pay` on `PaymentMethod` + * Add support for new value `revolut_pay` on enum `PaymentMethod.type` + +## 13.1.0 - 2023-10-26 +* [#1595](https://github.com/stripe/stripe-php/pull/1595) Update generated code + * Add support for new value `balance_invalid_parameter` on enum `StripeError.code` + +## 13.0.0 - 2023-10-16 +* This release changes the pinned API version to `2023-10-16`. Please read the [API Upgrade Guide](https://stripe.com/docs/upgrades#2023-10-16) and carefully review the API changes before upgrading `stripe-php` package. +* [#1593](https://github.com/stripe/stripe-php/pull/1593) Update generated code + - Added `additional_tos_acceptances` field on `Person` + +## 12.8.0 - 2023-10-16 +* [#1590](https://github.com/stripe/stripe-php/pull/1590) Update generated code + * Add support for new values `issuing_token.created` and `issuing_token.updated` on enum `Event.type` + +## 12.7.0 - 2023-10-11 +* [#1589](https://github.com/stripe/stripe-php/pull/1589) Update generated code + * Add support for `client_secret`, `redirect_on_completion`, `return_url`, and `ui_mode` on `Checkout.Session` + * Add support for `offline` on `Terminal.Configuration` + +## 12.6.0 - 2023-10-05 +* [#1586](https://github.com/stripe/stripe-php/pull/1586) Update generated code + * Add support for new resource `Issuing.Token` + * Add support for `all`, `retrieve`, and `update` methods on resource `Token` + * Add support for `token` on `Issuing.Authorization` and `Issuing.Transaction` +* [#1569](https://github.com/stripe/stripe-php/pull/1569) Fix: Do not bother removing `friendsofphp/php-cs-fixer` + +## 12.5.0 - 2023-09-28 +* [#1582](https://github.com/stripe/stripe-php/pull/1582) Generate Discount, SourceTransaction and use sections in more places +* [#1584](https://github.com/stripe/stripe-php/pull/1584) Update generated code + * Add support for `rendering` on `Invoice` + +## 12.4.0 - 2023-09-21 +* [#1579](https://github.com/stripe/stripe-php/pull/1579) Update generated code + * Add back constant for `invoiceitem.updated` webhook event. This was mistakenly removed in v12.2.0. +* [#1566](https://github.com/stripe/stripe-php/pull/1566) Fix: Remove `squizlabs/php_codesniffer` +* [#1568](https://github.com/stripe/stripe-php/pull/1568) Enhancement: Reference `phpunit.xsd` as installed with `composer` +* [#1565](https://github.com/stripe/stripe-php/pull/1565) Enhancement: Use PHP 8.2 as leading PHP version + +## 12.3.0 - 2023-09-14 +* [#1577](https://github.com/stripe/stripe-php/pull/1577) Update generated code + * Add support for new resource `PaymentMethodConfiguration` + * Add support for `all`, `create`, `retrieve`, and `update` methods on resource `PaymentMethodConfiguration` + * Add support for `payment_method_configuration_details` on `Checkout.Session`, `PaymentIntent`, and `SetupIntent` +* [#1573](https://github.com/stripe/stripe-php/pull/1573) Update generated code + * Add support for `capture`, `create`, `expire`, `increment`, and `reverse` test helper methods on resource `Issuing.Authorization` + * Add support for `create_force_capture`, `create_unlinked_refund`, and `refund` test helper methods on resource `Issuing.Transaction` + * Add support for new value `stripe_tax_inactive` on enum `StripeError.code` + +## 12.2.0 - 2023-09-07 +* [#1571](https://github.com/stripe/stripe-php/pull/1571) Update generated code + * Add support for new resource `PaymentMethodDomain` + * Add support for `all`, `create`, `retrieve`, `update`, and `validate` methods on resource `PaymentMethodDomain` + * Add support for new values `treasury.credit_reversal.created`, `treasury.credit_reversal.posted`, `treasury.debit_reversal.completed`, `treasury.debit_reversal.created`, `treasury.debit_reversal.initial_credit_granted`, `treasury.financial_account.closed`, `treasury.financial_account.created`, `treasury.financial_account.features_status_updated`, `treasury.inbound_transfer.canceled`, `treasury.inbound_transfer.created`, `treasury.inbound_transfer.failed`, `treasury.inbound_transfer.succeeded`, `treasury.outbound_payment.canceled`, `treasury.outbound_payment.created`, `treasury.outbound_payment.expected_arrival_date_updated`, `treasury.outbound_payment.failed`, `treasury.outbound_payment.posted`, `treasury.outbound_payment.returned`, `treasury.outbound_transfer.canceled`, `treasury.outbound_transfer.created`, `treasury.outbound_transfer.expected_arrival_date_updated`, `treasury.outbound_transfer.failed`, `treasury.outbound_transfer.posted`, `treasury.outbound_transfer.returned`, `treasury.received_credit.created`, `treasury.received_credit.failed`, `treasury.received_credit.succeeded`, and `treasury.received_debit.created` on enum `Event.type` + * Remove support for value `invoiceitem.updated` from enum `Event.type` + * Add support for `features` on `Product` + +## 12.1.0 - 2023-08-31 +* [#1560](https://github.com/stripe/stripe-php/pull/1560) Update generated code + * Add support for new resource `AccountSession` + * Add support for `create` method on resource `AccountSession` + * Add support for new values `obligation_inbound`, `obligation_outbound`, `obligation_payout_failure`, `obligation_payout`, `obligation_reversal_inbound`, and `obligation_reversal_outbound` on enum `BalanceTransaction.type` + * Change type of `Event.type` from `string` to `enum` + * Add support for `application` on `PaymentLink` +* [#1562](https://github.com/stripe/stripe-php/pull/1562) Nicer ApiErrorException::__toString() +* [#1558](https://github.com/stripe/stripe-php/pull/1558) Update generated code + * Add support for `payment_method_details` on `Dispute` + * Add support for `prefetch` on `FinancialConnections.Session` + +## 12.0.0 - 2023-08-18 +**⚠️ ACTION REQUIRED: the breaking change in this release likely affects you ⚠️** + +### Version pinning + +In this release, Stripe API Version `2023-08-16` (the latest at time of release) will be sent by default on all requests. This is a significant change with wide ramifications. The API version affects the properties you see on responses, the parameters you are allowed to send on requests, and so on. The previous default was to use your [Stripe account's default API version](https://stripe.com/docs/development/dashboard/request-logs#view-your-default-api-version). + +To successfully upgrade to stripe-php v12, you must either + +1. **(Recommended) Upgrade your integration to be compatible with API Version `2023-08-16`.** + + Please read the API Changelog carefully for each API Version from `2023-08-16` back to your [Stripe account's default API version](https://stripe.com/docs/development/dashboard/request-logs#view-your-default-api-version). Determine if you are using any of the APIs that have changed in a breaking way, and adjust your integration accordingly. Carefully test your changes with Stripe [Test Mode](https://stripe.com/docs/keys#test-live-modes) before deploying them to production. + + You can read the [v12 migration guide](https://github.com/stripe/stripe-php/wiki/Migration-guide-for-v12) for more detailed instructions. +2. **(Alternative option) Specify a version other than `2023-08-16` when initializing `stripe-php`.** + + If you were previously initializing stripe-php without an explicit API Version, you can postpone modifying your integration by specifying a version equal to your [Stripe account's default API version](https://stripe.com/docs/development/dashboard/request-logs#view-your-default-api-version). For example: + + ```diff + // if using StripeClient + - $stripe = new \Stripe\StripeClient('sk_test_xyz'); + + $stripe = new \Stripe\StripeClient([ + + 'api_key' => 'sk_test_xyz', + 'stripe_version' => '2020-08-27', + + ]); + + // if using the global client + Stripe.apiKey = "sk_test_xyz"; + + Stripe::setApiVersion('2020-08-27'); + ``` + + If you were already initializing stripe-php with an explicit API Version, upgrading to v12 will not affect your integration. + + Read the [v12 migration guide](https://github.com/stripe/stripe-php/wiki/Migration-guide-for-v12) for more details. + + Going forward, each major release of this library will be *pinned* by default to the latest Stripe API Version at the time of release. + + That is, instead of upgrading stripe-php and separately upgrading your Stripe API Version through the Stripe Dashboard, whenever you upgrade major versions of stripe-php, you should also upgrade your integration to be compatible with the latest Stripe API version. + +### Other changes +" ⚠️" symbol highlights breaking changes. +* [#1553](https://github.com/stripe/stripe-php/pull/1553)⚠️ Remove deprecated enum value `Invoice.STATUS_DELETE` + +* [#1550](https://github.com/stripe/stripe-php/pull/1550) PHPDoc changes + * Remove support for `alternate_statement_descriptors`, `destination`, and `dispute` on `Charge` + * Remove support for value `charge_refunded` from enum `Dispute.status` + * Remove support for `rendering` on `Invoice` + * Remove support for `attributes`, `caption`, and `deactivate_on` on `Product` + +## 11.0.0 - 2023-08-16 +Please do not use stripe-php v11. It did not correctly apply the [pinning behavior](https://github.com/stripe/stripe-php/blob/master/CHANGELOG.md#version-pinning) and was removed from packagist + +## 10.21.0 - 2023-08-10 +* [#1546](https://github.com/stripe/stripe-php/pull/1546) Update generated code + * Add support for new value `payment_reversal` on enum `BalanceTransaction.type` + * Add support for new value `adjusted_for_overdraft` on enum `CustomerBalanceTransaction.type` + +## 10.20.0 - 2023-08-03 +* [#1539](https://github.com/stripe/stripe-php/pull/1539) Update generated code + * Add support for `subscription_details` on `Invoice` + * Add support for new values `sepa_debit_fingerprint` and `us_bank_account_fingerprint` on enum `Radar.ValueList.item_type` + +## 10.19.0 - 2023-07-27 +* [#1534](https://github.com/stripe/stripe-php/pull/1534) Update generated code + * Improve PHPDoc type for `ApplicationFee.refunds` + * Add support for `deleted` on `Apps.Secret` +* [#1526](https://github.com/stripe/stripe-php/pull/1526) Add constants for payment intent cancellation reasons +* [#1533](https://github.com/stripe/stripe-php/pull/1533) Update generated code + * Add support for new value `service_tax` on enum `TaxRate.tax_type` +* [#1487](https://github.com/stripe/stripe-php/pull/1487) PHPDoc: use union of literals for $method parameter throughout + +## 10.18.0 - 2023-07-20 +* [#1533](https://github.com/stripe/stripe-php/pull/1533) Update generated code + * Add support for new value `service_tax` on enum `TaxRate.tax_type` +* [#1526](https://github.com/stripe/stripe-php/pull/1526) Add constants for payment intent cancellation reasons +* [#1487](https://github.com/stripe/stripe-php/pull/1487) PHPDoc: use union of literals for $method parameter throughout + +## 10.17.0 - 2023-07-13 +* [#1525](https://github.com/stripe/stripe-php/pull/1525) Update generated code + * Add support for new resource `Tax.Settings` + * Add support for `retrieve` and `update` methods on resource `Settings` + * Add support for new value `invalid_tax_location` on enum `StripeError.code` + * Add support for `product` on `Tax.TransactionLineItem` + * Add constant for `tax.settings.updated` webhook event +* [#1520](https://github.com/stripe/stripe-php/pull/1520) Update generated code + * Release specs are identical. + +## 10.16.0 - 2023-06-29 +* [#1517](https://github.com/stripe/stripe-php/pull/1517) Update generated code + * Add support for new value `application_fees_not_allowed` on enum `StripeError.code` + * Add support for `effective_at` on `CreditNote` and `Invoice` + * Add support for `on_behalf_of` on `Mandate` +* [#1514](https://github.com/stripe/stripe-php/pull/1514) Update generated code + * Release specs are identical. +* [#1512](https://github.com/stripe/stripe-php/pull/1512) Update generated code + * Change type of `Checkout.Session.success_url` from `string` to `nullable(string)` + +## 10.15.0 - 2023-06-08 +* [#1506](https://github.com/stripe/stripe-php/pull/1506) Update generated code + * Add support for `preferred_locales` on `Issuing.Cardholder` + +## 10.14.0 - 2023-05-25 +* [#1503](https://github.com/stripe/stripe-php/pull/1503) Update generated code + * Add support for `zip` on `PaymentMethod` + * Add support for new value `zip` on enum `PaymentMethod.type` +* [#1502](https://github.com/stripe/stripe-php/pull/1502) Generate error codes +* [#1501](https://github.com/stripe/stripe-php/pull/1501) Update generated code + +* [#1499](https://github.com/stripe/stripe-php/pull/1499) Update generated code + * Add support for new values `amusement_tax` and `communications_tax` on enum `TaxRate.tax_type` + +## 10.13.0 - 2023-05-11 +* [#1490](https://github.com/stripe/stripe-php/pull/1490) Update generated code + * Add support for `paypal` on `PaymentMethod` + * Add support for `effective_percentage` on `TaxRate` +* [#1488](https://github.com/stripe/stripe-php/pull/1488) Increment PHPStan to strictness level 2 +* [#1483](https://github.com/stripe/stripe-php/pull/1483) Update generated code + +* [#1480](https://github.com/stripe/stripe-php/pull/1480) Update generated code + * Change type of `Identity.VerificationSession.options` from `VerificationSessionOptions` to `nullable(VerificationSessionOptions)` + * Change type of `Identity.VerificationSession.type` from `enum('document'|'id_number')` to `nullable(enum('document'|'id_number'))` +* [#1478](https://github.com/stripe/stripe-php/pull/1478) Update generated code + * Release specs are identical. +* [#1475](https://github.com/stripe/stripe-php/pull/1475) Update generated code + + +## 10.12.1 - 2023-04-04 +* [#1473](https://github.com/stripe/stripe-php/pull/1473) Update generated code + * Add back `deleted` from `Invoice.status`. + +## 10.12.0 - 2023-03-30 +* [#1470](https://github.com/stripe/stripe-php/pull/1470) Update generated code + * Remove support for `create` method on resource `Tax.Transaction` + * This is not a breaking change, as this method was deprecated before the Tax Transactions API was released in favor of the `createFromCalculation` method. + * Remove support for value `deleted` from enum `Invoice.status` + * This is not a breaking change, as the value was never returned or accepted as input. +* [#1468](https://github.com/stripe/stripe-php/pull/1468) Trigger workflow for tags +* [#1467](https://github.com/stripe/stripe-php/pull/1467) Update generated code (new) + * Release specs are identical. + +## 10.11.0 - 2023-03-23 +* [#1458](https://github.com/stripe/stripe-php/pull/1458) Update generated code + * Add support for new resources `Tax.CalculationLineItem`, `Tax.Calculation`, `Tax.TransactionLineItem`, and `Tax.Transaction` + * Add support for `create` and `list_line_items` methods on resource `Calculation` + * Add support for `create_from_calculation`, `create_reversal`, `create`, `list_line_items`, and `retrieve` methods on resource `Transaction` + * Add support for `currency_conversion` on `Checkout.Session` + * Add support for new value `automatic_async` on enum `PaymentIntent.capture_method` + * Add support for new value `link` on enum `PaymentLink.payment_method_types[]` + * Add support for `automatic_payment_methods` on `SetupIntent` + +## 10.10.0 - 2023-03-16 +* [#1457](https://github.com/stripe/stripe-php/pull/1457) API Updates + * Add support for `future_requirements` and `requirements` on `BankAccount` + * Add support for new value `automatic_async` on enum `PaymentIntent.capture_method` + * Add support for new value `cashapp` on enum `PaymentLink.payment_method_types[]` + * Add support for `cashapp` on `PaymentMethod` + * Add support for new value `cashapp` on enum `PaymentMethod.type` +* [#1454](https://github.com/stripe/stripe-php/pull/1454) Update generated code (new) + * Add support for new value `cashapp` on enum `PaymentLink.payment_method_types[]` + * Add support for `cashapp` on `PaymentMethod` + * Add support for new value `cashapp` on enum `PaymentMethod.type` + +## 10.9.1 - 2023-03-14 +* [#1453](https://github.com/stripe/stripe-php/pull/1453) Restore StripeClient.getService + +## 10.9.0 - 2023-03-09 +* [#1450](https://github.com/stripe/stripe-php/pull/1450) API Updates + * Add support for `cancellation_details` on `Subscription` + * Fix return types on custom methods (extends https://github.com/stripe/stripe-php/pull/1446) + +* [#1446](https://github.com/stripe/stripe-php/pull/1446) stripe->customers->retrievePaymentMethod returns the wrong class (type hint) + +## 10.8.0 - 2023-03-02 +* [#1447](https://github.com/stripe/stripe-php/pull/1447) API Updates + * Add support for `reconciliation_status` on `Payout` + * Add support for new value `lease_tax` on enum `TaxRate.tax_type` + +## 10.7.0 - 2023-02-23 +* [#1444](https://github.com/stripe/stripe-php/pull/1444) API Updates + * Add support for new value `igst` on enum `TaxRate.tax_type` + +## 10.6.1 - 2023-02-21 +* [#1443](https://github.com/stripe/stripe-php/pull/1443) Remove init.php from the list of ignored files + +## 10.6.0 - 2023-02-16 +* [#1441](https://github.com/stripe/stripe-php/pull/1441) API Updates + * Add support for `refund_payment` method on resource `Terminal.Reader` + * Add support for `custom_fields` on `Checkout.Session` and `PaymentLink` +* [#1236](https://github.com/stripe/stripe-php/pull/1236) subscription_proration_date not always presented in Invoice +* [#1431](https://github.com/stripe/stripe-php/pull/1431) Fix: Do not use unbounded version constraint for `actions/checkout` +* [#1436](https://github.com/stripe/stripe-php/pull/1436) Enhancement: Enable and configure `visibility_required` fixer +* [#1432](https://github.com/stripe/stripe-php/pull/1432) Enhancement: Update `actions/cache` +* [#1434](https://github.com/stripe/stripe-php/pull/1434) Fix: Remove parentheses +* [#1433](https://github.com/stripe/stripe-php/pull/1433) Enhancement: Run tests on PHP 8.2 +* [#1438](https://github.com/stripe/stripe-php/pull/1438) Update .gitattributes + +## 10.5.0 - 2023-02-02 +* [#1439](https://github.com/stripe/stripe-php/pull/1439) API Updates + * Add support for `resume` method on resource `Subscription` + * Add support for `amount_shipping` and `shipping_cost` on `CreditNote` and `Invoice` + * Add support for `shipping_details` on `Invoice` + * Add support for `invoice_creation` on `PaymentLink` + * Add support for `trial_settings` on `Subscription` + * Add support for new value `paused` on enum `Subscription.status` + +## 10.4.0 - 2023-01-19 +* [#1381](https://github.com/stripe/stripe-php/pull/1381) Add getService methods to StripeClient and AbstractServiceFactory to allow mocking +* [#1424](https://github.com/stripe/stripe-php/pull/1424) API Updates + + * Added `REFUND_CREATED`, `REFUND_UPDATED` event definitions. +* [#1426](https://github.com/stripe/stripe-php/pull/1426) Ignore PHP version for formatting +* [#1425](https://github.com/stripe/stripe-php/pull/1425) Fix Stripe::setAccountId parameter type +* [#1418](https://github.com/stripe/stripe-php/pull/1418) Switch to mb_convert_encoding to fix utf8_encode deprecation warning + +## 10.3.0 - 2022-12-22 +* [#1413](https://github.com/stripe/stripe-php/pull/1413) API Updates + Change `CheckoutSession.cancel_url` to be nullable. + +## 10.2.0 - 2022-12-15 +* [#1411](https://github.com/stripe/stripe-php/pull/1411) API Updates + * Add support for new value `invoice_overpaid` on enum `CustomerBalanceTransaction.type` +* [#1407](https://github.com/stripe/stripe-php/pull/1407) API Updates + + +## 10.1.0 - 2022-12-06 +* [#1405](https://github.com/stripe/stripe-php/pull/1405) API Updates + * Add support for `flow` on `BillingPortal.Session` +* [#1404](https://github.com/stripe/stripe-php/pull/1404) API Updates + * Remove support for resources `Order` and `Sku` + * Remove support for `all`, `cancel`, `create`, `list_line_items`, `reopen`, `retrieve`, `submit`, and `update` methods on resource `Order` + * Remove support for `all`, `create`, `delete`, `retrieve`, and `update` methods on resource `Sku` + * Add support for `custom_text` on `Checkout.Session` and `PaymentLink` + * Add support for `invoice_creation` and `invoice` on `Checkout.Session` + * Remove support for `product` on `LineItem` + * Add support for `latest_charge` on `PaymentIntent` + * Remove support for `charges` on `PaymentIntent` + +## 10.0.0 - 2022-11-16 +* [#1392](https://github.com/stripe/stripe-php/pull/1392) Next major release changes + +Breaking changes that arose during code generation of the library that we postponed for the next major version. For changes to the Stripe products, read more at https://stripe.com/docs/upgrades#2022-11-15. + +"⚠️" symbol highlights breaking changes. + +### Deprecated +* [#1382](https://github.com/stripe/stripe-php/pull/1382) Mark `resource.save` as deprecated. Prefer the static update method that doesn't require retrieval of the resource to update it. +```PHP +// before +$resource = Price::retrieve(self::TEST_RESOURCE_ID); +$resource->metadata['key'] = 'value'; +$resource->save(); + +// after +$resource = Price::update('price_123', [ + 'metadata' => ['key' => 'value'], +]); +``` + +### ⚠️ Removed +- [#1377](https://github.com/stripe/stripe-php/pull/1377) Removed deprecated `Sku` resource and service +- [#1375](https://github.com/stripe/stripe-php/pull/1375) Removed deprecated `Orders` resource and service +- [#1375](https://github.com/stripe/stripe-php/pull/1375) Removed deprecated `Product` field from the `LineItem` +- [#1388](https://github.com/stripe/stripe-php/pull/1388) Removed deprecated `AlipayAccount` resource +- [#1396](https://github.com/stripe/stripe-php/pull/1396) Removed `charges` field on `PaymentIntent` and replace it with `latest_charge`. + + +## 9.9.0 - 2022-11-08 +* [#1394](https://github.com/stripe/stripe-php/pull/1394) API Updates + * Add support for new values `eg_tin`, `ph_tin`, and `tr_tin` on enum `TaxId.type` +* [#1389](https://github.com/stripe/stripe-php/pull/1389) API Updates + * Add support for `on_behalf_of` on `Subscription` +* [#1379](https://github.com/stripe/stripe-php/pull/1379) Do not run Coveralls in PR-s + +## 9.8.0 - 2022-10-20 +* [#1383](https://github.com/stripe/stripe-php/pull/1383) API Updates + * Add support for new values `jp_trn` and `ke_pin` on enum `TaxId.type` +* [#1293](https://github.com/stripe/stripe-php/pull/1293) Install deps in the install step of CI +* [#1291](https://github.com/stripe/stripe-php/pull/1291) Fix: Configure finder for `friendsofphp/php-cs-fixer` + +## 9.7.0 - 2022-10-13 +* [#1376](https://github.com/stripe/stripe-php/pull/1376) API Updates + * Add support for `network_data` on `Issuing.Authorization` +* [#1374](https://github.com/stripe/stripe-php/pull/1374) Add request_log_url on ErrorObject +* [#1370](https://github.com/stripe/stripe-php/pull/1370) API Updates + * Add support for `created` on `Checkout.Session` + +## 9.6.0 - 2022-09-15 +* [#1365](https://github.com/stripe/stripe-php/pull/1365) API Updates + * Add support for `from_invoice` and `latest_revision` on `Invoice` + * Add support for new value `pix` on enum `PaymentLink.payment_method_types[]` + * Add support for `pix` on `PaymentMethod` + * Add support for new value `pix` on enum `PaymentMethod.type` + * Add support for `created` on `Treasury.CreditReversal` and `Treasury.DebitReversal` + +## 9.5.0 - 2022-09-06 +* [#1364](https://github.com/stripe/stripe-php/pull/1364) API Updates + * Add support for new value `terminal_reader_splashscreen` on enum `File.purpose` +* [#1363](https://github.com/stripe/stripe-php/pull/1363) chore: Update PHP tests to handle search methods. + +## 9.4.0 - 2022-08-26 +* [#1362](https://github.com/stripe/stripe-php/pull/1362) API Updates + * Add support for `login_page` on `BillingPortal.Configuration` +* [#1360](https://github.com/stripe/stripe-php/pull/1360) Add test coverage using Coveralls +* [#1361](https://github.com/stripe/stripe-php/pull/1361) fix: Fix type hints for error objects. + * Update `Invoice.last_finalization_error`, `PaymentIntent.last_payment_error`, `SetupAttempt.setup_error` and `SetupIntent.setup_error` type to be `StripeObject`. + * Addresses https://github.com/stripe/stripe-php/issues/1353. The library today does not actually return a `ErrorObject` for these fields, so the type annotation was incorrect. +* [#1356](https://github.com/stripe/stripe-php/pull/1356) Add beta readme.md section + +## 9.3.0 - 2022-08-23 +* [#1355](https://github.com/stripe/stripe-php/pull/1355) API Updates + * Change type of `Treasury.OutboundTransfer.destination_payment_method` from `string` to `string | null` + * Change the return type of `CustomerService.fundCashBalance` test helper from `CustomerBalanceTransaction` to `CustomerCashBalanceTransaction`. + * This would generally be considered a breaking change, but we've worked with all existing users to migrate and are comfortable releasing this as a minor as it is solely a test helper method. This was essentially broken prior to this change. + +## 9.2.0 - 2022-08-19 +* [#1352](https://github.com/stripe/stripe-php/pull/1352) API Updates + * Add support for new resource `CustomerCashBalanceTransaction` + * Add support for `currency` on `PaymentLink` + * Add constant for `customer_cash_balance_transaction.created` webhook event. +* [#1351](https://github.com/stripe/stripe-php/pull/1351) Add a support section to the readme +* [#1304](https://github.com/stripe/stripe-php/pull/1304) Allow passing PSR-3 loggers to setLogger as they are compatible + +## 9.1.0 - 2022-08-11 +* [#1348](https://github.com/stripe/stripe-php/pull/1348) API Updates + * Add support for `payment_method_collection` on `Checkout.Session` and `PaymentLink` + +* [#1346](https://github.com/stripe/stripe-php/pull/1346) API Updates + * Add support for `expires_at` on `Apps.Secret` + +## 9.0.0 - 2022-08-02 + +Breaking changes that arose during code generation of the library that we postponed for the next major version. For changes to the SDK, read more detailed description at https://github.com/stripe/stripe-php/wiki/Migration-guide-for-v9. For changes to the Stripe products, read more at https://stripe.com/docs/upgrades#2022-08-01. + +"⚠️" symbol highlights breaking changes. + +* [#1344](https://github.com/stripe/stripe-php/pull/1344) API Updates +* [#1337](https://github.com/stripe/stripe-php/pull/1337) API Updates +* [#1273](https://github.com/stripe/stripe-php/pull/1273) Add some PHPDoc return types and fixes +* [#1341](https://github.com/stripe/stripe-php/pull/1341) Next major release changes + +### Added +* Add `alternate_statement_descriptors`, `authorization_code`, and `level3` properties to `Charge` resource. +* Add `previewLines` method to `CreditNote` resource. +* Add `transfer_data` property to `Subscription` resource. +* Add `SOURCE_TYPE_FPX` constant to `Transfer` resource. +* Add new error code constants to `ErrorObject`. +* Add support for `shipping_cost` and `shipping_details` on `Checkout.Session` + +### ⚠️ Changed +* Updated certificate bundle ([#1314](https://github.com/stripe/stripe-php/pull/1314)) +* Add `params` parameter to `close` method in `Dispute` resource. + +### ⚠️ Removed +* Remove deprecated `AlipayAccount`, `BitcoinReceiver`, `BitcoinTransaction`, `Recipient`, `RecipientTransfer`, and `ThreeDSecure` resources. +* Remove `CAPABILITY_CARD_PAYMENTS`, `CAPABILITY_LEGACY_PAYMENTS`, `CAPABILITY_PLATFORM_PAYMENTS`, `CAPABILITY_TRANSFERS`, `CAPABILITY_STATUS_ACTIVE`, `CAPABILITY_STATUS_INACTIVE`, and `CAPABILITY_STATUS_PENDING` constants from `Account` resource. Please use up-to-date values from https://stripe.com/docs/connect/account-capabilities. +* Remove `AssociatedObjects` array property from `EphemeralKey` resource. The field was undocumented and unsupported. +* Remove `details` method from `Card` resource. The endpoint was deprecated and no longer exists. +* Remove `recipient` property from `Card` resource. The property was deprecated. +* Remove ability to list `Card` resources for a particular `Recipient`. +* Remove `sources` property from `Card` resource. The property was deprecated. +* Remove `FAILURE_REASON` constant from `Refund` resource. The value was deprecated. +* Remove `Recipient` resource. The resource was deprecated. +* Remove `OrderItem` resource. The resource was deprecated. +* Remove `all` method from `LineItem`. +* Remove `cancel` method from `Transfer` and `TransferService`. This method is deprecated. +* Remove `allTransactions` method from `SourceService` service. Please use `allSourceTransactions` method instead. +* Remove `persons` method from `Account` resource. Please use `allPersons` method instead. +* Remove `sourceTransactions` method from `Source` resource. Please use `allSourceTransactions` method instead. +* Remove `usageRecordSummaries` method from `SubscriptionItem` resource. Please use `allUsageRecordSummaries` method instead. +* Remove `SOURCE_TYPE_ALIPAY_ACCOUNT` and `SOURCE_TYPE_FINANCING` constants from `Transfer` resource. The values were deprecated and are no longer in use. +* Remove deprecated error code constants from `ErrorObject`: `CODE_ACCOUNT_ALREADY_EXISTS`, `CODE_ORDER_CREATION_FAILED`, `CODE_ORDER_REQUIRED_SETTINGS`, `CODE_ORDER_STATUS_INVALID`, `CODE_ORDER_UPSTREAM_TIMEOUT`, and `CODE_UPSTREAM_ORDER_CREATION_FAILED`. +* Remove deprecated event constants from `Webhook`: `ISSUER_FRAUD_RECORD_CREATED`, ` ORDER_PAYMENT_FAILED`, `ORDER_PAYMENT_SUCCEEDED`, `ORDER_UPDATED`, `ORDER_RETURN_CREATED`, `PAYMENT_METHOD_CARD_AUTOMATICALLY_UPDATED`, `PING`, `PROMOTION_CODE_DELETED`, and `TREASURY_RECEIVED_CREDIT_REVERSED`. The events are deprecated and no longer sent by Stripe. + +## 8.12.0 - 2022-07-25 +* [#1332](https://github.com/stripe/stripe-php/pull/1332) API Updates + * Add support for `default_currency` and `invoice_credit_balance` on `Customer` + + +## 8.11.0 - 2022-07-18 +* [#1324](https://github.com/stripe/stripe-php/pull/1324) API Updates + * Add support for new value `blik` on enum `PaymentLink.payment_method_types[]` + * Add support for `blik` on `PaymentMethod` + * Add support for new value `blik` on enum `PaymentMethod.type` + * Add `Invoice.upcomingLines` method. + * Add `SourceService.allSourceTransactions` method. +* [#1322](https://github.com/stripe/stripe-php/pull/1322) API Updates + * Change type of `source_type` on `Transfer` from nullable string to string (comment-only change) + +## 8.10.0 - 2022-07-07 +* [#1319](https://github.com/stripe/stripe-php/pull/1319) API Updates + * Add support for `currency_options` on `Coupon` and `Price` + * Add support for `currency` on `Subscription` +* [#1318](https://github.com/stripe/stripe-php/pull/1318) API Updates + * Add support for new values financial_connections.account.created, financial_connections.account.deactivated, financial_connections.account.disconnected, financial_connections.account.reactivated, and financial_connections.account.refreshed_balance on `Event`. + +## 8.9.0 - 2022-06-29 +* [#1316](https://github.com/stripe/stripe-php/pull/1316) API Updates + * Add support for `deliver_card`, `fail_card`, `return_card`, and `ship_card` test helper methods on resource `Issuing.Card` + * Add support for `subtotal_excluding_tax` on `CreditNote` and `Invoice` + * Add support for `amount_excluding_tax` and `unit_amount_excluding_tax` on `CreditNoteLineItem` and `InvoiceLineItem` + * Add support for `total_excluding_tax` on `Invoice` + * Change type of `PaymentLink.payment_method_types[]` from `literal('card')` to `enum` + * Add support for `promptpay` on `PaymentMethod` + * Add support for new value `promptpay` on enum `PaymentMethod.type` + * Add support for `hosted_regulatory_receipt_url` and `reversal_details` on `Treasury.ReceivedCredit` and `Treasury.ReceivedDebit` + +## 8.8.0 - 2022-06-23 +* [#1302](https://github.com/stripe/stripe-php/pull/1302) API Updates + * Add support for `custom_unit_amount` on `Price` +* [#1301](https://github.com/stripe/stripe-php/pull/1301) API Updates + + Documentation updates. + +## 8.7.0 - 2022-06-17 +* [#1306](https://github.com/stripe/stripe-php/pull/1306) API Updates + * Add support for `fund_cash_balance` test helper method on resource `Customer` + * Add support for `total_excluding_tax` on `CreditNote` + * Add support for `rendering_options` on `Invoice` +* [#1307](https://github.com/stripe/stripe-php/pull/1307) Support updating pre-release versions +* [#1305](https://github.com/stripe/stripe-php/pull/1305) Trigger workflows on beta branches +* [#1302](https://github.com/stripe/stripe-php/pull/1302) API Updates + * Add support for `custom_unit_amount` on `Price` +* [#1301](https://github.com/stripe/stripe-php/pull/1301) API Updates + + Documentation updates. + +## 8.6.0 - 2022-06-08 +* [#1300](https://github.com/stripe/stripe-php/pull/1300) API Updates + * Add support for `attach_to_self` and `flow_directions` on `SetupAttempt` + +## 8.5.0 - 2022-06-01 +* [#1298](https://github.com/stripe/stripe-php/pull/1298) API Updates + * Add support for `radar_options` on `Charge` and `PaymentMethod` + * Add support for new value `simulated_wisepos_e` on enum `Terminal.Reader.device_type` + +## 8.4.0 - 2022-05-26 +* [#1296](https://github.com/stripe/stripe-php/pull/1296) API Updates + * Add support for `persons` method on resource `Account` + * Add support for `balance_transactions` method on resource `Customer` + * Add support for `id_number_secondary_provided` on `Person` +* [#1295](https://github.com/stripe/stripe-php/pull/1295) API Updates + + +## 8.3.0 - 2022-05-23 +* [#1294](https://github.com/stripe/stripe-php/pull/1294) API Updates + * Add support for new resource `Apps.Secret` + * Add support for `affirm` and `link` on `PaymentMethod` + * Add support for new values `affirm` and `link` on enum `PaymentMethod.type` +* [#1289](https://github.com/stripe/stripe-php/pull/1289) fix: Update RequestOptions#redactedApiKey to stop exploding null. + +## 8.2.0 - 2022-05-19 +* [#1286](https://github.com/stripe/stripe-php/pull/1286) API Updates + * Add support for new resources `Treasury.CreditReversal`, `Treasury.DebitReversal`, `Treasury.FinancialAccountFeatures`, `Treasury.FinancialAccount`, `Treasury.FlowDetails`, `Treasury.InboundTransfer`, `Treasury.OutboundPayment`, `Treasury.OutboundTransfer`, `Treasury.ReceivedCredit`, `Treasury.ReceivedDebit`, `Treasury.TransactionEntry`, and `Treasury.Transaction` + * Add support for `retrieve_payment_method` method on resource `Customer` + * Add support for `all` and `list_owners` methods on resource `FinancialConnections.Account` + * Add support for `treasury` on `Issuing.Authorization`, `Issuing.Dispute`, and `Issuing.Transaction` + * Add support for `financial_account` on `Issuing.Card` + * Add support for `client_secret` on `Order` + * Add support for `attach_to_self` and `flow_directions` on `SetupIntent` + +## 8.1.0 - 2022-05-11 +* [#1284](https://github.com/stripe/stripe-php/pull/1284) API Updates + * Add support for `consent_collection`, `customer_creation`, `payment_intent_data`, `shipping_options`, `submit_type`, and `tax_id_collection` on `PaymentLink` + * Add support for `description` on `Subscription` + +## 8.0.0 - 2022-05-09 +* [#1283](https://github.com/stripe/stripe-php/pull/1283) Major version release of v8.0.0. The [migration guide](https://github.com/stripe/stripe-php/wiki/Migration-Guide-for-v8) contains more information. + (⚠️ = breaking changes): + * ⚠️ Replace the legacy `Order` API with the new `Order` API. + * Resource modified: `Order`. + * New methods: `cancel`, `list_line_items`, `reopen`, and `submit` + * Removed methods: `pay` and `return_order` + * Removed resources: `OrderItem` and `OrderReturn` + * Removed references from other resources: `Charge.order` + * ⚠️ Rename `\FinancialConnections\Account.refresh` method to `\FinancialConnections\Account.refresh_account` + * Add support for `amount_discount`, `amount_tax`, and `product` on `LineItem` + +## 7.128.0 - 2022-05-05 +* [#1282](https://github.com/stripe/stripe-php/pull/1282) API Updates + * Add support for `default_price` on `Product` + * Add support for `instructions_email` on `Refund` + + +## 7.127.0 - 2022-05-05 +* [#1281](https://github.com/stripe/stripe-php/pull/1281) API Updates + * Add support for new resources `FinancialConnections.AccountOwner`, `FinancialConnections.AccountOwnership`, `FinancialConnections.Account`, and `FinancialConnections.Session` +* [#1278](https://github.com/stripe/stripe-php/pull/1278) Pin setup-php action version. +* [#1277](https://github.com/stripe/stripe-php/pull/1277) API Updates + * Add support for `registered_address` on `Person` + +## 7.126.0 - 2022-05-03 +* [#1276](https://github.com/stripe/stripe-php/pull/1276) API Updates + * Add support for new resource `CashBalance` + * Change type of `BillingPortal.Configuration.application` from `$Application` to `deletable($Application)` + * Add support for `cash_balance` on `Customer` + * Add support for `application` on `Invoice`, `Quote`, `SubscriptionSchedule`, and `Subscription` + * Add support for new value `eu_oss_vat` on enum `TaxId.type` +* [#1274](https://github.com/stripe/stripe-php/pull/1274) Fix PHPDoc on Discount for nullable properties +* [#1272](https://github.com/stripe/stripe-php/pull/1272) Allow users to pass a custom IPRESOLVE cURL option. + +## 7.125.0 - 2022-04-21 +* [#1270](https://github.com/stripe/stripe-php/pull/1270) API Updates + * Add support for `expire` test helper method on resource `Refund` + +## 7.124.0 - 2022-04-18 +* [#1265](https://github.com/stripe/stripe-php/pull/1265) API Updates + * Add support for new resources `FundingInstructions` and `Terminal.Configuration` + * Add support for `create_funding_instructions` method on resource `Customer` + * Add support for `amount_details` on `PaymentIntent` + * Add support for `customer_balance` on `PaymentMethod` + * Add support for new value `customer_balance` on enum `PaymentMethod.type` + * Add support for `configuration_overrides` on `Terminal.Location` + + +## 7.123.0 - 2022-04-13 +* [#1263](https://github.com/stripe/stripe-php/pull/1263) API Updates + * Add support for `increment_authorization` method on resource `PaymentIntent` +* [#1262](https://github.com/stripe/stripe-php/pull/1262) Add support for updating the version of the repo +* [#1230](https://github.com/stripe/stripe-php/pull/1230) Add PHPDoc return types +* [#1242](https://github.com/stripe/stripe-php/pull/1242) Fix some PHPDoc in tests + +## 7.122.0 - 2022-04-08 +* [#1261](https://github.com/stripe/stripe-php/pull/1261) API Updates + * Add support for `apply_customer_balance` method on resource `PaymentIntent` +* [#1259](https://github.com/stripe/stripe-php/pull/1259) API Updates + + * Add `payment_intent.partially_funded`, `terminal.reader.action_failed`, and `terminal.reader.action_succeeded` events. + +## 7.121.0 - 2022-03-30 +* [#1258](https://github.com/stripe/stripe-php/pull/1258) API Updates + * Add support for `cancel_action`, `process_payment_intent`, `process_setup_intent`, and `set_reader_display` methods on resource `Terminal.Reader` + * Add support for `action` on `Terminal.Reader` + +## 7.120.0 - 2022-03-29 +* [#1257](https://github.com/stripe/stripe-php/pull/1257) API Updates + * Add support for Search API + * Add support for `search` method on resources `Charge`, `Customer`, `Invoice`, `PaymentIntent`, `Price`, `Product`, and `Subscription` + +## 7.119.0 - 2022-03-25 +* [#1256](https://github.com/stripe/stripe-php/pull/1256) API Updates + * Add support for PayNow and US Bank Accounts Debits payments + * Add support for `paynow` and `us_bank_account` on `PaymentMethod` + * Add support for new values `paynow` and `us_bank_account` on enum `PaymentMethod.type` + * Add support for `failure_balance_transaction` on `Charge` + +## 7.118.0 - 2022-03-23 +* [#1255](https://github.com/stripe/stripe-php/pull/1255) API Updates + * Add support for `cancel` method on resource `Refund` + * Add support for new values `bg_uic`, `hu_tin`, and `si_tin` on enum `TaxId.type` + * Add `test_helpers.test_clock.advancing`, `test_helpers.test_clock.created`, `test_helpers.test_clock.deleted`, `test_helpers.test_clock.internal_failure`, and `test_helpers.test_clock.ready` events. + + +## 7.117.0 - 2022-03-18 +* [#1254](https://github.com/stripe/stripe-php/pull/1254) API Updates + * Add support for `status` on `Card` +* [#1251](https://github.com/stripe/stripe-php/pull/1251) Add support for SearchResult objects. +* [#1249](https://github.com/stripe/stripe-php/pull/1249) Add missing constant for payment_behavior + +## 7.116.0 - 2022-03-02 +* [#1248](https://github.com/stripe/stripe-php/pull/1248) API Updates + * Add support for `proration_details` on `InvoiceLineItem` + + +## 7.115.0 - 2022-03-01 +* [#1245](https://github.com/stripe/stripe-php/pull/1245) [#1247](https://github.com/stripe/stripe-php/pull/1247) API Updates + * Add support for new resource `TestHelpers.TestClock` + * Add support for `test_clock` on `Customer`, `Invoice`, `InvoiceItem`, `Quote`, `Subscription`, and `SubscriptionSchedule` + * Add support for `next_action` on `Refund` + * Add support for `konbini` on `PaymentMethod` +* [#1244](https://github.com/stripe/stripe-php/pull/1244) API Updates + * Add support for new values `bbpos_wisepad3` and `stripe_m2` on enum `Terminal.Reader.device_type` + +## 7.114.0 - 2022-02-15 +* [#1243](https://github.com/stripe/stripe-php/pull/1243) Add test +* [#1240](https://github.com/stripe/stripe-php/pull/1240) API Updates + * Add support for `verify_microdeposits` method on resources `PaymentIntent` and `SetupIntent` +* [#1241](https://github.com/stripe/stripe-php/pull/1241) Add generic parameter to \Stripe\Collection usages + +## 7.113.0 - 2022-02-03 +* [#1239](https://github.com/stripe/stripe-php/pull/1239) API Updates + * Add `REASON_EXPIRED_UNCAPTURED_CHARGE` enum value on `Refund`. + +## 7.112.0 - 2022-01-25 +* [#1235](https://github.com/stripe/stripe-php/pull/1235) API Updates + * Add support for `phone_number_collection` on `PaymentLink` + * Add support for new value `is_vat` on enum `TaxId.type` + + +## 7.111.0 - 2022-01-20 +* [#1233](https://github.com/stripe/stripe-php/pull/1233) API Updates + * Add support for new resource `PaymentLink` + * Add support for `payment_link` on `Checkout.Session` + +## 7.110.0 - 2022-01-13 +* [#1232](https://github.com/stripe/stripe-php/pull/1232) API Updates + * Add support for `paid_out_of_band` on `Invoice` + +## 7.109.0 - 2022-01-12 +* [#1231](https://github.com/stripe/stripe-php/pull/1231) API Updates + * Add support for `customer_creation` on `Checkout.Session` +* [#1227](https://github.com/stripe/stripe-php/pull/1227) Update docs URLs + +## 7.108.0 - 2021-12-22 +* [#1226](https://github.com/stripe/stripe-php/pull/1226) Upgrade php-cs-fixer to 3.4.0. +* [#1222](https://github.com/stripe/stripe-php/pull/1222) API Updates + * Add support for `processing` on `PaymentIntent` +* [#1220](https://github.com/stripe/stripe-php/pull/1220) API Updates + +## 7.107.0 - 2021-12-09 +* [#1219](https://github.com/stripe/stripe-php/pull/1219) API Updates + * Add support for `metadata` on `BillingPortal.Configuration` + * Add support for `wallets` on `Issuing.Card` + +## 7.106.0 - 2021-12-09 +* [#1218](https://github.com/stripe/stripe-php/pull/1218) API Updates + * Add support for new values `ge_vat` and `ua_vat` on enum `TaxId.type` +* [#1216](https://github.com/stripe/stripe-php/pull/1216) Fix namespaced classes in @return PHPDoc. +* [#1214](https://github.com/stripe/stripe-php/pull/1214) Announce PHP8 support in CHANGELOG.md + +## 7.105.0 - 2021-12-06 +* [#1213](https://github.com/stripe/stripe-php/pull/1213) PHP 8.1 missing ReturnTypeWillChange annotations. +* As of this version, PHP 8.1 is officially supported. + +## 7.104.0 - 2021-12-01 +* [#1211](https://github.com/stripe/stripe-php/pull/1211) PHPStan compatibility with PHP8.x +* [#1209](https://github.com/stripe/stripe-php/pull/1209) PHPUnit compatibility with PHP 8.x + +## 7.103.0 - 2021-11-19 +* [#1206](https://github.com/stripe/stripe-php/pull/1206) API Updates + * Add support for new value `jct` on enum `TaxRate.tax_type` + +## 7.102.0 - 2021-11-17 +* [#1205](https://github.com/stripe/stripe-php/pull/1205) API Updates + * Add support for `automatic_payment_methods` on `PaymentIntent` + +## 7.101.0 - 2021-11-16 +* [#1203](https://github.com/stripe/stripe-php/pull/1203) API Updates + * Add support for new resource `ShippingRate` + * Add support for `shipping_options` and `shipping_rate` on `Checkout.Session` + * Add support for `expire` method on resource `Checkout.Session` + * Add support for `status` on `Checkout.Session` + +## 7.100.0 - 2021-10-11 +* [#1190](https://github.com/stripe/stripe-php/pull/1190) API Updates + * Add support for `klarna` on `PaymentMethod`. + +## 7.99.0 - 2021-10-11 +* [#1188](https://github.com/stripe/stripe-php/pull/1188) API Updates + * Add support for `list_payment_methods` method on resource `Customer` + +## 7.98.0 - 2021-10-07 +* [#1187](https://github.com/stripe/stripe-php/pull/1187) API Updates + * Add support for `phone_number_collection` on `Checkout.Session` + * Add support for new value `customer_id` on enum `Radar.ValueList.item_type` + * Add support for new value `bbpos_wisepos_e` on enum `Terminal.Reader.device_type` + +## 7.97.0 - 2021-09-16 +* [#1181](https://github.com/stripe/stripe-php/pull/1181) API Updates + * Add support for `full_name_aliases` on `Person` + +## 7.96.0 - 2021-09-15 +* [#1178](https://github.com/stripe/stripe-php/pull/1178) API Updates + * Add support for livemode on Reporting.ReportType + * Add support for new value `rst` on enum `TaxRate.tax_type` + +## 7.95.0 - 2021-09-01 +* [#1177](https://github.com/stripe/stripe-php/pull/1177) API Updates + * Add support for `future_requirements` on `Account`, `Capability`, and `Person` + * Add support for `after_expiration`, `consent`, `consent_collection`, `expires_at`, and `recovered_from` on `Checkout.Session` + +## 7.94.0 - 2021-08-19 +* [#1173](https://github.com/stripe/stripe-php/pull/1173) API Updates + * Add support for new value `fil` on enum `Checkout.Session.locale` + * Add support for new value `au_arn` on enum `TaxId.type` + +## 7.93.0 - 2021-08-11 +* [#1172](https://github.com/stripe/stripe-php/pull/1172) API Updates + * Add support for `locale` on `BillingPortal.Session` + +* [#1171](https://github.com/stripe/stripe-php/pull/1171) Fix typo in docblock `CurlClient::executeStreamingRequestWithRetries` + +## 7.92.0 - 2021-07-28 +* [#1167](https://github.com/stripe/stripe-php/pull/1167) API Updates + * Add support for `account_type` on `BankAccount` + * Add support for new value `redacted` on enum `Review.closed_reason` + +## 7.91.0 - 2021-07-22 +* [#1164](https://github.com/stripe/stripe-php/pull/1164) API Updates + * Add support for new values `hr`, `ko`, and `vi` on enum `Checkout.Session.locale` + * Add support for `payment_settings` on `Subscription` + +## 7.90.0 - 2021-07-20 +* [#1163](https://github.com/stripe/stripe-php/pull/1163) API Updates + * Add support for `wallet` on `Issuing.Transaction` +* [#1160](https://github.com/stripe/stripe-php/pull/1160) Remove unused API error types from docs. + +## 7.89.0 - 2021-07-14 +* [#1158](https://github.com/stripe/stripe-php/pull/1158) API Updates + * Add support for `list_computed_upfront_line_items` method on resource `Quote` +* [#1157](https://github.com/stripe/stripe-php/pull/1157) Improve readme for old PHP versions + +## 7.88.0 - 2021-07-09 +* [#1152](https://github.com/stripe/stripe-php/pull/1152) API Updates + * Add support for new resource `Quote` + * Add support for `quote` on `Invoice` + * Add support for new value `quote_accept` on enum `Invoice.billing_reason` +* [#1155](https://github.com/stripe/stripe-php/pull/1155) Add streaming methods to Service infra + * Add support for `setStreamingHttpClient` and `streamingHttpClient` to `ApiRequestor` + * Add support for `getStreamingClient` and `requestStream` to `AbstractService` + * Add support for `requestStream` to `BaseStripeClient` + * `\Stripe\RequestOptions::parse` now clones its input if it is already a `RequestOptions` object, to prevent accidental mutation. +* [#1151](https://github.com/stripe/stripe-php/pull/1151) Add `mode` constants into Checkout\Session + +## 7.87.0 - 2021-06-30 +* [#1149](https://github.com/stripe/stripe-php/pull/1149) API Updates + * Add support for `wechat_pay` on `PaymentMethod` +* [#1143](https://github.com/stripe/stripe-php/pull/1143) Streaming requests +* [#1138](https://github.com/stripe/stripe-php/pull/1138) Deprecate travis + +## 7.86.0 - 2021-06-25 +* [#1145](https://github.com/stripe/stripe-php/pull/1145) API Updates + * Add support for `boleto` on `PaymentMethod`. + * Add support for `il_vat` as a member of the `TaxID.Type` enum. + +## 7.85.0 - 2021-06-18 +* [#1142](https://github.com/stripe/stripe-php/pull/1142) API Updates + * Add support for new TaxId types: `ca_pst_mb`, `ca_pst_bc`, `ca_gst_hst`, and `ca_pst_sk`. + +## 7.84.0 - 2021-06-16 +* [#1141](https://github.com/stripe/stripe-php/pull/1141) Update PHPDocs + * Add support for `url` on `Checkout\Session` + + +## 7.83.0 - 2021-06-07 +* [#1140](https://github.com/stripe/stripe-php/pull/1140) API Updates + * Added support for `tax_id_collection` on `Checkout\Session` and `Checkout\Session#create` + * Update `Location` to be expandable on `Terminal\Reader` + +## 7.82.0 - 2021-06-04 +* [#1136](https://github.com/stripe/stripe-php/pull/1136) Update PHPDocs + * Add support for `controller` on `Account`. + +## 7.81.0 - 2021-06-04 +* [#1135](https://github.com/stripe/stripe-php/pull/1135) API Updates + * Add support for new resource `TaxCode` + * Add support for `automatic_tax` `Invoice` and`Checkout.Session`. + * Add support for `tax_behavior` on `Price` + * Add support for `tax_code` on `Product` + * Add support for `tax` on `Customer` + * Add support for `tax_type` enum on `TaxRate` + +## 7.80.0 - 2021-05-26 +* [#1130](https://github.com/stripe/stripe-php/pull/1130) Update PHPDocs + +## 7.79.0 - 2021-05-19 +* [#1126](https://github.com/stripe/stripe-php/pull/1126) API Updates + * Added support for new resource `Identity.VerificationReport` + * Added support for new resource `Identity.VerificationSession` + * `File#list.purpose` and `File.purpose` added new enum members: `identity_document_downloadable` and `selfie`. + +## 7.78.0 - 2021-05-05 +* [#1120](https://github.com/stripe/stripe-php/pull/1120) Update PHPDocs + * Add support for `Radar.EarlyFraudWarning.payment_intent` + +## 7.77.0 - 2021-04-12 +* [#1110](https://github.com/stripe/stripe-php/pull/1110) Update PHPDocs + * Add support for `acss_debit` on `PaymentMethod` + * Add support for `payment_method_options` on `Checkout\Session` +* [#1107](https://github.com/stripe/stripe-php/pull/1107) Remove duplicate object phpdoc + +## 7.76.0 - 2021-03-22 +* [#1100](https://github.com/stripe/stripe-php/pull/1100) Update PHPDocs + * Added support for `amount_shipping` on `Checkout.Session.total_details` +* [#1088](https://github.com/stripe/stripe-php/pull/1088) Make possibility to extend CurlClient + +## 7.75.0 - 2021-02-22 +* [#1094](https://github.com/stripe/stripe-php/pull/1094) Add support for Billing Portal Configuration API + +## 7.74.0 - 2021-02-17 +* [#1093](https://github.com/stripe/stripe-php/pull/1093) Update PHPDocs + * Add support for on_behalf_of to Invoice + +## 7.73.0 - 2021-02-16 +* [#1091](https://github.com/stripe/stripe-php/pull/1091) Update PHPDocs + * Add support for `afterpay_clearpay` on `PaymentMethod`. + +## 7.72.0 - 2021-02-08 +* [#1089](https://github.com/stripe/stripe-php/pull/1089) Update PHPDocs + * Add support for `afterpay_clearpay_payments` on `Account.capabilities` + * Add support for `payment_settings` on `Invoice` + +## 7.71.0 - 2021-02-05 +* [#1087](https://github.com/stripe/stripe-php/pull/1087) Update PHPDocs +* [#1086](https://github.com/stripe/stripe-php/pull/1086) Update CA cert bundle URL + +## 7.70.0 - 2021-02-03 +* [#1085](https://github.com/stripe/stripe-php/pull/1085) Update PHPDocs + * Add support for `nationality` on `Person` + * Add member `gb_vat` of `TaxID` enum + + +## 7.69.0 - 2021-01-21 +* [#1079](https://github.com/stripe/stripe-php/pull/1079) Update PHPDocs + +## 7.68.0 - 2021-01-14 +* [#1063](https://github.com/stripe/stripe-php/pull/1063) Multiple API changes +* [#1061](https://github.com/stripe/stripe-php/pull/1061) Bump phpDocumentor to 3.0.0 + +## 7.67.0 - 2020-12-09 +* [#1060](https://github.com/stripe/stripe-php/pull/1060) Improve PHPDocs for `Discount` +* [#1059](https://github.com/stripe/stripe-php/pull/1059) Upgrade PHPStan to 0.12.59 +* [#1057](https://github.com/stripe/stripe-php/pull/1057) Bump PHP-CS-Fixer and update code + +## 7.66.1 - 2020-12-01 +* [#1054](https://github.com/stripe/stripe-php/pull/1054) Improve error message for invalid keys in StripeClient + +## 7.66.0 - 2020-11-24 +* [#1053](https://github.com/stripe/stripe-php/pull/1053) Update PHPDocs + +## 7.65.0 - 2020-11-19 +* [#1050](https://github.com/stripe/stripe-php/pull/1050) Added constants for `proration_behavior` on `Subscription` + +## 7.64.0 - 2020-11-18 +* [#1049](https://github.com/stripe/stripe-php/pull/1049) Update PHPDocs + +## 7.63.0 - 2020-11-17 +* [#1048](https://github.com/stripe/stripe-php/pull/1048) Update PHPDocs +* [#1046](https://github.com/stripe/stripe-php/pull/1046) Force IPv4 resolving + +## 7.62.0 - 2020-11-09 +* [#1041](https://github.com/stripe/stripe-php/pull/1041) Add missing constants on `Event` +* [#1038](https://github.com/stripe/stripe-php/pull/1038) Update PHPDocs + +## 7.61.0 - 2020-10-20 +* [#1030](https://github.com/stripe/stripe-php/pull/1030) Add support for `jp_rn` and `ru_kpp` as a `type` on `TaxId` + +## 7.60.0 - 2020-10-15 +* [#1027](https://github.com/stripe/stripe-php/pull/1027) Warn if opts are in params + +## 7.58.0 - 2020-10-14 +* [#1026](https://github.com/stripe/stripe-php/pull/1026) Add support for the Payout Reverse API + +## 7.57.0 - 2020-09-29 +* [#1020](https://github.com/stripe/stripe-php/pull/1020) Add support for the `SetupAttempt` resource and List API + +## 7.56.0 - 2020-09-25 +* [#1019](https://github.com/stripe/stripe-php/pull/1019) Update PHPDocs + +## 7.55.0 - 2020-09-24 +* [#1018](https://github.com/stripe/stripe-php/pull/1018) Multiple API changes + * Updated PHPDocs + * Added `TYPE_CONTRIBUTION` as a constant on `BalanceTransaction` + +## 7.54.0 - 2020-09-23 +* [#1017](https://github.com/stripe/stripe-php/pull/1017) Updated PHPDoc + +## 7.53.1 - 2020-09-22 +* [#1015](https://github.com/stripe/stripe-php/pull/1015) Bugfix: don't error on systems with php_uname in disablefunctions with whitespace + +## 7.53.0 - 2020-09-21 +* [#1016](https://github.com/stripe/stripe-php/pull/1016) Updated PHPDocs + +## 7.52.0 - 2020-09-08 +* [#1010](https://github.com/stripe/stripe-php/pull/1010) Update PHPDocs + +## 7.51.0 - 2020-09-02 +* [#1007](https://github.com/stripe/stripe-php/pull/1007) Multiple API changes + * Add support for the Issuing Dispute Submit API + * Add constants for `payment_status` on Checkout `Session` +* [#1003](https://github.com/stripe/stripe-php/pull/1003) Add trim to getSignatures to allow for leading whitespace. + +## 7.50.0 - 2020-08-28 +* [#1005](https://github.com/stripe/stripe-php/pull/1005) Updated PHPDocs + +## 7.49.0 - 2020-08-19 +* [#998](https://github.com/stripe/stripe-php/pull/998) PHPDocs updated + +## 7.48.0 - 2020-08-17 +* [#997](https://github.com/stripe/stripe-php/pull/997) PHPDocs updated +* [#996](https://github.com/stripe/stripe-php/pull/996) Fixing telemetry + +## 7.47.0 - 2020-08-13 +* [#994](https://github.com/stripe/stripe-php/pull/994) Nullable balance_transactions on issuing disputes +* [#991](https://github.com/stripe/stripe-php/pull/991) Fix invalid return types in OAuthService + +## 7.46.1 - 2020-08-07 +* [#990](https://github.com/stripe/stripe-php/pull/990) PHPdoc changes + +## 7.46.0 - 2020-08-05 +* [#989](https://github.com/stripe/stripe-php/pull/989) Add support for the `PromotionCode` resource and APIs + +## 7.45.0 - 2020-07-28 +* [#981](https://github.com/stripe/stripe-php/pull/981) PHPdoc updates + +## 7.44.0 - 2020-07-20 +* [#948](https://github.com/stripe/stripe-php/pull/948) Add `first()` and `last()` functions to `Collection` + +## 7.43.0 - 2020-07-17 +* [#975](https://github.com/stripe/stripe-php/pull/975) Add support for `political_exposure` on `Person` + +## 7.42.0 - 2020-07-15 +* [#974](https://github.com/stripe/stripe-php/pull/974) Add new constants for `purpose` on `File` + +## 7.41.1 - 2020-07-15 +* [#973](https://github.com/stripe/stripe-php/pull/973) Multiple PHPDoc fixes + +## 7.41.0 - 2020-07-14 +* [#971](https://github.com/stripe/stripe-php/pull/971) Adds enum values for `billing_address_collection` on Checkout `Session` + +## 7.40.0 - 2020-07-06 +* [#964](https://github.com/stripe/stripe-php/pull/964) Add OAuthService + +## 7.39.0 - 2020-06-25 +* [#960](https://github.com/stripe/stripe-php/pull/960) Add constants for `payment_behavior` on `Subscription` + +## 7.38.0 - 2020-06-24 +* [#959](https://github.com/stripe/stripe-php/pull/959) Add multiple constants missing for `Event` + +## 7.37.2 - 2020-06-23 +* [#957](https://github.com/stripe/stripe-php/pull/957) Updated PHPDocs + +## 7.37.1 - 2020-06-11 +* [#952](https://github.com/stripe/stripe-php/pull/952) Improve PHPDoc + +## 7.37.0 - 2020-06-09 +* [#950](https://github.com/stripe/stripe-php/pull/950) Add support for `id_npwp` and `my_frp` as `type` on `TaxId` + +## 7.36.2 - 2020-06-03 +* [#946](https://github.com/stripe/stripe-php/pull/946) Update PHPDoc + +## 7.36.1 - 2020-05-28 +* [#938](https://github.com/stripe/stripe-php/pull/938) Remove extra array_keys() call. +* [#942](https://github.com/stripe/stripe-php/pull/942) fix autopagination for service methods + +## 7.36.0 - 2020-05-21 +* [#937](https://github.com/stripe/stripe-php/pull/937) Add support for `ae_trn`, `cl_tin` and `sa_vat` as `type` on `TaxId` + +## 7.35.0 - 2020-05-20 +* [#936](https://github.com/stripe/stripe-php/pull/936) Add `anticipation_repayment` as a `type` on `BalanceTransaction` + +## 7.34.0 - 2020-05-18 +* [#934](https://github.com/stripe/stripe-php/pull/934) Add support for `issuing_dispute` as a `type` on `BalanceTransaction` + +## 7.33.1 - 2020-05-15 +* [#933](https://github.com/stripe/stripe-php/pull/933) Services bugfix: convert nested null params to empty strings + +## 7.33.0 - 2020-05-14 +* [#771](https://github.com/stripe/stripe-php/pull/771) Introduce client/services API. The [migration guide](https://github.com/stripe/stripe-php/wiki/Migration-to-StripeClient-and-services-in-7.33.0) contains before & after examples of the backwards-compatible changes. + +## 7.32.1 - 2020-05-13 +* [#932](https://github.com/stripe/stripe-php/pull/932) Fix multiple PHPDoc + +## 7.32.0 - 2020-05-11 +* [#931](https://github.com/stripe/stripe-php/pull/931) Add support for the `LineItem` resource and APIs + +## 7.31.0 - 2020-05-01 +* [#927](https://github.com/stripe/stripe-php/pull/927) Add support for new tax IDs + +## 7.30.0 - 2020-04-29 +* [#924](https://github.com/stripe/stripe-php/pull/924) Add support for the `Price` resource and APIs + +## 7.29.0 - 2020-04-22 +* [#920](https://github.com/stripe/stripe-php/pull/920) Add support for the `Session` resource and APIs on the `BillingPortal` namespace + +## 7.28.1 - 2020-04-10 +* [#915](https://github.com/stripe/stripe-php/pull/915) Improve PHPdocs for many classes + +## 7.28.0 - 2020-04-03 +* [#912](https://github.com/stripe/stripe-php/pull/912) Preserve backwards compatibility for typoed `TYPE_ADJUSTEMENT` enum. +* [#911](https://github.com/stripe/stripe-php/pull/911) Codegenerated PHPDoc for nested resources +* [#902](https://github.com/stripe/stripe-php/pull/902) Update docstrings for nested resources + +## 7.27.3 - 2020-03-18 +* [#899](https://github.com/stripe/stripe-php/pull/899) Convert keys to strings in `StripeObject::toArray()` + +## 7.27.2 - 2020-03-13 +* [#894](https://github.com/stripe/stripe-php/pull/894) Multiple PHPDocs changes + +## 7.27.1 - 2020-03-03 +* [#890](https://github.com/stripe/stripe-php/pull/890) Update PHPdoc + +## 7.27.0 - 2020-02-28 +* [#889](https://github.com/stripe/stripe-php/pull/889) Add new constants for `type` on `TaxId` + +## 7.26.0 - 2020-02-26 +* [#886](https://github.com/stripe/stripe-php/pull/886) Add support for listing Checkout `Session` +* [#883](https://github.com/stripe/stripe-php/pull/883) Add PHPDoc class descriptions + +## 7.25.0 - 2020-02-14 +* [#879](https://github.com/stripe/stripe-php/pull/879) Make `\Stripe\Collection` implement `\Countable` +* [#875](https://github.com/stripe/stripe-php/pull/875) Last set of PHP-CS-Fixer updates +* [#874](https://github.com/stripe/stripe-php/pull/874) Enable php_unit_internal_class rule +* [#873](https://github.com/stripe/stripe-php/pull/873) Add support for phpDocumentor in Makefile +* [#872](https://github.com/stripe/stripe-php/pull/872) Another batch of PHP-CS-Fixer rule updates +* [#871](https://github.com/stripe/stripe-php/pull/871) Fix a few PHPDoc comments +* [#870](https://github.com/stripe/stripe-php/pull/870) More PHP-CS-Fixer tweaks + +## 7.24.0 - 2020-02-10 +* [#862](https://github.com/stripe/stripe-php/pull/862) Better PHPDoc +* [#865](https://github.com/stripe/stripe-php/pull/865) Get closer to `@PhpCsFixer` standard ruleset + +## 7.23.0 - 2020-02-05 +* [#860](https://github.com/stripe/stripe-php/pull/860) Add PHPDoc types for expandable fields +* [#858](https://github.com/stripe/stripe-php/pull/858) Use `native_function_invocation` PHPStan rule +* [#857](https://github.com/stripe/stripe-php/pull/857) Update PHPDoc on nested resources +* [#855](https://github.com/stripe/stripe-php/pull/855) PHPDoc: `StripeObject` -> `ErrorObject` where appropriate +* [#837](https://github.com/stripe/stripe-php/pull/837) Autogen diff +* [#854](https://github.com/stripe/stripe-php/pull/854) Upgrade PHPStan and fix settings +* [#850](https://github.com/stripe/stripe-php/pull/850) Yet more PHPDoc updates + +## 7.22.0 - 2020-01-31 +* [#849](https://github.com/stripe/stripe-php/pull/849) Add new constants for `type` on `TaxId` +* [#843](https://github.com/stripe/stripe-php/pull/843) Even more PHPDoc fixes +* [#841](https://github.com/stripe/stripe-php/pull/841) More PHPDoc fixes + +## 7.21.1 - 2020-01-29 +* [#840](https://github.com/stripe/stripe-php/pull/840) Update phpdocs across multiple resources. + +## 7.21.0 - 2020-01-28 +* [#839](https://github.com/stripe/stripe-php/pull/839) Add support for `TYPE_ES_CIF` on `TaxId` + +## 7.20.0 - 2020-01-23 +* [#836](https://github.com/stripe/stripe-php/pull/836) Add new type values for `TaxId` + +## 7.19.1 - 2020-01-14 +* [#831](https://github.com/stripe/stripe-php/pull/831) Fix incorrect `UnexpectedValueException` instantiation + +## 7.19.0 - 2020-01-14 +* [#830](https://github.com/stripe/stripe-php/pull/830) Add support for `CreditNoteLineItem` + +## 7.18.0 - 2020-01-13 +* [#829](https://github.com/stripe/stripe-php/pull/829) Don't call php_uname function if disabled by php.ini + +## 7.17.0 - 2020-01-08 +* [#821](https://github.com/stripe/stripe-php/pull/821) Improve PHPDoc types for `ApiErrorException.get/setJsonBody()` methods + +## 7.16.0 - 2020-01-06 +* [#826](https://github.com/stripe/stripe-php/pull/826) Rename remaining `$options` to `$opts` +* [#825](https://github.com/stripe/stripe-php/pull/825) Update PHPDoc + +## 7.15.0 - 2020-01-06 +* [#824](https://github.com/stripe/stripe-php/pull/824) Add constant `TYPE_SG_UEN` to `TaxId` + +## 7.14.2 - 2019-12-04 +* [#816](https://github.com/stripe/stripe-php/pull/816) Disable autoloader when checking for `Throwable` + +## 7.14.1 - 2019-11-26 +* [#812](https://github.com/stripe/stripe-php/pull/812) Fix invalid PHPdoc on `Subscription` + +## 7.14.0 - 2019-11-26 +* [#811](https://github.com/stripe/stripe-php/pull/811) Add support for `CreditNote` preview. + +## 7.13.0 - 2019-11-19 +* [#808](https://github.com/stripe/stripe-php/pull/808) Add support for listing lines on an Invoice directly via `Invoice::allLines()` + +## 7.12.0 - 2019-11-08 + +- [#805](https://github.com/stripe/stripe-php/pull/805) Add Source::allSourceTransactions and SubscriptionItem::allUsageRecordSummaries +- [#798](https://github.com/stripe/stripe-php/pull/798) The argument of `array_key_exists` cannot be `null` +- [#803](https://github.com/stripe/stripe-php/pull/803) Removed unwanted got + +## 7.11.0 - 2019-11-06 + +- [#797](https://github.com/stripe/stripe-php/pull/797) Add support for reverse pagination + +## 7.10.0 - 2019-11-05 + +- [#795](https://github.com/stripe/stripe-php/pull/795) Add support for `Mandate` + +## 7.9.0 - 2019-11-05 + +- [#794](https://github.com/stripe/stripe-php/pull/794) Add PHPDoc to `ApiResponse` +- [#792](https://github.com/stripe/stripe-php/pull/792) Use single quotes for `OBJECT_NAME` constants + +## 7.8.0 - 2019-11-05 + +- [#790](https://github.com/stripe/stripe-php/pull/790) Mark nullable fields in PHPDoc +- [#788](https://github.com/stripe/stripe-php/pull/788) Early codegen fixes +- [#787](https://github.com/stripe/stripe-php/pull/787) Use PHPStan in Travis CI + +## 7.7.1 - 2019-10-25 + +- [#781](https://github.com/stripe/stripe-php/pull/781) Fix telemetry header +- [#780](https://github.com/stripe/stripe-php/pull/780) Contributor Convenant + +## 7.7.0 - 2019-10-23 + +- [#776](https://github.com/stripe/stripe-php/pull/776) Add `CAPABILITY_TRANSFERS` to `Account` +- [#778](https://github.com/stripe/stripe-php/pull/778) Add support for `TYPE_MX_RFC` type on `TaxId` + +## 7.6.0 - 2019-10-22 + +- [#770](https://github.com/stripe/stripe-php/pull/770) Add missing constants for Customer's `TaxId` + +## 7.5.0 - 2019-10-18 + +- [#768](https://github.com/stripe/stripe-php/pull/768) Redact API key in `RequestOptions` debug info + +## 7.4.0 - 2019-10-15 + +- [#764](https://github.com/stripe/stripe-php/pull/764) Add support for HTTP request monitoring callback + +## 7.3.1 - 2019-10-07 + +- [#755](https://github.com/stripe/stripe-php/pull/755) Respect Stripe-Should-Retry and Retry-After headers + +## 7.3.0 - 2019-10-02 + +- [#752](https://github.com/stripe/stripe-php/pull/752) Add `payment_intent.canceled` and `setup_intent.canceled` events +- [#749](https://github.com/stripe/stripe-php/pull/749) Call `toArray()` on objects only + +## 7.2.2 - 2019-09-24 + +- [#746](https://github.com/stripe/stripe-php/pull/746) Add missing decline codes + +## 7.2.1 - 2019-09-23 + +- [#744](https://github.com/stripe/stripe-php/pull/744) Added new PHPDoc + +## 7.2.0 - 2019-09-17 + +- [#738](https://github.com/stripe/stripe-php/pull/738) Added missing constants for `SetupIntent` events + +## 7.1.1 - 2019-09-16 + +- [#737](https://github.com/stripe/stripe-php/pull/737) Added new PHPDoc + +## 7.1.0 - 2019-09-13 + +- [#736](https://github.com/stripe/stripe-php/pull/736) Make `CaseInsensitiveArray` countable and traversable + +## 7.0.2 - 2019-09-06 + +- [#729](https://github.com/stripe/stripe-php/pull/729) Fix usage of `SignatureVerificationException` in PHPDoc blocks + +## 7.0.1 - 2019-09-05 + +- [#728](https://github.com/stripe/stripe-php/pull/728) Clean up Collection + +## 7.0.0 - 2019-09-03 + +Major version release. The [migration guide](https://github.com/stripe/stripe-php/wiki/Migration-guide-for-v7) contains a detailed list of backwards-incompatible changes with upgrade instructions. + +Pull requests included in this release (cf. [#552](https://github.com/stripe/stripe-php/pull/552)) (⚠️ = breaking changes): + +- ⚠️ Drop support for PHP 5.4 ([#551](https://github.com/stripe/stripe-php/pull/551)) +- ⚠️ Drop support for PHP 5.5 ([#554](https://github.com/stripe/stripe-php/pull/554)) +- Bump dependencies ([#553](https://github.com/stripe/stripe-php/pull/553)) +- Remove `CURLFile` check ([#555](https://github.com/stripe/stripe-php/pull/555)) +- Update constant definitions for PHP >= 5.6 ([#556](https://github.com/stripe/stripe-php/pull/556)) +- ⚠️ Remove `FileUpload` alias ([#557](https://github.com/stripe/stripe-php/pull/557)) +- Remove `curl_reset` check ([#570](https://github.com/stripe/stripe-php/pull/570)) +- Use `\Stripe\::class` constant instead of strings ([#643](https://github.com/stripe/stripe-php/pull/643)) +- Use `array_column` to flatten params ([#686](https://github.com/stripe/stripe-php/pull/686)) +- ⚠️ Remove deprecated methods ([#692](https://github.com/stripe/stripe-php/pull/692)) +- ⚠️ Remove `IssuerFraudRecord` ([#696](https://github.com/stripe/stripe-php/pull/696)) +- Update constructors of Stripe exception classes ([#559](https://github.com/stripe/stripe-php/pull/559)) +- Fix remaining TODOs ([#700](https://github.com/stripe/stripe-php/pull/700)) +- Use yield for autopagination ([#703](https://github.com/stripe/stripe-php/pull/703)) +- ⚠️ Rename fake magic methods and rewrite array conversion ([#704](https://github.com/stripe/stripe-php/pull/704)) +- Add `ErrorObject` to Stripe exceptions ([#705](https://github.com/stripe/stripe-php/pull/705)) +- Start using PHP CS Fixer ([#706](https://github.com/stripe/stripe-php/pull/706)) +- Update error messages for nested resource operations ([#708](https://github.com/stripe/stripe-php/pull/708)) +- Upgrade retry logic ([#707](https://github.com/stripe/stripe-php/pull/707)) +- ⚠️ `Collection` improvements / fixes ([#715](https://github.com/stripe/stripe-php/pull/715)) +- ⚠️ Modernize exceptions ([#709](https://github.com/stripe/stripe-php/pull/709)) +- Add constants for error codes ([#716](https://github.com/stripe/stripe-php/pull/716)) +- Update certificate bundle ([#717](https://github.com/stripe/stripe-php/pull/717)) +- Retry requests on a 429 that's a lock timeout ([#718](https://github.com/stripe/stripe-php/pull/718)) +- Fix `toArray()` calls ([#719](https://github.com/stripe/stripe-php/pull/719)) +- Couple of fixes for PHP 7.4 ([#725](https://github.com/stripe/stripe-php/pull/725)) + +## 6.43.1 - 2019-08-29 + +- [#722](https://github.com/stripe/stripe-php/pull/722) Make `LoggerInterface::error` compatible with its PSR-3 counterpart +- [#714](https://github.com/stripe/stripe-php/pull/714) Add `pending_setup_intent` property in `Subscription` +- [#713](https://github.com/stripe/stripe-php/pull/713) Add typehint to `ApiResponse` +- [#712](https://github.com/stripe/stripe-php/pull/712) Fix comment +- [#701](https://github.com/stripe/stripe-php/pull/701) Start testing PHP 7.3 + +## 6.43.0 - 2019-08-09 + +- [#694](https://github.com/stripe/stripe-php/pull/694) Add `SubscriptionItem::createUsageRecord` method + +## 6.42.0 - 2019-08-09 + +- [#688](https://github.com/stripe/stripe-php/pull/688) Remove `SubscriptionScheduleRevision` + - Note that this is technically a breaking change, however we've chosen to release it as a minor version in light of the fact that this resource and its API methods were virtually unused. + +## 6.41.0 - 2019-07-31 + +- [#683](https://github.com/stripe/stripe-php/pull/683) Move the List Balance History API to `/v1/balance_transactions` + +## 6.40.0 - 2019-06-27 + +- [#675](https://github.com/stripe/stripe-php/pull/675) Add support for `SetupIntent` resource and APIs + +## 6.39.2 - 2019-06-26 + +- [#676](https://github.com/stripe/stripe-php/pull/676) Fix exception message in `CustomerBalanceTransaction::update()` + +## 6.39.1 - 2019-06-25 + +- [#674](https://github.com/stripe/stripe-php/pull/674) Add new constants for `collection_method` on `Invoice` + +## 6.39.0 - 2019-06-24 + +- [#673](https://github.com/stripe/stripe-php/pull/673) Enable request latency telemetry by default + +## 6.38.0 - 2019-06-17 + +- [#649](https://github.com/stripe/stripe-php/pull/649) Add support for `CustomerBalanceTransaction` resource and APIs + +## 6.37.2 - 2019-06-17 + +- [#671](https://github.com/stripe/stripe-php/pull/671) Add new PHPDoc +- [#672](https://github.com/stripe/stripe-php/pull/672) Add constants for `submit_type` on Checkout `Session` + +## 6.37.1 - 2019-06-14 + +- [#670](https://github.com/stripe/stripe-php/pull/670) Add new PHPDoc + +## 6.37.0 - 2019-05-23 + +- [#663](https://github.com/stripe/stripe-php/pull/663) Add support for `radar.early_fraud_warning` resource + +## 6.36.0 - 2019-05-22 + +- [#661](https://github.com/stripe/stripe-php/pull/661) Add constants for new TaxId types +- [#662](https://github.com/stripe/stripe-php/pull/662) Add constants for BalanceTransaction types + +## 6.35.2 - 2019-05-20 + +- [#655](https://github.com/stripe/stripe-php/pull/655) Add constants for payment intent statuses +- [#659](https://github.com/stripe/stripe-php/pull/659) Fix PHPDoc for various nested Account actions +- [#660](https://github.com/stripe/stripe-php/pull/660) Fix various PHPDoc + +## 6.35.1 - 2019-05-20 + +- [#658](https://github.com/stripe/stripe-php/pull/658) Use absolute value when checking timestamp tolerance + +## 6.35.0 - 2019-05-14 + +- [#651](https://github.com/stripe/stripe-php/pull/651) Add support for the Capability resource and APIs + +## 6.34.6 - 2019-05-13 + +- [#654](https://github.com/stripe/stripe-php/pull/654) Fix typo in definition of `Event::PAYMENT_METHOD_ATTACHED` constant + +## 6.34.5 - 2019-05-06 + +- [#647](https://github.com/stripe/stripe-php/pull/647) Set the return type to static for more operations + +## 6.34.4 - 2019-05-06 + +- [#650](https://github.com/stripe/stripe-php/pull/650) Add missing constants for Event types + +## 6.34.3 - 2019-05-01 + +- [#644](https://github.com/stripe/stripe-php/pull/644) Update return type to `static` to improve static analysis +- [#645](https://github.com/stripe/stripe-php/pull/645) Fix constant for `payment_intent.payment_failed` + +## 6.34.2 - 2019-04-26 + +- [#642](https://github.com/stripe/stripe-php/pull/642) Fix an issue where existing idempotency keys would be overwritten when using automatic retries + +## 6.34.1 - 2019-04-25 + +- [#640](https://github.com/stripe/stripe-php/pull/640) Add missing phpdocs + +## 6.34.0 - 2019-04-24 + +- [#626](https://github.com/stripe/stripe-php/pull/626) Add support for the `TaxRate` resource and APIs +- [#639](https://github.com/stripe/stripe-php/pull/639) Fix multiple phpdoc issues + +## 6.33.0 - 2019-04-22 + +- [#630](https://github.com/stripe/stripe-php/pull/630) Add support for the `TaxId` resource and APIs + +## 6.32.1 - 2019-04-19 + +- [#636](https://github.com/stripe/stripe-php/pull/636) Correct type of `$personId` in PHPDoc + +## 6.32.0 - 2019-04-18 + +- [#621](https://github.com/stripe/stripe-php/pull/621) Add support for `CreditNote` + +## 6.31.5 - 2019-04-12 + +- [#628](https://github.com/stripe/stripe-php/pull/628) Add constants for `person.*` event types +- [#628](https://github.com/stripe/stripe-php/pull/628) Add missing constants for `Account` and `Person` + +## 6.31.4 - 2019-04-05 + +- [#624](https://github.com/stripe/stripe-php/pull/624) Fix encoding of nested parameters in multipart requests + +## 6.31.3 - 2019-04-02 + +- [#623](https://github.com/stripe/stripe-php/pull/623) Only use HTTP/2 with curl >= 7.60.0 + +## 6.31.2 - 2019-03-25 + +- [#619](https://github.com/stripe/stripe-php/pull/619) Fix PHPDoc return types for list methods for nested resources + +## 6.31.1 - 2019-03-22 + +- [#612](https://github.com/stripe/stripe-php/pull/612) Add a lot of constants +- [#614](https://github.com/stripe/stripe-php/pull/614) Add missing subscription status constants + +## 6.31.0 - 2019-03-18 + +- [#600](https://github.com/stripe/stripe-php/pull/600) Add support for the `PaymentMethod` resource and APIs +- [#606](https://github.com/stripe/stripe-php/pull/606) Add support for retrieving a Checkout `Session` +- [#611](https://github.com/stripe/stripe-php/pull/611) Add support for deleting a Terminal `Location` and `Reader` + +## 6.30.5 - 2019-03-11 + +- [#607](https://github.com/stripe/stripe-php/pull/607) Correctly handle case where a metadata key is called `metadata` + +## 6.30.4 - 2019-02-27 + +- [#602](https://github.com/stripe/stripe-php/pull/602) Add `subscription_schedule` to `Subscription` for PHPDoc. + +## 6.30.3 - 2019-02-26 + +- [#603](https://github.com/stripe/stripe-php/pull/603) Improve PHPDoc on the `Source` object to cover all types of Sources currently supported. + +## 6.30.2 - 2019-02-25 + +- [#601](https://github.com/stripe/stripe-php/pull/601) Fix PHPDoc across multiple resources and add support for new events. + +## 6.30.1 - 2019-02-16 + +- [#599](https://github.com/stripe/stripe-php/pull/599) Fix PHPDoc for `SubscriptionSchedule` and `SubscriptionScheduleRevision` + +## 6.30.0 - 2019-02-12 + +- [#590](https://github.com/stripe/stripe-php/pull/590) Add support for `SubscriptionSchedule` and `SubscriptionScheduleRevision` + +## 6.29.3 - 2019-01-31 + +- [#592](https://github.com/stripe/stripe-php/pull/592) Some more PHPDoc fixes + +## 6.29.2 - 2019-01-31 + +- [#591](https://github.com/stripe/stripe-php/pull/591) Fix PHPDoc for nested resources + +## 6.29.1 - 2019-01-25 + +- [#566](https://github.com/stripe/stripe-php/pull/566) Fix dangling message contents +- [#586](https://github.com/stripe/stripe-php/pull/586) Don't overwrite `CURLOPT_HTTP_VERSION` option + +## 6.29.0 - 2019-01-23 + +- [#579](https://github.com/stripe/stripe-php/pull/579) Rename `CheckoutSession` to `Session` and move it under the `Checkout` namespace. This is a breaking change, but we've reached out to affected merchants and all new merchants would use the new approach. + +## 6.28.1 - 2019-01-21 + +- [#580](https://github.com/stripe/stripe-php/pull/580) Properly serialize `individual` on `Account` objects + +## 6.28.0 - 2019-01-03 + +- [#576](https://github.com/stripe/stripe-php/pull/576) Add support for iterating directly over `Collection` instances + +## 6.27.0 - 2018-12-21 + +- [#571](https://github.com/stripe/stripe-php/pull/571) Add support for the `CheckoutSession` resource + +## 6.26.0 - 2018-12-11 + +- [#568](https://github.com/stripe/stripe-php/pull/568) Enable persistent connections + +## 6.25.0 - 2018-12-10 + +- [#567](https://github.com/stripe/stripe-php/pull/567) Add support for account links + +## 6.24.0 - 2018-11-28 + +- [#562](https://github.com/stripe/stripe-php/pull/562) Add support for the Review resource +- [#564](https://github.com/stripe/stripe-php/pull/564) Add event name constants for subscription schedule aborted/expiring + +## 6.23.0 - 2018-11-27 + +- [#542](https://github.com/stripe/stripe-php/pull/542) Add support for `ValueList` and `ValueListItem` for Radar + +## 6.22.1 - 2018-11-20 + +- [#561](https://github.com/stripe/stripe-php/pull/561) Add cast and some docs to telemetry introduced in 6.22.0/549 + +## 6.22.0 - 2018-11-15 + +- [#549](https://github.com/stripe/stripe-php/pull/549) Add support for client telemetry + +## 6.21.1 - 2018-11-12 + +- [#548](https://github.com/stripe/stripe-php/pull/548) Don't mutate `Exception` class properties from `OAuthBase` error + +## 6.21.0 - 2018-11-08 + +- [#537](https://github.com/stripe/stripe-php/pull/537) Add new API endpoints for the `Invoice` resource. + +## 6.20.1 - 2018-11-07 + +- [#546](https://github.com/stripe/stripe-php/pull/546) Drop files from the Composer package that aren't needed in the release + +## 6.20.0 - 2018-10-30 + +- [#536](https://github.com/stripe/stripe-php/pull/536) Add support for the `Person` resource +- [#541](https://github.com/stripe/stripe-php/pull/541) Add support for the `WebhookEndpoint` resource + +## 6.19.5 - 2018-10-17 + +- [#539](https://github.com/stripe/stripe-php/pull/539) Fix methods on `\Stripe\PaymentIntent` to properly pass arguments to the API. + +## 6.19.4 - 2018-10-11 + +- [#534](https://github.com/stripe/stripe-php/pull/534) Fix PSR-4 autoloading for `\Stripe\FileUpload` class alias + +## 6.19.3 - 2018-10-09 + +- [#530](https://github.com/stripe/stripe-php/pull/530) Add constants for `flow` (`FLOW_*`), `status` (`STATUS_*`) and `usage` (`USAGE_*`) on `\Stripe\Source` + +## 6.19.2 - 2018-10-08 + +- [#531](https://github.com/stripe/stripe-php/pull/531) Store HTTP response headers in case-insensitive array + +## 6.19.1 - 2018-09-25 + +- [#526](https://github.com/stripe/stripe-php/pull/526) Ignore null values in request parameters + +## 6.19.0 - 2018-09-24 + +- [#523](https://github.com/stripe/stripe-php/pull/523) Add support for Stripe Terminal + +## 6.18.0 - 2018-09-24 + +- [#520](https://github.com/stripe/stripe-php/pull/520) Rename `\Stripe\FileUpload` to `\Stripe\File` + +## 6.17.2 - 2018-09-18 + +- [#522](https://github.com/stripe/stripe-php/pull/522) Fix warning when adding a new additional owner to an existing array + +## 6.17.1 - 2018-09-14 + +- [#517](https://github.com/stripe/stripe-php/pull/517) Integer-index encode all sequential arrays + +## 6.17.0 - 2018-09-05 + +- [#514](https://github.com/stripe/stripe-php/pull/514) Add support for reporting resources + +## 6.16.0 - 2018-08-23 + +- [#509](https://github.com/stripe/stripe-php/pull/509) Add support for usage record summaries + +## 6.15.0 - 2018-08-03 + +- [#504](https://github.com/stripe/stripe-php/pull/504) Add cancel support for topups + +## 6.14.0 - 2018-08-02 + +- [#505](https://github.com/stripe/stripe-php/pull/505) Add support for file links + +## 6.13.0 - 2018-07-31 + +- [#502](https://github.com/stripe/stripe-php/pull/502) Add `isDeleted()` method to `\Stripe\StripeObject` + +## 6.12.0 - 2018-07-28 + +- [#501](https://github.com/stripe/stripe-php/pull/501) Add support for scheduled query runs (`\Stripe\Sigma\ScheduledQueryRun`) for Sigma + +## 6.11.0 - 2018-07-26 + +- [#500](https://github.com/stripe/stripe-php/pull/500) Add support for Stripe Issuing + +## 6.10.4 - 2018-07-19 + +- [#498](https://github.com/stripe/stripe-php/pull/498) Internal improvements to the `\Stripe\ApiResource.classUrl()` method + +## 6.10.3 - 2018-07-16 + +- [#497](https://github.com/stripe/stripe-php/pull/497) Use HTTP/2 only for HTTPS requests + +## 6.10.2 - 2018-07-11 + +- [#494](https://github.com/stripe/stripe-php/pull/494) Enable HTTP/2 support + +## 6.10.1 - 2018-07-10 + +- [#493](https://github.com/stripe/stripe-php/pull/493) Add PHPDoc for `auto_advance` on `\Stripe\Invoice` + +## 6.10.0 - 2018-06-28 + +- [#488](https://github.com/stripe/stripe-php/pull/488) Add support for `$appPartnerId` to `Stripe::setAppInfo()` + +## 6.9.0 - 2018-06-28 + +- [#487](https://github.com/stripe/stripe-php/pull/487) Add support for payment intents + +## 6.8.2 - 2018-06-24 + +- [#486](https://github.com/stripe/stripe-php/pull/486) Make `Account.deauthorize()` return the `StripeObject` from the API + +## 6.8.1 - 2018-06-13 + +- [#472](https://github.com/stripe/stripe-php/pull/472) Added phpDoc for `ApiRequestor` and others, especially regarding thrown errors + +## 6.8.0 - 2018-06-13 + +- [#481](https://github.com/stripe/stripe-php/pull/481) Add new `\Stripe\Discount` and `\Stripe\OrderItem` classes, add more PHPDoc describing object attributes + +## 6.7.4 - 2018-05-29 + +- [#480](https://github.com/stripe/stripe-php/pull/480) PHPDoc changes for API version 2018-05-21 and the addition of the new `CHARGE_EXPIRED` event type + +## 6.7.3 - 2018-05-28 + +- [#479](https://github.com/stripe/stripe-php/pull/479) Fix unnecessary traits on `\Stripe\InvoiceLineItem` + +## 6.7.2 - 2018-05-28 + +- [#471](https://github.com/stripe/stripe-php/pull/471) Add `OBJECT_NAME` constant to all API resource classes, add `\Stripe\InvoiceLineItem` class + +## 6.7.1 - 2018-05-13 + +- [#468](https://github.com/stripe/stripe-php/pull/468) Update fields in PHP docs for accuracy + +## 6.7.0 - 2018-05-09 + +- [#466](https://github.com/stripe/stripe-php/pull/466) Add support for issuer fraud records + +## 6.6.0 - 2018-04-11 + +- [#460](https://github.com/stripe/stripe-php/pull/460) Add support for flexible billing primitives + +## 6.5.0 - 2018-04-05 + +- [#461](https://github.com/stripe/stripe-php/pull/461) Don't zero keys on non-`metadata` subobjects + +## 6.4.2 - 2018-03-17 + +- [#458](https://github.com/stripe/stripe-php/pull/458) Add PHPDoc for `account` on `\Stripe\Event` + +## 6.4.1 - 2018-03-02 + +- [#455](https://github.com/stripe/stripe-php/pull/455) Fix namespaces in PHPDoc +- [#456](https://github.com/stripe/stripe-php/pull/456) Fix namespaces for some exceptions + +## 6.4.0 - 2018-02-28 + +- [#453](https://github.com/stripe/stripe-php/pull/453) Add constants for `reason` (`REASON_*`) and `status` (`STATUS_*`) on `\Stripe\Dispute` + +## 6.3.2 - 2018-02-27 + +- [#452](https://github.com/stripe/stripe-php/pull/452) Add PHPDoc for `amount_paid` and `amount_remaining` on `\Stripe\Invoice` + +## 6.3.1 - 2018-02-26 + +- [#443](https://github.com/stripe/stripe-php/pull/443) Add event types as constants to `\Stripe\Event` class + +## 6.3.0 - 2018-02-23 + +- [#450](https://github.com/stripe/stripe-php/pull/450) Add support for `code` attribute on all Stripe exceptions + +## 6.2.0 - 2018-02-21 + +- [#440](https://github.com/stripe/stripe-php/pull/440) Add support for topups +- [#442](https://github.com/stripe/stripe-php/pull/442) Fix PHPDoc for `\Stripe\Error\SignatureVerification` + +## 6.1.0 - 2018-02-12 + +- [#435](https://github.com/stripe/stripe-php/pull/435) Fix header persistence on `Collection` objects +- [#436](https://github.com/stripe/stripe-php/pull/436) Introduce new `Idempotency` error class + +## 6.0.0 - 2018-02-07 + +Major version release. List of backwards incompatible changes to watch out for: + +- The minimum PHP version is now 5.4.0. If you're using PHP 5.3 or older, consider upgrading to a more recent version. + +* `\Stripe\AttachedObject` no longer exists. Attributes that used to be instances of `\Stripe\AttachedObject` (such as `metadata`) are now instances of `\Stripe\StripeObject`. + +- Attributes that used to be PHP arrays (such as `legal_entity->additional_owners` on `\Stripe\Account` instances) are now instances of `\Stripe\StripeObject`, except when they are empty. `\Stripe\StripeObject` has array semantics so this should not be an issue unless you are actively checking types. + +* `\Stripe\Collection` now derives from `\Stripe\StripeObject` rather than from `\Stripe\ApiResource`. + +Pull requests included in this release: + +- [#410](https://github.com/stripe/stripe-php/pull/410) Drop support for PHP 5.3 +- [#411](https://github.com/stripe/stripe-php/pull/411) Use traits for common API operations +- [#414](https://github.com/stripe/stripe-php/pull/414) Use short array syntax +- [#404](https://github.com/stripe/stripe-php/pull/404) Fix serialization logic +- [#417](https://github.com/stripe/stripe-php/pull/417) Remove `ExternalAccount` class +- [#418](https://github.com/stripe/stripe-php/pull/418) Increase test coverage +- [#421](https://github.com/stripe/stripe-php/pull/421) Update CA bundle and add script for future updates +- [#422](https://github.com/stripe/stripe-php/pull/422) Use vendored CA bundle for all requests +- [#428](https://github.com/stripe/stripe-php/pull/428) Support for automatic request retries + +## 5.9.2 - 2018-02-07 + +- [#431](https://github.com/stripe/stripe-php/pull/431) Update PHPDoc @property tags for latest API version + +## 5.9.1 - 2018-02-06 + +- [#427](https://github.com/stripe/stripe-php/pull/427) Add and update PHPDoc @property tags on all API resources + +## 5.9.0 - 2018-01-17 + +- [#421](https://github.com/stripe/stripe-php/pull/421) Updated bundled CA certificates +- [#423](https://github.com/stripe/stripe-php/pull/423) Escape unsanitized input in OAuth example + +## 5.8.0 - 2017-12-20 + +- [#403](https://github.com/stripe/stripe-php/pull/403) Add `__debugInfo()` magic method to `StripeObject` + +## 5.7.0 - 2017-11-28 + +- [#390](https://github.com/stripe/stripe-php/pull/390) Remove some unsupported API methods +- [#391](https://github.com/stripe/stripe-php/pull/391) Alphabetize the list of API resources in `Util::convertToStripeObject()` and add missing resources +- [#393](https://github.com/stripe/stripe-php/pull/393) Fix expiry date update for card sources + +## 5.6.0 - 2017-10-31 + +- [#386](https://github.com/stripe/stripe-php/pull/386) Support for exchange rates APIs + +## 5.5.1 - 2017-10-30 + +- [#387](https://github.com/stripe/stripe-php/pull/387) Allow `personal_address_kana` and `personal_address_kanji` to be updated on an account + +## 5.5.0 - 2017-10-27 + +- [#385](https://github.com/stripe/stripe-php/pull/385) Support for listing source transactions + +## 5.4.0 - 2017-10-24 + +- [#383](https://github.com/stripe/stripe-php/pull/383) Add static methods to manipulate resources from parent + - `Account` gains methods for external accounts and login links (e.g. `createExternalAccount`, `createLoginLink`) + - `ApplicationFee` gains methods for refunds + - `Customer` gains methods for sources + - `Transfer` gains methods for reversals + +## 5.3.0 - 2017-10-11 + +- [#378](https://github.com/stripe/stripe-php/pull/378) Rename source `delete` to `detach` (and deprecate the former) + +## 5.2.3 - 2017-09-27 + +- Add PHPDoc for `Card` + +## 5.2.2 - 2017-09-20 + +- Fix deserialization mapping of `FileUpload` objects + +## 5.2.1 - 2017-09-14 + +- Serialized `shipping` nested attribute + +## 5.2.0 - 2017-08-29 + +- Add support for `InvalidClient` OAuth error + +## 5.1.3 - 2017-08-14 + +- Allow `address_kana` and `address_kanji` to be updated for custom accounts + +## 5.1.2 - 2017-08-01 + +- Fix documented return type of `autoPagingIterator()` (was missing namespace) + +## 5.1.1 - 2017-07-03 + +- Fix order returns to use the right URL `/v1/order_returns` + +## 5.1.0 - 2017-06-30 + +- Add support for OAuth + +## 5.0.0 - 2017-06-27 + +- `pay` on invoice now takes params as well as opts + +## 4.13.0 - 2017-06-19 + +- Add support for ephemeral keys + +## 4.12.0 - 2017-06-05 + +- Clients can implement `getUserAgentInfo()` to add additional user agent information + +## 4.11.0 - 2017-06-05 + +- Implement `Countable` for `AttachedObject` (`metadata` and `additional_owners`) + +## 4.10.0 - 2017-05-25 + +- Add support for login links + +## 4.9.1 - 2017-05-10 + +- Fix docs to include arrays on `$id` parameter for retrieve methods + +## 4.9.0 - 2017-04-28 + +- Support for checking webhook signatures + +## 4.8.1 - 2017-04-24 + +- Allow nested field `payout_schedule` to be updated + +## 4.8.0 - 2017-04-20 + +- Add `\Stripe\Stripe::setLogger()` to support an external PSR-3 compatible logger + +## 4.7.0 - 2017-04-10 + +- Add support for payouts and recipient transfers + +## 4.6.0 - 2017-04-06 + +- Please see 4.7.0 instead (no-op release) + +## 4.5.1 - 2017-03-22 + +- Remove hard dependency on cURL + +## 4.5.0 - 2017-03-20 + +- Support for detaching sources from customers + +## 4.4.2 - 2017-02-27 + +- Correct handling of `owner` parameter when updating sources + +## 4.4.1 - 2017-02-24 + +- Correct the error check on a bad JSON decoding + +## 4.4.0 - 2017-01-18 + +- Add support for updating sources + +## 4.3.0 - 2016-11-30 + +- Add support for verifying sources + +## 4.2.0 - 2016-11-21 + +- Add retrieve method for 3-D Secure resources + +## 4.1.1 - 2016-10-21 + +- Add docblock with model properties for `Plan` + +## 4.1.0 - 2016-10-18 + +- Support for 403 status codes (permission denied) + +## 4.0.1 - 2016-10-17 + +- Fix transfer reversal materialization +- Fixes for some property definitions in docblocks + +## 4.0.0 - 2016-09-28 + +- Support for subscription items +- Drop attempt to force TLS 1.2: please note that this could be breaking if you're using old OS distributions or packages and upgraded recently (so please make sure to test your integration!) + +## 3.23.0 - 2016-09-15 + +- Add support for Apple Pay domains + +## 3.22.0 - 2016-09-13 + +- Add `Stripe::setAppInfo` to allow plugins to register user agent information + +## 3.21.0 - 2016-08-25 + +- Add `Source` model for generic payment sources + +## 3.20.0 - 2016-08-08 + +- Add `getDeclineCode` to card errors + +## 3.19.0 - 2016-07-29 + +- Opt requests directly into TLS 1.2 where OpenSSL >= 1.0.1 (see #277 for context) + +## 3.18.0 - 2016-07-28 + +- Add new `STATUS_` constants for subscriptions + +## 3.17.1 - 2016-07-28 + +- Fix auto-paging iterator so that it plays nicely with `iterator_to_array` + +## 3.17.0 - 2016-07-14 + +- Add field annotations to model classes for better editor hinting + +## 3.16.0 - 2016-07-12 + +- Add `ThreeDSecure` model for 3-D secure payments + +## 3.15.0 - 2016-06-29 + +- Add static `update` method to all resources that can be changed. + +## 3.14.3 - 2016-06-20 + +- Make sure that cURL never sends `Expects: 100-continue`, even on large request bodies + +## 3.14.2 - 2016-06-03 + +- Add `inventory` under `SKU` to list of keys that have nested data and can be updated + +## 3.14.1 - 2016-05-27 + +- Fix some inconsistencies in PHPDoc + +## 3.14.0 - 2016-05-25 + +- Add support for returning Relay orders + +## 3.13.0 - 2016-05-04 + +- Add `list`, `create`, `update`, `retrieve`, and `delete` methods to the Subscription class + +## 3.12.1 - 2016-04-07 + +- Additional check on value arrays for some extra safety + +## 3.12.0 - 2016-03-31 + +- Fix bug `refreshFrom` on `StripeObject` would not take an `$opts` array +- Fix bug where `$opts` not passed to parent `save` method in `Account` +- Fix bug where non-existent variable was referenced in `reverse` in `Transfer` +- Update CA cert bundle for compatibility with OpenSSL versions below 1.0.1 + +## 3.11.0 - 2016-03-22 + +- Allow `CurlClient` to be initialized with default `CURLOPT_*` options + +## 3.10.1 - 2016-03-22 + +- Fix bug where request params and options were ignored in `ApplicationFee`'s `refund.` + +## 3.10.0 - 2016-03-15 + +- Add `reject` on `Account` to support the new API feature + +## 3.9.2 - 2016-03-04 + +- Fix error when an object's metadata is set more than once + +## 3.9.1 - 2016-02-24 + +- Fix encoding behavior of nested arrays for requests (see #227) + +## 3.9.0 - 2016-02-09 + +- Add automatic pagination mechanism with `autoPagingIterator()` +- Allow global account ID to be set with `Stripe::setAccountId()` + +## 3.8.0 - 2016-02-08 + +- Add `CountrySpec` model for looking up country payment information + +## 3.7.1 - 2016-02-01 + +- Update bundled CA certs + +## 3.7.0 - 2016-01-27 + +- Support deleting Relay products and SKUs + +## 3.6.0 - 2016-01-05 + +- Allow configuration of HTTP client timeouts + +## 3.5.0 - 2015-12-01 + +- Add a verification routine for external accounts + +## 3.4.0 - 2015-09-14 + +- Products, SKUs, and Orders -- https://stripe.com/relay + +## 3.3.0 - 2015-09-11 + +- Add support for 429 Rate Limit response + +## 3.2.0 - 2015-08-17 + +- Add refund listing and retrieval without an associated charge + +## 3.1.0 - 2015-08-03 + +- Add dispute listing and retrieval +- Add support for manage account deletion + +## 3.0.0 - 2015-07-28 + +- Rename `\Stripe\Object` to `\Stripe\StripeObject` (PHP 7 compatibility) +- Rename `getCode` and `getParam` in exceptions to `getStripeCode` and `getStripeParam` +- Add support for calling `json_encode` on Stripe objects in PHP 5.4+ +- Start supporting/testing PHP 7 + +## 2.3.0 - 2015-07-06 + +- Add request ID to all Stripe exceptions + +## 2.2.0 - 2015-06-01 + +- Add support for Alipay accounts as sources +- Add support for bank accounts as sources (private beta) +- Add support for bank accounts and cards as external_accounts on Account objects + +## 2.1.4 - 2015-05-13 + +- Fix CA certificate file path (thanks @lphilps & @matthewarkin) + +## 2.1.3 - 2015-05-12 + +- Fix to account updating to permit `tos_acceptance` and `personal_address` to be set properly +- Fix to Transfer reversal creation (thanks @neatness!) +- Network requests are now done through a swappable class for easier mocking + +## 2.1.2 - 2015-04-10 + +- Remove SSL cert revokation checking (all pre-Heartbleed certs have expired) +- Bug fixes to account updating + +## 2.1.1 - 2015-02-27 + +- Support transfer reversals + +## 2.1.0 - 2015-02-19 + +- Support new API version (2015-02-18) +- Added Bitcoin Receiever update and delete actions +- Edited tests to prefer "source" over "card" as per new API version + +## 2.0.1 - 2015-02-16 + +- Fix to fetching endpoints that use a non-default baseUrl (`FileUpload`) + +## 2.0.0 - 2015-02-14 + +- Bumped minimum version to 5.3.3 +- Switched to Stripe namespace instead of Stripe\_ class name prefiexes (thanks @chadicus!) +- Switched tests to PHPUnit (thanks @chadicus!) +- Switched style guide to PSR2 (thanks @chadicus!) +- Added \$opts hash to the end of most methods: this permits passing 'idempotency_key', 'stripe_account', or 'stripe_version'. The last 2 will persist across multiple object loads. +- Added support for retrieving Account by ID + +## 1.18.0 - 2015-01-21 + +- Support making bitcoin charges through BitcoinReceiver source object + +## 1.17.5 - 2014-12-23 + +- Adding support for creating file uploads. + +## 1.17.4 - 2014-12-15 + +- Saving objects fetched with a custom key now works (thanks @JustinHook & @jpasilan) +- Added methods for reporting charges as safe or fraudulent and for specifying the reason for refunds + +## 1.17.3 - 2014-11-06 + +- Better handling of HHVM support for SSL certificate blacklist checking. + +## 1.17.2 - 2014-09-23 + +- Coupons now are backed by a `Stripe_Coupon` instead of `Stripe_Object`, and support updating metadata +- Running operations (`create`, `retrieve`, `all`) on upcoming invoice items now works + +## 1.17.1 - 2014-07-31 + +- Requests now send Content-Type header + +## 1.17.0 - 2014-07-29 + +- Application Fee refunds now a list instead of array +- HHVM now works +- Small bug fixes (thanks @bencromwell & @fastest963) +- `__toString` now returns the name of the object in addition to its JSON representation + +## 1.16.0 - 2014-06-17 + +- Add metadata for refunds and disputes + +## 1.15.0 - 2014-05-28 + +- Support canceling transfers + +## 1.14.1 - 2014-05-21 + +- Support cards for recipients. + +## 1.13.1 - 2014-05-15 + +- Fix bug in account resource where `id` wasn't in the result + +## 1.13.0 - 2014-04-10 + +- Add support for certificate blacklisting +- Update ca bundle +- Drop support for HHVM (Temporarily) + +## 1.12.0 - 2014-04-01 + +- Add Stripe_RateLimitError for catching rate limit errors. +- Update to Zend coding style (thanks, @jpiasetz) + +## 1.11.0 - 2014-01-29 + +- Add support for multiple subscriptions per customer + +## 1.10.1 - 2013-12-02 + +- Add new ApplicationFee + +## 1.9.1 - 2013-11-08 + +- Fix a bug where a null nestable object causes warnings to fire. + +## 1.9.0 - 2013-10-16 + +- Add support for metadata API. + +## 1.8.4 - 2013-09-18 + +- Add support for closing disputes. + +## 1.8.3 - 2013-08-13 + +- Add new Balance and BalanceTransaction + +## 1.8.2 - 2013-08-12 + +- Add support for unsetting attributes by updating to NULL. Setting properties to a blank string is now an error. + +## 1.8.1 - 2013-07-12 + +- Add support for multiple cards API (Stripe API version 2013-07-12: https://stripe.com/docs/upgrades#2013-07-05) + +## 1.8.0 - 2013-04-11 + +- Allow Transfers to be creatable +- Add new Recipient resource + +## 1.7.15 - 2013-02-21 + +- Add 'id' to the list of permanent object attributes + +## 1.7.14 - 2013-02-20 + +- Don't re-encode strings that are already encoded in UTF-8. If you were previously using plan or coupon objects with UTF-8 IDs, they may have been treated as ISO-8859-1 (Latin-1) and encoded to UTF-8 a 2nd time. You may now need to pass the IDs to utf8_encode before passing them to Stripe_Plan::retrieve or Stripe_Coupon::retrieve. +- Ensure that all input is encoded in UTF-8 before submitting it to Stripe's servers. (github issue #27) + +## 1.7.13 - 2013-02-01 + +- Add support for passing options when retrieving Stripe objects e.g., Stripe_Charge::retrieve(array("id"=>"foo", "expand" => array("customer"))); Stripe_Charge::retrieve("foo") will continue to work + +## 1.7.12 - 2013-01-15 + +- Add support for setting a Stripe API version override + +## 1.7.11 - 2012-12-30 + +- Version bump to cleanup constants and such (fix issue #26) + +## 1.7.10 - 2012-11-08 + +- Add support for updating charge disputes. +- Fix bug preventing retrieval of null attributes + +## 1.7.9 - 2012-11-08 + +- Fix usage under autoloaders such as the one generated by composer (fix issue #22) + +## 1.7.8 - 2012-10-30 + +- Add support for creating invoices. +- Add support for new invoice lines return format +- Add support for new list objects + +## 1.7.7 - 2012-09-14 + +- Get all of the various version numbers in the repo in sync (no other changes) + +## 1.7.6 - 2012-08-31 + +- Add update and pay methods to Invoice resource + +## 1.7.5 - 2012-08-23 + +- Change internal function names so that Stripe_SingletonApiRequest is E_STRICT-clean (github issue #16) + +## 1.7.4 - 2012-08-21 + +- Bugfix so that Stripe objects (e.g. Customer, Charge objects) used in API calls are transparently converted to their object IDs + +## 1.7.3 - 2012-08-15 + +- Add new Account resource + +## 1.7.2 - 2012-06-26 + +- Make clearer that you should be including lib/Stripe.php, not test/Stripe.php (github issue #14) + +## 1.7.1 - 2012-05-24 + +- Add missing argument to Stripe_InvalidRequestError constructor in Stripe_ApiResource::instanceUrl. Fixes a warning when Stripe_ApiResource::instanceUrl is called on a resource with no ID (fix issue #12) + +## 1.7.0 - 2012-05-17 + +- Support Composer and Packagist (github issue #9) +- Add new deleteDiscount method to Stripe_Customer +- Add new Transfer resource +- Switch from using HTTP Basic auth to Bearer auth. (Note: Stripe will support Basic auth for the indefinite future, but recommends Bearer auth when possible going forward) +- Numerous test suite improvements diff --git a/vendor/stripe/stripe-php/LICENSE b/vendor/stripe/stripe-php/LICENSE new file mode 100644 index 0000000..847c705 --- /dev/null +++ b/vendor/stripe/stripe-php/LICENSE @@ -0,0 +1,21 @@ +The MIT License + +Copyright (c) 2010-2019 Stripe, Inc. (https://stripe.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/stripe/stripe-php/OPENAPI_VERSION b/vendor/stripe/stripe-php/OPENAPI_VERSION new file mode 100644 index 0000000..ddf5ac5 --- /dev/null +++ b/vendor/stripe/stripe-php/OPENAPI_VERSION @@ -0,0 +1 @@ +v1505 \ No newline at end of file diff --git a/vendor/stripe/stripe-php/README.md b/vendor/stripe/stripe-php/README.md new file mode 100644 index 0000000..367a6d1 --- /dev/null +++ b/vendor/stripe/stripe-php/README.md @@ -0,0 +1,325 @@ +# Stripe PHP bindings + +[![Build Status](https://github.com/stripe/stripe-php/actions/workflows/ci.yml/badge.svg?branch=master)](https://github.com/stripe/stripe-php/actions?query=branch%3Amaster) +[![Latest Stable Version](https://poser.pugx.org/stripe/stripe-php/v/stable.svg)](https://packagist.org/packages/stripe/stripe-php) +[![Total Downloads](https://poser.pugx.org/stripe/stripe-php/downloads.svg)](https://packagist.org/packages/stripe/stripe-php) +[![License](https://poser.pugx.org/stripe/stripe-php/license.svg)](https://packagist.org/packages/stripe/stripe-php) + +The Stripe PHP library provides convenient access to the Stripe API from +applications written in the PHP language. It includes a pre-defined set of +classes for API resources that initialize themselves dynamically from API +responses which makes it compatible with a wide range of versions of the Stripe +API. + +## Requirements + +PHP 5.6.0 and later. + +## Composer + +You can install the bindings via [Composer](http://getcomposer.org/). Run the following command: + +```bash +composer require stripe/stripe-php +``` + +To use the bindings, use Composer's [autoload](https://getcomposer.org/doc/01-basic-usage.md#autoloading): + +```php +require_once 'vendor/autoload.php'; +``` + +## Manual Installation + +If you do not wish to use Composer, you can download the [latest release](https://github.com/stripe/stripe-php/releases). Then, to use the bindings, include the `init.php` file. + +```php +require_once '/path/to/stripe-php/init.php'; +``` + +## Dependencies + +The bindings require the following extensions in order to work properly: + +- [`curl`](https://secure.php.net/manual/en/book.curl.php), although you can use your own non-cURL client if you prefer +- [`json`](https://secure.php.net/manual/en/book.json.php) +- [`mbstring`](https://secure.php.net/manual/en/book.mbstring.php) (Multibyte String) + +If you use Composer, these dependencies should be handled automatically. If you install manually, you'll want to make sure that these extensions are available. + +## Getting Started + +Simple usage looks like: + +```php +$stripe = new \Stripe\StripeClient('sk_test_BQokikJOvBiI2HlWgH4olfQ2'); +$customer = $stripe->customers->create([ + 'description' => 'example customer', + 'email' => 'email@example.com', + 'payment_method' => 'pm_card_visa', +]); +echo $customer; +``` + +### Client/service patterns vs legacy patterns + +You can continue to use the legacy integration patterns used prior to version [7.33.0](https://github.com/stripe/stripe-php/blob/master/CHANGELOG.md#7330---2020-05-14). Review the [migration guide](https://github.com/stripe/stripe-php/wiki/Migration-to-StripeClient-and-services-in-7.33.0) for the backwards-compatible client/services pattern changes. + +## Documentation + +See the [PHP API docs](https://stripe.com/docs/api/?lang=php#intro). + +See [video demonstrations][youtube-playlist] covering how to use the library. + +## Legacy Version Support + +### PHP 5.4 & 5.5 + +If you are using PHP 5.4 or 5.5, you should consider upgrading your environment as those versions have been past end of life since September 2015 and July 2016 respectively. +Otherwise, you can still use Stripe by downloading stripe-php v6.43.1 ([zip](https://github.com/stripe/stripe-php/archive/v6.43.1.zip), [tar.gz](https://github.com/stripe/stripe-php/archive/6.43.1.tar.gz)) from our [releases page](https://github.com/stripe/stripe-php/releases). This version will work but might not support recent features we added since the version was released and upgrading PHP is the best course of action. + +### PHP 5.3 + +If you are using PHP 5.3, you should upgrade your environment as this version has been past end of life since August 2014. +Otherwise, you can download v5.9.2 ([zip](https://github.com/stripe/stripe-php/archive/v5.9.2.zip), [tar.gz](https://github.com/stripe/stripe-php/archive/v5.9.2.tar.gz)) from our [releases page](https://github.com/stripe/stripe-php/releases). This version will continue to work with new versions of the Stripe API for all common uses. + +## Custom Request Timeouts + +> **Note** +> We do not recommend decreasing the timeout for non-read-only calls (e.g. charge creation), since even if you locally timeout, the request on Stripe's side can still complete. If you are decreasing timeouts on these calls, make sure to use [idempotency tokens](https://stripe.com/docs/api/?lang=php#idempotent_requests) to avoid executing the same transaction twice as a result of timeout retry logic. + +To modify request timeouts (connect or total, in seconds) you'll need to tell the API client to use a CurlClient other than its default. You'll set the timeouts in that CurlClient. + +```php +// set up your tweaked Curl client +$curl = new \Stripe\HttpClient\CurlClient(); +$curl->setTimeout(10); // default is \Stripe\HttpClient\CurlClient::DEFAULT_TIMEOUT +$curl->setConnectTimeout(5); // default is \Stripe\HttpClient\CurlClient::DEFAULT_CONNECT_TIMEOUT + +echo $curl->getTimeout(); // 10 +echo $curl->getConnectTimeout(); // 5 + +// tell Stripe to use the tweaked client +\Stripe\ApiRequestor::setHttpClient($curl); + +// use the Stripe API client as you normally would +``` + +## Custom cURL Options (e.g. proxies) + +Need to set a proxy for your requests? Pass in the requisite `CURLOPT_*` array to the CurlClient constructor, using the same syntax as `curl_stopt_array()`. This will set the default cURL options for each HTTP request made by the SDK, though many more common options (e.g. timeouts; see above on how to set those) will be overridden by the client even if set here. + +```php +// set up your tweaked Curl client +$curl = new \Stripe\HttpClient\CurlClient([CURLOPT_PROXY => 'proxy.local:80']); +// tell Stripe to use the tweaked client +\Stripe\ApiRequestor::setHttpClient($curl); +``` + +Alternately, a callable can be passed to the CurlClient constructor that returns the above array based on request inputs. See `testDefaultOptions()` in `tests/CurlClientTest.php` for an example of this behavior. Note that the callable is called at the beginning of every API request, before the request is sent. + +### Configuring a Logger + +The library does minimal logging, but it can be configured +with a [`PSR-3` compatible logger][psr3] so that messages +end up there instead of `error_log`: + +```php +\Stripe\Stripe::setLogger($logger); +``` + +### Accessing response data + +You can access the data from the last API response on any object via `getLastResponse()`. + +```php +$customer = $stripe->customers->create([ + 'description' => 'example customer', +]); +echo $customer->getLastResponse()->headers['Request-Id']; +``` + +### SSL / TLS compatibility issues + +Stripe's API now requires that [all connections use TLS 1.2](https://stripe.com/blog/upgrading-tls). Some systems (most notably some older CentOS and RHEL versions) are capable of using TLS 1.2 but will use TLS 1.0 or 1.1 by default. In this case, you'd get an `invalid_request_error` with the following error message: "Stripe no longer supports API requests made with TLS 1.0. Please initiate HTTPS connections with TLS 1.2 or later. You can learn more about this at [https://stripe.com/blog/upgrading-tls](https://stripe.com/blog/upgrading-tls).". + +The recommended course of action is to [upgrade your cURL and OpenSSL packages](https://support.stripe.com/questions/how-do-i-upgrade-my-stripe-integration-from-tls-1-0-to-tls-1-2#php) so that TLS 1.2 is used by default, but if that is not possible, you might be able to solve the issue by setting the `CURLOPT_SSLVERSION` option to either `CURL_SSLVERSION_TLSv1` or `CURL_SSLVERSION_TLSv1_2`: + +```php +$curl = new \Stripe\HttpClient\CurlClient([CURLOPT_SSLVERSION => CURL_SSLVERSION_TLSv1]); +\Stripe\ApiRequestor::setHttpClient($curl); +``` + +### Per-request Configuration + +For apps that need to use multiple keys during the lifetime of a process, like +one that uses [Stripe Connect][connect], it's also possible to set a +per-request key and/or account: + +```php +$customers = $stripe->customers->all([],[ + 'api_key' => 'sk_test_...', + 'stripe_account' => 'acct_...' +]); + +$stripe->customers->retrieve('cus_123456789', [], [ + 'api_key' => 'sk_test_...', + 'stripe_account' => 'acct_...' +]); +``` + +### Configuring CA Bundles + +By default, the library will use its own internal bundle of known CA +certificates, but it's possible to configure your own: + +```php +\Stripe\Stripe::setCABundlePath("path/to/ca/bundle"); +``` + +### Configuring Automatic Retries + +The library can be configured to automatically retry requests that fail due to +an intermittent network problem: + +```php +\Stripe\Stripe::setMaxNetworkRetries(2); +``` + +[Idempotency keys][idempotency-keys] are added to requests to guarantee that +retries are safe. + +### Telemetry + +By default, the library sends telemetry to Stripe regarding request latency and feature usage. These +numbers help Stripe improve the overall latency of its API for all users, and +improve popular features. + +You can disable this behavior if you prefer: + +```php +\Stripe\Stripe::setEnableTelemetry(false); +``` + +### Beta SDKs + +Stripe has features in the beta phase that can be accessed via the beta version of this package. +We would love for you to try these and share feedback with us before these features reach the stable phase. +Use the `composer require` command with an exact version specified to install the beta version of the stripe-php pacakge. + +```bash +composer require stripe/stripe-php:v9.2.0-beta.1 +``` + +> **Note** +> There can be breaking changes between beta versions. Therefore we recommend pinning the package version to a specific beta version in your composer.json file. This way you can install the same version each time without breaking changes unless you are intentionally looking for the latest beta version. + +We highly recommend keeping an eye on when the beta feature you are interested in goes from beta to stable so that you can move from using a beta version of the SDK to the stable version. + +If your beta feature requires a `Stripe-Version` header to be sent, set the `apiVersion` property of `config` object by using the function `addBetaVersion`: + +```php +Stripe::addBetaVersion("feature_beta", "v3"); +``` + +### Custom requests + +If you would like to send a request to an undocumented API (for example you are in a private beta), or if you prefer to bypass the method definitions in the library and specify your request details directly, you can use the `rawRequest` method on the StripeClient. + +```php +$stripe = new \Stripe\StripeClient('sk_test_xyz'); +$response = $stripe->rawRequest('post', '/v1/beta_endpoint', [ + "caveat": "emptor" +], [ + "stripe_version" => "2022-11_15", +]); +// $response->body is a string, you can call $stripe->deserialize to get a \Stripe\StripeObject. +$obj = $stripe->deserialize($response->body); + +// For GET requests, the params argument must be null, and you should write the query string explicitly. +$get_response = $stripe->rawRequest('get', '/v1/beta_endpoint?caveat=emptor', null, [ + "stripe_version" => "2022-11_15", +]); +``` + +## Support + +New features and bug fixes are released on the latest major version of the Stripe PHP library. If you are on an older major version, we recommend that you upgrade to the latest in order to use the new features and bug fixes including those for security vulnerabilities. Older major versions of the package will continue to be available for use, but will not be receiving any updates. + +## Development + +[Contribution guidelines for this project](CONTRIBUTING.md) + +We use [just](https://github.com/casey/just) for conveniently running development tasks. You can use them directly, or copy the commands out of the `justfile`. To our help docs, run `just`. + +To get started, install [Composer][composer]. For example, on Mac OS: + +```bash +brew install composer +``` + +Install dependencies: + +```bash +just install +# or: composer install +``` + +The test suite depends on [stripe-mock], so make sure to fetch and run it from a +background terminal ([stripe-mock's README][stripe-mock] also contains +instructions for installing via Homebrew and other methods): + +```bash +go install github.com/stripe/stripe-mock@latest +stripe-mock +``` + +Install dependencies as mentioned above (which will resolve [PHPUnit](http://packagist.org/packages/phpunit/phpunit)), then you can run the test suite: + +```bash +just test +# or: ./vendor/bin/phpunit +``` + +Or to run an individual test file: + +```bash +just test tests/Stripe/UtilTest.php +# or: ./vendor/bin/phpunit tests/Stripe/UtilTest.php +``` + +Update bundled CA certificates from the [Mozilla cURL release][curl]: + +```bash +./update_certs.php +``` + +The library uses [PHP CS Fixer][php-cs-fixer] for code formatting. Code must be formatted before PRs are submitted, otherwise CI will fail. Run the formatter with: + +```bash +just format +# or: ./vendor/bin/php-cs-fixer fix -v . +``` + +## Attention plugin developers + +Are you writing a plugin that integrates Stripe and embeds our library? Then please use the `setAppInfo` function to identify your plugin. For example: + +```php +\Stripe\Stripe::setAppInfo("MyAwesomePlugin", "1.2.34", "https://myawesomeplugin.info"); +``` + +The method should be called once, before any request is sent to the API. The second and third parameters are optional. + +### SSL / TLS configuration option + +See the "SSL / TLS compatibility issues" paragraph above for full context. If you want to ensure that your plugin can be used on all systems, you should add a configuration option to let your users choose between different values for `CURLOPT_SSLVERSION`: none (default), `CURL_SSLVERSION_TLSv1` and `CURL_SSLVERSION_TLSv1_2`. + +[composer]: https://getcomposer.org/ +[connect]: https://stripe.com/connect +[curl]: http://curl.haxx.se/docs/caextract.html +[idempotency-keys]: https://stripe.com/docs/api/?lang=php#idempotent_requests +[php-cs-fixer]: https://github.com/FriendsOfPHP/PHP-CS-Fixer +[psr3]: http://www.php-fig.org/psr/psr-3/ +[stripe-mock]: https://github.com/stripe/stripe-mock +[youtube-playlist]: https://www.youtube.com/playlist?list=PLy1nL-pvL2M6cUbiHrfMkXxZ9j9SGBxFE diff --git a/vendor/stripe/stripe-php/VERSION b/vendor/stripe/stripe-php/VERSION new file mode 100644 index 0000000..bd015b9 --- /dev/null +++ b/vendor/stripe/stripe-php/VERSION @@ -0,0 +1 @@ +16.6.0 diff --git a/vendor/stripe/stripe-php/composer.json b/vendor/stripe/stripe-php/composer.json new file mode 100644 index 0000000..1e4dd7c --- /dev/null +++ b/vendor/stripe/stripe-php/composer.json @@ -0,0 +1,46 @@ +{ + "name": "stripe/stripe-php", + "description": "Stripe PHP Library", + "keywords": [ + "stripe", + "payment processing", + "api" + ], + "homepage": "https://stripe.com/", + "license": "MIT", + "authors": [ + { + "name": "Stripe and contributors", + "homepage": "https://github.com/stripe/stripe-php/contributors" + } + ], + "require": { + "php": ">=5.6.0", + "ext-curl": "*", + "ext-json": "*", + "ext-mbstring": "*" + }, + "require-dev": { + "phpunit/phpunit": "^5.7 || ^9.0", + "friendsofphp/php-cs-fixer": "3.5.0", + "phpstan/phpstan": "^1.2" + }, + "autoload": { + "psr-4": { + "Stripe\\": "lib/" + } + }, + "autoload-dev": { + "psr-4": { + "Stripe\\": [ + "tests/", + "tests/Stripe/" + ] + } + }, + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + } +} diff --git a/vendor/stripe/stripe-php/data/ca-certificates.crt b/vendor/stripe/stripe-php/data/ca-certificates.crt new file mode 100644 index 0000000..26f1350 --- /dev/null +++ b/vendor/stripe/stripe-php/data/ca-certificates.crt @@ -0,0 +1,3347 @@ +## +## Bundle of CA Root Certificates +## +## Certificate data from Mozilla as of: Tue Apr 26 03:12:05 2022 GMT +## +## This is a bundle of X.509 certificates of public Certificate Authorities +## (CA). These were automatically extracted from Mozilla's root certificates +## file (certdata.txt). This file can be found in the mozilla source tree: +## https://hg.mozilla.org/releases/mozilla-release/raw-file/default/security/nss/lib/ckfw/builtins/certdata.txt +## +## It contains the certificates in PEM format and therefore +## can be directly used with curl / libcurl / php_curl, or with +## an Apache+mod_ssl webserver for SSL client authentication. +## Just configure this file as the SSLCACertificateFile. +## +## Conversion done with mk-ca-bundle.pl version 1.29. +## SHA256: 34a54d5191775c1bd37be6cfd3f09e831e072555dc3a2e51f4a2c4b0f8ada5cc +## + + +GlobalSign Root CA +================== +-----BEGIN CERTIFICATE----- +MIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkGA1UEBhMCQkUx +GTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jvb3QgQ0ExGzAZBgNVBAMTEkds +b2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAwMDBaFw0yODAxMjgxMjAwMDBaMFcxCzAJBgNV +BAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYD +VQQDExJHbG9iYWxTaWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDa +DuaZjc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavpxy0Sy6sc +THAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp1Wrjsok6Vjk4bwY8iGlb +Kk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdGsnUOhugZitVtbNV4FpWi6cgKOOvyJBNP +c1STE4U6G7weNLWLBYy5d4ux2x8gkasJU26Qzns3dLlwR5EiUWMWea6xrkEmCMgZK9FGqkjWZCrX +gzT/LCrBbBlDSgeF59N89iFo7+ryUp9/k5DPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV +HRMBAf8EBTADAQH/MB0GA1UdDgQWBBRge2YaRQ2XyolQL30EzTSo//z9SzANBgkqhkiG9w0BAQUF +AAOCAQEA1nPnfE920I2/7LqivjTFKDK1fPxsnCwrvQmeU79rXqoRSLblCKOzyj1hTdNGCbM+w6Dj +Y1Ub8rrvrTnhQ7k4o+YviiY776BQVvnGCv04zcQLcFGUl5gE38NflNUVyRRBnMRddWQVDf9VMOyG +j/8N7yy5Y0b2qvzfvGn9LhJIZJrglfCm7ymPAbEVtQwdpf5pLGkkeB6zpxxxYu7KyJesF12KwvhH +hm4qxFYxldBniYUr+WymXUadDKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveC +X4XSQRjbgbMEHMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A== +-----END CERTIFICATE----- + +Entrust.net Premium 2048 Secure Server CA +========================================= +-----BEGIN CERTIFICATE----- +MIIEKjCCAxKgAwIBAgIEOGPe+DANBgkqhkiG9w0BAQUFADCBtDEUMBIGA1UEChMLRW50cnVzdC5u +ZXQxQDA+BgNVBAsUN3d3dy5lbnRydXN0Lm5ldC9DUFNfMjA0OCBpbmNvcnAuIGJ5IHJlZi4gKGxp +bWl0cyBsaWFiLikxJTAjBgNVBAsTHChjKSAxOTk5IEVudHJ1c3QubmV0IExpbWl0ZWQxMzAxBgNV +BAMTKkVudHJ1c3QubmV0IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ICgyMDQ4KTAeFw05OTEyMjQx +NzUwNTFaFw0yOTA3MjQxNDE1MTJaMIG0MRQwEgYDVQQKEwtFbnRydXN0Lm5ldDFAMD4GA1UECxQ3 +d3d3LmVudHJ1c3QubmV0L0NQU18yMDQ4IGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxpYWIuKTEl +MCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEGA1UEAxMqRW50cnVzdC5u +ZXQgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgKDIwNDgpMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A +MIIBCgKCAQEArU1LqRKGsuqjIAcVFmQqK0vRvwtKTY7tgHalZ7d4QMBzQshowNtTK91euHaYNZOL +Gp18EzoOH1u3Hs/lJBQesYGpjX24zGtLA/ECDNyrpUAkAH90lKGdCCmziAv1h3edVc3kw37XamSr +hRSGlVuXMlBvPci6Zgzj/L24ScF2iUkZ/cCovYmjZy/Gn7xxGWC4LeksyZB2ZnuU4q941mVTXTzW +nLLPKQP5L6RQstRIzgUyVYr9smRMDuSYB3Xbf9+5CFVghTAp+XtIpGmG4zU/HoZdenoVve8AjhUi +VBcAkCaTvA5JaJG/+EfTnZVCwQ5N328mz8MYIWJmQ3DW1cAH4QIDAQABo0IwQDAOBgNVHQ8BAf8E +BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUVeSB0RGAvtiJuQijMfmhJAkWuXAwDQYJ +KoZIhvcNAQEFBQADggEBADubj1abMOdTmXx6eadNl9cZlZD7Bh/KM3xGY4+WZiT6QBshJ8rmcnPy +T/4xmf3IDExoU8aAghOY+rat2l098c5u9hURlIIM7j+VrxGrD9cv3h8Dj1csHsm7mhpElesYT6Yf +zX1XEC+bBAlahLVu2B064dae0Wx5XnkcFMXj0EyTO2U87d89vqbllRrDtRnDvV5bu/8j72gZyxKT +J1wDLW8w0B62GqzeWvfRqqgnpv55gcR5mTNXuhKwqeBCbJPKVt7+bYQLCIt+jerXmCHG8+c8eS9e +nNFMFY3h7CI3zJpDC5fcgJCNs2ebb0gIFVbPv/ErfF6adulZkMV8gzURZVE= +-----END CERTIFICATE----- + +Baltimore CyberTrust Root +========================= +-----BEGIN CERTIFICATE----- +MIIDdzCCAl+gAwIBAgIEAgAAuTANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJJRTESMBAGA1UE +ChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYDVQQDExlCYWx0aW1vcmUgQ3li +ZXJUcnVzdCBSb290MB4XDTAwMDUxMjE4NDYwMFoXDTI1MDUxMjIzNTkwMFowWjELMAkGA1UEBhMC +SUUxEjAQBgNVBAoTCUJhbHRpbW9yZTETMBEGA1UECxMKQ3liZXJUcnVzdDEiMCAGA1UEAxMZQmFs +dGltb3JlIEN5YmVyVHJ1c3QgUm9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKME +uyKrmD1X6CZymrV51Cni4eiVgLGw41uOKymaZN+hXe2wCQVt2yguzmKiYv60iNoS6zjrIZ3AQSsB +UnuId9Mcj8e6uYi1agnnc+gRQKfRzMpijS3ljwumUNKoUMMo6vWrJYeKmpYcqWe4PwzV9/lSEy/C +G9VwcPCPwBLKBsua4dnKM3p31vjsufFoREJIE9LAwqSuXmD+tqYF/LTdB1kC1FkYmGP1pWPgkAx9 +XbIGevOF6uvUA65ehD5f/xXtabz5OTZydc93Uk3zyZAsuT3lySNTPx8kmCFcB5kpvcY67Oduhjpr +l3RjM71oGDHweI12v/yejl0qhqdNkNwnGjkCAwEAAaNFMEMwHQYDVR0OBBYEFOWdWTCCR1jMrPoI +VDaGezq1BE3wMBIGA1UdEwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEB +BQUAA4IBAQCFDF2O5G9RaEIFoN27TyclhAO992T9Ldcw46QQF+vaKSm2eT929hkTI7gQCvlYpNRh +cL0EYWoSihfVCr3FvDB81ukMJY2GQE/szKN+OMY3EU/t3WgxjkzSswF07r51XgdIGn9w/xZchMB5 +hbgF/X++ZRGjD8ACtPhSNzkE1akxehi/oCr0Epn3o0WC4zxe9Z2etciefC7IpJ5OCBRLbf1wbWsa +Y71k5h+3zvDyny67G7fyUIhzksLi4xaNmjICq44Y3ekQEe5+NauQrz4wlHrQMz2nZQ/1/I6eYs9H +RCwBXbsdtTLSR9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp +-----END CERTIFICATE----- + +Entrust Root Certification Authority +==================================== +-----BEGIN CERTIFICATE----- +MIIEkTCCA3mgAwIBAgIERWtQVDANBgkqhkiG9w0BAQUFADCBsDELMAkGA1UEBhMCVVMxFjAUBgNV +BAoTDUVudHJ1c3QsIEluYy4xOTA3BgNVBAsTMHd3dy5lbnRydXN0Lm5ldC9DUFMgaXMgaW5jb3Jw +b3JhdGVkIGJ5IHJlZmVyZW5jZTEfMB0GA1UECxMWKGMpIDIwMDYgRW50cnVzdCwgSW5jLjEtMCsG +A1UEAxMkRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA2MTEyNzIwMjM0 +MloXDTI2MTEyNzIwNTM0MlowgbAxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMu +MTkwNwYDVQQLEzB3d3cuZW50cnVzdC5uZXQvQ1BTIGlzIGluY29ycG9yYXRlZCBieSByZWZlcmVu +Y2UxHzAdBgNVBAsTFihjKSAyMDA2IEVudHJ1c3QsIEluYy4xLTArBgNVBAMTJEVudHJ1c3QgUm9v +dCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB +ALaVtkNC+sZtKm9I35RMOVcF7sN5EUFoNu3s/poBj6E4KPz3EEZmLk0eGrEaTsbRwJWIsMn/MYsz +A9u3g3s+IIRe7bJWKKf44LlAcTfFy0cOlypowCKVYhXbR9n10Cv/gkvJrT7eTNuQgFA/CYqEAOww +Cj0Yzfv9KlmaI5UXLEWeH25DeW0MXJj+SKfFI0dcXv1u5x609mhF0YaDW6KKjbHjKYD+JXGIrb68 +j6xSlkuqUY3kEzEZ6E5Nn9uss2rVvDlUccp6en+Q3X0dgNmBu1kmwhH+5pPi94DkZfs0Nw4pgHBN +rziGLp5/V6+eF67rHMsoIV+2HNjnogQi+dPa2MsCAwEAAaOBsDCBrTAOBgNVHQ8BAf8EBAMCAQYw +DwYDVR0TAQH/BAUwAwEB/zArBgNVHRAEJDAigA8yMDA2MTEyNzIwMjM0MlqBDzIwMjYxMTI3MjA1 +MzQyWjAfBgNVHSMEGDAWgBRokORnpKZTgMeGZqTx90tD+4S9bTAdBgNVHQ4EFgQUaJDkZ6SmU4DH +hmak8fdLQ/uEvW0wHQYJKoZIhvZ9B0EABBAwDhsIVjcuMTo0LjADAgSQMA0GCSqGSIb3DQEBBQUA +A4IBAQCT1DCw1wMgKtD5Y+iRDAUgqV8ZyntyTtSx29CW+1RaGSwMCPeyvIWonX9tO1KzKtvn1ISM +Y/YPyyYBkVBs9F8U4pN0wBOeMDpQ47RgxRzwIkSNcUesyBrJ6ZuaAGAT/3B+XxFNSRuzFVJ7yVTa +v52Vr2ua2J7p8eRDjeIRRDq/r72DQnNSi6q7pynP9WQcCk3RvKqsnyrQ/39/2n3qse0wJcGE2jTS +W3iDVuycNsMm4hH2Z0kdkquM++v/eu6FSqdQgPCnXEqULl8FmTxSQeDNtGPPAUO6nIPcj2A781q0 +tHuu2guQOHXvgR1m0vdXcDazv/wor3ElhVsT/h5/WrQ8 +-----END CERTIFICATE----- + +Comodo AAA Services root +======================== +-----BEGIN CERTIFICATE----- +MIIEMjCCAxqgAwIBAgIBATANBgkqhkiG9w0BAQUFADB7MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS +R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg +TGltaXRlZDEhMB8GA1UEAwwYQUFBIENlcnRpZmljYXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAwMDAw +MFoXDTI4MTIzMTIzNTk1OVowezELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFuY2hl +c3RlcjEQMA4GA1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxITAfBgNV +BAMMGEFBQSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC +ggEBAL5AnfRu4ep2hxxNRUSOvkbIgwadwSr+GB+O5AL686tdUIoWMQuaBtDFcCLNSS1UY8y2bmhG +C1Pqy0wkwLxyTurxFa70VJoSCsN6sjNg4tqJVfMiWPPe3M/vg4aijJRPn2jymJBGhCfHdr/jzDUs +i14HZGWCwEiwqJH5YZ92IFCokcdmtet4YgNW8IoaE+oxox6gmf049vYnMlhvB/VruPsUK6+3qszW +Y19zjNoFmag4qMsXeDZRrOme9Hg6jc8P2ULimAyrL58OAd7vn5lJ8S3frHRNG5i1R8XlKdH5kBjH +Ypy+g8cmez6KJcfA3Z3mNWgQIJ2P2N7Sw4ScDV7oL8kCAwEAAaOBwDCBvTAdBgNVHQ4EFgQUoBEK +Iz6W8Qfs4q8p74Klf9AwpLQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wewYDVR0f +BHQwcjA4oDagNIYyaHR0cDovL2NybC5jb21vZG9jYS5jb20vQUFBQ2VydGlmaWNhdGVTZXJ2aWNl +cy5jcmwwNqA0oDKGMGh0dHA6Ly9jcmwuY29tb2RvLm5ldC9BQUFDZXJ0aWZpY2F0ZVNlcnZpY2Vz +LmNybDANBgkqhkiG9w0BAQUFAAOCAQEACFb8AvCb6P+k+tZ7xkSAzk/ExfYAWMymtrwUSWgEdujm +7l3sAg9g1o1QGE8mTgHj5rCl7r+8dFRBv/38ErjHT1r0iWAFf2C3BUrz9vHCv8S5dIa2LX1rzNLz +Rt0vxuBqw8M0Ayx9lt1awg6nCpnBBYurDC/zXDrPbDdVCYfeU0BsWO/8tqtlbgT2G9w84FoVxp7Z +8VlIMCFlA2zs6SFz7JsDoeA3raAVGI/6ugLOpyypEBMs1OUIJqsil2D4kF501KKaU73yqWjgom7C +12yxow+ev+to51byrvLjKzg6CYG1a4XXvi3tPxq3smPi9WIsgtRqAEFQ8TmDn5XpNpaYbg== +-----END CERTIFICATE----- + +QuoVadis Root CA 2 +================== +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- + +QuoVadis Root CA 3 +================== +-----BEGIN CERTIFICATE----- +MIIGnTCCBIWgAwIBAgICBcYwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0xGTAXBgNVBAoT +EFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJvb3QgQ0EgMzAeFw0wNjExMjQx +OTExMjNaFw0zMTExMjQxOTA2NDRaMEUxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM +aW1pdGVkMRswGQYDVQQDExJRdW9WYWRpcyBSb290IENBIDMwggIiMA0GCSqGSIb3DQEBAQUAA4IC +DwAwggIKAoICAQDMV0IWVJzmmNPTTe7+7cefQzlKZbPoFog02w1ZkXTPkrgEQK0CSzGrvI2RaNgg +DhoB4hp7Thdd4oq3P5kazethq8Jlph+3t723j/z9cI8LoGe+AaJZz3HmDyl2/7FWeUUrH556VOij +KTVopAFPD6QuN+8bv+OPEKhyq1hX51SGyMnzW9os2l2ObjyjPtr7guXd8lyyBTNvijbO0BNO/79K +DDRMpsMhvVAEVeuxu537RR5kFd5VAYwCdrXLoT9CabwvvWhDFlaJKjdhkf2mrk7AyxRllDdLkgbv +BNDInIjbC3uBr7E9KsRlOni27tyAsdLTmZw67mtaa7ONt9XOnMK+pUsvFrGeaDsGb659n/je7Mwp +p5ijJUMv7/FfJuGITfhebtfZFG4ZM2mnO4SJk8RTVROhUXhA+LjJou57ulJCg54U7QVSWllWp5f8 +nT8KKdjcT5EOE7zelaTfi5m+rJsziO+1ga8bxiJTyPbH7pcUsMV8eFLI8M5ud2CEpukqdiDtWAEX +MJPpGovgc2PZapKUSU60rUqFxKMiMPwJ7Wgic6aIDFUhWMXhOp8q3crhkODZc6tsgLjoC2SToJyM +Gf+z0gzskSaHirOi4XCPLArlzW1oUevaPwV/izLmE1xr/l9A4iLItLRkT9a6fUg+qGkM17uGcclz +uD87nSVL2v9A6wIDAQABo4IBlTCCAZEwDwYDVR0TAQH/BAUwAwEB/zCB4QYDVR0gBIHZMIHWMIHT +BgkrBgEEAb5YAAMwgcUwgZMGCCsGAQUFBwICMIGGGoGDQW55IHVzZSBvZiB0aGlzIENlcnRpZmlj +YXRlIGNvbnN0aXR1dGVzIGFjY2VwdGFuY2Ugb2YgdGhlIFF1b1ZhZGlzIFJvb3QgQ0EgMyBDZXJ0 +aWZpY2F0ZSBQb2xpY3kgLyBDZXJ0aWZpY2F0aW9uIFByYWN0aWNlIFN0YXRlbWVudC4wLQYIKwYB +BQUHAgEWIWh0dHA6Ly93d3cucXVvdmFkaXNnbG9iYWwuY29tL2NwczALBgNVHQ8EBAMCAQYwHQYD +VR0OBBYEFPLAE+CCQz777i9nMpY1XNu4ywLQMG4GA1UdIwRnMGWAFPLAE+CCQz777i9nMpY1XNu4 +ywLQoUmkRzBFMQswCQYDVQQGEwJCTTEZMBcGA1UEChMQUXVvVmFkaXMgTGltaXRlZDEbMBkGA1UE +AxMSUXVvVmFkaXMgUm9vdCBDQSAzggIFxjANBgkqhkiG9w0BAQUFAAOCAgEAT62gLEz6wPJv92ZV +qyM07ucp2sNbtrCD2dDQ4iH782CnO11gUyeim/YIIirnv6By5ZwkajGxkHon24QRiSemd1o417+s +hvzuXYO8BsbRd2sPbSQvS3pspweWyuOEn62Iix2rFo1bZhfZFvSLgNLd+LJ2w/w4E6oM3kJpK27z +POuAJ9v1pkQNn1pVWQvVDVJIxa6f8i+AxeoyUDUSly7B4f/xI4hROJ/yZlZ25w9Rl6VSDE1JUZU2 +Pb+iSwwQHYaZTKrzchGT5Or2m9qoXadNt54CrnMAyNojA+j56hl0YgCUyyIgvpSnWbWCar6ZeXqp +8kokUvd0/bpO5qgdAm6xDYBEwa7TIzdfu4V8K5Iu6H6li92Z4b8nby1dqnuH/grdS/yO9SbkbnBC +bjPsMZ57k8HkyWkaPcBrTiJt7qtYTcbQQcEr6k8Sh17rRdhs9ZgC06DYVYoGmRmioHfRMJ6szHXu +g/WwYjnPbFfiTNKRCw51KBuav/0aQ/HKd/s7j2G4aSgWQgRecCocIdiP4b0jWy10QJLZYxkNc91p +vGJHvOB0K7Lrfb5BG7XARsWhIstfTsEokt4YutUqKLsRixeTmJlglFwjz1onl14LBQaTNx47aTbr +qZ5hHY8y2o4M1nQ+ewkk2gF3R8Q7zTSMmfXK4SVhM7JZG+Ju1zdXtg2pEto= +-----END CERTIFICATE----- + +Security Communication Root CA +============================== +-----BEGIN CERTIFICATE----- +MIIDWjCCAkKgAwIBAgIBADANBgkqhkiG9w0BAQUFADBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMP +U0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEw +HhcNMDMwOTMwMDQyMDQ5WhcNMjMwOTMwMDQyMDQ5WjBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMP +U0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEw +ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCzs/5/022x7xZ8V6UMbXaKL0u/ZPtM7orw +8yl89f/uKuDp6bpbZCKamm8sOiZpUQWZJtzVHGpxxpp9Hp3dfGzGjGdnSj74cbAZJ6kJDKaVv0uM +DPpVmDvY6CKhS3E4eayXkmmziX7qIWgGmBSWh9JhNrxtJ1aeV+7AwFb9Ms+k2Y7CI9eNqPPYJayX +5HA49LY6tJ07lyZDo6G8SVlyTCMwhwFY9k6+HGhWZq/NQV3Is00qVUarH9oe4kA92819uZKAnDfd +DJZkndwi92SL32HeFZRSFaB9UslLqCHJxrHty8OVYNEP8Ktw+N/LTX7s1vqr2b1/VPKl6Xn62dZ2 +JChzAgMBAAGjPzA9MB0GA1UdDgQWBBSgc0mZaNyFW2XjmygvV5+9M7wHSDALBgNVHQ8EBAMCAQYw +DwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEAaECpqLvkT115swW1F7NgE+vGkl3g +0dNq/vu+m22/xwVtWSDEHPC32oRYAmP6SBbvT6UL90qY8j+eG61Ha2POCEfrUj94nK9NrvjVT8+a +mCoQQTlSxN3Zmw7vkwGusi7KaEIkQmywszo+zenaSMQVy+n5Bw+SUEmK3TGXX8npN6o7WWWXlDLJ +s58+OmJYxUmtYg5xpTKqL8aJdkNAExNnPaJUJRDL8Try2frbSVa7pv6nQTXD4IhhyYjH3zYQIphZ +6rBK+1YWc26sTfcioU+tHXotRSflMMFe8toTyyVCUZVHA4xsIcx0Qu1T/zOLjw9XARYvz6buyXAi +FL39vmwLAw== +-----END CERTIFICATE----- + +XRamp Global CA Root +==================== +-----BEGIN CERTIFICATE----- +MIIEMDCCAxigAwIBAgIQUJRs7Bjq1ZxN1ZfvdY+grTANBgkqhkiG9w0BAQUFADCBgjELMAkGA1UE +BhMCVVMxHjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2Vj +dXJpdHkgU2VydmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBB +dXRob3JpdHkwHhcNMDQxMTAxMTcxNDA0WhcNMzUwMTAxMDUzNzE5WjCBgjELMAkGA1UEBhMCVVMx +HjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2VjdXJpdHkg +U2VydmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBBdXRob3Jp +dHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCYJB69FbS638eMpSe2OAtp87ZOqCwu +IR1cRN8hXX4jdP5efrRKt6atH67gBhbim1vZZ3RrXYCPKZ2GG9mcDZhtdhAoWORlsH9KmHmf4MMx +foArtYzAQDsRhtDLooY2YKTVMIJt2W7QDxIEM5dfT2Fa8OT5kavnHTu86M/0ay00fOJIYRyO82FE +zG+gSqmUsE3a56k0enI4qEHMPJQRfevIpoy3hsvKMzvZPTeL+3o+hiznc9cKV6xkmxnr9A8ECIqs +AxcZZPRaJSKNNCyy9mgdEm3Tih4U2sSPpuIjhdV6Db1q4Ons7Be7QhtnqiXtRYMh/MHJfNViPvry +xS3T/dRlAgMBAAGjgZ8wgZwwEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1Ud +EwEB/wQFMAMBAf8wHQYDVR0OBBYEFMZPoj0GY4QJnM5i5ASsjVy16bYbMDYGA1UdHwQvMC0wK6Ap +oCeGJWh0dHA6Ly9jcmwueHJhbXBzZWN1cml0eS5jb20vWEdDQS5jcmwwEAYJKwYBBAGCNxUBBAMC +AQEwDQYJKoZIhvcNAQEFBQADggEBAJEVOQMBG2f7Shz5CmBbodpNl2L5JFMn14JkTpAuw0kbK5rc +/Kh4ZzXxHfARvbdI4xD2Dd8/0sm2qlWkSLoC295ZLhVbO50WfUfXN+pfTXYSNrsf16GBBEYgoyxt +qZ4Bfj8pzgCT3/3JknOJiWSe5yvkHJEs0rnOfc5vMZnT5r7SHpDwCRR5XCOrTdLaIR9NmXmd4c8n +nxCbHIgNsIpkQTG4DmyQJKSbXHGPurt+HBvbaoAPIbzp26a3QPSyi6mx5O+aGtA9aZnuqCij4Tyz +8LIRnM98QObd50N9otg6tamN8jSZxNQQ4Qb9CYQQO+7ETPTsJ3xCwnR8gooJybQDJbw= +-----END CERTIFICATE----- + +Go Daddy Class 2 CA +=================== +-----BEGIN CERTIFICATE----- +MIIEADCCAuigAwIBAgIBADANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMY +VGhlIEdvIERhZGR5IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRp +ZmljYXRpb24gQXV0aG9yaXR5MB4XDTA0MDYyOTE3MDYyMFoXDTM0MDYyOTE3MDYyMFowYzELMAkG +A1UEBhMCVVMxITAfBgNVBAoTGFRoZSBHbyBEYWRkeSBHcm91cCwgSW5jLjExMC8GA1UECxMoR28g +RGFkZHkgQ2xhc3MgMiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASAwDQYJKoZIhvcNAQEBBQAD +ggENADCCAQgCggEBAN6d1+pXGEmhW+vXX0iG6r7d/+TvZxz0ZWizV3GgXne77ZtJ6XCAPVYYYwhv +2vLM0D9/AlQiVBDYsoHUwHU9S3/Hd8M+eKsaA7Ugay9qK7HFiH7Eux6wwdhFJ2+qN1j3hybX2C32 +qRe3H3I2TqYXP2WYktsqbl2i/ojgC95/5Y0V4evLOtXiEqITLdiOr18SPaAIBQi2XKVlOARFmR6j +YGB0xUGlcmIbYsUfb18aQr4CUWWoriMYavx4A6lNf4DD+qta/KFApMoZFv6yyO9ecw3ud72a9nmY +vLEHZ6IVDd2gWMZEewo+YihfukEHU1jPEX44dMX4/7VpkI+EdOqXG68CAQOjgcAwgb0wHQYDVR0O +BBYEFNLEsNKR1EwRcbNhyz2h/t2oatTjMIGNBgNVHSMEgYUwgYKAFNLEsNKR1EwRcbNhyz2h/t2o +atTjoWekZTBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYVGhlIEdvIERhZGR5IEdyb3VwLCBJbmMu +MTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggEAMAwG +A1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBADJL87LKPpH8EsahB4yOd6AzBhRckB4Y9wim +PQoZ+YeAEW5p5JYXMP80kWNyOO7MHAGjHZQopDH2esRU1/blMVgDoszOYtuURXO1v0XJJLXVggKt +I3lpjbi2Tc7PTMozI+gciKqdi0FuFskg5YmezTvacPd+mSYgFFQlq25zheabIZ0KbIIOqPjCDPoQ +HmyW74cNxA9hi63ugyuV+I6ShHI56yDqg+2DzZduCLzrTia2cyvk0/ZM/iZx4mERdEr/VxqHD3VI +Ls9RaRegAhJhldXRQLIQTO7ErBBDpqWeCtWVYpoNz4iCxTIM5CufReYNnyicsbkqWletNw+vHX/b +vZ8= +-----END CERTIFICATE----- + +Starfield Class 2 CA +==================== +-----BEGIN CERTIFICATE----- +MIIEDzCCAvegAwIBAgIBADANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJVUzElMCMGA1UEChMc +U3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAGA1UECxMpU3RhcmZpZWxkIENsYXNzIDIg +Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDQwNjI5MTczOTE2WhcNMzQwNjI5MTczOTE2WjBo +MQswCQYDVQQGEwJVUzElMCMGA1UEChMcU3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAG +A1UECxMpU3RhcmZpZWxkIENsYXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEgMA0GCSqG +SIb3DQEBAQUAA4IBDQAwggEIAoIBAQC3Msj+6XGmBIWtDBFk385N78gDGIc/oav7PKaf8MOh2tTY +bitTkPskpD6E8J7oX+zlJ0T1KKY/e97gKvDIr1MvnsoFAZMej2YcOadN+lq2cwQlZut3f+dZxkqZ +JRRU6ybH838Z1TBwj6+wRir/resp7defqgSHo9T5iaU0X9tDkYI22WY8sbi5gv2cOj4QyDvvBmVm +epsZGD3/cVE8MC5fvj13c7JdBmzDI1aaK4UmkhynArPkPw2vCHmCuDY96pzTNbO8acr1zJ3o/WSN +F4Azbl5KXZnJHoe0nRrA1W4TNSNe35tfPe/W93bC6j67eA0cQmdrBNj41tpvi/JEoAGrAgEDo4HF +MIHCMB0GA1UdDgQWBBS/X7fRzt0fhvRbVazc1xDCDqmI5zCBkgYDVR0jBIGKMIGHgBS/X7fRzt0f +hvRbVazc1xDCDqmI56FspGowaDELMAkGA1UEBhMCVVMxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNo +bm9sb2dpZXMsIEluYy4xMjAwBgNVBAsTKVN0YXJmaWVsZCBDbGFzcyAyIENlcnRpZmljYXRpb24g +QXV0aG9yaXR5ggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAAWdP4id0ckaVaGs +afPzWdqbAYcaT1epoXkJKtv3L7IezMdeatiDh6GX70k1PncGQVhiv45YuApnP+yz3SFmH8lU+nLM +PUxA2IGvd56Deruix/U0F47ZEUD0/CwqTRV/p2JdLiXTAAsgGh1o+Re49L2L7ShZ3U0WixeDyLJl +xy16paq8U4Zt3VekyvggQQto8PT7dL5WXXp59fkdheMtlb71cZBDzI0fmgAKhynpVSJYACPq4xJD +KVtHCN2MQWplBqjlIapBtJUhlbl90TSrE9atvNziPTnNvT51cKEYWQPJIrSPnNVeKtelttQKbfi3 +QBFGmh95DmK/D5fs4C8fF5Q= +-----END CERTIFICATE----- + +DigiCert Assured ID Root CA +=========================== +-----BEGIN CERTIFICATE----- +MIIDtzCCAp+gAwIBAgIQDOfg5RfYRv6P5WD8G/AwOTANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQG +EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQw +IgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0EwHhcNMDYxMTEwMDAwMDAwWhcNMzEx +MTEwMDAwMDAwWjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQL +ExB3d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0Ew +ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtDhXO5EOAXLGH87dg+XESpa7cJpSIqvTO +9SA5KFhgDPiA2qkVlTJhPLWxKISKityfCgyDF3qPkKyK53lTXDGEKvYPmDI2dsze3Tyoou9q+yHy +UmHfnyDXH+Kx2f4YZNISW1/5WBg1vEfNoTb5a3/UsDg+wRvDjDPZ2C8Y/igPs6eD1sNuRMBhNZYW +/lmci3Zt1/GiSw0r/wty2p5g0I6QNcZ4VYcgoc/lbQrISXwxmDNsIumH0DJaoroTghHtORedmTpy +oeb6pNnVFzF1roV9Iq4/AUaG9ih5yLHa5FcXxH4cDrC0kqZWs72yl+2qp/C3xag/lRbQ/6GW6whf +GHdPAgMBAAGjYzBhMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRF +66Kv9JLLgjEtUYunpyGd823IDzAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYunpyGd823IDzANBgkq +hkiG9w0BAQUFAAOCAQEAog683+Lt8ONyc3pklL/3cmbYMuRCdWKuh+vy1dneVrOfzM4UKLkNl2Bc +EkxY5NM9g0lFWJc1aRqoR+pWxnmrEthngYTffwk8lOa4JiwgvT2zKIn3X/8i4peEH+ll74fg38Fn +SbNd67IJKusm7Xi+fT8r87cmNW1fiQG2SVufAQWbqz0lwcy2f8Lxb4bG+mRo64EtlOtCt/qMHt1i +8b5QZ7dsvfPxH2sMNgcWfzd8qVttevESRmCD1ycEvkvOl77DZypoEd+A5wwzZr8TDRRu838fYxAe ++o0bJW1sj6W3YQGx0qMmoRBxna3iw/nDmVG3KwcIzi7mULKn+gpFL6Lw8g== +-----END CERTIFICATE----- + +DigiCert Global Root CA +======================= +-----BEGIN CERTIFICATE----- +MIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBhMQswCQYDVQQG +EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAw +HgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBDQTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAw +MDAwMDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3 +dy5kaWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IENBMIIBIjANBgkq +hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKPC3eQyaKl7hLOllsBCSDMAZOn +TjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtxRuLWZscFs3YnFo97nh6Vfe63SKMI2tavegw5 +BmV/Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt43C/dxC//AH2hdmoRBBYMql1GNXRor5H +4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7PT19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y +7vrTC0LUq7dBMtoM1O/4gdW7jVg/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQAB +o2MwYTAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA95QNVbRTLtm +8KPiGxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUwDQYJKoZIhvcNAQEF +BQADggEBAMucN6pIExIK+t1EnE9SsPTfrgT1eXkIoyQY/EsrhMAtudXH/vTBH1jLuG2cenTnmCmr +EbXjcKChzUyImZOMkXDiqw8cvpOp/2PV5Adg06O/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIt +tep3Sp+dWOIrWcBAI+0tKIJFPnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886 +UAb3LujEV0lsYSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQk +CAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4= +-----END CERTIFICATE----- + +DigiCert High Assurance EV Root CA +================================== +-----BEGIN CERTIFICATE----- +MIIDxTCCAq2gAwIBAgIQAqxcJmoLQJuPC3nyrkYldzANBgkqhkiG9w0BAQUFADBsMQswCQYDVQQG +EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSsw +KQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5jZSBFViBSb290IENBMB4XDTA2MTExMDAwMDAw +MFoXDTMxMTExMDAwMDAwMFowbDELMAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZ +MBcGA1UECxMQd3d3LmRpZ2ljZXJ0LmNvbTErMCkGA1UEAxMiRGlnaUNlcnQgSGlnaCBBc3N1cmFu +Y2UgRVYgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbM5XPm+9S75S0t +Mqbf5YE/yc0lSbZxKsPVlDRnogocsF9ppkCxxLeyj9CYpKlBWTrT3JTWPNt0OKRKzE0lgvdKpVMS +OO7zSW1xkX5jtqumX8OkhPhPYlG++MXs2ziS4wblCJEMxChBVfvLWokVfnHoNb9Ncgk9vjo4UFt3 +MRuNs8ckRZqnrG0AFFoEt7oT61EKmEFBIk5lYYeBQVCmeVyJ3hlKV9Uu5l0cUyx+mM0aBhakaHPQ +NAQTXKFx01p8VdteZOE3hzBWBOURtCmAEvF5OYiiAhF8J2a3iLd48soKqDirCmTCv2ZdlYTBoSUe +h10aUAsgEsxBu24LUTi4S8sCAwEAAaNjMGEwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMB +Af8wHQYDVR0OBBYEFLE+w2kD+L9HAdSYJhoIAu9jZCvDMB8GA1UdIwQYMBaAFLE+w2kD+L9HAdSY +JhoIAu9jZCvDMA0GCSqGSIb3DQEBBQUAA4IBAQAcGgaX3NecnzyIZgYIVyHbIUf4KmeqvxgydkAQ +V8GK83rZEWWONfqe/EW1ntlMMUu4kehDLI6zeM7b41N5cdblIZQB2lWHmiRk9opmzN6cN82oNLFp +myPInngiK3BD41VHMWEZ71jFhS9OMPagMRYjyOfiZRYzy78aG6A9+MpeizGLYAiJLQwGXFK3xPkK +mNEVX58Svnw2Yzi9RKR/5CYrCsSXaQ3pjOLAEFe4yHYSkVXySGnYvCoCWw9E1CAx2/S6cCZdkGCe +vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep+OkuE6N36B9K +-----END CERTIFICATE----- + +SwissSign Gold CA - G2 +====================== +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- + +SwissSign Silver CA - G2 +======================== +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- + +SecureTrust CA +============== +-----BEGIN CERTIFICATE----- +MIIDuDCCAqCgAwIBAgIQDPCOXAgWpa1Cf/DrJxhZ0DANBgkqhkiG9w0BAQUFADBIMQswCQYDVQQG +EwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xFzAVBgNVBAMTDlNlY3VyZVRy +dXN0IENBMB4XDTA2MTEwNzE5MzExOFoXDTI5MTIzMTE5NDA1NVowSDELMAkGA1UEBhMCVVMxIDAe +BgNVBAoTF1NlY3VyZVRydXN0IENvcnBvcmF0aW9uMRcwFQYDVQQDEw5TZWN1cmVUcnVzdCBDQTCC +ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKukgeWVzfX2FI7CT8rU4niVWJxB4Q2ZQCQX +OZEzZum+4YOvYlyJ0fwkW2Gz4BERQRwdbvC4u/jep4G6pkjGnx29vo6pQT64lO0pGtSO0gMdA+9t +DWccV9cGrcrI9f4Or2YlSASWC12juhbDCE/RRvgUXPLIXgGZbf2IzIaowW8xQmxSPmjL8xk037uH +GFaAJsTQ3MBv396gwpEWoGQRS0S8Hvbn+mPeZqx2pHGj7DaUaHp3pLHnDi+BeuK1cobvomuL8A/b +01k/unK8RCSc43Oz969XL0Imnal0ugBS8kvNU3xHCzaFDmapCJcWNFfBZveA4+1wVMeT4C4oFVmH +ursCAwEAAaOBnTCBmjATBgkrBgEEAYI3FAIEBh4EAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/ +BAUwAwEB/zAdBgNVHQ4EFgQUQjK2FvoE/f5dS3rD/fdMQB1aQ68wNAYDVR0fBC0wKzApoCegJYYj +aHR0cDovL2NybC5zZWN1cmV0cnVzdC5jb20vU1RDQS5jcmwwEAYJKwYBBAGCNxUBBAMCAQAwDQYJ +KoZIhvcNAQEFBQADggEBADDtT0rhWDpSclu1pqNlGKa7UTt36Z3q059c4EVlew3KW+JwULKUBRSu +SceNQQcSc5R+DCMh/bwQf2AQWnL1mA6s7Ll/3XpvXdMc9P+IBWlCqQVxyLesJugutIxq/3HcuLHf +mbx8IVQr5Fiiu1cprp6poxkmD5kuCLDv/WnPmRoJjeOnnyvJNjR7JLN4TJUXpAYmHrZkUjZfYGfZ +nMUFdAvnZyPSCPyI6a6Lf+Ew9Dd+/cYy2i2eRDAwbO4H3tI0/NL/QPZL9GZGBlSm8jIKYyYwa5vR +3ItHuuG51WLQoqD0ZwV4KWMabwTW+MZMo5qxN7SN5ShLHZ4swrhovO0C7jE= +-----END CERTIFICATE----- + +Secure Global CA +================ +-----BEGIN CERTIFICATE----- +MIIDvDCCAqSgAwIBAgIQB1YipOjUiolN9BPI8PjqpTANBgkqhkiG9w0BAQUFADBKMQswCQYDVQQG +EwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBH +bG9iYWwgQ0EwHhcNMDYxMTA3MTk0MjI4WhcNMjkxMjMxMTk1MjA2WjBKMQswCQYDVQQGEwJVUzEg +MB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBHbG9iYWwg +Q0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvNS7YrGxVaQZx5RNoJLNP2MwhR/jx +YDiJiQPpvepeRlMJ3Fz1Wuj3RSoC6zFh1ykzTM7HfAo3fg+6MpjhHZevj8fcyTiW89sa/FHtaMbQ +bqR8JNGuQsiWUGMu4P51/pinX0kuleM5M2SOHqRfkNJnPLLZ/kG5VacJjnIFHovdRIWCQtBJwB1g +8NEXLJXr9qXBkqPFwqcIYA1gBBCWeZ4WNOaptvolRTnIHmX5k/Wq8VLcmZg9pYYaDDUz+kulBAYV +HDGA76oYa8J719rO+TMg1fW9ajMtgQT7sFzUnKPiXB3jqUJ1XnvUd+85VLrJChgbEplJL4hL/VBi +0XPnj3pDAgMBAAGjgZ0wgZowEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1Ud +EwEB/wQFMAMBAf8wHQYDVR0OBBYEFK9EBMJBfkiD2045AuzshHrmzsmkMDQGA1UdHwQtMCswKaAn +oCWGI2h0dHA6Ly9jcmwuc2VjdXJldHJ1c3QuY29tL1NHQ0EuY3JsMBAGCSsGAQQBgjcVAQQDAgEA +MA0GCSqGSIb3DQEBBQUAA4IBAQBjGghAfaReUw132HquHw0LURYD7xh8yOOvaliTFGCRsoTciE6+ +OYo68+aCiV0BN7OrJKQVDpI1WkpEXk5X+nXOH0jOZvQ8QCaSmGwb7iRGDBezUqXbpZGRzzfTb+cn +CDpOGR86p1hcF895P4vkp9MmI50mD1hp/Ed+stCNi5O/KU9DaXR2Z0vPB4zmAve14bRDtUstFJ/5 +3CYNv6ZHdAbYiNE6KTCEztI5gGIbqMdXSbxqVVFnFUq+NQfk1XWYN3kwFNspnWzFacxHVaIw98xc +f8LDmBxrThaA63p4ZUWiABqvDA1VZDRIuJK58bRQKfJPIx/abKwfROHdI3hRW8cW +-----END CERTIFICATE----- + +COMODO Certification Authority +============================== +-----BEGIN CERTIFICATE----- +MIIEHTCCAwWgAwIBAgIQToEtioJl4AsC7j41AkblPTANBgkqhkiG9w0BAQUFADCBgTELMAkGA1UE +BhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgG +A1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNVBAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1 +dGhvcml0eTAeFw0wNjEyMDEwMDAwMDBaFw0yOTEyMzEyMzU5NTlaMIGBMQswCQYDVQQGEwJHQjEb +MBkGA1UECBMSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFD +T01PRE8gQ0EgTGltaXRlZDEnMCUGA1UEAxMeQ09NT0RPIENlcnRpZmljYXRpb24gQXV0aG9yaXR5 +MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0ECLi3LjkRv3UcEbVASY06m/weaKXTuH ++7uIzg3jLz8GlvCiKVCZrts7oVewdFFxze1CkU1B/qnI2GqGd0S7WWaXUF601CxwRM/aN5VCaTww +xHGzUvAhTaHYujl8HJ6jJJ3ygxaYqhZ8Q5sVW7euNJH+1GImGEaaP+vB+fGQV+useg2L23IwambV +4EajcNxo2f8ESIl33rXp+2dtQem8Ob0y2WIC8bGoPW43nOIv4tOiJovGuFVDiOEjPqXSJDlqR6sA +1KGzqSX+DT+nHbrTUcELpNqsOO9VUCQFZUaTNE8tja3G1CEZ0o7KBWFxB3NH5YoZEr0ETc5OnKVI +rLsm9wIDAQABo4GOMIGLMB0GA1UdDgQWBBQLWOWLxkwVN6RAqTCpIb5HNlpW/zAOBgNVHQ8BAf8E +BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zBJBgNVHR8EQjBAMD6gPKA6hjhodHRwOi8vY3JsLmNvbW9k +b2NhLmNvbS9DT01PRE9DZXJ0aWZpY2F0aW9uQXV0aG9yaXR5LmNybDANBgkqhkiG9w0BAQUFAAOC +AQEAPpiem/Yb6dc5t3iuHXIYSdOH5EOC6z/JqvWote9VfCFSZfnVDeFs9D6Mk3ORLgLETgdxb8CP +OGEIqB6BCsAvIC9Bi5HcSEW88cbeunZrM8gALTFGTO3nnc+IlP8zwFboJIYmuNg4ON8qa90SzMc/ +RxdMosIGlgnW2/4/PEZB31jiVg88O8EckzXZOFKs7sjsLjBOlDW0JB9LeGna8gI4zJVSk/BwJVmc +IGfE7vmLV2H0knZ9P4SNVbfo5azV8fUZVqZa+5Acr5Pr5RzUZ5ddBA6+C4OmF4O5MBKgxTMVBbkN ++8cFduPYSo38NBejxiEovjBFMR7HeL5YYTisO+IBZQ== +-----END CERTIFICATE----- + +Network Solutions Certificate Authority +======================================= +-----BEGIN CERTIFICATE----- +MIID5jCCAs6gAwIBAgIQV8szb8JcFuZHFhfjkDFo4DANBgkqhkiG9w0BAQUFADBiMQswCQYDVQQG +EwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMuMTAwLgYDVQQDEydOZXR3b3Jr +IFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcNMDYxMjAxMDAwMDAwWhcNMjkxMjMx +MjM1OTU5WjBiMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMu +MTAwLgYDVQQDEydOZXR3b3JrIFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0G +CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDkvH6SMG3G2I4rC7xGzuAnlt7e+foS0zwzc7MEL7xx +jOWftiJgPl9dzgn/ggwbmlFQGiaJ3dVhXRncEg8tCqJDXRfQNJIg6nPPOCwGJgl6cvf6UDL4wpPT +aaIjzkGxzOTVHzbRijr4jGPiFFlp7Q3Tf2vouAPlT2rlmGNpSAW+Lv8ztumXWWn4Zxmuk2GWRBXT +crA/vGp97Eh/jcOrqnErU2lBUzS1sLnFBgrEsEX1QV1uiUV7PTsmjHTC5dLRfbIR1PtYMiKagMnc +/Qzpf14Dl847ABSHJ3A4qY5usyd2mFHgBeMhqxrVhSI8KbWaFsWAqPS7azCPL0YCorEMIuDTAgMB +AAGjgZcwgZQwHQYDVR0OBBYEFCEwyfsA106Y2oeqKtCnLrFAMadMMA4GA1UdDwEB/wQEAwIBBjAP +BgNVHRMBAf8EBTADAQH/MFIGA1UdHwRLMEkwR6BFoEOGQWh0dHA6Ly9jcmwubmV0c29sc3NsLmNv +bS9OZXR3b3JrU29sdXRpb25zQ2VydGlmaWNhdGVBdXRob3JpdHkuY3JsMA0GCSqGSIb3DQEBBQUA +A4IBAQC7rkvnt1frf6ott3NHhWrB5KUd5Oc86fRZZXe1eltajSU24HqXLjjAV2CDmAaDn7l2em5Q +4LqILPxFzBiwmZVRDuwduIj/h1AcgsLj4DKAv6ALR8jDMe+ZZzKATxcheQxpXN5eNK4CtSbqUN9/ +GGUsyfJj4akH/nxxH2szJGoeBfcFaMBqEssuXmHLrijTfsK0ZpEmXzwuJF/LWA/rKOyvEZbz3Htv +wKeI8lN3s2Berq4o2jUsbzRF0ybh3uxbTydrFny9RAQYgrOJeRcQcT16ohZO9QHNpGxlaKFJdlxD +ydi8NmdspZS11My5vWo1ViHe2MPr+8ukYEywVaCge1ey +-----END CERTIFICATE----- + +COMODO ECC Certification Authority +================================== +-----BEGIN CERTIFICATE----- +MIICiTCCAg+gAwIBAgIQH0evqmIAcFBUTAGem2OZKjAKBggqhkjOPQQDAzCBhTELMAkGA1UEBhMC +R0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UE +ChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBB +dXRob3JpdHkwHhcNMDgwMzA2MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMCR0Ix +GzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMR +Q09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBBdXRo +b3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQDR3svdcmCFYX7deSRFtSrYpn1PlILBs5BAH+X +4QokPB0BBO490o0JlwzgdeT6+3eKKvUDYEs2ixYjFq0JcfRK9ChQtP6IHG4/bC8vCVlbpVsLM5ni +wz2J+Wos77LTBumjQjBAMB0GA1UdDgQWBBR1cacZSBm8nZ3qQUfflMRId5nTeTAOBgNVHQ8BAf8E +BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjEA7wNbeqy3eApyt4jf/7VG +FAkK+qDmfQjGGoe9GKhzvSbKYAydzpmfz1wPMOG+FDHqAjAU9JM8SaczepBGR7NjfRObTrdvGDeA +U/7dIOA1mjbRxwG55tzd8/8dLDoWV9mSOdY= +-----END CERTIFICATE----- + +Certigna +======== +-----BEGIN CERTIFICATE----- +MIIDqDCCApCgAwIBAgIJAP7c4wEPyUj/MA0GCSqGSIb3DQEBBQUAMDQxCzAJBgNVBAYTAkZSMRIw +EAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hMB4XDTA3MDYyOTE1MTMwNVoXDTI3 +MDYyOTE1MTMwNVowNDELMAkGA1UEBhMCRlIxEjAQBgNVBAoMCURoaW15b3RpczERMA8GA1UEAwwI +Q2VydGlnbmEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDIaPHJ1tazNHUmgh7stL7q +XOEm7RFHYeGifBZ4QCHkYJ5ayGPhxLGWkv8YbWkj4Sti993iNi+RB7lIzw7sebYs5zRLcAglozyH +GxnygQcPOJAZ0xH+hrTy0V4eHpbNgGzOOzGTtvKg0KmVEn2lmsxryIRWijOp5yIVUxbwzBfsV1/p +ogqYCd7jX5xv3EjjhQsVWqa6n6xI4wmy9/Qy3l40vhx4XUJbzg4ij02Q130yGLMLLGq/jj8UEYkg +DncUtT2UCIf3JR7VsmAA7G8qKCVuKj4YYxclPz5EIBb2JsglrgVKtOdjLPOMFlN+XPsRGgjBRmKf +Irjxwo1p3Po6WAbfAgMBAAGjgbwwgbkwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUGu3+QTmQ +tCRZvgHyUtVF9lo53BEwZAYDVR0jBF0wW4AUGu3+QTmQtCRZvgHyUtVF9lo53BGhOKQ2MDQxCzAJ +BgNVBAYTAkZSMRIwEAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hggkA/tzjAQ/J +SP8wDgYDVR0PAQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIABzANBgkqhkiG9w0BAQUFAAOCAQEA +hQMeknH2Qq/ho2Ge6/PAD/Kl1NqV5ta+aDY9fm4fTIrv0Q8hbV6lUmPOEvjvKtpv6zf+EwLHyzs+ +ImvaYS5/1HI93TDhHkxAGYwP15zRgzB7mFncfca5DClMoTOi62c6ZYTTluLtdkVwj7Ur3vkj1klu +PBS1xp81HlDQwY9qcEQCYsuuHWhBp6pX6FOqB9IG9tUUBguRA3UsbHK1YZWaDYu5Def131TN3ubY +1gkIl2PlwS6wt0QmwCbAr1UwnjvVNioZBPRcHv/PLLf/0P2HQBHVESO7SMAhqaQoLf0V+LBOK/Qw +WyH8EZE0vkHve52Xdf+XlcCWWC/qu0bXu+TZLg== +-----END CERTIFICATE----- + +ePKI Root Certification Authority +================================= +-----BEGIN CERTIFICATE----- +MIIFsDCCA5igAwIBAgIQFci9ZUdcr7iXAF7kBtK8nTANBgkqhkiG9w0BAQUFADBeMQswCQYDVQQG +EwJUVzEjMCEGA1UECgwaQ2h1bmdod2EgVGVsZWNvbSBDby4sIEx0ZC4xKjAoBgNVBAsMIWVQS0kg +Um9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNDEyMjAwMjMxMjdaFw0zNDEyMjAwMjMx +MjdaMF4xCzAJBgNVBAYTAlRXMSMwIQYDVQQKDBpDaHVuZ2h3YSBUZWxlY29tIENvLiwgTHRkLjEq +MCgGA1UECwwhZVBLSSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjANBgkqhkiG9w0B +AQEFAAOCAg8AMIICCgKCAgEA4SUP7o3biDN1Z82tH306Tm2d0y8U82N0ywEhajfqhFAHSyZbCUNs +IZ5qyNUD9WBpj8zwIuQf5/dqIjG3LBXy4P4AakP/h2XGtRrBp0xtInAhijHyl3SJCRImHJ7K2RKi +lTza6We/CKBk49ZCt0Xvl/T29de1ShUCWH2YWEtgvM3XDZoTM1PRYfl61dd4s5oz9wCGzh1NlDiv +qOx4UXCKXBCDUSH3ET00hl7lSM2XgYI1TBnsZfZrxQWh7kcT1rMhJ5QQCtkkO7q+RBNGMD+XPNjX +12ruOzjjK9SXDrkb5wdJfzcq+Xd4z1TtW0ado4AOkUPB1ltfFLqfpo0kR0BZv3I4sjZsN/+Z0V0O +WQqraffAsgRFelQArr5T9rXn4fg8ozHSqf4hUmTFpmfwdQcGlBSBVcYn5AGPF8Fqcde+S/uUWH1+ +ETOxQvdibBjWzwloPn9s9h6PYq2lY9sJpx8iQkEeb5mKPtf5P0B6ebClAZLSnT0IFaUQAS2zMnao +lQ2zepr7BxB4EW/hj8e6DyUadCrlHJhBmd8hh+iVBmoKs2pHdmX2Os+PYhcZewoozRrSgx4hxyy/ +vv9haLdnG7t4TY3OZ+XkwY63I2binZB1NJipNiuKmpS5nezMirH4JYlcWrYvjB9teSSnUmjDhDXi +Zo1jDiVN1Rmy5nk3pyKdVDECAwEAAaNqMGgwHQYDVR0OBBYEFB4M97Zn8uGSJglFwFU5Lnc/Qkqi +MAwGA1UdEwQFMAMBAf8wOQYEZyoHAAQxMC8wLQIBADAJBgUrDgMCGgUAMAcGBWcqAwAABBRFsMLH +ClZ87lt4DJX5GFPBphzYEDANBgkqhkiG9w0BAQUFAAOCAgEACbODU1kBPpVJufGBuvl2ICO1J2B0 +1GqZNF5sAFPZn/KmsSQHRGoqxqWOeBLoR9lYGxMqXnmbnwoqZ6YlPwZpVnPDimZI+ymBV3QGypzq +KOg4ZyYr8dW1P2WT+DZdjo2NQCCHGervJ8A9tDkPJXtoUHRVnAxZfVo9QZQlUgjgRywVMRnVvwdV +xrsStZf0X4OFunHB2WyBEXYKCrC/gpf36j36+uwtqSiUO1bd0lEursC9CBWMd1I0ltabrNMdjmEP +NXubrjlpC2JgQCA2j6/7Nu4tCEoduL+bXPjqpRugc6bY+G7gMwRfaKonh+3ZwZCc7b3jajWvY9+r +GNm65ulK6lCKD2GTHuItGeIwlDWSXQ62B68ZgI9HkFFLLk3dheLSClIKF5r8GrBQAuUBo2M3IUxE +xJtRmREOc5wGj1QupyheRDmHVi03vYVElOEMSyycw5KFNGHLD7ibSkNS/jQ6fbjpKdx2qcgw+BRx +gMYeNkh0IkFch4LoGHGLQYlE535YW6i4jRPpp2zDR+2zGp1iro2C6pSe3VkQw63d4k3jMdXH7Ojy +sP6SHhYKGvzZ8/gntsm+HbRsZJB/9OTEW9c3rkIO3aQab3yIVMUWbuF6aC74Or8NpDyJO3inTmOD +BCEIZ43ygknQW/2xzQ+DhNQ+IIX3Sj0rnP0qCglN6oH4EZw= +-----END CERTIFICATE----- + +certSIGN ROOT CA +================ +-----BEGIN CERTIFICATE----- +MIIDODCCAiCgAwIBAgIGIAYFFnACMA0GCSqGSIb3DQEBBQUAMDsxCzAJBgNVBAYTAlJPMREwDwYD +VQQKEwhjZXJ0U0lHTjEZMBcGA1UECxMQY2VydFNJR04gUk9PVCBDQTAeFw0wNjA3MDQxNzIwMDRa +Fw0zMTA3MDQxNzIwMDRaMDsxCzAJBgNVBAYTAlJPMREwDwYDVQQKEwhjZXJ0U0lHTjEZMBcGA1UE +CxMQY2VydFNJR04gUk9PVCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALczuX7I +JUqOtdu0KBuqV5Do0SLTZLrTk+jUrIZhQGpgV2hUhE28alQCBf/fm5oqrl0Hj0rDKH/v+yv6efHH +rfAQUySQi2bJqIirr1qjAOm+ukbuW3N7LBeCgV5iLKECZbO9xSsAfsT8AzNXDe3i+s5dRdY4zTW2 +ssHQnIFKquSyAVwdj1+ZxLGt24gh65AIgoDzMKND5pCCrlUoSe1b16kQOA7+j0xbm0bqQfWwCHTD +0IgztnzXdN/chNFDDnU5oSVAKOp4yw4sLjmdjItuFhwvJoIQ4uNllAoEwF73XVv4EOLQunpL+943 +AAAaWyjj0pxzPjKHmKHJUS/X3qwzs08CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8B +Af8EBAMCAcYwHQYDVR0OBBYEFOCMm9slSbPxfIbWskKHC9BroNnkMA0GCSqGSIb3DQEBBQUAA4IB +AQA+0hyJLjX8+HXd5n9liPRyTMks1zJO890ZeUe9jjtbkw9QSSQTaxQGcu8J06Gh40CEyecYMnQ8 +SG4Pn0vU9x7Tk4ZkVJdjclDVVc/6IJMCopvDI5NOFlV2oHB5bc0hH88vLbwZ44gx+FkagQnIl6Z0 +x2DEW8xXjrJ1/RsCCdtZb3KTafcxQdaIOL+Hsr0Wefmq5L6IJd1hJyMctTEHBDa0GpC9oHRxUIlt +vBTjD4au8as+x6AJzKNI0eDbZOeStc+vckNwi/nDhDwTqn6Sm1dTk/pwwpEOMfmbZ13pljheX7Nz +TogVZ96edhBiIL5VaZVDADlN9u6wWk5JRFRYX0KD +-----END CERTIFICATE----- + +NetLock Arany (Class Gold) Főtanúsítvány +======================================== +-----BEGIN CERTIFICATE----- +MIIEFTCCAv2gAwIBAgIGSUEs5AAQMA0GCSqGSIb3DQEBCwUAMIGnMQswCQYDVQQGEwJIVTERMA8G +A1UEBwwIQnVkYXBlc3QxFTATBgNVBAoMDE5ldExvY2sgS2Z0LjE3MDUGA1UECwwuVGFuw7pzw610 +dsOhbnlraWFkw7NrIChDZXJ0aWZpY2F0aW9uIFNlcnZpY2VzKTE1MDMGA1UEAwwsTmV0TG9jayBB +cmFueSAoQ2xhc3MgR29sZCkgRsWRdGFuw7pzw610dsOhbnkwHhcNMDgxMjExMTUwODIxWhcNMjgx +MjA2MTUwODIxWjCBpzELMAkGA1UEBhMCSFUxETAPBgNVBAcMCEJ1ZGFwZXN0MRUwEwYDVQQKDAxO +ZXRMb2NrIEtmdC4xNzA1BgNVBAsMLlRhbsO6c8OtdHbDoW55a2lhZMOzayAoQ2VydGlmaWNhdGlv +biBTZXJ2aWNlcykxNTAzBgNVBAMMLE5ldExvY2sgQXJhbnkgKENsYXNzIEdvbGQpIEbFkXRhbsO6 +c8OtdHbDoW55MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxCRec75LbRTDofTjl5Bu +0jBFHjzuZ9lk4BqKf8owyoPjIMHj9DrTlF8afFttvzBPhCf2nx9JvMaZCpDyD/V/Q4Q3Y1GLeqVw +/HpYzY6b7cNGbIRwXdrzAZAj/E4wqX7hJ2Pn7WQ8oLjJM2P+FpD/sLj916jAwJRDC7bVWaaeVtAk +H3B5r9s5VA1lddkVQZQBr17s9o3x/61k/iCa11zr/qYfCGSji3ZVrR47KGAuhyXoqq8fxmRGILdw +fzzeSNuWU7c5d+Qa4scWhHaXWy+7GRWF+GmF9ZmnqfI0p6m2pgP8b4Y9VHx2BJtr+UBdADTHLpl1 +neWIA6pN+APSQnbAGwIDAKiLo0UwQzASBgNVHRMBAf8ECDAGAQH/AgEEMA4GA1UdDwEB/wQEAwIB +BjAdBgNVHQ4EFgQUzPpnk/C2uNClwB7zU/2MU9+D15YwDQYJKoZIhvcNAQELBQADggEBAKt/7hwW +qZw8UQCgwBEIBaeZ5m8BiFRhbvG5GK1Krf6BQCOUL/t1fC8oS2IkgYIL9WHxHG64YTjrgfpioTta +YtOUZcTh5m2C+C8lcLIhJsFyUR+MLMOEkMNaj7rP9KdlpeuY0fsFskZ1FSNqb4VjMIDw1Z4fKRzC +bLBQWV2QWzuoDTDPv31/zvGdg73JRm4gpvlhUbohL3u+pRVjodSVh/GeufOJ8z2FuLjbvrW5Kfna +NwUASZQDhETnv0Mxz3WLJdH0pmT1kvarBes96aULNmLazAZfNou2XjG4Kvte9nHfRCaexOYNkbQu +dZWAUWpLMKawYqGT8ZvYzsRjdT9ZR7E= +-----END CERTIFICATE----- + +Hongkong Post Root CA 1 +======================= +-----BEGIN CERTIFICATE----- +MIIDMDCCAhigAwIBAgICA+gwDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UEBhMCSEsxFjAUBgNVBAoT +DUhvbmdrb25nIFBvc3QxIDAeBgNVBAMTF0hvbmdrb25nIFBvc3QgUm9vdCBDQSAxMB4XDTAzMDUx +NTA1MTMxNFoXDTIzMDUxNTA0NTIyOVowRzELMAkGA1UEBhMCSEsxFjAUBgNVBAoTDUhvbmdrb25n +IFBvc3QxIDAeBgNVBAMTF0hvbmdrb25nIFBvc3QgUm9vdCBDQSAxMIIBIjANBgkqhkiG9w0BAQEF +AAOCAQ8AMIIBCgKCAQEArP84tulmAknjorThkPlAj3n54r15/gK97iSSHSL22oVyaf7XPwnU3ZG1 +ApzQjVrhVcNQhrkpJsLj2aDxaQMoIIBFIi1WpztUlVYiWR8o3x8gPW2iNr4joLFutbEnPzlTCeqr +auh0ssJlXI6/fMN4hM2eFvz1Lk8gKgifd/PFHsSaUmYeSF7jEAaPIpjhZY4bXSNmO7ilMlHIhqqh +qZ5/dpTCpmy3QfDVyAY45tQM4vM7TG1QjMSDJ8EThFk9nnV0ttgCXjqQesBCNnLsak3c78QA3xMY +V18meMjWCnl3v/evt3a5pQuEF10Q6m/hq5URX208o1xNg1vysxmKgIsLhwIDAQABoyYwJDASBgNV +HRMBAf8ECDAGAQH/AgEDMA4GA1UdDwEB/wQEAwIBxjANBgkqhkiG9w0BAQUFAAOCAQEADkbVPK7i +h9legYsCmEEIjEy82tvuJxuC52pF7BaLT4Wg87JwvVqWuspube5Gi27nKi6Wsxkz67SfqLI37pio +l7Yutmcn1KZJ/RyTZXaeQi/cImyaT/JaFTmxcdcrUehtHJjA2Sr0oYJ71clBoiMBdDhViw+5Lmei +IAQ32pwL0xch4I+XeTRvhEgCIDMb5jREn5Fw9IBehEPCKdJsEhTkYY2sEJCehFC78JZvRZ+K88ps +T/oROhUVRsPNH4NbLUES7VBnQRM9IauUiqpOfMGx+6fWtScvl6tu4B3i0RwsH0Ti/L6RoZz71ilT +c4afU9hDDl3WY4JxHYB0yvbiAmvZWg== +-----END CERTIFICATE----- + +SecureSign RootCA11 +=================== +-----BEGIN CERTIFICATE----- +MIIDbTCCAlWgAwIBAgIBATANBgkqhkiG9w0BAQUFADBYMQswCQYDVQQGEwJKUDErMCkGA1UEChMi +SmFwYW4gQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcywgSW5jLjEcMBoGA1UEAxMTU2VjdXJlU2lnbiBS +b290Q0ExMTAeFw0wOTA0MDgwNDU2NDdaFw0yOTA0MDgwNDU2NDdaMFgxCzAJBgNVBAYTAkpQMSsw +KQYDVQQKEyJKYXBhbiBDZXJ0aWZpY2F0aW9uIFNlcnZpY2VzLCBJbmMuMRwwGgYDVQQDExNTZWN1 +cmVTaWduIFJvb3RDQTExMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA/XeqpRyQBTvL +TJszi1oURaTnkBbR31fSIRCkF/3frNYfp+TbfPfs37gD2pRY/V1yfIw/XwFndBWW4wI8h9uuywGO +wvNmxoVF9ALGOrVisq/6nL+k5tSAMJjzDbaTj6nU2DbysPyKyiyhFTOVMdrAG/LuYpmGYz+/3ZMq +g6h2uRMft85OQoWPIucuGvKVCbIFtUROd6EgvanyTgp9UK31BQ1FT0Zx/Sg+U/sE2C3XZR1KG/rP +O7AxmjVuyIsG0wCR8pQIZUyxNAYAeoni8McDWc/V1uinMrPmmECGxc0nEovMe863ETxiYAcjPitA +bpSACW22s293bzUIUPsCh8U+iQIDAQABo0IwQDAdBgNVHQ4EFgQUW/hNT7KlhtQ60vFjmqC+CfZX +t94wDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAKCh +OBZmLqdWHyGcBvod7bkixTgm2E5P7KN/ed5GIaGHd48HCJqypMWvDzKYC3xmKbabfSVSSUOrTC4r +bnpwrxYO4wJs+0LmGJ1F2FXI6Dvd5+H0LgscNFxsWEr7jIhQX5Ucv+2rIrVls4W6ng+4reV6G4pQ +Oh29Dbx7VFALuUKvVaAYga1lme++5Jy/xIWrQbJUb9wlze144o4MjQlJ3WN7WmmWAiGovVJZ6X01 +y8hSyn+B/tlr0/cR7SXf+Of5pPpyl4RTDaXQMhhRdlkUbA/r7F+AjHVDg8OFmP9Mni0N5HeDk061 +lgeLKBObjBmNQSdJQO7e5iNEOdyhIta6A/I= +-----END CERTIFICATE----- + +Microsec e-Szigno Root CA 2009 +============================== +-----BEGIN CERTIFICATE----- +MIIECjCCAvKgAwIBAgIJAMJ+QwRORz8ZMA0GCSqGSIb3DQEBCwUAMIGCMQswCQYDVQQGEwJIVTER +MA8GA1UEBwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0ZC4xJzAlBgNVBAMMHk1pY3Jv +c2VjIGUtU3ppZ25vIFJvb3QgQ0EgMjAwOTEfMB0GCSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5o +dTAeFw0wOTA2MTYxMTMwMThaFw0yOTEyMzAxMTMwMThaMIGCMQswCQYDVQQGEwJIVTERMA8GA1UE +BwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0ZC4xJzAlBgNVBAMMHk1pY3Jvc2VjIGUt +U3ppZ25vIFJvb3QgQ0EgMjAwOTEfMB0GCSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5odTCCASIw +DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOn4j/NjrdqG2KfgQvvPkd6mJviZpWNwrZuuyjNA +fW2WbqEORO7hE52UQlKavXWFdCyoDh2Tthi3jCyoz/tccbna7P7ofo/kLx2yqHWH2Leh5TvPmUpG +0IMZfcChEhyVbUr02MelTTMuhTlAdX4UfIASmFDHQWe4oIBhVKZsTh/gnQ4H6cm6M+f+wFUoLAKA +pxn1ntxVUwOXewdI/5n7N4okxFnMUBBjjqqpGrCEGob5X7uxUG6k0QrM1XF+H6cbfPVTbiJfyyvm +1HxdrtbCxkzlBQHZ7Vf8wSN5/PrIJIOV87VqUQHQd9bpEqH5GoP7ghu5sJf0dgYzQ0mg/wu1+rUC +AwEAAaOBgDB+MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTLD8bf +QkPMPcu1SCOhGnqmKrs0aDAfBgNVHSMEGDAWgBTLD8bfQkPMPcu1SCOhGnqmKrs0aDAbBgNVHREE +FDASgRBpbmZvQGUtc3ppZ25vLmh1MA0GCSqGSIb3DQEBCwUAA4IBAQDJ0Q5eLtXMs3w+y/w9/w0o +lZMEyL/azXm4Q5DwpL7v8u8hmLzU1F0G9u5C7DBsoKqpyvGvivo/C3NqPuouQH4frlRheesuCDfX +I/OMn74dseGkddug4lQUsbocKaQY9hK6ohQU4zE1yED/t+AFdlfBHFny+L/k7SViXITwfn4fs775 +tyERzAMBVnCnEJIeGzSBHq2cGsMEPO0CYdYeBvNfOofyK/FFh+U9rNHHV4S9a67c2Pm2G2JwCz02 +yULyMtd6YebS2z3PyKnJm9zbWETXbzivf3jTo60adbocwTZ8jx5tHMN1Rq41Bab2XD0h7lbwyYIi +LXpUq3DDfSJlgnCW +-----END CERTIFICATE----- + +GlobalSign Root CA - R3 +======================= +-----BEGIN CERTIFICATE----- +MIIDXzCCAkegAwIBAgILBAAAAAABIVhTCKIwDQYJKoZIhvcNAQELBQAwTDEgMB4GA1UECxMXR2xv +YmFsU2lnbiBSb290IENBIC0gUjMxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2Jh +bFNpZ24wHhcNMDkwMzE4MTAwMDAwWhcNMjkwMzE4MTAwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxT +aWduIFJvb3QgQ0EgLSBSMzETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2ln +bjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMwldpB5BngiFvXAg7aEyiie/QV2EcWt +iHL8RgJDx7KKnQRfJMsuS+FggkbhUqsMgUdwbN1k0ev1LKMPgj0MK66X17YUhhB5uzsTgHeMCOFJ +0mpiLx9e+pZo34knlTifBtc+ycsmWQ1z3rDI6SYOgxXG71uL0gRgykmmKPZpO/bLyCiR5Z2KYVc3 +rHQU3HTgOu5yLy6c+9C7v/U9AOEGM+iCK65TpjoWc4zdQQ4gOsC0p6Hpsk+QLjJg6VfLuQSSaGjl +OCZgdbKfd/+RFO+uIEn8rUAVSNECMWEZXriX7613t2Saer9fwRPvm2L7DWzgVGkWqQPabumDk3F2 +xmmFghcCAwEAAaNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE +FI/wS3+oLkUkrk1Q+mOai97i3Ru8MA0GCSqGSIb3DQEBCwUAA4IBAQBLQNvAUKr+yAzv95ZURUm7 +lgAJQayzE4aGKAczymvmdLm6AC2upArT9fHxD4q/c2dKg8dEe3jgr25sbwMpjjM5RcOO5LlXbKr8 +EpbsU8Yt5CRsuZRj+9xTaGdWPoO4zzUhw8lo/s7awlOqzJCK6fBdRoyV3XpYKBovHd7NADdBj+1E +bddTKJd+82cEHhXXipa0095MJ6RMG3NzdvQXmcIfeg7jLQitChws/zyrVQ4PkX4268NXSb7hLi18 +YIvDQVETI53O9zJrlAGomecsMx86OyXShkDOOyyGeMlhLxS67ttVb9+E7gUJTb0o2HLO02JQZR7r +kpeDMdmztcpHWD9f +-----END CERTIFICATE----- + +Autoridad de Certificacion Firmaprofesional CIF A62634068 +========================================================= +-----BEGIN CERTIFICATE----- +MIIGFDCCA/ygAwIBAgIIU+w77vuySF8wDQYJKoZIhvcNAQEFBQAwUTELMAkGA1UEBhMCRVMxQjBA +BgNVBAMMOUF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZpcm1hcHJvZmVzaW9uYWwgQ0lGIEE2 +MjYzNDA2ODAeFw0wOTA1MjAwODM4MTVaFw0zMDEyMzEwODM4MTVaMFExCzAJBgNVBAYTAkVTMUIw +QAYDVQQDDDlBdXRvcmlkYWQgZGUgQ2VydGlmaWNhY2lvbiBGaXJtYXByb2Zlc2lvbmFsIENJRiBB +NjI2MzQwNjgwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKlmuO6vj78aI14H9M2uDD +Utd9thDIAl6zQyrET2qyyhxdKJp4ERppWVevtSBC5IsP5t9bpgOSL/UR5GLXMnE42QQMcas9UX4P +B99jBVzpv5RvwSmCwLTaUbDBPLutN0pcyvFLNg4kq7/DhHf9qFD0sefGL9ItWY16Ck6WaVICqjaY +7Pz6FIMMNx/Jkjd/14Et5cS54D40/mf0PmbR0/RAz15iNA9wBj4gGFrO93IbJWyTdBSTo3OxDqqH +ECNZXyAFGUftaI6SEspd/NYrspI8IM/hX68gvqB2f3bl7BqGYTM+53u0P6APjqK5am+5hyZvQWyI +plD9amML9ZMWGxmPsu2bm8mQ9QEM3xk9Dz44I8kvjwzRAv4bVdZO0I08r0+k8/6vKtMFnXkIoctX +MbScyJCyZ/QYFpM6/EfY0XiWMR+6KwxfXZmtY4laJCB22N/9q06mIqqdXuYnin1oKaPnirjaEbsX +LZmdEyRG98Xi2J+Of8ePdG1asuhy9azuJBCtLxTa/y2aRnFHvkLfuwHb9H/TKI8xWVvTyQKmtFLK +bpf7Q8UIJm+K9Lv9nyiqDdVF8xM6HdjAeI9BZzwelGSuewvF6NkBiDkal4ZkQdU7hwxu+g/GvUgU +vzlN1J5Bto+WHWOWk9mVBngxaJ43BjuAiUVhOSPHG0SjFeUc+JIwuwIDAQABo4HvMIHsMBIGA1Ud +EwEB/wQIMAYBAf8CAQEwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRlzeurNR4APn7VdMActHNH +DhpkLzCBpgYDVR0gBIGeMIGbMIGYBgRVHSAAMIGPMC8GCCsGAQUFBwIBFiNodHRwOi8vd3d3LmZp +cm1hcHJvZmVzaW9uYWwuY29tL2NwczBcBggrBgEFBQcCAjBQHk4AUABhAHMAZQBvACAAZABlACAA +bABhACAAQgBvAG4AYQBuAG8AdgBhACAANAA3ACAAQgBhAHIAYwBlAGwAbwBuAGEAIAAwADgAMAAx +ADcwDQYJKoZIhvcNAQEFBQADggIBABd9oPm03cXF661LJLWhAqvdpYhKsg9VSytXjDvlMd3+xDLx +51tkljYyGOylMnfX40S2wBEqgLk9am58m9Ot/MPWo+ZkKXzR4Tgegiv/J2Wv+xYVxC5xhOW1//qk +R71kMrv2JYSiJ0L1ILDCExARzRAVukKQKtJE4ZYm6zFIEv0q2skGz3QeqUvVhyj5eTSSPi5E6PaP +T481PyWzOdxjKpBrIF/EUhJOlywqrJ2X3kjyo2bbwtKDlaZmp54lD+kLM5FlClrD2VQS3a/DTg4f +Jl4N3LON7NWBcN7STyQF82xO9UxJZo3R/9ILJUFI/lGExkKvgATP0H5kSeTy36LssUzAKh3ntLFl +osS88Zj0qnAHY7S42jtM+kAiMFsRpvAFDsYCA0irhpuF3dvd6qJ2gHN99ZwExEWN57kci57q13XR +crHedUTnQn3iV2t93Jm8PYMo6oCTjcVMZcFwgbg4/EMxsvYDNEeyrPsiBsse3RdHHF9mudMaotoR +saS8I8nkvof/uZS2+F0gStRf571oe2XyFR7SOqkt6dhrJKyXWERHrVkY8SFlcN7ONGCoQPHzPKTD +KCOM/iczQ0CgFzzr6juwcqajuUpLXhZI9LK8yIySxZ2frHI2vDSANGupi5LAuBft7HZT9SQBjLMi +6Et8Vcad+qMUu2WFbm5PEn4KPJ2V +-----END CERTIFICATE----- + +Izenpe.com +========== +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- + +Go Daddy Root Certificate Authority - G2 +======================================== +-----BEGIN CERTIFICATE----- +MIIDxTCCAq2gAwIBAgIBADANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMCVVMxEDAOBgNVBAgT +B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxGjAYBgNVBAoTEUdvRGFkZHkuY29tLCBJbmMu +MTEwLwYDVQQDEyhHbyBEYWRkeSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5 +MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgYMxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6 +b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMRowGAYDVQQKExFHb0RhZGR5LmNvbSwgSW5jLjExMC8G +A1UEAxMoR28gRGFkZHkgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZI +hvcNAQEBBQADggEPADCCAQoCggEBAL9xYgjx+lk09xvJGKP3gElY6SKDE6bFIEMBO4Tx5oVJnyfq +9oQbTqC023CYxzIBsQU+B07u9PpPL1kwIuerGVZr4oAH/PMWdYA5UXvl+TW2dE6pjYIT5LY/qQOD ++qK+ihVqf94Lw7YZFAXK6sOoBJQ7RnwyDfMAZiLIjWltNowRGLfTshxgtDj6AozO091GB94KPutd +fMh8+7ArU6SSYmlRJQVhGkSBjCypQ5Yj36w6gZoOKcUcqeldHraenjAKOc7xiID7S13MMuyFYkMl +NAJWJwGRtDtwKj9useiciAF9n9T521NtYJ2/LOdYq7hfRvzOxBsDPAnrSTFcaUaz4EcCAwEAAaNC +MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFDqahQcQZyi27/a9 +BUFuIMGU2g/eMA0GCSqGSIb3DQEBCwUAA4IBAQCZ21151fmXWWcDYfF+OwYxdS2hII5PZYe096ac +vNjpL9DbWu7PdIxztDhC2gV7+AJ1uP2lsdeu9tfeE8tTEH6KRtGX+rcuKxGrkLAngPnon1rpN5+r +5N9ss4UXnT3ZJE95kTXWXwTrgIOrmgIttRD02JDHBHNA7XIloKmf7J6raBKZV8aPEjoJpL1E/QYV +N8Gb5DKj7Tjo2GTzLH4U/ALqn83/B2gX2yKQOC16jdFU8WnjXzPKej17CuPKf1855eJ1usV2GDPO +LPAvTK33sefOT6jEm0pUBsV/fdUID+Ic/n4XuKxe9tQWskMJDE32p2u0mYRlynqI4uJEvlz36hz1 +-----END CERTIFICATE----- + +Starfield Root Certificate Authority - G2 +========================================= +-----BEGIN CERTIFICATE----- +MIID3TCCAsWgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBjzELMAkGA1UEBhMCVVMxEDAOBgNVBAgT +B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNobm9s +b2dpZXMsIEluYy4xMjAwBgNVBAMTKVN0YXJmaWVsZCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0 +eSAtIEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgY8xCzAJBgNVBAYTAlVTMRAw +DgYDVQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxTdGFyZmllbGQg +VGVjaG5vbG9naWVzLCBJbmMuMTIwMAYDVQQDEylTdGFyZmllbGQgUm9vdCBDZXJ0aWZpY2F0ZSBB +dXRob3JpdHkgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL3twQP89o/8ArFv +W59I2Z154qK3A2FWGMNHttfKPTUuiUP3oWmb3ooa/RMgnLRJdzIpVv257IzdIvpy3Cdhl+72WoTs +bhm5iSzchFvVdPtrX8WJpRBSiUZV9Lh1HOZ/5FSuS/hVclcCGfgXcVnrHigHdMWdSL5stPSksPNk +N3mSwOxGXn/hbVNMYq/NHwtjuzqd+/x5AJhhdM8mgkBj87JyahkNmcrUDnXMN/uLicFZ8WJ/X7Nf +ZTD4p7dNdloedl40wOiWVpmKs/B/pM293DIxfJHP4F8R+GuqSVzRmZTRouNjWwl2tVZi4Ut0HZbU +JtQIBFnQmA4O5t78w+wfkPECAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC +AQYwHQYDVR0OBBYEFHwMMh+n2TB/xH1oo2Kooc6rB1snMA0GCSqGSIb3DQEBCwUAA4IBAQARWfol +TwNvlJk7mh+ChTnUdgWUXuEok21iXQnCoKjUsHU48TRqneSfioYmUeYs0cYtbpUgSpIB7LiKZ3sx +4mcujJUDJi5DnUox9g61DLu34jd/IroAow57UvtruzvE03lRTs2Q9GcHGcg8RnoNAX3FWOdt5oUw +F5okxBDgBPfg8n/Uqgr/Qh037ZTlZFkSIHc40zI+OIF1lnP6aI+xy84fxez6nH7PfrHxBy22/L/K +pL/QlwVKvOoYKAKQvVR4CSFx09F9HdkWsKlhPdAKACL8x3vLCWRFCztAgfd9fDL1mMpYjn0q7pBZ +c2T5NnReJaH1ZgUufzkVqSr7UIuOhWn0 +-----END CERTIFICATE----- + +Starfield Services Root Certificate Authority - G2 +================================================== +-----BEGIN CERTIFICATE----- +MIID7zCCAtegAwIBAgIBADANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UEBhMCVVMxEDAOBgNVBAgT +B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNobm9s +b2dpZXMsIEluYy4xOzA5BgNVBAMTMlN0YXJmaWVsZCBTZXJ2aWNlcyBSb290IENlcnRpZmljYXRl +IEF1dGhvcml0eSAtIEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgZgxCzAJBgNV +BAYTAlVTMRAwDgYDVQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxT +dGFyZmllbGQgVGVjaG5vbG9naWVzLCBJbmMuMTswOQYDVQQDEzJTdGFyZmllbGQgU2VydmljZXMg +Um9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC +AQoCggEBANUMOsQq+U7i9b4Zl1+OiFOxHz/Lz58gE20pOsgPfTz3a3Y4Y9k2YKibXlwAgLIvWX/2 +h/klQ4bnaRtSmpDhcePYLQ1Ob/bISdm28xpWriu2dBTrz/sm4xq6HZYuajtYlIlHVv8loJNwU4Pa +hHQUw2eeBGg6345AWh1KTs9DkTvnVtYAcMtS7nt9rjrnvDH5RfbCYM8TWQIrgMw0R9+53pBlbQLP +LJGmpufehRhJfGZOozptqbXuNC66DQO4M99H67FrjSXZm86B0UVGMpZwh94CDklDhbZsc7tk6mFB +rMnUVN+HL8cisibMn1lUaJ/8viovxFUcdUBgF4UCVTmLfwUCAwEAAaNCMEAwDwYDVR0TAQH/BAUw +AwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJxfAN+qAdcwKziIorhtSpzyEZGDMA0GCSqG +SIb3DQEBCwUAA4IBAQBLNqaEd2ndOxmfZyMIbw5hyf2E3F/YNoHN2BtBLZ9g3ccaaNnRbobhiCPP +E95Dz+I0swSdHynVv/heyNXBve6SbzJ08pGCL72CQnqtKrcgfU28elUSwhXqvfdqlS5sdJ/PHLTy +xQGjhdByPq1zqwubdQxtRbeOlKyWN7Wg0I8VRw7j6IPdj/3vQQF3zCepYoUz8jcI73HPdwbeyBkd +iEDPfUYd/x7H4c7/I9vG+o1VTqkC50cRRj70/b17KSa7qWFiNyi2LSr2EIZkyXCn0q23KXB56jza +YyWf/Wi3MOxw+3WKt21gZ7IeyLnp2KhvAotnDU0mV3HaIPzBSlCNsSi6 +-----END CERTIFICATE----- + +AffirmTrust Commercial +====================== +-----BEGIN CERTIFICATE----- +MIIDTDCCAjSgAwIBAgIId3cGJyapsXwwDQYJKoZIhvcNAQELBQAwRDELMAkGA1UEBhMCVVMxFDAS +BgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBDb21tZXJjaWFsMB4XDTEw +MDEyOTE0MDYwNloXDTMwMTIzMTE0MDYwNlowRDELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmly +bVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBDb21tZXJjaWFsMIIBIjANBgkqhkiG9w0BAQEF +AAOCAQ8AMIIBCgKCAQEA9htPZwcroRX1BiLLHwGy43NFBkRJLLtJJRTWzsO3qyxPxkEylFf6Eqdb +DuKPHx6GGaeqtS25Xw2Kwq+FNXkyLbscYjfysVtKPcrNcV/pQr6U6Mje+SJIZMblq8Yrba0F8PrV +C8+a5fBQpIs7R6UjW3p6+DM/uO+Zl+MgwdYoic+U+7lF7eNAFxHUdPALMeIrJmqbTFeurCA+ukV6 +BfO9m2kVrn1OIGPENXY6BwLJN/3HR+7o8XYdcxXyl6S1yHp52UKqK39c/s4mT6NmgTWvRLpUHhww +MmWd5jyTXlBOeuM61G7MGvv50jeuJCqrVwMiKA1JdX+3KNp1v47j3A55MQIDAQABo0IwQDAdBgNV +HQ4EFgQUnZPGU4teyq8/nx4P5ZmVvCT2lI8wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC +AQYwDQYJKoZIhvcNAQELBQADggEBAFis9AQOzcAN/wr91LoWXym9e2iZWEnStB03TX8nfUYGXUPG +hi4+c7ImfU+TqbbEKpqrIZcUsd6M06uJFdhrJNTxFq7YpFzUf1GO7RgBsZNjvbz4YYCanrHOQnDi +qX0GJX0nof5v7LMeJNrjS1UaADs1tDvZ110w/YETifLCBivtZ8SOyUOyXGsViQK8YvxO8rUzqrJv +0wqiUOP2O+guRMLbZjipM1ZI8W0bM40NjD9gN53Tym1+NH4Nn3J2ixufcv1SNUFFApYvHLKac0kh +sUlHRUe072o0EclNmsxZt9YCnlpOZbWUrhvfKbAW8b8Angc6F2S1BLUjIZkKlTuXfO8= +-----END CERTIFICATE----- + +AffirmTrust Networking +====================== +-----BEGIN CERTIFICATE----- +MIIDTDCCAjSgAwIBAgIIfE8EORzUmS0wDQYJKoZIhvcNAQEFBQAwRDELMAkGA1UEBhMCVVMxFDAS +BgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBOZXR3b3JraW5nMB4XDTEw +MDEyOTE0MDgyNFoXDTMwMTIzMTE0MDgyNFowRDELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmly +bVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBOZXR3b3JraW5nMIIBIjANBgkqhkiG9w0BAQEF +AAOCAQ8AMIIBCgKCAQEAtITMMxcua5Rsa2FSoOujz3mUTOWUgJnLVWREZY9nZOIG41w3SfYvm4SE +Hi3yYJ0wTsyEheIszx6e/jarM3c1RNg1lho9Nuh6DtjVR6FqaYvZ/Ls6rnla1fTWcbuakCNrmreI +dIcMHl+5ni36q1Mr3Lt2PpNMCAiMHqIjHNRqrSK6mQEubWXLviRmVSRLQESxG9fhwoXA3hA/Pe24 +/PHxI1Pcv2WXb9n5QHGNfb2V1M6+oF4nI979ptAmDgAp6zxG8D1gvz9Q0twmQVGeFDdCBKNwV6gb +h+0t+nvujArjqWaJGctB+d1ENmHP4ndGyH329JKBNv3bNPFyfvMMFr20FQIDAQABo0IwQDAdBgNV +HQ4EFgQUBx/S55zawm6iQLSwelAQUHTEyL0wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC +AQYwDQYJKoZIhvcNAQEFBQADggEBAIlXshZ6qML91tmbmzTCnLQyFE2npN/svqe++EPbkTfOtDIu +UFUaNU52Q3Eg75N3ThVwLofDwR1t3Mu1J9QsVtFSUzpE0nPIxBsFZVpikpzuQY0x2+c06lkh1QF6 +12S4ZDnNye2v7UsDSKegmQGA3GWjNq5lWUhPgkvIZfFXHeVZLgo/bNjR9eUJtGxUAArgFU2HdW23 +WJZa3W3SAKD0m0i+wzekujbgfIeFlxoVot4uolu9rxj5kFDNcFn4J2dHy8egBzp90SxdbBk6ZrV9 +/ZFvgrG+CJPbFEfxojfHRZ48x3evZKiT3/Zpg4Jg8klCNO1aAFSFHBY2kgxc+qatv9s= +-----END CERTIFICATE----- + +AffirmTrust Premium +=================== +-----BEGIN CERTIFICATE----- +MIIFRjCCAy6gAwIBAgIIbYwURrGmCu4wDQYJKoZIhvcNAQEMBQAwQTELMAkGA1UEBhMCVVMxFDAS +BgNVBAoMC0FmZmlybVRydXN0MRwwGgYDVQQDDBNBZmZpcm1UcnVzdCBQcmVtaXVtMB4XDTEwMDEy +OTE0MTAzNloXDTQwMTIzMTE0MTAzNlowQTELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRy +dXN0MRwwGgYDVQQDDBNBZmZpcm1UcnVzdCBQcmVtaXVtMIICIjANBgkqhkiG9w0BAQEFAAOCAg8A +MIICCgKCAgEAxBLfqV/+Qd3d9Z+K4/as4Tx4mrzY8H96oDMq3I0gW64tb+eT2TZwamjPjlGjhVtn +BKAQJG9dKILBl1fYSCkTtuG+kU3fhQxTGJoeJKJPj/CihQvL9Cl/0qRY7iZNyaqoe5rZ+jjeRFcV +5fiMyNlI4g0WJx0eyIOFJbe6qlVBzAMiSy2RjYvmia9mx+n/K+k8rNrSs8PhaJyJ+HoAVt70VZVs ++7pk3WKL3wt3MutizCaam7uqYoNMtAZ6MMgpv+0GTZe5HMQxK9VfvFMSF5yZVylmd2EhMQcuJUmd +GPLu8ytxjLW6OQdJd/zvLpKQBY0tL3d770O/Nbua2Plzpyzy0FfuKE4mX4+QaAkvuPjcBukumj5R +p9EixAqnOEhss/n/fauGV+O61oV4d7pD6kh/9ti+I20ev9E2bFhc8e6kGVQa9QPSdubhjL08s9NI +S+LI+H+SqHZGnEJlPqQewQcDWkYtuJfzt9WyVSHvutxMAJf7FJUnM7/oQ0dG0giZFmA7mn7S5u04 +6uwBHjxIVkkJx0w3AJ6IDsBz4W9m6XJHMD4Q5QsDyZpCAGzFlH5hxIrff4IaC1nEWTJ3s7xgaVY5 +/bQGeyzWZDbZvUjthB9+pSKPKrhC9IK31FOQeE4tGv2Bb0TXOwF0lkLgAOIua+rF7nKsu7/+6qqo ++Nz2snmKtmcCAwEAAaNCMEAwHQYDVR0OBBYEFJ3AZ6YMItkm9UWrpmVSESfYRaxjMA8GA1UdEwEB +/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBDAUAA4ICAQCzV00QYk465KzquByv +MiPIs0laUZx2KI15qldGF9X1Uva3ROgIRL8YhNILgM3FEv0AVQVhh0HctSSePMTYyPtwni94loMg +Nt58D2kTiKV1NpgIpsbfrM7jWNa3Pt668+s0QNiigfV4Py/VpfzZotReBA4Xrf5B8OWycvpEgjNC +6C1Y91aMYj+6QrCcDFx+LmUmXFNPALJ4fqENmS2NuB2OosSw/WDQMKSOyARiqcTtNd56l+0OOF6S +L5Nwpamcb6d9Ex1+xghIsV5n61EIJenmJWtSKZGc0jlzCFfemQa0W50QBuHCAKi4HEoCChTQwUHK ++4w1IX2COPKpVJEZNZOUbWo6xbLQu4mGk+ibyQ86p3q4ofB4Rvr8Ny/lioTz3/4E2aFooC8k4gmV +BtWVyuEklut89pMFu+1z6S3RdTnX5yTb2E5fQ4+e0BQ5v1VwSJlXMbSc7kqYA5YwH2AG7hsj/oFg +IxpHYoWlzBk0gG+zrBrjn/B7SK3VAdlntqlyk+otZrWyuOQ9PLLvTIzq6we/qzWaVYa8GKa1qF60 +g2xraUDTn9zxw2lrueFtCfTxqlB2Cnp9ehehVZZCmTEJ3WARjQUwfuaORtGdFNrHF+QFlozEJLUb +zxQHskD4o55BhrwE0GuWyCqANP2/7waj3VjFhT0+j/6eKeC2uAloGRwYQw== +-----END CERTIFICATE----- + +AffirmTrust Premium ECC +======================= +-----BEGIN CERTIFICATE----- +MIIB/jCCAYWgAwIBAgIIdJclisc/elQwCgYIKoZIzj0EAwMwRTELMAkGA1UEBhMCVVMxFDASBgNV +BAoMC0FmZmlybVRydXN0MSAwHgYDVQQDDBdBZmZpcm1UcnVzdCBQcmVtaXVtIEVDQzAeFw0xMDAx +MjkxNDIwMjRaFw00MDEyMzExNDIwMjRaMEUxCzAJBgNVBAYTAlVTMRQwEgYDVQQKDAtBZmZpcm1U +cnVzdDEgMB4GA1UEAwwXQWZmaXJtVHJ1c3QgUHJlbWl1bSBFQ0MwdjAQBgcqhkjOPQIBBgUrgQQA +IgNiAAQNMF4bFZ0D0KF5Nbc6PJJ6yhUczWLznCZcBz3lVPqj1swS6vQUX+iOGasvLkjmrBhDeKzQ +N8O9ss0s5kfiGuZjuD0uL3jET9v0D6RoTFVya5UdThhClXjMNzyR4ptlKymjQjBAMB0GA1UdDgQW +BBSaryl6wBE1NSZRMADDav5A1a7WPDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAK +BggqhkjOPQQDAwNnADBkAjAXCfOHiFBar8jAQr9HX/VsaobgxCd05DhT1wV/GzTjxi+zygk8N53X +57hG8f2h4nECMEJZh0PUUd+60wkyWs6Iflc9nF9Ca/UHLbXwgpP5WW+uZPpY5Yse42O+tYHNbwKM +eQ== +-----END CERTIFICATE----- + +Certum Trusted Network CA +========================= +-----BEGIN CERTIFICATE----- +MIIDuzCCAqOgAwIBAgIDBETAMA0GCSqGSIb3DQEBBQUAMH4xCzAJBgNVBAYTAlBMMSIwIAYDVQQK +ExlVbml6ZXRvIFRlY2hub2xvZ2llcyBTLkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlv +biBBdXRob3JpdHkxIjAgBgNVBAMTGUNlcnR1bSBUcnVzdGVkIE5ldHdvcmsgQ0EwHhcNMDgxMDIy +MTIwNzM3WhcNMjkxMjMxMTIwNzM3WjB+MQswCQYDVQQGEwJQTDEiMCAGA1UEChMZVW5pemV0byBU +ZWNobm9sb2dpZXMgUy5BLjEnMCUGA1UECxMeQ2VydHVtIENlcnRpZmljYXRpb24gQXV0aG9yaXR5 +MSIwIAYDVQQDExlDZXJ0dW0gVHJ1c3RlZCBOZXR3b3JrIENBMIIBIjANBgkqhkiG9w0BAQEFAAOC +AQ8AMIIBCgKCAQEA4/t9o3K6wvDJFIf1awFO4W5AB7ptJ11/91sts1rHUV+rpDKmYYe2bg+G0jAC +l/jXaVehGDldamR5xgFZrDwxSjh80gTSSyjoIF87B6LMTXPb865Px1bVWqeWifrzq2jUI4ZZJ88J +J7ysbnKDHDBy3+Ci6dLhdHUZvSqeexVUBBvXQzmtVSjF4hq79MDkrjhJM8x2hZ85RdKknvISjFH4 +fOQtf/WsX+sWn7Et0brMkUJ3TCXJkDhv2/DM+44el1k+1WBO5gUo7Ul5E0u6SNsv+XLTOcr+H9g0 +cvW0QM8xAcPs3hEtF10fuFDRXhmnad4HMyjKUJX5p1TLVIZQRan5SQIDAQABo0IwQDAPBgNVHRMB +Af8EBTADAQH/MB0GA1UdDgQWBBQIds3LB/8k9sXN7buQvOKEN0Z19zAOBgNVHQ8BAf8EBAMCAQYw +DQYJKoZIhvcNAQEFBQADggEBAKaorSLOAT2mo/9i0Eidi15ysHhE49wcrwn9I0j6vSrEuVUEtRCj +jSfeC4Jj0O7eDDd5QVsisrCaQVymcODU0HfLI9MA4GxWL+FpDQ3Zqr8hgVDZBqWo/5U30Kr+4rP1 +mS1FhIrlQgnXdAIv94nYmem8J9RHjboNRhx3zxSkHLmkMcScKHQDNP8zGSal6Q10tz6XxnboJ5aj +Zt3hrvJBW8qYVoNzcOSGGtIxQbovvi0TWnZvTuhOgQ4/WwMioBK+ZlgRSssDxLQqKi2WF+A5VLxI +03YnnZotBqbJ7DnSq9ufmgsnAjUpsUCV5/nonFWIGUbWtzT1fs45mtk48VH3Tyw= +-----END CERTIFICATE----- + +TWCA Root Certification Authority +================================= +-----BEGIN CERTIFICATE----- +MIIDezCCAmOgAwIBAgIBATANBgkqhkiG9w0BAQUFADBfMQswCQYDVQQGEwJUVzESMBAGA1UECgwJ +VEFJV0FOLUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFUV0NBIFJvb3QgQ2VydGlmaWNh +dGlvbiBBdXRob3JpdHkwHhcNMDgwODI4MDcyNDMzWhcNMzAxMjMxMTU1OTU5WjBfMQswCQYDVQQG +EwJUVzESMBAGA1UECgwJVEFJV0FOLUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFUV0NB +IFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK +AoIBAQCwfnK4pAOU5qfeCTiRShFAh6d8WWQUe7UREN3+v9XAu1bihSX0NXIP+FPQQeFEAcK0HMMx +QhZHhTMidrIKbw/lJVBPhYa+v5guEGcevhEFhgWQxFnQfHgQsIBct+HHK3XLfJ+utdGdIzdjp9xC +oi2SBBtQwXu4PhvJVgSLL1KbralW6cH/ralYhzC2gfeXRfwZVzsrb+RH9JlF/h3x+JejiB03HFyP +4HYlmlD4oFT/RJB2I9IyxsOrBr/8+7/zrX2SYgJbKdM1o5OaQ2RgXbL6Mv87BK9NQGr5x+PvI/1r +y+UPizgN7gr8/g+YnzAx3WxSZfmLgb4i4RxYA7qRG4kHAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIB +BjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRqOFsmjd6LWvJPelSDGRjjCDWmujANBgkqhkiG +9w0BAQUFAAOCAQEAPNV3PdrfibqHDAhUaiBQkr6wQT25JmSDCi/oQMCXKCeCMErJk/9q56YAf4lC +mtYR5VPOL8zy2gXE/uJQxDqGfczafhAJO5I1KlOy/usrBdlsXebQ79NqZp4VKIV66IIArB6nCWlW +QtNoURi+VJq/REG6Sb4gumlc7rh3zc5sH62Dlhh9DrUUOYTxKOkto557HnpyWoOzeW/vtPzQCqVY +T0bf+215WfKEIlKuD8z7fDvnaspHYcN6+NOSBB+4IIThNlQWx0DeO4pz3N/GCUzf7Nr/1FNCocny +Yh0igzyXxfkZYiesZSLX0zzG5Y6yU8xJzrww/nsOM5D77dIUkR8Hrw== +-----END CERTIFICATE----- + +Security Communication RootCA2 +============================== +-----BEGIN CERTIFICATE----- +MIIDdzCCAl+gAwIBAgIBADANBgkqhkiG9w0BAQsFADBdMQswCQYDVQQGEwJKUDElMCMGA1UEChMc +U0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEnMCUGA1UECxMeU2VjdXJpdHkgQ29tbXVuaWNh +dGlvbiBSb290Q0EyMB4XDTA5MDUyOTA1MDAzOVoXDTI5MDUyOTA1MDAzOVowXTELMAkGA1UEBhMC +SlAxJTAjBgNVBAoTHFNFQ09NIFRydXN0IFN5c3RlbXMgQ08uLExURC4xJzAlBgNVBAsTHlNlY3Vy +aXR5IENvbW11bmljYXRpb24gUm9vdENBMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB +ANAVOVKxUrO6xVmCxF1SrjpDZYBLx/KWvNs2l9amZIyoXvDjChz335c9S672XewhtUGrzbl+dp++ ++T42NKA7wfYxEUV0kz1XgMX5iZnK5atq1LXaQZAQwdbWQonCv/Q4EpVMVAX3NuRFg3sUZdbcDE3R +3n4MqzvEFb46VqZab3ZpUql6ucjrappdUtAtCms1FgkQhNBqyjoGADdH5H5XTz+L62e4iKrFvlNV +spHEfbmwhRkGeC7bYRr6hfVKkaHnFtWOojnflLhwHyg/i/xAXmODPIMqGplrz95Zajv8bxbXH/1K +EOtOghY6rCcMU/Gt1SSwawNQwS08Ft1ENCcadfsCAwEAAaNCMEAwHQYDVR0OBBYEFAqFqXdlBZh8 +QIH4D5csOPEK7DzPMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEB +CwUAA4IBAQBMOqNErLlFsceTfsgLCkLfZOoc7llsCLqJX2rKSpWeeo8HxdpFcoJxDjrSzG+ntKEj +u/Ykn8sX/oymzsLS28yN/HH8AynBbF0zX2S2ZTuJbxh2ePXcokgfGT+Ok+vx+hfuzU7jBBJV1uXk +3fs+BXziHV7Gp7yXT2g69ekuCkO2r1dcYmh8t/2jioSgrGK+KwmHNPBqAbubKVY8/gA3zyNs8U6q +tnRGEmyR7jTV7JqR50S+kDFy1UkC9gLl9B/rfNmWVan/7Ir5mUf/NVoCqgTLiluHcSmRvaS0eg29 +mvVXIwAHIRc/SjnRBUkLp7Y3gaVdjKozXoEofKd9J+sAro03 +-----END CERTIFICATE----- + +Hellenic Academic and Research Institutions RootCA 2011 +======================================================= +-----BEGIN CERTIFICATE----- +MIIEMTCCAxmgAwIBAgIBADANBgkqhkiG9w0BAQUFADCBlTELMAkGA1UEBhMCR1IxRDBCBgNVBAoT +O0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ2VydC4gQXV0aG9y +aXR5MUAwPgYDVQQDEzdIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25z +IFJvb3RDQSAyMDExMB4XDTExMTIwNjEzNDk1MloXDTMxMTIwMTEzNDk1MlowgZUxCzAJBgNVBAYT +AkdSMUQwQgYDVQQKEztIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25z +IENlcnQuIEF1dGhvcml0eTFAMD4GA1UEAxM3SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNo +IEluc3RpdHV0aW9ucyBSb290Q0EgMjAxMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB +AKlTAOMupvaO+mDYLZU++CwqVE7NuYRhlFhPjz2L5EPzdYmNUeTDN9KKiE15HrcS3UN4SoqS5tdI +1Q+kOilENbgH9mgdVc04UfCMJDGFr4PJfel3r+0ae50X+bOdOFAPplp5kYCvN66m0zH7tSYJnTxa +71HFK9+WXesyHgLacEnsbgzImjeN9/E2YEsmLIKe0HjzDQ9jpFEw4fkrJxIH2Oq9GGKYsFk3fb7u +8yBRQlqD75O6aRXxYp2fmTmCobd0LovUxQt7L/DICto9eQqakxylKHJzkUOap9FNhYS5qXSPFEDH +3N6sQWRstBmbAmNtJGSPRLIl6s5ddAxjMlyNh+UCAwEAAaOBiTCBhjAPBgNVHRMBAf8EBTADAQH/ +MAsGA1UdDwQEAwIBBjAdBgNVHQ4EFgQUppFC/RNhSiOeCKQp5dgTBCPuQSUwRwYDVR0eBEAwPqA8 +MAWCAy5ncjAFggMuZXUwBoIELmVkdTAGggQub3JnMAWBAy5ncjAFgQMuZXUwBoEELmVkdTAGgQQu +b3JnMA0GCSqGSIb3DQEBBQUAA4IBAQAf73lB4XtuP7KMhjdCSk4cNx6NZrokgclPEg8hwAOXhiVt +XdMiKahsog2p6z0GW5k6x8zDmjR/qw7IThzh+uTczQ2+vyT+bOdrwg3IBp5OjWEopmr95fZi6hg8 +TqBTnbI6nOulnJEWtk2C4AwFSKls9cz4y51JtPACpf1wA+2KIaWuE4ZJwzNzvoc7dIsXRSZMFpGD +/md9zU1jZ/rzAxKWeAaNsWftjj++n08C9bMJL/NMh98qy5V8AcysNnq/onN694/BtZqhFLKPM58N +7yLcZnuEvUUXBj08yrl3NI/K6s8/MT7jiOOASSXIl7WdmplNsDz4SgCbZN2fOUvRJ9e4 +-----END CERTIFICATE----- + +Actalis Authentication Root CA +============================== +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- + +Buypass Class 2 Root CA +======================= +-----BEGIN CERTIFICATE----- +MIIFWTCCA0GgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU +QnV5cGFzcyBBUy05ODMxNjMzMjcxIDAeBgNVBAMMF0J1eXBhc3MgQ2xhc3MgMiBSb290IENBMB4X +DTEwMTAyNjA4MzgwM1oXDTQwMTAyNjA4MzgwM1owTjELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1 +eXBhc3MgQVMtOTgzMTYzMzI3MSAwHgYDVQQDDBdCdXlwYXNzIENsYXNzIDIgUm9vdCBDQTCCAiIw +DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANfHXvfBB9R3+0Mh9PT1aeTuMgHbo4Yf5FkNuud1 +g1Lr6hxhFUi7HQfKjK6w3Jad6sNgkoaCKHOcVgb/S2TwDCo3SbXlzwx87vFKu3MwZfPVL4O2fuPn +9Z6rYPnT8Z2SdIrkHJasW4DptfQxh6NR/Md+oW+OU3fUl8FVM5I+GC911K2GScuVr1QGbNgGE41b +/+EmGVnAJLqBcXmQRFBoJJRfuLMR8SlBYaNByyM21cHxMlAQTn/0hpPshNOOvEu/XAFOBz3cFIqU +CqTqc/sLUegTBxj6DvEr0VQVfTzh97QZQmdiXnfgolXsttlpF9U6r0TtSsWe5HonfOV116rLJeff +awrbD02TTqigzXsu8lkBarcNuAeBfos4GzjmCleZPe4h6KP1DBbdi+w0jpwqHAAVF41og9JwnxgI +zRFo1clrUs3ERo/ctfPYV3Me6ZQ5BL/T3jjetFPsaRyifsSP5BtwrfKi+fv3FmRmaZ9JUaLiFRhn +Bkp/1Wy1TbMz4GHrXb7pmA8y1x1LPC5aAVKRCfLf6o3YBkBjqhHk/sM3nhRSP/TizPJhk9H9Z2vX +Uq6/aKtAQ6BXNVN48FP4YUIHZMbXb5tMOA1jrGKvNouicwoN9SG9dKpN6nIDSdvHXx1iY8f93ZHs +M+71bbRuMGjeyNYmsHVee7QHIJihdjK4TWxPAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYD +VR0OBBYEFMmAd+BikoL1RpzzuvdMw964o605MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsF +AAOCAgEAU18h9bqwOlI5LJKwbADJ784g7wbylp7ppHR/ehb8t/W2+xUbP6umwHJdELFx7rxP462s +A20ucS6vxOOto70MEae0/0qyexAQH6dXQbLArvQsWdZHEIjzIVEpMMpghq9Gqx3tOluwlN5E40EI +osHsHdb9T7bWR9AUC8rmyrV7d35BH16Dx7aMOZawP5aBQW9gkOLo+fsicdl9sz1Gv7SEr5AcD48S +aq/v7h56rgJKihcrdv6sVIkkLE8/trKnToyokZf7KcZ7XC25y2a2t6hbElGFtQl+Ynhw/qlqYLYd +DnkM/crqJIByw5c/8nerQyIKx+u2DISCLIBrQYoIwOula9+ZEsuK1V6ADJHgJgg2SMX6OBE1/yWD +LfJ6v9r9jv6ly0UsH8SIU653DtmadsWOLB2jutXsMq7Aqqz30XpN69QH4kj3Io6wpJ9qzo6ysmD0 +oyLQI+uUWnpp3Q+/QFesa1lQ2aOZ4W7+jQF5JyMV3pKdewlNWudLSDBaGOYKbeaP4NK75t98biGC +wWg5TbSYWGZizEqQXsP6JwSxeRV0mcy+rSDeJmAc61ZRpqPq5KM/p/9h3PFaTWwyI0PurKju7koS +CTxdccK+efrCh2gdC/1cacwG0Jp9VJkqyTkaGa9LKkPzY11aWOIv4x3kqdbQCtCev9eBCfHJxyYN +rJgWVqA= +-----END CERTIFICATE----- + +Buypass Class 3 Root CA +======================= +-----BEGIN CERTIFICATE----- +MIIFWTCCA0GgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU +QnV5cGFzcyBBUy05ODMxNjMzMjcxIDAeBgNVBAMMF0J1eXBhc3MgQ2xhc3MgMyBSb290IENBMB4X +DTEwMTAyNjA4Mjg1OFoXDTQwMTAyNjA4Mjg1OFowTjELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1 +eXBhc3MgQVMtOTgzMTYzMzI3MSAwHgYDVQQDDBdCdXlwYXNzIENsYXNzIDMgUm9vdCBDQTCCAiIw +DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKXaCpUWUOOV8l6ddjEGMnqb8RB2uACatVI2zSRH +sJ8YZLya9vrVediQYkwiL944PdbgqOkcLNt4EemOaFEVcsfzM4fkoF0LXOBXByow9c3EN3coTRiR +5r/VUv1xLXA+58bEiuPwKAv0dpihi4dVsjoT/Lc+JzeOIuOoTyrvYLs9tznDDgFHmV0ST9tD+leh +7fmdvhFHJlsTmKtdFoqwNxxXnUX/iJY2v7vKB3tvh2PX0DJq1l1sDPGzbjniazEuOQAnFN44wOwZ +ZoYS6J1yFhNkUsepNxz9gjDthBgd9K5c/3ATAOux9TN6S9ZV+AWNS2mw9bMoNlwUxFFzTWsL8TQH +2xc519woe2v1n/MuwU8XKhDzzMro6/1rqy6any2CbgTUUgGTLT2G/H783+9CHaZr77kgxve9oKeV +/afmiSTYzIw0bOIjL9kSGiG5VZFvC5F5GQytQIgLcOJ60g7YaEi7ghM5EFjp2CoHxhLbWNvSO1UQ +RwUVZ2J+GGOmRj8JDlQyXr8NYnon74Do29lLBlo3WiXQCBJ31G8JUJc9yB3D34xFMFbG02SrZvPA +Xpacw8Tvw3xrizp5f7NJzz3iiZ+gMEuFuZyUJHmPfWupRWgPK9Dx2hzLabjKSWJtyNBjYt1gD1iq +j6G8BaVmos8bdrKEZLFMOVLAMLrwjEsCsLa3AgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYD +VR0OBBYEFEe4zf/lb+74suwvTg75JbCOPGvDMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsF +AAOCAgEAACAjQTUEkMJAYmDv4jVM1z+s4jSQuKFvdvoWFqRINyzpkMLyPPgKn9iB5btb2iUspKdV +cSQy9sgL8rxq+JOssgfCX5/bzMiKqr5qb+FJEMwx14C7u8jYog5kV+qi9cKpMRXSIGrs/CIBKM+G +uIAeqcwRpTzyFrNHnfzSgCHEy9BHcEGhyoMZCCxt8l13nIoUE9Q2HJLw5QY33KbmkJs4j1xrG0aG +Q0JfPgEHU1RdZX33inOhmlRaHylDFCfChQ+1iHsaO5S3HWCntZznKWlXWpuTekMwGwPXYshApqr8 +ZORK15FTAaggiG6cX0S5y2CBNOxv033aSF/rtJC8LakcC6wc1aJoIIAE1vyxjy+7SjENSoYc6+I2 +KSb12tjE8nVhz36udmNKekBlk4f4HoCMhuWG1o8O/FMsYOgWYRqiPkN7zTlgVGr18okmAWiDSKIz +6MkEkbIRNBE+6tBDGR8Dk5AM/1E9V/RBbuHLoL7ryWPNbczk+DaqaJ3tvV2XcEQNtg413OEMXbug +UZTLfhbrES+jkkXITHHZvMmZUldGL1DPvTVp9D0VzgalLA8+9oG6lLvDu79leNKGef9JOxqDDPDe +eOzI8k1MGt6CKfjBWtrt7uYnXuhF0J0cUahoq0Tj0Itq4/g7u9xN12TyUb7mqqta6THuBrxzvxNi +Cp/HuZc= +-----END CERTIFICATE----- + +T-TeleSec GlobalRoot Class 3 +============================ +-----BEGIN CERTIFICATE----- +MIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoM +IlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBU +cnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDMwHhcNMDgx +MDAxMTAyOTU2WhcNMzMxMDAxMjM1OTU5WjCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lz +dGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBD +ZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDMwggEiMA0GCSqGSIb3 +DQEBAQUAA4IBDwAwggEKAoIBAQC9dZPwYiJvJK7genasfb3ZJNW4t/zN8ELg63iIVl6bmlQdTQyK +9tPPcPRStdiTBONGhnFBSivwKixVA9ZIw+A5OO3yXDw/RLyTPWGrTs0NvvAgJ1gORH8EGoel15YU +NpDQSXuhdfsaa3Ox+M6pCSzyU9XDFES4hqX2iys52qMzVNn6chr3IhUciJFrf2blw2qAsCTz34ZF +iP0Zf3WHHx+xGwpzJFu5ZeAsVMhg02YXP+HMVDNzkQI6pn97djmiH5a2OK61yJN0HZ65tOVgnS9W +0eDrXltMEnAMbEQgqxHY9Bn20pxSN+f6tsIxO0rUFJmtxxr1XV/6B7h8DR/Wgx6zAgMBAAGjQjBA +MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS1A/d2O2GCahKqGFPr +AyGUv/7OyjANBgkqhkiG9w0BAQsFAAOCAQEAVj3vlNW92nOyWL6ukK2YJ5f+AbGwUgC4TeQbIXQb +fsDuXmkqJa9c1h3a0nnJ85cp4IaH3gRZD/FZ1GSFS5mvJQQeyUapl96Cshtwn5z2r3Ex3XsFpSzT +ucpH9sry9uetuUg/vBa3wW306gmv7PO15wWeph6KU1HWk4HMdJP2udqmJQV0eVp+QD6CSyYRMG7h +P0HHRwA11fXT91Q+gT3aSWqas+8QPebrb9HIIkfLzM8BMZLZGOMivgkeGj5asuRrDFR6fUNOuIml +e9eiPZaGzPImNC1qkp2aGtAw4l1OBLBfiyB+d8E9lYLRRpo7PHi4b6HQDWSieB4pTpPDpFQUWw== +-----END CERTIFICATE----- + +D-TRUST Root Class 3 CA 2 2009 +============================== +-----BEGIN CERTIFICATE----- +MIIEMzCCAxugAwIBAgIDCYPzMA0GCSqGSIb3DQEBCwUAME0xCzAJBgNVBAYTAkRFMRUwEwYDVQQK +DAxELVRydXN0IEdtYkgxJzAlBgNVBAMMHkQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgMjAwOTAe +Fw0wOTExMDUwODM1NThaFw0yOTExMDUwODM1NThaME0xCzAJBgNVBAYTAkRFMRUwEwYDVQQKDAxE +LVRydXN0IEdtYkgxJzAlBgNVBAMMHkQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgMjAwOTCCASIw +DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANOySs96R+91myP6Oi/WUEWJNTrGa9v+2wBoqOAD +ER03UAifTUpolDWzU9GUY6cgVq/eUXjsKj3zSEhQPgrfRlWLJ23DEE0NkVJD2IfgXU42tSHKXzlA +BF9bfsyjxiupQB7ZNoTWSPOSHjRGICTBpFGOShrvUD9pXRl/RcPHAY9RySPocq60vFYJfxLLHLGv +KZAKyVXMD9O0Gu1HNVpK7ZxzBCHQqr0ME7UAyiZsxGsMlFqVlNpQmvH/pStmMaTJOKDfHR+4CS7z +p+hnUquVH+BGPtikw8paxTGA6Eian5Rp/hnd2HN8gcqW3o7tszIFZYQ05ub9VxC1X3a/L7AQDcUC +AwEAAaOCARowggEWMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFP3aFMSfMN4hvR5COfyrYyNJ +4PGEMA4GA1UdDwEB/wQEAwIBBjCB0wYDVR0fBIHLMIHIMIGAoH6gfIZ6bGRhcDovL2RpcmVjdG9y +eS5kLXRydXN0Lm5ldC9DTj1ELVRSVVNUJTIwUm9vdCUyMENsYXNzJTIwMyUyMENBJTIwMiUyMDIw +MDksTz1ELVRydXN0JTIwR21iSCxDPURFP2NlcnRpZmljYXRlcmV2b2NhdGlvbmxpc3QwQ6BBoD+G +PWh0dHA6Ly93d3cuZC10cnVzdC5uZXQvY3JsL2QtdHJ1c3Rfcm9vdF9jbGFzc18zX2NhXzJfMjAw +OS5jcmwwDQYJKoZIhvcNAQELBQADggEBAH+X2zDI36ScfSF6gHDOFBJpiBSVYEQBrLLpME+bUMJm +2H6NMLVwMeniacfzcNsgFYbQDfC+rAF1hM5+n02/t2A7nPPKHeJeaNijnZflQGDSNiH+0LS4F9p0 +o3/U37CYAqxva2ssJSRyoWXuJVrl5jLn8t+rSfrzkGkj2wTZ51xY/GXUl77M/C4KzCUqNQT4YJEV +dT1B/yMfGchs64JTBKbkTCJNjYy6zltz7GRUUG3RnFX7acM2w4y8PIWmawomDeCTmGCufsYkl4ph +X5GOZpIJhzbNi5stPvZR1FDUWSi9g/LMKHtThm3YJohw1+qRzT65ysCQblrGXnRl11z+o+I= +-----END CERTIFICATE----- + +D-TRUST Root Class 3 CA 2 EV 2009 +================================= +-----BEGIN CERTIFICATE----- +MIIEQzCCAyugAwIBAgIDCYP0MA0GCSqGSIb3DQEBCwUAMFAxCzAJBgNVBAYTAkRFMRUwEwYDVQQK +DAxELVRydXN0IEdtYkgxKjAoBgNVBAMMIUQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgRVYgMjAw +OTAeFw0wOTExMDUwODUwNDZaFw0yOTExMDUwODUwNDZaMFAxCzAJBgNVBAYTAkRFMRUwEwYDVQQK +DAxELVRydXN0IEdtYkgxKjAoBgNVBAMMIUQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgRVYgMjAw +OTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJnxhDRwui+3MKCOvXwEz75ivJn9gpfS +egpnljgJ9hBOlSJzmY3aFS3nBfwZcyK3jpgAvDw9rKFs+9Z5JUut8Mxk2og+KbgPCdM03TP1YtHh +zRnp7hhPTFiu4h7WDFsVWtg6uMQYZB7jM7K1iXdODL/ZlGsTl28So/6ZqQTMFexgaDbtCHu39b+T +7WYxg4zGcTSHThfqr4uRjRxWQa4iN1438h3Z0S0NL2lRp75mpoo6Kr3HGrHhFPC+Oh25z1uxav60 +sUYgovseO3Dvk5h9jHOW8sXvhXCtKSb8HgQ+HKDYD8tSg2J87otTlZCpV6LqYQXY+U3EJ/pure35 +11H3a6UCAwEAAaOCASQwggEgMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNOUikxiEyoZLsyv +cop9NteaHNxnMA4GA1UdDwEB/wQEAwIBBjCB3QYDVR0fBIHVMIHSMIGHoIGEoIGBhn9sZGFwOi8v +ZGlyZWN0b3J5LmQtdHJ1c3QubmV0L0NOPUQtVFJVU1QlMjBSb290JTIwQ2xhc3MlMjAzJTIwQ0El +MjAyJTIwRVYlMjAyMDA5LE89RC1UcnVzdCUyMEdtYkgsQz1ERT9jZXJ0aWZpY2F0ZXJldm9jYXRp +b25saXN0MEagRKBChkBodHRwOi8vd3d3LmQtdHJ1c3QubmV0L2NybC9kLXRydXN0X3Jvb3RfY2xh +c3NfM19jYV8yX2V2XzIwMDkuY3JsMA0GCSqGSIb3DQEBCwUAA4IBAQA07XtaPKSUiO8aEXUHL7P+ +PPoeUSbrh/Yp3uDx1MYkCenBz1UbtDDZzhr+BlGmFaQt77JLvyAoJUnRpjZ3NOhk31KxEcdzes05 +nsKtjHEh8lprr988TlWvsoRlFIm5d8sqMb7Po23Pb0iUMkZv53GMoKaEGTcH8gNFCSuGdXzfX2lX +ANtu2KZyIktQ1HWYVt+3GP9DQ1CuekR78HlR10M9p9OB0/DJT7naxpeG0ILD5EJt/rDiZE4OJudA +NCa1CInXCGNjOCd1HjPqbqjdn5lPdE2BiYBL3ZqXKVwvvoFBuYz/6n1gBp7N1z3TLqMVvKjmJuVv +w9y4AyHqnxbxLFS1 +-----END CERTIFICATE----- + +CA Disig Root R2 +================ +-----BEGIN CERTIFICATE----- +MIIFaTCCA1GgAwIBAgIJAJK4iNuwisFjMA0GCSqGSIb3DQEBCwUAMFIxCzAJBgNVBAYTAlNLMRMw +EQYDVQQHEwpCcmF0aXNsYXZhMRMwEQYDVQQKEwpEaXNpZyBhLnMuMRkwFwYDVQQDExBDQSBEaXNp +ZyBSb290IFIyMB4XDTEyMDcxOTA5MTUzMFoXDTQyMDcxOTA5MTUzMFowUjELMAkGA1UEBhMCU0sx +EzARBgNVBAcTCkJyYXRpc2xhdmExEzARBgNVBAoTCkRpc2lnIGEucy4xGTAXBgNVBAMTEENBIERp +c2lnIFJvb3QgUjIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCio8QACdaFXS1tFPbC +w3OeNcJxVX6B+6tGUODBfEl45qt5WDza/3wcn9iXAng+a0EE6UG9vgMsRfYvZNSrXaNHPWSb6Wia +xswbP7q+sos0Ai6YVRn8jG+qX9pMzk0DIaPY0jSTVpbLTAwAFjxfGs3Ix2ymrdMxp7zo5eFm1tL7 +A7RBZckQrg4FY8aAamkw/dLukO8NJ9+flXP04SXabBbeQTg06ov80egEFGEtQX6sx3dOy1FU+16S +GBsEWmjGycT6txOgmLcRK7fWV8x8nhfRyyX+hk4kLlYMeE2eARKmK6cBZW58Yh2EhN/qwGu1pSqV +g8NTEQxzHQuyRpDRQjrOQG6Vrf/GlK1ul4SOfW+eioANSW1z4nuSHsPzwfPrLgVv2RvPN3YEyLRa +5Beny912H9AZdugsBbPWnDTYltxhh5EF5EQIM8HauQhl1K6yNg3ruji6DOWbnuuNZt2Zz9aJQfYE +koopKW1rOhzndX0CcQ7zwOe9yxndnWCywmZgtrEE7snmhrmaZkCo5xHtgUUDi/ZnWejBBhG93c+A +Ak9lQHhcR1DIm+YfgXvkRKhbhZri3lrVx/k6RGZL5DJUfORsnLMOPReisjQS1n6yqEm70XooQL6i +Fh/f5DcfEXP7kAplQ6INfPgGAVUzfbANuPT1rqVCV3w2EYx7XsQDnYx5nQIDAQABo0IwQDAPBgNV +HRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUtZn4r7CU9eMg1gqtzk5WpC5u +Qu0wDQYJKoZIhvcNAQELBQADggIBACYGXnDnZTPIgm7ZnBc6G3pmsgH2eDtpXi/q/075KMOYKmFM +tCQSin1tERT3nLXK5ryeJ45MGcipvXrA1zYObYVybqjGom32+nNjf7xueQgcnYqfGopTpti72TVV +sRHFqQOzVju5hJMiXn7B9hJSi+osZ7z+Nkz1uM/Rs0mSO9MpDpkblvdhuDvEK7Z4bLQjb/D907Je +dR+Zlais9trhxTF7+9FGs9K8Z7RiVLoJ92Owk6Ka+elSLotgEqv89WBW7xBci8QaQtyDW2QOy7W8 +1k/BfDxujRNt+3vrMNDcTa/F1balTFtxyegxvug4BkihGuLq0t4SOVga/4AOgnXmt8kHbA7v/zjx +mHHEt38OFdAlab0inSvtBfZGR6ztwPDUO+Ls7pZbkBNOHlY667DvlruWIxG68kOGdGSVyCh13x01 +utI3gzhTODY7z2zp+WsO0PsE6E9312UBeIYMej4hYvF/Y3EMyZ9E26gnonW+boE+18DrG5gPcFw0 +sorMwIUY6256s/daoQe/qUKS82Ail+QUoQebTnbAjn39pCXHR+3/H3OszMOl6W8KjptlwlCFtaOg +UxLMVYdh84GuEEZhvUQhuMI9dM9+JDX6HAcOmz0iyu8xL4ysEr3vQCj8KWefshNPZiTEUxnpHikV +7+ZtsH8tZ/3zbBt1RqPlShfppNcL +-----END CERTIFICATE----- + +ACCVRAIZ1 +========= +-----BEGIN CERTIFICATE----- +MIIH0zCCBbugAwIBAgIIXsO3pkN/pOAwDQYJKoZIhvcNAQEFBQAwQjESMBAGA1UEAwwJQUNDVlJB +SVoxMRAwDgYDVQQLDAdQS0lBQ0NWMQ0wCwYDVQQKDARBQ0NWMQswCQYDVQQGEwJFUzAeFw0xMTA1 +MDUwOTM3MzdaFw0zMDEyMzEwOTM3MzdaMEIxEjAQBgNVBAMMCUFDQ1ZSQUlaMTEQMA4GA1UECwwH +UEtJQUNDVjENMAsGA1UECgwEQUNDVjELMAkGA1UEBhMCRVMwggIiMA0GCSqGSIb3DQEBAQUAA4IC +DwAwggIKAoICAQCbqau/YUqXry+XZpp0X9DZlv3P4uRm7x8fRzPCRKPfmt4ftVTdFXxpNRFvu8gM +jmoYHtiP2Ra8EEg2XPBjs5BaXCQ316PWywlxufEBcoSwfdtNgM3802/J+Nq2DoLSRYWoG2ioPej0 +RGy9ocLLA76MPhMAhN9KSMDjIgro6TenGEyxCQ0jVn8ETdkXhBilyNpAlHPrzg5XPAOBOp0KoVdD +aaxXbXmQeOW1tDvYvEyNKKGno6e6Ak4l0Squ7a4DIrhrIA8wKFSVf+DuzgpmndFALW4ir50awQUZ +0m/A8p/4e7MCQvtQqR0tkw8jq8bBD5L/0KIV9VMJcRz/RROE5iZe+OCIHAr8Fraocwa48GOEAqDG +WuzndN9wrqODJerWx5eHk6fGioozl2A3ED6XPm4pFdahD9GILBKfb6qkxkLrQaLjlUPTAYVtjrs7 +8yM2x/474KElB0iryYl0/wiPgL/AlmXz7uxLaL2diMMxs0Dx6M/2OLuc5NF/1OVYm3z61PMOm3WR +5LpSLhl+0fXNWhn8ugb2+1KoS5kE3fj5tItQo05iifCHJPqDQsGH+tUtKSpacXpkatcnYGMN285J +9Y0fkIkyF/hzQ7jSWpOGYdbhdQrqeWZ2iE9x6wQl1gpaepPluUsXQA+xtrn13k/c4LOsOxFwYIRK +Q26ZIMApcQrAZQIDAQABo4ICyzCCAscwfQYIKwYBBQUHAQEEcTBvMEwGCCsGAQUFBzAChkBodHRw +Oi8vd3d3LmFjY3YuZXMvZmlsZWFkbWluL0FyY2hpdm9zL2NlcnRpZmljYWRvcy9yYWl6YWNjdjEu +Y3J0MB8GCCsGAQUFBzABhhNodHRwOi8vb2NzcC5hY2N2LmVzMB0GA1UdDgQWBBTSh7Tj3zcnk1X2 +VuqB5TbMjB4/vTAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFNKHtOPfNyeTVfZW6oHlNsyM +Hj+9MIIBcwYDVR0gBIIBajCCAWYwggFiBgRVHSAAMIIBWDCCASIGCCsGAQUFBwICMIIBFB6CARAA +QQB1AHQAbwByAGkAZABhAGQAIABkAGUAIABDAGUAcgB0AGkAZgBpAGMAYQBjAGkA8wBuACAAUgBh +AO0AegAgAGQAZQAgAGwAYQAgAEEAQwBDAFYAIAAoAEEAZwBlAG4AYwBpAGEAIABkAGUAIABUAGUA +YwBuAG8AbABvAGcA7QBhACAAeQAgAEMAZQByAHQAaQBmAGkAYwBhAGMAaQDzAG4AIABFAGwAZQBj +AHQAcgDzAG4AaQBjAGEALAAgAEMASQBGACAAUQA0ADYAMAAxADEANQA2AEUAKQAuACAAQwBQAFMA +IABlAG4AIABoAHQAdABwADoALwAvAHcAdwB3AC4AYQBjAGMAdgAuAGUAczAwBggrBgEFBQcCARYk +aHR0cDovL3d3dy5hY2N2LmVzL2xlZ2lzbGFjaW9uX2MuaHRtMFUGA1UdHwROMEwwSqBIoEaGRGh0 +dHA6Ly93d3cuYWNjdi5lcy9maWxlYWRtaW4vQXJjaGl2b3MvY2VydGlmaWNhZG9zL3JhaXphY2N2 +MV9kZXIuY3JsMA4GA1UdDwEB/wQEAwIBBjAXBgNVHREEEDAOgQxhY2N2QGFjY3YuZXMwDQYJKoZI +hvcNAQEFBQADggIBAJcxAp/n/UNnSEQU5CmH7UwoZtCPNdpNYbdKl02125DgBS4OxnnQ8pdpD70E +R9m+27Up2pvZrqmZ1dM8MJP1jaGo/AaNRPTKFpV8M9xii6g3+CfYCS0b78gUJyCpZET/LtZ1qmxN +YEAZSUNUY9rizLpm5U9EelvZaoErQNV/+QEnWCzI7UiRfD+mAM/EKXMRNt6GGT6d7hmKG9Ww7Y49 +nCrADdg9ZuM8Db3VlFzi4qc1GwQA9j9ajepDvV+JHanBsMyZ4k0ACtrJJ1vnE5Bc5PUzolVt3OAJ +TS+xJlsndQAJxGJ3KQhfnlmstn6tn1QwIgPBHnFk/vk4CpYY3QIUrCPLBhwepH2NDd4nQeit2hW3 +sCPdK6jT2iWH7ehVRE2I9DZ+hJp4rPcOVkkO1jMl1oRQQmwgEh0q1b688nCBpHBgvgW1m54ERL5h +I6zppSSMEYCUWqKiuUnSwdzRp+0xESyeGabu4VXhwOrPDYTkF7eifKXeVSUG7szAh1xA2syVP1Xg +Nce4hL60Xc16gwFy7ofmXx2utYXGJt/mwZrpHgJHnyqobalbz+xFd3+YJ5oyXSrjhO7FmGYvliAd +3djDJ9ew+f7Zfc3Qn48LFFhRny+Lwzgt3uiP1o2HpPVWQxaZLPSkVrQ0uGE3ycJYgBugl6H8WY3p +EfbRD0tVNEYqi4Y7 +-----END CERTIFICATE----- + +TWCA Global Root CA +=================== +-----BEGIN CERTIFICATE----- +MIIFQTCCAymgAwIBAgICDL4wDQYJKoZIhvcNAQELBQAwUTELMAkGA1UEBhMCVFcxEjAQBgNVBAoT +CVRBSVdBTi1DQTEQMA4GA1UECxMHUm9vdCBDQTEcMBoGA1UEAxMTVFdDQSBHbG9iYWwgUm9vdCBD +QTAeFw0xMjA2MjcwNjI4MzNaFw0zMDEyMzExNTU5NTlaMFExCzAJBgNVBAYTAlRXMRIwEAYDVQQK +EwlUQUlXQU4tQ0ExEDAOBgNVBAsTB1Jvb3QgQ0ExHDAaBgNVBAMTE1RXQ0EgR2xvYmFsIFJvb3Qg +Q0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCwBdvI64zEbooh745NnHEKH1Jw7W2C +nJfF10xORUnLQEK1EjRsGcJ0pDFfhQKX7EMzClPSnIyOt7h52yvVavKOZsTuKwEHktSz0ALfUPZV +r2YOy+BHYC8rMjk1Ujoog/h7FsYYuGLWRyWRzvAZEk2tY/XTP3VfKfChMBwqoJimFb3u/Rk28OKR +Q4/6ytYQJ0lM793B8YVwm8rqqFpD/G2Gb3PpN0Wp8DbHzIh1HrtsBv+baz4X7GGqcXzGHaL3SekV +tTzWoWH1EfcFbx39Eb7QMAfCKbAJTibc46KokWofwpFFiFzlmLhxpRUZyXx1EcxwdE8tmx2RRP1W +KKD+u4ZqyPpcC1jcxkt2yKsi2XMPpfRaAok/T54igu6idFMqPVMnaR1sjjIsZAAmY2E2TqNGtz99 +sy2sbZCilaLOz9qC5wc0GZbpuCGqKX6mOL6OKUohZnkfs8O1CWfe1tQHRvMq2uYiN2DLgbYPoA/p +yJV/v1WRBXrPPRXAb94JlAGD1zQbzECl8LibZ9WYkTunhHiVJqRaCPgrdLQABDzfuBSO6N+pjWxn +kjMdwLfS7JLIvgm/LCkFbwJrnu+8vyq8W8BQj0FwcYeyTbcEqYSjMq+u7msXi7Kx/mzhkIyIqJdI +zshNy/MGz19qCkKxHh53L46g5pIOBvwFItIm4TFRfTLcDwIDAQABoyMwITAOBgNVHQ8BAf8EBAMC +AQYwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAgEAXzSBdu+WHdXltdkCY4QWwa6g +cFGn90xHNcgL1yg9iXHZqjNB6hQbbCEAwGxCGX6faVsgQt+i0trEfJdLjbDorMjupWkEmQqSpqsn +LhpNgb+E1HAerUf+/UqdM+DyucRFCCEK2mlpc3INvjT+lIutwx4116KD7+U4x6WFH6vPNOw/KP4M +8VeGTslV9xzU2KV9Bnpv1d8Q34FOIWWxtuEXeZVFBs5fzNxGiWNoRI2T9GRwoD2dKAXDOXC4Ynsg +/eTb6QihuJ49CcdP+yz4k3ZB3lLg4VfSnQO8d57+nile98FRYB/e2guyLXW3Q0iT5/Z5xoRdgFlg +lPx4mI88k1HtQJAH32RjJMtOcQWh15QaiDLxInQirqWm2BJpTGCjAu4r7NRjkgtevi92a6O2JryP +A9gK8kxkRr05YuWW6zRjESjMlfGt7+/cgFhI6Uu46mWs6fyAtbXIRfmswZ/ZuepiiI7E8UuDEq3m +i4TWnsLrgxifarsbJGAzcMzs9zLzXNl5fe+epP7JI8Mk7hWSsT2RTyaGvWZzJBPqpK5jwa19hAM8 +EHiGG3njxPPyBJUgriOCxLM6AGK/5jYk4Ve6xx6QddVfP5VhK8E7zeWzaGHQRiapIVJpLesux+t3 +zqY6tQMzT3bR51xUAV3LePTJDL/PEo4XLSNolOer/qmyKwbQBM0= +-----END CERTIFICATE----- + +TeliaSonera Root CA v1 +====================== +-----BEGIN CERTIFICATE----- +MIIFODCCAyCgAwIBAgIRAJW+FqD3LkbxezmCcvqLzZYwDQYJKoZIhvcNAQEFBQAwNzEUMBIGA1UE +CgwLVGVsaWFTb25lcmExHzAdBgNVBAMMFlRlbGlhU29uZXJhIFJvb3QgQ0EgdjEwHhcNMDcxMDE4 +MTIwMDUwWhcNMzIxMDE4MTIwMDUwWjA3MRQwEgYDVQQKDAtUZWxpYVNvbmVyYTEfMB0GA1UEAwwW +VGVsaWFTb25lcmEgUm9vdCBDQSB2MTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMK+ +6yfwIaPzaSZVfp3FVRaRXP3vIb9TgHot0pGMYzHw7CTww6XScnwQbfQ3t+XmfHnqjLWCi65ItqwA +3GV17CpNX8GH9SBlK4GoRz6JI5UwFpB/6FcHSOcZrr9FZ7E3GwYq/t75rH2D+1665I+XZ75Ljo1k +B1c4VWk0Nj0TSO9P4tNmHqTPGrdeNjPUtAa9GAH9d4RQAEX1jF3oI7x+/jXh7VB7qTCNGdMJjmhn +Xb88lxhTuylixcpecsHHltTbLaC0H2kD7OriUPEMPPCs81Mt8Bz17Ww5OXOAFshSsCPN4D7c3TxH +oLs1iuKYaIu+5b9y7tL6pe0S7fyYGKkmdtwoSxAgHNN/Fnct7W+A90m7UwW7XWjH1Mh1Fj+JWov3 +F0fUTPHSiXk+TT2YqGHeOh7S+F4D4MHJHIzTjU3TlTazN19jY5szFPAtJmtTfImMMsJu7D0hADnJ +oWjiUIMusDor8zagrC/kb2HCUQk5PotTubtn2txTuXZZNp1D5SDgPTJghSJRt8czu90VL6R4pgd7 +gUY2BIbdeTXHlSw7sKMXNeVzH7RcWe/a6hBle3rQf5+ztCo3O3CLm1u5K7fsslESl1MpWtTwEhDc +TwK7EpIvYtQ/aUN8Ddb8WHUBiJ1YFkveupD/RwGJBmr2X7KQarMCpgKIv7NHfirZ1fpoeDVNAgMB +AAGjPzA9MA8GA1UdEwEB/wQFMAMBAf8wCwYDVR0PBAQDAgEGMB0GA1UdDgQWBBTwj1k4ALP1j5qW +DNXr+nuqF+gTEjANBgkqhkiG9w0BAQUFAAOCAgEAvuRcYk4k9AwI//DTDGjkk0kiP0Qnb7tt3oNm +zqjMDfz1mgbldxSR651Be5kqhOX//CHBXfDkH1e3damhXwIm/9fH907eT/j3HEbAek9ALCI18Bmx +0GtnLLCo4MBANzX2hFxc469CeP6nyQ1Q6g2EdvZR74NTxnr/DlZJLo961gzmJ1TjTQpgcmLNkQfW +pb/ImWvtxBnmq0wROMVvMeJuScg/doAmAyYp4Db29iBT4xdwNBedY2gea+zDTYa4EzAvXUYNR0PV +G6pZDrlcjQZIrXSHX8f8MVRBE+LHIQ6e4B4N4cB7Q4WQxYpYxmUKeFfyxiMPAdkgS94P+5KFdSpc +c41teyWRyu5FrgZLAMzTsVlQ2jqIOylDRl6XK1TOU2+NSueW+r9xDkKLfP0ooNBIytrEgUy7onOT +JsjrDNYmiLbAJM+7vVvrdX3pCI6GMyx5dwlppYn8s3CQh3aP0yK7Qs69cwsgJirQmz1wHiRszYd2 +qReWt88NkvuOGKmYSdGe/mBEciG5Ge3C9THxOUiIkCR1VBatzvT4aRRkOfujuLpwQMcnHL/EVlP6 +Y2XQ8xwOFvVrhlhNGNTkDY6lnVuR3HYkUD/GKvvZt5y11ubQ2egZixVxSK236thZiNSQvxaz2ems +WWFUyBy6ysHK4bkgTI86k4mloMy/0/Z1pHWWbVY= +-----END CERTIFICATE----- + +E-Tugra Certification Authority +=============================== +-----BEGIN CERTIFICATE----- +MIIGSzCCBDOgAwIBAgIIamg+nFGby1MwDQYJKoZIhvcNAQELBQAwgbIxCzAJBgNVBAYTAlRSMQ8w +DQYDVQQHDAZBbmthcmExQDA+BgNVBAoMN0UtVHXEn3JhIEVCRyBCaWxpxZ9pbSBUZWtub2xvamls +ZXJpIHZlIEhpem1ldGxlcmkgQS7Fni4xJjAkBgNVBAsMHUUtVHVncmEgU2VydGlmaWthc3lvbiBN +ZXJrZXppMSgwJgYDVQQDDB9FLVR1Z3JhIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTEzMDMw +NTEyMDk0OFoXDTIzMDMwMzEyMDk0OFowgbIxCzAJBgNVBAYTAlRSMQ8wDQYDVQQHDAZBbmthcmEx +QDA+BgNVBAoMN0UtVHXEn3JhIEVCRyBCaWxpxZ9pbSBUZWtub2xvamlsZXJpIHZlIEhpem1ldGxl +cmkgQS7Fni4xJjAkBgNVBAsMHUUtVHVncmEgU2VydGlmaWthc3lvbiBNZXJrZXppMSgwJgYDVQQD +DB9FLVR1Z3JhIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjANBgkqhkiG9w0BAQEFAAOCAg8A +MIICCgKCAgEA4vU/kwVRHoViVF56C/UYB4Oufq9899SKa6VjQzm5S/fDxmSJPZQuVIBSOTkHS0vd +hQd2h8y/L5VMzH2nPbxHD5hw+IyFHnSOkm0bQNGZDbt1bsipa5rAhDGvykPL6ys06I+XawGb1Q5K +CKpbknSFQ9OArqGIW66z6l7LFpp3RMih9lRozt6Plyu6W0ACDGQXwLWTzeHxE2bODHnv0ZEoq1+g +ElIwcxmOj+GMB6LDu0rw6h8VqO4lzKRG+Bsi77MOQ7osJLjFLFzUHPhdZL3Dk14opz8n8Y4e0ypQ +BaNV2cvnOVPAmJ6MVGKLJrD3fY185MaeZkJVgkfnsliNZvcHfC425lAcP9tDJMW/hkd5s3kc91r0 +E+xs+D/iWR+V7kI+ua2oMoVJl0b+SzGPWsutdEcf6ZG33ygEIqDUD13ieU/qbIWGvaimzuT6w+Gz +rt48Ue7LE3wBf4QOXVGUnhMMti6lTPk5cDZvlsouDERVxcr6XQKj39ZkjFqzAQqptQpHF//vkUAq +jqFGOjGY5RH8zLtJVor8udBhmm9lbObDyz51Sf6Pp+KJxWfXnUYTTjF2OySznhFlhqt/7x3U+Lzn +rFpct1pHXFXOVbQicVtbC/DP3KBhZOqp12gKY6fgDT+gr9Oq0n7vUaDmUStVkhUXU8u3Zg5mTPj5 +dUyQ5xJwx0UCAwEAAaNjMGEwHQYDVR0OBBYEFC7j27JJ0JxUeVz6Jyr+zE7S6E5UMA8GA1UdEwEB +/wQFMAMBAf8wHwYDVR0jBBgwFoAULuPbsknQnFR5XPonKv7MTtLoTlQwDgYDVR0PAQH/BAQDAgEG +MA0GCSqGSIb3DQEBCwUAA4ICAQAFNzr0TbdF4kV1JI+2d1LoHNgQk2Xz8lkGpD4eKexd0dCrfOAK +kEh47U6YA5n+KGCRHTAduGN8qOY1tfrTYXbm1gdLymmasoR6d5NFFxWfJNCYExL/u6Au/U5Mh/jO +XKqYGwXgAEZKgoClM4so3O0409/lPun++1ndYYRP0lSWE2ETPo+Aab6TR7U1Q9Jauz1c77NCR807 +VRMGsAnb/WP2OogKmW9+4c4bU2pEZiNRCHu8W1Ki/QY3OEBhj0qWuJA3+GbHeJAAFS6LrVE1Uweo +a2iu+U48BybNCAVwzDk/dr2l02cmAYamU9JgO3xDf1WKvJUawSg5TB9D0pH0clmKuVb8P7Sd2nCc +dlqMQ1DujjByTd//SffGqWfZbawCEeI6FiWnWAjLb1NBnEg4R2gz0dfHj9R0IdTDBZB6/86WiLEV +KV0jq9BgoRJP3vQXzTLlyb/IQ639Lo7xr+L0mPoSHyDYwKcMhcWQ9DstliaxLL5Mq+ux0orJ23gT +Dx4JnW2PAJ8C2sH6H3p6CcRK5ogql5+Ji/03X186zjhZhkuvcQu02PJwT58yE+Owp1fl2tpDy4Q0 +8ijE6m30Ku/Ba3ba+367hTzSU8JNvnHhRdH9I2cNE3X7z2VnIp2usAnRCf8dNL/+I5c30jn6PQ0G +C7TbO6Orb1wdtn7os4I07QZcJA== +-----END CERTIFICATE----- + +T-TeleSec GlobalRoot Class 2 +============================ +-----BEGIN CERTIFICATE----- +MIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoM +IlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBU +cnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDIwHhcNMDgx +MDAxMTA0MDE0WhcNMzMxMDAxMjM1OTU5WjCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lz +dGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBD +ZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDIwggEiMA0GCSqGSIb3 +DQEBAQUAA4IBDwAwggEKAoIBAQCqX9obX+hzkeXaXPSi5kfl82hVYAUdAqSzm1nzHoqvNK38DcLZ +SBnuaY/JIPwhqgcZ7bBcrGXHX+0CfHt8LRvWurmAwhiCFoT6ZrAIxlQjgeTNuUk/9k9uN0goOA/F +vudocP05l03Sx5iRUKrERLMjfTlH6VJi1hKTXrcxlkIF+3anHqP1wvzpesVsqXFP6st4vGCvx970 +2cu+fjOlbpSD8DT6IavqjnKgP6TeMFvvhk1qlVtDRKgQFRzlAVfFmPHmBiiRqiDFt1MmUUOyCxGV +WOHAD3bZwI18gfNycJ5v/hqO2V81xrJvNHy+SE/iWjnX2J14np+GPgNeGYtEotXHAgMBAAGjQjBA +MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS/WSA2AHmgoCJrjNXy +YdK4LMuCSjANBgkqhkiG9w0BAQsFAAOCAQEAMQOiYQsfdOhyNsZt+U2e+iKo4YFWz827n+qrkRk4 +r6p8FU3ztqONpfSO9kSpp+ghla0+AGIWiPACuvxhI+YzmzB6azZie60EI4RYZeLbK4rnJVM3YlNf +vNoBYimipidx5joifsFvHZVwIEoHNN/q/xWA5brXethbdXwFeilHfkCoMRN3zUA7tFFHei4R40cR +3p1m0IvVVGb6g1XqfMIpiRvpb7PO4gWEyS8+eIVibslfwXhjdFjASBgMmTnrpMwatXlajRWc2BQN +9noHV8cigwUtPJslJj0Ys6lDfMjIq2SPDqO/nBudMNva0Bkuqjzx+zOAduTNrRlPBSeOE6Fuwg== +-----END CERTIFICATE----- + +Atos TrustedRoot 2011 +===================== +-----BEGIN CERTIFICATE----- +MIIDdzCCAl+gAwIBAgIIXDPLYixfszIwDQYJKoZIhvcNAQELBQAwPDEeMBwGA1UEAwwVQXRvcyBU +cnVzdGVkUm9vdCAyMDExMQ0wCwYDVQQKDARBdG9zMQswCQYDVQQGEwJERTAeFw0xMTA3MDcxNDU4 +MzBaFw0zMDEyMzEyMzU5NTlaMDwxHjAcBgNVBAMMFUF0b3MgVHJ1c3RlZFJvb3QgMjAxMTENMAsG +A1UECgwEQXRvczELMAkGA1UEBhMCREUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCV +hTuXbyo7LjvPpvMpNb7PGKw+qtn4TaA+Gke5vJrf8v7MPkfoepbCJI419KkM/IL9bcFyYie96mvr +54rMVD6QUM+A1JX76LWC1BTFtqlVJVfbsVD2sGBkWXppzwO3bw2+yj5vdHLqqjAqc2K+SZFhyBH+ +DgMq92og3AIVDV4VavzjgsG1xZ1kCWyjWZgHJ8cblithdHFsQ/H3NYkQ4J7sVaE3IqKHBAUsR320 +HLliKWYoyrfhk/WklAOZuXCFteZI6o1Q/NnezG8HDt0Lcp2AMBYHlT8oDv3FdU9T1nSatCQujgKR +z3bFmx5VdJx4IbHwLfELn8LVlhgf8FQieowHAgMBAAGjfTB7MB0GA1UdDgQWBBSnpQaxLKYJYO7R +l+lwrrw7GWzbITAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFKelBrEspglg7tGX6XCuvDsZ +bNshMBgGA1UdIAQRMA8wDQYLKwYBBAGwLQMEAQEwDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEB +CwUAA4IBAQAmdzTblEiGKkGdLD4GkGDEjKwLVLgfuXvTBznk+j57sj1O7Z8jvZfza1zv7v1Apt+h +k6EKhqzvINB5Ab149xnYJDE0BAGmuhWawyfc2E8PzBhj/5kPDpFrdRbhIfzYJsdHt6bPWHJxfrrh +TZVHO8mvbaG0weyJ9rQPOLXiZNwlz6bb65pcmaHFCN795trV1lpFDMS3wrUU77QR/w4VtfX128a9 +61qn8FYiqTxlVMYVqL2Gns2Dlmh6cYGJ4Qvh6hEbaAjMaZ7snkGeRDImeuKHCnE96+RapNLbxc3G +3mB/ufNPRJLvKrcYPqcZ2Qt9sTdBQrC6YB3y/gkRsPCHe6ed +-----END CERTIFICATE----- + +QuoVadis Root CA 1 G3 +===================== +-----BEGIN CERTIFICATE----- +MIIFYDCCA0igAwIBAgIUeFhfLq0sGUvjNwc1NBMotZbUZZMwDQYJKoZIhvcNAQELBQAwSDELMAkG +A1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAcBgNVBAMTFVF1b1ZhZGlzIFJv +b3QgQ0EgMSBHMzAeFw0xMjAxMTIxNzI3NDRaFw00MjAxMTIxNzI3NDRaMEgxCzAJBgNVBAYTAkJN +MRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDEg +RzMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCgvlAQjunybEC0BJyFuTHK3C3kEakE +PBtVwedYMB0ktMPvhd6MLOHBPd+C5k+tR4ds7FtJwUrVu4/sh6x/gpqG7D0DmVIB0jWerNrwU8lm +PNSsAgHaJNM7qAJGr6Qc4/hzWHa39g6QDbXwz8z6+cZM5cOGMAqNF34168Xfuw6cwI2H44g4hWf6 +Pser4BOcBRiYz5P1sZK0/CPTz9XEJ0ngnjybCKOLXSoh4Pw5qlPafX7PGglTvF0FBM+hSo+LdoIN +ofjSxxR3W5A2B4GbPgb6Ul5jxaYA/qXpUhtStZI5cgMJYr2wYBZupt0lwgNm3fME0UDiTouG9G/l +g6AnhF4EwfWQvTA9xO+oabw4m6SkltFi2mnAAZauy8RRNOoMqv8hjlmPSlzkYZqn0ukqeI1RPToV +7qJZjqlc3sX5kCLliEVx3ZGZbHqfPT2YfF72vhZooF6uCyP8Wg+qInYtyaEQHeTTRCOQiJ/GKubX +9ZqzWB4vMIkIG1SitZgj7Ah3HJVdYdHLiZxfokqRmu8hqkkWCKi9YSgxyXSthfbZxbGL0eUQMk1f +iyA6PEkfM4VZDdvLCXVDaXP7a3F98N/ETH3Goy7IlXnLc6KOTk0k+17kBL5yG6YnLUlamXrXXAkg +t3+UuU/xDRxeiEIbEbfnkduebPRq34wGmAOtzCjvpUfzUwIDAQABo0IwQDAPBgNVHRMBAf8EBTAD +AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUo5fW816iEOGrRZ88F2Q87gFwnMwwDQYJKoZI +hvcNAQELBQADggIBABj6W3X8PnrHX3fHyt/PX8MSxEBd1DKquGrX1RUVRpgjpeaQWxiZTOOtQqOC +MTaIzen7xASWSIsBx40Bz1szBpZGZnQdT+3Btrm0DWHMY37XLneMlhwqI2hrhVd2cDMT/uFPpiN3 +GPoajOi9ZcnPP/TJF9zrx7zABC4tRi9pZsMbj/7sPtPKlL92CiUNqXsCHKnQO18LwIE6PWThv6ct +Tr1NxNgpxiIY0MWscgKCP6o6ojoilzHdCGPDdRS5YCgtW2jgFqlmgiNR9etT2DGbe+m3nUvriBbP ++V04ikkwj+3x6xn0dxoxGE1nVGwvb2X52z3sIexe9PSLymBlVNFxZPT5pqOBMzYzcfCkeF9OrYMh +3jRJjehZrJ3ydlo28hP0r+AJx2EqbPfgna67hkooby7utHnNkDPDs3b69fBsnQGQ+p6Q9pxyz0fa +wx/kNSBT8lTR32GDpgLiJTjehTItXnOQUl1CxM49S+H5GYQd1aJQzEH7QRTDvdbJWqNjZgKAvQU6 +O0ec7AAmTPWIUb+oI38YB7AL7YsmoWTTYUrrXJ/es69nA7Mf3W1daWhpq1467HxpvMc7hU6eFbm0 +FU/DlXpY18ls6Wy58yljXrQs8C097Vpl4KlbQMJImYFtnh8GKjwStIsPm6Ik8KaN1nrgS7ZklmOV +hMJKzRwuJIczYOXD +-----END CERTIFICATE----- + +QuoVadis Root CA 2 G3 +===================== +-----BEGIN CERTIFICATE----- +MIIFYDCCA0igAwIBAgIURFc0JFuBiZs18s64KztbpybwdSgwDQYJKoZIhvcNAQELBQAwSDELMAkG +A1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAcBgNVBAMTFVF1b1ZhZGlzIFJv +b3QgQ0EgMiBHMzAeFw0xMjAxMTIxODU5MzJaFw00MjAxMTIxODU5MzJaMEgxCzAJBgNVBAYTAkJN +MRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDIg +RzMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQChriWyARjcV4g/Ruv5r+LrI3HimtFh +ZiFfqq8nUeVuGxbULX1QsFN3vXg6YOJkApt8hpvWGo6t/x8Vf9WVHhLL5hSEBMHfNrMWn4rjyduY +NM7YMxcoRvynyfDStNVNCXJJ+fKH46nafaF9a7I6JaltUkSs+L5u+9ymc5GQYaYDFCDy54ejiK2t +oIz/pgslUiXnFgHVy7g1gQyjO/Dh4fxaXc6AcW34Sas+O7q414AB+6XrW7PFXmAqMaCvN+ggOp+o +MiwMzAkd056OXbxMmO7FGmh77FOm6RQ1o9/NgJ8MSPsc9PG/Srj61YxxSscfrf5BmrODXfKEVu+l +V0POKa2Mq1W/xPtbAd0jIaFYAI7D0GoT7RPjEiuA3GfmlbLNHiJuKvhB1PLKFAeNilUSxmn1uIZo +L1NesNKqIcGY5jDjZ1XHm26sGahVpkUG0CM62+tlXSoREfA7T8pt9DTEceT/AFr2XK4jYIVz8eQQ +sSWu1ZK7E8EM4DnatDlXtas1qnIhO4M15zHfeiFuuDIIfR0ykRVKYnLP43ehvNURG3YBZwjgQQvD +6xVu+KQZ2aKrr+InUlYrAoosFCT5v0ICvybIxo/gbjh9Uy3l7ZizlWNof/k19N+IxWA1ksB8aRxh +lRbQ694Lrz4EEEVlWFA4r0jyWbYW8jwNkALGcC4BrTwV1wIDAQABo0IwQDAPBgNVHRMBAf8EBTAD +AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU7edvdlq/YOxJW8ald7tyFnGbxD0wDQYJKoZI +hvcNAQELBQADggIBAJHfgD9DCX5xwvfrs4iP4VGyvD11+ShdyLyZm3tdquXK4Qr36LLTn91nMX66 +AarHakE7kNQIXLJgapDwyM4DYvmL7ftuKtwGTTwpD4kWilhMSA/ohGHqPHKmd+RCroijQ1h5fq7K +pVMNqT1wvSAZYaRsOPxDMuHBR//47PERIjKWnML2W2mWeyAMQ0GaW/ZZGYjeVYg3UQt4XAoeo0L9 +x52ID8DyeAIkVJOviYeIyUqAHerQbj5hLja7NQ4nlv1mNDthcnPxFlxHBlRJAHpYErAK74X9sbgz +dWqTHBLmYF5vHX/JHyPLhGGfHoJE+V+tYlUkmlKY7VHnoX6XOuYvHxHaU4AshZ6rNRDbIl9qxV6X +U/IyAgkwo1jwDQHVcsaxfGl7w/U2Rcxhbl5MlMVerugOXou/983g7aEOGzPuVBj+D77vfoRrQ+Nw +mNtddbINWQeFFSM51vHfqSYP1kjHs6Yi9TM3WpVHn3u6GBVv/9YUZINJ0gpnIdsPNWNgKCLjsZWD +zYWm3S8P52dSbrsvhXz1SnPnxT7AvSESBT/8twNJAlvIJebiVDj1eYeMHVOyToV7BjjHLPj4sHKN +JeV3UvQDHEimUF+IIDBu8oJDqz2XhOdT+yHBTw8imoa4WSr2Rz0ZiC3oheGe7IUIarFsNMkd7Egr +O3jtZsSOeWmD3n+M +-----END CERTIFICATE----- + +QuoVadis Root CA 3 G3 +===================== +-----BEGIN CERTIFICATE----- +MIIFYDCCA0igAwIBAgIULvWbAiin23r/1aOp7r0DoM8Sah0wDQYJKoZIhvcNAQELBQAwSDELMAkG +A1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAcBgNVBAMTFVF1b1ZhZGlzIFJv +b3QgQ0EgMyBHMzAeFw0xMjAxMTIyMDI2MzJaFw00MjAxMTIyMDI2MzJaMEgxCzAJBgNVBAYTAkJN +MRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDMg +RzMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCzyw4QZ47qFJenMioKVjZ/aEzHs286 +IxSR/xl/pcqs7rN2nXrpixurazHb+gtTTK/FpRp5PIpM/6zfJd5O2YIyC0TeytuMrKNuFoM7pmRL +Mon7FhY4futD4tN0SsJiCnMK3UmzV9KwCoWdcTzeo8vAMvMBOSBDGzXRU7Ox7sWTaYI+FrUoRqHe +6okJ7UO4BUaKhvVZR74bbwEhELn9qdIoyhA5CcoTNs+cra1AdHkrAj80//ogaX3T7mH1urPnMNA3 +I4ZyYUUpSFlob3emLoG+B01vr87ERRORFHAGjx+f+IdpsQ7vw4kZ6+ocYfx6bIrc1gMLnia6Et3U +VDmrJqMz6nWB2i3ND0/kA9HvFZcba5DFApCTZgIhsUfei5pKgLlVj7WiL8DWM2fafsSntARE60f7 +5li59wzweyuxwHApw0BiLTtIadwjPEjrewl5qW3aqDCYz4ByA4imW0aucnl8CAMhZa634RylsSqi +Md5mBPfAdOhx3v89WcyWJhKLhZVXGqtrdQtEPREoPHtht+KPZ0/l7DxMYIBpVzgeAVuNVejH38DM +dyM0SXV89pgR6y3e7UEuFAUCf+D+IOs15xGsIs5XPd7JMG0QA4XN8f+MFrXBsj6IbGB/kE+V9/Yt +rQE5BwT6dYB9v0lQ7e/JxHwc64B+27bQ3RP+ydOc17KXqQIDAQABo0IwQDAPBgNVHRMBAf8EBTAD +AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUxhfQvKjqAkPyGwaZXSuQILnXnOQwDQYJKoZI +hvcNAQELBQADggIBADRh2Va1EodVTd2jNTFGu6QHcrxfYWLopfsLN7E8trP6KZ1/AvWkyaiTt3px +KGmPc+FSkNrVvjrlt3ZqVoAh313m6Tqe5T72omnHKgqwGEfcIHB9UqM+WXzBusnIFUBhynLWcKzS +t/Ac5IYp8M7vaGPQtSCKFWGafoaYtMnCdvvMujAWzKNhxnQT5WvvoxXqA/4Ti2Tk08HS6IT7SdEQ +TXlm66r99I0xHnAUrdzeZxNMgRVhvLfZkXdxGYFgu/BYpbWcC/ePIlUnwEsBbTuZDdQdm2NnL9Du +DcpmvJRPpq3t/O5jrFc/ZSXPsoaP0Aj/uHYUbt7lJ+yreLVTubY/6CD50qi+YUbKh4yE8/nxoGib +Ih6BJpsQBJFxwAYf3KDTuVan45gtf4Od34wrnDKOMpTwATwiKp9Dwi7DmDkHOHv8XgBCH/MyJnmD +hPbl8MFREsALHgQjDFSlTC9JxUrRtm5gDWv8a4uFJGS3iQ6rJUdbPM9+Sb3H6QrG2vd+DhcI00iX +0HGS8A85PjRqHH3Y8iKuu2n0M7SmSFXRDw4m6Oy2Cy2nhTXN/VnIn9HNPlopNLk9hM6xZdRZkZFW +dSHBd575euFgndOtBBj0fOtek49TSiIp+EgrPk2GrFt/ywaZWWDYWGWVjUTR939+J399roD1B0y2 +PpxxVJkES/1Y+Zj0 +-----END CERTIFICATE----- + +DigiCert Assured ID Root G2 +=========================== +-----BEGIN CERTIFICATE----- +MIIDljCCAn6gAwIBAgIQC5McOtY5Z+pnI7/Dr5r0SzANBgkqhkiG9w0BAQsFADBlMQswCQYDVQQG +EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQw +IgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzIwHhcNMTMwODAxMTIwMDAwWhcNMzgw +MTE1MTIwMDAwWjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQL +ExB3d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzIw +ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ5ygvUj82ckmIkzTz+GoeMVSAn61UQbVH +35ao1K+ALbkKz3X9iaV9JPrjIgwrvJUXCzO/GU1BBpAAvQxNEP4HteccbiJVMWWXvdMX0h5i89vq +bFCMP4QMls+3ywPgym2hFEwbid3tALBSfK+RbLE4E9HpEgjAALAcKxHad3A2m67OeYfcgnDmCXRw +VWmvo2ifv922ebPynXApVfSr/5Vh88lAbx3RvpO704gqu52/clpWcTs/1PPRCv4o76Pu2ZmvA9OP +YLfykqGxvYmJHzDNw6YuYjOuFgJ3RFrngQo8p0Quebg/BLxcoIfhG69Rjs3sLPr4/m3wOnyqi+Rn +lTGNAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBTO +w0q5mVXyuNtgv6l+vVa1lzan1jANBgkqhkiG9w0BAQsFAAOCAQEAyqVVjOPIQW5pJ6d1Ee88hjZv +0p3GeDgdaZaikmkuOGybfQTUiaWxMTeKySHMq2zNixya1r9I0jJmwYrA8y8678Dj1JGG0VDjA9tz +d29KOVPt3ibHtX2vK0LRdWLjSisCx1BL4GnilmwORGYQRI+tBev4eaymG+g3NJ1TyWGqolKvSnAW +hsI6yLETcDbYz+70CjTVW0z9B5yiutkBclzzTcHdDrEcDcRjvq30FPuJ7KJBDkzMyFdA0G4Dqs0M +jomZmWzwPDCvON9vvKO+KSAnq3T/EyJ43pdSVR6DtVQgA+6uwE9W3jfMw3+qBCe703e4YtsXfJwo +IhNzbM8m9Yop5w== +-----END CERTIFICATE----- + +DigiCert Assured ID Root G3 +=========================== +-----BEGIN CERTIFICATE----- +MIICRjCCAc2gAwIBAgIQC6Fa+h3foLVJRK/NJKBs7DAKBggqhkjOPQQDAzBlMQswCQYDVQQGEwJV +UzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQwIgYD +VQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzMwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1 +MTIwMDAwWjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 +d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzMwdjAQ +BgcqhkjOPQIBBgUrgQQAIgNiAAQZ57ysRGXtzbg/WPuNsVepRC0FFfLvC/8QdJ+1YlJfZn4f5dwb +RXkLzMZTCp2NXQLZqVneAlr2lSoOjThKiknGvMYDOAdfVdp+CW7if17QRSAPWXYQ1qAk8C3eNvJs +KTmjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBTL0L2p4ZgF +UaFNN6KDec6NHSrkhDAKBggqhkjOPQQDAwNnADBkAjAlpIFFAmsSS3V0T8gj43DydXLefInwz5Fy +YZ5eEJJZVrmDxxDnOOlYJjZ91eQ0hjkCMHw2U/Aw5WJjOpnitqM7mzT6HtoQknFekROn3aRukswy +1vUhZscv6pZjamVFkpUBtA== +-----END CERTIFICATE----- + +DigiCert Global Root G2 +======================= +-----BEGIN CERTIFICATE----- +MIIDjjCCAnagAwIBAgIQAzrx5qcRqaC7KGSxHQn65TANBgkqhkiG9w0BAQsFADBhMQswCQYDVQQG +EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAw +HgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBHMjAeFw0xMzA4MDExMjAwMDBaFw0zODAxMTUx +MjAwMDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3 +dy5kaWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEcyMIIBIjANBgkq +hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuzfNNNx7a8myaJCtSnX/RrohCgiN9RlUyfuI2/Ou8jqJ +kTx65qsGGmvPrC3oXgkkRLpimn7Wo6h+4FR1IAWsULecYxpsMNzaHxmx1x7e/dfgy5SDN67sH0NO +3Xss0r0upS/kqbitOtSZpLYl6ZtrAGCSYP9PIUkY92eQq2EGnI/yuum06ZIya7XzV+hdG82MHauV +BJVJ8zUtluNJbd134/tJS7SsVQepj5WztCO7TG1F8PapspUwtP1MVYwnSlcUfIKdzXOS0xZKBgyM +UNGPHgm+F6HmIcr9g+UQvIOlCsRnKPZzFBQ9RnbDhxSJITRNrw9FDKZJobq7nMWxM4MphQIDAQAB +o0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUTiJUIBiV5uNu +5g/6+rkS7QYXjzkwDQYJKoZIhvcNAQELBQADggEBAGBnKJRvDkhj6zHd6mcY1Yl9PMWLSn/pvtsr +F9+wX3N3KjITOYFnQoQj8kVnNeyIv/iPsGEMNKSuIEyExtv4NeF22d+mQrvHRAiGfzZ0JFrabA0U +WTW98kndth/Jsw1HKj2ZL7tcu7XUIOGZX1NGFdtom/DzMNU+MeKNhJ7jitralj41E6Vf8PlwUHBH +QRFXGU7Aj64GxJUTFy8bJZ918rGOmaFvE7FBcf6IKshPECBV1/MUReXgRPTqh5Uykw7+U0b6LJ3/ +iyK5S9kJRaTepLiaWN0bfVKfjllDiIGknibVb63dDcY3fe0Dkhvld1927jyNxF1WW6LZZm6zNTfl +MrY= +-----END CERTIFICATE----- + +DigiCert Global Root G3 +======================= +-----BEGIN CERTIFICATE----- +MIICPzCCAcWgAwIBAgIQBVVWvPJepDU1w6QP1atFcjAKBggqhkjOPQQDAzBhMQswCQYDVQQGEwJV +UzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAwHgYD +VQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBHMzAeFw0xMzA4MDExMjAwMDBaFw0zODAxMTUxMjAw +MDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5k +aWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEczMHYwEAYHKoZIzj0C +AQYFK4EEACIDYgAE3afZu4q4C/sLfyHS8L6+c/MzXRq8NOrexpu80JX28MzQC7phW1FGfp4tn+6O +YwwX7Adw9c+ELkCDnOg/QW07rdOkFFk2eJ0DQ+4QE2xy3q6Ip6FrtUPOZ9wj/wMco+I+o0IwQDAP +BgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUs9tIpPmhxdiuNkHMEWNp +Yim8S8YwCgYIKoZIzj0EAwMDaAAwZQIxAK288mw/EkrRLTnDCgmXc/SINoyIJ7vmiI1Qhadj+Z4y +3maTD/HMsQmP3Wyr+mt/oAIwOWZbwmSNuJ5Q3KjVSaLtx9zRSX8XAbjIho9OjIgrqJqpisXRAL34 +VOKa5Vt8sycX +-----END CERTIFICATE----- + +DigiCert Trusted Root G4 +======================== +-----BEGIN CERTIFICATE----- +MIIFkDCCA3igAwIBAgIQBZsbV56OITLiOQe9p3d1XDANBgkqhkiG9w0BAQwFADBiMQswCQYDVQQG +EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSEw +HwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3QgRzQwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1 +MTIwMDAwWjBiMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 +d3cuZGlnaWNlcnQuY29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3QgRzQwggIiMA0G +CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC/5pBzaN675F1KPDAiMGkz7MKnJS7JIT3yithZwuEp +pz1Yq3aaza57G4QNxDAf8xukOBbrVsaXbR2rsnnyyhHS5F/WBTxSD1Ifxp4VpX6+n6lXFllVcq9o +k3DCsrp1mWpzMpTREEQQLt+C8weE5nQ7bXHiLQwb7iDVySAdYyktzuxeTsiT+CFhmzTrBcZe7Fsa +vOvJz82sNEBfsXpm7nfISKhmV1efVFiODCu3T6cw2Vbuyntd463JT17lNecxy9qTXtyOj4DatpGY +QJB5w3jHtrHEtWoYOAMQjdjUN6QuBX2I9YI+EJFwq1WCQTLX2wRzKm6RAXwhTNS8rhsDdV14Ztk6 +MUSaM0C/CNdaSaTC5qmgZ92kJ7yhTzm1EVgX9yRcRo9k98FpiHaYdj1ZXUJ2h4mXaXpI8OCiEhtm +mnTK3kse5w5jrubU75KSOp493ADkRSWJtppEGSt+wJS00mFt6zPZxd9LBADMfRyVw4/3IbKyEbe7 +f/LVjHAsQWCqsWMYRJUadmJ+9oCw++hkpjPRiQfhvbfmQ6QYuKZ3AeEPlAwhHbJUKSWJbOUOUlFH +dL4mrLZBdd56rF+NP8m800ERElvlEFDrMcXKchYiCd98THU/Y+whX8QgUWtvsauGi0/C1kVfnSD8 +oR7FwI+isX4KJpn15GkvmB0t9dmpsh3lGwIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1Ud +DwEB/wQEAwIBhjAdBgNVHQ4EFgQU7NfjgtJxXWRM3y5nP+e6mK4cD08wDQYJKoZIhvcNAQEMBQAD +ggIBALth2X2pbL4XxJEbw6GiAI3jZGgPVs93rnD5/ZpKmbnJeFwMDF/k5hQpVgs2SV1EY+CtnJYY +ZhsjDT156W1r1lT40jzBQ0CuHVD1UvyQO7uYmWlrx8GnqGikJ9yd+SeuMIW59mdNOj6PWTkiU0Tr +yF0Dyu1Qen1iIQqAyHNm0aAFYF/opbSnr6j3bTWcfFqK1qI4mfN4i/RN0iAL3gTujJtHgXINwBQy +7zBZLq7gcfJW5GqXb5JQbZaNaHqasjYUegbyJLkJEVDXCLG4iXqEI2FCKeWjzaIgQdfRnGTZ6iah +ixTXTBmyUEFxPT9NcCOGDErcgdLMMpSEDQgJlxxPwO5rIHQw0uA5NBCFIRUBCOhVMt5xSdkoF1BN +5r5N0XWs0Mr7QbhDparTwwVETyw2m+L64kW4I1NsBm9nVX9GtUw/bihaeSbSpKhil9Ie4u1Ki7wb +/UdKDd9nZn6yW0HQO+T0O/QEY+nvwlQAUaCKKsnOeMzV6ocEGLPOr0mIr/OSmbaz5mEP0oUA51Aa +5BuVnRmhuZyxm7EAHu/QD09CbMkKvO5D+jpxpchNJqU1/YldvIViHTLSoCtU7ZpXwdv6EM8Zt4tK +G48BtieVU+i2iW1bvGjUI+iLUaJW+fCmgKDWHrO8Dw9TdSmq6hN35N6MgSGtBxBHEa2HPQfRdbzP +82Z+ +-----END CERTIFICATE----- + +COMODO RSA Certification Authority +================================== +-----BEGIN CERTIFICATE----- +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 +LaZRfyHBNVOFBkpdn627G190 +-----END CERTIFICATE----- + +USERTrust RSA Certification Authority +===================================== +-----BEGIN CERTIFICATE----- +MIIF3jCCA8agAwIBAgIQAf1tMPyjylGoG7xkDjUDLTANBgkqhkiG9w0BAQwFADCBiDELMAkGA1UE +BhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQK +ExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBSU0EgQ2VydGlmaWNh +dGlvbiBBdXRob3JpdHkwHhcNMTAwMjAxMDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBiDELMAkGA1UE +BhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQK +ExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBSU0EgQ2VydGlmaWNh +dGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCAEmUXNg7D2wiz +0KxXDXbtzSfTTK1Qg2HiqiBNCS1kCdzOiZ/MPans9s/B3PHTsdZ7NygRK0faOca8Ohm0X6a9fZ2j +Y0K2dvKpOyuR+OJv0OwWIJAJPuLodMkYtJHUYmTbf6MG8YgYapAiPLz+E/CHFHv25B+O1ORRxhFn +RghRy4YUVD+8M/5+bJz/Fp0YvVGONaanZshyZ9shZrHUm3gDwFA66Mzw3LyeTP6vBZY1H1dat//O ++T23LLb2VN3I5xI6Ta5MirdcmrS3ID3KfyI0rn47aGYBROcBTkZTmzNg95S+UzeQc0PzMsNT79uq +/nROacdrjGCT3sTHDN/hMq7MkztReJVni+49Vv4M0GkPGw/zJSZrM233bkf6c0Plfg6lZrEpfDKE +Y1WJxA3Bk1QwGROs0303p+tdOmw1XNtB1xLaqUkL39iAigmTYo61Zs8liM2EuLE/pDkP2QKe6xJM +lXzzawWpXhaDzLhn4ugTncxbgtNMs+1b/97lc6wjOy0AvzVVdAlJ2ElYGn+SNuZRkg7zJn0cTRe8 +yexDJtC/QV9AqURE9JnnV4eeUB9XVKg+/XRjL7FQZQnmWEIuQxpMtPAlR1n6BB6T1CZGSlCBst6+ +eLf8ZxXhyVeEHg9j1uliutZfVS7qXMYoCAQlObgOK6nyTJccBz8NUvXt7y+CDwIDAQABo0IwQDAd +BgNVHQ4EFgQUU3m/WqorSs9UgOHYm8Cd8rIDZsswDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQF +MAMBAf8wDQYJKoZIhvcNAQEMBQADggIBAFzUfA3P9wF9QZllDHPFUp/L+M+ZBn8b2kMVn54CVVeW +FPFSPCeHlCjtHzoBN6J2/FNQwISbxmtOuowhT6KOVWKR82kV2LyI48SqC/3vqOlLVSoGIG1VeCkZ +7l8wXEskEVX/JJpuXior7gtNn3/3ATiUFJVDBwn7YKnuHKsSjKCaXqeYalltiz8I+8jRRa8YFWSQ +Eg9zKC7F4iRO/Fjs8PRF/iKz6y+O0tlFYQXBl2+odnKPi4w2r78NBc5xjeambx9spnFixdjQg3IM +8WcRiQycE0xyNN+81XHfqnHd4blsjDwSXWXavVcStkNr/+XeTWYRUc+ZruwXtuhxkYzeSf7dNXGi +FSeUHM9h4ya7b6NnJSFd5t0dCy5oGzuCr+yDZ4XUmFF0sbmZgIn/f3gZXHlKYC6SQK5MNyosycdi +yA5d9zZbyuAlJQG03RoHnHcAP9Dc1ew91Pq7P8yF1m9/qS3fuQL39ZeatTXaw2ewh0qpKJ4jjv9c +J2vhsE/zB+4ALtRZh8tSQZXq9EfX7mRBVXyNWQKV3WKdwrnuWih0hKWbt5DHDAff9Yk2dDLWKMGw +sAvgnEzDHNb842m1R0aBL6KCq9NjRHDEjf8tM7qtj3u1cIiuPhnPQCjY/MiQu12ZIvVS5ljFH4gx +Q+6IHdfGjjxDah2nGN59PRbxYvnKkKj9 +-----END CERTIFICATE----- + +USERTrust ECC Certification Authority +===================================== +-----BEGIN CERTIFICATE----- +MIICjzCCAhWgAwIBAgIQXIuZxVqUxdJxVt7NiYDMJjAKBggqhkjOPQQDAzCBiDELMAkGA1UEBhMC +VVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQKExVU +aGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBFQ0MgQ2VydGlmaWNhdGlv +biBBdXRob3JpdHkwHhcNMTAwMjAxMDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBiDELMAkGA1UEBhMC +VVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQKExVU +aGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBFQ0MgQ2VydGlmaWNhdGlv +biBBdXRob3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQarFRaqfloI+d61SRvU8Za2EurxtW2 +0eZzca7dnNYMYf3boIkDuAUU7FfO7l0/4iGzzvfUinngo4N+LZfQYcTxmdwlkWOrfzCjtHDix6Ez +nPO/LlxTsV+zfTJ/ijTjeXmjQjBAMB0GA1UdDgQWBBQ64QmG1M8ZwpZ2dEl23OA1xmNjmjAOBgNV +HQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjA2Z6EWCNzklwBB +HU6+4WMBzzuqQhFkoJ2UOQIReVx7Hfpkue4WQrO/isIJxOzksU0CMQDpKmFHjFJKS04YcPbWRNZu +9YO6bVi9JNlWSOrvxKJGgYhqOkbRqZtNyWHa0V1Xahg= +-----END CERTIFICATE----- + +GlobalSign ECC Root CA - R5 +=========================== +-----BEGIN CERTIFICATE----- +MIICHjCCAaSgAwIBAgIRYFlJ4CYuu1X5CneKcflK2GwwCgYIKoZIzj0EAwMwUDEkMCIGA1UECxMb +R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI1MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD +EwpHbG9iYWxTaWduMB4XDTEyMTExMzAwMDAwMFoXDTM4MDExOTAzMTQwN1owUDEkMCIGA1UECxMb +R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI1MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD +EwpHbG9iYWxTaWduMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAER0UOlvt9Xb/pOdEh+J8LttV7HpI6 +SFkc8GIxLcB6KP4ap1yztsyX50XUWPrRd21DosCHZTQKH3rd6zwzocWdTaRvQZU4f8kehOvRnkmS +h5SHDDqFSmafnVmTTZdhBoZKo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAd +BgNVHQ4EFgQUPeYpSJvqB8ohREom3m7e0oPQn1kwCgYIKoZIzj0EAwMDaAAwZQIxAOVpEslu28Yx +uglB4Zf4+/2a4n0Sye18ZNPLBSWLVtmg515dTguDnFt2KaAJJiFqYgIwcdK1j1zqO+F4CYWodZI7 +yFz9SO8NdCKoCOJuxUnOxwy8p2Fp8fc74SrL+SvzZpA3 +-----END CERTIFICATE----- + +Staat der Nederlanden EV Root CA +================================ +-----BEGIN CERTIFICATE----- +MIIFcDCCA1igAwIBAgIEAJiWjTANBgkqhkiG9w0BAQsFADBYMQswCQYDVQQGEwJOTDEeMBwGA1UE +CgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSkwJwYDVQQDDCBTdGFhdCBkZXIgTmVkZXJsYW5kZW4g +RVYgUm9vdCBDQTAeFw0xMDEyMDgxMTE5MjlaFw0yMjEyMDgxMTEwMjhaMFgxCzAJBgNVBAYTAk5M +MR4wHAYDVQQKDBVTdGFhdCBkZXIgTmVkZXJsYW5kZW4xKTAnBgNVBAMMIFN0YWF0IGRlciBOZWRl +cmxhbmRlbiBFViBSb290IENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA48d+ifkk +SzrSM4M1LGns3Amk41GoJSt5uAg94JG6hIXGhaTK5skuU6TJJB79VWZxXSzFYGgEt9nCUiY4iKTW +O0Cmws0/zZiTs1QUWJZV1VD+hq2kY39ch/aO5ieSZxeSAgMs3NZmdO3dZ//BYY1jTw+bbRcwJu+r +0h8QoPnFfxZpgQNH7R5ojXKhTbImxrpsX23Wr9GxE46prfNeaXUmGD5BKyF/7otdBwadQ8QpCiv8 +Kj6GyzyDOvnJDdrFmeK8eEEzduG/L13lpJhQDBXd4Pqcfzho0LKmeqfRMb1+ilgnQ7O6M5HTp5gV +XJrm0w912fxBmJc+qiXbj5IusHsMX/FjqTf5m3VpTCgmJdrV8hJwRVXj33NeN/UhbJCONVrJ0yPr +08C+eKxCKFhmpUZtcALXEPlLVPxdhkqHz3/KRawRWrUgUY0viEeXOcDPusBCAUCZSCELa6fS/ZbV +0b5GnUngC6agIk440ME8MLxwjyx1zNDFjFE7PZQIZCZhfbnDZY8UnCHQqv0XcgOPvZuM5l5Tnrmd +74K74bzickFbIZTTRTeU0d8JOV3nI6qaHcptqAqGhYqCvkIH1vI4gnPah1vlPNOePqc7nvQDs/nx +fRN0Av+7oeX6AHkcpmZBiFxgV6YuCcS6/ZrPpx9Aw7vMWgpVSzs4dlG4Y4uElBbmVvMCAwEAAaNC +MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFP6rAJCYniT8qcwa +ivsnuL8wbqg7MA0GCSqGSIb3DQEBCwUAA4ICAQDPdyxuVr5Os7aEAJSrR8kN0nbHhp8dB9O2tLsI +eK9p0gtJ3jPFrK3CiAJ9Brc1AsFgyb/E6JTe1NOpEyVa/m6irn0F3H3zbPB+po3u2dfOWBfoqSmu +c0iH55vKbimhZF8ZE/euBhD/UcabTVUlT5OZEAFTdfETzsemQUHSv4ilf0X8rLiltTMMgsT7B/Zq +5SWEXwbKwYY5EdtYzXc7LMJMD16a4/CrPmEbUCTCwPTxGfARKbalGAKb12NMcIxHowNDXLldRqAN +b/9Zjr7dn3LDWyvfjFvO5QxGbJKyCqNMVEIYFRIYvdr8unRu/8G2oGTYqV9Vrp9canaW2HNnh/tN +f1zuacpzEPuKqf2evTY4SUmH9A4U8OmHuD+nT3pajnnUk+S7aFKErGzp85hwVXIy+TSrK0m1zSBi +5Dp6Z2Orltxtrpfs/J92VoguZs9btsmksNcFuuEnL5O7Jiqik7Ab846+HUCjuTaPPoIaGl6I6lD4 +WeKDRikL40Rc4ZW2aZCaFG+XroHPaO+Zmr615+F/+PoTRxZMzG0IQOeLeG9QgkRQP2YGiqtDhFZK +DyAthg710tvSeopLzaXoTvFeJiUBWSOgftL2fiFX1ye8FVdMpEbB4IMeDExNH08GGeL5qPQ6gqGy +eUN51q1veieQA6TqJIc/2b3Z6fJfUEkc7uzXLg== +-----END CERTIFICATE----- + +IdenTrust Commercial Root CA 1 +============================== +-----BEGIN CERTIFICATE----- +MIIFYDCCA0igAwIBAgIQCgFCgAAAAUUjyES1AAAAAjANBgkqhkiG9w0BAQsFADBKMQswCQYDVQQG +EwJVUzESMBAGA1UEChMJSWRlblRydXN0MScwJQYDVQQDEx5JZGVuVHJ1c3QgQ29tbWVyY2lhbCBS +b290IENBIDEwHhcNMTQwMTE2MTgxMjIzWhcNMzQwMTE2MTgxMjIzWjBKMQswCQYDVQQGEwJVUzES +MBAGA1UEChMJSWRlblRydXN0MScwJQYDVQQDEx5JZGVuVHJ1c3QgQ29tbWVyY2lhbCBSb290IENB +IDEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCnUBneP5k91DNG8W9RYYKyqU+PZ4ld +hNlT3Qwo2dfw/66VQ3KZ+bVdfIrBQuExUHTRgQ18zZshq0PirK1ehm7zCYofWjK9ouuU+ehcCuz/ +mNKvcbO0U59Oh++SvL3sTzIwiEsXXlfEU8L2ApeN2WIrvyQfYo3fw7gpS0l4PJNgiCL8mdo2yMKi +1CxUAGc1bnO/AljwpN3lsKImesrgNqUZFvX9t++uP0D1bVoE/c40yiTcdCMbXTMTEl3EASX2MN0C +XZ/g1Ue9tOsbobtJSdifWwLziuQkkORiT0/Br4sOdBeo0XKIanoBScy0RnnGF7HamB4HWfp1IYVl +3ZBWzvurpWCdxJ35UrCLvYf5jysjCiN2O/cz4ckA82n5S6LgTrx+kzmEB/dEcH7+B1rlsazRGMzy +NeVJSQjKVsk9+w8YfYs7wRPCTY/JTw436R+hDmrfYi7LNQZReSzIJTj0+kuniVyc0uMNOYZKdHzV +WYfCP04MXFL0PfdSgvHqo6z9STQaKPNBiDoT7uje/5kdX7rL6B7yuVBgwDHTc+XvvqDtMwt0viAg +xGds8AgDelWAf0ZOlqf0Hj7h9tgJ4TNkK2PXMl6f+cB7D3hvl7yTmvmcEpB4eoCHFddydJxVdHix +uuFucAS6T6C6aMN7/zHwcz09lCqxC0EOoP5NiGVreTO01wIDAQABo0IwQDAOBgNVHQ8BAf8EBAMC +AQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU7UQZwNPwBovupHu+QucmVMiONnYwDQYJKoZI +hvcNAQELBQADggIBAA2ukDL2pkt8RHYZYR4nKM1eVO8lvOMIkPkp165oCOGUAFjvLi5+U1KMtlwH +6oi6mYtQlNeCgN9hCQCTrQ0U5s7B8jeUeLBfnLOic7iPBZM4zY0+sLj7wM+x8uwtLRvM7Kqas6pg +ghstO8OEPVeKlh6cdbjTMM1gCIOQ045U8U1mwF10A0Cj7oV+wh93nAbowacYXVKV7cndJZ5t+qnt +ozo00Fl72u1Q8zW/7esUTTHHYPTa8Yec4kjixsU3+wYQ+nVZZjFHKdp2mhzpgq7vmrlR94gjmmmV +YjzlVYA211QC//G5Xc7UI2/YRYRKW2XviQzdFKcgyxilJbQN+QHwotL0AMh0jqEqSI5l2xPE4iUX +feu+h1sXIFRRk0pTAwvsXcoz7WL9RccvW9xYoIA55vrX/hMUpu09lEpCdNTDd1lzzY9GvlU47/ro +kTLql1gEIt44w8y8bckzOmoKaT+gyOpyj4xjhiO9bTyWnpXgSUyqorkqG5w2gXjtw+hG4iZZRHUe +2XWJUc0QhJ1hYMtd+ZciTY6Y5uN/9lu7rs3KSoFrXgvzUeF0K+l+J6fZmUlO+KWA2yUPHGNiiskz +Z2s8EIPGrd6ozRaOjfAHN3Gf8qv8QfXBi+wAN10J5U6A7/qxXDgGpRtK4dw4LTzcqx+QGtVKnO7R +cGzM7vRX+Bi6hG6H +-----END CERTIFICATE----- + +IdenTrust Public Sector Root CA 1 +================================= +-----BEGIN CERTIFICATE----- +MIIFZjCCA06gAwIBAgIQCgFCgAAAAUUjz0Z8AAAAAjANBgkqhkiG9w0BAQsFADBNMQswCQYDVQQG +EwJVUzESMBAGA1UEChMJSWRlblRydXN0MSowKAYDVQQDEyFJZGVuVHJ1c3QgUHVibGljIFNlY3Rv +ciBSb290IENBIDEwHhcNMTQwMTE2MTc1MzMyWhcNMzQwMTE2MTc1MzMyWjBNMQswCQYDVQQGEwJV +UzESMBAGA1UEChMJSWRlblRydXN0MSowKAYDVQQDEyFJZGVuVHJ1c3QgUHVibGljIFNlY3RvciBS +b290IENBIDEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2IpT8pEiv6EdrCvsnduTy +P4o7ekosMSqMjbCpwzFrqHd2hCa2rIFCDQjrVVi7evi8ZX3yoG2LqEfpYnYeEe4IFNGyRBb06tD6 +Hi9e28tzQa68ALBKK0CyrOE7S8ItneShm+waOh7wCLPQ5CQ1B5+ctMlSbdsHyo+1W/CD80/HLaXI +rcuVIKQxKFdYWuSNG5qrng0M8gozOSI5Cpcu81N3uURF/YTLNiCBWS2ab21ISGHKTN9T0a9SvESf +qy9rg3LvdYDaBjMbXcjaY8ZNzaxmMc3R3j6HEDbhuaR672BQssvKplbgN6+rNBM5Jeg5ZuSYeqoS +mJxZZoY+rfGwyj4GD3vwEUs3oERte8uojHH01bWRNszwFcYr3lEXsZdMUD2xlVl8BX0tIdUAvwFn +ol57plzy9yLxkA2T26pEUWbMfXYD62qoKjgZl3YNa4ph+bz27nb9cCvdKTz4Ch5bQhyLVi9VGxyh +LrXHFub4qjySjmm2AcG1hp2JDws4lFTo6tyePSW8Uybt1as5qsVATFSrsrTZ2fjXctscvG29ZV/v +iDUqZi/u9rNl8DONfJhBaUYPQxxp+pu10GFqzcpL2UyQRqsVWaFHVCkugyhfHMKiq3IXAAaOReyL +4jM9f9oZRORicsPfIsbyVtTdX5Vy7W1f90gDW/3FKqD2cyOEEBsB5wIDAQABo0IwQDAOBgNVHQ8B +Af8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU43HgntinQtnbcZFrlJPrw6PRFKMw +DQYJKoZIhvcNAQELBQADggIBAEf63QqwEZE4rU1d9+UOl1QZgkiHVIyqZJnYWv6IAcVYpZmxI1Qj +t2odIFflAWJBF9MJ23XLblSQdf4an4EKwt3X9wnQW3IV5B4Jaj0z8yGa5hV+rVHVDRDtfULAj+7A +mgjVQdZcDiFpboBhDhXAuM/FSRJSzL46zNQuOAXeNf0fb7iAaJg9TaDKQGXSc3z1i9kKlT/YPyNt +GtEqJBnZhbMX73huqVjRI9PHE+1yJX9dsXNw0H8GlwmEKYBhHfpe/3OsoOOJuBxxFcbeMX8S3OFt +m6/n6J91eEyrRjuazr8FGF1NFTwWmhlQBJqymm9li1JfPFgEKCXAZmExfrngdbkaqIHWchezxQMx +NRF4eKLg6TCMf4DfWN88uieW4oA0beOY02QnrEh+KHdcxiVhJfiFDGX6xDIvpZgF5PgLZxYWxoK4 +Mhn5+bl53B/N66+rDt0b20XkeucC4pVd/GnwU2lhlXV5C15V5jgclKlZM57IcXR5f1GJtshquDDI +ajjDbp7hNxbqBWJMWxJH7ae0s1hWx0nzfxJoCTFx8G34Tkf71oXuxVhAGaQdp/lLQzfcaFpPz+vC +ZHTetBXZ9FRUGi8c15dxVJCO2SCdUyt/q4/i6jC8UDfv8Ue1fXwsBOxonbRJRBD0ckscZOf85muQ +3Wl9af0AVqW3rLatt8o+Ae+c +-----END CERTIFICATE----- + +Entrust Root Certification Authority - G2 +========================================= +-----BEGIN CERTIFICATE----- +MIIEPjCCAyagAwIBAgIESlOMKDANBgkqhkiG9w0BAQsFADCBvjELMAkGA1UEBhMCVVMxFjAUBgNV +BAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVnYWwtdGVy +bXMxOTA3BgNVBAsTMChjKSAyMDA5IEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXplZCB1c2Ug +b25seTEyMDAGA1UEAxMpRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzIw +HhcNMDkwNzA3MTcyNTU0WhcNMzAxMjA3MTc1NTU0WjCBvjELMAkGA1UEBhMCVVMxFjAUBgNVBAoT +DUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVnYWwtdGVybXMx +OTA3BgNVBAsTMChjKSAyMDA5IEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXplZCB1c2Ugb25s +eTEyMDAGA1UEAxMpRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzIwggEi +MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC6hLZy254Ma+KZ6TABp3bqMriVQRrJ2mFOWHLP +/vaCeb9zYQYKpSfYs1/TRU4cctZOMvJyig/3gxnQaoCAAEUesMfnmr8SVycco2gvCoe9amsOXmXz +HHfV1IWNcCG0szLni6LVhjkCsbjSR87kyUnEO6fe+1R9V77w6G7CebI6C1XiUJgWMhNcL3hWwcKU +s/Ja5CeanyTXxuzQmyWC48zCxEXFjJd6BmsqEZ+pCm5IO2/b1BEZQvePB7/1U1+cPvQXLOZprE4y +TGJ36rfo5bs0vBmLrpxR57d+tVOxMyLlbc9wPBr64ptntoP0jaWvYkxN4FisZDQSA/i2jZRjJKRx +AgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRqciZ6 +0B7vfec7aVHUbI2fkBJmqzANBgkqhkiG9w0BAQsFAAOCAQEAeZ8dlsa2eT8ijYfThwMEYGprmi5Z +iXMRrEPR9RP/jTkrwPK9T3CMqS/qF8QLVJ7UG5aYMzyorWKiAHarWWluBh1+xLlEjZivEtRh2woZ +Rkfz6/djwUAFQKXSt/S1mja/qYh2iARVBCuch38aNzx+LaUa2NSJXsq9rD1s2G2v1fN2D807iDgi +nWyTmsQ9v4IbZT+mD12q/OWyFcq1rca8PdCE6OoGcrBNOTJ4vz4RnAuknZoh8/CbCzB428Hch0P+ +vGOaysXCHMnHjf87ElgI5rY97HosTvuDls4MPGmHVHOkc8KT/1EQrBVUAdj8BbGJoX90g5pJ19xO +e4pIb4tF9g== +-----END CERTIFICATE----- + +Entrust Root Certification Authority - EC1 +========================================== +-----BEGIN CERTIFICATE----- +MIIC+TCCAoCgAwIBAgINAKaLeSkAAAAAUNCR+TAKBggqhkjOPQQDAzCBvzELMAkGA1UEBhMCVVMx +FjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVn +YWwtdGVybXMxOTA3BgNVBAsTMChjKSAyMDEyIEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXpl +ZCB1c2Ugb25seTEzMDEGA1UEAxMqRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5 +IC0gRUMxMB4XDTEyMTIxODE1MjUzNloXDTM3MTIxODE1NTUzNlowgb8xCzAJBgNVBAYTAlVTMRYw +FAYDVQQKEw1FbnRydXN0LCBJbmMuMSgwJgYDVQQLEx9TZWUgd3d3LmVudHJ1c3QubmV0L2xlZ2Fs +LXRlcm1zMTkwNwYDVQQLEzAoYykgMjAxMiBFbnRydXN0LCBJbmMuIC0gZm9yIGF1dGhvcml6ZWQg +dXNlIG9ubHkxMzAxBgNVBAMTKkVudHJ1c3QgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAt +IEVDMTB2MBAGByqGSM49AgEGBSuBBAAiA2IABIQTydC6bUF74mzQ61VfZgIaJPRbiWlH47jCffHy +AsWfoPZb1YsGGYZPUxBtByQnoaD41UcZYUx9ypMn6nQM72+WCf5j7HBdNq1nd67JnXxVRDqiY1Ef +9eNi1KlHBz7MIKNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE +FLdj5xrdjekIplWDpOBqUEFlEUJJMAoGCCqGSM49BAMDA2cAMGQCMGF52OVCR98crlOZF7ZvHH3h +vxGU0QOIdeSNiaSKd0bebWHvAvX7td/M/k7//qnmpwIwW5nXhTcGtXsI/esni0qU+eH6p44mCOh8 +kmhtc9hvJqwhAriZtyZBWyVgrtBIGu4G +-----END CERTIFICATE----- + +CFCA EV ROOT +============ +-----BEGIN CERTIFICATE----- +MIIFjTCCA3WgAwIBAgIEGErM1jANBgkqhkiG9w0BAQsFADBWMQswCQYDVQQGEwJDTjEwMC4GA1UE +CgwnQ2hpbmEgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRUwEwYDVQQDDAxDRkNB +IEVWIFJPT1QwHhcNMTIwODA4MDMwNzAxWhcNMjkxMjMxMDMwNzAxWjBWMQswCQYDVQQGEwJDTjEw +MC4GA1UECgwnQ2hpbmEgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRUwEwYDVQQD +DAxDRkNBIEVWIFJPT1QwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDXXWvNED8fBVnV +BU03sQ7smCuOFR36k0sXgiFxEFLXUWRwFsJVaU2OFW2fvwwbwuCjZ9YMrM8irq93VCpLTIpTUnrD +7i7es3ElweldPe6hL6P3KjzJIx1qqx2hp/Hz7KDVRM8Vz3IvHWOX6Jn5/ZOkVIBMUtRSqy5J35DN +uF++P96hyk0g1CXohClTt7GIH//62pCfCqktQT+x8Rgp7hZZLDRJGqgG16iI0gNyejLi6mhNbiyW +ZXvKWfry4t3uMCz7zEasxGPrb382KzRzEpR/38wmnvFyXVBlWY9ps4deMm/DGIq1lY+wejfeWkU7 +xzbh72fROdOXW3NiGUgthxwG+3SYIElz8AXSG7Ggo7cbcNOIabla1jj0Ytwli3i/+Oh+uFzJlU9f +py25IGvPa931DfSCt/SyZi4QKPaXWnuWFo8BGS1sbn85WAZkgwGDg8NNkt0yxoekN+kWzqotaK8K +gWU6cMGbrU1tVMoqLUuFG7OA5nBFDWteNfB/O7ic5ARwiRIlk9oKmSJgamNgTnYGmE69g60dWIol +hdLHZR4tjsbftsbhf4oEIRUpdPA+nJCdDC7xij5aqgwJHsfVPKPtl8MeNPo4+QgO48BdK4PRVmrJ +tqhUUy54Mmc9gn900PvhtgVguXDbjgv5E1hvcWAQUhC5wUEJ73IfZzF4/5YFjQIDAQABo2MwYTAf +BgNVHSMEGDAWgBTj/i39KNALtbq2osS/BqoFjJP7LzAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB +/wQEAwIBBjAdBgNVHQ4EFgQU4/4t/SjQC7W6tqLEvwaqBYyT+y8wDQYJKoZIhvcNAQELBQADggIB +ACXGumvrh8vegjmWPfBEp2uEcwPenStPuiB/vHiyz5ewG5zz13ku9Ui20vsXiObTej/tUxPQ4i9q +ecsAIyjmHjdXNYmEwnZPNDatZ8POQQaIxffu2Bq41gt/UP+TqhdLjOztUmCypAbqTuv0axn96/Ua +4CUqmtzHQTb3yHQFhDmVOdYLO6Qn+gjYXB74BGBSESgoA//vU2YApUo0FmZ8/Qmkrp5nGm9BC2sG +E5uPhnEFtC+NiWYzKXZUmhH4J/qyP5Hgzg0b8zAarb8iXRvTvyUFTeGSGn+ZnzxEk8rUQElsgIfX +BDrDMlI1Dlb4pd19xIsNER9Tyx6yF7Zod1rg1MvIB671Oi6ON7fQAUtDKXeMOZePglr4UeWJoBjn +aH9dCi77o0cOPaYjesYBx4/IXr9tgFa+iiS6M+qf4TIRnvHST4D2G0CvOJ4RUHlzEhLN5mydLIhy +PDCBBpEi6lmt2hkuIsKNuYyH4Ga8cyNfIWRjgEj1oDwYPZTISEEdQLpe/v5WOaHIz16eGWRGENoX +kbcFgKyLmZJ956LYBws2J+dIeWCKw9cTXPhyQN9Ky8+ZAAoACxGV2lZFA4gKn2fQ1XmxqI1AbQ3C +ekD6819kR5LLU7m7Wc5P/dAVUwHY3+vZ5nbv0CO7O6l5s9UCKc2Jo5YPSjXnTkLAdc0Hz+Ys63su +-----END CERTIFICATE----- + +OISTE WISeKey Global Root GB CA +=============================== +-----BEGIN CERTIFICATE----- +MIIDtTCCAp2gAwIBAgIQdrEgUnTwhYdGs/gjGvbCwDANBgkqhkiG9w0BAQsFADBtMQswCQYDVQQG +EwJDSDEQMA4GA1UEChMHV0lTZUtleTEiMCAGA1UECxMZT0lTVEUgRm91bmRhdGlvbiBFbmRvcnNl +ZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBHbG9iYWwgUm9vdCBHQiBDQTAeFw0xNDEyMDExNTAw +MzJaFw0zOTEyMDExNTEwMzFaMG0xCzAJBgNVBAYTAkNIMRAwDgYDVQQKEwdXSVNlS2V5MSIwIAYD +VQQLExlPSVNURSBGb3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBXSVNlS2V5IEds +b2JhbCBSb290IEdCIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2Be3HEokKtaX +scriHvt9OO+Y9bI5mE4nuBFde9IllIiCFSZqGzG7qFshISvYD06fWvGxWuR51jIjK+FTzJlFXHtP +rby/h0oLS5daqPZI7H17Dc0hBt+eFf1Biki3IPShehtX1F1Q/7pn2COZH8g/497/b1t3sWtuuMlk +9+HKQUYOKXHQuSP8yYFfTvdv37+ErXNku7dCjmn21HYdfp2nuFeKUWdy19SouJVUQHMD9ur06/4o +Qnc/nSMbsrY9gBQHTC5P99UKFg29ZkM3fiNDecNAhvVMKdqOmq0NpQSHiB6F4+lT1ZvIiwNjeOvg +GUpuuy9rM2RYk61pv48b74JIxwIDAQABo1EwTzALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB +/zAdBgNVHQ4EFgQUNQ/INmNe4qPs+TtmFc5RUuORmj0wEAYJKwYBBAGCNxUBBAMCAQAwDQYJKoZI +hvcNAQELBQADggEBAEBM+4eymYGQfp3FsLAmzYh7KzKNbrghcViXfa43FK8+5/ea4n32cZiZBKpD +dHij40lhPnOMTZTg+XHEthYOU3gf1qKHLwI5gSk8rxWYITD+KJAAjNHhy/peyP34EEY7onhCkRd0 +VQreUGdNZtGn//3ZwLWoo4rOZvUPQ82nK1d7Y0Zqqi5S2PTt4W2tKZB4SLrhI6qjiey1q5bAtEui +HZeeevJuQHHfaPFlTc58Bd9TZaml8LGXBHAVRgOY1NK/VLSgWH1Sb9pWJmLU2NuJMW8c8CLC02Ic +Nc1MaRVUGpCY3useX8p3x8uOPUNpnJpY0CQ73xtAln41rYHHTnG6iBM= +-----END CERTIFICATE----- + +SZAFIR ROOT CA2 +=============== +-----BEGIN CERTIFICATE----- +MIIDcjCCAlqgAwIBAgIUPopdB+xV0jLVt+O2XwHrLdzk1uQwDQYJKoZIhvcNAQELBQAwUTELMAkG +A1UEBhMCUEwxKDAmBgNVBAoMH0tyYWpvd2EgSXpiYSBSb3psaWN6ZW5pb3dhIFMuQS4xGDAWBgNV +BAMMD1NaQUZJUiBST09UIENBMjAeFw0xNTEwMTkwNzQzMzBaFw0zNTEwMTkwNzQzMzBaMFExCzAJ +BgNVBAYTAlBMMSgwJgYDVQQKDB9LcmFqb3dhIEl6YmEgUm96bGljemVuaW93YSBTLkEuMRgwFgYD +VQQDDA9TWkFGSVIgUk9PVCBDQTIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC3vD5Q +qEvNQLXOYeeWyrSh2gwisPq1e3YAd4wLz32ohswmUeQgPYUM1ljj5/QqGJ3a0a4m7utT3PSQ1hNK +DJA8w/Ta0o4NkjrcsbH/ON7Dui1fgLkCvUqdGw+0w8LBZwPd3BucPbOw3gAeqDRHu5rr/gsUvTaE +2g0gv/pby6kWIK05YO4vdbbnl5z5Pv1+TW9NL++IDWr63fE9biCloBK0TXC5ztdyO4mTp4CEHCdJ +ckm1/zuVnsHMyAHs6A6KCpbns6aH5db5BSsNl0BwPLqsdVqc1U2dAgrSS5tmS0YHF2Wtn2yIANwi +ieDhZNRnvDF5YTy7ykHNXGoAyDw4jlivAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0P +AQH/BAQDAgEGMB0GA1UdDgQWBBQuFqlKGLXLzPVvUPMjX/hd56zwyDANBgkqhkiG9w0BAQsFAAOC +AQEAtXP4A9xZWx126aMqe5Aosk3AM0+qmrHUuOQn/6mWmc5G4G18TKI4pAZw8PRBEew/R40/cof5 +O/2kbytTAOD/OblqBw7rHRz2onKQy4I9EYKL0rufKq8h5mOGnXkZ7/e7DDWQw4rtTw/1zBLZpD67 +oPwglV9PJi8RI4NOdQcPv5vRtB3pEAT+ymCPoky4rc/hkA/NrgrHXXu3UNLUYfrVFdvXn4dRVOul +4+vJhaAlIDf7js4MNIThPIGyd05DpYhfhmehPea0XGG2Ptv+tyjFogeutcrKjSoS75ftwjCkySp6 ++/NNIxuZMzSgLvWpCz/UXeHPhJ/iGcJfitYgHuNztw== +-----END CERTIFICATE----- + +Certum Trusted Network CA 2 +=========================== +-----BEGIN CERTIFICATE----- +MIIF0jCCA7qgAwIBAgIQIdbQSk8lD8kyN/yqXhKN6TANBgkqhkiG9w0BAQ0FADCBgDELMAkGA1UE +BhMCUEwxIjAgBgNVBAoTGVVuaXpldG8gVGVjaG5vbG9naWVzIFMuQS4xJzAlBgNVBAsTHkNlcnR1 +bSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEkMCIGA1UEAxMbQ2VydHVtIFRydXN0ZWQgTmV0d29y +ayBDQSAyMCIYDzIwMTExMDA2MDgzOTU2WhgPMjA0NjEwMDYwODM5NTZaMIGAMQswCQYDVQQGEwJQ +TDEiMCAGA1UEChMZVW5pemV0byBUZWNobm9sb2dpZXMgUy5BLjEnMCUGA1UECxMeQ2VydHVtIENl +cnRpZmljYXRpb24gQXV0aG9yaXR5MSQwIgYDVQQDExtDZXJ0dW0gVHJ1c3RlZCBOZXR3b3JrIENB +IDIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC9+Xj45tWADGSdhhuWZGc/IjoedQF9 +7/tcZ4zJzFxrqZHmuULlIEub2pt7uZld2ZuAS9eEQCsn0+i6MLs+CRqnSZXvK0AkwpfHp+6bJe+o +CgCXhVqqndwpyeI1B+twTUrWwbNWuKFBOJvR+zF/j+Bf4bE/D44WSWDXBo0Y+aomEKsq09DRZ40b +Rr5HMNUuctHFY9rnY3lEfktjJImGLjQ/KUxSiyqnwOKRKIm5wFv5HdnnJ63/mgKXwcZQkpsCLL2p +uTRZCr+ESv/f/rOf69me4Jgj7KZrdxYq28ytOxykh9xGc14ZYmhFV+SQgkK7QtbwYeDBoz1mo130 +GO6IyY0XRSmZMnUCMe4pJshrAua1YkV/NxVaI2iJ1D7eTiew8EAMvE0Xy02isx7QBlrd9pPPV3WZ +9fqGGmd4s7+W/jTcvedSVuWz5XV710GRBdxdaeOVDUO5/IOWOZV7bIBaTxNyxtd9KXpEulKkKtVB +Rgkg/iKgtlswjbyJDNXXcPiHUv3a76xRLgezTv7QCdpw75j6VuZt27VXS9zlLCUVyJ4ueE742pye +hizKV/Ma5ciSixqClnrDvFASadgOWkaLOusm+iPJtrCBvkIApPjW/jAux9JG9uWOdf3yzLnQh1vM +BhBgu4M1t15n3kfsmUjxpKEV/q2MYo45VU85FrmxY53/twIDAQABo0IwQDAPBgNVHRMBAf8EBTAD +AQH/MB0GA1UdDgQWBBS2oVQ5AsOgP46KvPrU+Bym0ToO/TAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZI +hvcNAQENBQADggIBAHGlDs7k6b8/ONWJWsQCYftMxRQXLYtPU2sQF/xlhMcQSZDe28cmk4gmb3DW +Al45oPePq5a1pRNcgRRtDoGCERuKTsZPpd1iHkTfCVn0W3cLN+mLIMb4Ck4uWBzrM9DPhmDJ2vuA +L55MYIR4PSFk1vtBHxgP58l1cb29XN40hz5BsA72udY/CROWFC/emh1auVbONTqwX3BNXuMp8SMo +clm2q8KMZiYcdywmdjWLKKdpoPk79SPdhRB0yZADVpHnr7pH1BKXESLjokmUbOe3lEu6LaTaM4tM +pkT/WjzGHWTYtTHkpjx6qFcL2+1hGsvxznN3Y6SHb0xRONbkX8eftoEq5IVIeVheO/jbAoJnwTnb +w3RLPTYe+SmTiGhbqEQZIfCn6IENLOiTNrQ3ssqwGyZ6miUfmpqAnksqP/ujmv5zMnHCnsZy4Ypo +J/HkD7TETKVhk/iXEAcqMCWpuchxuO9ozC1+9eB+D4Kob7a6bINDd82Kkhehnlt4Fj1F4jNy3eFm +ypnTycUm/Q1oBEauttmbjL4ZvrHG8hnjXALKLNhvSgfZyTXaQHXyxKcZb55CEJh15pWLYLztxRLX +is7VmFxWlgPF7ncGNf/P5O4/E2Hu29othfDNrp2yGAlFw5Khchf8R7agCyzxxN5DaAhqXzvwdmP7 +zAYspsbiDrW5viSP +-----END CERTIFICATE----- + +Hellenic Academic and Research Institutions RootCA 2015 +======================================================= +-----BEGIN CERTIFICATE----- +MIIGCzCCA/OgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBpjELMAkGA1UEBhMCR1IxDzANBgNVBAcT +BkF0aGVuczFEMEIGA1UEChM7SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0 +aW9ucyBDZXJ0LiBBdXRob3JpdHkxQDA+BgNVBAMTN0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNl +YXJjaCBJbnN0aXR1dGlvbnMgUm9vdENBIDIwMTUwHhcNMTUwNzA3MTAxMTIxWhcNNDAwNjMwMTAx +MTIxWjCBpjELMAkGA1UEBhMCR1IxDzANBgNVBAcTBkF0aGVuczFEMEIGA1UEChM7SGVsbGVuaWMg +QWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9ucyBDZXJ0LiBBdXRob3JpdHkxQDA+BgNV +BAMTN0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgUm9vdENBIDIw +MTUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDC+Kk/G4n8PDwEXT2QNrCROnk8Zlrv +bTkBSRq0t89/TSNTt5AA4xMqKKYx8ZEA4yjsriFBzh/a/X0SWwGDD7mwX5nh8hKDgE0GPt+sr+eh +iGsxr/CL0BgzuNtFajT0AoAkKAoCFZVedioNmToUW/bLy1O8E00BiDeUJRtCvCLYjqOWXjrZMts+ +6PAQZe104S+nfK8nNLspfZu2zwnI5dMK/IhlZXQK3HMcXM1AsRzUtoSMTFDPaI6oWa7CJ06CojXd +FPQf/7J31Ycvqm59JCfnxssm5uX+Zwdj2EUN3TpZZTlYepKZcj2chF6IIbjV9Cz82XBST3i4vTwr +i5WY9bPRaM8gFH5MXF/ni+X1NYEZN9cRCLdmvtNKzoNXADrDgfgXy5I2XdGj2HUb4Ysn6npIQf1F +GQatJ5lOwXBH3bWfgVMS5bGMSF0xQxfjjMZ6Y5ZLKTBOhE5iGV48zpeQpX8B653g+IuJ3SWYPZK2 +fu/Z8VFRfS0myGlZYeCsargqNhEEelC9MoS+L9xy1dcdFkfkR2YgP/SWxa+OAXqlD3pk9Q0Yh9mu +iNX6hME6wGkoLfINaFGq46V3xqSQDqE3izEjR8EJCOtu93ib14L8hCCZSRm2Ekax+0VVFqmjZayc +Bw/qa9wfLgZy7IaIEuQt218FL+TwA9MmM+eAws1CoRc0CwIDAQABo0IwQDAPBgNVHRMBAf8EBTAD +AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUcRVnyMjJvXVdctA4GGqd83EkVAswDQYJKoZI +hvcNAQELBQADggIBAHW7bVRLqhBYRjTyYtcWNl0IXtVsyIe9tC5G8jH4fOpCtZMWVdyhDBKg2mF+ +D1hYc2Ryx+hFjtyp8iY/xnmMsVMIM4GwVhO+5lFc2JsKT0ucVlMC6U/2DWDqTUJV6HwbISHTGzrM +d/K4kPFox/la/vot9L/J9UUbzjgQKjeKeaO04wlshYaT/4mWJ3iBj2fjRnRUjtkNaeJK9E10A/+y +d+2VZ5fkscWrv2oj6NSU4kQoYsRL4vDY4ilrGnB+JGGTe08DMiUNRSQrlrRGar9KC/eaj8GsGsVn +82800vpzY4zvFrCopEYq+OsS7HK07/grfoxSwIuEVPkvPuNVqNxmsdnhX9izjFk0WaSrT2y7Hxjb +davYy5LNlDhhDgcGH0tGEPEVvo2FXDtKK4F5D7Rpn0lQl033DlZdwJVqwjbDG2jJ9SrcR5q+ss7F +Jej6A7na+RZukYT1HCjI/CbM1xyQVqdfbzoEvM14iQuODy+jqk+iGxI9FghAD/FGTNeqewjBCvVt +J94Cj8rDtSvK6evIIVM4pcw72Hc3MKJP2W/R8kCtQXoXxdZKNYm3QdV8hn9VTYNKpXMgwDqvkPGa +JI7ZjnHKe7iG2rKPmT4dEw0SEe7Uq/DpFXYC5ODfqiAeW2GFZECpkJcNrVPSWh2HagCXZWK0vm9q +p/UsQu0yrbYhnr68 +-----END CERTIFICATE----- + +Hellenic Academic and Research Institutions ECC RootCA 2015 +=========================================================== +-----BEGIN CERTIFICATE----- +MIICwzCCAkqgAwIBAgIBADAKBggqhkjOPQQDAjCBqjELMAkGA1UEBhMCR1IxDzANBgNVBAcTBkF0 +aGVuczFEMEIGA1UEChM7SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9u +cyBDZXJ0LiBBdXRob3JpdHkxRDBCBgNVBAMTO0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJj +aCBJbnN0aXR1dGlvbnMgRUNDIFJvb3RDQSAyMDE1MB4XDTE1MDcwNzEwMzcxMloXDTQwMDYzMDEw +MzcxMlowgaoxCzAJBgNVBAYTAkdSMQ8wDQYDVQQHEwZBdGhlbnMxRDBCBgNVBAoTO0hlbGxlbmlj +IEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ2VydC4gQXV0aG9yaXR5MUQwQgYD +VQQDEztIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25zIEVDQyBSb290 +Q0EgMjAxNTB2MBAGByqGSM49AgEGBSuBBAAiA2IABJKgQehLgoRc4vgxEZmGZE4JJS+dQS8KrjVP +dJWyUWRrjWvmP3CV8AVER6ZyOFB2lQJajq4onvktTpnvLEhvTCUp6NFxW98dwXU3tNf6e3pCnGoK +Vlp8aQuqgAkkbH7BRqNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0O +BBYEFLQiC4KZJAEOnLvkDv2/+5cgk5kqMAoGCCqGSM49BAMCA2cAMGQCMGfOFmI4oqxiRaeplSTA +GiecMjvAwNW6qef4BENThe5SId6d9SWDPp5YSy/XZxMOIQIwBeF1Ad5o7SofTUwJCA3sS61kFyjn +dc5FZXIhF8siQQ6ME5g4mlRtm8rifOoCWCKR +-----END CERTIFICATE----- + +ISRG Root X1 +============ +-----BEGIN CERTIFICATE----- +MIIFazCCA1OgAwIBAgIRAIIQz7DSQONZRGPgu2OCiwAwDQYJKoZIhvcNAQELBQAwTzELMAkGA1UE +BhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2VhcmNoIEdyb3VwMRUwEwYDVQQD +EwxJU1JHIFJvb3QgWDEwHhcNMTUwNjA0MTEwNDM4WhcNMzUwNjA0MTEwNDM4WjBPMQswCQYDVQQG +EwJVUzEpMCcGA1UEChMgSW50ZXJuZXQgU2VjdXJpdHkgUmVzZWFyY2ggR3JvdXAxFTATBgNVBAMT +DElTUkcgUm9vdCBYMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK3oJHP0FDfzm54r +Vygch77ct984kIxuPOZXoHj3dcKi/vVqbvYATyjb3miGbESTtrFj/RQSa78f0uoxmyF+0TM8ukj1 +3Xnfs7j/EvEhmkvBioZxaUpmZmyPfjxwv60pIgbz5MDmgK7iS4+3mX6UA5/TR5d8mUgjU+g4rk8K +b4Mu0UlXjIB0ttov0DiNewNwIRt18jA8+o+u3dpjq+sWT8KOEUt+zwvo/7V3LvSye0rgTBIlDHCN +Aymg4VMk7BPZ7hm/ELNKjD+Jo2FR3qyHB5T0Y3HsLuJvW5iB4YlcNHlsdu87kGJ55tukmi8mxdAQ +4Q7e2RCOFvu396j3x+UCB5iPNgiV5+I3lg02dZ77DnKxHZu8A/lJBdiB3QW0KtZB6awBdpUKD9jf +1b0SHzUvKBds0pjBqAlkd25HN7rOrFleaJ1/ctaJxQZBKT5ZPt0m9STJEadao0xAH0ahmbWnOlFu +hjuefXKnEgV4We0+UXgVCwOPjdAvBbI+e0ocS3MFEvzG6uBQE3xDk3SzynTnjh8BCNAw1FtxNrQH +usEwMFxIt4I7mKZ9YIqioymCzLq9gwQbooMDQaHWBfEbwrbwqHyGO0aoSCqI3Haadr8faqU9GY/r +OPNk3sgrDQoo//fb4hVC1CLQJ13hef4Y53CIrU7m2Ys6xt0nUW7/vGT1M0NPAgMBAAGjQjBAMA4G +A1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBR5tFnme7bl5AFzgAiIyBpY +9umbbjANBgkqhkiG9w0BAQsFAAOCAgEAVR9YqbyyqFDQDLHYGmkgJykIrGF1XIpu+ILlaS/V9lZL +ubhzEFnTIZd+50xx+7LSYK05qAvqFyFWhfFQDlnrzuBZ6brJFe+GnY+EgPbk6ZGQ3BebYhtF8GaV +0nxvwuo77x/Py9auJ/GpsMiu/X1+mvoiBOv/2X/qkSsisRcOj/KKNFtY2PwByVS5uCbMiogziUwt +hDyC3+6WVwW6LLv3xLfHTjuCvjHIInNzktHCgKQ5ORAzI4JMPJ+GslWYHb4phowim57iaztXOoJw +TdwJx4nLCgdNbOhdjsnvzqvHu7UrTkXWStAmzOVyyghqpZXjFaH3pO3JLF+l+/+sKAIuvtd7u+Nx +e5AW0wdeRlN8NwdCjNPElpzVmbUq4JUagEiuTDkHzsxHpFKVK7q4+63SM1N95R1NbdWhscdCb+ZA +JzVcoyi3B43njTOQ5yOf+1CceWxG1bQVs5ZufpsMljq4Ui0/1lvh+wjChP4kqKOJ2qxq4RgqsahD +YVvTH9w7jXbyLeiNdd8XM2w9U/t7y0Ff/9yi0GE44Za4rF2LN9d11TPAmRGunUHBcnWEvgJBQl9n +JEiU0Zsnvgc/ubhPgXRR4Xq37Z0j4r7g1SgEEzwxA57demyPxgcYxn/eR44/KJ4EBs+lVDR3veyJ +m+kXQ99b21/+jh5Xos1AnX5iItreGCc= +-----END CERTIFICATE----- + +AC RAIZ FNMT-RCM +================ +-----BEGIN CERTIFICATE----- +MIIFgzCCA2ugAwIBAgIPXZONMGc2yAYdGsdUhGkHMA0GCSqGSIb3DQEBCwUAMDsxCzAJBgNVBAYT +AkVTMREwDwYDVQQKDAhGTk1ULVJDTTEZMBcGA1UECwwQQUMgUkFJWiBGTk1ULVJDTTAeFw0wODEw +MjkxNTU5NTZaFw0zMDAxMDEwMDAwMDBaMDsxCzAJBgNVBAYTAkVTMREwDwYDVQQKDAhGTk1ULVJD +TTEZMBcGA1UECwwQQUMgUkFJWiBGTk1ULVJDTTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC +ggIBALpxgHpMhm5/yBNtwMZ9HACXjywMI7sQmkCpGreHiPibVmr75nuOi5KOpyVdWRHbNi63URcf +qQgfBBckWKo3Shjf5TnUV/3XwSyRAZHiItQDwFj8d0fsjz50Q7qsNI1NOHZnjrDIbzAzWHFctPVr +btQBULgTfmxKo0nRIBnuvMApGGWn3v7v3QqQIecaZ5JCEJhfTzC8PhxFtBDXaEAUwED653cXeuYL +j2VbPNmaUtu1vZ5Gzz3rkQUCwJaydkxNEJY7kvqcfw+Z374jNUUeAlz+taibmSXaXvMiwzn15Cou +08YfxGyqxRxqAQVKL9LFwag0Jl1mpdICIfkYtwb1TplvqKtMUejPUBjFd8g5CSxJkjKZqLsXF3mw +WsXmo8RZZUc1g16p6DULmbvkzSDGm0oGObVo/CK67lWMK07q87Hj/LaZmtVC+nFNCM+HHmpxffnT +tOmlcYF7wk5HlqX2doWjKI/pgG6BU6VtX7hI+cL5NqYuSf+4lsKMB7ObiFj86xsc3i1w4peSMKGJ +47xVqCfWS+2QrYv6YyVZLag13cqXM7zlzced0ezvXg5KkAYmY6252TUtB7p2ZSysV4999AeU14EC +ll2jB0nVetBX+RvnU0Z1qrB5QstocQjpYL05ac70r8NWQMetUqIJ5G+GR4of6ygnXYMgrwTJbFaa +i0b1AgMBAAGjgYMwgYAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYE +FPd9xf3E6Jobd2Sn9R2gzL+HYJptMD4GA1UdIAQ3MDUwMwYEVR0gADArMCkGCCsGAQUFBwIBFh1o +dHRwOi8vd3d3LmNlcnQuZm5tdC5lcy9kcGNzLzANBgkqhkiG9w0BAQsFAAOCAgEAB5BK3/MjTvDD +nFFlm5wioooMhfNzKWtN/gHiqQxjAb8EZ6WdmF/9ARP67Jpi6Yb+tmLSbkyU+8B1RXxlDPiyN8+s +D8+Nb/kZ94/sHvJwnvDKuO+3/3Y3dlv2bojzr2IyIpMNOmqOFGYMLVN0V2Ue1bLdI4E7pWYjJ2cJ +j+F3qkPNZVEI7VFY/uY5+ctHhKQV8Xa7pO6kO8Rf77IzlhEYt8llvhjho6Tc+hj507wTmzl6NLrT +Qfv6MooqtyuGC2mDOL7Nii4LcK2NJpLuHvUBKwrZ1pebbuCoGRw6IYsMHkCtA+fdZn71uSANA+iW ++YJF1DngoABd15jmfZ5nc8OaKveri6E6FO80vFIOiZiaBECEHX5FaZNXzuvO+FB8TxxuBEOb+dY7 +Ixjp6o7RTUaN8Tvkasq6+yO3m/qZASlaWFot4/nUbQ4mrcFuNLwy+AwF+mWj2zs3gyLp1txyM/1d +8iC9djwj2ij3+RvrWWTV3F9yfiD8zYm1kGdNYno/Tq0dwzn+evQoFt9B9kiABdcPUXmsEKvU7ANm +5mqwujGSQkBqvjrTcuFqN1W8rB2Vt2lh8kORdOag0wokRqEIr9baRRmW1FMdW4R58MD3R++Lj8UG +rp1MYp3/RgT408m2ECVAdf4WqslKYIYvuu8wd+RU4riEmViAqhOLUTpPSPaLtrM= +-----END CERTIFICATE----- + +Amazon Root CA 1 +================ +-----BEGIN CERTIFICATE----- +MIIDQTCCAimgAwIBAgITBmyfz5m/jAo54vB4ikPmljZbyjANBgkqhkiG9w0BAQsFADA5MQswCQYD +VQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24gUm9vdCBDQSAxMB4XDTE1 +MDUyNjAwMDAwMFoXDTM4MDExNzAwMDAwMFowOTELMAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpv +bjEZMBcGA1UEAxMQQW1hem9uIFJvb3QgQ0EgMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC +ggEBALJ4gHHKeNXjca9HgFB0fW7Y14h29Jlo91ghYPl0hAEvrAIthtOgQ3pOsqTQNroBvo3bSMgH +FzZM9O6II8c+6zf1tRn4SWiw3te5djgdYZ6k/oI2peVKVuRF4fn9tBb6dNqcmzU5L/qwIFAGbHrQ +gLKm+a/sRxmPUDgH3KKHOVj4utWp+UhnMJbulHheb4mjUcAwhmahRWa6VOujw5H5SNz/0egwLX0t +dHA114gk957EWW67c4cX8jJGKLhD+rcdqsq08p8kDi1L93FcXmn/6pUCyziKrlA4b9v7LWIbxcce +VOF34GfID5yHI9Y/QCB/IIDEgEw+OyQmjgSubJrIqg0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB +/zAOBgNVHQ8BAf8EBAMCAYYwHQYDVR0OBBYEFIQYzIU07LwMlJQuCFmcx7IQTgoIMA0GCSqGSIb3 +DQEBCwUAA4IBAQCY8jdaQZChGsV2USggNiMOruYou6r4lK5IpDB/G/wkjUu0yKGX9rbxenDIU5PM +CCjjmCXPI6T53iHTfIUJrU6adTrCC2qJeHZERxhlbI1Bjjt/msv0tadQ1wUsN+gDS63pYaACbvXy +8MWy7Vu33PqUXHeeE6V/Uq2V8viTO96LXFvKWlJbYK8U90vvo/ufQJVtMVT8QtPHRh8jrdkPSHCa +2XV4cdFyQzR1bldZwgJcJmApzyMZFo6IQ6XU5MsI+yMRQ+hDKXJioaldXgjUkK642M4UwtBV8ob2 +xJNDd2ZhwLnoQdeXeGADbkpyrqXRfboQnoZsG4q5WTP468SQvvG5 +-----END CERTIFICATE----- + +Amazon Root CA 2 +================ +-----BEGIN CERTIFICATE----- +MIIFQTCCAymgAwIBAgITBmyf0pY1hp8KD+WGePhbJruKNzANBgkqhkiG9w0BAQwFADA5MQswCQYD +VQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24gUm9vdCBDQSAyMB4XDTE1 +MDUyNjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpv +bjEZMBcGA1UEAxMQQW1hem9uIFJvb3QgQ0EgMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC +ggIBAK2Wny2cSkxKgXlRmeyKy2tgURO8TW0G/LAIjd0ZEGrHJgw12MBvIITplLGbhQPDW9tK6Mj4 +kHbZW0/jTOgGNk3Mmqw9DJArktQGGWCsN0R5hYGCrVo34A3MnaZMUnbqQ523BNFQ9lXg1dKmSYXp +N+nKfq5clU1Imj+uIFptiJXZNLhSGkOQsL9sBbm2eLfq0OQ6PBJTYv9K8nu+NQWpEjTj82R0Yiw9 +AElaKP4yRLuH3WUnAnE72kr3H9rN9yFVkE8P7K6C4Z9r2UXTu/Bfh+08LDmG2j/e7HJV63mjrdvd +fLC6HM783k81ds8P+HgfajZRRidhW+mez/CiVX18JYpvL7TFz4QuK/0NURBs+18bvBt+xa47mAEx +kv8LV/SasrlX6avvDXbR8O70zoan4G7ptGmh32n2M8ZpLpcTnqWHsFcQgTfJU7O7f/aS0ZzQGPSS +btqDT6ZjmUyl+17vIWR6IF9sZIUVyzfpYgwLKhbcAS4y2j5L9Z469hdAlO+ekQiG+r5jqFoz7Mt0 +Q5X5bGlSNscpb/xVA1wf+5+9R+vnSUeVC06JIglJ4PVhHvG/LopyboBZ/1c6+XUyo05f7O0oYtlN +c/LMgRdg7c3r3NunysV+Ar3yVAhU/bQtCSwXVEqY0VThUWcI0u1ufm8/0i2BWSlmy5A5lREedCf+ +3euvAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBSw +DPBMMPQFWAJI/TPlUq9LhONmUjANBgkqhkiG9w0BAQwFAAOCAgEAqqiAjw54o+Ci1M3m9Zh6O+oA +A7CXDpO8Wqj2LIxyh6mx/H9z/WNxeKWHWc8w4Q0QshNabYL1auaAn6AFC2jkR2vHat+2/XcycuUY ++gn0oJMsXdKMdYV2ZZAMA3m3MSNjrXiDCYZohMr/+c8mmpJ5581LxedhpxfL86kSk5Nrp+gvU5LE +YFiwzAJRGFuFjWJZY7attN6a+yb3ACfAXVU3dJnJUH/jWS5E4ywl7uxMMne0nxrpS10gxdr9HIcW +xkPo1LsmmkVwXqkLN1PiRnsn/eBG8om3zEK2yygmbtmlyTrIQRNg91CMFa6ybRoVGld45pIq2WWQ +gj9sAq+uEjonljYE1x2igGOpm/HlurR8FLBOybEfdF849lHqm/osohHUqS0nGkWxr7JOcQ3AWEbW +aQbLU8uz/mtBzUF+fUwPfHJ5elnNXkoOrJupmHN5fLT0zLm4BwyydFy4x2+IoZCn9Kr5v2c69BoV +Yh63n749sSmvZ6ES8lgQGVMDMBu4Gon2nL2XA46jCfMdiyHxtN/kHNGfZQIG6lzWE7OE76KlXIx3 +KadowGuuQNKotOrN8I1LOJwZmhsoVLiJkO/KdYE+HvJkJMcYr07/R54H9jVlpNMKVv/1F2Rs76gi +JUmTtt8AF9pYfl3uxRuw0dFfIRDH+fO6AgonB8Xx1sfT4PsJYGw= +-----END CERTIFICATE----- + +Amazon Root CA 3 +================ +-----BEGIN CERTIFICATE----- +MIIBtjCCAVugAwIBAgITBmyf1XSXNmY/Owua2eiedgPySjAKBggqhkjOPQQDAjA5MQswCQYDVQQG +EwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24gUm9vdCBDQSAzMB4XDTE1MDUy +NjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZ +MBcGA1UEAxMQQW1hem9uIFJvb3QgQ0EgMzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABCmXp8ZB +f8ANm+gBG1bG8lKlui2yEujSLtf6ycXYqm0fc4E7O5hrOXwzpcVOho6AF2hiRVd9RFgdszflZwjr +Zt6jQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBSrttvXBp43 +rDCGB5Fwx5zEGbF4wDAKBggqhkjOPQQDAgNJADBGAiEA4IWSoxe3jfkrBqWTrBqYaGFy+uGh0Psc +eGCmQ5nFuMQCIQCcAu/xlJyzlvnrxir4tiz+OpAUFteMYyRIHN8wfdVoOw== +-----END CERTIFICATE----- + +Amazon Root CA 4 +================ +-----BEGIN CERTIFICATE----- +MIIB8jCCAXigAwIBAgITBmyf18G7EEwpQ+Vxe3ssyBrBDjAKBggqhkjOPQQDAzA5MQswCQYDVQQG +EwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24gUm9vdCBDQSA0MB4XDTE1MDUy +NjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZ +MBcGA1UEAxMQQW1hem9uIFJvb3QgQ0EgNDB2MBAGByqGSM49AgEGBSuBBAAiA2IABNKrijdPo1MN +/sGKe0uoe0ZLY7Bi9i0b2whxIdIA6GO9mif78DluXeo9pcmBqqNbIJhFXRbb/egQbeOc4OO9X4Ri +83BkM6DLJC9wuoihKqB1+IGuYgbEgds5bimwHvouXKNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNV +HQ8BAf8EBAMCAYYwHQYDVR0OBBYEFNPsxzplbszh2naaVvuc84ZtV+WBMAoGCCqGSM49BAMDA2gA +MGUCMDqLIfG9fhGt0O9Yli/W651+kI0rz2ZVwyzjKKlwCkcO8DdZEv8tmZQoTipPNU0zWgIxAOp1 +AE47xDqUEpHJWEadIRNyp4iciuRMStuW1KyLa2tJElMzrdfkviT8tQp21KW8EA== +-----END CERTIFICATE----- + +TUBITAK Kamu SM SSL Kok Sertifikasi - Surum 1 +============================================= +-----BEGIN CERTIFICATE----- +MIIEYzCCA0ugAwIBAgIBATANBgkqhkiG9w0BAQsFADCB0jELMAkGA1UEBhMCVFIxGDAWBgNVBAcT +D0dlYnplIC0gS29jYWVsaTFCMEAGA1UEChM5VHVya2l5ZSBCaWxpbXNlbCB2ZSBUZWtub2xvamlr +IEFyYXN0aXJtYSBLdXJ1bXUgLSBUVUJJVEFLMS0wKwYDVQQLEyRLYW11IFNlcnRpZmlrYXN5b24g +TWVya2V6aSAtIEthbXUgU00xNjA0BgNVBAMTLVRVQklUQUsgS2FtdSBTTSBTU0wgS29rIFNlcnRp +ZmlrYXNpIC0gU3VydW0gMTAeFw0xMzExMjUwODI1NTVaFw00MzEwMjUwODI1NTVaMIHSMQswCQYD +VQQGEwJUUjEYMBYGA1UEBxMPR2ViemUgLSBLb2NhZWxpMUIwQAYDVQQKEzlUdXJraXllIEJpbGlt +c2VsIHZlIFRla25vbG9qaWsgQXJhc3Rpcm1hIEt1cnVtdSAtIFRVQklUQUsxLTArBgNVBAsTJEth +bXUgU2VydGlmaWthc3lvbiBNZXJrZXppIC0gS2FtdSBTTTE2MDQGA1UEAxMtVFVCSVRBSyBLYW11 +IFNNIFNTTCBLb2sgU2VydGlmaWthc2kgLSBTdXJ1bSAxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A +MIIBCgKCAQEAr3UwM6q7a9OZLBI3hNmNe5eA027n/5tQlT6QlVZC1xl8JoSNkvoBHToP4mQ4t4y8 +6Ij5iySrLqP1N+RAjhgleYN1Hzv/bKjFxlb4tO2KRKOrbEz8HdDc72i9z+SqzvBV96I01INrN3wc +wv61A+xXzry0tcXtAA9TNypN9E8Mg/uGz8v+jE69h/mniyFXnHrfA2eJLJ2XYacQuFWQfw4tJzh0 +3+f92k4S400VIgLI4OD8D62K18lUUMw7D8oWgITQUVbDjlZ/iSIzL+aFCr2lqBs23tPcLG07xxO9 +WSMs5uWk99gL7eqQQESolbuT1dCANLZGeA4fAJNG4e7p+exPFwIDAQABo0IwQDAdBgNVHQ4EFgQU +ZT/HiobGPN08VFw1+DrtUgxHV8gwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJ +KoZIhvcNAQELBQADggEBACo/4fEyjq7hmFxLXs9rHmoJ0iKpEsdeV31zVmSAhHqT5Am5EM2fKifh +AHe+SMg1qIGf5LgsyX8OsNJLN13qudULXjS99HMpw+0mFZx+CFOKWI3QSyjfwbPfIPP54+M638yc +lNhOT8NrF7f3cuitZjO1JVOr4PhMqZ398g26rrnZqsZr+ZO7rqu4lzwDGrpDxpa5RXI4s6ehlj2R +e37AIVNMh+3yC1SVUZPVIqUNivGTDj5UDrDYyU7c8jEyVupk+eq1nRZmQnLzf9OxMUP8pI4X8W0j +q5Rm+K37DwhuJi1/FwcJsoz7UMCflo3Ptv0AnVoUmr8CRPXBwp8iXqIPoeM= +-----END CERTIFICATE----- + +GDCA TrustAUTH R5 ROOT +====================== +-----BEGIN CERTIFICATE----- +MIIFiDCCA3CgAwIBAgIIfQmX/vBH6nowDQYJKoZIhvcNAQELBQAwYjELMAkGA1UEBhMCQ04xMjAw +BgNVBAoMKUdVQU5HIERPTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZIENPLixMVEQuMR8wHQYDVQQD +DBZHRENBIFRydXN0QVVUSCBSNSBST09UMB4XDTE0MTEyNjA1MTMxNVoXDTQwMTIzMTE1NTk1OVow +YjELMAkGA1UEBhMCQ04xMjAwBgNVBAoMKUdVQU5HIERPTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZ +IENPLixMVEQuMR8wHQYDVQQDDBZHRENBIFRydXN0QVVUSCBSNSBST09UMIICIjANBgkqhkiG9w0B +AQEFAAOCAg8AMIICCgKCAgEA2aMW8Mh0dHeb7zMNOwZ+Vfy1YI92hhJCfVZmPoiC7XJjDp6L3TQs +AlFRwxn9WVSEyfFrs0yw6ehGXTjGoqcuEVe6ghWinI9tsJlKCvLriXBjTnnEt1u9ol2x8kECK62p +OqPseQrsXzrj/e+APK00mxqriCZ7VqKChh/rNYmDf1+uKU49tm7srsHwJ5uu4/Ts765/94Y9cnrr +pftZTqfrlYwiOXnhLQiPzLyRuEH3FMEjqcOtmkVEs7LXLM3GKeJQEK5cy4KOFxg2fZfmiJqwTTQJ +9Cy5WmYqsBebnh52nUpmMUHfP/vFBu8btn4aRjb3ZGM74zkYI+dndRTVdVeSN72+ahsmUPI2JgaQ +xXABZG12ZuGR224HwGGALrIuL4xwp9E7PLOR5G62xDtw8mySlwnNR30YwPO7ng/Wi64HtloPzgsM +R6flPri9fcebNaBhlzpBdRfMK5Z3KpIhHtmVdiBnaM8Nvd/WHwlqmuLMc3GkL30SgLdTMEZeS1SZ +D2fJpcjyIMGC7J0R38IC+xo70e0gmu9lZJIQDSri3nDxGGeCjGHeuLzRL5z7D9Ar7Rt2ueQ5Vfj4 +oR24qoAATILnsn8JuLwwoC8N9VKejveSswoAHQBUlwbgsQfZxw9cZX08bVlX5O2ljelAU58VS6Bx +9hoh49pwBiFYFIeFd3mqgnkCAwEAAaNCMEAwHQYDVR0OBBYEFOLJQJ9NzuiaoXzPDj9lxSmIahlR +MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBCwUAA4ICAQDRSVfg +p8xoWLoBDysZzY2wYUWsEe1jUGn4H3++Fo/9nesLqjJHdtJnJO29fDMylyrHBYZmDRd9FBUb1Ov9 +H5r2XpdptxolpAqzkT9fNqyL7FeoPueBihhXOYV0GkLH6VsTX4/5COmSdI31R9KrO9b7eGZONn35 +6ZLpBN79SWP8bfsUcZNnL0dKt7n/HipzcEYwv1ryL3ml4Y0M2fmyYzeMN2WFcGpcWwlyua1jPLHd ++PwyvzeG5LuOmCd+uh8W4XAR8gPfJWIyJyYYMoSf/wA6E7qaTfRPuBRwIrHKK5DOKcFw9C+df/KQ +HtZa37dG/OaG+svgIHZ6uqbL9XzeYqWxi+7egmaKTjowHz+Ay60nugxe19CxVsp3cbK1daFQqUBD +F8Io2c9Si1vIY9RCPqAzekYu9wogRlR+ak8x8YF+QnQ4ZXMn7sZ8uI7XpTrXmKGcjBBV09tL7ECQ +8s1uV9JiDnxXk7Gnbc2dg7sq5+W2O3FYrf3RRbxake5TFW/TRQl1brqQXR4EzzffHqhmsYzmIGrv +/EhOdJhCrylvLmrH+33RZjEizIYAfmaDDEL0vTSSwxrqT8p+ck0LcIymSLumoRT2+1hEmRSuqguT +aaApJUqlyyvdimYHFngVV3Eb7PVHhPOeMTd61X8kreS8/f3MboPoDKi3QWwH3b08hpcv0g== +-----END CERTIFICATE----- + +TrustCor RootCert CA-1 +====================== +-----BEGIN CERTIFICATE----- +MIIEMDCCAxigAwIBAgIJANqb7HHzA7AZMA0GCSqGSIb3DQEBCwUAMIGkMQswCQYDVQQGEwJQQTEP +MA0GA1UECAwGUGFuYW1hMRQwEgYDVQQHDAtQYW5hbWEgQ2l0eTEkMCIGA1UECgwbVHJ1c3RDb3Ig +U3lzdGVtcyBTLiBkZSBSLkwuMScwJQYDVQQLDB5UcnVzdENvciBDZXJ0aWZpY2F0ZSBBdXRob3Jp +dHkxHzAdBgNVBAMMFlRydXN0Q29yIFJvb3RDZXJ0IENBLTEwHhcNMTYwMjA0MTIzMjE2WhcNMjkx +MjMxMTcyMzE2WjCBpDELMAkGA1UEBhMCUEExDzANBgNVBAgMBlBhbmFtYTEUMBIGA1UEBwwLUGFu +YW1hIENpdHkxJDAiBgNVBAoMG1RydXN0Q29yIFN5c3RlbXMgUy4gZGUgUi5MLjEnMCUGA1UECwwe +VHJ1c3RDb3IgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MR8wHQYDVQQDDBZUcnVzdENvciBSb290Q2Vy +dCBDQS0xMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAv463leLCJhJrMxnHQFgKq1mq +jQCj/IDHUHuO1CAmujIS2CNUSSUQIpidRtLByZ5OGy4sDjjzGiVoHKZaBeYei0i/mJZ0PmnK6bV4 +pQa81QBeCQryJ3pS/C3Vseq0iWEk8xoT26nPUu0MJLq5nux+AHT6k61sKZKuUbS701e/s/OojZz0 +JEsq1pme9J7+wH5COucLlVPat2gOkEz7cD+PSiyU8ybdY2mplNgQTsVHCJCZGxdNuWxu72CVEY4h +gLW9oHPY0LJ3xEXqWib7ZnZ2+AYfYW0PVcWDtxBWcgYHpfOxGgMFZA6dWorWhnAbJN7+KIor0Gqw +/Hqi3LJ5DotlDwIDAQABo2MwYTAdBgNVHQ4EFgQU7mtJPHo/DeOxCbeKyKsZn3MzUOcwHwYDVR0j +BBgwFoAU7mtJPHo/DeOxCbeKyKsZn3MzUOcwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC +AYYwDQYJKoZIhvcNAQELBQADggEBACUY1JGPE+6PHh0RU9otRCkZoB5rMZ5NDp6tPVxBb5UrJKF5 +mDo4Nvu7Zp5I/5CQ7z3UuJu0h3U/IJvOcs+hVcFNZKIZBqEHMwwLKeXx6quj7LUKdJDHfXLy11yf +ke+Ri7fc7Waiz45mO7yfOgLgJ90WmMCV1Aqk5IGadZQ1nJBfiDcGrVmVCrDRZ9MZyonnMlo2HD6C +qFqTvsbQZJG2z9m2GM/bftJlo6bEjhcxwft+dtvTheNYsnd6djtsL1Ac59v2Z3kf9YKVmgenFK+P +3CghZwnS1k1aHBkcjndcw5QkPTJrS37UeJSDvjdNzl/HHk484IkzlQsPpTLWPFp5LBk= +-----END CERTIFICATE----- + +TrustCor RootCert CA-2 +====================== +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- + +TrustCor ECA-1 +============== +-----BEGIN CERTIFICATE----- +MIIEIDCCAwigAwIBAgIJAISCLF8cYtBAMA0GCSqGSIb3DQEBCwUAMIGcMQswCQYDVQQGEwJQQTEP +MA0GA1UECAwGUGFuYW1hMRQwEgYDVQQHDAtQYW5hbWEgQ2l0eTEkMCIGA1UECgwbVHJ1c3RDb3Ig +U3lzdGVtcyBTLiBkZSBSLkwuMScwJQYDVQQLDB5UcnVzdENvciBDZXJ0aWZpY2F0ZSBBdXRob3Jp +dHkxFzAVBgNVBAMMDlRydXN0Q29yIEVDQS0xMB4XDTE2MDIwNDEyMzIzM1oXDTI5MTIzMTE3Mjgw +N1owgZwxCzAJBgNVBAYTAlBBMQ8wDQYDVQQIDAZQYW5hbWExFDASBgNVBAcMC1BhbmFtYSBDaXR5 +MSQwIgYDVQQKDBtUcnVzdENvciBTeXN0ZW1zIFMuIGRlIFIuTC4xJzAlBgNVBAsMHlRydXN0Q29y +IENlcnRpZmljYXRlIEF1dGhvcml0eTEXMBUGA1UEAwwOVHJ1c3RDb3IgRUNBLTEwggEiMA0GCSqG +SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDPj+ARtZ+odnbb3w9U73NjKYKtR8aja+3+XzP4Q1HpGjOR +MRegdMTUpwHmspI+ap3tDvl0mEDTPwOABoJA6LHip1GnHYMma6ve+heRK9jGrB6xnhkB1Zem6g23 +xFUfJ3zSCNV2HykVh0A53ThFEXXQmqc04L/NyFIduUd+Dbi7xgz2c1cWWn5DkR9VOsZtRASqnKmc +p0yJF4OuowReUoCLHhIlERnXDH19MURB6tuvsBzvgdAsxZohmz3tQjtQJvLsznFhBmIhVE5/wZ0+ +fyCMgMsq2JdiyIMzkX2woloPV+g7zPIlstR8L+xNxqE6FXrntl019fZISjZFZtS6mFjBAgMBAAGj +YzBhMB0GA1UdDgQWBBREnkj1zG1I1KBLf/5ZJC+Dl5mahjAfBgNVHSMEGDAWgBREnkj1zG1I1KBL +f/5ZJC+Dl5mahjAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsF +AAOCAQEABT41XBVwm8nHc2FvcivUwo/yQ10CzsSUuZQRg2dd4mdsdXa/uwyqNsatR5Nj3B5+1t4u +/ukZMjgDfxT2AHMsWbEhBuH7rBiVDKP/mZb3Kyeb1STMHd3BOuCYRLDE5D53sXOpZCz2HAF8P11F +hcCF5yWPldwX8zyfGm6wyuMdKulMY/okYWLW2n62HGz1Ah3UKt1VkOsqEUc8Ll50soIipX1TH0Xs +J5F95yIW6MBoNtjG8U+ARDL54dHRHareqKucBK+tIA5kmE2la8BIWJZpTdwHjFGTot+fDz2LYLSC +jaoITmJF4PkL0uDgPFveXHEnJcLmA4GLEFPjx1WitJ/X5g== +-----END CERTIFICATE----- + +SSL.com Root Certification Authority RSA +======================================== +-----BEGIN CERTIFICATE----- +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 +WuuA8ShYIc2wBlX7Jz9TkHCpBB5XJ7k= +-----END CERTIFICATE----- + +SSL.com Root Certification Authority ECC +======================================== +-----BEGIN CERTIFICATE----- +MIICjTCCAhSgAwIBAgIIdebfy8FoW6gwCgYIKoZIzj0EAwIwfDELMAkGA1UEBhMCVVMxDjAMBgNV +BAgMBVRleGFzMRAwDgYDVQQHDAdIb3VzdG9uMRgwFgYDVQQKDA9TU0wgQ29ycG9yYXRpb24xMTAv +BgNVBAMMKFNTTC5jb20gUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSBFQ0MwHhcNMTYwMjEy +MTgxNDAzWhcNNDEwMjEyMTgxNDAzWjB8MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxEDAO +BgNVBAcMB0hvdXN0b24xGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjExMC8GA1UEAwwoU1NMLmNv +bSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IEVDQzB2MBAGByqGSM49AgEGBSuBBAAiA2IA +BEVuqVDEpiM2nl8ojRfLliJkP9x6jh3MCLOicSS6jkm5BBtHllirLZXI7Z4INcgn64mMU1jrYor+ +8FsPazFSY0E7ic3s7LaNGdM0B9y7xgZ/wkWV7Mt/qCPgCemB+vNH06NjMGEwHQYDVR0OBBYEFILR +hXMw5zUE044CkvvlpNHEIejNMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUgtGFczDnNQTT +jgKS++Wk0cQh6M0wDgYDVR0PAQH/BAQDAgGGMAoGCCqGSM49BAMCA2cAMGQCMG/n61kRpGDPYbCW +e+0F+S8Tkdzt5fxQaxFGRrMcIQBiu77D5+jNB5n5DQtdcj7EqgIwH7y6C+IwJPt8bYBVCpk+gA0z +5Wajs6O7pdWLjwkspl1+4vAHCGht0nxpbl/f5Wpl +-----END CERTIFICATE----- + +SSL.com EV Root Certification Authority RSA R2 +============================================== +-----BEGIN CERTIFICATE----- +MIIF6zCCA9OgAwIBAgIIVrYpzTS8ePYwDQYJKoZIhvcNAQELBQAwgYIxCzAJBgNVBAYTAlVTMQ4w +DAYDVQQIDAVUZXhhczEQMA4GA1UEBwwHSG91c3RvbjEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9u +MTcwNQYDVQQDDC5TU0wuY29tIEVWIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgUlNBIFIy +MB4XDTE3MDUzMTE4MTQzN1oXDTQyMDUzMDE4MTQzN1owgYIxCzAJBgNVBAYTAlVTMQ4wDAYDVQQI +DAVUZXhhczEQMA4GA1UEBwwHSG91c3RvbjEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9uMTcwNQYD +VQQDDC5TU0wuY29tIEVWIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgUlNBIFIyMIICIjAN +BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAjzZlQOHWTcDXtOlG2mvqM0fNTPl9fb69LT3w23jh +hqXZuglXaO1XPqDQCEGD5yhBJB/jchXQARr7XnAjssufOePPxU7Gkm0mxnu7s9onnQqG6YE3Bf7w +cXHswxzpY6IXFJ3vG2fThVUCAtZJycxa4bH3bzKfydQ7iEGonL3Lq9ttewkfokxykNorCPzPPFTO +Zw+oz12WGQvE43LrrdF9HSfvkusQv1vrO6/PgN3B0pYEW3p+pKk8OHakYo6gOV7qd89dAFmPZiw+ +B6KjBSYRaZfqhbcPlgtLyEDhULouisv3D5oi53+aNxPN8k0TayHRwMwi8qFG9kRpnMphNQcAb9Zh +CBHqurj26bNg5U257J8UZslXWNvNh2n4ioYSA0e/ZhN2rHd9NCSFg83XqpyQGp8hLH94t2S42Oim +9HizVcuE0jLEeK6jj2HdzghTreyI/BXkmg3mnxp3zkyPuBQVPWKchjgGAGYS5Fl2WlPAApiiECto +RHuOec4zSnaqW4EWG7WK2NAAe15itAnWhmMOpgWVSbooi4iTsjQc2KRVbrcc0N6ZVTsj9CLg+Slm +JuwgUHfbSguPvuUCYHBBXtSuUDkiFCbLsjtzdFVHB3mBOagwE0TlBIqulhMlQg+5U8Sb/M3kHN48 ++qvWBkofZ6aYMBzdLNvcGJVXZsb/XItW9XcCAwEAAaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAfBgNV +HSMEGDAWgBT5YLvU49U09rj1BoAlp3PbRmmonjAdBgNVHQ4EFgQU+WC71OPVNPa49QaAJadz20Zp +qJ4wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBCwUAA4ICAQBWs47LCp1Jjr+kxJG7ZhcFUZh1 +++VQLHqe8RT6q9OKPv+RKY9ji9i0qVQBDb6Thi/5Sm3HXvVX+cpVHBK+Rw82xd9qt9t1wkclf7nx +Y/hoLVUE0fKNsKTPvDxeH3jnpaAgcLAExbf3cqfeIg29MyVGjGSSJuM+LmOW2puMPfgYCdcDzH2G +guDKBAdRUNf/ktUM79qGn5nX67evaOI5JpS6aLe/g9Pqemc9YmeuJeVy6OLk7K4S9ksrPJ/psEDz +OFSz/bdoyNrGj1E8svuR3Bznm53htw1yj+KkxKl4+esUrMZDBcJlOSgYAsOCsp0FvmXtll9ldDz7 +CTUue5wT/RsPXcdtgTpWD8w74a8CLyKsRspGPKAcTNZEtF4uXBVmCeEmKf7GUmG6sXP/wwyc5Wxq +lD8UykAWlYTzWamsX0xhk23RO8yilQwipmdnRC652dKKQbNmC1r7fSOl8hqw/96bg5Qu0T/fkreR +rwU7ZcegbLHNYhLDkBvjJc40vG93drEQw/cFGsDWr3RiSBd3kmmQYRzelYB0VI8YHMPzA9C/pEN1 +hlMYegouCRw2n5H9gooiS9EOUCXdywMMF8mDAAhONU2Ki+3wApRmLER/y5UnlhetCTCstnEXbosX +9hwJ1C07mKVx01QT2WDz9UtmT/rx7iASjbSsV7FFY6GsdqnC+w== +-----END CERTIFICATE----- + +SSL.com EV Root Certification Authority ECC +=========================================== +-----BEGIN CERTIFICATE----- +MIIClDCCAhqgAwIBAgIILCmcWxbtBZUwCgYIKoZIzj0EAwIwfzELMAkGA1UEBhMCVVMxDjAMBgNV +BAgMBVRleGFzMRAwDgYDVQQHDAdIb3VzdG9uMRgwFgYDVQQKDA9TU0wgQ29ycG9yYXRpb24xNDAy +BgNVBAMMK1NTTC5jb20gRVYgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSBFQ0MwHhcNMTYw +MjEyMTgxNTIzWhcNNDEwMjEyMTgxNTIzWjB/MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMx +EDAOBgNVBAcMB0hvdXN0b24xGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjE0MDIGA1UEAwwrU1NM +LmNvbSBFViBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IEVDQzB2MBAGByqGSM49AgEGBSuB +BAAiA2IABKoSR5CYG/vvw0AHgyBO8TCCogbR8pKGYfL2IWjKAMTH6kMAVIbc/R/fALhBYlzccBYy +3h+Z1MzFB8gIH2EWB1E9fVwHU+M1OIzfzZ/ZLg1KthkuWnBaBu2+8KGwytAJKaNjMGEwHQYDVR0O +BBYEFFvKXuXe0oGqzagtZFG22XKbl+ZPMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUW8pe +5d7SgarNqC1kUbbZcpuX5k8wDgYDVR0PAQH/BAQDAgGGMAoGCCqGSM49BAMCA2gAMGUCMQCK5kCJ +N+vp1RPZytRrJPOwPYdGWBrssd9v+1a6cGvHOMzosYxPD/fxZ3YOg9AeUY8CMD32IygmTMZgh5Mm +m7I1HrrW9zzRHM76JTymGoEVW/MSD2zuZYrJh6j5B+BimoxcSg== +-----END CERTIFICATE----- + +GlobalSign Root CA - R6 +======================= +-----BEGIN CERTIFICATE----- +MIIFgzCCA2ugAwIBAgIORea7A4Mzw4VlSOb/RVEwDQYJKoZIhvcNAQEMBQAwTDEgMB4GA1UECxMX +R2xvYmFsU2lnbiBSb290IENBIC0gUjYxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkds +b2JhbFNpZ24wHhcNMTQxMjEwMDAwMDAwWhcNMzQxMjEwMDAwMDAwWjBMMSAwHgYDVQQLExdHbG9i +YWxTaWduIFJvb3QgQ0EgLSBSNjETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFs +U2lnbjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAJUH6HPKZvnsFMp7PPcNCPG0RQss +grRIxutbPK6DuEGSMxSkb3/pKszGsIhrxbaJ0cay/xTOURQh7ErdG1rG1ofuTToVBu1kZguSgMpE +3nOUTvOniX9PeGMIyBJQbUJmL025eShNUhqKGoC3GYEOfsSKvGRMIRxDaNc9PIrFsmbVkJq3MQbF +vuJtMgamHvm566qjuL++gmNQ0PAYid/kD3n16qIfKtJwLnvnvJO7bVPiSHyMEAc4/2ayd2F+4OqM +PKq0pPbzlUoSB239jLKJz9CgYXfIWHSw1CM69106yqLbnQneXUQtkPGBzVeS+n68UARjNN9rkxi+ +azayOeSsJDa38O+2HBNXk7besvjihbdzorg1qkXy4J02oW9UivFyVm4uiMVRQkQVlO6jxTiWm05O +WgtH8wY2SXcwvHE35absIQh1/OZhFj931dmRl4QKbNQCTXTAFO39OfuD8l4UoQSwC+n+7o/hbguy +CLNhZglqsQY6ZZZZwPA1/cnaKI0aEYdwgQqomnUdnjqGBQCe24DWJfncBZ4nWUx2OVvq+aWh2IMP +0f/fMBH5hc8zSPXKbWQULHpYT9NLCEnFlWQaYw55PfWzjMpYrZxCRXluDocZXFSxZba/jJvcE+kN +b7gu3GduyYsRtYQUigAZcIN5kZeR1BonvzceMgfYFGM8KEyvAgMBAAGjYzBhMA4GA1UdDwEB/wQE +AwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSubAWjkxPioufi1xzWx/B/yGdToDAfBgNV +HSMEGDAWgBSubAWjkxPioufi1xzWx/B/yGdToDANBgkqhkiG9w0BAQwFAAOCAgEAgyXt6NH9lVLN +nsAEoJFp5lzQhN7craJP6Ed41mWYqVuoPId8AorRbrcWc+ZfwFSY1XS+wc3iEZGtIxg93eFyRJa0 +lV7Ae46ZeBZDE1ZXs6KzO7V33EByrKPrmzU+sQghoefEQzd5Mr6155wsTLxDKZmOMNOsIeDjHfrY +BzN2VAAiKrlNIC5waNrlU/yDXNOd8v9EDERm8tLjvUYAGm0CuiVdjaExUd1URhxN25mW7xocBFym +Fe944Hn+Xds+qkxV/ZoVqW/hpvvfcDDpw+5CRu3CkwWJ+n1jez/QcYF8AOiYrg54NMMl+68KnyBr +3TsTjxKM4kEaSHpzoHdpx7Zcf4LIHv5YGygrqGytXm3ABdJ7t+uA/iU3/gKbaKxCXcPu9czc8FB1 +0jZpnOZ7BN9uBmm23goJSFmH63sUYHpkqmlD75HHTOwY3WzvUy2MmeFe8nI+z1TIvWfspA9MRf/T +uTAjB0yPEL+GltmZWrSZVxykzLsViVO6LAUP5MSeGbEYNNVMnbrt9x+vJJUEeKgDu+6B5dpffItK +oZB0JaezPkvILFa9x8jvOOJckvB595yEunQtYQEgfn7R8k8HWV+LLUNS60YMlOH1Zkd5d9VUWx+t +JDfLRVpOoERIyNiwmcUVhAn21klJwGW45hpxbqCo8YLoRT5s1gLXCmeDBVrJpBA= +-----END CERTIFICATE----- + +OISTE WISeKey Global Root GC CA +=============================== +-----BEGIN CERTIFICATE----- +MIICaTCCAe+gAwIBAgIQISpWDK7aDKtARb8roi066jAKBggqhkjOPQQDAzBtMQswCQYDVQQGEwJD +SDEQMA4GA1UEChMHV0lTZUtleTEiMCAGA1UECxMZT0lTVEUgRm91bmRhdGlvbiBFbmRvcnNlZDEo +MCYGA1UEAxMfT0lTVEUgV0lTZUtleSBHbG9iYWwgUm9vdCBHQyBDQTAeFw0xNzA1MDkwOTQ4MzRa +Fw00MjA1MDkwOTU4MzNaMG0xCzAJBgNVBAYTAkNIMRAwDgYDVQQKEwdXSVNlS2V5MSIwIAYDVQQL +ExlPSVNURSBGb3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBXSVNlS2V5IEdsb2Jh +bCBSb290IEdDIENBMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAETOlQwMYPchi82PG6s4nieUqjFqdr +VCTbUf/q9Akkwwsin8tqJ4KBDdLArzHkdIJuyiXZjHWd8dvQmqJLIX4Wp2OQ0jnUsYd4XxiWD1Ab +NTcPasbc2RNNpI6QN+a9WzGRo1QwUjAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAd +BgNVHQ4EFgQUSIcUrOPDnpBgOtfKie7TrYy0UGYwEAYJKwYBBAGCNxUBBAMCAQAwCgYIKoZIzj0E +AwMDaAAwZQIwJsdpW9zV57LnyAyMjMPdeYwbY9XJUpROTYJKcx6ygISpJcBMWm1JKWB4E+J+SOtk +AjEA2zQgMgj/mkkCtojeFK9dbJlxjRo/i9fgojaGHAeCOnZT/cKi7e97sIBPWA9LUzm9 +-----END CERTIFICATE----- + +UCA Global G2 Root +================== +-----BEGIN CERTIFICATE----- +MIIFRjCCAy6gAwIBAgIQXd+x2lqj7V2+WmUgZQOQ7zANBgkqhkiG9w0BAQsFADA9MQswCQYDVQQG +EwJDTjERMA8GA1UECgwIVW5pVHJ1c3QxGzAZBgNVBAMMElVDQSBHbG9iYWwgRzIgUm9vdDAeFw0x +NjAzMTEwMDAwMDBaFw00MDEyMzEwMDAwMDBaMD0xCzAJBgNVBAYTAkNOMREwDwYDVQQKDAhVbmlU +cnVzdDEbMBkGA1UEAwwSVUNBIEdsb2JhbCBHMiBSb290MIICIjANBgkqhkiG9w0BAQEFAAOCAg8A +MIICCgKCAgEAxeYrb3zvJgUno4Ek2m/LAfmZmqkywiKHYUGRO8vDaBsGxUypK8FnFyIdK+35KYmT +oni9kmugow2ifsqTs6bRjDXVdfkX9s9FxeV67HeToI8jrg4aA3++1NDtLnurRiNb/yzmVHqUwCoV +8MmNsHo7JOHXaOIxPAYzRrZUEaalLyJUKlgNAQLx+hVRZ2zA+te2G3/RVogvGjqNO7uCEeBHANBS +h6v7hn4PJGtAnTRnvI3HLYZveT6OqTwXS3+wmeOwcWDcC/Vkw85DvG1xudLeJ1uK6NjGruFZfc8o +LTW4lVYa8bJYS7cSN8h8s+1LgOGN+jIjtm+3SJUIsUROhYw6AlQgL9+/V087OpAh18EmNVQg7Mc/ +R+zvWr9LesGtOxdQXGLYD0tK3Cv6brxzks3sx1DoQZbXqX5t2Okdj4q1uViSukqSKwxW/YDrCPBe +KW4bHAyvj5OJrdu9o54hyokZ7N+1wxrrFv54NkzWbtA+FxyQF2smuvt6L78RHBgOLXMDj6DlNaBa +4kx1HXHhOThTeEDMg5PXCp6dW4+K5OXgSORIskfNTip1KnvyIvbJvgmRlld6iIis7nCs+dwp4wwc +OxJORNanTrAmyPPZGpeRaOrvjUYG0lZFWJo8DA+DuAUlwznPO6Q0ibd5Ei9Hxeepl2n8pndntd97 +8XplFeRhVmUCAwEAAaNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0O +BBYEFIHEjMz15DD/pQwIX4wVZyF0Ad/fMA0GCSqGSIb3DQEBCwUAA4ICAQATZSL1jiutROTL/7lo +5sOASD0Ee/ojL3rtNtqyzm325p7lX1iPyzcyochltq44PTUbPrw7tgTQvPlJ9Zv3hcU2tsu8+Mg5 +1eRfB70VVJd0ysrtT7q6ZHafgbiERUlMjW+i67HM0cOU2kTC5uLqGOiiHycFutfl1qnN3e92mI0A +Ds0b+gO3joBYDic/UvuUospeZcnWhNq5NXHzJsBPd+aBJ9J3O5oUb3n09tDh05S60FdRvScFDcH9 +yBIw7m+NESsIndTUv4BFFJqIRNow6rSn4+7vW4LVPtateJLbXDzz2K36uGt/xDYotgIVilQsnLAX +c47QN6MUPJiVAAwpBVueSUmxX8fjy88nZY41F7dXyDDZQVu5FLbowg+UMaeUmMxq67XhJ/UQqAHo +jhJi6IjMtX9Gl8CbEGY4GjZGXyJoPd/JxhMnq1MGrKI8hgZlb7F+sSlEmqO6SWkoaY/X5V+tBIZk +bxqgDMUIYs6Ao9Dz7GjevjPHF1t/gMRMTLGmhIrDO7gJzRSBuhjjVFc2/tsvfEehOjPI+Vg7RE+x +ygKJBJYoaMVLuCaJu9YzL1DV/pqJuhgyklTGW+Cd+V7lDSKb9triyCGyYiGqhkCyLmTTX8jjfhFn +RR8F/uOi77Oos/N9j/gMHyIfLXC0uAE0djAA5SN4p1bXUB+K+wb1whnw0A== +-----END CERTIFICATE----- + +UCA Extended Validation Root +============================ +-----BEGIN CERTIFICATE----- +MIIFWjCCA0KgAwIBAgIQT9Irj/VkyDOeTzRYZiNwYDANBgkqhkiG9w0BAQsFADBHMQswCQYDVQQG +EwJDTjERMA8GA1UECgwIVW5pVHJ1c3QxJTAjBgNVBAMMHFVDQSBFeHRlbmRlZCBWYWxpZGF0aW9u +IFJvb3QwHhcNMTUwMzEzMDAwMDAwWhcNMzgxMjMxMDAwMDAwWjBHMQswCQYDVQQGEwJDTjERMA8G +A1UECgwIVW5pVHJ1c3QxJTAjBgNVBAMMHFVDQSBFeHRlbmRlZCBWYWxpZGF0aW9uIFJvb3QwggIi +MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCpCQcoEwKwmeBkqh5DFnpzsZGgdT6o+uM4AHrs +iWogD4vFsJszA1qGxliG1cGFu0/GnEBNyr7uaZa4rYEwmnySBesFK5pI0Lh2PpbIILvSsPGP2KxF +Rv+qZ2C0d35qHzwaUnoEPQc8hQ2E0B92CvdqFN9y4zR8V05WAT558aopO2z6+I9tTcg1367r3CTu +eUWnhbYFiN6IXSV8l2RnCdm/WhUFhvMJHuxYMjMR83dksHYf5BA1FxvyDrFspCqjc/wJHx4yGVMR +59mzLC52LqGj3n5qiAno8geK+LLNEOfic0CTuwjRP+H8C5SzJe98ptfRr5//lpr1kXuYC3fUfugH +0mK1lTnj8/FtDw5lhIpjVMWAtuCeS31HJqcBCF3RiJ7XwzJE+oJKCmhUfzhTA8ykADNkUVkLo4KR +el7sFsLzKuZi2irbWWIQJUoqgQtHB0MGcIfS+pMRKXpITeuUx3BNr2fVUbGAIAEBtHoIppB/TuDv +B0GHr2qlXov7z1CymlSvw4m6WC31MJixNnI5fkkE/SmnTHnkBVfblLkWU41Gsx2VYVdWf6/wFlth +WG82UBEL2KwrlRYaDh8IzTY0ZRBiZtWAXxQgXy0MoHgKaNYs1+lvK9JKBZP8nm9rZ/+I8U6laUpS +NwXqxhaN0sSZ0YIrO7o1dfdRUVjzyAfd5LQDfwIDAQABo0IwQDAdBgNVHQ4EFgQU2XQ65DA9DfcS +3H5aBZ8eNJr34RQwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAYYwDQYJKoZIhvcNAQEL +BQADggIBADaNl8xCFWQpN5smLNb7rhVpLGsaGvdftvkHTFnq88nIua7Mui563MD1sC3AO6+fcAUR +ap8lTwEpcOPlDOHqWnzcSbvBHiqB9RZLcpHIojG5qtr8nR/zXUACE/xOHAbKsxSQVBcZEhrxH9cM +aVr2cXj0lH2RC47skFSOvG+hTKv8dGT9cZr4QQehzZHkPJrgmzI5c6sq1WnIeJEmMX3ixzDx/BR4 +dxIOE/TdFpS/S2d7cFOFyrC78zhNLJA5wA3CXWvp4uXViI3WLL+rG761KIcSF3Ru/H38j9CHJrAb ++7lsq+KePRXBOy5nAliRn+/4Qh8st2j1da3Ptfb/EX3C8CSlrdP6oDyp+l3cpaDvRKS+1ujl5BOW +F3sGPjLtx7dCvHaj2GU4Kzg1USEODm8uNBNA4StnDG1KQTAYI1oyVZnJF+A83vbsea0rWBmirSwi +GpWOvpaQXUJXxPkUAzUrHC1RVwinOt4/5Mi0A3PCwSaAuwtCH60NryZy2sy+s6ODWA2CxR9GUeOc +GMyNm43sSet1UNWMKFnKdDTajAshqx7qG+XH/RU+wBeq+yNuJkbL+vmxcmtpzyKEC2IPrNkZAJSi +djzULZrtBJ4tBmIQN1IchXIbJ+XMxjHsN+xjWZsLHXbMfjKaiJUINlK73nZfdklJrX+9ZSCyycEr +dhh2n1ax +-----END CERTIFICATE----- + +Certigna Root CA +================ +-----BEGIN CERTIFICATE----- +MIIGWzCCBEOgAwIBAgIRAMrpG4nxVQMNo+ZBbcTjpuEwDQYJKoZIhvcNAQELBQAwWjELMAkGA1UE +BhMCRlIxEjAQBgNVBAoMCURoaW15b3RpczEcMBoGA1UECwwTMDAwMiA0ODE0NjMwODEwMDAzNjEZ +MBcGA1UEAwwQQ2VydGlnbmEgUm9vdCBDQTAeFw0xMzEwMDEwODMyMjdaFw0zMzEwMDEwODMyMjda +MFoxCzAJBgNVBAYTAkZSMRIwEAYDVQQKDAlEaGlteW90aXMxHDAaBgNVBAsMEzAwMDIgNDgxNDYz +MDgxMDAwMzYxGTAXBgNVBAMMEENlcnRpZ25hIFJvb3QgQ0EwggIiMA0GCSqGSIb3DQEBAQUAA4IC +DwAwggIKAoICAQDNGDllGlmx6mQWDoyUJJV8g9PFOSbcDO8WV43X2KyjQn+Cyu3NW9sOty3tRQgX +stmzy9YXUnIo245Onoq2C/mehJpNdt4iKVzSs9IGPjA5qXSjklYcoW9MCiBtnyN6tMbaLOQdLNyz +KNAT8kxOAkmhVECe5uUFoC2EyP+YbNDrihqECB63aCPuI9Vwzm1RaRDuoXrC0SIxwoKF0vJVdlB8 +JXrJhFwLrN1CTivngqIkicuQstDuI7pmTLtipPlTWmR7fJj6o0ieD5Wupxj0auwuA0Wv8HT4Ks16 +XdG+RCYyKfHx9WzMfgIhC59vpD++nVPiz32pLHxYGpfhPTc3GGYo0kDFUYqMwy3OU4gkWGQwFsWq +4NYKpkDfePb1BHxpE4S80dGnBs8B92jAqFe7OmGtBIyT46388NtEbVncSVmurJqZNjBBe3YzIoej +wpKGbvlw7q6Hh5UbxHq9MfPU0uWZ/75I7HX1eBYdpnDBfzwboZL7z8g81sWTCo/1VTp2lc5ZmIoJ +lXcymoO6LAQ6l73UL77XbJuiyn1tJslV1c/DeVIICZkHJC1kJWumIWmbat10TWuXekG9qxf5kBdI +jzb5LdXF2+6qhUVB+s06RbFo5jZMm5BX7CO5hwjCxAnxl4YqKE3idMDaxIzb3+KhF1nOJFl0Mdp/ +/TBt2dzhauH8XwIDAQABo4IBGjCCARYwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYw +HQYDVR0OBBYEFBiHVuBud+4kNTxOc5of1uHieX4rMB8GA1UdIwQYMBaAFBiHVuBud+4kNTxOc5of +1uHieX4rMEQGA1UdIAQ9MDswOQYEVR0gADAxMC8GCCsGAQUFBwIBFiNodHRwczovL3d3d3cuY2Vy +dGlnbmEuZnIvYXV0b3JpdGVzLzBtBgNVHR8EZjBkMC+gLaArhilodHRwOi8vY3JsLmNlcnRpZ25h +LmZyL2NlcnRpZ25hcm9vdGNhLmNybDAxoC+gLYYraHR0cDovL2NybC5kaGlteW90aXMuY29tL2Nl +cnRpZ25hcm9vdGNhLmNybDANBgkqhkiG9w0BAQsFAAOCAgEAlLieT/DjlQgi581oQfccVdV8AOIt +OoldaDgvUSILSo3L6btdPrtcPbEo/uRTVRPPoZAbAh1fZkYJMyjhDSSXcNMQH+pkV5a7XdrnxIxP +TGRGHVyH41neQtGbqH6mid2PHMkwgu07nM3A6RngatgCdTer9zQoKJHyBApPNeNgJgH60BGM+RFq +7q89w1DTj18zeTyGqHNFkIwgtnJzFyO+B2XleJINugHA64wcZr+shncBlA2c5uk5jR+mUYyZDDl3 +4bSb+hxnV29qao6pK0xXeXpXIs/NX2NGjVxZOob4Mkdio2cNGJHc+6Zr9UhhcyNZjgKnvETq9Emd +8VRY+WCv2hikLyhF3HqgiIZd8zvn/yk1gPxkQ5Tm4xxvvq0OKmOZK8l+hfZx6AYDlf7ej0gcWtSS +6Cvu5zHbugRqh5jnxV/vfaci9wHYTfmJ0A6aBVmknpjZbyvKcL5kwlWj9Omvw5Ip3IgWJJk8jSaY +tlu3zM63Nwf9JtmYhST/WSMDmu2dnajkXjjO11INb9I/bbEFa0nOipFGc/T2L/Coc3cOZayhjWZS +aX5LaAzHHjcng6WMxwLkFM1JAbBzs/3GkDpv0mztO+7skb6iQ12LAEpmJURw3kAP+HwV96LOPNde +E4yBFxgX0b3xdxA61GU5wSesVywlVP+i2k+KYTlerj1KjL0= +-----END CERTIFICATE----- + +emSign Root CA - G1 +=================== +-----BEGIN CERTIFICATE----- +MIIDlDCCAnygAwIBAgIKMfXkYgxsWO3W2DANBgkqhkiG9w0BAQsFADBnMQswCQYDVQQGEwJJTjET +MBEGA1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11ZGhyYSBUZWNobm9sb2dpZXMgTGltaXRl +ZDEcMBoGA1UEAxMTZW1TaWduIFJvb3QgQ0EgLSBHMTAeFw0xODAyMTgxODMwMDBaFw00MzAyMTgx +ODMwMDBaMGcxCzAJBgNVBAYTAklOMRMwEQYDVQQLEwplbVNpZ24gUEtJMSUwIwYDVQQKExxlTXVk +aHJhIFRlY2hub2xvZ2llcyBMaW1pdGVkMRwwGgYDVQQDExNlbVNpZ24gUm9vdCBDQSAtIEcxMIIB +IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAk0u76WaK7p1b1TST0Bsew+eeuGQzf2N4aLTN +LnF115sgxk0pvLZoYIr3IZpWNVrzdr3YzZr/k1ZLpVkGoZM0Kd0WNHVO8oG0x5ZOrRkVUkr+PHB1 +cM2vK6sVmjM8qrOLqs1D/fXqcP/tzxE7lM5OMhbTI0Aqd7OvPAEsbO2ZLIvZTmmYsvePQbAyeGHW +DV/D+qJAkh1cF+ZwPjXnorfCYuKrpDhMtTk1b+oDafo6VGiFbdbyL0NVHpENDtjVaqSW0RM8LHhQ +6DqS0hdW5TUaQBw+jSztOd9C4INBdN+jzcKGYEho42kLVACL5HZpIQ15TjQIXhTCzLG3rdd8cIrH +hQIDAQABo0IwQDAdBgNVHQ4EFgQU++8Nhp6w492pufEhF38+/PB3KxowDgYDVR0PAQH/BAQDAgEG +MA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAFn/8oz1h31xPaOfG1vR2vjTnGs2 +vZupYeveFix0PZ7mddrXuqe8QhfnPZHr5X3dPpzxz5KsbEjMwiI/aTvFthUvozXGaCocV685743Q +NcMYDHsAVhzNixl03r4PEuDQqqE/AjSxcM6dGNYIAwlG7mDgfrbESQRRfXBgvKqy/3lyeqYdPV8q ++Mri/Tm3R7nrft8EI6/6nAYH6ftjk4BAtcZsCjEozgyfz7MjNYBBjWzEN3uBL4ChQEKF6dk4jeih +U80Bv2noWgbyRQuQ+q7hv53yrlc8pa6yVvSLZUDp/TGBLPQ5Cdjua6e0ph0VpZj3AYHYhX3zUVxx +iN66zB+Afko= +-----END CERTIFICATE----- + +emSign ECC Root CA - G3 +======================= +-----BEGIN CERTIFICATE----- +MIICTjCCAdOgAwIBAgIKPPYHqWhwDtqLhDAKBggqhkjOPQQDAzBrMQswCQYDVQQGEwJJTjETMBEG +A1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11ZGhyYSBUZWNobm9sb2dpZXMgTGltaXRlZDEg +MB4GA1UEAxMXZW1TaWduIEVDQyBSb290IENBIC0gRzMwHhcNMTgwMjE4MTgzMDAwWhcNNDMwMjE4 +MTgzMDAwWjBrMQswCQYDVQQGEwJJTjETMBEGA1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11 +ZGhyYSBUZWNobm9sb2dpZXMgTGltaXRlZDEgMB4GA1UEAxMXZW1TaWduIEVDQyBSb290IENBIC0g +RzMwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQjpQy4LRL1KPOxst3iAhKAnjlfSU2fySU0WXTsuwYc +58Byr+iuL+FBVIcUqEqy6HyC5ltqtdyzdc6LBtCGI79G1Y4PPwT01xySfvalY8L1X44uT6EYGQIr +MgqCZH0Wk9GjQjBAMB0GA1UdDgQWBBR8XQKEE9TMipuBzhccLikenEhjQjAOBgNVHQ8BAf8EBAMC +AQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNpADBmAjEAvvNhzwIQHWSVB7gYboiFBS+D +CBeQyh+KTOgNG3qxrdWBCUfvO6wIBHxcmbHtRwfSAjEAnbpV/KlK6O3t5nYBQnvI+GDZjVGLVTv7 +jHvrZQnD+JbNR6iC8hZVdyR+EhCVBCyj +-----END CERTIFICATE----- + +emSign Root CA - C1 +=================== +-----BEGIN CERTIFICATE----- +MIIDczCCAlugAwIBAgILAK7PALrEzzL4Q7IwDQYJKoZIhvcNAQELBQAwVjELMAkGA1UEBhMCVVMx +EzARBgNVBAsTCmVtU2lnbiBQS0kxFDASBgNVBAoTC2VNdWRocmEgSW5jMRwwGgYDVQQDExNlbVNp +Z24gUm9vdCBDQSAtIEMxMB4XDTE4MDIxODE4MzAwMFoXDTQzMDIxODE4MzAwMFowVjELMAkGA1UE +BhMCVVMxEzARBgNVBAsTCmVtU2lnbiBQS0kxFDASBgNVBAoTC2VNdWRocmEgSW5jMRwwGgYDVQQD +ExNlbVNpZ24gUm9vdCBDQSAtIEMxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAz+up +ufGZBczYKCFK83M0UYRWEPWgTywS4/oTmifQz/l5GnRfHXk5/Fv4cI7gklL35CX5VIPZHdPIWoU/ +Xse2B+4+wM6ar6xWQio5JXDWv7V7Nq2s9nPczdcdioOl+yuQFTdrHCZH3DspVpNqs8FqOp099cGX +OFgFixwR4+S0uF2FHYP+eF8LRWgYSKVGczQ7/g/IdrvHGPMF0Ybzhe3nudkyrVWIzqa2kbBPrH4V +I5b2P/AgNBbeCsbEBEV5f6f9vtKppa+cxSMq9zwhbL2vj07FOrLzNBL834AaSaTUqZX3noleooms +lMuoaJuvimUnzYnu3Yy1aylwQ6BpC+S5DwIDAQABo0IwQDAdBgNVHQ4EFgQU/qHgcB4qAzlSWkK+ +XJGFehiqTbUwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQAD +ggEBAMJKVvoVIXsoounlHfv4LcQ5lkFMOycsxGwYFYDGrK9HWS8mC+M2sO87/kOXSTKZEhVb3xEp +/6tT+LvBeA+snFOvV71ojD1pM/CjoCNjO2RnIkSt1XHLVip4kqNPEjE2NuLe/gDEo2APJ62gsIq1 +NnpSob0n9CAnYuhNlCQT5AoE6TyrLshDCUrGYQTlSTR+08TI9Q/Aqum6VF7zYytPT1DU/rl7mYw9 +wC68AivTxEDkigcxHpvOJpkT+xHqmiIMERnHXhuBUDDIlhJu58tBf5E7oke3VIAb3ADMmpDqw8NQ +BmIMMMAVSKeoWXzhriKi4gp6D/piq1JM4fHfyr6DDUI= +-----END CERTIFICATE----- + +emSign ECC Root CA - C3 +======================= +-----BEGIN CERTIFICATE----- +MIICKzCCAbGgAwIBAgIKe3G2gla4EnycqDAKBggqhkjOPQQDAzBaMQswCQYDVQQGEwJVUzETMBEG +A1UECxMKZW1TaWduIFBLSTEUMBIGA1UEChMLZU11ZGhyYSBJbmMxIDAeBgNVBAMTF2VtU2lnbiBF +Q0MgUm9vdCBDQSAtIEMzMB4XDTE4MDIxODE4MzAwMFoXDTQzMDIxODE4MzAwMFowWjELMAkGA1UE +BhMCVVMxEzARBgNVBAsTCmVtU2lnbiBQS0kxFDASBgNVBAoTC2VNdWRocmEgSW5jMSAwHgYDVQQD +ExdlbVNpZ24gRUNDIFJvb3QgQ0EgLSBDMzB2MBAGByqGSM49AgEGBSuBBAAiA2IABP2lYa57JhAd +6bciMK4G9IGzsUJxlTm801Ljr6/58pc1kjZGDoeVjbk5Wum739D+yAdBPLtVb4OjavtisIGJAnB9 +SMVK4+kiVCJNk7tCDK93nCOmfddhEc5lx/h//vXyqaNCMEAwHQYDVR0OBBYEFPtaSNCAIEDyqOkA +B2kZd6fmw/TPMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MAoGCCqGSM49BAMDA2gA +MGUCMQC02C8Cif22TGK6Q04ThHK1rt0c3ta13FaPWEBaLd4gTCKDypOofu4SQMfWh0/434UCMBwU +ZOR8loMRnLDRWmFLpg9J0wD8ofzkpf9/rdcw0Md3f76BB1UwUCAU9Vc4CqgxUQ== +-----END CERTIFICATE----- + +Hongkong Post Root CA 3 +======================= +-----BEGIN CERTIFICATE----- +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 +dBb9HxEGmpv0 +-----END CERTIFICATE----- + +Entrust Root Certification Authority - G4 +========================================= +-----BEGIN CERTIFICATE----- +MIIGSzCCBDOgAwIBAgIRANm1Q3+vqTkPAAAAAFVlrVgwDQYJKoZIhvcNAQELBQAwgb4xCzAJBgNV +BAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMuMSgwJgYDVQQLEx9TZWUgd3d3LmVudHJ1c3Qu +bmV0L2xlZ2FsLXRlcm1zMTkwNwYDVQQLEzAoYykgMjAxNSBFbnRydXN0LCBJbmMuIC0gZm9yIGF1 +dGhvcml6ZWQgdXNlIG9ubHkxMjAwBgNVBAMTKUVudHJ1c3QgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1 +dGhvcml0eSAtIEc0MB4XDTE1MDUyNzExMTExNloXDTM3MTIyNzExNDExNlowgb4xCzAJBgNVBAYT +AlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMuMSgwJgYDVQQLEx9TZWUgd3d3LmVudHJ1c3QubmV0 +L2xlZ2FsLXRlcm1zMTkwNwYDVQQLEzAoYykgMjAxNSBFbnRydXN0LCBJbmMuIC0gZm9yIGF1dGhv +cml6ZWQgdXNlIG9ubHkxMjAwBgNVBAMTKUVudHJ1c3QgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhv +cml0eSAtIEc0MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAsewsQu7i0TD/pZJH4i3D +umSXbcr3DbVZwbPLqGgZ2K+EbTBwXX7zLtJTmeH+H17ZSK9dE43b/2MzTdMAArzE+NEGCJR5WIoV +3imz/f3ET+iq4qA7ec2/a0My3dl0ELn39GjUu9CH1apLiipvKgS1sqbHoHrmSKvS0VnM1n4j5pds +8ELl3FFLFUHtSUrJ3hCX1nbB76W1NhSXNdh4IjVS70O92yfbYVaCNNzLiGAMC1rlLAHGVK/XqsEQ +e9IFWrhAnoanw5CGAlZSCXqc0ieCU0plUmr1POeo8pyvi73TDtTUXm6Hnmo9RR3RXRv06QqsYJn7 +ibT/mCzPfB3pAqoEmh643IhuJbNsZvc8kPNXwbMv9W3y+8qh+CmdRouzavbmZwe+LGcKKh9asj5X +xNMhIWNlUpEbsZmOeX7m640A2Vqq6nPopIICR5b+W45UYaPrL0swsIsjdXJ8ITzI9vF01Bx7owVV +7rtNOzK+mndmnqxpkCIHH2E6lr7lmk/MBTwoWdPBDFSoWWG9yHJM6Nyfh3+9nEg2XpWjDrk4JFX8 +dWbrAuMINClKxuMrLzOg2qOGpRKX/YAr2hRC45K9PvJdXmd0LhyIRyk0X+IyqJwlN4y6mACXi0mW +Hv0liqzc2thddG5msP9E36EYxr5ILzeUePiVSj9/E15dWf10hkNjc0kCAwEAAaNCMEAwDwYDVR0T +AQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJ84xFYjwznooHFs6FRM5Og6sb9n +MA0GCSqGSIb3DQEBCwUAA4ICAQAS5UKme4sPDORGpbZgQIeMJX6tuGguW8ZAdjwD+MlZ9POrYs4Q +jbRaZIxowLByQzTSGwv2LFPSypBLhmb8qoMi9IsabyZIrHZ3CL/FmFz0Jomee8O5ZDIBf9PD3Vht +7LGrhFV0d4QEJ1JrhkzO3bll/9bGXp+aEJlLdWr+aumXIOTkdnrG0CSqkM0gkLpHZPt/B7NTeLUK +YvJzQ85BK4FqLoUWlFPUa19yIqtRLULVAJyZv967lDtX/Zr1hstWO1uIAeV8KEsD+UmDfLJ/fOPt +jqF/YFOOVZ1QNBIPt5d7bIdKROf1beyAN/BYGW5KaHbwH5Lk6rWS02FREAutp9lfx1/cH6NcjKF+ +m7ee01ZvZl4HliDtC3T7Zk6LERXpgUl+b7DUUH8i119lAg2m9IUe2K4GS0qn0jFmwvjO5QimpAKW +RGhXxNUzzxkvFMSUHHuk2fCfDrGA4tGeEWSpiBE6doLlYsKA2KSD7ZPvfC+QsDJMlhVoSFLUmQjA +JOgc47OlIQ6SwJAfzyBfyjs4x7dtOvPmRLgOMWuIjnDrnBdSqEGULoe256YSxXXfW8AKbnuk5F6G ++TaU33fD6Q3AOfF5u0aOq0NZJ7cguyPpVkAh7DE9ZapD8j3fcEThuk0mEDuYn/PIjhs4ViFqUZPT +kcpG2om3PVODLAgfi49T3f+sHw== +-----END CERTIFICATE----- + +Microsoft ECC Root Certificate Authority 2017 +============================================= +-----BEGIN CERTIFICATE----- +MIICWTCCAd+gAwIBAgIQZvI9r4fei7FK6gxXMQHC7DAKBggqhkjOPQQDAzBlMQswCQYDVQQGEwJV +UzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTYwNAYDVQQDEy1NaWNyb3NvZnQgRUND +IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTcwHhcNMTkxMjE4MjMwNjQ1WhcNNDIwNzE4 +MjMxNjA0WjBlMQswCQYDVQQGEwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTYw +NAYDVQQDEy1NaWNyb3NvZnQgRUNDIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTcwdjAQ +BgcqhkjOPQIBBgUrgQQAIgNiAATUvD0CQnVBEyPNgASGAlEvaqiBYgtlzPbKnR5vSmZRogPZnZH6 +thaxjG7efM3beaYvzrvOcS/lpaso7GMEZpn4+vKTEAXhgShC48Zo9OYbhGBKia/teQ87zvH2RPUB +eMCjVDBSMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTIy5lycFIM ++Oa+sgRXKSrPQhDtNTAQBgkrBgEEAYI3FQEEAwIBADAKBggqhkjOPQQDAwNoADBlAjBY8k3qDPlf +Xu5gKcs68tvWMoQZP3zVL8KxzJOuULsJMsbG7X7JNpQS5GiFBqIb0C8CMQCZ6Ra0DvpWSNSkMBaR +eNtUjGUBiudQZsIxtzm6uBoiB078a1QWIP8rtedMDE2mT3M= +-----END CERTIFICATE----- + +Microsoft RSA Root Certificate Authority 2017 +============================================= +-----BEGIN CERTIFICATE----- +MIIFqDCCA5CgAwIBAgIQHtOXCV/YtLNHcB6qvn9FszANBgkqhkiG9w0BAQwFADBlMQswCQYDVQQG +EwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTYwNAYDVQQDEy1NaWNyb3NvZnQg +UlNBIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTcwHhcNMTkxMjE4MjI1MTIyWhcNNDIw +NzE4MjMwMDIzWjBlMQswCQYDVQQGEwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9u +MTYwNAYDVQQDEy1NaWNyb3NvZnQgUlNBIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTcw +ggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKW76UM4wplZEWCpW9R2LBifOZNt9GkMml +7Xhqb0eRaPgnZ1AzHaGm++DlQ6OEAlcBXZxIQIJTELy/xztokLaCLeX0ZdDMbRnMlfl7rEqUrQ7e +S0MdhweSE5CAg2Q1OQT85elss7YfUJQ4ZVBcF0a5toW1HLUX6NZFndiyJrDKxHBKrmCk3bPZ7Pw7 +1VdyvD/IybLeS2v4I2wDwAW9lcfNcztmgGTjGqwu+UcF8ga2m3P1eDNbx6H7JyqhtJqRjJHTOoI+ +dkC0zVJhUXAoP8XFWvLJjEm7FFtNyP9nTUwSlq31/niol4fX/V4ggNyhSyL71Imtus5Hl0dVe49F +yGcohJUcaDDv70ngNXtk55iwlNpNhTs+VcQor1fznhPbRiefHqJeRIOkpcrVE7NLP8TjwuaGYaRS +MLl6IE9vDzhTyzMMEyuP1pq9KsgtsRx9S1HKR9FIJ3Jdh+vVReZIZZ2vUpC6W6IYZVcSn2i51BVr +lMRpIpj0M+Dt+VGOQVDJNE92kKz8OMHY4Xu54+OU4UZpyw4KUGsTuqwPN1q3ErWQgR5WrlcihtnJ +0tHXUeOrO8ZV/R4O03QK0dqq6mm4lyiPSMQH+FJDOvTKVTUssKZqwJz58oHhEmrARdlns87/I6KJ +ClTUFLkqqNfs+avNJVgyeY+QW5g5xAgGwax/Dj0ApQIDAQABo1QwUjAOBgNVHQ8BAf8EBAMCAYYw +DwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUCctZf4aycI8awznjwNnpv7tNsiMwEAYJKwYBBAGC +NxUBBAMCAQAwDQYJKoZIhvcNAQEMBQADggIBAKyvPl3CEZaJjqPnktaXFbgToqZCLgLNFgVZJ8og +6Lq46BrsTaiXVq5lQ7GPAJtSzVXNUzltYkyLDVt8LkS/gxCP81OCgMNPOsduET/m4xaRhPtthH80 +dK2Jp86519efhGSSvpWhrQlTM93uCupKUY5vVau6tZRGrox/2KJQJWVggEbbMwSubLWYdFQl3JPk ++ONVFT24bcMKpBLBaYVu32TxU5nhSnUgnZUP5NbcA/FZGOhHibJXWpS2qdgXKxdJ5XbLwVaZOjex +/2kskZGT4d9Mozd2TaGf+G0eHdP67Pv0RR0Tbc/3WeUiJ3IrhvNXuzDtJE3cfVa7o7P4NHmJweDy +AmH3pvwPuxwXC65B2Xy9J6P9LjrRk5Sxcx0ki69bIImtt2dmefU6xqaWM/5TkshGsRGRxpl/j8nW +ZjEgQRCHLQzWwa80mMpkg/sTV9HB8Dx6jKXB/ZUhoHHBk2dxEuqPiAppGWSZI1b7rCoucL5mxAyE +7+WL85MB+GqQk2dLsmijtWKP6T+MejteD+eMuMZ87zf9dOLITzNy4ZQ5bb0Sr74MTnB8G2+NszKT +c0QWbej09+CVgI+WXTik9KveCjCHk9hNAHFiRSdLOkKEW39lt2c0Ui2cFmuqqNh7o0JMcccMyj6D +5KbvtwEwXlGjefVwaaZBRA+GsCyRxj3qrg+E +-----END CERTIFICATE----- + +e-Szigno Root CA 2017 +===================== +-----BEGIN CERTIFICATE----- +MIICQDCCAeWgAwIBAgIMAVRI7yH9l1kN9QQKMAoGCCqGSM49BAMCMHExCzAJBgNVBAYTAkhVMREw +DwYDVQQHDAhCdWRhcGVzdDEWMBQGA1UECgwNTWljcm9zZWMgTHRkLjEXMBUGA1UEYQwOVkFUSFUt +MjM1ODQ0OTcxHjAcBgNVBAMMFWUtU3ppZ25vIFJvb3QgQ0EgMjAxNzAeFw0xNzA4MjIxMjA3MDZa +Fw00MjA4MjIxMjA3MDZaMHExCzAJBgNVBAYTAkhVMREwDwYDVQQHDAhCdWRhcGVzdDEWMBQGA1UE +CgwNTWljcm9zZWMgTHRkLjEXMBUGA1UEYQwOVkFUSFUtMjM1ODQ0OTcxHjAcBgNVBAMMFWUtU3pp +Z25vIFJvb3QgQ0EgMjAxNzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABJbcPYrYsHtvxie+RJCx +s1YVe45DJH0ahFnuY2iyxl6H0BVIHqiQrb1TotreOpCmYF9oMrWGQd+HWyx7xf58etqjYzBhMA8G +A1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSHERUI0arBeAyxr87GyZDv +vzAEwDAfBgNVHSMEGDAWgBSHERUI0arBeAyxr87GyZDvvzAEwDAKBggqhkjOPQQDAgNJADBGAiEA +tVfd14pVCzbhhkT61NlojbjcI4qKDdQvfepz7L9NbKgCIQDLpbQS+ue16M9+k/zzNY9vTlp8tLxO +svxyqltZ+efcMQ== +-----END CERTIFICATE----- + +certSIGN Root CA G2 +=================== +-----BEGIN CERTIFICATE----- +MIIFRzCCAy+gAwIBAgIJEQA0tk7GNi02MA0GCSqGSIb3DQEBCwUAMEExCzAJBgNVBAYTAlJPMRQw +EgYDVQQKEwtDRVJUU0lHTiBTQTEcMBoGA1UECxMTY2VydFNJR04gUk9PVCBDQSBHMjAeFw0xNzAy +MDYwOTI3MzVaFw00MjAyMDYwOTI3MzVaMEExCzAJBgNVBAYTAlJPMRQwEgYDVQQKEwtDRVJUU0lH +TiBTQTEcMBoGA1UECxMTY2VydFNJR04gUk9PVCBDQSBHMjCCAiIwDQYJKoZIhvcNAQEBBQADggIP +ADCCAgoCggIBAMDFdRmRfUR0dIf+DjuW3NgBFszuY5HnC2/OOwppGnzC46+CjobXXo9X69MhWf05 +N0IwvlDqtg+piNguLWkh59E3GE59kdUWX2tbAMI5Qw02hVK5U2UPHULlj88F0+7cDBrZuIt4Imfk +abBoxTzkbFpG583H+u/E7Eu9aqSs/cwoUe+StCmrqzWaTOTECMYmzPhpn+Sc8CnTXPnGFiWeI8Mg +wT0PPzhAsP6CRDiqWhqKa2NYOLQV07YRaXseVO6MGiKscpc/I1mbySKEwQdPzH/iV8oScLumZfNp +dWO9lfsbl83kqK/20U6o2YpxJM02PbyWxPFsqa7lzw1uKA2wDrXKUXt4FMMgL3/7FFXhEZn91Qqh +ngLjYl/rNUssuHLoPj1PrCy7Lobio3aP5ZMqz6WryFyNSwb/EkaseMsUBzXgqd+L6a8VTxaJW732 +jcZZroiFDsGJ6x9nxUWO/203Nit4ZoORUSs9/1F3dmKh7Gc+PoGD4FapUB8fepmrY7+EF3fxDTvf +95xhszWYijqy7DwaNz9+j5LP2RIUZNoQAhVB/0/E6xyjyfqZ90bp4RjZsbgyLcsUDFDYg2WD7rlc +z8sFWkz6GZdr1l0T08JcVLwyc6B49fFtHsufpaafItzRUZ6CeWRgKRM+o/1Pcmqr4tTluCRVLERL +iohEnMqE0yo7AgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1Ud +DgQWBBSCIS1mxteg4BXrzkwJd8RgnlRuAzANBgkqhkiG9w0BAQsFAAOCAgEAYN4auOfyYILVAzOB +ywaK8SJJ6ejqkX/GM15oGQOGO0MBzwdw5AgeZYWR5hEit/UCI46uuR59H35s5r0l1ZUa8gWmr4UC +b6741jH/JclKyMeKqdmfS0mbEVeZkkMR3rYzpMzXjWR91M08KCy0mpbqTfXERMQlqiCA2ClV9+BB +/AYm/7k29UMUA2Z44RGx2iBfRgB4ACGlHgAoYXhvqAEBj500mv/0OJD7uNGzcgbJceaBxXntC6Z5 +8hMLnPddDnskk7RI24Zf3lCGeOdA5jGokHZwYa+cNywRtYK3qq4kNFtyDGkNzVmf9nGvnAvRCjj5 +BiKDUyUM/FHE5r7iOZULJK2v0ZXkltd0ZGtxTgI8qoXzIKNDOXZbbFD+mpwUHmUUihW9o4JFWklW +atKcsWMy5WHgUyIOpwpJ6st+H6jiYoD2EEVSmAYY3qXNL3+q1Ok+CHLsIwMCPKaq2LxndD0UF/tU +Sxfj03k9bWtJySgOLnRQvwzZRjoQhsmnP+mg7H/rpXdYaXHmgwo38oZJar55CJD2AhZkPuXaTH4M +NMn5X7azKFGnpyuqSfqNZSlO42sTp5SjLVFteAxEy9/eCG/Oo2Sr05WE1LlSVHJ7liXMvGnjSG4N +0MedJ5qq+BOS3R7fY581qRY27Iy4g/Q9iY/NtBde17MXQRBdJ3NghVdJIgc= +-----END CERTIFICATE----- + +Trustwave Global Certification Authority +======================================== +-----BEGIN CERTIFICATE----- +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 +29FpHOTKyeC2nOnOcXHebD8WpHk= +-----END CERTIFICATE----- + +Trustwave Global ECC P256 Certification Authority +================================================= +-----BEGIN CERTIFICATE----- +MIICYDCCAgegAwIBAgIMDWpfCD8oXD5Rld9dMAoGCCqGSM49BAMCMIGRMQswCQYDVQQGEwJVUzER +MA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRydXN0d2F2ZSBI +b2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3YXZlIEdsb2JhbCBFQ0MgUDI1NiBDZXJ0aWZp +Y2F0aW9uIEF1dGhvcml0eTAeFw0xNzA4MjMxOTM1MTBaFw00MjA4MjMxOTM1MTBaMIGRMQswCQYD +VQQGEwJVUzERMA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRy +dXN0d2F2ZSBIb2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3YXZlIEdsb2JhbCBFQ0MgUDI1 +NiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABH77bOYj +43MyCMpg5lOcunSNGLB4kFKA3TjASh3RqMyTpJcGOMoNFWLGjgEqZZ2q3zSRLoHB5DOSMcT9CTqm +P62jQzBBMA8GA1UdEwEB/wQFMAMBAf8wDwYDVR0PAQH/BAUDAwcGADAdBgNVHQ4EFgQUo0EGrJBt +0UrrdaVKEJmzsaGLSvcwCgYIKoZIzj0EAwIDRwAwRAIgB+ZU2g6gWrKuEZ+Hxbb/ad4lvvigtwjz +RM4q3wghDDcCIC0mA6AFvWvR9lz4ZcyGbbOcNEhjhAnFjXca4syc4XR7 +-----END CERTIFICATE----- + +Trustwave Global ECC P384 Certification Authority +================================================= +-----BEGIN CERTIFICATE----- +MIICnTCCAiSgAwIBAgIMCL2Fl2yZJ6SAaEc7MAoGCCqGSM49BAMDMIGRMQswCQYDVQQGEwJVUzER +MA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRydXN0d2F2ZSBI +b2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3YXZlIEdsb2JhbCBFQ0MgUDM4NCBDZXJ0aWZp +Y2F0aW9uIEF1dGhvcml0eTAeFw0xNzA4MjMxOTM2NDNaFw00MjA4MjMxOTM2NDNaMIGRMQswCQYD +VQQGEwJVUzERMA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRy +dXN0d2F2ZSBIb2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3YXZlIEdsb2JhbCBFQ0MgUDM4 +NCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTB2MBAGByqGSM49AgEGBSuBBAAiA2IABGvaDXU1CDFH +Ba5FmVXxERMuSvgQMSOjfoPTfygIOiYaOs+Xgh+AtycJj9GOMMQKmw6sWASr9zZ9lCOkmwqKi6vr +/TklZvFe/oyujUF5nQlgziip04pt89ZF1PKYhDhloKNDMEEwDwYDVR0TAQH/BAUwAwEB/zAPBgNV +HQ8BAf8EBQMDBwYAMB0GA1UdDgQWBBRVqYSJ0sEyvRjLbKYHTsjnnb6CkDAKBggqhkjOPQQDAwNn +ADBkAjA3AZKXRRJ+oPM+rRk6ct30UJMDEr5E0k9BpIycnR+j9sKS50gU/k6bpZFXrsY3crsCMGcl +CrEMXu6pY5Jv5ZAL/mYiykf9ijH3g/56vxC+GCsej/YpHpRZ744hN8tRmKVuSw== +-----END CERTIFICATE----- + +NAVER Global Root Certification Authority +========================================= +-----BEGIN CERTIFICATE----- +MIIFojCCA4qgAwIBAgIUAZQwHqIL3fXFMyqxQ0Rx+NZQTQ0wDQYJKoZIhvcNAQEMBQAwaTELMAkG +A1UEBhMCS1IxJjAkBgNVBAoMHU5BVkVSIEJVU0lORVNTIFBMQVRGT1JNIENvcnAuMTIwMAYDVQQD +DClOQVZFUiBHbG9iYWwgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0xNzA4MTgwODU4 +NDJaFw0zNzA4MTgyMzU5NTlaMGkxCzAJBgNVBAYTAktSMSYwJAYDVQQKDB1OQVZFUiBCVVNJTkVT +UyBQTEFURk9STSBDb3JwLjEyMDAGA1UEAwwpTkFWRVIgR2xvYmFsIFJvb3QgQ2VydGlmaWNhdGlv +biBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC21PGTXLVAiQqrDZBb +UGOukJR0F0Vy1ntlWilLp1agS7gvQnXp2XskWjFlqxcX0TM62RHcQDaH38dq6SZeWYp34+hInDEW ++j6RscrJo+KfziFTowI2MMtSAuXaMl3Dxeb57hHHi8lEHoSTGEq0n+USZGnQJoViAbbJAh2+g1G7 +XNr4rRVqmfeSVPc0W+m/6imBEtRTkZazkVrd/pBzKPswRrXKCAfHcXLJZtM0l/aM9BhK4dA9WkW2 +aacp+yPOiNgSnABIqKYPszuSjXEOdMWLyEz59JuOuDxp7W87UC9Y7cSw0BwbagzivESq2M0UXZR4 +Yb8ObtoqvC8MC3GmsxY/nOb5zJ9TNeIDoKAYv7vxvvTWjIcNQvcGufFt7QSUqP620wbGQGHfnZ3z +VHbOUzoBppJB7ASjjw2i1QnK1sua8e9DXcCrpUHPXFNwcMmIpi3Ua2FzUCaGYQ5fG8Ir4ozVu53B +A0K6lNpfqbDKzE0K70dpAy8i+/Eozr9dUGWokG2zdLAIx6yo0es+nPxdGoMuK8u180SdOqcXYZai +cdNwlhVNt0xz7hlcxVs+Qf6sdWA7G2POAN3aCJBitOUt7kinaxeZVL6HSuOpXgRM6xBtVNbv8ejy +YhbLgGvtPe31HzClrkvJE+2KAQHJuFFYwGY6sWZLxNUxAmLpdIQM201GLQIDAQABo0IwQDAdBgNV +HQ4EFgQU0p+I36HNLL3s9TsBAZMzJ7LrYEswDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMB +Af8wDQYJKoZIhvcNAQEMBQADggIBADLKgLOdPVQG3dLSLvCkASELZ0jKbY7gyKoNqo0hV4/GPnrK +21HUUrPUloSlWGB/5QuOH/XcChWB5Tu2tyIvCZwTFrFsDDUIbatjcu3cvuzHV+YwIHHW1xDBE1UB +jCpD5EHxzzp6U5LOogMFDTjfArsQLtk70pt6wKGm+LUx5vR1yblTmXVHIloUFcd4G7ad6Qz4G3bx +hYTeodoS76TiEJd6eN4MUZeoIUCLhr0N8F5OSza7OyAfikJW4Qsav3vQIkMsRIz75Sq0bBwcupTg +E34h5prCy8VCZLQelHsIJchxzIdFV4XTnyliIoNRlwAYl3dqmJLJfGBs32x9SuRwTMKeuB330DTH +D8z7p/8Dvq1wkNoL3chtl1+afwkyQf3NosxabUzyqkn+Zvjp2DXrDige7kgvOtB5CTh8piKCk5XQ +A76+AqAF3SAi428diDRgxuYKuQl1C/AH6GmWNcf7I4GOODm4RStDeKLRLBT/DShycpWbXgnbiUSY +qqFJu3FS8r/2/yehNq+4tneI3TqkbZs0kNwUXTC/t+sX5Ie3cdCh13cV1ELX8vMxmV2b3RZtP+oG +I/hGoiLtk/bdmuYqh7GYVPEi92tF4+KOdh2ajcQGjTa3FPOdVGm3jjzVpG2Tgbet9r1ke8LJaDmg +kpzNNIaRkPpkUZ3+/uul9XXeifdy +-----END CERTIFICATE----- + +AC RAIZ FNMT-RCM SERVIDORES SEGUROS +=================================== +-----BEGIN CERTIFICATE----- +MIICbjCCAfOgAwIBAgIQYvYybOXE42hcG2LdnC6dlTAKBggqhkjOPQQDAzB4MQswCQYDVQQGEwJF +UzERMA8GA1UECgwIRk5NVC1SQ00xDjAMBgNVBAsMBUNlcmVzMRgwFgYDVQRhDA9WQVRFUy1RMjgy +NjAwNEoxLDAqBgNVBAMMI0FDIFJBSVogRk5NVC1SQ00gU0VSVklET1JFUyBTRUdVUk9TMB4XDTE4 +MTIyMDA5MzczM1oXDTQzMTIyMDA5MzczM1oweDELMAkGA1UEBhMCRVMxETAPBgNVBAoMCEZOTVQt +UkNNMQ4wDAYDVQQLDAVDZXJlczEYMBYGA1UEYQwPVkFURVMtUTI4MjYwMDRKMSwwKgYDVQQDDCNB +QyBSQUlaIEZOTVQtUkNNIFNFUlZJRE9SRVMgU0VHVVJPUzB2MBAGByqGSM49AgEGBSuBBAAiA2IA +BPa6V1PIyqvfNkpSIeSX0oNnnvBlUdBeh8dHsVnyV0ebAAKTRBdp20LHsbI6GA60XYyzZl2hNPk2 +LEnb80b8s0RpRBNm/dfF/a82Tc4DTQdxz69qBdKiQ1oKUm8BA06Oi6NCMEAwDwYDVR0TAQH/BAUw +AwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFAG5L++/EYZg8k/QQW6rcx/n0m5JMAoGCCqG +SM49BAMDA2kAMGYCMQCuSuMrQMN0EfKVrRYj3k4MGuZdpSRea0R7/DjiT8ucRRcRTBQnJlU5dUoD +zBOQn5ICMQD6SmxgiHPz7riYYqnOK8LZiqZwMR2vsJRM60/G49HzYqc8/5MuB1xJAWdpEgJyv+c= +-----END CERTIFICATE----- + +GlobalSign Root R46 +=================== +-----BEGIN CERTIFICATE----- +MIIFWjCCA0KgAwIBAgISEdK7udcjGJ5AXwqdLdDfJWfRMA0GCSqGSIb3DQEBDAUAMEYxCzAJBgNV +BAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRwwGgYDVQQDExNHbG9iYWxTaWduIFJv +b3QgUjQ2MB4XDTE5MDMyMDAwMDAwMFoXDTQ2MDMyMDAwMDAwMFowRjELMAkGA1UEBhMCQkUxGTAX +BgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExHDAaBgNVBAMTE0dsb2JhbFNpZ24gUm9vdCBSNDYwggIi +MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCsrHQy6LNl5brtQyYdpokNRbopiLKkHWPd08Es +CVeJOaFV6Wc0dwxu5FUdUiXSE2te4R2pt32JMl8Nnp8semNgQB+msLZ4j5lUlghYruQGvGIFAha/ +r6gjA7aUD7xubMLL1aa7DOn2wQL7Id5m3RerdELv8HQvJfTqa1VbkNud316HCkD7rRlr+/fKYIje +2sGP1q7Vf9Q8g+7XFkyDRTNrJ9CG0Bwta/OrffGFqfUo0q3v84RLHIf8E6M6cqJaESvWJ3En7YEt +bWaBkoe0G1h6zD8K+kZPTXhc+CtI4wSEy132tGqzZfxCnlEmIyDLPRT5ge1lFgBPGmSXZgjPjHvj +K8Cd+RTyG/FWaha/LIWFzXg4mutCagI0GIMXTpRW+LaCtfOW3T3zvn8gdz57GSNrLNRyc0NXfeD4 +12lPFzYE+cCQYDdF3uYM2HSNrpyibXRdQr4G9dlkbgIQrImwTDsHTUB+JMWKmIJ5jqSngiCNI/on +ccnfxkF0oE32kRbcRoxfKWMxWXEM2G/CtjJ9++ZdU6Z+Ffy7dXxd7Pj2Fxzsx2sZy/N78CsHpdls +eVR2bJ0cpm4O6XkMqCNqo98bMDGfsVR7/mrLZqrcZdCinkqaByFrgY/bxFn63iLABJzjqls2k+g9 +vXqhnQt2sQvHnf3PmKgGwvgqo6GDoLclcqUC4wIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAYYwDwYD +VR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA1yrc4GHqMywptWU4jaWSf8FmSwwDQYJKoZIhvcNAQEM +BQADggIBAHx47PYCLLtbfpIrXTncvtgdokIzTfnvpCo7RGkerNlFo048p9gkUbJUHJNOxO97k4Vg +JuoJSOD1u8fpaNK7ajFxzHmuEajwmf3lH7wvqMxX63bEIaZHU1VNaL8FpO7XJqti2kM3S+LGteWy +gxk6x9PbTZ4IevPuzz5i+6zoYMzRx6Fcg0XERczzF2sUyQQCPtIkpnnpHs6i58FZFZ8d4kuaPp92 +CC1r2LpXFNqD6v6MVenQTqnMdzGxRBF6XLE+0xRFFRhiJBPSy03OXIPBNvIQtQ6IbbjhVp+J3pZm +OUdkLG5NrmJ7v2B0GbhWrJKsFjLtrWhV/pi60zTe9Mlhww6G9kuEYO4Ne7UyWHmRVSyBQ7N0H3qq +JZ4d16GLuc1CLgSkZoNNiTW2bKg2SnkheCLQQrzRQDGQob4Ez8pn7fXwgNNgyYMqIgXQBztSvwye +qiv5u+YfjyW6hY0XHgL+XVAEV8/+LbzvXMAaq7afJMbfc2hIkCwU9D9SGuTSyxTDYWnP4vkYxboz +nxSjBF25cfe1lNj2M8FawTSLfJvdkzrnE6JwYZ+vj+vYxXX4M2bUdGc6N3ec592kD3ZDZopD8p/7 +DEJ4Y9HiD2971KE9dJeFt0g5QdYg/NA6s/rob8SKunE3vouXsXgxT7PntgMTzlSdriVZzH81Xwj3 +QEUxeCp6 +-----END CERTIFICATE----- + +GlobalSign Root E46 +=================== +-----BEGIN CERTIFICATE----- +MIICCzCCAZGgAwIBAgISEdK7ujNu1LzmJGjFDYQdmOhDMAoGCCqGSM49BAMDMEYxCzAJBgNVBAYT +AkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRwwGgYDVQQDExNHbG9iYWxTaWduIFJvb3Qg +RTQ2MB4XDTE5MDMyMDAwMDAwMFoXDTQ2MDMyMDAwMDAwMFowRjELMAkGA1UEBhMCQkUxGTAXBgNV +BAoTEEdsb2JhbFNpZ24gbnYtc2ExHDAaBgNVBAMTE0dsb2JhbFNpZ24gUm9vdCBFNDYwdjAQBgcq +hkjOPQIBBgUrgQQAIgNiAAScDrHPt+ieUnd1NPqlRqetMhkytAepJ8qUuwzSChDH2omwlwxwEwkB +jtjqR+q+soArzfwoDdusvKSGN+1wCAB16pMLey5SnCNoIwZD7JIvU4Tb+0cUB+hflGddyXqBPCCj +QjBAMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBQxCpCPtsad0kRL +gLWi5h+xEk8blTAKBggqhkjOPQQDAwNoADBlAjEA31SQ7Zvvi5QCkxeCmb6zniz2C5GMn0oUsfZk +vLtoURMMA/cVi4RguYv/Uo7njLwcAjA8+RHUjE7AwWHCFUyqqx0LMV87HOIAl0Qx5v5zli/altP+ +CAezNIm8BZ/3Hobui3A= +-----END CERTIFICATE----- + +GLOBALTRUST 2020 +================ +-----BEGIN CERTIFICATE----- +MIIFgjCCA2qgAwIBAgILWku9WvtPilv6ZeUwDQYJKoZIhvcNAQELBQAwTTELMAkGA1UEBhMCQVQx +IzAhBgNVBAoTGmUtY29tbWVyY2UgbW9uaXRvcmluZyBHbWJIMRkwFwYDVQQDExBHTE9CQUxUUlVT +VCAyMDIwMB4XDTIwMDIxMDAwMDAwMFoXDTQwMDYxMDAwMDAwMFowTTELMAkGA1UEBhMCQVQxIzAh +BgNVBAoTGmUtY29tbWVyY2UgbW9uaXRvcmluZyBHbWJIMRkwFwYDVQQDExBHTE9CQUxUUlVTVCAy +MDIwMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAri5WrRsc7/aVj6B3GyvTY4+ETUWi +D59bRatZe1E0+eyLinjF3WuvvcTfk0Uev5E4C64OFudBc/jbu9G4UeDLgztzOG53ig9ZYybNpyrO +VPu44sB8R85gfD+yc/LAGbaKkoc1DZAoouQVBGM+uq/ufF7MpotQsjj3QWPKzv9pj2gOlTblzLmM +CcpL3TGQlsjMH/1WljTbjhzqLL6FLmPdqqmV0/0plRPwyJiT2S0WR5ARg6I6IqIoV6Lr/sCMKKCm +fecqQjuCgGOlYx8ZzHyyZqjC0203b+J+BlHZRYQfEs4kUmSFC0iAToexIiIwquuuvuAC4EDosEKA +A1GqtH6qRNdDYfOiaxaJSaSjpCuKAsR49GiKweR6NrFvG5Ybd0mN1MkGco/PU+PcF4UgStyYJ9OR +JitHHmkHr96i5OTUawuzXnzUJIBHKWk7buis/UDr2O1xcSvy6Fgd60GXIsUf1DnQJ4+H4xj04KlG +DfV0OoIu0G4skaMxXDtG6nsEEFZegB31pWXogvziB4xiRfUg3kZwhqG8k9MedKZssCz3AwyIDMvU +clOGvGBG85hqwvG/Q/lwIHfKN0F5VVJjjVsSn8VoxIidrPIwq7ejMZdnrY8XD2zHc+0klGvIg5rQ +mjdJBKuxFshsSUktq6HQjJLyQUp5ISXbY9e2nKd+Qmn7OmMCAwEAAaNjMGEwDwYDVR0TAQH/BAUw +AwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFNwuH9FhN3nkq9XVsxJxaD1qaJwiMB8GA1Ud +IwQYMBaAFNwuH9FhN3nkq9XVsxJxaD1qaJwiMA0GCSqGSIb3DQEBCwUAA4ICAQCR8EICaEDuw2jA +VC/f7GLDw56KoDEoqoOOpFaWEhCGVrqXctJUMHytGdUdaG/7FELYjQ7ztdGl4wJCXtzoRlgHNQIw +4Lx0SsFDKv/bGtCwr2zD/cuz9X9tAy5ZVp0tLTWMstZDFyySCstd6IwPS3BD0IL/qMy/pJTAvoe9 +iuOTe8aPmxadJ2W8esVCgmxcB9CpwYhgROmYhRZf+I/KARDOJcP5YBugxZfD0yyIMaK9MOzQ0MAS +8cE54+X1+NZK3TTN+2/BT+MAi1bikvcoskJ3ciNnxz8RFbLEAwW+uxF7Cr+obuf/WEPPm2eggAe2 +HcqtbepBEX4tdJP7wry+UUTF72glJ4DjyKDUEuzZpTcdN3y0kcra1LGWge9oXHYQSa9+pTeAsRxS +vTOBTI/53WXZFM2KJVj04sWDpQmQ1GwUY7VA3+vA/MRYfg0UFodUJ25W5HCEuGwyEn6CMUO+1918 +oa2u1qsgEu8KwxCMSZY13At1XrFP1U80DhEgB3VDRemjEdqso5nCtnkn4rnvyOL2NSl6dPrFf4IF +YqYK6miyeUcGbvJXqBUzxvd4Sj1Ce2t+/vdG6tHrju+IaFvowdlxfv1k7/9nR4hYJS8+hge9+6jl +gqispdNpQ80xiEmEU5LAsTkbOYMBMMTyqfrQA71yN2BWHzZ8vTmR9W0Nv3vXkg== +-----END CERTIFICATE----- + +ANF Secure Server Root CA +========================= +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- + +Certum EC-384 CA +================ +-----BEGIN CERTIFICATE----- +MIICZTCCAeugAwIBAgIQeI8nXIESUiClBNAt3bpz9DAKBggqhkjOPQQDAzB0MQswCQYDVQQGEwJQ +TDEhMB8GA1UEChMYQXNzZWNvIERhdGEgU3lzdGVtcyBTLkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2Vy +dGlmaWNhdGlvbiBBdXRob3JpdHkxGTAXBgNVBAMTEENlcnR1bSBFQy0zODQgQ0EwHhcNMTgwMzI2 +MDcyNDU0WhcNNDMwMzI2MDcyNDU0WjB0MQswCQYDVQQGEwJQTDEhMB8GA1UEChMYQXNzZWNvIERh +dGEgU3lzdGVtcyBTLkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkx +GTAXBgNVBAMTEENlcnR1bSBFQy0zODQgQ0EwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAATEKI6rGFtq +vm5kN2PkzeyrOvfMobgOgknXhimfoZTy42B4mIF4Bk3y7JoOV2CDn7TmFy8as10CW4kjPMIRBSqn +iBMY81CE1700LCeJVf/OTOffph8oxPBUw7l8t1Ot68KjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYD +VR0OBBYEFI0GZnQkdjrzife81r1HfS+8EF9LMA4GA1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAwNo +ADBlAjADVS2m5hjEfO/JUG7BJw+ch69u1RsIGL2SKcHvlJF40jocVYli5RsJHrpka/F2tNQCMQC0 +QoSZ/6vnnvuRlydd3LBbMHHOXjgaatkl5+r3YZJW+OraNsKHZZYuciUvf9/DE8k= +-----END CERTIFICATE----- + +Certum Trusted Root CA +====================== +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- + +TunTrust Root CA +================ +-----BEGIN CERTIFICATE----- +MIIFszCCA5ugAwIBAgIUEwLV4kBMkkaGFmddtLu7sms+/BMwDQYJKoZIhvcNAQELBQAwYTELMAkG +A1UEBhMCVE4xNzA1BgNVBAoMLkFnZW5jZSBOYXRpb25hbGUgZGUgQ2VydGlmaWNhdGlvbiBFbGVj +dHJvbmlxdWUxGTAXBgNVBAMMEFR1blRydXN0IFJvb3QgQ0EwHhcNMTkwNDI2MDg1NzU2WhcNNDQw +NDI2MDg1NzU2WjBhMQswCQYDVQQGEwJUTjE3MDUGA1UECgwuQWdlbmNlIE5hdGlvbmFsZSBkZSBD +ZXJ0aWZpY2F0aW9uIEVsZWN0cm9uaXF1ZTEZMBcGA1UEAwwQVHVuVHJ1c3QgUm9vdCBDQTCCAiIw +DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMPN0/y9BFPdDCA61YguBUtB9YOCfvdZn56eY+hz +2vYGqU8ftPkLHzmMmiDQfgbU7DTZhrx1W4eI8NLZ1KMKsmwb60ksPqxd2JQDoOw05TDENX37Jk0b +bjBU2PWARZw5rZzJJQRNmpA+TkBuimvNKWfGzC3gdOgFVwpIUPp6Q9p+7FuaDmJ2/uqdHYVy7BG7 +NegfJ7/Boce7SBbdVtfMTqDhuazb1YMZGoXRlJfXyqNlC/M4+QKu3fZnz8k/9YosRxqZbwUN/dAd +gjH8KcwAWJeRTIAAHDOFli/LQcKLEITDCSSJH7UP2dl3RxiSlGBcx5kDPP73lad9UKGAwqmDrViW +VSHbhlnUr8a83YFuB9tgYv7sEG7aaAH0gxupPqJbI9dkxt/con3YS7qC0lH4Zr8GRuR5KiY2eY8f +Tpkdso8MDhz/yV3A/ZAQprE38806JG60hZC/gLkMjNWb1sjxVj8agIl6qeIbMlEsPvLfe/ZdeikZ +juXIvTZxi11Mwh0/rViizz1wTaZQmCXcI/m4WEEIcb9PuISgjwBUFfyRbVinljvrS5YnzWuioYas +DXxU5mZMZl+QviGaAkYt5IPCgLnPSz7ofzwB7I9ezX/SKEIBlYrilz0QIX32nRzFNKHsLA4KUiwS +VXAkPcvCFDVDXSdOvsC9qnyW5/yeYa1E0wCXAgMBAAGjYzBhMB0GA1UdDgQWBBQGmpsfU33x9aTI +04Y+oXNZtPdEITAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFAaamx9TffH1pMjThj6hc1m0 +90QhMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAqgVutt0Vyb+zxiD2BkewhpMl +0425yAA/l/VSJ4hxyXT968pk21vvHl26v9Hr7lxpuhbI87mP0zYuQEkHDVneixCwSQXi/5E/S7fd +Ao74gShczNxtr18UnH1YeA32gAm56Q6XKRm4t+v4FstVEuTGfbvE7Pi1HE4+Z7/FXxttbUcoqgRY +YdZ2vyJ/0Adqp2RT8JeNnYA/u8EH22Wv5psymsNUk8QcCMNE+3tjEUPRahphanltkE8pjkcFwRJp +adbGNjHh/PqAulxPxOu3Mqz4dWEX1xAZufHSCe96Qp1bWgvUxpVOKs7/B9dPfhgGiPEZtdmYu65x +xBzndFlY7wyJz4sfdZMaBBSSSFCp61cpABbjNhzI+L/wM9VBD8TMPN3pM0MBkRArHtG5Xc0yGYuP +jCB31yLEQtyEFpslbei0VXF/sHyz03FJuc9SpAQ/3D2gu68zngowYI7bnV2UqL1g52KAdoGDDIzM +MEZJ4gzSqK/rYXHv5yJiqfdcZGyfFoxnNidF9Ql7v/YQCvGwjVRDjAS6oz/v4jXH+XTgbzRB0L9z +ZVcg+ZtnemZoJE6AZb0QmQZZ8mWvuMZHu/2QeItBcy6vVR/cO5JyboTT0GFMDcx2V+IthSIVNg3r +AZ3r2OvEhJn7wAzMMujjd9qDRIueVSjAi1jTkD5OGwDxFa2DK5o= +-----END CERTIFICATE----- + +HARICA TLS RSA Root CA 2021 +=========================== +-----BEGIN CERTIFICATE----- +MIIFpDCCA4ygAwIBAgIQOcqTHO9D88aOk8f0ZIk4fjANBgkqhkiG9w0BAQsFADBsMQswCQYDVQQG +EwJHUjE3MDUGA1UECgwuSGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9u +cyBDQTEkMCIGA1UEAwwbSEFSSUNBIFRMUyBSU0EgUm9vdCBDQSAyMDIxMB4XDTIxMDIxOTEwNTUz +OFoXDTQ1MDIxMzEwNTUzN1owbDELMAkGA1UEBhMCR1IxNzA1BgNVBAoMLkhlbGxlbmljIEFjYWRl +bWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ0ExJDAiBgNVBAMMG0hBUklDQSBUTFMgUlNB +IFJvb3QgQ0EgMjAyMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAIvC569lmwVnlskN +JLnQDmT8zuIkGCyEf3dRywQRNrhe7Wlxp57kJQmXZ8FHws+RFjZiPTgE4VGC/6zStGndLuwRo0Xu +a2s7TL+MjaQenRG56Tj5eg4MmOIjHdFOY9TnuEFE+2uva9of08WRiFukiZLRgeaMOVig1mlDqa2Y +Ulhu2wr7a89o+uOkXjpFc5gH6l8Cct4MpbOfrqkdtx2z/IpZ525yZa31MJQjB/OCFks1mJxTuy/K +5FrZx40d/JiZ+yykgmvwKh+OC19xXFyuQnspiYHLA6OZyoieC0AJQTPb5lh6/a6ZcMBaD9YThnEv +dmn8kN3bLW7R8pv1GmuebxWMevBLKKAiOIAkbDakO/IwkfN4E8/BPzWr8R0RI7VDIp4BkrcYAuUR +0YLbFQDMYTfBKnya4dC6s1BG7oKsnTH4+yPiAwBIcKMJJnkVU2DzOFytOOqBAGMUuTNe3QvboEUH +GjMJ+E20pwKmafTCWQWIZYVWrkvL4N48fS0ayOn7H6NhStYqE613TBoYm5EPWNgGVMWX+Ko/IIqm +haZ39qb8HOLubpQzKoNQhArlT4b4UEV4AIHrW2jjJo3Me1xR9BQsQL4aYB16cmEdH2MtiKrOokWQ +CPxrvrNQKlr9qEgYRtaQQJKQCoReaDH46+0N0x3GfZkYVVYnZS6NRcUk7M7jAgMBAAGjQjBAMA8G +A1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFApII6ZgpJIKM+qTW8VX6iVNvRLuMA4GA1UdDwEB/wQE +AwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAPpBIqm5iFSVmewzVjIuJndftTgfvnNAUX15QvWiWkKQU +EapobQk1OUAJ2vQJLDSle1mESSmXdMgHHkdt8s4cUCbjnj1AUz/3f5Z2EMVGpdAgS1D0NTsY9FVq +QRtHBmg8uwkIYtlfVUKqrFOFrJVWNlar5AWMxajaH6NpvVMPxP/cyuN+8kyIhkdGGvMA9YCRotxD +QpSbIPDRzbLrLFPCU3hKTwSUQZqPJzLB5UkZv/HywouoCjkxKLR9YjYsTewfM7Z+d21+UPCfDtcR +j88YxeMn/ibvBZ3PzzfF0HvaO7AWhAw6k9a+F9sPPg4ZeAnHqQJyIkv3N3a6dcSFA1pj1bF1BcK5 +vZStjBWZp5N99sXzqnTPBIWUmAD04vnKJGW/4GKvyMX6ssmeVkjaef2WdhW+o45WxLM0/L5H9MG0 +qPzVMIho7suuyWPEdr6sOBjhXlzPrjoiUevRi7PzKzMHVIf6tLITe7pTBGIBnfHAT+7hOtSLIBD6 +Alfm78ELt5BGnBkpjNxvoEppaZS3JGWg/6w/zgH7IS79aPib8qXPMThcFarmlwDB31qlpzmq6YR/ +PFGoOtmUW4y/Twhx5duoXNTSpv4Ao8YWxw/ogM4cKGR0GQjTQuPOAF1/sdwTsOEFy9EgqoZ0njnn +kf3/W9b3raYvAwtt41dU63ZTGI0RmLo= +-----END CERTIFICATE----- + +HARICA TLS ECC Root CA 2021 +=========================== +-----BEGIN CERTIFICATE----- +MIICVDCCAdugAwIBAgIQZ3SdjXfYO2rbIvT/WeK/zjAKBggqhkjOPQQDAzBsMQswCQYDVQQGEwJH +UjE3MDUGA1UECgwuSGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9ucyBD +QTEkMCIGA1UEAwwbSEFSSUNBIFRMUyBFQ0MgUm9vdCBDQSAyMDIxMB4XDTIxMDIxOTExMDExMFoX +DTQ1MDIxMzExMDEwOVowbDELMAkGA1UEBhMCR1IxNzA1BgNVBAoMLkhlbGxlbmljIEFjYWRlbWlj +IGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ0ExJDAiBgNVBAMMG0hBUklDQSBUTFMgRUNDIFJv +b3QgQ0EgMjAyMTB2MBAGByqGSM49AgEGBSuBBAAiA2IABDgI/rGgltJ6rK9JOtDA4MM7KKrxcm1l +AEeIhPyaJmuqS7psBAqIXhfyVYf8MLA04jRYVxqEU+kw2anylnTDUR9YSTHMmE5gEYd103KUkE+b +ECUqqHgtvpBBWJAVcqeht6NCMEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUyRtTgRL+BNUW +0aq8mm+3oJUZbsowDgYDVR0PAQH/BAQDAgGGMAoGCCqGSM49BAMDA2cAMGQCMBHervjcToiwqfAi +rcJRQO9gcS3ujwLEXQNwSaSS6sUUiHCm0w2wqsosQJz76YJumgIwK0eaB8bRwoF8yguWGEEbo/Qw +CZ61IygNnxS2PFOiTAZpffpskcYqSUXm7LcT4Tps +-----END CERTIFICATE----- + +Autoridad de Certificacion Firmaprofesional CIF A62634068 +========================================================= +-----BEGIN CERTIFICATE----- +MIIGFDCCA/ygAwIBAgIIG3Dp0v+ubHEwDQYJKoZIhvcNAQELBQAwUTELMAkGA1UEBhMCRVMxQjBA +BgNVBAMMOUF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZpcm1hcHJvZmVzaW9uYWwgQ0lGIEE2 +MjYzNDA2ODAeFw0xNDA5MjMxNTIyMDdaFw0zNjA1MDUxNTIyMDdaMFExCzAJBgNVBAYTAkVTMUIw +QAYDVQQDDDlBdXRvcmlkYWQgZGUgQ2VydGlmaWNhY2lvbiBGaXJtYXByb2Zlc2lvbmFsIENJRiBB +NjI2MzQwNjgwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKlmuO6vj78aI14H9M2uDD +Utd9thDIAl6zQyrET2qyyhxdKJp4ERppWVevtSBC5IsP5t9bpgOSL/UR5GLXMnE42QQMcas9UX4P +B99jBVzpv5RvwSmCwLTaUbDBPLutN0pcyvFLNg4kq7/DhHf9qFD0sefGL9ItWY16Ck6WaVICqjaY +7Pz6FIMMNx/Jkjd/14Et5cS54D40/mf0PmbR0/RAz15iNA9wBj4gGFrO93IbJWyTdBSTo3OxDqqH +ECNZXyAFGUftaI6SEspd/NYrspI8IM/hX68gvqB2f3bl7BqGYTM+53u0P6APjqK5am+5hyZvQWyI +plD9amML9ZMWGxmPsu2bm8mQ9QEM3xk9Dz44I8kvjwzRAv4bVdZO0I08r0+k8/6vKtMFnXkIoctX +MbScyJCyZ/QYFpM6/EfY0XiWMR+6KwxfXZmtY4laJCB22N/9q06mIqqdXuYnin1oKaPnirjaEbsX +LZmdEyRG98Xi2J+Of8ePdG1asuhy9azuJBCtLxTa/y2aRnFHvkLfuwHb9H/TKI8xWVvTyQKmtFLK +bpf7Q8UIJm+K9Lv9nyiqDdVF8xM6HdjAeI9BZzwelGSuewvF6NkBiDkal4ZkQdU7hwxu+g/GvUgU +vzlN1J5Bto+WHWOWk9mVBngxaJ43BjuAiUVhOSPHG0SjFeUc+JIwuwIDAQABo4HvMIHsMB0GA1Ud +DgQWBBRlzeurNR4APn7VdMActHNHDhpkLzASBgNVHRMBAf8ECDAGAQH/AgEBMIGmBgNVHSAEgZ4w +gZswgZgGBFUdIAAwgY8wLwYIKwYBBQUHAgEWI2h0dHA6Ly93d3cuZmlybWFwcm9mZXNpb25hbC5j +b20vY3BzMFwGCCsGAQUFBwICMFAeTgBQAGEAcwBlAG8AIABkAGUAIABsAGEAIABCAG8AbgBhAG4A +bwB2AGEAIAA0ADcAIABCAGEAcgBjAGUAbABvAG4AYQAgADAAOAAwADEANzAOBgNVHQ8BAf8EBAMC +AQYwDQYJKoZIhvcNAQELBQADggIBAHSHKAIrdx9miWTtj3QuRhy7qPj4Cx2Dtjqn6EWKB7fgPiDL +4QjbEwj4KKE1soCzC1HA01aajTNFSa9J8OA9B3pFE1r/yJfY0xgsfZb43aJlQ3CTkBW6kN/oGbDb +LIpgD7dvlAceHabJhfa9NPhAeGIQcDq+fUs5gakQ1JZBu/hfHAsdCPKxsIl68veg4MSPi3i1O1il +I45PVf42O+AMt8oqMEEgtIDNrvx2ZnOorm7hfNoD6JQg5iKj0B+QXSBTFCZX2lSX3xZEEAEeiGaP +cjiT3SC3NL7X8e5jjkd5KAb881lFJWAiMxujX6i6KtoaPc1A6ozuBRWV1aUsIC+nmCjuRfzxuIgA +LI9C2lHVnOUTaHFFQ4ueCyE8S1wF3BqfmI7avSKecs2tCsvMo2ebKHTEm9caPARYpoKdrcd7b/+A +lun4jWq9GJAd/0kakFI3ky88Al2CdgtR5xbHV/g4+afNmyJU72OwFW1TZQNKXkqgsqeOSQBZONXH +9IBk9W6VULgRfhVwOEqwf9DEMnDAGf/JOC0ULGb0QkTmVXYbgBVX/8Cnp6o5qtjTcNAuuuuUavpf +NIbnYrX9ivAwhZTJryQCL2/W3Wf+47BVTwSYT6RBVuKT0Gro1vP7ZeDOdcQxWQzugsgMYDNKGbqE +ZycPvEJdvSRUDewdcAZfpLz6IHxV +-----END CERTIFICATE----- + +vTrus ECC Root CA +================= +-----BEGIN CERTIFICATE----- +MIICDzCCAZWgAwIBAgIUbmq8WapTvpg5Z6LSa6Q75m0c1towCgYIKoZIzj0EAwMwRzELMAkGA1UE +BhMCQ04xHDAaBgNVBAoTE2lUcnVzQ2hpbmEgQ28uLEx0ZC4xGjAYBgNVBAMTEXZUcnVzIEVDQyBS +b290IENBMB4XDTE4MDczMTA3MjY0NFoXDTQzMDczMTA3MjY0NFowRzELMAkGA1UEBhMCQ04xHDAa +BgNVBAoTE2lUcnVzQ2hpbmEgQ28uLEx0ZC4xGjAYBgNVBAMTEXZUcnVzIEVDQyBSb290IENBMHYw +EAYHKoZIzj0CAQYFK4EEACIDYgAEZVBKrox5lkqqHAjDo6LN/llWQXf9JpRCux3NCNtzslt188+c +ToL0v/hhJoVs1oVbcnDS/dtitN9Ti72xRFhiQgnH+n9bEOf+QP3A2MMrMudwpremIFUde4BdS49n +TPEQo0IwQDAdBgNVHQ4EFgQUmDnNvtiyjPeyq+GtJK97fKHbH88wDwYDVR0TAQH/BAUwAwEB/zAO +BgNVHQ8BAf8EBAMCAQYwCgYIKoZIzj0EAwMDaAAwZQIwV53dVvHH4+m4SVBrm2nDb+zDfSXkV5UT +QJtS0zvzQBm8JsctBp61ezaf9SXUY2sAAjEA6dPGnlaaKsyh2j/IZivTWJwghfqrkYpwcBE4YGQL +YgmRWAD5Tfs0aNoJrSEGGJTO +-----END CERTIFICATE----- + +vTrus Root CA +============= +-----BEGIN CERTIFICATE----- +MIIFVjCCAz6gAwIBAgIUQ+NxE9izWRRdt86M/TX9b7wFjUUwDQYJKoZIhvcNAQELBQAwQzELMAkG +A1UEBhMCQ04xHDAaBgNVBAoTE2lUcnVzQ2hpbmEgQ28uLEx0ZC4xFjAUBgNVBAMTDXZUcnVzIFJv +b3QgQ0EwHhcNMTgwNzMxMDcyNDA1WhcNNDMwNzMxMDcyNDA1WjBDMQswCQYDVQQGEwJDTjEcMBoG +A1UEChMTaVRydXNDaGluYSBDby4sTHRkLjEWMBQGA1UEAxMNdlRydXMgUm9vdCBDQTCCAiIwDQYJ +KoZIhvcNAQEBBQADggIPADCCAgoCggIBAL1VfGHTuB0EYgWgrmy3cLRB6ksDXhA/kFocizuwZots +SKYcIrrVQJLuM7IjWcmOvFjai57QGfIvWcaMY1q6n6MLsLOaXLoRuBLpDLvPbmyAhykUAyyNJJrI +ZIO1aqwTLDPxn9wsYTwaP3BVm60AUn/PBLn+NvqcwBauYv6WTEN+VRS+GrPSbcKvdmaVayqwlHeF +XgQPYh1jdfdr58tbmnDsPmcF8P4HCIDPKNsFxhQnL4Z98Cfe/+Z+M0jnCx5Y0ScrUw5XSmXX+6KA +YPxMvDVTAWqXcoKv8R1w6Jz1717CbMdHflqUhSZNO7rrTOiwCcJlwp2dCZtOtZcFrPUGoPc2BX70 +kLJrxLT5ZOrpGgrIDajtJ8nU57O5q4IikCc9Kuh8kO+8T/3iCiSn3mUkpF3qwHYw03dQ+A0Em5Q2 +AXPKBlim0zvc+gRGE1WKyURHuFE5Gi7oNOJ5y1lKCn+8pu8fA2dqWSslYpPZUxlmPCdiKYZNpGvu +/9ROutW04o5IWgAZCfEF2c6Rsffr6TlP9m8EQ5pV9T4FFL2/s1m02I4zhKOQUqqzApVg+QxMaPnu +1RcN+HFXtSXkKe5lXa/R7jwXC1pDxaWG6iSe4gUH3DRCEpHWOXSuTEGC2/KmSNGzm/MzqvOmwMVO +9fSddmPmAsYiS8GVP1BkLFTltvA8Kc9XAgMBAAGjQjBAMB0GA1UdDgQWBBRUYnBj8XWEQ1iO0RYg +scasGrz2iTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOC +AgEAKbqSSaet8PFww+SX8J+pJdVrnjT+5hpk9jprUrIQeBqfTNqK2uwcN1LgQkv7bHbKJAs5EhWd +nxEt/Hlk3ODg9d3gV8mlsnZwUKT+twpw1aA08XXXTUm6EdGz2OyC/+sOxL9kLX1jbhd47F18iMjr +jld22VkE+rxSH0Ws8HqA7Oxvdq6R2xCOBNyS36D25q5J08FsEhvMKar5CKXiNxTKsbhm7xqC5PD4 +8acWabfbqWE8n/Uxy+QARsIvdLGx14HuqCaVvIivTDUHKgLKeBRtRytAVunLKmChZwOgzoy8sHJn +xDHO2zTlJQNgJXtxmOTAGytfdELSS8VZCAeHvsXDf+eW2eHcKJfWjwXj9ZtOyh1QRwVTsMo554Wg +icEFOwE30z9J4nfrI8iIZjs9OXYhRvHsXyO466JmdXTBQPfYaJqT4i2pLr0cox7IdMakLXogqzu4 +sEb9b91fUlV1YvCXoHzXOP0l382gmxDPi7g4Xl7FtKYCNqEeXxzP4padKar9mK5S4fNBUvupLnKW +nyfjqnN9+BojZns7q2WwMgFLFT49ok8MKzWixtlnEjUwzXYuFrOZnk1PTi07NEPhmg4NpGaXutIc +SkwsKouLgU9xGqndXHt7CMUADTdA43x7VF8vhV929vensBxXVsFy6K2ir40zSbofitzmdHxghm+H +l3s= +-----END CERTIFICATE----- + +ISRG Root X2 +============ +-----BEGIN CERTIFICATE----- +MIICGzCCAaGgAwIBAgIQQdKd0XLq7qeAwSxs6S+HUjAKBggqhkjOPQQDAzBPMQswCQYDVQQGEwJV +UzEpMCcGA1UEChMgSW50ZXJuZXQgU2VjdXJpdHkgUmVzZWFyY2ggR3JvdXAxFTATBgNVBAMTDElT +UkcgUm9vdCBYMjAeFw0yMDA5MDQwMDAwMDBaFw00MDA5MTcxNjAwMDBaME8xCzAJBgNVBAYTAlVT +MSkwJwYDVQQKEyBJbnRlcm5ldCBTZWN1cml0eSBSZXNlYXJjaCBHcm91cDEVMBMGA1UEAxMMSVNS +RyBSb290IFgyMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEzZvVn4CDCuwJSvMWSj5cz3es3mcFDR0H +ttwW+1qLFNvicWDEukWVEYmO6gbf9yoWHKS5xcUy4APgHoIYOIvXRdgKam7mAHf7AlF9ItgKbppb +d9/w+kHsOdx1ymgHDB/qo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNV +HQ4EFgQUfEKWrt5LSDv6kviejM9ti6lyN5UwCgYIKoZIzj0EAwMDaAAwZQIwe3lORlCEwkSHRhtF +cP9Ymd70/aTSVaYgLXTWNLxBo1BfASdWtL4ndQavEi51mI38AjEAi/V3bNTIZargCyzuFJ0nN6T5 +U6VR5CmD1/iQMVtCnwr1/q4AaOeMSQ+2b1tbFfLn +-----END CERTIFICATE----- + +HiPKI Root CA - G1 +================== +-----BEGIN CERTIFICATE----- +MIIFajCCA1KgAwIBAgIQLd2szmKXlKFD6LDNdmpeYDANBgkqhkiG9w0BAQsFADBPMQswCQYDVQQG +EwJUVzEjMCEGA1UECgwaQ2h1bmdod2EgVGVsZWNvbSBDby4sIEx0ZC4xGzAZBgNVBAMMEkhpUEtJ +IFJvb3QgQ0EgLSBHMTAeFw0xOTAyMjIwOTQ2MDRaFw0zNzEyMzExNTU5NTlaME8xCzAJBgNVBAYT +AlRXMSMwIQYDVQQKDBpDaHVuZ2h3YSBUZWxlY29tIENvLiwgTHRkLjEbMBkGA1UEAwwSSGlQS0kg +Um9vdCBDQSAtIEcxMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA9B5/UnMyDHPkvRN0 +o9QwqNCuS9i233VHZvR85zkEHmpwINJaR3JnVfSl6J3VHiGh8Ge6zCFovkRTv4354twvVcg3Px+k +wJyz5HdcoEb+d/oaoDjq7Zpy3iu9lFc6uux55199QmQ5eiY29yTw1S+6lZgRZq2XNdZ1AYDgr/SE +YYwNHl98h5ZeQa/rh+r4XfEuiAU+TCK72h8q3VJGZDnzQs7ZngyzsHeXZJzA9KMuH5UHsBffMNsA +GJZMoYFL3QRtU6M9/Aes1MU3guvklQgZKILSQjqj2FPseYlgSGDIcpJQ3AOPgz+yQlda22rpEZfd +hSi8MEyr48KxRURHH+CKFgeW0iEPU8DtqX7UTuybCeyvQqww1r/REEXgphaypcXTT3OUM3ECoWqj +1jOXTyFjHluP2cFeRXF3D4FdXyGarYPM+l7WjSNfGz1BryB1ZlpK9p/7qxj3ccC2HTHsOyDry+K4 +9a6SsvfhhEvyovKTmiKe0xRvNlS9H15ZFblzqMF8b3ti6RZsR1pl8w4Rm0bZ/W3c1pzAtH2lsN0/ +Vm+h+fbkEkj9Bn8SV7apI09bA8PgcSojt/ewsTu8mL3WmKgMa/aOEmem8rJY5AIJEzypuxC00jBF +8ez3ABHfZfjcK0NVvxaXxA/VLGGEqnKG/uY6fsI/fe78LxQ+5oXdUG+3Se0CAwEAAaNCMEAwDwYD +VR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU8ncX+l6o/vY9cdVouslGDDjYr7AwDgYDVR0PAQH/BAQD +AgGGMA0GCSqGSIb3DQEBCwUAA4ICAQBQUfB13HAE4/+qddRxosuej6ip0691x1TPOhwEmSKsxBHi +7zNKpiMdDg1H2DfHb680f0+BazVP6XKlMeJ45/dOlBhbQH3PayFUhuaVevvGyuqcSE5XCV0vrPSl +tJczWNWseanMX/mF+lLFjfiRFOs6DRfQUsJ748JzjkZ4Bjgs6FzaZsT0pPBWGTMpWmWSBUdGSquE +wx4noR8RkpkndZMPvDY7l1ePJlsMu5wP1G4wB9TcXzZoZjmDlicmisjEOf6aIW/Vcobpf2Lll07Q +JNBAsNB1CI69aO4I1258EHBGG3zgiLKecoaZAeO/n0kZtCW+VmWuF2PlHt/o/0elv+EmBYTksMCv +5wiZqAxeJoBF1PhoL5aPruJKHJwWDBNvOIf2u8g0X5IDUXlwpt/L9ZlNec1OvFefQ05rLisY+Gpz +jLrFNe85akEez3GoorKGB1s6yeHvP2UEgEcyRHCVTjFnanRbEEV16rCf0OY1/k6fi8wrkkVbbiVg +hUbN0aqwdmaTd5a+g744tiROJgvM7XpWGuDpWsZkrUx6AEhEL7lAuxM+vhV4nYWBSipX3tUZQ9rb +yltHhoMLP7YNdnhzeSJesYAfz77RP1YQmCuVh6EfnWQUYDksswBVLuT1sw5XxJFBAJw/6KXf6vb/ +yPCtbVKoF6ubYfwSUTXkJf2vqmqGOQ== +-----END CERTIFICATE----- + +GlobalSign ECC Root CA - R4 +=========================== +-----BEGIN CERTIFICATE----- +MIIB3DCCAYOgAwIBAgINAgPlfvU/k/2lCSGypjAKBggqhkjOPQQDAjBQMSQwIgYDVQQLExtHbG9i +YWxTaWduIEVDQyBSb290IENBIC0gUjQxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkds +b2JhbFNpZ24wHhcNMTIxMTEzMDAwMDAwWhcNMzgwMTE5MDMxNDA3WjBQMSQwIgYDVQQLExtHbG9i +YWxTaWduIEVDQyBSb290IENBIC0gUjQxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkds +b2JhbFNpZ24wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAS4xnnTj2wlDp8uORkcA6SumuU5BwkW +ymOxuYb4ilfBV85C+nOh92VC/x7BALJucw7/xyHlGKSq2XE/qNS5zowdo0IwQDAOBgNVHQ8BAf8E +BAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUVLB7rUW44kB/+wpu+74zyTyjhNUwCgYI +KoZIzj0EAwIDRwAwRAIgIk90crlgr/HmnKAWBVBfw147bmF0774BxL4YSFlhgjICICadVGNA3jdg +UM/I2O2dgq43mLyjj0xMqTQrbO/7lZsm +-----END CERTIFICATE----- + +GTS Root R1 +=========== +-----BEGIN CERTIFICATE----- +MIIFVzCCAz+gAwIBAgINAgPlk28xsBNJiGuiFzANBgkqhkiG9w0BAQwFADBHMQswCQYDVQQGEwJV +UzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3Qg +UjEwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UE +ChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwggIiMA0G +CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2EQKLHuOhd5s73L+UPreVp0A8of2C+X0yBoJx9vaM +f/vo27xqLpeXo4xL+Sv2sfnOhB2x+cWX3u+58qPpvBKJXqeqUqv4IyfLpLGcY9vXmX7wCl7raKb0 +xlpHDU0QM+NOsROjyBhsS+z8CZDfnWQpJSMHobTSPS5g4M/SCYe7zUjwTcLCeoiKu7rPWRnWr4+w +B7CeMfGCwcDfLqZtbBkOtdh+JhpFAz2weaSUKK0PfyblqAj+lug8aJRT7oM6iCsVlgmy4HqMLnXW +nOunVmSPlk9orj2XwoSPwLxAwAtcvfaHszVsrBhQf4TgTM2S0yDpM7xSma8ytSmzJSq0SPly4cpk +9+aCEI3oncKKiPo4Zor8Y/kB+Xj9e1x3+naH+uzfsQ55lVe0vSbv1gHR6xYKu44LtcXFilWr06zq +kUspzBmkMiVOKvFlRNACzqrOSbTqn3yDsEB750Orp2yjj32JgfpMpf/VjsPOS+C12LOORc92wO1A +K/1TD7Cn1TsNsYqiA94xrcx36m97PtbfkSIS5r762DL8EGMUUXLeXdYWk70paDPvOmbsB4om3xPX +V2V4J95eSRQAogB/mqghtqmxlbCluQ0WEdrHbEg8QOB+DVrNVjzRlwW5y0vtOUucxD/SVRNuJLDW +cfr0wbrM7Rv1/oFB2ACYPTrIrnqYNxgFlQIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0T +AQH/BAUwAwEB/zAdBgNVHQ4EFgQU5K8rJnEaK0gnhS9SZizv8IkTcT4wDQYJKoZIhvcNAQEMBQAD +ggIBAJ+qQibbC5u+/x6Wki4+omVKapi6Ist9wTrYggoGxval3sBOh2Z5ofmmWJyq+bXmYOfg6LEe +QkEzCzc9zolwFcq1JKjPa7XSQCGYzyI0zzvFIoTgxQ6KfF2I5DUkzps+GlQebtuyh6f88/qBVRRi +ClmpIgUxPoLW7ttXNLwzldMXG+gnoot7TiYaelpkttGsN/H9oPM47HLwEXWdyzRSjeZ2axfG34ar +J45JK3VmgRAhpuo+9K4l/3wV3s6MJT/KYnAK9y8JZgfIPxz88NtFMN9iiMG1D53Dn0reWVlHxYci +NuaCp+0KueIHoI17eko8cdLiA6EfMgfdG+RCzgwARWGAtQsgWSl4vflVy2PFPEz0tv/bal8xa5me +LMFrUKTX5hgUvYU/Z6tGn6D/Qqc6f1zLXbBwHSs09dR2CQzreExZBfMzQsNhFRAbd03OIozUhfJF +fbdT6u9AWpQKXCBfTkBdYiJ23//OYb2MI3jSNwLgjt7RETeJ9r/tSQdirpLsQBqvFAnZ0E6yove+ +7u7Y/9waLd64NnHi/Hm3lCXRSHNboTXns5lndcEZOitHTtNCjv0xyBZm2tIMPNuzjsmhDYAPexZ3 +FL//2wmUspO8IFgV6dtxQ/PeEMMA3KgqlbbC1j+Qa3bbbP6MvPJwNQzcmRk13NfIRmPVNnGuV/u3 +gm3c +-----END CERTIFICATE----- + +GTS Root R2 +=========== +-----BEGIN CERTIFICATE----- +MIIFVzCCAz+gAwIBAgINAgPlrsWNBCUaqxElqjANBgkqhkiG9w0BAQwFADBHMQswCQYDVQQGEwJV +UzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3Qg +UjIwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UE +ChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjIwggIiMA0G +CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDO3v2m++zsFDQ8BwZabFn3GTXd98GdVarTzTukk3Lv +CvptnfbwhYBboUhSnznFt+4orO/LdmgUud+tAWyZH8QiHZ/+cnfgLFuv5AS/T3KgGjSY6Dlo7JUl +e3ah5mm5hRm9iYz+re026nO8/4Piy33B0s5Ks40FnotJk9/BW9BuXvAuMC6C/Pq8tBcKSOWIm8Wb +a96wyrQD8Nr0kLhlZPdcTK3ofmZemde4wj7I0BOdre7kRXuJVfeKH2JShBKzwkCX44ofR5GmdFrS ++LFjKBC4swm4VndAoiaYecb+3yXuPuWgf9RhD1FLPD+M2uFwdNjCaKH5wQzpoeJ/u1U8dgbuak7M +kogwTZq9TwtImoS1mKPV+3PBV2HdKFZ1E66HjucMUQkQdYhMvI35ezzUIkgfKtzra7tEscszcTJG +r61K8YzodDqs5xoic4DSMPclQsciOzsSrZYuxsN2B6ogtzVJV+mSSeh2FnIxZyuWfoqjx5RWIr9q +S34BIbIjMt/kmkRtWVtd9QCgHJvGeJeNkP+byKq0rxFROV7Z+2et1VsRnTKaG73VululycslaVNV +J1zgyjbLiGH7HrfQy+4W+9OmTN6SpdTi3/UGVN4unUu0kzCqgc7dGtxRcw1PcOnlthYhGXmy5okL +dWTK1au8CcEYof/UVKGFPP0UJAOyh9OktwIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0T +AQH/BAUwAwEB/zAdBgNVHQ4EFgQUu//KjiOfT5nK2+JopqUVJxce2Q4wDQYJKoZIhvcNAQEMBQAD +ggIBAB/Kzt3HvqGf2SdMC9wXmBFqiN495nFWcrKeGk6c1SuYJF2ba3uwM4IJvd8lRuqYnrYb/oM8 +0mJhwQTtzuDFycgTE1XnqGOtjHsB/ncw4c5omwX4Eu55MaBBRTUoCnGkJE+M3DyCB19m3H0Q/gxh +swWV7uGugQ+o+MePTagjAiZrHYNSVc61LwDKgEDg4XSsYPWHgJ2uNmSRXbBoGOqKYcl3qJfEycel +/FVL8/B/uWU9J2jQzGv6U53hkRrJXRqWbTKH7QMgyALOWr7Z6v2yTcQvG99fevX4i8buMTolUVVn +jWQye+mew4K6Ki3pHrTgSAai/GevHyICc/sgCq+dVEuhzf9gR7A/Xe8bVr2XIZYtCtFenTgCR2y5 +9PYjJbigapordwj6xLEokCZYCDzifqrXPW+6MYgKBesntaFJ7qBFVHvmJ2WZICGoo7z7GJa7Um8M +7YNRTOlZ4iBgxcJlkoKM8xAfDoqXvneCbT+PHV28SSe9zE8P4c52hgQjxcCMElv924SgJPFI/2R8 +0L5cFtHvma3AH/vLrrw4IgYmZNralw4/KBVEqE8AyvCazM90arQ+POuV7LXTWtiBmelDGDfrs7vR +WGJB82bSj6p4lVQgw1oudCvV0b4YacCs1aTPObpRhANl6WLAYv7YTVWW4tAR+kg0Eeye7QUd5MjW +HYbL +-----END CERTIFICATE----- + +GTS Root R3 +=========== +-----BEGIN CERTIFICATE----- +MIICCTCCAY6gAwIBAgINAgPluILrIPglJ209ZjAKBggqhkjOPQQDAzBHMQswCQYDVQQGEwJVUzEi +MCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjMw +HhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZ +R29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjMwdjAQBgcqhkjO +PQIBBgUrgQQAIgNiAAQfTzOHMymKoYTey8chWEGJ6ladK0uFxh1MJ7x/JlFyb+Kf1qPKzEUURout +736GjOyxfi//qXGdGIRFBEFVbivqJn+7kAHjSxm65FSWRQmx1WyRRK2EE46ajA2ADDL24CejQjBA +MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTB8Sa6oC2uhYHP0/Eq +Er24Cmf9vDAKBggqhkjOPQQDAwNpADBmAjEA9uEglRR7VKOQFhG/hMjqb2sXnh5GmCCbn9MN2azT +L818+FsuVbu/3ZL3pAzcMeGiAjEA/JdmZuVDFhOD3cffL74UOO0BzrEXGhF16b0DjyZ+hOXJYKaV +11RZt+cRLInUue4X +-----END CERTIFICATE----- + +GTS Root R4 +=========== +-----BEGIN CERTIFICATE----- +MIICCTCCAY6gAwIBAgINAgPlwGjvYxqccpBQUjAKBggqhkjOPQQDAzBHMQswCQYDVQQGEwJVUzEi +MCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjQw +HhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZ +R29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjQwdjAQBgcqhkjO +PQIBBgUrgQQAIgNiAATzdHOnaItgrkO4NcWBMHtLSZ37wWHO5t5GvWvVYRg1rkDdc/eJkTBa6zzu +hXyiQHY7qca4R9gq55KRanPpsXI5nymfopjTX15YhmUPoYRlBtHci8nHc8iMai/lxKvRHYqjQjBA +MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSATNbrdP9JNqPV2Py1 +PsVq8JQdjDAKBggqhkjOPQQDAwNpADBmAjEA6ED/g94D9J+uHXqnLrmvT/aDHQ4thQEd0dlq7A/C +r8deVl5c1RxYIigL9zC2L7F8AjEA8GE8p/SgguMh1YQdc4acLa/KNJvxn7kjNuK8YAOdgLOaVsjh +4rsUecrNIdSUtUlD +-----END CERTIFICATE----- + +Telia Root CA v2 +================ +-----BEGIN CERTIFICATE----- +MIIFdDCCA1ygAwIBAgIPAWdfJ9b+euPkrL4JWwWeMA0GCSqGSIb3DQEBCwUAMEQxCzAJBgNVBAYT +AkZJMRowGAYDVQQKDBFUZWxpYSBGaW5sYW5kIE95ajEZMBcGA1UEAwwQVGVsaWEgUm9vdCBDQSB2 +MjAeFw0xODExMjkxMTU1NTRaFw00MzExMjkxMTU1NTRaMEQxCzAJBgNVBAYTAkZJMRowGAYDVQQK +DBFUZWxpYSBGaW5sYW5kIE95ajEZMBcGA1UEAwwQVGVsaWEgUm9vdCBDQSB2MjCCAiIwDQYJKoZI +hvcNAQEBBQADggIPADCCAgoCggIBALLQPwe84nvQa5n44ndp586dpAO8gm2h/oFlH0wnrI4AuhZ7 +6zBqAMCzdGh+sq/H1WKzej9Qyow2RCRj0jbpDIX2Q3bVTKFgcmfiKDOlyzG4OiIjNLh9vVYiQJ3q +9HsDrWj8soFPmNB06o3lfc1jw6P23pLCWBnglrvFxKk9pXSW/q/5iaq9lRdU2HhE8Qx3FZLgmEKn +pNaqIJLNwaCzlrI6hEKNfdWV5Nbb6WLEWLN5xYzTNTODn3WhUidhOPFZPY5Q4L15POdslv5e2QJl +tI5c0BE0312/UqeBAMN/mUWZFdUXyApT7GPzmX3MaRKGwhfwAZ6/hLzRUssbkmbOpFPlob/E2wnW +5olWK8jjfN7j/4nlNW4o6GwLI1GpJQXrSPjdscr6bAhR77cYbETKJuFzxokGgeWKrLDiKca5JLNr +RBH0pUPCTEPlcDaMtjNXepUugqD0XBCzYYP2AgWGLnwtbNwDRm41k9V6lS/eINhbfpSQBGq6WT0E +BXWdN6IOLj3rwaRSg/7Qa9RmjtzG6RJOHSpXqhC8fF6CfaamyfItufUXJ63RDolUK5X6wK0dmBR4 +M0KGCqlztft0DbcbMBnEWg4cJ7faGND/isgFuvGqHKI3t+ZIpEYslOqodmJHixBTB0hXbOKSTbau +BcvcwUpej6w9GU7C7WB1K9vBykLVAgMBAAGjYzBhMB8GA1UdIwQYMBaAFHKs5DN5qkWH9v2sHZ7W +xy+G2CQ5MB0GA1UdDgQWBBRyrOQzeapFh/b9rB2e1scvhtgkOTAOBgNVHQ8BAf8EBAMCAQYwDwYD +VR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAgEAoDtZpwmUPjaE0n4vOaWWl/oRrfxn83EJ +8rKJhGdEr7nv7ZbsnGTbMjBvZ5qsfl+yqwE2foH65IRe0qw24GtixX1LDoJt0nZi0f6X+J8wfBj5 +tFJ3gh1229MdqfDBmgC9bXXYfef6xzijnHDoRnkDry5023X4blMMA8iZGok1GTzTyVR8qPAs5m4H +eW9q4ebqkYJpCh3DflminmtGFZhb069GHWLIzoBSSRE/yQQSwxN8PzuKlts8oB4KtItUsiRnDe+C +y748fdHif64W1lZYudogsYMVoe+KTTJvQS8TUoKU1xrBeKJR3Stwbbca+few4GeXVtt8YVMJAygC +QMez2P2ccGrGKMOF6eLtGpOg3kuYooQ+BXcBlj37tCAPnHICehIv1aO6UXivKitEZU61/Qrowc15 +h2Er3oBXRb9n8ZuRXqWk7FlIEA04x7D6w0RtBPV4UBySllva9bguulvP5fBqnUsvWHMtTy3EHD70 +sz+rFQ47GUGKpMFXEmZxTPpT41frYpUJnlTd0cI8Vzy9OK2YZLe4A5pTVmBds9hCG1xLEooc6+t9 +xnppxyd/pPiL8uSUZodL6ZQHCRJ5irLrdATczvREWeAWysUsWNc8e89ihmpQfTU2Zqf7N+cox9jQ +raVplI/owd8k+BsHMYeB2F326CjYSlKArBPuUBQemMc= +-----END CERTIFICATE----- + +D-TRUST BR Root CA 1 2020 +========================= +-----BEGIN CERTIFICATE----- +MIIC2zCCAmCgAwIBAgIQfMmPK4TX3+oPyWWa00tNljAKBggqhkjOPQQDAzBIMQswCQYDVQQGEwJE +RTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlELVRSVVNUIEJSIFJvb3QgQ0EgMSAy +MDIwMB4XDTIwMDIxMTA5NDUwMFoXDTM1MDIxMTA5NDQ1OVowSDELMAkGA1UEBhMCREUxFTATBgNV +BAoTDEQtVHJ1c3QgR21iSDEiMCAGA1UEAxMZRC1UUlVTVCBCUiBSb290IENBIDEgMjAyMDB2MBAG +ByqGSM49AgEGBSuBBAAiA2IABMbLxyjR+4T1mu9CFCDhQ2tuda38KwOE1HaTJddZO0Flax7mNCq7 +dPYSzuht56vkPE4/RAiLzRZxy7+SmfSk1zxQVFKQhYN4lGdnoxwJGT11NIXe7WB9xwy0QVK5buXu +QqOCAQ0wggEJMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFHOREKv/VbNafAkl1bK6CKBrqx9t +MA4GA1UdDwEB/wQEAwIBBjCBxgYDVR0fBIG+MIG7MD6gPKA6hjhodHRwOi8vY3JsLmQtdHJ1c3Qu +bmV0L2NybC9kLXRydXN0X2JyX3Jvb3RfY2FfMV8yMDIwLmNybDB5oHegdYZzbGRhcDovL2RpcmVj +dG9yeS5kLXRydXN0Lm5ldC9DTj1ELVRSVVNUJTIwQlIlMjBSb290JTIwQ0ElMjAxJTIwMjAyMCxP +PUQtVHJ1c3QlMjBHbWJILEM9REU/Y2VydGlmaWNhdGVyZXZvY2F0aW9ubGlzdDAKBggqhkjOPQQD +AwNpADBmAjEAlJAtE/rhY/hhY+ithXhUkZy4kzg+GkHaQBZTQgjKL47xPoFWwKrY7RjEsK70Pvom +AjEA8yjixtsrmfu3Ubgko6SUeho/5jbiA1czijDLgsfWFBHVdWNbFJWcHwHP2NVypw87 +-----END CERTIFICATE----- + +D-TRUST EV Root CA 1 2020 +========================= +-----BEGIN CERTIFICATE----- +MIIC2zCCAmCgAwIBAgIQXwJB13qHfEwDo6yWjfv/0DAKBggqhkjOPQQDAzBIMQswCQYDVQQGEwJE +RTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlELVRSVVNUIEVWIFJvb3QgQ0EgMSAy +MDIwMB4XDTIwMDIxMTEwMDAwMFoXDTM1MDIxMTA5NTk1OVowSDELMAkGA1UEBhMCREUxFTATBgNV +BAoTDEQtVHJ1c3QgR21iSDEiMCAGA1UEAxMZRC1UUlVTVCBFViBSb290IENBIDEgMjAyMDB2MBAG +ByqGSM49AgEGBSuBBAAiA2IABPEL3YZDIBnfl4XoIkqbz52Yv7QFJsnL46bSj8WeeHsxiamJrSc8 +ZRCC/N/DnU7wMyPE0jL1HLDfMxddxfCxivnvubcUyilKwg+pf3VlSSowZ/Rk99Yad9rDwpdhQntJ +raOCAQ0wggEJMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFH8QARY3OqQo5FD4pPfsazK2/umL +MA4GA1UdDwEB/wQEAwIBBjCBxgYDVR0fBIG+MIG7MD6gPKA6hjhodHRwOi8vY3JsLmQtdHJ1c3Qu +bmV0L2NybC9kLXRydXN0X2V2X3Jvb3RfY2FfMV8yMDIwLmNybDB5oHegdYZzbGRhcDovL2RpcmVj +dG9yeS5kLXRydXN0Lm5ldC9DTj1ELVRSVVNUJTIwRVYlMjBSb290JTIwQ0ElMjAxJTIwMjAyMCxP +PUQtVHJ1c3QlMjBHbWJILEM9REU/Y2VydGlmaWNhdGVyZXZvY2F0aW9ubGlzdDAKBggqhkjOPQQD +AwNpADBmAjEAyjzGKnXCXnViOTYAYFqLwZOZzNnbQTs7h5kXO9XMT8oi96CAy/m0sRtW9XLS/BnR +AjEAkfcwkz8QRitxpNA7RJvAKQIFskF3UfN5Wp6OFKBOQtJbgfM0agPnIjhQW+0ZT0MW +-----END CERTIFICATE----- diff --git a/vendor/stripe/stripe-php/init.php b/vendor/stripe/stripe-php/init.php new file mode 100644 index 0000000..01238f6 --- /dev/null +++ b/vendor/stripe/stripe-php/init.php @@ -0,0 +1,396 @@ + VERSION + perl -pi -e 's|VERSION = '\''[.\-\w\d]+'\''|VERSION = '\''{{ version }}'\''|' lib/Stripe.php + + +PHPDOCUMENTOR_VERSION := "v3.0.0" +# generates docs; currently broken? can unhide if working +[private] +phpdoc: + #!/usr/bin/env bash + set -euo pipefail + + if [ ! -f vendor/bin/phpdoc ]; then + curl -sfL https://github.com/phpDocumentor/phpDocumentor/releases/download/{{ PHPDOCUMENTOR_VERSION }}/phpDocumentor.phar -o vendor/bin/phpdoc + chmod +x vendor/bin/phpdoc + fi + + phpdoc diff --git a/vendor/stripe/stripe-php/lib/Account.php b/vendor/stripe/stripe-php/lib/Account.php new file mode 100644 index 0000000..d4a7a4c --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Account.php @@ -0,0 +1,524 @@ +controller.requirement_collection + * is application, which includes Custom accounts, the properties below are always + * returned. + * + * For accounts where controller.requirement_collection + * is stripe, which includes Standard and Express accounts, some properties are only returned + * until you create an Account Link or Account Session + * to start Connect Onboarding. Learn about the differences between accounts. + * + * @property string $id Unique identifier for the object. + * @property string $object String representing the object's type. Objects of the same type share the same value. + * @property null|\Stripe\StripeObject $business_profile Business information about the account. + * @property null|string $business_type The business type. After you create an Account Link or Account Session, this property is only returned for accounts where controller.requirement_collection is application, which includes Custom accounts. + * @property null|\Stripe\StripeObject $capabilities + * @property null|bool $charges_enabled Whether the account can process charges. + * @property null|\Stripe\StripeObject $company + * @property null|\Stripe\StripeObject $controller + * @property null|string $country The account's country. + * @property null|int $created Time at which the account was connected. Measured in seconds since the Unix epoch. + * @property null|string $default_currency Three-letter ISO currency code representing the default currency for the account. This must be a currency that Stripe supports in the account's country. + * @property null|bool $details_submitted Whether account details have been submitted. Accounts with Stripe Dashboard access, which includes Standard accounts, cannot receive payouts before this is true. Accounts where this is false should be directed to an onboarding flow to finish submitting account details. + * @property null|string $email An email address associated with the account. It's not used for authentication and Stripe doesn't market to this field without explicit approval from the platform. + * @property null|\Stripe\Collection<\Stripe\BankAccount|\Stripe\Card> $external_accounts External accounts (bank accounts and debit cards) currently attached to this account. External accounts are only returned for requests where controller[is_controller] is true. + * @property null|\Stripe\StripeObject $future_requirements + * @property null|\Stripe\StripeObject $groups The groups associated with the account. + * @property null|\Stripe\Person $individual

    This is an object representing a person associated with a Stripe account.

    A platform cannot access a person for an account where account.controller.requirement_collection is stripe, which includes Standard and Express accounts, after creating an Account Link or Account Session to start Connect onboarding.

    See the Standard onboarding or Express onboarding documentation for information about prefilling information and account onboarding steps. Learn more about handling identity verification with the API.

    + * @property null|\Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + * @property null|bool $payouts_enabled Whether the funds in this account can be paid out. + * @property null|\Stripe\StripeObject $requirements + * @property null|\Stripe\StripeObject $settings Options for customizing how the account functions within Stripe. + * @property null|\Stripe\StripeObject $tos_acceptance + * @property null|string $type The Stripe account type. Can be standard, express, custom, or none. + */ +class Account extends ApiResource +{ + const OBJECT_NAME = 'account'; + + use ApiOperations\NestedResource; + use ApiOperations\Update; + + const BUSINESS_TYPE_COMPANY = 'company'; + const BUSINESS_TYPE_GOVERNMENT_ENTITY = 'government_entity'; + const BUSINESS_TYPE_INDIVIDUAL = 'individual'; + const BUSINESS_TYPE_NON_PROFIT = 'non_profit'; + + const TYPE_CUSTOM = 'custom'; + const TYPE_EXPRESS = 'express'; + const TYPE_NONE = 'none'; + const TYPE_STANDARD = 'standard'; + + /** + * With Connect, you can create Stripe accounts for + * your users. To do this, you’ll first need to register your + * platform. + * + * If you’ve already collected information for your connected accounts, you can prefill that information + * when creating the account. Connect Onboarding won’t ask for the prefilled + * information during account onboarding. You can prefill any information on the + * account. + * + * @param null|array $params + * @param null|array|string $options + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Account the created resource + */ + public static function create($params = null, $options = null) + { + self::_validateParams($params); + $url = static::classUrl(); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $options); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * With Connect, you can delete accounts you manage. + * + * Test-mode accounts can be deleted at any time. + * + * Live-mode accounts where Stripe is responsible for negative account balances + * cannot be deleted, which includes Standard accounts. Live-mode accounts where + * your platform is liable for negative account balances, which includes Custom and + * Express accounts, can be deleted when all balances are zero. + * + * If you want to delete your own account, use the account information tab in + * your account settings instead. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Account the deleted resource + */ + public function delete($params = null, $opts = null) + { + self::_validateParams($params); + + $url = $this->instanceUrl(); + list($response, $opts) = $this->_request('delete', $url, $params, $opts); + $this->refreshFrom($response, $opts); + + return $this; + } + + /** + * Returns a list of accounts connected to your platform via Connect. If you’re not a platform, the list is empty. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\Account> of ApiResources + */ + public static function all($params = null, $opts = null) + { + $url = static::classUrl(); + + return static::_requestPage($url, \Stripe\Collection::class, $params, $opts); + } + + /** + * Updates a connected account by setting the + * values of the parameters passed. Any parameters not provided are left unchanged. + * + * For accounts where controller.requirement_collection + * is application, which includes Custom accounts, you can update any + * information on the account. + * + * For accounts where controller.requirement_collection + * is stripe, which includes Standard and Express accounts, you can + * update all information until you create an Account + * Link or Account Session to start Connect + * onboarding, after which some properties can no longer be updated. + * + * To update your own account, use the Dashboard. Refer to our + * Connect documentation to learn + * more about updating accounts. + * + * @param string $id the ID of the resource to update + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Account the updated resource + */ + public static function update($id, $params = null, $opts = null) + { + self::_validateParams($params); + $url = static::resourceUrl($id); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $opts); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + use ApiOperations\Retrieve { + retrieve as protected _retrieve; + } + + public static function getSavedNestedResources() + { + static $savedNestedResources = null; + if (null === $savedNestedResources) { + $savedNestedResources = new Util\Set([ + 'external_account', + 'bank_account', + ]); + } + + return $savedNestedResources; + } + + public function instanceUrl() + { + if (null === $this['id']) { + return '/v1/account'; + } + + return parent::instanceUrl(); + } + + /** + * @param null|array|string $id the ID of the account to retrieve, or an + * options array containing an `id` key + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Account + */ + public static function retrieve($id = null, $opts = null) + { + if (!$opts && \is_string($id) && 'sk_' === \substr($id, 0, 3)) { + $opts = $id; + $id = null; + } + + return self::_retrieve($id, $opts); + } + + public function serializeParameters($force = false) + { + $update = parent::serializeParameters($force); + if (isset($this->_values['legal_entity'])) { + $entity = $this['legal_entity']; + if (isset($entity->_values['additional_owners'])) { + $owners = $entity['additional_owners']; + $entityUpdate = isset($update['legal_entity']) ? $update['legal_entity'] : []; + $entityUpdate['additional_owners'] = $this->serializeAdditionalOwners($entity, $owners); + $update['legal_entity'] = $entityUpdate; + } + } + if (isset($this->_values['individual'])) { + $individual = $this['individual']; + if (($individual instanceof Person) && !isset($update['individual'])) { + $update['individual'] = $individual->serializeParameters($force); + } + } + + return $update; + } + + private function serializeAdditionalOwners($legalEntity, $additionalOwners) + { + if (isset($legalEntity->_originalValues['additional_owners'])) { + $originalValue = $legalEntity->_originalValues['additional_owners']; + } else { + $originalValue = []; + } + if (($originalValue) && (\count($originalValue) > \count($additionalOwners))) { + throw new Exception\InvalidArgumentException( + 'You cannot delete an item from an array, you must instead set a new array' + ); + } + + $updateArr = []; + foreach ($additionalOwners as $i => $v) { + $update = ($v instanceof StripeObject) ? $v->serializeParameters() : $v; + + if ([] !== $update) { + if (!$originalValue + || !\array_key_exists($i, $originalValue) + || ($update !== $legalEntity->serializeParamsValue($originalValue[$i], null, false, true))) { + $updateArr[$i] = $update; + } + } + } + + return $updateArr; + } + + /** + * @param null|array $clientId + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\StripeObject object containing the response from the API + */ + public function deauthorize($clientId = null, $opts = null) + { + $params = [ + 'client_id' => $clientId, + 'stripe_user_id' => $this->id, + ]; + + return OAuth::deauthorize($params, $opts); + } + + /** + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Account the rejected account + */ + public function reject($params = null, $opts = null) + { + $url = $this->instanceUrl() . '/reject'; + list($response, $opts) = $this->_request('post', $url, $params, $opts); + $this->refreshFrom($response, $opts); + + return $this; + } + + const PATH_CAPABILITIES = '/capabilities'; + + /** + * @param string $id the ID of the account on which to retrieve the capabilities + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\Capability> the list of capabilities + */ + public static function allCapabilities($id, $params = null, $opts = null) + { + return self::_allNestedResources($id, static::PATH_CAPABILITIES, $params, $opts); + } + + /** + * @param string $id the ID of the account to which the capability belongs + * @param string $capabilityId the ID of the capability to retrieve + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Capability + */ + public static function retrieveCapability($id, $capabilityId, $params = null, $opts = null) + { + return self::_retrieveNestedResource($id, static::PATH_CAPABILITIES, $capabilityId, $params, $opts); + } + + /** + * @param string $id the ID of the account to which the capability belongs + * @param string $capabilityId the ID of the capability to update + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Capability + */ + public static function updateCapability($id, $capabilityId, $params = null, $opts = null) + { + return self::_updateNestedResource($id, static::PATH_CAPABILITIES, $capabilityId, $params, $opts); + } + const PATH_EXTERNAL_ACCOUNTS = '/external_accounts'; + + /** + * @param string $id the ID of the account on which to retrieve the external accounts + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\BankAccount|\Stripe\Card> the list of external accounts (BankAccount or Card) + */ + public static function allExternalAccounts($id, $params = null, $opts = null) + { + return self::_allNestedResources($id, static::PATH_EXTERNAL_ACCOUNTS, $params, $opts); + } + + /** + * @param string $id the ID of the account on which to create the external account + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\BankAccount|\Stripe\Card + */ + public static function createExternalAccount($id, $params = null, $opts = null) + { + return self::_createNestedResource($id, static::PATH_EXTERNAL_ACCOUNTS, $params, $opts); + } + + /** + * @param string $id the ID of the account to which the external account belongs + * @param string $externalAccountId the ID of the external account to delete + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\BankAccount|\Stripe\Card + */ + public static function deleteExternalAccount($id, $externalAccountId, $params = null, $opts = null) + { + return self::_deleteNestedResource($id, static::PATH_EXTERNAL_ACCOUNTS, $externalAccountId, $params, $opts); + } + + /** + * @param string $id the ID of the account to which the external account belongs + * @param string $externalAccountId the ID of the external account to retrieve + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\BankAccount|\Stripe\Card + */ + public static function retrieveExternalAccount($id, $externalAccountId, $params = null, $opts = null) + { + return self::_retrieveNestedResource($id, static::PATH_EXTERNAL_ACCOUNTS, $externalAccountId, $params, $opts); + } + + /** + * @param string $id the ID of the account to which the external account belongs + * @param string $externalAccountId the ID of the external account to update + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\BankAccount|\Stripe\Card + */ + public static function updateExternalAccount($id, $externalAccountId, $params = null, $opts = null) + { + return self::_updateNestedResource($id, static::PATH_EXTERNAL_ACCOUNTS, $externalAccountId, $params, $opts); + } + const PATH_LOGIN_LINKS = '/login_links'; + + /** + * @param string $id the ID of the account on which to create the login link + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\LoginLink + */ + public static function createLoginLink($id, $params = null, $opts = null) + { + return self::_createNestedResource($id, static::PATH_LOGIN_LINKS, $params, $opts); + } + const PATH_PERSONS = '/persons'; + + /** + * @param string $id the ID of the account on which to retrieve the persons + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\Person> the list of persons + */ + public static function allPersons($id, $params = null, $opts = null) + { + return self::_allNestedResources($id, static::PATH_PERSONS, $params, $opts); + } + + /** + * @param string $id the ID of the account on which to create the person + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Person + */ + public static function createPerson($id, $params = null, $opts = null) + { + return self::_createNestedResource($id, static::PATH_PERSONS, $params, $opts); + } + + /** + * @param string $id the ID of the account to which the person belongs + * @param string $personId the ID of the person to delete + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Person + */ + public static function deletePerson($id, $personId, $params = null, $opts = null) + { + return self::_deleteNestedResource($id, static::PATH_PERSONS, $personId, $params, $opts); + } + + /** + * @param string $id the ID of the account to which the person belongs + * @param string $personId the ID of the person to retrieve + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Person + */ + public static function retrievePerson($id, $personId, $params = null, $opts = null) + { + return self::_retrieveNestedResource($id, static::PATH_PERSONS, $personId, $params, $opts); + } + + /** + * @param string $id the ID of the account to which the person belongs + * @param string $personId the ID of the person to update + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Person + */ + public static function updatePerson($id, $personId, $params = null, $opts = null) + { + return self::_updateNestedResource($id, static::PATH_PERSONS, $personId, $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/AccountLink.php b/vendor/stripe/stripe-php/lib/AccountLink.php new file mode 100644 index 0000000..339d0a1 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/AccountLink.php @@ -0,0 +1,45 @@ +Connect Onboarding + * + * @property string $object String representing the object's type. Objects of the same type share the same value. + * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch. + * @property int $expires_at The timestamp at which this account link will expire. + * @property string $url The URL for the account link. + */ +class AccountLink extends ApiResource +{ + const OBJECT_NAME = 'account_link'; + + /** + * Creates an AccountLink object that includes a single-use Stripe URL that the + * platform can redirect their user to in order to take them through the Connect + * Onboarding flow. + * + * @param null|array $params + * @param null|array|string $options + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\AccountLink the created resource + */ + public static function create($params = null, $options = null) + { + self::_validateParams($params); + $url = static::classUrl(); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $options); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } +} diff --git a/vendor/stripe/stripe-php/lib/AccountSession.php b/vendor/stripe/stripe-php/lib/AccountSession.php new file mode 100644 index 0000000..85b04c9 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/AccountSession.php @@ -0,0 +1,49 @@ +Connect embedded components + * + * @property string $object String representing the object's type. Objects of the same type share the same value. + * @property string $account The ID of the account the AccountSession was created for + * @property string $client_secret

    The client secret of this AccountSession. Used on the client to set up secure access to the given account.

    The client secret can be used to provide access to account from your frontend. It should not be stored, logged, or exposed to anyone other than the connected account. Make sure that you have TLS enabled on any page that includes the client secret.

    Refer to our docs to setup Connect embedded components and learn about how client_secret should be handled.

    + * @property \Stripe\StripeObject $components + * @property int $expires_at The timestamp at which this AccountSession will expire. + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + */ +class AccountSession extends ApiResource +{ + const OBJECT_NAME = 'account_session'; + + /** + * Creates a AccountSession object that includes a single-use token that the + * platform can use on their front-end to grant client-side API access. + * + * @param null|array $params + * @param null|array|string $options + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\AccountSession the created resource + */ + public static function create($params = null, $options = null) + { + self::_validateParams($params); + $url = static::classUrl(); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $options); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } +} diff --git a/vendor/stripe/stripe-php/lib/ApiOperations/All.php b/vendor/stripe/stripe-php/lib/ApiOperations/All.php new file mode 100644 index 0000000..f421f88 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/ApiOperations/All.php @@ -0,0 +1,26 @@ +json, $opts); + $obj->setLastResponse($response); + + return $obj; + } +} diff --git a/vendor/stripe/stripe-php/lib/ApiOperations/Delete.php b/vendor/stripe/stripe-php/lib/ApiOperations/Delete.php new file mode 100644 index 0000000..c6082ff --- /dev/null +++ b/vendor/stripe/stripe-php/lib/ApiOperations/Delete.php @@ -0,0 +1,30 @@ +instanceUrl(); + list($response, $opts) = $this->_request('delete', $url, $params, $opts); + $this->refreshFrom($response, $opts); + + return $this; + } +} diff --git a/vendor/stripe/stripe-php/lib/ApiOperations/NestedResource.php b/vendor/stripe/stripe-php/lib/ApiOperations/NestedResource.php new file mode 100644 index 0000000..26af8dc --- /dev/null +++ b/vendor/stripe/stripe-php/lib/ApiOperations/NestedResource.php @@ -0,0 +1,135 @@ +json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * @param string $id + * @param string $nestedPath + * @param null|string $nestedId + * + * @return string + */ + protected static function _nestedResourceUrl($id, $nestedPath, $nestedId = null) + { + $url = static::resourceUrl($id) . $nestedPath; + if (null !== $nestedId) { + $url .= "/{$nestedId}"; + } + + return $url; + } + + /** + * @param string $id + * @param string $nestedPath + * @param null|array $params + * @param null|array|string $options + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\StripeObject + */ + protected static function _createNestedResource($id, $nestedPath, $params = null, $options = null) + { + $url = static::_nestedResourceUrl($id, $nestedPath); + + return self::_nestedResourceOperation('post', $url, $params, $options); + } + + /** + * @param string $id + * @param string $nestedPath + * @param null|string $nestedId + * @param null|array $params + * @param null|array|string $options + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\StripeObject + */ + protected static function _retrieveNestedResource($id, $nestedPath, $nestedId, $params = null, $options = null) + { + $url = static::_nestedResourceUrl($id, $nestedPath, $nestedId); + + return self::_nestedResourceOperation('get', $url, $params, $options); + } + + /** + * @param string $id + * @param string $nestedPath + * @param null|string $nestedId + * @param null|array $params + * @param null|array|string $options + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\StripeObject + */ + protected static function _updateNestedResource($id, $nestedPath, $nestedId, $params = null, $options = null) + { + $url = static::_nestedResourceUrl($id, $nestedPath, $nestedId); + + return self::_nestedResourceOperation('post', $url, $params, $options); + } + + /** + * @param string $id + * @param string $nestedPath + * @param null|string $nestedId + * @param null|array $params + * @param null|array|string $options + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\StripeObject + */ + protected static function _deleteNestedResource($id, $nestedPath, $nestedId, $params = null, $options = null) + { + $url = static::_nestedResourceUrl($id, $nestedPath, $nestedId); + + return self::_nestedResourceOperation('delete', $url, $params, $options); + } + + /** + * @param string $id + * @param string $nestedPath + * @param null|array $params + * @param null|array|string $options + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\StripeObject + */ + protected static function _allNestedResources($id, $nestedPath, $params = null, $options = null) + { + $url = static::_nestedResourceUrl($id, $nestedPath); + + return self::_nestedResourceOperation('get', $url, $params, $options); + } +} diff --git a/vendor/stripe/stripe-php/lib/ApiOperations/Request.php b/vendor/stripe/stripe-php/lib/ApiOperations/Request.php new file mode 100644 index 0000000..3f33e7d --- /dev/null +++ b/vendor/stripe/stripe-php/lib/ApiOperations/Request.php @@ -0,0 +1,134 @@ + 100, " + . "'currency' => 'usd', 'source' => 'tok_1234'])\")"; + + throw new \Stripe\Exception\InvalidArgumentException($message); + } + } + + /** + * @param 'delete'|'get'|'post' $method HTTP method ('get', 'post', etc.) + * @param string $url URL for the request + * @param array $params list of parameters for the request + * @param null|array|string $options + * @param string[] $usage names of tracked behaviors associated with this request + * @param 'v1'|'v2' $apiMode + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return array tuple containing (the JSON response, $options) + */ + protected function _request($method, $url, $params = [], $options = null, $usage = [], $apiMode = 'v1') + { + $opts = $this->_opts->merge($options); + list($resp, $options) = static::_staticRequest($method, $url, $params, $opts, $usage, $apiMode); + $this->setLastResponse($resp); + + return [$resp->json, $options]; + } + + /** + * @param string $url URL for the request + * @param class-string< \Stripe\SearchResult|\Stripe\Collection > $resultClass indicating what type of paginated result is returned + * @param null|array $params list of parameters for the request + * @param null|array|string $options + * @param string[] $usage names of tracked behaviors associated with this request + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection|\Stripe\SearchResult + */ + protected static function _requestPage($url, $resultClass, $params = null, $options = null, $usage = []) + { + self::_validateParams($params); + + list($response, $opts) = static::_staticRequest('get', $url, $params, $options, $usage); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + if (!($obj instanceof $resultClass)) { + throw new \Stripe\Exception\UnexpectedValueException( + 'Expected type ' . $resultClass . ', got "' . \get_class($obj) . '" instead.' + ); + } + $obj->setLastResponse($response); + $obj->setFilters($params); + + return $obj; + } + + /** + * @param 'delete'|'get'|'post' $method HTTP method ('get', 'post', etc.) + * @param string $url URL for the request + * @param callable $readBodyChunk function that will receive chunks of data from a successful request body + * @param array $params list of parameters for the request + * @param null|array|string $options + * @param string[] $usage names of tracked behaviors associated with this request + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + */ + protected function _requestStream($method, $url, $readBodyChunk, $params = [], $options = null, $usage = []) + { + $opts = $this->_opts->merge($options); + static::_staticStreamingRequest($method, $url, $readBodyChunk, $params, $opts, $usage); + } + + /** + * @param 'delete'|'get'|'post' $method HTTP method ('get', 'post', etc.) + * @param string $url URL for the request + * @param array $params list of parameters for the request + * @param null|array|string $options + * @param string[] $usage names of tracked behaviors associated with this request + * @param 'v1'|'v2' $apiMode + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return array tuple containing (the JSON response, $options) + */ + protected static function _staticRequest($method, $url, $params, $options, $usage = [], $apiMode = 'v1') + { + $opts = \Stripe\Util\RequestOptions::parse($options); + $baseUrl = isset($opts->apiBase) ? $opts->apiBase : static::baseUrl(); + $requestor = new \Stripe\ApiRequestor($opts->apiKey, $baseUrl); + list($response, $opts->apiKey) = $requestor->request($method, $url, $params, $opts->headers, $apiMode, $usage); + $opts->discardNonPersistentHeaders(); + + return [$response, $opts]; + } + + /** + * @param 'delete'|'get'|'post' $method HTTP method ('get', 'post', etc.) + * @param string $url URL for the request + * @param callable $readBodyChunk function that will receive chunks of data from a successful request body + * @param array $params list of parameters for the request + * @param null|array|string $options + * @param string[] $usage names of tracked behaviors associated with this request + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + */ + protected static function _staticStreamingRequest($method, $url, $readBodyChunk, $params, $options, $usage = []) + { + $opts = \Stripe\Util\RequestOptions::parse($options); + $baseUrl = isset($opts->apiBase) ? $opts->apiBase : static::baseUrl(); + $requestor = new \Stripe\ApiRequestor($opts->apiKey, $baseUrl); + $requestor->requestStream($method, $url, $readBodyChunk, $params, $opts->headers); + } +} diff --git a/vendor/stripe/stripe-php/lib/ApiOperations/Retrieve.php b/vendor/stripe/stripe-php/lib/ApiOperations/Retrieve.php new file mode 100644 index 0000000..5170afb --- /dev/null +++ b/vendor/stripe/stripe-php/lib/ApiOperations/Retrieve.php @@ -0,0 +1,30 @@ +refresh(); + + return $instance; + } +} diff --git a/vendor/stripe/stripe-php/lib/ApiOperations/Search.php b/vendor/stripe/stripe-php/lib/ApiOperations/Search.php new file mode 100644 index 0000000..4ecd0aa --- /dev/null +++ b/vendor/stripe/stripe-php/lib/ApiOperations/Search.php @@ -0,0 +1,25 @@ +refresh(); + + return $instance; + } +} diff --git a/vendor/stripe/stripe-php/lib/ApiOperations/Update.php b/vendor/stripe/stripe-php/lib/ApiOperations/Update.php new file mode 100644 index 0000000..2cb3c9b --- /dev/null +++ b/vendor/stripe/stripe-php/lib/ApiOperations/Update.php @@ -0,0 +1,56 @@ +json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return static the saved resource + * + * @deprecated The `save` method is deprecated and will be removed in a + * future major version of the library. Use the static method `update` + * on the resource instead. + */ + public function save($opts = null) + { + $params = $this->serializeParameters(); + if (\count($params) > 0) { + $url = $this->instanceUrl(); + list($response, $opts) = $this->_request('post', $url, $params, $opts, ['save']); + $this->refreshFrom($response, $opts); + } + + return $this; + } +} diff --git a/vendor/stripe/stripe-php/lib/ApiRequestor.php b/vendor/stripe/stripe-php/lib/ApiRequestor.php new file mode 100644 index 0000000..73884fe --- /dev/null +++ b/vendor/stripe/stripe-php/lib/ApiRequestor.php @@ -0,0 +1,702 @@ +_apiKey = $apiKey; + if (!$apiBase) { + $apiBase = Stripe::$apiBase; + } + $this->_apiBase = $apiBase; + $this->_appInfo = $appInfo; + } + + /** + * Creates a telemetry json blob for use in 'X-Stripe-Client-Telemetry' headers. + * + * @static + * + * @param RequestTelemetry $requestTelemetry + * + * @return string + */ + private static function _telemetryJson($requestTelemetry) + { + $payload = [ + 'last_request_metrics' => [ + 'request_id' => $requestTelemetry->requestId, + 'request_duration_ms' => $requestTelemetry->requestDuration, + ], + ]; + if (\count($requestTelemetry->usage) > 0) { + $payload['last_request_metrics']['usage'] = $requestTelemetry->usage; + } + + $result = \json_encode($payload); + if (false !== $result) { + return $result; + } + Stripe::getLogger()->error('Serializing telemetry payload failed!'); + + return '{}'; + } + + /** + * @static + * + * @param ApiResource|array|bool|mixed $d + * + * @return ApiResource|array|mixed|string + */ + private static function _encodeObjects($d) + { + if ($d instanceof ApiResource) { + return Util\Util::utf8($d->id); + } + if (true === $d) { + return 'true'; + } + if (false === $d) { + return 'false'; + } + if (\is_array($d)) { + $res = []; + foreach ($d as $k => $v) { + $res[$k] = self::_encodeObjects($v); + } + + return $res; + } + + return Util\Util::utf8($d); + } + + /** + * @param 'delete'|'get'|'post' $method + * @param string $url + * @param null|array $params + * @param null|array $headers + * @param 'v1'|'v2' $apiMode + * @param string[] $usage + * + * @throws Exception\ApiErrorException + * + * @return array tuple containing (ApiReponse, API key) + */ + public function request($method, $url, $params = null, $headers = null, $apiMode = 'v1', $usage = []) + { + $params = $params ?: []; + $headers = $headers ?: []; + list($rbody, $rcode, $rheaders, $myApiKey) = + $this->_requestRaw($method, $url, $params, $headers, $apiMode, $usage); + $json = $this->_interpretResponse($rbody, $rcode, $rheaders, $apiMode); + $resp = new ApiResponse($rbody, $rcode, $rheaders, $json); + + return [$resp, $myApiKey]; + } + + /** + * @param 'delete'|'get'|'post' $method + * @param string $url + * @param callable $readBodyChunkCallable + * @param null|array $params + * @param null|array $headers + * @param 'v1'|'v2' $apiMode + * @param string[] $usage + * + * @throws Exception\ApiErrorException + */ + public function requestStream($method, $url, $readBodyChunkCallable, $params = null, $headers = null, $apiMode = 'v1', $usage = []) + { + $params = $params ?: []; + $headers = $headers ?: []; + list($rbody, $rcode, $rheaders, $myApiKey) = + $this->_requestRawStreaming($method, $url, $params, $headers, $apiMode, $usage, $readBodyChunkCallable); + if ($rcode >= 300) { + $this->_interpretResponse($rbody, $rcode, $rheaders, $apiMode); + } + } + + /** + * @param string $rbody a JSON string + * @param int $rcode + * @param array $rheaders + * @param array $resp + * @param 'v1'|'v2' $apiMode + * + * @throws Exception\UnexpectedValueException + * @throws Exception\ApiErrorException + */ + public function handleErrorResponse($rbody, $rcode, $rheaders, $resp, $apiMode) + { + if (!\is_array($resp) || !isset($resp['error'])) { + $msg = "Invalid response object from API: {$rbody} " + . "(HTTP response code was {$rcode})"; + + throw new Exception\UnexpectedValueException($msg); + } + + $errorData = $resp['error']; + + $error = null; + + if (\is_string($errorData)) { + $error = self::_specificOAuthError($rbody, $rcode, $rheaders, $resp, $errorData); + } + if (!$error) { + $error = 'v1' === $apiMode ? self::_specificV1APIError($rbody, $rcode, $rheaders, $resp, $errorData) : self::_specificV2APIError($rbody, $rcode, $rheaders, $resp, $errorData); + } + + throw $error; + } + + /** + * @static + * + * @param string $rbody + * @param int $rcode + * @param array $rheaders + * @param array $resp + * @param array $errorData + * + * @return Exception\ApiErrorException + */ + private static function _specificV1APIError($rbody, $rcode, $rheaders, $resp, $errorData) + { + $msg = isset($errorData['message']) ? $errorData['message'] : null; + $param = isset($errorData['param']) ? $errorData['param'] : null; + $code = isset($errorData['code']) ? $errorData['code'] : null; + $type = isset($errorData['type']) ? $errorData['type'] : null; + $declineCode = isset($errorData['decline_code']) ? $errorData['decline_code'] : null; + + switch ($rcode) { + case 400: + // 'rate_limit' code is deprecated, but left here for backwards compatibility + // for API versions earlier than 2015-09-08 + if ('rate_limit' === $code) { + return Exception\RateLimitException::factory($msg, $rcode, $rbody, $resp, $rheaders, $code, $param); + } + if ('idempotency_error' === $type) { + return Exception\IdempotencyException::factory($msg, $rcode, $rbody, $resp, $rheaders, $code); + } + + // fall through in generic 400 or 404, returns InvalidRequestException by default + // no break + case 404: + return Exception\InvalidRequestException::factory($msg, $rcode, $rbody, $resp, $rheaders, $code, $param); + + case 401: + return Exception\AuthenticationException::factory($msg, $rcode, $rbody, $resp, $rheaders, $code); + + case 402: + return Exception\CardException::factory($msg, $rcode, $rbody, $resp, $rheaders, $code, $declineCode, $param); + + case 403: + return Exception\PermissionException::factory($msg, $rcode, $rbody, $resp, $rheaders, $code); + + case 429: + return Exception\RateLimitException::factory($msg, $rcode, $rbody, $resp, $rheaders, $code, $param); + + default: + return Exception\UnknownApiErrorException::factory($msg, $rcode, $rbody, $resp, $rheaders, $code); + } + } + + /** + * @static + * + * @param string $rbody + * @param int $rcode + * @param array $rheaders + * @param array $resp + * @param array $errorData + * + * @return Exception\ApiErrorException + */ + private static function _specificV2APIError($rbody, $rcode, $rheaders, $resp, $errorData) + { + $msg = isset($errorData['message']) ? $errorData['message'] : null; + $code = isset($errorData['code']) ? $errorData['code'] : null; + $type = isset($errorData['type']) ? $errorData['type'] : null; + + switch ($type) { + case 'idempotency_error': + return Exception\IdempotencyException::factory($msg, $rcode, $rbody, $resp, $rheaders, $code); + // The beginning of the section generated from our OpenAPI spec + case 'temporary_session_expired': + return Exception\TemporarySessionExpiredException::factory( + $msg, + $rcode, + $rbody, + $resp, + $rheaders, + $code + ); + + // The end of the section generated from our OpenAPI spec + default: + return self::_specificV1APIError($rbody, $rcode, $rheaders, $resp, $errorData); + } + } + + /** + * @static + * + * @param bool|string $rbody + * @param int $rcode + * @param array $rheaders + * @param array $resp + * @param string $errorCode + * + * @return Exception\OAuth\OAuthErrorException + */ + private static function _specificOAuthError($rbody, $rcode, $rheaders, $resp, $errorCode) + { + $description = isset($resp['error_description']) ? $resp['error_description'] : $errorCode; + + switch ($errorCode) { + case 'invalid_client': + return Exception\OAuth\InvalidClientException::factory($description, $rcode, $rbody, $resp, $rheaders, $errorCode); + + case 'invalid_grant': + return Exception\OAuth\InvalidGrantException::factory($description, $rcode, $rbody, $resp, $rheaders, $errorCode); + + case 'invalid_request': + return Exception\OAuth\InvalidRequestException::factory($description, $rcode, $rbody, $resp, $rheaders, $errorCode); + + case 'invalid_scope': + return Exception\OAuth\InvalidScopeException::factory($description, $rcode, $rbody, $resp, $rheaders, $errorCode); + + case 'unsupported_grant_type': + return Exception\OAuth\UnsupportedGrantTypeException::factory($description, $rcode, $rbody, $resp, $rheaders, $errorCode); + + case 'unsupported_response_type': + return Exception\OAuth\UnsupportedResponseTypeException::factory($description, $rcode, $rbody, $resp, $rheaders, $errorCode); + + default: + return Exception\OAuth\UnknownOAuthErrorException::factory($description, $rcode, $rbody, $resp, $rheaders, $errorCode); + } + } + + /** + * @static + * + * @param null|array $appInfo + * + * @return null|string + */ + private static function _formatAppInfo($appInfo) + { + if (null !== $appInfo) { + $string = $appInfo['name']; + if (\array_key_exists('version', $appInfo) && null !== $appInfo['version']) { + $string .= '/' . $appInfo['version']; + } + if (\array_key_exists('url', $appInfo) && null !== $appInfo['url']) { + $string .= ' (' . $appInfo['url'] . ')'; + } + + return $string; + } + + return null; + } + + /** + * @static + * + * @param string $disableFunctionsOutput - String value of the 'disable_function' setting, as output by \ini_get('disable_functions') + * @param string $functionName - Name of the function we are interesting in seeing whether or not it is disabled + * + * @return bool + */ + private static function _isDisabled($disableFunctionsOutput, $functionName) + { + $disabledFunctions = \explode(',', $disableFunctionsOutput); + foreach ($disabledFunctions as $disabledFunction) { + if (\trim($disabledFunction) === $functionName) { + return true; + } + } + + return false; + } + + /** + * @static + * + * @param string $apiKey the Stripe API key, to be used in regular API requests + * @param null $clientInfo client user agent information + * @param null $appInfo information to identify a plugin that integrates Stripe using this library + * @param 'v1'|'v2' $apiMode + * + * @return array + */ + private static function _defaultHeaders($apiKey, $clientInfo = null, $appInfo = null, $apiMode = 'v1') + { + $uaString = "Stripe/{$apiMode} PhpBindings/" . Stripe::VERSION; + + $langVersion = \PHP_VERSION; + $uname_disabled = self::_isDisabled(\ini_get('disable_functions'), 'php_uname'); + $uname = $uname_disabled ? '(disabled)' : \php_uname(); + + // Fallback to global configuration to maintain backwards compatibility. + $appInfo = $appInfo ?: Stripe::getAppInfo(); + $ua = [ + 'bindings_version' => Stripe::VERSION, + 'lang' => 'php', + 'lang_version' => $langVersion, + 'publisher' => 'stripe', + 'uname' => $uname, + ]; + if ($clientInfo) { + $ua = \array_merge($clientInfo, $ua); + } + if (null !== $appInfo) { + $uaString .= ' ' . self::_formatAppInfo($appInfo); + $ua['application'] = $appInfo; + } + + return [ + 'X-Stripe-Client-User-Agent' => \json_encode($ua), + 'User-Agent' => $uaString, + 'Authorization' => 'Bearer ' . $apiKey, + 'Stripe-Version' => Stripe::getApiVersion(), + ]; + } + + /** + * @param 'delete'|'get'|'post' $method + * @param string $url + * @param array $params + * @param array $headers + * @param 'v1'|'v2' $apiMode + */ + private function _prepareRequest($method, $url, $params, $headers, $apiMode) + { + $myApiKey = $this->_apiKey; + if (!$myApiKey) { + $myApiKey = Stripe::$apiKey; + } + + if (!$myApiKey) { + $msg = 'No API key provided. (HINT: set your API key using ' + . '"Stripe::setApiKey()". You can generate API keys from ' + . 'the Stripe web interface. See https://stripe.com/api for ' + . 'details, or email support@stripe.com if you have any questions.'; + + throw new Exception\AuthenticationException($msg); + } + + // Clients can supply arbitrary additional keys to be included in the + // X-Stripe-Client-User-Agent header via the optional getUserAgentInfo() + // method + $clientUAInfo = null; + if (\method_exists(self::httpClient(), 'getUserAgentInfo')) { + $clientUAInfo = self::httpClient()->getUserAgentInfo(); + } + + if ($params && \is_array($params)) { + $optionKeysInParams = \array_filter( + self::$OPTIONS_KEYS, + function ($key) use ($params) { + return \array_key_exists($key, $params); + } + ); + if (\count($optionKeysInParams) > 0) { + $message = \sprintf('Options found in $params: %s. Options should ' + . 'be passed in their own array after $params. (HINT: pass an ' + . 'empty array to $params if you do not have any.)', \implode(', ', $optionKeysInParams)); + \trigger_error($message, \E_USER_WARNING); + } + } + + $absUrl = $this->_apiBase . $url; + if ('v1' === $apiMode) { + $params = self::_encodeObjects($params); + } + $defaultHeaders = $this->_defaultHeaders($myApiKey, $clientUAInfo, $this->_appInfo, $apiMode); + + if (Stripe::$accountId) { + $defaultHeaders['Stripe-Account'] = Stripe::$accountId; + } + + if (Stripe::$enableTelemetry && null !== self::$requestTelemetry) { + $defaultHeaders['X-Stripe-Client-Telemetry'] = self::_telemetryJson(self::$requestTelemetry); + } + + $hasFile = false; + foreach ($params as $k => $v) { + if (\is_resource($v)) { + $hasFile = true; + $params[$k] = self::_processResourceParam($v); + } elseif ($v instanceof \CURLFile) { + $hasFile = true; + } + } + + if ($hasFile) { + $defaultHeaders['Content-Type'] = 'multipart/form-data'; + } elseif ('v2' === $apiMode) { + $defaultHeaders['Content-Type'] = 'application/json'; + } elseif ('v1' === $apiMode) { + $defaultHeaders['Content-Type'] = 'application/x-www-form-urlencoded'; + } else { + throw new Exception\InvalidArgumentException('Unknown API mode: ' . $apiMode); + } + + $combinedHeaders = \array_merge($defaultHeaders, $headers); + $rawHeaders = []; + + foreach ($combinedHeaders as $header => $value) { + $rawHeaders[] = $header . ': ' . $value; + } + + return [$absUrl, $rawHeaders, $params, $hasFile, $myApiKey]; + } + + /** + * @param 'delete'|'get'|'post' $method + * @param string $url + * @param array $params + * @param array $headers + * @param 'v1'|'v2' $apiMode + * @param string[] $usage + * + * @throws Exception\AuthenticationException + * @throws Exception\ApiConnectionException + * + * @return array + */ + private function _requestRaw($method, $url, $params, $headers, $apiMode, $usage) + { + list($absUrl, $rawHeaders, $params, $hasFile, $myApiKey) = $this->_prepareRequest($method, $url, $params, $headers, $apiMode); + + // for some reason, PHP users will sometimes include null bytes in their paths, which leads to cryptic server 400s. + // we'll be louder about this to help catch issues earlier. + if (false !== \strpos($absUrl, "\0") || false !== \strpos($absUrl, '%00')) { + throw new Exception\InvalidRequestException("URLs may not contain null bytes ('\\0'); double check any IDs you're including with the request."); + } + + $requestStartMs = Util\Util::currentTimeMillis(); + + list($rbody, $rcode, $rheaders) = self::httpClient()->request( + $method, + $absUrl, + $rawHeaders, + $params, + $hasFile, + $apiMode + ); + + if ( + isset($rheaders['request-id']) + && \is_string($rheaders['request-id']) + && '' !== $rheaders['request-id'] + ) { + self::$requestTelemetry = new RequestTelemetry( + $rheaders['request-id'], + Util\Util::currentTimeMillis() - $requestStartMs, + $usage + ); + } + + return [$rbody, $rcode, $rheaders, $myApiKey]; + } + + /** + * @param 'delete'|'get'|'post' $method + * @param string $url + * @param array $params + * @param array $headers + * @param string[] $usage + * @param callable $readBodyChunkCallable + * @param 'v1'|'v2' $apiMode + * + * @throws Exception\AuthenticationException + * @throws Exception\ApiConnectionException + * + * @return array + */ + private function _requestRawStreaming($method, $url, $params, $headers, $apiMode, $usage, $readBodyChunkCallable) + { + list($absUrl, $rawHeaders, $params, $hasFile, $myApiKey) = $this->_prepareRequest($method, $url, $params, $headers, $apiMode); + + $requestStartMs = Util\Util::currentTimeMillis(); + + list($rbody, $rcode, $rheaders) = self::streamingHttpClient()->requestStream( + $method, + $absUrl, + $rawHeaders, + $params, + $hasFile, + $readBodyChunkCallable + ); + + if ( + isset($rheaders['request-id']) + && \is_string($rheaders['request-id']) + && '' !== $rheaders['request-id'] + ) { + self::$requestTelemetry = new RequestTelemetry( + $rheaders['request-id'], + Util\Util::currentTimeMillis() - $requestStartMs + ); + } + + return [$rbody, $rcode, $rheaders, $myApiKey]; + } + + /** + * @param resource $resource + * + * @throws Exception\InvalidArgumentException + * + * @return \CURLFile|string + */ + private function _processResourceParam($resource) + { + if ('stream' !== \get_resource_type($resource)) { + throw new Exception\InvalidArgumentException( + 'Attempted to upload a resource that is not a stream' + ); + } + + $metaData = \stream_get_meta_data($resource); + if ('plainfile' !== $metaData['wrapper_type']) { + throw new Exception\InvalidArgumentException( + 'Only plainfile resource streams are supported' + ); + } + + // We don't have the filename or mimetype, but the API doesn't care + return new \CURLFile($metaData['uri']); + } + + /** + * @param string $rbody + * @param int $rcode + * @param array $rheaders + * @param 'v1'|'v2' $apiMode + * + * @throws Exception\UnexpectedValueException + * @throws Exception\ApiErrorException + * + * @return array + */ + private function _interpretResponse($rbody, $rcode, $rheaders, $apiMode) + { + $resp = \json_decode($rbody, true); + $jsonError = \json_last_error(); + if (null === $resp && \JSON_ERROR_NONE !== $jsonError) { + $msg = "Invalid response body from API: {$rbody} " + . "(HTTP response code was {$rcode}, json_last_error() was {$jsonError})"; + + throw new Exception\UnexpectedValueException($msg, $rcode); + } + + if ($rcode < 200 || $rcode >= 300) { + $this->handleErrorResponse($rbody, $rcode, $rheaders, $resp, $apiMode); + } + + return $resp; + } + + /** + * @static + * + * @param HttpClient\ClientInterface $client + */ + public static function setHttpClient($client) + { + self::$_httpClient = $client; + } + + /** + * @static + * + * @param HttpClient\StreamingClientInterface $client + */ + public static function setStreamingHttpClient($client) + { + self::$_streamingHttpClient = $client; + } + + /** + * @static + * + * Resets any stateful telemetry data + */ + public static function resetTelemetry() + { + self::$requestTelemetry = null; + } + + /** + * @return HttpClient\ClientInterface + */ + public static function httpClient() + { + if (!self::$_httpClient) { + self::$_httpClient = HttpClient\CurlClient::instance(); + } + + return self::$_httpClient; + } + + /** + * @return HttpClient\StreamingClientInterface + */ + public static function streamingHttpClient() + { + if (!self::$_streamingHttpClient) { + self::$_streamingHttpClient = HttpClient\CurlClient::instance(); + } + + return self::$_streamingHttpClient; + } +} diff --git a/vendor/stripe/stripe-php/lib/ApiResource.php b/vendor/stripe/stripe-php/lib/ApiResource.php new file mode 100644 index 0000000..c0765c8 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/ApiResource.php @@ -0,0 +1,123 @@ +{$k}; + if ((static::getSavedNestedResources()->includes($k)) + && ($v instanceof ApiResource)) { + $v->saveWithParent = true; + } + } + + /** + * @throws Exception\ApiErrorException + * + * @return ApiResource the refreshed resource + */ + public function refresh() + { + $requestor = new ApiRequestor($this->_opts->apiKey, static::baseUrl()); + $url = $this->instanceUrl(); + + list($response, $this->_opts->apiKey) = $requestor->request( + 'get', + $url, + $this->_retrieveOptions, + $this->_opts->headers + ); + $this->setLastResponse($response); + $this->refreshFrom($response->json, $this->_opts); + + return $this; + } + + /** + * @return string the base URL for the given class + */ + public static function baseUrl() + { + return Stripe::$apiBase; + } + + /** + * @return string the endpoint URL for the given class + */ + public static function classUrl() + { + // Replace dots with slashes for namespaced resources, e.g. if the object's name is + // "foo.bar", then its URL will be "/v1/foo/bars". + + /** @phpstan-ignore-next-line */ + $base = \str_replace('.', '/', static::OBJECT_NAME); + + return "/v1/{$base}s"; + } + + /** + * @param null|string $id the ID of the resource + * + * @throws Exception\UnexpectedValueException if $id is null + * + * @return string the instance endpoint URL for the given class + */ + public static function resourceUrl($id) + { + if (null === $id) { + $class = static::class; + $message = 'Could not determine which URL to request: ' + . "{$class} instance has invalid ID: {$id}"; + + throw new Exception\UnexpectedValueException($message); + } + $id = Util\Util::utf8($id); + $base = static::classUrl(); + $extn = \urlencode($id); + + return "{$base}/{$extn}"; + } + + /** + * @return string the full API URL for this API resource + */ + public function instanceUrl() + { + return static::resourceUrl($this['id']); + } +} diff --git a/vendor/stripe/stripe-php/lib/ApiResponse.php b/vendor/stripe/stripe-php/lib/ApiResponse.php new file mode 100644 index 0000000..e7ee2e9 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/ApiResponse.php @@ -0,0 +1,45 @@ +body = $body; + $this->code = $code; + $this->headers = $headers; + $this->json = $json; + } +} diff --git a/vendor/stripe/stripe-php/lib/ApplePayDomain.php b/vendor/stripe/stripe-php/lib/ApplePayDomain.php new file mode 100644 index 0000000..db37b6a --- /dev/null +++ b/vendor/stripe/stripe-php/lib/ApplePayDomain.php @@ -0,0 +1,105 @@ +true if the object exists in live mode or the value false if the object exists in test mode. + */ +class ApplePayDomain extends ApiResource +{ + const OBJECT_NAME = 'apple_pay_domain'; + + /** + * Create an apple pay domain. + * + * @param null|array $params + * @param null|array|string $options + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\ApplePayDomain the created resource + */ + public static function create($params = null, $options = null) + { + self::_validateParams($params); + $url = static::classUrl(); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $options); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * Delete an apple pay domain. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\ApplePayDomain the deleted resource + */ + public function delete($params = null, $opts = null) + { + self::_validateParams($params); + + $url = $this->instanceUrl(); + list($response, $opts) = $this->_request('delete', $url, $params, $opts); + $this->refreshFrom($response, $opts); + + return $this; + } + + /** + * List apple pay domains. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\ApplePayDomain> of ApiResources + */ + public static function all($params = null, $opts = null) + { + $url = static::classUrl(); + + return static::_requestPage($url, \Stripe\Collection::class, $params, $opts); + } + + /** + * Retrieve an apple pay domain. + * + * @param array|string $id the ID of the API resource to retrieve, or an options array containing an `id` key + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\ApplePayDomain + */ + public static function retrieve($id, $opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + $instance = new static($id, $opts); + $instance->refresh(); + + return $instance; + } + + /** + * @return string The class URL for this resource. It needs to be special + * cased because it doesn't fit into the standard resource pattern. + */ + public static function classUrl() + { + return '/v1/apple_pay/domains'; + } +} diff --git a/vendor/stripe/stripe-php/lib/Application.php b/vendor/stripe/stripe-php/lib/Application.php new file mode 100644 index 0000000..e74ef02 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Application.php @@ -0,0 +1,15 @@ +ISO currency code, in lowercase. Must be a supported currency. + * @property null|\Stripe\StripeObject $fee_source Polymorphic source of the application fee. Includes the ID of the object the application fee was created from. + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + * @property null|string|\Stripe\Charge $originating_transaction ID of the corresponding charge on the platform account, if this fee was the result of a charge using the destination parameter. + * @property bool $refunded Whether the fee has been fully refunded. If the fee is only partially refunded, this attribute will still be false. + * @property \Stripe\Collection<\Stripe\ApplicationFeeRefund> $refunds A list of refunds that have been applied to the fee. + */ +class ApplicationFee extends ApiResource +{ + const OBJECT_NAME = 'application_fee'; + + use ApiOperations\NestedResource; + + /** + * Returns a list of application fees you’ve previously collected. The application + * fees are returned in sorted order, with the most recent fees appearing first. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\ApplicationFee> of ApiResources + */ + public static function all($params = null, $opts = null) + { + $url = static::classUrl(); + + return static::_requestPage($url, \Stripe\Collection::class, $params, $opts); + } + + /** + * Retrieves the details of an application fee that your account has collected. The + * same information is returned when refunding the application fee. + * + * @param array|string $id the ID of the API resource to retrieve, or an options array containing an `id` key + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\ApplicationFee + */ + public static function retrieve($id, $opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + $instance = new static($id, $opts); + $instance->refresh(); + + return $instance; + } + + const PATH_REFUNDS = '/refunds'; + + /** + * @param string $id the ID of the application fee on which to retrieve the application fee refunds + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\ApplicationFeeRefund> the list of application fee refunds + */ + public static function allRefunds($id, $params = null, $opts = null) + { + return self::_allNestedResources($id, static::PATH_REFUNDS, $params, $opts); + } + + /** + * @param string $id the ID of the application fee on which to create the application fee refund + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\ApplicationFeeRefund + */ + public static function createRefund($id, $params = null, $opts = null) + { + return self::_createNestedResource($id, static::PATH_REFUNDS, $params, $opts); + } + + /** + * @param string $id the ID of the application fee to which the application fee refund belongs + * @param string $refundId the ID of the application fee refund to retrieve + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\ApplicationFeeRefund + */ + public static function retrieveRefund($id, $refundId, $params = null, $opts = null) + { + return self::_retrieveNestedResource($id, static::PATH_REFUNDS, $refundId, $params, $opts); + } + + /** + * @param string $id the ID of the application fee to which the application fee refund belongs + * @param string $refundId the ID of the application fee refund to update + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\ApplicationFeeRefund + */ + public static function updateRefund($id, $refundId, $params = null, $opts = null) + { + return self::_updateNestedResource($id, static::PATH_REFUNDS, $refundId, $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/ApplicationFeeRefund.php b/vendor/stripe/stripe-php/lib/ApplicationFeeRefund.php new file mode 100644 index 0000000..1d383c0 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/ApplicationFeeRefund.php @@ -0,0 +1,64 @@ +Application Fee Refund objects allow you to refund an application fee that + * has previously been created but not yet refunded. Funds will be refunded to + * the Stripe account from which the fee was originally collected. + * + * Related guide: Refunding application fees + * + * @property string $id Unique identifier for the object. + * @property string $object String representing the object's type. Objects of the same type share the same value. + * @property int $amount Amount, in cents (or local equivalent). + * @property null|string|\Stripe\BalanceTransaction $balance_transaction Balance transaction that describes the impact on your account balance. + * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch. + * @property string $currency Three-letter ISO currency code, in lowercase. Must be a supported currency. + * @property string|\Stripe\ApplicationFee $fee ID of the application fee that was refunded. + * @property null|\Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + */ +class ApplicationFeeRefund extends ApiResource +{ + const OBJECT_NAME = 'fee_refund'; + + use ApiOperations\Update { + save as protected _save; + } + + /** + * @return string the API URL for this Stripe refund + */ + public function instanceUrl() + { + $id = $this['id']; + $fee = $this['fee']; + if (!$id) { + throw new Exception\UnexpectedValueException( + 'Could not determine which URL to request: ' . + "class instance has invalid ID: {$id}", + null + ); + } + $id = Util\Util::utf8($id); + $fee = Util\Util::utf8($fee); + + $base = ApplicationFee::classUrl(); + $feeExtn = \urlencode($fee); + $extn = \urlencode($id); + + return "{$base}/{$feeExtn}/refunds/{$extn}"; + } + + /** + * @param null|array|string $opts + * + * @return ApplicationFeeRefund the saved refund + */ + public function save($opts = null) + { + return $this->_save($opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Apps/Secret.php b/vendor/stripe/stripe-php/lib/Apps/Secret.php new file mode 100644 index 0000000..948f3dc --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Apps/Secret.php @@ -0,0 +1,106 @@ +secret. Other apps can't view secrets created by an app. Additionally, secrets are scoped to provide further permission control. + * + * All Dashboard users and the app backend share account scoped secrets. Use the account scope for secrets that don't change per-user, like a third-party API key. + * + * A user scoped secret is accessible by the app backend and one specific Dashboard user. Use the user scope for per-user secrets like per-user OAuth tokens, where different users might have different permissions. + * + * Related guide: Store data between page reloads + * + * @property string $id Unique identifier for the object. + * @property string $object String representing the object's type. Objects of the same type share the same value. + * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch. + * @property null|bool $deleted If true, indicates that this secret has been deleted + * @property null|int $expires_at The Unix timestamp for the expiry time of the secret, after which the secret deletes. + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + * @property string $name A name for the secret that's unique within the scope. + * @property null|string $payload The plaintext secret value to be stored. + * @property \Stripe\StripeObject $scope + */ +class Secret extends \Stripe\ApiResource +{ + const OBJECT_NAME = 'apps.secret'; + + /** + * Create or replace a secret in the secret store. + * + * @param null|array $params + * @param null|array|string $options + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Apps\Secret the created resource + */ + public static function create($params = null, $options = null) + { + self::_validateParams($params); + $url = static::classUrl(); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $options); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * List all secrets stored on the given scope. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\Apps\Secret> of ApiResources + */ + public static function all($params = null, $opts = null) + { + $url = static::classUrl(); + + return static::_requestPage($url, \Stripe\Collection::class, $params, $opts); + } + + /** + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Apps\Secret the deleted secret + */ + public static function deleteWhere($params = null, $opts = null) + { + $url = static::classUrl() . '/delete'; + list($response, $opts) = static::_staticRequest('post', $url, $params, $opts); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Apps\Secret the finded secret + */ + public static function find($params = null, $opts = null) + { + $url = static::classUrl() . '/find'; + list($response, $opts) = static::_staticRequest('get', $url, $params, $opts); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } +} diff --git a/vendor/stripe/stripe-php/lib/Balance.php b/vendor/stripe/stripe-php/lib/Balance.php new file mode 100644 index 0000000..61c8f40 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Balance.php @@ -0,0 +1,52 @@ +transactions that contributed to the balance + * (charges, payouts, and so forth). + * + * The available and pending amounts for each currency are broken down further by + * payment source types. + * + * Related guide: Understanding Connect account balances + * + * @property string $object String representing the object's type. Objects of the same type share the same value. + * @property \Stripe\StripeObject[] $available Available funds that you can transfer or pay out automatically by Stripe or explicitly through the Transfers API or Payouts API. You can find the available balance for each currency and payment type in the source_types property. + * @property null|\Stripe\StripeObject[] $connect_reserved Funds held due to negative balances on connected accounts where account.controller.requirement_collection is application, which includes Custom accounts. You can find the connect reserve balance for each currency and payment type in the source_types property. + * @property null|\Stripe\StripeObject[] $instant_available Funds that you can pay out using Instant Payouts. + * @property null|\Stripe\StripeObject $issuing + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + * @property \Stripe\StripeObject[] $pending Funds that aren't available in the balance yet. You can find the pending balance for each currency and each payment type in the source_types property. + */ +class Balance extends SingletonApiResource +{ + const OBJECT_NAME = 'balance'; + + /** + * Retrieves the current account balance, based on the authentication that was used + * to make the request. For a sample request, see Accounting + * for negative balances. + * + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Balance + */ + public static function retrieve($opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + $instance = new static(null, $opts); + $instance->refresh(); + + return $instance; + } +} diff --git a/vendor/stripe/stripe-php/lib/BalanceTransaction.php b/vendor/stripe/stripe-php/lib/BalanceTransaction.php new file mode 100644 index 0000000..b83ef76 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/BalanceTransaction.php @@ -0,0 +1,119 @@ +Balance transaction types + * + * @property string $id Unique identifier for the object. + * @property string $object String representing the object's type. Objects of the same type share the same value. + * @property int $amount Gross amount of this transaction (in cents (or local equivalent)). A positive value represents funds charged to another party, and a negative value represents funds sent to another party. + * @property int $available_on The date that the transaction's net funds become available in the Stripe balance. + * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch. + * @property string $currency Three-letter ISO currency code, in lowercase. Must be a supported currency. + * @property null|string $description An arbitrary string attached to the object. Often useful for displaying to users. + * @property null|float $exchange_rate If applicable, this transaction uses an exchange rate. If money converts from currency A to currency B, then the amount in currency A, multipled by the exchange_rate, equals the amount in currency B. For example, if you charge a customer 10.00 EUR, the PaymentIntent's amount is 1000 and currency is eur. If this converts to 12.34 USD in your Stripe account, the BalanceTransaction's amount is 1234, its currency is usd, and the exchange_rate is 1.234. + * @property int $fee Fees (in cents (or local equivalent)) paid for this transaction. Represented as a positive integer when assessed. + * @property \Stripe\StripeObject[] $fee_details Detailed breakdown of fees (in cents (or local equivalent)) paid for this transaction. + * @property int $net Net impact to a Stripe balance (in cents (or local equivalent)). A positive value represents incrementing a Stripe balance, and a negative value decrementing a Stripe balance. You can calculate the net impact of a transaction on a balance by amount - fee + * @property string $reporting_category Learn more about how reporting categories can help you understand balance transactions from an accounting perspective. + * @property null|string|\Stripe\ApplicationFee|\Stripe\ApplicationFeeRefund|\Stripe\Charge|\Stripe\ConnectCollectionTransfer|\Stripe\CustomerCashBalanceTransaction|\Stripe\Dispute|\Stripe\Issuing\Authorization|\Stripe\Issuing\Dispute|\Stripe\Issuing\Transaction|\Stripe\Payout|\Stripe\Refund|\Stripe\ReserveTransaction|\Stripe\TaxDeductedAtSource|\Stripe\Topup|\Stripe\Transfer|\Stripe\TransferReversal $source This transaction relates to the Stripe object. + * @property string $status The transaction's net funds status in the Stripe balance, which are either available or pending. + * @property string $type Transaction type: adjustment, advance, advance_funding, anticipation_repayment, application_fee, application_fee_refund, charge, climate_order_purchase, climate_order_refund, connect_collection_transfer, contribution, issuing_authorization_hold, issuing_authorization_release, issuing_dispute, issuing_transaction, obligation_outbound, obligation_reversal_inbound, payment, payment_failure_refund, payment_network_reserve_hold, payment_network_reserve_release, payment_refund, payment_reversal, payment_unreconciled, payout, payout_cancel, payout_failure, payout_minimum_balance_hold, payout_minimum_balance_release, refund, refund_failure, reserve_transaction, reserved_funds, stripe_fee, stripe_fx_fee, tax_fee, topup, topup_reversal, transfer, transfer_cancel, transfer_failure, or transfer_refund. Learn more about balance transaction types and what they represent. To classify transactions for accounting purposes, consider reporting_category instead. + */ +class BalanceTransaction extends ApiResource +{ + const OBJECT_NAME = 'balance_transaction'; + + const TYPE_ADJUSTMENT = 'adjustment'; + const TYPE_ADVANCE = 'advance'; + const TYPE_ADVANCE_FUNDING = 'advance_funding'; + const TYPE_ANTICIPATION_REPAYMENT = 'anticipation_repayment'; + const TYPE_APPLICATION_FEE = 'application_fee'; + const TYPE_APPLICATION_FEE_REFUND = 'application_fee_refund'; + const TYPE_CHARGE = 'charge'; + const TYPE_CLIMATE_ORDER_PURCHASE = 'climate_order_purchase'; + const TYPE_CLIMATE_ORDER_REFUND = 'climate_order_refund'; + const TYPE_CONNECT_COLLECTION_TRANSFER = 'connect_collection_transfer'; + const TYPE_CONTRIBUTION = 'contribution'; + const TYPE_ISSUING_AUTHORIZATION_HOLD = 'issuing_authorization_hold'; + const TYPE_ISSUING_AUTHORIZATION_RELEASE = 'issuing_authorization_release'; + const TYPE_ISSUING_DISPUTE = 'issuing_dispute'; + const TYPE_ISSUING_TRANSACTION = 'issuing_transaction'; + const TYPE_OBLIGATION_OUTBOUND = 'obligation_outbound'; + const TYPE_OBLIGATION_REVERSAL_INBOUND = 'obligation_reversal_inbound'; + const TYPE_PAYMENT = 'payment'; + const TYPE_PAYMENT_FAILURE_REFUND = 'payment_failure_refund'; + const TYPE_PAYMENT_NETWORK_RESERVE_HOLD = 'payment_network_reserve_hold'; + const TYPE_PAYMENT_NETWORK_RESERVE_RELEASE = 'payment_network_reserve_release'; + const TYPE_PAYMENT_REFUND = 'payment_refund'; + const TYPE_PAYMENT_REVERSAL = 'payment_reversal'; + const TYPE_PAYMENT_UNRECONCILED = 'payment_unreconciled'; + const TYPE_PAYOUT = 'payout'; + const TYPE_PAYOUT_CANCEL = 'payout_cancel'; + const TYPE_PAYOUT_FAILURE = 'payout_failure'; + const TYPE_PAYOUT_MINIMUM_BALANCE_HOLD = 'payout_minimum_balance_hold'; + const TYPE_PAYOUT_MINIMUM_BALANCE_RELEASE = 'payout_minimum_balance_release'; + const TYPE_REFUND = 'refund'; + const TYPE_REFUND_FAILURE = 'refund_failure'; + const TYPE_RESERVED_FUNDS = 'reserved_funds'; + const TYPE_RESERVE_TRANSACTION = 'reserve_transaction'; + const TYPE_STRIPE_FEE = 'stripe_fee'; + const TYPE_STRIPE_FX_FEE = 'stripe_fx_fee'; + const TYPE_TAX_FEE = 'tax_fee'; + const TYPE_TOPUP = 'topup'; + const TYPE_TOPUP_REVERSAL = 'topup_reversal'; + const TYPE_TRANSFER = 'transfer'; + const TYPE_TRANSFER_CANCEL = 'transfer_cancel'; + const TYPE_TRANSFER_FAILURE = 'transfer_failure'; + const TYPE_TRANSFER_REFUND = 'transfer_refund'; + + /** + * Returns a list of transactions that have contributed to the Stripe account + * balance (e.g., charges, transfers, and so forth). The transactions are returned + * in sorted order, with the most recent transactions appearing first. + * + * Note that this endpoint was previously called “Balance history” and used the + * path /v1/balance/history. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\BalanceTransaction> of ApiResources + */ + public static function all($params = null, $opts = null) + { + $url = static::classUrl(); + + return static::_requestPage($url, \Stripe\Collection::class, $params, $opts); + } + + /** + * Retrieves the balance transaction with the given ID. + * + * Note that this endpoint previously used the path + * /v1/balance/history/:id. + * + * @param array|string $id the ID of the API resource to retrieve, or an options array containing an `id` key + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\BalanceTransaction + */ + public static function retrieve($id, $opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + $instance = new static($id, $opts); + $instance->refresh(); + + return $instance; + } +} diff --git a/vendor/stripe/stripe-php/lib/BankAccount.php b/vendor/stripe/stripe-php/lib/BankAccount.php new file mode 100644 index 0000000..ce536a4 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/BankAccount.php @@ -0,0 +1,171 @@ +Customer objects. + * + * On the other hand External Accounts are transfer + * destinations on Account objects for connected accounts. + * They can be bank accounts or debit cards as well, and are documented in the links above. + * + * Related guide: Bank debits and transfers + * + * @property string $id Unique identifier for the object. + * @property string $object String representing the object's type. Objects of the same type share the same value. + * @property null|string|\Stripe\Account $account The ID of the account that the bank account is associated with. + * @property null|string $account_holder_name The name of the person or business that owns the bank account. + * @property null|string $account_holder_type The type of entity that holds the account. This can be either individual or company. + * @property null|string $account_type The bank account type. This can only be checking or savings in most countries. In Japan, this can only be futsu or toza. + * @property null|string[] $available_payout_methods A set of available payout methods for this bank account. Only values from this set should be passed as the method when creating a payout. + * @property null|string $bank_name Name of the bank associated with the routing number (e.g., WELLS FARGO). + * @property string $country Two-letter ISO code representing the country the bank account is located in. + * @property string $currency Three-letter ISO code for the currency paid out to the bank account. + * @property null|string|\Stripe\Customer $customer The ID of the customer that the bank account is associated with. + * @property null|bool $default_for_currency Whether this bank account is the default external account for its currency. + * @property null|string $fingerprint Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same. + * @property null|\Stripe\StripeObject $future_requirements Information about the upcoming new requirements for the bank account, including what information needs to be collected, and by when. + * @property string $last4 The last four digits of the bank account number. + * @property null|\Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + * @property null|\Stripe\StripeObject $requirements Information about the requirements for the bank account, including what information needs to be collected. + * @property null|string $routing_number The routing transit number for the bank account. + * @property string $status

    For bank accounts, possible values are new, validated, verified, verification_failed, or errored. A bank account that hasn't had any activity or validation performed is new. If Stripe can determine that the bank account exists, its status will be validated. Note that there often isn’t enough information to know (e.g., for smaller credit unions), and the validation is not always run. If customer bank account verification has succeeded, the bank account status will be verified. If the verification failed for any reason, such as microdeposit failure, the status will be verification_failed. If a payout sent to this bank account fails, we'll set the status to errored and will not continue to send scheduled payouts until the bank details are updated.

    For external accounts, possible values are new, errored and verification_failed. If a payout fails, the status is set to errored and scheduled payouts are stopped until account details are updated. In the US and India, if we can't verify the owner of the bank account, we'll set the status to verification_failed. Other validations aren't run against external accounts because they're only used for payouts. This means the other statuses don't apply.

    + */ +class BankAccount extends ApiResource +{ + const OBJECT_NAME = 'bank_account'; + + /** + * Delete a specified external account for a given account. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\BankAccount the deleted resource + */ + public function delete($params = null, $opts = null) + { + self::_validateParams($params); + + $url = $this->instanceUrl(); + list($response, $opts) = $this->_request('delete', $url, $params, $opts); + $this->refreshFrom($response, $opts); + + return $this; + } + + /** + * Possible string representations of the bank verification status. + * + * @see https://stripe.com/docs/api/external_account_bank_accounts/object#account_bank_account_object-status + */ + const STATUS_NEW = 'new'; + const STATUS_VALIDATED = 'validated'; + const STATUS_VERIFIED = 'verified'; + const STATUS_VERIFICATION_FAILED = 'verification_failed'; + const STATUS_ERRORED = 'errored'; + + /** + * @return string The instance URL for this resource. It needs to be special + * cased because it doesn't fit into the standard resource pattern. + */ + public function instanceUrl() + { + if ($this['customer']) { + $base = Customer::classUrl(); + $parent = $this['customer']; + $path = 'sources'; + } elseif ($this['account']) { + $base = Account::classUrl(); + $parent = $this['account']; + $path = 'external_accounts'; + } else { + $msg = 'Bank accounts cannot be accessed without a customer ID or account ID.'; + + throw new Exception\UnexpectedValueException($msg, null); + } + $parentExtn = \urlencode(Util\Util::utf8($parent)); + $extn = \urlencode(Util\Util::utf8($this['id'])); + + return "{$base}/{$parentExtn}/{$path}/{$extn}"; + } + + /** + * @param array|string $_id + * @param null|array|string $_opts + * + * @throws \Stripe\Exception\BadMethodCallException + */ + public static function retrieve($_id, $_opts = null) + { + $msg = 'Bank accounts cannot be retrieved without a customer ID or ' . + 'an account ID. Retrieve a bank account using ' . + "`Customer::retrieveSource('customer_id', " . + "'bank_account_id')` or `Account::retrieveExternalAccount(" . + "'account_id', 'bank_account_id')`."; + + throw new Exception\BadMethodCallException($msg); + } + + /** + * @param string $_id + * @param null|array $_params + * @param null|array|string $_options + * + * @throws \Stripe\Exception\BadMethodCallException + */ + public static function update($_id, $_params = null, $_options = null) + { + $msg = 'Bank accounts cannot be updated without a customer ID or an ' . + 'account ID. Update a bank account using ' . + "`Customer::updateSource('customer_id', 'bank_account_id', " . + '$updateParams)` or `Account::updateExternalAccount(' . + "'account_id', 'bank_account_id', \$updateParams)`."; + + throw new Exception\BadMethodCallException($msg); + } + + /** + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return static the saved resource + * + * @deprecated The `save` method is deprecated and will be removed in a + * future major version of the library. Use the static method `update` + * on the resource instead. + */ + public function save($opts = null) + { + $params = $this->serializeParameters(); + if (\count($params) > 0) { + $url = $this->instanceUrl(); + list($response, $opts) = $this->_request('post', $url, $params, $opts, ['save']); + $this->refreshFrom($response, $opts); + } + + return $this; + } + + /** + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return BankAccount the verified bank account + */ + public function verify($params = null, $opts = null) + { + $url = $this->instanceUrl() . '/verify'; + list($response, $opts) = $this->_request('post', $url, $params, $opts); + $this->refreshFrom($response, $opts); + + return $this; + } +} diff --git a/vendor/stripe/stripe-php/lib/BaseStripeClient.php b/vendor/stripe/stripe-php/lib/BaseStripeClient.php new file mode 100644 index 0000000..a2eb04a --- /dev/null +++ b/vendor/stripe/stripe-php/lib/BaseStripeClient.php @@ -0,0 +1,466 @@ + */ + const DEFAULT_CONFIG = [ + 'api_key' => null, + 'app_info' => null, + 'client_id' => null, + 'stripe_account' => null, + 'stripe_context' => null, + 'stripe_version' => \Stripe\Util\ApiVersion::CURRENT, + 'api_base' => self::DEFAULT_API_BASE, + 'connect_base' => self::DEFAULT_CONNECT_BASE, + 'files_base' => self::DEFAULT_FILES_BASE, + 'meter_events_base' => self::DEFAULT_METER_EVENTS_BASE, + ]; + + /** @var array */ + private $config; + + /** @var \Stripe\Util\RequestOptions */ + private $defaultOpts; + + /** + * Initializes a new instance of the {@link BaseStripeClient} class. + * + * The constructor takes a single argument. The argument can be a string, in which case it + * should be the API key. It can also be an array with various configuration settings. + * + * Configuration settings include the following options: + * + * - api_key (null|string): the Stripe API key, to be used in regular API requests. + * - app_info (null|array): information to identify a plugin that integrates Stripe using this library. + * Expects: array{name: string, version?: string, url?: string, partner_id?: string} + * - client_id (null|string): the Stripe client ID, to be used in OAuth requests. + * - stripe_account (null|string): a Stripe account ID. If set, all requests sent by the client + * will automatically use the {@code Stripe-Account} header with that account ID. + * - stripe_context (null|string): a Stripe account or compartment ID. If set, all requests sent by the client + * will automatically use the {@code Stripe-Context} header with that ID. + * - stripe_version (null|string): a Stripe API version. If set, all requests sent by the client + * will include the {@code Stripe-Version} header with that API version. + * + * The following configuration settings are also available, though setting these should rarely be necessary + * (only useful if you want to send requests to a mock server like stripe-mock): + * + * - api_base (string): the base URL for regular API requests. Defaults to + * {@link DEFAULT_API_BASE}. + * - connect_base (string): the base URL for OAuth requests. Defaults to + * {@link DEFAULT_CONNECT_BASE}. + * - files_base (string): the base URL for file creation requests. Defaults to + * {@link DEFAULT_FILES_BASE}. + * - meter_events_base (string): the base URL for high throughput requests. Defaults to + * {@link DEFAULT_METER_EVENTS_BASE}. + * + * @param array|string $config the API key as a string, or an array containing + * the client configuration settings + */ + public function __construct($config = []) + { + if (\is_string($config)) { + $config = ['api_key' => $config]; + } elseif (!\is_array($config)) { + throw new \Stripe\Exception\InvalidArgumentException('$config must be a string or an array'); + } + + $config = \array_merge(self::DEFAULT_CONFIG, $config); + $this->validateConfig($config); + + $this->config = $config; + + $this->defaultOpts = \Stripe\Util\RequestOptions::parse([ + 'stripe_account' => $config['stripe_account'], + 'stripe_context' => $config['stripe_context'], + 'stripe_version' => $config['stripe_version'], + ]); + } + + /** + * Gets the API key used by the client to send requests. + * + * @return null|string the API key used by the client to send requests + */ + public function getApiKey() + { + return $this->config['api_key']; + } + + /** + * Gets the client ID used by the client in OAuth requests. + * + * @return null|string the client ID used by the client in OAuth requests + */ + public function getClientId() + { + return $this->config['client_id']; + } + + /** + * Gets the base URL for Stripe's API. + * + * @return string the base URL for Stripe's API + */ + public function getApiBase() + { + return $this->config['api_base']; + } + + /** + * Gets the base URL for Stripe's OAuth API. + * + * @return string the base URL for Stripe's OAuth API + */ + public function getConnectBase() + { + return $this->config['connect_base']; + } + + /** + * Gets the base URL for Stripe's Files API. + * + * @return string the base URL for Stripe's Files API + */ + public function getFilesBase() + { + return $this->config['files_base']; + } + + /** + * Gets the base URL for Stripe's Meter Events API. + * + * @return string the base URL for Stripe's Meter Events API + */ + public function getMeterEventsBase() + { + return $this->config['meter_events_base']; + } + + /** + * Gets the app info for this client. + * + * @return null|array information to identify a plugin that integrates Stripe using this library + */ + public function getAppInfo() + { + return $this->config['app_info']; + } + + /** + * Sends a request to Stripe's API. + * + * @param 'delete'|'get'|'post' $method the HTTP method + * @param string $path the path of the request + * @param array $params the parameters of the request + * @param array|\Stripe\Util\RequestOptions $opts the special modifiers of the request + * + * @return \Stripe\StripeObject the object returned by Stripe's API + */ + public function request($method, $path, $params, $opts) + { + $defaultRequestOpts = $this->defaultOpts; + $apiMode = \Stripe\Util\Util::getApiMode($path); + + $opts = $defaultRequestOpts->merge($opts, true); + + $baseUrl = $opts->apiBase ?: $this->getApiBase(); + $requestor = new \Stripe\ApiRequestor($this->apiKeyForRequest($opts), $baseUrl, $this->getAppInfo()); + list($response, $opts->apiKey) = $requestor->request($method, $path, $params, $opts->headers, $apiMode, ['stripe_client']); + $opts->discardNonPersistentHeaders(); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts, $apiMode); + if (\is_array($obj)) { + // Edge case for v2 endpoints that return empty/void response + // Example: client->v2->billing->meterEventStream->create + $obj = new \Stripe\StripeObject(); + } + $obj->setLastResponse($response); + + return $obj; + } + + /** + * Sends a raw request to Stripe's API. This is the lowest level method for interacting + * with the Stripe API. This method is useful for interacting with endpoints that are not + * covered yet in stripe-php. + * + * @param 'delete'|'get'|'post' $method the HTTP method + * @param string $path the path of the request + * @param null|array $params the parameters of the request + * @param array $opts the special modifiers of the request + * + * @return \Stripe\ApiResponse + */ + public function rawRequest($method, $path, $params = null, $opts = []) + { + if ('post' !== $method && null !== $params) { + throw new Exception\InvalidArgumentException('Error: rawRequest only supports $params on post requests. Please pass null and add your parameters to $path'); + } + $apiMode = \Stripe\Util\Util::getApiMode($path); + $headers = []; + if (\is_array($opts) && \array_key_exists('headers', $opts)) { + $headers = $opts['headers'] ?: []; + unset($opts['headers']); + } + if (\is_array($opts) && \array_key_exists('stripe_context', $opts)) { + $headers['Stripe-Context'] = $opts['stripe_context']; + unset($opts['stripe_context']); + } + + $defaultRawRequestOpts = $this->defaultOpts; + + $opts = $defaultRawRequestOpts->merge($opts, true); + + // Concatenate $headers to $opts->headers, removing duplicates. + $opts->headers = \array_merge($opts->headers, $headers); + $baseUrl = $opts->apiBase ?: $this->getApiBase(); + $requestor = new \Stripe\ApiRequestor($this->apiKeyForRequest($opts), $baseUrl); + list($response) = $requestor->request($method, $path, $params, $opts->headers, $apiMode, ['raw_request']); + + return $response; + } + + /** + * Sends a request to Stripe's API, passing chunks of the streamed response + * into a user-provided $readBodyChunkCallable callback. + * + * @param 'delete'|'get'|'post' $method the HTTP method + * @param string $path the path of the request + * @param callable $readBodyChunkCallable a function that will be called + * @param array $params the parameters of the request + * @param array|\Stripe\Util\RequestOptions $opts the special modifiers of the request + * + * with chunks of bytes from the body if the request is successful + */ + public function requestStream($method, $path, $readBodyChunkCallable, $params, $opts) + { + $opts = $this->defaultOpts->merge($opts, true); + $baseUrl = $opts->apiBase ?: $this->getApiBase(); + $requestor = new \Stripe\ApiRequestor($this->apiKeyForRequest($opts), $baseUrl, $this->getAppInfo()); + $apiMode = \Stripe\Util\Util::getApiMode($path); + list($response, $opts->apiKey) = $requestor->requestStream($method, $path, $readBodyChunkCallable, $params, $opts->headers, $apiMode, ['stripe_client']); + } + + /** + * Sends a request to Stripe's API. + * + * @param 'delete'|'get'|'post' $method the HTTP method + * @param string $path the path of the request + * @param array $params the parameters of the request + * @param array|\Stripe\Util\RequestOptions $opts the special modifiers of the request + * + * @return \Stripe\Collection|\Stripe\V2\Collection of ApiResources + */ + public function requestCollection($method, $path, $params, $opts) + { + $obj = $this->request($method, $path, $params, $opts); + $apiMode = \Stripe\Util\Util::getApiMode($path); + if ('v1' === $apiMode) { + if (!($obj instanceof \Stripe\Collection)) { + $received_class = \get_class($obj); + $msg = "Expected to receive `Stripe\\Collection` object from Stripe API. Instead received `{$received_class}`."; + + throw new \Stripe\Exception\UnexpectedValueException($msg); + } + $obj->setFilters($params); + } else { + if (!($obj instanceof \Stripe\V2\Collection)) { + $received_class = \get_class($obj); + $msg = "Expected to receive `Stripe\\V2\\Collection` object from Stripe API. Instead received `{$received_class}`."; + + throw new \Stripe\Exception\UnexpectedValueException($msg); + } + } + + return $obj; + } + + /** + * Sends a request to Stripe's API. + * + * @param 'delete'|'get'|'post' $method the HTTP method + * @param string $path the path of the request + * @param array $params the parameters of the request + * @param array|\Stripe\Util\RequestOptions $opts the special modifiers of the request + * + * @return \Stripe\SearchResult of ApiResources + */ + public function requestSearchResult($method, $path, $params, $opts) + { + $obj = $this->request($method, $path, $params, $opts); + if (!($obj instanceof \Stripe\SearchResult)) { + $received_class = \get_class($obj); + $msg = "Expected to receive `Stripe\\SearchResult` object from Stripe API. Instead received `{$received_class}`."; + + throw new \Stripe\Exception\UnexpectedValueException($msg); + } + $obj->setFilters($params); + + return $obj; + } + + /** + * @param \Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\AuthenticationException + * + * @return string + */ + private function apiKeyForRequest($opts) + { + $apiKey = $opts->apiKey ?: $this->getApiKey(); + + if (null === $apiKey) { + $msg = 'No API key provided. Set your API key when constructing the ' + . 'StripeClient instance, or provide it on a per-request basis ' + . 'using the `api_key` key in the $opts argument.'; + + throw new \Stripe\Exception\AuthenticationException($msg); + } + + return $apiKey; + } + + /** + * @param array $config + * + * @throws \Stripe\Exception\InvalidArgumentException + */ + private function validateConfig($config) + { + // api_key + if (null !== $config['api_key'] && !\is_string($config['api_key'])) { + throw new \Stripe\Exception\InvalidArgumentException('api_key must be null or a string'); + } + + if (null !== $config['api_key'] && ('' === $config['api_key'])) { + $msg = 'api_key cannot be the empty string'; + + throw new \Stripe\Exception\InvalidArgumentException($msg); + } + + if (null !== $config['api_key'] && (\preg_match('/\s/', $config['api_key']))) { + $msg = 'api_key cannot contain whitespace'; + + throw new \Stripe\Exception\InvalidArgumentException($msg); + } + + // client_id + if (null !== $config['client_id'] && !\is_string($config['client_id'])) { + throw new \Stripe\Exception\InvalidArgumentException('client_id must be null or a string'); + } + + // stripe_account + if (null !== $config['stripe_account'] && !\is_string($config['stripe_account'])) { + throw new \Stripe\Exception\InvalidArgumentException('stripe_account must be null or a string'); + } + + // stripe_context + if (null !== $config['stripe_context'] && !\is_string($config['stripe_context'])) { + throw new \Stripe\Exception\InvalidArgumentException('stripe_context must be null or a string'); + } + + // stripe_version + if (null !== $config['stripe_version'] && !\is_string($config['stripe_version'])) { + throw new \Stripe\Exception\InvalidArgumentException('stripe_version must be null or a string'); + } + + // api_base + if (!\is_string($config['api_base'])) { + throw new \Stripe\Exception\InvalidArgumentException('api_base must be a string'); + } + + // connect_base + if (!\is_string($config['connect_base'])) { + throw new \Stripe\Exception\InvalidArgumentException('connect_base must be a string'); + } + + // files_base + if (!\is_string($config['files_base'])) { + throw new \Stripe\Exception\InvalidArgumentException('files_base must be a string'); + } + + // app info + if (null !== $config['app_info'] && !\is_array($config['app_info'])) { + throw new \Stripe\Exception\InvalidArgumentException('app_info must be an array'); + } + + $appInfoKeys = ['name', 'version', 'url', 'partner_id']; + if (null !== $config['app_info'] && array_diff_key($config['app_info'], array_flip($appInfoKeys))) { + $msg = 'app_info must be of type array{name: string, version?: string, url?: string, partner_id?: string}'; + + throw new \Stripe\Exception\InvalidArgumentException($msg); + } + + // check absence of extra keys + $extraConfigKeys = \array_diff(\array_keys($config), \array_keys(self::DEFAULT_CONFIG)); + if (!empty($extraConfigKeys)) { + // Wrap in single quote to more easily catch trailing spaces errors + $invalidKeys = "'" . \implode("', '", $extraConfigKeys) . "'"; + + throw new \Stripe\Exception\InvalidArgumentException('Found unknown key(s) in configuration array: ' . $invalidKeys); + } + } + + /** + * Deserializes the raw JSON string returned by rawRequest into a similar class. + * + * @param string $json + * @param 'v1'|'v2' $apiMode + * + * @return \Stripe\StripeObject + * */ + public function deserialize($json, $apiMode = 'v1') + { + return \Stripe\Util\Util::convertToStripeObject(\json_decode($json, true), [], $apiMode); + } + + /** + * Returns a V2\Events instance using the provided JSON payload. Throws an + * Exception\UnexpectedValueException if the payload is not valid JSON, and + * an Exception\SignatureVerificationException if the signature + * verification fails for any reason. + * + * @param string $payload the payload sent by Stripe + * @param string $sigHeader the contents of the signature header sent by + * Stripe + * @param string $secret secret used to generate the signature + * @param int $tolerance maximum difference allowed between the header's + * timestamp and the current time. Defaults to 300 seconds (5 min) + * + * @throws Exception\SignatureVerificationException if the verification fails + * @throws Exception\UnexpectedValueException if the payload is not valid JSON, + * + * @return \Stripe\ThinEvent + */ + public function parseThinEvent($payload, $sigHeader, $secret, $tolerance = Webhook::DEFAULT_TOLERANCE) + { + $eventData = Util::utf8($payload); + WebhookSignature::verifyHeader($payload, $sigHeader, $secret, $tolerance); + + try { + return Util::json_decode_thin_event_object( + $eventData, + '\Stripe\ThinEvent' + ); + } catch (\ReflectionException $e) { + // Fail gracefully + return new \Stripe\ThinEvent(); + } + } +} diff --git a/vendor/stripe/stripe-php/lib/BaseStripeClientInterface.php b/vendor/stripe/stripe-php/lib/BaseStripeClientInterface.php new file mode 100644 index 0000000..dc3ec71 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/BaseStripeClientInterface.php @@ -0,0 +1,51 @@ +true if the object exists in live mode or the value false if the object exists in test mode. + * @property null|string $status Status of the alert. This can be active, inactive or archived. + * @property string $title Title of the alert. + * @property null|\Stripe\StripeObject $usage_threshold Encapsulates configuration of the alert to monitor usage on a specific Billing Meter. + */ +class Alert extends \Stripe\ApiResource +{ + const OBJECT_NAME = 'billing.alert'; + + const STATUS_ACTIVE = 'active'; + const STATUS_ARCHIVED = 'archived'; + const STATUS_INACTIVE = 'inactive'; + + /** + * Creates a billing alert. + * + * @param null|array $params + * @param null|array|string $options + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Billing\Alert the created resource + */ + public static function create($params = null, $options = null) + { + self::_validateParams($params); + $url = static::classUrl(); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $options); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * Lists billing active and inactive alerts. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\Billing\Alert> of ApiResources + */ + public static function all($params = null, $opts = null) + { + $url = static::classUrl(); + + return static::_requestPage($url, \Stripe\Collection::class, $params, $opts); + } + + /** + * Retrieves a billing alert given an ID. + * + * @param array|string $id the ID of the API resource to retrieve, or an options array containing an `id` key + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Billing\Alert + */ + public static function retrieve($id, $opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + $instance = new static($id, $opts); + $instance->refresh(); + + return $instance; + } + + /** + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Billing\Alert the activated alert + */ + public function activate($params = null, $opts = null) + { + $url = $this->instanceUrl() . '/activate'; + list($response, $opts) = $this->_request('post', $url, $params, $opts); + $this->refreshFrom($response, $opts); + + return $this; + } + + /** + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Billing\Alert the archived alert + */ + public function archive($params = null, $opts = null) + { + $url = $this->instanceUrl() . '/archive'; + list($response, $opts) = $this->_request('post', $url, $params, $opts); + $this->refreshFrom($response, $opts); + + return $this; + } + + /** + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Billing\Alert the deactivated alert + */ + public function deactivate($params = null, $opts = null) + { + $url = $this->instanceUrl() . '/deactivate'; + list($response, $opts) = $this->_request('post', $url, $params, $opts); + $this->refreshFrom($response, $opts); + + return $this; + } +} diff --git a/vendor/stripe/stripe-php/lib/Billing/AlertTriggered.php b/vendor/stripe/stripe-php/lib/Billing/AlertTriggered.php new file mode 100644 index 0000000..04bae44 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Billing/AlertTriggered.php @@ -0,0 +1,18 @@ +true if the object exists in live mode or the value false if the object exists in test mode. + * @property int $value The value triggering the alert + */ +class AlertTriggered extends \Stripe\ApiResource +{ + const OBJECT_NAME = 'billing.alert_triggered'; +} diff --git a/vendor/stripe/stripe-php/lib/Billing/CreditBalanceSummary.php b/vendor/stripe/stripe-php/lib/Billing/CreditBalanceSummary.php new file mode 100644 index 0000000..c6c7631 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Billing/CreditBalanceSummary.php @@ -0,0 +1,36 @@ +true if the object exists in live mode or the value false if the object exists in test mode. + */ +class CreditBalanceSummary extends \Stripe\SingletonApiResource +{ + const OBJECT_NAME = 'billing.credit_balance_summary'; + + /** + * Retrieves the credit balance summary for a customer. + * + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Billing\CreditBalanceSummary + */ + public static function retrieve($opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + $instance = new static(null, $opts); + $instance->refresh(); + + return $instance; + } +} diff --git a/vendor/stripe/stripe-php/lib/Billing/CreditBalanceTransaction.php b/vendor/stripe/stripe-php/lib/Billing/CreditBalanceTransaction.php new file mode 100644 index 0000000..74ef7ae --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Billing/CreditBalanceTransaction.php @@ -0,0 +1,63 @@ +credit. + * @property string|\Stripe\Billing\CreditGrant $credit_grant The credit grant associated with this credit balance transaction. + * @property null|\Stripe\StripeObject $debit Debit details for this credit balance transaction. Only present if type is debit. + * @property int $effective_at The effective time of this credit balance transaction. + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + * @property null|string|\Stripe\TestHelpers\TestClock $test_clock ID of the test clock this credit balance transaction belongs to. + * @property null|string $type The type of credit balance transaction (credit or debit). + */ +class CreditBalanceTransaction extends \Stripe\ApiResource +{ + const OBJECT_NAME = 'billing.credit_balance_transaction'; + + const TYPE_CREDIT = 'credit'; + const TYPE_DEBIT = 'debit'; + + /** + * Retrieve a list of credit balance transactions. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\Billing\CreditBalanceTransaction> of ApiResources + */ + public static function all($params = null, $opts = null) + { + $url = static::classUrl(); + + return static::_requestPage($url, \Stripe\Collection::class, $params, $opts); + } + + /** + * Retrieves a credit balance transaction. + * + * @param array|string $id the ID of the API resource to retrieve, or an options array containing an `id` key + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Billing\CreditBalanceTransaction + */ + public static function retrieve($id, $opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + $instance = new static($id, $opts); + $instance->refresh(); + + return $instance; + } +} diff --git a/vendor/stripe/stripe-php/lib/Billing/CreditGrant.php b/vendor/stripe/stripe-php/lib/Billing/CreditGrant.php new file mode 100644 index 0000000..1f08c04 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Billing/CreditGrant.php @@ -0,0 +1,152 @@ +Billing credits + * + * @property string $id Unique identifier for the object. + * @property string $object String representing the object's type. Objects of the same type share the same value. + * @property \Stripe\StripeObject $amount + * @property \Stripe\StripeObject $applicability_config + * @property string $category The category of this credit grant. This is for tracking purposes and isn't displayed to the customer. + * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch. + * @property string|\Stripe\Customer $customer ID of the customer receiving the billing credits. + * @property null|int $effective_at The time when the billing credits become effective-when they're eligible for use. + * @property null|int $expires_at The time when the billing credits expire. If not present, the billing credits don't expire. + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + * @property \Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + * @property null|string $name A descriptive name shown in dashboard. + * @property null|int $priority The priority for applying this credit grant. The highest priority is 0 and the lowest is 100. + * @property null|string|\Stripe\TestHelpers\TestClock $test_clock ID of the test clock this credit grant belongs to. + * @property int $updated Time at which the object was last updated. Measured in seconds since the Unix epoch. + * @property null|int $voided_at The time when this credit grant was voided. If not present, the credit grant hasn't been voided. + */ +class CreditGrant extends \Stripe\ApiResource +{ + const OBJECT_NAME = 'billing.credit_grant'; + + use \Stripe\ApiOperations\Update; + + const CATEGORY_PAID = 'paid'; + const CATEGORY_PROMOTIONAL = 'promotional'; + + /** + * Creates a credit grant. + * + * @param null|array $params + * @param null|array|string $options + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Billing\CreditGrant the created resource + */ + public static function create($params = null, $options = null) + { + self::_validateParams($params); + $url = static::classUrl(); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $options); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * Retrieve a list of credit grants. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\Billing\CreditGrant> of ApiResources + */ + public static function all($params = null, $opts = null) + { + $url = static::classUrl(); + + return static::_requestPage($url, \Stripe\Collection::class, $params, $opts); + } + + /** + * Retrieves a credit grant. + * + * @param array|string $id the ID of the API resource to retrieve, or an options array containing an `id` key + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Billing\CreditGrant + */ + public static function retrieve($id, $opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + $instance = new static($id, $opts); + $instance->refresh(); + + return $instance; + } + + /** + * Updates a credit grant. + * + * @param string $id the ID of the resource to update + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Billing\CreditGrant the updated resource + */ + public static function update($id, $params = null, $opts = null) + { + self::_validateParams($params); + $url = static::resourceUrl($id); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $opts); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Billing\CreditGrant the expired credit grant + */ + public function expire($params = null, $opts = null) + { + $url = $this->instanceUrl() . '/expire'; + list($response, $opts) = $this->_request('post', $url, $params, $opts); + $this->refreshFrom($response, $opts); + + return $this; + } + + /** + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Billing\CreditGrant the voided credit grant + */ + public function voidGrant($params = null, $opts = null) + { + $url = $this->instanceUrl() . '/void'; + list($response, $opts) = $this->_request('post', $url, $params, $opts); + $this->refreshFrom($response, $opts); + + return $this; + } +} diff --git a/vendor/stripe/stripe-php/lib/Billing/Meter.php b/vendor/stripe/stripe-php/lib/Billing/Meter.php new file mode 100644 index 0000000..1e0080a --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Billing/Meter.php @@ -0,0 +1,169 @@ +Usage based billing + * + * @property string $id Unique identifier for the object. + * @property string $object String representing the object's type. Objects of the same type share the same value. + * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch. + * @property \Stripe\StripeObject $customer_mapping + * @property \Stripe\StripeObject $default_aggregation + * @property string $display_name The meter's name. + * @property string $event_name The name of the meter event to record usage for. Corresponds with the event_name field on meter events. + * @property null|string $event_time_window The time window to pre-aggregate meter events for, if any. + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + * @property string $status The meter's status. + * @property \Stripe\StripeObject $status_transitions + * @property int $updated Time at which the object was last updated. Measured in seconds since the Unix epoch. + * @property \Stripe\StripeObject $value_settings + */ +class Meter extends \Stripe\ApiResource +{ + const OBJECT_NAME = 'billing.meter'; + + use \Stripe\ApiOperations\NestedResource; + use \Stripe\ApiOperations\Update; + + const EVENT_TIME_WINDOW_DAY = 'day'; + const EVENT_TIME_WINDOW_HOUR = 'hour'; + + const STATUS_ACTIVE = 'active'; + const STATUS_INACTIVE = 'inactive'; + + /** + * Creates a billing meter. + * + * @param null|array $params + * @param null|array|string $options + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Billing\Meter the created resource + */ + public static function create($params = null, $options = null) + { + self::_validateParams($params); + $url = static::classUrl(); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $options); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * Retrieve a list of billing meters. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\Billing\Meter> of ApiResources + */ + public static function all($params = null, $opts = null) + { + $url = static::classUrl(); + + return static::_requestPage($url, \Stripe\Collection::class, $params, $opts); + } + + /** + * Retrieves a billing meter given an ID. + * + * @param array|string $id the ID of the API resource to retrieve, or an options array containing an `id` key + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Billing\Meter + */ + public static function retrieve($id, $opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + $instance = new static($id, $opts); + $instance->refresh(); + + return $instance; + } + + /** + * Updates a billing meter. + * + * @param string $id the ID of the resource to update + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Billing\Meter the updated resource + */ + public static function update($id, $params = null, $opts = null) + { + self::_validateParams($params); + $url = static::resourceUrl($id); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $opts); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Billing\Meter the deactivated meter + */ + public function deactivate($params = null, $opts = null) + { + $url = $this->instanceUrl() . '/deactivate'; + list($response, $opts) = $this->_request('post', $url, $params, $opts); + $this->refreshFrom($response, $opts); + + return $this; + } + + /** + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Billing\Meter the reactivated meter + */ + public function reactivate($params = null, $opts = null) + { + $url = $this->instanceUrl() . '/reactivate'; + list($response, $opts) = $this->_request('post', $url, $params, $opts); + $this->refreshFrom($response, $opts); + + return $this; + } + + const PATH_EVENT_SUMMARIES = '/event_summaries'; + + /** + * @param string $id the ID of the meter on which to retrieve the meter event summaries + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\Billing\MeterEventSummary> the list of meter event summaries + */ + public static function allEventSummaries($id, $params = null, $opts = null) + { + return self::_allNestedResources($id, static::PATH_EVENT_SUMMARIES, $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Billing/MeterEvent.php b/vendor/stripe/stripe-php/lib/Billing/MeterEvent.php new file mode 100644 index 0000000..d0ff22c --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Billing/MeterEvent.php @@ -0,0 +1,43 @@ +event_name field on a meter. + * @property string $identifier A unique identifier for the event. + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + * @property \Stripe\StripeObject $payload The payload of the event. This contains the fields corresponding to a meter's customer_mapping.event_payload_key (default is stripe_customer_id) and value_settings.event_payload_key (default is value). Read more about the payload. + * @property int $timestamp The timestamp passed in when creating the event. Measured in seconds since the Unix epoch. + */ +class MeterEvent extends \Stripe\ApiResource +{ + const OBJECT_NAME = 'billing.meter_event'; + + /** + * Creates a billing meter event. + * + * @param null|array $params + * @param null|array|string $options + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Billing\MeterEvent the created resource + */ + public static function create($params = null, $options = null) + { + self::_validateParams($params); + $url = static::classUrl(); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $options); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } +} diff --git a/vendor/stripe/stripe-php/lib/Billing/MeterEventAdjustment.php b/vendor/stripe/stripe-php/lib/Billing/MeterEventAdjustment.php new file mode 100644 index 0000000..90863fb --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Billing/MeterEventAdjustment.php @@ -0,0 +1,45 @@ +event_name field on a meter. + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + * @property string $status The meter event adjustment's status. + * @property string $type Specifies whether to cancel a single event or a range of events for a time period. Time period cancellation is not supported yet. + */ +class MeterEventAdjustment extends \Stripe\ApiResource +{ + const OBJECT_NAME = 'billing.meter_event_adjustment'; + + const STATUS_COMPLETE = 'complete'; + const STATUS_PENDING = 'pending'; + + /** + * Creates a billing meter event adjustment. + * + * @param null|array $params + * @param null|array|string $options + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Billing\MeterEventAdjustment the created resource + */ + public static function create($params = null, $options = null) + { + self::_validateParams($params); + $url = static::classUrl(); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $options); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } +} diff --git a/vendor/stripe/stripe-php/lib/Billing/MeterEventSummary.php b/vendor/stripe/stripe-php/lib/Billing/MeterEventSummary.php new file mode 100644 index 0000000..008525a --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Billing/MeterEventSummary.php @@ -0,0 +1,24 @@ +start_time (inclusive) and end_time (inclusive). The aggregation strategy is defined on meter via default_aggregation. + * @property int $end_time End timestamp for this event summary (exclusive). Must be aligned with minute boundaries. + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + * @property string $meter The meter associated with this event summary. + * @property int $start_time Start timestamp for this event summary (inclusive). Must be aligned with minute boundaries. + */ +class MeterEventSummary extends \Stripe\ApiResource +{ + const OBJECT_NAME = 'billing.meter_event_summary'; +} diff --git a/vendor/stripe/stripe-php/lib/BillingPortal/Configuration.php b/vendor/stripe/stripe-php/lib/BillingPortal/Configuration.php new file mode 100644 index 0000000..04b2c62 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/BillingPortal/Configuration.php @@ -0,0 +1,113 @@ +overriden when creating the session. + * @property \Stripe\StripeObject $features + * @property bool $is_default Whether the configuration is the default. If true, this configuration can be managed in the Dashboard and portal sessions will use this configuration unless it is overriden when creating the session. + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + * @property \Stripe\StripeObject $login_page + * @property null|\Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + * @property int $updated Time at which the object was last updated. Measured in seconds since the Unix epoch. + */ +class Configuration extends \Stripe\ApiResource +{ + const OBJECT_NAME = 'billing_portal.configuration'; + + use \Stripe\ApiOperations\Update; + + /** + * Creates a configuration that describes the functionality and behavior of a + * PortalSession. + * + * @param null|array $params + * @param null|array|string $options + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\BillingPortal\Configuration the created resource + */ + public static function create($params = null, $options = null) + { + self::_validateParams($params); + $url = static::classUrl(); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $options); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * Returns a list of configurations that describe the functionality of the customer + * portal. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\BillingPortal\Configuration> of ApiResources + */ + public static function all($params = null, $opts = null) + { + $url = static::classUrl(); + + return static::_requestPage($url, \Stripe\Collection::class, $params, $opts); + } + + /** + * Retrieves a configuration that describes the functionality of the customer + * portal. + * + * @param array|string $id the ID of the API resource to retrieve, or an options array containing an `id` key + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\BillingPortal\Configuration + */ + public static function retrieve($id, $opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + $instance = new static($id, $opts); + $instance->refresh(); + + return $instance; + } + + /** + * Updates a configuration that describes the functionality of the customer portal. + * + * @param string $id the ID of the resource to update + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\BillingPortal\Configuration the updated resource + */ + public static function update($id, $params = null, $opts = null) + { + self::_validateParams($params); + $url = static::resourceUrl($id); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $opts); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } +} diff --git a/vendor/stripe/stripe-php/lib/BillingPortal/Session.php b/vendor/stripe/stripe-php/lib/BillingPortal/Session.php new file mode 100644 index 0000000..a94d5f9 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/BillingPortal/Session.php @@ -0,0 +1,60 @@ +Customer management + * + * @property string $id Unique identifier for the object. + * @property string $object String representing the object's type. Objects of the same type share the same value. + * @property string|\Stripe\BillingPortal\Configuration $configuration The configuration used by this session, describing the features available. + * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch. + * @property string $customer The ID of the customer for this session. + * @property null|\Stripe\StripeObject $flow Information about a specific flow for the customer to go through. See the docs to learn more about using customer portal deep links and flows. + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + * @property null|string $locale The IETF language tag of the locale Customer Portal is displayed in. If blank or auto, the customer’s preferred_locales or browser’s locale is used. + * @property null|string $on_behalf_of The account for which the session was created on behalf of. When specified, only subscriptions and invoices with this on_behalf_of account appear in the portal. For more information, see the docs. Use the Accounts API to modify the on_behalf_of account's branding settings, which the portal displays. + * @property null|string $return_url The URL to redirect customers to when they click on the portal's link to return to your website. + * @property string $url The short-lived URL of the session that gives customers access to the customer portal. + */ +class Session extends \Stripe\ApiResource +{ + const OBJECT_NAME = 'billing_portal.session'; + + /** + * Creates a session of the customer portal. + * + * @param null|array $params + * @param null|array|string $options + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\BillingPortal\Session the created resource + */ + public static function create($params = null, $options = null) + { + self::_validateParams($params); + $url = static::classUrl(); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $options); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } +} diff --git a/vendor/stripe/stripe-php/lib/Capability.php b/vendor/stripe/stripe-php/lib/Capability.php new file mode 100644 index 0000000..056c5e8 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Capability.php @@ -0,0 +1,107 @@ +Account capabilities + * + * @property string $id The identifier for the capability. + * @property string $object String representing the object's type. Objects of the same type share the same value. + * @property string|\Stripe\Account $account The account for which the capability enables functionality. + * @property null|\Stripe\StripeObject $future_requirements + * @property bool $requested Whether the capability has been requested. + * @property null|int $requested_at Time at which the capability was requested. Measured in seconds since the Unix epoch. + * @property null|\Stripe\StripeObject $requirements + * @property string $status The status of the capability. + */ +class Capability extends ApiResource +{ + const OBJECT_NAME = 'capability'; + + const STATUS_ACTIVE = 'active'; + const STATUS_INACTIVE = 'inactive'; + const STATUS_PENDING = 'pending'; + const STATUS_UNREQUESTED = 'unrequested'; + + /** + * @return string the API URL for this Stripe account reversal + */ + public function instanceUrl() + { + $id = $this['id']; + $account = $this['account']; + if (!$id) { + throw new Exception\UnexpectedValueException( + 'Could not determine which URL to request: ' . + "class instance has invalid ID: {$id}", + null + ); + } + $id = Util\Util::utf8($id); + $account = Util\Util::utf8($account); + + $base = Account::classUrl(); + $accountExtn = \urlencode($account); + $extn = \urlencode($id); + + return "{$base}/{$accountExtn}/capabilities/{$extn}"; + } + + /** + * @param array|string $_id + * @param null|array|string $_opts + * + * @throws \Stripe\Exception\BadMethodCallException + */ + public static function retrieve($_id, $_opts = null) + { + $msg = 'Capabilities cannot be retrieved without an account ID. ' . + 'Retrieve a capability using `Account::retrieveCapability(' . + "'account_id', 'capability_id')`."; + + throw new Exception\BadMethodCallException($msg); + } + + /** + * @param string $_id + * @param null|array $_params + * @param null|array|string $_options + * + * @throws \Stripe\Exception\BadMethodCallException + */ + public static function update($_id, $_params = null, $_options = null) + { + $msg = 'Capabilities cannot be updated without an account ID. ' . + 'Update a capability using `Account::updateCapability(' . + "'account_id', 'capability_id', \$updateParams)`."; + + throw new Exception\BadMethodCallException($msg); + } + + /** + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return static the saved resource + * + * @deprecated The `save` method is deprecated and will be removed in a + * future major version of the library. Use the static method `update` + * on the resource instead. + */ + public function save($opts = null) + { + $params = $this->serializeParameters(); + if (\count($params) > 0) { + $url = $this->instanceUrl(); + list($response, $opts) = $this->_request('post', $url, $params, $opts, ['save']); + $this->refreshFrom($response, $opts); + } + + return $this; + } +} diff --git a/vendor/stripe/stripe-php/lib/Card.php b/vendor/stripe/stripe-php/lib/Card.php new file mode 100644 index 0000000..014e6b4 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Card.php @@ -0,0 +1,188 @@ +Card payments with Sources + * + * @property string $id Unique identifier for the object. + * @property string $object String representing the object's type. Objects of the same type share the same value. + * @property null|string|\Stripe\Account $account The account this card belongs to. This attribute will not be in the card object if the card belongs to a customer or recipient instead. This property is only available for accounts where controller.requirement_collection is application, which includes Custom accounts. + * @property null|string $address_city City/District/Suburb/Town/Village. + * @property null|string $address_country Billing address country, if provided when creating card. + * @property null|string $address_line1 Address line 1 (Street address/PO Box/Company name). + * @property null|string $address_line1_check If address_line1 was provided, results of the check: pass, fail, unavailable, or unchecked. + * @property null|string $address_line2 Address line 2 (Apartment/Suite/Unit/Building). + * @property null|string $address_state State/County/Province/Region. + * @property null|string $address_zip ZIP or postal code. + * @property null|string $address_zip_check If address_zip was provided, results of the check: pass, fail, unavailable, or unchecked. + * @property null|string $allow_redisplay This field indicates whether this payment method can be shown again to its customer in a checkout flow. Stripe products such as Checkout and Elements use this field to determine whether a payment method can be shown as a saved payment method in a checkout flow. The field defaults to “unspecified”. + * @property null|string[] $available_payout_methods A set of available payout methods for this card. Only values from this set should be passed as the method when creating a payout. + * @property string $brand Card brand. Can be American Express, Diners Club, Discover, Eftpos Australia, Girocard, JCB, MasterCard, UnionPay, Visa, or Unknown. + * @property null|string $country Two-letter ISO code representing the country of the card. You could use this attribute to get a sense of the international breakdown of cards you've collected. + * @property null|string $currency Three-letter ISO code for currency in lowercase. Must be a supported currency. Only applicable on accounts (not customers or recipients). The card can be used as a transfer destination for funds in this currency. This property is only available for accounts where controller.requirement_collection is application, which includes Custom accounts. + * @property null|string|\Stripe\Customer $customer The customer that this card belongs to. This attribute will not be in the card object if the card belongs to an account or recipient instead. + * @property null|string $cvc_check If a CVC was provided, results of the check: pass, fail, unavailable, or unchecked. A result of unchecked indicates that CVC was provided but hasn't been checked yet. Checks are typically performed when attaching a card to a Customer object, or when creating a charge. For more details, see Check if a card is valid without a charge. + * @property null|bool $default_for_currency Whether this card is the default external account for its currency. This property is only available for accounts where controller.requirement_collection is application, which includes Custom accounts. + * @property null|string $dynamic_last4 (For tokenized numbers only.) The last four digits of the device account number. + * @property int $exp_month Two-digit number representing the card's expiration month. + * @property int $exp_year Four-digit number representing the card's expiration year. + * @property null|string $fingerprint

    Uniquely identifies this particular card number. You can use this attribute to check whether two customers who’ve signed up with you are using the same card number, for example. For payment methods that tokenize card information (Apple Pay, Google Pay), the tokenized number might be provided instead of the underlying card number.

    As of May 1, 2021, card fingerprint in India for Connect changed to allow two fingerprints for the same card---one for India and one for the rest of the world.

    + * @property string $funding Card funding type. Can be credit, debit, prepaid, or unknown. + * @property string $last4 The last four digits of the card. + * @property null|\Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + * @property null|string $name Cardholder name. + * @property null|\Stripe\StripeObject $networks + * @property null|string $regulated_status Status of a card based on the card issuer. + * @property null|string $status For external accounts that are cards, possible values are new and errored. If a payout fails, the status is set to errored and scheduled payouts are stopped until account details are updated. + * @property null|string $tokenization_method If the card number is tokenized, this is the method that was used. Can be android_pay (includes Google Pay), apple_pay, masterpass, visa_checkout, or null. + */ +class Card extends ApiResource +{ + const OBJECT_NAME = 'card'; + + const ALLOW_REDISPLAY_ALWAYS = 'always'; + const ALLOW_REDISPLAY_LIMITED = 'limited'; + const ALLOW_REDISPLAY_UNSPECIFIED = 'unspecified'; + + const REGULATED_STATUS_REGULATED = 'regulated'; + const REGULATED_STATUS_UNREGULATED = 'unregulated'; + + /** + * Delete a specified external account for a given account. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Card the deleted resource + */ + public function delete($params = null, $opts = null) + { + self::_validateParams($params); + + $url = $this->instanceUrl(); + list($response, $opts) = $this->_request('delete', $url, $params, $opts); + $this->refreshFrom($response, $opts); + + return $this; + } + + /** + * Possible string representations of the CVC check status. + * + * @see https://stripe.com/docs/api/cards/object#card_object-cvc_check + */ + const CVC_CHECK_FAIL = 'fail'; + const CVC_CHECK_PASS = 'pass'; + const CVC_CHECK_UNAVAILABLE = 'unavailable'; + const CVC_CHECK_UNCHECKED = 'unchecked'; + + /** + * Possible string representations of the funding of the card. + * + * @see https://stripe.com/docs/api/cards/object#card_object-funding + */ + const FUNDING_CREDIT = 'credit'; + const FUNDING_DEBIT = 'debit'; + const FUNDING_PREPAID = 'prepaid'; + const FUNDING_UNKNOWN = 'unknown'; + + /** + * Possible string representations of the tokenization method when using Apple Pay or Google Pay. + * + * @see https://stripe.com/docs/api/cards/object#card_object-tokenization_method + */ + const TOKENIZATION_METHOD_APPLE_PAY = 'apple_pay'; + const TOKENIZATION_METHOD_GOOGLE_PAY = 'google_pay'; + + /** + * @return string The instance URL for this resource. It needs to be special + * cased because cards are nested resources that may belong to different + * top-level resources. + */ + public function instanceUrl() + { + if ($this['customer']) { + $base = Customer::classUrl(); + $parent = $this['customer']; + $path = 'sources'; + } elseif ($this['account']) { + $base = Account::classUrl(); + $parent = $this['account']; + $path = 'external_accounts'; + } else { + $msg = 'Cards cannot be accessed without a customer ID, or account ID.'; + + throw new Exception\UnexpectedValueException($msg); + } + $parentExtn = \urlencode(Util\Util::utf8($parent)); + $extn = \urlencode(Util\Util::utf8($this['id'])); + + return "{$base}/{$parentExtn}/{$path}/{$extn}"; + } + + /** + * @param array|string $_id + * @param null|array|string $_opts + * + * @throws \Stripe\Exception\BadMethodCallException + */ + public static function retrieve($_id, $_opts = null) + { + $msg = 'Cards cannot be retrieved without a customer ID or an ' . + 'account ID. Retrieve a card using ' . + "`Customer::retrieveSource('customer_id', 'card_id')` or " . + "`Account::retrieveExternalAccount('account_id', 'card_id')`."; + + throw new Exception\BadMethodCallException($msg); + } + + /** + * @param string $_id + * @param null|array $_params + * @param null|array|string $_options + * + * @throws \Stripe\Exception\BadMethodCallException + */ + public static function update($_id, $_params = null, $_options = null) + { + $msg = 'Cards cannot be updated without a customer ID or an ' . + 'account ID. Update a card using ' . + "`Customer::updateSource('customer_id', 'card_id', " . + '$updateParams)` or `Account::updateExternalAccount(' . + "'account_id', 'card_id', \$updateParams)`."; + + throw new Exception\BadMethodCallException($msg); + } + + /** + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return static the saved resource + * + * @deprecated The `save` method is deprecated and will be removed in a + * future major version of the library. Use the static method `update` + * on the resource instead. + */ + public function save($opts = null) + { + $params = $this->serializeParameters(); + if (\count($params) > 0) { + $url = $this->instanceUrl(); + list($response, $opts) = $this->_request('post', $url, $params, $opts, ['save']); + $this->refreshFrom($response, $opts); + } + + return $this; + } +} diff --git a/vendor/stripe/stripe-php/lib/CashBalance.php b/vendor/stripe/stripe-php/lib/CashBalance.php new file mode 100644 index 0000000..84ee9a8 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/CashBalance.php @@ -0,0 +1,64 @@ +Cash balance represents real funds. Customers can add funds to their cash balance by sending a bank transfer. These funds can be used for payment and can eventually be paid out to your bank account. + * + * @property string $object String representing the object's type. Objects of the same type share the same value. + * @property null|\Stripe\StripeObject $available A hash of all cash balances available to this customer. You cannot delete a customer with any cash balances, even if the balance is 0. Amounts are represented in the smallest currency unit. + * @property string $customer The ID of the customer whose cash balance this object represents. + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + * @property \Stripe\StripeObject $settings + */ +class CashBalance extends ApiResource +{ + const OBJECT_NAME = 'cash_balance'; + + /** + * @return string the API URL for this balance transaction + */ + public function instanceUrl() + { + $customer = $this['customer']; + $customer = Util\Util::utf8($customer); + + $base = Customer::classUrl(); + $customerExtn = \urlencode($customer); + + return "{$base}/{$customerExtn}/cash_balance"; + } + + /** + * @param array|string $_id + * @param null|array|string $_opts + * + * @throws \Stripe\Exception\BadMethodCallException + */ + public static function retrieve($_id, $_opts = null) + { + $msg = 'Customer Cash Balance cannot be retrieved without a ' . + 'customer ID. Retrieve a Customer Cash Balance using ' . + "`Customer::retrieveCashBalance('customer_id')`."; + + throw new Exception\BadMethodCallException($msg); + } + + /** + * @param string $_id + * @param null|array $_params + * @param null|array|string $_options + * + * @throws \Stripe\Exception\BadMethodCallException + */ + public static function update($_id, $_params = null, $_options = null) + { + $msg = 'Customer Cash Balance cannot be updated without a ' . + 'customer ID. Retrieve a Customer Cash Balance using ' . + "`Customer::updateCashBalance('customer_id')`."; + + throw new Exception\BadMethodCallException($msg); + } +} diff --git a/vendor/stripe/stripe-php/lib/Charge.php b/vendor/stripe/stripe-php/lib/Charge.php new file mode 100644 index 0000000..2a3e37a --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Charge.php @@ -0,0 +1,277 @@ +Charge object represents a single attempt to move money into your Stripe account. + * PaymentIntent confirmation is the most common way to create Charges, but transferring + * money to a different Stripe account through Connect also creates Charges. + * Some legacy payment flows create Charges directly, which is not recommended for new integrations. + * + * @property string $id Unique identifier for the object. + * @property string $object String representing the object's type. Objects of the same type share the same value. + * @property int $amount Amount intended to be collected by this payment. A positive integer representing how much to charge in the smallest currency unit (e.g., 100 cents to charge $1.00 or 100 to charge ¥100, a zero-decimal currency). The minimum amount is $0.50 US or equivalent in charge currency. The amount value supports up to eight digits (e.g., a value of 99999999 for a USD charge of $999,999.99). + * @property int $amount_captured Amount in cents (or local equivalent) captured (can be less than the amount attribute on the charge if a partial capture was made). + * @property int $amount_refunded Amount in cents (or local equivalent) refunded (can be less than the amount attribute on the charge if a partial refund was issued). + * @property null|string|\Stripe\Application $application ID of the Connect application that created the charge. + * @property null|string|\Stripe\ApplicationFee $application_fee The application fee (if any) for the charge. See the Connect documentation for details. + * @property null|int $application_fee_amount The amount of the application fee (if any) requested for the charge. See the Connect documentation for details. + * @property null|string $authorization_code Authorization code on the charge. + * @property null|string|\Stripe\BalanceTransaction $balance_transaction ID of the balance transaction that describes the impact of this charge on your account balance (not including refunds or disputes). + * @property \Stripe\StripeObject $billing_details + * @property null|string $calculated_statement_descriptor The full statement descriptor that is passed to card networks, and that is displayed on your customers' credit card and bank statements. Allows you to see what the statement descriptor looks like after the static and dynamic portions are combined. This value only exists for card payments. + * @property bool $captured If the charge was created without capturing, this Boolean represents whether it is still uncaptured or has since been captured. + * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch. + * @property string $currency Three-letter ISO currency code, in lowercase. Must be a supported currency. + * @property null|string|\Stripe\Customer $customer ID of the customer this charge is for if one exists. + * @property null|string $description An arbitrary string attached to the object. Often useful for displaying to users. + * @property bool $disputed Whether the charge has been disputed. + * @property null|string|\Stripe\BalanceTransaction $failure_balance_transaction ID of the balance transaction that describes the reversal of the balance on your account due to payment failure. + * @property null|string $failure_code Error code explaining reason for charge failure if available (see the errors section for a list of codes). + * @property null|string $failure_message Message to user further explaining reason for charge failure if available. + * @property null|\Stripe\StripeObject $fraud_details Information on fraud assessments for the charge. + * @property null|string|\Stripe\Invoice $invoice ID of the invoice this charge is for if one exists. + * @property null|\Stripe\StripeObject $level3 + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + * @property \Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + * @property null|string|\Stripe\Account $on_behalf_of The account (if any) the charge was made on behalf of without triggering an automatic transfer. See the Connect documentation for details. + * @property null|\Stripe\StripeObject $outcome Details about whether the payment was accepted, and why. See understanding declines for details. + * @property bool $paid true if the charge succeeded, or was successfully authorized for later capture. + * @property null|string|\Stripe\PaymentIntent $payment_intent ID of the PaymentIntent associated with this charge, if one exists. + * @property null|string $payment_method ID of the payment method used in this charge. + * @property null|\Stripe\StripeObject $payment_method_details Details about the payment method at the time of the transaction. + * @property null|\Stripe\StripeObject $radar_options Options to configure Radar. See Radar Session for more information. + * @property null|string $receipt_email This is the email address that the receipt for this charge was sent to. + * @property null|string $receipt_number This is the transaction number that appears on email receipts sent for this charge. This attribute will be null until a receipt has been sent. + * @property null|string $receipt_url This is the URL to view the receipt for this charge. The receipt is kept up-to-date to the latest state of the charge, including any refunds. If the charge is for an Invoice, the receipt will be stylized as an Invoice receipt. + * @property bool $refunded Whether the charge has been fully refunded. If the charge is only partially refunded, this attribute will still be false. + * @property null|\Stripe\Collection<\Stripe\Refund> $refunds A list of refunds that have been applied to the charge. + * @property null|string|\Stripe\Review $review ID of the review associated with this charge if one exists. + * @property null|\Stripe\StripeObject $shipping Shipping information for the charge. + * @property null|\Stripe\Account|\Stripe\BankAccount|\Stripe\Card|\Stripe\Source $source This is a legacy field that will be removed in the future. It contains the Source, Card, or BankAccount object used for the charge. For details about the payment method used for this charge, refer to payment_method or payment_method_details instead. + * @property null|string|\Stripe\Transfer $source_transfer The transfer ID which created this charge. Only present if the charge came from another Stripe account. See the Connect documentation for details. + * @property null|string $statement_descriptor

    For a non-card charge, text that appears on the customer's statement as the statement descriptor. This value overrides the account's default statement descriptor. For information about requirements, including the 22-character limit, see the Statement Descriptor docs.

    For a card charge, this value is ignored unless you don't specify a statement_descriptor_suffix, in which case this value is used as the suffix.

    + * @property null|string $statement_descriptor_suffix Provides information about a card charge. Concatenated to the account's statement descriptor prefix to form the complete statement descriptor that appears on the customer's statement. If the account has no prefix value, the suffix is concatenated to the account's statement descriptor. + * @property string $status The status of the payment is either succeeded, pending, or failed. + * @property null|string|\Stripe\Transfer $transfer ID of the transfer to the destination account (only applicable if the charge was created using the destination parameter). + * @property null|\Stripe\StripeObject $transfer_data An optional dictionary including the account to automatically transfer to as part of a destination charge. See the Connect documentation for details. + * @property null|string $transfer_group A string that identifies this transaction as part of a group. See the Connect documentation for details. + */ +class Charge extends ApiResource +{ + const OBJECT_NAME = 'charge'; + + use ApiOperations\NestedResource; + use ApiOperations\Update; + + const STATUS_FAILED = 'failed'; + const STATUS_PENDING = 'pending'; + const STATUS_SUCCEEDED = 'succeeded'; + + /** + * This method is no longer recommended—use the Payment Intents API to initiate a new + * payment instead. Confirmation of the PaymentIntent creates the + * Charge object used to request payment. + * + * @param null|array $params + * @param null|array|string $options + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Charge the created resource + */ + public static function create($params = null, $options = null) + { + self::_validateParams($params); + $url = static::classUrl(); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $options); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * Returns a list of charges you’ve previously created. The charges are returned in + * sorted order, with the most recent charges appearing first. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\Charge> of ApiResources + */ + public static function all($params = null, $opts = null) + { + $url = static::classUrl(); + + return static::_requestPage($url, \Stripe\Collection::class, $params, $opts); + } + + /** + * Retrieves the details of a charge that has previously been created. Supply the + * unique charge ID that was returned from your previous request, and Stripe will + * return the corresponding charge information. The same information is returned + * when creating or refunding the charge. + * + * @param array|string $id the ID of the API resource to retrieve, or an options array containing an `id` key + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Charge + */ + public static function retrieve($id, $opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + $instance = new static($id, $opts); + $instance->refresh(); + + return $instance; + } + + /** + * Updates the specified charge by setting the values of the parameters passed. Any + * parameters not provided will be left unchanged. + * + * @param string $id the ID of the resource to update + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Charge the updated resource + */ + public static function update($id, $params = null, $opts = null) + { + self::_validateParams($params); + $url = static::resourceUrl($id); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $opts); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * Possible string representations of decline codes. + * These strings are applicable to the decline_code property of the \Stripe\Exception\CardException exception. + * + * @see https://stripe.com/docs/declines/codes + */ + const DECLINED_AUTHENTICATION_REQUIRED = 'authentication_required'; + const DECLINED_APPROVE_WITH_ID = 'approve_with_id'; + const DECLINED_CALL_ISSUER = 'call_issuer'; + const DECLINED_CARD_NOT_SUPPORTED = 'card_not_supported'; + const DECLINED_CARD_VELOCITY_EXCEEDED = 'card_velocity_exceeded'; + const DECLINED_CURRENCY_NOT_SUPPORTED = 'currency_not_supported'; + const DECLINED_DO_NOT_HONOR = 'do_not_honor'; + const DECLINED_DO_NOT_TRY_AGAIN = 'do_not_try_again'; + const DECLINED_DUPLICATED_TRANSACTION = 'duplicate_transaction'; + const DECLINED_EXPIRED_CARD = 'expired_card'; + const DECLINED_FRAUDULENT = 'fraudulent'; + const DECLINED_GENERIC_DECLINE = 'generic_decline'; + const DECLINED_INCORRECT_NUMBER = 'incorrect_number'; + const DECLINED_INCORRECT_CVC = 'incorrect_cvc'; + const DECLINED_INCORRECT_PIN = 'incorrect_pin'; + const DECLINED_INCORRECT_ZIP = 'incorrect_zip'; + const DECLINED_INSUFFICIENT_FUNDS = 'insufficient_funds'; + const DECLINED_INVALID_ACCOUNT = 'invalid_account'; + const DECLINED_INVALID_AMOUNT = 'invalid_amount'; + const DECLINED_INVALID_CVC = 'invalid_cvc'; + const DECLINED_INVALID_EXPIRY_YEAR = 'invalid_expiry_year'; + const DECLINED_INVALID_NUMBER = 'invalid_number'; + const DECLINED_INVALID_PIN = 'invalid_pin'; + const DECLINED_ISSUER_NOT_AVAILABLE = 'issuer_not_available'; + const DECLINED_LOST_CARD = 'lost_card'; + const DECLINED_MERCHANT_BLACKLIST = 'merchant_blacklist'; + const DECLINED_NEW_ACCOUNT_INFORMATION_AVAILABLE = 'new_account_information_available'; + const DECLINED_NO_ACTION_TAKEN = 'no_action_taken'; + const DECLINED_NOT_PERMITTED = 'not_permitted'; + const DECLINED_OFFLINE_PIN_REQUIRED = 'offline_pin_required'; + const DECLINED_ONLINE_OR_OFFLINE_PIN_REQUIRED = 'online_or_offline_pin_required'; + const DECLINED_PICKUP_CARD = 'pickup_card'; + const DECLINED_PIN_TRY_EXCEEDED = 'pin_try_exceeded'; + const DECLINED_PROCESSING_ERROR = 'processing_error'; + const DECLINED_REENTER_TRANSACTION = 'reenter_transaction'; + const DECLINED_RESTRICTED_CARD = 'restricted_card'; + const DECLINED_REVOCATION_OF_ALL_AUTHORIZATIONS = 'revocation_of_all_authorizations'; + const DECLINED_REVOCATION_OF_AUTHORIZATION = 'revocation_of_authorization'; + const DECLINED_SECURITY_VIOLATION = 'security_violation'; + const DECLINED_SERVICE_NOT_ALLOWED = 'service_not_allowed'; + const DECLINED_STOLEN_CARD = 'stolen_card'; + const DECLINED_STOP_PAYMENT_ORDER = 'stop_payment_order'; + const DECLINED_TESTMODE_DECLINE = 'testmode_decline'; + const DECLINED_TRANSACTION_NOT_ALLOWED = 'transaction_not_allowed'; + const DECLINED_TRY_AGAIN_LATER = 'try_again_later'; + const DECLINED_WITHDRAWAL_COUNT_LIMIT_EXCEEDED = 'withdrawal_count_limit_exceeded'; + + /** + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Charge the captured charge + */ + public function capture($params = null, $opts = null) + { + $url = $this->instanceUrl() . '/capture'; + list($response, $opts) = $this->_request('post', $url, $params, $opts); + $this->refreshFrom($response, $opts); + + return $this; + } + + /** + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\SearchResult<\Stripe\Charge> the charge search results + */ + public static function search($params = null, $opts = null) + { + $url = '/v1/charges/search'; + + return static::_requestPage($url, \Stripe\SearchResult::class, $params, $opts); + } + + const PATH_REFUNDS = '/refunds'; + + /** + * @param string $id the ID of the charge on which to retrieve the refunds + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\Refund> the list of refunds + */ + public static function allRefunds($id, $params = null, $opts = null) + { + return self::_allNestedResources($id, static::PATH_REFUNDS, $params, $opts); + } + + /** + * @param string $id the ID of the charge to which the refund belongs + * @param string $refundId the ID of the refund to retrieve + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Refund + */ + public static function retrieveRefund($id, $refundId, $params = null, $opts = null) + { + return self::_retrieveNestedResource($id, static::PATH_REFUNDS, $refundId, $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Checkout/Session.php b/vendor/stripe/stripe-php/lib/Checkout/Session.php new file mode 100644 index 0000000..a1a157a --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Checkout/Session.php @@ -0,0 +1,238 @@ +Checkout + * or Payment Links. We recommend creating a + * new Session each time your customer attempts to pay. + * + * Once payment is successful, the Checkout Session will contain a reference + * to the Customer, and either the successful + * PaymentIntent or an active + * Subscription. + * + * You can create a Checkout Session on your server and redirect to its URL + * to begin Checkout. + * + * Related guide: Checkout quickstart + * + * @property string $id Unique identifier for the object. + * @property string $object String representing the object's type. Objects of the same type share the same value. + * @property null|\Stripe\StripeObject $adaptive_pricing Settings for price localization with Adaptive Pricing. + * @property null|\Stripe\StripeObject $after_expiration When set, provides configuration for actions to take if this Checkout Session expires. + * @property null|bool $allow_promotion_codes Enables user redeemable promotion codes. + * @property null|int $amount_subtotal Total of all items before discounts or taxes are applied. + * @property null|int $amount_total Total of all items after discounts and taxes are applied. + * @property \Stripe\StripeObject $automatic_tax + * @property null|string $billing_address_collection Describes whether Checkout should collect the customer's billing address. Defaults to auto. + * @property null|string $cancel_url If set, Checkout displays a back button and customers will be directed to this URL if they decide to cancel payment and return to your website. + * @property null|string $client_reference_id A unique string to reference the Checkout Session. This can be a customer ID, a cart ID, or similar, and can be used to reconcile the Session with your internal systems. + * @property null|string $client_secret Client secret to be used when initializing Stripe.js embedded checkout. + * @property null|\Stripe\StripeObject $collected_information Information about the customer collected within the Checkout Session. + * @property null|\Stripe\StripeObject $consent Results of consent_collection for this session. + * @property null|\Stripe\StripeObject $consent_collection When set, provides configuration for the Checkout Session to gather active consent from customers. + * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch. + * @property null|string $currency Three-letter ISO currency code, in lowercase. Must be a supported currency. + * @property null|\Stripe\StripeObject $currency_conversion Currency conversion details for Adaptive Pricing sessions + * @property \Stripe\StripeObject[] $custom_fields Collect additional information from your customer using custom fields. Up to 3 fields are supported. + * @property \Stripe\StripeObject $custom_text + * @property null|string|\Stripe\Customer $customer The ID of the customer for this Session. For Checkout Sessions in subscription mode or Checkout Sessions with customer_creation set as always in payment mode, Checkout will create a new customer object based on information provided during the payment flow unless an existing customer was provided when the Session was created. + * @property null|string $customer_creation Configure whether a Checkout Session creates a Customer when the Checkout Session completes. + * @property null|\Stripe\StripeObject $customer_details The customer details including the customer's tax exempt status and the customer's tax IDs. Customer's address details are not present on Sessions in setup mode. + * @property null|string $customer_email If provided, this value will be used when the Customer object is created. If not provided, customers will be asked to enter their email address. Use this parameter to prefill customer data if you already have an email on file. To access information about the customer once the payment flow is complete, use the customer attribute. + * @property null|\Stripe\StripeObject[] $discounts List of coupons and promotion codes attached to the Checkout Session. + * @property int $expires_at The timestamp at which the Checkout Session will expire. + * @property null|string|\Stripe\Invoice $invoice ID of the invoice created by the Checkout Session, if it exists. + * @property null|\Stripe\StripeObject $invoice_creation Details on the state of invoice creation for the Checkout Session. + * @property null|\Stripe\Collection<\Stripe\LineItem> $line_items The line items purchased by the customer. + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + * @property null|string $locale The IETF language tag of the locale Checkout is displayed in. If blank or auto, the browser's locale is used. + * @property null|\Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + * @property string $mode The mode of the Checkout Session. + * @property null|string|\Stripe\PaymentIntent $payment_intent The ID of the PaymentIntent for Checkout Sessions in payment mode. You can't confirm or cancel the PaymentIntent for a Checkout Session. To cancel, expire the Checkout Session instead. + * @property null|string|\Stripe\PaymentLink $payment_link The ID of the Payment Link that created this Session. + * @property null|string $payment_method_collection Configure whether a Checkout Session should collect a payment method. Defaults to always. + * @property null|\Stripe\StripeObject $payment_method_configuration_details Information about the payment method configuration used for this Checkout session if using dynamic payment methods. + * @property null|\Stripe\StripeObject $payment_method_options Payment-method-specific configuration for the PaymentIntent or SetupIntent of this CheckoutSession. + * @property string[] $payment_method_types A list of the types of payment methods (e.g. card) this Checkout Session is allowed to accept. + * @property string $payment_status The payment status of the Checkout Session, one of paid, unpaid, or no_payment_required. You can use this value to decide when to fulfill your customer's order. + * @property null|\Stripe\StripeObject $phone_number_collection + * @property null|string $recovered_from The ID of the original expired Checkout Session that triggered the recovery flow. + * @property null|string $redirect_on_completion This parameter applies to ui_mode: embedded. Learn more about the redirect behavior of embedded sessions. Defaults to always. + * @property null|string $return_url Applies to Checkout Sessions with ui_mode: embedded. The URL to redirect your customer back to after they authenticate or cancel their payment on the payment method's app or site. + * @property null|\Stripe\StripeObject $saved_payment_method_options Controls saved payment method settings for the session. Only available in payment and subscription mode. + * @property null|string|\Stripe\SetupIntent $setup_intent The ID of the SetupIntent for Checkout Sessions in setup mode. You can't confirm or cancel the SetupIntent for a Checkout Session. To cancel, expire the Checkout Session instead. + * @property null|\Stripe\StripeObject $shipping_address_collection When set, provides configuration for Checkout to collect a shipping address from a customer. + * @property null|\Stripe\StripeObject $shipping_cost The details of the customer cost of shipping, including the customer chosen ShippingRate. + * @property null|\Stripe\StripeObject $shipping_details Shipping information for this Checkout Session. + * @property \Stripe\StripeObject[] $shipping_options The shipping rate options applied to this Session. + * @property null|string $status The status of the Checkout Session, one of open, complete, or expired. + * @property null|string $submit_type Describes the type of transaction being performed by Checkout in order to customize relevant text on the page, such as the submit button. submit_type can only be specified on Checkout Sessions in payment mode. If blank or auto, pay is used. + * @property null|string|\Stripe\Subscription $subscription The ID of the subscription for Checkout Sessions in subscription mode. + * @property null|string $success_url The URL the customer will be directed to after the payment or subscription creation is successful. + * @property null|\Stripe\StripeObject $tax_id_collection + * @property null|\Stripe\StripeObject $total_details Tax and discount details for the computed total amount. + * @property null|string $ui_mode The UI mode of the Session. Defaults to hosted. + * @property null|string $url The URL to the Checkout Session. Redirect customers to this URL to take them to Checkout. If you’re using Custom Domains, the URL will use your subdomain. Otherwise, it’ll use checkout.stripe.com. This value is only present when the session is active. + */ +class Session extends \Stripe\ApiResource +{ + const OBJECT_NAME = 'checkout.session'; + + use \Stripe\ApiOperations\Update; + + const BILLING_ADDRESS_COLLECTION_AUTO = 'auto'; + const BILLING_ADDRESS_COLLECTION_REQUIRED = 'required'; + + const CUSTOMER_CREATION_ALWAYS = 'always'; + const CUSTOMER_CREATION_IF_REQUIRED = 'if_required'; + + const MODE_PAYMENT = 'payment'; + const MODE_SETUP = 'setup'; + const MODE_SUBSCRIPTION = 'subscription'; + + const PAYMENT_METHOD_COLLECTION_ALWAYS = 'always'; + const PAYMENT_METHOD_COLLECTION_IF_REQUIRED = 'if_required'; + + const PAYMENT_STATUS_NO_PAYMENT_REQUIRED = 'no_payment_required'; + const PAYMENT_STATUS_PAID = 'paid'; + const PAYMENT_STATUS_UNPAID = 'unpaid'; + + const REDIRECT_ON_COMPLETION_ALWAYS = 'always'; + const REDIRECT_ON_COMPLETION_IF_REQUIRED = 'if_required'; + const REDIRECT_ON_COMPLETION_NEVER = 'never'; + + const STATUS_COMPLETE = 'complete'; + const STATUS_EXPIRED = 'expired'; + const STATUS_OPEN = 'open'; + + const SUBMIT_TYPE_AUTO = 'auto'; + const SUBMIT_TYPE_BOOK = 'book'; + const SUBMIT_TYPE_DONATE = 'donate'; + const SUBMIT_TYPE_PAY = 'pay'; + const SUBMIT_TYPE_SUBSCRIBE = 'subscribe'; + + const UI_MODE_EMBEDDED = 'embedded'; + const UI_MODE_HOSTED = 'hosted'; + + /** + * Creates a Session object. + * + * @param null|array $params + * @param null|array|string $options + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Checkout\Session the created resource + */ + public static function create($params = null, $options = null) + { + self::_validateParams($params); + $url = static::classUrl(); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $options); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * Returns a list of Checkout Sessions. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\Checkout\Session> of ApiResources + */ + public static function all($params = null, $opts = null) + { + $url = static::classUrl(); + + return static::_requestPage($url, \Stripe\Collection::class, $params, $opts); + } + + /** + * Retrieves a Session object. + * + * @param array|string $id the ID of the API resource to retrieve, or an options array containing an `id` key + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Checkout\Session + */ + public static function retrieve($id, $opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + $instance = new static($id, $opts); + $instance->refresh(); + + return $instance; + } + + /** + * Updates a Session object. + * + * @param string $id the ID of the resource to update + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Checkout\Session the updated resource + */ + public static function update($id, $params = null, $opts = null) + { + self::_validateParams($params); + $url = static::resourceUrl($id); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $opts); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Checkout\Session the expired session + */ + public function expire($params = null, $opts = null) + { + $url = $this->instanceUrl() . '/expire'; + list($response, $opts) = $this->_request('post', $url, $params, $opts); + $this->refreshFrom($response, $opts); + + return $this; + } + + /** + * @param string $id + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\LineItem> list of line items + */ + public static function allLineItems($id, $params = null, $opts = null) + { + $url = static::resourceUrl($id) . '/line_items'; + list($response, $opts) = static::_staticRequest('get', $url, $params, $opts); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } +} diff --git a/vendor/stripe/stripe-php/lib/Climate/Order.php b/vendor/stripe/stripe-php/lib/Climate/Order.php new file mode 100644 index 0000000..5d96204 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Climate/Order.php @@ -0,0 +1,150 @@ +Frontier's service fees in the currency's smallest unit. + * @property int $amount_subtotal Total amount of the carbon removal in the currency's smallest unit. + * @property int $amount_total Total amount of the order including fees in the currency's smallest unit. + * @property null|\Stripe\StripeObject $beneficiary + * @property null|int $canceled_at Time at which the order was canceled. Measured in seconds since the Unix epoch. + * @property null|string $cancellation_reason Reason for the cancellation of this order. + * @property null|string $certificate For delivered orders, a URL to a delivery certificate for the order. + * @property null|int $confirmed_at Time at which the order was confirmed. Measured in seconds since the Unix epoch. + * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch. + * @property string $currency Three-letter ISO currency code, in lowercase, representing the currency for this order. + * @property null|int $delayed_at Time at which the order's expected_delivery_year was delayed. Measured in seconds since the Unix epoch. + * @property null|int $delivered_at Time at which the order was delivered. Measured in seconds since the Unix epoch. + * @property \Stripe\StripeObject[] $delivery_details Details about the delivery of carbon removal for this order. + * @property int $expected_delivery_year The year this order is expected to be delivered. + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + * @property \Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + * @property string $metric_tons Quantity of carbon removal that is included in this order. + * @property string|\Stripe\Climate\Product $product Unique ID for the Climate Product this order is purchasing. + * @property null|int $product_substituted_at Time at which the order's product was substituted for a different product. Measured in seconds since the Unix epoch. + * @property string $status The current status of this order. + */ +class Order extends \Stripe\ApiResource +{ + const OBJECT_NAME = 'climate.order'; + + use \Stripe\ApiOperations\Update; + + const CANCELLATION_REASON_EXPIRED = 'expired'; + const CANCELLATION_REASON_PRODUCT_UNAVAILABLE = 'product_unavailable'; + const CANCELLATION_REASON_REQUESTED = 'requested'; + + const STATUS_AWAITING_FUNDS = 'awaiting_funds'; + const STATUS_CANCELED = 'canceled'; + const STATUS_CONFIRMED = 'confirmed'; + const STATUS_DELIVERED = 'delivered'; + const STATUS_OPEN = 'open'; + + /** + * Creates a Climate order object for a given Climate product. The order will be + * processed immediately after creation and payment will be deducted your Stripe + * balance. + * + * @param null|array $params + * @param null|array|string $options + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Climate\Order the created resource + */ + public static function create($params = null, $options = null) + { + self::_validateParams($params); + $url = static::classUrl(); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $options); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * Lists all Climate order objects. The orders are returned sorted by creation + * date, with the most recently created orders appearing first. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\Climate\Order> of ApiResources + */ + public static function all($params = null, $opts = null) + { + $url = static::classUrl(); + + return static::_requestPage($url, \Stripe\Collection::class, $params, $opts); + } + + /** + * Retrieves the details of a Climate order object with the given ID. + * + * @param array|string $id the ID of the API resource to retrieve, or an options array containing an `id` key + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Climate\Order + */ + public static function retrieve($id, $opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + $instance = new static($id, $opts); + $instance->refresh(); + + return $instance; + } + + /** + * Updates the specified order by setting the values of the parameters passed. + * + * @param string $id the ID of the resource to update + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Climate\Order the updated resource + */ + public static function update($id, $params = null, $opts = null) + { + self::_validateParams($params); + $url = static::resourceUrl($id); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $opts); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Climate\Order the canceled order + */ + public function cancel($params = null, $opts = null) + { + $url = $this->instanceUrl() . '/cancel'; + list($response, $opts) = $this->_request('post', $url, $params, $opts); + $this->refreshFrom($response, $opts); + + return $this; + } +} diff --git a/vendor/stripe/stripe-php/lib/Climate/Product.php b/vendor/stripe/stripe-php/lib/Climate/Product.php new file mode 100644 index 0000000..3b7bc61 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Climate/Product.php @@ -0,0 +1,60 @@ +climsku_. See carbon removal inventory for a list of available carbon removal products. + * @property string $object String representing the object's type. Objects of the same type share the same value. + * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch. + * @property \Stripe\StripeObject $current_prices_per_metric_ton Current prices for a metric ton of carbon removal in a currency's smallest unit. + * @property null|int $delivery_year The year in which the carbon removal is expected to be delivered. + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + * @property string $metric_tons_available The quantity of metric tons available for reservation. + * @property string $name The Climate product's name. + * @property \Stripe\Climate\Supplier[] $suppliers The carbon removal suppliers that fulfill orders for this Climate product. + */ +class Product extends \Stripe\ApiResource +{ + const OBJECT_NAME = 'climate.product'; + + /** + * Lists all available Climate product objects. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\Climate\Product> of ApiResources + */ + public static function all($params = null, $opts = null) + { + $url = static::classUrl(); + + return static::_requestPage($url, \Stripe\Collection::class, $params, $opts); + } + + /** + * Retrieves the details of a Climate product with the given ID. + * + * @param array|string $id the ID of the API resource to retrieve, or an options array containing an `id` key + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Climate\Product + */ + public static function retrieve($id, $opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + $instance = new static($id, $opts); + $instance->refresh(); + + return $instance; + } +} diff --git a/vendor/stripe/stripe-php/lib/Climate/Supplier.php b/vendor/stripe/stripe-php/lib/Climate/Supplier.php new file mode 100644 index 0000000..4b298c9 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Climate/Supplier.php @@ -0,0 +1,61 @@ +true if the object exists in live mode or the value false if the object exists in test mode. + * @property \Stripe\StripeObject[] $locations The locations in which this supplier operates. + * @property string $name Name of this carbon removal supplier. + * @property string $removal_pathway The scientific pathway used for carbon removal. + */ +class Supplier extends \Stripe\ApiResource +{ + const OBJECT_NAME = 'climate.supplier'; + + const REMOVAL_PATHWAY_BIOMASS_CARBON_REMOVAL_AND_STORAGE = 'biomass_carbon_removal_and_storage'; + const REMOVAL_PATHWAY_DIRECT_AIR_CAPTURE = 'direct_air_capture'; + const REMOVAL_PATHWAY_ENHANCED_WEATHERING = 'enhanced_weathering'; + + /** + * Lists all available Climate supplier objects. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\Climate\Supplier> of ApiResources + */ + public static function all($params = null, $opts = null) + { + $url = static::classUrl(); + + return static::_requestPage($url, \Stripe\Collection::class, $params, $opts); + } + + /** + * Retrieves a Climate supplier object. + * + * @param array|string $id the ID of the API resource to retrieve, or an options array containing an `id` key + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Climate\Supplier + */ + public static function retrieve($id, $opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + $instance = new static($id, $opts); + $instance->refresh(); + + return $instance; + } +} diff --git a/vendor/stripe/stripe-php/lib/Collection.php b/vendor/stripe/stripe-php/lib/Collection.php new file mode 100644 index 0000000..bd8d7db --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Collection.php @@ -0,0 +1,321 @@ + + * + * @property string $object + * @property string $url + * @property bool $has_more + * @property TStripeObject[] $data + */ +class Collection extends StripeObject implements \Countable, \IteratorAggregate +{ + const OBJECT_NAME = 'list'; + + use ApiOperations\Request; + + /** @var array */ + protected $filters = []; + + /** + * @return string the base URL for the given class + */ + public static function baseUrl() + { + return Stripe::$apiBase; + } + + /** + * Returns the filters. + * + * @return array the filters + */ + public function getFilters() + { + return $this->filters; + } + + /** + * Sets the filters, removing paging options. + * + * @param array $filters the filters + */ + public function setFilters($filters) + { + $this->filters = $filters; + } + + /** + * @return mixed + */ + #[\ReturnTypeWillChange] + public function offsetGet($k) + { + if (\is_string($k)) { + return parent::offsetGet($k); + } + $msg = "You tried to access the {$k} index, but Collection " . + 'types only support string keys. (HINT: List calls ' . + 'return an object with a `data` (which is the data ' . + "array). You likely want to call ->data[{$k}])"; + + throw new Exception\InvalidArgumentException($msg); + } + + /** + * @param null|array $params + * @param null|array|string $opts + * + * @throws Exception\ApiErrorException + * + * @return Collection + */ + public function all($params = null, $opts = null) + { + self::_validateParams($params); + list($url, $params) = $this->extractPathAndUpdateParams($params); + + list($response, $opts) = $this->_request('get', $url, $params, $opts); + $obj = Util\Util::convertToStripeObject($response, $opts); + if (!($obj instanceof \Stripe\Collection)) { + throw new \Stripe\Exception\UnexpectedValueException( + 'Expected type ' . \Stripe\Collection::class . ', got "' . \get_class($obj) . '" instead.' + ); + } + $obj->setFilters($params); + + return $obj; + } + + /** + * @param null|array $params + * @param null|array|string $opts + * + * @throws Exception\ApiErrorException + * + * @return TStripeObject + */ + public function create($params = null, $opts = null) + { + self::_validateParams($params); + list($url, $params) = $this->extractPathAndUpdateParams($params); + + list($response, $opts) = $this->_request('post', $url, $params, $opts); + + return Util\Util::convertToStripeObject($response, $opts); + } + + /** + * @param string $id + * @param null|array $params + * @param null|array|string $opts + * + * @throws Exception\ApiErrorException + * + * @return TStripeObject + */ + public function retrieve($id, $params = null, $opts = null) + { + self::_validateParams($params); + list($url, $params) = $this->extractPathAndUpdateParams($params); + + $id = Util\Util::utf8($id); + $extn = \urlencode($id); + list($response, $opts) = $this->_request( + 'get', + "{$url}/{$extn}", + $params, + $opts + ); + + return Util\Util::convertToStripeObject($response, $opts); + } + + /** + * @return int the number of objects in the current page + */ + #[\ReturnTypeWillChange] + public function count() + { + return \count($this->data); + } + + /** + * @return \ArrayIterator an iterator that can be used to iterate + * across objects in the current page + */ + #[\ReturnTypeWillChange] + public function getIterator() + { + return new \ArrayIterator($this->data); + } + + /** + * @return \ArrayIterator an iterator that can be used to iterate + * backwards across objects in the current page + */ + public function getReverseIterator() + { + return new \ArrayIterator(\array_reverse($this->data)); + } + + /** + * @throws Exception\ApiErrorException + * + * @return \Generator|TStripeObject[] A generator that can be used to + * iterate across all objects across all pages. As page boundaries are + * encountered, the next page will be fetched automatically for + * continued iteration. + */ + public function autoPagingIterator() + { + $page = $this; + + while (true) { + $filters = $this->filters ?: []; + if (\array_key_exists('ending_before', $filters) + && !\array_key_exists('starting_after', $filters)) { + foreach ($page->getReverseIterator() as $item) { + yield $item; + } + $page = $page->previousPage(); + } else { + foreach ($page as $item) { + yield $item; + } + $page = $page->nextPage(); + } + + if ($page->isEmpty()) { + break; + } + } + } + + /** + * Returns an empty collection. This is returned from {@see nextPage()} + * when we know that there isn't a next page in order to replicate the + * behavior of the API when it attempts to return a page beyond the last. + * + * @param null|array|string $opts + * + * @return Collection + */ + public static function emptyCollection($opts = null) + { + return Collection::constructFrom(['data' => []], $opts); + } + + /** + * Returns true if the page object contains no element. + * + * @return bool + */ + public function isEmpty() + { + return empty($this->data); + } + + /** + * Fetches the next page in the resource list (if there is one). + * + * This method will try to respect the limit of the current page. If none + * was given, the default limit will be fetched again. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws Exception\ApiErrorException + * + * @return Collection + */ + public function nextPage($params = null, $opts = null) + { + if (!$this->has_more) { + return static::emptyCollection($opts); + } + + $lastId = \end($this->data)->id; + + $params = \array_merge( + $this->filters ?: [], + ['starting_after' => $lastId], + $params ?: [] + ); + + return $this->all($params, $opts); + } + + /** + * Fetches the previous page in the resource list (if there is one). + * + * This method will try to respect the limit of the current page. If none + * was given, the default limit will be fetched again. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws Exception\ApiErrorException + * + * @return Collection + */ + public function previousPage($params = null, $opts = null) + { + if (!$this->has_more) { + return static::emptyCollection($opts); + } + + $firstId = $this->data[0]->id; + + $params = \array_merge( + $this->filters ?: [], + ['ending_before' => $firstId], + $params ?: [] + ); + + return $this->all($params, $opts); + } + + /** + * Gets the first item from the current page. Returns `null` if the current page is empty. + * + * @return null|TStripeObject + */ + public function first() + { + return \count($this->data) > 0 ? $this->data[0] : null; + } + + /** + * Gets the last item from the current page. Returns `null` if the current page is empty. + * + * @return null|TStripeObject + */ + public function last() + { + return \count($this->data) > 0 ? $this->data[\count($this->data) - 1] : null; + } + + private function extractPathAndUpdateParams($params) + { + $url = \parse_url($this->url); + if (!isset($url['path'])) { + throw new Exception\UnexpectedValueException("Could not parse list url into parts: {$url}"); + } + + if (isset($url['query'])) { + // If the URL contains a query param, parse it out into $params so they + // don't interact weirdly with each other. + $query = []; + \parse_str($url['query'], $query); + $params = \array_merge($params ?: [], $query); + } + + return [$url['path'], $params]; + } +} diff --git a/vendor/stripe/stripe-php/lib/ConfirmationToken.php b/vendor/stripe/stripe-php/lib/ConfirmationToken.php new file mode 100644 index 0000000..0ef4b8a --- /dev/null +++ b/vendor/stripe/stripe-php/lib/ConfirmationToken.php @@ -0,0 +1,56 @@ +Finalize payments on the server + * - Build two-step confirmation. + * + * @property string $id Unique identifier for the object. + * @property string $object String representing the object's type. Objects of the same type share the same value. + * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch. + * @property null|int $expires_at Time at which this ConfirmationToken expires and can no longer be used to confirm a PaymentIntent or SetupIntent. + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + * @property null|\Stripe\StripeObject $mandate_data Data used for generating a Mandate. + * @property null|string $payment_intent ID of the PaymentIntent that this ConfirmationToken was used to confirm, or null if this ConfirmationToken has not yet been used. + * @property null|\Stripe\StripeObject $payment_method_options Payment-method-specific configuration for this ConfirmationToken. + * @property null|\Stripe\StripeObject $payment_method_preview Payment details collected by the Payment Element, used to create a PaymentMethod when a PaymentIntent or SetupIntent is confirmed with this ConfirmationToken. + * @property null|string $return_url Return URL used to confirm the Intent. + * @property null|string $setup_future_usage

    Indicates that you intend to make future payments with this ConfirmationToken's payment method.

    The presence of this property will attach the payment method to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete.

    + * @property null|string $setup_intent ID of the SetupIntent that this ConfirmationToken was used to confirm, or null if this ConfirmationToken has not yet been used. + * @property null|\Stripe\StripeObject $shipping Shipping information collected on this ConfirmationToken. + * @property bool $use_stripe_sdk Indicates whether the Stripe SDK is used to handle confirmation flow. Defaults to true on ConfirmationToken. + */ +class ConfirmationToken extends ApiResource +{ + const OBJECT_NAME = 'confirmation_token'; + + const SETUP_FUTURE_USAGE_OFF_SESSION = 'off_session'; + const SETUP_FUTURE_USAGE_ON_SESSION = 'on_session'; + + /** + * Retrieves an existing ConfirmationToken object. + * + * @param array|string $id the ID of the API resource to retrieve, or an options array containing an `id` key + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\ConfirmationToken + */ + public static function retrieve($id, $opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + $instance = new static($id, $opts); + $instance->refresh(); + + return $instance; + } +} diff --git a/vendor/stripe/stripe-php/lib/ConnectCollectionTransfer.php b/vendor/stripe/stripe-php/lib/ConnectCollectionTransfer.php new file mode 100644 index 0000000..69f961d --- /dev/null +++ b/vendor/stripe/stripe-php/lib/ConnectCollectionTransfer.php @@ -0,0 +1,18 @@ +ISO currency code, in lowercase. Must be a supported currency. + * @property string|\Stripe\Account $destination ID of the account that funds are being collected for. + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + */ +class ConnectCollectionTransfer extends ApiResource +{ + const OBJECT_NAME = 'connect_collection_transfer'; +} diff --git a/vendor/stripe/stripe-php/lib/CountrySpec.php b/vendor/stripe/stripe-php/lib/CountrySpec.php new file mode 100644 index 0000000..aa601a7 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/CountrySpec.php @@ -0,0 +1,63 @@ +an online + * guide. + * + * @property string $id Unique identifier for the object. Represented as the ISO country code for this country. + * @property string $object String representing the object's type. Objects of the same type share the same value. + * @property string $default_currency The default currency for this country. This applies to both payment methods and bank accounts. + * @property \Stripe\StripeObject $supported_bank_account_currencies Currencies that can be accepted in the specific country (for transfers). + * @property string[] $supported_payment_currencies Currencies that can be accepted in the specified country (for payments). + * @property string[] $supported_payment_methods Payment methods available in the specified country. You may need to enable some payment methods (e.g., ACH) on your account before they appear in this list. The stripe payment method refers to charging through your platform. + * @property string[] $supported_transfer_countries Countries that can accept transfers from the specified country. + * @property \Stripe\StripeObject $verification_fields + */ +class CountrySpec extends ApiResource +{ + const OBJECT_NAME = 'country_spec'; + + /** + * Lists all Country Spec objects available in the API. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\CountrySpec> of ApiResources + */ + public static function all($params = null, $opts = null) + { + $url = static::classUrl(); + + return static::_requestPage($url, \Stripe\Collection::class, $params, $opts); + } + + /** + * Returns a Country Spec for a given Country code. + * + * @param array|string $id the ID of the API resource to retrieve, or an options array containing an `id` key + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\CountrySpec + */ + public static function retrieve($id, $opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + $instance = new static($id, $opts); + $instance->refresh(); + + return $instance; + } +} diff --git a/vendor/stripe/stripe-php/lib/Coupon.php b/vendor/stripe/stripe-php/lib/Coupon.php new file mode 100644 index 0000000..cf11091 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Coupon.php @@ -0,0 +1,159 @@ +subscriptions, invoices, + * checkout sessions, quotes, and more. Coupons do not work with conventional one-off charges or payment intents. + * + * @property string $id Unique identifier for the object. + * @property string $object String representing the object's type. Objects of the same type share the same value. + * @property null|int $amount_off Amount (in the currency specified) that will be taken off the subtotal of any invoices for this customer. + * @property null|\Stripe\StripeObject $applies_to + * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch. + * @property null|string $currency If amount_off has been set, the three-letter ISO code for the currency of the amount to take off. + * @property null|\Stripe\StripeObject $currency_options Coupons defined in each available currency option. Each key must be a three-letter ISO currency code and a supported currency. + * @property string $duration One of forever, once, and repeating. Describes how long a customer who applies this coupon will get the discount. + * @property null|int $duration_in_months If duration is repeating, the number of months the coupon applies. Null if coupon duration is forever or once. + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + * @property null|int $max_redemptions Maximum number of times this coupon can be redeemed, in total, across all customers, before it is no longer valid. + * @property null|\Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + * @property null|string $name Name of the coupon displayed to customers on for instance invoices or receipts. + * @property null|float $percent_off Percent that will be taken off the subtotal of any invoices for this customer for the duration of the coupon. For example, a coupon with percent_off of 50 will make a $ (or local equivalent)100 invoice $ (or local equivalent)50 instead. + * @property null|int $redeem_by Date after which the coupon can no longer be redeemed. + * @property int $times_redeemed Number of times this coupon has been applied to a customer. + * @property bool $valid Taking account of the above properties, whether this coupon can still be applied to a customer. + */ +class Coupon extends ApiResource +{ + const OBJECT_NAME = 'coupon'; + + use ApiOperations\Update; + + const DURATION_FOREVER = 'forever'; + const DURATION_ONCE = 'once'; + const DURATION_REPEATING = 'repeating'; + + /** + * You can create coupons easily via the coupon management page of the + * Stripe dashboard. Coupon creation is also accessible via the API if you need to + * create coupons on the fly. + * + * A coupon has either a percent_off or an amount_off and + * currency. If you set an amount_off, that amount will + * be subtracted from any invoice’s subtotal. For example, an invoice with a + * subtotal of 100 will have a final total of + * 0 if a coupon with an amount_off of + * 200 is applied to it and an invoice with a subtotal of + * 300 will have a final total of 100 if + * a coupon with an amount_off of 200 is applied to + * it. + * + * @param null|array $params + * @param null|array|string $options + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Coupon the created resource + */ + public static function create($params = null, $options = null) + { + self::_validateParams($params); + $url = static::classUrl(); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $options); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * You can delete coupons via the coupon management page of the + * Stripe dashboard. However, deleting a coupon does not affect any customers who + * have already applied the coupon; it means that new customers can’t redeem the + * coupon. You can also delete coupons via the API. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Coupon the deleted resource + */ + public function delete($params = null, $opts = null) + { + self::_validateParams($params); + + $url = $this->instanceUrl(); + list($response, $opts) = $this->_request('delete', $url, $params, $opts); + $this->refreshFrom($response, $opts); + + return $this; + } + + /** + * Returns a list of your coupons. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\Coupon> of ApiResources + */ + public static function all($params = null, $opts = null) + { + $url = static::classUrl(); + + return static::_requestPage($url, \Stripe\Collection::class, $params, $opts); + } + + /** + * Retrieves the coupon with the given ID. + * + * @param array|string $id the ID of the API resource to retrieve, or an options array containing an `id` key + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Coupon + */ + public static function retrieve($id, $opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + $instance = new static($id, $opts); + $instance->refresh(); + + return $instance; + } + + /** + * Updates the metadata of a coupon. Other coupon details (currency, duration, + * amount_off) are, by design, not editable. + * + * @param string $id the ID of the resource to update + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Coupon the updated resource + */ + public static function update($id, $params = null, $opts = null) + { + self::_validateParams($params); + $url = static::resourceUrl($id); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $opts); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } +} diff --git a/vendor/stripe/stripe-php/lib/CreditNote.php b/vendor/stripe/stripe-php/lib/CreditNote.php new file mode 100644 index 0000000..a260e82 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/CreditNote.php @@ -0,0 +1,230 @@ +Credit notes + * + * @property string $id Unique identifier for the object. + * @property string $object String representing the object's type. Objects of the same type share the same value. + * @property int $amount The integer amount in cents (or local equivalent) representing the total amount of the credit note, including tax. + * @property int $amount_shipping This is the sum of all the shipping amounts. + * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch. + * @property string $currency Three-letter ISO currency code, in lowercase. Must be a supported currency. + * @property string|\Stripe\Customer $customer ID of the customer. + * @property null|string|\Stripe\CustomerBalanceTransaction $customer_balance_transaction Customer balance transaction related to this credit note. + * @property int $discount_amount The integer amount in cents (or local equivalent) representing the total amount of discount that was credited. + * @property \Stripe\StripeObject[] $discount_amounts The aggregate amounts calculated per discount for all line items. + * @property null|int $effective_at The date when this credit note is in effect. Same as created unless overwritten. When defined, this value replaces the system-generated 'Date of issue' printed on the credit note PDF. + * @property string|\Stripe\Invoice $invoice ID of the invoice. + * @property \Stripe\Collection<\Stripe\CreditNoteLineItem> $lines Line items that make up the credit note + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + * @property null|string $memo Customer-facing text that appears on the credit note PDF. + * @property null|\Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + * @property string $number A unique number that identifies this particular credit note and appears on the PDF of the credit note and its associated invoice. + * @property null|int $out_of_band_amount Amount that was credited outside of Stripe. + * @property string $pdf The link to download the PDF of the credit note. + * @property \Stripe\StripeObject[] $pretax_credit_amounts The pretax credit amounts (ex: discount, credit grants, etc) for all line items. + * @property null|string $reason Reason for issuing this credit note, one of duplicate, fraudulent, order_change, or product_unsatisfactory + * @property null|string|\Stripe\Refund $refund Refund related to this credit note. + * @property null|\Stripe\StripeObject $shipping_cost The details of the cost of shipping, including the ShippingRate applied to the invoice. + * @property string $status Status of this credit note, one of issued or void. Learn more about voiding credit notes. + * @property int $subtotal The integer amount in cents (or local equivalent) representing the amount of the credit note, excluding exclusive tax and invoice level discounts. + * @property null|int $subtotal_excluding_tax The integer amount in cents (or local equivalent) representing the amount of the credit note, excluding all tax and invoice level discounts. + * @property \Stripe\StripeObject[] $tax_amounts The aggregate amounts calculated per tax rate for all line items. + * @property int $total The integer amount in cents (or local equivalent) representing the total amount of the credit note, including tax and all discount. + * @property null|int $total_excluding_tax The integer amount in cents (or local equivalent) representing the total amount of the credit note, excluding tax, but including discounts. + * @property string $type Type of this credit note, one of pre_payment or post_payment. A pre_payment credit note means it was issued when the invoice was open. A post_payment credit note means it was issued when the invoice was paid. + * @property null|int $voided_at The time that the credit note was voided. + */ +class CreditNote extends ApiResource +{ + const OBJECT_NAME = 'credit_note'; + + use ApiOperations\NestedResource; + use ApiOperations\Update; + + const REASON_DUPLICATE = 'duplicate'; + const REASON_FRAUDULENT = 'fraudulent'; + const REASON_ORDER_CHANGE = 'order_change'; + const REASON_PRODUCT_UNSATISFACTORY = 'product_unsatisfactory'; + + const STATUS_ISSUED = 'issued'; + const STATUS_VOID = 'void'; + + const TYPE_POST_PAYMENT = 'post_payment'; + const TYPE_PRE_PAYMENT = 'pre_payment'; + + /** + * Issue a credit note to adjust the amount of a finalized invoice. For a + * status=open invoice, a credit note reduces its + * amount_due. For a status=paid invoice, a credit note + * does not affect its amount_due. Instead, it can result in any + * combination of the following:. + * + *
    • Refund: create a new refund (using refund_amount) or link + * an existing refund (using refund).
    • Customer balance + * credit: credit the customer’s balance (using credit_amount) which + * will be automatically applied to their next invoice when it’s finalized.
    • + *
    • Outside of Stripe credit: record the amount that is or will be credited + * outside of Stripe (using out_of_band_amount).
    + * + * For post-payment credit notes the sum of the refund, credit and outside of + * Stripe amounts must equal the credit note total. + * + * You may issue multiple credit notes for an invoice. Each credit note will + * increment the invoice’s pre_payment_credit_notes_amount or + * post_payment_credit_notes_amount depending on its + * status at the time of credit note creation. + * + * @param null|array $params + * @param null|array|string $options + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\CreditNote the created resource + */ + public static function create($params = null, $options = null) + { + self::_validateParams($params); + $url = static::classUrl(); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $options); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * Returns a list of credit notes. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\CreditNote> of ApiResources + */ + public static function all($params = null, $opts = null) + { + $url = static::classUrl(); + + return static::_requestPage($url, \Stripe\Collection::class, $params, $opts); + } + + /** + * Retrieves the credit note object with the given identifier. + * + * @param array|string $id the ID of the API resource to retrieve, or an options array containing an `id` key + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\CreditNote + */ + public static function retrieve($id, $opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + $instance = new static($id, $opts); + $instance->refresh(); + + return $instance; + } + + /** + * Updates an existing credit note. + * + * @param string $id the ID of the resource to update + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\CreditNote the updated resource + */ + public static function update($id, $params = null, $opts = null) + { + self::_validateParams($params); + $url = static::resourceUrl($id); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $opts); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\CreditNote the previewed credit note + */ + public static function preview($params = null, $opts = null) + { + $url = static::classUrl() . '/preview'; + list($response, $opts) = static::_staticRequest('get', $url, $params, $opts); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\CreditNoteLineItem> list of credit note line items + */ + public static function previewLines($params = null, $opts = null) + { + $url = static::classUrl() . '/preview/lines'; + list($response, $opts) = static::_staticRequest('get', $url, $params, $opts); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\CreditNote the voided credit note + */ + public function voidCreditNote($params = null, $opts = null) + { + $url = $this->instanceUrl() . '/void'; + list($response, $opts) = $this->_request('post', $url, $params, $opts); + $this->refreshFrom($response, $opts); + + return $this; + } + + const PATH_LINES = '/lines'; + + /** + * @param string $id the ID of the credit note on which to retrieve the credit note line items + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\CreditNoteLineItem> the list of credit note line items + */ + public static function allLines($id, $params = null, $opts = null) + { + return self::_allNestedResources($id, static::PATH_LINES, $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/CreditNoteLineItem.php b/vendor/stripe/stripe-php/lib/CreditNoteLineItem.php new file mode 100644 index 0000000..30d4d3d --- /dev/null +++ b/vendor/stripe/stripe-php/lib/CreditNoteLineItem.php @@ -0,0 +1,31 @@ +true if the object exists in live mode or the value false if the object exists in test mode. + * @property \Stripe\StripeObject[] $pretax_credit_amounts The pretax credit amounts (ex: discount, credit grants, etc) for this line item. + * @property null|int $quantity The number of units of product being credited. + * @property \Stripe\StripeObject[] $tax_amounts The amount of tax calculated per tax rate for this line item + * @property \Stripe\TaxRate[] $tax_rates The tax rates which apply to the line item. + * @property string $type The type of the credit note line item, one of invoice_line_item or custom_line_item. When the type is invoice_line_item there is an additional invoice_line_item property on the resource the value of which is the id of the credited line item on the invoice. + * @property null|int $unit_amount The cost of each unit of product being credited. + * @property null|string $unit_amount_decimal Same as unit_amount, but contains a decimal value with at most 12 decimal places. + * @property null|string $unit_amount_excluding_tax The amount in cents (or local equivalent) representing the unit amount being credited for this line item, excluding all tax and discounts. + */ +class CreditNoteLineItem extends ApiResource +{ + const OBJECT_NAME = 'credit_note_line_item'; +} diff --git a/vendor/stripe/stripe-php/lib/Customer.php b/vendor/stripe/stripe-php/lib/Customer.php new file mode 100644 index 0000000..1c7d246 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Customer.php @@ -0,0 +1,500 @@ +create recurring charges, save payment and contact information, + * and track payments that belong to the same customer. + * + * @property string $id Unique identifier for the object. + * @property string $object String representing the object's type. Objects of the same type share the same value. + * @property null|\Stripe\StripeObject $address The customer's address. + * @property null|int $balance The current balance, if any, that's stored on the customer. If negative, the customer has credit to apply to their next invoice. If positive, the customer has an amount owed that's added to their next invoice. The balance only considers amounts that Stripe hasn't successfully applied to any invoice. It doesn't reflect unpaid invoices. This balance is only taken into account after invoices finalize. + * @property null|\Stripe\CashBalance $cash_balance The current funds being held by Stripe on behalf of the customer. You can apply these funds towards payment intents when the source is "cash_balance". The settings[reconciliation_mode] field describes if these funds apply to these payment intents manually or automatically. + * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch. + * @property null|string $currency Three-letter ISO code for the currency the customer can be charged in for recurring billing purposes. + * @property null|string|\Stripe\Account|\Stripe\BankAccount|\Stripe\Card|\Stripe\Source $default_source

    ID of the default payment source for the customer.

    If you use payment methods created through the PaymentMethods API, see the invoice_settings.default_payment_method field instead.

    + * @property null|bool $delinquent

    Tracks the most recent state change on any invoice belonging to the customer. Paying an invoice or marking it uncollectible via the API will set this field to false. An automatic payment failure or passing the invoice.due_date will set this field to true.

    If an invoice becomes uncollectible by dunning, delinquent doesn't reset to false.

    If you care whether the customer has paid their most recent subscription invoice, use subscription.status instead. Paying or marking uncollectible any customer invoice regardless of whether it is the latest invoice for a subscription will always set this field to false.

    + * @property null|string $description An arbitrary string attached to the object. Often useful for displaying to users. + * @property null|\Stripe\Discount $discount Describes the current discount active on the customer, if there is one. + * @property null|string $email The customer's email address. + * @property null|\Stripe\StripeObject $invoice_credit_balance The current multi-currency balances, if any, that's stored on the customer. If positive in a currency, the customer has a credit to apply to their next invoice denominated in that currency. If negative, the customer has an amount owed that's added to their next invoice denominated in that currency. These balances don't apply to unpaid invoices. They solely track amounts that Stripe hasn't successfully applied to any invoice. Stripe only applies a balance in a specific currency to an invoice after that invoice (which is in the same currency) finalizes. + * @property null|string $invoice_prefix The prefix for the customer used to generate unique invoice numbers. + * @property null|\Stripe\StripeObject $invoice_settings + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + * @property null|\Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + * @property null|string $name The customer's full name or business name. + * @property null|int $next_invoice_sequence The suffix of the customer's next invoice number (for example, 0001). When the account uses account level sequencing, this parameter is ignored in API requests and the field omitted in API responses. + * @property null|string $phone The customer's phone number. + * @property null|string[] $preferred_locales The customer's preferred locales (languages), ordered by preference. + * @property null|\Stripe\StripeObject $shipping Mailing and shipping address for the customer. Appears on invoices emailed to this customer. + * @property null|\Stripe\Collection<\Stripe\Account|\Stripe\BankAccount|\Stripe\Card|\Stripe\Source> $sources The customer's payment sources, if any. + * @property null|\Stripe\Collection<\Stripe\Subscription> $subscriptions The customer's current subscriptions, if any. + * @property null|\Stripe\StripeObject $tax + * @property null|string $tax_exempt Describes the customer's tax exemption status, which is none, exempt, or reverse. When set to reverse, invoice and receipt PDFs include the following text: "Reverse charge". + * @property null|\Stripe\Collection<\Stripe\TaxId> $tax_ids The customer's tax IDs. + * @property null|string|\Stripe\TestHelpers\TestClock $test_clock ID of the test clock that this customer belongs to. + */ +class Customer extends ApiResource +{ + const OBJECT_NAME = 'customer'; + + use ApiOperations\NestedResource; + use ApiOperations\Update; + + const TAX_EXEMPT_EXEMPT = 'exempt'; + const TAX_EXEMPT_NONE = 'none'; + const TAX_EXEMPT_REVERSE = 'reverse'; + + /** + * Creates a new customer object. + * + * @param null|array $params + * @param null|array|string $options + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Customer the created resource + */ + public static function create($params = null, $options = null) + { + self::_validateParams($params); + $url = static::classUrl(); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $options); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * Permanently deletes a customer. It cannot be undone. Also immediately cancels + * any active subscriptions on the customer. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Customer the deleted resource + */ + public function delete($params = null, $opts = null) + { + self::_validateParams($params); + + $url = $this->instanceUrl(); + list($response, $opts) = $this->_request('delete', $url, $params, $opts); + $this->refreshFrom($response, $opts); + + return $this; + } + + /** + * Returns a list of your customers. The customers are returned sorted by creation + * date, with the most recent customers appearing first. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\Customer> of ApiResources + */ + public static function all($params = null, $opts = null) + { + $url = static::classUrl(); + + return static::_requestPage($url, \Stripe\Collection::class, $params, $opts); + } + + /** + * Retrieves a Customer object. + * + * @param array|string $id the ID of the API resource to retrieve, or an options array containing an `id` key + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Customer + */ + public static function retrieve($id, $opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + $instance = new static($id, $opts); + $instance->refresh(); + + return $instance; + } + + /** + * Updates the specified customer by setting the values of the parameters passed. + * Any parameters not provided will be left unchanged. For example, if you pass the + * source parameter, that becomes the customer’s active source + * (e.g., a card) to be used for all charges in the future. When you update a + * customer to a new valid card source by passing the source + * parameter: for each of the customer’s current subscriptions, if the subscription + * bills automatically and is in the past_due state, then the latest + * open invoice for the subscription with automatic collection enabled will be + * retried. This retry will not count as an automatic retry, and will not affect + * the next regularly scheduled payment for the invoice. Changing the + * default_source for a customer will not trigger this behavior. + * + * This request accepts mostly the same arguments as the customer creation call. + * + * @param string $id the ID of the resource to update + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Customer the updated resource + */ + public static function update($id, $params = null, $opts = null) + { + self::_validateParams($params); + $url = static::resourceUrl($id); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $opts); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + public static function getSavedNestedResources() + { + static $savedNestedResources = null; + if (null === $savedNestedResources) { + $savedNestedResources = new Util\Set([ + 'source', + ]); + } + + return $savedNestedResources; + } + + /** + * @param null|array $params + * @param null|array|string $opts + * + * @return \Stripe\Customer the updated customer + */ + public function deleteDiscount($params = null, $opts = null) + { + $url = $this->instanceUrl() . '/discount'; + list($response, $opts) = $this->_request('delete', $url, $params, $opts); + $this->refreshFrom(['discount' => null], $opts, true); + + return $this; + } + + /** + * @param string $id + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\PaymentMethod> list of payment methods + */ + public static function allPaymentMethods($id, $params = null, $opts = null) + { + $url = static::resourceUrl($id) . '/payment_methods'; + list($response, $opts) = static::_staticRequest('get', $url, $params, $opts); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * @param string $payment_method + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\PaymentMethod the retrieved payment method + */ + public function retrievePaymentMethod($payment_method, $params = null, $opts = null) + { + $url = $this->instanceUrl() . '/payment_methods/' . $payment_method; + list($response, $opts) = $this->_request('get', $url, $params, $opts); + $obj = \Stripe\Util\Util::convertToStripeObject($response, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\SearchResult<\Stripe\Customer> the customer search results + */ + public static function search($params = null, $opts = null) + { + $url = '/v1/customers/search'; + + return static::_requestPage($url, \Stripe\SearchResult::class, $params, $opts); + } + + const PATH_BALANCE_TRANSACTIONS = '/balance_transactions'; + + /** + * @param string $id the ID of the customer on which to retrieve the customer balance transactions + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\CustomerBalanceTransaction> the list of customer balance transactions + */ + public static function allBalanceTransactions($id, $params = null, $opts = null) + { + return self::_allNestedResources($id, static::PATH_BALANCE_TRANSACTIONS, $params, $opts); + } + + /** + * @param string $id the ID of the customer on which to create the customer balance transaction + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\CustomerBalanceTransaction + */ + public static function createBalanceTransaction($id, $params = null, $opts = null) + { + return self::_createNestedResource($id, static::PATH_BALANCE_TRANSACTIONS, $params, $opts); + } + + /** + * @param string $id the ID of the customer to which the customer balance transaction belongs + * @param string $balanceTransactionId the ID of the customer balance transaction to retrieve + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\CustomerBalanceTransaction + */ + public static function retrieveBalanceTransaction($id, $balanceTransactionId, $params = null, $opts = null) + { + return self::_retrieveNestedResource($id, static::PATH_BALANCE_TRANSACTIONS, $balanceTransactionId, $params, $opts); + } + + /** + * @param string $id the ID of the customer to which the customer balance transaction belongs + * @param string $balanceTransactionId the ID of the customer balance transaction to update + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\CustomerBalanceTransaction + */ + public static function updateBalanceTransaction($id, $balanceTransactionId, $params = null, $opts = null) + { + return self::_updateNestedResource($id, static::PATH_BALANCE_TRANSACTIONS, $balanceTransactionId, $params, $opts); + } + const PATH_CASH_BALANCE_TRANSACTIONS = '/cash_balance_transactions'; + + /** + * @param string $id the ID of the customer on which to retrieve the customer cash balance transactions + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\CustomerCashBalanceTransaction> the list of customer cash balance transactions + */ + public static function allCashBalanceTransactions($id, $params = null, $opts = null) + { + return self::_allNestedResources($id, static::PATH_CASH_BALANCE_TRANSACTIONS, $params, $opts); + } + + /** + * @param string $id the ID of the customer to which the customer cash balance transaction belongs + * @param string $cashBalanceTransactionId the ID of the customer cash balance transaction to retrieve + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\CustomerCashBalanceTransaction + */ + public static function retrieveCashBalanceTransaction($id, $cashBalanceTransactionId, $params = null, $opts = null) + { + return self::_retrieveNestedResource($id, static::PATH_CASH_BALANCE_TRANSACTIONS, $cashBalanceTransactionId, $params, $opts); + } + const PATH_SOURCES = '/sources'; + + /** + * @param string $id the ID of the customer on which to retrieve the payment sources + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\BankAccount|\Stripe\Card|\Stripe\Source> the list of payment sources (BankAccount, Card or Source) + */ + public static function allSources($id, $params = null, $opts = null) + { + return self::_allNestedResources($id, static::PATH_SOURCES, $params, $opts); + } + + /** + * @param string $id the ID of the customer on which to create the payment source + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\BankAccount|\Stripe\Card|\Stripe\Source + */ + public static function createSource($id, $params = null, $opts = null) + { + return self::_createNestedResource($id, static::PATH_SOURCES, $params, $opts); + } + + /** + * @param string $id the ID of the customer to which the payment source belongs + * @param string $sourceId the ID of the payment source to delete + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\BankAccount|\Stripe\Card|\Stripe\Source + */ + public static function deleteSource($id, $sourceId, $params = null, $opts = null) + { + return self::_deleteNestedResource($id, static::PATH_SOURCES, $sourceId, $params, $opts); + } + + /** + * @param string $id the ID of the customer to which the payment source belongs + * @param string $sourceId the ID of the payment source to retrieve + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\BankAccount|\Stripe\Card|\Stripe\Source + */ + public static function retrieveSource($id, $sourceId, $params = null, $opts = null) + { + return self::_retrieveNestedResource($id, static::PATH_SOURCES, $sourceId, $params, $opts); + } + + /** + * @param string $id the ID of the customer to which the payment source belongs + * @param string $sourceId the ID of the payment source to update + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\BankAccount|\Stripe\Card|\Stripe\Source + */ + public static function updateSource($id, $sourceId, $params = null, $opts = null) + { + return self::_updateNestedResource($id, static::PATH_SOURCES, $sourceId, $params, $opts); + } + const PATH_CASH_BALANCE = '/cash_balance'; + + /** + * @param string $id the ID of the customer to which the cash balance belongs + * @param null|array $params + * @param null|array|string $opts + * @param mixed $cashBalanceId + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\CashBalance + */ + public static function retrieveCashBalance($id, $cashBalanceId, $params = null, $opts = null) + { + return self::_retrieveNestedResource($id, static::PATH_CASH_BALANCE, $params, $opts); + } + + /** + * @param string $id the ID of the customer to which the cash balance belongs + * @param null|array $params + * @param null|array|string $opts + * @param mixed $cashBalanceId + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\CashBalance + */ + public static function updateCashBalance($id, $cashBalanceId, $params = null, $opts = null) + { + return self::_updateNestedResource($id, static::PATH_CASH_BALANCE, $params, $opts); + } + const PATH_TAX_IDS = '/tax_ids'; + + /** + * @param string $id the ID of the customer on which to retrieve the tax ids + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\TaxId> the list of tax ids + */ + public static function allTaxIds($id, $params = null, $opts = null) + { + return self::_allNestedResources($id, static::PATH_TAX_IDS, $params, $opts); + } + + /** + * @param string $id the ID of the customer on which to create the tax id + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\TaxId + */ + public static function createTaxId($id, $params = null, $opts = null) + { + return self::_createNestedResource($id, static::PATH_TAX_IDS, $params, $opts); + } + + /** + * @param string $id the ID of the customer to which the tax id belongs + * @param string $taxIdId the ID of the tax id to delete + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\TaxId + */ + public static function deleteTaxId($id, $taxIdId, $params = null, $opts = null) + { + return self::_deleteNestedResource($id, static::PATH_TAX_IDS, $taxIdId, $params, $opts); + } + + /** + * @param string $id the ID of the customer to which the tax id belongs + * @param string $taxIdId the ID of the tax id to retrieve + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\TaxId + */ + public static function retrieveTaxId($id, $taxIdId, $params = null, $opts = null) + { + return self::_retrieveNestedResource($id, static::PATH_TAX_IDS, $taxIdId, $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/CustomerBalanceTransaction.php b/vendor/stripe/stripe-php/lib/CustomerBalanceTransaction.php new file mode 100644 index 0000000..37473d9 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/CustomerBalanceTransaction.php @@ -0,0 +1,99 @@ +Balance value, + * which denotes a debit or credit that's automatically applied to their next invoice upon finalization. + * You may modify the value directly by using the update customer API, + * or by creating a Customer Balance Transaction, which increments or decrements the customer's balance by the specified amount. + * + * Related guide: Customer balance + * + * @property string $id Unique identifier for the object. + * @property string $object String representing the object's type. Objects of the same type share the same value. + * @property int $amount The amount of the transaction. A negative value is a credit for the customer's balance, and a positive value is a debit to the customer's balance. + * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch. + * @property null|string|\Stripe\CreditNote $credit_note The ID of the credit note (if any) related to the transaction. + * @property string $currency Three-letter ISO currency code, in lowercase. Must be a supported currency. + * @property string|\Stripe\Customer $customer The ID of the customer the transaction belongs to. + * @property null|string $description An arbitrary string attached to the object. Often useful for displaying to users. + * @property int $ending_balance The customer's balance after the transaction was applied. A negative value decreases the amount due on the customer's next invoice. A positive value increases the amount due on the customer's next invoice. + * @property null|string|\Stripe\Invoice $invoice The ID of the invoice (if any) related to the transaction. + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + * @property null|\Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + * @property string $type Transaction type: adjustment, applied_to_invoice, credit_note, initial, invoice_overpaid, invoice_too_large, invoice_too_small, unspent_receiver_credit, or unapplied_from_invoice. See the Customer Balance page to learn more about transaction types. + */ +class CustomerBalanceTransaction extends ApiResource +{ + const OBJECT_NAME = 'customer_balance_transaction'; + + const TYPE_ADJUSTMENT = 'adjustment'; + const TYPE_APPLIED_TO_INVOICE = 'applied_to_invoice'; + const TYPE_CREDIT_NOTE = 'credit_note'; + const TYPE_INITIAL = 'initial'; + const TYPE_INVOICE_OVERPAID = 'invoice_overpaid'; + const TYPE_INVOICE_TOO_LARGE = 'invoice_too_large'; + const TYPE_INVOICE_TOO_SMALL = 'invoice_too_small'; + const TYPE_UNSPENT_RECEIVER_CREDIT = 'unspent_receiver_credit'; + + const TYPE_ADJUSTEMENT = 'adjustment'; + + /** + * @return string the API URL for this balance transaction + */ + public function instanceUrl() + { + $id = $this['id']; + $customer = $this['customer']; + if (!$id) { + throw new Exception\UnexpectedValueException( + "Could not determine which URL to request: class instance has invalid ID: {$id}", + null + ); + } + $id = Util\Util::utf8($id); + $customer = Util\Util::utf8($customer); + + $base = Customer::classUrl(); + $customerExtn = \urlencode($customer); + $extn = \urlencode($id); + + return "{$base}/{$customerExtn}/balance_transactions/{$extn}"; + } + + /** + * @param array|string $_id + * @param null|array|string $_opts + * + * @throws \Stripe\Exception\BadMethodCallException + */ + public static function retrieve($_id, $_opts = null) + { + $msg = 'Customer Balance Transactions cannot be retrieved without a ' . + 'customer ID. Retrieve a Customer Balance Transaction using ' . + "`Customer::retrieveBalanceTransaction('customer_id', " . + "'balance_transaction_id')`."; + + throw new Exception\BadMethodCallException($msg); + } + + /** + * @param string $_id + * @param null|array $_params + * @param null|array|string $_options + * + * @throws \Stripe\Exception\BadMethodCallException + */ + public static function update($_id, $_params = null, $_options = null) + { + $msg = 'Customer Balance Transactions cannot be updated without a ' . + 'customer ID. Update a Customer Balance Transaction using ' . + "`Customer::updateBalanceTransaction('customer_id', " . + "'balance_transaction_id', \$updateParams)`."; + + throw new Exception\BadMethodCallException($msg); + } +} diff --git a/vendor/stripe/stripe-php/lib/CustomerCashBalanceTransaction.php b/vendor/stripe/stripe-php/lib/CustomerCashBalanceTransaction.php new file mode 100644 index 0000000..aa8819e --- /dev/null +++ b/vendor/stripe/stripe-php/lib/CustomerCashBalanceTransaction.php @@ -0,0 +1,42 @@ +ISO currency code, in lowercase. Must be a supported currency. + * @property string|\Stripe\Customer $customer The customer whose available cash balance changed as a result of this transaction. + * @property int $ending_balance The total available cash balance for the specified currency after this transaction was applied. Represented in the smallest currency unit. + * @property null|\Stripe\StripeObject $funded + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + * @property int $net_amount The amount by which the cash balance changed, represented in the smallest currency unit. A positive value represents funds being added to the cash balance, a negative value represents funds being removed from the cash balance. + * @property null|\Stripe\StripeObject $refunded_from_payment + * @property null|\Stripe\StripeObject $transferred_to_balance + * @property string $type The type of the cash balance transaction. New types may be added in future. See Customer Balance to learn more about these types. + * @property null|\Stripe\StripeObject $unapplied_from_payment + */ +class CustomerCashBalanceTransaction extends ApiResource +{ + const OBJECT_NAME = 'customer_cash_balance_transaction'; + + const TYPE_ADJUSTED_FOR_OVERDRAFT = 'adjusted_for_overdraft'; + const TYPE_APPLIED_TO_PAYMENT = 'applied_to_payment'; + const TYPE_FUNDED = 'funded'; + const TYPE_FUNDING_REVERSED = 'funding_reversed'; + const TYPE_REFUNDED_FROM_PAYMENT = 'refunded_from_payment'; + const TYPE_RETURN_CANCELED = 'return_canceled'; + const TYPE_RETURN_INITIATED = 'return_initiated'; + const TYPE_TRANSFERRED_TO_BALANCE = 'transferred_to_balance'; + const TYPE_UNAPPLIED_FROM_PAYMENT = 'unapplied_from_payment'; +} diff --git a/vendor/stripe/stripe-php/lib/CustomerSession.php b/vendor/stripe/stripe-php/lib/CustomerSession.php new file mode 100644 index 0000000..e84bb8c --- /dev/null +++ b/vendor/stripe/stripe-php/lib/CustomerSession.php @@ -0,0 +1,50 @@ +Customer Session with the Payment Element, + * Customer Session with the Pricing Table, + * Customer Session with the Buy Button. + * + * @property string $object String representing the object's type. Objects of the same type share the same value. + * @property string $client_secret

    The client secret of this Customer Session. Used on the client to set up secure access to the given customer.

    The client secret can be used to provide access to customer from your frontend. It should not be stored, logged, or exposed to anyone other than the relevant customer. Make sure that you have TLS enabled on any page that includes the client secret.

    + * @property null|\Stripe\StripeObject $components Configuration for the components supported by this Customer Session. + * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch. + * @property string|\Stripe\Customer $customer The Customer the Customer Session was created for. + * @property int $expires_at The timestamp at which this Customer Session will expire. + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + */ +class CustomerSession extends ApiResource +{ + const OBJECT_NAME = 'customer_session'; + + /** + * Creates a Customer Session object that includes a single-use client secret that + * you can use on your front-end to grant client-side API access for certain + * customer resources. + * + * @param null|array $params + * @param null|array|string $options + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\CustomerSession the created resource + */ + public static function create($params = null, $options = null) + { + self::_validateParams($params); + $url = static::classUrl(); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $options); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } +} diff --git a/vendor/stripe/stripe-php/lib/Discount.php b/vendor/stripe/stripe-php/lib/Discount.php new file mode 100644 index 0000000..e1f3f84 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Discount.php @@ -0,0 +1,29 @@ +coupon or promotion code. + * It contains information about when the discount began, when it will end, and what it is applied to. + * + * Related guide: Applying discounts to subscriptions + * + * @property string $id The ID of the discount object. Discounts cannot be fetched by ID. Use expand[]=discounts in API calls to expand discount IDs in an array. + * @property string $object String representing the object's type. Objects of the same type share the same value. + * @property null|string $checkout_session The Checkout session that this coupon is applied to, if it is applied to a particular session in payment mode. Will not be present for subscription mode. + * @property \Stripe\Coupon $coupon A coupon contains information about a percent-off or amount-off discount you might want to apply to a customer. Coupons may be applied to subscriptions, invoices, checkout sessions, quotes, and more. Coupons do not work with conventional one-off charges or payment intents. + * @property null|string|\Stripe\Customer $customer The ID of the customer associated with this discount. + * @property null|int $end If the coupon has a duration of repeating, the date that this discount will end. If the coupon has a duration of once or forever, this attribute will be null. + * @property null|string $invoice The invoice that the discount's coupon was applied to, if it was applied directly to a particular invoice. + * @property null|string $invoice_item The invoice item id (or invoice line item id for invoice line items of type='subscription') that the discount's coupon was applied to, if it was applied directly to a particular invoice item or invoice line item. + * @property null|string|\Stripe\PromotionCode $promotion_code The promotion code applied to create this discount. + * @property int $start Date that the coupon was applied. + * @property null|string $subscription The subscription that this coupon is applied to, if it is applied to a particular subscription. + * @property null|string $subscription_item The subscription item that this coupon is applied to, if it is applied to a particular subscription item. + */ +class Discount extends ApiResource +{ + const OBJECT_NAME = 'discount'; +} diff --git a/vendor/stripe/stripe-php/lib/Dispute.php b/vendor/stripe/stripe-php/lib/Dispute.php new file mode 100644 index 0000000..4cac752 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Dispute.php @@ -0,0 +1,145 @@ +Disputes and fraud + * + * @property string $id Unique identifier for the object. + * @property string $object String representing the object's type. Objects of the same type share the same value. + * @property int $amount Disputed amount. Usually the amount of the charge, but it can differ (usually because of currency fluctuation or because only part of the order is disputed). + * @property \Stripe\BalanceTransaction[] $balance_transactions List of zero, one, or two balance transactions that show funds withdrawn and reinstated to your Stripe account as a result of this dispute. + * @property string|\Stripe\Charge $charge ID of the charge that's disputed. + * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch. + * @property string $currency Three-letter ISO currency code, in lowercase. Must be a supported currency. + * @property string[] $enhanced_eligibility_types List of eligibility types that are included in enhanced_evidence. + * @property \Stripe\StripeObject $evidence + * @property \Stripe\StripeObject $evidence_details + * @property bool $is_charge_refundable If true, it's still possible to refund the disputed payment. After the payment has been fully refunded, no further funds are withdrawn from your Stripe account as a result of this dispute. + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + * @property \Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + * @property null|string $network_reason_code Network-dependent reason code for the dispute. + * @property null|string|\Stripe\PaymentIntent $payment_intent ID of the PaymentIntent that's disputed. + * @property null|\Stripe\StripeObject $payment_method_details + * @property string $reason Reason given by cardholder for dispute. Possible values are bank_cannot_process, check_returned, credit_not_processed, customer_initiated, debit_not_authorized, duplicate, fraudulent, general, incorrect_account_details, insufficient_funds, product_not_received, product_unacceptable, subscription_canceled, or unrecognized. Learn more about dispute reasons. + * @property string $status Current status of dispute. Possible values are warning_needs_response, warning_under_review, warning_closed, needs_response, under_review, won, or lost. + */ +class Dispute extends ApiResource +{ + const OBJECT_NAME = 'dispute'; + + use ApiOperations\Update; + + const REASON_BANK_CANNOT_PROCESS = 'bank_cannot_process'; + const REASON_CHECK_RETURNED = 'check_returned'; + const REASON_CREDIT_NOT_PROCESSED = 'credit_not_processed'; + const REASON_CUSTOMER_INITIATED = 'customer_initiated'; + const REASON_DEBIT_NOT_AUTHORIZED = 'debit_not_authorized'; + const REASON_DUPLICATE = 'duplicate'; + const REASON_FRAUDULENT = 'fraudulent'; + const REASON_GENERAL = 'general'; + const REASON_INCORRECT_ACCOUNT_DETAILS = 'incorrect_account_details'; + const REASON_INSUFFICIENT_FUNDS = 'insufficient_funds'; + const REASON_PRODUCT_NOT_RECEIVED = 'product_not_received'; + const REASON_PRODUCT_UNACCEPTABLE = 'product_unacceptable'; + const REASON_SUBSCRIPTION_CANCELED = 'subscription_canceled'; + const REASON_UNRECOGNIZED = 'unrecognized'; + + const STATUS_LOST = 'lost'; + const STATUS_NEEDS_RESPONSE = 'needs_response'; + const STATUS_UNDER_REVIEW = 'under_review'; + const STATUS_WARNING_CLOSED = 'warning_closed'; + const STATUS_WARNING_NEEDS_RESPONSE = 'warning_needs_response'; + const STATUS_WARNING_UNDER_REVIEW = 'warning_under_review'; + const STATUS_WON = 'won'; + + /** + * Returns a list of your disputes. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\Dispute> of ApiResources + */ + public static function all($params = null, $opts = null) + { + $url = static::classUrl(); + + return static::_requestPage($url, \Stripe\Collection::class, $params, $opts); + } + + /** + * Retrieves the dispute with the given ID. + * + * @param array|string $id the ID of the API resource to retrieve, or an options array containing an `id` key + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Dispute + */ + public static function retrieve($id, $opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + $instance = new static($id, $opts); + $instance->refresh(); + + return $instance; + } + + /** + * When you get a dispute, contacting your customer is always the best first step. + * If that doesn’t work, you can submit evidence to help us resolve the dispute in + * your favor. You can do this in your dashboard, but if you prefer, + * you can use the API to submit evidence programmatically. + * + * Depending on your dispute type, different evidence fields will give you a better + * chance of winning your dispute. To figure out which evidence fields to provide, + * see our guide to dispute types. + * + * @param string $id the ID of the resource to update + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Dispute the updated resource + */ + public static function update($id, $params = null, $opts = null) + { + self::_validateParams($params); + $url = static::resourceUrl($id); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $opts); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Dispute the closed dispute + */ + public function close($params = null, $opts = null) + { + $url = $this->instanceUrl() . '/close'; + list($response, $opts) = $this->_request('post', $url, $params, $opts); + $this->refreshFrom($response, $opts); + + return $this; + } +} diff --git a/vendor/stripe/stripe-php/lib/Entitlements/ActiveEntitlement.php b/vendor/stripe/stripe-php/lib/Entitlements/ActiveEntitlement.php new file mode 100644 index 0000000..d3ea326 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Entitlements/ActiveEntitlement.php @@ -0,0 +1,55 @@ +Feature that the customer is entitled to. + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + * @property string $lookup_key A unique key you provide as your own system identifier. This may be up to 80 characters. + */ +class ActiveEntitlement extends \Stripe\ApiResource +{ + const OBJECT_NAME = 'entitlements.active_entitlement'; + + /** + * Retrieve a list of active entitlements for a customer. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\Entitlements\ActiveEntitlement> of ApiResources + */ + public static function all($params = null, $opts = null) + { + $url = static::classUrl(); + + return static::_requestPage($url, \Stripe\Collection::class, $params, $opts); + } + + /** + * Retrieve an active entitlement. + * + * @param array|string $id the ID of the API resource to retrieve, or an options array containing an `id` key + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Entitlements\ActiveEntitlement + */ + public static function retrieve($id, $opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + $instance = new static($id, $opts); + $instance->refresh(); + + return $instance; + } +} diff --git a/vendor/stripe/stripe-php/lib/Entitlements/ActiveEntitlementSummary.php b/vendor/stripe/stripe-php/lib/Entitlements/ActiveEntitlementSummary.php new file mode 100644 index 0000000..46a9105 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Entitlements/ActiveEntitlementSummary.php @@ -0,0 +1,18 @@ + $entitlements The list of entitlements this customer has. + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + */ +class ActiveEntitlementSummary extends \Stripe\ApiResource +{ + const OBJECT_NAME = 'entitlements.active_entitlement_summary'; +} diff --git a/vendor/stripe/stripe-php/lib/Entitlements/Feature.php b/vendor/stripe/stripe-php/lib/Entitlements/Feature.php new file mode 100644 index 0000000..f7cd75c --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Entitlements/Feature.php @@ -0,0 +1,105 @@ +true if the object exists in live mode or the value false if the object exists in test mode. + * @property string $lookup_key A unique key you provide as your own system identifier. This may be up to 80 characters. + * @property \Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + * @property string $name The feature's name, for your own purpose, not meant to be displayable to the customer. + */ +class Feature extends \Stripe\ApiResource +{ + const OBJECT_NAME = 'entitlements.feature'; + + use \Stripe\ApiOperations\Update; + + /** + * Creates a feature. + * + * @param null|array $params + * @param null|array|string $options + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Entitlements\Feature the created resource + */ + public static function create($params = null, $options = null) + { + self::_validateParams($params); + $url = static::classUrl(); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $options); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * Retrieve a list of features. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\Entitlements\Feature> of ApiResources + */ + public static function all($params = null, $opts = null) + { + $url = static::classUrl(); + + return static::_requestPage($url, \Stripe\Collection::class, $params, $opts); + } + + /** + * Retrieves a feature. + * + * @param array|string $id the ID of the API resource to retrieve, or an options array containing an `id` key + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Entitlements\Feature + */ + public static function retrieve($id, $opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + $instance = new static($id, $opts); + $instance->refresh(); + + return $instance; + } + + /** + * Update a feature’s metadata or permanently deactivate it. + * + * @param string $id the ID of the resource to update + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Entitlements\Feature the updated resource + */ + public static function update($id, $params = null, $opts = null) + { + self::_validateParams($params); + $url = static::resourceUrl($id); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $opts); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } +} diff --git a/vendor/stripe/stripe-php/lib/EphemeralKey.php b/vendor/stripe/stripe-php/lib/EphemeralKey.php new file mode 100644 index 0000000..b69b022 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/EphemeralKey.php @@ -0,0 +1,61 @@ +true if the object exists in live mode or the value false if the object exists in test mode. + * @property null|string $secret The key's secret. You can use this value to make authorized requests to the Stripe API. + */ +class EphemeralKey extends ApiResource +{ + const OBJECT_NAME = 'ephemeral_key'; + + /** + * Invalidates a short-lived API key for a given resource. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\EphemeralKey the deleted resource + */ + public function delete($params = null, $opts = null) + { + self::_validateParams($params); + + $url = $this->instanceUrl(); + list($response, $opts) = $this->_request('delete', $url, $params, $opts); + $this->refreshFrom($response, $opts); + + return $this; + } + + use ApiOperations\Create { + create as protected _create; + } + + /** + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\InvalidArgumentException if stripe_version is missing + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\EphemeralKey the created key + */ + public static function create($params = null, $opts = null) + { + if (!$opts || !isset($opts['stripe_version'])) { + throw new Exception\InvalidArgumentException('stripe_version must be specified to create an ephemeral key'); + } + + return self::_create($params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/ErrorObject.php b/vendor/stripe/stripe-php/lib/ErrorObject.php new file mode 100644 index 0000000..02b5de3 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/ErrorObject.php @@ -0,0 +1,248 @@ + null, + 'code' => null, + 'decline_code' => null, + 'doc_url' => null, + 'message' => null, + 'param' => null, + 'payment_intent' => null, + 'payment_method' => null, + 'setup_intent' => null, + 'source' => null, + 'type' => null, + ], $values); + parent::refreshFrom($values, $opts, $partial); + } +} diff --git a/vendor/stripe/stripe-php/lib/Event.php b/vendor/stripe/stripe-php/lib/Event.php new file mode 100644 index 0000000..a935cc8 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Event.php @@ -0,0 +1,577 @@ +Event + * object. For example, when a charge succeeds, we create a charge.succeeded + * event, and when an invoice payment attempt fails, we create an + * invoice.payment_failed event. Certain API requests might create multiple + * events. For example, if you create a new subscription for a + * customer, you receive both a customer.subscription.created event and a + * charge.succeeded event. + * + * Events occur when the state of another API resource changes. The event's data + * field embeds the resource's state at the time of the change. For + * example, a charge.succeeded event contains a charge, and an + * invoice.payment_failed event contains an invoice. + * + * As with other API resources, you can use endpoints to retrieve an + * individual event or a list of events + * from the API. We also have a separate + * webhooks system for sending the + * Event objects directly to an endpoint on your server. You can manage + * webhooks in your + * account settings. Learn how + * to listen for events + * so that your integration can automatically trigger reactions. + * + * When using Connect, you can also receive event notifications + * that occur in connected accounts. For these events, there's an + * additional account attribute in the received Event object. + * + * We only guarantee access to events through the Retrieve Event API + * for 30 days. + * + * This class includes constants for the possible string representations of + * event types. See https://stripe.com/docs/api#event_types for more details. + * + * @property string $id Unique identifier for the object. + * @property string $object String representing the object's type. Objects of the same type share the same value. + * @property null|string $account The connected account that originates the event. + * @property null|string $api_version The Stripe API version used to render data. This property is populated only for events on or after October 31, 2014. + * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch. + * @property \Stripe\StripeObject $data + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + * @property int $pending_webhooks Number of webhooks that haven't been successfully delivered (for example, to return a 20x response) to the URLs you specify. + * @property null|\Stripe\StripeObject $request Information on the API request that triggers the event. + * @property string $type Description of the event (for example, invoice.created or charge.refunded). + */ +class Event extends ApiResource +{ + const OBJECT_NAME = 'event'; + + const ACCOUNT_APPLICATION_AUTHORIZED = 'account.application.authorized'; + const ACCOUNT_APPLICATION_DEAUTHORIZED = 'account.application.deauthorized'; + const ACCOUNT_EXTERNAL_ACCOUNT_CREATED = 'account.external_account.created'; + const ACCOUNT_EXTERNAL_ACCOUNT_DELETED = 'account.external_account.deleted'; + const ACCOUNT_EXTERNAL_ACCOUNT_UPDATED = 'account.external_account.updated'; + const ACCOUNT_UPDATED = 'account.updated'; + const APPLICATION_FEE_CREATED = 'application_fee.created'; + const APPLICATION_FEE_REFUNDED = 'application_fee.refunded'; + const APPLICATION_FEE_REFUND_UPDATED = 'application_fee.refund.updated'; + const BALANCE_AVAILABLE = 'balance.available'; + const BILLING_ALERT_TRIGGERED = 'billing.alert.triggered'; + const BILLING_PORTAL_CONFIGURATION_CREATED = 'billing_portal.configuration.created'; + const BILLING_PORTAL_CONFIGURATION_UPDATED = 'billing_portal.configuration.updated'; + const BILLING_PORTAL_SESSION_CREATED = 'billing_portal.session.created'; + const CAPABILITY_UPDATED = 'capability.updated'; + const CASH_BALANCE_FUNDS_AVAILABLE = 'cash_balance.funds_available'; + const CHARGE_CAPTURED = 'charge.captured'; + const CHARGE_DISPUTE_CLOSED = 'charge.dispute.closed'; + const CHARGE_DISPUTE_CREATED = 'charge.dispute.created'; + const CHARGE_DISPUTE_FUNDS_REINSTATED = 'charge.dispute.funds_reinstated'; + const CHARGE_DISPUTE_FUNDS_WITHDRAWN = 'charge.dispute.funds_withdrawn'; + const CHARGE_DISPUTE_UPDATED = 'charge.dispute.updated'; + const CHARGE_EXPIRED = 'charge.expired'; + const CHARGE_FAILED = 'charge.failed'; + const CHARGE_PENDING = 'charge.pending'; + const CHARGE_REFUNDED = 'charge.refunded'; + const CHARGE_REFUND_UPDATED = 'charge.refund.updated'; + const CHARGE_SUCCEEDED = 'charge.succeeded'; + const CHARGE_UPDATED = 'charge.updated'; + const CHECKOUT_SESSION_ASYNC_PAYMENT_FAILED = 'checkout.session.async_payment_failed'; + const CHECKOUT_SESSION_ASYNC_PAYMENT_SUCCEEDED = 'checkout.session.async_payment_succeeded'; + const CHECKOUT_SESSION_COMPLETED = 'checkout.session.completed'; + const CHECKOUT_SESSION_EXPIRED = 'checkout.session.expired'; + const CLIMATE_ORDER_CANCELED = 'climate.order.canceled'; + const CLIMATE_ORDER_CREATED = 'climate.order.created'; + const CLIMATE_ORDER_DELAYED = 'climate.order.delayed'; + const CLIMATE_ORDER_DELIVERED = 'climate.order.delivered'; + const CLIMATE_ORDER_PRODUCT_SUBSTITUTED = 'climate.order.product_substituted'; + const CLIMATE_PRODUCT_CREATED = 'climate.product.created'; + const CLIMATE_PRODUCT_PRICING_UPDATED = 'climate.product.pricing_updated'; + const COUPON_CREATED = 'coupon.created'; + const COUPON_DELETED = 'coupon.deleted'; + const COUPON_UPDATED = 'coupon.updated'; + const CREDIT_NOTE_CREATED = 'credit_note.created'; + const CREDIT_NOTE_UPDATED = 'credit_note.updated'; + const CREDIT_NOTE_VOIDED = 'credit_note.voided'; + const CUSTOMER_CASH_BALANCE_TRANSACTION_CREATED = 'customer_cash_balance_transaction.created'; + const CUSTOMER_CREATED = 'customer.created'; + const CUSTOMER_DELETED = 'customer.deleted'; + const CUSTOMER_DISCOUNT_CREATED = 'customer.discount.created'; + const CUSTOMER_DISCOUNT_DELETED = 'customer.discount.deleted'; + const CUSTOMER_DISCOUNT_UPDATED = 'customer.discount.updated'; + const CUSTOMER_SOURCE_CREATED = 'customer.source.created'; + const CUSTOMER_SOURCE_DELETED = 'customer.source.deleted'; + const CUSTOMER_SOURCE_EXPIRING = 'customer.source.expiring'; + const CUSTOMER_SOURCE_UPDATED = 'customer.source.updated'; + const CUSTOMER_SUBSCRIPTION_CREATED = 'customer.subscription.created'; + const CUSTOMER_SUBSCRIPTION_DELETED = 'customer.subscription.deleted'; + const CUSTOMER_SUBSCRIPTION_PAUSED = 'customer.subscription.paused'; + const CUSTOMER_SUBSCRIPTION_PENDING_UPDATE_APPLIED = 'customer.subscription.pending_update_applied'; + const CUSTOMER_SUBSCRIPTION_PENDING_UPDATE_EXPIRED = 'customer.subscription.pending_update_expired'; + const CUSTOMER_SUBSCRIPTION_RESUMED = 'customer.subscription.resumed'; + const CUSTOMER_SUBSCRIPTION_TRIAL_WILL_END = 'customer.subscription.trial_will_end'; + const CUSTOMER_SUBSCRIPTION_UPDATED = 'customer.subscription.updated'; + const CUSTOMER_TAX_ID_CREATED = 'customer.tax_id.created'; + const CUSTOMER_TAX_ID_DELETED = 'customer.tax_id.deleted'; + const CUSTOMER_TAX_ID_UPDATED = 'customer.tax_id.updated'; + const CUSTOMER_UPDATED = 'customer.updated'; + const ENTITLEMENTS_ACTIVE_ENTITLEMENT_SUMMARY_UPDATED = 'entitlements.active_entitlement_summary.updated'; + const FILE_CREATED = 'file.created'; + const FINANCIAL_CONNECTIONS_ACCOUNT_CREATED = 'financial_connections.account.created'; + const FINANCIAL_CONNECTIONS_ACCOUNT_DEACTIVATED = 'financial_connections.account.deactivated'; + const FINANCIAL_CONNECTIONS_ACCOUNT_DISCONNECTED = 'financial_connections.account.disconnected'; + const FINANCIAL_CONNECTIONS_ACCOUNT_REACTIVATED = 'financial_connections.account.reactivated'; + const FINANCIAL_CONNECTIONS_ACCOUNT_REFRESHED_BALANCE = 'financial_connections.account.refreshed_balance'; + const FINANCIAL_CONNECTIONS_ACCOUNT_REFRESHED_OWNERSHIP = 'financial_connections.account.refreshed_ownership'; + const FINANCIAL_CONNECTIONS_ACCOUNT_REFRESHED_TRANSACTIONS = 'financial_connections.account.refreshed_transactions'; + const IDENTITY_VERIFICATION_SESSION_CANCELED = 'identity.verification_session.canceled'; + const IDENTITY_VERIFICATION_SESSION_CREATED = 'identity.verification_session.created'; + const IDENTITY_VERIFICATION_SESSION_PROCESSING = 'identity.verification_session.processing'; + const IDENTITY_VERIFICATION_SESSION_REDACTED = 'identity.verification_session.redacted'; + const IDENTITY_VERIFICATION_SESSION_REQUIRES_INPUT = 'identity.verification_session.requires_input'; + const IDENTITY_VERIFICATION_SESSION_VERIFIED = 'identity.verification_session.verified'; + const INVOICEITEM_CREATED = 'invoiceitem.created'; + const INVOICEITEM_DELETED = 'invoiceitem.deleted'; + const INVOICE_CREATED = 'invoice.created'; + const INVOICE_DELETED = 'invoice.deleted'; + const INVOICE_FINALIZATION_FAILED = 'invoice.finalization_failed'; + const INVOICE_FINALIZED = 'invoice.finalized'; + const INVOICE_MARKED_UNCOLLECTIBLE = 'invoice.marked_uncollectible'; + const INVOICE_OVERDUE = 'invoice.overdue'; + const INVOICE_PAID = 'invoice.paid'; + const INVOICE_PAYMENT_ACTION_REQUIRED = 'invoice.payment_action_required'; + const INVOICE_PAYMENT_FAILED = 'invoice.payment_failed'; + const INVOICE_PAYMENT_SUCCEEDED = 'invoice.payment_succeeded'; + const INVOICE_SENT = 'invoice.sent'; + const INVOICE_UPCOMING = 'invoice.upcoming'; + const INVOICE_UPDATED = 'invoice.updated'; + const INVOICE_VOIDED = 'invoice.voided'; + const INVOICE_WILL_BE_DUE = 'invoice.will_be_due'; + const ISSUING_AUTHORIZATION_CREATED = 'issuing_authorization.created'; + const ISSUING_AUTHORIZATION_REQUEST = 'issuing_authorization.request'; + const ISSUING_AUTHORIZATION_UPDATED = 'issuing_authorization.updated'; + const ISSUING_CARDHOLDER_CREATED = 'issuing_cardholder.created'; + const ISSUING_CARDHOLDER_UPDATED = 'issuing_cardholder.updated'; + const ISSUING_CARD_CREATED = 'issuing_card.created'; + const ISSUING_CARD_UPDATED = 'issuing_card.updated'; + const ISSUING_DISPUTE_CLOSED = 'issuing_dispute.closed'; + const ISSUING_DISPUTE_CREATED = 'issuing_dispute.created'; + const ISSUING_DISPUTE_FUNDS_REINSTATED = 'issuing_dispute.funds_reinstated'; + const ISSUING_DISPUTE_FUNDS_RESCINDED = 'issuing_dispute.funds_rescinded'; + const ISSUING_DISPUTE_SUBMITTED = 'issuing_dispute.submitted'; + const ISSUING_DISPUTE_UPDATED = 'issuing_dispute.updated'; + const ISSUING_PERSONALIZATION_DESIGN_ACTIVATED = 'issuing_personalization_design.activated'; + const ISSUING_PERSONALIZATION_DESIGN_DEACTIVATED = 'issuing_personalization_design.deactivated'; + const ISSUING_PERSONALIZATION_DESIGN_REJECTED = 'issuing_personalization_design.rejected'; + const ISSUING_PERSONALIZATION_DESIGN_UPDATED = 'issuing_personalization_design.updated'; + const ISSUING_TOKEN_CREATED = 'issuing_token.created'; + const ISSUING_TOKEN_UPDATED = 'issuing_token.updated'; + const ISSUING_TRANSACTION_CREATED = 'issuing_transaction.created'; + const ISSUING_TRANSACTION_PURCHASE_DETAILS_RECEIPT_UPDATED = 'issuing_transaction.purchase_details_receipt_updated'; + const ISSUING_TRANSACTION_UPDATED = 'issuing_transaction.updated'; + const MANDATE_UPDATED = 'mandate.updated'; + const PAYMENT_INTENT_AMOUNT_CAPTURABLE_UPDATED = 'payment_intent.amount_capturable_updated'; + const PAYMENT_INTENT_CANCELED = 'payment_intent.canceled'; + const PAYMENT_INTENT_CREATED = 'payment_intent.created'; + const PAYMENT_INTENT_PARTIALLY_FUNDED = 'payment_intent.partially_funded'; + const PAYMENT_INTENT_PAYMENT_FAILED = 'payment_intent.payment_failed'; + const PAYMENT_INTENT_PROCESSING = 'payment_intent.processing'; + const PAYMENT_INTENT_REQUIRES_ACTION = 'payment_intent.requires_action'; + const PAYMENT_INTENT_SUCCEEDED = 'payment_intent.succeeded'; + const PAYMENT_LINK_CREATED = 'payment_link.created'; + const PAYMENT_LINK_UPDATED = 'payment_link.updated'; + const PAYMENT_METHOD_ATTACHED = 'payment_method.attached'; + const PAYMENT_METHOD_AUTOMATICALLY_UPDATED = 'payment_method.automatically_updated'; + const PAYMENT_METHOD_DETACHED = 'payment_method.detached'; + const PAYMENT_METHOD_UPDATED = 'payment_method.updated'; + const PAYOUT_CANCELED = 'payout.canceled'; + const PAYOUT_CREATED = 'payout.created'; + const PAYOUT_FAILED = 'payout.failed'; + const PAYOUT_PAID = 'payout.paid'; + const PAYOUT_RECONCILIATION_COMPLETED = 'payout.reconciliation_completed'; + const PAYOUT_UPDATED = 'payout.updated'; + const PERSON_CREATED = 'person.created'; + const PERSON_DELETED = 'person.deleted'; + const PERSON_UPDATED = 'person.updated'; + const PLAN_CREATED = 'plan.created'; + const PLAN_DELETED = 'plan.deleted'; + const PLAN_UPDATED = 'plan.updated'; + const PRICE_CREATED = 'price.created'; + const PRICE_DELETED = 'price.deleted'; + const PRICE_UPDATED = 'price.updated'; + const PRODUCT_CREATED = 'product.created'; + const PRODUCT_DELETED = 'product.deleted'; + const PRODUCT_UPDATED = 'product.updated'; + const PROMOTION_CODE_CREATED = 'promotion_code.created'; + const PROMOTION_CODE_UPDATED = 'promotion_code.updated'; + const QUOTE_ACCEPTED = 'quote.accepted'; + const QUOTE_CANCELED = 'quote.canceled'; + const QUOTE_CREATED = 'quote.created'; + const QUOTE_FINALIZED = 'quote.finalized'; + const RADAR_EARLY_FRAUD_WARNING_CREATED = 'radar.early_fraud_warning.created'; + const RADAR_EARLY_FRAUD_WARNING_UPDATED = 'radar.early_fraud_warning.updated'; + const REFUND_CREATED = 'refund.created'; + const REFUND_FAILED = 'refund.failed'; + const REFUND_UPDATED = 'refund.updated'; + const REPORTING_REPORT_RUN_FAILED = 'reporting.report_run.failed'; + const REPORTING_REPORT_RUN_SUCCEEDED = 'reporting.report_run.succeeded'; + const REPORTING_REPORT_TYPE_UPDATED = 'reporting.report_type.updated'; + const REVIEW_CLOSED = 'review.closed'; + const REVIEW_OPENED = 'review.opened'; + const SETUP_INTENT_CANCELED = 'setup_intent.canceled'; + const SETUP_INTENT_CREATED = 'setup_intent.created'; + const SETUP_INTENT_REQUIRES_ACTION = 'setup_intent.requires_action'; + const SETUP_INTENT_SETUP_FAILED = 'setup_intent.setup_failed'; + const SETUP_INTENT_SUCCEEDED = 'setup_intent.succeeded'; + const SIGMA_SCHEDULED_QUERY_RUN_CREATED = 'sigma.scheduled_query_run.created'; + const SOURCE_CANCELED = 'source.canceled'; + const SOURCE_CHARGEABLE = 'source.chargeable'; + const SOURCE_FAILED = 'source.failed'; + const SOURCE_MANDATE_NOTIFICATION = 'source.mandate_notification'; + const SOURCE_REFUND_ATTRIBUTES_REQUIRED = 'source.refund_attributes_required'; + const SOURCE_TRANSACTION_CREATED = 'source.transaction.created'; + const SOURCE_TRANSACTION_UPDATED = 'source.transaction.updated'; + const SUBSCRIPTION_SCHEDULE_ABORTED = 'subscription_schedule.aborted'; + const SUBSCRIPTION_SCHEDULE_CANCELED = 'subscription_schedule.canceled'; + const SUBSCRIPTION_SCHEDULE_COMPLETED = 'subscription_schedule.completed'; + const SUBSCRIPTION_SCHEDULE_CREATED = 'subscription_schedule.created'; + const SUBSCRIPTION_SCHEDULE_EXPIRING = 'subscription_schedule.expiring'; + const SUBSCRIPTION_SCHEDULE_RELEASED = 'subscription_schedule.released'; + const SUBSCRIPTION_SCHEDULE_UPDATED = 'subscription_schedule.updated'; + const TAX_RATE_CREATED = 'tax_rate.created'; + const TAX_RATE_UPDATED = 'tax_rate.updated'; + const TAX_SETTINGS_UPDATED = 'tax.settings.updated'; + const TERMINAL_READER_ACTION_FAILED = 'terminal.reader.action_failed'; + const TERMINAL_READER_ACTION_SUCCEEDED = 'terminal.reader.action_succeeded'; + const TEST_HELPERS_TEST_CLOCK_ADVANCING = 'test_helpers.test_clock.advancing'; + const TEST_HELPERS_TEST_CLOCK_CREATED = 'test_helpers.test_clock.created'; + const TEST_HELPERS_TEST_CLOCK_DELETED = 'test_helpers.test_clock.deleted'; + const TEST_HELPERS_TEST_CLOCK_INTERNAL_FAILURE = 'test_helpers.test_clock.internal_failure'; + const TEST_HELPERS_TEST_CLOCK_READY = 'test_helpers.test_clock.ready'; + const TOPUP_CANCELED = 'topup.canceled'; + const TOPUP_CREATED = 'topup.created'; + const TOPUP_FAILED = 'topup.failed'; + const TOPUP_REVERSED = 'topup.reversed'; + const TOPUP_SUCCEEDED = 'topup.succeeded'; + const TRANSFER_CREATED = 'transfer.created'; + const TRANSFER_REVERSED = 'transfer.reversed'; + const TRANSFER_UPDATED = 'transfer.updated'; + const TREASURY_CREDIT_REVERSAL_CREATED = 'treasury.credit_reversal.created'; + const TREASURY_CREDIT_REVERSAL_POSTED = 'treasury.credit_reversal.posted'; + const TREASURY_DEBIT_REVERSAL_COMPLETED = 'treasury.debit_reversal.completed'; + const TREASURY_DEBIT_REVERSAL_CREATED = 'treasury.debit_reversal.created'; + const TREASURY_DEBIT_REVERSAL_INITIAL_CREDIT_GRANTED = 'treasury.debit_reversal.initial_credit_granted'; + const TREASURY_FINANCIAL_ACCOUNT_CLOSED = 'treasury.financial_account.closed'; + const TREASURY_FINANCIAL_ACCOUNT_CREATED = 'treasury.financial_account.created'; + const TREASURY_FINANCIAL_ACCOUNT_FEATURES_STATUS_UPDATED = 'treasury.financial_account.features_status_updated'; + const TREASURY_INBOUND_TRANSFER_CANCELED = 'treasury.inbound_transfer.canceled'; + const TREASURY_INBOUND_TRANSFER_CREATED = 'treasury.inbound_transfer.created'; + const TREASURY_INBOUND_TRANSFER_FAILED = 'treasury.inbound_transfer.failed'; + const TREASURY_INBOUND_TRANSFER_SUCCEEDED = 'treasury.inbound_transfer.succeeded'; + const TREASURY_OUTBOUND_PAYMENT_CANCELED = 'treasury.outbound_payment.canceled'; + const TREASURY_OUTBOUND_PAYMENT_CREATED = 'treasury.outbound_payment.created'; + const TREASURY_OUTBOUND_PAYMENT_EXPECTED_ARRIVAL_DATE_UPDATED = 'treasury.outbound_payment.expected_arrival_date_updated'; + const TREASURY_OUTBOUND_PAYMENT_FAILED = 'treasury.outbound_payment.failed'; + const TREASURY_OUTBOUND_PAYMENT_POSTED = 'treasury.outbound_payment.posted'; + const TREASURY_OUTBOUND_PAYMENT_RETURNED = 'treasury.outbound_payment.returned'; + const TREASURY_OUTBOUND_PAYMENT_TRACKING_DETAILS_UPDATED = 'treasury.outbound_payment.tracking_details_updated'; + const TREASURY_OUTBOUND_TRANSFER_CANCELED = 'treasury.outbound_transfer.canceled'; + const TREASURY_OUTBOUND_TRANSFER_CREATED = 'treasury.outbound_transfer.created'; + const TREASURY_OUTBOUND_TRANSFER_EXPECTED_ARRIVAL_DATE_UPDATED = 'treasury.outbound_transfer.expected_arrival_date_updated'; + const TREASURY_OUTBOUND_TRANSFER_FAILED = 'treasury.outbound_transfer.failed'; + const TREASURY_OUTBOUND_TRANSFER_POSTED = 'treasury.outbound_transfer.posted'; + const TREASURY_OUTBOUND_TRANSFER_RETURNED = 'treasury.outbound_transfer.returned'; + const TREASURY_OUTBOUND_TRANSFER_TRACKING_DETAILS_UPDATED = 'treasury.outbound_transfer.tracking_details_updated'; + const TREASURY_RECEIVED_CREDIT_CREATED = 'treasury.received_credit.created'; + const TREASURY_RECEIVED_CREDIT_FAILED = 'treasury.received_credit.failed'; + const TREASURY_RECEIVED_CREDIT_SUCCEEDED = 'treasury.received_credit.succeeded'; + const TREASURY_RECEIVED_DEBIT_CREATED = 'treasury.received_debit.created'; + + const TYPE_ACCOUNT_APPLICATION_AUTHORIZED = 'account.application.authorized'; + const TYPE_ACCOUNT_APPLICATION_DEAUTHORIZED = 'account.application.deauthorized'; + const TYPE_ACCOUNT_EXTERNAL_ACCOUNT_CREATED = 'account.external_account.created'; + const TYPE_ACCOUNT_EXTERNAL_ACCOUNT_DELETED = 'account.external_account.deleted'; + const TYPE_ACCOUNT_EXTERNAL_ACCOUNT_UPDATED = 'account.external_account.updated'; + const TYPE_ACCOUNT_UPDATED = 'account.updated'; + const TYPE_APPLICATION_FEE_CREATED = 'application_fee.created'; + const TYPE_APPLICATION_FEE_REFUNDED = 'application_fee.refunded'; + const TYPE_APPLICATION_FEE_REFUND_UPDATED = 'application_fee.refund.updated'; + const TYPE_BALANCE_AVAILABLE = 'balance.available'; + const TYPE_BILLING_ALERT_TRIGGERED = 'billing.alert.triggered'; + const TYPE_BILLING_PORTAL_CONFIGURATION_CREATED = 'billing_portal.configuration.created'; + const TYPE_BILLING_PORTAL_CONFIGURATION_UPDATED = 'billing_portal.configuration.updated'; + const TYPE_BILLING_PORTAL_SESSION_CREATED = 'billing_portal.session.created'; + const TYPE_CAPABILITY_UPDATED = 'capability.updated'; + const TYPE_CASH_BALANCE_FUNDS_AVAILABLE = 'cash_balance.funds_available'; + const TYPE_CHARGE_CAPTURED = 'charge.captured'; + const TYPE_CHARGE_DISPUTE_CLOSED = 'charge.dispute.closed'; + const TYPE_CHARGE_DISPUTE_CREATED = 'charge.dispute.created'; + const TYPE_CHARGE_DISPUTE_FUNDS_REINSTATED = 'charge.dispute.funds_reinstated'; + const TYPE_CHARGE_DISPUTE_FUNDS_WITHDRAWN = 'charge.dispute.funds_withdrawn'; + const TYPE_CHARGE_DISPUTE_UPDATED = 'charge.dispute.updated'; + const TYPE_CHARGE_EXPIRED = 'charge.expired'; + const TYPE_CHARGE_FAILED = 'charge.failed'; + const TYPE_CHARGE_PENDING = 'charge.pending'; + const TYPE_CHARGE_REFUNDED = 'charge.refunded'; + const TYPE_CHARGE_REFUND_UPDATED = 'charge.refund.updated'; + const TYPE_CHARGE_SUCCEEDED = 'charge.succeeded'; + const TYPE_CHARGE_UPDATED = 'charge.updated'; + const TYPE_CHECKOUT_SESSION_ASYNC_PAYMENT_FAILED = 'checkout.session.async_payment_failed'; + const TYPE_CHECKOUT_SESSION_ASYNC_PAYMENT_SUCCEEDED = 'checkout.session.async_payment_succeeded'; + const TYPE_CHECKOUT_SESSION_COMPLETED = 'checkout.session.completed'; + const TYPE_CHECKOUT_SESSION_EXPIRED = 'checkout.session.expired'; + const TYPE_CLIMATE_ORDER_CANCELED = 'climate.order.canceled'; + const TYPE_CLIMATE_ORDER_CREATED = 'climate.order.created'; + const TYPE_CLIMATE_ORDER_DELAYED = 'climate.order.delayed'; + const TYPE_CLIMATE_ORDER_DELIVERED = 'climate.order.delivered'; + const TYPE_CLIMATE_ORDER_PRODUCT_SUBSTITUTED = 'climate.order.product_substituted'; + const TYPE_CLIMATE_PRODUCT_CREATED = 'climate.product.created'; + const TYPE_CLIMATE_PRODUCT_PRICING_UPDATED = 'climate.product.pricing_updated'; + const TYPE_COUPON_CREATED = 'coupon.created'; + const TYPE_COUPON_DELETED = 'coupon.deleted'; + const TYPE_COUPON_UPDATED = 'coupon.updated'; + const TYPE_CREDIT_NOTE_CREATED = 'credit_note.created'; + const TYPE_CREDIT_NOTE_UPDATED = 'credit_note.updated'; + const TYPE_CREDIT_NOTE_VOIDED = 'credit_note.voided'; + const TYPE_CUSTOMER_CASH_BALANCE_TRANSACTION_CREATED = 'customer_cash_balance_transaction.created'; + const TYPE_CUSTOMER_CREATED = 'customer.created'; + const TYPE_CUSTOMER_DELETED = 'customer.deleted'; + const TYPE_CUSTOMER_DISCOUNT_CREATED = 'customer.discount.created'; + const TYPE_CUSTOMER_DISCOUNT_DELETED = 'customer.discount.deleted'; + const TYPE_CUSTOMER_DISCOUNT_UPDATED = 'customer.discount.updated'; + const TYPE_CUSTOMER_SOURCE_CREATED = 'customer.source.created'; + const TYPE_CUSTOMER_SOURCE_DELETED = 'customer.source.deleted'; + const TYPE_CUSTOMER_SOURCE_EXPIRING = 'customer.source.expiring'; + const TYPE_CUSTOMER_SOURCE_UPDATED = 'customer.source.updated'; + const TYPE_CUSTOMER_SUBSCRIPTION_CREATED = 'customer.subscription.created'; + const TYPE_CUSTOMER_SUBSCRIPTION_DELETED = 'customer.subscription.deleted'; + const TYPE_CUSTOMER_SUBSCRIPTION_PAUSED = 'customer.subscription.paused'; + const TYPE_CUSTOMER_SUBSCRIPTION_PENDING_UPDATE_APPLIED = 'customer.subscription.pending_update_applied'; + const TYPE_CUSTOMER_SUBSCRIPTION_PENDING_UPDATE_EXPIRED = 'customer.subscription.pending_update_expired'; + const TYPE_CUSTOMER_SUBSCRIPTION_RESUMED = 'customer.subscription.resumed'; + const TYPE_CUSTOMER_SUBSCRIPTION_TRIAL_WILL_END = 'customer.subscription.trial_will_end'; + const TYPE_CUSTOMER_SUBSCRIPTION_UPDATED = 'customer.subscription.updated'; + const TYPE_CUSTOMER_TAX_ID_CREATED = 'customer.tax_id.created'; + const TYPE_CUSTOMER_TAX_ID_DELETED = 'customer.tax_id.deleted'; + const TYPE_CUSTOMER_TAX_ID_UPDATED = 'customer.tax_id.updated'; + const TYPE_CUSTOMER_UPDATED = 'customer.updated'; + const TYPE_ENTITLEMENTS_ACTIVE_ENTITLEMENT_SUMMARY_UPDATED = 'entitlements.active_entitlement_summary.updated'; + const TYPE_FILE_CREATED = 'file.created'; + const TYPE_FINANCIAL_CONNECTIONS_ACCOUNT_CREATED = 'financial_connections.account.created'; + const TYPE_FINANCIAL_CONNECTIONS_ACCOUNT_DEACTIVATED = 'financial_connections.account.deactivated'; + const TYPE_FINANCIAL_CONNECTIONS_ACCOUNT_DISCONNECTED = 'financial_connections.account.disconnected'; + const TYPE_FINANCIAL_CONNECTIONS_ACCOUNT_REACTIVATED = 'financial_connections.account.reactivated'; + const TYPE_FINANCIAL_CONNECTIONS_ACCOUNT_REFRESHED_BALANCE = 'financial_connections.account.refreshed_balance'; + const TYPE_FINANCIAL_CONNECTIONS_ACCOUNT_REFRESHED_OWNERSHIP = 'financial_connections.account.refreshed_ownership'; + const TYPE_FINANCIAL_CONNECTIONS_ACCOUNT_REFRESHED_TRANSACTIONS = 'financial_connections.account.refreshed_transactions'; + const TYPE_IDENTITY_VERIFICATION_SESSION_CANCELED = 'identity.verification_session.canceled'; + const TYPE_IDENTITY_VERIFICATION_SESSION_CREATED = 'identity.verification_session.created'; + const TYPE_IDENTITY_VERIFICATION_SESSION_PROCESSING = 'identity.verification_session.processing'; + const TYPE_IDENTITY_VERIFICATION_SESSION_REDACTED = 'identity.verification_session.redacted'; + const TYPE_IDENTITY_VERIFICATION_SESSION_REQUIRES_INPUT = 'identity.verification_session.requires_input'; + const TYPE_IDENTITY_VERIFICATION_SESSION_VERIFIED = 'identity.verification_session.verified'; + const TYPE_INVOICEITEM_CREATED = 'invoiceitem.created'; + const TYPE_INVOICEITEM_DELETED = 'invoiceitem.deleted'; + const TYPE_INVOICE_CREATED = 'invoice.created'; + const TYPE_INVOICE_DELETED = 'invoice.deleted'; + const TYPE_INVOICE_FINALIZATION_FAILED = 'invoice.finalization_failed'; + const TYPE_INVOICE_FINALIZED = 'invoice.finalized'; + const TYPE_INVOICE_MARKED_UNCOLLECTIBLE = 'invoice.marked_uncollectible'; + const TYPE_INVOICE_OVERDUE = 'invoice.overdue'; + const TYPE_INVOICE_PAID = 'invoice.paid'; + const TYPE_INVOICE_PAYMENT_ACTION_REQUIRED = 'invoice.payment_action_required'; + const TYPE_INVOICE_PAYMENT_FAILED = 'invoice.payment_failed'; + const TYPE_INVOICE_PAYMENT_SUCCEEDED = 'invoice.payment_succeeded'; + const TYPE_INVOICE_SENT = 'invoice.sent'; + const TYPE_INVOICE_UPCOMING = 'invoice.upcoming'; + const TYPE_INVOICE_UPDATED = 'invoice.updated'; + const TYPE_INVOICE_VOIDED = 'invoice.voided'; + const TYPE_INVOICE_WILL_BE_DUE = 'invoice.will_be_due'; + const TYPE_ISSUING_AUTHORIZATION_CREATED = 'issuing_authorization.created'; + const TYPE_ISSUING_AUTHORIZATION_REQUEST = 'issuing_authorization.request'; + const TYPE_ISSUING_AUTHORIZATION_UPDATED = 'issuing_authorization.updated'; + const TYPE_ISSUING_CARDHOLDER_CREATED = 'issuing_cardholder.created'; + const TYPE_ISSUING_CARDHOLDER_UPDATED = 'issuing_cardholder.updated'; + const TYPE_ISSUING_CARD_CREATED = 'issuing_card.created'; + const TYPE_ISSUING_CARD_UPDATED = 'issuing_card.updated'; + const TYPE_ISSUING_DISPUTE_CLOSED = 'issuing_dispute.closed'; + const TYPE_ISSUING_DISPUTE_CREATED = 'issuing_dispute.created'; + const TYPE_ISSUING_DISPUTE_FUNDS_REINSTATED = 'issuing_dispute.funds_reinstated'; + const TYPE_ISSUING_DISPUTE_FUNDS_RESCINDED = 'issuing_dispute.funds_rescinded'; + const TYPE_ISSUING_DISPUTE_SUBMITTED = 'issuing_dispute.submitted'; + const TYPE_ISSUING_DISPUTE_UPDATED = 'issuing_dispute.updated'; + const TYPE_ISSUING_PERSONALIZATION_DESIGN_ACTIVATED = 'issuing_personalization_design.activated'; + const TYPE_ISSUING_PERSONALIZATION_DESIGN_DEACTIVATED = 'issuing_personalization_design.deactivated'; + const TYPE_ISSUING_PERSONALIZATION_DESIGN_REJECTED = 'issuing_personalization_design.rejected'; + const TYPE_ISSUING_PERSONALIZATION_DESIGN_UPDATED = 'issuing_personalization_design.updated'; + const TYPE_ISSUING_TOKEN_CREATED = 'issuing_token.created'; + const TYPE_ISSUING_TOKEN_UPDATED = 'issuing_token.updated'; + const TYPE_ISSUING_TRANSACTION_CREATED = 'issuing_transaction.created'; + const TYPE_ISSUING_TRANSACTION_PURCHASE_DETAILS_RECEIPT_UPDATED = 'issuing_transaction.purchase_details_receipt_updated'; + const TYPE_ISSUING_TRANSACTION_UPDATED = 'issuing_transaction.updated'; + const TYPE_MANDATE_UPDATED = 'mandate.updated'; + const TYPE_PAYMENT_INTENT_AMOUNT_CAPTURABLE_UPDATED = 'payment_intent.amount_capturable_updated'; + const TYPE_PAYMENT_INTENT_CANCELED = 'payment_intent.canceled'; + const TYPE_PAYMENT_INTENT_CREATED = 'payment_intent.created'; + const TYPE_PAYMENT_INTENT_PARTIALLY_FUNDED = 'payment_intent.partially_funded'; + const TYPE_PAYMENT_INTENT_PAYMENT_FAILED = 'payment_intent.payment_failed'; + const TYPE_PAYMENT_INTENT_PROCESSING = 'payment_intent.processing'; + const TYPE_PAYMENT_INTENT_REQUIRES_ACTION = 'payment_intent.requires_action'; + const TYPE_PAYMENT_INTENT_SUCCEEDED = 'payment_intent.succeeded'; + const TYPE_PAYMENT_LINK_CREATED = 'payment_link.created'; + const TYPE_PAYMENT_LINK_UPDATED = 'payment_link.updated'; + const TYPE_PAYMENT_METHOD_ATTACHED = 'payment_method.attached'; + const TYPE_PAYMENT_METHOD_AUTOMATICALLY_UPDATED = 'payment_method.automatically_updated'; + const TYPE_PAYMENT_METHOD_DETACHED = 'payment_method.detached'; + const TYPE_PAYMENT_METHOD_UPDATED = 'payment_method.updated'; + const TYPE_PAYOUT_CANCELED = 'payout.canceled'; + const TYPE_PAYOUT_CREATED = 'payout.created'; + const TYPE_PAYOUT_FAILED = 'payout.failed'; + const TYPE_PAYOUT_PAID = 'payout.paid'; + const TYPE_PAYOUT_RECONCILIATION_COMPLETED = 'payout.reconciliation_completed'; + const TYPE_PAYOUT_UPDATED = 'payout.updated'; + const TYPE_PERSON_CREATED = 'person.created'; + const TYPE_PERSON_DELETED = 'person.deleted'; + const TYPE_PERSON_UPDATED = 'person.updated'; + const TYPE_PLAN_CREATED = 'plan.created'; + const TYPE_PLAN_DELETED = 'plan.deleted'; + const TYPE_PLAN_UPDATED = 'plan.updated'; + const TYPE_PRICE_CREATED = 'price.created'; + const TYPE_PRICE_DELETED = 'price.deleted'; + const TYPE_PRICE_UPDATED = 'price.updated'; + const TYPE_PRODUCT_CREATED = 'product.created'; + const TYPE_PRODUCT_DELETED = 'product.deleted'; + const TYPE_PRODUCT_UPDATED = 'product.updated'; + const TYPE_PROMOTION_CODE_CREATED = 'promotion_code.created'; + const TYPE_PROMOTION_CODE_UPDATED = 'promotion_code.updated'; + const TYPE_QUOTE_ACCEPTED = 'quote.accepted'; + const TYPE_QUOTE_CANCELED = 'quote.canceled'; + const TYPE_QUOTE_CREATED = 'quote.created'; + const TYPE_QUOTE_FINALIZED = 'quote.finalized'; + const TYPE_RADAR_EARLY_FRAUD_WARNING_CREATED = 'radar.early_fraud_warning.created'; + const TYPE_RADAR_EARLY_FRAUD_WARNING_UPDATED = 'radar.early_fraud_warning.updated'; + const TYPE_REFUND_CREATED = 'refund.created'; + const TYPE_REFUND_FAILED = 'refund.failed'; + const TYPE_REFUND_UPDATED = 'refund.updated'; + const TYPE_REPORTING_REPORT_RUN_FAILED = 'reporting.report_run.failed'; + const TYPE_REPORTING_REPORT_RUN_SUCCEEDED = 'reporting.report_run.succeeded'; + const TYPE_REPORTING_REPORT_TYPE_UPDATED = 'reporting.report_type.updated'; + const TYPE_REVIEW_CLOSED = 'review.closed'; + const TYPE_REVIEW_OPENED = 'review.opened'; + const TYPE_SETUP_INTENT_CANCELED = 'setup_intent.canceled'; + const TYPE_SETUP_INTENT_CREATED = 'setup_intent.created'; + const TYPE_SETUP_INTENT_REQUIRES_ACTION = 'setup_intent.requires_action'; + const TYPE_SETUP_INTENT_SETUP_FAILED = 'setup_intent.setup_failed'; + const TYPE_SETUP_INTENT_SUCCEEDED = 'setup_intent.succeeded'; + const TYPE_SIGMA_SCHEDULED_QUERY_RUN_CREATED = 'sigma.scheduled_query_run.created'; + const TYPE_SOURCE_CANCELED = 'source.canceled'; + const TYPE_SOURCE_CHARGEABLE = 'source.chargeable'; + const TYPE_SOURCE_FAILED = 'source.failed'; + const TYPE_SOURCE_MANDATE_NOTIFICATION = 'source.mandate_notification'; + const TYPE_SOURCE_REFUND_ATTRIBUTES_REQUIRED = 'source.refund_attributes_required'; + const TYPE_SOURCE_TRANSACTION_CREATED = 'source.transaction.created'; + const TYPE_SOURCE_TRANSACTION_UPDATED = 'source.transaction.updated'; + const TYPE_SUBSCRIPTION_SCHEDULE_ABORTED = 'subscription_schedule.aborted'; + const TYPE_SUBSCRIPTION_SCHEDULE_CANCELED = 'subscription_schedule.canceled'; + const TYPE_SUBSCRIPTION_SCHEDULE_COMPLETED = 'subscription_schedule.completed'; + const TYPE_SUBSCRIPTION_SCHEDULE_CREATED = 'subscription_schedule.created'; + const TYPE_SUBSCRIPTION_SCHEDULE_EXPIRING = 'subscription_schedule.expiring'; + const TYPE_SUBSCRIPTION_SCHEDULE_RELEASED = 'subscription_schedule.released'; + const TYPE_SUBSCRIPTION_SCHEDULE_UPDATED = 'subscription_schedule.updated'; + const TYPE_TAX_RATE_CREATED = 'tax_rate.created'; + const TYPE_TAX_RATE_UPDATED = 'tax_rate.updated'; + const TYPE_TAX_SETTINGS_UPDATED = 'tax.settings.updated'; + const TYPE_TERMINAL_READER_ACTION_FAILED = 'terminal.reader.action_failed'; + const TYPE_TERMINAL_READER_ACTION_SUCCEEDED = 'terminal.reader.action_succeeded'; + const TYPE_TEST_HELPERS_TEST_CLOCK_ADVANCING = 'test_helpers.test_clock.advancing'; + const TYPE_TEST_HELPERS_TEST_CLOCK_CREATED = 'test_helpers.test_clock.created'; + const TYPE_TEST_HELPERS_TEST_CLOCK_DELETED = 'test_helpers.test_clock.deleted'; + const TYPE_TEST_HELPERS_TEST_CLOCK_INTERNAL_FAILURE = 'test_helpers.test_clock.internal_failure'; + const TYPE_TEST_HELPERS_TEST_CLOCK_READY = 'test_helpers.test_clock.ready'; + const TYPE_TOPUP_CANCELED = 'topup.canceled'; + const TYPE_TOPUP_CREATED = 'topup.created'; + const TYPE_TOPUP_FAILED = 'topup.failed'; + const TYPE_TOPUP_REVERSED = 'topup.reversed'; + const TYPE_TOPUP_SUCCEEDED = 'topup.succeeded'; + const TYPE_TRANSFER_CREATED = 'transfer.created'; + const TYPE_TRANSFER_REVERSED = 'transfer.reversed'; + const TYPE_TRANSFER_UPDATED = 'transfer.updated'; + const TYPE_TREASURY_CREDIT_REVERSAL_CREATED = 'treasury.credit_reversal.created'; + const TYPE_TREASURY_CREDIT_REVERSAL_POSTED = 'treasury.credit_reversal.posted'; + const TYPE_TREASURY_DEBIT_REVERSAL_COMPLETED = 'treasury.debit_reversal.completed'; + const TYPE_TREASURY_DEBIT_REVERSAL_CREATED = 'treasury.debit_reversal.created'; + const TYPE_TREASURY_DEBIT_REVERSAL_INITIAL_CREDIT_GRANTED = 'treasury.debit_reversal.initial_credit_granted'; + const TYPE_TREASURY_FINANCIAL_ACCOUNT_CLOSED = 'treasury.financial_account.closed'; + const TYPE_TREASURY_FINANCIAL_ACCOUNT_CREATED = 'treasury.financial_account.created'; + const TYPE_TREASURY_FINANCIAL_ACCOUNT_FEATURES_STATUS_UPDATED = 'treasury.financial_account.features_status_updated'; + const TYPE_TREASURY_INBOUND_TRANSFER_CANCELED = 'treasury.inbound_transfer.canceled'; + const TYPE_TREASURY_INBOUND_TRANSFER_CREATED = 'treasury.inbound_transfer.created'; + const TYPE_TREASURY_INBOUND_TRANSFER_FAILED = 'treasury.inbound_transfer.failed'; + const TYPE_TREASURY_INBOUND_TRANSFER_SUCCEEDED = 'treasury.inbound_transfer.succeeded'; + const TYPE_TREASURY_OUTBOUND_PAYMENT_CANCELED = 'treasury.outbound_payment.canceled'; + const TYPE_TREASURY_OUTBOUND_PAYMENT_CREATED = 'treasury.outbound_payment.created'; + const TYPE_TREASURY_OUTBOUND_PAYMENT_EXPECTED_ARRIVAL_DATE_UPDATED = 'treasury.outbound_payment.expected_arrival_date_updated'; + const TYPE_TREASURY_OUTBOUND_PAYMENT_FAILED = 'treasury.outbound_payment.failed'; + const TYPE_TREASURY_OUTBOUND_PAYMENT_POSTED = 'treasury.outbound_payment.posted'; + const TYPE_TREASURY_OUTBOUND_PAYMENT_RETURNED = 'treasury.outbound_payment.returned'; + const TYPE_TREASURY_OUTBOUND_PAYMENT_TRACKING_DETAILS_UPDATED = 'treasury.outbound_payment.tracking_details_updated'; + const TYPE_TREASURY_OUTBOUND_TRANSFER_CANCELED = 'treasury.outbound_transfer.canceled'; + const TYPE_TREASURY_OUTBOUND_TRANSFER_CREATED = 'treasury.outbound_transfer.created'; + const TYPE_TREASURY_OUTBOUND_TRANSFER_EXPECTED_ARRIVAL_DATE_UPDATED = 'treasury.outbound_transfer.expected_arrival_date_updated'; + const TYPE_TREASURY_OUTBOUND_TRANSFER_FAILED = 'treasury.outbound_transfer.failed'; + const TYPE_TREASURY_OUTBOUND_TRANSFER_POSTED = 'treasury.outbound_transfer.posted'; + const TYPE_TREASURY_OUTBOUND_TRANSFER_RETURNED = 'treasury.outbound_transfer.returned'; + const TYPE_TREASURY_OUTBOUND_TRANSFER_TRACKING_DETAILS_UPDATED = 'treasury.outbound_transfer.tracking_details_updated'; + const TYPE_TREASURY_RECEIVED_CREDIT_CREATED = 'treasury.received_credit.created'; + const TYPE_TREASURY_RECEIVED_CREDIT_FAILED = 'treasury.received_credit.failed'; + const TYPE_TREASURY_RECEIVED_CREDIT_SUCCEEDED = 'treasury.received_credit.succeeded'; + const TYPE_TREASURY_RECEIVED_DEBIT_CREATED = 'treasury.received_debit.created'; + + /** + * List events, going back up to 30 days. Each event data is rendered according to + * Stripe API version at its creation time, specified in event object + * api_version attribute (not according to your current Stripe API + * version or Stripe-Version header). + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\Event> of ApiResources + */ + public static function all($params = null, $opts = null) + { + $url = static::classUrl(); + + return static::_requestPage($url, \Stripe\Collection::class, $params, $opts); + } + + /** + * Retrieves the details of an event if it was created in the last 30 days. Supply + * the unique identifier of the event, which you might have received in a webhook. + * + * @param array|string $id the ID of the API resource to retrieve, or an options array containing an `id` key + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Event + */ + public static function retrieve($id, $opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + $instance = new static($id, $opts); + $instance->refresh(); + + return $instance; + } +} diff --git a/vendor/stripe/stripe-php/lib/EventData/V1BillingMeterErrorReportTriggeredEventData.php b/vendor/stripe/stripe-php/lib/EventData/V1BillingMeterErrorReportTriggeredEventData.php new file mode 100644 index 0000000..3c8535c --- /dev/null +++ b/vendor/stripe/stripe-php/lib/EventData/V1BillingMeterErrorReportTriggeredEventData.php @@ -0,0 +1,15 @@ +data when fetched from /v2/events. + * @property \Stripe\StripeObject $reason This contains information about why meter error happens. + * @property int $validation_end The end of the window that is encapsulated by this summary. + * @property int $validation_start The start of the window that is encapsulated by this summary. + */ +class V1BillingMeterErrorReportTriggeredEventData extends \Stripe\StripeObject +{ +} diff --git a/vendor/stripe/stripe-php/lib/EventData/V1BillingMeterNoMeterFoundEventData.php b/vendor/stripe/stripe-php/lib/EventData/V1BillingMeterNoMeterFoundEventData.php new file mode 100644 index 0000000..3c1d70a --- /dev/null +++ b/vendor/stripe/stripe-php/lib/EventData/V1BillingMeterNoMeterFoundEventData.php @@ -0,0 +1,15 @@ +data when fetched from /v2/events. + * @property \Stripe\StripeObject $reason This contains information about why meter error happens. + * @property int $validation_end The end of the window that is encapsulated by this summary. + * @property int $validation_start The start of the window that is encapsulated by this summary. + */ +class V1BillingMeterNoMeterFoundEventData extends \Stripe\StripeObject +{ +} diff --git a/vendor/stripe/stripe-php/lib/Events/V1BillingMeterErrorReportTriggeredEvent.php b/vendor/stripe/stripe-php/lib/Events/V1BillingMeterErrorReportTriggeredEvent.php new file mode 100644 index 0000000..894ed6a --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Events/V1BillingMeterErrorReportTriggeredEvent.php @@ -0,0 +1,46 @@ +related_object->url); + list($object, $options) = $this->_request( + 'get', + $this->related_object->url, + [], + ['stripe_account' => $this->context], + [], + $apiMode + ); + + return \Stripe\Util\Util::convertToStripeObject($object, $options, $apiMode); + } + + public static function constructFrom($values, $opts = null, $apiMode = 'v2') + { + $evt = parent::constructFrom($values, $opts, $apiMode); + if (null !== $evt->data) { + $evt->data = \Stripe\EventData\V1BillingMeterErrorReportTriggeredEventData::constructFrom($evt->data, $opts, $apiMode); + } + + return $evt; + } +} diff --git a/vendor/stripe/stripe-php/lib/Events/V1BillingMeterNoMeterFoundEvent.php b/vendor/stripe/stripe-php/lib/Events/V1BillingMeterNoMeterFoundEvent.php new file mode 100644 index 0000000..71356c5 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Events/V1BillingMeterNoMeterFoundEvent.php @@ -0,0 +1,23 @@ +data) { + $evt->data = \Stripe\EventData\V1BillingMeterNoMeterFoundEventData::constructFrom($evt->data, $opts, $apiMode); + } + + return $evt; + } +} diff --git a/vendor/stripe/stripe-php/lib/Exception/ApiConnectionException.php b/vendor/stripe/stripe-php/lib/Exception/ApiConnectionException.php new file mode 100644 index 0000000..33f2ede --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Exception/ApiConnectionException.php @@ -0,0 +1,12 @@ +setHttpStatus($httpStatus); + $instance->setHttpBody($httpBody); + $instance->setJsonBody($jsonBody); + $instance->setHttpHeaders($httpHeaders); + $instance->setStripeCode($stripeCode); + + $instance->setRequestId(null); + if ($httpHeaders && isset($httpHeaders['Request-Id'])) { + $instance->setRequestId($httpHeaders['Request-Id']); + } + + $instance->setError($instance->constructErrorObject()); + + return $instance; + } + + /** + * Gets the Stripe error object. + * + * @return null|\Stripe\ErrorObject + */ + public function getError() + { + return $this->error; + } + + /** + * Sets the Stripe error object. + * + * @param null|\Stripe\ErrorObject $error + */ + public function setError($error) + { + $this->error = $error; + } + + /** + * Gets the HTTP body as a string. + * + * @return null|string + */ + public function getHttpBody() + { + return $this->httpBody; + } + + /** + * Sets the HTTP body as a string. + * + * @param null|string $httpBody + */ + public function setHttpBody($httpBody) + { + $this->httpBody = $httpBody; + } + + /** + * Gets the HTTP headers array. + * + * @return null|array|\Stripe\Util\CaseInsensitiveArray + */ + public function getHttpHeaders() + { + return $this->httpHeaders; + } + + /** + * Sets the HTTP headers array. + * + * @param null|array|\Stripe\Util\CaseInsensitiveArray $httpHeaders + */ + public function setHttpHeaders($httpHeaders) + { + $this->httpHeaders = $httpHeaders; + } + + /** + * Gets the HTTP status code. + * + * @return null|int + */ + public function getHttpStatus() + { + return $this->httpStatus; + } + + /** + * Sets the HTTP status code. + * + * @param null|int $httpStatus + */ + public function setHttpStatus($httpStatus) + { + $this->httpStatus = $httpStatus; + } + + /** + * Gets the JSON deserialized body. + * + * @return null|array + */ + public function getJsonBody() + { + return $this->jsonBody; + } + + /** + * Sets the JSON deserialized body. + * + * @param null|array $jsonBody + */ + public function setJsonBody($jsonBody) + { + $this->jsonBody = $jsonBody; + } + + /** + * Gets the Stripe request ID. + * + * @return null|string + */ + public function getRequestId() + { + return $this->requestId; + } + + /** + * Sets the Stripe request ID. + * + * @param null|string $requestId + */ + public function setRequestId($requestId) + { + $this->requestId = $requestId; + } + + /** + * Gets the Stripe error code. + * + * Cf. the `CODE_*` constants on {@see \Stripe\ErrorObject} for possible + * values. + * + * @return null|string + */ + public function getStripeCode() + { + return $this->stripeCode; + } + + /** + * Sets the Stripe error code. + * + * @param null|string $stripeCode + */ + public function setStripeCode($stripeCode) + { + $this->stripeCode = $stripeCode; + } + + /** + * Returns the string representation of the exception. + * + * @return string + */ + public function __toString() + { + $parentStr = parent::__toString(); + $statusStr = (null === $this->getHttpStatus()) ? '' : "(Status {$this->getHttpStatus()}) "; + $idStr = (null === $this->getRequestId()) ? '' : "(Request {$this->getRequestId()}) "; + + return "Error sending request to Stripe: {$statusStr}{$idStr}{$this->getMessage()}\n{$parentStr}"; + } + + protected function constructErrorObject() + { + if (null === $this->jsonBody || !\array_key_exists('error', $this->jsonBody)) { + return null; + } + + return \Stripe\ErrorObject::constructFrom($this->jsonBody['error']); + } +} diff --git a/vendor/stripe/stripe-php/lib/Exception/AuthenticationException.php b/vendor/stripe/stripe-php/lib/Exception/AuthenticationException.php new file mode 100644 index 0000000..9e5c718 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Exception/AuthenticationException.php @@ -0,0 +1,11 @@ +setDeclineCode($declineCode); + $instance->setStripeParam($stripeParam); + + return $instance; + } + + /** + * Gets the decline code. + * + * @return null|string + */ + public function getDeclineCode() + { + return $this->declineCode; + } + + /** + * Sets the decline code. + * + * @param null|string $declineCode + */ + public function setDeclineCode($declineCode) + { + $this->declineCode = $declineCode; + } + + /** + * Gets the parameter related to the error. + * + * @return null|string + */ + public function getStripeParam() + { + return $this->stripeParam; + } + + /** + * Sets the parameter related to the error. + * + * @param null|string $stripeParam + */ + public function setStripeParam($stripeParam) + { + $this->stripeParam = $stripeParam; + } +} diff --git a/vendor/stripe/stripe-php/lib/Exception/ExceptionInterface.php b/vendor/stripe/stripe-php/lib/Exception/ExceptionInterface.php new file mode 100644 index 0000000..c84f37d --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Exception/ExceptionInterface.php @@ -0,0 +1,22 @@ +setStripeParam($stripeParam); + + return $instance; + } + + /** + * Gets the parameter related to the error. + * + * @return null|string + */ + public function getStripeParam() + { + return $this->stripeParam; + } + + /** + * Sets the parameter related to the error. + * + * @param null|string $stripeParam + */ + public function setStripeParam($stripeParam) + { + $this->stripeParam = $stripeParam; + } +} diff --git a/vendor/stripe/stripe-php/lib/Exception/OAuth/ExceptionInterface.php b/vendor/stripe/stripe-php/lib/Exception/OAuth/ExceptionInterface.php new file mode 100644 index 0000000..dd42662 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Exception/OAuth/ExceptionInterface.php @@ -0,0 +1,10 @@ +jsonBody) { + return null; + } + + return \Stripe\OAuthErrorObject::constructFrom($this->jsonBody); + } +} diff --git a/vendor/stripe/stripe-php/lib/Exception/OAuth/UnknownOAuthErrorException.php b/vendor/stripe/stripe-php/lib/Exception/OAuth/UnknownOAuthErrorException.php new file mode 100644 index 0000000..c8dba29 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Exception/OAuth/UnknownOAuthErrorException.php @@ -0,0 +1,12 @@ +setHttpBody($httpBody); + $instance->setSigHeader($sigHeader); + + return $instance; + } + + /** + * Gets the HTTP body as a string. + * + * @return null|string + */ + public function getHttpBody() + { + return $this->httpBody; + } + + /** + * Sets the HTTP body as a string. + * + * @param null|string $httpBody + */ + public function setHttpBody($httpBody) + { + $this->httpBody = $httpBody; + } + + /** + * Gets the `Stripe-Signature` HTTP header. + * + * @return null|string + */ + public function getSigHeader() + { + return $this->sigHeader; + } + + /** + * Sets the `Stripe-Signature` HTTP header. + * + * @param null|string $sigHeader + */ + public function setSigHeader($sigHeader) + { + $this->sigHeader = $sigHeader; + } +} diff --git a/vendor/stripe/stripe-php/lib/Exception/TemporarySessionExpiredException.php b/vendor/stripe/stripe-php/lib/Exception/TemporarySessionExpiredException.php new file mode 100644 index 0000000..cdab223 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Exception/TemporarySessionExpiredException.php @@ -0,0 +1,9 @@ +ExchangeRate objects allow you to determine the rates that Stripe is currently + * using to convert from one currency to another. Since this number is variable + * throughout the day, there are various reasons why you might want to know the current + * rate (for example, to dynamically price an item for a user with a default + * payment in a foreign currency). + * + * Please refer to our Exchange Rates API guide for more details. + * + * [Note: this integration path is supported but no longer recommended] Additionally, + * you can guarantee that a charge is made with an exchange rate that you expect is + * current. To do so, you must pass in the exchange_rate to charges endpoints. If the + * value is no longer up to date, the charge won't go through. Please refer to our + * Using with charges guide for more details. + * + * ----- + * + * + * + * This Exchange Rates API is a Beta Service and is subject to Stripe's terms of service. You may use the API solely for the purpose of transacting on Stripe. For example, the API may be queried in order to: + * + * - localize prices for processing payments on Stripe + * - reconcile Stripe transactions + * - determine how much money to send to a connected account + * - determine app fees to charge a connected account + * + * Using this Exchange Rates API beta for any purpose other than to transact on Stripe is strictly prohibited and constitutes a violation of Stripe's terms of service. + * + * @property string $id Unique identifier for the object. Represented as the three-letter ISO currency code in lowercase. + * @property string $object String representing the object's type. Objects of the same type share the same value. + * @property \Stripe\StripeObject $rates Hash where the keys are supported currencies and the values are the exchange rate at which the base id currency converts to the key currency. + */ +class ExchangeRate extends ApiResource +{ + const OBJECT_NAME = 'exchange_rate'; + + /** + * Returns a list of objects that contain the rates at which foreign currencies are + * converted to one another. Only shows the currencies for which Stripe supports. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\ExchangeRate> of ApiResources + */ + public static function all($params = null, $opts = null) + { + $url = static::classUrl(); + + return static::_requestPage($url, \Stripe\Collection::class, $params, $opts); + } + + /** + * Retrieves the exchange rates from the given currency to every supported + * currency. + * + * @param array|string $id the ID of the API resource to retrieve, or an options array containing an `id` key + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\ExchangeRate + */ + public static function retrieve($id, $opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + $instance = new static($id, $opts); + $instance->refresh(); + + return $instance; + } +} diff --git a/vendor/stripe/stripe-php/lib/File.php b/vendor/stripe/stripe-php/lib/File.php new file mode 100644 index 0000000..0a46fbc --- /dev/null +++ b/vendor/stripe/stripe-php/lib/File.php @@ -0,0 +1,120 @@ +create file request + * (for example, when uploading dispute evidence). Stripe also + * creates files independently (for example, the results of a Sigma scheduled + * query). + * + * Related guide: File upload guide + * + * @property string $id Unique identifier for the object. + * @property string $object String representing the object's type. Objects of the same type share the same value. + * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch. + * @property null|int $expires_at The file expires and isn't available at this time in epoch seconds. + * @property null|string $filename The suitable name for saving the file to a filesystem. + * @property null|\Stripe\Collection<\Stripe\FileLink> $links A list of file links that point at this file. + * @property string $purpose The purpose of the uploaded file. + * @property int $size The size of the file object in bytes. + * @property null|string $title A suitable title for the document. + * @property null|string $type The returned file type (for example, csv, pdf, jpg, or png). + * @property null|string $url Use your live secret API key to download the file from this URL. + */ +class File extends ApiResource +{ + const OBJECT_NAME = 'file'; + + const PURPOSE_ACCOUNT_REQUIREMENT = 'account_requirement'; + const PURPOSE_ADDITIONAL_VERIFICATION = 'additional_verification'; + const PURPOSE_BUSINESS_ICON = 'business_icon'; + const PURPOSE_BUSINESS_LOGO = 'business_logo'; + const PURPOSE_CUSTOMER_SIGNATURE = 'customer_signature'; + const PURPOSE_DISPUTE_EVIDENCE = 'dispute_evidence'; + const PURPOSE_DOCUMENT_PROVIDER_IDENTITY_DOCUMENT = 'document_provider_identity_document'; + const PURPOSE_FINANCE_REPORT_RUN = 'finance_report_run'; + const PURPOSE_FINANCIAL_ACCOUNT_STATEMENT = 'financial_account_statement'; + const PURPOSE_IDENTITY_DOCUMENT = 'identity_document'; + const PURPOSE_IDENTITY_DOCUMENT_DOWNLOADABLE = 'identity_document_downloadable'; + const PURPOSE_ISSUING_REGULATORY_REPORTING = 'issuing_regulatory_reporting'; + const PURPOSE_PCI_DOCUMENT = 'pci_document'; + const PURPOSE_SELFIE = 'selfie'; + const PURPOSE_SIGMA_SCHEDULED_QUERY = 'sigma_scheduled_query'; + const PURPOSE_TAX_DOCUMENT_USER_UPLOAD = 'tax_document_user_upload'; + const PURPOSE_TERMINAL_READER_SPLASHSCREEN = 'terminal_reader_splashscreen'; + + /** + * Returns a list of the files that your account has access to. Stripe sorts and + * returns the files by their creation dates, placing the most recently created + * files at the top. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\File> of ApiResources + */ + public static function all($params = null, $opts = null) + { + $url = static::classUrl(); + + return static::_requestPage($url, \Stripe\Collection::class, $params, $opts); + } + + /** + * Retrieves the details of an existing file object. After you supply a unique file + * ID, Stripe returns the corresponding file object. Learn how to access file contents. + * + * @param array|string $id the ID of the API resource to retrieve, or an options array containing an `id` key + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\File + */ + public static function retrieve($id, $opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + $instance = new static($id, $opts); + $instance->refresh(); + + return $instance; + } + + // This resource can have two different object names. In latter API + // versions, only `file` is used, but since stripe-php may be used with + // any API version, we need to support deserializing the older + // `file_upload` object into the same class. + const OBJECT_NAME_ALT = 'file_upload'; + + use ApiOperations\Create { + create as protected _create; + } + + /** + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\File the created file + */ + public static function create($params = null, $opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + if (null === $opts->apiBase) { + $opts->apiBase = Stripe::$apiUploadBase; + } + // Manually flatten params, otherwise curl's multipart encoder will + // choke on nested arrays. + $flatParams = \array_column(\Stripe\Util\Util::flattenParams($params), 1, 0); + + return static::_create($flatParams, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/FileLink.php b/vendor/stripe/stripe-php/lib/FileLink.php new file mode 100644 index 0000000..8c44922 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/FileLink.php @@ -0,0 +1,108 @@ +File object with non-Stripe users, you can + * create a FileLink. FileLinks contain a URL that you can use to + * retrieve the contents of the file without authentication. + * + * @property string $id Unique identifier for the object. + * @property string $object String representing the object's type. Objects of the same type share the same value. + * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch. + * @property bool $expired Returns if the link is already expired. + * @property null|int $expires_at Time that the link expires. + * @property string|\Stripe\File $file The file object this link points to. + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + * @property \Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + * @property null|string $url The publicly accessible URL to download the file. + */ +class FileLink extends ApiResource +{ + const OBJECT_NAME = 'file_link'; + + use ApiOperations\Update; + + /** + * Creates a new file link object. + * + * @param null|array $params + * @param null|array|string $options + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\FileLink the created resource + */ + public static function create($params = null, $options = null) + { + self::_validateParams($params); + $url = static::classUrl(); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $options); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * Returns a list of file links. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\FileLink> of ApiResources + */ + public static function all($params = null, $opts = null) + { + $url = static::classUrl(); + + return static::_requestPage($url, \Stripe\Collection::class, $params, $opts); + } + + /** + * Retrieves the file link with the given ID. + * + * @param array|string $id the ID of the API resource to retrieve, or an options array containing an `id` key + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\FileLink + */ + public static function retrieve($id, $opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + $instance = new static($id, $opts); + $instance->refresh(); + + return $instance; + } + + /** + * Updates an existing file link object. Expired links can no longer be updated. + * + * @param string $id the ID of the resource to update + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\FileLink the updated resource + */ + public static function update($id, $params = null, $opts = null) + { + self::_validateParams($params); + $url = static::resourceUrl($id); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $opts); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } +} diff --git a/vendor/stripe/stripe-php/lib/FinancialConnections/Account.php b/vendor/stripe/stripe-php/lib/FinancialConnections/Account.php new file mode 100644 index 0000000..e0f33d9 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/FinancialConnections/Account.php @@ -0,0 +1,172 @@ +subcategory. + * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch. + * @property null|string $display_name A human-readable name that has been assigned to this account, either by the account holder or by the institution. + * @property string $institution_name The name of the institution that holds this account. + * @property null|string $last4 The last 4 digits of the account number. If present, this will be 4 numeric characters. + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + * @property null|string|\Stripe\FinancialConnections\AccountOwnership $ownership The most recent information about the account's owners. + * @property null|\Stripe\StripeObject $ownership_refresh The state of the most recent attempt to refresh the account owners. + * @property null|string[] $permissions The list of permissions granted by this account. + * @property string $status The status of the link to the account. + * @property string $subcategory

    If category is cash, one of:

    - checking - savings - other

    If category is credit, one of:

    - mortgage - line_of_credit - credit_card - other

    If category is investment or other, this will be other.

    + * @property null|string[] $subscriptions The list of data refresh subscriptions requested on this account. + * @property string[] $supported_payment_method_types The PaymentMethod type(s) that can be created from this account. + * @property null|\Stripe\StripeObject $transaction_refresh The state of the most recent attempt to refresh the account transactions. + */ +class Account extends \Stripe\ApiResource +{ + const OBJECT_NAME = 'financial_connections.account'; + + const CATEGORY_CASH = 'cash'; + const CATEGORY_CREDIT = 'credit'; + const CATEGORY_INVESTMENT = 'investment'; + const CATEGORY_OTHER = 'other'; + + const STATUS_ACTIVE = 'active'; + const STATUS_DISCONNECTED = 'disconnected'; + const STATUS_INACTIVE = 'inactive'; + + const SUBCATEGORY_CHECKING = 'checking'; + const SUBCATEGORY_CREDIT_CARD = 'credit_card'; + const SUBCATEGORY_LINE_OF_CREDIT = 'line_of_credit'; + const SUBCATEGORY_MORTGAGE = 'mortgage'; + const SUBCATEGORY_OTHER = 'other'; + const SUBCATEGORY_SAVINGS = 'savings'; + + /** + * Returns a list of Financial Connections Account objects. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\FinancialConnections\Account> of ApiResources + */ + public static function all($params = null, $opts = null) + { + $url = static::classUrl(); + + return static::_requestPage($url, \Stripe\Collection::class, $params, $opts); + } + + /** + * Retrieves the details of an Financial Connections Account. + * + * @param array|string $id the ID of the API resource to retrieve, or an options array containing an `id` key + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\FinancialConnections\Account + */ + public static function retrieve($id, $opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + $instance = new static($id, $opts); + $instance->refresh(); + + return $instance; + } + + /** + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\FinancialConnections\Account the disconnected account + */ + public function disconnect($params = null, $opts = null) + { + $url = $this->instanceUrl() . '/disconnect'; + list($response, $opts) = $this->_request('post', $url, $params, $opts); + $this->refreshFrom($response, $opts); + + return $this; + } + + /** + * @param string $id + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\FinancialConnections\AccountOwner> list of account owners + */ + public static function allOwners($id, $params = null, $opts = null) + { + $url = static::resourceUrl($id) . '/owners'; + list($response, $opts) = static::_staticRequest('get', $url, $params, $opts); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\FinancialConnections\Account the refreshed account + */ + public function refreshAccount($params = null, $opts = null) + { + $url = $this->instanceUrl() . '/refresh'; + list($response, $opts) = $this->_request('post', $url, $params, $opts); + $this->refreshFrom($response, $opts); + + return $this; + } + + /** + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\FinancialConnections\Account the subscribed account + */ + public function subscribe($params = null, $opts = null) + { + $url = $this->instanceUrl() . '/subscribe'; + list($response, $opts) = $this->_request('post', $url, $params, $opts); + $this->refreshFrom($response, $opts); + + return $this; + } + + /** + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\FinancialConnections\Account the unsubscribed account + */ + public function unsubscribe($params = null, $opts = null) + { + $url = $this->instanceUrl() . '/unsubscribe'; + list($response, $opts) = $this->_request('post', $url, $params, $opts); + $this->refreshFrom($response, $opts); + + return $this; + } +} diff --git a/vendor/stripe/stripe-php/lib/FinancialConnections/AccountOwner.php b/vendor/stripe/stripe-php/lib/FinancialConnections/AccountOwner.php new file mode 100644 index 0000000..57d0a7b --- /dev/null +++ b/vendor/stripe/stripe-php/lib/FinancialConnections/AccountOwner.php @@ -0,0 +1,22 @@ + $owners A paginated list of owners for this account. + */ +class AccountOwnership extends \Stripe\ApiResource +{ + const OBJECT_NAME = 'financial_connections.account_ownership'; +} diff --git a/vendor/stripe/stripe-php/lib/FinancialConnections/Session.php b/vendor/stripe/stripe-php/lib/FinancialConnections/Session.php new file mode 100644 index 0000000..1bfd2af --- /dev/null +++ b/vendor/stripe/stripe-php/lib/FinancialConnections/Session.php @@ -0,0 +1,67 @@ + $accounts The accounts that were collected as part of this Session. + * @property string $client_secret A value that will be passed to the client to launch the authentication flow. + * @property null|\Stripe\StripeObject $filters + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + * @property string[] $permissions Permissions requested for accounts collected during this session. + * @property null|string[] $prefetch Data features requested to be retrieved upon account creation. + * @property null|string $return_url For webview integrations only. Upon completing OAuth login in the native browser, the user will be redirected to this URL to return to your app. + */ +class Session extends \Stripe\ApiResource +{ + const OBJECT_NAME = 'financial_connections.session'; + + /** + * To launch the Financial Connections authorization flow, create a + * Session. The session’s client_secret can be used to + * launch the flow using Stripe.js. + * + * @param null|array $params + * @param null|array|string $options + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\FinancialConnections\Session the created resource + */ + public static function create($params = null, $options = null) + { + self::_validateParams($params); + $url = static::classUrl(); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $options); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * Retrieves the details of a Financial Connections Session. + * + * @param array|string $id the ID of the API resource to retrieve, or an options array containing an `id` key + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\FinancialConnections\Session + */ + public static function retrieve($id, $opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + $instance = new static($id, $opts); + $instance->refresh(); + + return $instance; + } +} diff --git a/vendor/stripe/stripe-php/lib/FinancialConnections/Transaction.php b/vendor/stripe/stripe-php/lib/FinancialConnections/Transaction.php new file mode 100644 index 0000000..8f90ab6 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/FinancialConnections/Transaction.php @@ -0,0 +1,66 @@ +ISO currency code, in lowercase. Must be a supported currency. + * @property string $description The description of this transaction. + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + * @property string $status The status of the transaction. + * @property \Stripe\StripeObject $status_transitions + * @property int $transacted_at Time at which the transaction was transacted. Measured in seconds since the Unix epoch. + * @property string $transaction_refresh The token of the transaction refresh that last updated or created this transaction. + * @property int $updated Time at which the object was last updated. Measured in seconds since the Unix epoch. + */ +class Transaction extends \Stripe\ApiResource +{ + const OBJECT_NAME = 'financial_connections.transaction'; + + const STATUS_PENDING = 'pending'; + const STATUS_POSTED = 'posted'; + const STATUS_VOID = 'void'; + + /** + * Returns a list of Financial Connections Transaction objects. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\FinancialConnections\Transaction> of ApiResources + */ + public static function all($params = null, $opts = null) + { + $url = static::classUrl(); + + return static::_requestPage($url, \Stripe\Collection::class, $params, $opts); + } + + /** + * Retrieves the details of a Financial Connections Transaction. + * + * @param array|string $id the ID of the API resource to retrieve, or an options array containing an `id` key + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\FinancialConnections\Transaction + */ + public static function retrieve($id, $opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + $instance = new static($id, $opts); + $instance->refresh(); + + return $instance; + } +} diff --git a/vendor/stripe/stripe-php/lib/Forwarding/Request.php b/vendor/stripe/stripe-php/lib/Forwarding/Request.php new file mode 100644 index 0000000..24efc5a --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Forwarding/Request.php @@ -0,0 +1,98 @@ +Forward card details to third-party API endpoints. + * + * @property string $id Unique identifier for the object. + * @property string $object String representing the object's type. Objects of the same type share the same value. + * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch. + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + * @property null|\Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + * @property string $payment_method The PaymentMethod to insert into the forwarded request. Forwarding previously consumed PaymentMethods is allowed. + * @property string[] $replacements The field kinds to be replaced in the forwarded request. + * @property null|\Stripe\StripeObject $request_context Context about the request from Stripe's servers to the destination endpoint. + * @property null|\Stripe\StripeObject $request_details The request that was sent to the destination endpoint. We redact any sensitive fields. + * @property null|\Stripe\StripeObject $response_details The response that the destination endpoint returned to us. We redact any sensitive fields. + * @property null|string $url The destination URL for the forwarded request. Must be supported by the config. + */ +class Request extends \Stripe\ApiResource +{ + const OBJECT_NAME = 'forwarding.request'; + + /** + * Creates a ForwardingRequest object. + * + * @param null|array $params + * @param null|array|string $options + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Forwarding\Request the created resource + */ + public static function create($params = null, $options = null) + { + self::_validateParams($params); + $url = static::classUrl(); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $options); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * Lists all ForwardingRequest objects. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\Forwarding\Request> of ApiResources + */ + public static function all($params = null, $opts = null) + { + $url = static::classUrl(); + + return static::_requestPage($url, \Stripe\Collection::class, $params, $opts); + } + + /** + * Retrieves a ForwardingRequest object. + * + * @param array|string $id the ID of the API resource to retrieve, or an options array containing an `id` key + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Forwarding\Request + */ + public static function retrieve($id, $opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + $instance = new static($id, $opts); + $instance->refresh(); + + return $instance; + } +} diff --git a/vendor/stripe/stripe-php/lib/FundingInstructions.php b/vendor/stripe/stripe-php/lib/FundingInstructions.php new file mode 100644 index 0000000..0632a31 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/FundingInstructions.php @@ -0,0 +1,25 @@ +balance that is + * automatically applied to future invoices and payments using the customer_balance payment method. + * Customers can fund this balance by initiating a bank transfer to any account in the + * financial_addresses field. + * Related guide: Customer balance funding instructions. + * + * @property string $object String representing the object's type. Objects of the same type share the same value. + * @property \Stripe\StripeObject $bank_transfer + * @property string $currency Three-letter ISO currency code, in lowercase. Must be a supported currency. + * @property string $funding_type The funding_type of the returned instructions + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + */ +class FundingInstructions extends ApiResource +{ + const OBJECT_NAME = 'funding_instructions'; + + const FUNDING_TYPE_BANK_TRANSFER = 'bank_transfer'; +} diff --git a/vendor/stripe/stripe-php/lib/HttpClient/ClientInterface.php b/vendor/stripe/stripe-php/lib/HttpClient/ClientInterface.php new file mode 100644 index 0000000..47f61d5 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/HttpClient/ClientInterface.php @@ -0,0 +1,23 @@ +defaultOptions = $defaultOptions; + $this->randomGenerator = $randomGenerator ?: new Util\RandomGenerator(); + $this->initUserAgentInfo(); + + $this->enableHttp2 = $this->canSafelyUseHttp2(); + } + + public function __destruct() + { + $this->closeCurlHandle(); + } + + public function initUserAgentInfo() + { + $curlVersion = \curl_version(); + $this->userAgentInfo = [ + 'httplib' => 'curl ' . $curlVersion['version'], + 'ssllib' => $curlVersion['ssl_version'], + ]; + } + + public function getDefaultOptions() + { + return $this->defaultOptions; + } + + public function getUserAgentInfo() + { + return $this->userAgentInfo; + } + + /** + * @return bool + */ + public function getEnablePersistentConnections() + { + return $this->enablePersistentConnections; + } + + /** + * @param bool $enable + */ + public function setEnablePersistentConnections($enable) + { + $this->enablePersistentConnections = $enable; + } + + /** + * @return bool + */ + public function getEnableHttp2() + { + return $this->enableHttp2; + } + + /** + * @param bool $enable + */ + public function setEnableHttp2($enable) + { + $this->enableHttp2 = $enable; + } + + /** + * @return null|callable + */ + public function getRequestStatusCallback() + { + return $this->requestStatusCallback; + } + + /** + * Sets a callback that is called after each request. The callback will + * receive the following parameters: + *
      + *
    1. string $rbody The response body
    2. + *
    3. integer $rcode The response status code
    4. + *
    5. \Stripe\Util\CaseInsensitiveArray $rheaders The response headers
    6. + *
    7. integer $errno The curl error number
    8. + *
    9. string|null $message The curl error message
    10. + *
    11. boolean $shouldRetry Whether the request will be retried
    12. + *
    13. integer $numRetries The number of the retry attempt
    14. + *
    . + * + * @param null|callable $requestStatusCallback + */ + public function setRequestStatusCallback($requestStatusCallback) + { + $this->requestStatusCallback = $requestStatusCallback; + } + + // USER DEFINED TIMEOUTS + + const DEFAULT_TIMEOUT = 80; + const DEFAULT_CONNECT_TIMEOUT = 30; + + private $timeout = self::DEFAULT_TIMEOUT; + private $connectTimeout = self::DEFAULT_CONNECT_TIMEOUT; + + public function setTimeout($seconds) + { + $this->timeout = (int) \max($seconds, 0); + + return $this; + } + + public function setConnectTimeout($seconds) + { + $this->connectTimeout = (int) \max($seconds, 0); + + return $this; + } + + public function getTimeout() + { + return $this->timeout; + } + + public function getConnectTimeout() + { + return $this->connectTimeout; + } + + // END OF USER DEFINED TIMEOUTS + + /** + * @param 'delete'|'get'|'post' $method + * @param string $absUrl + * @param string $params + * @param bool $hasFile + * @param 'v1'|'v2' $apiMode + */ + private function constructUrlAndBody($method, $absUrl, $params, $hasFile, $apiMode) + { + $params = Util\Util::objectsToIds($params); + if ('post' === $method) { + $absUrl = Util\Util::utf8($absUrl); + if ($hasFile) { + return [$absUrl, $params]; + } + if ('v2' === $apiMode) { + if (\is_array($params) && 0 === \count($params)) { + // Send a request with empty body if we have no params set + // Setting the second parameter as null prevents the CURLOPT_POSTFIELDS + // from being set with the '[]', which is result of `json_encode([]). + return [$absUrl, null]; + } + + return [$absUrl, \json_encode($params)]; + } + + return [$absUrl, Util\Util::encodeParameters($params)]; + } + if ($hasFile) { + throw new Exception\UnexpectedValueException("Unexpected. {$method} methods don't support file attachments"); + } + if (0 === \count($params)) { + return [Util\Util::utf8($absUrl), null]; + } + $encoded = Util\Util::encodeParameters($params, $apiMode); + + $absUrl = "{$absUrl}?{$encoded}"; + $absUrl = Util\Util::utf8($absUrl); + + return [$absUrl, null]; + } + + private function calculateDefaultOptions($method, $absUrl, $headers, $params, $hasFile) + { + if (\is_callable($this->defaultOptions)) { // call defaultOptions callback, set options to return value + $ret = \call_user_func_array($this->defaultOptions, [$method, $absUrl, $headers, $params, $hasFile]); + if (!\is_array($ret)) { + throw new Exception\UnexpectedValueException('Non-array value returned by defaultOptions CurlClient callback'); + } + + return $ret; + } + if (\is_array($this->defaultOptions)) { // set default curlopts from array + return $this->defaultOptions; + } + + return []; + } + + private function constructCurlOptions($method, $absUrl, $headers, $body, $opts, $apiMode) + { + if ('get' === $method) { + $opts[\CURLOPT_HTTPGET] = 1; + } elseif ('post' === $method) { + $opts[\CURLOPT_POST] = 1; + } elseif ('delete' === $method) { + $opts[\CURLOPT_CUSTOMREQUEST] = 'DELETE'; + } else { + throw new Exception\UnexpectedValueException("Unrecognized method {$method}"); + } + + if ($body) { + $opts[\CURLOPT_POSTFIELDS] = $body; + } + // this is a little verbose, but makes v1 vs v2 behavior really clear + if (!$this->hasHeader($headers, 'Idempotency-Key')) { + // all v2 requests should have an IK + if ('v2' === $apiMode) { + if ('post' === $method || 'delete' === $method) { + $headers[] = 'Idempotency-Key: ' . $this->randomGenerator->uuid(); + } + } else { + // v1 requests should keep old behavior for consistency + if ('post' === $method && Stripe::$maxNetworkRetries > 0) { + $headers[] = 'Idempotency-Key: ' . $this->randomGenerator->uuid(); + } + } + } + + // By default for large request body sizes (> 1024 bytes), cURL will + // send a request without a body and with a `Expect: 100-continue` + // header, which gives the server a chance to respond with an error + // status code in cases where one can be determined right away (say + // on an authentication problem for example), and saves the "large" + // request body from being ever sent. + // + // Unfortunately, the bindings don't currently correctly handle the + // success case (in which the server sends back a 100 CONTINUE), so + // we'll error under that condition. To compensate for that problem + // for the time being, override cURL's behavior by simply always + // sending an empty `Expect:` header. + $headers[] = 'Expect: '; + + $opts[\CURLOPT_URL] = $absUrl; + $opts[\CURLOPT_RETURNTRANSFER] = true; + $opts[\CURLOPT_CONNECTTIMEOUT] = $this->connectTimeout; + $opts[\CURLOPT_TIMEOUT] = $this->timeout; + $opts[\CURLOPT_HTTPHEADER] = $headers; + $opts[\CURLOPT_CAINFO] = Stripe::getCABundlePath(); + if (!Stripe::getVerifySslCerts()) { + $opts[\CURLOPT_SSL_VERIFYPEER] = false; + } + + if (!isset($opts[\CURLOPT_HTTP_VERSION]) && $this->getEnableHttp2()) { + // For HTTPS requests, enable HTTP/2, if supported + $opts[\CURLOPT_HTTP_VERSION] = \CURL_HTTP_VERSION_2TLS; + } + + return $opts; + } + + /** + * @param 'delete'|'get'|'post' $method + * @param string $absUrl + * @param array $headers + * @param array $params + * @param bool $hasFile + * @param 'v1'|'v2' $apiMode + */ + private function constructRequest($method, $absUrl, $headers, $params, $hasFile, $apiMode) + { + $method = \strtolower($method); + + $opts = $this->calculateDefaultOptions($method, $absUrl, $headers, $params, $hasFile); + list($absUrl, $body) = $this->constructUrlAndBody($method, $absUrl, $params, $hasFile, $apiMode); + $opts = $this->constructCurlOptions($method, $absUrl, $headers, $body, $opts, $apiMode); + + return [$opts, $absUrl]; + } + + /** + * @param 'delete'|'get'|'post' $method + * @param string $absUrl + * @param array $headers + * @param array $params + * @param bool $hasFile + * @param 'v1'|'v2' $apiMode + */ + public function request($method, $absUrl, $headers, $params, $hasFile, $apiMode = 'v1') + { + list($opts, $absUrl) = $this->constructRequest($method, $absUrl, $headers, $params, $hasFile, $apiMode); + list($rbody, $rcode, $rheaders) = $this->executeRequestWithRetries($opts, $absUrl); + + return [$rbody, $rcode, $rheaders]; + } + + /** + * @param 'delete'|'get'|'post' $method + * @param string $absUrl + * @param array $headers + * @param array $params + * @param bool $hasFile + * @param callable $readBodyChunk + * @param 'v1'|'v2' $apiMode + */ + public function requestStream($method, $absUrl, $headers, $params, $hasFile, $readBodyChunk, $apiMode = 'v1') + { + list($opts, $absUrl) = $this->constructRequest($method, $absUrl, $headers, $params, $hasFile, $apiMode); + $opts[\CURLOPT_RETURNTRANSFER] = false; + list($rbody, $rcode, $rheaders) = $this->executeStreamingRequestWithRetries($opts, $absUrl, $readBodyChunk); + + return [$rbody, $rcode, $rheaders]; + } + + /** + * Curl permits sending \CURLOPT_HEADERFUNCTION, which is called with lines + * from the header and \CURLOPT_WRITEFUNCTION, which is called with bytes + * from the body. You usually want to handle the body differently depending + * on what was in the header. + * + * This function makes it easier to specify different callbacks depending + * on the contents of the heeder. After the header has been completely read + * and the body begins to stream, it will call $determineWriteCallback with + * the array of headers. $determineWriteCallback should, based on the + * headers it receives, return a "writeCallback" that describes what to do + * with the incoming HTTP response body. + * + * @param array $opts + * @param callable $determineWriteCallback + * + * @return array + */ + private function useHeadersToDetermineWriteCallback($opts, $determineWriteCallback) + { + $rheaders = new Util\CaseInsensitiveArray(); + $headerCallback = function ($curl, $header_line) use (&$rheaders) { + return self::parseLineIntoHeaderArray($header_line, $rheaders); + }; + + $writeCallback = null; + $writeCallbackWrapper = function ($curl, $data) use (&$writeCallback, &$rheaders, &$determineWriteCallback) { + if (null === $writeCallback) { + $writeCallback = \call_user_func_array($determineWriteCallback, [$rheaders]); + } + + return \call_user_func_array($writeCallback, [$curl, $data]); + }; + + return [$headerCallback, $writeCallbackWrapper]; + } + + private static function parseLineIntoHeaderArray($line, &$headers) + { + if (false === \strpos($line, ':')) { + return \strlen($line); + } + list($key, $value) = \explode(':', \trim($line), 2); + $headers[\trim($key)] = \trim($value); + + return \strlen($line); + } + + /** + * Like `executeRequestWithRetries` except: + * 1. Does not buffer the body of a successful (status code < 300) + * response into memory -- instead, calls the caller-provided + * $readBodyChunk with each chunk of incoming data. + * 2. Does not retry if a network error occurs while streaming the + * body of a successful response. + * + * @param array $opts cURL options + * @param string $absUrl + * @param callable $readBodyChunk + * + * @return array + */ + public function executeStreamingRequestWithRetries($opts, $absUrl, $readBodyChunk) + { + /** @var bool */ + $shouldRetry = false; + /** @var int */ + $numRetries = 0; + + // Will contain the bytes of the body of the last request + // if it was not successful and should not be retries + /** @var null|string */ + $rbody = null; + + // Status code of the last request + /** @var null|bool */ + $rcode = null; + + // Array of headers from the last request + /** @var null|array */ + $lastRHeaders = null; + + $errno = null; + $message = null; + + $determineWriteCallback = function ($rheaders) use (&$readBodyChunk, &$shouldRetry, &$rbody, &$numRetries, &$rcode, &$lastRHeaders, &$errno) { + $lastRHeaders = $rheaders; + $errno = \curl_errno($this->curlHandle); + + $rcode = \curl_getinfo($this->curlHandle, \CURLINFO_HTTP_CODE); + + // Send the bytes from the body of a successful request to the caller-provided $readBodyChunk. + if ($rcode < 300) { + $rbody = null; + + return function ($curl, $data) use (&$readBodyChunk) { + // Don't expose the $curl handle to the user, and don't require them to + // return the length of $data. + \call_user_func_array($readBodyChunk, [$data]); + + return \strlen($data); + }; + } + + $shouldRetry = $this->shouldRetry($errno, $rcode, $rheaders, $numRetries); + + // Discard the body from an unsuccessful request that should be retried. + if ($shouldRetry) { + return function ($curl, $data) { + return \strlen($data); + }; + } else { + // Otherwise, buffer the body into $rbody. It will need to be parsed to determine + // which exception to throw to the user. + $rbody = ''; + + return function ($curl, $data) use (&$rbody) { + $rbody .= $data; + + return \strlen($data); + }; + } + }; + + while (true) { + list($headerCallback, $writeCallback) = $this->useHeadersToDetermineWriteCallback($opts, $determineWriteCallback); + $opts[\CURLOPT_HEADERFUNCTION] = $headerCallback; + $opts[\CURLOPT_WRITEFUNCTION] = $writeCallback; + + $shouldRetry = false; + $rbody = null; + $this->resetCurlHandle(); + \curl_setopt_array($this->curlHandle, $opts); + $result = \curl_exec($this->curlHandle); + $errno = \curl_errno($this->curlHandle); + if (0 !== $errno) { + $message = \curl_error($this->curlHandle); + } + if (!$this->getEnablePersistentConnections()) { + $this->closeCurlHandle(); + } + + if (\is_callable($this->getRequestStatusCallback())) { + \call_user_func_array( + $this->getRequestStatusCallback(), + [$rbody, $rcode, $lastRHeaders, $errno, $message, $shouldRetry, $numRetries] + ); + } + + if ($shouldRetry) { + ++$numRetries; + $sleepSeconds = $this->sleepTime($numRetries, $lastRHeaders); + \usleep((int) ($sleepSeconds * 1000000)); + } else { + break; + } + } + + if (0 !== $errno) { + $this->handleCurlError($absUrl, $errno, $message, $numRetries); + } + + return [$rbody, $rcode, $lastRHeaders]; + } + + /** + * @param array $opts cURL options + * @param string $absUrl + */ + public function executeRequestWithRetries($opts, $absUrl) + { + $numRetries = 0; + + while (true) { + $rcode = 0; + $errno = 0; + $message = null; + + // Create a callback to capture HTTP headers for the response + $rheaders = new Util\CaseInsensitiveArray(); + $headerCallback = function ($curl, $header_line) use (&$rheaders) { + return CurlClient::parseLineIntoHeaderArray($header_line, $rheaders); + }; + $opts[\CURLOPT_HEADERFUNCTION] = $headerCallback; + + $this->resetCurlHandle(); + \curl_setopt_array($this->curlHandle, $opts); + $rbody = \curl_exec($this->curlHandle); + + if (false === $rbody) { + $errno = \curl_errno($this->curlHandle); + $message = \curl_error($this->curlHandle); + } else { + $rcode = \curl_getinfo($this->curlHandle, \CURLINFO_HTTP_CODE); + } + if (!$this->getEnablePersistentConnections()) { + $this->closeCurlHandle(); + } + + $shouldRetry = $this->shouldRetry($errno, $rcode, $rheaders, $numRetries); + + if (\is_callable($this->getRequestStatusCallback())) { + \call_user_func_array( + $this->getRequestStatusCallback(), + [$rbody, $rcode, $rheaders, $errno, $message, $shouldRetry, $numRetries] + ); + } + + if ($shouldRetry) { + ++$numRetries; + $sleepSeconds = $this->sleepTime($numRetries, $rheaders); + \usleep((int) ($sleepSeconds * 1000000)); + } else { + break; + } + } + + if (false === $rbody) { + $this->handleCurlError($absUrl, $errno, $message, $numRetries); + } + + return [$rbody, $rcode, $rheaders]; + } + + /** + * @param string $url + * @param int $errno + * @param string $message + * @param int $numRetries + * + * @throws Exception\ApiConnectionException + */ + private function handleCurlError($url, $errno, $message, $numRetries) + { + switch ($errno) { + case \CURLE_COULDNT_CONNECT: + case \CURLE_COULDNT_RESOLVE_HOST: + case \CURLE_OPERATION_TIMEOUTED: + $msg = "Could not connect to Stripe ({$url}). Please check your " + . 'internet connection and try again. If this problem persists, ' + . "you should check Stripe's service status at " + . 'https://twitter.com/stripestatus, or'; + + break; + + case \CURLE_SSL_CACERT: + case \CURLE_SSL_PEER_CERTIFICATE: + $msg = "Could not verify Stripe's SSL certificate. Please make sure " + . 'that your network is not intercepting certificates. ' + . "(Try going to {$url} in your browser.) " + . 'If this problem persists,'; + + break; + + default: + $msg = 'Unexpected error communicating with Stripe. ' + . 'If this problem persists,'; + } + $msg .= ' let us know at support@stripe.com.'; + + $msg .= "\n\n(Network error [errno {$errno}]: {$message})"; + + if ($numRetries > 0) { + $msg .= "\n\nRequest was retried {$numRetries} times."; + } + + throw new Exception\ApiConnectionException($msg); + } + + /** + * Checks if an error is a problem that we should retry on. This includes both + * socket errors that may represent an intermittent problem and some special + * HTTP statuses. + * + * @param int $errno + * @param int $rcode + * @param array|\Stripe\Util\CaseInsensitiveArray $rheaders + * @param int $numRetries + * + * @return bool + */ + private function shouldRetry($errno, $rcode, $rheaders, $numRetries) + { + if ($numRetries >= Stripe::getMaxNetworkRetries()) { + return false; + } + + // Retry on timeout-related problems (either on open or read). + if (\CURLE_OPERATION_TIMEOUTED === $errno) { + return true; + } + + // Destination refused the connection, the connection was reset, or a + // variety of other connection failures. This could occur from a single + // saturated server, so retry in case it's intermittent. + if (\CURLE_COULDNT_CONNECT === $errno) { + return true; + } + + // The API may ask us not to retry (eg; if doing so would be a no-op) + // or advise us to retry (eg; in cases of lock timeouts); we defer to that. + if (isset($rheaders['stripe-should-retry'])) { + if ('false' === $rheaders['stripe-should-retry']) { + return false; + } + if ('true' === $rheaders['stripe-should-retry']) { + return true; + } + } + + // 409 Conflict + if (409 === $rcode) { + return true; + } + + // Retry on 500, 503, and other internal errors. + // + // Note that we expect the stripe-should-retry header to be false + // in most cases when a 500 is returned, since our idempotency framework + // would typically replay it anyway. + if ($rcode >= 500) { + return true; + } + + return false; + } + + /** + * Provides the number of seconds to wait before retrying a request. + * + * @param int $numRetries + * @param array|\Stripe\Util\CaseInsensitiveArray $rheaders + * + * @return int + */ + private function sleepTime($numRetries, $rheaders) + { + // Apply exponential backoff with $initialNetworkRetryDelay on the + // number of $numRetries so far as inputs. Do not allow the number to exceed + // $maxNetworkRetryDelay. + $sleepSeconds = \min( + Stripe::getInitialNetworkRetryDelay() * 1.0 * 2 ** ($numRetries - 1), + Stripe::getMaxNetworkRetryDelay() + ); + + // Apply some jitter by randomizing the value in the range of + // ($sleepSeconds / 2) to ($sleepSeconds). + $sleepSeconds *= 0.5 * (1 + $this->randomGenerator->randFloat()); + + // But never sleep less than the base sleep seconds. + $sleepSeconds = \max(Stripe::getInitialNetworkRetryDelay(), $sleepSeconds); + + // And never sleep less than the time the API asks us to wait, assuming it's a reasonable ask. + $retryAfter = isset($rheaders['retry-after']) ? (float) ($rheaders['retry-after']) : 0.0; + if (\floor($retryAfter) === $retryAfter && $retryAfter <= Stripe::getMaxRetryAfter()) { + $sleepSeconds = \max($sleepSeconds, $retryAfter); + } + + return $sleepSeconds; + } + + /** + * Initializes the curl handle. If already initialized, the handle is closed first. + */ + private function initCurlHandle() + { + $this->closeCurlHandle(); + $this->curlHandle = \curl_init(); + } + + /** + * Closes the curl handle if initialized. Do nothing if already closed. + */ + private function closeCurlHandle() + { + if (null !== $this->curlHandle) { + \curl_close($this->curlHandle); + $this->curlHandle = null; + } + } + + /** + * Resets the curl handle. If the handle is not already initialized, or if persistent + * connections are disabled, the handle is reinitialized instead. + */ + private function resetCurlHandle() + { + if (null !== $this->curlHandle && $this->getEnablePersistentConnections()) { + \curl_reset($this->curlHandle); + } else { + $this->initCurlHandle(); + } + } + + /** + * Indicates whether it is safe to use HTTP/2 or not. + * + * @return bool + */ + private function canSafelyUseHttp2() + { + // Versions of curl older than 7.60.0 don't respect GOAWAY frames + // (cf. https://github.com/curl/curl/issues/2416), which Stripe use. + $curlVersion = \curl_version()['version']; + + return \version_compare($curlVersion, '7.60.0') >= 0; + } + + /** + * Checks if a list of headers contains a specific header name. + * + * @param string[] $headers + * @param string $name + * + * @return bool + */ + private function hasHeader($headers, $name) + { + foreach ($headers as $header) { + if (0 === \strncasecmp($header, "{$name}: ", \strlen($name) + 2)) { + return true; + } + } + + return false; + } +} diff --git a/vendor/stripe/stripe-php/lib/HttpClient/StreamingClientInterface.php b/vendor/stripe/stripe-php/lib/HttpClient/StreamingClientInterface.php new file mode 100644 index 0000000..7612c94 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/HttpClient/StreamingClientInterface.php @@ -0,0 +1,23 @@ +type and options + * parameters used. You can find the result of each verification check performed in the + * appropriate sub-resource: document, id_number, selfie. + * + * Each VerificationReport contains a copy of any data collected by the user as well as + * reference IDs which can be used to access collected images through the FileUpload + * API. To configure and create VerificationReports, use the + * VerificationSession API. + * + * Related guide: Accessing verification results. + * + * @property string $id Unique identifier for the object. + * @property string $object String representing the object's type. Objects of the same type share the same value. + * @property null|string $client_reference_id A string to reference this user. This can be a customer ID, a session ID, or similar, and can be used to reconcile this verification with your internal systems. + * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch. + * @property null|\Stripe\StripeObject $document Result from a document check + * @property null|\Stripe\StripeObject $email Result from a email check + * @property null|\Stripe\StripeObject $id_number Result from an id_number check + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + * @property null|\Stripe\StripeObject $options + * @property null|\Stripe\StripeObject $phone Result from a phone check + * @property null|\Stripe\StripeObject $selfie Result from a selfie check + * @property string $type Type of report. + * @property null|string $verification_flow The configuration token of a verification flow from the dashboard. + * @property null|string $verification_session ID of the VerificationSession that created this report. + */ +class VerificationReport extends \Stripe\ApiResource +{ + const OBJECT_NAME = 'identity.verification_report'; + + const TYPE_DOCUMENT = 'document'; + const TYPE_ID_NUMBER = 'id_number'; + const TYPE_VERIFICATION_FLOW = 'verification_flow'; + + /** + * List all verification reports. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\Identity\VerificationReport> of ApiResources + */ + public static function all($params = null, $opts = null) + { + $url = static::classUrl(); + + return static::_requestPage($url, \Stripe\Collection::class, $params, $opts); + } + + /** + * Retrieves an existing VerificationReport. + * + * @param array|string $id the ID of the API resource to retrieve, or an options array containing an `id` key + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Identity\VerificationReport + */ + public static function retrieve($id, $opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + $instance = new static($id, $opts); + $instance->refresh(); + + return $instance; + } +} diff --git a/vendor/stripe/stripe-php/lib/Identity/VerificationSession.php b/vendor/stripe/stripe-php/lib/Identity/VerificationSession.php new file mode 100644 index 0000000..7adf5d0 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Identity/VerificationSession.php @@ -0,0 +1,185 @@ +verification + * check to perform. Only create one VerificationSession for + * each verification in your system. + * + * A VerificationSession transitions through multiple + * statuses throughout its lifetime as it progresses through + * the verification flow. The VerificationSession contains the user's verified data after + * verification checks are complete. + * + * Related guide: The Verification Sessions API + * + * @property string $id Unique identifier for the object. + * @property string $object String representing the object's type. Objects of the same type share the same value. + * @property null|string $client_reference_id A string to reference this user. This can be a customer ID, a session ID, or similar, and can be used to reconcile this verification with your internal systems. + * @property null|string $client_secret The short-lived client secret used by Stripe.js to show a verification modal inside your app. This client secret expires after 24 hours and can only be used once. Don’t store it, log it, embed it in a URL, or expose it to anyone other than the user. Make sure that you have TLS enabled on any page that includes the client secret. Refer to our docs on passing the client secret to the frontend to learn more. + * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch. + * @property null|\Stripe\StripeObject $last_error If present, this property tells you the last error encountered when processing the verification. + * @property null|string|\Stripe\Identity\VerificationReport $last_verification_report ID of the most recent VerificationReport. Learn more about accessing detailed verification results. + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + * @property \Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + * @property null|\Stripe\StripeObject $options A set of options for the session’s verification checks. + * @property null|\Stripe\StripeObject $provided_details Details provided about the user being verified. These details may be shown to the user. + * @property null|\Stripe\StripeObject $redaction Redaction status of this VerificationSession. If the VerificationSession is not redacted, this field will be null. + * @property null|string $related_customer Token referencing a Customer resource. + * @property string $status Status of this VerificationSession. Learn more about the lifecycle of sessions. + * @property string $type The type of verification check to be performed. + * @property null|string $url The short-lived URL that you use to redirect a user to Stripe to submit their identity information. This URL expires after 48 hours and can only be used once. Don’t store it, log it, send it in emails or expose it to anyone other than the user. Refer to our docs on verifying identity documents to learn how to redirect users to Stripe. + * @property null|string $verification_flow The configuration token of a verification flow from the dashboard. + * @property null|\Stripe\StripeObject $verified_outputs The user’s verified data. + */ +class VerificationSession extends \Stripe\ApiResource +{ + const OBJECT_NAME = 'identity.verification_session'; + + use \Stripe\ApiOperations\Update; + + const STATUS_CANCELED = 'canceled'; + const STATUS_PROCESSING = 'processing'; + const STATUS_REQUIRES_INPUT = 'requires_input'; + const STATUS_VERIFIED = 'verified'; + + const TYPE_DOCUMENT = 'document'; + const TYPE_ID_NUMBER = 'id_number'; + const TYPE_VERIFICATION_FLOW = 'verification_flow'; + + /** + * Creates a VerificationSession object. + * + * After the VerificationSession is created, display a verification modal using the + * session client_secret or send your users to the session’s + * url. + * + * If your API key is in test mode, verification checks won’t actually process, + * though everything else will occur as if in live mode. + * + * Related guide: Verify your + * users’ identity documents + * + * @param null|array $params + * @param null|array|string $options + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Identity\VerificationSession the created resource + */ + public static function create($params = null, $options = null) + { + self::_validateParams($params); + $url = static::classUrl(); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $options); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * Returns a list of VerificationSessions. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\Identity\VerificationSession> of ApiResources + */ + public static function all($params = null, $opts = null) + { + $url = static::classUrl(); + + return static::_requestPage($url, \Stripe\Collection::class, $params, $opts); + } + + /** + * Retrieves the details of a VerificationSession that was previously created. + * + * When the session status is requires_input, you can use this method + * to retrieve a valid client_secret or url to allow + * re-submission. + * + * @param array|string $id the ID of the API resource to retrieve, or an options array containing an `id` key + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Identity\VerificationSession + */ + public static function retrieve($id, $opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + $instance = new static($id, $opts); + $instance->refresh(); + + return $instance; + } + + /** + * Updates a VerificationSession object. + * + * When the session status is requires_input, you can use this method + * to update the verification check and options. + * + * @param string $id the ID of the resource to update + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Identity\VerificationSession the updated resource + */ + public static function update($id, $params = null, $opts = null) + { + self::_validateParams($params); + $url = static::resourceUrl($id); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $opts); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Identity\VerificationSession the canceled verification session + */ + public function cancel($params = null, $opts = null) + { + $url = $this->instanceUrl() . '/cancel'; + list($response, $opts) = $this->_request('post', $url, $params, $opts); + $this->refreshFrom($response, $opts); + + return $this; + } + + /** + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Identity\VerificationSession the redacted verification session + */ + public function redact($params = null, $opts = null) + { + $url = $this->instanceUrl() . '/redact'; + list($response, $opts) = $this->_request('post', $url, $params, $opts); + $this->refreshFrom($response, $opts); + + return $this; + } +} diff --git a/vendor/stripe/stripe-php/lib/Invoice.php b/vendor/stripe/stripe-php/lib/Invoice.php new file mode 100644 index 0000000..aba69de --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Invoice.php @@ -0,0 +1,496 @@ +invoice items, and proration adjustments + * that may be caused by subscription upgrades/downgrades (if necessary). + * + * If your invoice is configured to be billed through automatic charges, + * Stripe automatically finalizes your invoice and attempts payment. Note + * that finalizing the invoice, + * when automatic, does + * not happen immediately as the invoice is created. Stripe waits + * until one hour after the last webhook was successfully sent (or the last + * webhook timed out after failing). If you (and the platforms you may have + * connected to) have no webhooks configured, Stripe waits one hour after + * creation to finalize the invoice. + * + * If your invoice is configured to be billed by sending an email, then based on your + * email settings, + * Stripe will email the invoice to your customer and await payment. These + * emails can contain a link to a hosted page to pay the invoice. + * + * Stripe applies any customer credit on the account before determining the + * amount due for the invoice (i.e., the amount that will be actually + * charged). If the amount due for the invoice is less than Stripe's minimum allowed charge + * per currency, the + * invoice is automatically marked paid, and we add the amount due to the + * customer's credit balance which is applied to the next invoice. + * + * More details on the customer's credit balance are + * here. + * + * Related guide: Send invoices to customers + * + * @property null|string $id Unique identifier for the object. This property is always present unless the invoice is an upcoming invoice. See Retrieve an upcoming invoice for more details. + * @property string $object String representing the object's type. Objects of the same type share the same value. + * @property null|string $account_country The country of the business associated with this invoice, most often the business creating the invoice. + * @property null|string $account_name The public name of the business associated with this invoice, most often the business creating the invoice. + * @property null|(string|\Stripe\TaxId)[] $account_tax_ids The account tax IDs associated with the invoice. Only editable when the invoice is a draft. + * @property int $amount_due Final amount due at this time for this invoice. If the invoice's total is smaller than the minimum charge amount, for example, or if there is account credit that can be applied to the invoice, the amount_due may be 0. If there is a positive starting_balance for the invoice (the customer owes money), the amount_due will also take that into account. The charge that gets generated for the invoice will be for the amount specified in amount_due. + * @property int $amount_paid The amount, in cents (or local equivalent), that was paid. + * @property int $amount_remaining The difference between amount_due and amount_paid, in cents (or local equivalent). + * @property int $amount_shipping This is the sum of all the shipping amounts. + * @property null|string|\Stripe\Application $application ID of the Connect Application that created the invoice. + * @property null|int $application_fee_amount The fee in cents (or local equivalent) that will be applied to the invoice and transferred to the application owner's Stripe account when the invoice is paid. + * @property int $attempt_count Number of payment attempts made for this invoice, from the perspective of the payment retry schedule. Any payment attempt counts as the first attempt, and subsequently only automatic retries increment the attempt count. In other words, manual payment attempts after the first attempt do not affect the retry schedule. If a failure is returned with a non-retryable return code, the invoice can no longer be retried unless a new payment method is obtained. Retries will continue to be scheduled, and attempt_count will continue to increment, but retries will only be executed if a new payment method is obtained. + * @property bool $attempted Whether an attempt has been made to pay the invoice. An invoice is not attempted until 1 hour after the invoice.created webhook, for example, so you might not want to display that invoice as unpaid to your users. + * @property null|bool $auto_advance Controls whether Stripe performs automatic collection of the invoice. If false, the invoice's state doesn't automatically advance without an explicit action. + * @property \Stripe\StripeObject $automatic_tax + * @property null|int $automatically_finalizes_at The time when this invoice is currently scheduled to be automatically finalized. The field will be null if the invoice is not scheduled to finalize in the future. If the invoice is not in the draft state, this field will always be null - see finalized_at for the time when an already-finalized invoice was finalized. + * @property null|string $billing_reason

    Indicates the reason why the invoice was created.

    * manual: Unrelated to a subscription, for example, created via the invoice editor. * subscription: No longer in use. Applies to subscriptions from before May 2018 where no distinction was made between updates, cycles, and thresholds. * subscription_create: A new subscription was created. * subscription_cycle: A subscription advanced into a new period. * subscription_threshold: A subscription reached a billing threshold. * subscription_update: A subscription was updated. * upcoming: Reserved for simulated invoices, per the upcoming invoice endpoint.

    + * @property null|string|\Stripe\Charge $charge ID of the latest charge generated for this invoice, if any. + * @property string $collection_method Either charge_automatically, or send_invoice. When charging automatically, Stripe will attempt to pay this invoice using the default source attached to the customer. When sending an invoice, Stripe will email this invoice to the customer with payment instructions. + * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch. + * @property string $currency Three-letter ISO currency code, in lowercase. Must be a supported currency. + * @property null|\Stripe\StripeObject[] $custom_fields Custom fields displayed on the invoice. + * @property null|string|\Stripe\Customer $customer The ID of the customer who will be billed. + * @property null|\Stripe\StripeObject $customer_address The customer's address. Until the invoice is finalized, this field will equal customer.address. Once the invoice is finalized, this field will no longer be updated. + * @property null|string $customer_email The customer's email. Until the invoice is finalized, this field will equal customer.email. Once the invoice is finalized, this field will no longer be updated. + * @property null|string $customer_name The customer's name. Until the invoice is finalized, this field will equal customer.name. Once the invoice is finalized, this field will no longer be updated. + * @property null|string $customer_phone The customer's phone number. Until the invoice is finalized, this field will equal customer.phone. Once the invoice is finalized, this field will no longer be updated. + * @property null|\Stripe\StripeObject $customer_shipping The customer's shipping information. Until the invoice is finalized, this field will equal customer.shipping. Once the invoice is finalized, this field will no longer be updated. + * @property null|string $customer_tax_exempt The customer's tax exempt status. Until the invoice is finalized, this field will equal customer.tax_exempt. Once the invoice is finalized, this field will no longer be updated. + * @property null|\Stripe\StripeObject[] $customer_tax_ids The customer's tax IDs. Until the invoice is finalized, this field will contain the same tax IDs as customer.tax_ids. Once the invoice is finalized, this field will no longer be updated. + * @property null|string|\Stripe\PaymentMethod $default_payment_method ID of the default payment method for the invoice. It must belong to the customer associated with the invoice. If not set, defaults to the subscription's default payment method, if any, or to the default payment method in the customer's invoice settings. + * @property null|string|\Stripe\Account|\Stripe\BankAccount|\Stripe\Card|\Stripe\Source $default_source ID of the default payment source for the invoice. It must belong to the customer associated with the invoice and be in a chargeable state. If not set, defaults to the subscription's default source, if any, or to the customer's default source. + * @property \Stripe\TaxRate[] $default_tax_rates The tax rates applied to this invoice, if any. + * @property null|string $description An arbitrary string attached to the object. Often useful for displaying to users. Referenced as 'memo' in the Dashboard. + * @property null|\Stripe\Discount $discount Describes the current discount applied to this invoice, if there is one. Not populated if there are multiple discounts. + * @property (string|\Stripe\Discount)[] $discounts The discounts applied to the invoice. Line item discounts are applied before invoice discounts. Use expand[]=discounts to expand each discount. + * @property null|int $due_date The date on which payment for this invoice is due. This value will be null for invoices where collection_method=charge_automatically. + * @property null|int $effective_at The date when this invoice is in effect. Same as finalized_at unless overwritten. When defined, this value replaces the system-generated 'Date of issue' printed on the invoice PDF and receipt. + * @property null|int $ending_balance Ending customer balance after the invoice is finalized. Invoices are finalized approximately an hour after successful webhook delivery or when payment collection is attempted for the invoice. If the invoice has not been finalized yet, this will be null. + * @property null|string $footer Footer displayed on the invoice. + * @property null|\Stripe\StripeObject $from_invoice Details of the invoice that was cloned. See the revision documentation for more details. + * @property null|string $hosted_invoice_url The URL for the hosted invoice page, which allows customers to view and pay an invoice. If the invoice has not been finalized yet, this will be null. + * @property null|string $invoice_pdf The link to download the PDF for the invoice. If the invoice has not been finalized yet, this will be null. + * @property \Stripe\StripeObject $issuer + * @property null|\Stripe\StripeObject $last_finalization_error The error encountered during the previous attempt to finalize the invoice. This field is cleared when the invoice is successfully finalized. + * @property null|string|\Stripe\Invoice $latest_revision The ID of the most recent non-draft revision of this invoice + * @property \Stripe\Collection<\Stripe\InvoiceLineItem> $lines The individual line items that make up the invoice. lines is sorted as follows: (1) pending invoice items (including prorations) in reverse chronological order, (2) subscription items in reverse chronological order, and (3) invoice items added after invoice creation in chronological order. + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + * @property null|\Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + * @property null|int $next_payment_attempt The time at which payment will next be attempted. This value will be null for invoices where collection_method=send_invoice. + * @property null|string $number A unique, identifying string that appears on emails sent to the customer for this invoice. This starts with the customer's unique invoice_prefix if it is specified. + * @property null|string|\Stripe\Account $on_behalf_of The account (if any) for which the funds of the invoice payment are intended. If set, the invoice will be presented with the branding and support information of the specified account. See the Invoices with Connect documentation for details. + * @property bool $paid Whether payment was successfully collected for this invoice. An invoice can be paid (most commonly) with a charge or with credit from the customer's account balance. + * @property bool $paid_out_of_band Returns true if the invoice was manually marked paid, returns false if the invoice hasn't been paid yet or was paid on Stripe. + * @property null|string|\Stripe\PaymentIntent $payment_intent The PaymentIntent associated with this invoice. The PaymentIntent is generated when the invoice is finalized, and can then be used to pay the invoice. Note that voiding an invoice will cancel the PaymentIntent. + * @property \Stripe\StripeObject $payment_settings + * @property int $period_end End of the usage period during which invoice items were added to this invoice. This looks back one period for a subscription invoice. Use the line item period to get the service period for each price. + * @property int $period_start Start of the usage period during which invoice items were added to this invoice. This looks back one period for a subscription invoice. Use the line item period to get the service period for each price. + * @property int $post_payment_credit_notes_amount Total amount of all post-payment credit notes issued for this invoice. + * @property int $pre_payment_credit_notes_amount Total amount of all pre-payment credit notes issued for this invoice. + * @property null|string|\Stripe\Quote $quote The quote this invoice was generated from. + * @property null|string $receipt_number This is the transaction number that appears on email receipts sent for this invoice. + * @property null|\Stripe\StripeObject $rendering The rendering-related settings that control how the invoice is displayed on customer-facing surfaces such as PDF and Hosted Invoice Page. + * @property null|\Stripe\StripeObject $shipping_cost The details of the cost of shipping, including the ShippingRate applied on the invoice. + * @property null|\Stripe\StripeObject $shipping_details Shipping details for the invoice. The Invoice PDF will use the shipping_details value if it is set, otherwise the PDF will render the shipping address from the customer. + * @property int $starting_balance Starting customer balance before the invoice is finalized. If the invoice has not been finalized yet, this will be the current customer balance. For revision invoices, this also includes any customer balance that was applied to the original invoice. + * @property null|string $statement_descriptor Extra information about an invoice for the customer's credit card statement. + * @property null|string $status The status of the invoice, one of draft, open, paid, uncollectible, or void. Learn more + * @property \Stripe\StripeObject $status_transitions + * @property null|string|\Stripe\Subscription $subscription The subscription that this invoice was prepared for, if any. + * @property null|\Stripe\StripeObject $subscription_details Details about the subscription that created this invoice. + * @property null|int $subscription_proration_date Only set for upcoming invoices that preview prorations. The time used to calculate prorations. + * @property int $subtotal Total of all subscriptions, invoice items, and prorations on the invoice before any invoice level discount or exclusive tax is applied. Item discounts are already incorporated + * @property null|int $subtotal_excluding_tax The integer amount in cents (or local equivalent) representing the subtotal of the invoice before any invoice level discount or tax is applied. Item discounts are already incorporated + * @property null|int $tax The amount of tax on this invoice. This is the sum of all the tax amounts on this invoice. + * @property null|string|\Stripe\TestHelpers\TestClock $test_clock ID of the test clock this invoice belongs to. + * @property null|\Stripe\StripeObject $threshold_reason + * @property int $total Total after discounts and taxes. + * @property null|\Stripe\StripeObject[] $total_discount_amounts The aggregate amounts calculated per discount across all line items. + * @property null|int $total_excluding_tax The integer amount in cents (or local equivalent) representing the total amount of the invoice including all discounts but excluding all tax. + * @property null|\Stripe\StripeObject[] $total_pretax_credit_amounts Contains pretax credit amounts (ex: discount, credit grants, etc) that apply to this invoice. This is a combined list of total_pretax_credit_amounts across all invoice line items. + * @property \Stripe\StripeObject[] $total_tax_amounts The aggregate amounts calculated per tax rate for all line items. + * @property null|\Stripe\StripeObject $transfer_data The account (if any) the payment will be attributed to for tax reporting, and where funds from the payment will be transferred to for the invoice. + * @property null|int $webhooks_delivered_at Invoices are automatically paid or sent 1 hour after webhooks are delivered, or until all webhook delivery attempts have been exhausted. This field tracks the time when webhooks for this invoice were successfully delivered. If the invoice had no webhooks to deliver, this will be set while the invoice is being created. + */ +class Invoice extends ApiResource +{ + const OBJECT_NAME = 'invoice'; + + use ApiOperations\NestedResource; + use ApiOperations\Update; + + const BILLING_REASON_AUTOMATIC_PENDING_INVOICE_ITEM_INVOICE = 'automatic_pending_invoice_item_invoice'; + const BILLING_REASON_MANUAL = 'manual'; + const BILLING_REASON_QUOTE_ACCEPT = 'quote_accept'; + const BILLING_REASON_SUBSCRIPTION = 'subscription'; + const BILLING_REASON_SUBSCRIPTION_CREATE = 'subscription_create'; + const BILLING_REASON_SUBSCRIPTION_CYCLE = 'subscription_cycle'; + const BILLING_REASON_SUBSCRIPTION_THRESHOLD = 'subscription_threshold'; + const BILLING_REASON_SUBSCRIPTION_UPDATE = 'subscription_update'; + const BILLING_REASON_UPCOMING = 'upcoming'; + + const COLLECTION_METHOD_CHARGE_AUTOMATICALLY = 'charge_automatically'; + const COLLECTION_METHOD_SEND_INVOICE = 'send_invoice'; + + const CUSTOMER_TAX_EXEMPT_EXEMPT = 'exempt'; + const CUSTOMER_TAX_EXEMPT_NONE = 'none'; + const CUSTOMER_TAX_EXEMPT_REVERSE = 'reverse'; + + const STATUS_DRAFT = 'draft'; + const STATUS_OPEN = 'open'; + const STATUS_PAID = 'paid'; + const STATUS_UNCOLLECTIBLE = 'uncollectible'; + const STATUS_VOID = 'void'; + + /** + * This endpoint creates a draft invoice for a given customer. The invoice remains + * a draft until you finalize the invoice, which + * allows you to pay or send + * the invoice to your customers. + * + * @param null|array $params + * @param null|array|string $options + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Invoice the created resource + */ + public static function create($params = null, $options = null) + { + self::_validateParams($params); + $url = static::classUrl(); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $options); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * Permanently deletes a one-off invoice draft. This cannot be undone. Attempts to + * delete invoices that are no longer in a draft state will fail; once an invoice + * has been finalized or if an invoice is for a subscription, it must be voided. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Invoice the deleted resource + */ + public function delete($params = null, $opts = null) + { + self::_validateParams($params); + + $url = $this->instanceUrl(); + list($response, $opts) = $this->_request('delete', $url, $params, $opts); + $this->refreshFrom($response, $opts); + + return $this; + } + + /** + * You can list all invoices, or list the invoices for a specific customer. The + * invoices are returned sorted by creation date, with the most recently created + * invoices appearing first. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\Invoice> of ApiResources + */ + public static function all($params = null, $opts = null) + { + $url = static::classUrl(); + + return static::_requestPage($url, \Stripe\Collection::class, $params, $opts); + } + + /** + * Retrieves the invoice with the given ID. + * + * @param array|string $id the ID of the API resource to retrieve, or an options array containing an `id` key + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Invoice + */ + public static function retrieve($id, $opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + $instance = new static($id, $opts); + $instance->refresh(); + + return $instance; + } + + /** + * Draft invoices are fully editable. Once an invoice is finalized, monetary values, + * as well as collection_method, become uneditable. + * + * If you would like to stop the Stripe Billing engine from automatically + * finalizing, reattempting payments on, sending reminders for, or automatically reconciling + * invoices, pass auto_advance=false. + * + * @param string $id the ID of the resource to update + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Invoice the updated resource + */ + public static function update($id, $params = null, $opts = null) + { + self::_validateParams($params); + $url = static::resourceUrl($id); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $opts); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + const BILLING_CHARGE_AUTOMATICALLY = 'charge_automatically'; + const BILLING_SEND_INVOICE = 'send_invoice'; + + /** + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Invoice the added invoice + */ + public function addLines($params = null, $opts = null) + { + $url = $this->instanceUrl() . '/add_lines'; + list($response, $opts) = $this->_request('post', $url, $params, $opts); + $this->refreshFrom($response, $opts); + + return $this; + } + + /** + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Invoice the created invoice + */ + public static function createPreview($params = null, $opts = null) + { + $url = static::classUrl() . '/create_preview'; + list($response, $opts) = static::_staticRequest('post', $url, $params, $opts); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Invoice the finalized invoice + */ + public function finalizeInvoice($params = null, $opts = null) + { + $url = $this->instanceUrl() . '/finalize'; + list($response, $opts) = $this->_request('post', $url, $params, $opts); + $this->refreshFrom($response, $opts); + + return $this; + } + + /** + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Invoice the uncollectible invoice + */ + public function markUncollectible($params = null, $opts = null) + { + $url = $this->instanceUrl() . '/mark_uncollectible'; + list($response, $opts) = $this->_request('post', $url, $params, $opts); + $this->refreshFrom($response, $opts); + + return $this; + } + + /** + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Invoice the paid invoice + */ + public function pay($params = null, $opts = null) + { + $url = $this->instanceUrl() . '/pay'; + list($response, $opts) = $this->_request('post', $url, $params, $opts); + $this->refreshFrom($response, $opts); + + return $this; + } + + /** + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Invoice the removed invoice + */ + public function removeLines($params = null, $opts = null) + { + $url = $this->instanceUrl() . '/remove_lines'; + list($response, $opts) = $this->_request('post', $url, $params, $opts); + $this->refreshFrom($response, $opts); + + return $this; + } + + /** + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Invoice the sent invoice + */ + public function sendInvoice($params = null, $opts = null) + { + $url = $this->instanceUrl() . '/send'; + list($response, $opts) = $this->_request('post', $url, $params, $opts); + $this->refreshFrom($response, $opts); + + return $this; + } + + /** + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Invoice the upcoming invoice + */ + public static function upcoming($params = null, $opts = null) + { + $url = static::classUrl() . '/upcoming'; + list($response, $opts) = static::_staticRequest('get', $url, $params, $opts); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\InvoiceLineItem> list of invoice line items + */ + public static function upcomingLines($params = null, $opts = null) + { + $url = static::classUrl() . '/upcoming/lines'; + list($response, $opts) = static::_staticRequest('get', $url, $params, $opts); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Invoice the updated invoice + */ + public function updateLines($params = null, $opts = null) + { + $url = $this->instanceUrl() . '/update_lines'; + list($response, $opts) = $this->_request('post', $url, $params, $opts); + $this->refreshFrom($response, $opts); + + return $this; + } + + /** + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Invoice the voided invoice + */ + public function voidInvoice($params = null, $opts = null) + { + $url = $this->instanceUrl() . '/void'; + list($response, $opts) = $this->_request('post', $url, $params, $opts); + $this->refreshFrom($response, $opts); + + return $this; + } + + /** + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\SearchResult<\Stripe\Invoice> the invoice search results + */ + public static function search($params = null, $opts = null) + { + $url = '/v1/invoices/search'; + + return static::_requestPage($url, \Stripe\SearchResult::class, $params, $opts); + } + + const PATH_LINES = '/lines'; + + /** + * @param string $id the ID of the invoice on which to retrieve the invoice line items + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\InvoiceLineItem> the list of invoice line items + */ + public static function allLines($id, $params = null, $opts = null) + { + return self::_allNestedResources($id, static::PATH_LINES, $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/InvoiceItem.php b/vendor/stripe/stripe-php/lib/InvoiceItem.php new file mode 100644 index 0000000..49c323c --- /dev/null +++ b/vendor/stripe/stripe-php/lib/InvoiceItem.php @@ -0,0 +1,158 @@ +invoice. An invoice item is added to an + * invoice by creating or updating it with an invoice field, at which point it will be included as + * an invoice line item within + * invoice.lines. + * + * Invoice Items can be created before you are ready to actually send the invoice. This can be particularly useful when combined + * with a subscription. Sometimes you want to add a charge or credit to a customer, but actually charge + * or credit the customer’s card only at the end of a regular billing cycle. This is useful for combining several charges + * (to minimize per-transaction fees), or for having Stripe tabulate your usage-based billing totals. + * + * Related guides: Integrate with the Invoicing API, Subscription Invoices. + * + * @property string $id Unique identifier for the object. + * @property string $object String representing the object's type. Objects of the same type share the same value. + * @property int $amount Amount (in the currency specified) of the invoice item. This should always be equal to unit_amount * quantity. + * @property string $currency Three-letter ISO currency code, in lowercase. Must be a supported currency. + * @property string|\Stripe\Customer $customer The ID of the customer who will be billed when this invoice item is billed. + * @property int $date Time at which the object was created. Measured in seconds since the Unix epoch. + * @property null|string $description An arbitrary string attached to the object. Often useful for displaying to users. + * @property bool $discountable If true, discounts will apply to this invoice item. Always false for prorations. + * @property null|(string|\Stripe\Discount)[] $discounts The discounts which apply to the invoice item. Item discounts are applied before invoice discounts. Use expand[]=discounts to expand each discount. + * @property null|string|\Stripe\Invoice $invoice The ID of the invoice this invoice item belongs to. + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + * @property null|\Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + * @property \Stripe\StripeObject $period + * @property null|\Stripe\Plan $plan If the invoice item is a proration, the plan of the subscription that the proration was computed for. + * @property null|\Stripe\Price $price The price of the invoice item. + * @property bool $proration Whether the invoice item was created automatically as a proration adjustment when the customer switched plans. + * @property int $quantity Quantity of units for the invoice item. If the invoice item is a proration, the quantity of the subscription that the proration was computed for. + * @property null|string|\Stripe\Subscription $subscription The subscription that this invoice item has been created for, if any. + * @property null|string $subscription_item The subscription item that this invoice item has been created for, if any. + * @property null|\Stripe\TaxRate[] $tax_rates The tax rates which apply to the invoice item. When set, the default_tax_rates on the invoice do not apply to this invoice item. + * @property null|string|\Stripe\TestHelpers\TestClock $test_clock ID of the test clock this invoice item belongs to. + * @property null|int $unit_amount Unit amount (in the currency specified) of the invoice item. + * @property null|string $unit_amount_decimal Same as unit_amount, but contains a decimal value with at most 12 decimal places. + */ +class InvoiceItem extends ApiResource +{ + const OBJECT_NAME = 'invoiceitem'; + + use ApiOperations\Update; + + /** + * Creates an item to be added to a draft invoice (up to 250 items per invoice). If + * no invoice is specified, the item will be on the next invoice created for the + * customer specified. + * + * @param null|array $params + * @param null|array|string $options + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\InvoiceItem the created resource + */ + public static function create($params = null, $options = null) + { + self::_validateParams($params); + $url = static::classUrl(); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $options); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * Deletes an invoice item, removing it from an invoice. Deleting invoice items is + * only possible when they’re not attached to invoices, or if it’s attached to a + * draft invoice. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\InvoiceItem the deleted resource + */ + public function delete($params = null, $opts = null) + { + self::_validateParams($params); + + $url = $this->instanceUrl(); + list($response, $opts) = $this->_request('delete', $url, $params, $opts); + $this->refreshFrom($response, $opts); + + return $this; + } + + /** + * Returns a list of your invoice items. Invoice items are returned sorted by + * creation date, with the most recently created invoice items appearing first. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\InvoiceItem> of ApiResources + */ + public static function all($params = null, $opts = null) + { + $url = static::classUrl(); + + return static::_requestPage($url, \Stripe\Collection::class, $params, $opts); + } + + /** + * Retrieves the invoice item with the given ID. + * + * @param array|string $id the ID of the API resource to retrieve, or an options array containing an `id` key + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\InvoiceItem + */ + public static function retrieve($id, $opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + $instance = new static($id, $opts); + $instance->refresh(); + + return $instance; + } + + /** + * Updates the amount or description of an invoice item on an upcoming invoice. + * Updating an invoice item is only possible before the invoice it’s attached to is + * closed. + * + * @param string $id the ID of the resource to update + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\InvoiceItem the updated resource + */ + public static function update($id, $params = null, $opts = null) + { + self::_validateParams($params); + $url = static::resourceUrl($id); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $opts); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } +} diff --git a/vendor/stripe/stripe-php/lib/InvoiceLineItem.php b/vendor/stripe/stripe-php/lib/InvoiceLineItem.php new file mode 100644 index 0000000..a6120c9 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/InvoiceLineItem.php @@ -0,0 +1,72 @@ +invoice and only exist within the context of an invoice. + * + * Each line item is backed by either an invoice item or a subscription item. + * + * @property string $id Unique identifier for the object. + * @property string $object String representing the object's type. Objects of the same type share the same value. + * @property int $amount The amount, in cents (or local equivalent). + * @property null|int $amount_excluding_tax The integer amount in cents (or local equivalent) representing the amount for this line item, excluding all tax and discounts. + * @property string $currency Three-letter ISO currency code, in lowercase. Must be a supported currency. + * @property null|string $description An arbitrary string attached to the object. Often useful for displaying to users. + * @property null|\Stripe\StripeObject[] $discount_amounts The amount of discount calculated per discount for this line item. + * @property bool $discountable If true, discounts will apply to this line item. Always false for prorations. + * @property (string|\Stripe\Discount)[] $discounts The discounts applied to the invoice line item. Line item discounts are applied before invoice discounts. Use expand[]=discounts to expand each discount. + * @property null|string $invoice The ID of the invoice that contains this line item. + * @property null|string|\Stripe\InvoiceItem $invoice_item The ID of the invoice item associated with this line item if any. + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + * @property \Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Note that for line items with type=subscription, metadata reflects the current metadata from the subscription associated with the line item, unless the invoice line was directly updated with different metadata after creation. + * @property \Stripe\StripeObject $period + * @property null|\Stripe\Plan $plan The plan of the subscription, if the line item is a subscription or a proration. + * @property null|\Stripe\StripeObject[] $pretax_credit_amounts Contains pretax credit amounts (ex: discount, credit grants, etc) that apply to this line item. + * @property null|\Stripe\Price $price The price of the line item. + * @property bool $proration Whether this is a proration. + * @property null|\Stripe\StripeObject $proration_details Additional details for proration line items + * @property null|int $quantity The quantity of the subscription, if the line item is a subscription or a proration. + * @property null|string|\Stripe\Subscription $subscription The subscription that the invoice item pertains to, if any. + * @property null|string|\Stripe\SubscriptionItem $subscription_item The subscription item that generated this line item. Left empty if the line item is not an explicit result of a subscription. + * @property \Stripe\StripeObject[] $tax_amounts The amount of tax calculated per tax rate for this line item + * @property \Stripe\TaxRate[] $tax_rates The tax rates which apply to the line item. + * @property string $type A string identifying the type of the source of this line item, either an invoiceitem or a subscription. + * @property null|string $unit_amount_excluding_tax The amount in cents (or local equivalent) representing the unit amount for this line item, excluding all tax and discounts. + */ +class InvoiceLineItem extends ApiResource +{ + const OBJECT_NAME = 'line_item'; + + use ApiOperations\Update; + + /** + * Updates an invoice’s line item. Some fields, such as tax_amounts, + * only live on the invoice line item, so they can only be updated through this + * endpoint. Other fields, such as amount, live on both the invoice + * item and the invoice line item, so updates on this endpoint will propagate to + * the invoice item as well. Updating an invoice’s line item is only possible + * before the invoice is finalized. + * + * @param string $id the ID of the resource to update + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\InvoiceLineItem the updated resource + */ + public static function update($id, $params = null, $opts = null) + { + self::_validateParams($params); + $url = static::resourceUrl($id); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $opts); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } +} diff --git a/vendor/stripe/stripe-php/lib/InvoiceRenderingTemplate.php b/vendor/stripe/stripe-php/lib/InvoiceRenderingTemplate.php new file mode 100644 index 0000000..f6ca508 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/InvoiceRenderingTemplate.php @@ -0,0 +1,99 @@ +true if the object exists in live mode or the value false if the object exists in test mode. + * @property null|\Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + * @property null|string $nickname A brief description of the template, hidden from customers + * @property string $status The status of the template, one of active or archived. + * @property int $version Version of this template; version increases by one when an update on the template changes any field that controls invoice rendering + */ +class InvoiceRenderingTemplate extends ApiResource +{ + const OBJECT_NAME = 'invoice_rendering_template'; + + const STATUS_ACTIVE = 'active'; + const STATUS_ARCHIVED = 'archived'; + + /** + * List all templates, ordered by creation date, with the most recently created + * template appearing first. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\InvoiceRenderingTemplate> of ApiResources + */ + public static function all($params = null, $opts = null) + { + $url = static::classUrl(); + + return static::_requestPage($url, \Stripe\Collection::class, $params, $opts); + } + + /** + * Retrieves an invoice rendering template with the given ID. It by default returns + * the latest version of the template. Optionally, specify a version to see + * previous versions. + * + * @param array|string $id the ID of the API resource to retrieve, or an options array containing an `id` key + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\InvoiceRenderingTemplate + */ + public static function retrieve($id, $opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + $instance = new static($id, $opts); + $instance->refresh(); + + return $instance; + } + + /** + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\InvoiceRenderingTemplate the archived invoice rendering template + */ + public function archive($params = null, $opts = null) + { + $url = $this->instanceUrl() . '/archive'; + list($response, $opts) = $this->_request('post', $url, $params, $opts); + $this->refreshFrom($response, $opts); + + return $this; + } + + /** + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\InvoiceRenderingTemplate the unarchived invoice rendering template + */ + public function unarchive($params = null, $opts = null) + { + $url = $this->instanceUrl() . '/unarchive'; + list($response, $opts) = $this->_request('post', $url, $params, $opts); + $this->refreshFrom($response, $opts); + + return $this; + } +} diff --git a/vendor/stripe/stripe-php/lib/Issuing/Authorization.php b/vendor/stripe/stripe-php/lib/Issuing/Authorization.php new file mode 100644 index 0000000..ec4088b --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Issuing/Authorization.php @@ -0,0 +1,156 @@ +issued card is used to make a purchase, an Issuing Authorization + * object is created. Authorizations must be approved for the + * purchase to be completed successfully. + * + * Related guide: Issued card authorizations + * + * @property string $id Unique identifier for the object. + * @property string $object String representing the object's type. Objects of the same type share the same value. + * @property int $amount The total amount that was authorized or rejected. This amount is in currency and in the smallest currency unit. amount should be the same as merchant_amount, unless currency and merchant_currency are different. + * @property null|\Stripe\StripeObject $amount_details Detailed breakdown of amount components. These amounts are denominated in currency and in the smallest currency unit. + * @property bool $approved Whether the authorization has been approved. + * @property string $authorization_method How the card details were provided. + * @property \Stripe\BalanceTransaction[] $balance_transactions List of balance transactions associated with this authorization. + * @property \Stripe\Issuing\Card $card You can create physical or virtual cards that are issued to cardholders. + * @property null|string|\Stripe\Issuing\Cardholder $cardholder The cardholder to whom this authorization belongs. + * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch. + * @property string $currency The currency of the cardholder. This currency can be different from the currency presented at authorization and the merchant_currency field on this authorization. Three-letter ISO currency code, in lowercase. Must be a supported currency. + * @property null|\Stripe\StripeObject $fleet Fleet-specific information for authorizations using Fleet cards. + * @property null|\Stripe\StripeObject[] $fraud_challenges Fraud challenges sent to the cardholder, if this authorization was declined for fraud risk reasons. + * @property null|\Stripe\StripeObject $fuel Information about fuel that was purchased with this transaction. Typically this information is received from the merchant after the authorization has been approved and the fuel dispensed. + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + * @property int $merchant_amount The total amount that was authorized or rejected. This amount is in the merchant_currency and in the smallest currency unit. merchant_amount should be the same as amount, unless merchant_currency and currency are different. + * @property string $merchant_currency The local currency that was presented to the cardholder for the authorization. This currency can be different from the cardholder currency and the currency field on this authorization. Three-letter ISO currency code, in lowercase. Must be a supported currency. + * @property \Stripe\StripeObject $merchant_data + * @property \Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + * @property null|\Stripe\StripeObject $network_data Details about the authorization, such as identifiers, set by the card network. + * @property null|\Stripe\StripeObject $pending_request The pending authorization request. This field will only be non-null during an issuing_authorization.request webhook. + * @property \Stripe\StripeObject[] $request_history History of every time a pending_request authorization was approved/declined, either by you directly or by Stripe (e.g. based on your spending_controls). If the merchant changes the authorization by performing an incremental authorization, you can look at this field to see the previous requests for the authorization. This field can be helpful in determining why a given authorization was approved/declined. + * @property string $status The current status of the authorization in its lifecycle. + * @property null|string|\Stripe\Issuing\Token $token Token object used for this authorization. If a network token was not used for this authorization, this field will be null. + * @property \Stripe\Issuing\Transaction[] $transactions List of transactions associated with this authorization. + * @property null|\Stripe\StripeObject $treasury Treasury details related to this authorization if it was created on a FinancialAccount. + * @property \Stripe\StripeObject $verification_data + * @property null|bool $verified_by_fraud_challenge Whether the authorization bypassed fraud risk checks because the cardholder has previously completed a fraud challenge on a similar high-risk authorization from the same merchant. + * @property null|string $wallet The digital wallet used for this transaction. One of apple_pay, google_pay, or samsung_pay. Will populate as null when no digital wallet was utilized. + */ +class Authorization extends \Stripe\ApiResource +{ + const OBJECT_NAME = 'issuing.authorization'; + + use \Stripe\ApiOperations\Update; + + const AUTHORIZATION_METHOD_CHIP = 'chip'; + const AUTHORIZATION_METHOD_CONTACTLESS = 'contactless'; + const AUTHORIZATION_METHOD_KEYED_IN = 'keyed_in'; + const AUTHORIZATION_METHOD_ONLINE = 'online'; + const AUTHORIZATION_METHOD_SWIPE = 'swipe'; + + const STATUS_CLOSED = 'closed'; + const STATUS_PENDING = 'pending'; + const STATUS_REVERSED = 'reversed'; + + /** + * Returns a list of Issuing Authorization objects. The objects are + * sorted in descending order by creation date, with the most recently created + * object appearing first. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\Issuing\Authorization> of ApiResources + */ + public static function all($params = null, $opts = null) + { + $url = static::classUrl(); + + return static::_requestPage($url, \Stripe\Collection::class, $params, $opts); + } + + /** + * Retrieves an Issuing Authorization object. + * + * @param array|string $id the ID of the API resource to retrieve, or an options array containing an `id` key + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Issuing\Authorization + */ + public static function retrieve($id, $opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + $instance = new static($id, $opts); + $instance->refresh(); + + return $instance; + } + + /** + * Updates the specified Issuing Authorization object by setting the + * values of the parameters passed. Any parameters not provided will be left + * unchanged. + * + * @param string $id the ID of the resource to update + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Issuing\Authorization the updated resource + */ + public static function update($id, $params = null, $opts = null) + { + self::_validateParams($params); + $url = static::resourceUrl($id); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $opts); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Issuing\Authorization the approved authorization + */ + public function approve($params = null, $opts = null) + { + $url = $this->instanceUrl() . '/approve'; + list($response, $opts) = $this->_request('post', $url, $params, $opts); + $this->refreshFrom($response, $opts); + + return $this; + } + + /** + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Issuing\Authorization the declined authorization + */ + public function decline($params = null, $opts = null) + { + $url = $this->instanceUrl() . '/decline'; + list($response, $opts) = $this->_request('post', $url, $params, $opts); + $this->refreshFrom($response, $opts); + + return $this; + } +} diff --git a/vendor/stripe/stripe-php/lib/Issuing/Card.php b/vendor/stripe/stripe-php/lib/Issuing/Card.php new file mode 100644 index 0000000..a436ba3 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Issuing/Card.php @@ -0,0 +1,140 @@ +create physical or virtual cards that are issued to cardholders. + * + * @property string $id Unique identifier for the object. + * @property string $object String representing the object's type. Objects of the same type share the same value. + * @property string $brand The brand of the card. + * @property null|string $cancellation_reason The reason why the card was canceled. + * @property \Stripe\Issuing\Cardholder $cardholder

    An Issuing Cardholder object represents an individual or business entity who is issued cards.

    Related guide: How to create a cardholder

    + * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch. + * @property string $currency Three-letter ISO currency code, in lowercase. Supported currencies are usd in the US, eur in the EU, and gbp in the UK. + * @property null|string $cvc The card's CVC. For security reasons, this is only available for virtual cards, and will be omitted unless you explicitly request it with the expand parameter. Additionally, it's only available via the "Retrieve a card" endpoint, not via "List all cards" or any other endpoint. + * @property int $exp_month The expiration month of the card. + * @property int $exp_year The expiration year of the card. + * @property null|string $financial_account The financial account this card is attached to. + * @property string $last4 The last 4 digits of the card number. + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + * @property \Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + * @property null|string $number The full unredacted card number. For security reasons, this is only available for virtual cards, and will be omitted unless you explicitly request it with the expand parameter. Additionally, it's only available via the "Retrieve a card" endpoint, not via "List all cards" or any other endpoint. + * @property null|string|\Stripe\Issuing\PersonalizationDesign $personalization_design The personalization design object belonging to this card. + * @property null|string|\Stripe\Issuing\Card $replaced_by The latest card that replaces this card, if any. + * @property null|string|\Stripe\Issuing\Card $replacement_for The card this card replaces, if any. + * @property null|string $replacement_reason The reason why the previous card needed to be replaced. + * @property null|\Stripe\StripeObject $shipping Where and how the card will be shipped. + * @property \Stripe\StripeObject $spending_controls + * @property string $status Whether authorizations can be approved on this card. May be blocked from activating cards depending on past-due Cardholder requirements. Defaults to inactive. + * @property string $type The type of the card. + * @property null|\Stripe\StripeObject $wallets Information relating to digital wallets (like Apple Pay and Google Pay). + */ +class Card extends \Stripe\ApiResource +{ + const OBJECT_NAME = 'issuing.card'; + + use \Stripe\ApiOperations\Update; + + const CANCELLATION_REASON_DESIGN_REJECTED = 'design_rejected'; + const CANCELLATION_REASON_LOST = 'lost'; + const CANCELLATION_REASON_STOLEN = 'stolen'; + + const REPLACEMENT_REASON_DAMAGED = 'damaged'; + const REPLACEMENT_REASON_EXPIRED = 'expired'; + const REPLACEMENT_REASON_LOST = 'lost'; + const REPLACEMENT_REASON_STOLEN = 'stolen'; + + const STATUS_ACTIVE = 'active'; + const STATUS_CANCELED = 'canceled'; + const STATUS_INACTIVE = 'inactive'; + + const TYPE_PHYSICAL = 'physical'; + const TYPE_VIRTUAL = 'virtual'; + + /** + * Creates an Issuing Card object. + * + * @param null|array $params + * @param null|array|string $options + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Issuing\Card the created resource + */ + public static function create($params = null, $options = null) + { + self::_validateParams($params); + $url = static::classUrl(); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $options); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * Returns a list of Issuing Card objects. The objects are sorted in + * descending order by creation date, with the most recently created object + * appearing first. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\Issuing\Card> of ApiResources + */ + public static function all($params = null, $opts = null) + { + $url = static::classUrl(); + + return static::_requestPage($url, \Stripe\Collection::class, $params, $opts); + } + + /** + * Retrieves an Issuing Card object. + * + * @param array|string $id the ID of the API resource to retrieve, or an options array containing an `id` key + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Issuing\Card + */ + public static function retrieve($id, $opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + $instance = new static($id, $opts); + $instance->refresh(); + + return $instance; + } + + /** + * Updates the specified Issuing Card object by setting the values of + * the parameters passed. Any parameters not provided will be left unchanged. + * + * @param string $id the ID of the resource to update + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Issuing\Card the updated resource + */ + public static function update($id, $params = null, $opts = null) + { + self::_validateParams($params); + $url = static::resourceUrl($id); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $opts); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } +} diff --git a/vendor/stripe/stripe-php/lib/Issuing/CardDetails.php b/vendor/stripe/stripe-php/lib/Issuing/CardDetails.php new file mode 100644 index 0000000..98f4e0b --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Issuing/CardDetails.php @@ -0,0 +1,19 @@ +Cardholder object represents an individual or business entity who is issued cards. + * + * Related guide: How to create a cardholder + * + * @property string $id Unique identifier for the object. + * @property string $object String representing the object's type. Objects of the same type share the same value. + * @property \Stripe\StripeObject $billing + * @property null|\Stripe\StripeObject $company Additional information about a company cardholder. + * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch. + * @property null|string $email The cardholder's email address. + * @property null|\Stripe\StripeObject $individual Additional information about an individual cardholder. + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + * @property \Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + * @property string $name The cardholder's name. This will be printed on cards issued to them. + * @property null|string $phone_number The cardholder's phone number. This is required for all cardholders who will be creating EU cards. See the 3D Secure documentation for more details. + * @property null|string[] $preferred_locales The cardholder’s preferred locales (languages), ordered by preference. Locales can be de, en, es, fr, or it. This changes the language of the 3D Secure flow and one-time password messages sent to the cardholder. + * @property \Stripe\StripeObject $requirements + * @property null|\Stripe\StripeObject $spending_controls Rules that control spending across this cardholder's cards. Refer to our documentation for more details. + * @property string $status Specifies whether to permit authorizations on this cardholder's cards. + * @property string $type One of individual or company. See Choose a cardholder type for more details. + */ +class Cardholder extends \Stripe\ApiResource +{ + const OBJECT_NAME = 'issuing.cardholder'; + + use \Stripe\ApiOperations\Update; + + const STATUS_ACTIVE = 'active'; + const STATUS_BLOCKED = 'blocked'; + const STATUS_INACTIVE = 'inactive'; + + const TYPE_COMPANY = 'company'; + const TYPE_INDIVIDUAL = 'individual'; + + /** + * Creates a new Issuing Cardholder object that can be issued cards. + * + * @param null|array $params + * @param null|array|string $options + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Issuing\Cardholder the created resource + */ + public static function create($params = null, $options = null) + { + self::_validateParams($params); + $url = static::classUrl(); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $options); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * Returns a list of Issuing Cardholder objects. The objects are + * sorted in descending order by creation date, with the most recently created + * object appearing first. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\Issuing\Cardholder> of ApiResources + */ + public static function all($params = null, $opts = null) + { + $url = static::classUrl(); + + return static::_requestPage($url, \Stripe\Collection::class, $params, $opts); + } + + /** + * Retrieves an Issuing Cardholder object. + * + * @param array|string $id the ID of the API resource to retrieve, or an options array containing an `id` key + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Issuing\Cardholder + */ + public static function retrieve($id, $opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + $instance = new static($id, $opts); + $instance->refresh(); + + return $instance; + } + + /** + * Updates the specified Issuing Cardholder object by setting the + * values of the parameters passed. Any parameters not provided will be left + * unchanged. + * + * @param string $id the ID of the resource to update + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Issuing\Cardholder the updated resource + */ + public static function update($id, $params = null, $opts = null) + { + self::_validateParams($params); + $url = static::resourceUrl($id); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $opts); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } +} diff --git a/vendor/stripe/stripe-php/lib/Issuing/Dispute.php b/vendor/stripe/stripe-php/lib/Issuing/Dispute.php new file mode 100644 index 0000000..b05c7e8 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Issuing/Dispute.php @@ -0,0 +1,165 @@ +card issuer, you can dispute transactions that the cardholder does not recognize, suspects to be fraudulent, or has other issues with. + * + * Related guide: Issuing disputes + * + * @property string $id Unique identifier for the object. + * @property string $object String representing the object's type. Objects of the same type share the same value. + * @property int $amount Disputed amount in the card's currency and in the smallest currency unit. Usually the amount of the transaction, but can differ (usually because of currency fluctuation). + * @property null|\Stripe\BalanceTransaction[] $balance_transactions List of balance transactions associated with the dispute. + * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch. + * @property string $currency The currency the transaction was made in. + * @property \Stripe\StripeObject $evidence + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + * @property null|string $loss_reason The enum that describes the dispute loss outcome. If the dispute is not lost, this field will be absent. New enum values may be added in the future, so be sure to handle unknown values. + * @property \Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + * @property string $status Current status of the dispute. + * @property string|\Stripe\Issuing\Transaction $transaction The transaction being disputed. + * @property null|\Stripe\StripeObject $treasury Treasury details related to this dispute if it was created on a [FinancialAccount](/docs/api/treasury/financial_accounts + */ +class Dispute extends \Stripe\ApiResource +{ + const OBJECT_NAME = 'issuing.dispute'; + + use \Stripe\ApiOperations\Update; + + const LOSS_REASON_CARDHOLDER_AUTHENTICATION_ISSUER_LIABILITY = 'cardholder_authentication_issuer_liability'; + const LOSS_REASON_ECI5_TOKEN_TRANSACTION_WITH_TAVV = 'eci5_token_transaction_with_tavv'; + const LOSS_REASON_EXCESS_DISPUTES_IN_TIMEFRAME = 'excess_disputes_in_timeframe'; + const LOSS_REASON_HAS_NOT_MET_THE_MINIMUM_DISPUTE_AMOUNT_REQUIREMENTS = 'has_not_met_the_minimum_dispute_amount_requirements'; + const LOSS_REASON_INVALID_DUPLICATE_DISPUTE = 'invalid_duplicate_dispute'; + const LOSS_REASON_INVALID_INCORRECT_AMOUNT_DISPUTE = 'invalid_incorrect_amount_dispute'; + const LOSS_REASON_INVALID_NO_AUTHORIZATION = 'invalid_no_authorization'; + const LOSS_REASON_INVALID_USE_OF_DISPUTES = 'invalid_use_of_disputes'; + const LOSS_REASON_MERCHANDISE_DELIVERED_OR_SHIPPED = 'merchandise_delivered_or_shipped'; + const LOSS_REASON_MERCHANDISE_OR_SERVICE_AS_DESCRIBED = 'merchandise_or_service_as_described'; + const LOSS_REASON_NOT_CANCELLED = 'not_cancelled'; + const LOSS_REASON_OTHER = 'other'; + const LOSS_REASON_REFUND_ISSUED = 'refund_issued'; + const LOSS_REASON_SUBMITTED_BEYOND_ALLOWABLE_TIME_LIMIT = 'submitted_beyond_allowable_time_limit'; + const LOSS_REASON_TRANSACTION_3DS_REQUIRED = 'transaction_3ds_required'; + const LOSS_REASON_TRANSACTION_APPROVED_AFTER_PRIOR_FRAUD_DISPUTE = 'transaction_approved_after_prior_fraud_dispute'; + const LOSS_REASON_TRANSACTION_AUTHORIZED = 'transaction_authorized'; + const LOSS_REASON_TRANSACTION_ELECTRONICALLY_READ = 'transaction_electronically_read'; + const LOSS_REASON_TRANSACTION_QUALIFIES_FOR_VISA_EASY_PAYMENT_SERVICE = 'transaction_qualifies_for_visa_easy_payment_service'; + const LOSS_REASON_TRANSACTION_UNATTENDED = 'transaction_unattended'; + + const STATUS_EXPIRED = 'expired'; + const STATUS_LOST = 'lost'; + const STATUS_SUBMITTED = 'submitted'; + const STATUS_UNSUBMITTED = 'unsubmitted'; + const STATUS_WON = 'won'; + + /** + * Creates an Issuing Dispute object. Individual pieces of evidence + * within the evidence object are optional at this point. Stripe only + * validates that required evidence is present during submission. Refer to Dispute + * reasons and evidence for more details about evidence requirements. + * + * @param null|array $params + * @param null|array|string $options + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Issuing\Dispute the created resource + */ + public static function create($params = null, $options = null) + { + self::_validateParams($params); + $url = static::classUrl(); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $options); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * Returns a list of Issuing Dispute objects. The objects are sorted + * in descending order by creation date, with the most recently created object + * appearing first. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\Issuing\Dispute> of ApiResources + */ + public static function all($params = null, $opts = null) + { + $url = static::classUrl(); + + return static::_requestPage($url, \Stripe\Collection::class, $params, $opts); + } + + /** + * Retrieves an Issuing Dispute object. + * + * @param array|string $id the ID of the API resource to retrieve, or an options array containing an `id` key + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Issuing\Dispute + */ + public static function retrieve($id, $opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + $instance = new static($id, $opts); + $instance->refresh(); + + return $instance; + } + + /** + * Updates the specified Issuing Dispute object by setting the values + * of the parameters passed. Any parameters not provided will be left unchanged. + * Properties on the evidence object can be unset by passing in an + * empty string. + * + * @param string $id the ID of the resource to update + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Issuing\Dispute the updated resource + */ + public static function update($id, $params = null, $opts = null) + { + self::_validateParams($params); + $url = static::resourceUrl($id); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $opts); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Issuing\Dispute the submited dispute + */ + public function submit($params = null, $opts = null) + { + $url = $this->instanceUrl() . '/submit'; + list($response, $opts) = $this->_request('post', $url, $params, $opts); + $this->refreshFrom($response, $opts); + + return $this; + } +} diff --git a/vendor/stripe/stripe-php/lib/Issuing/PersonalizationDesign.php b/vendor/stripe/stripe-php/lib/Issuing/PersonalizationDesign.php new file mode 100644 index 0000000..d2e472a --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Issuing/PersonalizationDesign.php @@ -0,0 +1,117 @@ +purpose value of issuing_logo. + * @property null|\Stripe\StripeObject $carrier_text Hash containing carrier text, for use with physical bundles that support carrier text. + * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch. + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + * @property null|string $lookup_key A lookup key used to retrieve personalization designs dynamically from a static string. This may be up to 200 characters. + * @property \Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + * @property null|string $name Friendly display name. + * @property string|\Stripe\Issuing\PhysicalBundle $physical_bundle The physical bundle object belonging to this personalization design. + * @property \Stripe\StripeObject $preferences + * @property \Stripe\StripeObject $rejection_reasons + * @property string $status Whether this personalization design can be used to create cards. + */ +class PersonalizationDesign extends \Stripe\ApiResource +{ + const OBJECT_NAME = 'issuing.personalization_design'; + + use \Stripe\ApiOperations\Update; + + const STATUS_ACTIVE = 'active'; + const STATUS_INACTIVE = 'inactive'; + const STATUS_REJECTED = 'rejected'; + const STATUS_REVIEW = 'review'; + + /** + * Creates a personalization design object. + * + * @param null|array $params + * @param null|array|string $options + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Issuing\PersonalizationDesign the created resource + */ + public static function create($params = null, $options = null) + { + self::_validateParams($params); + $url = static::classUrl(); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $options); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * Returns a list of personalization design objects. The objects are sorted in + * descending order by creation date, with the most recently created object + * appearing first. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\Issuing\PersonalizationDesign> of ApiResources + */ + public static function all($params = null, $opts = null) + { + $url = static::classUrl(); + + return static::_requestPage($url, \Stripe\Collection::class, $params, $opts); + } + + /** + * Retrieves a personalization design object. + * + * @param array|string $id the ID of the API resource to retrieve, or an options array containing an `id` key + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Issuing\PersonalizationDesign + */ + public static function retrieve($id, $opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + $instance = new static($id, $opts); + $instance->refresh(); + + return $instance; + } + + /** + * Updates a card personalization object. + * + * @param string $id the ID of the resource to update + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Issuing\PersonalizationDesign the updated resource + */ + public static function update($id, $params = null, $opts = null) + { + self::_validateParams($params); + $url = static::resourceUrl($id); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $opts); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } +} diff --git a/vendor/stripe/stripe-php/lib/Issuing/PhysicalBundle.php b/vendor/stripe/stripe-php/lib/Issuing/PhysicalBundle.php new file mode 100644 index 0000000..419a020 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Issuing/PhysicalBundle.php @@ -0,0 +1,65 @@ +true if the object exists in live mode or the value false if the object exists in test mode. + * @property string $name Friendly display name. + * @property string $status Whether this physical bundle can be used to create cards. + * @property string $type Whether this physical bundle is a standard Stripe offering or custom-made for you. + */ +class PhysicalBundle extends \Stripe\ApiResource +{ + const OBJECT_NAME = 'issuing.physical_bundle'; + + const STATUS_ACTIVE = 'active'; + const STATUS_INACTIVE = 'inactive'; + const STATUS_REVIEW = 'review'; + + const TYPE_CUSTOM = 'custom'; + const TYPE_STANDARD = 'standard'; + + /** + * Returns a list of physical bundle objects. The objects are sorted in descending + * order by creation date, with the most recently created object appearing first. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\Issuing\PhysicalBundle> of ApiResources + */ + public static function all($params = null, $opts = null) + { + $url = static::classUrl(); + + return static::_requestPage($url, \Stripe\Collection::class, $params, $opts); + } + + /** + * Retrieves a physical bundle object. + * + * @param array|string $id the ID of the API resource to retrieve, or an options array containing an `id` key + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Issuing\PhysicalBundle + */ + public static function retrieve($id, $opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + $instance = new static($id, $opts); + $instance->refresh(); + + return $instance; + } +} diff --git a/vendor/stripe/stripe-php/lib/Issuing/Token.php b/vendor/stripe/stripe-php/lib/Issuing/Token.php new file mode 100644 index 0000000..196c7ab --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Issuing/Token.php @@ -0,0 +1,100 @@ +card issuer, you can view and manage these tokens through Stripe. + * + * @property string $id Unique identifier for the object. + * @property string $object String representing the object's type. Objects of the same type share the same value. + * @property string|\Stripe\Issuing\Card $card Card associated with this token. + * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch. + * @property null|string $device_fingerprint The hashed ID derived from the device ID from the card network associated with the token. + * @property null|string $last4 The last four digits of the token. + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + * @property string $network The token service provider / card network associated with the token. + * @property null|\Stripe\StripeObject $network_data + * @property int $network_updated_at Time at which the token was last updated by the card network. Measured in seconds since the Unix epoch. + * @property string $status The usage state of the token. + * @property null|string $wallet_provider The digital wallet for this token, if one was used. + */ +class Token extends \Stripe\ApiResource +{ + const OBJECT_NAME = 'issuing.token'; + + use \Stripe\ApiOperations\Update; + + const NETWORK_MASTERCARD = 'mastercard'; + const NETWORK_VISA = 'visa'; + + const STATUS_ACTIVE = 'active'; + const STATUS_DELETED = 'deleted'; + const STATUS_REQUESTED = 'requested'; + const STATUS_SUSPENDED = 'suspended'; + + const WALLET_PROVIDER_APPLE_PAY = 'apple_pay'; + const WALLET_PROVIDER_GOOGLE_PAY = 'google_pay'; + const WALLET_PROVIDER_SAMSUNG_PAY = 'samsung_pay'; + + /** + * Lists all Issuing Token objects for a given card. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\Issuing\Token> of ApiResources + */ + public static function all($params = null, $opts = null) + { + $url = static::classUrl(); + + return static::_requestPage($url, \Stripe\Collection::class, $params, $opts); + } + + /** + * Retrieves an Issuing Token object. + * + * @param array|string $id the ID of the API resource to retrieve, or an options array containing an `id` key + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Issuing\Token + */ + public static function retrieve($id, $opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + $instance = new static($id, $opts); + $instance->refresh(); + + return $instance; + } + + /** + * Attempts to update the specified Issuing Token object to the status + * specified. + * + * @param string $id the ID of the resource to update + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Issuing\Token the updated resource + */ + public static function update($id, $params = null, $opts = null) + { + self::_validateParams($params); + $url = static::resourceUrl($id); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $opts); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } +} diff --git a/vendor/stripe/stripe-php/lib/Issuing/Transaction.php b/vendor/stripe/stripe-php/lib/Issuing/Transaction.php new file mode 100644 index 0000000..45585a0 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Issuing/Transaction.php @@ -0,0 +1,112 @@ +issued card that results in funds entering or leaving + * your Stripe account, such as a completed purchase or refund, is represented by an Issuing + * Transaction object. + * + * Related guide: Issued card transactions + * + * @property string $id Unique identifier for the object. + * @property string $object String representing the object's type. Objects of the same type share the same value. + * @property int $amount The transaction amount, which will be reflected in your balance. This amount is in your currency and in the smallest currency unit. + * @property null|\Stripe\StripeObject $amount_details Detailed breakdown of amount components. These amounts are denominated in currency and in the smallest currency unit. + * @property null|string|\Stripe\Issuing\Authorization $authorization The Authorization object that led to this transaction. + * @property null|string|\Stripe\BalanceTransaction $balance_transaction ID of the balance transaction associated with this transaction. + * @property string|\Stripe\Issuing\Card $card The card used to make this transaction. + * @property null|string|\Stripe\Issuing\Cardholder $cardholder The cardholder to whom this transaction belongs. + * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch. + * @property string $currency Three-letter ISO currency code, in lowercase. Must be a supported currency. + * @property null|string|\Stripe\Issuing\Dispute $dispute If you've disputed the transaction, the ID of the dispute. + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + * @property int $merchant_amount The amount that the merchant will receive, denominated in merchant_currency and in the smallest currency unit. It will be different from amount if the merchant is taking payment in a different currency. + * @property string $merchant_currency The currency with which the merchant is taking payment. + * @property \Stripe\StripeObject $merchant_data + * @property \Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + * @property null|\Stripe\StripeObject $network_data Details about the transaction, such as processing dates, set by the card network. + * @property null|\Stripe\StripeObject $purchase_details Additional purchase information that is optionally provided by the merchant. + * @property null|string|\Stripe\Issuing\Token $token Token object used for this transaction. If a network token was not used for this transaction, this field will be null. + * @property null|\Stripe\StripeObject $treasury Treasury details related to this transaction if it was created on a [FinancialAccount](/docs/api/treasury/financial_accounts + * @property string $type The nature of the transaction. + * @property null|string $wallet The digital wallet used for this transaction. One of apple_pay, google_pay, or samsung_pay. + */ +class Transaction extends \Stripe\ApiResource +{ + const OBJECT_NAME = 'issuing.transaction'; + + use \Stripe\ApiOperations\Update; + + const TYPE_CAPTURE = 'capture'; + const TYPE_REFUND = 'refund'; + + const WALLET_APPLE_PAY = 'apple_pay'; + const WALLET_GOOGLE_PAY = 'google_pay'; + const WALLET_SAMSUNG_PAY = 'samsung_pay'; + + /** + * Returns a list of Issuing Transaction objects. The objects are + * sorted in descending order by creation date, with the most recently created + * object appearing first. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\Issuing\Transaction> of ApiResources + */ + public static function all($params = null, $opts = null) + { + $url = static::classUrl(); + + return static::_requestPage($url, \Stripe\Collection::class, $params, $opts); + } + + /** + * Retrieves an Issuing Transaction object. + * + * @param array|string $id the ID of the API resource to retrieve, or an options array containing an `id` key + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Issuing\Transaction + */ + public static function retrieve($id, $opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + $instance = new static($id, $opts); + $instance->refresh(); + + return $instance; + } + + /** + * Updates the specified Issuing Transaction object by setting the + * values of the parameters passed. Any parameters not provided will be left + * unchanged. + * + * @param string $id the ID of the resource to update + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Issuing\Transaction the updated resource + */ + public static function update($id, $params = null, $opts = null) + { + self::_validateParams($params); + $url = static::resourceUrl($id); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $opts); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } +} diff --git a/vendor/stripe/stripe-php/lib/LineItem.php b/vendor/stripe/stripe-php/lib/LineItem.php new file mode 100644 index 0000000..837cbb1 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/LineItem.php @@ -0,0 +1,26 @@ +ISO currency code, in lowercase. Must be a supported currency. + * @property null|string $description An arbitrary string attached to the object. Often useful for displaying to users. Defaults to product name. + * @property null|\Stripe\StripeObject[] $discounts The discounts applied to the line item. + * @property null|\Stripe\Price $price The price used to generate the line item. + * @property null|int $quantity The quantity of products being purchased. + * @property null|\Stripe\StripeObject[] $taxes The taxes applied to the line item. + */ +class LineItem extends ApiResource +{ + const OBJECT_NAME = 'item'; +} diff --git a/vendor/stripe/stripe-php/lib/LoginLink.php b/vendor/stripe/stripe-php/lib/LoginLink.php new file mode 100644 index 0000000..6d90129 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/LoginLink.php @@ -0,0 +1,17 @@ +account.controller.stripe_dashboard.type must be express to have access to the Express Dashboard. + * + * @property string $object String representing the object's type. Objects of the same type share the same value. + * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch. + * @property string $url The URL for the login link. + */ +class LoginLink extends ApiResource +{ + const OBJECT_NAME = 'login_link'; +} diff --git a/vendor/stripe/stripe-php/lib/Mandate.php b/vendor/stripe/stripe-php/lib/Mandate.php new file mode 100644 index 0000000..0974b96 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Mandate.php @@ -0,0 +1,51 @@ +true if the object exists in live mode or the value false if the object exists in test mode. + * @property null|\Stripe\StripeObject $multi_use + * @property null|string $on_behalf_of The account (if any) that the mandate is intended for. + * @property string|\Stripe\PaymentMethod $payment_method ID of the payment method associated with this mandate. + * @property \Stripe\StripeObject $payment_method_details + * @property null|\Stripe\StripeObject $single_use + * @property string $status The mandate status indicates whether or not you can use it to initiate a payment. + * @property string $type The type of the mandate. + */ +class Mandate extends ApiResource +{ + const OBJECT_NAME = 'mandate'; + + const STATUS_ACTIVE = 'active'; + const STATUS_INACTIVE = 'inactive'; + const STATUS_PENDING = 'pending'; + + const TYPE_MULTI_USE = 'multi_use'; + const TYPE_SINGLE_USE = 'single_use'; + + /** + * Retrieves a Mandate object. + * + * @param array|string $id the ID of the API resource to retrieve, or an options array containing an `id` key + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Mandate + */ + public static function retrieve($id, $opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + $instance = new static($id, $opts); + $instance->refresh(); + + return $instance; + } +} diff --git a/vendor/stripe/stripe-php/lib/OAuth.php b/vendor/stripe/stripe-php/lib/OAuth.php new file mode 100644 index 0000000..7b0886e --- /dev/null +++ b/vendor/stripe/stripe-php/lib/OAuth.php @@ -0,0 +1,101 @@ +request( + 'post', + '/oauth/token', + $params, + null + ); + + return Util\Util::convertToStripeObject($response->json, $opts); + } + + /** + * Disconnects an account from your platform. + * + * @param null|array $params + * @param null|array $opts + * + * @throws \Stripe\Exception\OAuth\OAuthErrorException if the request fails + * + * @return StripeObject object containing the response from the API + */ + public static function deauthorize($params = null, $opts = null) + { + $params = $params ?: []; + $base = ($opts && \array_key_exists('connect_base', $opts)) ? $opts['connect_base'] : Stripe::$connectBase; + $requestor = new ApiRequestor(null, $base); + $params['client_id'] = self::_getClientId($params); + list($response, $apiKey) = $requestor->request( + 'post', + '/oauth/deauthorize', + $params, + null + ); + + return Util\Util::convertToStripeObject($response->json, $opts); + } + + private static function _getClientId($params = null) + { + $clientId = ($params && \array_key_exists('client_id', $params)) ? $params['client_id'] : null; + if (null === $clientId) { + $clientId = Stripe::getClientId(); + } + if (null === $clientId) { + $msg = 'No client_id provided. (HINT: set your client_id using ' + . '"Stripe::setClientId()". You can find your client_ids ' + . 'in your Stripe dashboard at ' + . 'https://dashboard.stripe.com/account/applications/settings, ' + . 'after registering your account as a platform. See ' + . 'https://stripe.com/docs/connect/standard-accounts for details, ' + . 'or email support@stripe.com if you have any questions.'; + + throw new Exception\AuthenticationException($msg); + } + + return $clientId; + } +} diff --git a/vendor/stripe/stripe-php/lib/OAuthErrorObject.php b/vendor/stripe/stripe-php/lib/OAuthErrorObject.php new file mode 100644 index 0000000..7190ac9 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/OAuthErrorObject.php @@ -0,0 +1,32 @@ + null, + 'error_description' => null, + ], $values); + parent::refreshFrom($values, $opts, $partial); + } +} diff --git a/vendor/stripe/stripe-php/lib/PaymentIntent.php b/vendor/stripe/stripe-php/lib/PaymentIntent.php new file mode 100644 index 0000000..c466fed --- /dev/null +++ b/vendor/stripe/stripe-php/lib/PaymentIntent.php @@ -0,0 +1,313 @@ +multiple statuses + * throughout its lifetime as it interfaces with Stripe.js to perform + * authentication flows and ultimately creates at most one successful charge. + * + * Related guide: Payment Intents API + * + * @property string $id Unique identifier for the object. + * @property string $object String representing the object's type. Objects of the same type share the same value. + * @property int $amount Amount intended to be collected by this PaymentIntent. A positive integer representing how much to charge in the smallest currency unit (e.g., 100 cents to charge $1.00 or 100 to charge ¥100, a zero-decimal currency). The minimum amount is $0.50 US or equivalent in charge currency. The amount value supports up to eight digits (e.g., a value of 99999999 for a USD charge of $999,999.99). + * @property int $amount_capturable Amount that can be captured from this PaymentIntent. + * @property null|\Stripe\StripeObject $amount_details + * @property int $amount_received Amount that this PaymentIntent collects. + * @property null|string|\Stripe\Application $application ID of the Connect application that created the PaymentIntent. + * @property null|int $application_fee_amount The amount of the application fee (if any) that will be requested to be applied to the payment and transferred to the application owner's Stripe account. The amount of the application fee collected will be capped at the total payment amount. For more information, see the PaymentIntents use case for connected accounts. + * @property null|\Stripe\StripeObject $automatic_payment_methods Settings to configure compatible payment methods from the Stripe Dashboard + * @property null|int $canceled_at Populated when status is canceled, this is the time at which the PaymentIntent was canceled. Measured in seconds since the Unix epoch. + * @property null|string $cancellation_reason Reason for cancellation of this PaymentIntent, either user-provided (duplicate, fraudulent, requested_by_customer, or abandoned) or generated by Stripe internally (failed_invoice, void_invoice, or automatic). + * @property string $capture_method Controls when the funds will be captured from the customer's account. + * @property null|string $client_secret

    The client secret of this PaymentIntent. Used for client-side retrieval using a publishable key.

    The client secret can be used to complete a payment from your frontend. It should not be stored, logged, or exposed to anyone other than the customer. Make sure that you have TLS enabled on any page that includes the client secret.

    Refer to our docs to accept a payment and learn about how client_secret should be handled.

    + * @property string $confirmation_method Describes whether we can confirm this PaymentIntent automatically, or if it requires customer action to confirm the payment. + * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch. + * @property string $currency Three-letter ISO currency code, in lowercase. Must be a supported currency. + * @property null|string|\Stripe\Customer $customer

    ID of the Customer this PaymentIntent belongs to, if one exists.

    Payment methods attached to other Customers cannot be used with this PaymentIntent.

    If setup_future_usage is set and this PaymentIntent's payment method is not card_present, then the payment method attaches to the Customer after the PaymentIntent has been confirmed and any required actions from the user are complete. If the payment method is card_present and isn't a digital wallet, then a generated_card payment method representing the card is created and attached to the Customer instead.

    + * @property null|string $description An arbitrary string attached to the object. Often useful for displaying to users. + * @property null|string|\Stripe\Invoice $invoice ID of the invoice that created this PaymentIntent, if it exists. + * @property null|\Stripe\StripeObject $last_payment_error The payment error encountered in the previous PaymentIntent confirmation. It will be cleared if the PaymentIntent is later updated for any reason. + * @property null|string|\Stripe\Charge $latest_charge ID of the latest Charge object created by this PaymentIntent. This property is null until PaymentIntent confirmation is attempted. + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + * @property \Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Learn more about storing information in metadata. + * @property null|\Stripe\StripeObject $next_action If present, this property tells you what actions you need to take in order for your customer to fulfill a payment using the provided source. + * @property null|string|\Stripe\Account $on_behalf_of The account (if any) for which the funds of the PaymentIntent are intended. See the PaymentIntents use case for connected accounts for details. + * @property null|string|\Stripe\PaymentMethod $payment_method ID of the payment method used in this PaymentIntent. + * @property null|\Stripe\StripeObject $payment_method_configuration_details Information about the payment method configuration used for this PaymentIntent. + * @property null|\Stripe\StripeObject $payment_method_options Payment-method-specific configuration for this PaymentIntent. + * @property string[] $payment_method_types The list of payment method types (e.g. card) that this PaymentIntent is allowed to use. + * @property null|\Stripe\StripeObject $processing If present, this property tells you about the processing state of the payment. + * @property null|string $receipt_email Email address that the receipt for the resulting payment will be sent to. If receipt_email is specified for a payment in live mode, a receipt will be sent regardless of your email settings. + * @property null|string|\Stripe\Review $review ID of the review associated with this PaymentIntent, if any. + * @property null|string $setup_future_usage

    Indicates that you intend to make future payments with this PaymentIntent's payment method.

    If you provide a Customer with the PaymentIntent, you can use this parameter to attach the payment method to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still attach the payment method to a Customer after the transaction completes.

    If the payment method is card_present and isn't a digital wallet, Stripe creates and attaches a generated_card payment method representing the card to the Customer instead.

    When processing card payments, Stripe uses setup_future_usage to help you comply with regional legislation and network rules, such as SCA.

    + * @property null|\Stripe\StripeObject $shipping Shipping information for this PaymentIntent. + * @property null|string|\Stripe\Account|\Stripe\BankAccount|\Stripe\Card|\Stripe\Source $source This is a legacy field that will be removed in the future. It is the ID of the Source object that is associated with this PaymentIntent, if one was supplied. + * @property null|string $statement_descriptor

    Text that appears on the customer's statement as the statement descriptor for a non-card charge. This value overrides the account's default statement descriptor. For information about requirements, including the 22-character limit, see the Statement Descriptor docs.

    Setting this value for a card charge returns an error. For card charges, set the statement_descriptor_suffix instead.

    + * @property null|string $statement_descriptor_suffix Provides information about a card charge. Concatenated to the account's statement descriptor prefix to form the complete statement descriptor that appears on the customer's statement. + * @property string $status Status of this PaymentIntent, one of requires_payment_method, requires_confirmation, requires_action, processing, requires_capture, canceled, or succeeded. Read more about each PaymentIntent status. + * @property null|\Stripe\StripeObject $transfer_data The data that automatically creates a Transfer after the payment finalizes. Learn more about the use case for connected accounts. + * @property null|string $transfer_group A string that identifies the resulting payment as part of a group. Learn more about the use case for connected accounts. + */ +class PaymentIntent extends ApiResource +{ + const OBJECT_NAME = 'payment_intent'; + + use ApiOperations\Update; + + const CANCELLATION_REASON_ABANDONED = 'abandoned'; + const CANCELLATION_REASON_AUTOMATIC = 'automatic'; + const CANCELLATION_REASON_DUPLICATE = 'duplicate'; + const CANCELLATION_REASON_FAILED_INVOICE = 'failed_invoice'; + const CANCELLATION_REASON_FRAUDULENT = 'fraudulent'; + const CANCELLATION_REASON_REQUESTED_BY_CUSTOMER = 'requested_by_customer'; + const CANCELLATION_REASON_VOID_INVOICE = 'void_invoice'; + + const CAPTURE_METHOD_AUTOMATIC = 'automatic'; + const CAPTURE_METHOD_AUTOMATIC_ASYNC = 'automatic_async'; + const CAPTURE_METHOD_MANUAL = 'manual'; + + const CONFIRMATION_METHOD_AUTOMATIC = 'automatic'; + const CONFIRMATION_METHOD_MANUAL = 'manual'; + + const SETUP_FUTURE_USAGE_OFF_SESSION = 'off_session'; + const SETUP_FUTURE_USAGE_ON_SESSION = 'on_session'; + + const STATUS_CANCELED = 'canceled'; + const STATUS_PROCESSING = 'processing'; + const STATUS_REQUIRES_ACTION = 'requires_action'; + const STATUS_REQUIRES_CAPTURE = 'requires_capture'; + const STATUS_REQUIRES_CONFIRMATION = 'requires_confirmation'; + const STATUS_REQUIRES_PAYMENT_METHOD = 'requires_payment_method'; + const STATUS_SUCCEEDED = 'succeeded'; + + /** + * Creates a PaymentIntent object. + * + * After the PaymentIntent is created, attach a payment method and confirm to continue the payment. + * Learn more about the available payment + * flows with the Payment Intents API. + * + * When you use confirm=true during creation, it’s equivalent to + * creating and confirming the PaymentIntent in the same call. You can use any + * parameters available in the confirm + * API when you supply confirm=true. + * + * @param null|array $params + * @param null|array|string $options + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\PaymentIntent the created resource + */ + public static function create($params = null, $options = null) + { + self::_validateParams($params); + $url = static::classUrl(); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $options); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * Returns a list of PaymentIntents. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\PaymentIntent> of ApiResources + */ + public static function all($params = null, $opts = null) + { + $url = static::classUrl(); + + return static::_requestPage($url, \Stripe\Collection::class, $params, $opts); + } + + /** + * Retrieves the details of a PaymentIntent that has previously been created. + * + * You can retrieve a PaymentIntent client-side using a publishable key when the + * client_secret is in the query string. + * + * If you retrieve a PaymentIntent with a publishable key, it only returns a subset + * of properties. Refer to the payment intent + * object reference for more details. + * + * @param array|string $id the ID of the API resource to retrieve, or an options array containing an `id` key + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\PaymentIntent + */ + public static function retrieve($id, $opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + $instance = new static($id, $opts); + $instance->refresh(); + + return $instance; + } + + /** + * Updates properties on a PaymentIntent object without confirming. + * + * Depending on which properties you update, you might need to confirm the + * PaymentIntent again. For example, updating the payment_method + * always requires you to confirm the PaymentIntent again. If you prefer to update + * and confirm at the same time, we recommend updating properties through the confirm API instead. + * + * @param string $id the ID of the resource to update + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\PaymentIntent the updated resource + */ + public static function update($id, $params = null, $opts = null) + { + self::_validateParams($params); + $url = static::resourceUrl($id); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $opts); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\PaymentIntent the applied payment intent + */ + public function applyCustomerBalance($params = null, $opts = null) + { + $url = $this->instanceUrl() . '/apply_customer_balance'; + list($response, $opts) = $this->_request('post', $url, $params, $opts); + $this->refreshFrom($response, $opts); + + return $this; + } + + /** + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\PaymentIntent the canceled payment intent + */ + public function cancel($params = null, $opts = null) + { + $url = $this->instanceUrl() . '/cancel'; + list($response, $opts) = $this->_request('post', $url, $params, $opts); + $this->refreshFrom($response, $opts); + + return $this; + } + + /** + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\PaymentIntent the captured payment intent + */ + public function capture($params = null, $opts = null) + { + $url = $this->instanceUrl() . '/capture'; + list($response, $opts) = $this->_request('post', $url, $params, $opts); + $this->refreshFrom($response, $opts); + + return $this; + } + + /** + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\PaymentIntent the confirmed payment intent + */ + public function confirm($params = null, $opts = null) + { + $url = $this->instanceUrl() . '/confirm'; + list($response, $opts) = $this->_request('post', $url, $params, $opts); + $this->refreshFrom($response, $opts); + + return $this; + } + + /** + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\PaymentIntent the incremented payment intent + */ + public function incrementAuthorization($params = null, $opts = null) + { + $url = $this->instanceUrl() . '/increment_authorization'; + list($response, $opts) = $this->_request('post', $url, $params, $opts); + $this->refreshFrom($response, $opts); + + return $this; + } + + /** + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\PaymentIntent the verified payment intent + */ + public function verifyMicrodeposits($params = null, $opts = null) + { + $url = $this->instanceUrl() . '/verify_microdeposits'; + list($response, $opts) = $this->_request('post', $url, $params, $opts); + $this->refreshFrom($response, $opts); + + return $this; + } + + /** + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\SearchResult<\Stripe\PaymentIntent> the payment intent search results + */ + public static function search($params = null, $opts = null) + { + $url = '/v1/payment_intents/search'; + + return static::_requestPage($url, \Stripe\SearchResult::class, $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/PaymentLink.php b/vendor/stripe/stripe-php/lib/PaymentLink.php new file mode 100644 index 0000000..c0c59c9 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/PaymentLink.php @@ -0,0 +1,168 @@ +checkout session to render the payment page. You can use checkout session events to track payments through payment links. + * + * Related guide: Payment Links API + * + * @property string $id Unique identifier for the object. + * @property string $object String representing the object's type. Objects of the same type share the same value. + * @property bool $active Whether the payment link's url is active. If false, customers visiting the URL will be shown a page saying that the link has been deactivated. + * @property \Stripe\StripeObject $after_completion + * @property bool $allow_promotion_codes Whether user redeemable promotion codes are enabled. + * @property null|string|\Stripe\Application $application The ID of the Connect application that created the Payment Link. + * @property null|int $application_fee_amount The amount of the application fee (if any) that will be requested to be applied to the payment and transferred to the application owner's Stripe account. + * @property null|float $application_fee_percent This represents the percentage of the subscription invoice total that will be transferred to the application owner's Stripe account. + * @property \Stripe\StripeObject $automatic_tax + * @property string $billing_address_collection Configuration for collecting the customer's billing address. Defaults to auto. + * @property null|\Stripe\StripeObject $consent_collection When set, provides configuration to gather active consent from customers. + * @property string $currency Three-letter ISO currency code, in lowercase. Must be a supported currency. + * @property \Stripe\StripeObject[] $custom_fields Collect additional information from your customer using custom fields. Up to 3 fields are supported. + * @property \Stripe\StripeObject $custom_text + * @property string $customer_creation Configuration for Customer creation during checkout. + * @property null|string $inactive_message The custom message to be displayed to a customer when a payment link is no longer active. + * @property null|\Stripe\StripeObject $invoice_creation Configuration for creating invoice for payment mode payment links. + * @property null|\Stripe\Collection<\Stripe\LineItem> $line_items The line items representing what is being sold. + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + * @property \Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + * @property null|string|\Stripe\Account $on_behalf_of The account on behalf of which to charge. See the Connect documentation for details. + * @property null|\Stripe\StripeObject $payment_intent_data Indicates the parameters to be passed to PaymentIntent creation during checkout. + * @property string $payment_method_collection Configuration for collecting a payment method during checkout. Defaults to always. + * @property null|string[] $payment_method_types The list of payment method types that customers can use. When null, Stripe will dynamically show relevant payment methods you've enabled in your payment method settings. + * @property \Stripe\StripeObject $phone_number_collection + * @property null|\Stripe\StripeObject $restrictions Settings that restrict the usage of a payment link. + * @property null|\Stripe\StripeObject $shipping_address_collection Configuration for collecting the customer's shipping address. + * @property \Stripe\StripeObject[] $shipping_options The shipping rate options applied to the session. + * @property string $submit_type Indicates the type of transaction being performed which customizes relevant text on the page, such as the submit button. + * @property null|\Stripe\StripeObject $subscription_data When creating a subscription, the specified configuration data will be used. There must be at least one line item with a recurring price to use subscription_data. + * @property \Stripe\StripeObject $tax_id_collection + * @property null|\Stripe\StripeObject $transfer_data The account (if any) the payments will be attributed to for tax reporting, and where funds from each payment will be transferred to. + * @property string $url The public URL that can be shared with customers. + */ +class PaymentLink extends ApiResource +{ + const OBJECT_NAME = 'payment_link'; + + use ApiOperations\Update; + + const BILLING_ADDRESS_COLLECTION_AUTO = 'auto'; + const BILLING_ADDRESS_COLLECTION_REQUIRED = 'required'; + + const CUSTOMER_CREATION_ALWAYS = 'always'; + const CUSTOMER_CREATION_IF_REQUIRED = 'if_required'; + + const PAYMENT_METHOD_COLLECTION_ALWAYS = 'always'; + const PAYMENT_METHOD_COLLECTION_IF_REQUIRED = 'if_required'; + + const SUBMIT_TYPE_AUTO = 'auto'; + const SUBMIT_TYPE_BOOK = 'book'; + const SUBMIT_TYPE_DONATE = 'donate'; + const SUBMIT_TYPE_PAY = 'pay'; + const SUBMIT_TYPE_SUBSCRIBE = 'subscribe'; + + /** + * Creates a payment link. + * + * @param null|array $params + * @param null|array|string $options + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\PaymentLink the created resource + */ + public static function create($params = null, $options = null) + { + self::_validateParams($params); + $url = static::classUrl(); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $options); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * Returns a list of your payment links. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\PaymentLink> of ApiResources + */ + public static function all($params = null, $opts = null) + { + $url = static::classUrl(); + + return static::_requestPage($url, \Stripe\Collection::class, $params, $opts); + } + + /** + * Retrieve a payment link. + * + * @param array|string $id the ID of the API resource to retrieve, or an options array containing an `id` key + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\PaymentLink + */ + public static function retrieve($id, $opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + $instance = new static($id, $opts); + $instance->refresh(); + + return $instance; + } + + /** + * Updates a payment link. + * + * @param string $id the ID of the resource to update + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\PaymentLink the updated resource + */ + public static function update($id, $params = null, $opts = null) + { + self::_validateParams($params); + $url = static::resourceUrl($id); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $opts); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * @param string $id + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\LineItem> list of line items + */ + public static function allLineItems($id, $params = null, $opts = null) + { + $url = static::resourceUrl($id) . '/line_items'; + list($response, $opts) = static::_staticRequest('get', $url, $params, $opts); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } +} diff --git a/vendor/stripe/stripe-php/lib/PaymentMethod.php b/vendor/stripe/stripe-php/lib/PaymentMethod.php new file mode 100644 index 0000000..f283aa1 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/PaymentMethod.php @@ -0,0 +1,257 @@ +PaymentIntents to collect payments or save them to + * Customer objects to store instrument details for future payments. + * + * Related guides: Payment Methods and More Payment Scenarios. + * + * @property string $id Unique identifier for the object. + * @property string $object String representing the object's type. Objects of the same type share the same value. + * @property null|\Stripe\StripeObject $acss_debit + * @property null|\Stripe\StripeObject $affirm + * @property null|\Stripe\StripeObject $afterpay_clearpay + * @property null|\Stripe\StripeObject $alipay + * @property null|string $allow_redisplay This field indicates whether this payment method can be shown again to its customer in a checkout flow. Stripe products such as Checkout and Elements use this field to determine whether a payment method can be shown as a saved payment method in a checkout flow. The field defaults to “unspecified”. + * @property null|\Stripe\StripeObject $alma + * @property null|\Stripe\StripeObject $amazon_pay + * @property null|\Stripe\StripeObject $au_becs_debit + * @property null|\Stripe\StripeObject $bacs_debit + * @property null|\Stripe\StripeObject $bancontact + * @property \Stripe\StripeObject $billing_details + * @property null|\Stripe\StripeObject $blik + * @property null|\Stripe\StripeObject $boleto + * @property null|\Stripe\StripeObject $card + * @property null|\Stripe\StripeObject $card_present + * @property null|\Stripe\StripeObject $cashapp + * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch. + * @property null|string|\Stripe\Customer $customer The ID of the Customer to which this PaymentMethod is saved. This will not be set when the PaymentMethod has not been saved to a Customer. + * @property null|\Stripe\StripeObject $customer_balance + * @property null|\Stripe\StripeObject $eps + * @property null|\Stripe\StripeObject $fpx + * @property null|\Stripe\StripeObject $giropay + * @property null|\Stripe\StripeObject $grabpay + * @property null|\Stripe\StripeObject $ideal + * @property null|\Stripe\StripeObject $interac_present + * @property null|\Stripe\StripeObject $kakao_pay + * @property null|\Stripe\StripeObject $klarna + * @property null|\Stripe\StripeObject $konbini + * @property null|\Stripe\StripeObject $kr_card + * @property null|\Stripe\StripeObject $link + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + * @property null|\Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + * @property null|\Stripe\StripeObject $mobilepay + * @property null|\Stripe\StripeObject $multibanco + * @property null|\Stripe\StripeObject $naver_pay + * @property null|\Stripe\StripeObject $oxxo + * @property null|\Stripe\StripeObject $p24 + * @property null|\Stripe\StripeObject $pay_by_bank + * @property null|\Stripe\StripeObject $payco + * @property null|\Stripe\StripeObject $paynow + * @property null|\Stripe\StripeObject $paypal + * @property null|\Stripe\StripeObject $pix + * @property null|\Stripe\StripeObject $promptpay + * @property null|\Stripe\StripeObject $radar_options Options to configure Radar. See Radar Session for more information. + * @property null|\Stripe\StripeObject $revolut_pay + * @property null|\Stripe\StripeObject $samsung_pay + * @property null|\Stripe\StripeObject $sepa_debit + * @property null|\Stripe\StripeObject $sofort + * @property null|\Stripe\StripeObject $swish + * @property null|\Stripe\StripeObject $twint + * @property string $type The type of the PaymentMethod. An additional hash is included on the PaymentMethod with a name matching this value. It contains additional information specific to the PaymentMethod type. + * @property null|\Stripe\StripeObject $us_bank_account + * @property null|\Stripe\StripeObject $wechat_pay + * @property null|\Stripe\StripeObject $zip + */ +class PaymentMethod extends ApiResource +{ + const OBJECT_NAME = 'payment_method'; + + use ApiOperations\Update; + + const ALLOW_REDISPLAY_ALWAYS = 'always'; + const ALLOW_REDISPLAY_LIMITED = 'limited'; + const ALLOW_REDISPLAY_UNSPECIFIED = 'unspecified'; + + const TYPE_ACSS_DEBIT = 'acss_debit'; + const TYPE_AFFIRM = 'affirm'; + const TYPE_AFTERPAY_CLEARPAY = 'afterpay_clearpay'; + const TYPE_ALIPAY = 'alipay'; + const TYPE_ALMA = 'alma'; + const TYPE_AMAZON_PAY = 'amazon_pay'; + const TYPE_AU_BECS_DEBIT = 'au_becs_debit'; + const TYPE_BACS_DEBIT = 'bacs_debit'; + const TYPE_BANCONTACT = 'bancontact'; + const TYPE_BLIK = 'blik'; + const TYPE_BOLETO = 'boleto'; + const TYPE_CARD = 'card'; + const TYPE_CARD_PRESENT = 'card_present'; + const TYPE_CASHAPP = 'cashapp'; + const TYPE_CUSTOMER_BALANCE = 'customer_balance'; + const TYPE_EPS = 'eps'; + const TYPE_FPX = 'fpx'; + const TYPE_GIROPAY = 'giropay'; + const TYPE_GRABPAY = 'grabpay'; + const TYPE_IDEAL = 'ideal'; + const TYPE_INTERAC_PRESENT = 'interac_present'; + const TYPE_KAKAO_PAY = 'kakao_pay'; + const TYPE_KLARNA = 'klarna'; + const TYPE_KONBINI = 'konbini'; + const TYPE_KR_CARD = 'kr_card'; + const TYPE_LINK = 'link'; + const TYPE_MOBILEPAY = 'mobilepay'; + const TYPE_MULTIBANCO = 'multibanco'; + const TYPE_NAVER_PAY = 'naver_pay'; + const TYPE_OXXO = 'oxxo'; + const TYPE_P24 = 'p24'; + const TYPE_PAYCO = 'payco'; + const TYPE_PAYNOW = 'paynow'; + const TYPE_PAYPAL = 'paypal'; + const TYPE_PAY_BY_BANK = 'pay_by_bank'; + const TYPE_PIX = 'pix'; + const TYPE_PROMPTPAY = 'promptpay'; + const TYPE_REVOLUT_PAY = 'revolut_pay'; + const TYPE_SAMSUNG_PAY = 'samsung_pay'; + const TYPE_SEPA_DEBIT = 'sepa_debit'; + const TYPE_SOFORT = 'sofort'; + const TYPE_SWISH = 'swish'; + const TYPE_TWINT = 'twint'; + const TYPE_US_BANK_ACCOUNT = 'us_bank_account'; + const TYPE_WECHAT_PAY = 'wechat_pay'; + const TYPE_ZIP = 'zip'; + + /** + * Creates a PaymentMethod object. Read the Stripe.js + * reference to learn how to create PaymentMethods via Stripe.js. + * + * Instead of creating a PaymentMethod directly, we recommend using the PaymentIntents API to accept a + * payment immediately or the SetupIntent API to collect payment + * method details ahead of a future payment. + * + * @param null|array $params + * @param null|array|string $options + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\PaymentMethod the created resource + */ + public static function create($params = null, $options = null) + { + self::_validateParams($params); + $url = static::classUrl(); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $options); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * Returns a list of PaymentMethods for Treasury flows. If you want to list the + * PaymentMethods attached to a Customer for payments, you should use the List a Customer’s + * PaymentMethods API instead. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\PaymentMethod> of ApiResources + */ + public static function all($params = null, $opts = null) + { + $url = static::classUrl(); + + return static::_requestPage($url, \Stripe\Collection::class, $params, $opts); + } + + /** + * Retrieves a PaymentMethod object attached to the StripeAccount. To retrieve a + * payment method attached to a Customer, you should use Retrieve a Customer’s + * PaymentMethods. + * + * @param array|string $id the ID of the API resource to retrieve, or an options array containing an `id` key + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\PaymentMethod + */ + public static function retrieve($id, $opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + $instance = new static($id, $opts); + $instance->refresh(); + + return $instance; + } + + /** + * Updates a PaymentMethod object. A PaymentMethod must be attached a customer to + * be updated. + * + * @param string $id the ID of the resource to update + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\PaymentMethod the updated resource + */ + public static function update($id, $params = null, $opts = null) + { + self::_validateParams($params); + $url = static::resourceUrl($id); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $opts); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\PaymentMethod the attached payment method + */ + public function attach($params = null, $opts = null) + { + $url = $this->instanceUrl() . '/attach'; + list($response, $opts) = $this->_request('post', $url, $params, $opts); + $this->refreshFrom($response, $opts); + + return $this; + } + + /** + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\PaymentMethod the detached payment method + */ + public function detach($params = null, $opts = null) + { + $url = $this->instanceUrl() . '/detach'; + list($response, $opts) = $this->_request('post', $url, $params, $opts); + $this->refreshFrom($response, $opts); + + return $this; + } +} diff --git a/vendor/stripe/stripe-php/lib/PaymentMethodConfiguration.php b/vendor/stripe/stripe-php/lib/PaymentMethodConfiguration.php new file mode 100644 index 0000000..d259a16 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/PaymentMethodConfiguration.php @@ -0,0 +1,160 @@ +charge type: + * + * Direct configurations apply to payments created on your account, including Connect destination charges, Connect separate charges and transfers, and payments not involving Connect. + * + * Child configurations apply to payments created on your connected accounts using direct charges, and charges with the on_behalf_of parameter. + * + * Child configurations have a parent that sets default values and controls which settings connected accounts may override. You can specify a parent ID at payment time, and Stripe will automatically resolve the connected account’s associated child configuration. Parent configurations are managed in the dashboard and are not available in this API. + * + * Related guides: + * - Payment Method Configurations API + * - Multiple configurations on dynamic payment methods + * - Multiple configurations for your Connect accounts + * + * @property string $id Unique identifier for the object. + * @property string $object String representing the object's type. Objects of the same type share the same value. + * @property null|\Stripe\StripeObject $acss_debit + * @property bool $active Whether the configuration can be used for new payments. + * @property null|\Stripe\StripeObject $affirm + * @property null|\Stripe\StripeObject $afterpay_clearpay + * @property null|\Stripe\StripeObject $alipay + * @property null|\Stripe\StripeObject $alma + * @property null|\Stripe\StripeObject $amazon_pay + * @property null|\Stripe\StripeObject $apple_pay + * @property null|string $application For child configs, the Connect application associated with the configuration. + * @property null|\Stripe\StripeObject $au_becs_debit + * @property null|\Stripe\StripeObject $bacs_debit + * @property null|\Stripe\StripeObject $bancontact + * @property null|\Stripe\StripeObject $blik + * @property null|\Stripe\StripeObject $boleto + * @property null|\Stripe\StripeObject $card + * @property null|\Stripe\StripeObject $cartes_bancaires + * @property null|\Stripe\StripeObject $cashapp + * @property null|\Stripe\StripeObject $customer_balance + * @property null|\Stripe\StripeObject $eps + * @property null|\Stripe\StripeObject $fpx + * @property null|\Stripe\StripeObject $giropay + * @property null|\Stripe\StripeObject $google_pay + * @property null|\Stripe\StripeObject $grabpay + * @property null|\Stripe\StripeObject $ideal + * @property bool $is_default The default configuration is used whenever a payment method configuration is not specified. + * @property null|\Stripe\StripeObject $jcb + * @property null|\Stripe\StripeObject $klarna + * @property null|\Stripe\StripeObject $konbini + * @property null|\Stripe\StripeObject $link + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + * @property null|\Stripe\StripeObject $mobilepay + * @property null|\Stripe\StripeObject $multibanco + * @property string $name The configuration's name. + * @property null|\Stripe\StripeObject $oxxo + * @property null|\Stripe\StripeObject $p24 + * @property null|string $parent For child configs, the configuration's parent configuration. + * @property null|\Stripe\StripeObject $pay_by_bank + * @property null|\Stripe\StripeObject $paynow + * @property null|\Stripe\StripeObject $paypal + * @property null|\Stripe\StripeObject $promptpay + * @property null|\Stripe\StripeObject $revolut_pay + * @property null|\Stripe\StripeObject $sepa_debit + * @property null|\Stripe\StripeObject $sofort + * @property null|\Stripe\StripeObject $swish + * @property null|\Stripe\StripeObject $twint + * @property null|\Stripe\StripeObject $us_bank_account + * @property null|\Stripe\StripeObject $wechat_pay + * @property null|\Stripe\StripeObject $zip + */ +class PaymentMethodConfiguration extends ApiResource +{ + const OBJECT_NAME = 'payment_method_configuration'; + + use ApiOperations\Update; + + /** + * Creates a payment method configuration. + * + * @param null|array $params + * @param null|array|string $options + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\PaymentMethodConfiguration the created resource + */ + public static function create($params = null, $options = null) + { + self::_validateParams($params); + $url = static::classUrl(); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $options); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * List payment method configurations. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\PaymentMethodConfiguration> of ApiResources + */ + public static function all($params = null, $opts = null) + { + $url = static::classUrl(); + + return static::_requestPage($url, \Stripe\Collection::class, $params, $opts); + } + + /** + * Retrieve payment method configuration. + * + * @param array|string $id the ID of the API resource to retrieve, or an options array containing an `id` key + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\PaymentMethodConfiguration + */ + public static function retrieve($id, $opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + $instance = new static($id, $opts); + $instance->refresh(); + + return $instance; + } + + /** + * Update payment method configuration. + * + * @param string $id the ID of the resource to update + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\PaymentMethodConfiguration the updated resource + */ + public static function update($id, $params = null, $opts = null) + { + self::_validateParams($params); + $url = static::resourceUrl($id); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $opts); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } +} diff --git a/vendor/stripe/stripe-php/lib/PaymentMethodDomain.php b/vendor/stripe/stripe-php/lib/PaymentMethodDomain.php new file mode 100644 index 0000000..e50eaa9 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/PaymentMethodDomain.php @@ -0,0 +1,128 @@ +Payment method domains. + * + * @property string $id Unique identifier for the object. + * @property string $object String representing the object's type. Objects of the same type share the same value. + * @property \Stripe\StripeObject $amazon_pay Indicates the status of a specific payment method on a payment method domain. + * @property \Stripe\StripeObject $apple_pay Indicates the status of a specific payment method on a payment method domain. + * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch. + * @property string $domain_name The domain name that this payment method domain object represents. + * @property bool $enabled Whether this payment method domain is enabled. If the domain is not enabled, payment methods that require a payment method domain will not appear in Elements. + * @property \Stripe\StripeObject $google_pay Indicates the status of a specific payment method on a payment method domain. + * @property \Stripe\StripeObject $link Indicates the status of a specific payment method on a payment method domain. + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + * @property \Stripe\StripeObject $paypal Indicates the status of a specific payment method on a payment method domain. + */ +class PaymentMethodDomain extends ApiResource +{ + const OBJECT_NAME = 'payment_method_domain'; + + use ApiOperations\Update; + + /** + * Creates a payment method domain. + * + * @param null|array $params + * @param null|array|string $options + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\PaymentMethodDomain the created resource + */ + public static function create($params = null, $options = null) + { + self::_validateParams($params); + $url = static::classUrl(); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $options); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * Lists the details of existing payment method domains. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\PaymentMethodDomain> of ApiResources + */ + public static function all($params = null, $opts = null) + { + $url = static::classUrl(); + + return static::_requestPage($url, \Stripe\Collection::class, $params, $opts); + } + + /** + * Retrieves the details of an existing payment method domain. + * + * @param array|string $id the ID of the API resource to retrieve, or an options array containing an `id` key + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\PaymentMethodDomain + */ + public static function retrieve($id, $opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + $instance = new static($id, $opts); + $instance->refresh(); + + return $instance; + } + + /** + * Updates an existing payment method domain. + * + * @param string $id the ID of the resource to update + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\PaymentMethodDomain the updated resource + */ + public static function update($id, $params = null, $opts = null) + { + self::_validateParams($params); + $url = static::resourceUrl($id); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $opts); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\PaymentMethodDomain the validated payment method domain + */ + public function validate($params = null, $opts = null) + { + $url = $this->instanceUrl() . '/validate'; + list($response, $opts) = $this->_request('post', $url, $params, $opts); + $this->refreshFrom($response, $opts); + + return $this; + } +} diff --git a/vendor/stripe/stripe-php/lib/Payout.php b/vendor/stripe/stripe-php/lib/Payout.php new file mode 100644 index 0000000..b97bcfa --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Payout.php @@ -0,0 +1,212 @@ +Payout object is created when you receive funds from Stripe, or when you + * initiate a payout to either a bank account or debit card of a connected + * Stripe account. You can retrieve individual payouts, + * and list all payouts. Payouts are made on varying + * schedules, depending on your country and + * industry. + * + * Related guide: Receiving payouts + * + * @property string $id Unique identifier for the object. + * @property string $object String representing the object's type. Objects of the same type share the same value. + * @property int $amount The amount (in cents (or local equivalent)) that transfers to your bank account or debit card. + * @property null|string|\Stripe\ApplicationFee $application_fee The application fee (if any) for the payout. See the Connect documentation for details. + * @property null|int $application_fee_amount The amount of the application fee (if any) requested for the payout. See the Connect documentation for details. + * @property int $arrival_date Date that you can expect the payout to arrive in the bank. This factors in delays to account for weekends or bank holidays. + * @property bool $automatic Returns true if the payout is created by an automated payout schedule and false if it's requested manually. + * @property null|string|\Stripe\BalanceTransaction $balance_transaction ID of the balance transaction that describes the impact of this payout on your account balance. + * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch. + * @property string $currency Three-letter ISO currency code, in lowercase. Must be a supported currency. + * @property null|string $description An arbitrary string attached to the object. Often useful for displaying to users. + * @property null|string|\Stripe\BankAccount|\Stripe\Card $destination ID of the bank account or card the payout is sent to. + * @property null|string|\Stripe\BalanceTransaction $failure_balance_transaction If the payout fails or cancels, this is the ID of the balance transaction that reverses the initial balance transaction and returns the funds from the failed payout back in your balance. + * @property null|string $failure_code Error code that provides a reason for a payout failure, if available. View our list of failure codes. + * @property null|string $failure_message Message that provides the reason for a payout failure, if available. + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + * @property null|\Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + * @property string $method The method used to send this payout, which can be standard or instant. instant is supported for payouts to debit cards and bank accounts in certain countries. Learn more about bank support for Instant Payouts. + * @property null|string|\Stripe\Payout $original_payout If the payout reverses another, this is the ID of the original payout. + * @property string $reconciliation_status If completed, you can use the Balance Transactions API to list all balance transactions that are paid out in this payout. + * @property null|string|\Stripe\Payout $reversed_by If the payout reverses, this is the ID of the payout that reverses this payout. + * @property string $source_type The source balance this payout came from, which can be one of the following: card, fpx, or bank_account. + * @property null|string $statement_descriptor Extra information about a payout that displays on the user's bank statement. + * @property string $status Current status of the payout: paid, pending, in_transit, canceled or failed. A payout is pending until it's submitted to the bank, when it becomes in_transit. The status changes to paid if the transaction succeeds, or to failed or canceled (within 5 business days). Some payouts that fail might initially show as paid, then change to failed. + * @property null|\Stripe\StripeObject $trace_id A value that generates from the beneficiary's bank that allows users to track payouts with their bank. Banks might call this a "reference number" or something similar. + * @property string $type Can be bank_account or card. + */ +class Payout extends ApiResource +{ + const OBJECT_NAME = 'payout'; + + use ApiOperations\Update; + + const METHOD_INSTANT = 'instant'; + const METHOD_STANDARD = 'standard'; + + const RECONCILIATION_STATUS_COMPLETED = 'completed'; + const RECONCILIATION_STATUS_IN_PROGRESS = 'in_progress'; + const RECONCILIATION_STATUS_NOT_APPLICABLE = 'not_applicable'; + + const STATUS_CANCELED = 'canceled'; + const STATUS_FAILED = 'failed'; + const STATUS_IN_TRANSIT = 'in_transit'; + const STATUS_PAID = 'paid'; + const STATUS_PENDING = 'pending'; + + const TYPE_BANK_ACCOUNT = 'bank_account'; + const TYPE_CARD = 'card'; + + /** + * To send funds to your own bank account, create a new payout object. Your Stripe balance must cover the payout amount. If it doesn’t, + * you receive an “Insufficient Funds” error. + * + * If your API key is in test mode, money won’t actually be sent, though every + * other action occurs as if you’re in live mode. + * + * If you create a manual payout on a Stripe account that uses multiple payment + * source types, you need to specify the source type balance that the payout draws + * from. The balance object details available and + * pending amounts by source type. + * + * @param null|array $params + * @param null|array|string $options + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Payout the created resource + */ + public static function create($params = null, $options = null) + { + self::_validateParams($params); + $url = static::classUrl(); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $options); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * Returns a list of existing payouts sent to third-party bank accounts or payouts + * that Stripe sent to you. The payouts return in sorted order, with the most + * recently created payouts appearing first. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\Payout> of ApiResources + */ + public static function all($params = null, $opts = null) + { + $url = static::classUrl(); + + return static::_requestPage($url, \Stripe\Collection::class, $params, $opts); + } + + /** + * Retrieves the details of an existing payout. Supply the unique payout ID from + * either a payout creation request or the payout list. Stripe returns the + * corresponding payout information. + * + * @param array|string $id the ID of the API resource to retrieve, or an options array containing an `id` key + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Payout + */ + public static function retrieve($id, $opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + $instance = new static($id, $opts); + $instance->refresh(); + + return $instance; + } + + /** + * Updates the specified payout by setting the values of the parameters you pass. + * We don’t change parameters that you don’t provide. This request only accepts the + * metadata as arguments. + * + * @param string $id the ID of the resource to update + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Payout the updated resource + */ + public static function update($id, $params = null, $opts = null) + { + self::_validateParams($params); + $url = static::resourceUrl($id); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $opts); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + const FAILURE_ACCOUNT_CLOSED = 'account_closed'; + const FAILURE_ACCOUNT_FROZEN = 'account_frozen'; + const FAILURE_BANK_ACCOUNT_RESTRICTED = 'bank_account_restricted'; + const FAILURE_BANK_OWNERSHIP_CHANGED = 'bank_ownership_changed'; + const FAILURE_COULD_NOT_PROCESS = 'could_not_process'; + const FAILURE_DEBIT_NOT_AUTHORIZED = 'debit_not_authorized'; + const FAILURE_DECLINED = 'declined'; + const FAILURE_INCORRECT_ACCOUNT_HOLDER_ADDRESS = 'incorrect_account_holder_address'; + const FAILURE_INCORRECT_ACCOUNT_HOLDER_NAME = 'incorrect_account_holder_name'; + const FAILURE_INCORRECT_ACCOUNT_HOLDER_TAX_ID = 'incorrect_account_holder_tax_id'; + const FAILURE_INSUFFICIENT_FUNDS = 'insufficient_funds'; + const FAILURE_INVALID_ACCOUNT_NUMBER = 'invalid_account_number'; + const FAILURE_INVALID_CURRENCY = 'invalid_currency'; + const FAILURE_NO_ACCOUNT = 'no_account'; + const FAILURE_UNSUPPORTED_CARD = 'unsupported_card'; + + /** + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Payout the canceled payout + */ + public function cancel($params = null, $opts = null) + { + $url = $this->instanceUrl() . '/cancel'; + list($response, $opts) = $this->_request('post', $url, $params, $opts); + $this->refreshFrom($response, $opts); + + return $this; + } + + /** + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Payout the reversed payout + */ + public function reverse($params = null, $opts = null) + { + $url = $this->instanceUrl() . '/reverse'; + list($response, $opts) = $this->_request('post', $url, $params, $opts); + $this->refreshFrom($response, $opts); + + return $this; + } +} diff --git a/vendor/stripe/stripe-php/lib/Person.php b/vendor/stripe/stripe-php/lib/Person.php new file mode 100644 index 0000000..467295e --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Person.php @@ -0,0 +1,139 @@ +account.controller.requirement_collection is stripe, which includes Standard and Express accounts, after creating an Account Link or Account Session to start Connect onboarding. + * + * See the Standard onboarding or Express onboarding documentation for information about prefilling information and account onboarding steps. Learn more about handling identity verification with the API. + * + * @property string $id Unique identifier for the object. + * @property string $object String representing the object's type. Objects of the same type share the same value. + * @property null|string $account The account the person is associated with. + * @property null|\Stripe\StripeObject $additional_tos_acceptances + * @property null|\Stripe\StripeObject $address + * @property null|\Stripe\StripeObject $address_kana The Kana variation of the person's address (Japan only). + * @property null|\Stripe\StripeObject $address_kanji The Kanji variation of the person's address (Japan only). + * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch. + * @property null|\Stripe\StripeObject $dob + * @property null|string $email The person's email address. + * @property null|string $first_name The person's first name. + * @property null|string $first_name_kana The Kana variation of the person's first name (Japan only). + * @property null|string $first_name_kanji The Kanji variation of the person's first name (Japan only). + * @property null|string[] $full_name_aliases A list of alternate names or aliases that the person is known by. + * @property null|\Stripe\StripeObject $future_requirements Information about the upcoming new requirements for this person, including what information needs to be collected, and by when. + * @property null|string $gender The person's gender. + * @property null|bool $id_number_provided Whether the person's id_number was provided. True if either the full ID number was provided or if only the required part of the ID number was provided (ex. last four of an individual's SSN for the US indicated by ssn_last_4_provided). + * @property null|bool $id_number_secondary_provided Whether the person's id_number_secondary was provided. + * @property null|string $last_name The person's last name. + * @property null|string $last_name_kana The Kana variation of the person's last name (Japan only). + * @property null|string $last_name_kanji The Kanji variation of the person's last name (Japan only). + * @property null|string $maiden_name The person's maiden name. + * @property null|\Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + * @property null|string $nationality The country where the person is a national. + * @property null|string $phone The person's phone number. + * @property null|string $political_exposure Indicates if the person or any of their representatives, family members, or other closely related persons, declares that they hold or have held an important public job or function, in any jurisdiction. + * @property null|\Stripe\StripeObject $registered_address + * @property null|\Stripe\StripeObject $relationship + * @property null|\Stripe\StripeObject $requirements Information about the requirements for this person, including what information needs to be collected, and by when. + * @property null|bool $ssn_last_4_provided Whether the last four digits of the person's Social Security number have been provided (U.S. only). + * @property null|\Stripe\StripeObject $verification + */ +class Person extends ApiResource +{ + const OBJECT_NAME = 'person'; + + const GENDER_FEMALE = 'female'; + const GENDER_MALE = 'male'; + + const POLITICAL_EXPOSURE_EXISTING = 'existing'; + const POLITICAL_EXPOSURE_NONE = 'none'; + + const VERIFICATION_STATUS_PENDING = 'pending'; + const VERIFICATION_STATUS_UNVERIFIED = 'unverified'; + const VERIFICATION_STATUS_VERIFIED = 'verified'; + + use ApiOperations\Delete; + + /** + * @return string the API URL for this Stripe account reversal + */ + public function instanceUrl() + { + $id = $this['id']; + $account = $this['account']; + if (!$id) { + throw new Exception\UnexpectedValueException( + 'Could not determine which URL to request: ' . + "class instance has invalid ID: {$id}", + null + ); + } + $id = Util\Util::utf8($id); + $account = Util\Util::utf8($account); + + $base = Account::classUrl(); + $accountExtn = \urlencode($account); + $extn = \urlencode($id); + + return "{$base}/{$accountExtn}/persons/{$extn}"; + } + + /** + * @param array|string $_id + * @param null|array|string $_opts + * + * @throws \Stripe\Exception\BadMethodCallException + */ + public static function retrieve($_id, $_opts = null) + { + $msg = 'Persons cannot be retrieved without an account ID. Retrieve ' . + "a person using `Account::retrievePerson('account_id', " . + "'person_id')`."; + + throw new Exception\BadMethodCallException($msg); + } + + /** + * @param string $_id + * @param null|array $_params + * @param null|array|string $_options + * + * @throws \Stripe\Exception\BadMethodCallException + */ + public static function update($_id, $_params = null, $_options = null) + { + $msg = 'Persons cannot be updated without an account ID. Update ' . + "a person using `Account::updatePerson('account_id', " . + "'person_id', \$updateParams)`."; + + throw new Exception\BadMethodCallException($msg); + } + + /** + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return static the saved resource + * + * @deprecated The `save` method is deprecated and will be removed in a + * future major version of the library. Use the static method `update` + * on the resource instead. + */ + public function save($opts = null) + { + $params = $this->serializeParameters(); + if (\count($params) > 0) { + $url = $this->instanceUrl(); + list($response, $opts) = $this->_request('post', $url, $params, $opts, ['save']); + $this->refreshFrom($response, $opts); + } + + return $this; + } +} diff --git a/vendor/stripe/stripe-php/lib/Plan.php b/vendor/stripe/stripe-php/lib/Plan.php new file mode 100644 index 0000000..53d869b --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Plan.php @@ -0,0 +1,170 @@ +Prices API. It replaces the Plans API and is backwards compatible to simplify your migration. + * + * Plans define the base price, currency, and billing cycle for recurring purchases of products. + * Products help you track inventory or provisioning, and plans help you track pricing. Different physical goods or levels of service should be represented by products, and pricing options should be represented by plans. This approach lets you change prices without having to change your provisioning scheme. + * + * For example, you might have a single "gold" product that has plans for $10/month, $100/year, €9/month, and €90/year. + * + * Related guides: Set up a subscription and more about products and prices. + * + * @property string $id Unique identifier for the object. + * @property string $object String representing the object's type. Objects of the same type share the same value. + * @property bool $active Whether the plan can be used for new purchases. + * @property null|string $aggregate_usage Specifies a usage aggregation strategy for plans of usage_type=metered. Allowed values are sum for summing up all usage during a period, last_during_period for using the last usage record reported within a period, last_ever for using the last usage record ever (across period bounds) or max which uses the usage record with the maximum reported usage during a period. Defaults to sum. + * @property null|int $amount The unit amount in cents (or local equivalent) to be charged, represented as a whole integer if possible. Only set if billing_scheme=per_unit. + * @property null|string $amount_decimal The unit amount in cents (or local equivalent) to be charged, represented as a decimal string with at most 12 decimal places. Only set if billing_scheme=per_unit. + * @property string $billing_scheme Describes how to compute the price per period. Either per_unit or tiered. per_unit indicates that the fixed amount (specified in amount) will be charged per unit in quantity (for plans with usage_type=licensed), or per unit of total usage (for plans with usage_type=metered). tiered indicates that the unit pricing will be computed using a tiering strategy as defined using the tiers and tiers_mode attributes. + * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch. + * @property string $currency Three-letter ISO currency code, in lowercase. Must be a supported currency. + * @property string $interval The frequency at which a subscription is billed. One of day, week, month or year. + * @property int $interval_count The number of intervals (specified in the interval attribute) between subscription billings. For example, interval=month and interval_count=3 bills every 3 months. + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + * @property null|\Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + * @property null|string $meter The meter tracking the usage of a metered price + * @property null|string $nickname A brief description of the plan, hidden from customers. + * @property null|string|\Stripe\Product $product The product whose pricing this plan determines. + * @property null|\Stripe\StripeObject[] $tiers Each element represents a pricing tier. This parameter requires billing_scheme to be set to tiered. See also the documentation for billing_scheme. + * @property null|string $tiers_mode Defines if the tiering price should be graduated or volume based. In volume-based tiering, the maximum quantity within a period determines the per unit price. In graduated tiering, pricing can change as the quantity grows. + * @property null|\Stripe\StripeObject $transform_usage Apply a transformation to the reported usage or set quantity before computing the amount billed. Cannot be combined with tiers. + * @property null|int $trial_period_days Default number of trial days when subscribing a customer to this plan using trial_from_plan=true. + * @property string $usage_type Configures how the quantity per period should be determined. Can be either metered or licensed. licensed automatically bills the quantity set when adding it to a subscription. metered aggregates the total usage based on usage records. Defaults to licensed. + */ +class Plan extends ApiResource +{ + const OBJECT_NAME = 'plan'; + + use ApiOperations\Update; + + const AGGREGATE_USAGE_LAST_DURING_PERIOD = 'last_during_period'; + const AGGREGATE_USAGE_LAST_EVER = 'last_ever'; + const AGGREGATE_USAGE_MAX = 'max'; + const AGGREGATE_USAGE_SUM = 'sum'; + + const BILLING_SCHEME_PER_UNIT = 'per_unit'; + const BILLING_SCHEME_TIERED = 'tiered'; + + const INTERVAL_DAY = 'day'; + const INTERVAL_MONTH = 'month'; + const INTERVAL_WEEK = 'week'; + const INTERVAL_YEAR = 'year'; + + const TIERS_MODE_GRADUATED = 'graduated'; + const TIERS_MODE_VOLUME = 'volume'; + + const USAGE_TYPE_LICENSED = 'licensed'; + const USAGE_TYPE_METERED = 'metered'; + + /** + * You can now model subscriptions more flexibly using the Prices + * API. It replaces the Plans API and is backwards compatible to simplify your + * migration. + * + * @param null|array $params + * @param null|array|string $options + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Plan the created resource + */ + public static function create($params = null, $options = null) + { + self::_validateParams($params); + $url = static::classUrl(); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $options); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * Deleting plans means new subscribers can’t be added. Existing subscribers aren’t + * affected. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Plan the deleted resource + */ + public function delete($params = null, $opts = null) + { + self::_validateParams($params); + + $url = $this->instanceUrl(); + list($response, $opts) = $this->_request('delete', $url, $params, $opts); + $this->refreshFrom($response, $opts); + + return $this; + } + + /** + * Returns a list of your plans. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\Plan> of ApiResources + */ + public static function all($params = null, $opts = null) + { + $url = static::classUrl(); + + return static::_requestPage($url, \Stripe\Collection::class, $params, $opts); + } + + /** + * Retrieves the plan with the given ID. + * + * @param array|string $id the ID of the API resource to retrieve, or an options array containing an `id` key + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Plan + */ + public static function retrieve($id, $opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + $instance = new static($id, $opts); + $instance->refresh(); + + return $instance; + } + + /** + * Updates the specified plan by setting the values of the parameters passed. Any + * parameters not provided are left unchanged. By design, you cannot change a + * plan’s ID, amount, currency, or billing cycle. + * + * @param string $id the ID of the resource to update + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Plan the updated resource + */ + public static function update($id, $params = null, $opts = null) + { + self::_validateParams($params); + $url = static::resourceUrl($id); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $opts); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } +} diff --git a/vendor/stripe/stripe-php/lib/Price.php b/vendor/stripe/stripe-php/lib/Price.php new file mode 100644 index 0000000..48a7622 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Price.php @@ -0,0 +1,155 @@ +Products help you track inventory or provisioning, and prices help you track payment terms. Different physical goods or levels of service should be represented by products, and pricing options should be represented by prices. This approach lets you change prices without having to change your provisioning scheme. + * + * For example, you might have a single "gold" product that has prices for $10/month, $100/year, and €9 once. + * + * Related guides: Set up a subscription, create an invoice, and more about products and prices. + * + * @property string $id Unique identifier for the object. + * @property string $object String representing the object's type. Objects of the same type share the same value. + * @property bool $active Whether the price can be used for new purchases. + * @property string $billing_scheme Describes how to compute the price per period. Either per_unit or tiered. per_unit indicates that the fixed amount (specified in unit_amount or unit_amount_decimal) will be charged per unit in quantity (for prices with usage_type=licensed), or per unit of total usage (for prices with usage_type=metered). tiered indicates that the unit pricing will be computed using a tiering strategy as defined using the tiers and tiers_mode attributes. + * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch. + * @property string $currency Three-letter ISO currency code, in lowercase. Must be a supported currency. + * @property null|\Stripe\StripeObject $currency_options Prices defined in each available currency option. Each key must be a three-letter ISO currency code and a supported currency. + * @property null|\Stripe\StripeObject $custom_unit_amount When set, provides configuration for the amount to be adjusted by the customer during Checkout Sessions and Payment Links. + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + * @property null|string $lookup_key A lookup key used to retrieve prices dynamically from a static string. This may be up to 200 characters. + * @property \Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + * @property null|string $nickname A brief description of the price, hidden from customers. + * @property string|\Stripe\Product $product The ID of the product this price is associated with. + * @property null|\Stripe\StripeObject $recurring The recurring components of a price such as interval and usage_type. + * @property null|string $tax_behavior Only required if a default tax behavior was not provided in the Stripe Tax settings. Specifies whether the price is considered inclusive of taxes or exclusive of taxes. One of inclusive, exclusive, or unspecified. Once specified as either inclusive or exclusive, it cannot be changed. + * @property null|\Stripe\StripeObject[] $tiers Each element represents a pricing tier. This parameter requires billing_scheme to be set to tiered. See also the documentation for billing_scheme. + * @property null|string $tiers_mode Defines if the tiering price should be graduated or volume based. In volume-based tiering, the maximum quantity within a period determines the per unit price. In graduated tiering, pricing can change as the quantity grows. + * @property null|\Stripe\StripeObject $transform_quantity Apply a transformation to the reported usage or set quantity before computing the amount billed. Cannot be combined with tiers. + * @property string $type One of one_time or recurring depending on whether the price is for a one-time purchase or a recurring (subscription) purchase. + * @property null|int $unit_amount The unit amount in cents (or local equivalent) to be charged, represented as a whole integer if possible. Only set if billing_scheme=per_unit. + * @property null|string $unit_amount_decimal The unit amount in cents (or local equivalent) to be charged, represented as a decimal string with at most 12 decimal places. Only set if billing_scheme=per_unit. + */ +class Price extends ApiResource +{ + const OBJECT_NAME = 'price'; + + use ApiOperations\Update; + + const BILLING_SCHEME_PER_UNIT = 'per_unit'; + const BILLING_SCHEME_TIERED = 'tiered'; + + const TAX_BEHAVIOR_EXCLUSIVE = 'exclusive'; + const TAX_BEHAVIOR_INCLUSIVE = 'inclusive'; + const TAX_BEHAVIOR_UNSPECIFIED = 'unspecified'; + + const TIERS_MODE_GRADUATED = 'graduated'; + const TIERS_MODE_VOLUME = 'volume'; + + const TYPE_ONE_TIME = 'one_time'; + const TYPE_RECURRING = 'recurring'; + + /** + * Creates a new price for an existing product. The price can be recurring or + * one-time. + * + * @param null|array $params + * @param null|array|string $options + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Price the created resource + */ + public static function create($params = null, $options = null) + { + self::_validateParams($params); + $url = static::classUrl(); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $options); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * Returns a list of your active prices, excluding inline prices. + * For the list of inactive prices, set active to false. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\Price> of ApiResources + */ + public static function all($params = null, $opts = null) + { + $url = static::classUrl(); + + return static::_requestPage($url, \Stripe\Collection::class, $params, $opts); + } + + /** + * Retrieves the price with the given ID. + * + * @param array|string $id the ID of the API resource to retrieve, or an options array containing an `id` key + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Price + */ + public static function retrieve($id, $opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + $instance = new static($id, $opts); + $instance->refresh(); + + return $instance; + } + + /** + * Updates the specified price by setting the values of the parameters passed. Any + * parameters not provided are left unchanged. + * + * @param string $id the ID of the resource to update + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Price the updated resource + */ + public static function update($id, $params = null, $opts = null) + { + self::_validateParams($params); + $url = static::resourceUrl($id); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $opts); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\SearchResult<\Stripe\Price> the price search results + */ + public static function search($params = null, $opts = null) + { + $url = '/v1/prices/search'; + + return static::_requestPage($url, \Stripe\SearchResult::class, $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Product.php b/vendor/stripe/stripe-php/lib/Product.php new file mode 100644 index 0000000..168d7a0 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Product.php @@ -0,0 +1,229 @@ +Prices to configure pricing in Payment Links, Checkout, and Subscriptions. + * + * Related guides: Set up a subscription, + * share a Payment Link, + * accept payments with Checkout, + * and more about Products and Prices + * + * @property string $id Unique identifier for the object. + * @property string $object String representing the object's type. Objects of the same type share the same value. + * @property bool $active Whether the product is currently available for purchase. + * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch. + * @property null|string|\Stripe\Price $default_price The ID of the Price object that is the default price for this product. + * @property null|string $description The product's description, meant to be displayable to the customer. Use this field to optionally store a long form explanation of the product being sold for your own rendering purposes. + * @property string[] $images A list of up to 8 URLs of images for this product, meant to be displayable to the customer. + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + * @property \Stripe\StripeObject[] $marketing_features A list of up to 15 marketing features for this product. These are displayed in pricing tables. + * @property \Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + * @property string $name The product's name, meant to be displayable to the customer. + * @property null|\Stripe\StripeObject $package_dimensions The dimensions of this product for shipping purposes. + * @property null|bool $shippable Whether this product is shipped (i.e., physical goods). + * @property null|string $statement_descriptor Extra information about a product which will appear on your customer's credit card statement. In the case that multiple products are billed at once, the first statement descriptor will be used. Only used for subscription payments. + * @property null|string|\Stripe\TaxCode $tax_code A tax code ID. + * @property string $type The type of the product. The product is either of type good, which is eligible for use with Orders and SKUs, or service, which is eligible for use with Subscriptions and Plans. + * @property null|string $unit_label A label that represents units of this product. When set, this will be included in customers' receipts, invoices, Checkout, and the customer portal. + * @property int $updated Time at which the object was last updated. Measured in seconds since the Unix epoch. + * @property null|string $url A URL of a publicly-accessible webpage for this product. + */ +class Product extends ApiResource +{ + const OBJECT_NAME = 'product'; + + use ApiOperations\NestedResource; + use ApiOperations\Update; + + const TYPE_GOOD = 'good'; + const TYPE_SERVICE = 'service'; + + /** + * Creates a new product object. + * + * @param null|array $params + * @param null|array|string $options + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Product the created resource + */ + public static function create($params = null, $options = null) + { + self::_validateParams($params); + $url = static::classUrl(); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $options); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * Delete a product. Deleting a product is only possible if it has no prices + * associated with it. Additionally, deleting a product with type=good + * is only possible if it has no SKUs associated with it. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Product the deleted resource + */ + public function delete($params = null, $opts = null) + { + self::_validateParams($params); + + $url = $this->instanceUrl(); + list($response, $opts) = $this->_request('delete', $url, $params, $opts); + $this->refreshFrom($response, $opts); + + return $this; + } + + /** + * Returns a list of your products. The products are returned sorted by creation + * date, with the most recently created products appearing first. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\Product> of ApiResources + */ + public static function all($params = null, $opts = null) + { + $url = static::classUrl(); + + return static::_requestPage($url, \Stripe\Collection::class, $params, $opts); + } + + /** + * Retrieves the details of an existing product. Supply the unique product ID from + * either a product creation request or the product list, and Stripe will return + * the corresponding product information. + * + * @param array|string $id the ID of the API resource to retrieve, or an options array containing an `id` key + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Product + */ + public static function retrieve($id, $opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + $instance = new static($id, $opts); + $instance->refresh(); + + return $instance; + } + + /** + * Updates the specific product by setting the values of the parameters passed. Any + * parameters not provided will be left unchanged. + * + * @param string $id the ID of the resource to update + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Product the updated resource + */ + public static function update($id, $params = null, $opts = null) + { + self::_validateParams($params); + $url = static::resourceUrl($id); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $opts); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\SearchResult<\Stripe\Product> the product search results + */ + public static function search($params = null, $opts = null) + { + $url = '/v1/products/search'; + + return static::_requestPage($url, \Stripe\SearchResult::class, $params, $opts); + } + + const PATH_FEATURES = '/features'; + + /** + * @param string $id the ID of the product on which to retrieve the product features + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\ProductFeature> the list of product features + */ + public static function allFeatures($id, $params = null, $opts = null) + { + return self::_allNestedResources($id, static::PATH_FEATURES, $params, $opts); + } + + /** + * @param string $id the ID of the product on which to create the product feature + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\ProductFeature + */ + public static function createFeature($id, $params = null, $opts = null) + { + return self::_createNestedResource($id, static::PATH_FEATURES, $params, $opts); + } + + /** + * @param string $id the ID of the product to which the product feature belongs + * @param string $featureId the ID of the product feature to delete + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\ProductFeature + */ + public static function deleteFeature($id, $featureId, $params = null, $opts = null) + { + return self::_deleteNestedResource($id, static::PATH_FEATURES, $featureId, $params, $opts); + } + + /** + * @param string $id the ID of the product to which the product feature belongs + * @param string $featureId the ID of the product feature to retrieve + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\ProductFeature + */ + public static function retrieveFeature($id, $featureId, $params = null, $opts = null) + { + return self::_retrieveNestedResource($id, static::PATH_FEATURES, $featureId, $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/ProductFeature.php b/vendor/stripe/stripe-php/lib/ProductFeature.php new file mode 100644 index 0000000..a978fb1 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/ProductFeature.php @@ -0,0 +1,19 @@ +true if the object exists in live mode or the value false if the object exists in test mode. + */ +class ProductFeature extends ApiResource +{ + const OBJECT_NAME = 'product_feature'; +} diff --git a/vendor/stripe/stripe-php/lib/PromotionCode.php b/vendor/stripe/stripe-php/lib/PromotionCode.php new file mode 100644 index 0000000..317555e --- /dev/null +++ b/vendor/stripe/stripe-php/lib/PromotionCode.php @@ -0,0 +1,116 @@ +coupon. It can be used to + * create multiple codes for a single coupon. + * + * @property string $id Unique identifier for the object. + * @property string $object String representing the object's type. Objects of the same type share the same value. + * @property bool $active Whether the promotion code is currently active. A promotion code is only active if the coupon is also valid. + * @property string $code The customer-facing code. Regardless of case, this code must be unique across all active promotion codes for each customer. Valid characters are lower case letters (a-z), upper case letters (A-Z), and digits (0-9). + * @property \Stripe\Coupon $coupon A coupon contains information about a percent-off or amount-off discount you might want to apply to a customer. Coupons may be applied to subscriptions, invoices, checkout sessions, quotes, and more. Coupons do not work with conventional one-off charges or payment intents. + * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch. + * @property null|string|\Stripe\Customer $customer The customer that this promotion code can be used by. + * @property null|int $expires_at Date at which the promotion code can no longer be redeemed. + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + * @property null|int $max_redemptions Maximum number of times this promotion code can be redeemed. + * @property null|\Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + * @property \Stripe\StripeObject $restrictions + * @property int $times_redeemed Number of times this promotion code has been used. + */ +class PromotionCode extends ApiResource +{ + const OBJECT_NAME = 'promotion_code'; + + use ApiOperations\Update; + + /** + * A promotion code points to a coupon. You can optionally restrict the code to a + * specific customer, redemption limit, and expiration date. + * + * @param null|array $params + * @param null|array|string $options + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\PromotionCode the created resource + */ + public static function create($params = null, $options = null) + { + self::_validateParams($params); + $url = static::classUrl(); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $options); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * Returns a list of your promotion codes. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\PromotionCode> of ApiResources + */ + public static function all($params = null, $opts = null) + { + $url = static::classUrl(); + + return static::_requestPage($url, \Stripe\Collection::class, $params, $opts); + } + + /** + * Retrieves the promotion code with the given ID. In order to retrieve a promotion + * code by the customer-facing code use list with the desired + * code. + * + * @param array|string $id the ID of the API resource to retrieve, or an options array containing an `id` key + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\PromotionCode + */ + public static function retrieve($id, $opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + $instance = new static($id, $opts); + $instance->refresh(); + + return $instance; + } + + /** + * Updates the specified promotion code by setting the values of the parameters + * passed. Most fields are, by design, not editable. + * + * @param string $id the ID of the resource to update + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\PromotionCode the updated resource + */ + public static function update($id, $params = null, $opts = null) + { + self::_validateParams($params); + $url = static::resourceUrl($id); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $opts); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } +} diff --git a/vendor/stripe/stripe-php/lib/Quote.php b/vendor/stripe/stripe-php/lib/Quote.php new file mode 100644 index 0000000..3a4eb41 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Quote.php @@ -0,0 +1,252 @@ +charge_automatically, or send_invoice. When charging automatically, Stripe will attempt to pay invoices at the end of the subscription cycle or on finalization using the default payment method attached to the subscription or customer. When sending an invoice, Stripe will email your customer an invoice with payment instructions and mark the subscription as active. Defaults to charge_automatically. + * @property \Stripe\StripeObject $computed + * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch. + * @property null|string $currency Three-letter ISO currency code, in lowercase. Must be a supported currency. + * @property null|string|\Stripe\Customer $customer The customer which this quote belongs to. A customer is required before finalizing the quote. Once specified, it cannot be changed. + * @property null|(string|\Stripe\TaxRate)[] $default_tax_rates The tax rates applied to this quote. + * @property null|string $description A description that will be displayed on the quote PDF. + * @property (string|\Stripe\Discount)[] $discounts The discounts applied to this quote. + * @property int $expires_at The date on which the quote will be canceled if in open or draft status. Measured in seconds since the Unix epoch. + * @property null|string $footer A footer that will be displayed on the quote PDF. + * @property null|\Stripe\StripeObject $from_quote Details of the quote that was cloned. See the cloning documentation for more details. + * @property null|string $header A header that will be displayed on the quote PDF. + * @property null|string|\Stripe\Invoice $invoice The invoice that was created from this quote. + * @property \Stripe\StripeObject $invoice_settings + * @property null|\Stripe\Collection<\Stripe\LineItem> $line_items A list of items the customer is being quoted for. + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + * @property \Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + * @property null|string $number A unique number that identifies this particular quote. This number is assigned once the quote is finalized. + * @property null|string|\Stripe\Account $on_behalf_of The account on behalf of which to charge. See the Connect documentation for details. + * @property string $status The status of the quote. + * @property \Stripe\StripeObject $status_transitions + * @property null|string|\Stripe\Subscription $subscription The subscription that was created or updated from this quote. + * @property \Stripe\StripeObject $subscription_data + * @property null|string|\Stripe\SubscriptionSchedule $subscription_schedule The subscription schedule that was created or updated from this quote. + * @property null|string|\Stripe\TestHelpers\TestClock $test_clock ID of the test clock this quote belongs to. + * @property \Stripe\StripeObject $total_details + * @property null|\Stripe\StripeObject $transfer_data The account (if any) the payments will be attributed to for tax reporting, and where funds from each payment will be transferred to for each of the invoices. + */ +class Quote extends ApiResource +{ + const OBJECT_NAME = 'quote'; + + use ApiOperations\Update; + + const COLLECTION_METHOD_CHARGE_AUTOMATICALLY = 'charge_automatically'; + const COLLECTION_METHOD_SEND_INVOICE = 'send_invoice'; + + const STATUS_ACCEPTED = 'accepted'; + const STATUS_CANCELED = 'canceled'; + const STATUS_DRAFT = 'draft'; + const STATUS_OPEN = 'open'; + + /** + * A quote models prices and services for a customer. Default options for + * header, description, footer, and + * expires_at can be set in the dashboard via the quote template. + * + * @param null|array $params + * @param null|array|string $options + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Quote the created resource + */ + public static function create($params = null, $options = null) + { + self::_validateParams($params); + $url = static::classUrl(); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $options); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * Returns a list of your quotes. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\Quote> of ApiResources + */ + public static function all($params = null, $opts = null) + { + $url = static::classUrl(); + + return static::_requestPage($url, \Stripe\Collection::class, $params, $opts); + } + + /** + * Retrieves the quote with the given ID. + * + * @param array|string $id the ID of the API resource to retrieve, or an options array containing an `id` key + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Quote + */ + public static function retrieve($id, $opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + $instance = new static($id, $opts); + $instance->refresh(); + + return $instance; + } + + /** + * A quote models prices and services for a customer. + * + * @param string $id the ID of the resource to update + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Quote the updated resource + */ + public static function update($id, $params = null, $opts = null) + { + self::_validateParams($params); + $url = static::resourceUrl($id); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $opts); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Quote the accepted quote + */ + public function accept($params = null, $opts = null) + { + $url = $this->instanceUrl() . '/accept'; + list($response, $opts) = $this->_request('post', $url, $params, $opts); + $this->refreshFrom($response, $opts); + + return $this; + } + + /** + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Quote the canceled quote + */ + public function cancel($params = null, $opts = null) + { + $url = $this->instanceUrl() . '/cancel'; + list($response, $opts) = $this->_request('post', $url, $params, $opts); + $this->refreshFrom($response, $opts); + + return $this; + } + + /** + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Quote the finalized quote + */ + public function finalizeQuote($params = null, $opts = null) + { + $url = $this->instanceUrl() . '/finalize'; + list($response, $opts) = $this->_request('post', $url, $params, $opts); + $this->refreshFrom($response, $opts); + + return $this; + } + + /** + * @param string $id + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\LineItem> list of line items + */ + public static function allComputedUpfrontLineItems($id, $params = null, $opts = null) + { + $url = static::resourceUrl($id) . '/computed_upfront_line_items'; + list($response, $opts) = static::_staticRequest('get', $url, $params, $opts); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * @param string $id + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\LineItem> list of line items + */ + public static function allLineItems($id, $params = null, $opts = null) + { + $url = static::resourceUrl($id) . '/line_items'; + list($response, $opts) = static::_staticRequest('get', $url, $params, $opts); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * @param callable $readBodyChunkCallable + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return void + */ + public function pdf($readBodyChunkCallable, $params = null, $opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + if (!isset($opts->apiBase)) { + $opts->apiBase = \Stripe\Stripe::$apiUploadBase; + } + $url = $this->instanceUrl() . '/pdf'; + $this->_requestStream('get', $url, $readBodyChunkCallable, $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Radar/EarlyFraudWarning.php b/vendor/stripe/stripe-php/lib/Radar/EarlyFraudWarning.php new file mode 100644 index 0000000..a48ae1a --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Radar/EarlyFraudWarning.php @@ -0,0 +1,73 @@ +Early fraud warnings + * + * @property string $id Unique identifier for the object. + * @property string $object String representing the object's type. Objects of the same type share the same value. + * @property bool $actionable An EFW is actionable if it has not received a dispute and has not been fully refunded. You may wish to proactively refund a charge that receives an EFW, in order to avoid receiving a dispute later. + * @property string|\Stripe\Charge $charge ID of the charge this early fraud warning is for, optionally expanded. + * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch. + * @property string $fraud_type The type of fraud labelled by the issuer. One of card_never_received, fraudulent_card_application, made_with_counterfeit_card, made_with_lost_card, made_with_stolen_card, misc, unauthorized_use_of_card. + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + * @property null|string|\Stripe\PaymentIntent $payment_intent ID of the Payment Intent this early fraud warning is for, optionally expanded. + */ +class EarlyFraudWarning extends \Stripe\ApiResource +{ + const OBJECT_NAME = 'radar.early_fraud_warning'; + + const FRAUD_TYPE_CARD_NEVER_RECEIVED = 'card_never_received'; + const FRAUD_TYPE_FRAUDULENT_CARD_APPLICATION = 'fraudulent_card_application'; + const FRAUD_TYPE_MADE_WITH_COUNTERFEIT_CARD = 'made_with_counterfeit_card'; + const FRAUD_TYPE_MADE_WITH_LOST_CARD = 'made_with_lost_card'; + const FRAUD_TYPE_MADE_WITH_STOLEN_CARD = 'made_with_stolen_card'; + const FRAUD_TYPE_MISC = 'misc'; + const FRAUD_TYPE_UNAUTHORIZED_USE_OF_CARD = 'unauthorized_use_of_card'; + + /** + * Returns a list of early fraud warnings. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\Radar\EarlyFraudWarning> of ApiResources + */ + public static function all($params = null, $opts = null) + { + $url = static::classUrl(); + + return static::_requestPage($url, \Stripe\Collection::class, $params, $opts); + } + + /** + * Retrieves the details of an early fraud warning that has previously been + * created. + * + * Please refer to the early fraud + * warning object reference for more details. + * + * @param array|string $id the ID of the API resource to retrieve, or an options array containing an `id` key + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Radar\EarlyFraudWarning + */ + public static function retrieve($id, $opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + $instance = new static($id, $opts); + $instance->refresh(); + + return $instance; + } +} diff --git a/vendor/stripe/stripe-php/lib/Radar/ValueList.php b/vendor/stripe/stripe-php/lib/Radar/ValueList.php new file mode 100644 index 0000000..14afacd --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Radar/ValueList.php @@ -0,0 +1,148 @@ +Default Stripe lists + * + * @property string $id Unique identifier for the object. + * @property string $object String representing the object's type. Objects of the same type share the same value. + * @property string $alias The name of the value list for use in rules. + * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch. + * @property string $created_by The name or email address of the user who created this value list. + * @property string $item_type The type of items in the value list. One of card_fingerprint, us_bank_account_fingerprint, sepa_debit_fingerprint, card_bin, email, ip_address, country, string, case_sensitive_string, or customer_id. + * @property \Stripe\Collection<\Stripe\Radar\ValueListItem> $list_items List of items contained within this value list. + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + * @property \Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + * @property string $name The name of the value list. + */ +class ValueList extends \Stripe\ApiResource +{ + const OBJECT_NAME = 'radar.value_list'; + + use \Stripe\ApiOperations\Update; + + const ITEM_TYPE_CARD_BIN = 'card_bin'; + const ITEM_TYPE_CARD_FINGERPRINT = 'card_fingerprint'; + const ITEM_TYPE_CASE_SENSITIVE_STRING = 'case_sensitive_string'; + const ITEM_TYPE_COUNTRY = 'country'; + const ITEM_TYPE_CUSTOMER_ID = 'customer_id'; + const ITEM_TYPE_EMAIL = 'email'; + const ITEM_TYPE_IP_ADDRESS = 'ip_address'; + const ITEM_TYPE_SEPA_DEBIT_FINGERPRINT = 'sepa_debit_fingerprint'; + const ITEM_TYPE_STRING = 'string'; + const ITEM_TYPE_US_BANK_ACCOUNT_FINGERPRINT = 'us_bank_account_fingerprint'; + + /** + * Creates a new ValueList object, which can then be referenced in + * rules. + * + * @param null|array $params + * @param null|array|string $options + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Radar\ValueList the created resource + */ + public static function create($params = null, $options = null) + { + self::_validateParams($params); + $url = static::classUrl(); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $options); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * Deletes a ValueList object, also deleting any items contained + * within the value list. To be deleted, a value list must not be referenced in any + * rules. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Radar\ValueList the deleted resource + */ + public function delete($params = null, $opts = null) + { + self::_validateParams($params); + + $url = $this->instanceUrl(); + list($response, $opts) = $this->_request('delete', $url, $params, $opts); + $this->refreshFrom($response, $opts); + + return $this; + } + + /** + * Returns a list of ValueList objects. The objects are sorted in + * descending order by creation date, with the most recently created object + * appearing first. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\Radar\ValueList> of ApiResources + */ + public static function all($params = null, $opts = null) + { + $url = static::classUrl(); + + return static::_requestPage($url, \Stripe\Collection::class, $params, $opts); + } + + /** + * Retrieves a ValueList object. + * + * @param array|string $id the ID of the API resource to retrieve, or an options array containing an `id` key + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Radar\ValueList + */ + public static function retrieve($id, $opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + $instance = new static($id, $opts); + $instance->refresh(); + + return $instance; + } + + /** + * Updates a ValueList object by setting the values of the parameters + * passed. Any parameters not provided will be left unchanged. Note that + * item_type is immutable. + * + * @param string $id the ID of the resource to update + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Radar\ValueList the updated resource + */ + public static function update($id, $params = null, $opts = null) + { + self::_validateParams($params); + $url = static::resourceUrl($id); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $opts); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } +} diff --git a/vendor/stripe/stripe-php/lib/Radar/ValueListItem.php b/vendor/stripe/stripe-php/lib/Radar/ValueListItem.php new file mode 100644 index 0000000..a40b9da --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Radar/ValueListItem.php @@ -0,0 +1,106 @@ +Managing list items + * + * @property string $id Unique identifier for the object. + * @property string $object String representing the object's type. Objects of the same type share the same value. + * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch. + * @property string $created_by The name or email address of the user who added this item to the value list. + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + * @property string $value The value of the item. + * @property string $value_list The identifier of the value list this item belongs to. + */ +class ValueListItem extends \Stripe\ApiResource +{ + const OBJECT_NAME = 'radar.value_list_item'; + + /** + * Creates a new ValueListItem object, which is added to the specified + * parent value list. + * + * @param null|array $params + * @param null|array|string $options + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Radar\ValueListItem the created resource + */ + public static function create($params = null, $options = null) + { + self::_validateParams($params); + $url = static::classUrl(); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $options); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * Deletes a ValueListItem object, removing it from its parent value + * list. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Radar\ValueListItem the deleted resource + */ + public function delete($params = null, $opts = null) + { + self::_validateParams($params); + + $url = $this->instanceUrl(); + list($response, $opts) = $this->_request('delete', $url, $params, $opts); + $this->refreshFrom($response, $opts); + + return $this; + } + + /** + * Returns a list of ValueListItem objects. The objects are sorted in + * descending order by creation date, with the most recently created object + * appearing first. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\Radar\ValueListItem> of ApiResources + */ + public static function all($params = null, $opts = null) + { + $url = static::classUrl(); + + return static::_requestPage($url, \Stripe\Collection::class, $params, $opts); + } + + /** + * Retrieves a ValueListItem object. + * + * @param array|string $id the ID of the API resource to retrieve, or an options array containing an `id` key + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Radar\ValueListItem + */ + public static function retrieve($id, $opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + $instance = new static($id, $opts); + $instance->refresh(); + + return $instance; + } +} diff --git a/vendor/stripe/stripe-php/lib/Reason.php b/vendor/stripe/stripe-php/lib/Reason.php new file mode 100644 index 0000000..36e65fc --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Reason.php @@ -0,0 +1,13 @@ +Refunds + * + * @property string $id Unique identifier for the object. + * @property string $object String representing the object's type. Objects of the same type share the same value. + * @property int $amount Amount, in cents (or local equivalent). + * @property null|string|\Stripe\BalanceTransaction $balance_transaction Balance transaction that describes the impact on your account balance. + * @property null|string|\Stripe\Charge $charge ID of the charge that's refunded. + * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch. + * @property string $currency Three-letter ISO currency code, in lowercase. Must be a supported currency. + * @property null|string $description An arbitrary string attached to the object. You can use this for displaying to users (available on non-card refunds only). + * @property null|\Stripe\StripeObject $destination_details + * @property null|string|\Stripe\BalanceTransaction $failure_balance_transaction After the refund fails, this balance transaction describes the adjustment made on your account balance that reverses the initial balance transaction. + * @property null|string $failure_reason Provides the reason for the refund failure. Possible values are: lost_or_stolen_card, expired_or_canceled_card, charge_for_pending_refund_disputed, insufficient_funds, declined, merchant_request, or unknown. + * @property null|string $instructions_email For payment methods without native refund support (for example, Konbini, PromptPay), provide an email address for the customer to receive refund instructions. + * @property null|\Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + * @property null|\Stripe\StripeObject $next_action + * @property null|string|\Stripe\PaymentIntent $payment_intent ID of the PaymentIntent that's refunded. + * @property null|string $reason Reason for the refund, which is either user-provided (duplicate, fraudulent, or requested_by_customer) or generated by Stripe internally (expired_uncaptured_charge). + * @property null|string $receipt_number This is the transaction number that appears on email receipts sent for this refund. + * @property null|string|\Stripe\TransferReversal $source_transfer_reversal The transfer reversal that's associated with the refund. Only present if the charge came from another Stripe account. + * @property null|string $status Status of the refund. This can be pending, requires_action, succeeded, failed, or canceled. Learn more about failed refunds. + * @property null|string|\Stripe\TransferReversal $transfer_reversal This refers to the transfer reversal object if the accompanying transfer reverses. This is only applicable if the charge was created using the destination parameter. + */ +class Refund extends ApiResource +{ + const OBJECT_NAME = 'refund'; + + use ApiOperations\Update; + + const FAILURE_REASON_EXPIRED_OR_CANCELED_CARD = 'expired_or_canceled_card'; + const FAILURE_REASON_LOST_OR_STOLEN_CARD = 'lost_or_stolen_card'; + const FAILURE_REASON_UNKNOWN = 'unknown'; + + const REASON_DUPLICATE = 'duplicate'; + const REASON_EXPIRED_UNCAPTURED_CHARGE = 'expired_uncaptured_charge'; + const REASON_FRAUDULENT = 'fraudulent'; + const REASON_REQUESTED_BY_CUSTOMER = 'requested_by_customer'; + + const STATUS_CANCELED = 'canceled'; + const STATUS_FAILED = 'failed'; + const STATUS_PENDING = 'pending'; + const STATUS_REQUIRES_ACTION = 'requires_action'; + const STATUS_SUCCEEDED = 'succeeded'; + + /** + * When you create a new refund, you must specify a Charge or a PaymentIntent + * object on which to create it. + * + * Creating a new refund will refund a charge that has previously been created but + * not yet refunded. Funds will be refunded to the credit or debit card that was + * originally charged. + * + * You can optionally refund only part of a charge. You can do so multiple times, + * until the entire charge has been refunded. + * + * Once entirely refunded, a charge can’t be refunded again. This method will raise + * an error when called on an already-refunded charge, or when trying to refund + * more money than is left on a charge. + * + * @param null|array $params + * @param null|array|string $options + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Refund the created resource + */ + public static function create($params = null, $options = null) + { + self::_validateParams($params); + $url = static::classUrl(); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $options); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * Returns a list of all refunds you created. We return the refunds in sorted + * order, with the most recent refunds appearing first. The 10 most recent refunds + * are always available by default on the Charge object. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\Refund> of ApiResources + */ + public static function all($params = null, $opts = null) + { + $url = static::classUrl(); + + return static::_requestPage($url, \Stripe\Collection::class, $params, $opts); + } + + /** + * Retrieves the details of an existing refund. + * + * @param array|string $id the ID of the API resource to retrieve, or an options array containing an `id` key + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Refund + */ + public static function retrieve($id, $opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + $instance = new static($id, $opts); + $instance->refresh(); + + return $instance; + } + + /** + * Updates the refund that you specify by setting the values of the passed + * parameters. Any parameters that you don’t provide remain unchanged. + * + * This request only accepts metadata as an argument. + * + * @param string $id the ID of the resource to update + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Refund the updated resource + */ + public static function update($id, $params = null, $opts = null) + { + self::_validateParams($params); + $url = static::resourceUrl($id); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $opts); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Refund the canceled refund + */ + public function cancel($params = null, $opts = null) + { + $url = $this->instanceUrl() . '/cancel'; + list($response, $opts) = $this->_request('post', $url, $params, $opts); + $this->refreshFrom($response, $opts); + + return $this; + } +} diff --git a/vendor/stripe/stripe-php/lib/RelatedObject.php b/vendor/stripe/stripe-php/lib/RelatedObject.php new file mode 100644 index 0000000..c6e1ba1 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/RelatedObject.php @@ -0,0 +1,15 @@ +API Access to Reports. + * + * Note that certain report types can only be run based on your live-mode data (not test-mode + * data), and will error when queried without a live-mode API key. + * + * @property string $id Unique identifier for the object. + * @property string $object String representing the object's type. Objects of the same type share the same value. + * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch. + * @property null|string $error If something should go wrong during the run, a message about the failure (populated when status=failed). + * @property bool $livemode true if the report is run on live mode data and false if it is run on test mode data. + * @property \Stripe\StripeObject $parameters + * @property string $report_type The ID of the report type to run, such as "balance.summary.1". + * @property null|\Stripe\File $result The file object representing the result of the report run (populated when status=succeeded). + * @property string $status Status of this report run. This will be pending when the run is initially created. When the run finishes, this will be set to succeeded and the result field will be populated. Rarely, we may encounter an error, at which point this will be set to failed and the error field will be populated. + * @property null|int $succeeded_at Timestamp at which this run successfully finished (populated when status=succeeded). Measured in seconds since the Unix epoch. + */ +class ReportRun extends \Stripe\ApiResource +{ + const OBJECT_NAME = 'reporting.report_run'; + + /** + * Creates a new object and begin running the report. (Certain report types require + * a live-mode API key.). + * + * @param null|array $params + * @param null|array|string $options + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Reporting\ReportRun the created resource + */ + public static function create($params = null, $options = null) + { + self::_validateParams($params); + $url = static::classUrl(); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $options); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * Returns a list of Report Runs, with the most recent appearing first. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\Reporting\ReportRun> of ApiResources + */ + public static function all($params = null, $opts = null) + { + $url = static::classUrl(); + + return static::_requestPage($url, \Stripe\Collection::class, $params, $opts); + } + + /** + * Retrieves the details of an existing Report Run. + * + * @param array|string $id the ID of the API resource to retrieve, or an options array containing an `id` key + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Reporting\ReportRun + */ + public static function retrieve($id, $opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + $instance = new static($id, $opts); + $instance->refresh(); + + return $instance; + } +} diff --git a/vendor/stripe/stripe-php/lib/Reporting/ReportType.php b/vendor/stripe/stripe-php/lib/Reporting/ReportType.php new file mode 100644 index 0000000..0fdeb53 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Reporting/ReportType.php @@ -0,0 +1,67 @@ +API Access to Reports documentation + * for those Report Type IDs, along with required and optional parameters. + * + * Note that certain report types can only be run based on your live-mode data (not test-mode + * data), and will error when queried without a live-mode API key. + * + * @property string $id The ID of the Report Type, such as balance.summary.1. + * @property string $object String representing the object's type. Objects of the same type share the same value. + * @property int $data_available_end Most recent time for which this Report Type is available. Measured in seconds since the Unix epoch. + * @property int $data_available_start Earliest time for which this Report Type is available. Measured in seconds since the Unix epoch. + * @property null|string[] $default_columns List of column names that are included by default when this Report Type gets run. (If the Report Type doesn't support the columns parameter, this will be null.) + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + * @property string $name Human-readable name of the Report Type + * @property int $updated When this Report Type was latest updated. Measured in seconds since the Unix epoch. + * @property int $version Version of the Report Type. Different versions report with the same ID will have the same purpose, but may take different run parameters or have different result schemas. + */ +class ReportType extends \Stripe\ApiResource +{ + const OBJECT_NAME = 'reporting.report_type'; + + /** + * Returns a full list of Report Types. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\Reporting\ReportType> of ApiResources + */ + public static function all($params = null, $opts = null) + { + $url = static::classUrl(); + + return static::_requestPage($url, \Stripe\Collection::class, $params, $opts); + } + + /** + * Retrieves the details of a Report Type. (Certain report types require a live-mode API key.). + * + * @param array|string $id the ID of the API resource to retrieve, or an options array containing an `id` key + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Reporting\ReportType + */ + public static function retrieve($id, $opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + $instance = new static($id, $opts); + $instance->refresh(); + + return $instance; + } +} diff --git a/vendor/stripe/stripe-php/lib/RequestTelemetry.php b/vendor/stripe/stripe-php/lib/RequestTelemetry.php new file mode 100644 index 0000000..b4a63b2 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/RequestTelemetry.php @@ -0,0 +1,32 @@ +requestId = $requestId; + $this->requestDuration = $requestDuration; + $this->usage = $usage; + } +} diff --git a/vendor/stripe/stripe-php/lib/ReserveTransaction.php b/vendor/stripe/stripe-php/lib/ReserveTransaction.php new file mode 100644 index 0000000..b783703 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/ReserveTransaction.php @@ -0,0 +1,17 @@ +ISO currency code, in lowercase. Must be a supported currency. + * @property null|string $description An arbitrary string attached to the object. Often useful for displaying to users. + */ +class ReserveTransaction extends ApiResource +{ + const OBJECT_NAME = 'reserve_transaction'; +} diff --git a/vendor/stripe/stripe-php/lib/Review.php b/vendor/stripe/stripe-php/lib/Review.php new file mode 100644 index 0000000..cfb2395 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Review.php @@ -0,0 +1,109 @@ +Radar and reviewing payments + * here. + * + * @property string $id Unique identifier for the object. + * @property string $object String representing the object's type. Objects of the same type share the same value. + * @property null|string $billing_zip The ZIP or postal code of the card used, if applicable. + * @property null|string|\Stripe\Charge $charge The charge associated with this review. + * @property null|string $closed_reason The reason the review was closed, or null if it has not yet been closed. One of approved, refunded, refunded_as_fraud, disputed, or redacted. + * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch. + * @property null|string $ip_address The IP address where the payment originated. + * @property null|\Stripe\StripeObject $ip_address_location Information related to the location of the payment. Note that this information is an approximation and attempts to locate the nearest population center - it should not be used to determine a specific address. + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + * @property bool $open If true, the review needs action. + * @property string $opened_reason The reason the review was opened. One of rule or manual. + * @property null|string|\Stripe\PaymentIntent $payment_intent The PaymentIntent ID associated with this review, if one exists. + * @property string $reason The reason the review is currently open or closed. One of rule, manual, approved, refunded, refunded_as_fraud, disputed, or redacted. + * @property null|\Stripe\StripeObject $session Information related to the browsing session of the user who initiated the payment. + */ +class Review extends ApiResource +{ + const OBJECT_NAME = 'review'; + + const CLOSED_REASON_APPROVED = 'approved'; + const CLOSED_REASON_DISPUTED = 'disputed'; + const CLOSED_REASON_REDACTED = 'redacted'; + const CLOSED_REASON_REFUNDED = 'refunded'; + const CLOSED_REASON_REFUNDED_AS_FRAUD = 'refunded_as_fraud'; + + const OPENED_REASON_MANUAL = 'manual'; + const OPENED_REASON_RULE = 'rule'; + + /** + * Returns a list of Review objects that have open set to + * true. The objects are sorted in descending order by creation date, + * with the most recently created object appearing first. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\Review> of ApiResources + */ + public static function all($params = null, $opts = null) + { + $url = static::classUrl(); + + return static::_requestPage($url, \Stripe\Collection::class, $params, $opts); + } + + /** + * Retrieves a Review object. + * + * @param array|string $id the ID of the API resource to retrieve, or an options array containing an `id` key + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Review + */ + public static function retrieve($id, $opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + $instance = new static($id, $opts); + $instance->refresh(); + + return $instance; + } + + /** + * Possible string representations of the current, the opening or the closure reason of the review. + * Not all of these enumeration apply to all of the ´reason´ fields. Please consult the Review object to + * determine where these are apply. + * + * @see https://stripe.com/docs/api/radar/reviews/object + */ + const REASON_APPROVED = 'approved'; + const REASON_DISPUTED = 'disputed'; + const REASON_MANUAL = 'manual'; + const REASON_REFUNDED = 'refunded'; + const REASON_REFUNDED_AS_FRAUD = 'refunded_as_fraud'; + const REASON_RULE = 'rule'; + + /** + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Review the approved review + */ + public function approve($params = null, $opts = null) + { + $url = $this->instanceUrl() . '/approve'; + list($response, $opts) = $this->_request('post', $url, $params, $opts); + $this->refreshFrom($response, $opts); + + return $this; + } +} diff --git a/vendor/stripe/stripe-php/lib/SearchResult.php b/vendor/stripe/stripe-php/lib/SearchResult.php new file mode 100644 index 0000000..fc3e461 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/SearchResult.php @@ -0,0 +1,241 @@ +Collection in that they both wrap + * around a list of objects and provide pagination. However the + * SearchResult object paginates by relying on a + * next_page token included in the response rather than using + * object IDs and a starting_before/ending_after + * parameter. Thus, SearchResult only supports forwards pagination. + * + * The {@see $total_count} property is only available when + * the `expand` parameter contains `total_count`. + * + * @template TStripeObject of StripeObject + * @template-implements \IteratorAggregate + * + * @property string $object + * @property string $url + * @property string $next_page + * @property int $total_count + * @property bool $has_more + * @property TStripeObject[] $data + */ +class SearchResult extends StripeObject implements \Countable, \IteratorAggregate +{ + const OBJECT_NAME = 'search_result'; + + use ApiOperations\Request; + + /** @var array */ + protected $filters = []; + + /** + * @return string the base URL for the given class + */ + public static function baseUrl() + { + return Stripe::$apiBase; + } + + /** + * Returns the filters. + * + * @return array the filters + */ + public function getFilters() + { + return $this->filters; + } + + /** + * Sets the filters, removing paging options. + * + * @param array $filters the filters + */ + public function setFilters($filters) + { + $this->filters = $filters; + } + + /** + * @return mixed + */ + #[\ReturnTypeWillChange] + public function offsetGet($k) + { + if (\is_string($k)) { + return parent::offsetGet($k); + } + $msg = "You tried to access the {$k} index, but SearchResult " . + 'types only support string keys. (HINT: Search calls ' . + 'return an object with a `data` (which is the data ' . + "array). You likely want to call ->data[{$k}])"; + + throw new Exception\InvalidArgumentException($msg); + } + + /** + * @param null|array $params + * @param null|array|string $opts + * + * @throws Exception\ApiErrorException + * + * @return SearchResult + */ + public function all($params = null, $opts = null) + { + self::_validateParams($params); + list($url, $params) = $this->extractPathAndUpdateParams($params); + + list($response, $opts) = $this->_request('get', $url, $params, $opts); + $obj = Util\Util::convertToStripeObject($response, $opts); + if (!($obj instanceof \Stripe\SearchResult)) { + throw new \Stripe\Exception\UnexpectedValueException( + 'Expected type ' . \Stripe\SearchResult::class . ', got "' . \get_class($obj) . '" instead.' + ); + } + $obj->setFilters($params); + + return $obj; + } + + /** + * @return int the number of objects in the current page + */ + #[\ReturnTypeWillChange] + public function count() + { + return \count($this->data); + } + + /** + * @return \ArrayIterator an iterator that can be used to iterate + * across objects in the current page + */ + #[\ReturnTypeWillChange] + public function getIterator() + { + return new \ArrayIterator($this->data); + } + + /** + * @throws Exception\ApiErrorException + * + * @return \Generator|TStripeObject[] A generator that can be used to + * iterate across all objects across all pages. As page boundaries are + * encountered, the next page will be fetched automatically for + * continued iteration. + */ + public function autoPagingIterator() + { + $page = $this; + + while (true) { + foreach ($page as $item) { + yield $item; + } + $page = $page->nextPage(); + + if ($page->isEmpty()) { + break; + } + } + } + + /** + * Returns an empty set of search results. This is returned from + * {@see nextPage()} when we know that there isn't a next page in order to + * replicate the behavior of the API when it attempts to return a page + * beyond the last. + * + * @param null|array|string $opts + * + * @return SearchResult + */ + public static function emptySearchResult($opts = null) + { + return SearchResult::constructFrom(['data' => []], $opts); + } + + /** + * Returns true if the page object contains no element. + * + * @return bool + */ + public function isEmpty() + { + return empty($this->data); + } + + /** + * Fetches the next page in the resource list (if there is one). + * + * This method will try to respect the limit of the current page. If none + * was given, the default limit will be fetched again. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws Exception\ApiErrorException + * + * @return SearchResult + */ + public function nextPage($params = null, $opts = null) + { + if (!$this->has_more) { + return static::emptySearchResult($opts); + } + + $params = \array_merge( + $this->filters ?: [], + ['page' => $this->next_page], + $params ?: [] + ); + + return $this->all($params, $opts); + } + + /** + * Gets the first item from the current page. Returns `null` if the current page is empty. + * + * @return null|TStripeObject + */ + public function first() + { + return \count($this->data) > 0 ? $this->data[0] : null; + } + + /** + * Gets the last item from the current page. Returns `null` if the current page is empty. + * + * @return null|TStripeObject + */ + public function last() + { + return \count($this->data) > 0 ? $this->data[\count($this->data) - 1] : null; + } + + private function extractPathAndUpdateParams($params) + { + $url = \parse_url($this->url); + + if (!isset($url['path'])) { + throw new Exception\UnexpectedValueException("Could not parse list url into parts: {$url}"); + } + + if (isset($url['query'])) { + // If the URL contains a query param, parse it out into $params so they + // don't interact weirdly with each other. + $query = []; + \parse_str($url['query'], $query); + $params = \array_merge($params ?: [], $query); + } + + return [$url['path'], $params]; + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/AbstractService.php b/vendor/stripe/stripe-php/lib/Service/AbstractService.php new file mode 100644 index 0000000..44392c4 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/AbstractService.php @@ -0,0 +1,111 @@ +client = $client; + $this->streamingClient = $client; + } + + /** + * Gets the client used by this service to send requests. + * + * @return \Stripe\StripeClientInterface + */ + public function getClient() + { + return $this->client; + } + + /** + * Gets the client used by this service to send requests. + * + * @return \Stripe\StripeStreamingClientInterface + */ + public function getStreamingClient() + { + return $this->streamingClient; + } + + /** + * Translate null values to empty strings. For service methods, + * we interpret null as a request to unset the field, which + * corresponds to sending an empty string for the field to the + * API. + * + * @param null|array $params + */ + private static function formatParams($params) + { + if (null === $params) { + return null; + } + \array_walk_recursive($params, function (&$value, $key) { + if (null === $value) { + $value = ''; + } + }); + + return $params; + } + + protected function request($method, $path, $params, $opts) + { + return $this->getClient()->request($method, $path, self::formatParams($params), $opts); + } + + protected function requestStream($method, $path, $readBodyChunkCallable, $params, $opts) + { + // TODO (MAJOR): Add this method to StripeClientInterface + // @phpstan-ignore-next-line + return $this->getStreamingClient()->requestStream($method, $path, $readBodyChunkCallable, self::formatParams($params), $opts); + } + + protected function requestCollection($method, $path, $params, $opts) + { + // TODO (MAJOR): Add this method to StripeClientInterface + // @phpstan-ignore-next-line + return $this->getClient()->requestCollection($method, $path, self::formatParams($params), $opts); + } + + protected function requestSearchResult($method, $path, $params, $opts) + { + // TODO (MAJOR): Add this method to StripeClientInterface + // @phpstan-ignore-next-line + return $this->getClient()->requestSearchResult($method, $path, self::formatParams($params), $opts); + } + + protected function buildPath($basePath, ...$ids) + { + foreach ($ids as $id) { + if (null === $id || '' === \trim($id)) { + $msg = 'The resource ID cannot be null or whitespace.'; + + throw new \Stripe\Exception\InvalidArgumentException($msg); + } + } + + return \sprintf($basePath, ...\array_map('\urlencode', $ids)); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/AbstractServiceFactory.php b/vendor/stripe/stripe-php/lib/Service/AbstractServiceFactory.php new file mode 100644 index 0000000..207b69a --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/AbstractServiceFactory.php @@ -0,0 +1,26 @@ +client = $client; + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/AccountLinkService.php b/vendor/stripe/stripe-php/lib/Service/AccountLinkService.php new file mode 100644 index 0000000..603d691 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/AccountLinkService.php @@ -0,0 +1,29 @@ +request('post', '/v1/account_links', $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/AccountService.php b/vendor/stripe/stripe-php/lib/Service/AccountService.php new file mode 100644 index 0000000..f48890c --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/AccountService.php @@ -0,0 +1,411 @@ +Connect. If you’re not a platform, the list is empty. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\Account> + */ + public function all($params = null, $opts = null) + { + return $this->requestCollection('get', '/v1/accounts', $params, $opts); + } + + /** + * Returns a list of capabilities associated with the account. The capabilities are + * returned sorted by creation date, with the most recent capability appearing + * first. + * + * @param string $parentId + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\Capability> + */ + public function allCapabilities($parentId, $params = null, $opts = null) + { + return $this->requestCollection('get', $this->buildPath('/v1/accounts/%s/capabilities', $parentId), $params, $opts); + } + + /** + * List external accounts for an account. + * + * @param string $parentId + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\BankAccount|\Stripe\Card> + */ + public function allExternalAccounts($parentId, $params = null, $opts = null) + { + return $this->requestCollection('get', $this->buildPath('/v1/accounts/%s/external_accounts', $parentId), $params, $opts); + } + + /** + * Returns a list of people associated with the account’s legal entity. The people + * are returned sorted by creation date, with the most recent people appearing + * first. + * + * @param string $parentId + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\Person> + */ + public function allPersons($parentId, $params = null, $opts = null) + { + return $this->requestCollection('get', $this->buildPath('/v1/accounts/%s/persons', $parentId), $params, $opts); + } + + /** + * With Connect, you can create Stripe accounts for + * your users. To do this, you’ll first need to register your + * platform. + * + * If you’ve already collected information for your connected accounts, you can prefill that information + * when creating the account. Connect Onboarding won’t ask for the prefilled + * information during account onboarding. You can prefill any information on the + * account. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Account + */ + public function create($params = null, $opts = null) + { + return $this->request('post', '/v1/accounts', $params, $opts); + } + + /** + * Create an external account for a given account. + * + * @param string $parentId + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\BankAccount|\Stripe\Card + */ + public function createExternalAccount($parentId, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/accounts/%s/external_accounts', $parentId), $params, $opts); + } + + /** + * Creates a login link for a connected account to access the Express Dashboard. + * + * You can only create login links for accounts that use the Express Dashboard and are connected to + * your platform. + * + * @param string $parentId + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\LoginLink + */ + public function createLoginLink($parentId, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/accounts/%s/login_links', $parentId), $params, $opts); + } + + /** + * Creates a new person. + * + * @param string $parentId + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Person + */ + public function createPerson($parentId, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/accounts/%s/persons', $parentId), $params, $opts); + } + + /** + * With Connect, you can delete accounts you manage. + * + * Test-mode accounts can be deleted at any time. + * + * Live-mode accounts where Stripe is responsible for negative account balances + * cannot be deleted, which includes Standard accounts. Live-mode accounts where + * your platform is liable for negative account balances, which includes Custom and + * Express accounts, can be deleted when all balances are zero. + * + * If you want to delete your own account, use the account information tab in + * your account settings instead. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Account + */ + public function delete($id, $params = null, $opts = null) + { + return $this->request('delete', $this->buildPath('/v1/accounts/%s', $id), $params, $opts); + } + + /** + * Delete a specified external account for a given account. + * + * @param string $parentId + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\BankAccount|\Stripe\Card + */ + public function deleteExternalAccount($parentId, $id, $params = null, $opts = null) + { + return $this->request('delete', $this->buildPath('/v1/accounts/%s/external_accounts/%s', $parentId, $id), $params, $opts); + } + + /** + * Deletes an existing person’s relationship to the account’s legal entity. Any + * person with a relationship for an account can be deleted through the API, except + * if the person is the account_opener. If your integration is using + * the executive parameter, you cannot delete the only verified + * executive on file. + * + * @param string $parentId + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Person + */ + public function deletePerson($parentId, $id, $params = null, $opts = null) + { + return $this->request('delete', $this->buildPath('/v1/accounts/%s/persons/%s', $parentId, $id), $params, $opts); + } + + /** + * With Connect, you can reject accounts that you have + * flagged as suspicious. + * + * Only accounts where your platform is liable for negative account balances, which + * includes Custom and Express accounts, can be rejected. Test-mode accounts can be + * rejected at any time. Live-mode accounts can only be rejected after all balances + * are zero. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Account + */ + public function reject($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/accounts/%s/reject', $id), $params, $opts); + } + + /** + * Retrieves information about the specified Account Capability. + * + * @param string $parentId + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Capability + */ + public function retrieveCapability($parentId, $id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/accounts/%s/capabilities/%s', $parentId, $id), $params, $opts); + } + + /** + * Retrieve a specified external account for a given account. + * + * @param string $parentId + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\BankAccount|\Stripe\Card + */ + public function retrieveExternalAccount($parentId, $id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/accounts/%s/external_accounts/%s', $parentId, $id), $params, $opts); + } + + /** + * Retrieves an existing person. + * + * @param string $parentId + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Person + */ + public function retrievePerson($parentId, $id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/accounts/%s/persons/%s', $parentId, $id), $params, $opts); + } + + /** + * Updates a connected account by setting the + * values of the parameters passed. Any parameters not provided are left unchanged. + * + * For accounts where controller.requirement_collection + * is application, which includes Custom accounts, you can update any + * information on the account. + * + * For accounts where controller.requirement_collection + * is stripe, which includes Standard and Express accounts, you can + * update all information until you create an Account + * Link or Account Session to start Connect + * onboarding, after which some properties can no longer be updated. + * + * To update your own account, use the Dashboard. Refer to our + * Connect documentation to learn + * more about updating accounts. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Account + */ + public function update($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/accounts/%s', $id), $params, $opts); + } + + /** + * Updates an existing Account Capability. Request or remove a capability by + * updating its requested parameter. + * + * @param string $parentId + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Capability + */ + public function updateCapability($parentId, $id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/accounts/%s/capabilities/%s', $parentId, $id), $params, $opts); + } + + /** + * Updates the metadata, account holder name, account holder type of a bank account + * belonging to a connected account and optionally sets it as the default for its + * currency. Other bank account details are not editable by design. + * + * You can only update bank accounts when account.controller.requirement_collection + * is application, which includes Custom accounts. + * + * You can re-enable a disabled bank account by performing an update call without + * providing any arguments or changes. + * + * @param string $parentId + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\BankAccount|\Stripe\Card + */ + public function updateExternalAccount($parentId, $id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/accounts/%s/external_accounts/%s', $parentId, $id), $params, $opts); + } + + /** + * Updates an existing person. + * + * @param string $parentId + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Person + */ + public function updatePerson($parentId, $id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/accounts/%s/persons/%s', $parentId, $id), $params, $opts); + } + + /** + * Retrieves the details of an account. + * + * @param null|string $id + * @param null|array $params + * @param null|array|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Account + */ + public function retrieve($id = null, $params = null, $opts = null) + { + if (null === $id) { + return $this->request('get', '/v1/account', $params, $opts); + } + + return $this->request('get', $this->buildPath('/v1/accounts/%s', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/AccountSessionService.php b/vendor/stripe/stripe-php/lib/Service/AccountSessionService.php new file mode 100644 index 0000000..2b681b8 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/AccountSessionService.php @@ -0,0 +1,28 @@ +request('post', '/v1/account_sessions', $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/ApplePayDomainService.php b/vendor/stripe/stripe-php/lib/Service/ApplePayDomainService.php new file mode 100644 index 0000000..04f5b63 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/ApplePayDomainService.php @@ -0,0 +1,74 @@ + + */ + public function all($params = null, $opts = null) + { + return $this->requestCollection('get', '/v1/apple_pay/domains', $params, $opts); + } + + /** + * Create an apple pay domain. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\ApplePayDomain + */ + public function create($params = null, $opts = null) + { + return $this->request('post', '/v1/apple_pay/domains', $params, $opts); + } + + /** + * Delete an apple pay domain. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\ApplePayDomain + */ + public function delete($id, $params = null, $opts = null) + { + return $this->request('delete', $this->buildPath('/v1/apple_pay/domains/%s', $id), $params, $opts); + } + + /** + * Retrieve an apple pay domain. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\ApplePayDomain + */ + public function retrieve($id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/apple_pay/domains/%s', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/ApplicationFeeService.php b/vendor/stripe/stripe-php/lib/Service/ApplicationFeeService.php new file mode 100644 index 0000000..8cc42af --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/ApplicationFeeService.php @@ -0,0 +1,129 @@ + + */ + public function all($params = null, $opts = null) + { + return $this->requestCollection('get', '/v1/application_fees', $params, $opts); + } + + /** + * You can see a list of the refunds belonging to a specific application fee. Note + * that the 10 most recent refunds are always available by default on the + * application fee object. If you need more than those 10, you can use this API + * method and the limit and starting_after parameters to + * page through additional refunds. + * + * @param string $parentId + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\ApplicationFeeRefund> + */ + public function allRefunds($parentId, $params = null, $opts = null) + { + return $this->requestCollection('get', $this->buildPath('/v1/application_fees/%s/refunds', $parentId), $params, $opts); + } + + /** + * Refunds an application fee that has previously been collected but not yet + * refunded. Funds will be refunded to the Stripe account from which the fee was + * originally collected. + * + * You can optionally refund only part of an application fee. You can do so + * multiple times, until the entire fee has been refunded. + * + * Once entirely refunded, an application fee can’t be refunded again. This method + * will raise an error when called on an already-refunded application fee, or when + * trying to refund more money than is left on an application fee. + * + * @param string $parentId + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\ApplicationFeeRefund + */ + public function createRefund($parentId, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/application_fees/%s/refunds', $parentId), $params, $opts); + } + + /** + * Retrieves the details of an application fee that your account has collected. The + * same information is returned when refunding the application fee. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\ApplicationFee + */ + public function retrieve($id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/application_fees/%s', $id), $params, $opts); + } + + /** + * By default, you can see the 10 most recent refunds stored directly on the + * application fee object, but you can also retrieve details about a specific + * refund stored on the application fee. + * + * @param string $parentId + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\ApplicationFeeRefund + */ + public function retrieveRefund($parentId, $id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/application_fees/%s/refunds/%s', $parentId, $id), $params, $opts); + } + + /** + * Updates the specified application fee refund by setting the values of the + * parameters passed. Any parameters not provided will be left unchanged. + * + * This request only accepts metadata as an argument. + * + * @param string $parentId + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\ApplicationFeeRefund + */ + public function updateRefund($parentId, $id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/application_fees/%s/refunds/%s', $parentId, $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/Apps/AppsServiceFactory.php b/vendor/stripe/stripe-php/lib/Service/Apps/AppsServiceFactory.php new file mode 100644 index 0000000..39f3734 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/Apps/AppsServiceFactory.php @@ -0,0 +1,25 @@ + + */ + private static $classMap = [ + 'secrets' => SecretService::class, + ]; + + protected function getServiceClass($name) + { + return \array_key_exists($name, self::$classMap) ? self::$classMap[$name] : null; + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/Apps/SecretService.php b/vendor/stripe/stripe-php/lib/Service/Apps/SecretService.php new file mode 100644 index 0000000..760d3cb --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/Apps/SecretService.php @@ -0,0 +1,72 @@ + + */ + public function all($params = null, $opts = null) + { + return $this->requestCollection('get', '/v1/apps/secrets', $params, $opts); + } + + /** + * Create or replace a secret in the secret store. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Apps\Secret + */ + public function create($params = null, $opts = null) + { + return $this->request('post', '/v1/apps/secrets', $params, $opts); + } + + /** + * Deletes a secret from the secret store by name and scope. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Apps\Secret + */ + public function deleteWhere($params = null, $opts = null) + { + return $this->request('post', '/v1/apps/secrets/delete', $params, $opts); + } + + /** + * Finds a secret in the secret store by name and scope. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Apps\Secret + */ + public function find($params = null, $opts = null) + { + return $this->request('get', '/v1/apps/secrets/find', $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/BalanceService.php b/vendor/stripe/stripe-php/lib/Service/BalanceService.php new file mode 100644 index 0000000..dac98ea --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/BalanceService.php @@ -0,0 +1,30 @@ +Accounting + * for negative balances. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Balance + */ + public function retrieve($params = null, $opts = null) + { + return $this->request('get', '/v1/balance', $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/BalanceTransactionService.php b/vendor/stripe/stripe-php/lib/Service/BalanceTransactionService.php new file mode 100644 index 0000000..7ea050c --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/BalanceTransactionService.php @@ -0,0 +1,51 @@ +/v1/balance/history. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\BalanceTransaction> + */ + public function all($params = null, $opts = null) + { + return $this->requestCollection('get', '/v1/balance_transactions', $params, $opts); + } + + /** + * Retrieves the balance transaction with the given ID. + * + * Note that this endpoint previously used the path + * /v1/balance/history/:id. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\BalanceTransaction + */ + public function retrieve($id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/balance_transactions/%s', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/Billing/AlertService.php b/vendor/stripe/stripe-php/lib/Service/Billing/AlertService.php new file mode 100644 index 0000000..8baafb1 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/Billing/AlertService.php @@ -0,0 +1,107 @@ +request('post', $this->buildPath('/v1/billing/alerts/%s/activate', $id), $params, $opts); + } + + /** + * Lists billing active and inactive alerts. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\Billing\Alert> + */ + public function all($params = null, $opts = null) + { + return $this->requestCollection('get', '/v1/billing/alerts', $params, $opts); + } + + /** + * Archives this alert, removing it from the list view and APIs. This is + * non-reversible. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Billing\Alert + */ + public function archive($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/billing/alerts/%s/archive', $id), $params, $opts); + } + + /** + * Creates a billing alert. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Billing\Alert + */ + public function create($params = null, $opts = null) + { + return $this->request('post', '/v1/billing/alerts', $params, $opts); + } + + /** + * Deactivates this alert, preventing it from triggering. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Billing\Alert + */ + public function deactivate($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/billing/alerts/%s/deactivate', $id), $params, $opts); + } + + /** + * Retrieves a billing alert given an ID. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Billing\Alert + */ + public function retrieve($id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/billing/alerts/%s', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/Billing/BillingServiceFactory.php b/vendor/stripe/stripe-php/lib/Service/Billing/BillingServiceFactory.php new file mode 100644 index 0000000..eb1b160 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/Billing/BillingServiceFactory.php @@ -0,0 +1,37 @@ + + */ + private static $classMap = [ + 'alerts' => AlertService::class, + 'creditBalanceSummary' => CreditBalanceSummaryService::class, + 'creditBalanceTransactions' => CreditBalanceTransactionService::class, + 'creditGrants' => CreditGrantService::class, + 'meterEventAdjustments' => MeterEventAdjustmentService::class, + 'meterEvents' => MeterEventService::class, + 'meters' => MeterService::class, + ]; + + protected function getServiceClass($name) + { + return \array_key_exists($name, self::$classMap) ? self::$classMap[$name] : null; + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/Billing/CreditBalanceSummaryService.php b/vendor/stripe/stripe-php/lib/Service/Billing/CreditBalanceSummaryService.php new file mode 100644 index 0000000..6169f05 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/Billing/CreditBalanceSummaryService.php @@ -0,0 +1,27 @@ +request('get', '/v1/billing/credit_balance_summary', $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/Billing/CreditBalanceTransactionService.php b/vendor/stripe/stripe-php/lib/Service/Billing/CreditBalanceTransactionService.php new file mode 100644 index 0000000..b4b8408 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/Billing/CreditBalanceTransactionService.php @@ -0,0 +1,43 @@ + + */ + public function all($params = null, $opts = null) + { + return $this->requestCollection('get', '/v1/billing/credit_balance_transactions', $params, $opts); + } + + /** + * Retrieves a credit balance transaction. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Billing\CreditBalanceTransaction + */ + public function retrieve($id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/billing/credit_balance_transactions/%s', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/Billing/CreditGrantService.php b/vendor/stripe/stripe-php/lib/Service/Billing/CreditGrantService.php new file mode 100644 index 0000000..29cbb15 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/Billing/CreditGrantService.php @@ -0,0 +1,106 @@ + + */ + public function all($params = null, $opts = null) + { + return $this->requestCollection('get', '/v1/billing/credit_grants', $params, $opts); + } + + /** + * Creates a credit grant. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Billing\CreditGrant + */ + public function create($params = null, $opts = null) + { + return $this->request('post', '/v1/billing/credit_grants', $params, $opts); + } + + /** + * Expires a credit grant. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Billing\CreditGrant + */ + public function expire($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/billing/credit_grants/%s/expire', $id), $params, $opts); + } + + /** + * Retrieves a credit grant. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Billing\CreditGrant + */ + public function retrieve($id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/billing/credit_grants/%s', $id), $params, $opts); + } + + /** + * Updates a credit grant. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Billing\CreditGrant + */ + public function update($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/billing/credit_grants/%s', $id), $params, $opts); + } + + /** + * Voids a credit grant. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Billing\CreditGrant + */ + public function voidGrant($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/billing/credit_grants/%s/void', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/Billing/MeterEventAdjustmentService.php b/vendor/stripe/stripe-php/lib/Service/Billing/MeterEventAdjustmentService.php new file mode 100644 index 0000000..90eb971 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/Billing/MeterEventAdjustmentService.php @@ -0,0 +1,27 @@ +request('post', '/v1/billing/meter_event_adjustments', $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/Billing/MeterEventService.php b/vendor/stripe/stripe-php/lib/Service/Billing/MeterEventService.php new file mode 100644 index 0000000..9c442b7 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/Billing/MeterEventService.php @@ -0,0 +1,27 @@ +request('post', '/v1/billing/meter_events', $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/Billing/MeterService.php b/vendor/stripe/stripe-php/lib/Service/Billing/MeterService.php new file mode 100644 index 0000000..7defce8 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/Billing/MeterService.php @@ -0,0 +1,124 @@ + + */ + public function all($params = null, $opts = null) + { + return $this->requestCollection('get', '/v1/billing/meters', $params, $opts); + } + + /** + * Retrieve a list of billing meter event summaries. + * + * @param string $parentId + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\Billing\MeterEventSummary> + */ + public function allEventSummaries($parentId, $params = null, $opts = null) + { + return $this->requestCollection('get', $this->buildPath('/v1/billing/meters/%s/event_summaries', $parentId), $params, $opts); + } + + /** + * Creates a billing meter. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Billing\Meter + */ + public function create($params = null, $opts = null) + { + return $this->request('post', '/v1/billing/meters', $params, $opts); + } + + /** + * When a meter is deactivated, no more meter events will be accepted for this + * meter. You can’t attach a deactivated meter to a price. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Billing\Meter + */ + public function deactivate($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/billing/meters/%s/deactivate', $id), $params, $opts); + } + + /** + * When a meter is reactivated, events for this meter can be accepted and you can + * attach the meter to a price. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Billing\Meter + */ + public function reactivate($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/billing/meters/%s/reactivate', $id), $params, $opts); + } + + /** + * Retrieves a billing meter given an ID. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Billing\Meter + */ + public function retrieve($id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/billing/meters/%s', $id), $params, $opts); + } + + /** + * Updates a billing meter. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Billing\Meter + */ + public function update($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/billing/meters/%s', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/BillingPortal/BillingPortalServiceFactory.php b/vendor/stripe/stripe-php/lib/Service/BillingPortal/BillingPortalServiceFactory.php new file mode 100644 index 0000000..23a4d30 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/BillingPortal/BillingPortalServiceFactory.php @@ -0,0 +1,27 @@ + + */ + private static $classMap = [ + 'configurations' => ConfigurationService::class, + 'sessions' => SessionService::class, + ]; + + protected function getServiceClass($name) + { + return \array_key_exists($name, self::$classMap) ? self::$classMap[$name] : null; + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/BillingPortal/ConfigurationService.php b/vendor/stripe/stripe-php/lib/Service/BillingPortal/ConfigurationService.php new file mode 100644 index 0000000..dad1380 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/BillingPortal/ConfigurationService.php @@ -0,0 +1,77 @@ + + */ + public function all($params = null, $opts = null) + { + return $this->requestCollection('get', '/v1/billing_portal/configurations', $params, $opts); + } + + /** + * Creates a configuration that describes the functionality and behavior of a + * PortalSession. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\BillingPortal\Configuration + */ + public function create($params = null, $opts = null) + { + return $this->request('post', '/v1/billing_portal/configurations', $params, $opts); + } + + /** + * Retrieves a configuration that describes the functionality of the customer + * portal. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\BillingPortal\Configuration + */ + public function retrieve($id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/billing_portal/configurations/%s', $id), $params, $opts); + } + + /** + * Updates a configuration that describes the functionality of the customer portal. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\BillingPortal\Configuration + */ + public function update($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/billing_portal/configurations/%s', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/BillingPortal/SessionService.php b/vendor/stripe/stripe-php/lib/Service/BillingPortal/SessionService.php new file mode 100644 index 0000000..6f7e517 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/BillingPortal/SessionService.php @@ -0,0 +1,27 @@ +request('post', '/v1/billing_portal/sessions', $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/ChargeService.php b/vendor/stripe/stripe-php/lib/Service/ChargeService.php new file mode 100644 index 0000000..500456f --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/ChargeService.php @@ -0,0 +1,126 @@ + + */ + public function all($params = null, $opts = null) + { + return $this->requestCollection('get', '/v1/charges', $params, $opts); + } + + /** + * Capture the payment of an existing, uncaptured charge that was created with the + * capture option set to false. + * + * Uncaptured payments expire a set number of days after they are created (7 by default), after which they are + * marked as refunded and capture attempts will fail. + * + * Don’t use this method to capture a PaymentIntent-initiated charge. Use Capture a PaymentIntent. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Charge + */ + public function capture($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/charges/%s/capture', $id), $params, $opts); + } + + /** + * This method is no longer recommended—use the Payment Intents API to initiate a new + * payment instead. Confirmation of the PaymentIntent creates the + * Charge object used to request payment. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Charge + */ + public function create($params = null, $opts = null) + { + return $this->request('post', '/v1/charges', $params, $opts); + } + + /** + * Retrieves the details of a charge that has previously been created. Supply the + * unique charge ID that was returned from your previous request, and Stripe will + * return the corresponding charge information. The same information is returned + * when creating or refunding the charge. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Charge + */ + public function retrieve($id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/charges/%s', $id), $params, $opts); + } + + /** + * Search for charges you’ve previously created using Stripe’s Search Query Language. Don’t use + * search in read-after-write flows where strict consistency is necessary. Under + * normal operating conditions, data is searchable in less than a minute. + * Occasionally, propagation of new or updated data can be up to an hour behind + * during outages. Search functionality is not available to merchants in India. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\SearchResult<\Stripe\Charge> + */ + public function search($params = null, $opts = null) + { + return $this->requestSearchResult('get', '/v1/charges/search', $params, $opts); + } + + /** + * Updates the specified charge by setting the values of the parameters passed. Any + * parameters not provided will be left unchanged. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Charge + */ + public function update($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/charges/%s', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/Checkout/CheckoutServiceFactory.php b/vendor/stripe/stripe-php/lib/Service/Checkout/CheckoutServiceFactory.php new file mode 100644 index 0000000..bb26a83 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/Checkout/CheckoutServiceFactory.php @@ -0,0 +1,25 @@ + + */ + private static $classMap = [ + 'sessions' => SessionService::class, + ]; + + protected function getServiceClass($name) + { + return \array_key_exists($name, self::$classMap) ? self::$classMap[$name] : null; + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/Checkout/SessionService.php b/vendor/stripe/stripe-php/lib/Service/Checkout/SessionService.php new file mode 100644 index 0000000..c419a50 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/Checkout/SessionService.php @@ -0,0 +1,112 @@ + + */ + public function all($params = null, $opts = null) + { + return $this->requestCollection('get', '/v1/checkout/sessions', $params, $opts); + } + + /** + * When retrieving a Checkout Session, there is an includable + * line_items property containing the first handful of those + * items. There is also a URL where you can retrieve the full (paginated) list of + * line items. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\LineItem> + */ + public function allLineItems($id, $params = null, $opts = null) + { + return $this->requestCollection('get', $this->buildPath('/v1/checkout/sessions/%s/line_items', $id), $params, $opts); + } + + /** + * Creates a Session object. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Checkout\Session + */ + public function create($params = null, $opts = null) + { + return $this->request('post', '/v1/checkout/sessions', $params, $opts); + } + + /** + * A Session can be expired when it is in one of these statuses: open. + * + * After it expires, a customer can’t complete a Session and customers loading the + * Session see a message saying the Session is expired. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Checkout\Session + */ + public function expire($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/checkout/sessions/%s/expire', $id), $params, $opts); + } + + /** + * Retrieves a Session object. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Checkout\Session + */ + public function retrieve($id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/checkout/sessions/%s', $id), $params, $opts); + } + + /** + * Updates a Session object. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Checkout\Session + */ + public function update($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/checkout/sessions/%s', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/Climate/ClimateServiceFactory.php b/vendor/stripe/stripe-php/lib/Service/Climate/ClimateServiceFactory.php new file mode 100644 index 0000000..ff4422a --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/Climate/ClimateServiceFactory.php @@ -0,0 +1,29 @@ + + */ + private static $classMap = [ + 'orders' => OrderService::class, + 'products' => ProductService::class, + 'suppliers' => SupplierService::class, + ]; + + protected function getServiceClass($name) + { + return \array_key_exists($name, self::$classMap) ? self::$classMap[$name] : null; + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/Climate/OrderService.php b/vendor/stripe/stripe-php/lib/Service/Climate/OrderService.php new file mode 100644 index 0000000..29917ff --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/Climate/OrderService.php @@ -0,0 +1,98 @@ + + */ + public function all($params = null, $opts = null) + { + return $this->requestCollection('get', '/v1/climate/orders', $params, $opts); + } + + /** + * Cancels a Climate order. You can cancel an order within 24 hours of creation. + * Stripe refunds the reservation amount_subtotal, but not the + * amount_fees for user-triggered cancellations. Frontier might cancel + * reservations if suppliers fail to deliver. If Frontier cancels the reservation, + * Stripe provides 90 days advance notice and refunds the + * amount_total. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Climate\Order + */ + public function cancel($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/climate/orders/%s/cancel', $id), $params, $opts); + } + + /** + * Creates a Climate order object for a given Climate product. The order will be + * processed immediately after creation and payment will be deducted your Stripe + * balance. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Climate\Order + */ + public function create($params = null, $opts = null) + { + return $this->request('post', '/v1/climate/orders', $params, $opts); + } + + /** + * Retrieves the details of a Climate order object with the given ID. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Climate\Order + */ + public function retrieve($id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/climate/orders/%s', $id), $params, $opts); + } + + /** + * Updates the specified order by setting the values of the parameters passed. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Climate\Order + */ + public function update($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/climate/orders/%s', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/Climate/ProductService.php b/vendor/stripe/stripe-php/lib/Service/Climate/ProductService.php new file mode 100644 index 0000000..c449b85 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/Climate/ProductService.php @@ -0,0 +1,43 @@ + + */ + public function all($params = null, $opts = null) + { + return $this->requestCollection('get', '/v1/climate/products', $params, $opts); + } + + /** + * Retrieves the details of a Climate product with the given ID. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Climate\Product + */ + public function retrieve($id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/climate/products/%s', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/Climate/SupplierService.php b/vendor/stripe/stripe-php/lib/Service/Climate/SupplierService.php new file mode 100644 index 0000000..5ab203d --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/Climate/SupplierService.php @@ -0,0 +1,43 @@ + + */ + public function all($params = null, $opts = null) + { + return $this->requestCollection('get', '/v1/climate/suppliers', $params, $opts); + } + + /** + * Retrieves a Climate supplier object. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Climate\Supplier + */ + public function retrieve($id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/climate/suppliers/%s', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/ConfirmationTokenService.php b/vendor/stripe/stripe-php/lib/Service/ConfirmationTokenService.php new file mode 100644 index 0000000..cdf4710 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/ConfirmationTokenService.php @@ -0,0 +1,28 @@ +request('get', $this->buildPath('/v1/confirmation_tokens/%s', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/CoreServiceFactory.php b/vendor/stripe/stripe-php/lib/Service/CoreServiceFactory.php new file mode 100644 index 0000000..1504204 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/CoreServiceFactory.php @@ -0,0 +1,165 @@ + + */ + private static $classMap = [ + 'oauth' => OAuthService::class, + // Class Map: The beginning of the section generated from our OpenAPI spec + 'accountLinks' => AccountLinkService::class, + 'accounts' => AccountService::class, + 'accountSessions' => AccountSessionService::class, + 'applePayDomains' => ApplePayDomainService::class, + 'applicationFees' => ApplicationFeeService::class, + 'apps' => Apps\AppsServiceFactory::class, + 'balance' => BalanceService::class, + 'balanceTransactions' => BalanceTransactionService::class, + 'billing' => Billing\BillingServiceFactory::class, + 'billingPortal' => BillingPortal\BillingPortalServiceFactory::class, + 'charges' => ChargeService::class, + 'checkout' => Checkout\CheckoutServiceFactory::class, + 'climate' => Climate\ClimateServiceFactory::class, + 'confirmationTokens' => ConfirmationTokenService::class, + 'countrySpecs' => CountrySpecService::class, + 'coupons' => CouponService::class, + 'creditNotes' => CreditNoteService::class, + 'customers' => CustomerService::class, + 'customerSessions' => CustomerSessionService::class, + 'disputes' => DisputeService::class, + 'entitlements' => Entitlements\EntitlementsServiceFactory::class, + 'ephemeralKeys' => EphemeralKeyService::class, + 'events' => EventService::class, + 'exchangeRates' => ExchangeRateService::class, + 'fileLinks' => FileLinkService::class, + 'files' => FileService::class, + 'financialConnections' => FinancialConnections\FinancialConnectionsServiceFactory::class, + 'forwarding' => Forwarding\ForwardingServiceFactory::class, + 'identity' => Identity\IdentityServiceFactory::class, + 'invoiceItems' => InvoiceItemService::class, + 'invoiceRenderingTemplates' => InvoiceRenderingTemplateService::class, + 'invoices' => InvoiceService::class, + 'issuing' => Issuing\IssuingServiceFactory::class, + 'mandates' => MandateService::class, + 'paymentIntents' => PaymentIntentService::class, + 'paymentLinks' => PaymentLinkService::class, + 'paymentMethodConfigurations' => PaymentMethodConfigurationService::class, + 'paymentMethodDomains' => PaymentMethodDomainService::class, + 'paymentMethods' => PaymentMethodService::class, + 'payouts' => PayoutService::class, + 'plans' => PlanService::class, + 'prices' => PriceService::class, + 'products' => ProductService::class, + 'promotionCodes' => PromotionCodeService::class, + 'quotes' => QuoteService::class, + 'radar' => Radar\RadarServiceFactory::class, + 'refunds' => RefundService::class, + 'reporting' => Reporting\ReportingServiceFactory::class, + 'reviews' => ReviewService::class, + 'setupAttempts' => SetupAttemptService::class, + 'setupIntents' => SetupIntentService::class, + 'shippingRates' => ShippingRateService::class, + 'sigma' => Sigma\SigmaServiceFactory::class, + 'sources' => SourceService::class, + 'subscriptionItems' => SubscriptionItemService::class, + 'subscriptions' => SubscriptionService::class, + 'subscriptionSchedules' => SubscriptionScheduleService::class, + 'tax' => Tax\TaxServiceFactory::class, + 'taxCodes' => TaxCodeService::class, + 'taxIds' => TaxIdService::class, + 'taxRates' => TaxRateService::class, + 'terminal' => Terminal\TerminalServiceFactory::class, + 'testHelpers' => TestHelpers\TestHelpersServiceFactory::class, + 'tokens' => TokenService::class, + 'topups' => TopupService::class, + 'transfers' => TransferService::class, + 'treasury' => Treasury\TreasuryServiceFactory::class, + 'v2' => V2\V2ServiceFactory::class, + 'webhookEndpoints' => WebhookEndpointService::class, + // Class Map: The end of the section generated from our OpenAPI spec + ]; + + protected function getServiceClass($name) + { + return \array_key_exists($name, self::$classMap) ? self::$classMap[$name] : null; + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/CountrySpecService.php b/vendor/stripe/stripe-php/lib/Service/CountrySpecService.php new file mode 100644 index 0000000..e4410e1 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/CountrySpecService.php @@ -0,0 +1,43 @@ + + */ + public function all($params = null, $opts = null) + { + return $this->requestCollection('get', '/v1/country_specs', $params, $opts); + } + + /** + * Returns a Country Spec for a given Country code. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\CountrySpec + */ + public function retrieve($id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/country_specs/%s', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/CouponService.php b/vendor/stripe/stripe-php/lib/Service/CouponService.php new file mode 100644 index 0000000..d0d4f82 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/CouponService.php @@ -0,0 +1,108 @@ + + */ + public function all($params = null, $opts = null) + { + return $this->requestCollection('get', '/v1/coupons', $params, $opts); + } + + /** + * You can create coupons easily via the coupon management page of the + * Stripe dashboard. Coupon creation is also accessible via the API if you need to + * create coupons on the fly. + * + * A coupon has either a percent_off or an amount_off and + * currency. If you set an amount_off, that amount will + * be subtracted from any invoice’s subtotal. For example, an invoice with a + * subtotal of 100 will have a final total of + * 0 if a coupon with an amount_off of + * 200 is applied to it and an invoice with a subtotal of + * 300 will have a final total of 100 if + * a coupon with an amount_off of 200 is applied to + * it. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Coupon + */ + public function create($params = null, $opts = null) + { + return $this->request('post', '/v1/coupons', $params, $opts); + } + + /** + * You can delete coupons via the coupon management page of the + * Stripe dashboard. However, deleting a coupon does not affect any customers who + * have already applied the coupon; it means that new customers can’t redeem the + * coupon. You can also delete coupons via the API. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Coupon + */ + public function delete($id, $params = null, $opts = null) + { + return $this->request('delete', $this->buildPath('/v1/coupons/%s', $id), $params, $opts); + } + + /** + * Retrieves the coupon with the given ID. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Coupon + */ + public function retrieve($id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/coupons/%s', $id), $params, $opts); + } + + /** + * Updates the metadata of a coupon. Other coupon details (currency, duration, + * amount_off) are, by design, not editable. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Coupon + */ + public function update($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/coupons/%s', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/CreditNoteService.php b/vendor/stripe/stripe-php/lib/Service/CreditNoteService.php new file mode 100644 index 0000000..6731730 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/CreditNoteService.php @@ -0,0 +1,160 @@ + + */ + public function all($params = null, $opts = null) + { + return $this->requestCollection('get', '/v1/credit_notes', $params, $opts); + } + + /** + * When retrieving a credit note, you’ll get a lines property + * containing the first handful of those items. There is also a URL where you can + * retrieve the full (paginated) list of line items. + * + * @param string $parentId + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\CreditNoteLineItem> + */ + public function allLines($parentId, $params = null, $opts = null) + { + return $this->requestCollection('get', $this->buildPath('/v1/credit_notes/%s/lines', $parentId), $params, $opts); + } + + /** + * Issue a credit note to adjust the amount of a finalized invoice. For a + * status=open invoice, a credit note reduces its + * amount_due. For a status=paid invoice, a credit note + * does not affect its amount_due. Instead, it can result in any + * combination of the following:. + * + *
    • Refund: create a new refund (using refund_amount) or link + * an existing refund (using refund).
    • Customer balance + * credit: credit the customer’s balance (using credit_amount) which + * will be automatically applied to their next invoice when it’s finalized.
    • + *
    • Outside of Stripe credit: record the amount that is or will be credited + * outside of Stripe (using out_of_band_amount).
    + * + * For post-payment credit notes the sum of the refund, credit and outside of + * Stripe amounts must equal the credit note total. + * + * You may issue multiple credit notes for an invoice. Each credit note will + * increment the invoice’s pre_payment_credit_notes_amount or + * post_payment_credit_notes_amount depending on its + * status at the time of credit note creation. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\CreditNote + */ + public function create($params = null, $opts = null) + { + return $this->request('post', '/v1/credit_notes', $params, $opts); + } + + /** + * Get a preview of a credit note without creating it. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\CreditNote + */ + public function preview($params = null, $opts = null) + { + return $this->request('get', '/v1/credit_notes/preview', $params, $opts); + } + + /** + * When retrieving a credit note preview, you’ll get a lines + * property containing the first handful of those items. This URL you can retrieve + * the full (paginated) list of line items. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\CreditNoteLineItem> + */ + public function previewLines($params = null, $opts = null) + { + return $this->requestCollection('get', '/v1/credit_notes/preview/lines', $params, $opts); + } + + /** + * Retrieves the credit note object with the given identifier. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\CreditNote + */ + public function retrieve($id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/credit_notes/%s', $id), $params, $opts); + } + + /** + * Updates an existing credit note. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\CreditNote + */ + public function update($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/credit_notes/%s', $id), $params, $opts); + } + + /** + * Marks a credit note as void. Learn more about voiding credit notes. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\CreditNote + */ + public function voidCreditNote($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/credit_notes/%s/void', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/CustomerService.php b/vendor/stripe/stripe-php/lib/Service/CustomerService.php new file mode 100644 index 0000000..f8d5b1e --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/CustomerService.php @@ -0,0 +1,502 @@ + + */ + public function all($params = null, $opts = null) + { + return $this->requestCollection('get', '/v1/customers', $params, $opts); + } + + /** + * Returns a list of transactions that updated the customer’s balances. + * + * @param string $parentId + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\CustomerBalanceTransaction> + */ + public function allBalanceTransactions($parentId, $params = null, $opts = null) + { + return $this->requestCollection('get', $this->buildPath('/v1/customers/%s/balance_transactions', $parentId), $params, $opts); + } + + /** + * Returns a list of transactions that modified the customer’s cash balance. + * + * @param string $parentId + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\CustomerCashBalanceTransaction> + */ + public function allCashBalanceTransactions($parentId, $params = null, $opts = null) + { + return $this->requestCollection('get', $this->buildPath('/v1/customers/%s/cash_balance_transactions', $parentId), $params, $opts); + } + + /** + * Returns a list of PaymentMethods for a given Customer. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\PaymentMethod> + */ + public function allPaymentMethods($id, $params = null, $opts = null) + { + return $this->requestCollection('get', $this->buildPath('/v1/customers/%s/payment_methods', $id), $params, $opts); + } + + /** + * List sources for a specified customer. + * + * @param string $parentId + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\Account|\Stripe\BankAccount|\Stripe\Card|\Stripe\Source> + */ + public function allSources($parentId, $params = null, $opts = null) + { + return $this->requestCollection('get', $this->buildPath('/v1/customers/%s/sources', $parentId), $params, $opts); + } + + /** + * Returns a list of tax IDs for a customer. + * + * @param string $parentId + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\TaxId> + */ + public function allTaxIds($parentId, $params = null, $opts = null) + { + return $this->requestCollection('get', $this->buildPath('/v1/customers/%s/tax_ids', $parentId), $params, $opts); + } + + /** + * Creates a new customer object. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Customer + */ + public function create($params = null, $opts = null) + { + return $this->request('post', '/v1/customers', $params, $opts); + } + + /** + * Creates an immutable transaction that updates the customer’s credit balance. + * + * @param string $parentId + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\CustomerBalanceTransaction + */ + public function createBalanceTransaction($parentId, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/customers/%s/balance_transactions', $parentId), $params, $opts); + } + + /** + * Retrieve funding instructions for a customer cash balance. If funding + * instructions do not yet exist for the customer, new funding instructions will be + * created. If funding instructions have already been created for a given customer, + * the same funding instructions will be retrieved. In other words, we will return + * the same funding instructions each time. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\FundingInstructions + */ + public function createFundingInstructions($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/customers/%s/funding_instructions', $id), $params, $opts); + } + + /** + * When you create a new credit card, you must specify a customer or recipient on + * which to create it. + * + * If the card’s owner has no default card, then the new card will become the + * default. However, if the owner already has a default, then it will not change. + * To change the default, you should update the + * customer to have a new default_source. + * + * @param string $parentId + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Account|\Stripe\BankAccount|\Stripe\Card|\Stripe\Source + */ + public function createSource($parentId, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/customers/%s/sources', $parentId), $params, $opts); + } + + /** + * Creates a new tax_id object for a customer. + * + * @param string $parentId + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\TaxId + */ + public function createTaxId($parentId, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/customers/%s/tax_ids', $parentId), $params, $opts); + } + + /** + * Permanently deletes a customer. It cannot be undone. Also immediately cancels + * any active subscriptions on the customer. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Customer + */ + public function delete($id, $params = null, $opts = null) + { + return $this->request('delete', $this->buildPath('/v1/customers/%s', $id), $params, $opts); + } + + /** + * Removes the currently applied discount on a customer. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Discount + */ + public function deleteDiscount($id, $params = null, $opts = null) + { + return $this->request('delete', $this->buildPath('/v1/customers/%s/discount', $id), $params, $opts); + } + + /** + * Delete a specified source for a given customer. + * + * @param string $parentId + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Account|\Stripe\BankAccount|\Stripe\Card|\Stripe\Source + */ + public function deleteSource($parentId, $id, $params = null, $opts = null) + { + return $this->request('delete', $this->buildPath('/v1/customers/%s/sources/%s', $parentId, $id), $params, $opts); + } + + /** + * Deletes an existing tax_id object. + * + * @param string $parentId + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\TaxId + */ + public function deleteTaxId($parentId, $id, $params = null, $opts = null) + { + return $this->request('delete', $this->buildPath('/v1/customers/%s/tax_ids/%s', $parentId, $id), $params, $opts); + } + + /** + * Retrieves a Customer object. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Customer + */ + public function retrieve($id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/customers/%s', $id), $params, $opts); + } + + /** + * Retrieves a specific customer balance transaction that updated the customer’s balances. + * + * @param string $parentId + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\CustomerBalanceTransaction + */ + public function retrieveBalanceTransaction($parentId, $id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/customers/%s/balance_transactions/%s', $parentId, $id), $params, $opts); + } + + /** + * Retrieves a customer’s cash balance. + * + * @param string $parentId + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\CashBalance + */ + public function retrieveCashBalance($parentId, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/customers/%s/cash_balance', $parentId), $params, $opts); + } + + /** + * Retrieves a specific cash balance transaction, which updated the customer’s cash balance. + * + * @param string $parentId + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\CustomerCashBalanceTransaction + */ + public function retrieveCashBalanceTransaction($parentId, $id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/customers/%s/cash_balance_transactions/%s', $parentId, $id), $params, $opts); + } + + /** + * Retrieves a PaymentMethod object for a given Customer. + * + * @param string $parentId + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\PaymentMethod + */ + public function retrievePaymentMethod($parentId, $id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/customers/%s/payment_methods/%s', $parentId, $id), $params, $opts); + } + + /** + * Retrieve a specified source for a given customer. + * + * @param string $parentId + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Account|\Stripe\BankAccount|\Stripe\Card|\Stripe\Source + */ + public function retrieveSource($parentId, $id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/customers/%s/sources/%s', $parentId, $id), $params, $opts); + } + + /** + * Retrieves the tax_id object with the given identifier. + * + * @param string $parentId + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\TaxId + */ + public function retrieveTaxId($parentId, $id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/customers/%s/tax_ids/%s', $parentId, $id), $params, $opts); + } + + /** + * Search for customers you’ve previously created using Stripe’s Search Query Language. Don’t use + * search in read-after-write flows where strict consistency is necessary. Under + * normal operating conditions, data is searchable in less than a minute. + * Occasionally, propagation of new or updated data can be up to an hour behind + * during outages. Search functionality is not available to merchants in India. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\SearchResult<\Stripe\Customer> + */ + public function search($params = null, $opts = null) + { + return $this->requestSearchResult('get', '/v1/customers/search', $params, $opts); + } + + /** + * Updates the specified customer by setting the values of the parameters passed. + * Any parameters not provided will be left unchanged. For example, if you pass the + * source parameter, that becomes the customer’s active source + * (e.g., a card) to be used for all charges in the future. When you update a + * customer to a new valid card source by passing the source + * parameter: for each of the customer’s current subscriptions, if the subscription + * bills automatically and is in the past_due state, then the latest + * open invoice for the subscription with automatic collection enabled will be + * retried. This retry will not count as an automatic retry, and will not affect + * the next regularly scheduled payment for the invoice. Changing the + * default_source for a customer will not trigger this behavior. + * + * This request accepts mostly the same arguments as the customer creation call. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Customer + */ + public function update($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/customers/%s', $id), $params, $opts); + } + + /** + * Most credit balance transaction fields are immutable, but you may update its + * description and metadata. + * + * @param string $parentId + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\CustomerBalanceTransaction + */ + public function updateBalanceTransaction($parentId, $id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/customers/%s/balance_transactions/%s', $parentId, $id), $params, $opts); + } + + /** + * Changes the settings on a customer’s cash balance. + * + * @param string $parentId + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\CashBalance + */ + public function updateCashBalance($parentId, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/customers/%s/cash_balance', $parentId), $params, $opts); + } + + /** + * Update a specified source for a given customer. + * + * @param string $parentId + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Account|\Stripe\BankAccount|\Stripe\Card|\Stripe\Source + */ + public function updateSource($parentId, $id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/customers/%s/sources/%s', $parentId, $id), $params, $opts); + } + + /** + * Verify a specified bank account for a given customer. + * + * @param string $parentId + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Account|\Stripe\BankAccount|\Stripe\Card|\Stripe\Source + */ + public function verifySource($parentId, $id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/customers/%s/sources/%s/verify', $parentId, $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/CustomerSessionService.php b/vendor/stripe/stripe-php/lib/Service/CustomerSessionService.php new file mode 100644 index 0000000..d3b0d68 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/CustomerSessionService.php @@ -0,0 +1,29 @@ +request('post', '/v1/customer_sessions', $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/DisputeService.php b/vendor/stripe/stripe-php/lib/Service/DisputeService.php new file mode 100644 index 0000000..ea48ceb --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/DisputeService.php @@ -0,0 +1,87 @@ + + */ + public function all($params = null, $opts = null) + { + return $this->requestCollection('get', '/v1/disputes', $params, $opts); + } + + /** + * Closing the dispute for a charge indicates that you do not have any evidence to + * submit and are essentially dismissing the dispute, acknowledging it as lost. + * + * The status of the dispute will change from needs_response to + * lost. Closing a dispute is irreversible. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Dispute + */ + public function close($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/disputes/%s/close', $id), $params, $opts); + } + + /** + * Retrieves the dispute with the given ID. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Dispute + */ + public function retrieve($id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/disputes/%s', $id), $params, $opts); + } + + /** + * When you get a dispute, contacting your customer is always the best first step. + * If that doesn’t work, you can submit evidence to help us resolve the dispute in + * your favor. You can do this in your dashboard, but if you prefer, + * you can use the API to submit evidence programmatically. + * + * Depending on your dispute type, different evidence fields will give you a better + * chance of winning your dispute. To figure out which evidence fields to provide, + * see our guide to dispute types. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Dispute + */ + public function update($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/disputes/%s', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/Entitlements/ActiveEntitlementService.php b/vendor/stripe/stripe-php/lib/Service/Entitlements/ActiveEntitlementService.php new file mode 100644 index 0000000..f976001 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/Entitlements/ActiveEntitlementService.php @@ -0,0 +1,43 @@ + + */ + public function all($params = null, $opts = null) + { + return $this->requestCollection('get', '/v1/entitlements/active_entitlements', $params, $opts); + } + + /** + * Retrieve an active entitlement. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Entitlements\ActiveEntitlement + */ + public function retrieve($id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/entitlements/active_entitlements/%s', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/Entitlements/EntitlementsServiceFactory.php b/vendor/stripe/stripe-php/lib/Service/Entitlements/EntitlementsServiceFactory.php new file mode 100644 index 0000000..74deb81 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/Entitlements/EntitlementsServiceFactory.php @@ -0,0 +1,27 @@ + + */ + private static $classMap = [ + 'activeEntitlements' => ActiveEntitlementService::class, + 'features' => FeatureService::class, + ]; + + protected function getServiceClass($name) + { + return \array_key_exists($name, self::$classMap) ? self::$classMap[$name] : null; + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/Entitlements/FeatureService.php b/vendor/stripe/stripe-php/lib/Service/Entitlements/FeatureService.php new file mode 100644 index 0000000..a47fc49 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/Entitlements/FeatureService.php @@ -0,0 +1,74 @@ + + */ + public function all($params = null, $opts = null) + { + return $this->requestCollection('get', '/v1/entitlements/features', $params, $opts); + } + + /** + * Creates a feature. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Entitlements\Feature + */ + public function create($params = null, $opts = null) + { + return $this->request('post', '/v1/entitlements/features', $params, $opts); + } + + /** + * Retrieves a feature. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Entitlements\Feature + */ + public function retrieve($id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/entitlements/features/%s', $id), $params, $opts); + } + + /** + * Update a feature’s metadata or permanently deactivate it. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Entitlements\Feature + */ + public function update($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/entitlements/features/%s', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/EphemeralKeyService.php b/vendor/stripe/stripe-php/lib/Service/EphemeralKeyService.php new file mode 100644 index 0000000..cb2d4a4 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/EphemeralKeyService.php @@ -0,0 +1,47 @@ +request('delete', $this->buildPath('/v1/ephemeral_keys/%s', $id), $params, $opts); + } + + /** + * Creates a short-lived API key for a given resource. + * + * @param null|array $params + * @param null|array|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\EphemeralKey + */ + public function create($params = null, $opts = null) + { + if (!$opts || !isset($opts['stripe_version'])) { + throw new \Stripe\Exception\InvalidArgumentException('stripe_version must be specified to create an ephemeral key'); + } + + return $this->request('post', '/v1/ephemeral_keys', $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/EventService.php b/vendor/stripe/stripe-php/lib/Service/EventService.php new file mode 100644 index 0000000..7b02e40 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/EventService.php @@ -0,0 +1,48 @@ +event object + * api_version attribute (not according to your current Stripe API + * version or Stripe-Version header). + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\Event> + */ + public function all($params = null, $opts = null) + { + return $this->requestCollection('get', '/v1/events', $params, $opts); + } + + /** + * Retrieves the details of an event if it was created in the last 30 days. Supply + * the unique identifier of the event, which you might have received in a webhook. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Event + */ + public function retrieve($id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/events/%s', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/ExchangeRateService.php b/vendor/stripe/stripe-php/lib/Service/ExchangeRateService.php new file mode 100644 index 0000000..ff2223f --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/ExchangeRateService.php @@ -0,0 +1,45 @@ + + */ + public function all($params = null, $opts = null) + { + return $this->requestCollection('get', '/v1/exchange_rates', $params, $opts); + } + + /** + * Retrieves the exchange rates from the given currency to every supported + * currency. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\ExchangeRate + */ + public function retrieve($id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/exchange_rates/%s', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/FileLinkService.php b/vendor/stripe/stripe-php/lib/Service/FileLinkService.php new file mode 100644 index 0000000..68773f0 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/FileLinkService.php @@ -0,0 +1,74 @@ + + */ + public function all($params = null, $opts = null) + { + return $this->requestCollection('get', '/v1/file_links', $params, $opts); + } + + /** + * Creates a new file link object. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\FileLink + */ + public function create($params = null, $opts = null) + { + return $this->request('post', '/v1/file_links', $params, $opts); + } + + /** + * Retrieves the file link with the given ID. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\FileLink + */ + public function retrieve($id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/file_links/%s', $id), $params, $opts); + } + + /** + * Updates an existing file link object. Expired links can no longer be updated. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\FileLink + */ + public function update($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/file_links/%s', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/FileService.php b/vendor/stripe/stripe-php/lib/Service/FileService.php new file mode 100644 index 0000000..87748dd --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/FileService.php @@ -0,0 +1,69 @@ + + */ + public function all($params = null, $opts = null) + { + return $this->requestCollection('get', '/v1/files', $params, $opts); + } + + /** + * Retrieves the details of an existing file object. After you supply a unique file + * ID, Stripe returns the corresponding file object. Learn how to access file contents. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\File + */ + public function retrieve($id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/files/%s', $id), $params, $opts); + } + + /** + * Create a file. + * + * @param null|array $params + * @param null|array|\Stripe\Util\RequestOptions $opts + * + * @return \Stripe\File + */ + public function create($params = null, $opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + if (!isset($opts->apiBase)) { + $opts->apiBase = $this->getClient()->getFilesBase(); + } + + // Manually flatten params, otherwise curl's multipart encoder will + // choke on nested null|arrays. + $flatParams = \array_column(\Stripe\Util\Util::flattenParams($params), 1, 0); + + return $this->request('post', '/v1/files', $flatParams, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/FinancialConnections/AccountService.php b/vendor/stripe/stripe-php/lib/Service/FinancialConnections/AccountService.php new file mode 100644 index 0000000..dd52243 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/FinancialConnections/AccountService.php @@ -0,0 +1,127 @@ +Account objects. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\FinancialConnections\Account> + */ + public function all($params = null, $opts = null) + { + return $this->requestCollection('get', '/v1/financial_connections/accounts', $params, $opts); + } + + /** + * Lists all owners for a given Account. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\FinancialConnections\AccountOwner> + */ + public function allOwners($id, $params = null, $opts = null) + { + return $this->requestCollection('get', $this->buildPath('/v1/financial_connections/accounts/%s/owners', $id), $params, $opts); + } + + /** + * Disables your access to a Financial Connections Account. You will + * no longer be able to access data associated with the account (e.g. balances, + * transactions). + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\FinancialConnections\Account + */ + public function disconnect($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/financial_connections/accounts/%s/disconnect', $id), $params, $opts); + } + + /** + * Refreshes the data associated with a Financial Connections Account. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\FinancialConnections\Account + */ + public function refresh($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/financial_connections/accounts/%s/refresh', $id), $params, $opts); + } + + /** + * Retrieves the details of an Financial Connections Account. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\FinancialConnections\Account + */ + public function retrieve($id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/financial_connections/accounts/%s', $id), $params, $opts); + } + + /** + * Subscribes to periodic refreshes of data associated with a Financial Connections + * Account. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\FinancialConnections\Account + */ + public function subscribe($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/financial_connections/accounts/%s/subscribe', $id), $params, $opts); + } + + /** + * Unsubscribes from periodic refreshes of data associated with a Financial + * Connections Account. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\FinancialConnections\Account + */ + public function unsubscribe($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/financial_connections/accounts/%s/unsubscribe', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/FinancialConnections/FinancialConnectionsServiceFactory.php b/vendor/stripe/stripe-php/lib/Service/FinancialConnections/FinancialConnectionsServiceFactory.php new file mode 100644 index 0000000..5c24c32 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/FinancialConnections/FinancialConnectionsServiceFactory.php @@ -0,0 +1,29 @@ + + */ + private static $classMap = [ + 'accounts' => AccountService::class, + 'sessions' => SessionService::class, + 'transactions' => TransactionService::class, + ]; + + protected function getServiceClass($name) + { + return \array_key_exists($name, self::$classMap) ? self::$classMap[$name] : null; + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/FinancialConnections/SessionService.php b/vendor/stripe/stripe-php/lib/Service/FinancialConnections/SessionService.php new file mode 100644 index 0000000..2ba8c3a --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/FinancialConnections/SessionService.php @@ -0,0 +1,45 @@ +Session. The session’s client_secret can be used to + * launch the flow using Stripe.js. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\FinancialConnections\Session + */ + public function create($params = null, $opts = null) + { + return $this->request('post', '/v1/financial_connections/sessions', $params, $opts); + } + + /** + * Retrieves the details of a Financial Connections Session. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\FinancialConnections\Session + */ + public function retrieve($id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/financial_connections/sessions/%s', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/FinancialConnections/TransactionService.php b/vendor/stripe/stripe-php/lib/Service/FinancialConnections/TransactionService.php new file mode 100644 index 0000000..9204b6a --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/FinancialConnections/TransactionService.php @@ -0,0 +1,43 @@ +Transaction objects. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\FinancialConnections\Transaction> + */ + public function all($params = null, $opts = null) + { + return $this->requestCollection('get', '/v1/financial_connections/transactions', $params, $opts); + } + + /** + * Retrieves the details of a Financial Connections Transaction. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\FinancialConnections\Transaction + */ + public function retrieve($id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/financial_connections/transactions/%s', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/Forwarding/ForwardingServiceFactory.php b/vendor/stripe/stripe-php/lib/Service/Forwarding/ForwardingServiceFactory.php new file mode 100644 index 0000000..1ae9f88 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/Forwarding/ForwardingServiceFactory.php @@ -0,0 +1,25 @@ + + */ + private static $classMap = [ + 'requests' => RequestService::class, + ]; + + protected function getServiceClass($name) + { + return \array_key_exists($name, self::$classMap) ? self::$classMap[$name] : null; + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/Forwarding/RequestService.php b/vendor/stripe/stripe-php/lib/Service/Forwarding/RequestService.php new file mode 100644 index 0000000..c81a8c5 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/Forwarding/RequestService.php @@ -0,0 +1,58 @@ + + */ + public function all($params = null, $opts = null) + { + return $this->requestCollection('get', '/v1/forwarding/requests', $params, $opts); + } + + /** + * Creates a ForwardingRequest object. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Forwarding\Request + */ + public function create($params = null, $opts = null) + { + return $this->request('post', '/v1/forwarding/requests', $params, $opts); + } + + /** + * Retrieves a ForwardingRequest object. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Forwarding\Request + */ + public function retrieve($id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/forwarding/requests/%s', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/Identity/IdentityServiceFactory.php b/vendor/stripe/stripe-php/lib/Service/Identity/IdentityServiceFactory.php new file mode 100644 index 0000000..cf63146 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/Identity/IdentityServiceFactory.php @@ -0,0 +1,27 @@ + + */ + private static $classMap = [ + 'verificationReports' => VerificationReportService::class, + 'verificationSessions' => VerificationSessionService::class, + ]; + + protected function getServiceClass($name) + { + return \array_key_exists($name, self::$classMap) ? self::$classMap[$name] : null; + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/Identity/VerificationReportService.php b/vendor/stripe/stripe-php/lib/Service/Identity/VerificationReportService.php new file mode 100644 index 0000000..669a4c9 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/Identity/VerificationReportService.php @@ -0,0 +1,43 @@ + + */ + public function all($params = null, $opts = null) + { + return $this->requestCollection('get', '/v1/identity/verification_reports', $params, $opts); + } + + /** + * Retrieves an existing VerificationReport. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Identity\VerificationReport + */ + public function retrieve($id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/identity/verification_reports/%s', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/Identity/VerificationSessionService.php b/vendor/stripe/stripe-php/lib/Service/Identity/VerificationSessionService.php new file mode 100644 index 0000000..b1c0c3c --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/Identity/VerificationSessionService.php @@ -0,0 +1,150 @@ + + */ + public function all($params = null, $opts = null) + { + return $this->requestCollection('get', '/v1/identity/verification_sessions', $params, $opts); + } + + /** + * A VerificationSession object can be canceled when it is in + * requires_input status. + * + * Once canceled, future submission attempts are disabled. This cannot be undone. + * Learn more. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Identity\VerificationSession + */ + public function cancel($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/identity/verification_sessions/%s/cancel', $id), $params, $opts); + } + + /** + * Creates a VerificationSession object. + * + * After the VerificationSession is created, display a verification modal using the + * session client_secret or send your users to the session’s + * url. + * + * If your API key is in test mode, verification checks won’t actually process, + * though everything else will occur as if in live mode. + * + * Related guide: Verify your + * users’ identity documents + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Identity\VerificationSession + */ + public function create($params = null, $opts = null) + { + return $this->request('post', '/v1/identity/verification_sessions', $params, $opts); + } + + /** + * Redact a VerificationSession to remove all collected information from Stripe. + * This will redact the VerificationSession and all objects related to it, + * including VerificationReports, Events, request logs, etc. + * + * A VerificationSession object can be redacted when it is in + * requires_input or verified status. Redacting a + * VerificationSession in requires_action state will automatically + * cancel it. + * + * The redaction process may take up to four days. When the redaction process is in + * progress, the VerificationSession’s redaction.status field will be + * set to processing; when the process is finished, it will change to + * redacted and an identity.verification_session.redacted + * event will be emitted. + * + * Redaction is irreversible. Redacted objects are still accessible in the Stripe + * API, but all the fields that contain personal data will be replaced by the + * string [redacted] or a similar placeholder. The + * metadata field will also be erased. Redacted objects cannot be + * updated or used for any purpose. + * + * Learn more. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Identity\VerificationSession + */ + public function redact($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/identity/verification_sessions/%s/redact', $id), $params, $opts); + } + + /** + * Retrieves the details of a VerificationSession that was previously created. + * + * When the session status is requires_input, you can use this method + * to retrieve a valid client_secret or url to allow + * re-submission. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Identity\VerificationSession + */ + public function retrieve($id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/identity/verification_sessions/%s', $id), $params, $opts); + } + + /** + * Updates a VerificationSession object. + * + * When the session status is requires_input, you can use this method + * to update the verification check and options. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Identity\VerificationSession + */ + public function update($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/identity/verification_sessions/%s', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/InvoiceItemService.php b/vendor/stripe/stripe-php/lib/Service/InvoiceItemService.php new file mode 100644 index 0000000..642e374 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/InvoiceItemService.php @@ -0,0 +1,97 @@ + + */ + public function all($params = null, $opts = null) + { + return $this->requestCollection('get', '/v1/invoiceitems', $params, $opts); + } + + /** + * Creates an item to be added to a draft invoice (up to 250 items per invoice). If + * no invoice is specified, the item will be on the next invoice created for the + * customer specified. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\InvoiceItem + */ + public function create($params = null, $opts = null) + { + return $this->request('post', '/v1/invoiceitems', $params, $opts); + } + + /** + * Deletes an invoice item, removing it from an invoice. Deleting invoice items is + * only possible when they’re not attached to invoices, or if it’s attached to a + * draft invoice. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\InvoiceItem + */ + public function delete($id, $params = null, $opts = null) + { + return $this->request('delete', $this->buildPath('/v1/invoiceitems/%s', $id), $params, $opts); + } + + /** + * Retrieves the invoice item with the given ID. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\InvoiceItem + */ + public function retrieve($id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/invoiceitems/%s', $id), $params, $opts); + } + + /** + * Updates the amount or description of an invoice item on an upcoming invoice. + * Updating an invoice item is only possible before the invoice it’s attached to is + * closed. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\InvoiceItem + */ + public function update($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/invoiceitems/%s', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/InvoiceRenderingTemplateService.php b/vendor/stripe/stripe-php/lib/Service/InvoiceRenderingTemplateService.php new file mode 100644 index 0000000..90d8f23 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/InvoiceRenderingTemplateService.php @@ -0,0 +1,82 @@ + + */ + public function all($params = null, $opts = null) + { + return $this->requestCollection('get', '/v1/invoice_rendering_templates', $params, $opts); + } + + /** + * Updates the status of an invoice rendering template to ‘archived’ so no new + * Stripe objects (customers, invoices, etc.) can reference it. The template can + * also no longer be updated. However, if the template is already set on a Stripe + * object, it will continue to be applied on invoices generated by it. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\InvoiceRenderingTemplate + */ + public function archive($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/invoice_rendering_templates/%s/archive', $id), $params, $opts); + } + + /** + * Retrieves an invoice rendering template with the given ID. It by default returns + * the latest version of the template. Optionally, specify a version to see + * previous versions. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\InvoiceRenderingTemplate + */ + public function retrieve($id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/invoice_rendering_templates/%s', $id), $params, $opts); + } + + /** + * Unarchive an invoice rendering template so it can be used on new Stripe objects + * again. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\InvoiceRenderingTemplate + */ + public function unarchive($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/invoice_rendering_templates/%s/unarchive', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/InvoiceService.php b/vendor/stripe/stripe-php/lib/Service/InvoiceService.php new file mode 100644 index 0000000..a5cbd22 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/InvoiceService.php @@ -0,0 +1,416 @@ +request('post', $this->buildPath('/v1/invoices/%s/add_lines', $id), $params, $opts); + } + + /** + * You can list all invoices, or list the invoices for a specific customer. The + * invoices are returned sorted by creation date, with the most recently created + * invoices appearing first. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\Invoice> + */ + public function all($params = null, $opts = null) + { + return $this->requestCollection('get', '/v1/invoices', $params, $opts); + } + + /** + * When retrieving an invoice, you’ll get a lines property + * containing the total count of line items and the first handful of those items. + * There is also a URL where you can retrieve the full (paginated) list of line + * items. + * + * @param string $parentId + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\InvoiceLineItem> + */ + public function allLines($parentId, $params = null, $opts = null) + { + return $this->requestCollection('get', $this->buildPath('/v1/invoices/%s/lines', $parentId), $params, $opts); + } + + /** + * This endpoint creates a draft invoice for a given customer. The invoice remains + * a draft until you finalize the invoice, which + * allows you to pay or send + * the invoice to your customers. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Invoice + */ + public function create($params = null, $opts = null) + { + return $this->request('post', '/v1/invoices', $params, $opts); + } + + /** + * At any time, you can preview the upcoming invoice for a customer. This will show + * you all the charges that are pending, including subscription renewal charges, + * invoice item charges, etc. It will also show you any discounts that are + * applicable to the invoice. + * + * Note that when you are viewing an upcoming invoice, you are simply viewing a + * preview – the invoice has not yet been created. As such, the upcoming invoice + * will not show up in invoice listing calls, and you cannot use the API to pay or + * edit the invoice. If you want to change the amount that your customer will be + * billed, you can add, remove, or update pending invoice items, or update the + * customer’s discount. + * + * You can preview the effects of updating a subscription, including a preview of + * what proration will take place. To ensure that the actual proration is + * calculated exactly the same as the previewed proration, you should pass the + * subscription_details.proration_date parameter when doing the actual + * subscription update. The recommended way to get only the prorations being + * previewed is to consider only proration line items where + * period[start] is equal to the + * subscription_details.proration_date value passed in the request. + * + * Note: Currency conversion calculations use the latest exchange rates. Exchange + * rates may vary between the time of the preview and the time of the actual + * invoice creation. Learn + * more + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Invoice + */ + public function createPreview($params = null, $opts = null) + { + return $this->request('post', '/v1/invoices/create_preview', $params, $opts); + } + + /** + * Permanently deletes a one-off invoice draft. This cannot be undone. Attempts to + * delete invoices that are no longer in a draft state will fail; once an invoice + * has been finalized or if an invoice is for a subscription, it must be voided. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Invoice + */ + public function delete($id, $params = null, $opts = null) + { + return $this->request('delete', $this->buildPath('/v1/invoices/%s', $id), $params, $opts); + } + + /** + * Stripe automatically finalizes drafts before sending and attempting payment on + * invoices. However, if you’d like to finalize a draft invoice manually, you can + * do so using this method. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Invoice + */ + public function finalizeInvoice($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/invoices/%s/finalize', $id), $params, $opts); + } + + /** + * Marking an invoice as uncollectible is useful for keeping track of bad debts + * that can be written off for accounting purposes. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Invoice + */ + public function markUncollectible($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/invoices/%s/mark_uncollectible', $id), $params, $opts); + } + + /** + * Stripe automatically creates and then attempts to collect payment on invoices + * for customers on subscriptions according to your subscriptions + * settings. However, if you’d like to attempt payment on an invoice out of the + * normal collection schedule or for some other reason, you can do so. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Invoice + */ + public function pay($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/invoices/%s/pay', $id), $params, $opts); + } + + /** + * Removes multiple line items from an invoice. This is only possible when an + * invoice is still a draft. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Invoice + */ + public function removeLines($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/invoices/%s/remove_lines', $id), $params, $opts); + } + + /** + * Retrieves the invoice with the given ID. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Invoice + */ + public function retrieve($id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/invoices/%s', $id), $params, $opts); + } + + /** + * Search for invoices you’ve previously created using Stripe’s Search Query Language. Don’t use + * search in read-after-write flows where strict consistency is necessary. Under + * normal operating conditions, data is searchable in less than a minute. + * Occasionally, propagation of new or updated data can be up to an hour behind + * during outages. Search functionality is not available to merchants in India. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\SearchResult<\Stripe\Invoice> + */ + public function search($params = null, $opts = null) + { + return $this->requestSearchResult('get', '/v1/invoices/search', $params, $opts); + } + + /** + * Stripe will automatically send invoices to customers according to your subscriptions + * settings. However, if you’d like to manually send an invoice to your + * customer out of the normal schedule, you can do so. When sending invoices that + * have already been paid, there will be no reference to the payment in the email. + * + * Requests made in test-mode result in no emails being sent, despite sending an + * invoice.sent event. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Invoice + */ + public function sendInvoice($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/invoices/%s/send', $id), $params, $opts); + } + + /** + * At any time, you can preview the upcoming invoice for a customer. This will show + * you all the charges that are pending, including subscription renewal charges, + * invoice item charges, etc. It will also show you any discounts that are + * applicable to the invoice. + * + * Note that when you are viewing an upcoming invoice, you are simply viewing a + * preview – the invoice has not yet been created. As such, the upcoming invoice + * will not show up in invoice listing calls, and you cannot use the API to pay or + * edit the invoice. If you want to change the amount that your customer will be + * billed, you can add, remove, or update pending invoice items, or update the + * customer’s discount. + * + * You can preview the effects of updating a subscription, including a preview of + * what proration will take place. To ensure that the actual proration is + * calculated exactly the same as the previewed proration, you should pass the + * subscription_details.proration_date parameter when doing the actual + * subscription update. The recommended way to get only the prorations being + * previewed is to consider only proration line items where + * period[start] is equal to the + * subscription_details.proration_date value passed in the request. + * + * Note: Currency conversion calculations use the latest exchange rates. Exchange + * rates may vary between the time of the preview and the time of the actual + * invoice creation. Learn + * more + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Invoice + */ + public function upcoming($params = null, $opts = null) + { + return $this->request('get', '/v1/invoices/upcoming', $params, $opts); + } + + /** + * When retrieving an upcoming invoice, you’ll get a lines + * property containing the total count of line items and the first handful of those + * items. There is also a URL where you can retrieve the full (paginated) list of + * line items. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\InvoiceLineItem> + */ + public function upcomingLines($params = null, $opts = null) + { + return $this->requestCollection('get', '/v1/invoices/upcoming/lines', $params, $opts); + } + + /** + * Draft invoices are fully editable. Once an invoice is finalized, monetary values, + * as well as collection_method, become uneditable. + * + * If you would like to stop the Stripe Billing engine from automatically + * finalizing, reattempting payments on, sending reminders for, or automatically reconciling + * invoices, pass auto_advance=false. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Invoice + */ + public function update($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/invoices/%s', $id), $params, $opts); + } + + /** + * Updates an invoice’s line item. Some fields, such as tax_amounts, + * only live on the invoice line item, so they can only be updated through this + * endpoint. Other fields, such as amount, live on both the invoice + * item and the invoice line item, so updates on this endpoint will propagate to + * the invoice item as well. Updating an invoice’s line item is only possible + * before the invoice is finalized. + * + * @param string $parentId + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\InvoiceLineItem + */ + public function updateLine($parentId, $id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/invoices/%s/lines/%s', $parentId, $id), $params, $opts); + } + + /** + * Updates multiple line items on an invoice. This is only possible when an invoice + * is still a draft. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Invoice + */ + public function updateLines($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/invoices/%s/update_lines', $id), $params, $opts); + } + + /** + * Mark a finalized invoice as void. This cannot be undone. Voiding an invoice is + * similar to deletion, however it only applies to + * finalized invoices and maintains a papertrail where the invoice can still be + * found. + * + * Consult with local regulations to determine whether and how an invoice might be + * amended, canceled, or voided in the jurisdiction you’re doing business in. You + * might need to issue another invoice or credit note instead. Stripe recommends that you + * consult with your legal counsel for advice specific to your business. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Invoice + */ + public function voidInvoice($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/invoices/%s/void', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/Issuing/AuthorizationService.php b/vendor/stripe/stripe-php/lib/Service/Issuing/AuthorizationService.php new file mode 100644 index 0000000..a743ead --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/Issuing/AuthorizationService.php @@ -0,0 +1,109 @@ +Authorization objects. The objects are + * sorted in descending order by creation date, with the most recently created + * object appearing first. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\Issuing\Authorization> + */ + public function all($params = null, $opts = null) + { + return $this->requestCollection('get', '/v1/issuing/authorizations', $params, $opts); + } + + /** + * [Deprecated] Approves a pending Issuing Authorization object. This + * request should be made within the timeout window of the real-time + * authorization flow. This method is deprecated. Instead, respond + * directly to the webhook request to approve an authorization. + * + * @deprecated this method is deprecated, please refer to the description for details + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Issuing\Authorization + */ + public function approve($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/issuing/authorizations/%s/approve', $id), $params, $opts); + } + + /** + * [Deprecated] Declines a pending Issuing Authorization object. This + * request should be made within the timeout window of the real time + * authorization flow. This method is deprecated. Instead, respond + * directly to the webhook request to decline an authorization. + * + * @deprecated this method is deprecated, please refer to the description for details + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Issuing\Authorization + */ + public function decline($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/issuing/authorizations/%s/decline', $id), $params, $opts); + } + + /** + * Retrieves an Issuing Authorization object. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Issuing\Authorization + */ + public function retrieve($id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/issuing/authorizations/%s', $id), $params, $opts); + } + + /** + * Updates the specified Issuing Authorization object by setting the + * values of the parameters passed. Any parameters not provided will be left + * unchanged. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Issuing\Authorization + */ + public function update($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/issuing/authorizations/%s', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/Issuing/CardService.php b/vendor/stripe/stripe-php/lib/Service/Issuing/CardService.php new file mode 100644 index 0000000..27844d0 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/Issuing/CardService.php @@ -0,0 +1,77 @@ +Card objects. The objects are sorted in + * descending order by creation date, with the most recently created object + * appearing first. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\Issuing\Card> + */ + public function all($params = null, $opts = null) + { + return $this->requestCollection('get', '/v1/issuing/cards', $params, $opts); + } + + /** + * Creates an Issuing Card object. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Issuing\Card + */ + public function create($params = null, $opts = null) + { + return $this->request('post', '/v1/issuing/cards', $params, $opts); + } + + /** + * Retrieves an Issuing Card object. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Issuing\Card + */ + public function retrieve($id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/issuing/cards/%s', $id), $params, $opts); + } + + /** + * Updates the specified Issuing Card object by setting the values of + * the parameters passed. Any parameters not provided will be left unchanged. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Issuing\Card + */ + public function update($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/issuing/cards/%s', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/Issuing/CardholderService.php b/vendor/stripe/stripe-php/lib/Service/Issuing/CardholderService.php new file mode 100644 index 0000000..abc3a88 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/Issuing/CardholderService.php @@ -0,0 +1,78 @@ +Cardholder objects. The objects are + * sorted in descending order by creation date, with the most recently created + * object appearing first. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\Issuing\Cardholder> + */ + public function all($params = null, $opts = null) + { + return $this->requestCollection('get', '/v1/issuing/cardholders', $params, $opts); + } + + /** + * Creates a new Issuing Cardholder object that can be issued cards. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Issuing\Cardholder + */ + public function create($params = null, $opts = null) + { + return $this->request('post', '/v1/issuing/cardholders', $params, $opts); + } + + /** + * Retrieves an Issuing Cardholder object. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Issuing\Cardholder + */ + public function retrieve($id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/issuing/cardholders/%s', $id), $params, $opts); + } + + /** + * Updates the specified Issuing Cardholder object by setting the + * values of the parameters passed. Any parameters not provided will be left + * unchanged. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Issuing\Cardholder + */ + public function update($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/issuing/cardholders/%s', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/Issuing/DisputeService.php b/vendor/stripe/stripe-php/lib/Service/Issuing/DisputeService.php new file mode 100644 index 0000000..19f4da4 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/Issuing/DisputeService.php @@ -0,0 +1,103 @@ +Dispute objects. The objects are sorted + * in descending order by creation date, with the most recently created object + * appearing first. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\Issuing\Dispute> + */ + public function all($params = null, $opts = null) + { + return $this->requestCollection('get', '/v1/issuing/disputes', $params, $opts); + } + + /** + * Creates an Issuing Dispute object. Individual pieces of evidence + * within the evidence object are optional at this point. Stripe only + * validates that required evidence is present during submission. Refer to Dispute + * reasons and evidence for more details about evidence requirements. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Issuing\Dispute + */ + public function create($params = null, $opts = null) + { + return $this->request('post', '/v1/issuing/disputes', $params, $opts); + } + + /** + * Retrieves an Issuing Dispute object. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Issuing\Dispute + */ + public function retrieve($id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/issuing/disputes/%s', $id), $params, $opts); + } + + /** + * Submits an Issuing Dispute to the card network. Stripe validates + * that all evidence fields required for the dispute’s reason are present. For more + * details, see Dispute + * reasons and evidence. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Issuing\Dispute + */ + public function submit($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/issuing/disputes/%s/submit', $id), $params, $opts); + } + + /** + * Updates the specified Issuing Dispute object by setting the values + * of the parameters passed. Any parameters not provided will be left unchanged. + * Properties on the evidence object can be unset by passing in an + * empty string. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Issuing\Dispute + */ + public function update($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/issuing/disputes/%s', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/Issuing/IssuingServiceFactory.php b/vendor/stripe/stripe-php/lib/Service/Issuing/IssuingServiceFactory.php new file mode 100644 index 0000000..852351d --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/Issuing/IssuingServiceFactory.php @@ -0,0 +1,39 @@ + + */ + private static $classMap = [ + 'authorizations' => AuthorizationService::class, + 'cardholders' => CardholderService::class, + 'cards' => CardService::class, + 'disputes' => DisputeService::class, + 'personalizationDesigns' => PersonalizationDesignService::class, + 'physicalBundles' => PhysicalBundleService::class, + 'tokens' => TokenService::class, + 'transactions' => TransactionService::class, + ]; + + protected function getServiceClass($name) + { + return \array_key_exists($name, self::$classMap) ? self::$classMap[$name] : null; + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/Issuing/PersonalizationDesignService.php b/vendor/stripe/stripe-php/lib/Service/Issuing/PersonalizationDesignService.php new file mode 100644 index 0000000..0a54d9e --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/Issuing/PersonalizationDesignService.php @@ -0,0 +1,76 @@ + + */ + public function all($params = null, $opts = null) + { + return $this->requestCollection('get', '/v1/issuing/personalization_designs', $params, $opts); + } + + /** + * Creates a personalization design object. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Issuing\PersonalizationDesign + */ + public function create($params = null, $opts = null) + { + return $this->request('post', '/v1/issuing/personalization_designs', $params, $opts); + } + + /** + * Retrieves a personalization design object. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Issuing\PersonalizationDesign + */ + public function retrieve($id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/issuing/personalization_designs/%s', $id), $params, $opts); + } + + /** + * Updates a card personalization object. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Issuing\PersonalizationDesign + */ + public function update($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/issuing/personalization_designs/%s', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/Issuing/PhysicalBundleService.php b/vendor/stripe/stripe-php/lib/Service/Issuing/PhysicalBundleService.php new file mode 100644 index 0000000..620266f --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/Issuing/PhysicalBundleService.php @@ -0,0 +1,44 @@ + + */ + public function all($params = null, $opts = null) + { + return $this->requestCollection('get', '/v1/issuing/physical_bundles', $params, $opts); + } + + /** + * Retrieves a physical bundle object. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Issuing\PhysicalBundle + */ + public function retrieve($id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/issuing/physical_bundles/%s', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/Issuing/TokenService.php b/vendor/stripe/stripe-php/lib/Service/Issuing/TokenService.php new file mode 100644 index 0000000..f1314c8 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/Issuing/TokenService.php @@ -0,0 +1,60 @@ +Token objects for a given card. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\Issuing\Token> + */ + public function all($params = null, $opts = null) + { + return $this->requestCollection('get', '/v1/issuing/tokens', $params, $opts); + } + + /** + * Retrieves an Issuing Token object. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Issuing\Token + */ + public function retrieve($id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/issuing/tokens/%s', $id), $params, $opts); + } + + /** + * Attempts to update the specified Issuing Token object to the status + * specified. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Issuing\Token + */ + public function update($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/issuing/tokens/%s', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/Issuing/TransactionService.php b/vendor/stripe/stripe-php/lib/Service/Issuing/TransactionService.php new file mode 100644 index 0000000..063295e --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/Issuing/TransactionService.php @@ -0,0 +1,63 @@ +Transaction objects. The objects are + * sorted in descending order by creation date, with the most recently created + * object appearing first. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\Issuing\Transaction> + */ + public function all($params = null, $opts = null) + { + return $this->requestCollection('get', '/v1/issuing/transactions', $params, $opts); + } + + /** + * Retrieves an Issuing Transaction object. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Issuing\Transaction + */ + public function retrieve($id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/issuing/transactions/%s', $id), $params, $opts); + } + + /** + * Updates the specified Issuing Transaction object by setting the + * values of the parameters passed. Any parameters not provided will be left + * unchanged. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Issuing\Transaction + */ + public function update($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/issuing/transactions/%s', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/MandateService.php b/vendor/stripe/stripe-php/lib/Service/MandateService.php new file mode 100644 index 0000000..7d10f32 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/MandateService.php @@ -0,0 +1,28 @@ +request('get', $this->buildPath('/v1/mandates/%s', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/OAuthService.php b/vendor/stripe/stripe-php/lib/Service/OAuthService.php new file mode 100644 index 0000000..3870ccc --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/OAuthService.php @@ -0,0 +1,150 @@ +_parseOpts($opts); + $opts->apiBase = $this->_getBase($opts); + + return $this->request($method, $path, $params, $opts); + } + + /** + * Generates a URL to Stripe's OAuth form. + * + * @param null|array $params + * @param null|array $opts + * + * @return string the URL to Stripe's OAuth form + */ + public function authorizeUrl($params = null, $opts = null) + { + $params = $params ?: []; + + $opts = $this->_parseOpts($opts); + $base = $this->_getBase($opts); + + $params['client_id'] = $this->_getClientId($params); + if (!\array_key_exists('response_type', $params)) { + $params['response_type'] = 'code'; + } + $query = \Stripe\Util\Util::encodeParameters($params); + + return $base . '/oauth/authorize?' . $query; + } + + /** + * Use an authoriztion code to connect an account to your platform and + * fetch the user's credentials. + * + * @param null|array $params + * @param null|array $opts + * + * @throws \Stripe\Exception\OAuth\OAuthErrorException if the request fails + * + * @return \Stripe\StripeObject object containing the response from the API + */ + public function token($params = null, $opts = null) + { + $params = $params ?: []; + $params['client_secret'] = $this->_getClientSecret($params); + + return $this->requestConnect('post', '/oauth/token', $params, $opts); + } + + /** + * Disconnects an account from your platform. + * + * @param null|array $params + * @param null|array $opts + * + * @throws \Stripe\Exception\OAuth\OAuthErrorException if the request fails + * + * @return \Stripe\StripeObject object containing the response from the API + */ + public function deauthorize($params = null, $opts = null) + { + $params = $params ?: []; + $params['client_id'] = $this->_getClientId($params); + + return $this->requestConnect('post', '/oauth/deauthorize', $params, $opts); + } + + private function _getClientId($params = null) + { + $clientId = ($params && \array_key_exists('client_id', $params)) ? $params['client_id'] : null; + + if (null === $clientId) { + $clientId = $this->client->getClientId(); + } + if (null === $clientId) { + $msg = 'No client_id provided. (HINT: set your client_id using ' + . '`new \Stripe\StripeClient([clientId => + ])`)". You can find your client_ids ' + . 'in your Stripe dashboard at ' + . 'https://dashboard.stripe.com/account/applications/settings, ' + . 'after registering your account as a platform. See ' + . 'https://stripe.com/docs/connect/standard-accounts for details, ' + . 'or email support@stripe.com if you have any questions.'; + + throw new \Stripe\Exception\AuthenticationException($msg); + } + + return $clientId; + } + + private function _getClientSecret($params = null) + { + if (\array_key_exists('client_secret', $params)) { + return $params['client_secret']; + } + + return $this->client->getApiKey(); + } + + /** + * @param array|\Stripe\Util\RequestOptions $opts the special modifiers of the request + * + * @throws \Stripe\Exception\InvalidArgumentException + * + * @return \Stripe\Util\RequestOptions + */ + private function _parseOpts($opts) + { + if (\is_array($opts)) { + if (\array_key_exists('connect_base', $opts)) { + // Throw an exception for the convenience of anybody migrating to + // \Stripe\Service\OAuthService from \Stripe\OAuth, where `connect_base` + // was the name of the parameter that behaves as `api_base` does here. + throw new \Stripe\Exception\InvalidArgumentException('Use `api_base`, not `connect_base`'); + } + } + + return \Stripe\Util\RequestOptions::parse($opts); + } + + /** + * @param \Stripe\Util\RequestOptions $opts + * + * @return string + */ + private function _getBase($opts) + { + return isset($opts->apiBase) ? + $opts->apiBase : + $this->client->getConnectBase(); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/PaymentIntentService.php b/vendor/stripe/stripe-php/lib/Service/PaymentIntentService.php new file mode 100644 index 0000000..58b54bd --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/PaymentIntentService.php @@ -0,0 +1,283 @@ + + */ + public function all($params = null, $opts = null) + { + return $this->requestCollection('get', '/v1/payment_intents', $params, $opts); + } + + /** + * Manually reconcile the remaining amount for a customer_balance + * PaymentIntent. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\PaymentIntent + */ + public function applyCustomerBalance($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/payment_intents/%s/apply_customer_balance', $id), $params, $opts); + } + + /** + * You can cancel a PaymentIntent object when it’s in one of these statuses: + * requires_payment_method, requires_capture, + * requires_confirmation, requires_action or, in rare cases, processing. + * + * After it’s canceled, no additional charges are made by the PaymentIntent and any + * operations on the PaymentIntent fail with an error. For PaymentIntents with a + * status of requires_capture, the remaining + * amount_capturable is automatically refunded. + * + * You can’t cancel the PaymentIntent for a Checkout Session. Expire the Checkout Session + * instead. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\PaymentIntent + */ + public function cancel($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/payment_intents/%s/cancel', $id), $params, $opts); + } + + /** + * Capture the funds of an existing uncaptured PaymentIntent when its status is + * requires_capture. + * + * Uncaptured PaymentIntents are cancelled a set number of days (7 by default) + * after their creation. + * + * Learn more about separate authorization + * and capture. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\PaymentIntent + */ + public function capture($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/payment_intents/%s/capture', $id), $params, $opts); + } + + /** + * Confirm that your customer intends to pay with current or provided payment + * method. Upon confirmation, the PaymentIntent will attempt to initiate a payment. + * If the selected payment method requires additional authentication steps, the + * PaymentIntent will transition to the requires_action status and + * suggest additional actions via next_action. If payment fails, the + * PaymentIntent transitions to the requires_payment_method status or + * the canceled status if the confirmation limit is reached. If + * payment succeeds, the PaymentIntent will transition to the + * succeeded status (or requires_capture, if + * capture_method is set to manual). If the + * confirmation_method is automatic, payment may be + * attempted using our client SDKs and + * the PaymentIntent’s client_secret. After + * next_actions are handled by the client, no additional confirmation + * is required to complete the payment. If the confirmation_method is + * manual, all payment attempts must be initiated using a secret key. + * If any actions are required for the payment, the PaymentIntent will return to + * the requires_confirmation state after those actions are completed. + * Your server needs to then explicitly re-confirm the PaymentIntent to initiate + * the next payment attempt. There is a variable upper limit on how many times a + * PaymentIntent can be confirmed. After this limit is reached, any further calls + * to this endpoint will transition the PaymentIntent to the canceled + * state. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\PaymentIntent + */ + public function confirm($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/payment_intents/%s/confirm', $id), $params, $opts); + } + + /** + * Creates a PaymentIntent object. + * + * After the PaymentIntent is created, attach a payment method and confirm to continue the payment. + * Learn more about the available payment + * flows with the Payment Intents API. + * + * When you use confirm=true during creation, it’s equivalent to + * creating and confirming the PaymentIntent in the same call. You can use any + * parameters available in the confirm + * API when you supply confirm=true. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\PaymentIntent + */ + public function create($params = null, $opts = null) + { + return $this->request('post', '/v1/payment_intents', $params, $opts); + } + + /** + * Perform an incremental authorization on an eligible PaymentIntent. To be eligible, the + * PaymentIntent’s status must be requires_capture and incremental_authorization_supported + * must be true. + * + * Incremental authorizations attempt to increase the authorized amount on your + * customer’s card to the new, higher amount provided. Similar to the + * initial authorization, incremental authorizations can be declined. A single + * PaymentIntent can call this endpoint multiple times to further increase the + * authorized amount. + * + * If the incremental authorization succeeds, the PaymentIntent object returns with + * the updated amount. + * If the incremental authorization fails, a card_declined error returns, and no + * other fields on the PaymentIntent or Charge update. The PaymentIntent object + * remains capturable for the previously authorized amount. + * + * Each PaymentIntent can have a maximum of 10 incremental authorization attempts, + * including declines. After it’s captured, a PaymentIntent can no longer be + * incremented. + * + * Learn more about incremental + * authorizations. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\PaymentIntent + */ + public function incrementAuthorization($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/payment_intents/%s/increment_authorization', $id), $params, $opts); + } + + /** + * Retrieves the details of a PaymentIntent that has previously been created. + * + * You can retrieve a PaymentIntent client-side using a publishable key when the + * client_secret is in the query string. + * + * If you retrieve a PaymentIntent with a publishable key, it only returns a subset + * of properties. Refer to the payment intent + * object reference for more details. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\PaymentIntent + */ + public function retrieve($id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/payment_intents/%s', $id), $params, $opts); + } + + /** + * Search for PaymentIntents you’ve previously created using Stripe’s Search Query Language. Don’t use + * search in read-after-write flows where strict consistency is necessary. Under + * normal operating conditions, data is searchable in less than a minute. + * Occasionally, propagation of new or updated data can be up to an hour behind + * during outages. Search functionality is not available to merchants in India. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\SearchResult<\Stripe\PaymentIntent> + */ + public function search($params = null, $opts = null) + { + return $this->requestSearchResult('get', '/v1/payment_intents/search', $params, $opts); + } + + /** + * Updates properties on a PaymentIntent object without confirming. + * + * Depending on which properties you update, you might need to confirm the + * PaymentIntent again. For example, updating the payment_method + * always requires you to confirm the PaymentIntent again. If you prefer to update + * and confirm at the same time, we recommend updating properties through the confirm API instead. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\PaymentIntent + */ + public function update($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/payment_intents/%s', $id), $params, $opts); + } + + /** + * Verifies microdeposits on a PaymentIntent object. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\PaymentIntent + */ + public function verifyMicrodeposits($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/payment_intents/%s/verify_microdeposits', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/PaymentLinkService.php b/vendor/stripe/stripe-php/lib/Service/PaymentLinkService.php new file mode 100644 index 0000000..d6daa17 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/PaymentLinkService.php @@ -0,0 +1,93 @@ + + */ + public function all($params = null, $opts = null) + { + return $this->requestCollection('get', '/v1/payment_links', $params, $opts); + } + + /** + * When retrieving a payment link, there is an includable + * line_items property containing the first handful of those + * items. There is also a URL where you can retrieve the full (paginated) list of + * line items. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\LineItem> + */ + public function allLineItems($id, $params = null, $opts = null) + { + return $this->requestCollection('get', $this->buildPath('/v1/payment_links/%s/line_items', $id), $params, $opts); + } + + /** + * Creates a payment link. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\PaymentLink + */ + public function create($params = null, $opts = null) + { + return $this->request('post', '/v1/payment_links', $params, $opts); + } + + /** + * Retrieve a payment link. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\PaymentLink + */ + public function retrieve($id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/payment_links/%s', $id), $params, $opts); + } + + /** + * Updates a payment link. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\PaymentLink + */ + public function update($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/payment_links/%s', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/PaymentMethodConfigurationService.php b/vendor/stripe/stripe-php/lib/Service/PaymentMethodConfigurationService.php new file mode 100644 index 0000000..4bd7b96 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/PaymentMethodConfigurationService.php @@ -0,0 +1,74 @@ + + */ + public function all($params = null, $opts = null) + { + return $this->requestCollection('get', '/v1/payment_method_configurations', $params, $opts); + } + + /** + * Creates a payment method configuration. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\PaymentMethodConfiguration + */ + public function create($params = null, $opts = null) + { + return $this->request('post', '/v1/payment_method_configurations', $params, $opts); + } + + /** + * Retrieve payment method configuration. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\PaymentMethodConfiguration + */ + public function retrieve($id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/payment_method_configurations/%s', $id), $params, $opts); + } + + /** + * Update payment method configuration. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\PaymentMethodConfiguration + */ + public function update($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/payment_method_configurations/%s', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/PaymentMethodDomainService.php b/vendor/stripe/stripe-php/lib/Service/PaymentMethodDomainService.php new file mode 100644 index 0000000..c6e7d08 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/PaymentMethodDomainService.php @@ -0,0 +1,101 @@ + + */ + public function all($params = null, $opts = null) + { + return $this->requestCollection('get', '/v1/payment_method_domains', $params, $opts); + } + + /** + * Creates a payment method domain. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\PaymentMethodDomain + */ + public function create($params = null, $opts = null) + { + return $this->request('post', '/v1/payment_method_domains', $params, $opts); + } + + /** + * Retrieves the details of an existing payment method domain. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\PaymentMethodDomain + */ + public function retrieve($id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/payment_method_domains/%s', $id), $params, $opts); + } + + /** + * Updates an existing payment method domain. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\PaymentMethodDomain + */ + public function update($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/payment_method_domains/%s', $id), $params, $opts); + } + + /** + * Some payment methods such as Apple Pay require additional steps to verify a + * domain. If the requirements weren’t satisfied when the domain was created, the + * payment method will be inactive on the domain. The payment method doesn’t appear + * in Elements for this domain until it is active. + * + * To activate a payment method on an existing payment method domain, complete the + * required validation steps specific to the payment method, and then validate the + * payment method domain with this endpoint. + * + * Related guides: Payment method + * domains. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\PaymentMethodDomain + */ + public function validate($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/payment_method_domains/%s/validate', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/PaymentMethodService.php b/vendor/stripe/stripe-php/lib/Service/PaymentMethodService.php new file mode 100644 index 0000000..054d03b --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/PaymentMethodService.php @@ -0,0 +1,139 @@ +List a Customer’s + * PaymentMethods API instead. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\PaymentMethod> + */ + public function all($params = null, $opts = null) + { + return $this->requestCollection('get', '/v1/payment_methods', $params, $opts); + } + + /** + * Attaches a PaymentMethod object to a Customer. + * + * To attach a new PaymentMethod to a customer for future payments, we recommend + * you use a SetupIntent or a PaymentIntent + * with setup_future_usage. + * These approaches will perform any necessary steps to set up the PaymentMethod + * for future payments. Using the /v1/payment_methods/:id/attach + * endpoint without first using a SetupIntent or PaymentIntent with + * setup_future_usage does not optimize the PaymentMethod for future + * use, which makes later declines and payment friction more likely. See Optimizing cards for future + * payments for more information about setting up future payments. + * + * To use this PaymentMethod as the default for invoice or subscription payments, + * set invoice_settings.default_payment_method, + * on the Customer to the PaymentMethod’s ID. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\PaymentMethod + */ + public function attach($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/payment_methods/%s/attach', $id), $params, $opts); + } + + /** + * Creates a PaymentMethod object. Read the Stripe.js + * reference to learn how to create PaymentMethods via Stripe.js. + * + * Instead of creating a PaymentMethod directly, we recommend using the PaymentIntents API to accept a + * payment immediately or the SetupIntent API to collect payment + * method details ahead of a future payment. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\PaymentMethod + */ + public function create($params = null, $opts = null) + { + return $this->request('post', '/v1/payment_methods', $params, $opts); + } + + /** + * Detaches a PaymentMethod object from a Customer. After a PaymentMethod is + * detached, it can no longer be used for a payment or re-attached to a Customer. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\PaymentMethod + */ + public function detach($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/payment_methods/%s/detach', $id), $params, $opts); + } + + /** + * Retrieves a PaymentMethod object attached to the StripeAccount. To retrieve a + * payment method attached to a Customer, you should use Retrieve a Customer’s + * PaymentMethods. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\PaymentMethod + */ + public function retrieve($id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/payment_methods/%s', $id), $params, $opts); + } + + /** + * Updates a PaymentMethod object. A PaymentMethod must be attached a customer to + * be updated. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\PaymentMethod + */ + public function update($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/payment_methods/%s', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/PayoutService.php b/vendor/stripe/stripe-php/lib/Service/PayoutService.php new file mode 100644 index 0000000..3bd0eb2 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/PayoutService.php @@ -0,0 +1,131 @@ + + */ + public function all($params = null, $opts = null) + { + return $this->requestCollection('get', '/v1/payouts', $params, $opts); + } + + /** + * You can cancel a previously created payout if its status is + * pending. Stripe refunds the funds to your available balance. You + * can’t cancel automatic Stripe payouts. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Payout + */ + public function cancel($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/payouts/%s/cancel', $id), $params, $opts); + } + + /** + * To send funds to your own bank account, create a new payout object. Your Stripe balance must cover the payout amount. If it doesn’t, + * you receive an “Insufficient Funds” error. + * + * If your API key is in test mode, money won’t actually be sent, though every + * other action occurs as if you’re in live mode. + * + * If you create a manual payout on a Stripe account that uses multiple payment + * source types, you need to specify the source type balance that the payout draws + * from. The balance object details available and + * pending amounts by source type. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Payout + */ + public function create($params = null, $opts = null) + { + return $this->request('post', '/v1/payouts', $params, $opts); + } + + /** + * Retrieves the details of an existing payout. Supply the unique payout ID from + * either a payout creation request or the payout list. Stripe returns the + * corresponding payout information. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Payout + */ + public function retrieve($id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/payouts/%s', $id), $params, $opts); + } + + /** + * Reverses a payout by debiting the destination bank account. At this time, you + * can only reverse payouts for connected accounts to US bank accounts. If the + * payout is manual and in the pending status, use + * /v1/payouts/:id/cancel instead. + * + * By requesting a reversal through /v1/payouts/:id/reverse, you + * confirm that the authorized signatory of the selected bank account authorizes + * the debit on the bank account and that no other authorization is required. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Payout + */ + public function reverse($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/payouts/%s/reverse', $id), $params, $opts); + } + + /** + * Updates the specified payout by setting the values of the parameters you pass. + * We don’t change parameters that you don’t provide. This request only accepts the + * metadata as arguments. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Payout + */ + public function update($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/payouts/%s', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/PlanService.php b/vendor/stripe/stripe-php/lib/Service/PlanService.php new file mode 100644 index 0000000..1cea58e --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/PlanService.php @@ -0,0 +1,95 @@ + + */ + public function all($params = null, $opts = null) + { + return $this->requestCollection('get', '/v1/plans', $params, $opts); + } + + /** + * You can now model subscriptions more flexibly using the Prices + * API. It replaces the Plans API and is backwards compatible to simplify your + * migration. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Plan + */ + public function create($params = null, $opts = null) + { + return $this->request('post', '/v1/plans', $params, $opts); + } + + /** + * Deleting plans means new subscribers can’t be added. Existing subscribers aren’t + * affected. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Plan + */ + public function delete($id, $params = null, $opts = null) + { + return $this->request('delete', $this->buildPath('/v1/plans/%s', $id), $params, $opts); + } + + /** + * Retrieves the plan with the given ID. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Plan + */ + public function retrieve($id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/plans/%s', $id), $params, $opts); + } + + /** + * Updates the specified plan by setting the values of the parameters passed. Any + * parameters not provided are left unchanged. By design, you cannot change a + * plan’s ID, amount, currency, or billing cycle. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Plan + */ + public function update($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/plans/%s', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/PriceService.php b/vendor/stripe/stripe-php/lib/Service/PriceService.php new file mode 100644 index 0000000..7d164ba --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/PriceService.php @@ -0,0 +1,98 @@ +inline prices. + * For the list of inactive prices, set active to false. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\Price> + */ + public function all($params = null, $opts = null) + { + return $this->requestCollection('get', '/v1/prices', $params, $opts); + } + + /** + * Creates a new price for an existing product. The price can be recurring or + * one-time. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Price + */ + public function create($params = null, $opts = null) + { + return $this->request('post', '/v1/prices', $params, $opts); + } + + /** + * Retrieves the price with the given ID. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Price + */ + public function retrieve($id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/prices/%s', $id), $params, $opts); + } + + /** + * Search for prices you’ve previously created using Stripe’s Search Query Language. Don’t use + * search in read-after-write flows where strict consistency is necessary. Under + * normal operating conditions, data is searchable in less than a minute. + * Occasionally, propagation of new or updated data can be up to an hour behind + * during outages. Search functionality is not available to merchants in India. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\SearchResult<\Stripe\Price> + */ + public function search($params = null, $opts = null) + { + return $this->requestSearchResult('get', '/v1/prices/search', $params, $opts); + } + + /** + * Updates the specified price by setting the values of the parameters passed. Any + * parameters not provided are left unchanged. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Price + */ + public function update($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/prices/%s', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/ProductService.php b/vendor/stripe/stripe-php/lib/Service/ProductService.php new file mode 100644 index 0000000..d3aee57 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/ProductService.php @@ -0,0 +1,182 @@ + + */ + public function all($params = null, $opts = null) + { + return $this->requestCollection('get', '/v1/products', $params, $opts); + } + + /** + * Retrieve a list of features for a product. + * + * @param string $parentId + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\ProductFeature> + */ + public function allFeatures($parentId, $params = null, $opts = null) + { + return $this->requestCollection('get', $this->buildPath('/v1/products/%s/features', $parentId), $params, $opts); + } + + /** + * Creates a new product object. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Product + */ + public function create($params = null, $opts = null) + { + return $this->request('post', '/v1/products', $params, $opts); + } + + /** + * Creates a product_feature, which represents a feature attachment to a product. + * + * @param string $parentId + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\ProductFeature + */ + public function createFeature($parentId, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/products/%s/features', $parentId), $params, $opts); + } + + /** + * Delete a product. Deleting a product is only possible if it has no prices + * associated with it. Additionally, deleting a product with type=good + * is only possible if it has no SKUs associated with it. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Product + */ + public function delete($id, $params = null, $opts = null) + { + return $this->request('delete', $this->buildPath('/v1/products/%s', $id), $params, $opts); + } + + /** + * Deletes the feature attachment to a product. + * + * @param string $parentId + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\ProductFeature + */ + public function deleteFeature($parentId, $id, $params = null, $opts = null) + { + return $this->request('delete', $this->buildPath('/v1/products/%s/features/%s', $parentId, $id), $params, $opts); + } + + /** + * Retrieves the details of an existing product. Supply the unique product ID from + * either a product creation request or the product list, and Stripe will return + * the corresponding product information. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Product + */ + public function retrieve($id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/products/%s', $id), $params, $opts); + } + + /** + * Retrieves a product_feature, which represents a feature attachment to a product. + * + * @param string $parentId + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\ProductFeature + */ + public function retrieveFeature($parentId, $id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/products/%s/features/%s', $parentId, $id), $params, $opts); + } + + /** + * Search for products you’ve previously created using Stripe’s Search Query Language. Don’t use + * search in read-after-write flows where strict consistency is necessary. Under + * normal operating conditions, data is searchable in less than a minute. + * Occasionally, propagation of new or updated data can be up to an hour behind + * during outages. Search functionality is not available to merchants in India. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\SearchResult<\Stripe\Product> + */ + public function search($params = null, $opts = null) + { + return $this->requestSearchResult('get', '/v1/products/search', $params, $opts); + } + + /** + * Updates the specific product by setting the values of the parameters passed. Any + * parameters not provided will be left unchanged. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Product + */ + public function update($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/products/%s', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/PromotionCodeService.php b/vendor/stripe/stripe-php/lib/Service/PromotionCodeService.php new file mode 100644 index 0000000..8e24e73 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/PromotionCodeService.php @@ -0,0 +1,79 @@ + + */ + public function all($params = null, $opts = null) + { + return $this->requestCollection('get', '/v1/promotion_codes', $params, $opts); + } + + /** + * A promotion code points to a coupon. You can optionally restrict the code to a + * specific customer, redemption limit, and expiration date. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\PromotionCode + */ + public function create($params = null, $opts = null) + { + return $this->request('post', '/v1/promotion_codes', $params, $opts); + } + + /** + * Retrieves the promotion code with the given ID. In order to retrieve a promotion + * code by the customer-facing code use list with the desired + * code. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\PromotionCode + */ + public function retrieve($id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/promotion_codes/%s', $id), $params, $opts); + } + + /** + * Updates the specified promotion code by setting the values of the parameters + * passed. Most fields are, by design, not editable. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\PromotionCode + */ + public function update($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/promotion_codes/%s', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/QuoteService.php b/vendor/stripe/stripe-php/lib/Service/QuoteService.php new file mode 100644 index 0000000..09ff03a --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/QuoteService.php @@ -0,0 +1,185 @@ +request('post', $this->buildPath('/v1/quotes/%s/accept', $id), $params, $opts); + } + + /** + * Returns a list of your quotes. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\Quote> + */ + public function all($params = null, $opts = null) + { + return $this->requestCollection('get', '/v1/quotes', $params, $opts); + } + + /** + * When retrieving a quote, there is an includable computed.upfront.line_items + * property containing the first handful of those items. There is also a URL where + * you can retrieve the full (paginated) list of upfront line items. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\LineItem> + */ + public function allComputedUpfrontLineItems($id, $params = null, $opts = null) + { + return $this->requestCollection('get', $this->buildPath('/v1/quotes/%s/computed_upfront_line_items', $id), $params, $opts); + } + + /** + * When retrieving a quote, there is an includable line_items + * property containing the first handful of those items. There is also a URL where + * you can retrieve the full (paginated) list of line items. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\LineItem> + */ + public function allLineItems($id, $params = null, $opts = null) + { + return $this->requestCollection('get', $this->buildPath('/v1/quotes/%s/line_items', $id), $params, $opts); + } + + /** + * Cancels the quote. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Quote + */ + public function cancel($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/quotes/%s/cancel', $id), $params, $opts); + } + + /** + * A quote models prices and services for a customer. Default options for + * header, description, footer, and + * expires_at can be set in the dashboard via the quote template. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Quote + */ + public function create($params = null, $opts = null) + { + return $this->request('post', '/v1/quotes', $params, $opts); + } + + /** + * Finalizes the quote. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Quote + */ + public function finalizeQuote($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/quotes/%s/finalize', $id), $params, $opts); + } + + /** + * Download the PDF for a finalized quote. Explanation for special handling can be + * found here. + * + * @param string $id + * @param callable $readBodyChunkCallable + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return mixed + */ + public function pdf($id, $readBodyChunkCallable, $params = null, $opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + if (!isset($opts->apiBase)) { + $opts->apiBase = $this->getClient()->getFilesBase(); + } + + return $this->requestStream('get', $this->buildPath('/v1/quotes/%s/pdf', $id), $readBodyChunkCallable, $params, $opts); + } + + /** + * Retrieves the quote with the given ID. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Quote + */ + public function retrieve($id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/quotes/%s', $id), $params, $opts); + } + + /** + * A quote models prices and services for a customer. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Quote + */ + public function update($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/quotes/%s', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/Radar/EarlyFraudWarningService.php b/vendor/stripe/stripe-php/lib/Service/Radar/EarlyFraudWarningService.php new file mode 100644 index 0000000..3047a98 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/Radar/EarlyFraudWarningService.php @@ -0,0 +1,47 @@ + + */ + public function all($params = null, $opts = null) + { + return $this->requestCollection('get', '/v1/radar/early_fraud_warnings', $params, $opts); + } + + /** + * Retrieves the details of an early fraud warning that has previously been + * created. + * + * Please refer to the early fraud + * warning object reference for more details. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Radar\EarlyFraudWarning + */ + public function retrieve($id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/radar/early_fraud_warnings/%s', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/Radar/RadarServiceFactory.php b/vendor/stripe/stripe-php/lib/Service/Radar/RadarServiceFactory.php new file mode 100644 index 0000000..b093c67 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/Radar/RadarServiceFactory.php @@ -0,0 +1,29 @@ + + */ + private static $classMap = [ + 'earlyFraudWarnings' => EarlyFraudWarningService::class, + 'valueListItems' => ValueListItemService::class, + 'valueLists' => ValueListService::class, + ]; + + protected function getServiceClass($name) + { + return \array_key_exists($name, self::$classMap) ? self::$classMap[$name] : null; + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/Radar/ValueListItemService.php b/vendor/stripe/stripe-php/lib/Service/Radar/ValueListItemService.php new file mode 100644 index 0000000..0113f12 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/Radar/ValueListItemService.php @@ -0,0 +1,78 @@ +ValueListItem objects. The objects are sorted in + * descending order by creation date, with the most recently created object + * appearing first. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\Radar\ValueListItem> + */ + public function all($params = null, $opts = null) + { + return $this->requestCollection('get', '/v1/radar/value_list_items', $params, $opts); + } + + /** + * Creates a new ValueListItem object, which is added to the specified + * parent value list. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Radar\ValueListItem + */ + public function create($params = null, $opts = null) + { + return $this->request('post', '/v1/radar/value_list_items', $params, $opts); + } + + /** + * Deletes a ValueListItem object, removing it from its parent value + * list. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Radar\ValueListItem + */ + public function delete($id, $params = null, $opts = null) + { + return $this->request('delete', $this->buildPath('/v1/radar/value_list_items/%s', $id), $params, $opts); + } + + /** + * Retrieves a ValueListItem object. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Radar\ValueListItem + */ + public function retrieve($id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/radar/value_list_items/%s', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/Radar/ValueListService.php b/vendor/stripe/stripe-php/lib/Service/Radar/ValueListService.php new file mode 100644 index 0000000..125f5d5 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/Radar/ValueListService.php @@ -0,0 +1,97 @@ +ValueList objects. The objects are sorted in + * descending order by creation date, with the most recently created object + * appearing first. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\Radar\ValueList> + */ + public function all($params = null, $opts = null) + { + return $this->requestCollection('get', '/v1/radar/value_lists', $params, $opts); + } + + /** + * Creates a new ValueList object, which can then be referenced in + * rules. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Radar\ValueList + */ + public function create($params = null, $opts = null) + { + return $this->request('post', '/v1/radar/value_lists', $params, $opts); + } + + /** + * Deletes a ValueList object, also deleting any items contained + * within the value list. To be deleted, a value list must not be referenced in any + * rules. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Radar\ValueList + */ + public function delete($id, $params = null, $opts = null) + { + return $this->request('delete', $this->buildPath('/v1/radar/value_lists/%s', $id), $params, $opts); + } + + /** + * Retrieves a ValueList object. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Radar\ValueList + */ + public function retrieve($id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/radar/value_lists/%s', $id), $params, $opts); + } + + /** + * Updates a ValueList object by setting the values of the parameters + * passed. Any parameters not provided will be left unchanged. Note that + * item_type is immutable. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Radar\ValueList + */ + public function update($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/radar/value_lists/%s', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/RefundService.php b/vendor/stripe/stripe-php/lib/Service/RefundService.php new file mode 100644 index 0000000..f86b209 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/RefundService.php @@ -0,0 +1,110 @@ + + */ + public function all($params = null, $opts = null) + { + return $this->requestCollection('get', '/v1/refunds', $params, $opts); + } + + /** + * Cancels a refund with a status of requires_action. + * + * You can’t cancel refunds in other states. Only refunds for payment methods that + * require customer action can enter the requires_action state. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Refund + */ + public function cancel($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/refunds/%s/cancel', $id), $params, $opts); + } + + /** + * When you create a new refund, you must specify a Charge or a PaymentIntent + * object on which to create it. + * + * Creating a new refund will refund a charge that has previously been created but + * not yet refunded. Funds will be refunded to the credit or debit card that was + * originally charged. + * + * You can optionally refund only part of a charge. You can do so multiple times, + * until the entire charge has been refunded. + * + * Once entirely refunded, a charge can’t be refunded again. This method will raise + * an error when called on an already-refunded charge, or when trying to refund + * more money than is left on a charge. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Refund + */ + public function create($params = null, $opts = null) + { + return $this->request('post', '/v1/refunds', $params, $opts); + } + + /** + * Retrieves the details of an existing refund. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Refund + */ + public function retrieve($id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/refunds/%s', $id), $params, $opts); + } + + /** + * Updates the refund that you specify by setting the values of the passed + * parameters. Any parameters that you don’t provide remain unchanged. + * + * This request only accepts metadata as an argument. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Refund + */ + public function update($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/refunds/%s', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/Reporting/ReportRunService.php b/vendor/stripe/stripe-php/lib/Service/Reporting/ReportRunService.php new file mode 100644 index 0000000..569bd24 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/Reporting/ReportRunService.php @@ -0,0 +1,59 @@ + + */ + public function all($params = null, $opts = null) + { + return $this->requestCollection('get', '/v1/reporting/report_runs', $params, $opts); + } + + /** + * Creates a new object and begin running the report. (Certain report types require + * a live-mode API key.). + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Reporting\ReportRun + */ + public function create($params = null, $opts = null) + { + return $this->request('post', '/v1/reporting/report_runs', $params, $opts); + } + + /** + * Retrieves the details of an existing Report Run. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Reporting\ReportRun + */ + public function retrieve($id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/reporting/report_runs/%s', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/Reporting/ReportTypeService.php b/vendor/stripe/stripe-php/lib/Service/Reporting/ReportTypeService.php new file mode 100644 index 0000000..0b2dde5 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/Reporting/ReportTypeService.php @@ -0,0 +1,44 @@ + + */ + public function all($params = null, $opts = null) + { + return $this->requestCollection('get', '/v1/reporting/report_types', $params, $opts); + } + + /** + * Retrieves the details of a Report Type. (Certain report types require a live-mode API key.). + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Reporting\ReportType + */ + public function retrieve($id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/reporting/report_types/%s', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/Reporting/ReportingServiceFactory.php b/vendor/stripe/stripe-php/lib/Service/Reporting/ReportingServiceFactory.php new file mode 100644 index 0000000..7832e91 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/Reporting/ReportingServiceFactory.php @@ -0,0 +1,27 @@ + + */ + private static $classMap = [ + 'reportRuns' => ReportRunService::class, + 'reportTypes' => ReportTypeService::class, + ]; + + protected function getServiceClass($name) + { + return \array_key_exists($name, self::$classMap) ? self::$classMap[$name] : null; + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/ReviewService.php b/vendor/stripe/stripe-php/lib/Service/ReviewService.php new file mode 100644 index 0000000..b04a8d9 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/ReviewService.php @@ -0,0 +1,62 @@ +Review objects that have open set to + * true. The objects are sorted in descending order by creation date, + * with the most recently created object appearing first. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\Review> + */ + public function all($params = null, $opts = null) + { + return $this->requestCollection('get', '/v1/reviews', $params, $opts); + } + + /** + * Approves a Review object, closing it and removing it from the list + * of reviews. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Review + */ + public function approve($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/reviews/%s/approve', $id), $params, $opts); + } + + /** + * Retrieves a Review object. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Review + */ + public function retrieve($id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/reviews/%s', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/ServiceNavigatorTrait.php b/vendor/stripe/stripe-php/lib/Service/ServiceNavigatorTrait.php new file mode 100644 index 0000000..c53f372 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/ServiceNavigatorTrait.php @@ -0,0 +1,58 @@ + */ + protected $services = []; + + /** @var \Stripe\StripeClientInterface */ + protected $client; + + protected function getServiceClass($name) + { + \trigger_error('Undefined property: ' . static::class . '::$' . $name); + } + + public function __get($name) + { + $serviceClass = $this->getServiceClass($name); + if (null !== $serviceClass) { + if (!\array_key_exists($name, $this->services)) { + $this->services[$name] = new $serviceClass($this->client); + } + + return $this->services[$name]; + } + + \trigger_error('Undefined property: ' . static::class . '::$' . $name); + + return null; + } + + /** + * @param string $name + * + * @return null|AbstractService|AbstractServiceFactory + */ + public function getService($name) + { + $serviceClass = $this->getServiceClass($name); + if (null !== $serviceClass) { + if (!\array_key_exists($name, $this->services)) { + $this->services[$name] = new $serviceClass($this->client); + } + + return $this->services[$name]; + } + + \trigger_error('Undefined property: ' . static::class . '::$' . $name); + + return null; + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/SetupAttemptService.php b/vendor/stripe/stripe-php/lib/Service/SetupAttemptService.php new file mode 100644 index 0000000..b6ddbff --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/SetupAttemptService.php @@ -0,0 +1,27 @@ + + */ + public function all($params = null, $opts = null) + { + return $this->requestCollection('get', '/v1/setup_attempts', $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/SetupIntentService.php b/vendor/stripe/stripe-php/lib/Service/SetupIntentService.php new file mode 100644 index 0000000..e3428da --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/SetupIntentService.php @@ -0,0 +1,150 @@ + + */ + public function all($params = null, $opts = null) + { + return $this->requestCollection('get', '/v1/setup_intents', $params, $opts); + } + + /** + * You can cancel a SetupIntent object when it’s in one of these statuses: + * requires_payment_method, requires_confirmation, or + * requires_action. + * + * After you cancel it, setup is abandoned and any operations on the SetupIntent + * fail with an error. You can’t cancel the SetupIntent for a Checkout Session. Expire the Checkout Session + * instead. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\SetupIntent + */ + public function cancel($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/setup_intents/%s/cancel', $id), $params, $opts); + } + + /** + * Confirm that your customer intends to set up the current or provided payment + * method. For example, you would confirm a SetupIntent when a customer hits the + * “Save” button on a payment method management page on your website. + * + * If the selected payment method does not require any additional steps from the + * customer, the SetupIntent will transition to the succeeded status. + * + * Otherwise, it will transition to the requires_action status and + * suggest additional actions via next_action. If setup fails, the + * SetupIntent will transition to the requires_payment_method status + * or the canceled status if the confirmation limit is reached. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\SetupIntent + */ + public function confirm($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/setup_intents/%s/confirm', $id), $params, $opts); + } + + /** + * Creates a SetupIntent object. + * + * After you create the SetupIntent, attach a payment method and confirm it to collect any required + * permissions to charge the payment method later. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\SetupIntent + */ + public function create($params = null, $opts = null) + { + return $this->request('post', '/v1/setup_intents', $params, $opts); + } + + /** + * Retrieves the details of a SetupIntent that has previously been created. + * + * Client-side retrieval using a publishable key is allowed when the + * client_secret is provided in the query string. + * + * When retrieved with a publishable key, only a subset of properties will be + * returned. Please refer to the SetupIntent + * object reference for more details. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\SetupIntent + */ + public function retrieve($id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/setup_intents/%s', $id), $params, $opts); + } + + /** + * Updates a SetupIntent object. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\SetupIntent + */ + public function update($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/setup_intents/%s', $id), $params, $opts); + } + + /** + * Verifies microdeposits on a SetupIntent object. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\SetupIntent + */ + public function verifyMicrodeposits($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/setup_intents/%s/verify_microdeposits', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/ShippingRateService.php b/vendor/stripe/stripe-php/lib/Service/ShippingRateService.php new file mode 100644 index 0000000..c9015b7 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/ShippingRateService.php @@ -0,0 +1,74 @@ + + */ + public function all($params = null, $opts = null) + { + return $this->requestCollection('get', '/v1/shipping_rates', $params, $opts); + } + + /** + * Creates a new shipping rate object. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\ShippingRate + */ + public function create($params = null, $opts = null) + { + return $this->request('post', '/v1/shipping_rates', $params, $opts); + } + + /** + * Returns the shipping rate object with the given ID. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\ShippingRate + */ + public function retrieve($id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/shipping_rates/%s', $id), $params, $opts); + } + + /** + * Updates an existing shipping rate object. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\ShippingRate + */ + public function update($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/shipping_rates/%s', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/Sigma/ScheduledQueryRunService.php b/vendor/stripe/stripe-php/lib/Service/Sigma/ScheduledQueryRunService.php new file mode 100644 index 0000000..79562e2 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/Sigma/ScheduledQueryRunService.php @@ -0,0 +1,43 @@ + + */ + public function all($params = null, $opts = null) + { + return $this->requestCollection('get', '/v1/sigma/scheduled_query_runs', $params, $opts); + } + + /** + * Retrieves the details of an scheduled query run. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Sigma\ScheduledQueryRun + */ + public function retrieve($id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/sigma/scheduled_query_runs/%s', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/Sigma/SigmaServiceFactory.php b/vendor/stripe/stripe-php/lib/Service/Sigma/SigmaServiceFactory.php new file mode 100644 index 0000000..356750f --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/Sigma/SigmaServiceFactory.php @@ -0,0 +1,25 @@ + + */ + private static $classMap = [ + 'scheduledQueryRuns' => ScheduledQueryRunService::class, + ]; + + protected function getServiceClass($name) + { + return \array_key_exists($name, self::$classMap) ? self::$classMap[$name] : null; + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/SourceService.php b/vendor/stripe/stripe-php/lib/Service/SourceService.php new file mode 100644 index 0000000..9b94aeb --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/SourceService.php @@ -0,0 +1,116 @@ + + */ + public function allSourceTransactions($id, $params = null, $opts = null) + { + return $this->requestCollection('get', $this->buildPath('/v1/sources/%s/source_transactions', $id), $params, $opts); + } + + /** + * Creates a new source object. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Source + */ + public function create($params = null, $opts = null) + { + return $this->request('post', '/v1/sources', $params, $opts); + } + + /** + * Delete a specified source for a given customer. + * + * @param string $parentId + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Account|\Stripe\BankAccount|\Stripe\Card|\Stripe\Source + */ + public function detach($parentId, $id, $params = null, $opts = null) + { + return $this->request('delete', $this->buildPath('/v1/customers/%s/sources/%s', $parentId, $id), $params, $opts); + } + + /** + * Retrieves an existing source object. Supply the unique source ID from a source + * creation request and Stripe will return the corresponding up-to-date source + * object information. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Source + */ + public function retrieve($id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/sources/%s', $id), $params, $opts); + } + + /** + * Updates the specified source by setting the values of the parameters passed. Any + * parameters not provided will be left unchanged. + * + * This request accepts the metadata and owner as + * arguments. It is also possible to update type specific information for selected + * payment methods. Please refer to our payment method + * guides for more detail. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Source + */ + public function update($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/sources/%s', $id), $params, $opts); + } + + /** + * Verify a given source. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Source + */ + public function verify($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/sources/%s/verify', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/SubscriptionItemService.php b/vendor/stripe/stripe-php/lib/Service/SubscriptionItemService.php new file mode 100644 index 0000000..133542f --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/SubscriptionItemService.php @@ -0,0 +1,155 @@ + + */ + public function all($params = null, $opts = null) + { + return $this->requestCollection('get', '/v1/subscription_items', $params, $opts); + } + + /** + * For the specified subscription item, returns a list of summary objects. Each + * object in the list provides usage information that’s been summarized from + * multiple usage records and over a subscription billing period (e.g., 15 usage + * records in the month of September). + * + * The list is sorted in reverse-chronological order (newest first). The first list + * item represents the most current usage period that hasn’t ended yet. Since new + * usage records can still be added, the returned summary information for the + * subscription item’s ID should be seen as unstable until the subscription billing + * period ends. + * + * @param string $parentId + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\UsageRecordSummary> + */ + public function allUsageRecordSummaries($parentId, $params = null, $opts = null) + { + return $this->requestCollection('get', $this->buildPath('/v1/subscription_items/%s/usage_record_summaries', $parentId), $params, $opts); + } + + /** + * Adds a new item to an existing subscription. No existing items will be changed + * or replaced. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\SubscriptionItem + */ + public function create($params = null, $opts = null) + { + return $this->request('post', '/v1/subscription_items', $params, $opts); + } + + /** + * Creates a usage record for a specified subscription item and date, and fills it + * with a quantity. + * + * Usage records provide quantity information that Stripe uses to + * track how much a customer is using your service. With usage information and the + * pricing model set up by the metered + * billing plan, Stripe helps you send accurate invoices to your customers. + * + * The default calculation for usage is to add up all the quantity + * values of the usage records within a billing period. You can change this default + * behavior with the billing plan’s aggregate_usage parameter. When + * there is more than one usage record with the same timestamp, Stripe adds the + * quantity values together. In most cases, this is the desired + * resolution, however, you can change this behavior with the action + * parameter. + * + * The default pricing model for metered billing is per-unit pricing. + * For finer granularity, you can configure metered billing to have a tiered pricing + * model. + * + * @param string $parentId + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\UsageRecord + */ + public function createUsageRecord($parentId, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/subscription_items/%s/usage_records', $parentId), $params, $opts); + } + + /** + * Deletes an item from the subscription. Removing a subscription item from a + * subscription will not cancel the subscription. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\SubscriptionItem + */ + public function delete($id, $params = null, $opts = null) + { + return $this->request('delete', $this->buildPath('/v1/subscription_items/%s', $id), $params, $opts); + } + + /** + * Retrieves the subscription item with the given ID. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\SubscriptionItem + */ + public function retrieve($id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/subscription_items/%s', $id), $params, $opts); + } + + /** + * Updates the plan or quantity of an item on a current subscription. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\SubscriptionItem + */ + public function update($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/subscription_items/%s', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/SubscriptionScheduleService.php b/vendor/stripe/stripe-php/lib/Service/SubscriptionScheduleService.php new file mode 100644 index 0000000..3145b31 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/SubscriptionScheduleService.php @@ -0,0 +1,117 @@ + + */ + public function all($params = null, $opts = null) + { + return $this->requestCollection('get', '/v1/subscription_schedules', $params, $opts); + } + + /** + * Cancels a subscription schedule and its associated subscription immediately (if + * the subscription schedule has an active subscription). A subscription schedule + * can only be canceled if its status is not_started or + * active. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\SubscriptionSchedule + */ + public function cancel($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/subscription_schedules/%s/cancel', $id), $params, $opts); + } + + /** + * Creates a new subscription schedule object. Each customer can have up to 500 + * active or scheduled subscriptions. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\SubscriptionSchedule + */ + public function create($params = null, $opts = null) + { + return $this->request('post', '/v1/subscription_schedules', $params, $opts); + } + + /** + * Releases the subscription schedule immediately, which will stop scheduling of + * its phases, but leave any existing subscription in place. A schedule can only be + * released if its status is not_started or active. If + * the subscription schedule is currently associated with a subscription, releasing + * it will remove its subscription property and set the subscription’s + * ID to the released_subscription property. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\SubscriptionSchedule + */ + public function release($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/subscription_schedules/%s/release', $id), $params, $opts); + } + + /** + * Retrieves the details of an existing subscription schedule. You only need to + * supply the unique subscription schedule identifier that was returned upon + * subscription schedule creation. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\SubscriptionSchedule + */ + public function retrieve($id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/subscription_schedules/%s', $id), $params, $opts); + } + + /** + * Updates an existing subscription schedule. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\SubscriptionSchedule + */ + public function update($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/subscription_schedules/%s', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/SubscriptionService.php b/vendor/stripe/stripe-php/lib/Service/SubscriptionService.php new file mode 100644 index 0000000..922be94 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/SubscriptionService.php @@ -0,0 +1,223 @@ +status=canceled. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\Subscription> + */ + public function all($params = null, $opts = null) + { + return $this->requestCollection('get', '/v1/subscriptions', $params, $opts); + } + + /** + * Cancels a customer’s subscription immediately. The customer won’t be charged + * again for the subscription. After it’s canceled, you can no longer update the + * subscription or its metadata. + * + * Any pending invoice items that you’ve created are still charged at the end of + * the period, unless manually deleted. If you’ve + * set the subscription to cancel at the end of the period, any pending prorations + * are also left in place and collected at the end of the period. But if the + * subscription is set to cancel immediately, pending prorations are removed. + * + * By default, upon subscription cancellation, Stripe stops automatic collection of + * all finalized invoices for the customer. This is intended to prevent unexpected + * payment attempts after the customer has canceled a subscription. However, you + * can resume automatic collection of the invoices manually after subscription + * cancellation to have us proceed. Or, you could check for unpaid invoices before + * allowing the customer to cancel the subscription at all. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Subscription + */ + public function cancel($id, $params = null, $opts = null) + { + return $this->request('delete', $this->buildPath('/v1/subscriptions/%s', $id), $params, $opts); + } + + /** + * Creates a new subscription on an existing customer. Each customer can have up to + * 500 active or scheduled subscriptions. + * + * When you create a subscription with + * collection_method=charge_automatically, the first invoice is + * finalized as part of the request. The payment_behavior parameter + * determines the exact behavior of the initial payment. + * + * To start subscriptions where the first invoice always begins in a + * draft status, use subscription + * schedules instead. Schedules provide the flexibility to model more complex + * billing configurations that change over time. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Subscription + */ + public function create($params = null, $opts = null) + { + return $this->request('post', '/v1/subscriptions', $params, $opts); + } + + /** + * Removes the currently applied discount on a subscription. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Discount + */ + public function deleteDiscount($id, $params = null, $opts = null) + { + return $this->request('delete', $this->buildPath('/v1/subscriptions/%s/discount', $id), $params, $opts); + } + + /** + * Initiates resumption of a paused subscription, optionally resetting the billing + * cycle anchor and creating prorations. If a resumption invoice is generated, it + * must be paid or marked uncollectible before the subscription will be unpaused. + * If payment succeeds the subscription will become active, and if + * payment fails the subscription will be past_due. The resumption + * invoice will void automatically if not paid by the expiration date. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Subscription + */ + public function resume($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/subscriptions/%s/resume', $id), $params, $opts); + } + + /** + * Retrieves the subscription with the given ID. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Subscription + */ + public function retrieve($id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/subscriptions/%s', $id), $params, $opts); + } + + /** + * Search for subscriptions you’ve previously created using Stripe’s Search Query Language. Don’t use + * search in read-after-write flows where strict consistency is necessary. Under + * normal operating conditions, data is searchable in less than a minute. + * Occasionally, propagation of new or updated data can be up to an hour behind + * during outages. Search functionality is not available to merchants in India. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\SearchResult<\Stripe\Subscription> + */ + public function search($params = null, $opts = null) + { + return $this->requestSearchResult('get', '/v1/subscriptions/search', $params, $opts); + } + + /** + * Updates an existing subscription to match the specified parameters. When + * changing prices or quantities, we optionally prorate the price we charge next + * month to make up for any price changes. To preview how the proration is + * calculated, use the create + * preview endpoint. + * + * By default, we prorate subscription changes. For example, if a customer signs up + * on May 1 for a 100 price, they’ll be billed + * 100 immediately. If on May 15 they switch to a + * 200 price, then on June 1 they’ll be billed + * 250 (200 for a renewal of her + * subscription, plus a 50 prorating adjustment for half of + * the previous month’s 100 difference). Similarly, a + * downgrade generates a credit that is applied to the next invoice. We also + * prorate when you make quantity changes. + * + * Switching prices does not normally change the billing date or generate an + * immediate charge unless: + * + *
    • The billing interval is changed (for example, from monthly to + * yearly).
    • The subscription moves from free to paid.
    • A trial + * starts or ends.
    + * + * In these cases, we apply a credit for the unused time on the previous price, + * immediately charge the customer using the new price, and reset the billing date. + * Learn about how Stripe + * immediately attempts payment for subscription changes. + * + * If you want to charge for an upgrade immediately, pass + * proration_behavior as always_invoice to create + * prorations, automatically invoice the customer for those proration adjustments, + * and attempt to collect payment. If you pass create_prorations, the + * prorations are created but not automatically invoiced. If you want to bill the + * customer for the prorations before the subscription’s renewal date, you need to + * manually invoice the customer. + * + * If you don’t want to prorate, set the proration_behavior option to + * none. With this option, the customer is billed + * 100 on May 1 and 200 on June 1. + * Similarly, if you set proration_behavior to none when + * switching between different billing intervals (for example, from monthly to + * yearly), we don’t generate any credits for the old subscription’s unused time. + * We still reset the billing date and bill immediately for the new subscription. + * + * Updating the quantity on a subscription many times in an hour may result in rate limiting. If you need to bill for a frequently + * changing quantity, consider integrating usage-based billing instead. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Subscription + */ + public function update($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/subscriptions/%s', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/Tax/CalculationService.php b/vendor/stripe/stripe-php/lib/Service/Tax/CalculationService.php new file mode 100644 index 0000000..68a1f04 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/Tax/CalculationService.php @@ -0,0 +1,62 @@ + + */ + public function allLineItems($id, $params = null, $opts = null) + { + return $this->requestCollection('get', $this->buildPath('/v1/tax/calculations/%s/line_items', $id), $params, $opts); + } + + /** + * Calculates tax based on the input and returns a Tax Calculation + * object. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Tax\Calculation + */ + public function create($params = null, $opts = null) + { + return $this->request('post', '/v1/tax/calculations', $params, $opts); + } + + /** + * Retrieves a Tax Calculation object, if the calculation hasn’t + * expired. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Tax\Calculation + */ + public function retrieve($id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/tax/calculations/%s', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/Tax/RegistrationService.php b/vendor/stripe/stripe-php/lib/Service/Tax/RegistrationService.php new file mode 100644 index 0000000..db05503 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/Tax/RegistrationService.php @@ -0,0 +1,77 @@ +Registration objects. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\Tax\Registration> + */ + public function all($params = null, $opts = null) + { + return $this->requestCollection('get', '/v1/tax/registrations', $params, $opts); + } + + /** + * Creates a new Tax Registration object. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Tax\Registration + */ + public function create($params = null, $opts = null) + { + return $this->request('post', '/v1/tax/registrations', $params, $opts); + } + + /** + * Returns a Tax Registration object. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Tax\Registration + */ + public function retrieve($id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/tax/registrations/%s', $id), $params, $opts); + } + + /** + * Updates an existing Tax Registration object. + * + * A registration cannot be deleted after it has been created. If you wish to end a + * registration you may do so by setting expires_at. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Tax\Registration + */ + public function update($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/tax/registrations/%s', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/Tax/SettingsService.php b/vendor/stripe/stripe-php/lib/Service/Tax/SettingsService.php new file mode 100644 index 0000000..38d02cc --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/Tax/SettingsService.php @@ -0,0 +1,43 @@ +Settings for a merchant. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Tax\Settings + */ + public function retrieve($params = null, $opts = null) + { + return $this->request('get', '/v1/tax/settings', $params, $opts); + } + + /** + * Updates Tax Settings parameters used in tax calculations. All + * parameters are editable but none can be removed once set. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Tax\Settings + */ + public function update($params = null, $opts = null) + { + return $this->request('post', '/v1/tax/settings', $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/Tax/TaxServiceFactory.php b/vendor/stripe/stripe-php/lib/Service/Tax/TaxServiceFactory.php new file mode 100644 index 0000000..2aeeb64 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/Tax/TaxServiceFactory.php @@ -0,0 +1,31 @@ + + */ + private static $classMap = [ + 'calculations' => CalculationService::class, + 'registrations' => RegistrationService::class, + 'settings' => SettingsService::class, + 'transactions' => TransactionService::class, + ]; + + protected function getServiceClass($name) + { + return \array_key_exists($name, self::$classMap) ? self::$classMap[$name] : null; + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/Tax/TransactionService.php b/vendor/stripe/stripe-php/lib/Service/Tax/TransactionService.php new file mode 100644 index 0000000..416332e --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/Tax/TransactionService.php @@ -0,0 +1,75 @@ + + */ + public function allLineItems($id, $params = null, $opts = null) + { + return $this->requestCollection('get', $this->buildPath('/v1/tax/transactions/%s/line_items', $id), $params, $opts); + } + + /** + * Creates a Tax Transaction from a calculation, if that calculation hasn’t + * expired. Calculations expire after 90 days. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Tax\Transaction + */ + public function createFromCalculation($params = null, $opts = null) + { + return $this->request('post', '/v1/tax/transactions/create_from_calculation', $params, $opts); + } + + /** + * Partially or fully reverses a previously created Transaction. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Tax\Transaction + */ + public function createReversal($params = null, $opts = null) + { + return $this->request('post', '/v1/tax/transactions/create_reversal', $params, $opts); + } + + /** + * Retrieves a Tax Transaction object. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Tax\Transaction + */ + public function retrieve($id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/tax/transactions/%s', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/TaxCodeService.php b/vendor/stripe/stripe-php/lib/Service/TaxCodeService.php new file mode 100644 index 0000000..7baf4d7 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/TaxCodeService.php @@ -0,0 +1,45 @@ +all tax codes + * available to add to Products in order to allow specific tax calculations. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\TaxCode> + */ + public function all($params = null, $opts = null) + { + return $this->requestCollection('get', '/v1/tax_codes', $params, $opts); + } + + /** + * Retrieves the details of an existing tax code. Supply the unique tax code ID and + * Stripe will return the corresponding tax code information. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\TaxCode + */ + public function retrieve($id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/tax_codes/%s', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/TaxIdService.php b/vendor/stripe/stripe-php/lib/Service/TaxIdService.php new file mode 100644 index 0000000..6593387 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/TaxIdService.php @@ -0,0 +1,74 @@ + + */ + public function all($params = null, $opts = null) + { + return $this->requestCollection('get', '/v1/tax_ids', $params, $opts); + } + + /** + * Creates a new account or customer tax_id object. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\TaxId + */ + public function create($params = null, $opts = null) + { + return $this->request('post', '/v1/tax_ids', $params, $opts); + } + + /** + * Deletes an existing account or customer tax_id object. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\TaxId + */ + public function delete($id, $params = null, $opts = null) + { + return $this->request('delete', $this->buildPath('/v1/tax_ids/%s', $id), $params, $opts); + } + + /** + * Retrieves an account or customer tax_id object. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\TaxId + */ + public function retrieve($id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/tax_ids/%s', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/TaxRateService.php b/vendor/stripe/stripe-php/lib/Service/TaxRateService.php new file mode 100644 index 0000000..5763f09 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/TaxRateService.php @@ -0,0 +1,75 @@ + + */ + public function all($params = null, $opts = null) + { + return $this->requestCollection('get', '/v1/tax_rates', $params, $opts); + } + + /** + * Creates a new tax rate. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\TaxRate + */ + public function create($params = null, $opts = null) + { + return $this->request('post', '/v1/tax_rates', $params, $opts); + } + + /** + * Retrieves a tax rate with the given ID. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\TaxRate + */ + public function retrieve($id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/tax_rates/%s', $id), $params, $opts); + } + + /** + * Updates an existing tax rate. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\TaxRate + */ + public function update($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/tax_rates/%s', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/Terminal/ConfigurationService.php b/vendor/stripe/stripe-php/lib/Service/Terminal/ConfigurationService.php new file mode 100644 index 0000000..6235008 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/Terminal/ConfigurationService.php @@ -0,0 +1,90 @@ +Configuration objects. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\Terminal\Configuration> + */ + public function all($params = null, $opts = null) + { + return $this->requestCollection('get', '/v1/terminal/configurations', $params, $opts); + } + + /** + * Creates a new Configuration object. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Terminal\Configuration + */ + public function create($params = null, $opts = null) + { + return $this->request('post', '/v1/terminal/configurations', $params, $opts); + } + + /** + * Deletes a Configuration object. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Terminal\Configuration + */ + public function delete($id, $params = null, $opts = null) + { + return $this->request('delete', $this->buildPath('/v1/terminal/configurations/%s', $id), $params, $opts); + } + + /** + * Retrieves a Configuration object. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Terminal\Configuration + */ + public function retrieve($id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/terminal/configurations/%s', $id), $params, $opts); + } + + /** + * Updates a new Configuration object. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Terminal\Configuration + */ + public function update($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/terminal/configurations/%s', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/Terminal/ConnectionTokenService.php b/vendor/stripe/stripe-php/lib/Service/Terminal/ConnectionTokenService.php new file mode 100644 index 0000000..8c8235d --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/Terminal/ConnectionTokenService.php @@ -0,0 +1,29 @@ +request('post', '/v1/terminal/connection_tokens', $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/Terminal/LocationService.php b/vendor/stripe/stripe-php/lib/Service/Terminal/LocationService.php new file mode 100644 index 0000000..980c318 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/Terminal/LocationService.php @@ -0,0 +1,93 @@ +Location objects. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\Terminal\Location> + */ + public function all($params = null, $opts = null) + { + return $this->requestCollection('get', '/v1/terminal/locations', $params, $opts); + } + + /** + * Creates a new Location object. For further details, including which + * address fields are required in each country, see the Manage locations guide. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Terminal\Location + */ + public function create($params = null, $opts = null) + { + return $this->request('post', '/v1/terminal/locations', $params, $opts); + } + + /** + * Deletes a Location object. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Terminal\Location + */ + public function delete($id, $params = null, $opts = null) + { + return $this->request('delete', $this->buildPath('/v1/terminal/locations/%s', $id), $params, $opts); + } + + /** + * Retrieves a Location object. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Terminal\Location + */ + public function retrieve($id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/terminal/locations/%s', $id), $params, $opts); + } + + /** + * Updates a Location object by setting the values of the parameters + * passed. Any parameters not provided will be left unchanged. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Terminal\Location + */ + public function update($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/terminal/locations/%s', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/Terminal/ReaderService.php b/vendor/stripe/stripe-php/lib/Service/Terminal/ReaderService.php new file mode 100644 index 0000000..f119f8e --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/Terminal/ReaderService.php @@ -0,0 +1,171 @@ +Reader objects. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\Terminal\Reader> + */ + public function all($params = null, $opts = null) + { + return $this->requestCollection('get', '/v1/terminal/readers', $params, $opts); + } + + /** + * Cancels the current reader action. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Terminal\Reader + */ + public function cancelAction($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/terminal/readers/%s/cancel_action', $id), $params, $opts); + } + + /** + * Creates a new Reader object. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Terminal\Reader + */ + public function create($params = null, $opts = null) + { + return $this->request('post', '/v1/terminal/readers', $params, $opts); + } + + /** + * Deletes a Reader object. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Terminal\Reader + */ + public function delete($id, $params = null, $opts = null) + { + return $this->request('delete', $this->buildPath('/v1/terminal/readers/%s', $id), $params, $opts); + } + + /** + * Initiates a payment flow on a Reader. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Terminal\Reader + */ + public function processPaymentIntent($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/terminal/readers/%s/process_payment_intent', $id), $params, $opts); + } + + /** + * Initiates a setup intent flow on a Reader. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Terminal\Reader + */ + public function processSetupIntent($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/terminal/readers/%s/process_setup_intent', $id), $params, $opts); + } + + /** + * Initiates a refund on a Reader. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Terminal\Reader + */ + public function refundPayment($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/terminal/readers/%s/refund_payment', $id), $params, $opts); + } + + /** + * Retrieves a Reader object. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Terminal\Reader + */ + public function retrieve($id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/terminal/readers/%s', $id), $params, $opts); + } + + /** + * Sets reader display to show cart details. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Terminal\Reader + */ + public function setReaderDisplay($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/terminal/readers/%s/set_reader_display', $id), $params, $opts); + } + + /** + * Updates a Reader object by setting the values of the parameters + * passed. Any parameters not provided will be left unchanged. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Terminal\Reader + */ + public function update($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/terminal/readers/%s', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/Terminal/TerminalServiceFactory.php b/vendor/stripe/stripe-php/lib/Service/Terminal/TerminalServiceFactory.php new file mode 100644 index 0000000..f095124 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/Terminal/TerminalServiceFactory.php @@ -0,0 +1,31 @@ + + */ + private static $classMap = [ + 'configurations' => ConfigurationService::class, + 'connectionTokens' => ConnectionTokenService::class, + 'locations' => LocationService::class, + 'readers' => ReaderService::class, + ]; + + protected function getServiceClass($name) + { + return \array_key_exists($name, self::$classMap) ? self::$classMap[$name] : null; + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/TestHelpers/ConfirmationTokenService.php b/vendor/stripe/stripe-php/lib/Service/TestHelpers/ConfirmationTokenService.php new file mode 100644 index 0000000..a98c0e3 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/TestHelpers/ConfirmationTokenService.php @@ -0,0 +1,27 @@ +request('post', '/v1/test_helpers/confirmation_tokens', $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/TestHelpers/CustomerService.php b/vendor/stripe/stripe-php/lib/Service/TestHelpers/CustomerService.php new file mode 100644 index 0000000..902a933 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/TestHelpers/CustomerService.php @@ -0,0 +1,28 @@ +request('post', $this->buildPath('/v1/test_helpers/customers/%s/fund_cash_balance', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/TestHelpers/Issuing/AuthorizationService.php b/vendor/stripe/stripe-php/lib/Service/TestHelpers/Issuing/AuthorizationService.php new file mode 100644 index 0000000..22d3ff8 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/TestHelpers/Issuing/AuthorizationService.php @@ -0,0 +1,125 @@ +request('post', $this->buildPath('/v1/test_helpers/issuing/authorizations/%s/capture', $id), $params, $opts); + } + + /** + * Create a test-mode authorization. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Issuing\Authorization + */ + public function create($params = null, $opts = null) + { + return $this->request('post', '/v1/test_helpers/issuing/authorizations', $params, $opts); + } + + /** + * Expire a test-mode Authorization. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Issuing\Authorization + */ + public function expire($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/test_helpers/issuing/authorizations/%s/expire', $id), $params, $opts); + } + + /** + * Finalize the amount on an Authorization prior to capture, when the initial + * authorization was for an estimated amount. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Issuing\Authorization + */ + public function finalizeAmount($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/test_helpers/issuing/authorizations/%s/finalize_amount', $id), $params, $opts); + } + + /** + * Increment a test-mode Authorization. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Issuing\Authorization + */ + public function increment($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/test_helpers/issuing/authorizations/%s/increment', $id), $params, $opts); + } + + /** + * Respond to a fraud challenge on a testmode Issuing authorization, simulating + * either a confirmation of fraud or a correction of legitimacy. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Issuing\Authorization + */ + public function respond($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/test_helpers/issuing/authorizations/%s/fraud_challenges/respond', $id), $params, $opts); + } + + /** + * Reverse a test-mode Authorization. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Issuing\Authorization + */ + public function reverse($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/test_helpers/issuing/authorizations/%s/reverse', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/TestHelpers/Issuing/CardService.php b/vendor/stripe/stripe-php/lib/Service/TestHelpers/Issuing/CardService.php new file mode 100644 index 0000000..b74b9ed --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/TestHelpers/Issuing/CardService.php @@ -0,0 +1,98 @@ +Card object to + * delivered. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Issuing\Card + */ + public function deliverCard($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/test_helpers/issuing/cards/%s/shipping/deliver', $id), $params, $opts); + } + + /** + * Updates the shipping status of the specified Issuing Card object to + * failure. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Issuing\Card + */ + public function failCard($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/test_helpers/issuing/cards/%s/shipping/fail', $id), $params, $opts); + } + + /** + * Updates the shipping status of the specified Issuing Card object to + * returned. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Issuing\Card + */ + public function returnCard($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/test_helpers/issuing/cards/%s/shipping/return', $id), $params, $opts); + } + + /** + * Updates the shipping status of the specified Issuing Card object to + * shipped. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Issuing\Card + */ + public function shipCard($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/test_helpers/issuing/cards/%s/shipping/ship', $id), $params, $opts); + } + + /** + * Updates the shipping status of the specified Issuing Card object to + * submitted. This method requires Stripe Version ‘2024-09-30.acacia’ + * or later. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Issuing\Card + */ + public function submitCard($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/test_helpers/issuing/cards/%s/shipping/submit', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/TestHelpers/Issuing/IssuingServiceFactory.php b/vendor/stripe/stripe-php/lib/Service/TestHelpers/Issuing/IssuingServiceFactory.php new file mode 100644 index 0000000..c622414 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/TestHelpers/Issuing/IssuingServiceFactory.php @@ -0,0 +1,31 @@ + + */ + private static $classMap = [ + 'authorizations' => AuthorizationService::class, + 'cards' => CardService::class, + 'personalizationDesigns' => PersonalizationDesignService::class, + 'transactions' => TransactionService::class, + ]; + + protected function getServiceClass($name) + { + return \array_key_exists($name, self::$classMap) ? self::$classMap[$name] : null; + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/TestHelpers/Issuing/PersonalizationDesignService.php b/vendor/stripe/stripe-php/lib/Service/TestHelpers/Issuing/PersonalizationDesignService.php new file mode 100644 index 0000000..386fc95 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/TestHelpers/Issuing/PersonalizationDesignService.php @@ -0,0 +1,63 @@ +status of the specified testmode personalization design + * object to active. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Issuing\PersonalizationDesign + */ + public function activate($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/test_helpers/issuing/personalization_designs/%s/activate', $id), $params, $opts); + } + + /** + * Updates the status of the specified testmode personalization design + * object to inactive. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Issuing\PersonalizationDesign + */ + public function deactivate($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/test_helpers/issuing/personalization_designs/%s/deactivate', $id), $params, $opts); + } + + /** + * Updates the status of the specified testmode personalization design + * object to rejected. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Issuing\PersonalizationDesign + */ + public function reject($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/test_helpers/issuing/personalization_designs/%s/reject', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/TestHelpers/Issuing/TransactionService.php b/vendor/stripe/stripe-php/lib/Service/TestHelpers/Issuing/TransactionService.php new file mode 100644 index 0000000..0142ecf --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/TestHelpers/Issuing/TransactionService.php @@ -0,0 +1,58 @@ +request('post', '/v1/test_helpers/issuing/transactions/create_force_capture', $params, $opts); + } + + /** + * Allows the user to refund an arbitrary amount, also known as a unlinked refund. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Issuing\Transaction + */ + public function createUnlinkedRefund($params = null, $opts = null) + { + return $this->request('post', '/v1/test_helpers/issuing/transactions/create_unlinked_refund', $params, $opts); + } + + /** + * Refund a test-mode Transaction. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Issuing\Transaction + */ + public function refund($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/test_helpers/issuing/transactions/%s/refund', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/TestHelpers/RefundService.php b/vendor/stripe/stripe-php/lib/Service/TestHelpers/RefundService.php new file mode 100644 index 0000000..5123404 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/TestHelpers/RefundService.php @@ -0,0 +1,28 @@ +requires_action. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Refund + */ + public function expire($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/test_helpers/refunds/%s/expire', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/TestHelpers/Terminal/ReaderService.php b/vendor/stripe/stripe-php/lib/Service/TestHelpers/Terminal/ReaderService.php new file mode 100644 index 0000000..afdecb5 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/TestHelpers/Terminal/ReaderService.php @@ -0,0 +1,29 @@ +request('post', $this->buildPath('/v1/test_helpers/terminal/readers/%s/present_payment_method', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/TestHelpers/Terminal/TerminalServiceFactory.php b/vendor/stripe/stripe-php/lib/Service/TestHelpers/Terminal/TerminalServiceFactory.php new file mode 100644 index 0000000..153ebe0 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/TestHelpers/Terminal/TerminalServiceFactory.php @@ -0,0 +1,25 @@ + + */ + private static $classMap = [ + 'readers' => ReaderService::class, + ]; + + protected function getServiceClass($name) + { + return \array_key_exists($name, self::$classMap) ? self::$classMap[$name] : null; + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/TestHelpers/TestClockService.php b/vendor/stripe/stripe-php/lib/Service/TestHelpers/TestClockService.php new file mode 100644 index 0000000..d938a96 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/TestHelpers/TestClockService.php @@ -0,0 +1,91 @@ +Ready. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\TestHelpers\TestClock + */ + public function advance($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/test_helpers/test_clocks/%s/advance', $id), $params, $opts); + } + + /** + * Returns a list of your test clocks. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\TestHelpers\TestClock> + */ + public function all($params = null, $opts = null) + { + return $this->requestCollection('get', '/v1/test_helpers/test_clocks', $params, $opts); + } + + /** + * Creates a new test clock that can be attached to new customers and quotes. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\TestHelpers\TestClock + */ + public function create($params = null, $opts = null) + { + return $this->request('post', '/v1/test_helpers/test_clocks', $params, $opts); + } + + /** + * Deletes a test clock. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\TestHelpers\TestClock + */ + public function delete($id, $params = null, $opts = null) + { + return $this->request('delete', $this->buildPath('/v1/test_helpers/test_clocks/%s', $id), $params, $opts); + } + + /** + * Retrieves a test clock. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\TestHelpers\TestClock + */ + public function retrieve($id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/test_helpers/test_clocks/%s', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/TestHelpers/TestHelpersServiceFactory.php b/vendor/stripe/stripe-php/lib/Service/TestHelpers/TestHelpersServiceFactory.php new file mode 100644 index 0000000..038a565 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/TestHelpers/TestHelpersServiceFactory.php @@ -0,0 +1,37 @@ + + */ + private static $classMap = [ + 'confirmationTokens' => ConfirmationTokenService::class, + 'customers' => CustomerService::class, + 'issuing' => Issuing\IssuingServiceFactory::class, + 'refunds' => RefundService::class, + 'terminal' => Terminal\TerminalServiceFactory::class, + 'testClocks' => TestClockService::class, + 'treasury' => Treasury\TreasuryServiceFactory::class, + ]; + + protected function getServiceClass($name) + { + return \array_key_exists($name, self::$classMap) ? self::$classMap[$name] : null; + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/TestHelpers/Treasury/InboundTransferService.php b/vendor/stripe/stripe-php/lib/Service/TestHelpers/Treasury/InboundTransferService.php new file mode 100644 index 0000000..e293e4f --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/TestHelpers/Treasury/InboundTransferService.php @@ -0,0 +1,66 @@ +failed + * status. The InboundTransfer must already be in the processing + * state. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Treasury\InboundTransfer + */ + public function fail($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/test_helpers/treasury/inbound_transfers/%s/fail', $id), $params, $opts); + } + + /** + * Marks the test mode InboundTransfer object as returned and links the + * InboundTransfer to a ReceivedDebit. The InboundTransfer must already be in the + * succeeded state. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Treasury\InboundTransfer + */ + public function returnInboundTransfer($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/test_helpers/treasury/inbound_transfers/%s/return', $id), $params, $opts); + } + + /** + * Transitions a test mode created InboundTransfer to the succeeded + * status. The InboundTransfer must already be in the processing + * state. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Treasury\InboundTransfer + */ + public function succeed($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/test_helpers/treasury/inbound_transfers/%s/succeed', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/TestHelpers/Treasury/OutboundPaymentService.php b/vendor/stripe/stripe-php/lib/Service/TestHelpers/Treasury/OutboundPaymentService.php new file mode 100644 index 0000000..4990225 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/TestHelpers/Treasury/OutboundPaymentService.php @@ -0,0 +1,84 @@ +failed + * status. The OutboundPayment must already be in the processing + * state. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Treasury\OutboundPayment + */ + public function fail($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/test_helpers/treasury/outbound_payments/%s/fail', $id), $params, $opts); + } + + /** + * Transitions a test mode created OutboundPayment to the posted + * status. The OutboundPayment must already be in the processing + * state. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Treasury\OutboundPayment + */ + public function post($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/test_helpers/treasury/outbound_payments/%s/post', $id), $params, $opts); + } + + /** + * Transitions a test mode created OutboundPayment to the returned + * status. The OutboundPayment must already be in the processing + * state. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Treasury\OutboundPayment + */ + public function returnOutboundPayment($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/test_helpers/treasury/outbound_payments/%s/return', $id), $params, $opts); + } + + /** + * Updates a test mode created OutboundPayment with tracking details. The + * OutboundPayment must not be cancelable, and cannot be in the + * canceled or failed states. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Treasury\OutboundPayment + */ + public function update($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/test_helpers/treasury/outbound_payments/%s', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/TestHelpers/Treasury/OutboundTransferService.php b/vendor/stripe/stripe-php/lib/Service/TestHelpers/Treasury/OutboundTransferService.php new file mode 100644 index 0000000..c152880 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/TestHelpers/Treasury/OutboundTransferService.php @@ -0,0 +1,84 @@ +failed + * status. The OutboundTransfer must already be in the processing + * state. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Treasury\OutboundTransfer + */ + public function fail($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/test_helpers/treasury/outbound_transfers/%s/fail', $id), $params, $opts); + } + + /** + * Transitions a test mode created OutboundTransfer to the posted + * status. The OutboundTransfer must already be in the processing + * state. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Treasury\OutboundTransfer + */ + public function post($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/test_helpers/treasury/outbound_transfers/%s/post', $id), $params, $opts); + } + + /** + * Transitions a test mode created OutboundTransfer to the returned + * status. The OutboundTransfer must already be in the processing + * state. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Treasury\OutboundTransfer + */ + public function returnOutboundTransfer($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/test_helpers/treasury/outbound_transfers/%s/return', $id), $params, $opts); + } + + /** + * Updates a test mode created OutboundTransfer with tracking details. The + * OutboundTransfer must not be cancelable, and cannot be in the + * canceled or failed states. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Treasury\OutboundTransfer + */ + public function update($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/test_helpers/treasury/outbound_transfers/%s', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/TestHelpers/Treasury/ReceivedCreditService.php b/vendor/stripe/stripe-php/lib/Service/TestHelpers/Treasury/ReceivedCreditService.php new file mode 100644 index 0000000..b1d865c --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/TestHelpers/Treasury/ReceivedCreditService.php @@ -0,0 +1,29 @@ +request('post', '/v1/test_helpers/treasury/received_credits', $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/TestHelpers/Treasury/ReceivedDebitService.php b/vendor/stripe/stripe-php/lib/Service/TestHelpers/Treasury/ReceivedDebitService.php new file mode 100644 index 0000000..bbd0cc9 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/TestHelpers/Treasury/ReceivedDebitService.php @@ -0,0 +1,29 @@ +request('post', '/v1/test_helpers/treasury/received_debits', $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/TestHelpers/Treasury/TreasuryServiceFactory.php b/vendor/stripe/stripe-php/lib/Service/TestHelpers/Treasury/TreasuryServiceFactory.php new file mode 100644 index 0000000..8329a53 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/TestHelpers/Treasury/TreasuryServiceFactory.php @@ -0,0 +1,33 @@ + + */ + private static $classMap = [ + 'inboundTransfers' => InboundTransferService::class, + 'outboundPayments' => OutboundPaymentService::class, + 'outboundTransfers' => OutboundTransferService::class, + 'receivedCredits' => ReceivedCreditService::class, + 'receivedDebits' => ReceivedDebitService::class, + ]; + + protected function getServiceClass($name) + { + return \array_key_exists($name, self::$classMap) ? self::$classMap[$name] : null; + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/TokenService.php b/vendor/stripe/stripe-php/lib/Service/TokenService.php new file mode 100644 index 0000000..3e90aa9 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/TokenService.php @@ -0,0 +1,48 @@ +connected + * account where controller.requirement_collection + * is application, which includes Custom accounts. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Token + */ + public function create($params = null, $opts = null) + { + return $this->request('post', '/v1/tokens', $params, $opts); + } + + /** + * Retrieves the token with the given ID. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Token + */ + public function retrieve($id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/tokens/%s', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/TopupService.php b/vendor/stripe/stripe-php/lib/Service/TopupService.php new file mode 100644 index 0000000..2d11619 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/TopupService.php @@ -0,0 +1,93 @@ + + */ + public function all($params = null, $opts = null) + { + return $this->requestCollection('get', '/v1/topups', $params, $opts); + } + + /** + * Cancels a top-up. Only pending top-ups can be canceled. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Topup + */ + public function cancel($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/topups/%s/cancel', $id), $params, $opts); + } + + /** + * Top up the balance of an account. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Topup + */ + public function create($params = null, $opts = null) + { + return $this->request('post', '/v1/topups', $params, $opts); + } + + /** + * Retrieves the details of a top-up that has previously been created. Supply the + * unique top-up ID that was returned from your previous request, and Stripe will + * return the corresponding top-up information. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Topup + */ + public function retrieve($id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/topups/%s', $id), $params, $opts); + } + + /** + * Updates the metadata of a top-up. Other top-up details are not editable by + * design. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Topup + */ + public function update($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/topups/%s', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/TransferService.php b/vendor/stripe/stripe-php/lib/Service/TransferService.php new file mode 100644 index 0000000..26ec45e --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/TransferService.php @@ -0,0 +1,165 @@ + + */ + public function all($params = null, $opts = null) + { + return $this->requestCollection('get', '/v1/transfers', $params, $opts); + } + + /** + * You can see a list of the reversals belonging to a specific transfer. Note that + * the 10 most recent reversals are always available by default on the transfer + * object. If you need more than those 10, you can use this API method and the + * limit and starting_after parameters to page through + * additional reversals. + * + * @param string $parentId + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\TransferReversal> + */ + public function allReversals($parentId, $params = null, $opts = null) + { + return $this->requestCollection('get', $this->buildPath('/v1/transfers/%s/reversals', $parentId), $params, $opts); + } + + /** + * To send funds from your Stripe account to a connected account, you create a new + * transfer object. Your Stripe balance must be able to + * cover the transfer amount, or you’ll receive an “Insufficient Funds” error. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Transfer + */ + public function create($params = null, $opts = null) + { + return $this->request('post', '/v1/transfers', $params, $opts); + } + + /** + * When you create a new reversal, you must specify a transfer to create it on. + * + * When reversing transfers, you can optionally reverse part of the transfer. You + * can do so as many times as you wish until the entire transfer has been reversed. + * + * Once entirely reversed, a transfer can’t be reversed again. This method will + * return an error when called on an already-reversed transfer, or when trying to + * reverse more money than is left on a transfer. + * + * @param string $parentId + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\TransferReversal + */ + public function createReversal($parentId, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/transfers/%s/reversals', $parentId), $params, $opts); + } + + /** + * Retrieves the details of an existing transfer. Supply the unique transfer ID + * from either a transfer creation request or the transfer list, and Stripe will + * return the corresponding transfer information. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Transfer + */ + public function retrieve($id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/transfers/%s', $id), $params, $opts); + } + + /** + * By default, you can see the 10 most recent reversals stored directly on the + * transfer object, but you can also retrieve details about a specific reversal + * stored on the transfer. + * + * @param string $parentId + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\TransferReversal + */ + public function retrieveReversal($parentId, $id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/transfers/%s/reversals/%s', $parentId, $id), $params, $opts); + } + + /** + * Updates the specified transfer by setting the values of the parameters passed. + * Any parameters not provided will be left unchanged. + * + * This request accepts only metadata as an argument. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Transfer + */ + public function update($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/transfers/%s', $id), $params, $opts); + } + + /** + * Updates the specified reversal by setting the values of the parameters passed. + * Any parameters not provided will be left unchanged. + * + * This request only accepts metadata and description as arguments. + * + * @param string $parentId + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\TransferReversal + */ + public function updateReversal($parentId, $id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/transfers/%s/reversals/%s', $parentId, $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/Treasury/CreditReversalService.php b/vendor/stripe/stripe-php/lib/Service/Treasury/CreditReversalService.php new file mode 100644 index 0000000..5cd4222 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/Treasury/CreditReversalService.php @@ -0,0 +1,60 @@ + + */ + public function all($params = null, $opts = null) + { + return $this->requestCollection('get', '/v1/treasury/credit_reversals', $params, $opts); + } + + /** + * Reverses a ReceivedCredit and creates a CreditReversal object. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Treasury\CreditReversal + */ + public function create($params = null, $opts = null) + { + return $this->request('post', '/v1/treasury/credit_reversals', $params, $opts); + } + + /** + * Retrieves the details of an existing CreditReversal by passing the unique + * CreditReversal ID from either the CreditReversal creation request or + * CreditReversal list. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Treasury\CreditReversal + */ + public function retrieve($id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/treasury/credit_reversals/%s', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/Treasury/DebitReversalService.php b/vendor/stripe/stripe-php/lib/Service/Treasury/DebitReversalService.php new file mode 100644 index 0000000..cbeaa11 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/Treasury/DebitReversalService.php @@ -0,0 +1,58 @@ + + */ + public function all($params = null, $opts = null) + { + return $this->requestCollection('get', '/v1/treasury/debit_reversals', $params, $opts); + } + + /** + * Reverses a ReceivedDebit and creates a DebitReversal object. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Treasury\DebitReversal + */ + public function create($params = null, $opts = null) + { + return $this->request('post', '/v1/treasury/debit_reversals', $params, $opts); + } + + /** + * Retrieves a DebitReversal object. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Treasury\DebitReversal + */ + public function retrieve($id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/treasury/debit_reversals/%s', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/Treasury/FinancialAccountService.php b/vendor/stripe/stripe-php/lib/Service/Treasury/FinancialAccountService.php new file mode 100644 index 0000000..76187a6 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/Treasury/FinancialAccountService.php @@ -0,0 +1,125 @@ + + */ + public function all($params = null, $opts = null) + { + return $this->requestCollection('get', '/v1/treasury/financial_accounts', $params, $opts); + } + + /** + * Closes a FinancialAccount. A FinancialAccount can only be closed if it has a + * zero balance, has no pending InboundTransfers, and has canceled all attached + * Issuing cards. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Treasury\FinancialAccount + */ + public function close($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/treasury/financial_accounts/%s/close', $id), $params, $opts); + } + + /** + * Creates a new FinancialAccount. For now, each connected account can only have + * one FinancialAccount. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Treasury\FinancialAccount + */ + public function create($params = null, $opts = null) + { + return $this->request('post', '/v1/treasury/financial_accounts', $params, $opts); + } + + /** + * Retrieves the details of a FinancialAccount. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Treasury\FinancialAccount + */ + public function retrieve($id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/treasury/financial_accounts/%s', $id), $params, $opts); + } + + /** + * Retrieves Features information associated with the FinancialAccount. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Treasury\FinancialAccountFeatures + */ + public function retrieveFeatures($id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/treasury/financial_accounts/%s/features', $id), $params, $opts); + } + + /** + * Updates the details of a FinancialAccount. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Treasury\FinancialAccount + */ + public function update($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/treasury/financial_accounts/%s', $id), $params, $opts); + } + + /** + * Updates the Features associated with a FinancialAccount. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Treasury\FinancialAccountFeatures + */ + public function updateFeatures($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/treasury/financial_accounts/%s/features', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/Treasury/InboundTransferService.php b/vendor/stripe/stripe-php/lib/Service/Treasury/InboundTransferService.php new file mode 100644 index 0000000..95c7fdc --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/Treasury/InboundTransferService.php @@ -0,0 +1,74 @@ + + */ + public function all($params = null, $opts = null) + { + return $this->requestCollection('get', '/v1/treasury/inbound_transfers', $params, $opts); + } + + /** + * Cancels an InboundTransfer. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Treasury\InboundTransfer + */ + public function cancel($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/treasury/inbound_transfers/%s/cancel', $id), $params, $opts); + } + + /** + * Creates an InboundTransfer. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Treasury\InboundTransfer + */ + public function create($params = null, $opts = null) + { + return $this->request('post', '/v1/treasury/inbound_transfers', $params, $opts); + } + + /** + * Retrieves the details of an existing InboundTransfer. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Treasury\InboundTransfer + */ + public function retrieve($id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/treasury/inbound_transfers/%s', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/Treasury/OutboundPaymentService.php b/vendor/stripe/stripe-php/lib/Service/Treasury/OutboundPaymentService.php new file mode 100644 index 0000000..53a5e02 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/Treasury/OutboundPaymentService.php @@ -0,0 +1,76 @@ + + */ + public function all($params = null, $opts = null) + { + return $this->requestCollection('get', '/v1/treasury/outbound_payments', $params, $opts); + } + + /** + * Cancel an OutboundPayment. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Treasury\OutboundPayment + */ + public function cancel($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/treasury/outbound_payments/%s/cancel', $id), $params, $opts); + } + + /** + * Creates an OutboundPayment. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Treasury\OutboundPayment + */ + public function create($params = null, $opts = null) + { + return $this->request('post', '/v1/treasury/outbound_payments', $params, $opts); + } + + /** + * Retrieves the details of an existing OutboundPayment by passing the unique + * OutboundPayment ID from either the OutboundPayment creation request or + * OutboundPayment list. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Treasury\OutboundPayment + */ + public function retrieve($id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/treasury/outbound_payments/%s', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/Treasury/OutboundTransferService.php b/vendor/stripe/stripe-php/lib/Service/Treasury/OutboundTransferService.php new file mode 100644 index 0000000..0b2a273 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/Treasury/OutboundTransferService.php @@ -0,0 +1,76 @@ + + */ + public function all($params = null, $opts = null) + { + return $this->requestCollection('get', '/v1/treasury/outbound_transfers', $params, $opts); + } + + /** + * An OutboundTransfer can be canceled if the funds have not yet been paid out. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Treasury\OutboundTransfer + */ + public function cancel($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/treasury/outbound_transfers/%s/cancel', $id), $params, $opts); + } + + /** + * Creates an OutboundTransfer. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Treasury\OutboundTransfer + */ + public function create($params = null, $opts = null) + { + return $this->request('post', '/v1/treasury/outbound_transfers', $params, $opts); + } + + /** + * Retrieves the details of an existing OutboundTransfer by passing the unique + * OutboundTransfer ID from either the OutboundTransfer creation request or + * OutboundTransfer list. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Treasury\OutboundTransfer + */ + public function retrieve($id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/treasury/outbound_transfers/%s', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/Treasury/ReceivedCreditService.php b/vendor/stripe/stripe-php/lib/Service/Treasury/ReceivedCreditService.php new file mode 100644 index 0000000..8c74126 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/Treasury/ReceivedCreditService.php @@ -0,0 +1,44 @@ + + */ + public function all($params = null, $opts = null) + { + return $this->requestCollection('get', '/v1/treasury/received_credits', $params, $opts); + } + + /** + * Retrieves the details of an existing ReceivedCredit by passing the unique + * ReceivedCredit ID from the ReceivedCredit list. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Treasury\ReceivedCredit + */ + public function retrieve($id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/treasury/received_credits/%s', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/Treasury/ReceivedDebitService.php b/vendor/stripe/stripe-php/lib/Service/Treasury/ReceivedDebitService.php new file mode 100644 index 0000000..8d85688 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/Treasury/ReceivedDebitService.php @@ -0,0 +1,44 @@ + + */ + public function all($params = null, $opts = null) + { + return $this->requestCollection('get', '/v1/treasury/received_debits', $params, $opts); + } + + /** + * Retrieves the details of an existing ReceivedDebit by passing the unique + * ReceivedDebit ID from the ReceivedDebit list. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Treasury\ReceivedDebit + */ + public function retrieve($id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/treasury/received_debits/%s', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/Treasury/TransactionEntryService.php b/vendor/stripe/stripe-php/lib/Service/Treasury/TransactionEntryService.php new file mode 100644 index 0000000..52af51d --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/Treasury/TransactionEntryService.php @@ -0,0 +1,43 @@ + + */ + public function all($params = null, $opts = null) + { + return $this->requestCollection('get', '/v1/treasury/transaction_entries', $params, $opts); + } + + /** + * Retrieves a TransactionEntry object. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Treasury\TransactionEntry + */ + public function retrieve($id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/treasury/transaction_entries/%s', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/Treasury/TransactionService.php b/vendor/stripe/stripe-php/lib/Service/Treasury/TransactionService.php new file mode 100644 index 0000000..11eb6a5 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/Treasury/TransactionService.php @@ -0,0 +1,43 @@ + + */ + public function all($params = null, $opts = null) + { + return $this->requestCollection('get', '/v1/treasury/transactions', $params, $opts); + } + + /** + * Retrieves the details of an existing Transaction. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Treasury\Transaction + */ + public function retrieve($id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/treasury/transactions/%s', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/Treasury/TreasuryServiceFactory.php b/vendor/stripe/stripe-php/lib/Service/Treasury/TreasuryServiceFactory.php new file mode 100644 index 0000000..a2a2622 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/Treasury/TreasuryServiceFactory.php @@ -0,0 +1,43 @@ + + */ + private static $classMap = [ + 'creditReversals' => CreditReversalService::class, + 'debitReversals' => DebitReversalService::class, + 'financialAccounts' => FinancialAccountService::class, + 'inboundTransfers' => InboundTransferService::class, + 'outboundPayments' => OutboundPaymentService::class, + 'outboundTransfers' => OutboundTransferService::class, + 'receivedCredits' => ReceivedCreditService::class, + 'receivedDebits' => ReceivedDebitService::class, + 'transactionEntries' => TransactionEntryService::class, + 'transactions' => TransactionService::class, + ]; + + protected function getServiceClass($name) + { + return \array_key_exists($name, self::$classMap) ? self::$classMap[$name] : null; + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/V2/Billing/BillingServiceFactory.php b/vendor/stripe/stripe-php/lib/Service/V2/Billing/BillingServiceFactory.php new file mode 100644 index 0000000..d24e45c --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/V2/Billing/BillingServiceFactory.php @@ -0,0 +1,31 @@ + + */ + private static $classMap = [ + 'meterEventAdjustments' => MeterEventAdjustmentService::class, + 'meterEvents' => MeterEventService::class, + 'meterEventSession' => MeterEventSessionService::class, + 'meterEventStream' => MeterEventStreamService::class, + ]; + + protected function getServiceClass($name) + { + return \array_key_exists($name, self::$classMap) ? self::$classMap[$name] : null; + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/V2/Billing/MeterEventAdjustmentService.php b/vendor/stripe/stripe-php/lib/Service/V2/Billing/MeterEventAdjustmentService.php new file mode 100644 index 0000000..c3c542e --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/V2/Billing/MeterEventAdjustmentService.php @@ -0,0 +1,27 @@ +request('post', '/v2/billing/meter_event_adjustments', $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/V2/Billing/MeterEventService.php b/vendor/stripe/stripe-php/lib/Service/V2/Billing/MeterEventService.php new file mode 100644 index 0000000..7a13a19 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/V2/Billing/MeterEventService.php @@ -0,0 +1,29 @@ +request('post', '/v2/billing/meter_events', $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/V2/Billing/MeterEventSessionService.php b/vendor/stripe/stripe-php/lib/Service/V2/Billing/MeterEventSessionService.php new file mode 100644 index 0000000..d1ca99d --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/V2/Billing/MeterEventSessionService.php @@ -0,0 +1,29 @@ +request('post', '/v2/billing/meter_event_session', $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/V2/Billing/MeterEventStreamService.php b/vendor/stripe/stripe-php/lib/Service/V2/Billing/MeterEventStreamService.php new file mode 100644 index 0000000..e4ae2b7 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/V2/Billing/MeterEventStreamService.php @@ -0,0 +1,33 @@ +apiBase)) { + $opts->apiBase = $this->getClient()->getMeterEventsBase(); + } + $this->request('post', '/v2/billing/meter_event_stream', $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/V2/Core/CoreServiceFactory.php b/vendor/stripe/stripe-php/lib/Service/V2/Core/CoreServiceFactory.php new file mode 100644 index 0000000..c263897 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/V2/Core/CoreServiceFactory.php @@ -0,0 +1,29 @@ + + */ + private static $classMap = [ + // Class Map: The beginning of the section generated from our OpenAPI spec + 'eventDestinations' => EventDestinationService::class, + 'events' => EventService::class, + // Class Map: The end of the section generated from our OpenAPI spec + ]; + + protected function getServiceClass($name) + { + return \array_key_exists($name, self::$classMap) ? self::$classMap[$name] : null; + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/V2/Core/EventDestinationService.php b/vendor/stripe/stripe-php/lib/Service/V2/Core/EventDestinationService.php new file mode 100644 index 0000000..b633967 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/V2/Core/EventDestinationService.php @@ -0,0 +1,138 @@ + + */ + public function all($params = null, $opts = null) + { + return $this->requestCollection('get', '/v2/core/event_destinations', $params, $opts); + } + + /** + * Create a new event destination. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\V2\EventDestination + */ + public function create($params = null, $opts = null) + { + return $this->request('post', '/v2/core/event_destinations', $params, $opts); + } + + /** + * Delete an event destination. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\V2\EventDestination + */ + public function delete($id, $params = null, $opts = null) + { + return $this->request('delete', $this->buildPath('/v2/core/event_destinations/%s', $id), $params, $opts); + } + + /** + * Disable an event destination. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\V2\EventDestination + */ + public function disable($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v2/core/event_destinations/%s/disable', $id), $params, $opts); + } + + /** + * Enable an event destination. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\V2\EventDestination + */ + public function enable($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v2/core/event_destinations/%s/enable', $id), $params, $opts); + } + + /** + * Send a `ping` event to an event destination. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\V2\Event + */ + public function ping($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v2/core/event_destinations/%s/ping', $id), $params, $opts); + } + + /** + * Retrieves the details of an event destination. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\V2\EventDestination + */ + public function retrieve($id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v2/core/event_destinations/%s', $id), $params, $opts); + } + + /** + * Update the details of an event destination. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\V2\EventDestination + */ + public function update($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v2/core/event_destinations/%s', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/V2/Core/EventService.php b/vendor/stripe/stripe-php/lib/Service/V2/Core/EventService.php new file mode 100644 index 0000000..fdc5aaa --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/V2/Core/EventService.php @@ -0,0 +1,43 @@ + + */ + public function all($params = null, $opts = null) + { + return $this->requestCollection('get', '/v2/core/events', $params, $opts); + } + + /** + * Retrieves the details of an event. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\V2\Event + */ + public function retrieve($id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v2/core/events/%s', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/V2/V2ServiceFactory.php b/vendor/stripe/stripe-php/lib/Service/V2/V2ServiceFactory.php new file mode 100644 index 0000000..f16fe62 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/V2/V2ServiceFactory.php @@ -0,0 +1,27 @@ + + */ + private static $classMap = [ + 'billing' => Billing\BillingServiceFactory::class, + 'core' => Core\CoreServiceFactory::class, + ]; + + protected function getServiceClass($name) + { + return \array_key_exists($name, self::$classMap) ? self::$classMap[$name] : null; + } +} diff --git a/vendor/stripe/stripe-php/lib/Service/WebhookEndpointService.php b/vendor/stripe/stripe-php/lib/Service/WebhookEndpointService.php new file mode 100644 index 0000000..913f01a --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Service/WebhookEndpointService.php @@ -0,0 +1,101 @@ + + */ + public function all($params = null, $opts = null) + { + return $this->requestCollection('get', '/v1/webhook_endpoints', $params, $opts); + } + + /** + * A webhook endpoint must have a url and a list of + * enabled_events. You may optionally specify the Boolean + * connect parameter. If set to true, then a Connect webhook endpoint + * that notifies the specified url about events from all connected + * accounts is created; otherwise an account webhook endpoint that notifies the + * specified url only about events from your account is created. You + * can also create webhook endpoints in the webhooks settings + * section of the Dashboard. + * + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\WebhookEndpoint + */ + public function create($params = null, $opts = null) + { + return $this->request('post', '/v1/webhook_endpoints', $params, $opts); + } + + /** + * You can also delete webhook endpoints via the webhook endpoint + * management page of the Stripe dashboard. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\WebhookEndpoint + */ + public function delete($id, $params = null, $opts = null) + { + return $this->request('delete', $this->buildPath('/v1/webhook_endpoints/%s', $id), $params, $opts); + } + + /** + * Retrieves the webhook endpoint with the given ID. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\WebhookEndpoint + */ + public function retrieve($id, $params = null, $opts = null) + { + return $this->request('get', $this->buildPath('/v1/webhook_endpoints/%s', $id), $params, $opts); + } + + /** + * Updates the webhook endpoint. You may edit the url, the list of + * enabled_events, and the status of your endpoint. + * + * @param string $id + * @param null|array $params + * @param null|RequestOptionsArray|\Stripe\Util\RequestOptions $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\WebhookEndpoint + */ + public function update($id, $params = null, $opts = null) + { + return $this->request('post', $this->buildPath('/v1/webhook_endpoints/%s', $id), $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/SetupAttempt.php b/vendor/stripe/stripe-php/lib/SetupAttempt.php new file mode 100644 index 0000000..e766c9b --- /dev/null +++ b/vendor/stripe/stripe-php/lib/SetupAttempt.php @@ -0,0 +1,49 @@ +application on the SetupIntent at the time of this confirmation. + * @property null|bool $attach_to_self

    If present, the SetupIntent's payment method will be attached to the in-context Stripe Account.

    It can only be used for this Stripe Account’s own money movement flows like InboundTransfer and OutboundTransfers. It cannot be set to true when setting up a PaymentMethod for a Customer, and defaults to false when attaching a PaymentMethod to a Customer.

    + * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch. + * @property null|string|\Stripe\Customer $customer The value of customer on the SetupIntent at the time of this confirmation. + * @property null|string[] $flow_directions

    Indicates the directions of money movement for which this payment method is intended to be used.

    Include inbound if you intend to use the payment method as the origin to pull funds from. Include outbound if you intend to use the payment method as the destination to send funds to. You can include both if you intend to use the payment method for both purposes.

    + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + * @property null|string|\Stripe\Account $on_behalf_of The value of on_behalf_of on the SetupIntent at the time of this confirmation. + * @property string|\Stripe\PaymentMethod $payment_method ID of the payment method used with this SetupAttempt. + * @property \Stripe\StripeObject $payment_method_details + * @property null|\Stripe\StripeObject $setup_error The error encountered during this attempt to confirm the SetupIntent, if any. + * @property string|\Stripe\SetupIntent $setup_intent ID of the SetupIntent that this attempt belongs to. + * @property string $status Status of this SetupAttempt, one of requires_confirmation, requires_action, processing, succeeded, failed, or abandoned. + * @property string $usage The value of usage on the SetupIntent at the time of this confirmation, one of off_session or on_session. + */ +class SetupAttempt extends ApiResource +{ + const OBJECT_NAME = 'setup_attempt'; + + /** + * Returns a list of SetupAttempts that associate with a provided SetupIntent. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\SetupAttempt> of ApiResources + */ + public static function all($params = null, $opts = null) + { + $url = static::classUrl(); + + return static::_requestPage($url, \Stripe\Collection::class, $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/SetupIntent.php b/vendor/stripe/stripe-php/lib/SetupIntent.php new file mode 100644 index 0000000..d4010f4 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/SetupIntent.php @@ -0,0 +1,215 @@ +PaymentIntents to drive the payment flow. + * + * Create a SetupIntent when you're ready to collect your customer's payment credentials. + * Don't maintain long-lived, unconfirmed SetupIntents because they might not be valid. + * The SetupIntent transitions through multiple statuses as it guides + * you through the setup process. + * + * Successful SetupIntents result in payment credentials that are optimized for future payments. + * For example, cardholders in certain regions might need to be run through + * Strong Customer Authentication during payment method collection + * to streamline later off-session payments. + * If you use the SetupIntent with a Customer, + * it automatically attaches the resulting payment method to that Customer after successful setup. + * We recommend using SetupIntents or setup_future_usage on + * PaymentIntents to save payment methods to prevent saving invalid or unoptimized payment methods. + * + * By using SetupIntents, you can reduce friction for your customers, even as regulations change over time. + * + * Related guide: Setup Intents API + * + * @property string $id Unique identifier for the object. + * @property string $object String representing the object's type. Objects of the same type share the same value. + * @property null|string|\Stripe\Application $application ID of the Connect application that created the SetupIntent. + * @property null|bool $attach_to_self

    If present, the SetupIntent's payment method will be attached to the in-context Stripe Account.

    It can only be used for this Stripe Account’s own money movement flows like InboundTransfer and OutboundTransfers. It cannot be set to true when setting up a PaymentMethod for a Customer, and defaults to false when attaching a PaymentMethod to a Customer.

    + * @property null|\Stripe\StripeObject $automatic_payment_methods Settings for dynamic payment methods compatible with this Setup Intent + * @property null|string $cancellation_reason Reason for cancellation of this SetupIntent, one of abandoned, requested_by_customer, or duplicate. + * @property null|string $client_secret

    The client secret of this SetupIntent. Used for client-side retrieval using a publishable key.

    The client secret can be used to complete payment setup from your frontend. It should not be stored, logged, or exposed to anyone other than the customer. Make sure that you have TLS enabled on any page that includes the client secret.

    + * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch. + * @property null|string|\Stripe\Customer $customer

    ID of the Customer this SetupIntent belongs to, if one exists.

    If present, the SetupIntent's payment method will be attached to the Customer on successful setup. Payment methods attached to other Customers cannot be used with this SetupIntent.

    + * @property null|string $description An arbitrary string attached to the object. Often useful for displaying to users. + * @property null|string[] $flow_directions

    Indicates the directions of money movement for which this payment method is intended to be used.

    Include inbound if you intend to use the payment method as the origin to pull funds from. Include outbound if you intend to use the payment method as the destination to send funds to. You can include both if you intend to use the payment method for both purposes.

    + * @property null|\Stripe\StripeObject $last_setup_error The error encountered in the previous SetupIntent confirmation. + * @property null|string|\Stripe\SetupAttempt $latest_attempt The most recent SetupAttempt for this SetupIntent. + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + * @property null|string|\Stripe\Mandate $mandate ID of the multi use Mandate generated by the SetupIntent. + * @property null|\Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + * @property null|\Stripe\StripeObject $next_action If present, this property tells you what actions you need to take in order for your customer to continue payment setup. + * @property null|string|\Stripe\Account $on_behalf_of The account (if any) for which the setup is intended. + * @property null|string|\Stripe\PaymentMethod $payment_method ID of the payment method used with this SetupIntent. If the payment method is card_present and isn't a digital wallet, then the generated_card associated with the latest_attempt is attached to the Customer instead. + * @property null|\Stripe\StripeObject $payment_method_configuration_details Information about the payment method configuration used for this Setup Intent. + * @property null|\Stripe\StripeObject $payment_method_options Payment method-specific configuration for this SetupIntent. + * @property string[] $payment_method_types The list of payment method types (e.g. card) that this SetupIntent is allowed to set up. + * @property null|string|\Stripe\Mandate $single_use_mandate ID of the single_use Mandate generated by the SetupIntent. + * @property string $status Status of this SetupIntent, one of requires_payment_method, requires_confirmation, requires_action, processing, canceled, or succeeded. + * @property string $usage

    Indicates how the payment method is intended to be used in the future.

    Use on_session if you intend to only reuse the payment method when the customer is in your checkout flow. Use off_session if your customer may or may not be in your checkout flow. If not provided, this value defaults to off_session.

    + */ +class SetupIntent extends ApiResource +{ + const OBJECT_NAME = 'setup_intent'; + + use ApiOperations\Update; + + const CANCELLATION_REASON_ABANDONED = 'abandoned'; + const CANCELLATION_REASON_DUPLICATE = 'duplicate'; + const CANCELLATION_REASON_REQUESTED_BY_CUSTOMER = 'requested_by_customer'; + + const STATUS_CANCELED = 'canceled'; + const STATUS_PROCESSING = 'processing'; + const STATUS_REQUIRES_ACTION = 'requires_action'; + const STATUS_REQUIRES_CONFIRMATION = 'requires_confirmation'; + const STATUS_REQUIRES_PAYMENT_METHOD = 'requires_payment_method'; + const STATUS_SUCCEEDED = 'succeeded'; + + /** + * Creates a SetupIntent object. + * + * After you create the SetupIntent, attach a payment method and confirm it to collect any required + * permissions to charge the payment method later. + * + * @param null|array $params + * @param null|array|string $options + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\SetupIntent the created resource + */ + public static function create($params = null, $options = null) + { + self::_validateParams($params); + $url = static::classUrl(); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $options); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * Returns a list of SetupIntents. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\SetupIntent> of ApiResources + */ + public static function all($params = null, $opts = null) + { + $url = static::classUrl(); + + return static::_requestPage($url, \Stripe\Collection::class, $params, $opts); + } + + /** + * Retrieves the details of a SetupIntent that has previously been created. + * + * Client-side retrieval using a publishable key is allowed when the + * client_secret is provided in the query string. + * + * When retrieved with a publishable key, only a subset of properties will be + * returned. Please refer to the SetupIntent + * object reference for more details. + * + * @param array|string $id the ID of the API resource to retrieve, or an options array containing an `id` key + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\SetupIntent + */ + public static function retrieve($id, $opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + $instance = new static($id, $opts); + $instance->refresh(); + + return $instance; + } + + /** + * Updates a SetupIntent object. + * + * @param string $id the ID of the resource to update + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\SetupIntent the updated resource + */ + public static function update($id, $params = null, $opts = null) + { + self::_validateParams($params); + $url = static::resourceUrl($id); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $opts); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\SetupIntent the canceled setup intent + */ + public function cancel($params = null, $opts = null) + { + $url = $this->instanceUrl() . '/cancel'; + list($response, $opts) = $this->_request('post', $url, $params, $opts); + $this->refreshFrom($response, $opts); + + return $this; + } + + /** + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\SetupIntent the confirmed setup intent + */ + public function confirm($params = null, $opts = null) + { + $url = $this->instanceUrl() . '/confirm'; + list($response, $opts) = $this->_request('post', $url, $params, $opts); + $this->refreshFrom($response, $opts); + + return $this; + } + + /** + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\SetupIntent the verified setup intent + */ + public function verifyMicrodeposits($params = null, $opts = null) + { + $url = $this->instanceUrl() . '/verify_microdeposits'; + list($response, $opts) = $this->_request('post', $url, $params, $opts); + $this->refreshFrom($response, $opts); + + return $this; + } +} diff --git a/vendor/stripe/stripe-php/lib/ShippingRate.php b/vendor/stripe/stripe-php/lib/ShippingRate.php new file mode 100644 index 0000000..e90b40c --- /dev/null +++ b/vendor/stripe/stripe-php/lib/ShippingRate.php @@ -0,0 +1,116 @@ +Charge for shipping. + * + * @property string $id Unique identifier for the object. + * @property string $object String representing the object's type. Objects of the same type share the same value. + * @property bool $active Whether the shipping rate can be used for new purchases. Defaults to true. + * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch. + * @property null|\Stripe\StripeObject $delivery_estimate The estimated range for how long shipping will take, meant to be displayable to the customer. This will appear on CheckoutSessions. + * @property null|string $display_name The name of the shipping rate, meant to be displayable to the customer. This will appear on CheckoutSessions. + * @property null|\Stripe\StripeObject $fixed_amount + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + * @property \Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + * @property null|string $tax_behavior Specifies whether the rate is considered inclusive of taxes or exclusive of taxes. One of inclusive, exclusive, or unspecified. + * @property null|string|\Stripe\TaxCode $tax_code A tax code ID. The Shipping tax code is txcd_92010001. + * @property string $type The type of calculation to use on the shipping rate. + */ +class ShippingRate extends ApiResource +{ + const OBJECT_NAME = 'shipping_rate'; + + use ApiOperations\Update; + + const TAX_BEHAVIOR_EXCLUSIVE = 'exclusive'; + const TAX_BEHAVIOR_INCLUSIVE = 'inclusive'; + const TAX_BEHAVIOR_UNSPECIFIED = 'unspecified'; + + const TYPE_FIXED_AMOUNT = 'fixed_amount'; + + /** + * Creates a new shipping rate object. + * + * @param null|array $params + * @param null|array|string $options + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\ShippingRate the created resource + */ + public static function create($params = null, $options = null) + { + self::_validateParams($params); + $url = static::classUrl(); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $options); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * Returns a list of your shipping rates. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\ShippingRate> of ApiResources + */ + public static function all($params = null, $opts = null) + { + $url = static::classUrl(); + + return static::_requestPage($url, \Stripe\Collection::class, $params, $opts); + } + + /** + * Returns the shipping rate object with the given ID. + * + * @param array|string $id the ID of the API resource to retrieve, or an options array containing an `id` key + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\ShippingRate + */ + public static function retrieve($id, $opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + $instance = new static($id, $opts); + $instance->refresh(); + + return $instance; + } + + /** + * Updates an existing shipping rate object. + * + * @param string $id the ID of the resource to update + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\ShippingRate the updated resource + */ + public static function update($id, $params = null, $opts = null) + { + self::_validateParams($params); + $url = static::resourceUrl($id); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $opts); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } +} diff --git a/vendor/stripe/stripe-php/lib/Sigma/ScheduledQueryRun.php b/vendor/stripe/stripe-php/lib/Sigma/ScheduledQueryRun.php new file mode 100644 index 0000000..5efd1cd --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Sigma/ScheduledQueryRun.php @@ -0,0 +1,69 @@ +scheduled a Sigma query, you'll + * receive a sigma.scheduled_query_run.created webhook each time the query + * runs. The webhook contains a ScheduledQueryRun object, which you can use to + * retrieve the query results. + * + * @property string $id Unique identifier for the object. + * @property string $object String representing the object's type. Objects of the same type share the same value. + * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch. + * @property int $data_load_time When the query was run, Sigma contained a snapshot of your Stripe data at this time. + * @property null|\Stripe\StripeObject $error + * @property null|\Stripe\File $file The file object representing the results of the query. + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + * @property int $result_available_until Time at which the result expires and is no longer available for download. + * @property string $sql SQL for the query. + * @property string $status The query's execution status, which will be completed for successful runs, and canceled, failed, or timed_out otherwise. + * @property string $title Title of the query. + */ +class ScheduledQueryRun extends \Stripe\ApiResource +{ + const OBJECT_NAME = 'scheduled_query_run'; + + /** + * Returns a list of scheduled query runs. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\Sigma\ScheduledQueryRun> of ApiResources + */ + public static function all($params = null, $opts = null) + { + $url = static::classUrl(); + + return static::_requestPage($url, \Stripe\Collection::class, $params, $opts); + } + + /** + * Retrieves the details of an scheduled query run. + * + * @param array|string $id the ID of the API resource to retrieve, or an options array containing an `id` key + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Sigma\ScheduledQueryRun + */ + public static function retrieve($id, $opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + $instance = new static($id, $opts); + $instance->refresh(); + + return $instance; + } + + public static function classUrl() + { + return '/v1/sigma/scheduled_query_runs'; + } +} diff --git a/vendor/stripe/stripe-php/lib/SingletonApiResource.php b/vendor/stripe/stripe-php/lib/SingletonApiResource.php new file mode 100644 index 0000000..34dfa43 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/SingletonApiResource.php @@ -0,0 +1,31 @@ +Source objects allow you to accept a variety of payment methods. They + * represent a customer's payment instrument, and can be used with the Stripe API + * just like a Card object: once chargeable, they can be charged, or can be + * attached to customers. + * + * Stripe doesn't recommend using the deprecated Sources API. + * We recommend that you adopt the PaymentMethods API. + * This newer API provides access to our latest features and payment method types. + * + * Related guides: Sources API and Sources & Customers. + * + * @property string $id Unique identifier for the object. + * @property string $object String representing the object's type. Objects of the same type share the same value. + * @property null|\Stripe\StripeObject $ach_credit_transfer + * @property null|\Stripe\StripeObject $ach_debit + * @property null|\Stripe\StripeObject $acss_debit + * @property null|\Stripe\StripeObject $alipay + * @property null|string $allow_redisplay This field indicates whether this payment method can be shown again to its customer in a checkout flow. Stripe products such as Checkout and Elements use this field to determine whether a payment method can be shown as a saved payment method in a checkout flow. The field defaults to “unspecified”. + * @property null|int $amount A positive integer in the smallest currency unit (that is, 100 cents for $1.00, or 1 for ¥1, Japanese Yen being a zero-decimal currency) representing the total amount associated with the source. This is the amount for which the source will be chargeable once ready. Required for single_use sources. + * @property null|\Stripe\StripeObject $au_becs_debit + * @property null|\Stripe\StripeObject $bancontact + * @property null|\Stripe\StripeObject $card + * @property null|\Stripe\StripeObject $card_present + * @property string $client_secret The client secret of the source. Used for client-side retrieval using a publishable key. + * @property null|\Stripe\StripeObject $code_verification + * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch. + * @property null|string $currency Three-letter ISO code for the currency associated with the source. This is the currency for which the source will be chargeable once ready. Required for single_use sources. + * @property null|string $customer The ID of the customer to which this source is attached. This will not be present when the source has not been attached to a customer. + * @property null|\Stripe\StripeObject $eps + * @property string $flow The authentication flow of the source. flow is one of redirect, receiver, code_verification, none. + * @property null|\Stripe\StripeObject $giropay + * @property null|\Stripe\StripeObject $ideal + * @property null|\Stripe\StripeObject $klarna + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + * @property null|\Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + * @property null|\Stripe\StripeObject $multibanco + * @property null|\Stripe\StripeObject $owner Information about the owner of the payment instrument that may be used or required by particular source types. + * @property null|\Stripe\StripeObject $p24 + * @property null|\Stripe\StripeObject $receiver + * @property null|\Stripe\StripeObject $redirect + * @property null|\Stripe\StripeObject $sepa_credit_transfer + * @property null|\Stripe\StripeObject $sepa_debit + * @property null|\Stripe\StripeObject $sofort + * @property null|\Stripe\StripeObject $source_order + * @property null|string $statement_descriptor Extra information about a source. This will appear on your customer's statement every time you charge the source. + * @property string $status The status of the source, one of canceled, chargeable, consumed, failed, or pending. Only chargeable sources can be used to create a charge. + * @property null|\Stripe\StripeObject $three_d_secure + * @property string $type The type of the source. The type is a payment method, one of ach_credit_transfer, ach_debit, alipay, bancontact, card, card_present, eps, giropay, ideal, multibanco, klarna, p24, sepa_debit, sofort, three_d_secure, or wechat. An additional hash is included on the source with a name matching this value. It contains additional information specific to the payment method used. + * @property null|string $usage Either reusable or single_use. Whether this source should be reusable or not. Some source types may or may not be reusable by construction, while others may leave the option at creation. If an incompatible value is passed, an error will be returned. + * @property null|\Stripe\StripeObject $wechat + */ +class Source extends ApiResource +{ + const OBJECT_NAME = 'source'; + + use ApiOperations\Update; + + const ALLOW_REDISPLAY_ALWAYS = 'always'; + const ALLOW_REDISPLAY_LIMITED = 'limited'; + const ALLOW_REDISPLAY_UNSPECIFIED = 'unspecified'; + + const FLOW_CODE_VERIFICATION = 'code_verification'; + const FLOW_NONE = 'none'; + const FLOW_RECEIVER = 'receiver'; + const FLOW_REDIRECT = 'redirect'; + + const STATUS_CANCELED = 'canceled'; + const STATUS_CHARGEABLE = 'chargeable'; + const STATUS_CONSUMED = 'consumed'; + const STATUS_FAILED = 'failed'; + const STATUS_PENDING = 'pending'; + + const TYPE_ACH_CREDIT_TRANSFER = 'ach_credit_transfer'; + const TYPE_ACH_DEBIT = 'ach_debit'; + const TYPE_ACSS_DEBIT = 'acss_debit'; + const TYPE_ALIPAY = 'alipay'; + const TYPE_AU_BECS_DEBIT = 'au_becs_debit'; + const TYPE_BANCONTACT = 'bancontact'; + const TYPE_CARD = 'card'; + const TYPE_CARD_PRESENT = 'card_present'; + const TYPE_EPS = 'eps'; + const TYPE_GIROPAY = 'giropay'; + const TYPE_IDEAL = 'ideal'; + const TYPE_KLARNA = 'klarna'; + const TYPE_MULTIBANCO = 'multibanco'; + const TYPE_P24 = 'p24'; + const TYPE_SEPA_CREDIT_TRANSFER = 'sepa_credit_transfer'; + const TYPE_SEPA_DEBIT = 'sepa_debit'; + const TYPE_SOFORT = 'sofort'; + const TYPE_THREE_D_SECURE = 'three_d_secure'; + const TYPE_WECHAT = 'wechat'; + + const USAGE_REUSABLE = 'reusable'; + const USAGE_SINGLE_USE = 'single_use'; + + /** + * Creates a new source object. + * + * @param null|array $params + * @param null|array|string $options + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Source the created resource + */ + public static function create($params = null, $options = null) + { + self::_validateParams($params); + $url = static::classUrl(); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $options); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * Retrieves an existing source object. Supply the unique source ID from a source + * creation request and Stripe will return the corresponding up-to-date source + * object information. + * + * @param array|string $id the ID of the API resource to retrieve, or an options array containing an `id` key + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Source + */ + public static function retrieve($id, $opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + $instance = new static($id, $opts); + $instance->refresh(); + + return $instance; + } + + /** + * Updates the specified source by setting the values of the parameters passed. Any + * parameters not provided will be left unchanged. + * + * This request accepts the metadata and owner as + * arguments. It is also possible to update type specific information for selected + * payment methods. Please refer to our payment method + * guides for more detail. + * + * @param string $id the ID of the resource to update + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Source the updated resource + */ + public static function update($id, $params = null, $opts = null) + { + self::_validateParams($params); + $url = static::resourceUrl($id); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $opts); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + use ApiOperations\NestedResource; + + /** + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\UnexpectedValueException if the source is not attached to a customer + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Source the detached source + */ + public function detach($params = null, $opts = null) + { + self::_validateParams($params); + + $id = $this['id']; + if (!$id) { + $class = static::class; + $msg = "Could not determine which URL to request: {$class} instance " + . "has invalid ID: {$id}"; + + throw new Exception\UnexpectedValueException($msg, null); + } + + if ($this['customer']) { + $base = Customer::classUrl(); + $parentExtn = \urlencode(Util\Util::utf8($this['customer'])); + $extn = \urlencode(Util\Util::utf8($id)); + $url = "{$base}/{$parentExtn}/sources/{$extn}"; + + list($response, $opts) = $this->_request('delete', $url, $params, $opts); + $this->refreshFrom($response, $opts); + + return $this; + } + $message = 'This source object does not appear to be currently attached ' + . 'to a customer object.'; + + throw new Exception\UnexpectedValueException($message); + } + + /** + * @param string $id + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\SourceTransaction> list of source transactions + */ + public static function allSourceTransactions($id, $params = null, $opts = null) + { + $url = static::resourceUrl($id) . '/source_transactions'; + list($response, $opts) = static::_staticRequest('get', $url, $params, $opts); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Source the verified source + */ + public function verify($params = null, $opts = null) + { + $url = $this->instanceUrl() . '/verify'; + list($response, $opts) = $this->_request('post', $url, $params, $opts); + $this->refreshFrom($response, $opts); + + return $this; + } +} diff --git a/vendor/stripe/stripe-php/lib/SourceMandateNotification.php b/vendor/stripe/stripe-php/lib/SourceMandateNotification.php new file mode 100644 index 0000000..1196052 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/SourceMandateNotification.php @@ -0,0 +1,28 @@ +debit_initiated. + * @property null|\Stripe\StripeObject $bacs_debit + * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch. + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + * @property string $reason The reason of the mandate notification. Valid reasons are mandate_confirmed or debit_initiated. + * @property null|\Stripe\StripeObject $sepa_debit + * @property \Stripe\Source $source

    Source objects allow you to accept a variety of payment methods. They represent a customer's payment instrument, and can be used with the Stripe API just like a Card object: once chargeable, they can be charged, or can be attached to customers.

    Stripe doesn't recommend using the deprecated Sources API. We recommend that you adopt the PaymentMethods API. This newer API provides access to our latest features and payment method types.

    Related guides: Sources API and Sources & Customers.

    + * @property string $status The status of the mandate notification. Valid statuses are pending or submitted. + * @property string $type The type of source this mandate notification is attached to. Should be the source type identifier code for the payment method, such as three_d_secure. + */ +class SourceMandateNotification extends ApiResource +{ + const OBJECT_NAME = 'source_mandate_notification'; +} diff --git a/vendor/stripe/stripe-php/lib/SourceTransaction.php b/vendor/stripe/stripe-php/lib/SourceTransaction.php new file mode 100644 index 0000000..38c218e --- /dev/null +++ b/vendor/stripe/stripe-php/lib/SourceTransaction.php @@ -0,0 +1,48 @@ +ISO currency code, in lowercase. Must be a supported currency. + * @property null|\Stripe\StripeObject $gbp_credit_transfer + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + * @property null|\Stripe\StripeObject $paper_check + * @property null|\Stripe\StripeObject $sepa_credit_transfer + * @property string $source The ID of the source this transaction is attached to. + * @property string $status The status of the transaction, one of succeeded, pending, or failed. + * @property string $type The type of source this transaction is attached to. + */ +class SourceTransaction extends ApiResource +{ + const OBJECT_NAME = 'source_transaction'; + + const TYPE_ACH_CREDIT_TRANSFER = 'ach_credit_transfer'; + const TYPE_ACH_DEBIT = 'ach_debit'; + const TYPE_ALIPAY = 'alipay'; + const TYPE_BANCONTACT = 'bancontact'; + const TYPE_CARD = 'card'; + const TYPE_CARD_PRESENT = 'card_present'; + const TYPE_EPS = 'eps'; + const TYPE_GIROPAY = 'giropay'; + const TYPE_IDEAL = 'ideal'; + const TYPE_KLARNA = 'klarna'; + const TYPE_MULTIBANCO = 'multibanco'; + const TYPE_P24 = 'p24'; + const TYPE_SEPA_DEBIT = 'sepa_debit'; + const TYPE_SOFORT = 'sofort'; + const TYPE_THREE_D_SECURE = 'three_d_secure'; + const TYPE_WECHAT = 'wechat'; +} diff --git a/vendor/stripe/stripe-php/lib/Stripe.php b/vendor/stripe/stripe-php/lib/Stripe.php new file mode 100644 index 0000000..f0df1e3 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Stripe.php @@ -0,0 +1,283 @@ +getService($name); + } + + public function getService($name) + { + if (null === $this->coreServiceFactory) { + $this->coreServiceFactory = new \Stripe\Service\CoreServiceFactory($this); + } + + return $this->coreServiceFactory->getService($name); + } +} diff --git a/vendor/stripe/stripe-php/lib/StripeClientInterface.php b/vendor/stripe/stripe-php/lib/StripeClientInterface.php new file mode 100644 index 0000000..a18308d --- /dev/null +++ b/vendor/stripe/stripe-php/lib/StripeClientInterface.php @@ -0,0 +1,21 @@ + "old_value"] + * + * If we update the object with `metadata[new]=new_value`, the server side + * object now has *both* fields: + * + * metadata = ["old" => "old_value", "new" => "new_value"] + * + * This is okay in itself because usually users will want to treat it as + * additive: + * + * $obj->metadata["new"] = "new_value"; + * $obj->save(); + * + * However, in other cases, they may want to replace the entire existing + * contents: + * + * $obj->metadata = ["new" => "new_value"]; + * $obj->save(); + * + * This is where things get a little bit tricky because in order to clear + * any old keys that may have existed, we actually have to send an explicit + * empty string to the server. So the operation above would have to send + * this form to get the intended behavior: + * + * metadata[old]=&metadata[new]=new_value + * + * This method allows us to track which parameters are considered additive, + * and lets us behave correctly where appropriate when serializing + * parameters to be sent. + * + * @return Util\Set Set of additive parameters + */ + public static function getAdditiveParams() + { + static $additiveParams = null; + if (null === $additiveParams) { + // Set `metadata` as additive so that when it's set directly we remember + // to clear keys that may have been previously set by sending empty + // values for them. + // + // It's possible that not every object has `metadata`, but having this + // option set when there is no `metadata` field is not harmful. + $additiveParams = new Util\Set([ + 'metadata', + ]); + } + + return $additiveParams; + } + + public function __construct($id = null, $opts = null) + { + list($id, $this->_retrieveOptions) = Util\Util::normalizeId($id); + $this->_opts = Util\RequestOptions::parse($opts); + $this->_originalValues = []; + $this->_values = []; + $this->_unsavedValues = new Util\Set(); + $this->_transientValues = new Util\Set(); + if (null !== $id) { + $this->_values['id'] = $id; + } + } + + // Standard accessor magic methods + public function __set($k, $v) + { + if (static::getPermanentAttributes()->includes($k)) { + throw new Exception\InvalidArgumentException( + "Cannot set {$k} on this object. HINT: you can't set: " . + \implode(', ', static::getPermanentAttributes()->toArray()) + ); + } + + if ('' === $v) { + throw new Exception\InvalidArgumentException( + 'You cannot set \'' . $k . '\'to an empty string. ' + . 'We interpret empty strings as NULL in requests. ' + . 'You may set obj->' . $k . ' = NULL to delete the property' + ); + } + + $this->_values[$k] = Util\Util::convertToStripeObject($v, $this->_opts); + $this->dirtyValue($this->_values[$k]); + $this->_unsavedValues->add($k); + } + + /** + * @param mixed $k + * + * @return bool + */ + public function __isset($k) + { + return isset($this->_values[$k]); + } + + public function __unset($k) + { + unset($this->_values[$k]); + $this->_transientValues->add($k); + $this->_unsavedValues->discard($k); + } + + public function &__get($k) + { + // function should return a reference, using $nullval to return a reference to null + $nullval = null; + if (!empty($this->_values) && \array_key_exists($k, $this->_values)) { + return $this->_values[$k]; + } + if (!empty($this->_transientValues) && $this->_transientValues->includes($k)) { + $class = static::class; + $attrs = \implode(', ', \array_keys($this->_values)); + $message = "Stripe Notice: Undefined property of {$class} instance: {$k}. " + . "HINT: The {$k} attribute was set in the past, however. " + . 'It was then wiped when refreshing the object ' + . "with the result returned by Stripe's API, " + . 'probably as a result of a save(). The attributes currently ' + . "available on this object are: {$attrs}"; + Stripe::getLogger()->error($message); + + return $nullval; + } + $class = static::class; + Stripe::getLogger()->error("Stripe Notice: Undefined property of {$class} instance: {$k}"); + + return $nullval; + } + + /** + * Magic method for var_dump output. Only works with PHP >= 5.6. + * + * @return array + */ + public function __debugInfo() + { + return $this->_values; + } + + // ArrayAccess methods + + /** + * @return void + */ + #[\ReturnTypeWillChange] + public function offsetSet($k, $v) + { + $this->{$k} = $v; + } + + /** + * @return bool + */ + #[\ReturnTypeWillChange] + public function offsetExists($k) + { + return \array_key_exists($k, $this->_values); + } + + /** + * @return void + */ + #[\ReturnTypeWillChange] + public function offsetUnset($k) + { + unset($this->{$k}); + } + + /** + * @return mixed + */ + #[\ReturnTypeWillChange] + public function offsetGet($k) + { + return \array_key_exists($k, $this->_values) ? $this->_values[$k] : null; + } + + /** + * @return int + */ + #[\ReturnTypeWillChange] + public function count() + { + return \count($this->_values); + } + + public function keys() + { + return \array_keys($this->_values); + } + + public function values() + { + return \array_values($this->_values); + } + + /** + * This unfortunately needs to be public to be used in Util\Util. + * + * @param array $values + * @param null|array|string|Util\RequestOptions $opts + * @param 'v1'|'v2' $apiMode + * + * @return static the object constructed from the given values + */ + public static function constructFrom($values, $opts = null, $apiMode = 'v1') + { + $obj = new static(isset($values['id']) ? $values['id'] : null); + $obj->refreshFrom($values, $opts, false, $apiMode); + + return $obj; + } + + /** + * Refreshes this object using the provided values. + * + * @param array $values + * @param null|array|string|Util\RequestOptions $opts + * @param bool $partial defaults to false + * @param 'v1'|'v2' $apiMode + */ + public function refreshFrom($values, $opts, $partial = false, $apiMode = 'v1') + { + $this->_opts = Util\RequestOptions::parse($opts); + + $this->_originalValues = self::deepCopy($values); + + if ($values instanceof StripeObject) { + $values = $values->toArray(); + } + + // Wipe old state before setting new. This is useful for e.g. updating a + // customer, where there is no persistent card parameter. Mark those values + // which don't persist as transient + if ($partial) { + $removed = new Util\Set(); + } else { + $removed = new Util\Set(\array_diff(\array_keys($this->_values), \array_keys($values))); + } + + foreach ($removed->toArray() as $k) { + unset($this->{$k}); + } + + $this->updateAttributes($values, $opts, false, $apiMode); + foreach ($values as $k => $v) { + $this->_transientValues->discard($k); + $this->_unsavedValues->discard($k); + } + } + + /** + * Mass assigns attributes on the model. + * + * @param array $values + * @param null|array|string|Util\RequestOptions $opts + * @param bool $dirty defaults to true + * @param 'v1'|'v2' $apiMode + */ + public function updateAttributes($values, $opts = null, $dirty = true, $apiMode = 'v1') + { + foreach ($values as $k => $v) { + // Special-case metadata to always be cast as a StripeObject + // This is necessary in case metadata is empty, as PHP arrays do + // not differentiate between lists and hashes, and we consider + // empty arrays to be lists. + if (('metadata' === $k) && (\is_array($v))) { + $this->_values[$k] = StripeObject::constructFrom($v, $opts, $apiMode); + } else { + $this->_values[$k] = Util\Util::convertToStripeObject($v, $opts, $apiMode); + } + if ($dirty) { + $this->dirtyValue($this->_values[$k]); + } + $this->_unsavedValues->add($k); + } + } + + /** + * @param bool $force defaults to false + * + * @return array a recursive mapping of attributes to values for this object, + * including the proper value for deleted attributes + */ + public function serializeParameters($force = false) + { + $updateParams = []; + + foreach ($this->_values as $k => $v) { + // There are a few reasons that we may want to add in a parameter for + // update: + // + // 1. The `$force` option has been set. + // 2. We know that it was modified. + // 3. Its value is a StripeObject. A StripeObject may contain modified + // values within in that its parent StripeObject doesn't know about. + // + $original = \array_key_exists($k, $this->_originalValues) ? $this->_originalValues[$k] : null; + $unsaved = $this->_unsavedValues->includes($k); + if ($force || $unsaved || $v instanceof StripeObject) { + $updateParams[$k] = $this->serializeParamsValue( + $this->_values[$k], + $original, + $unsaved, + $force, + $k + ); + } + } + + // a `null` that makes it out of `serializeParamsValue` signals an empty + // value that we shouldn't appear in the serialized form of the object + return \array_filter( + $updateParams, + function ($v) { + return null !== $v; + } + ); + } + + public function serializeParamsValue($value, $original, $unsaved, $force, $key = null) + { + // The logic here is that essentially any object embedded in another + // object that had a `type` is actually an API resource of a different + // type that's been included in the response. These other resources must + // be updated from their proper endpoints, and therefore they are not + // included when serializing even if they've been modified. + // + // There are _some_ known exceptions though. + // + // For example, if the value is unsaved (meaning the user has set it), and + // it looks like the API resource is persisted with an ID, then we include + // the object so that parameters are serialized with a reference to its + // ID. + // + // Another example is that on save API calls it's sometimes desirable to + // update a customer's default source by setting a new card (or other) + // object with `->source=` and then saving the customer. The + // `saveWithParent` flag to override the default behavior allows us to + // handle these exceptions. + // + // We throw an error if a property was set explicitly but we can't do + // anything with it because the integration is probably not working as the + // user intended it to. + if (null === $value) { + return ''; + } + if (($value instanceof ApiResource) && (!$value->saveWithParent)) { + if (!$unsaved) { + return null; + } + if (isset($value->id)) { + return $value; + } + + throw new Exception\InvalidArgumentException( + "Cannot save property `{$key}` containing an API resource of type " . + \get_class($value) . ". It doesn't appear to be persisted and is " . + 'not marked as `saveWithParent`.' + ); + } + if (\is_array($value)) { + if (Util\Util::isList($value)) { + // Sequential array, i.e. a list + $update = []; + foreach ($value as $v) { + $update[] = $this->serializeParamsValue($v, null, true, $force); + } + // This prevents an array that's unchanged from being resent. + if ($update !== $this->serializeParamsValue($original, null, true, $force, $key)) { + return $update; + } + } else { + // Associative array, i.e. a map + return Util\Util::convertToStripeObject($value, $this->_opts)->serializeParameters(); + } + } elseif ($value instanceof StripeObject) { + $update = $value->serializeParameters($force); + if ($original && $unsaved && $key && static::getAdditiveParams()->includes($key)) { + $update = \array_merge(self::emptyValues($original), $update); + } + + return $update; + } else { + return $value; + } + } + + /** + * @return mixed + */ + #[\ReturnTypeWillChange] + public function jsonSerialize() + { + return $this->toArray(); + } + + /** + * Returns an associative array with the key and values composing the + * Stripe object. + * + * @return array the associative array + */ + public function toArray() + { + $maybeToArray = function ($value) { + if (null === $value) { + return null; + } + + return \is_object($value) && \method_exists($value, 'toArray') ? $value->toArray() : $value; + }; + + return \array_reduce(\array_keys($this->_values), function ($acc, $k) use ($maybeToArray) { + if ('_' === \substr((string) $k, 0, 1)) { + return $acc; + } + $v = $this->_values[$k]; + if (Util\Util::isList($v)) { + $acc[$k] = \array_map($maybeToArray, $v); + } else { + $acc[$k] = $maybeToArray($v); + } + + return $acc; + }, []); + } + + /** + * Returns a pretty JSON representation of the Stripe object. + * + * @return string the JSON representation of the Stripe object + */ + public function toJSON() + { + return \json_encode($this->toArray(), \JSON_PRETTY_PRINT); + } + + public function __toString() + { + $class = static::class; + + return $class . ' JSON: ' . $this->toJSON(); + } + + /** + * Sets all keys within the StripeObject as unsaved so that they will be + * included with an update when `serializeParameters` is called. This + * method is also recursive, so any StripeObjects contained as values or + * which are values in a tenant array are also marked as dirty. + */ + public function dirty() + { + $this->_unsavedValues = new Util\Set(\array_keys($this->_values)); + foreach ($this->_values as $k => $v) { + $this->dirtyValue($v); + } + } + + protected function dirtyValue($value) + { + if (\is_array($value)) { + foreach ($value as $v) { + $this->dirtyValue($v); + } + } elseif ($value instanceof StripeObject) { + $value->dirty(); + } + } + + /** + * Produces a deep copy of the given object including support for arrays + * and StripeObjects. + * + * @param mixed $obj + */ + protected static function deepCopy($obj) + { + if (\is_array($obj)) { + $copy = []; + foreach ($obj as $k => $v) { + $copy[$k] = self::deepCopy($v); + } + + return $copy; + } + if ($obj instanceof StripeObject) { + return $obj::constructFrom( + self::deepCopy($obj->_values), + clone $obj->_opts + ); + } + + return $obj; + } + + /** + * Returns a hash of empty values for all the values that are in the given + * StripeObject. + * + * @param mixed $obj + */ + public static function emptyValues($obj) + { + if (\is_array($obj)) { + $values = $obj; + } elseif ($obj instanceof StripeObject) { + $values = $obj->_values; + } else { + throw new Exception\InvalidArgumentException( + 'empty_values got unexpected object type: ' . \get_class($obj) + ); + } + + return \array_fill_keys(\array_keys($values), ''); + } + + /** + * @return null|ApiResponse The last response from the Stripe API + */ + public function getLastResponse() + { + return $this->_lastResponse; + } + + /** + * Sets the last response from the Stripe API. + * + * @param ApiResponse $resp + */ + public function setLastResponse($resp) + { + $this->_lastResponse = $resp; + } + + /** + * Indicates whether or not the resource has been deleted on the server. + * Note that some, but not all, resources can indicate whether they have + * been deleted. + * + * @return bool whether the resource is deleted + */ + public function isDeleted() + { + return isset($this->_values['deleted']) ? $this->_values['deleted'] : false; + } +} diff --git a/vendor/stripe/stripe-php/lib/StripeStreamingClientInterface.php b/vendor/stripe/stripe-php/lib/StripeStreamingClientInterface.php new file mode 100644 index 0000000..e5e34c1 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/StripeStreamingClientInterface.php @@ -0,0 +1,11 @@ +Creating subscriptions + * + * @property string $id Unique identifier for the object. + * @property string $object String representing the object's type. Objects of the same type share the same value. + * @property null|string|\Stripe\Application $application ID of the Connect Application that created the subscription. + * @property null|float $application_fee_percent A non-negative decimal between 0 and 100, with at most two decimal places. This represents the percentage of the subscription invoice total that will be transferred to the application owner's Stripe account. + * @property \Stripe\StripeObject $automatic_tax + * @property int $billing_cycle_anchor The reference point that aligns future billing cycle dates. It sets the day of week for week intervals, the day of month for month and year intervals, and the month of year for year intervals. The timestamp is in UTC format. + * @property null|\Stripe\StripeObject $billing_cycle_anchor_config The fixed values used to calculate the billing_cycle_anchor. + * @property null|\Stripe\StripeObject $billing_thresholds Define thresholds at which an invoice will be sent, and the subscription advanced to a new billing period + * @property null|int $cancel_at A date in the future at which the subscription will automatically get canceled + * @property bool $cancel_at_period_end Whether this subscription will (if status=active) or did (if status=canceled) cancel at the end of the current billing period. + * @property null|int $canceled_at If the subscription has been canceled, the date of that cancellation. If the subscription was canceled with cancel_at_period_end, canceled_at will reflect the time of the most recent update request, not the end of the subscription period when the subscription is automatically moved to a canceled state. + * @property null|\Stripe\StripeObject $cancellation_details Details about why this subscription was cancelled + * @property string $collection_method Either charge_automatically, or send_invoice. When charging automatically, Stripe will attempt to pay this subscription at the end of the cycle using the default source attached to the customer. When sending an invoice, Stripe will email your customer an invoice with payment instructions and mark the subscription as active. + * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch. + * @property string $currency Three-letter ISO currency code, in lowercase. Must be a supported currency. + * @property int $current_period_end End of the current period that the subscription has been invoiced for. At the end of this period, a new invoice will be created. + * @property int $current_period_start Start of the current period that the subscription has been invoiced for. + * @property string|\Stripe\Customer $customer ID of the customer who owns the subscription. + * @property null|int $days_until_due Number of days a customer has to pay invoices generated by this subscription. This value will be null for subscriptions where collection_method=charge_automatically. + * @property null|string|\Stripe\PaymentMethod $default_payment_method ID of the default payment method for the subscription. It must belong to the customer associated with the subscription. This takes precedence over default_source. If neither are set, invoices will use the customer's invoice_settings.default_payment_method or default_source. + * @property null|string|\Stripe\Account|\Stripe\BankAccount|\Stripe\Card|\Stripe\Source $default_source ID of the default payment source for the subscription. It must belong to the customer associated with the subscription and be in a chargeable state. If default_payment_method is also set, default_payment_method will take precedence. If neither are set, invoices will use the customer's invoice_settings.default_payment_method or default_source. + * @property null|\Stripe\TaxRate[] $default_tax_rates The tax rates that will apply to any subscription item that does not have tax_rates set. Invoices created will have their default_tax_rates populated from the subscription. + * @property null|string $description The subscription's description, meant to be displayable to the customer. Use this field to optionally store an explanation of the subscription for rendering in Stripe surfaces and certain local payment methods UIs. + * @property null|\Stripe\Discount $discount Describes the current discount applied to this subscription, if there is one. When billing, a discount applied to a subscription overrides a discount applied on a customer-wide basis. This field has been deprecated and will be removed in a future API version. Use discounts instead. + * @property (string|\Stripe\Discount)[] $discounts The discounts applied to the subscription. Subscription item discounts are applied before subscription discounts. Use expand[]=discounts to expand each discount. + * @property null|int $ended_at If the subscription has ended, the date the subscription ended. + * @property \Stripe\StripeObject $invoice_settings + * @property \Stripe\Collection<\Stripe\SubscriptionItem> $items List of subscription items, each with an attached price. + * @property null|string|\Stripe\Invoice $latest_invoice The most recent invoice this subscription has generated. + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + * @property \Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + * @property null|int $next_pending_invoice_item_invoice Specifies the approximate timestamp on which any pending invoice items will be billed according to the schedule provided at pending_invoice_item_interval. + * @property null|string|\Stripe\Account $on_behalf_of The account (if any) the charge was made on behalf of for charges associated with this subscription. See the Connect documentation for details. + * @property null|\Stripe\StripeObject $pause_collection If specified, payment collection for this subscription will be paused. Note that the subscription status will be unchanged and will not be updated to paused. Learn more about pausing collection. + * @property null|\Stripe\StripeObject $payment_settings Payment settings passed on to invoices created by the subscription. + * @property null|\Stripe\StripeObject $pending_invoice_item_interval Specifies an interval for how often to bill for any pending invoice items. It is analogous to calling Create an invoice for the given subscription at the specified interval. + * @property null|string|\Stripe\SetupIntent $pending_setup_intent You can use this SetupIntent to collect user authentication when creating a subscription without immediate payment or updating a subscription's payment method, allowing you to optimize for off-session payments. Learn more in the SCA Migration Guide. + * @property null|\Stripe\StripeObject $pending_update If specified, pending updates that will be applied to the subscription once the latest_invoice has been paid. + * @property null|string|\Stripe\SubscriptionSchedule $schedule The schedule attached to the subscription + * @property int $start_date Date when the subscription was first created. The date might differ from the created date due to backdating. + * @property string $status

    Possible values are incomplete, incomplete_expired, trialing, active, past_due, canceled, unpaid, or paused.

    For collection_method=charge_automatically a subscription moves into incomplete if the initial payment attempt fails. A subscription in this status can only have metadata and default_source updated. Once the first invoice is paid, the subscription moves into an active status. If the first invoice is not paid within 23 hours, the subscription transitions to incomplete_expired. This is a terminal status, the open invoice will be voided and no further invoices will be generated.

    A subscription that is currently in a trial period is trialing and moves to active when the trial period is over.

    A subscription can only enter a paused status when a trial ends without a payment method. A paused subscription doesn't generate invoices and can be resumed after your customer adds their payment method. The paused status is different from pausing collection, which still generates invoices and leaves the subscription's status unchanged.

    If subscription collection_method=charge_automatically, it becomes past_due when payment is required but cannot be paid (due to failed payment or awaiting additional user actions). Once Stripe has exhausted all payment retry attempts, the subscription will become canceled or unpaid (depending on your subscriptions settings).

    If subscription collection_method=send_invoice it becomes past_due when its invoice is not paid by the due date, and canceled or unpaid if it is still not paid by an additional deadline after that. Note that when a subscription has a status of unpaid, no subsequent invoices will be attempted (invoices will be created, but then immediately automatically closed). After receiving updated payment information from a customer, you may choose to reopen and pay their closed invoices.

    + * @property null|string|\Stripe\TestHelpers\TestClock $test_clock ID of the test clock this subscription belongs to. + * @property null|\Stripe\StripeObject $transfer_data The account (if any) the subscription's payments will be attributed to for tax reporting, and where funds from each payment will be transferred to for each of the subscription's invoices. + * @property null|int $trial_end If the subscription has a trial, the end of that trial. + * @property null|\Stripe\StripeObject $trial_settings Settings related to subscription trials. + * @property null|int $trial_start If the subscription has a trial, the beginning of that trial. + */ +class Subscription extends ApiResource +{ + const OBJECT_NAME = 'subscription'; + + use ApiOperations\Update; + + const COLLECTION_METHOD_CHARGE_AUTOMATICALLY = 'charge_automatically'; + const COLLECTION_METHOD_SEND_INVOICE = 'send_invoice'; + + const STATUS_ACTIVE = 'active'; + const STATUS_CANCELED = 'canceled'; + const STATUS_INCOMPLETE = 'incomplete'; + const STATUS_INCOMPLETE_EXPIRED = 'incomplete_expired'; + const STATUS_PAST_DUE = 'past_due'; + const STATUS_PAUSED = 'paused'; + const STATUS_TRIALING = 'trialing'; + const STATUS_UNPAID = 'unpaid'; + + /** + * Creates a new subscription on an existing customer. Each customer can have up to + * 500 active or scheduled subscriptions. + * + * When you create a subscription with + * collection_method=charge_automatically, the first invoice is + * finalized as part of the request. The payment_behavior parameter + * determines the exact behavior of the initial payment. + * + * To start subscriptions where the first invoice always begins in a + * draft status, use subscription + * schedules instead. Schedules provide the flexibility to model more complex + * billing configurations that change over time. + * + * @param null|array $params + * @param null|array|string $options + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Subscription the created resource + */ + public static function create($params = null, $options = null) + { + self::_validateParams($params); + $url = static::classUrl(); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $options); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * By default, returns a list of subscriptions that have not been canceled. In + * order to list canceled subscriptions, specify status=canceled. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\Subscription> of ApiResources + */ + public static function all($params = null, $opts = null) + { + $url = static::classUrl(); + + return static::_requestPage($url, \Stripe\Collection::class, $params, $opts); + } + + /** + * Retrieves the subscription with the given ID. + * + * @param array|string $id the ID of the API resource to retrieve, or an options array containing an `id` key + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Subscription + */ + public static function retrieve($id, $opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + $instance = new static($id, $opts); + $instance->refresh(); + + return $instance; + } + + /** + * Updates an existing subscription to match the specified parameters. When + * changing prices or quantities, we optionally prorate the price we charge next + * month to make up for any price changes. To preview how the proration is + * calculated, use the create + * preview endpoint. + * + * By default, we prorate subscription changes. For example, if a customer signs up + * on May 1 for a 100 price, they’ll be billed + * 100 immediately. If on May 15 they switch to a + * 200 price, then on June 1 they’ll be billed + * 250 (200 for a renewal of her + * subscription, plus a 50 prorating adjustment for half of + * the previous month’s 100 difference). Similarly, a + * downgrade generates a credit that is applied to the next invoice. We also + * prorate when you make quantity changes. + * + * Switching prices does not normally change the billing date or generate an + * immediate charge unless: + * + *
    • The billing interval is changed (for example, from monthly to + * yearly).
    • The subscription moves from free to paid.
    • A trial + * starts or ends.
    + * + * In these cases, we apply a credit for the unused time on the previous price, + * immediately charge the customer using the new price, and reset the billing date. + * Learn about how Stripe + * immediately attempts payment for subscription changes. + * + * If you want to charge for an upgrade immediately, pass + * proration_behavior as always_invoice to create + * prorations, automatically invoice the customer for those proration adjustments, + * and attempt to collect payment. If you pass create_prorations, the + * prorations are created but not automatically invoiced. If you want to bill the + * customer for the prorations before the subscription’s renewal date, you need to + * manually invoice the customer. + * + * If you don’t want to prorate, set the proration_behavior option to + * none. With this option, the customer is billed + * 100 on May 1 and 200 on June 1. + * Similarly, if you set proration_behavior to none when + * switching between different billing intervals (for example, from monthly to + * yearly), we don’t generate any credits for the old subscription’s unused time. + * We still reset the billing date and bill immediately for the new subscription. + * + * Updating the quantity on a subscription many times in an hour may result in rate limiting. If you need to bill for a frequently + * changing quantity, consider integrating usage-based billing instead. + * + * @param string $id the ID of the resource to update + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Subscription the updated resource + */ + public static function update($id, $params = null, $opts = null) + { + self::_validateParams($params); + $url = static::resourceUrl($id); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $opts); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + use ApiOperations\Delete { + delete as protected _delete; + } + + public static function getSavedNestedResources() + { + static $savedNestedResources = null; + if (null === $savedNestedResources) { + $savedNestedResources = new Util\Set([ + 'source', + ]); + } + + return $savedNestedResources; + } + + /** + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Subscription the updated subscription + */ + public function deleteDiscount($params = null, $opts = null) + { + $url = $this->instanceUrl() . '/discount'; + list($response, $opts) = $this->_request('delete', $url, $params, $opts); + $this->refreshFrom(['discount' => null], $opts, true); + + return $this; + } + + const PAYMENT_BEHAVIOR_ALLOW_INCOMPLETE = 'allow_incomplete'; + const PAYMENT_BEHAVIOR_DEFAULT_INCOMPLETE = 'default_incomplete'; + const PAYMENT_BEHAVIOR_ERROR_IF_INCOMPLETE = 'error_if_incomplete'; + const PAYMENT_BEHAVIOR_PENDING_IF_INCOMPLETE = 'pending_if_incomplete'; + + const PRORATION_BEHAVIOR_ALWAYS_INVOICE = 'always_invoice'; + const PRORATION_BEHAVIOR_CREATE_PRORATIONS = 'create_prorations'; + const PRORATION_BEHAVIOR_NONE = 'none'; + + /** + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Subscription the canceled subscription + */ + public function cancel($params = null, $opts = null) + { + $url = $this->instanceUrl(); + list($response, $opts) = $this->_request('delete', $url, $params, $opts); + $this->refreshFrom($response, $opts); + + return $this; + } + + /** + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Subscription the resumed subscription + */ + public function resume($params = null, $opts = null) + { + $url = $this->instanceUrl() . '/resume'; + list($response, $opts) = $this->_request('post', $url, $params, $opts); + $this->refreshFrom($response, $opts); + + return $this; + } + + /** + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\SearchResult<\Stripe\Subscription> the subscription search results + */ + public static function search($params = null, $opts = null) + { + $url = '/v1/subscriptions/search'; + + return static::_requestPage($url, \Stripe\SearchResult::class, $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/SubscriptionItem.php b/vendor/stripe/stripe-php/lib/SubscriptionItem.php new file mode 100644 index 0000000..fe74493 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/SubscriptionItem.php @@ -0,0 +1,164 @@ +expand[]=discounts to expand each discount. + * @property \Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + * @property \Stripe\Plan $plan

    You can now model subscriptions more flexibly using the Prices API. It replaces the Plans API and is backwards compatible to simplify your migration.

    Plans define the base price, currency, and billing cycle for recurring purchases of products. Products help you track inventory or provisioning, and plans help you track pricing. Different physical goods or levels of service should be represented by products, and pricing options should be represented by plans. This approach lets you change prices without having to change your provisioning scheme.

    For example, you might have a single "gold" product that has plans for $10/month, $100/year, €9/month, and €90/year.

    Related guides: Set up a subscription and more about products and prices.

    + * @property \Stripe\Price $price

    Prices define the unit cost, currency, and (optional) billing cycle for both recurring and one-time purchases of products. Products help you track inventory or provisioning, and prices help you track payment terms. Different physical goods or levels of service should be represented by products, and pricing options should be represented by prices. This approach lets you change prices without having to change your provisioning scheme.

    For example, you might have a single "gold" product that has prices for $10/month, $100/year, and €9 once.

    Related guides: Set up a subscription, create an invoice, and more about products and prices.

    + * @property null|int $quantity The quantity of the plan to which the customer should be subscribed. + * @property string $subscription The subscription this subscription_item belongs to. + * @property null|\Stripe\TaxRate[] $tax_rates The tax rates which apply to this subscription_item. When set, the default_tax_rates on the subscription do not apply to this subscription_item. + */ +class SubscriptionItem extends ApiResource +{ + const OBJECT_NAME = 'subscription_item'; + + use ApiOperations\NestedResource; + use ApiOperations\Update; + + /** + * Adds a new item to an existing subscription. No existing items will be changed + * or replaced. + * + * @param null|array $params + * @param null|array|string $options + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\SubscriptionItem the created resource + */ + public static function create($params = null, $options = null) + { + self::_validateParams($params); + $url = static::classUrl(); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $options); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * Deletes an item from the subscription. Removing a subscription item from a + * subscription will not cancel the subscription. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\SubscriptionItem the deleted resource + */ + public function delete($params = null, $opts = null) + { + self::_validateParams($params); + + $url = $this->instanceUrl(); + list($response, $opts) = $this->_request('delete', $url, $params, $opts); + $this->refreshFrom($response, $opts); + + return $this; + } + + /** + * Returns a list of your subscription items for a given subscription. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\SubscriptionItem> of ApiResources + */ + public static function all($params = null, $opts = null) + { + $url = static::classUrl(); + + return static::_requestPage($url, \Stripe\Collection::class, $params, $opts); + } + + /** + * Retrieves the subscription item with the given ID. + * + * @param array|string $id the ID of the API resource to retrieve, or an options array containing an `id` key + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\SubscriptionItem + */ + public static function retrieve($id, $opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + $instance = new static($id, $opts); + $instance->refresh(); + + return $instance; + } + + /** + * Updates the plan or quantity of an item on a current subscription. + * + * @param string $id the ID of the resource to update + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\SubscriptionItem the updated resource + */ + public static function update($id, $params = null, $opts = null) + { + self::_validateParams($params); + $url = static::resourceUrl($id); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $opts); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + const PATH_USAGE_RECORDS = '/usage_records'; + + /** + * @param string $id the ID of the subscription item on which to create the usage record + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\UsageRecord + */ + public static function createUsageRecord($id, $params = null, $opts = null) + { + return self::_createNestedResource($id, static::PATH_USAGE_RECORDS, $params, $opts); + } + const PATH_USAGE_RECORD_SUMMARIES = '/usage_record_summaries'; + + /** + * @param string $id the ID of the subscription item on which to retrieve the usage record summaries + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\UsageRecordSummary> the list of usage record summaries + */ + public static function allUsageRecordSummaries($id, $params = null, $opts = null) + { + return self::_allNestedResources($id, static::PATH_USAGE_RECORD_SUMMARIES, $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/SubscriptionSchedule.php b/vendor/stripe/stripe-php/lib/SubscriptionSchedule.php new file mode 100644 index 0000000..24220e5 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/SubscriptionSchedule.php @@ -0,0 +1,165 @@ +Subscription schedules + * + * @property string $id Unique identifier for the object. + * @property string $object String representing the object's type. Objects of the same type share the same value. + * @property null|string|\Stripe\Application $application ID of the Connect Application that created the schedule. + * @property null|int $canceled_at Time at which the subscription schedule was canceled. Measured in seconds since the Unix epoch. + * @property null|int $completed_at Time at which the subscription schedule was completed. Measured in seconds since the Unix epoch. + * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch. + * @property null|\Stripe\StripeObject $current_phase Object representing the start and end dates for the current phase of the subscription schedule, if it is active. + * @property string|\Stripe\Customer $customer ID of the customer who owns the subscription schedule. + * @property \Stripe\StripeObject $default_settings + * @property string $end_behavior Behavior of the subscription schedule and underlying subscription when it ends. Possible values are release or cancel with the default being release. release will end the subscription schedule and keep the underlying subscription running. cancel will end the subscription schedule and cancel the underlying subscription. + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + * @property null|\Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + * @property \Stripe\StripeObject[] $phases Configuration for the subscription schedule's phases. + * @property null|int $released_at Time at which the subscription schedule was released. Measured in seconds since the Unix epoch. + * @property null|string $released_subscription ID of the subscription once managed by the subscription schedule (if it is released). + * @property string $status The present status of the subscription schedule. Possible values are not_started, active, completed, released, and canceled. You can read more about the different states in our behavior guide. + * @property null|string|\Stripe\Subscription $subscription ID of the subscription managed by the subscription schedule. + * @property null|string|\Stripe\TestHelpers\TestClock $test_clock ID of the test clock this subscription schedule belongs to. + */ +class SubscriptionSchedule extends ApiResource +{ + const OBJECT_NAME = 'subscription_schedule'; + + use ApiOperations\Update; + + const END_BEHAVIOR_CANCEL = 'cancel'; + const END_BEHAVIOR_NONE = 'none'; + const END_BEHAVIOR_RELEASE = 'release'; + const END_BEHAVIOR_RENEW = 'renew'; + + const STATUS_ACTIVE = 'active'; + const STATUS_CANCELED = 'canceled'; + const STATUS_COMPLETED = 'completed'; + const STATUS_NOT_STARTED = 'not_started'; + const STATUS_RELEASED = 'released'; + + /** + * Creates a new subscription schedule object. Each customer can have up to 500 + * active or scheduled subscriptions. + * + * @param null|array $params + * @param null|array|string $options + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\SubscriptionSchedule the created resource + */ + public static function create($params = null, $options = null) + { + self::_validateParams($params); + $url = static::classUrl(); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $options); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * Retrieves the list of your subscription schedules. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\SubscriptionSchedule> of ApiResources + */ + public static function all($params = null, $opts = null) + { + $url = static::classUrl(); + + return static::_requestPage($url, \Stripe\Collection::class, $params, $opts); + } + + /** + * Retrieves the details of an existing subscription schedule. You only need to + * supply the unique subscription schedule identifier that was returned upon + * subscription schedule creation. + * + * @param array|string $id the ID of the API resource to retrieve, or an options array containing an `id` key + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\SubscriptionSchedule + */ + public static function retrieve($id, $opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + $instance = new static($id, $opts); + $instance->refresh(); + + return $instance; + } + + /** + * Updates an existing subscription schedule. + * + * @param string $id the ID of the resource to update + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\SubscriptionSchedule the updated resource + */ + public static function update($id, $params = null, $opts = null) + { + self::_validateParams($params); + $url = static::resourceUrl($id); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $opts); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\SubscriptionSchedule the canceled subscription schedule + */ + public function cancel($params = null, $opts = null) + { + $url = $this->instanceUrl() . '/cancel'; + list($response, $opts) = $this->_request('post', $url, $params, $opts); + $this->refreshFrom($response, $opts); + + return $this; + } + + /** + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\SubscriptionSchedule the released subscription schedule + */ + public function release($params = null, $opts = null) + { + $url = $this->instanceUrl() . '/release'; + list($response, $opts) = $this->_request('post', $url, $params, $opts); + $this->refreshFrom($response, $opts); + + return $this; + } +} diff --git a/vendor/stripe/stripe-php/lib/Tax/Calculation.php b/vendor/stripe/stripe-php/lib/Tax/Calculation.php new file mode 100644 index 0000000..0e56bfd --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Tax/Calculation.php @@ -0,0 +1,93 @@ +Calculate tax in your custom payment flow + * + * @property null|string $id Unique identifier for the calculation. + * @property string $object String representing the object's type. Objects of the same type share the same value. + * @property int $amount_total Total amount after taxes in the smallest currency unit. + * @property string $currency Three-letter ISO currency code, in lowercase. Must be a supported currency. + * @property null|string $customer The ID of an existing Customer used for the resource. + * @property \Stripe\StripeObject $customer_details + * @property null|int $expires_at Timestamp of date at which the tax calculation will expire. + * @property null|\Stripe\Collection<\Stripe\Tax\CalculationLineItem> $line_items The list of items the customer is purchasing. + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + * @property null|\Stripe\StripeObject $ship_from_details The details of the ship from location, such as the address. + * @property null|\Stripe\StripeObject $shipping_cost The shipping cost details for the calculation. + * @property int $tax_amount_exclusive The amount of tax to be collected on top of the line item prices. + * @property int $tax_amount_inclusive The amount of tax already included in the line item prices. + * @property \Stripe\StripeObject[] $tax_breakdown Breakdown of individual tax amounts that add up to the total. + * @property int $tax_date Timestamp of date at which the tax rules and rates in effect applies for the calculation. + */ +class Calculation extends \Stripe\ApiResource +{ + const OBJECT_NAME = 'tax.calculation'; + + /** + * Calculates tax based on the input and returns a Tax Calculation + * object. + * + * @param null|array $params + * @param null|array|string $options + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Tax\Calculation the created resource + */ + public static function create($params = null, $options = null) + { + self::_validateParams($params); + $url = static::classUrl(); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $options); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * Retrieves a Tax Calculation object, if the calculation hasn’t + * expired. + * + * @param array|string $id the ID of the API resource to retrieve, or an options array containing an `id` key + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Tax\Calculation + */ + public static function retrieve($id, $opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + $instance = new static($id, $opts); + $instance->refresh(); + + return $instance; + } + + /** + * @param string $id + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\Tax\CalculationLineItem> list of calculation line items + */ + public static function allLineItems($id, $params = null, $opts = null) + { + $url = static::resourceUrl($id) . '/line_items'; + list($response, $opts) = static::_staticRequest('get', $url, $params, $opts); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } +} diff --git a/vendor/stripe/stripe-php/lib/Tax/CalculationLineItem.php b/vendor/stripe/stripe-php/lib/Tax/CalculationLineItem.php new file mode 100644 index 0000000..70c711e --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Tax/CalculationLineItem.php @@ -0,0 +1,26 @@ +smallest currency unit. If tax_behavior=inclusive, then this amount includes taxes. Otherwise, taxes were calculated on top of this amount. + * @property int $amount_tax The amount of tax calculated for this line item, in the smallest currency unit. + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + * @property null|string $product The ID of an existing Product. + * @property int $quantity The number of units of the item being purchased. For reversals, this is the quantity reversed. + * @property null|string $reference A custom identifier for this line item. + * @property string $tax_behavior Specifies whether the amount includes taxes. If tax_behavior=inclusive, then the amount includes taxes. + * @property null|\Stripe\StripeObject[] $tax_breakdown Detailed account of taxes relevant to this line item. + * @property string $tax_code The tax code ID used for this resource. + */ +class CalculationLineItem extends \Stripe\ApiResource +{ + const OBJECT_NAME = 'tax.calculation_line_item'; + + const TAX_BEHAVIOR_EXCLUSIVE = 'exclusive'; + const TAX_BEHAVIOR_INCLUSIVE = 'inclusive'; +} diff --git a/vendor/stripe/stripe-php/lib/Tax/Registration.php b/vendor/stripe/stripe-php/lib/Tax/Registration.php new file mode 100644 index 0000000..2126e1e --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Tax/Registration.php @@ -0,0 +1,117 @@ +Registration lets us know that your business is registered to collect tax on payments within a region, enabling you to automatically collect tax. + * + * Stripe doesn't register on your behalf with the relevant authorities when you create a Tax Registration object. For more information on how to register to collect tax, see our guide. + * + * Related guide: Using the Registrations API + * + * @property string $id Unique identifier for the object. + * @property string $object String representing the object's type. Objects of the same type share the same value. + * @property int $active_from Time at which the registration becomes active. Measured in seconds since the Unix epoch. + * @property string $country Two-letter country code (ISO 3166-1 alpha-2). + * @property \Stripe\StripeObject $country_options + * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch. + * @property null|int $expires_at If set, the registration stops being active at this time. If not set, the registration will be active indefinitely. Measured in seconds since the Unix epoch. + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + * @property string $status The status of the registration. This field is present for convenience and can be deduced from active_from and expires_at. + */ +class Registration extends \Stripe\ApiResource +{ + const OBJECT_NAME = 'tax.registration'; + + use \Stripe\ApiOperations\Update; + + const STATUS_ACTIVE = 'active'; + const STATUS_EXPIRED = 'expired'; + const STATUS_SCHEDULED = 'scheduled'; + + /** + * Creates a new Tax Registration object. + * + * @param null|array $params + * @param null|array|string $options + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Tax\Registration the created resource + */ + public static function create($params = null, $options = null) + { + self::_validateParams($params); + $url = static::classUrl(); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $options); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * Returns a list of Tax Registration objects. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\Tax\Registration> of ApiResources + */ + public static function all($params = null, $opts = null) + { + $url = static::classUrl(); + + return static::_requestPage($url, \Stripe\Collection::class, $params, $opts); + } + + /** + * Returns a Tax Registration object. + * + * @param array|string $id the ID of the API resource to retrieve, or an options array containing an `id` key + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Tax\Registration + */ + public static function retrieve($id, $opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + $instance = new static($id, $opts); + $instance->refresh(); + + return $instance; + } + + /** + * Updates an existing Tax Registration object. + * + * A registration cannot be deleted after it has been created. If you wish to end a + * registration you may do so by setting expires_at. + * + * @param string $id the ID of the resource to update + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Tax\Registration the updated resource + */ + public static function update($id, $params = null, $opts = null) + { + self::_validateParams($params); + $url = static::resourceUrl($id); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $opts); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } +} diff --git a/vendor/stripe/stripe-php/lib/Tax/Settings.php b/vendor/stripe/stripe-php/lib/Tax/Settings.php new file mode 100644 index 0000000..16dcdc2 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Tax/Settings.php @@ -0,0 +1,86 @@ +Settings to manage configurations used by Stripe Tax calculations. + * + * Related guide: Using the Settings API + * + * @property string $object String representing the object's type. Objects of the same type share the same value. + * @property \Stripe\StripeObject $defaults + * @property null|\Stripe\StripeObject $head_office The place where your business is located. + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + * @property string $status The status of the Tax Settings. + * @property \Stripe\StripeObject $status_details + */ +class Settings extends \Stripe\SingletonApiResource +{ + const OBJECT_NAME = 'tax.settings'; + + const STATUS_ACTIVE = 'active'; + const STATUS_PENDING = 'pending'; + + /** + * Retrieves Tax Settings for a merchant. + * + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Tax\Settings + */ + public static function retrieve($opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + $instance = new static(null, $opts); + $instance->refresh(); + + return $instance; + } + + /** + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return static the updated resource + */ + public static function update($params = null, $opts = null) + { + self::_validateParams($params); + $url = '/v1/tax/settings'; + + list($response, $opts) = static::_staticRequest('post', $url, $params, $opts); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return static the saved resource + * + * @deprecated The `save` method is deprecated and will be removed in a + * future major version of the library. Use the static method `update` + * on the resource instead. + */ + public function save($opts = null) + { + $params = $this->serializeParameters(); + if (\count($params) > 0) { + $url = $this->instanceUrl(); + list($response, $opts) = $this->_request('post', $url, $params, $opts, ['save']); + $this->refreshFrom($response, $opts); + } + + return $this; + } +} diff --git a/vendor/stripe/stripe-php/lib/Tax/Transaction.php b/vendor/stripe/stripe-php/lib/Tax/Transaction.php new file mode 100644 index 0000000..13304b8 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Tax/Transaction.php @@ -0,0 +1,109 @@ +Calculate tax in your custom payment flow + * + * @property string $id Unique identifier for the transaction. + * @property string $object String representing the object's type. Objects of the same type share the same value. + * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch. + * @property string $currency Three-letter ISO currency code, in lowercase. Must be a supported currency. + * @property null|string $customer The ID of an existing Customer used for the resource. + * @property \Stripe\StripeObject $customer_details + * @property null|\Stripe\Collection<\Stripe\Tax\TransactionLineItem> $line_items The tax collected or refunded, by line item. + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + * @property null|\Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + * @property int $posted_at The Unix timestamp representing when the tax liability is assumed or reduced. + * @property string $reference A custom unique identifier, such as 'myOrder_123'. + * @property null|\Stripe\StripeObject $reversal If type=reversal, contains information about what was reversed. + * @property null|\Stripe\StripeObject $ship_from_details The details of the ship from location, such as the address. + * @property null|\Stripe\StripeObject $shipping_cost The shipping cost details for the transaction. + * @property int $tax_date Timestamp of date at which the tax rules and rates in effect applies for the calculation. + * @property string $type If reversal, this transaction reverses an earlier transaction. + */ +class Transaction extends \Stripe\ApiResource +{ + const OBJECT_NAME = 'tax.transaction'; + + const TYPE_REVERSAL = 'reversal'; + const TYPE_TRANSACTION = 'transaction'; + + /** + * Retrieves a Tax Transaction object. + * + * @param array|string $id the ID of the API resource to retrieve, or an options array containing an `id` key + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Tax\Transaction + */ + public static function retrieve($id, $opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + $instance = new static($id, $opts); + $instance->refresh(); + + return $instance; + } + + /** + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Tax\Transaction the created transaction + */ + public static function createFromCalculation($params = null, $opts = null) + { + $url = static::classUrl() . '/create_from_calculation'; + list($response, $opts) = static::_staticRequest('post', $url, $params, $opts); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Tax\Transaction the created transaction + */ + public static function createReversal($params = null, $opts = null) + { + $url = static::classUrl() . '/create_reversal'; + list($response, $opts) = static::_staticRequest('post', $url, $params, $opts); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * @param string $id + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\Tax\TransactionLineItem> list of transaction line items + */ + public static function allLineItems($id, $params = null, $opts = null) + { + $url = static::resourceUrl($id) . '/line_items'; + list($response, $opts) = static::_staticRequest('get', $url, $params, $opts); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } +} diff --git a/vendor/stripe/stripe-php/lib/Tax/TransactionLineItem.php b/vendor/stripe/stripe-php/lib/Tax/TransactionLineItem.php new file mode 100644 index 0000000..a506c6d --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Tax/TransactionLineItem.php @@ -0,0 +1,31 @@ +smallest currency unit. If tax_behavior=inclusive, then this amount includes taxes. Otherwise, taxes were calculated on top of this amount. + * @property int $amount_tax The amount of tax calculated for this line item, in the smallest currency unit. + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + * @property null|\Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + * @property null|string $product The ID of an existing Product. + * @property int $quantity The number of units of the item being purchased. For reversals, this is the quantity reversed. + * @property string $reference A custom identifier for this line item in the transaction. + * @property null|\Stripe\StripeObject $reversal If type=reversal, contains information about what was reversed. + * @property string $tax_behavior Specifies whether the amount includes taxes. If tax_behavior=inclusive, then the amount includes taxes. + * @property string $tax_code The tax code ID used for this resource. + * @property string $type If reversal, this line item reverses an earlier transaction. + */ +class TransactionLineItem extends \Stripe\ApiResource +{ + const OBJECT_NAME = 'tax.transaction_line_item'; + + const TAX_BEHAVIOR_EXCLUSIVE = 'exclusive'; + const TAX_BEHAVIOR_INCLUSIVE = 'inclusive'; + + const TYPE_REVERSAL = 'reversal'; + const TYPE_TRANSACTION = 'transaction'; +} diff --git a/vendor/stripe/stripe-php/lib/TaxCode.php b/vendor/stripe/stripe-php/lib/TaxCode.php new file mode 100644 index 0000000..f57caaa --- /dev/null +++ b/vendor/stripe/stripe-php/lib/TaxCode.php @@ -0,0 +1,56 @@ +Tax codes classify goods and services for tax purposes. + * + * @property string $id Unique identifier for the object. + * @property string $object String representing the object's type. Objects of the same type share the same value. + * @property string $description A detailed description of which types of products the tax code represents. + * @property string $name A short name for the tax code. + */ +class TaxCode extends ApiResource +{ + const OBJECT_NAME = 'tax_code'; + + /** + * A list of all tax codes + * available to add to Products in order to allow specific tax calculations. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\TaxCode> of ApiResources + */ + public static function all($params = null, $opts = null) + { + $url = static::classUrl(); + + return static::_requestPage($url, \Stripe\Collection::class, $params, $opts); + } + + /** + * Retrieves the details of an existing tax code. Supply the unique tax code ID and + * Stripe will return the corresponding tax code information. + * + * @param array|string $id the ID of the API resource to retrieve, or an options array containing an `id` key + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\TaxCode + */ + public static function retrieve($id, $opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + $instance = new static($id, $opts); + $instance->refresh(); + + return $instance; + } +} diff --git a/vendor/stripe/stripe-php/lib/TaxDeductedAtSource.php b/vendor/stripe/stripe-php/lib/TaxDeductedAtSource.php new file mode 100644 index 0000000..93bb8a3 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/TaxDeductedAtSource.php @@ -0,0 +1,17 @@ +customer or account. + * Customer and account tax IDs get displayed on related invoices and credit notes. + * + * Related guides: Customer tax identification numbers, Account tax IDs + * + * @property string $id Unique identifier for the object. + * @property string $object String representing the object's type. Objects of the same type share the same value. + * @property null|string $country Two-letter ISO code representing the country of the tax ID. + * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch. + * @property null|string|\Stripe\Customer $customer ID of the customer. + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + * @property null|\Stripe\StripeObject $owner The account or customer the tax ID belongs to. + * @property string $type Type of the tax ID, one of ad_nrt, ae_trn, al_tin, am_tin, ao_tin, ar_cuit, au_abn, au_arn, ba_tin, bb_tin, bg_uic, bh_vat, bo_tin, br_cnpj, br_cpf, bs_tin, by_tin, ca_bn, ca_gst_hst, ca_pst_bc, ca_pst_mb, ca_pst_sk, ca_qst, cd_nif, ch_uid, ch_vat, cl_tin, cn_tin, co_nit, cr_tin, de_stn, do_rcn, ec_ruc, eg_tin, es_cif, eu_oss_vat, eu_vat, gb_vat, ge_vat, gn_nif, hk_br, hr_oib, hu_tin, id_npwp, il_vat, in_gst, is_vat, jp_cn, jp_rn, jp_trn, ke_pin, kh_tin, kr_brn, kz_bin, li_uid, li_vat, ma_vat, md_vat, me_pib, mk_vat, mr_nif, mx_rfc, my_frp, my_itn, my_sst, ng_tin, no_vat, no_voec, np_pan, nz_gst, om_vat, pe_ruc, ph_tin, ro_tin, rs_pib, ru_inn, ru_kpp, sa_vat, sg_gst, sg_uen, si_tin, sn_ninea, sr_fin, sv_nit, th_vat, tj_tin, tr_tin, tw_vat, tz_vat, ua_vat, ug_tin, us_ein, uy_ruc, uz_tin, uz_vat, ve_rif, vn_tin, za_vat, zm_tin, or zw_tin. Note that some legacy tax IDs have type unknown + * @property string $value Value of the tax ID. + * @property null|\Stripe\StripeObject $verification Tax ID verification information. + */ +class TaxId extends ApiResource +{ + const OBJECT_NAME = 'tax_id'; + + const TYPE_AD_NRT = 'ad_nrt'; + const TYPE_AE_TRN = 'ae_trn'; + const TYPE_AL_TIN = 'al_tin'; + const TYPE_AM_TIN = 'am_tin'; + const TYPE_AO_TIN = 'ao_tin'; + const TYPE_AR_CUIT = 'ar_cuit'; + const TYPE_AU_ABN = 'au_abn'; + const TYPE_AU_ARN = 'au_arn'; + const TYPE_BA_TIN = 'ba_tin'; + const TYPE_BB_TIN = 'bb_tin'; + const TYPE_BG_UIC = 'bg_uic'; + const TYPE_BH_VAT = 'bh_vat'; + const TYPE_BO_TIN = 'bo_tin'; + const TYPE_BR_CNPJ = 'br_cnpj'; + const TYPE_BR_CPF = 'br_cpf'; + const TYPE_BS_TIN = 'bs_tin'; + const TYPE_BY_TIN = 'by_tin'; + const TYPE_CA_BN = 'ca_bn'; + const TYPE_CA_GST_HST = 'ca_gst_hst'; + const TYPE_CA_PST_BC = 'ca_pst_bc'; + const TYPE_CA_PST_MB = 'ca_pst_mb'; + const TYPE_CA_PST_SK = 'ca_pst_sk'; + const TYPE_CA_QST = 'ca_qst'; + const TYPE_CD_NIF = 'cd_nif'; + const TYPE_CH_UID = 'ch_uid'; + const TYPE_CH_VAT = 'ch_vat'; + const TYPE_CL_TIN = 'cl_tin'; + const TYPE_CN_TIN = 'cn_tin'; + const TYPE_CO_NIT = 'co_nit'; + const TYPE_CR_TIN = 'cr_tin'; + const TYPE_DE_STN = 'de_stn'; + const TYPE_DO_RCN = 'do_rcn'; + const TYPE_EC_RUC = 'ec_ruc'; + const TYPE_EG_TIN = 'eg_tin'; + const TYPE_ES_CIF = 'es_cif'; + const TYPE_EU_OSS_VAT = 'eu_oss_vat'; + const TYPE_EU_VAT = 'eu_vat'; + const TYPE_GB_VAT = 'gb_vat'; + const TYPE_GE_VAT = 'ge_vat'; + const TYPE_GN_NIF = 'gn_nif'; + const TYPE_HK_BR = 'hk_br'; + const TYPE_HR_OIB = 'hr_oib'; + const TYPE_HU_TIN = 'hu_tin'; + const TYPE_ID_NPWP = 'id_npwp'; + const TYPE_IL_VAT = 'il_vat'; + const TYPE_IN_GST = 'in_gst'; + const TYPE_IS_VAT = 'is_vat'; + const TYPE_JP_CN = 'jp_cn'; + const TYPE_JP_RN = 'jp_rn'; + const TYPE_JP_TRN = 'jp_trn'; + const TYPE_KE_PIN = 'ke_pin'; + const TYPE_KH_TIN = 'kh_tin'; + const TYPE_KR_BRN = 'kr_brn'; + const TYPE_KZ_BIN = 'kz_bin'; + const TYPE_LI_UID = 'li_uid'; + const TYPE_LI_VAT = 'li_vat'; + const TYPE_MA_VAT = 'ma_vat'; + const TYPE_MD_VAT = 'md_vat'; + const TYPE_ME_PIB = 'me_pib'; + const TYPE_MK_VAT = 'mk_vat'; + const TYPE_MR_NIF = 'mr_nif'; + const TYPE_MX_RFC = 'mx_rfc'; + const TYPE_MY_FRP = 'my_frp'; + const TYPE_MY_ITN = 'my_itn'; + const TYPE_MY_SST = 'my_sst'; + const TYPE_NG_TIN = 'ng_tin'; + const TYPE_NO_VAT = 'no_vat'; + const TYPE_NO_VOEC = 'no_voec'; + const TYPE_NP_PAN = 'np_pan'; + const TYPE_NZ_GST = 'nz_gst'; + const TYPE_OM_VAT = 'om_vat'; + const TYPE_PE_RUC = 'pe_ruc'; + const TYPE_PH_TIN = 'ph_tin'; + const TYPE_RO_TIN = 'ro_tin'; + const TYPE_RS_PIB = 'rs_pib'; + const TYPE_RU_INN = 'ru_inn'; + const TYPE_RU_KPP = 'ru_kpp'; + const TYPE_SA_VAT = 'sa_vat'; + const TYPE_SG_GST = 'sg_gst'; + const TYPE_SG_UEN = 'sg_uen'; + const TYPE_SI_TIN = 'si_tin'; + const TYPE_SN_NINEA = 'sn_ninea'; + const TYPE_SR_FIN = 'sr_fin'; + const TYPE_SV_NIT = 'sv_nit'; + const TYPE_TH_VAT = 'th_vat'; + const TYPE_TJ_TIN = 'tj_tin'; + const TYPE_TR_TIN = 'tr_tin'; + const TYPE_TW_VAT = 'tw_vat'; + const TYPE_TZ_VAT = 'tz_vat'; + const TYPE_UA_VAT = 'ua_vat'; + const TYPE_UG_TIN = 'ug_tin'; + const TYPE_UNKNOWN = 'unknown'; + const TYPE_US_EIN = 'us_ein'; + const TYPE_UY_RUC = 'uy_ruc'; + const TYPE_UZ_TIN = 'uz_tin'; + const TYPE_UZ_VAT = 'uz_vat'; + const TYPE_VE_RIF = 've_rif'; + const TYPE_VN_TIN = 'vn_tin'; + const TYPE_ZA_VAT = 'za_vat'; + const TYPE_ZM_TIN = 'zm_tin'; + const TYPE_ZW_TIN = 'zw_tin'; + + /** + * Creates a new account or customer tax_id object. + * + * @param null|array $params + * @param null|array|string $options + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\TaxId the created resource + */ + public static function create($params = null, $options = null) + { + self::_validateParams($params); + $url = static::classUrl(); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $options); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * Deletes an existing account or customer tax_id object. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\TaxId the deleted resource + */ + public function delete($params = null, $opts = null) + { + self::_validateParams($params); + + $url = $this->instanceUrl(); + list($response, $opts) = $this->_request('delete', $url, $params, $opts); + $this->refreshFrom($response, $opts); + + return $this; + } + + /** + * Returns a list of tax IDs. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\TaxId> of ApiResources + */ + public static function all($params = null, $opts = null) + { + $url = static::classUrl(); + + return static::_requestPage($url, \Stripe\Collection::class, $params, $opts); + } + + /** + * Retrieves an account or customer tax_id object. + * + * @param array|string $id the ID of the API resource to retrieve, or an options array containing an `id` key + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\TaxId + */ + public static function retrieve($id, $opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + $instance = new static($id, $opts); + $instance->refresh(); + + return $instance; + } + + const VERIFICATION_STATUS_PENDING = 'pending'; + const VERIFICATION_STATUS_UNAVAILABLE = 'unavailable'; + const VERIFICATION_STATUS_UNVERIFIED = 'unverified'; + const VERIFICATION_STATUS_VERIFIED = 'verified'; +} diff --git a/vendor/stripe/stripe-php/lib/TaxRate.php b/vendor/stripe/stripe-php/lib/TaxRate.php new file mode 100644 index 0000000..20d0ad6 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/TaxRate.php @@ -0,0 +1,143 @@ +invoices, subscriptions and Checkout Sessions to collect tax. + * + * Related guide: Tax rates + * + * @property string $id Unique identifier for the object. + * @property string $object String representing the object's type. Objects of the same type share the same value. + * @property bool $active Defaults to true. When set to false, this tax rate cannot be used with new applications or Checkout Sessions, but will still work for subscriptions and invoices that already have it set. + * @property null|string $country Two-letter country code (ISO 3166-1 alpha-2). + * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch. + * @property null|string $description An arbitrary string attached to the tax rate for your internal use only. It will not be visible to your customers. + * @property string $display_name The display name of the tax rates as it will appear to your customer on their receipt email, PDF, and the hosted invoice page. + * @property null|float $effective_percentage Actual/effective tax rate percentage out of 100. For tax calculations with automatic_tax[enabled]=true, this percentage reflects the rate actually used to calculate tax based on the product's taxability and whether the user is registered to collect taxes in the corresponding jurisdiction. + * @property null|\Stripe\StripeObject $flat_amount The amount of the tax rate when the rate_type is flat_amount. Tax rates with rate_type percentage can vary based on the transaction, resulting in this field being null. This field exposes the amount and currency of the flat tax rate. + * @property bool $inclusive This specifies if the tax rate is inclusive or exclusive. + * @property null|string $jurisdiction The jurisdiction for the tax rate. You can use this label field for tax reporting purposes. It also appears on your customer’s invoice. + * @property null|string $jurisdiction_level The level of the jurisdiction that imposes this tax rate. Will be null for manually defined tax rates. + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + * @property null|\Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + * @property float $percentage Tax rate percentage out of 100. For tax calculations with automatic_tax[enabled]=true, this percentage includes the statutory tax rate of non-taxable jurisdictions. + * @property null|string $rate_type Indicates the type of tax rate applied to the taxable amount. This value can be null when no tax applies to the location. + * @property null|string $state ISO 3166-2 subdivision code, without country prefix. For example, "NY" for New York, United States. + * @property null|string $tax_type The high-level tax type, such as vat or sales_tax. + */ +class TaxRate extends ApiResource +{ + const OBJECT_NAME = 'tax_rate'; + + use ApiOperations\Update; + + const JURISDICTION_LEVEL_CITY = 'city'; + const JURISDICTION_LEVEL_COUNTRY = 'country'; + const JURISDICTION_LEVEL_COUNTY = 'county'; + const JURISDICTION_LEVEL_DISTRICT = 'district'; + const JURISDICTION_LEVEL_MULTIPLE = 'multiple'; + const JURISDICTION_LEVEL_STATE = 'state'; + + const RATE_TYPE_FLAT_AMOUNT = 'flat_amount'; + const RATE_TYPE_PERCENTAGE = 'percentage'; + + const TAX_TYPE_AMUSEMENT_TAX = 'amusement_tax'; + const TAX_TYPE_COMMUNICATIONS_TAX = 'communications_tax'; + const TAX_TYPE_GST = 'gst'; + const TAX_TYPE_HST = 'hst'; + const TAX_TYPE_IGST = 'igst'; + const TAX_TYPE_JCT = 'jct'; + const TAX_TYPE_LEASE_TAX = 'lease_tax'; + const TAX_TYPE_PST = 'pst'; + const TAX_TYPE_QST = 'qst'; + const TAX_TYPE_RETAIL_DELIVERY_FEE = 'retail_delivery_fee'; + const TAX_TYPE_RST = 'rst'; + const TAX_TYPE_SALES_TAX = 'sales_tax'; + const TAX_TYPE_SERVICE_TAX = 'service_tax'; + const TAX_TYPE_VAT = 'vat'; + + /** + * Creates a new tax rate. + * + * @param null|array $params + * @param null|array|string $options + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\TaxRate the created resource + */ + public static function create($params = null, $options = null) + { + self::_validateParams($params); + $url = static::classUrl(); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $options); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * Returns a list of your tax rates. Tax rates are returned sorted by creation + * date, with the most recently created tax rates appearing first. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\TaxRate> of ApiResources + */ + public static function all($params = null, $opts = null) + { + $url = static::classUrl(); + + return static::_requestPage($url, \Stripe\Collection::class, $params, $opts); + } + + /** + * Retrieves a tax rate with the given ID. + * + * @param array|string $id the ID of the API resource to retrieve, or an options array containing an `id` key + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\TaxRate + */ + public static function retrieve($id, $opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + $instance = new static($id, $opts); + $instance->refresh(); + + return $instance; + } + + /** + * Updates an existing tax rate. + * + * @param string $id the ID of the resource to update + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\TaxRate the updated resource + */ + public static function update($id, $params = null, $opts = null) + { + self::_validateParams($params); + $url = static::resourceUrl($id); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $opts); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } +} diff --git a/vendor/stripe/stripe-php/lib/Terminal/Configuration.php b/vendor/stripe/stripe-php/lib/Terminal/Configuration.php new file mode 100644 index 0000000..66a6e66 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Terminal/Configuration.php @@ -0,0 +1,129 @@ +true if the object exists in live mode or the value false if the object exists in test mode. + * @property null|string $name String indicating the name of the Configuration object, set by the user + * @property null|\Stripe\StripeObject $offline + * @property null|\Stripe\StripeObject $reboot_window + * @property null|\Stripe\StripeObject $stripe_s700 + * @property null|\Stripe\StripeObject $tipping + * @property null|\Stripe\StripeObject $verifone_p400 + */ +class Configuration extends \Stripe\ApiResource +{ + const OBJECT_NAME = 'terminal.configuration'; + + use \Stripe\ApiOperations\Update; + + /** + * Creates a new Configuration object. + * + * @param null|array $params + * @param null|array|string $options + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Terminal\Configuration the created resource + */ + public static function create($params = null, $options = null) + { + self::_validateParams($params); + $url = static::classUrl(); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $options); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * Deletes a Configuration object. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Terminal\Configuration the deleted resource + */ + public function delete($params = null, $opts = null) + { + self::_validateParams($params); + + $url = $this->instanceUrl(); + list($response, $opts) = $this->_request('delete', $url, $params, $opts); + $this->refreshFrom($response, $opts); + + return $this; + } + + /** + * Returns a list of Configuration objects. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\Terminal\Configuration> of ApiResources + */ + public static function all($params = null, $opts = null) + { + $url = static::classUrl(); + + return static::_requestPage($url, \Stripe\Collection::class, $params, $opts); + } + + /** + * Retrieves a Configuration object. + * + * @param array|string $id the ID of the API resource to retrieve, or an options array containing an `id` key + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Terminal\Configuration + */ + public static function retrieve($id, $opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + $instance = new static($id, $opts); + $instance->refresh(); + + return $instance; + } + + /** + * Updates a new Configuration object. + * + * @param string $id the ID of the resource to update + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Terminal\Configuration the updated resource + */ + public static function update($id, $params = null, $opts = null) + { + self::_validateParams($params); + $url = static::resourceUrl($id); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $opts); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } +} diff --git a/vendor/stripe/stripe-php/lib/Terminal/ConnectionToken.php b/vendor/stripe/stripe-php/lib/Terminal/ConnectionToken.php new file mode 100644 index 0000000..276ec2a --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Terminal/ConnectionToken.php @@ -0,0 +1,43 @@ +Fleet management + * + * @property string $object String representing the object's type. Objects of the same type share the same value. + * @property null|string $location The id of the location that this connection token is scoped to. Note that location scoping only applies to internet-connected readers. For more details, see the docs on scoping connection tokens. + * @property string $secret Your application should pass this token to the Stripe Terminal SDK. + */ +class ConnectionToken extends \Stripe\ApiResource +{ + const OBJECT_NAME = 'terminal.connection_token'; + + /** + * To connect to a reader the Stripe Terminal SDK needs to retrieve a short-lived + * connection token from Stripe, proxied through your server. On your backend, add + * an endpoint that creates and returns a connection token. + * + * @param null|array $params + * @param null|array|string $options + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Terminal\ConnectionToken the created resource + */ + public static function create($params = null, $options = null) + { + self::_validateParams($params); + $url = static::classUrl(); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $options); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } +} diff --git a/vendor/stripe/stripe-php/lib/Terminal/Location.php b/vendor/stripe/stripe-php/lib/Terminal/Location.php new file mode 100644 index 0000000..11a6f0f --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Terminal/Location.php @@ -0,0 +1,130 @@ +Fleet management + * + * @property string $id Unique identifier for the object. + * @property string $object String representing the object's type. Objects of the same type share the same value. + * @property \Stripe\StripeObject $address + * @property null|string $configuration_overrides The ID of a configuration that will be used to customize all readers in this location. + * @property string $display_name The display name of the location. + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + * @property \Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + */ +class Location extends \Stripe\ApiResource +{ + const OBJECT_NAME = 'terminal.location'; + + use \Stripe\ApiOperations\Update; + + /** + * Creates a new Location object. For further details, including which + * address fields are required in each country, see the Manage locations guide. + * + * @param null|array $params + * @param null|array|string $options + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Terminal\Location the created resource + */ + public static function create($params = null, $options = null) + { + self::_validateParams($params); + $url = static::classUrl(); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $options); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * Deletes a Location object. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Terminal\Location the deleted resource + */ + public function delete($params = null, $opts = null) + { + self::_validateParams($params); + + $url = $this->instanceUrl(); + list($response, $opts) = $this->_request('delete', $url, $params, $opts); + $this->refreshFrom($response, $opts); + + return $this; + } + + /** + * Returns a list of Location objects. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\Terminal\Location> of ApiResources + */ + public static function all($params = null, $opts = null) + { + $url = static::classUrl(); + + return static::_requestPage($url, \Stripe\Collection::class, $params, $opts); + } + + /** + * Retrieves a Location object. + * + * @param array|string $id the ID of the API resource to retrieve, or an options array containing an `id` key + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Terminal\Location + */ + public static function retrieve($id, $opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + $instance = new static($id, $opts); + $instance->refresh(); + + return $instance; + } + + /** + * Updates a Location object by setting the values of the parameters + * passed. Any parameters not provided will be left unchanged. + * + * @param string $id the ID of the resource to update + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Terminal\Location the updated resource + */ + public static function update($id, $params = null, $opts = null) + { + self::_validateParams($params); + $url = static::resourceUrl($id); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $opts); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } +} diff --git a/vendor/stripe/stripe-php/lib/Terminal/Reader.php b/vendor/stripe/stripe-php/lib/Terminal/Reader.php new file mode 100644 index 0000000..abb8a0d --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Terminal/Reader.php @@ -0,0 +1,230 @@ +Connecting to a reader + * + * @property string $id Unique identifier for the object. + * @property string $object String representing the object's type. Objects of the same type share the same value. + * @property null|\Stripe\StripeObject $action The most recent action performed by the reader. + * @property null|string $device_sw_version The current software version of the reader. + * @property string $device_type Type of reader, one of bbpos_wisepad3, stripe_m2, stripe_s700, bbpos_chipper2x, bbpos_wisepos_e, verifone_P400, simulated_wisepos_e, or mobile_phone_reader. + * @property null|string $ip_address The local IP address of the reader. + * @property string $label Custom label given to the reader for easier identification. + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + * @property null|string|\Stripe\Terminal\Location $location The location identifier of the reader. + * @property \Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + * @property string $serial_number Serial number of the reader. + * @property null|string $status The networking status of the reader. We do not recommend using this field in flows that may block taking payments. + */ +class Reader extends \Stripe\ApiResource +{ + const OBJECT_NAME = 'terminal.reader'; + + use \Stripe\ApiOperations\Update; + + const DEVICE_TYPE_BBPOS_CHIPPER2X = 'bbpos_chipper2x'; + const DEVICE_TYPE_BBPOS_WISEPAD3 = 'bbpos_wisepad3'; + const DEVICE_TYPE_BBPOS_WISEPOS_E = 'bbpos_wisepos_e'; + const DEVICE_TYPE_MOBILE_PHONE_READER = 'mobile_phone_reader'; + const DEVICE_TYPE_SIMULATED_WISEPOS_E = 'simulated_wisepos_e'; + const DEVICE_TYPE_STRIPE_M2 = 'stripe_m2'; + const DEVICE_TYPE_STRIPE_S700 = 'stripe_s700'; + const DEVICE_TYPE_VERIFONE_P400 = 'verifone_P400'; + + const STATUS_OFFLINE = 'offline'; + const STATUS_ONLINE = 'online'; + + /** + * Creates a new Reader object. + * + * @param null|array $params + * @param null|array|string $options + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Terminal\Reader the created resource + */ + public static function create($params = null, $options = null) + { + self::_validateParams($params); + $url = static::classUrl(); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $options); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * Deletes a Reader object. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Terminal\Reader the deleted resource + */ + public function delete($params = null, $opts = null) + { + self::_validateParams($params); + + $url = $this->instanceUrl(); + list($response, $opts) = $this->_request('delete', $url, $params, $opts); + $this->refreshFrom($response, $opts); + + return $this; + } + + /** + * Returns a list of Reader objects. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\Terminal\Reader> of ApiResources + */ + public static function all($params = null, $opts = null) + { + $url = static::classUrl(); + + return static::_requestPage($url, \Stripe\Collection::class, $params, $opts); + } + + /** + * Retrieves a Reader object. + * + * @param array|string $id the ID of the API resource to retrieve, or an options array containing an `id` key + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Terminal\Reader + */ + public static function retrieve($id, $opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + $instance = new static($id, $opts); + $instance->refresh(); + + return $instance; + } + + /** + * Updates a Reader object by setting the values of the parameters + * passed. Any parameters not provided will be left unchanged. + * + * @param string $id the ID of the resource to update + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Terminal\Reader the updated resource + */ + public static function update($id, $params = null, $opts = null) + { + self::_validateParams($params); + $url = static::resourceUrl($id); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $opts); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Terminal\Reader the canceled reader + */ + public function cancelAction($params = null, $opts = null) + { + $url = $this->instanceUrl() . '/cancel_action'; + list($response, $opts) = $this->_request('post', $url, $params, $opts); + $this->refreshFrom($response, $opts); + + return $this; + } + + /** + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Terminal\Reader the processed reader + */ + public function processPaymentIntent($params = null, $opts = null) + { + $url = $this->instanceUrl() . '/process_payment_intent'; + list($response, $opts) = $this->_request('post', $url, $params, $opts); + $this->refreshFrom($response, $opts); + + return $this; + } + + /** + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Terminal\Reader the processed reader + */ + public function processSetupIntent($params = null, $opts = null) + { + $url = $this->instanceUrl() . '/process_setup_intent'; + list($response, $opts) = $this->_request('post', $url, $params, $opts); + $this->refreshFrom($response, $opts); + + return $this; + } + + /** + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Terminal\Reader the refunded reader + */ + public function refundPayment($params = null, $opts = null) + { + $url = $this->instanceUrl() . '/refund_payment'; + list($response, $opts) = $this->_request('post', $url, $params, $opts); + $this->refreshFrom($response, $opts); + + return $this; + } + + /** + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Terminal\Reader the seted reader + */ + public function setReaderDisplay($params = null, $opts = null) + { + $url = $this->instanceUrl() . '/set_reader_display'; + list($response, $opts) = $this->_request('post', $url, $params, $opts); + $this->refreshFrom($response, $opts); + + return $this; + } +} diff --git a/vendor/stripe/stripe-php/lib/TestHelpers/TestClock.php b/vendor/stripe/stripe-php/lib/TestHelpers/TestClock.php new file mode 100644 index 0000000..361b269 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/TestHelpers/TestClock.php @@ -0,0 +1,125 @@ +true if the object exists in live mode or the value false if the object exists in test mode. + * @property null|string $name The custom name supplied at creation. + * @property string $status The status of the Test Clock. + * @property \Stripe\StripeObject $status_details + */ +class TestClock extends \Stripe\ApiResource +{ + const OBJECT_NAME = 'test_helpers.test_clock'; + + const STATUS_ADVANCING = 'advancing'; + const STATUS_INTERNAL_FAILURE = 'internal_failure'; + const STATUS_READY = 'ready'; + + /** + * Creates a new test clock that can be attached to new customers and quotes. + * + * @param null|array $params + * @param null|array|string $options + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\TestHelpers\TestClock the created resource + */ + public static function create($params = null, $options = null) + { + self::_validateParams($params); + $url = static::classUrl(); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $options); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * Deletes a test clock. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\TestHelpers\TestClock the deleted resource + */ + public function delete($params = null, $opts = null) + { + self::_validateParams($params); + + $url = $this->instanceUrl(); + list($response, $opts) = $this->_request('delete', $url, $params, $opts); + $this->refreshFrom($response, $opts); + + return $this; + } + + /** + * Returns a list of your test clocks. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\TestHelpers\TestClock> of ApiResources + */ + public static function all($params = null, $opts = null) + { + $url = static::classUrl(); + + return static::_requestPage($url, \Stripe\Collection::class, $params, $opts); + } + + /** + * Retrieves a test clock. + * + * @param array|string $id the ID of the API resource to retrieve, or an options array containing an `id` key + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\TestHelpers\TestClock + */ + public static function retrieve($id, $opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + $instance = new static($id, $opts); + $instance->refresh(); + + return $instance; + } + + /** + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\TestHelpers\TestClock the advanced test clock + */ + public function advance($params = null, $opts = null) + { + $url = $this->instanceUrl() . '/advance'; + list($response, $opts) = $this->_request('post', $url, $params, $opts); + $this->refreshFrom($response, $opts); + + return $this; + } +} diff --git a/vendor/stripe/stripe-php/lib/ThinEvent.php b/vendor/stripe/stripe-php/lib/ThinEvent.php new file mode 100644 index 0000000..0ff3a23 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/ThinEvent.php @@ -0,0 +1,27 @@ +v2->core->events->retrieve(thin_event.id)` to fetch the full event object. + * + * @property string $id Unique identifier for the event. + * @property string $type The type of the event. + * @property string $created Time at which the object was created. + * @property null|string $context Authentication context needed to fetch the event or related object. + * @property null|RelatedObject $related_object Object containing the reference to API resource relevant to the event. + * @property null|Reason $reason Reason for the event. + * @property bool $livemode Livemode indicates if the event is from a production(true) or test(false) account. + */ +class ThinEvent +{ + public $id; + public $type; + public $created; + public $context; + public $related_object; + public $reason; + public $livemode; +} diff --git a/vendor/stripe/stripe-php/lib/Token.php b/vendor/stripe/stripe-php/lib/Token.php new file mode 100644 index 0000000..83e5370 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Token.php @@ -0,0 +1,93 @@ +recommended payments integrations to perform this process + * on the client-side. This guarantees that no sensitive card data touches your server, + * and allows your integration to operate in a PCI-compliant way. + * + * If you can't use client-side tokenization, you can also create tokens using + * the API with either your publishable or secret API key. If + * your integration uses this method, you're responsible for any PCI compliance + * that it might require, and you must keep your secret API key safe. Unlike with + * client-side tokenization, your customer's information isn't sent directly to + * Stripe, so we can't determine how it's handled or stored. + * + * You can't store or use tokens more than once. To store card or bank account + * information for later use, create Customer + * objects or External accounts. + * Radar, our integrated solution for automatic fraud protection, + * performs best with integrations that use client-side tokenization. + * + * @property string $id Unique identifier for the object. + * @property string $object String representing the object's type. Objects of the same type share the same value. + * @property null|\Stripe\BankAccount $bank_account

    These bank accounts are payment methods on Customer objects.

    On the other hand External Accounts are transfer destinations on Account objects for connected accounts. They can be bank accounts or debit cards as well, and are documented in the links above.

    Related guide: Bank debits and transfers

    + * @property null|\Stripe\Card $card

    You can store multiple cards on a customer in order to charge the customer later. You can also store multiple debit cards on a recipient in order to transfer to those cards later.

    Related guide: Card payments with Sources

    + * @property null|string $client_ip IP address of the client that generates the token. + * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch. + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + * @property string $type Type of the token: account, bank_account, card, or pii. + * @property bool $used Determines if you have already used this token (you can only use tokens once). + */ +class Token extends ApiResource +{ + const OBJECT_NAME = 'token'; + + const TYPE_ACCOUNT = 'account'; + const TYPE_BANK_ACCOUNT = 'bank_account'; + const TYPE_CARD = 'card'; + const TYPE_PII = 'pii'; + + /** + * Creates a single-use token that represents a bank account’s details. You can use + * this token with any v1 API method in place of a bank account dictionary. You can + * only use this token once. To do so, attach it to a connected + * account where controller.requirement_collection + * is application, which includes Custom accounts. + * + * @param null|array $params + * @param null|array|string $options + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Token the created resource + */ + public static function create($params = null, $options = null) + { + self::_validateParams($params); + $url = static::classUrl(); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $options); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * Retrieves the token with the given ID. + * + * @param array|string $id the ID of the API resource to retrieve, or an options array containing an `id` key + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Token + */ + public static function retrieve($id, $opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + $instance = new static($id, $opts); + $instance->refresh(); + + return $instance; + } +} diff --git a/vendor/stripe/stripe-php/lib/Topup.php b/vendor/stripe/stripe-php/lib/Topup.php new file mode 100644 index 0000000..2954a7d --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Topup.php @@ -0,0 +1,143 @@ +Topping up your platform account + * + * @property string $id Unique identifier for the object. + * @property string $object String representing the object's type. Objects of the same type share the same value. + * @property int $amount Amount transferred. + * @property null|string|\Stripe\BalanceTransaction $balance_transaction ID of the balance transaction that describes the impact of this top-up on your account balance. May not be specified depending on status of top-up. + * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch. + * @property string $currency Three-letter ISO currency code, in lowercase. Must be a supported currency. + * @property null|string $description An arbitrary string attached to the object. Often useful for displaying to users. + * @property null|int $expected_availability_date Date the funds are expected to arrive in your Stripe account for payouts. This factors in delays like weekends or bank holidays. May not be specified depending on status of top-up. + * @property null|string $failure_code Error code explaining reason for top-up failure if available (see the errors section for a list of codes). + * @property null|string $failure_message Message to user further explaining reason for top-up failure if available. + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + * @property \Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + * @property null|\Stripe\Source $source The source field is deprecated. It might not always be present in the API response. + * @property null|string $statement_descriptor Extra information about a top-up. This will appear on your source's bank statement. It must contain at least one letter. + * @property string $status The status of the top-up is either canceled, failed, pending, reversed, or succeeded. + * @property null|string $transfer_group A string that identifies this top-up as part of a group. + */ +class Topup extends ApiResource +{ + const OBJECT_NAME = 'topup'; + + use ApiOperations\Update; + + const STATUS_CANCELED = 'canceled'; + const STATUS_FAILED = 'failed'; + const STATUS_PENDING = 'pending'; + const STATUS_REVERSED = 'reversed'; + const STATUS_SUCCEEDED = 'succeeded'; + + /** + * Top up the balance of an account. + * + * @param null|array $params + * @param null|array|string $options + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Topup the created resource + */ + public static function create($params = null, $options = null) + { + self::_validateParams($params); + $url = static::classUrl(); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $options); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * Returns a list of top-ups. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\Topup> of ApiResources + */ + public static function all($params = null, $opts = null) + { + $url = static::classUrl(); + + return static::_requestPage($url, \Stripe\Collection::class, $params, $opts); + } + + /** + * Retrieves the details of a top-up that has previously been created. Supply the + * unique top-up ID that was returned from your previous request, and Stripe will + * return the corresponding top-up information. + * + * @param array|string $id the ID of the API resource to retrieve, or an options array containing an `id` key + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Topup + */ + public static function retrieve($id, $opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + $instance = new static($id, $opts); + $instance->refresh(); + + return $instance; + } + + /** + * Updates the metadata of a top-up. Other top-up details are not editable by + * design. + * + * @param string $id the ID of the resource to update + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Topup the updated resource + */ + public static function update($id, $params = null, $opts = null) + { + self::_validateParams($params); + $url = static::resourceUrl($id); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $opts); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Topup the canceled topup + */ + public function cancel($params = null, $opts = null) + { + $url = $this->instanceUrl() . '/cancel'; + list($response, $opts) = $this->_request('post', $url, $params, $opts); + $this->refreshFrom($response, $opts); + + return $this; + } +} diff --git a/vendor/stripe/stripe-php/lib/Transfer.php b/vendor/stripe/stripe-php/lib/Transfer.php new file mode 100644 index 0000000..16c7b1b --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Transfer.php @@ -0,0 +1,197 @@ +Transfer object is created when you move funds between Stripe accounts as + * part of Connect. + * + * Before April 6, 2017, transfers also represented movement of funds from a + * Stripe account to a card or bank account. This behavior has since been split + * out into a Payout object, with corresponding payout endpoints. For more + * information, read about the + * transfer/payout split. + * + * Related guide: Creating separate charges and transfers + * + * @property string $id Unique identifier for the object. + * @property string $object String representing the object's type. Objects of the same type share the same value. + * @property int $amount Amount in cents (or local equivalent) to be transferred. + * @property int $amount_reversed Amount in cents (or local equivalent) reversed (can be less than the amount attribute on the transfer if a partial reversal was issued). + * @property null|string|\Stripe\BalanceTransaction $balance_transaction Balance transaction that describes the impact of this transfer on your account balance. + * @property int $created Time that this record of the transfer was first created. + * @property string $currency Three-letter ISO currency code, in lowercase. Must be a supported currency. + * @property null|string $description An arbitrary string attached to the object. Often useful for displaying to users. + * @property null|string|\Stripe\Account $destination ID of the Stripe account the transfer was sent to. + * @property null|string|\Stripe\Charge $destination_payment If the destination is a Stripe account, this will be the ID of the payment that the destination account received for the transfer. + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + * @property \Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + * @property \Stripe\Collection<\Stripe\TransferReversal> $reversals A list of reversals that have been applied to the transfer. + * @property bool $reversed Whether the transfer has been fully reversed. If the transfer is only partially reversed, this attribute will still be false. + * @property null|string|\Stripe\Charge $source_transaction ID of the charge that was used to fund the transfer. If null, the transfer was funded from the available balance. + * @property null|string $source_type The source balance this transfer came from. One of card, fpx, or bank_account. + * @property null|string $transfer_group A string that identifies this transaction as part of a group. See the Connect documentation for details. + */ +class Transfer extends ApiResource +{ + const OBJECT_NAME = 'transfer'; + + use ApiOperations\NestedResource; + use ApiOperations\Update; + + const SOURCE_TYPE_BANK_ACCOUNT = 'bank_account'; + const SOURCE_TYPE_CARD = 'card'; + const SOURCE_TYPE_FPX = 'fpx'; + + /** + * To send funds from your Stripe account to a connected account, you create a new + * transfer object. Your Stripe balance must be able to + * cover the transfer amount, or you’ll receive an “Insufficient Funds” error. + * + * @param null|array $params + * @param null|array|string $options + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Transfer the created resource + */ + public static function create($params = null, $options = null) + { + self::_validateParams($params); + $url = static::classUrl(); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $options); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * Returns a list of existing transfers sent to connected accounts. The transfers + * are returned in sorted order, with the most recently created transfers appearing + * first. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\Transfer> of ApiResources + */ + public static function all($params = null, $opts = null) + { + $url = static::classUrl(); + + return static::_requestPage($url, \Stripe\Collection::class, $params, $opts); + } + + /** + * Retrieves the details of an existing transfer. Supply the unique transfer ID + * from either a transfer creation request or the transfer list, and Stripe will + * return the corresponding transfer information. + * + * @param array|string $id the ID of the API resource to retrieve, or an options array containing an `id` key + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Transfer + */ + public static function retrieve($id, $opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + $instance = new static($id, $opts); + $instance->refresh(); + + return $instance; + } + + /** + * Updates the specified transfer by setting the values of the parameters passed. + * Any parameters not provided will be left unchanged. + * + * This request accepts only metadata as an argument. + * + * @param string $id the ID of the resource to update + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Transfer the updated resource + */ + public static function update($id, $params = null, $opts = null) + { + self::_validateParams($params); + $url = static::resourceUrl($id); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $opts); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + const PATH_REVERSALS = '/reversals'; + + /** + * @param string $id the ID of the transfer on which to retrieve the transfer reversals + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\TransferReversal> the list of transfer reversals + */ + public static function allReversals($id, $params = null, $opts = null) + { + return self::_allNestedResources($id, static::PATH_REVERSALS, $params, $opts); + } + + /** + * @param string $id the ID of the transfer on which to create the transfer reversal + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\TransferReversal + */ + public static function createReversal($id, $params = null, $opts = null) + { + return self::_createNestedResource($id, static::PATH_REVERSALS, $params, $opts); + } + + /** + * @param string $id the ID of the transfer to which the transfer reversal belongs + * @param string $reversalId the ID of the transfer reversal to retrieve + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\TransferReversal + */ + public static function retrieveReversal($id, $reversalId, $params = null, $opts = null) + { + return self::_retrieveNestedResource($id, static::PATH_REVERSALS, $reversalId, $params, $opts); + } + + /** + * @param string $id the ID of the transfer to which the transfer reversal belongs + * @param string $reversalId the ID of the transfer reversal to update + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\TransferReversal + */ + public static function updateReversal($id, $reversalId, $params = null, $opts = null) + { + return self::_updateNestedResource($id, static::PATH_REVERSALS, $reversalId, $params, $opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/TransferReversal.php b/vendor/stripe/stripe-php/lib/TransferReversal.php new file mode 100644 index 0000000..36e8ebe --- /dev/null +++ b/vendor/stripe/stripe-php/lib/TransferReversal.php @@ -0,0 +1,76 @@ +Stripe Connect platforms can reverse transfers made to a + * connected account, either entirely or partially, and can also specify whether + * to refund any related application fees. Transfer reversals add to the + * platform's balance and subtract from the destination account's balance. + * + * Reversing a transfer that was made for a destination + * charge is allowed only up to the amount of + * the charge. It is possible to reverse a + * transfer_group + * transfer only if the destination account has enough balance to cover the + * reversal. + * + * Related guide: Reverse transfers + * + * @property string $id Unique identifier for the object. + * @property string $object String representing the object's type. Objects of the same type share the same value. + * @property int $amount Amount, in cents (or local equivalent). + * @property null|string|\Stripe\BalanceTransaction $balance_transaction Balance transaction that describes the impact on your account balance. + * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch. + * @property string $currency Three-letter ISO currency code, in lowercase. Must be a supported currency. + * @property null|string|\Stripe\Refund $destination_payment_refund Linked payment refund for the transfer reversal. + * @property null|\Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + * @property null|string|\Stripe\Refund $source_refund ID of the refund responsible for the transfer reversal. + * @property string|\Stripe\Transfer $transfer ID of the transfer that was reversed. + */ +class TransferReversal extends ApiResource +{ + const OBJECT_NAME = 'transfer_reversal'; + + use ApiOperations\Update { + save as protected _save; + } + + /** + * @return string the API URL for this Stripe transfer reversal + */ + public function instanceUrl() + { + $id = $this['id']; + $transfer = $this['transfer']; + if (!$id) { + throw new Exception\UnexpectedValueException( + 'Could not determine which URL to request: ' . + "class instance has invalid ID: {$id}", + null + ); + } + $id = Util\Util::utf8($id); + $transfer = Util\Util::utf8($transfer); + + $base = Transfer::classUrl(); + $transferExtn = \urlencode($transfer); + $extn = \urlencode($id); + + return "{$base}/{$transferExtn}/reversals/{$extn}"; + } + + /** + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return TransferReversal the saved reversal + */ + public function save($opts = null) + { + return $this->_save($opts); + } +} diff --git a/vendor/stripe/stripe-php/lib/Treasury/CreditReversal.php b/vendor/stripe/stripe-php/lib/Treasury/CreditReversal.php new file mode 100644 index 0000000..c0df144 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Treasury/CreditReversal.php @@ -0,0 +1,95 @@ +ReceivedCredits depending on their network and source flow. Reversing a ReceivedCredit leads to the creation of a new object known as a CreditReversal. + * + * @property string $id Unique identifier for the object. + * @property string $object String representing the object's type. Objects of the same type share the same value. + * @property int $amount Amount (in cents) transferred. + * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch. + * @property string $currency Three-letter ISO currency code, in lowercase. Must be a supported currency. + * @property string $financial_account The FinancialAccount to reverse funds from. + * @property null|string $hosted_regulatory_receipt_url A hosted transaction receipt URL that is provided when money movement is considered regulated under Stripe's money transmission licenses. + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + * @property \Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + * @property string $network The rails used to reverse the funds. + * @property string $received_credit The ReceivedCredit being reversed. + * @property string $status Status of the CreditReversal + * @property \Stripe\StripeObject $status_transitions + * @property null|string|\Stripe\Treasury\Transaction $transaction The Transaction associated with this object. + */ +class CreditReversal extends \Stripe\ApiResource +{ + const OBJECT_NAME = 'treasury.credit_reversal'; + + const NETWORK_ACH = 'ach'; + const NETWORK_STRIPE = 'stripe'; + + const STATUS_CANCELED = 'canceled'; + const STATUS_POSTED = 'posted'; + const STATUS_PROCESSING = 'processing'; + + /** + * Reverses a ReceivedCredit and creates a CreditReversal object. + * + * @param null|array $params + * @param null|array|string $options + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Treasury\CreditReversal the created resource + */ + public static function create($params = null, $options = null) + { + self::_validateParams($params); + $url = static::classUrl(); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $options); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * Returns a list of CreditReversals. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\Treasury\CreditReversal> of ApiResources + */ + public static function all($params = null, $opts = null) + { + $url = static::classUrl(); + + return static::_requestPage($url, \Stripe\Collection::class, $params, $opts); + } + + /** + * Retrieves the details of an existing CreditReversal by passing the unique + * CreditReversal ID from either the CreditReversal creation request or + * CreditReversal list. + * + * @param array|string $id the ID of the API resource to retrieve, or an options array containing an `id` key + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Treasury\CreditReversal + */ + public static function retrieve($id, $opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + $instance = new static($id, $opts); + $instance->refresh(); + + return $instance; + } +} diff --git a/vendor/stripe/stripe-php/lib/Treasury/DebitReversal.php b/vendor/stripe/stripe-php/lib/Treasury/DebitReversal.php new file mode 100644 index 0000000..4b83967 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Treasury/DebitReversal.php @@ -0,0 +1,94 @@ +ReceivedDebits depending on their network and source flow. Reversing a ReceivedDebit leads to the creation of a new object known as a DebitReversal. + * + * @property string $id Unique identifier for the object. + * @property string $object String representing the object's type. Objects of the same type share the same value. + * @property int $amount Amount (in cents) transferred. + * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch. + * @property string $currency Three-letter ISO currency code, in lowercase. Must be a supported currency. + * @property null|string $financial_account The FinancialAccount to reverse funds from. + * @property null|string $hosted_regulatory_receipt_url A hosted transaction receipt URL that is provided when money movement is considered regulated under Stripe's money transmission licenses. + * @property null|\Stripe\StripeObject $linked_flows Other flows linked to a DebitReversal. + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + * @property \Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + * @property string $network The rails used to reverse the funds. + * @property string $received_debit The ReceivedDebit being reversed. + * @property string $status Status of the DebitReversal + * @property \Stripe\StripeObject $status_transitions + * @property null|string|\Stripe\Treasury\Transaction $transaction The Transaction associated with this object. + */ +class DebitReversal extends \Stripe\ApiResource +{ + const OBJECT_NAME = 'treasury.debit_reversal'; + + const NETWORK_ACH = 'ach'; + const NETWORK_CARD = 'card'; + + const STATUS_FAILED = 'failed'; + const STATUS_PROCESSING = 'processing'; + const STATUS_SUCCEEDED = 'succeeded'; + + /** + * Reverses a ReceivedDebit and creates a DebitReversal object. + * + * @param null|array $params + * @param null|array|string $options + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Treasury\DebitReversal the created resource + */ + public static function create($params = null, $options = null) + { + self::_validateParams($params); + $url = static::classUrl(); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $options); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * Returns a list of DebitReversals. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\Treasury\DebitReversal> of ApiResources + */ + public static function all($params = null, $opts = null) + { + $url = static::classUrl(); + + return static::_requestPage($url, \Stripe\Collection::class, $params, $opts); + } + + /** + * Retrieves a DebitReversal object. + * + * @param array|string $id the ID of the API resource to retrieve, or an options array containing an `id` key + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Treasury\DebitReversal + */ + public static function retrieve($id, $opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + $instance = new static($id, $opts); + $instance->refresh(); + + return $instance; + } +} diff --git a/vendor/stripe/stripe-php/lib/Treasury/FinancialAccount.php b/vendor/stripe/stripe-php/lib/Treasury/FinancialAccount.php new file mode 100644 index 0000000..2e3e7c6 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Treasury/FinancialAccount.php @@ -0,0 +1,172 @@ +ISO 3166-1 alpha-2). + * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch. + * @property null|\Stripe\Treasury\FinancialAccountFeatures $features Encodes whether a FinancialAccount has access to a particular Feature, with a status enum and associated status_details. Stripe or the platform can control Features via the requested field. + * @property \Stripe\StripeObject[] $financial_addresses The set of credentials that resolve to a FinancialAccount. + * @property null|bool $is_default + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + * @property null|\Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + * @property null|string $nickname The nickname for the FinancialAccount. + * @property null|string[] $pending_features The array of paths to pending Features in the Features hash. + * @property null|\Stripe\StripeObject $platform_restrictions The set of functionalities that the platform can restrict on the FinancialAccount. + * @property null|string[] $restricted_features The array of paths to restricted Features in the Features hash. + * @property string $status Status of this FinancialAccount. + * @property \Stripe\StripeObject $status_details + * @property string[] $supported_currencies The currencies the FinancialAccount can hold a balance in. Three-letter ISO currency code, in lowercase. + */ +class FinancialAccount extends \Stripe\ApiResource +{ + const OBJECT_NAME = 'treasury.financial_account'; + + use \Stripe\ApiOperations\Update; + + const STATUS_CLOSED = 'closed'; + const STATUS_OPEN = 'open'; + + /** + * Creates a new FinancialAccount. For now, each connected account can only have + * one FinancialAccount. + * + * @param null|array $params + * @param null|array|string $options + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Treasury\FinancialAccount the created resource + */ + public static function create($params = null, $options = null) + { + self::_validateParams($params); + $url = static::classUrl(); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $options); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * Returns a list of FinancialAccounts. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\Treasury\FinancialAccount> of ApiResources + */ + public static function all($params = null, $opts = null) + { + $url = static::classUrl(); + + return static::_requestPage($url, \Stripe\Collection::class, $params, $opts); + } + + /** + * Retrieves the details of a FinancialAccount. + * + * @param array|string $id the ID of the API resource to retrieve, or an options array containing an `id` key + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Treasury\FinancialAccount + */ + public static function retrieve($id, $opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + $instance = new static($id, $opts); + $instance->refresh(); + + return $instance; + } + + /** + * Updates the details of a FinancialAccount. + * + * @param string $id the ID of the resource to update + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Treasury\FinancialAccount the updated resource + */ + public static function update($id, $params = null, $opts = null) + { + self::_validateParams($params); + $url = static::resourceUrl($id); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $opts); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Treasury\FinancialAccount the closed financial account + */ + public function close($params = null, $opts = null) + { + $url = $this->instanceUrl() . '/close'; + list($response, $opts) = $this->_request('post', $url, $params, $opts); + $this->refreshFrom($response, $opts); + + return $this; + } + + /** + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Treasury\FinancialAccountFeatures the retrieved financial account features + */ + public function retrieveFeatures($params = null, $opts = null) + { + $url = $this->instanceUrl() . '/features'; + list($response, $opts) = $this->_request('get', $url, $params, $opts); + $obj = \Stripe\Util\Util::convertToStripeObject($response, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Treasury\FinancialAccountFeatures the updated financial account features + */ + public function updateFeatures($params = null, $opts = null) + { + $url = $this->instanceUrl() . '/features'; + list($response, $opts) = $this->_request('post', $url, $params, $opts); + $this->refreshFrom($response, $opts); + + return $this; + } +} diff --git a/vendor/stripe/stripe-php/lib/Treasury/FinancialAccountFeatures.php b/vendor/stripe/stripe-php/lib/Treasury/FinancialAccountFeatures.php new file mode 100644 index 0000000..0854f48 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Treasury/FinancialAccountFeatures.php @@ -0,0 +1,23 @@ +status enum and associated status_details. + * Stripe or the platform can control Features via the requested field. + * + * @property string $object String representing the object's type. Objects of the same type share the same value. + * @property null|\Stripe\StripeObject $card_issuing Toggle settings for enabling/disabling a feature + * @property null|\Stripe\StripeObject $deposit_insurance Toggle settings for enabling/disabling a feature + * @property null|\Stripe\StripeObject $financial_addresses Settings related to Financial Addresses features on a Financial Account + * @property null|\Stripe\StripeObject $inbound_transfers InboundTransfers contains inbound transfers features for a FinancialAccount. + * @property null|\Stripe\StripeObject $intra_stripe_flows Toggle settings for enabling/disabling a feature + * @property null|\Stripe\StripeObject $outbound_payments Settings related to Outbound Payments features on a Financial Account + * @property null|\Stripe\StripeObject $outbound_transfers OutboundTransfers contains outbound transfers features for a FinancialAccount. + */ +class FinancialAccountFeatures extends \Stripe\ApiResource +{ + const OBJECT_NAME = 'treasury.financial_account_features'; +} diff --git a/vendor/stripe/stripe-php/lib/Treasury/InboundTransfer.php b/vendor/stripe/stripe-php/lib/Treasury/InboundTransfer.php new file mode 100644 index 0000000..5ae219b --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Treasury/InboundTransfer.php @@ -0,0 +1,116 @@ +InboundTransfers to add funds to your FinancialAccount via a PaymentMethod that is owned by you. The funds will be transferred via an ACH debit. + * + * Related guide: Moving money with Treasury using InboundTransfer objects + * + * @property string $id Unique identifier for the object. + * @property string $object String representing the object's type. Objects of the same type share the same value. + * @property int $amount Amount (in cents) transferred. + * @property bool $cancelable Returns true if the InboundTransfer is able to be canceled. + * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch. + * @property string $currency Three-letter ISO currency code, in lowercase. Must be a supported currency. + * @property null|string $description An arbitrary string attached to the object. Often useful for displaying to users. + * @property null|\Stripe\StripeObject $failure_details Details about this InboundTransfer's failure. Only set when status is failed. + * @property string $financial_account The FinancialAccount that received the funds. + * @property null|string $hosted_regulatory_receipt_url A hosted transaction receipt URL that is provided when money movement is considered regulated under Stripe's money transmission licenses. + * @property \Stripe\StripeObject $linked_flows + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + * @property \Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + * @property null|string $origin_payment_method The origin payment method to be debited for an InboundTransfer. + * @property null|\Stripe\StripeObject $origin_payment_method_details Details about the PaymentMethod for an InboundTransfer. + * @property null|bool $returned Returns true if the funds for an InboundTransfer were returned after the InboundTransfer went to the succeeded state. + * @property string $statement_descriptor Statement descriptor shown when funds are debited from the source. Not all payment networks support statement_descriptor. + * @property string $status Status of the InboundTransfer: processing, succeeded, failed, and canceled. An InboundTransfer is processing if it is created and pending. The status changes to succeeded once the funds have been "confirmed" and a transaction is created and posted. The status changes to failed if the transfer fails. + * @property \Stripe\StripeObject $status_transitions + * @property null|string|\Stripe\Treasury\Transaction $transaction The Transaction associated with this object. + */ +class InboundTransfer extends \Stripe\ApiResource +{ + const OBJECT_NAME = 'treasury.inbound_transfer'; + + const STATUS_CANCELED = 'canceled'; + const STATUS_FAILED = 'failed'; + const STATUS_PROCESSING = 'processing'; + const STATUS_SUCCEEDED = 'succeeded'; + + /** + * Creates an InboundTransfer. + * + * @param null|array $params + * @param null|array|string $options + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Treasury\InboundTransfer the created resource + */ + public static function create($params = null, $options = null) + { + self::_validateParams($params); + $url = static::classUrl(); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $options); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * Returns a list of InboundTransfers sent from the specified FinancialAccount. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\Treasury\InboundTransfer> of ApiResources + */ + public static function all($params = null, $opts = null) + { + $url = static::classUrl(); + + return static::_requestPage($url, \Stripe\Collection::class, $params, $opts); + } + + /** + * Retrieves the details of an existing InboundTransfer. + * + * @param array|string $id the ID of the API resource to retrieve, or an options array containing an `id` key + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Treasury\InboundTransfer + */ + public static function retrieve($id, $opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + $instance = new static($id, $opts); + $instance->refresh(); + + return $instance; + } + + /** + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Treasury\InboundTransfer the canceled inbound transfer + */ + public function cancel($params = null, $opts = null) + { + $url = $this->instanceUrl() . '/cancel'; + list($response, $opts) = $this->_request('post', $url, $params, $opts); + $this->refreshFrom($response, $opts); + + return $this; + } +} diff --git a/vendor/stripe/stripe-php/lib/Treasury/OutboundPayment.php b/vendor/stripe/stripe-php/lib/Treasury/OutboundPayment.php new file mode 100644 index 0000000..5d3b541 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Treasury/OutboundPayment.php @@ -0,0 +1,123 @@ +OutboundPayments to send funds to another party's external bank account or FinancialAccount. To send money to an account belonging to the same user, use an OutboundTransfer. + * + * Simulate OutboundPayment state changes with the /v1/test_helpers/treasury/outbound_payments endpoints. These methods can only be called on test mode objects. + * + * Related guide: Moving money with Treasury using OutboundPayment objects + * + * @property string $id Unique identifier for the object. + * @property string $object String representing the object's type. Objects of the same type share the same value. + * @property int $amount Amount (in cents) transferred. + * @property bool $cancelable Returns true if the object can be canceled, and false otherwise. + * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch. + * @property string $currency Three-letter ISO currency code, in lowercase. Must be a supported currency. + * @property null|string $customer ID of the customer to whom an OutboundPayment is sent. + * @property null|string $description An arbitrary string attached to the object. Often useful for displaying to users. + * @property null|string $destination_payment_method The PaymentMethod via which an OutboundPayment is sent. This field can be empty if the OutboundPayment was created using destination_payment_method_data. + * @property null|\Stripe\StripeObject $destination_payment_method_details Details about the PaymentMethod for an OutboundPayment. + * @property null|\Stripe\StripeObject $end_user_details Details about the end user. + * @property int $expected_arrival_date The date when funds are expected to arrive in the destination account. + * @property string $financial_account The FinancialAccount that funds were pulled from. + * @property null|string $hosted_regulatory_receipt_url A hosted transaction receipt URL that is provided when money movement is considered regulated under Stripe's money transmission licenses. + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + * @property \Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + * @property null|\Stripe\StripeObject $returned_details Details about a returned OutboundPayment. Only set when the status is returned. + * @property string $statement_descriptor The description that appears on the receiving end for an OutboundPayment (for example, bank statement for external bank transfer). + * @property string $status Current status of the OutboundPayment: processing, failed, posted, returned, canceled. An OutboundPayment is processing if it has been created and is pending. The status changes to posted once the OutboundPayment has been "confirmed" and funds have left the account, or to failed or canceled. If an OutboundPayment fails to arrive at its destination, its status will change to returned. + * @property \Stripe\StripeObject $status_transitions + * @property null|\Stripe\StripeObject $tracking_details Details about network-specific tracking information if available. + * @property string|\Stripe\Treasury\Transaction $transaction The Transaction associated with this object. + */ +class OutboundPayment extends \Stripe\ApiResource +{ + const OBJECT_NAME = 'treasury.outbound_payment'; + + const STATUS_CANCELED = 'canceled'; + const STATUS_FAILED = 'failed'; + const STATUS_POSTED = 'posted'; + const STATUS_PROCESSING = 'processing'; + const STATUS_RETURNED = 'returned'; + + /** + * Creates an OutboundPayment. + * + * @param null|array $params + * @param null|array|string $options + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Treasury\OutboundPayment the created resource + */ + public static function create($params = null, $options = null) + { + self::_validateParams($params); + $url = static::classUrl(); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $options); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * Returns a list of OutboundPayments sent from the specified FinancialAccount. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\Treasury\OutboundPayment> of ApiResources + */ + public static function all($params = null, $opts = null) + { + $url = static::classUrl(); + + return static::_requestPage($url, \Stripe\Collection::class, $params, $opts); + } + + /** + * Retrieves the details of an existing OutboundPayment by passing the unique + * OutboundPayment ID from either the OutboundPayment creation request or + * OutboundPayment list. + * + * @param array|string $id the ID of the API resource to retrieve, or an options array containing an `id` key + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Treasury\OutboundPayment + */ + public static function retrieve($id, $opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + $instance = new static($id, $opts); + $instance->refresh(); + + return $instance; + } + + /** + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Treasury\OutboundPayment the canceled outbound payment + */ + public function cancel($params = null, $opts = null) + { + $url = $this->instanceUrl() . '/cancel'; + list($response, $opts) = $this->_request('post', $url, $params, $opts); + $this->refreshFrom($response, $opts); + + return $this; + } +} diff --git a/vendor/stripe/stripe-php/lib/Treasury/OutboundTransfer.php b/vendor/stripe/stripe-php/lib/Treasury/OutboundTransfer.php new file mode 100644 index 0000000..595d598 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Treasury/OutboundTransfer.php @@ -0,0 +1,121 @@ +OutboundTransfers to transfer funds from a FinancialAccount to a PaymentMethod belonging to the same entity. To send funds to a different party, use OutboundPayments instead. You can send funds over ACH rails or through a domestic wire transfer to a user's own external bank account. + * + * Simulate OutboundTransfer state changes with the /v1/test_helpers/treasury/outbound_transfers endpoints. These methods can only be called on test mode objects. + * + * Related guide: Moving money with Treasury using OutboundTransfer objects + * + * @property string $id Unique identifier for the object. + * @property string $object String representing the object's type. Objects of the same type share the same value. + * @property int $amount Amount (in cents) transferred. + * @property bool $cancelable Returns true if the object can be canceled, and false otherwise. + * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch. + * @property string $currency Three-letter ISO currency code, in lowercase. Must be a supported currency. + * @property null|string $description An arbitrary string attached to the object. Often useful for displaying to users. + * @property null|string $destination_payment_method The PaymentMethod used as the payment instrument for an OutboundTransfer. + * @property \Stripe\StripeObject $destination_payment_method_details + * @property int $expected_arrival_date The date when funds are expected to arrive in the destination account. + * @property string $financial_account The FinancialAccount that funds were pulled from. + * @property null|string $hosted_regulatory_receipt_url A hosted transaction receipt URL that is provided when money movement is considered regulated under Stripe's money transmission licenses. + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + * @property \Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + * @property null|\Stripe\StripeObject $returned_details Details about a returned OutboundTransfer. Only set when the status is returned. + * @property string $statement_descriptor Information about the OutboundTransfer to be sent to the recipient account. + * @property string $status Current status of the OutboundTransfer: processing, failed, canceled, posted, returned. An OutboundTransfer is processing if it has been created and is pending. The status changes to posted once the OutboundTransfer has been "confirmed" and funds have left the account, or to failed or canceled. If an OutboundTransfer fails to arrive at its destination, its status will change to returned. + * @property \Stripe\StripeObject $status_transitions + * @property null|\Stripe\StripeObject $tracking_details Details about network-specific tracking information if available. + * @property string|\Stripe\Treasury\Transaction $transaction The Transaction associated with this object. + */ +class OutboundTransfer extends \Stripe\ApiResource +{ + const OBJECT_NAME = 'treasury.outbound_transfer'; + + const STATUS_CANCELED = 'canceled'; + const STATUS_FAILED = 'failed'; + const STATUS_POSTED = 'posted'; + const STATUS_PROCESSING = 'processing'; + const STATUS_RETURNED = 'returned'; + + /** + * Creates an OutboundTransfer. + * + * @param null|array $params + * @param null|array|string $options + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Treasury\OutboundTransfer the created resource + */ + public static function create($params = null, $options = null) + { + self::_validateParams($params); + $url = static::classUrl(); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $options); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * Returns a list of OutboundTransfers sent from the specified FinancialAccount. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\Treasury\OutboundTransfer> of ApiResources + */ + public static function all($params = null, $opts = null) + { + $url = static::classUrl(); + + return static::_requestPage($url, \Stripe\Collection::class, $params, $opts); + } + + /** + * Retrieves the details of an existing OutboundTransfer by passing the unique + * OutboundTransfer ID from either the OutboundTransfer creation request or + * OutboundTransfer list. + * + * @param array|string $id the ID of the API resource to retrieve, or an options array containing an `id` key + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Treasury\OutboundTransfer + */ + public static function retrieve($id, $opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + $instance = new static($id, $opts); + $instance->refresh(); + + return $instance; + } + + /** + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Treasury\OutboundTransfer the canceled outbound transfer + */ + public function cancel($params = null, $opts = null) + { + $url = $this->instanceUrl() . '/cancel'; + list($response, $opts) = $this->_request('post', $url, $params, $opts); + $this->refreshFrom($response, $opts); + + return $this; + } +} diff --git a/vendor/stripe/stripe-php/lib/Treasury/ReceivedCredit.php b/vendor/stripe/stripe-php/lib/Treasury/ReceivedCredit.php new file mode 100644 index 0000000..a2a1cd1 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Treasury/ReceivedCredit.php @@ -0,0 +1,80 @@ +FinancialAccount (for example, via ACH or wire). These money movements are not initiated from the FinancialAccount. + * + * @property string $id Unique identifier for the object. + * @property string $object String representing the object's type. Objects of the same type share the same value. + * @property int $amount Amount (in cents) transferred. + * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch. + * @property string $currency Three-letter ISO currency code, in lowercase. Must be a supported currency. + * @property string $description An arbitrary string attached to the object. Often useful for displaying to users. + * @property null|string $failure_code Reason for the failure. A ReceivedCredit might fail because the receiving FinancialAccount is closed or frozen. + * @property null|string $financial_account The FinancialAccount that received the funds. + * @property null|string $hosted_regulatory_receipt_url A hosted transaction receipt URL that is provided when money movement is considered regulated under Stripe's money transmission licenses. + * @property \Stripe\StripeObject $initiating_payment_method_details + * @property \Stripe\StripeObject $linked_flows + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + * @property string $network The rails used to send the funds. + * @property null|\Stripe\StripeObject $reversal_details Details describing when a ReceivedCredit may be reversed. + * @property string $status Status of the ReceivedCredit. ReceivedCredits are created either succeeded (approved) or failed (declined). If a ReceivedCredit is declined, the failure reason can be found in the failure_code field. + * @property null|string|\Stripe\Treasury\Transaction $transaction The Transaction associated with this object. + */ +class ReceivedCredit extends \Stripe\ApiResource +{ + const OBJECT_NAME = 'treasury.received_credit'; + + const FAILURE_CODE_ACCOUNT_CLOSED = 'account_closed'; + const FAILURE_CODE_ACCOUNT_FROZEN = 'account_frozen'; + const FAILURE_CODE_INTERNATIONAL_TRANSACTION = 'international_transaction'; + const FAILURE_CODE_OTHER = 'other'; + + const NETWORK_ACH = 'ach'; + const NETWORK_CARD = 'card'; + const NETWORK_STRIPE = 'stripe'; + const NETWORK_US_DOMESTIC_WIRE = 'us_domestic_wire'; + + const STATUS_FAILED = 'failed'; + const STATUS_SUCCEEDED = 'succeeded'; + + /** + * Returns a list of ReceivedCredits. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\Treasury\ReceivedCredit> of ApiResources + */ + public static function all($params = null, $opts = null) + { + $url = static::classUrl(); + + return static::_requestPage($url, \Stripe\Collection::class, $params, $opts); + } + + /** + * Retrieves the details of an existing ReceivedCredit by passing the unique + * ReceivedCredit ID from the ReceivedCredit list. + * + * @param array|string $id the ID of the API resource to retrieve, or an options array containing an `id` key + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Treasury\ReceivedCredit + */ + public static function retrieve($id, $opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + $instance = new static($id, $opts); + $instance->refresh(); + + return $instance; + } +} diff --git a/vendor/stripe/stripe-php/lib/Treasury/ReceivedDebit.php b/vendor/stripe/stripe-php/lib/Treasury/ReceivedDebit.php new file mode 100644 index 0000000..ba9bf48 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Treasury/ReceivedDebit.php @@ -0,0 +1,80 @@ +FinancialAccount. These are not initiated from the FinancialAccount. + * + * @property string $id Unique identifier for the object. + * @property string $object String representing the object's type. Objects of the same type share the same value. + * @property int $amount Amount (in cents) transferred. + * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch. + * @property string $currency Three-letter ISO currency code, in lowercase. Must be a supported currency. + * @property string $description An arbitrary string attached to the object. Often useful for displaying to users. + * @property null|string $failure_code Reason for the failure. A ReceivedDebit might fail because the FinancialAccount doesn't have sufficient funds, is closed, or is frozen. + * @property null|string $financial_account The FinancialAccount that funds were pulled from. + * @property null|string $hosted_regulatory_receipt_url A hosted transaction receipt URL that is provided when money movement is considered regulated under Stripe's money transmission licenses. + * @property null|\Stripe\StripeObject $initiating_payment_method_details + * @property \Stripe\StripeObject $linked_flows + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + * @property string $network The network used for the ReceivedDebit. + * @property null|\Stripe\StripeObject $reversal_details Details describing when a ReceivedDebit might be reversed. + * @property string $status Status of the ReceivedDebit. ReceivedDebits are created with a status of either succeeded (approved) or failed (declined). The failure reason can be found under the failure_code. + * @property null|string|\Stripe\Treasury\Transaction $transaction The Transaction associated with this object. + */ +class ReceivedDebit extends \Stripe\ApiResource +{ + const OBJECT_NAME = 'treasury.received_debit'; + + const FAILURE_CODE_ACCOUNT_CLOSED = 'account_closed'; + const FAILURE_CODE_ACCOUNT_FROZEN = 'account_frozen'; + const FAILURE_CODE_INSUFFICIENT_FUNDS = 'insufficient_funds'; + const FAILURE_CODE_INTERNATIONAL_TRANSACTION = 'international_transaction'; + const FAILURE_CODE_OTHER = 'other'; + + const NETWORK_ACH = 'ach'; + const NETWORK_CARD = 'card'; + const NETWORK_STRIPE = 'stripe'; + + const STATUS_FAILED = 'failed'; + const STATUS_SUCCEEDED = 'succeeded'; + + /** + * Returns a list of ReceivedDebits. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\Treasury\ReceivedDebit> of ApiResources + */ + public static function all($params = null, $opts = null) + { + $url = static::classUrl(); + + return static::_requestPage($url, \Stripe\Collection::class, $params, $opts); + } + + /** + * Retrieves the details of an existing ReceivedDebit by passing the unique + * ReceivedDebit ID from the ReceivedDebit list. + * + * @param array|string $id the ID of the API resource to retrieve, or an options array containing an `id` key + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Treasury\ReceivedDebit + */ + public static function retrieve($id, $opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + $instance = new static($id, $opts); + $instance->refresh(); + + return $instance; + } +} diff --git a/vendor/stripe/stripe-php/lib/Treasury/Transaction.php b/vendor/stripe/stripe-php/lib/Treasury/Transaction.php new file mode 100644 index 0000000..b694d68 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Treasury/Transaction.php @@ -0,0 +1,79 @@ +FinancialAccount's balance. + * + * @property string $id Unique identifier for the object. + * @property string $object String representing the object's type. Objects of the same type share the same value. + * @property int $amount Amount (in cents) transferred. + * @property \Stripe\StripeObject $balance_impact Change to a FinancialAccount's balance + * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch. + * @property string $currency Three-letter ISO currency code, in lowercase. Must be a supported currency. + * @property string $description An arbitrary string attached to the object. Often useful for displaying to users. + * @property null|\Stripe\Collection<\Stripe\Treasury\TransactionEntry> $entries A list of TransactionEntries that are part of this Transaction. This cannot be expanded in any list endpoints. + * @property string $financial_account The FinancialAccount associated with this object. + * @property null|string $flow ID of the flow that created the Transaction. + * @property null|\Stripe\StripeObject $flow_details Details of the flow that created the Transaction. + * @property string $flow_type Type of the flow that created the Transaction. + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + * @property string $status Status of the Transaction. + * @property \Stripe\StripeObject $status_transitions + */ +class Transaction extends \Stripe\ApiResource +{ + const OBJECT_NAME = 'treasury.transaction'; + + const FLOW_TYPE_CREDIT_REVERSAL = 'credit_reversal'; + const FLOW_TYPE_DEBIT_REVERSAL = 'debit_reversal'; + const FLOW_TYPE_INBOUND_TRANSFER = 'inbound_transfer'; + const FLOW_TYPE_ISSUING_AUTHORIZATION = 'issuing_authorization'; + const FLOW_TYPE_OTHER = 'other'; + const FLOW_TYPE_OUTBOUND_PAYMENT = 'outbound_payment'; + const FLOW_TYPE_OUTBOUND_TRANSFER = 'outbound_transfer'; + const FLOW_TYPE_RECEIVED_CREDIT = 'received_credit'; + const FLOW_TYPE_RECEIVED_DEBIT = 'received_debit'; + + const STATUS_OPEN = 'open'; + const STATUS_POSTED = 'posted'; + const STATUS_VOID = 'void'; + + /** + * Retrieves a list of Transaction objects. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\Treasury\Transaction> of ApiResources + */ + public static function all($params = null, $opts = null) + { + $url = static::classUrl(); + + return static::_requestPage($url, \Stripe\Collection::class, $params, $opts); + } + + /** + * Retrieves the details of an existing Transaction. + * + * @param array|string $id the ID of the API resource to retrieve, or an options array containing an `id` key + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Treasury\Transaction + */ + public static function retrieve($id, $opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + $instance = new static($id, $opts); + $instance->refresh(); + + return $instance; + } +} diff --git a/vendor/stripe/stripe-php/lib/Treasury/TransactionEntry.php b/vendor/stripe/stripe-php/lib/Treasury/TransactionEntry.php new file mode 100644 index 0000000..fcef7ef --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Treasury/TransactionEntry.php @@ -0,0 +1,94 @@ +Transaction. + * + * @property string $id Unique identifier for the object. + * @property string $object String representing the object's type. Objects of the same type share the same value. + * @property \Stripe\StripeObject $balance_impact Change to a FinancialAccount's balance + * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch. + * @property string $currency Three-letter ISO currency code, in lowercase. Must be a supported currency. + * @property int $effective_at When the TransactionEntry will impact the FinancialAccount's balance. + * @property string $financial_account The FinancialAccount associated with this object. + * @property null|string $flow Token of the flow associated with the TransactionEntry. + * @property null|\Stripe\StripeObject $flow_details Details of the flow associated with the TransactionEntry. + * @property string $flow_type Type of the flow associated with the TransactionEntry. + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + * @property string|\Stripe\Treasury\Transaction $transaction The Transaction associated with this object. + * @property string $type The specific money movement that generated the TransactionEntry. + */ +class TransactionEntry extends \Stripe\ApiResource +{ + const OBJECT_NAME = 'treasury.transaction_entry'; + + const FLOW_TYPE_CREDIT_REVERSAL = 'credit_reversal'; + const FLOW_TYPE_DEBIT_REVERSAL = 'debit_reversal'; + const FLOW_TYPE_INBOUND_TRANSFER = 'inbound_transfer'; + const FLOW_TYPE_ISSUING_AUTHORIZATION = 'issuing_authorization'; + const FLOW_TYPE_OTHER = 'other'; + const FLOW_TYPE_OUTBOUND_PAYMENT = 'outbound_payment'; + const FLOW_TYPE_OUTBOUND_TRANSFER = 'outbound_transfer'; + const FLOW_TYPE_RECEIVED_CREDIT = 'received_credit'; + const FLOW_TYPE_RECEIVED_DEBIT = 'received_debit'; + + const TYPE_CREDIT_REVERSAL = 'credit_reversal'; + const TYPE_CREDIT_REVERSAL_POSTING = 'credit_reversal_posting'; + const TYPE_DEBIT_REVERSAL = 'debit_reversal'; + const TYPE_INBOUND_TRANSFER = 'inbound_transfer'; + const TYPE_INBOUND_TRANSFER_RETURN = 'inbound_transfer_return'; + const TYPE_ISSUING_AUTHORIZATION_HOLD = 'issuing_authorization_hold'; + const TYPE_ISSUING_AUTHORIZATION_RELEASE = 'issuing_authorization_release'; + const TYPE_OTHER = 'other'; + const TYPE_OUTBOUND_PAYMENT = 'outbound_payment'; + const TYPE_OUTBOUND_PAYMENT_CANCELLATION = 'outbound_payment_cancellation'; + const TYPE_OUTBOUND_PAYMENT_FAILURE = 'outbound_payment_failure'; + const TYPE_OUTBOUND_PAYMENT_POSTING = 'outbound_payment_posting'; + const TYPE_OUTBOUND_PAYMENT_RETURN = 'outbound_payment_return'; + const TYPE_OUTBOUND_TRANSFER = 'outbound_transfer'; + const TYPE_OUTBOUND_TRANSFER_CANCELLATION = 'outbound_transfer_cancellation'; + const TYPE_OUTBOUND_TRANSFER_FAILURE = 'outbound_transfer_failure'; + const TYPE_OUTBOUND_TRANSFER_POSTING = 'outbound_transfer_posting'; + const TYPE_OUTBOUND_TRANSFER_RETURN = 'outbound_transfer_return'; + const TYPE_RECEIVED_CREDIT = 'received_credit'; + const TYPE_RECEIVED_DEBIT = 'received_debit'; + + /** + * Retrieves a list of TransactionEntry objects. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\Treasury\TransactionEntry> of ApiResources + */ + public static function all($params = null, $opts = null) + { + $url = static::classUrl(); + + return static::_requestPage($url, \Stripe\Collection::class, $params, $opts); + } + + /** + * Retrieves a TransactionEntry object. + * + * @param array|string $id the ID of the API resource to retrieve, or an options array containing an `id` key + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Treasury\TransactionEntry + */ + public static function retrieve($id, $opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + $instance = new static($id, $opts); + $instance->refresh(); + + return $instance; + } +} diff --git a/vendor/stripe/stripe-php/lib/UsageRecord.php b/vendor/stripe/stripe-php/lib/UsageRecord.php new file mode 100644 index 0000000..13dd1cc --- /dev/null +++ b/vendor/stripe/stripe-php/lib/UsageRecord.php @@ -0,0 +1,25 @@ +Metered billing + * + * This is our legacy usage-based billing API. See the updated usage-based billing docs. + * + * @property string $id Unique identifier for the object. + * @property string $object String representing the object's type. Objects of the same type share the same value. + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + * @property int $quantity The usage quantity for the specified date. + * @property string $subscription_item The ID of the subscription item this usage record contains data for. + * @property int $timestamp The timestamp when this usage occurred. + */ +class UsageRecord extends ApiResource +{ + const OBJECT_NAME = 'usage_record'; +} diff --git a/vendor/stripe/stripe-php/lib/UsageRecordSummary.php b/vendor/stripe/stripe-php/lib/UsageRecordSummary.php new file mode 100644 index 0000000..d9a9839 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/UsageRecordSummary.php @@ -0,0 +1,21 @@ +true if the object exists in live mode or the value false if the object exists in test mode. + * @property \Stripe\StripeObject $period + * @property string $subscription_item The ID of the subscription item this summary is describing. + * @property int $total_usage The total usage within this usage period. + */ +class UsageRecordSummary extends ApiResource +{ + const OBJECT_NAME = 'usage_record_summary'; +} diff --git a/vendor/stripe/stripe-php/lib/Util/ApiVersion.php b/vendor/stripe/stripe-php/lib/Util/ApiVersion.php new file mode 100644 index 0000000..80905e6 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Util/ApiVersion.php @@ -0,0 +1,10 @@ +container = \array_change_key_case($initial_array, \CASE_LOWER); + } + + /** + * @return int + */ + #[\ReturnTypeWillChange] + public function count() + { + return \count($this->container); + } + + /** + * @return \ArrayIterator + */ + #[\ReturnTypeWillChange] + public function getIterator() + { + return new \ArrayIterator($this->container); + } + + /** + * @return void + */ + #[\ReturnTypeWillChange] + public function offsetSet($offset, $value) + { + $offset = self::maybeLowercase($offset); + if (null === $offset) { + $this->container[] = $value; + } else { + $this->container[$offset] = $value; + } + } + + /** + * @return bool + */ + #[\ReturnTypeWillChange] + public function offsetExists($offset) + { + $offset = self::maybeLowercase($offset); + + return isset($this->container[$offset]); + } + + /** + * @return void + */ + #[\ReturnTypeWillChange] + public function offsetUnset($offset) + { + $offset = self::maybeLowercase($offset); + unset($this->container[$offset]); + } + + /** + * @return mixed + */ + #[\ReturnTypeWillChange] + public function offsetGet($offset) + { + $offset = self::maybeLowercase($offset); + + return isset($this->container[$offset]) ? $this->container[$offset] : null; + } + + private static function maybeLowercase($v) + { + if (\is_string($v)) { + return \strtolower($v); + } + + return $v; + } +} diff --git a/vendor/stripe/stripe-php/lib/Util/DefaultLogger.php b/vendor/stripe/stripe-php/lib/Util/DefaultLogger.php new file mode 100644 index 0000000..016cbe8 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Util/DefaultLogger.php @@ -0,0 +1,29 @@ + 0) { + throw new \Stripe\Exception\BadMethodCallException('DefaultLogger does not currently implement context. Please implement if you need it.'); + } + + if (null === $this->destination) { + \error_log($message, $this->messageType); + } else { + \error_log($message, $this->messageType, $this->destination); + } + } +} diff --git a/vendor/stripe/stripe-php/lib/Util/EventTypes.php b/vendor/stripe/stripe-php/lib/Util/EventTypes.php new file mode 100644 index 0000000..8badd28 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Util/EventTypes.php @@ -0,0 +1,13 @@ + \Stripe\Events\V1BillingMeterErrorReportTriggeredEvent::class, + \Stripe\Events\V1BillingMeterNoMeterFoundEvent::LOOKUP_TYPE => \Stripe\Events\V1BillingMeterNoMeterFoundEvent::class, + // The end of the section generated from our OpenAPI spec + ]; +} diff --git a/vendor/stripe/stripe-php/lib/Util/LoggerInterface.php b/vendor/stripe/stripe-php/lib/Util/LoggerInterface.php new file mode 100644 index 0000000..5603c81 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Util/LoggerInterface.php @@ -0,0 +1,34 @@ + \Stripe\Collection::class, + \Stripe\Issuing\CardDetails::OBJECT_NAME => \Stripe\Issuing\CardDetails::class, + \Stripe\SearchResult::OBJECT_NAME => \Stripe\SearchResult::class, + \Stripe\File::OBJECT_NAME_ALT => \Stripe\File::class, + // object classes: The beginning of the section generated from our OpenAPI spec + \Stripe\Account::OBJECT_NAME => \Stripe\Account::class, + \Stripe\AccountLink::OBJECT_NAME => \Stripe\AccountLink::class, + \Stripe\AccountSession::OBJECT_NAME => \Stripe\AccountSession::class, + \Stripe\ApplePayDomain::OBJECT_NAME => \Stripe\ApplePayDomain::class, + \Stripe\Application::OBJECT_NAME => \Stripe\Application::class, + \Stripe\ApplicationFee::OBJECT_NAME => \Stripe\ApplicationFee::class, + \Stripe\ApplicationFeeRefund::OBJECT_NAME => \Stripe\ApplicationFeeRefund::class, + \Stripe\Apps\Secret::OBJECT_NAME => \Stripe\Apps\Secret::class, + \Stripe\Balance::OBJECT_NAME => \Stripe\Balance::class, + \Stripe\BalanceTransaction::OBJECT_NAME => \Stripe\BalanceTransaction::class, + \Stripe\BankAccount::OBJECT_NAME => \Stripe\BankAccount::class, + \Stripe\Billing\Alert::OBJECT_NAME => \Stripe\Billing\Alert::class, + \Stripe\Billing\AlertTriggered::OBJECT_NAME => \Stripe\Billing\AlertTriggered::class, + \Stripe\Billing\CreditBalanceSummary::OBJECT_NAME => \Stripe\Billing\CreditBalanceSummary::class, + \Stripe\Billing\CreditBalanceTransaction::OBJECT_NAME => \Stripe\Billing\CreditBalanceTransaction::class, + \Stripe\Billing\CreditGrant::OBJECT_NAME => \Stripe\Billing\CreditGrant::class, + \Stripe\Billing\Meter::OBJECT_NAME => \Stripe\Billing\Meter::class, + \Stripe\Billing\MeterEvent::OBJECT_NAME => \Stripe\Billing\MeterEvent::class, + \Stripe\Billing\MeterEventAdjustment::OBJECT_NAME => \Stripe\Billing\MeterEventAdjustment::class, + \Stripe\Billing\MeterEventSummary::OBJECT_NAME => \Stripe\Billing\MeterEventSummary::class, + \Stripe\BillingPortal\Configuration::OBJECT_NAME => \Stripe\BillingPortal\Configuration::class, + \Stripe\BillingPortal\Session::OBJECT_NAME => \Stripe\BillingPortal\Session::class, + \Stripe\Capability::OBJECT_NAME => \Stripe\Capability::class, + \Stripe\Card::OBJECT_NAME => \Stripe\Card::class, + \Stripe\CashBalance::OBJECT_NAME => \Stripe\CashBalance::class, + \Stripe\Charge::OBJECT_NAME => \Stripe\Charge::class, + \Stripe\Checkout\Session::OBJECT_NAME => \Stripe\Checkout\Session::class, + \Stripe\Climate\Order::OBJECT_NAME => \Stripe\Climate\Order::class, + \Stripe\Climate\Product::OBJECT_NAME => \Stripe\Climate\Product::class, + \Stripe\Climate\Supplier::OBJECT_NAME => \Stripe\Climate\Supplier::class, + \Stripe\ConfirmationToken::OBJECT_NAME => \Stripe\ConfirmationToken::class, + \Stripe\ConnectCollectionTransfer::OBJECT_NAME => \Stripe\ConnectCollectionTransfer::class, + \Stripe\CountrySpec::OBJECT_NAME => \Stripe\CountrySpec::class, + \Stripe\Coupon::OBJECT_NAME => \Stripe\Coupon::class, + \Stripe\CreditNote::OBJECT_NAME => \Stripe\CreditNote::class, + \Stripe\CreditNoteLineItem::OBJECT_NAME => \Stripe\CreditNoteLineItem::class, + \Stripe\Customer::OBJECT_NAME => \Stripe\Customer::class, + \Stripe\CustomerBalanceTransaction::OBJECT_NAME => \Stripe\CustomerBalanceTransaction::class, + \Stripe\CustomerCashBalanceTransaction::OBJECT_NAME => \Stripe\CustomerCashBalanceTransaction::class, + \Stripe\CustomerSession::OBJECT_NAME => \Stripe\CustomerSession::class, + \Stripe\Discount::OBJECT_NAME => \Stripe\Discount::class, + \Stripe\Dispute::OBJECT_NAME => \Stripe\Dispute::class, + \Stripe\Entitlements\ActiveEntitlement::OBJECT_NAME => \Stripe\Entitlements\ActiveEntitlement::class, + \Stripe\Entitlements\ActiveEntitlementSummary::OBJECT_NAME => \Stripe\Entitlements\ActiveEntitlementSummary::class, + \Stripe\Entitlements\Feature::OBJECT_NAME => \Stripe\Entitlements\Feature::class, + \Stripe\EphemeralKey::OBJECT_NAME => \Stripe\EphemeralKey::class, + \Stripe\Event::OBJECT_NAME => \Stripe\Event::class, + \Stripe\ExchangeRate::OBJECT_NAME => \Stripe\ExchangeRate::class, + \Stripe\File::OBJECT_NAME => \Stripe\File::class, + \Stripe\FileLink::OBJECT_NAME => \Stripe\FileLink::class, + \Stripe\FinancialConnections\Account::OBJECT_NAME => \Stripe\FinancialConnections\Account::class, + \Stripe\FinancialConnections\AccountOwner::OBJECT_NAME => \Stripe\FinancialConnections\AccountOwner::class, + \Stripe\FinancialConnections\AccountOwnership::OBJECT_NAME => \Stripe\FinancialConnections\AccountOwnership::class, + \Stripe\FinancialConnections\Session::OBJECT_NAME => \Stripe\FinancialConnections\Session::class, + \Stripe\FinancialConnections\Transaction::OBJECT_NAME => \Stripe\FinancialConnections\Transaction::class, + \Stripe\Forwarding\Request::OBJECT_NAME => \Stripe\Forwarding\Request::class, + \Stripe\FundingInstructions::OBJECT_NAME => \Stripe\FundingInstructions::class, + \Stripe\Identity\VerificationReport::OBJECT_NAME => \Stripe\Identity\VerificationReport::class, + \Stripe\Identity\VerificationSession::OBJECT_NAME => \Stripe\Identity\VerificationSession::class, + \Stripe\Invoice::OBJECT_NAME => \Stripe\Invoice::class, + \Stripe\InvoiceItem::OBJECT_NAME => \Stripe\InvoiceItem::class, + \Stripe\InvoiceLineItem::OBJECT_NAME => \Stripe\InvoiceLineItem::class, + \Stripe\InvoiceRenderingTemplate::OBJECT_NAME => \Stripe\InvoiceRenderingTemplate::class, + \Stripe\Issuing\Authorization::OBJECT_NAME => \Stripe\Issuing\Authorization::class, + \Stripe\Issuing\Card::OBJECT_NAME => \Stripe\Issuing\Card::class, + \Stripe\Issuing\Cardholder::OBJECT_NAME => \Stripe\Issuing\Cardholder::class, + \Stripe\Issuing\Dispute::OBJECT_NAME => \Stripe\Issuing\Dispute::class, + \Stripe\Issuing\PersonalizationDesign::OBJECT_NAME => \Stripe\Issuing\PersonalizationDesign::class, + \Stripe\Issuing\PhysicalBundle::OBJECT_NAME => \Stripe\Issuing\PhysicalBundle::class, + \Stripe\Issuing\Token::OBJECT_NAME => \Stripe\Issuing\Token::class, + \Stripe\Issuing\Transaction::OBJECT_NAME => \Stripe\Issuing\Transaction::class, + \Stripe\LineItem::OBJECT_NAME => \Stripe\LineItem::class, + \Stripe\LoginLink::OBJECT_NAME => \Stripe\LoginLink::class, + \Stripe\Mandate::OBJECT_NAME => \Stripe\Mandate::class, + \Stripe\PaymentIntent::OBJECT_NAME => \Stripe\PaymentIntent::class, + \Stripe\PaymentLink::OBJECT_NAME => \Stripe\PaymentLink::class, + \Stripe\PaymentMethod::OBJECT_NAME => \Stripe\PaymentMethod::class, + \Stripe\PaymentMethodConfiguration::OBJECT_NAME => \Stripe\PaymentMethodConfiguration::class, + \Stripe\PaymentMethodDomain::OBJECT_NAME => \Stripe\PaymentMethodDomain::class, + \Stripe\Payout::OBJECT_NAME => \Stripe\Payout::class, + \Stripe\Person::OBJECT_NAME => \Stripe\Person::class, + \Stripe\Plan::OBJECT_NAME => \Stripe\Plan::class, + \Stripe\Price::OBJECT_NAME => \Stripe\Price::class, + \Stripe\Product::OBJECT_NAME => \Stripe\Product::class, + \Stripe\ProductFeature::OBJECT_NAME => \Stripe\ProductFeature::class, + \Stripe\PromotionCode::OBJECT_NAME => \Stripe\PromotionCode::class, + \Stripe\Quote::OBJECT_NAME => \Stripe\Quote::class, + \Stripe\Radar\EarlyFraudWarning::OBJECT_NAME => \Stripe\Radar\EarlyFraudWarning::class, + \Stripe\Radar\ValueList::OBJECT_NAME => \Stripe\Radar\ValueList::class, + \Stripe\Radar\ValueListItem::OBJECT_NAME => \Stripe\Radar\ValueListItem::class, + \Stripe\Refund::OBJECT_NAME => \Stripe\Refund::class, + \Stripe\Reporting\ReportRun::OBJECT_NAME => \Stripe\Reporting\ReportRun::class, + \Stripe\Reporting\ReportType::OBJECT_NAME => \Stripe\Reporting\ReportType::class, + \Stripe\ReserveTransaction::OBJECT_NAME => \Stripe\ReserveTransaction::class, + \Stripe\Review::OBJECT_NAME => \Stripe\Review::class, + \Stripe\SetupAttempt::OBJECT_NAME => \Stripe\SetupAttempt::class, + \Stripe\SetupIntent::OBJECT_NAME => \Stripe\SetupIntent::class, + \Stripe\ShippingRate::OBJECT_NAME => \Stripe\ShippingRate::class, + \Stripe\Sigma\ScheduledQueryRun::OBJECT_NAME => \Stripe\Sigma\ScheduledQueryRun::class, + \Stripe\Source::OBJECT_NAME => \Stripe\Source::class, + \Stripe\SourceMandateNotification::OBJECT_NAME => \Stripe\SourceMandateNotification::class, + \Stripe\SourceTransaction::OBJECT_NAME => \Stripe\SourceTransaction::class, + \Stripe\Subscription::OBJECT_NAME => \Stripe\Subscription::class, + \Stripe\SubscriptionItem::OBJECT_NAME => \Stripe\SubscriptionItem::class, + \Stripe\SubscriptionSchedule::OBJECT_NAME => \Stripe\SubscriptionSchedule::class, + \Stripe\Tax\Calculation::OBJECT_NAME => \Stripe\Tax\Calculation::class, + \Stripe\Tax\CalculationLineItem::OBJECT_NAME => \Stripe\Tax\CalculationLineItem::class, + \Stripe\Tax\Registration::OBJECT_NAME => \Stripe\Tax\Registration::class, + \Stripe\Tax\Settings::OBJECT_NAME => \Stripe\Tax\Settings::class, + \Stripe\Tax\Transaction::OBJECT_NAME => \Stripe\Tax\Transaction::class, + \Stripe\Tax\TransactionLineItem::OBJECT_NAME => \Stripe\Tax\TransactionLineItem::class, + \Stripe\TaxCode::OBJECT_NAME => \Stripe\TaxCode::class, + \Stripe\TaxDeductedAtSource::OBJECT_NAME => \Stripe\TaxDeductedAtSource::class, + \Stripe\TaxId::OBJECT_NAME => \Stripe\TaxId::class, + \Stripe\TaxRate::OBJECT_NAME => \Stripe\TaxRate::class, + \Stripe\Terminal\Configuration::OBJECT_NAME => \Stripe\Terminal\Configuration::class, + \Stripe\Terminal\ConnectionToken::OBJECT_NAME => \Stripe\Terminal\ConnectionToken::class, + \Stripe\Terminal\Location::OBJECT_NAME => \Stripe\Terminal\Location::class, + \Stripe\Terminal\Reader::OBJECT_NAME => \Stripe\Terminal\Reader::class, + \Stripe\TestHelpers\TestClock::OBJECT_NAME => \Stripe\TestHelpers\TestClock::class, + \Stripe\Token::OBJECT_NAME => \Stripe\Token::class, + \Stripe\Topup::OBJECT_NAME => \Stripe\Topup::class, + \Stripe\Transfer::OBJECT_NAME => \Stripe\Transfer::class, + \Stripe\TransferReversal::OBJECT_NAME => \Stripe\TransferReversal::class, + \Stripe\Treasury\CreditReversal::OBJECT_NAME => \Stripe\Treasury\CreditReversal::class, + \Stripe\Treasury\DebitReversal::OBJECT_NAME => \Stripe\Treasury\DebitReversal::class, + \Stripe\Treasury\FinancialAccount::OBJECT_NAME => \Stripe\Treasury\FinancialAccount::class, + \Stripe\Treasury\FinancialAccountFeatures::OBJECT_NAME => \Stripe\Treasury\FinancialAccountFeatures::class, + \Stripe\Treasury\InboundTransfer::OBJECT_NAME => \Stripe\Treasury\InboundTransfer::class, + \Stripe\Treasury\OutboundPayment::OBJECT_NAME => \Stripe\Treasury\OutboundPayment::class, + \Stripe\Treasury\OutboundTransfer::OBJECT_NAME => \Stripe\Treasury\OutboundTransfer::class, + \Stripe\Treasury\ReceivedCredit::OBJECT_NAME => \Stripe\Treasury\ReceivedCredit::class, + \Stripe\Treasury\ReceivedDebit::OBJECT_NAME => \Stripe\Treasury\ReceivedDebit::class, + \Stripe\Treasury\Transaction::OBJECT_NAME => \Stripe\Treasury\Transaction::class, + \Stripe\Treasury\TransactionEntry::OBJECT_NAME => \Stripe\Treasury\TransactionEntry::class, + \Stripe\UsageRecord::OBJECT_NAME => \Stripe\UsageRecord::class, + \Stripe\UsageRecordSummary::OBJECT_NAME => \Stripe\UsageRecordSummary::class, + \Stripe\WebhookEndpoint::OBJECT_NAME => \Stripe\WebhookEndpoint::class, + // object classes: The end of the section generated from our OpenAPI spec + ]; + + /** + * @var array Mapping from v2 object types to resource classes + */ + const v2Mapping = [ + // v2 object classes: The beginning of the section generated from our OpenAPI spec + \Stripe\V2\Billing\MeterEvent::OBJECT_NAME => \Stripe\V2\Billing\MeterEvent::class, + \Stripe\V2\Billing\MeterEventAdjustment::OBJECT_NAME => \Stripe\V2\Billing\MeterEventAdjustment::class, + \Stripe\V2\Billing\MeterEventSession::OBJECT_NAME => \Stripe\V2\Billing\MeterEventSession::class, + \Stripe\V2\Event::OBJECT_NAME => \Stripe\V2\Event::class, + \Stripe\V2\EventDestination::OBJECT_NAME => \Stripe\V2\EventDestination::class, + // v2 object classes: The end of the section generated from our OpenAPI spec + ]; +} diff --git a/vendor/stripe/stripe-php/lib/Util/RandomGenerator.php b/vendor/stripe/stripe-php/lib/Util/RandomGenerator.php new file mode 100644 index 0000000..ccf023a --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Util/RandomGenerator.php @@ -0,0 +1,36 @@ + a list of headers that should be persisted across requests + */ + public static $HEADERS_TO_PERSIST = [ + 'Stripe-Account', + 'Stripe-Version', + ]; + + /** @var array */ + public $headers; + + /** @var null|string */ + public $apiKey; + + /** @var null|string */ + public $apiBase; + + /** + * @param null|string $key + * @param array $headers + * @param null|string $base + */ + public function __construct($key = null, $headers = [], $base = null) + { + $this->apiKey = $key; + $this->headers = $headers; + $this->apiBase = $base; + } + + /** + * @return array + */ + public function __debugInfo() + { + return [ + 'apiKey' => $this->redactedApiKey(), + 'headers' => $this->headers, + 'apiBase' => $this->apiBase, + ]; + } + + /** + * Unpacks an options array and merges it into the existing RequestOptions + * object. + * + * @param null|array|RequestOptions|string $options a key => value array + * @param bool $strict when true, forbid string form and arbitrary keys in array form + * + * @return RequestOptions + */ + public function merge($options, $strict = false) + { + $other_options = self::parse($options, $strict); + if (null === $other_options->apiKey) { + $other_options->apiKey = $this->apiKey; + } + if (null === $other_options->apiBase) { + $other_options->apiBase = $this->apiBase; + } + $other_options->headers = \array_merge($this->headers, $other_options->headers); + + return $other_options; + } + + /** + * Discards all headers that we don't want to persist across requests. + */ + public function discardNonPersistentHeaders() + { + foreach ($this->headers as $k => $v) { + if (!\in_array($k, self::$HEADERS_TO_PERSIST, true)) { + unset($this->headers[$k]); + } + } + } + + /** + * Unpacks an options array into an RequestOptions object. + * + * @param null|array|RequestOptions|string $options a key => value array + * @param bool $strict when true, forbid string form and arbitrary keys in array form + * + * @throws \Stripe\Exception\InvalidArgumentException + * + * @return RequestOptions + */ + public static function parse($options, $strict = false) + { + if ($options instanceof self) { + return clone $options; + } + + if (null === $options) { + return new RequestOptions(null, [], null); + } + + if (\is_string($options)) { + if ($strict) { + $message = 'Do not pass a string for request options. If you want to set the ' + . 'API key, pass an array like ["api_key" => ] instead.'; + + throw new \Stripe\Exception\InvalidArgumentException($message); + } + + return new RequestOptions($options, [], null); + } + + if (\is_array($options)) { + $headers = []; + $key = null; + $base = null; + + if (\array_key_exists('api_key', $options)) { + $key = $options['api_key']; + unset($options['api_key']); + } + if (\array_key_exists('idempotency_key', $options)) { + $headers['Idempotency-Key'] = $options['idempotency_key']; + unset($options['idempotency_key']); + } + if (\array_key_exists('stripe_account', $options)) { + if (null !== $options['stripe_account']) { + $headers['Stripe-Account'] = $options['stripe_account']; + } + unset($options['stripe_account']); + } + if (\array_key_exists('stripe_context', $options)) { + if (null !== $options['stripe_context']) { + $headers['Stripe-Context'] = $options['stripe_context']; + } + unset($options['stripe_context']); + } + if (\array_key_exists('stripe_version', $options)) { + if (null !== $options['stripe_version']) { + $headers['Stripe-Version'] = $options['stripe_version']; + } + unset($options['stripe_version']); + } + if (\array_key_exists('api_base', $options)) { + $base = $options['api_base']; + unset($options['api_base']); + } + + if ($strict && !empty($options)) { + $message = 'Got unexpected keys in options array: ' . \implode(', ', \array_keys($options)); + + throw new \Stripe\Exception\InvalidArgumentException($message); + } + + return new RequestOptions($key, $headers, $base); + } + + $message = 'The second argument to Stripe API method calls is an ' + . 'optional per-request apiKey, which must be a string, or ' + . 'per-request options, which must be an array. (HINT: you can set ' + . 'a global apiKey by "Stripe::setApiKey()")'; + + throw new \Stripe\Exception\InvalidArgumentException($message); + } + + /** @return string */ + private function redactedApiKey() + { + if (null === $this->apiKey) { + return ''; + } + + $pieces = \explode('_', $this->apiKey, 3); + $last = \array_pop($pieces); + $redactedLast = \strlen($last) > 4 + ? (\str_repeat('*', \strlen($last) - 4) . \substr($last, -4)) + : $last; + $pieces[] = $redactedLast; + + return \implode('_', $pieces); + } +} diff --git a/vendor/stripe/stripe-php/lib/Util/Set.php b/vendor/stripe/stripe-php/lib/Util/Set.php new file mode 100644 index 0000000..aaa811d --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Util/Set.php @@ -0,0 +1,48 @@ +_elts = []; + foreach ($members as $item) { + $this->_elts[$item] = true; + } + } + + public function includes($elt) + { + return isset($this->_elts[$elt]); + } + + public function add($elt) + { + $this->_elts[$elt] = true; + } + + public function discard($elt) + { + unset($this->_elts[$elt]); + } + + public function toArray() + { + return \array_keys($this->_elts); + } + + /** + * @return ArrayIterator + */ + #[\ReturnTypeWillChange] + public function getIterator() + { + return new ArrayIterator($this->toArray()); + } +} diff --git a/vendor/stripe/stripe-php/lib/Util/Util.php b/vendor/stripe/stripe-php/lib/Util/Util.php new file mode 100644 index 0000000..b8f8886 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Util/Util.php @@ -0,0 +1,362 @@ +newInstanceWithoutConstructor(); + $json = json_decode($json, true); + $properties = $reflection->getProperties(); + foreach ($properties as $key => $property) { + if (\array_key_exists($property->getName(), $json)) { + if ('related_object' === $property->getName()) { + $related_object = new \Stripe\RelatedObject(); + $related_object->id = $json['related_object']['id']; + $related_object->url = $json['related_object']['url']; + $related_object->type = $json['related_object']['type']; + $property->setValue($instance, $related_object); + } elseif ('reason' === $property->getName()) { + $reason = new \Stripe\Reason(); + $reason->id = $json['reason']['id']; + $reason->idempotency_key = $json['reason']['idempotency_key']; + $property->setValue($instance, $reason); + } else { + $property->setAccessible(true); + $property->setValue($instance, $json[$property->getName()]); + } + } + } + + return $instance; + } + + /** + * @param mixed|string $value a string to UTF8-encode + * + * @return mixed|string the UTF8-encoded string, or the object passed in if + * it wasn't a string + */ + public static function utf8($value) + { + if (null === self::$isMbstringAvailable) { + self::$isMbstringAvailable = \function_exists('mb_detect_encoding') + && \function_exists('mb_convert_encoding'); + + if (!self::$isMbstringAvailable) { + \trigger_error( + 'It looks like the mbstring extension is not enabled. ' . + 'UTF-8 strings will not properly be encoded. Ask your system ' + . + 'administrator to enable the mbstring extension, or write to ' + . + 'support@stripe.com if you have any questions.', + \E_USER_WARNING + ); + } + } + + if (\is_string($value) && self::$isMbstringAvailable + && 'UTF-8' !== \mb_detect_encoding($value, 'UTF-8', true) + ) { + return mb_convert_encoding($value, 'UTF-8', 'ISO-8859-1'); + } + + return $value; + } + + /** + * Compares two strings for equality. The time taken is independent of the + * number of characters that match. + * + * @param string $a one of the strings to compare + * @param string $b the other string to compare + * + * @return bool true if the strings are equal, false otherwise + */ + public static function secureCompare($a, $b) + { + if (null === self::$isHashEqualsAvailable) { + self::$isHashEqualsAvailable = \function_exists('hash_equals'); + } + + if (self::$isHashEqualsAvailable) { + return \hash_equals($a, $b); + } + if (\strlen($a) !== \strlen($b)) { + return false; + } + + $result = 0; + for ($i = 0; $i < \strlen($a); ++$i) { + $result |= \ord($a[$i]) ^ \ord($b[$i]); + } + + return 0 === $result; + } + + /** + * Recursively goes through an array of parameters. If a parameter is an instance of + * ApiResource, then it is replaced by the resource's ID. + * Also clears out null values. + * + * @param mixed $h + * + * @return mixed + */ + public static function objectsToIds($h) + { + if ($h instanceof \Stripe\ApiResource) { + return $h->id; + } + if (static::isList($h)) { + $results = []; + foreach ($h as $v) { + $results[] = static::objectsToIds($v); + } + + return $results; + } + if (\is_array($h)) { + $results = []; + foreach ($h as $k => $v) { + if (null === $v) { + continue; + } + $results[$k] = static::objectsToIds($v); + } + + return $results; + } + + return $h; + } + + /** + * @param array $params + * @param mixed $apiMode + * + * @return string + */ + public static function encodeParameters($params, $apiMode = 'v1') + { + $flattenedParams = self::flattenParams($params, null, $apiMode); + $pieces = []; + foreach ($flattenedParams as $param) { + list($k, $v) = $param; + $pieces[] = self::urlEncode($k) . '=' . self::urlEncode($v); + } + + return \implode('&', $pieces); + } + + /** + * @param array $params + * @param null|string $parentKey + * @param mixed $apiMode + * + * @return array + */ + public static function flattenParams( + $params, + $parentKey = null, + $apiMode = 'v1' + ) { + $result = []; + + foreach ($params as $key => $value) { + $calculatedKey = $parentKey ? "{$parentKey}[{$key}]" : $key; + if (self::isList($value)) { + $result = \array_merge( + $result, + self::flattenParamsList($value, $calculatedKey, $apiMode) + ); + } elseif (\is_array($value)) { + $result = \array_merge( + $result, + self::flattenParams($value, $calculatedKey, $apiMode) + ); + } else { + \array_push($result, [$calculatedKey, $value]); + } + } + + return $result; + } + + /** + * @param array $value + * @param string $calculatedKey + * @param mixed $apiMode + * + * @return array + */ + public static function flattenParamsList( + $value, + $calculatedKey, + $apiMode = 'v1' + ) { + $result = []; + + foreach ($value as $i => $elem) { + if (self::isList($elem)) { + $result = \array_merge( + $result, + self::flattenParamsList($elem, $calculatedKey) + ); + } elseif (\is_array($elem)) { + $result = \array_merge( + $result, + self::flattenParams($elem, "{$calculatedKey}[{$i}]") + ); + } else { + if ('v2' === $apiMode) { + \array_push($result, ["{$calculatedKey}", $elem]); + } else { + \array_push($result, ["{$calculatedKey}[{$i}]", $elem]); + } + } + } + + return $result; + } + + /** + * @param string $key a string to URL-encode + * + * @return string the URL-encoded string + */ + public static function urlEncode($key) + { + $s = \urlencode((string) $key); + + // Don't use strict form encoding by changing the square bracket control + // characters back to their literals. This is fine by the server, and + // makes these parameter strings easier to read. + $s = \str_replace('%5B', '[', $s); + + return \str_replace('%5D', ']', $s); + } + + public static function normalizeId($id) + { + if (\is_array($id)) { + // see https://github.com/stripe/stripe-php/pull/1602 + if (!isset($id['id'])) { + return [null, $id]; + } + $params = $id; + $id = $params['id']; + unset($params['id']); + } else { + $params = []; + } + + return [$id, $params]; + } + + /** + * Returns UNIX timestamp in milliseconds. + * + * @return int current time in millis + */ + public static function currentTimeMillis() + { + return (int) \round(\microtime(true) * 1000); + } + + public static function getApiMode($path) + { + $apiMode = 'v1'; + if ('/v2' === substr($path, 0, 3)) { + $apiMode = 'v2'; + } + + return $apiMode; + } +} diff --git a/vendor/stripe/stripe-php/lib/V2/Billing/MeterEvent.php b/vendor/stripe/stripe-php/lib/V2/Billing/MeterEvent.php new file mode 100644 index 0000000..b612f28 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/V2/Billing/MeterEvent.php @@ -0,0 +1,21 @@ +event_name field on a meter. + * @property string $identifier A unique identifier for the event. If not provided, one will be generated. We recommend using a globally unique identifier for this. We’ll enforce uniqueness within a rolling 24 hour period. + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + * @property \Stripe\StripeObject $payload The payload of the event. This must contain the fields corresponding to a meter’s customer_mapping.event_payload_key (default is stripe_customer_id) and value_settings.event_payload_key (default is value). Read more about the payload. + * @property int $timestamp The time of the event. Must be within the past 35 calendar days or up to 5 minutes in the future. Defaults to current timestamp if not specified. + */ +class MeterEvent extends \Stripe\ApiResource +{ + const OBJECT_NAME = 'v2.billing.meter_event'; +} diff --git a/vendor/stripe/stripe-php/lib/V2/Billing/MeterEventAdjustment.php b/vendor/stripe/stripe-php/lib/V2/Billing/MeterEventAdjustment.php new file mode 100644 index 0000000..aa10ce3 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/V2/Billing/MeterEventAdjustment.php @@ -0,0 +1,23 @@ +event_name field on a meter. + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + * @property string $status Open Enum. The meter event adjustment’s status. + * @property string $type Open Enum. Specifies whether to cancel a single event or a range of events for a time period. Time period cancellation is not supported yet. + */ +class MeterEventAdjustment extends \Stripe\ApiResource +{ + const OBJECT_NAME = 'v2.billing.meter_event_adjustment'; + + const STATUS_COMPLETE = 'complete'; + const STATUS_PENDING = 'pending'; +} diff --git a/vendor/stripe/stripe-php/lib/V2/Billing/MeterEventSession.php b/vendor/stripe/stripe-php/lib/V2/Billing/MeterEventSession.php new file mode 100644 index 0000000..14ae5cd --- /dev/null +++ b/vendor/stripe/stripe-php/lib/V2/Billing/MeterEventSession.php @@ -0,0 +1,18 @@ +true if the object exists in live mode or the value false if the object exists in test mode. + */ +class MeterEventSession extends \Stripe\ApiResource +{ + const OBJECT_NAME = 'v2.billing.meter_event_session'; +} diff --git a/vendor/stripe/stripe-php/lib/V2/Collection.php b/vendor/stripe/stripe-php/lib/V2/Collection.php new file mode 100644 index 0000000..d8a1ded --- /dev/null +++ b/vendor/stripe/stripe-php/lib/V2/Collection.php @@ -0,0 +1,110 @@ + + * + * @property null|string $next_page_url + * @property null|string $previous_page_url + * @property TStripeObject[] $data + */ +class Collection extends \Stripe\StripeObject implements \Countable, \IteratorAggregate +{ + const OBJECT_NAME = 'list'; + + use \Stripe\ApiOperations\Request; + + /** + * @return string the base URL for the given class + */ + public static function baseUrl() + { + return \Stripe\Stripe::$apiBase; + } + + /** + * @return mixed + */ + #[\ReturnTypeWillChange] + public function offsetGet($k) + { + if (\is_string($k)) { + return parent::offsetGet($k); + } + $msg = "You tried to access the {$k} index, but V2Collection " . + 'types only support string keys. (HINT: List calls ' . + 'return an object with a `data` (which is the data ' . + "array). You likely want to call ->data[{$k}])"; + + throw new \Stripe\Exception\InvalidArgumentException($msg); + } + + /** + * @return int the number of objects in the current page + */ + #[\ReturnTypeWillChange] + public function count() + { + return \count($this->data); + } + + /** + * @return \ArrayIterator an iterator that can be used to iterate + * across objects in the current page + */ + #[\ReturnTypeWillChange] + public function getIterator() + { + return new \ArrayIterator($this->data); + } + + /** + * @return \ArrayIterator an iterator that can be used to iterate + * backwards across objects in the current page + */ + public function getReverseIterator() + { + return new \ArrayIterator(\array_reverse($this->data)); + } + + /** + * @throws \Stripe\Exception\ApiErrorException + * + * @return \Generator|TStripeObject[] A generator that can be used to + * iterate across all objects across all pages. As page boundaries are + * encountered, the next page will be fetched automatically for + * continued iteration. + */ + public function autoPagingIterator() + { + $page = $this->data; + $next_page_url = $this->next_page_url; + + while (true) { + foreach ($page as $item) { + yield $item; + } + if (null === $next_page_url) { + break; + } + + list($response, $opts) = $this->_request( + 'get', + $next_page_url, + null, + null, + [], + 'v2' + ); + $obj = \Stripe\Util\Util::convertToStripeObject($response, $opts, 'v2'); + /** @phpstan-ignore-next-line */ + $page = $obj->data; + /** @phpstan-ignore-next-line */ + $next_page_url = $obj->next_page_url; + } + } +} diff --git a/vendor/stripe/stripe-php/lib/V2/Event.php b/vendor/stripe/stripe-php/lib/V2/Event.php new file mode 100644 index 0000000..9b87f29 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/V2/Event.php @@ -0,0 +1,21 @@ +true if the object exists in live mode or the value false if the object exists in test mode. + * @property null|\Stripe\StripeObject $metadata Metadata. + * @property string $name Event destination name. + * @property null|string $snapshot_api_version If using the snapshot event payload, the API version events are rendered as. + * @property string $status Status. It can be set to either enabled or disabled. + * @property null|\Stripe\StripeObject $status_details Additional information about event destination status. + * @property string $type Event destination type. + * @property int $updated Time at which the object was last updated. + * @property null|\Stripe\StripeObject $webhook_endpoint Webhook endpoint configuration. + */ +class EventDestination extends \Stripe\ApiResource +{ + const OBJECT_NAME = 'v2.core.event_destination'; + + const EVENT_PAYLOAD_SNAPSHOT = 'snapshot'; + const EVENT_PAYLOAD_THIN = 'thin'; + + const STATUS_DISABLED = 'disabled'; + const STATUS_ENABLED = 'enabled'; + + const TYPE_AMAZON_EVENTBRIDGE = 'amazon_eventbridge'; + const TYPE_WEBHOOK_ENDPOINT = 'webhook_endpoint'; +} diff --git a/vendor/stripe/stripe-php/lib/Webhook.php b/vendor/stripe/stripe-php/lib/Webhook.php new file mode 100644 index 0000000..9d92b0e --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Webhook.php @@ -0,0 +1,42 @@ +webhook endpoints via the API to be + * notified about events that happen in your Stripe account or connected + * accounts. + * + * Most users configure webhooks from the dashboard, which provides a user interface for registering and testing your webhook endpoints. + * + * Related guide: Setting up webhooks + * + * @property string $id Unique identifier for the object. + * @property string $object String representing the object's type. Objects of the same type share the same value. + * @property null|string $api_version The API version events are rendered as for this webhook endpoint. + * @property null|string $application The ID of the associated Connect application. + * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch. + * @property null|string $description An optional description of what the webhook is used for. + * @property string[] $enabled_events The list of events to enable for this endpoint. ['*'] indicates that all events are enabled, except those that require explicit selection. + * @property bool $livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode. + * @property \Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + * @property null|string $secret The endpoint's secret, used to generate webhook signatures. Only returned at creation. + * @property string $status The status of the webhook. It can be enabled or disabled. + * @property string $url The URL of the webhook endpoint. + */ +class WebhookEndpoint extends ApiResource +{ + const OBJECT_NAME = 'webhook_endpoint'; + + use ApiOperations\Update; + + /** + * A webhook endpoint must have a url and a list of + * enabled_events. You may optionally specify the Boolean + * connect parameter. If set to true, then a Connect webhook endpoint + * that notifies the specified url about events from all connected + * accounts is created; otherwise an account webhook endpoint that notifies the + * specified url only about events from your account is created. You + * can also create webhook endpoints in the webhooks settings + * section of the Dashboard. + * + * @param null|array $params + * @param null|array|string $options + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\WebhookEndpoint the created resource + */ + public static function create($params = null, $options = null) + { + self::_validateParams($params); + $url = static::classUrl(); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $options); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } + + /** + * You can also delete webhook endpoints via the webhook endpoint + * management page of the Stripe dashboard. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\WebhookEndpoint the deleted resource + */ + public function delete($params = null, $opts = null) + { + self::_validateParams($params); + + $url = $this->instanceUrl(); + list($response, $opts) = $this->_request('delete', $url, $params, $opts); + $this->refreshFrom($response, $opts); + + return $this; + } + + /** + * Returns a list of your webhook endpoints. + * + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\Collection<\Stripe\WebhookEndpoint> of ApiResources + */ + public static function all($params = null, $opts = null) + { + $url = static::classUrl(); + + return static::_requestPage($url, \Stripe\Collection::class, $params, $opts); + } + + /** + * Retrieves the webhook endpoint with the given ID. + * + * @param array|string $id the ID of the API resource to retrieve, or an options array containing an `id` key + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\WebhookEndpoint + */ + public static function retrieve($id, $opts = null) + { + $opts = \Stripe\Util\RequestOptions::parse($opts); + $instance = new static($id, $opts); + $instance->refresh(); + + return $instance; + } + + /** + * Updates the webhook endpoint. You may edit the url, the list of + * enabled_events, and the status of your endpoint. + * + * @param string $id the ID of the resource to update + * @param null|array $params + * @param null|array|string $opts + * + * @throws \Stripe\Exception\ApiErrorException if the request fails + * + * @return \Stripe\WebhookEndpoint the updated resource + */ + public static function update($id, $params = null, $opts = null) + { + self::_validateParams($params); + $url = static::resourceUrl($id); + + list($response, $opts) = static::_staticRequest('post', $url, $params, $opts); + $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts); + $obj->setLastResponse($response); + + return $obj; + } +} diff --git a/vendor/stripe/stripe-php/lib/WebhookSignature.php b/vendor/stripe/stripe-php/lib/WebhookSignature.php new file mode 100644 index 0000000..46cbb28 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/WebhookSignature.php @@ -0,0 +1,140 @@ + 0) && (\abs(\time() - $timestamp) > $tolerance)) { + throw Exception\SignatureVerificationException::factory( + 'Timestamp outside the tolerance zone', + $payload, + $header + ); + } + + return true; + } + + /** + * Extracts the timestamp in a signature header. + * + * @param string $header the signature header + * + * @return int the timestamp contained in the header, or -1 if no valid + * timestamp is found + */ + private static function getTimestamp($header) + { + $items = \explode(',', $header); + + foreach ($items as $item) { + $itemParts = \explode('=', $item, 2); + if ('t' === $itemParts[0]) { + if (!\is_numeric($itemParts[1])) { + return -1; + } + + return (int) ($itemParts[1]); + } + } + + return -1; + } + + /** + * Extracts the signatures matching a given scheme in a signature header. + * + * @param string $header the signature header + * @param string $scheme the signature scheme to look for + * + * @return array the list of signatures matching the provided scheme + */ + private static function getSignatures($header, $scheme) + { + $signatures = []; + $items = \explode(',', $header); + + foreach ($items as $item) { + $itemParts = \explode('=', $item, 2); + if (\trim($itemParts[0]) === $scheme) { + $signatures[] = $itemParts[1]; + } + } + + return $signatures; + } + + /** + * Computes the signature for a given payload and secret. + * + * The current scheme used by Stripe ("v1") is HMAC/SHA-256. + * + * @param string $payload the payload to sign + * @param string $secret the secret used to generate the signature + * + * @return string the signature as a string + */ + private static function computeSignature($payload, $secret) + { + return \hash_hmac('sha256', $payload, $secret); + } +} diff --git a/woocommerce/checkout/form-checkout.php b/woocommerce/checkout/form-checkout.php new file mode 100644 index 0000000..10dfe9e --- /dev/null +++ b/woocommerce/checkout/form-checkout.php @@ -0,0 +1,55 @@ + + +
    + + get_checkout_fields()) : ?> + + + +
    +
    + +
    + +
    + +
    +
    + + + + + + + +

    + + + +
    + + + +
    + +
    + + +
    +
    +
    + + + +
    + + \ No newline at end of file diff --git a/woocommerce/checkout/order-bump.php b/woocommerce/checkout/order-bump.php new file mode 100644 index 0000000..4d55df9 --- /dev/null +++ b/woocommerce/checkout/order-bump.php @@ -0,0 +1,174 @@ +cart->get_cart(); +error_log('Cart items: ' . print_r($cart_items, true)); + +$tour_id = null; +$available_extras = array(); + +// Poišči tour ID iz prvega izdelka v košarici +foreach ($cart_items as $cart_item) { + if (isset($cart_item['product_id'])) { + $product = wc_get_product($cart_item['product_id']); + if ($product) { + $sku = $product->get_sku(); + if (strpos($sku, 'tour-') === 0) { + $tour_id = str_replace('tour-', '', $sku); + break; + } + } + } +} + +// Če smo našli tour ID, pridobimo njegove extras +if ($tour_id) { + $available_extras = get_post_meta($tour_id, '_available_extras', true); +} + +// Če ni extras-ov, ne prikazujemo ničesar +if (empty($available_extras)) { + return; +} +?> + +
    +

    Available Extras

    +

    Enhance your tour experience with these additional services:

    + +
    + $extra) : ?> +
    + +
    + +
    +
    + + + + \ No newline at end of file

    & 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%0Aqvi< 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 HrT_o{3C-}f literal 0 HcmV?d00001 diff --git a/images/luka.webp b/images/luka.webp new file mode 100644 index 0000000000000000000000000000000000000000..72529f57ef7485e8672c5a8ae28366df4cc3b653 GIT binary patch literal 642410 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�)X@mc;C68YWdwYuAYrLhJ+F); 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ℑBDTVL)c%mvlP$AL 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%0AZDw%Fr0H&RIzP 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