braintree 4.30.0 → 4.32.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. checksums.yaml +4 -4
  2. data/lib/braintree/address_gateway.rb +5 -0
  3. data/lib/braintree/apple_pay_card.rb +1 -0
  4. data/lib/braintree/bank_account_instant_verification_gateway.rb +38 -0
  5. data/lib/braintree/bank_account_instant_verification_jwt.rb +23 -0
  6. data/lib/braintree/bank_account_instant_verification_jwt_request.rb +21 -0
  7. data/lib/braintree/error_codes.rb +12 -0
  8. data/lib/braintree/gateway.rb +4 -0
  9. data/lib/braintree/payment_method_gateway.rb +6 -0
  10. data/lib/braintree/successful_result.rb +1 -0
  11. data/lib/braintree/transaction/apple_pay_details.rb +2 -0
  12. data/lib/braintree/transaction/credit_card_details.rb +2 -0
  13. data/lib/braintree/transaction/google_pay_details.rb +1 -0
  14. data/lib/braintree/transaction.rb +1 -0
  15. data/lib/braintree/transaction_gateway.rb +25 -1
  16. data/lib/braintree/us_bank_account_verification.rb +3 -1
  17. data/lib/braintree/version.rb +1 -1
  18. data/lib/braintree.rb +3 -0
  19. data/spec/integration/braintree/bank_account_instant_verification_spec.rb +191 -0
  20. data/spec/integration/braintree/client_api/spec_helper.rb +81 -0
  21. data/spec/integration/braintree/credit_card_verification_spec.rb +7 -0
  22. data/spec/integration/braintree/payment_method_spec.rb +3 -0
  23. data/spec/integration/braintree/payment_method_us_bank_account_spec.rb +0 -3
  24. data/spec/integration/braintree/transaction_search_spec.rb +26 -24
  25. data/spec/integration/braintree/transaction_spec.rb +117 -3
  26. data/spec/integration/braintree/transaction_transfer_type_spec.rb +255 -0
  27. data/spec/integration/braintree/transaction_us_bank_account_spec.rb +0 -1
  28. data/spec/integration/braintree/us_bank_account_spec.rb +0 -3
  29. data/spec/spec_helper.rb +7 -0
  30. data/spec/unit/braintree/apple_pay_card_spec.rb +2 -0
  31. data/spec/unit/braintree/bank_account_instant_verification_gateway_spec.rb +98 -0
  32. data/spec/unit/braintree/bank_account_instant_verification_jwt_request_spec.rb +71 -0
  33. data/spec/unit/braintree/credit_card_verification_spec.rb +17 -0
  34. data/spec/unit/braintree/transaction/apple_pay_details_spec.rb +9 -0
  35. data/spec/unit/braintree/transaction/credit_card_details_spec.rb +10 -1
  36. data/spec/unit/braintree/transaction/google_pay_details_spec.rb +9 -0
  37. data/spec/unit/braintree/transaction_ach_mandate_spec.rb +82 -0
  38. data/spec/unit/braintree/transaction_gateway_spec.rb +21 -1
  39. data/spec/unit/braintree/transaction_spec.rb +48 -0
  40. metadata +13 -7
  41. data/lib/ssl/securetrust_ca.crt +0 -44
