aws-sdk-wafregional 1.49.0 → 1.51.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ac5df182fdbee6871b9c0d69a3db2a459cc7174078cba80186428e650cced3fb
4
- data.tar.gz: b0388fb99ba023b86120402c50c31b7fbafef8a117bb48900b5011e1cdb5c927
3
+ metadata.gz: bce0f283ab0ea7f58d143731f2fd73fa05731586b1d58da36538d743e8d65bd5
4
+ data.tar.gz: 404f0a2abcb8387290c38500f7fb1597f4cfabf8460e78de60670b2d76417c14
5
5
  SHA512:
6
- metadata.gz: 0a93dec4eba39f902ff741495cba43d5b7edd9540b6cb63eec92373ccdd292b3cb0be7fc264782411d2414c55c9cd51f05aa37ec9e9d54f947ce00e91bfa796e
7
- data.tar.gz: 652dd1961cd2b67f7f40543d78a30d352a06b7a138a7dcbcd42cfacb0a9442303e22c2964bd683675c99f0989c435459cbcf2f25d41534966c37de39bcfe1f69
6
+ metadata.gz: dd91b01e60ffa4e864ca9d312d87b29baf5ee93686de37e8b6c095029e53acf4183aae5f025dfd3fa2d3879275cda75104c4bd54c7fc9336491dc7a2abce8c78
7
+ data.tar.gz: 63eba61ae9631d0d374d8342c6c300e38e1c8b8edf515e34877338f1769152661c8a825944ecb30756c71e5a4d97eb196a3bef535c62196bce363f4c767a3da6
data/CHANGELOG.md CHANGED
@@ -1,6 +1,18 @@
1
1
  Unreleased Changes
2
2
  ------------------
3
3
 
4
+ 1.51.0 (2023-05-31)
5
+ ------------------
6
+
7
+ * Feature - Code Generated Changes, see `./build_tools` or `aws-sdk-core`'s CHANGELOG.md for details.
8
+
9
+ 1.50.0 (2023-01-18)
10
+ ------------------
11
+
12
+ * Feature - Code Generated Changes, see `./build_tools` or `aws-sdk-core`'s CHANGELOG.md for details.
13
+
14
+ * Issue - Replace runtime endpoint resolution approach with generated ruby code.
15
+
4
16
  1.49.0 (2022-10-25)
5
17
  ------------------
6
18
 
@@ -320,4 +332,4 @@ Unreleased Changes
320
332
  1.0.0.rc2 (2016-12-09)
321
333
  ------------------
322
334
 
323
- * Feature - Initial release of `aws-sdk-wafregional`.
335
+ * Feature - Initial release of `aws-sdk-wafregional`.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.49.0
1
+ 1.51.0
@@ -275,6 +275,11 @@ module Aws::WAFRegional
275
275
  # in the future.
276
276
  #
277
277
  #
278
+ # @option options [String] :sdk_ua_app_id
279
+ # A unique and opaque application ID that is appended to the
280
+ # User-Agent header as app/<sdk_ua_app_id>. It should have a
281
+ # maximum length of 50.
282
+ #
278
283
  # @option options [String] :secret_access_key
279
284
  #
280
285
  # @option options [String] :session_token
@@ -703,7 +708,7 @@ module Aws::WAFRegional
703
708
  # If you add more than one predicate to a `RateBasedRule`, a request not
704
709
  # only must exceed the `RateLimit`, but it also must match all the
705
710
  # conditions to be counted or blocked. For example, suppose you add the
706
- # following to a `RateBasedRule`\:
711
+ # following to a `RateBasedRule`:
707
712
  #
708
713
  # * An `IPSet` that matches the IP address `192.0.2.44/32`
709
714
  #
@@ -723,7 +728,7 @@ module Aws::WAFRegional
723
728
  #
724
729
  # As a second example, suppose you want to limit requests to a
725
730
  # particular page on your site. To do this, you could add the following
726
- # to a `RateBasedRule`\:
731
+ # to a `RateBasedRule`:
727
732
  #
728
733
  # * A `ByteMatchSet` with `FieldToMatch` of `URI`
729
734
  #
@@ -1009,7 +1014,7 @@ module Aws::WAFRegional
1009
1014
  # objects, and other predicates that identify the requests that you want
1010
1015
  # to block. If you add more than one predicate to a `Rule`, a request
1011
1016
  # must match all of the specifications to be allowed or blocked. For
1012
- # example, suppose that you add the following to a `Rule`\:
1017
+ # example, suppose that you add the following to a `Rule`:
1013
1018
  #
1014
1019
  # * An `IPSet` that matches the IP address `192.0.2.44/32`
1015
1020
  #
@@ -2877,14 +2882,14 @@ module Aws::WAFRegional
2877
2882
  # Returns the status of a `ChangeToken` that you got by calling
2878
2883
  # GetChangeToken. `ChangeTokenStatus` is one of the following values:
2879
2884
  #
2880
- # * `PROVISIONED`\: You requested the change token by calling
2885
+ # * `PROVISIONED`: You requested the change token by calling
2881
2886
  # `GetChangeToken`, but you haven't used it yet in a call to create,
2882
2887
  # update, or delete an AWS WAF object.
2883
2888
  #
2884
- # * `PENDING`\: AWS WAF is propagating the create, update, or delete
2889
+ # * `PENDING`: AWS WAF is propagating the create, update, or delete
2885
2890
  # request to all AWS WAF servers.
2886
2891
  #
2887
- # * `INSYNC`\: Propagation is complete.
2892
+ # * `INSYNC`: Propagation is complete.
2888
2893
  #
2889
2894
  #
2890
2895
  #
@@ -5767,7 +5772,7 @@ module Aws::WAFRegional
5767
5772
  # If you add more than one predicate to a `RateBasedRule`, a request
5768
5773
  # must match all the predicates and exceed the `RateLimit` to be counted
5769
5774
  # or blocked. For example, suppose you add the following to a
5770
- # `RateBasedRule`\:
5775
+ # `RateBasedRule`:
5771
5776
  #
5772
5777
  # * An `IPSet` that matches the IP address `192.0.2.44/32`
5773
5778
  #
@@ -5785,7 +5790,7 @@ module Aws::WAFRegional
5785
5790
  #
5786
5791
  # As a second example, suppose you want to limit requests to a
5787
5792
  # particular page on your site. To do this, you could add the following
5788
- # to a `RateBasedRule`\:
5793
+ # to a `RateBasedRule`:
5789
5794
  #
5790
5795
  # * A `ByteMatchSet` with `FieldToMatch` of `URI`
5791
5796
  #
@@ -6068,7 +6073,7 @@ module Aws::WAFRegional
6068
6073
  # that specifies the web requests that you want to allow, block, or
6069
6074
  # count. If you add more than one predicate to a `Rule`, a request must
6070
6075
  # match all of the specifications to be allowed, blocked, or counted.
6071
- # For example, suppose that you add the following to a `Rule`\:
6076
+ # For example, suppose that you add the following to a `Rule`:
6072
6077
  #
6073
6078
  # * A `ByteMatchSet` that matches the value `BadBot` in the `User-Agent`
6074
6079
  # header
@@ -6454,15 +6459,15 @@ module Aws::WAFRegional
6454
6459
  # SqlInjectionMatchSet. For each `SqlInjectionMatchTuple` object, you
6455
6460
  # specify the following values:
6456
6461
  #
6457
- # * `Action`\: Whether to insert the object into or delete the object
6462
+ # * `Action`: Whether to insert the object into or delete the object
6458
6463
  # from the array. To change a `SqlInjectionMatchTuple`, you delete the
6459
6464
  # existing object and add a new one.
6460
6465
  #
6461
- # * `FieldToMatch`\: The part of web requests that you want AWS WAF to
6466
+ # * `FieldToMatch`: The part of web requests that you want AWS WAF to
6462
6467
  # inspect and, if you want AWS WAF to inspect a header or custom query
6463
6468
  # parameter, the name of the header or parameter.
6464
6469
  #
6465
- # * `TextTransformation`\: Which text transformation, if any, to perform
6470
+ # * `TextTransformation`: Which text transformation, if any, to perform
6466
6471
  # on the web request before inspecting the request for snippets of
6467
6472
  # malicious SQL code.
6468
6473
  #
@@ -6778,15 +6783,15 @@ module Aws::WAFRegional
6778
6783
  # Inserts or deletes XssMatchTuple objects (filters) in an XssMatchSet.
6779
6784
  # For each `XssMatchTuple` object, you specify the following values:
6780
6785
  #