@@ -0,0 +1,71 @@
1
+ require File.expand_path(File.dirname(__FILE__) + "/../spec_helper")
2
+
3
+ describe Braintree::BankAccountInstantVerificationJwtRequest do
4
+ describe "to_graphql_variables" do
5
+ it "includes all fields when present" do
6
+ request = Braintree::BankAccountInstantVerificationJwtRequest.new(
7
+ :business_name => "Test Business",
8
+ :return_url => "https://example.com/success",
9
+ :cancel_url => "https://example.com/cancel",
10
+ )
11
+
12
+ variables = request.to_graphql_variables
13
+
14
+ expect(variables).not_to be_nil
15
+ expect(variables).to have_key(:input)
16
+
17
+ input = variables[:input]
18
+
19
+ expect(input[:businessName]).to eq("Test Business")
20
+ expect(input[:returnUrl]).to eq("https://example.com/success")
21
+ expect(input[:cancelUrl]).to eq("https://example.com/cancel")
22
+ end
23
+
24
+ it "only includes non-null fields" do
25
+ request = Braintree::BankAccountInstantVerificationJwtRequest.new(
26
+ :business_name => "Test Business",
27
+ :return_url => "https://example.com/success",
28
+ )
29
+
30
+ variables = request.to_graphql_variables
31
+
32
+ input = variables[:input]
33
+
34
+ expect(input[:businessName]).to eq("Test Business")
35
+ expect(input[:returnUrl]).to eq("https://example.com/success")
36
+ expect(input).not_to have_key(:cancelUrl)
37
+ end
38
+
39
+ it "handles empty request" do
40
+ request = Braintree::BankAccountInstantVerificationJwtRequest.new
41
+
42
+ variables = request.to_graphql_variables
43
+
44
+ expect(variables).to eq({:input => {}})
45
+ end
46
+ end
47
+
48
+ describe "attribute accessors" do
49
+ it "allows setting and getting all attributes and initializes with hash of attributes" do
50
+ request = Braintree::BankAccountInstantVerificationJwtRequest.new(
51
+ :business_name => "Test Business",
52
+ :return_url => "https://example.com/success",
53
+ :cancel_url => "https://example.com/cancel",
54
+ )
55
+
56
+ expect(request.business_name).to eq("Test Business")
57
+ expect(request.return_url).to eq("https://example.com/success")
58
+ expect(request.cancel_url).to eq("https://example.com/cancel")
59
+
60
+ new_request = Braintree::BankAccountInstantVerificationJwtRequest.new
61
+
62
+ new_request.business_name = "Updated Business"
63
+ new_request.return_url = "https://example.com/updated"
64
+ new_request.cancel_url = "https://example.com/updated-cancel"
65
+
66
+ expect(new_request.business_name).to eq("Updated Business")
67
+ expect(new_request.return_url).to eq("https://example.com/updated")
68
+ expect(new_request.cancel_url).to eq("https://example.com/updated-cancel")
69
+ end
70
+ end
71
+ end
@@ -159,4 +159,21 @@ describe Braintree::CreditCardVerification do
159
159
  expect(verification.network_response_text).to eq("Successful approval/completion or V.I.P. PIN verification is successful")
160
160
  end
161
161
  end
162
+
163
+ describe "credit_card with payment_account_reference" do
164
+ it "includes payment_account_reference in credit_card hash when present" do
165
+ verification = Braintree::CreditCardVerification._new(
166
+ :status => "verified",
167
+ :credit_card => {
168
+ :bin => "401288",
169
+ :last_4 => "1881",
170
+ :card_type => "Visa",
171
+ :payment_account_reference => "V0010013019339005665779448477"
172
+ },
173
+ )
174
+
175
+ expect(verification.credit_card).to be_a(Hash)
176
+ expect(verification.credit_card[:payment_account_reference]).to eq("V0010013019339005665779448477")
177
+ end
178
+ end
162
179
  end
@@ -25,4 +25,13 @@ describe Braintree::ApplePayDetails do
25
25
  card = Braintree::ApplePayDetails._new(:gateway, {:purchase => "No"})
26
26
  expect(card.purchase).to eq("No")
27
27
  end
28
+
29
+ describe "payment_account_reference" do
30
+ it "returns the payment account reference when present" do
31
+ details = Braintree::Transaction::ApplePayDetails.new(
32
+ :payment_account_reference => "V0010013019339005665779448477",
33
+ )
34
+ expect(details.payment_account_reference).to eq("V0010013019339005665779448477")
35
+ end
36
+ end
28
37
  end
@@ -39,7 +39,7 @@ describe Braintree::Transaction::CreditCardDetails do
39
39
  :image_url => "example.com/visa.png",
40
40
  :unique_number_identifier => "abc123",
41
41
  )