6781
- # * `Action`\: Whether to insert the object into or delete the object
6786
+ # * `Action`: Whether to insert the object into or delete the object
6782
6787
  # from the array. To change an `XssMatchTuple`, you delete the
6783
6788
  # existing object and add a new one.
6784
6789
  #
6785
- # * `FieldToMatch`\: The part of web requests that you want AWS WAF to
6790
+ # * `FieldToMatch`: The part of web requests that you want AWS WAF to
6786
6791
  # inspect and, if you want AWS WAF to inspect a header or custom query
6787
6792
  # parameter, the name of the header or parameter.
6788
6793
  #
6789
- # * `TextTransformation`\: Which text transformation, if any, to perform
6794
+ # * `TextTransformation`: Which text transformation, if any, to perform
6790
6795
  # on the web request before inspecting the request for cross-site
6791
6796
  # scripting attacks.
6792
6797
  #
@@ -6914,7 +6919,7 @@ module Aws::WAFRegional
6914
6919
  params: params,
6915
6920
  config: config)
6916
6921
  context[:gem_name] = 'aws-sdk-wafregional'
6917
- context[:gem_version] = '1.49.0'
6922
+ context[:gem_version] = '1.51.0'
6918
6923
  Seahorse::Client::Request.new(handlers, context)
6919
6924
  end
6920
6925
 
@@ -9,104 +9,43 @@
9
9
 
10
10
  module Aws::WAFRegional
11
11
  class EndpointProvider
12
- def initialize(rule_set = nil)
13
- @@rule_set ||= begin
14
- endpoint_rules = Aws::Json.load(Base64.decode64(RULES))
15
- Aws::Endpoints::RuleSet.new(
16
- version: endpoint_rules['version'],
17
- service_id: endpoint_rules['serviceId'],
18
- parameters: endpoint_rules['parameters'],
19
- rules: endpoint_rules['rules']
20
- )
12
+ def resolve_endpoint(parameters)
13
+ region = parameters.region
14
+ use_dual_stack = parameters.use_dual_stack
15
+ use_fips = parameters.use_fips
16
+ endpoint = parameters.endpoint
17
+ if (partition_result = Aws::Endpoints::Matchers.aws_partition(region))
18
+ if Aws::Endpoints::Matchers.set?(endpoint) && (url = Aws::Endpoints::Matchers.parse_url(endpoint))
19
+ if Aws::Endpoints::Matchers.boolean_equals?(use_fips, true)
20
+ raise ArgumentError, "Invalid Configuration: FIPS and custom endpoint are not supported"
21
+ end
22
+ if Aws::Endpoints::Matchers.boolean_equals?(use_dual_stack, true)
23
+ raise ArgumentError, "Invalid Configuration: Dualstack and custom endpoint are not supported"
24
+ end
25
+ return Aws::Endpoints::Endpoint.new(url: endpoint, headers: {}, properties: {})
26
+ end
27
+ if Aws::Endpoints::Matchers.boolean_equals?(use_fips, true) && Aws::Endpoints::Matchers.boolean_equals?(use_dual_stack, true)
28
+ if Aws::Endpoints::Matchers.boolean_equals?(true, Aws::Endpoints::Matchers.attr(partition_result, "supportsFIPS")) && Aws::Endpoints::Matchers.boolean_equals?(true, Aws::Endpoints::Matchers.attr(partition_result, "supportsDualStack"))
29
+ return Aws::Endpoints::Endpoint.new(url: "https://waf-regional-fips.#{region}.#{partition_result['dualStackDnsSuffix']}", headers: {}, properties: {})
30
+ end
31
+ raise ArgumentError, "FIPS and DualStack are enabled, but this partition does not support one or both"
32
+ end
33
+ if Aws::Endpoints::Matchers.boolean_equals?(use_fips, true)
34
+ if Aws::Endpoints::Matchers.boolean_equals?(true, Aws::Endpoints::Matchers.attr(partition_result, "supportsFIPS"))
35
+ return Aws::Endpoints::Endpoint.new(url: "https://waf-regional-fips.#{region}.#{partition_result['dnsSuffix']}", headers: {}, properties: {})
36
+ end
37
+ raise ArgumentError, "FIPS is enabled but this partition does not support FIPS"
38
+ end
39
+ if Aws::Endpoints::Matchers.boolean_equals?(use_dual_stack, true)
40
+ if Aws::Endpoints::Matchers.boolean_equals?(true, Aws::Endpoints::Matchers.attr(partition_result, "supportsDualStack"))
41
+ return Aws::Endpoints::Endpoint.new(url: "https://waf-regional.#{region}.#{partition_result['dualStackDnsSuffix']}", headers: {}, properties: {})
42
+ end
43
+ raise ArgumentError, "DualStack is enabled but this partition does not support DualStack"
44
+ end
45
+ return Aws::Endpoints::Endpoint.new(url: "https://waf-regional.#{region}.#{partition_result['dnsSuffix']}", headers: {}, properties: {})
21
46
  end