42
- expect(details.inspect).to eq(%(#<token: "token", bin: "123456", business: "No", last_4: "6789", card_type: "Visa", commercial: "Unknown", consumer: "Unknown", corporate: "Unknown", country_of_issuance: "Lilliput", customer_location: "US", debit: "Yes", durbin_regulated: "No", expiration_date: "05/2012", healthcare: "No", image_url: "example.com/visa.png", issuing_bank: "Gulliver Bank", payroll: "Unknown", prepaid: "Yes", prepaid_reloadable: "Yes", product_id: "Unknown", purchase: "Unknown", cardholder_name: "The Cardholder", unique_number_identifier: "abc123">))
42
+ expect(details.inspect).to eq(%(#<token: "token", bin: "123456", business: "No", last_4: "6789", card_type: "Visa", commercial: "Unknown", consumer: "Unknown", corporate: "Unknown", country_of_issuance: "Lilliput", customer_location: "US", debit: "Yes", durbin_regulated: "No", expiration_date: "05/2012", healthcare: "No", image_url: "example.com/visa.png", issuing_bank: "Gulliver Bank", payroll: "Unknown", prepaid: "Yes", prepaid_reloadable: "Yes", product_id: "Unknown", purchase: "Unknown", cardholder_name: "The Cardholder", unique_number_identifier: "abc123", payment_account_reference: nil>))
43
43
  end
44
44
  end
45
45
 
@@ -67,4 +67,13 @@ describe Braintree::Transaction::CreditCardDetails do
67
67
  expect(details.is_network_tokenized?).to eq(false)
68
68
  end
69
69
  end
70
+
71
+ describe "payment_account_reference" do
72
+ it "returns the payment account reference when present" do
73
+ details = Braintree::Transaction::CreditCardDetails.new(
74
+ :payment_account_reference => "V0010013019339005665779448477",
75
+ )
76
+ expect(details.payment_account_reference).to eq("V0010013019339005665779448477")
77
+ end
78
+ end
70
79
  end
@@ -25,4 +25,13 @@ describe Braintree::GooglePayDetails do
25
25
  card = Braintree::GooglePayDetails._new(:gateway, {:purchase => "No"})
26
26
  expect(card.purchase).to eq("No")
27
27
  end
28
+
29
+ context "payment_account_reference" do
30
+ it "returns the payment account reference when present" do
31
+ details = Braintree::Transaction::GooglePayDetails.new(
32
+ :payment_account_reference => "V0010013019339005665779448477",
33
+ )
34
+ expect(details.payment_account_reference).to eq("V0010013019339005665779448477")
35
+ end
36
+ end
28
37
  end
@@ -0,0 +1,82 @@
1
+ require File.expand_path(File.dirname(__FILE__) + "/../spec_helper")
2
+
3
+ describe "Transaction ACH Mandate" do
4
+ describe "transaction request handling" do
5
+ let(:gateway) { Braintree::Gateway.new(:environment => :sandbox, :merchant_id => "test", :public_key => "test", :private_key => "test") }
6
+ let(:transaction_gateway) { gateway.transaction }
7
+
8
+ it "processes us_bank_account ACH mandate fields" do
9
+ mandate_time = Time.now
10
+
11
+ # Mock the HTTP response for transaction creation
12
+ allow(gateway.config.http).to receive(:post).and_return({
13
+ :transaction => {
14
+ :id => "test_transaction_id",
15
+ :amount => "100.00",
16
+ :status => "authorized",
17
+ :us_bank_account => {
18
+ :token => "test_token",
19
+ :ach_mandate => {
20
+ :text => "I authorize this ACH debit",
21
+ :accepted_at => mandate_time.iso8601
22
+ }
23
+ }
24
+ }
25
+ })
26
+
27
+ transaction_attributes = {
28
+ :amount => "100.00",
29
+ :payment_method_token => "test_token",
30
+ :us_bank_account => {
31
+ :ach_mandate_text => "I authorize this ACH debit",
32
+ :ach_mandate_accepted_at => mandate_time
33
+ }
34
+ }
35
+
36
+ # This should not raise an error due to signature validation
37
+ expect {
38
+ Braintree::Util.verify_keys(Braintree::TransactionGateway._create_signature, transaction_attributes)
39
+ }.not_to raise_error
40
+ end
41
+
42
+ it "allows ACH mandate text only" do
43
+ transaction_attributes = {
44
+ :amount => "50.00",
45
+ :payment_method_token => "test_token",
46
+ :us_bank_account => {
47
+ :ach_mandate_text => "I authorize this ACH debit"
48
+ }
49
+ }
50
+
51
+ expect {
52
+ Braintree::Util.verify_keys(Braintree::TransactionGateway._create_signature, transaction_attributes)
53
+ }.not_to raise_error
54
+ end
55
+
56
+ it "allows ACH mandate accepted_at only" do
57
+ transaction_attributes = {
58
+ :amount => "50.00",
59
+ :payment_method_token => "test_token",
60
+ :us_bank_account => {
61
+ :ach_mandate_accepted_at => Time.now
62
+ }
63
+ }
64
+
65
+ expect {
66
+ Braintree::Util.verify_keys(Braintree::TransactionGateway._create_signature, transaction_attributes)
67
+ }.not_to raise_error
68
+ end
69
+
70
+ it "allows empty us_bank_account hash" do
71
+ transaction_attributes = {
72
+ :amount => "50.00",
73
+ :payment_method_token => "test_token",
74
+ :us_bank_account => {}
75
+ }
76
+
77
+ expect {
78
+ Braintree::Util.verify_keys(Braintree::TransactionGateway._create_signature, transaction_attributes)
79
+ }.not_to raise_error
80
+ end
81
+ end
82
+ end
@@ -35,7 +35,7 @@ describe Braintree::TransactionGateway do
35
35
  expect(Braintree::TransactionGateway._create_signature).to match([
36
36
  :amount, :billing_address_id, :channel, :currency_iso_code, :customer_id, :device_data,
37
37
  :discount_amount, :exchange_rate_quote_id, :foreign_retailer,
38
- :merchant_account_id, :order_id, :payment_method_nonce, :payment_method_token,
38
+ :merchant_account_id, :order_id, :payment_method_nonce, :payment_method_token, :processing_merchant_category_code,
39
39
  :product_sku, :purchase_order_number, :service_fee_amount, :shared_billing_address_id,
40
40
  :shared_customer_id, :shared_payment_method_nonce, :shared_payment_method_token,
41
41
  :shared_shipping_address_id, :shipping_address_id, :shipping_amount, :shipping_tax_amount,
@@ -132,6 +132,26 @@ describe Braintree::TransactionGateway do
132
132
  {
133
133
  :transfer => [
134
134
  :type,
135
+ {:sender => [
136
+ :first_name,
137
+ :last_name,
138
+ :account_reference_number,
139
+ :tax_id,
140
+ :address => Braintree::AddressGateway._address_attributes
141
+ ]},
142
+ {:receiver => [
143
+ :first_name,
144
+ :last_name,
145
+ :account_reference_number,
146
+ :tax_id,
147
+ :address => Braintree::AddressGateway._address_attributes
148
+ ]},
149
+ ]
150
+ },
151
+ {
152
+ :us_bank_account => [
153
+ :ach_mandate_text,
154
+ :ach_mandate_accepted_at,
135
155
  ]
136
156
  },
137
157
  ])
@@ -157,6 +157,44 @@ describe Braintree::Transaction do
157
157
  expect(transaction.credit_card_details.issuing_bank).to eq("Mr Tumnus")
158
158
  end
159
159
 
160
+ describe "payment_account_reference in transaction details" do
161
+ it "exposes payment_account_reference in credit_card_details" do
162
+ transaction = Braintree::Transaction._new(
163
+ :gateway,
164
+ :credit_card => {
165
+ :bin => "401288",
166
+ :last_4 => "1881",
167
+ :card_type => "Visa",
168
+ :payment_account_reference => "V0010013019339005665779448477"
169
+ },
170
+ )
171
+ expect(transaction.credit_card_details.payment_account_reference).to eq("V0010013019339005665779448477")
172
+ end
173
+
174
+ it "exposes payment_account_reference in apple_pay_details" do
175
+ transaction = Braintree::Transaction._new(
176
+ :gateway,
177
+ :apple_pay => {
178
+ :payment_instrument_name => "Apple Pay",
179
+ :payment_account_reference => "V0010013019339005665779448477"
180
+ },
181
+ )
182
+ expect(transaction.apple_pay_details.payment_account_reference).to eq("V0010013019339005665779448477")
183
+ end
184
+
185
+ it "exposes payment_account_reference in google_pay_details" do
186
+ transaction = Braintree::Transaction._new(
187
+ :gateway,
188
+ :android_pay_card => {
189
+ :virtual_card_type => "Visa",
190
+ :payment_account_reference => "V0010013019339005665779448477"
191
+ },
192
+ )
193
+ expect(transaction.google_pay_details.payment_account_reference).to eq("V0010013019339005665779448477")
194
+ end
195
+
196
+ end
197
+
160
198
  it "sets up network token attributes in network_token_details" do
161
199
  transaction = Braintree::Transaction._new(
162
200
  :gateway,
@@ -317,6 +355,16 @@ describe Braintree::Transaction do
317
355
  expect(transaction.ach_return_code).to eq("R01")
318
356
  end
319
357
 
358
+ it "accepts ach_reject_reason" do
359
+ transaction = Braintree::Transaction._new(
360
+ :gateway,
361
+ :ach_return_code => "RJCT",
362
+ :ach_reject_reason => "some reject reason",
363
+ )
364
+ expect(transaction.ach_return_code).to eq("RJCT")
365
+ expect(transaction.ach_reject_reason).to eq("some reject reason")
366
+ end
367
+
320
368
  it "accepts network_response code and network_response_text" do
321
369
  transaction = Braintree::Transaction._new(
322
370
  :gateway,
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: braintree
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.30.0
4
+ version: 4.32.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Braintree
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-08-05 00:00:00.000000000 Z
11
+ date: 2025-10-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: builder
@@ -61,6 +61,9 @@ files:
61
61
  - lib/braintree/apple_pay_gateway.rb
62
62
  - lib/braintree/apple_pay_options.rb
63
63
  - lib/braintree/authorization_adjustment.rb
64
+ - lib/braintree/bank_account_instant_verification_gateway.rb
65
+ - lib/braintree/bank_account_instant_verification_jwt.rb
66
+ - lib/braintree/bank_account_instant_verification_jwt_request.rb
64
67
  - lib/braintree/base_module.rb
65
68
  - lib/braintree/bin_data.rb
66
69
  - lib/braintree/client_token.rb
@@ -237,7 +240,6 @@ files:
237
240
  - lib/braintree/xml/parser.rb
238
241
  - lib/braintree/xml/rexml.rb
239
242
  - lib/ssl/api_braintreegateway_com.ca.crt
240
- - lib/ssl/securetrust_ca.crt
241
243
  - spec/fixtures/files/bt_logo.png
242
244
  - spec/fixtures/files/gif_extension_bt_logo.gif
243
245
  - spec/fixtures/files/malformed_pdf.pdf
@@ -246,6 +248,7 @@ files:
246
248
  - spec/integration/braintree/address_spec.rb
247
249
  - spec/integration/braintree/advanced_search_spec.rb
248
250
  - spec/integration/braintree/apple_pay_spec.rb
251
+ - spec/integration/braintree/bank_account_instant_verification_spec.rb
249
252
  - spec/integration/braintree/braintree_gateway_spec.rb
250
253
  - spec/integration/braintree/client_api/client_token_spec.rb
251
254
  - spec/integration/braintree/client_api/spec_helper.rb
@@ -300,6 +303,8 @@ files:
300
303
  - spec/ssl/privateKey.key
301
304
  - spec/unit/braintree/address_spec.rb
302
305
  - spec/unit/braintree/apple_pay_card_spec.rb
306
+ - spec/unit/braintree/bank_account_instant_verification_gateway_spec.rb
307
+ - spec/unit/braintree/bank_account_instant_verification_jwt_request_spec.rb
303
308
  - spec/unit/braintree/base_module_spec.rb
304
309
  - spec/unit/braintree/client_token_spec.rb
305
310
  - spec/unit/braintree/configuration_spec.rb
@@ -371,6 +376,7 @@ files:
371
376
  - spec/unit/braintree/transaction/paypal_details_spec.rb
372
377
  - spec/unit/braintree/transaction/sepa_direct_debit_account_details_spec.rb
373
378
  - spec/unit/braintree/transaction/visa_checkout_card_details_spec.rb
379
+ - spec/unit/braintree/transaction_ach_mandate_spec.rb
374
380
  - spec/unit/braintree/transaction_gateway_spec.rb
375
381
  - spec/unit/braintree/transaction_search_spec.rb
376
382
  - spec/unit/braintree/transaction_spec.rb
@@ -399,7 +405,7 @@ metadata:
399
405
  changelog_uri: https://github.com/braintree/braintree_ruby/blob/master/CHANGELOG.md
400
406
  source_code_uri: https://github.com/braintree/braintree_ruby
401
407
  documentation_uri: https://developer.paypal.com/braintree/docs
402
- post_install_message:
408
+ post_install_message:
403
409
  rdoc_options: []
404
410
  require_paths:
405
411
  - lib
@@ -414,8 +420,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
414
420
  - !ruby/object:Gem::Version
415
421
  version: '0'
416
422
  requirements: []
417
- rubygems_version: 3.3.15
418
- signing_key:
423
+ rubygems_version: 3.2.5
424
+ signing_key:
419
425
  specification_version: 4
420
426
  summary: Braintree Ruby Server SDK
421
427
  test_files: []
@@ -1,44 +0,0 @@
1
- -----BEGIN CERTIFICATE-----
2
- MIIDuDCCAqCgAwIBAgIQDPCOXAgWpa1Cf/DrJxhZ0DANBgkqhkiG9w0BAQUFADBI
3
- MQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24x
4
- FzAVBgNVBAMTDlNlY3VyZVRydXN0IENBMB4XDTA2MTEwNzE5MzExOFoXDTI5MTIz
5
- MTE5NDA1NVowSDELMAkGA1UEBhMCVVMxIDAeBgNVBAoTF1NlY3VyZVRydXN0IENv
6
- cnBvcmF0aW9uMRcwFQYDVQQDEw5TZWN1cmVUcnVzdCBDQTCCASIwDQYJKoZIhvcN
7
- AQEBBQADggEPADCCAQoCggEBAKukgeWVzfX2FI7CT8rU4niVWJxB4Q2ZQCQXOZEz
8
- Zum+4YOvYlyJ0fwkW2Gz4BERQRwdbvC4u/jep4G6pkjGnx29vo6pQT64lO0pGtSO
9
- 0gMdA+9tDWccV9cGrcrI9f4Or2YlSASWC12juhbDCE/RRvgUXPLIXgGZbf2IzIao
10
- wW8xQmxSPmjL8xk037uHGFaAJsTQ3MBv396gwpEWoGQRS0S8Hvbn+mPeZqx2pHGj
11
- 7DaUaHp3pLHnDi+BeuK1cobvomuL8A/b01k/unK8RCSc43Oz969XL0Imnal0ugBS
12
- 8kvNU3xHCzaFDmapCJcWNFfBZveA4+1wVMeT4C4oFVmHursCAwEAAaOBnTCBmjAT
13
- BgkrBgEEAYI3FAIEBh4EAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB
14
- /zAdBgNVHQ4EFgQUQjK2FvoE/f5dS3rD/fdMQB1aQ68wNAYDVR0fBC0wKzApoCeg
15
- JYYjaHR0cDovL2NybC5zZWN1cmV0cnVzdC5jb20vU1RDQS5jcmwwEAYJKwYBBAGC
16
- NxUBBAMCAQAwDQYJKoZIhvcNAQEFBQADggEBADDtT0rhWDpSclu1pqNlGKa7UTt3
17
- 6Z3q059c4EVlew3KW+JwULKUBRSuSceNQQcSc5R+DCMh/bwQf2AQWnL1mA6s7Ll/
18
- 3XpvXdMc9P+IBWlCqQVxyLesJugutIxq/3HcuLHfmbx8IVQr5Fiiu1cprp6poxkm
19
- D5kuCLDv/WnPmRoJjeOnnyvJNjR7JLN4TJUXpAYmHrZkUjZfYGfZnMUFdAvnZyPS
20
- CPyI6a6Lf+Ew9Dd+/cYy2i2eRDAwbO4H3tI0/NL/QPZL9GZGBlSm8jIKYyYwa5vR
21
- 3ItHuuG51WLQoqD0ZwV4KWMabwTW+MZMo5qxN7SN5ShLHZ4swrhovO0C7jE=
22
- -----END CERTIFICATE-----
23
- -----BEGIN CERTIFICATE-----
24
- MIIDvDCCAqSgAwIBAgIQB1YipOjUiolN9BPI8PjqpTANBgkqhkiG9w0BAQUFADBK
25
- MQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24x
26
- GTAXBgNVBAMTEFNlY3VyZSBHbG9iYWwgQ0EwHhcNMDYxMTA3MTk0MjI4WhcNMjkx
27
- MjMxMTk1MjA2WjBKMQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3Qg
28
- Q29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBHbG9iYWwgQ0EwggEiMA0GCSqG
29
- SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvNS7YrGxVaQZx5RNoJLNP2MwhR/jxYDiJ
30
- iQPpvepeRlMJ3Fz1Wuj3RSoC6zFh1ykzTM7HfAo3fg+6MpjhHZevj8fcyTiW89sa
31
- /FHtaMbQbqR8JNGuQsiWUGMu4P51/pinX0kuleM5M2SOHqRfkNJnPLLZ/kG5VacJ
32
- jnIFHovdRIWCQtBJwB1g8NEXLJXr9qXBkqPFwqcIYA1gBBCWeZ4WNOaptvolRTnI
33
- HmX5k/Wq8VLcmZg9pYYaDDUz+kulBAYVHDGA76oYa8J719rO+TMg1fW9ajMtgQT7
34
- sFzUnKPiXB3jqUJ1XnvUd+85VLrJChgbEplJL4hL/VBi0XPnj3pDAgMBAAGjgZ0w
35
- gZowEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQF
36
- MAMBAf8wHQYDVR0OBBYEFK9EBMJBfkiD2045AuzshHrmzsmkMDQGA1UdHwQtMCsw
37
- KaAnoCWGI2h0dHA6Ly9jcmwuc2VjdXJldHJ1c3QuY29tL1NHQ0EuY3JsMBAGCSsG
38
- AQQBgjcVAQQDAgEAMA0GCSqGSIb3DQEBBQUAA4IBAQBjGghAfaReUw132HquHw0L
39
- URYD7xh8yOOvaliTFGCRsoTciE6+OYo68+aCiV0BN7OrJKQVDpI1WkpEXk5X+nXO
40
- H0jOZvQ8QCaSmGwb7iRGDBezUqXbpZGRzzfTb+cnCDpOGR86p1hcF895P4vkp9Mm
41
- I50mD1hp/Ed+stCNi5O/KU9DaXR2Z0vPB4zmAve14bRDtUstFJ/53CYNv6ZHdAbY
42
- iNE6KTCEztI5gGIbqMdXSbxqVVFnFUq+NQfk1XWYN3kwFNspnWzFacxHVaIw98xc
43
- f8LDmBxrThaA63p4ZUWiABqvDA1VZDRIuJK58bRQKfJPIx/abKwfROHdI3hRW8cW
44
- -----END CERTIFICATE-----