22
- @provider = Aws::Endpoints::RulesProvider.new(rule_set || @@rule_set)
23
- end
47
+ raise ArgumentError, 'No endpoint could be resolved'
24
48
 
25
- def resolve_endpoint(parameters)
26
- @provider.resolve_endpoint(parameters)
27
49
  end
28
-
29
- # @api private
30
- RULES = <<-JSON
31
- eyJ2ZXJzaW9uIjoiMS4wIiwicGFyYW1ldGVycyI6eyJSZWdpb24iOnsiYnVp
32
- bHRJbiI6IkFXUzo6UmVnaW9uIiwicmVxdWlyZWQiOmZhbHNlLCJkb2N1bWVu
33
- dGF0aW9uIjoiVGhlIEFXUyByZWdpb24gdXNlZCB0byBkaXNwYXRjaCB0aGUg
34
- cmVxdWVzdC4iLCJ0eXBlIjoiU3RyaW5nIn0sIlVzZUR1YWxTdGFjayI6eyJi
35
- dWlsdEluIjoiQVdTOjpVc2VEdWFsU3RhY2siLCJyZXF1aXJlZCI6dHJ1ZSwi
36
- ZGVmYXVsdCI6ZmFsc2UsImRvY3VtZW50YXRpb24iOiJXaGVuIHRydWUsIHVz
37
- ZSB0aGUgZHVhbC1zdGFjayBlbmRwb2ludC4gSWYgdGhlIGNvbmZpZ3VyZWQg
38
- ZW5kcG9pbnQgZG9lcyBub3Qgc3VwcG9ydCBkdWFsLXN0YWNrLCBkaXNwYXRj
39
- aGluZyB0aGUgcmVxdWVzdCBNQVkgcmV0dXJuIGFuIGVycm9yLiIsInR5cGUi
40
- OiJCb29sZWFuIn0sIlVzZUZJUFMiOnsiYnVpbHRJbiI6IkFXUzo6VXNlRklQ
41
- UyIsInJlcXVpcmVkIjp0cnVlLCJkZWZhdWx0IjpmYWxzZSwiZG9jdW1lbnRh
42
- dGlvbiI6IldoZW4gdHJ1ZSwgc2VuZCB0aGlzIHJlcXVlc3QgdG8gdGhlIEZJ
43
- UFMtY29tcGxpYW50IHJlZ2lvbmFsIGVuZHBvaW50LiBJZiB0aGUgY29uZmln
44
- dXJlZCBlbmRwb2ludCBkb2VzIG5vdCBoYXZlIGEgRklQUyBjb21wbGlhbnQg
45
- ZW5kcG9pbnQsIGRpc3BhdGNoaW5nIHRoZSByZXF1ZXN0IHdpbGwgcmV0dXJu
46
- IGFuIGVycm9yLiIsInR5cGUiOiJCb29sZWFuIn0sIkVuZHBvaW50Ijp7ImJ1
47
- aWx0SW4iOiJTREs6OkVuZHBvaW50IiwicmVxdWlyZWQiOmZhbHNlLCJkb2N1
48
- bWVudGF0aW9uIjoiT3ZlcnJpZGUgdGhlIGVuZHBvaW50IHVzZWQgdG8gc2Vu
49
- ZCB0aGlzIHJlcXVlc3QiLCJ0eXBlIjoiU3RyaW5nIn19LCJydWxlcyI6W3si
50
- Y29uZGl0aW9ucyI6W3siZm4iOiJhd3MucGFydGl0aW9uIiwiYXJndiI6W3si
51
- cmVmIjoiUmVnaW9uIn1dLCJhc3NpZ24iOiJQYXJ0aXRpb25SZXN1bHQifV0s
52
- InR5cGUiOiJ0cmVlIiwicnVsZXMiOlt7ImNvbmRpdGlvbnMiOlt7ImZuIjoi
53
- aXNTZXQiLCJhcmd2IjpbeyJyZWYiOiJFbmRwb2ludCJ9XX0seyJmbiI6InBh
54
- cnNlVVJMIiwiYXJndiI6W3sicmVmIjoiRW5kcG9pbnQifV0sImFzc2lnbiI6
55
- InVybCJ9XSwidHlwZSI6InRyZWUiLCJydWxlcyI6W3siY29uZGl0aW9ucyI6
56
- W3siZm4iOiJib29sZWFuRXF1YWxzIiwiYXJndiI6W3sicmVmIjoiVXNlRklQ
57
- UyJ9LHRydWVdfV0sImVycm9yIjoiSW52YWxpZCBDb25maWd1cmF0aW9uOiBG
58
- SVBTIGFuZCBjdXN0b20gZW5kcG9pbnQgYXJlIG5vdCBzdXBwb3J0ZWQiLCJ0
59
- eXBlIjoiZXJyb3IifSx7ImNvbmRpdGlvbnMiOltdLCJ0eXBlIjoidHJlZSIs
60
- InJ1bGVzIjpbeyJjb25kaXRpb25zIjpbeyJmbiI6ImJvb2xlYW5FcXVhbHMi
61
- LCJhcmd2IjpbeyJyZWYiOiJVc2VEdWFsU3RhY2sifSx0cnVlXX1dLCJlcnJv
62
- ciI6IkludmFsaWQgQ29uZmlndXJhdGlvbjogRHVhbHN0YWNrIGFuZCBjdXN0
63
- b20gZW5kcG9pbnQgYXJlIG5vdCBzdXBwb3J0ZWQiLCJ0eXBlIjoiZXJyb3Ii
64
- fSx7ImNvbmRpdGlvbnMiOltdLCJlbmRwb2ludCI6eyJ1cmwiOnsicmVmIjoi
65
- RW5kcG9pbnQifSwicHJvcGVydGllcyI6e30sImhlYWRlcnMiOnt9fSwidHlw
66
- ZSI6ImVuZHBvaW50In1dfV19LHsiY29uZGl0aW9ucyI6W3siZm4iOiJib29s
67
- ZWFuRXF1YWxzIiwiYXJndiI6W3sicmVmIjoiVXNlRklQUyJ9LHRydWVdfSx7
68
- ImZuIjoiYm9vbGVhbkVxdWFscyIsImFyZ3YiOlt7InJlZiI6IlVzZUR1YWxT
69
- dGFjayJ9LHRydWVdfV0sInR5cGUiOiJ0cmVlIiwicnVsZXMiOlt7ImNvbmRp
70
- dGlvbnMiOlt7ImZuIjoiYm9vbGVhbkVxdWFscyIsImFyZ3YiOlt0cnVlLHsi
71
- Zm4iOiJnZXRBdHRyIiwiYXJndiI6W3sicmVmIjoiUGFydGl0aW9uUmVzdWx0
72
- In0sInN1cHBvcnRzRklQUyJdfV19LHsiZm4iOiJib29sZWFuRXF1YWxzIiwi
73
- YXJndiI6W3RydWUseyJmbiI6ImdldEF0dHIiLCJhcmd2IjpbeyJyZWYiOiJQ
74
- YXJ0aXRpb25SZXN1bHQifSwic3VwcG9ydHNEdWFsU3RhY2siXX1dfV0sInR5
75
- cGUiOiJ0cmVlIiwicnVsZXMiOlt7ImNvbmRpdGlvbnMiOltdLCJlbmRwb2lu
76
- dCI6eyJ1cmwiOiJodHRwczovL3dhZi1yZWdpb25hbC1maXBzLntSZWdpb259
77
- LntQYXJ0aXRpb25SZXN1bHQjZHVhbFN0YWNrRG5zU3VmZml4fSIsInByb3Bl
78
- cnRpZXMiOnt9LCJoZWFkZXJzIjp7fX0sInR5cGUiOiJlbmRwb2ludCJ9XX0s
79
- eyJjb25kaXRpb25zIjpbXSwiZXJyb3IiOiJGSVBTIGFuZCBEdWFsU3RhY2sg
80
- YXJlIGVuYWJsZWQsIGJ1dCB0aGlzIHBhcnRpdGlvbiBkb2VzIG5vdCBzdXBw
81
- b3J0IG9uZSBvciBib3RoIiwidHlwZSI6ImVycm9yIn1dfSx7ImNvbmRpdGlv
82
- bnMiOlt7ImZuIjoiYm9vbGVhbkVxdWFscyIsImFyZ3YiOlt7InJlZiI6IlVz
83
- ZUZJUFMifSx0cnVlXX1dLCJ0eXBlIjoidHJlZSIsInJ1bGVzIjpbeyJjb25k
84
- aXRpb25zIjpbeyJmbiI6ImJvb2xlYW5FcXVhbHMiLCJhcmd2IjpbdHJ1ZSx7
85
- ImZuIjoiZ2V0QXR0ciIsImFyZ3YiOlt7InJlZiI6IlBhcnRpdGlvblJlc3Vs
86
- dCJ9LCJzdXBwb3J0c0ZJUFMiXX1dfV0sInR5cGUiOiJ0cmVlIiwicnVsZXMi
87
- Olt7ImNvbmRpdGlvbnMiOltdLCJ0eXBlIjoidHJlZSIsInJ1bGVzIjpbeyJj
88
- b25kaXRpb25zIjpbXSwiZW5kcG9pbnQiOnsidXJsIjoiaHR0cHM6Ly93YWYt
89
- cmVnaW9uYWwtZmlwcy57UmVnaW9ufS57UGFydGl0aW9uUmVzdWx0I2Ruc1N1
90
- ZmZpeH0iLCJwcm9wZXJ0aWVzIjp7fSwiaGVhZGVycyI6e319LCJ0eXBlIjoi
91
- ZW5kcG9pbnQifV19XX0seyJjb25kaXRpb25zIjpbXSwiZXJyb3IiOiJGSVBT
92
- IGlzIGVuYWJsZWQgYnV0IHRoaXMgcGFydGl0aW9uIGRvZXMgbm90IHN1cHBv
93
- cnQgRklQUyIsInR5cGUiOiJlcnJvciJ9XX0seyJjb25kaXRpb25zIjpbeyJm
94
- biI6ImJvb2xlYW5FcXVhbHMiLCJhcmd2IjpbeyJyZWYiOiJVc2VEdWFsU3Rh
95
- Y2sifSx0cnVlXX1dLCJ0eXBlIjoidHJlZSIsInJ1bGVzIjpbeyJjb25kaXRp
96
- b25zIjpbeyJmbiI6ImJvb2xlYW5FcXVhbHMiLCJhcmd2IjpbdHJ1ZSx7ImZu
97
- IjoiZ2V0QXR0ciIsImFyZ3YiOlt7InJlZiI6IlBhcnRpdGlvblJlc3VsdCJ9
98
- LCJzdXBwb3J0c0R1YWxTdGFjayJdfV19XSwidHlwZSI6InRyZWUiLCJydWxl
99
- cyI6W3siY29uZGl0aW9ucyI6W10sImVuZHBvaW50Ijp7InVybCI6Imh0dHBz
100
- Oi8vd2FmLXJlZ2lvbmFsLntSZWdpb259LntQYXJ0aXRpb25SZXN1bHQjZHVh
101
- bFN0YWNrRG5zU3VmZml4fSIsInByb3BlcnRpZXMiOnt9LCJoZWFkZXJzIjp7
102
- fX0sInR5cGUiOiJlbmRwb2ludCJ9XX0seyJjb25kaXRpb25zIjpbXSwiZXJy
103
- b3IiOiJEdWFsU3RhY2sgaXMgZW5hYmxlZCBidXQgdGhpcyBwYXJ0aXRpb24g
104
- ZG9lcyBub3Qgc3VwcG9ydCBEdWFsU3RhY2siLCJ0eXBlIjoiZXJyb3IifV19
105
- LHsiY29uZGl0aW9ucyI6W10sImVuZHBvaW50Ijp7InVybCI6Imh0dHBzOi8v
106
- d2FmLXJlZ2lvbmFsLntSZWdpb259LntQYXJ0aXRpb25SZXN1bHQjZG5zU3Vm
107
- Zml4fSIsInByb3BlcnRpZXMiOnt9LCJoZWFkZXJzIjp7fX0sInR5cGUiOiJl
108
- bmRwb2ludCJ9XX1dfQ==
109
-
110
- JSON
111
50
  end
112
51
  end