openstax_utilities 4.1.0 → 4.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/app/routines/openstax/utilities/limit_and_paginate_relation.rb +85 -0
- data/app/routines/openstax/utilities/order_relation.rb +105 -0
- data/app/routines/openstax/utilities/search_and_organize_relation.rb +130 -0
- data/app/routines/openstax/utilities/search_relation.rb +94 -0
- data/lib/openstax/utilities/access_policy.rb +4 -3
- data/lib/openstax/utilities/assets.rb +29 -0
- data/lib/openstax/utilities/assets/manifest.rb +62 -0
- data/lib/openstax/utilities/version.rb +1 -1
- data/lib/openstax_utilities.rb +5 -5
- data/spec/cassettes/OpenStax_Utilities_Assets/loading_remote_manifest/uses_remote_json.yml +353 -0
- data/spec/dummy/app/access_policies/dummier_access_policy.rb +10 -0
- data/spec/dummy/app/assets/config/manifest.js +3 -0
- data/spec/dummy/config/application.rb +6 -11
- data/spec/dummy/config/environments/test.rb +1 -1
- data/spec/dummy/config/initializers/search_users.rb +26 -0
- data/spec/dummy/config/secrets.yml +2 -5
- data/spec/dummy/db/test.sqlite3 +0 -0
- data/spec/dummy/log/test.log +32144 -0
- data/spec/dummy/tmp/cache/C09/760/6da7b2a29da9cb0f80ef102c7effb91fab3374db +0 -0
- data/spec/factories/user.rb +1 -1
- data/spec/lib/openstax/utilities/access_policy_spec.rb +16 -15
- data/spec/lib/openstax/utilities/assets_spec.rb +40 -0
- data/spec/rails_helper.rb +1 -2
- data/spec/routines/openstax/utilities/limit_and_paginate_relation_spec.rb +72 -0
- data/spec/routines/openstax/utilities/order_relation_spec.rb +55 -0
- data/spec/routines/openstax/utilities/{abstract_keyword_search_routine_spec.rb → search_and_organize_relation_spec.rb} +54 -47
- data/spec/routines/openstax/utilities/search_relation_spec.rb +81 -0
- data/spec/vcr_helper.rb +18 -0
- metadata +123 -44
- data/app/handlers/openstax/utilities/keyword_search_handler.rb +0 -95
- data/app/routines/openstax/utilities/abstract_keyword_search_routine.rb +0 -158
- data/spec/dummy/app/routines/search_users.rb +0 -21
- data/spec/handlers/openstax/utilities/keyword_search_handler_spec.rb +0 -126
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'request_store'
|
2
|
+
require_relative 'assets/manifest'
|
3
|
+
|
4
|
+
module OpenStax::Utilities
|
5
|
+
module Assets
|
6
|
+
def self.url
|
7
|
+
url = Rails.application.secrets.assets_url
|
8
|
+
url.ends_with?('/') ? url : "#{url}/"
|
9
|
+
end
|
10
|
+
|
11
|
+
def self.url_for(asset)
|
12
|
+
"#{url}#{asset}"
|
13
|
+
end
|
14
|
+
|
15
|
+
def self.manifest
|
16
|
+
RequestStore.store[:assets_manifest] ||= OpenStax::Utilities::Assets::Manifest.new
|
17
|
+
end
|
18
|
+
|
19
|
+
def self.tags_for(asset)
|
20
|
+
manifest[asset].map do |chunk|
|
21
|
+
"<script type='text/javascript' src='#{chunk}' crossorigin='anonymous' async></script>"
|
22
|
+
end.join("\n").html_safe
|
23
|
+
end
|
24
|
+
|
25
|
+
def self.digest_for(asset)
|
26
|
+
Digest::MD5.hexdigest tags_for(asset)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,62 @@
|
|
1
|
+
require 'faraday'
|
2
|
+
require 'faraday-http-cache'
|
3
|
+
|
4
|
+
module OpenStax::Utilities
|
5
|
+
module Assets
|
6
|
+
# Reads and parses the assets manifest
|
7
|
+
class Manifest
|
8
|
+
def initialize
|
9
|
+
@assets = HashWithIndifferentAccess.new
|
10
|
+
|
11
|
+
url = OpenStax::Utilities::Assets.url_for('assets.json')
|
12
|
+
|
13
|
+
begin
|
14
|
+
response = self.class.client.get url
|
15
|
+
|
16
|
+
if response.success?
|
17
|
+
contents = JSON.parse response.body
|
18
|
+
|
19
|
+
if contents['entrypoints'].blank?
|
20
|
+
Rails.logger.error { "failed to parse manifest from #{url}" }
|
21
|
+
else
|
22
|
+
contents['entrypoints'].each do |entry_key, chunks|
|
23
|
+
@assets[entry_key] = chunks['js'].map do |chunk|
|
24
|
+
OpenStax::Utilities::Assets.url_for(chunk)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
else
|
29
|
+
Rails.logger.error { "status #{response.status} when reading remote url: #{url}" }
|
30
|
+
end
|
31
|
+
rescue Faraday::ConnectionFailed, Addressable::URI::InvalidURIError, Errno::ECONNREFUSED
|
32
|
+
end
|
33
|
+
|
34
|
+
Rails.logger.info do
|
35
|
+
"running in development mode with assets served by webpack at #{
|
36
|
+
OpenStax::Utilities::Assets.url
|
37
|
+
}"
|
38
|
+
end if @assets.blank?
|
39
|
+
end
|
40
|
+
|
41
|
+
def [](asset)
|
42
|
+
return [ OpenStax::Utilities::Assets.url_for("#{asset}.js") ] if @assets.blank?
|
43
|
+
|
44
|
+
@assets[asset] || []
|
45
|
+
end
|
46
|
+
|
47
|
+
protected
|
48
|
+
|
49
|
+
# Faraday is probably thread-safe but makes no guarantees
|
50
|
+
# https://github.com/lostisland/faraday/issues/370
|
51
|
+
# We could potentially reuse the client object
|
52
|
+
# However, bugs happen: https://github.com/lostisland/faraday/issues/1068
|
53
|
+
def self.client
|
54
|
+
Faraday.new do |builder|
|
55
|
+
builder.use :http_cache, store: Rails.cache
|
56
|
+
|
57
|
+
builder.adapter Faraday.default_adapter
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
data/lib/openstax_utilities.rb
CHANGED
@@ -19,6 +19,7 @@ require "openstax/utilities/acts_as_numberable"
|
|
19
19
|
require "openstax/utilities/delegate_access_control"
|
20
20
|
require "openstax/utilities/access_policy"
|
21
21
|
require "openstax/utilities/osu_helper"
|
22
|
+
require "openstax/utilities/assets"
|
22
23
|
|
23
24
|
module OpenStax
|
24
25
|
module Utilities
|
@@ -35,7 +36,7 @@ module OpenStax
|
|
35
36
|
#
|
36
37
|
# Configuration machinery.
|
37
38
|
#
|
38
|
-
# To configure OpenStax Utilities, put the following code in your applications
|
39
|
+
# To configure OpenStax Utilities, put the following code in your applications
|
39
40
|
# initialization logic (eg. in the config/initializers in a Rails app)
|
40
41
|
#
|
41
42
|
# OpenStax::Utilities.configure do |config|
|
@@ -43,7 +44,7 @@ module OpenStax
|
|
43
44
|
# ...
|
44
45
|
# end
|
45
46
|
#
|
46
|
-
|
47
|
+
|
47
48
|
def configure
|
48
49
|
yield configuration
|
49
50
|
end
|
@@ -56,8 +57,8 @@ module OpenStax
|
|
56
57
|
attr_accessor :standard_date_format
|
57
58
|
attr_accessor :standard_datetime_format
|
58
59
|
attr_accessor :standard_time_format
|
59
|
-
|
60
|
-
def initialize
|
60
|
+
|
61
|
+
def initialize
|
61
62
|
@standard_date_format = "%b %d, %Y"
|
62
63
|
@standard_datetime_format = "%b %d, %Y %l:%M %p %Z"
|
63
64
|
@standard_time_format = "%l:%M %p %Z"
|
@@ -69,4 +70,3 @@ module OpenStax
|
|
69
70
|
|
70
71
|
end
|
71
72
|
end
|
72
|
-
|
@@ -0,0 +1,353 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: https://tutor-dev.openstax.org/assets/assets.json
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
User-Agent:
|
11
|
+
- Faraday v0.9.2
|
12
|
+
Accept-Encoding:
|
13
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
14
|
+
Accept:
|
15
|
+
- "*/*"
|
16
|
+
response:
|
17
|
+
status:
|
18
|
+
code: 200
|
19
|
+
message: OK
|
20
|
+
headers:
|
21
|
+
Server:
|
22
|
+
- nginx
|
23
|
+
Date:
|
24
|
+
- Thu, 13 Sep 2018 17:45:53 GMT
|
25
|
+
Content-Type:
|
26
|
+
- application/json
|
27
|
+
Content-Length:
|
28
|
+
- '404'
|
29
|
+
Last-Modified:
|
30
|
+
- Fri, 31 Aug 2018 21:21:15 GMT
|
31
|
+
Connection:
|
32
|
+
- keep-alive
|
33
|
+
Etag:
|
34
|
+
- '"5b89b14b-194"'
|
35
|
+
Expires:
|
36
|
+
- Fri, 13 Sep 2019 17:45:53 GMT
|
37
|
+
Cache-Control:
|
38
|
+
- max-age=31536000
|
39
|
+
- public
|
40
|
+
Strict-Transport-Security:
|
41
|
+
- max-age=31536000; includeSubdomains
|
42
|
+
Accept-Ranges:
|
43
|
+
- bytes
|
44
|
+
body:
|
45
|
+
encoding: UTF-8
|
46
|
+
string: |
|
47
|
+
{
|
48
|
+
"all-features.svg": {
|
49
|
+
"src": "aa24fa15d6d08eb7078616fbb038188d.svg",
|
50
|
+
"integrity": "sha256-QIcMINxIyaiYNQW9dnIvxmzMmLeQosO1bSgC7pzLpKQ= sha384-aa0rfgAhJ+iIH8CRpf4Ei0V3KlQWZ3Fh+MMMo40S0kixI692PhGM2qFvq1/3qSFx sha512-oObRARlAvemWUB3OwlW6lP6tQDuRW3YxXZ6rGXZln4cZ96sejeYJ9BOmvVSDTfGHDZHU0l6gF4VrmlBF9dCgpw=="
|
51
|
+
},
|
52
|
+
"ap_physics-book-thumbnail.svg": {
|
53
|
+
"src": "dcbb7de4327cd469d54012fcfbaf83ac.svg",
|
54
|
+
"integrity": "sha256-DWm0KEcgX5XXa3XOSmwS6lx8gYzPaS8gLquubhEGIh0= sha384-JyqJgDexFBJMAAsiDKVEoZ70dNEB6ZFP9wKgc6p+rnr+oqbwlJefSUVkgX1k454V sha512-36vObxxYPaGBDeVpzvwjKac4fGprb5H7XHNgA4IWA9x0KbIg/nzYR2uUsEu77gaHoHV3CUbEdIAc3sGc/fKf3A=="
|
55
|
+
},
|
56
|
+
"ap_us_history-book-thumbnail.svg": {
|
57
|
+
"src": "ea15eb313d33bf91c3fadc2fe7dab027.svg",
|
58
|
+
"integrity": "sha256-cR4KKeLsxiAgV+EDpAU3vVFs5FpnuhAxOc8IlBsS+Jc= sha384-+ackdSHqLVeGuZJ3ABavi/LwJnwHdKy0vDufWeNYbCvT/E7nIT5fHS7RXivfdOPf sha512-WQ5JjbuMoaV+EddeQBm9uDvbn0M8QYubb1wWAUeVkkN3clMBhMnnI551do0ulHMKCjq3ZGQHrLDfofwUELQFEQ=="
|
59
|
+
},
|
60
|
+
"biology-book-thumbnail.svg": {
|
61
|
+
"src": "09a7aa2d0aa9bc4f083ae2b514966827.svg",
|
62
|
+
"integrity": "sha256-Q8ctLwjOkI7MmE1O7fWGrUyDWTuh0SyGaUROWDSZuAU= sha384-Rft6bksJWnKoqqy+pVb3dLYFKLWGkP8AS58oZ6prX0ihX3e+WGUJbUSmlw4mPIkO sha512-zyWDI5gric8qXi4GdtSzIUBgLxvn59Plb5PhjdunS1TjpWOsxI5lG0YmnkPFCjxa63rXio4hswLoy4PHcE8igQ=="
|
63
|
+
},
|
64
|
+
"biology_2e-book-thumbnail.svg": {
|
65
|
+
"src": "2c69b48945c8869b7195c99b3bb8b390.svg",
|
66
|
+
"integrity": "sha256-Mom7+7inJVDA/6XczbQ9eZHKH9EttlLUlbX0q32WvAY= sha384-XvUUDHngymDbamwadCVvQifAel4O/77r6x2/0FnbRQGLNyAjvN9k4LBbSk85mtW+ sha512-CxMUoVkgRjj2ojALi2EHr7AxTs9+1kOQj3rDKnjFTi9CsQjBLcWotS6kZCVGttw4FjueBl1T1rsAq8EwoAZDsQ=="
|
67
|
+
},
|
68
|
+
"cant-save-work.svg": {
|
69
|
+
"src": "5ad1479c3561fa1988912b1c3e061282.svg",
|
70
|
+
"integrity": "sha256-egeZy7hvduoP9ujDJEB9fRwf/QRuZE9+e5B6yI1D1q4= sha384-I61LI2VdHk5a7lzeaNveog7TWTPncH0BzDjAVPnnMUpmAEU8yIdQAheXqbLT2OGt sha512-7pYkiymyYORnuUEdhehr4NFtk5Yy++owADUWu2NmtRVTQz3qODSvmPgysoyBaFWaAb0iJ9GzBRaw/5EiyQC3vQ=="
|
71
|
+
},
|
72
|
+
"college_physics-book-thumbnail.svg": {
|
73
|
+
"src": "aac1db15414fad4a0e79efbb886cd8f0.svg",
|
74
|
+
"integrity": "sha256-qE69BiNBc1iYcaV0nGFgMkh39eheSSpafxp2c/uqv5U= sha384-ujsnbp8Ahdy4uTPdXZ0jOp3jhvbH6QjtK8zkALqHi/UN7L0LrKlQB2zit9JiNt9U sha512-GM2S0r7q6YnBmV+7ej2iRtITX5X3R1/p6vpy+llGf8JwKn/aYyvWaFtXq74yvkN3Wo8k/ZXJiO7LqmsJHYoMpg=="
|
75
|
+
},
|
76
|
+
"entrepreneurship-book-thumbnail.svg": {
|
77
|
+
"src": "9527f9c2439d00c1d58ec28e52420e2b.svg",
|
78
|
+
"integrity": "sha256-I9i39FEBc4kHcAkgTDc1n2BAaydY/cz9nrTIZ0fFXyA= sha384-qrWWGZDEI/302XzLD2hPaRKubyplPfCPu8LKBzylmXlxu57xAbiq8Ye0U24WBxgA sha512-iBAELZ7s/y+hxwAwPutHSafTd7cyrU4P9wvykmDVTu4noK1ccC8QChc6zk2MsBynfm1ISMO0sjKlJ7Dz+H1pDg=="
|
79
|
+
},
|
80
|
+
"entrypoints": {
|
81
|
+
"tutor": {
|
82
|
+
"js": [
|
83
|
+
"tutor-b920eb0be760a7c440bf.min.js"
|
84
|
+
],
|
85
|
+
"js.map": [
|
86
|
+
"tutor-b920eb0be760a7c440bf.min.js.map"
|
87
|
+
]
|
88
|
+
},
|
89
|
+
"lmspair": {
|
90
|
+
"js": [
|
91
|
+
"lmspair-b920eb0be760a7c440bf.min.js"
|
92
|
+
],
|
93
|
+
"js.map": [
|
94
|
+
"lmspair-b920eb0be760a7c440bf.min.js.map"
|
95
|
+
]
|
96
|
+
}
|
97
|
+
},
|
98
|
+
"exclude-question.svg": {
|
99
|
+
"src": "f7460965d0f2443a757b68486a271a46.svg",
|
100
|
+
"integrity": "sha256-U0lKhNqO0f+UFKzsJDL1tO24TrsTrp+ZOwH/C3eP8iM= sha384-onoZmRrSMr22/L0ysTlsQlhUiO7O+ea+LNnEaVctuUecPdOJGE4onsGx7FRudlHZ sha512-SwHKMLIhqmUJJHI5BNCqJsN3mALz8g85MvJoGSDHm2n3cyx3F2IBjgA6aPnVzp072ZGpcK8tlil5RzgcsqTtVw=="
|
101
|
+
},
|
102
|
+
"exercise-details-action.svg": {
|
103
|
+
"src": "ade68bd7a65ec534db8f179e78173f36.svg",
|
104
|
+
"integrity": "sha256-jPGHeozXhBAfeuSt6kZg0O0SqhX/Ofg9B1HAClnXI+A= sha384-srUWMTIvZBKyzwyk+vKJ9uwZ8viObVdvP/0Xmq3blFD8w48KKm0vP8iieFQ/4njf sha512-76DO9BtdlnsUmsba/rP4H2tYXtMy2dTK/CudPTQnkESzGWiC4hbpn2aDSh8vAG/CD3ObPFo4u2Utpc/iCRm/dg=="
|
105
|
+
},
|
106
|
+
"exercise-exclude-card-view-action.svg": {
|
107
|
+
"src": "6f6a7d08a934392dfb6daae9b32e1eca.svg",
|
108
|
+
"integrity": "sha256-Ttp7m6dHS9X+6JFLpkfD4EcQPB4xKAD5kFVHuLmFGCI= sha384-sEGYw9qGeaH2C6ou+UzssORsdqVPgMkB1iOgqj+AMAQwjH89k3iu9Rcr9V8DCuXy sha512-p2DUqibi4667xwZylBV+XOseXeitmvEb28FmfPBnfyGNlMEpBFRYVb+w2/Hr8T4lZ1mZjLEJE1N7wPwTurKqLw=="
|
109
|
+
},
|
110
|
+
"exercise-exclude-details-view-action.svg": {
|
111
|
+
"src": "f03fe8cfd847898edc376bf0bdac0056.svg",
|
112
|
+
"integrity": "sha256-pO3LCOn2pMqZNaEAwG4meH5xOjfaa4EvGTvR8AxaY+k= sha384-dnKtfgmDF18YjfzV+uz7DS89doo6v3ClonG2Ak/jHIzm4gGe++wr9AmFWDHzGv72 sha512-0m84pmF3KPDwGMRrtGmM9+7ylVAO457hnomaZRXQcnLwPh7nkAP4cECf5+urSYG+o766dM3BWrUS5ZETRZCi5w=="
|
113
|
+
},
|
114
|
+
"exercise-feedback-off-action.svg": {
|
115
|
+
"src": "cc317d981b83c9468e000a4cd0cd6bd1.svg",
|
116
|
+
"integrity": "sha256-poQbe47ZyBZn/r0nVK8QlvfCStK7I3reJf31ic5XU+E= sha384-P7/nY9zRRRtpVbGA24ZIeI4mPmerty84X7uWBrzPjaUOAS2FgtnvWdbcTZnUqN2S sha512-dSge35cZIzZfaxbBzcamOyId4rTn8CWwWJ37wNf54VDcdk2h/8lTC5eLxLe5nDwQq1HZtBnnN6H9JmG4tSfdOA=="
|
117
|
+
},
|
118
|
+
"exercise-feedback-on-action.svg": {
|
119
|
+
"src": "7941f79e27c564f9778784c78a005f78.svg",
|
120
|
+
"integrity": "sha256-u0kNxYc0B/rm9U86ul3VNZByM9yNneSjvvArdW1RWDA= sha384-VU5b7mFjwluxcp72y8oupgiMswhsqYzIsj6/tHw6PoIawkt1GELqYoByDJ3erlNl sha512-mBtoqoEmzXhOUEbz4TpNclqOmLraeQbHTmM2xRFtu++sHiW1lMkX2B+a313v7laVQGr1ZDptmuItSXg/OE9rWg=="
|
121
|
+
},
|
122
|
+
"exercise-include-action.svg": {
|
123
|
+
"src": "9b3328d7b81d35b1764a709b5e2fe14a.svg",
|
124
|
+
"integrity": "sha256-yP6keVl5XVCCb7YKkvD/6zVWwcOQ7pAqgB0H0jSoafM= sha384-0YpNustNygxYxOF654o+uVJJvrZIddYOcU7wKU1zk4ayenBOUL0k/ghPvkmD+nlV sha512-R/PK9Bbxe8mRUglibbClnRpKmt3oECX2l+A8Z+bnDXVii+wQufmN23jka6oaS5TqFRF1e1DVWGHxz6oIfpbXlQ=="
|
125
|
+
},
|
126
|
+
"exercise-report-error-action.svg": {
|
127
|
+
"src": "062f41bcd1652ae1e6c77bfeb0bab7aa.svg",
|
128
|
+
"integrity": "sha256-spCoklXvyEE96RU6A7DbGn5LX3lBBMbfLLoceIRUCYM= sha384-k0nkM8JP4NWILjiRgV9R9cEOqHpnZ33AzM5qcJAetFxCn80W+6pZVedm6bKZdQcH sha512-0WueUVO8xKmGQXqf1UUFm3NAEvS0YL9m20OzOgOr0GCZpzzmhxH4DgtuOsu2I/Qj/5s9HnVYcaKeIzCSyi3h5A=="
|
129
|
+
},
|
130
|
+
"export-by.svg": {
|
131
|
+
"src": "8ef183dc2032a92a87e654ccf009c858.svg",
|
132
|
+
"integrity": "sha256-znMsZmY1bYcoxtmQV73W0dk8Lvqimu5JYxZGAKaLDrk= sha384-DenBRw8WXoI3jjlL+d28j1fQCPwpSKrjTEfxMG5nCYJT6XWyA0lwOFHppGb5siRl sha512-mnCct5NVCBZUoFLBEYmUjXpQpfwYxRAk6JDP6EFCrjy5LLGCTu85df4MbsagBX9LoVUsinzpIzckdH2stVanWg=="
|
133
|
+
},
|
134
|
+
"hs_physics-book-thumbnail.png": {
|
135
|
+
"src": "57112172ebb42b6d76439ef3c09e10a0.png",
|
136
|
+
"integrity": "sha256-X8trpVLInJlun+ilsDXvuIRUWWTTFrMNCodyGjGE00U= sha384-wZTgHHcKjYDXRa/mU3kEfgexBJUHa3+SUCDExZSX9RSz47No8RiIH8HYNQWJbc6U sha512-yXPx9yx0xlWTJ4yiDFSD+b2n63Ixvz09wV7bTvqv370IfweQVDypQjOQF4QlmuDmx8UQvLma6LVyyBECTxwebg=="
|
137
|
+
},
|
138
|
+
"icon-completed.svg": {
|
139
|
+
"src": "1eaa77438418976d919742a5f51778de.svg",
|
140
|
+
"integrity": "sha256-/K4ahQxRv8VVA4xFL4YhzPzl2850BlHndoyY6I5QmO4= sha384-AGd5sL6cIlNIkd5HRwp/DM6oyVytHeZz2VP0DnN6PoOqnTbCRUiuhqq/Wvdc74tq sha512-JFmeWiO2a8uV98fXj0wOXSYGqtGyKkdXzXqEwb4oLdB6mEbmweWYsQr1E2SsLr7AaO8IJm0sWbKSJOtmSYXQPg=="
|
141
|
+
},
|
142
|
+
"icon-copy-course.svg": {
|
143
|
+
"src": "1d0014e980c13576a550645339994b4a.svg",
|
144
|
+
"integrity": "sha256-QIPi/bNPslFUOaHnJBrp6g7Uvqyz4IzD68qsOu6WL9Y= sha384-7P3AUbnSRFGrTNfB4fLEwrM7PbvGSVS5PiIrPDuXO/Lfy99K0Ru8gvjRvHQZY6P8 sha512-wCBpSGWJsFgbT+UcEWSUzSfRhnrGRVo3t2PiGmTQ4bTTD5FveTZ1m57BalXvjM01Bf4NaUilo7aWy1L5047p+A=="
|
145
|
+
},
|
146
|
+
"icon-correct.svg": {
|
147
|
+
"src": "d62f4fb9677b23b176d92210a6e635ef.svg",
|
148
|
+
"integrity": "sha256-xNt/TBBZyJNIOve+JEo1QPmEHjDXOG+zhgJdGNWVY4c= sha384-66GlLUhSM8fjCEYhQe8jpj2YxoJmDxrhbf6cFFZKXs2lSp37pWwcb9jZFSoFx4NX sha512-EX/6y1IKJDKllghlw6eYxCICFXpkWzC+sOzxIr8bJ6tT/QQ/fapWqMXwGJFyEObfhj+KcO9KwI4zl8e9Tv6Xjw=="
|
149
|
+
},
|
150
|
+
"icon-end.svg": {
|
151
|
+
"src": "5296aaa9429bfe5364c92abde90b4edc.svg",
|
152
|
+
"integrity": "sha256-BXtydxlsc1UFcXLNGICzgSi1AAleC4V/MHFo3GmofHo= sha384-xnAT7T4PYBriYONAxS9fe8MaPuMfGFXqEb8dyXWAN0CqZwg9E3qQE4JDXPAJYSiw sha512-cAw2abfRDgnsFKfFkb9ZjUeov0AahzebMlDc9vKr7+PAwSmvzfHowgNGvRQc99nDAXALUwbtuNPqO5k0lbZLog=="
|
153
|
+
},
|
154
|
+
"icon-event.svg": {
|
155
|
+
"src": "fa1d0a374b1f522c38359988bf6e1397.svg",
|
156
|
+
"integrity": "sha256-pP/L+KKaa88C4cdigU270H2BnnFgok5DJR3WmvSNqbA= sha384-PafVjCvOmkOHIwcKLViwNuAvEqvafJ3dmuEFeLuptY+yi7uu8MOSZhYvFuC2oJWy sha512-zsjD8duZuW3hSIOfdmuC8Ir2h1al6lvobuoNBUy5L7oA55PLn0d5ctr34jbjp4OarvDAWtYGAUlhAOfd8r6G1g=="
|
157
|
+
},
|
158
|
+
"icon-external.svg": {
|
159
|
+
"src": "97a63312f2f3742a92945f8d88749dbb.svg",
|
160
|
+
"integrity": "sha256-ZZRqh5dtY6W9RtdFwrD0BaiY4R/KLj7ek5org5dhiXM= sha384-9VDt4hCbNSJUoNFKE/x1/UrBuxR2x2hNKZFfgie6I+ogsjRcNKgWQp27o+zZhfLd sha512-YONCeRp+yZ1GwgQBqDZxvFRSTBkYvT8hMGD3WVn4EP5FkrRYDBPqOY3QFE5Kj6yy65uxExY+D4WeYUJBgU0Ojw=="
|
161
|
+
},
|
162
|
+
"icon-feedback.svg": {
|
163
|
+
"src": "7dc00913481d3aa9a49be8cf59c3c035.svg",
|
164
|
+
"integrity": "sha256-wblvGlrCG5TUofVjXU15+CBY2aRcC6h1sV4Dd0XuyMU= sha384-ssrw3CwHB/bh8E/yiLGHxatTI0xlGeOcvemUlUQyvGoehxMUF8fZDco/w1a6RF3l sha512-J8ElVtpiYvQzUlS74h/QtWngAGjkTCJqdVvXpPV5169mQx8f4YjbLkFvxJaUgQwWa6Cxeh53xdMCrU5Qih80iw=="
|
165
|
+
},
|
166
|
+
"icon-homework.svg": {
|
167
|
+
"src": "ffc68bfb492c28cdd981df81d36e16fa.svg",
|
168
|
+
"integrity": "sha256-7sf4rOZYKIP9qB3Gy1658p9KYCU0GmAjt21KjuuX8sQ= sha384-evtoWVKVfwGkPHIogy6WgvvbRs8APaAJbnqS8cXl42t4k303HueNhzhqe+qizgak sha512-eDqCY98nA1OKs6dS5ERZBW/tWKdPileDrEBPLopep1hJkqK0CZsGGpb+sd/PHwq/y+dKL8nAUAAtJD1aj7DYAA=="
|
169
|
+
},
|
170
|
+
"icon-incorrect.svg": {
|
171
|
+
"src": "79d4706e51a98be43c9d27102c6b1b91.svg",
|
172
|
+
"integrity": "sha256-0wBdRovm9zI8TfENz6nTYhEA+CPEobOUbB3wuZPDcdY= sha384-8x6qtL6UDYSqef5xokqC153m/QEnHeT/y2jlVTbYsa21SGzhbGr1vJd4eaQEn+3k sha512-3ePjz40aQczwcCvh0e7sKMQWog9l2tRVH6aP9l/i2ye/Nvy4zfphsX+Ke15YXK46fKWm5WhBvzRdziGBw/WRaw=="
|
173
|
+
},
|
174
|
+
"icon-individual-review-heading.svg": {
|
175
|
+
"src": "005ae70666804bf1b4fcbdd1820cda69.svg",
|
176
|
+
"integrity": "sha256-z6B3CCVljKsfARlA4smvKa8MWT1+yKVyCb5Q2xPV+5s= sha384-L41LTjzYeTj1BAfaxuLLplZF5lS9HI7r19SlOprdfYlZxyuN6eWYweCLySfBJLl8 sha512-4/0E8WkRF7zyekaFucGHMho/+sqyHb57QvTwJ5U6ZYZw4c8ACFoHcNDd6R4kuI06ImivTmvK0c+3IFju8WpOcg=="
|
177
|
+
},
|
178
|
+
"icon-individual-review.svg": {
|
179
|
+
"src": "94f2e768af2ef350e8756f5159a3b560.svg",
|
180
|
+
"integrity": "sha256-6XWMkb/NOcs5yKd3zXn3wHG/X9dHpX7eIhPVTWmPMjw= sha384-Zvssf5n/SRzZl/1nr26TW99JJrgDKZSrb2qjB/vP0OySH38HTBP1CSxtR95rTK8i sha512-UoAVUGQXLBdFHocYTTZtQT4JQa1jFyvDv3dKj0YqCwr5BGuq2ICgI+ItT+FLpUxleattFTAoNTxZJgnqrdkkIQ=="
|
181
|
+
},
|
182
|
+
"icon-interactive-placeholder.svg": {
|
183
|
+
"src": "2a0017a49d2dacbc02dab29ba52f7a08.svg",
|
184
|
+
"integrity": "sha256-NCfCPWYY8SX8a8wF0UZ71MtZ0xz7cyArY+6Z4azs2wM= sha384-jtOPNwwOtGb7IBOjTMGbjUqvTXjpvH9tn6aiHPtNKp8j8KlN44IihZNrS4AxtfAQ sha512-9U1du0DlL8DOIe39bsEQXEwWbS4NQmrc4vGC1lGL5z4r68mkcC3KOFkwPi2BWWN/vHJ82daqihBKmk1eCn74vQ=="
|
185
|
+
},
|
186
|
+
"icon-interactive.svg": {
|
187
|
+
"src": "790f8f667a1ef6aa74114278d7e58b7d.svg",
|
188
|
+
"integrity": "sha256-FDbdyyGIVVSSUlTj9A1a0BgEVkURMetRvMdKSqpt2MA= sha384-XhOGsiw2ypmKK5+Q8ocjx6FNGACD8F6pMOauwFtONWL47vA0tsNFDUkpmzfpzUgI sha512-P9qJuOoQaUHZ/p+1oa9AAYjAHJKg2BURRjDmHVRHomOpJakz9zKblJNaYRVaBOJWXrWWqqsDpwAI6znqVuazNA=="
|
189
|
+
},
|
190
|
+
"icon-new-course.svg": {
|
191
|
+
"src": "8ff80c156c21fc6abf9683c5c17de83f.svg",
|
192
|
+
"integrity": "sha256-uo955IwvjR3ScptZKAdQptFFCc+L5T/JmZ2hu4Hldxk= sha384-kK4iY5qdUN7UpWRuRLz4n3qFAs1m+5nzAXCySMKKIqBMNkV7/ZOZbOoZ+4E2gWTn sha512-CiUa0EJHljs9YN/zfJTcHDXhAHfl/0LpLKD0ndQZ0XsXRaXhHXFVVC6FoEHFmlMJhjuYWndhvm+iu6gnRZsE9g=="
|
193
|
+
},
|
194
|
+
"icon-personalized-intro-heading.svg": {
|
195
|
+
"src": "cbdf929d0e17cf97add3bc0dac6a7328.svg",
|
196
|
+
"integrity": "sha256-IBctmn9uifI7pVyxN2AexMqDiMA0kBd9GIWXvmBjSSY= sha384-QSASvvsbnTxKvqE39SdY/SvOMZtN3jta5tfglrpReaBQwrWZAgiwx8Lu2Nr9K8bv sha512-j8nX3RJSFuflhL1gMAKFdbnT//RvitfljX2J/mKgMnF7qekYoWAJGyi203k6/U4zWjEUIdFwHAsrnuE6gwOxqw=="
|
197
|
+
},
|
198
|
+
"icon-personalized-intro.svg": {
|
199
|
+
"src": "d0ec81696d3f0f537b73cc7d55aa5d8c.svg",
|
200
|
+
"integrity": "sha256-AKsLueFcgvjfVdRvoXF9JRaEp0d00WJWF48bplDE4KM= sha384-irp1AA5AMLgDZ+PkyQcv7WmIyQocDbgkMYiu8MXHFVbykU59Z1fK9fiYIDUNZfK9 sha512-MlyPKN8FoXgF7KyvwCCUrz0TcbrU0D3S5IDTEqoigVH6jqg6SBjn/wva+2usftm9DMBiIw7JxHSmRGYAJLUrSQ=="
|
201
|
+
},
|
202
|
+
"icon-personalized.svg": {
|
203
|
+
"src": "db35e38026c6e71b91bd689fea0cb6ce.svg",
|
204
|
+
"integrity": "sha256-os5aOEnjevx/9gTLS5wGa+r4Zi/Q2U+DOXwxiTOVwNM= sha384-rxBYlhFhyP2PIvkoK9jnLeoNzIcq3iD34xkmhOuAp2+gZMJ7jgvw8zww5plJEqlf sha512-28R7zIvQX8En8DYGFNqGksngu6k0I2qZ7L4ebfV2GA/jOEGIwgKIImPWDVJKuImKbqN9C4+PTJN8avPlCrxynQ=="
|
205
|
+
},
|
206
|
+
"icon-reading.svg": {
|
207
|
+
"src": "260832dd3b75923fbb73c2e4c9496f76.svg",
|
208
|
+
"integrity": "sha256-JihCXF0Rayd2OIXiTGI78+9gSUkL3YvE3MojjVlkZVk= sha384-6hh7LBOpsGEbwmSjprn/8u1at61H5ihj7LWWhtokxGxcx7Y4ClJsdhPQU+ehycHs sha512-g1kceTzm7WkbTgl9OFbb5wFHMSjoFTntz71JdzgPogU89DzJd7z1rJ+ecIshV07z0jrEWyFQag6oL3kO9qptsQ=="
|
209
|
+
},
|
210
|
+
"icon-recover.svg": {
|
211
|
+
"src": "98147b62873e4126b3e401e1de69dc36.svg",
|
212
|
+
"integrity": "sha256-LCc1oQEtidXDzm5gKYdefTDgeXdN4v9eRVgelyyb1q0= sha384-Oe3lDlAtROLcqbua09sa4U+dx0YKgmrGFWm/sB3V0a7F3weiBctVTe+vc5UUon7e sha512-18OSvbgIM1m/PQW0FZDD8hUw8lkcHlra9U3l9rDPMmWA0rZQWuBncLLEStnuMk7Dg0xJFLHXkoBoSFFsPLEr8g=="
|
213
|
+
},
|
214
|
+
"icon-spaced-practice-intro-heading.svg": {
|
215
|
+
"src": "e9b103dc00923e20ca3513fe7c827e99.svg",
|
216
|
+
"integrity": "sha256-jjfLXDcMqN2MKGTmPbV6xWEiFADvVpPFgspOUeU9nWA= sha384-Jp751ZJHk16LIUFNIISYzeUxqs0Wstixcft4IEfcErIyH8L7mHRqQ19n38M7ijWK sha512-DJwbFJ0ja/dQ+Pk1bWEpTcr4nErrITukQMnc3RMFZqZ2wvjkr46N2Oj+VyHyQpeazVdP+IIZTHGIXyWqJKxpdg=="
|
217
|
+
},
|
218
|
+
"icon-spaced-practice-intro.svg": {
|
219
|
+
"src": "759ca0007f65b2d71b45b77183d98762.svg",
|
220
|
+
"integrity": "sha256-IVk9O+hTqIhPE1HtFcKFNAhl8KA3AloSA60hc1D35SA= sha384-mrz5GkX/eaPGtpB+SaJ+SbeRe+lySFZc8ypl9S/FOYCsSU1LsTK2FXbjTZqNb9rV sha512-GP+2CFuLygKSpykN7HXWrZ1R7JqrApgx1FeVkA27Hq3VbGQTona6iemrdPz6l3KZTrTpOTQbmkDi4f8RVM5zrQ=="
|
221
|
+
},
|
222
|
+
"icon-spaced-practice.svg": {
|
223
|
+
"src": "313955b37572c6d83e0989fcbaaa3a1d.svg",
|
224
|
+
"integrity": "sha256-dnJamctcrUQMUEnuJ9USdrPjwdzzraj0diuOdRD9+1c= sha384-uusWYCiPcxLnKG/m4+XecfUlSb+voNei1uXO/B/CVq+3yTBT8x+XEE8/k4LJX7L8 sha512-cdEo0Ea50nJPfX1NwAuVGvdhSd97VJkGnJOZ0ThkwZDuBVeYnXzOlMznVQsIKIFxfxMURxPtgr7Lgvqe3V5ahw=="
|
225
|
+
},
|
226
|
+
"icon-test.svg": {
|
227
|
+
"src": "c07bc4e863e2e875e4f7367ad7da03f6.svg",
|
228
|
+
"integrity": "sha256-8ovyBLYu4km60nOW2obXQGLFPN44ZsgyIiSwmO22b9U= sha384-eBQPb5Lok6/b6BsAvI20ANFiymp9KvTSIay9kPJY7SBuBRBiAUKnnh/3foT1WNfa sha512-ngj/qVNQrlwKcX6g61bnPfdI6kBpJSeLNb31k/eqSamn+vVZ2hb7RtbRWVOCKhlSx3/2/u3MSYWMhPFwKV3zdg=="
|
229
|
+
},
|
230
|
+
"icon-two-step-intro-heading.svg": {
|
231
|
+
"src": "000934185c3c0d5be58c6a6dae7b8f26.svg",
|
232
|
+
"integrity": "sha256-2Bytl2XMGtb9Z3iXDtHJNY7P2mWQIRIsViY9L1unwXc= sha384-haJFr46mCgFjuJkcGOFjtcMyNf38Yr4WmzC3gn9G5YXhkt10IWP/MqTjxFKKa4HF sha512-uQjoDHvw4BJ6LeVVj4Gac5cR8Kf3G1jJsRfuCixzNTAWdh7SYzuodJxzpih9cRw2Cnqn/ZANwfzWBkJGt/NDng=="
|
233
|
+
},
|
234
|
+
"icon-two-step-intro.svg": {
|
235
|
+
"src": "dada9a6e0febdd86d4ad4ad3ac6ca2f0.svg",
|
236
|
+
"integrity": "sha256-dDRjGCnDNkRKFd9AnUYsfCG97J6LFcxa4JQnLCwFkxY= sha384-E+/YdMVeaVpfYBHopB4Zm9KP4+zh4yfcNfdl9Y8+1wxS4+Q32uzkL2UTVAdCCe/U sha512-O/ctilyRrMXmqQnQyI4Qukg/8QHRxxkVU7hKMWZQHm+SwMP1xag6bsltJ86U9dZv7k/i1516I0my1jsnUHbaIw=="
|
237
|
+
},
|
238
|
+
"icon-video-placeholder.svg": {
|
239
|
+
"src": "59c2b6634ba0dc7fc7eca3ae8a679152.svg",
|
240
|
+
"integrity": "sha256-p04VjnTOPydVDkpF0PZV4UIzMxvO/BQR2z1GRMVzc/U= sha384-v40l/dwi7PJeU6QHWw+SnLWN4Uu5KDSjjkAv74tUUgtl1pS8mjh5W5IVupD0YFcM sha512-pCbKElEAoBeSyjU1jHHE8cpCG5+uFOy+rgEgAublEdA93CorUyixibXA5iVKrrQZ/ZQmcXlluj8aYKhf3sOMow=="
|
241
|
+
},
|
242
|
+
"icon-video.svg": {
|
243
|
+
"src": "21f3e628bc44dfce2e24f8cfec47a0d8.svg",
|
244
|
+
"integrity": "sha256-NlwXchMCaxZB3VLlcxo4piwni5jjo/eplJ/UaQU0DdU= sha384-Xn0xt8K/Sgd14fGQVyjPsstfi2Y5L26OPu6UleKEsJhszceJJmcgY4dr16e6OFPm sha512-tpsdzcO7wls31Vl3Vsjc0auMJvR7cEo8hOoE+01xVLVkb5qKi5pOCU4xaXG08xFVL33dRx8fUm+z1R+jIRTUVQ=="
|
245
|
+
},
|
246
|
+
"icon-worked-example.svg": {
|
247
|
+
"src": "309b353715d7c6b9ae2a81b1a9023780.svg",
|
248
|
+
"integrity": "sha256-8t4YvRZDcaIbUnrchsq4D3m8C9A0yIRrk7IcaHhZlcI= sha384-tn3V6W2JF0UlJxo7WYGOURgMjCIRH/VqF4nJUX06YQ1oGXP02A5G5sWPKtvHby52 sha512-UEGcHtTj0NogdhyqXRCdeUzLUrsZvGTTiX/UCkqimBGBzLSaIIO3EtNr8JoYAdUXQEq3nMQul6ouZhJoRkgHEg=="
|
249
|
+
},
|
250
|
+
"icon-wrm.svg": {
|
251
|
+
"src": "c7bd4e178229a98b8774588bc7a6ffe7.svg",
|
252
|
+
"integrity": "sha256-XcbLf91P/SJgrYxy6CNDq9FOGxKCmNVw1kauO6S0+a0= sha384-d52Q/QDbFPf1ZLVgAnBk+In+i7l0I0FHCxj15XlH24um/dgLm+Zk+s+WVood+nqr sha512-WyNAhnnew2LtsesFuvBSsZq9OjeI8MyI88INYfPPgZyEJmkkUwk2w6EhKl8aJF5MfyMohH9eUefFiFLXiz9InA=="
|
253
|
+
},
|
254
|
+
"instructions-highlighter-icon.svg": {
|
255
|
+
"src": "8fe7c78ea503e5570a5f304da25a18f4.svg",
|
256
|
+
"integrity": "sha256-3toLWhK8uSO9ZK4VZb5Ts6PmF7FpPw280LNrj/aWd1s= sha384-nC8EOBd4BAxIJkFAKxksaH7ufXYLwZKqLhRpx8Tm37OP49QJL4wQfSAckxeZIMRB sha512-ZQ59ZjAJjrSnH10iJji/pGwPAuLXeKgejtdfITg112TP1Y13FOWdAYFDUs4As2EAufPaoZaCIeSMKH9cw+ug9w=="
|
257
|
+
},
|
258
|
+
"instructions-notes-icon.svg": {
|
259
|
+
"src": "fd076cc8c9652104b669e16f1fd6dd39.svg",
|
260
|
+
"integrity": "sha256-W52rFj58UdsNd0AxpgN5ffwqyh1MQaotN7Ii1BmBDGU= sha384-Mp4WKhTV6XHT+hzBi0xu6BBgD9DV/OPWkhJRuouSKS1n0G0rzzew2GzbwcS3q9kz sha512-mqfzAy1YWoMF46TSuu99p2kuQN7cRcPm9511iE3k97suXlDHkXd9ViBRV3W7p6cx6Ry9Pse+RDKbhJ3WLFOsqw=="
|
261
|
+
},
|
262
|
+
"instructions-panel-icon.svg": {
|
263
|
+
"src": "f54739e81447998f251bfa4cfe5235d8.svg",
|
264
|
+
"integrity": "sha256-daRrpXUohzziG+lL6n4EC+skDqyzi5Gdm8JkgwqOG24= sha384-1Aq1g3NDNjzRZI0mn1LzesF1DR1LUwE5iXY68lDBfD8WyMx1s3M9/Rh1VXoUhhMr sha512-fy5qGHUe4wpqJbr85X0Pnj7yCXcEqmHc7TASK23xv8F1BWp4GVgnSAwnDl8e+bGlb3mFe+0G7DLmVu7VFgzzng=="
|
265
|
+
},
|
266
|
+
"lmspair.js": {
|
267
|
+
"src": "lmspair-b920eb0be760a7c440bf.min.js",
|
268
|
+
"integrity": "sha256-zj4BIjiWRMW8+QCFAF5QoySAtYl3X6v4G6ghehGUe2I= sha384-w0fhrLZFfWdcozcxYAvU5Fn6cQBoJXReN45T34IbFAAY3dPdKwXA007UCx7G8bnR sha512-PK7Y3NTJP4J01XJUP4zlvDaCbsSJH0+UGefnfEsRqQ8GKK8jukCWui23teFX8qPptHi+9cgPUz8FhEUCRssWhA=="
|
269
|
+
},
|
270
|
+
"lmspair.js.map": {
|
271
|
+
"src": "lmspair-b920eb0be760a7c440bf.min.js.map",
|
272
|
+
"integrity": "sha256-r6zqgX5y0+kz8XueErGOCJp21skTeBg2Cyc/HYpBtp0= sha384-/KoyUPKkIwTK8WbNGFlOZcNHF/yzHIIEhmUpIucAyel1Wyl16JTTszBbmIgNVXk0 sha512-q8sytkhkh0q4LuavgoI/ByIXferqUdDsRr25F9l/ws2vo3sxvWQyEq539MjltvvFXPwUjf42eRIlTANL/lEggQ=="
|
273
|
+
},
|
274
|
+
"low-cost.svg": {
|
275
|
+
"src": "d472c99532f99a96b0077c98919b225c.svg",
|
276
|
+
"integrity": "sha256-YUxnr6DqF7RUBPLRkpeMWLzD8meevaYeGICF5sjKqdg= sha384-7/cRGlxuGP5Txh69HjejWx24sA1ADsF654y3fdtXQjsfzHwkrRVz+8qz/nXuG9bs sha512-4ql/s1cwVQAUZY7SCcVG28yT8NfMO9n7xp5Q+Hbi17dq8ktZsOnW4KGRjfIQLzYv5Gq4ba1h9kS6ZuxKa4BecQ=="
|
277
|
+
},
|
278
|
+
"machine-learning.svg": {
|
279
|
+
"src": "55490dd6c556c47099d62009ff27b239.svg",
|
280
|
+
"integrity": "sha256-KcHMLf9/Jk/SiWir2R4GoiVibnaSPsCSVaepMB1OXU0= sha384-hvPkNJSzfgpCJ1H0d5cFekKzF5YS07R1bDUFkVXQn9VOKLeeHKRXizHKXihTe1nI sha512-Ioas8FnK3KSgZyCPzy+4kyVbkTcSSQI7t0I4xip+qjIMcTbkY2tmKCE4KgfBmsMibOrOkm4Cdx0ayQAHBAruRA=="
|
281
|
+
},
|
282
|
+
"openstax-logo-white.png": {
|
283
|
+
"src": "f2444d4fd75af3b6705db4faa67c5159.png",
|
284
|
+
"integrity": "sha256-tx/oz4lQz3fk1MD4bkCh+q7ccRbZO9jaUkNUdLa4agw= sha384-6QAmqkxWzSaCGZfZXeQ4DsgzeUl7VAKMxuGznMuaODWTWZ92B5NbRwnX2tmOXNGq sha512-fs3NoJJQNCJzk7wq7KfV1Hm5amlhkHSboGK2SHolGm64KIoHhh8TAixfzYX1q6F/lDNvmuNqfQOatItzuMvYaA=="
|
285
|
+
},
|
286
|
+
"openstax-tutor-beta-logo.svg": {
|
287
|
+
"src": "f18b0f23c170a67630329412c35f7db8.svg",
|
288
|
+
"integrity": "sha256-nL0MxXkLoMYbAVmOnAzUMhFN+GsijRlbOvzy4Vb71u8= sha384-KPsn3+E01chDGAQ+iwjPG4zT40tWQQgeTG1IcDrZGssmvJZZxumw3YJo79ocGgNV sha512-sb1CRkrTtA9wMmafVG9A3JXNTkBBJ3Gs+j9KNLImVPqd+HBWqQ4je7ZjKY0GH9DzDFUovhPajwPH0Ulyh5qZYA=="
|
289
|
+
},
|
290
|
+
"ost-hero.jpg": {
|
291
|
+
"src": "f0d3bb6d9242c522ff41985568cdcaa6.jpg",
|
292
|
+
"integrity": "sha256-Wmvgh9YW1rpqmLHTNDG741acRV0Ed/4bXmUyILaTKg0= sha384-86PzPaGiRYQEKGshdQ952zAF0e1wgRlmOuijLqtdnzL5Htmot1vjDK/JOxfHk2wI sha512-wtsH/jVxQTcJeY/amx8IYzLcrakfPAa/1cMC6X55fJNpinYOqYY8JEyC0N4/XOL2M2oXrXWXAN7buy15ZQ3BDQ=="
|
293
|
+
},
|
294
|
+
"pending-verification.svg": {
|
295
|
+
"src": "e767f1bf6310180b139aa05f6b533263.svg",
|
296
|
+
"integrity": "sha256-RGKCVnt5LvnfsQw5fnaKWdm1MnqbPP/S0UubXFzHTfY= sha384-3pjlCK8T1uTBU0anaYdwSYckECzPiEFv/2ZtwdSshTdOhacNtZYMQ+1SX0FXZ+s/ sha512-r1E1lmCRwedlIrD9ICE+slrnhmmJinYzfdtqIZTmIi47dNqSbdm6Pjgc4zOatB5U5D3sVB/LDB3zCmbx+F/Dlg=="
|
297
|
+
},
|
298
|
+
"personalized.svg": {
|
299
|
+
"src": "2b20d03cc82916d962b66602c03139a9.svg",
|
300
|
+
"integrity": "sha256-O/LsK3vPlv3BQ4ljTxYNbtV5MYIUHjxy6RvnydzKdJU= sha384-CAjpa1dwP1lEF8I8SAwrzQ8hVEiTNj8Qn+PReZ8i9VD4mYogIrmuaoHJfjSYMrlN sha512-CtNXI/LqpiQqLr/fj7axU7LxU0LBzhA/yvLMhKd0sSz7ak3I19BOVf5RqSJGF6UXJ7oK760TXcMrGPfL8ppmlQ=="
|
301
|
+
},
|
302
|
+
"question-details.svg": {
|
303
|
+
"src": "7db5ec34af929030c99ae593ef1129fd.svg",
|
304
|
+
"integrity": "sha256-Idl3X0htyjennT4iZ7wlad6oLwPni5e31qIjHvBG0ig= sha384-nq5eoyY7uHelThhHS6ukxsztaSPvxC8fUrRNoFzFDbkU+KVgS3SjGtBQejy5zq0+ sha512-ryndGXWUjsPEeK04P1R8QjyLFvKqGQGKcSQwzPU3hszqaPHY4DkAR6Q4xTX2lJL3B7lbpwlbucSNxJjByF2BSw=="
|
305
|
+
},
|
306
|
+
"sociology-book-thumbnail.svg": {
|
307
|
+
"src": "87f800dff49d121084ae12bdf6b239f7.svg",
|
308
|
+
"integrity": "sha256-jKdj9T2a0NDgMKN/f4kBheWk4Qj8P9ijxKVFo5Az+n0= sha384-ueLpzQcQT6xn2mLd9fwBYN5V39agKUgQ0cB5TKoZj3uPAxugcUi6/45CuyPVcso7 sha512-gXqXDjmj8Z9FIBg/9P3HDIFdIGFNj1Og4FBlx0u7R4g42P1cK6jV8zVv4vzz8WsVOhlsucpxix118PwPidhyoQ=="
|
309
|
+
},
|
310
|
+
"spaced-practice.svg": {
|
311
|
+
"src": "921793921ccdd98049dfb9afc9e214c0.svg",
|
312
|
+
"integrity": "sha256-EuBXQAroPjLMdFlcL/7lxOwGhTzdgEEtDyCMfXQK3xA= sha384-m/r7MVfXZ6nvDei8nVZGxMxMUvkTzsJ6DG0xirWVvTFTuTzj3xHhONatgW2tR2qJ sha512-3JjnvUz/2vzWu6glse5dfmGC+q7eoZVQoCZTz0kDjB2Cd62g8tMOwblxGd01rlNN58QwdM7+JtLnTNV2YmXvUg=="
|
313
|
+
},
|
314
|
+
"student-id.svg": {
|
315
|
+
"src": "a43719051e12773aac21032f5605bf44.svg",
|
316
|
+
"integrity": "sha256-JGhkqIZaqydKtTHRd34d7siuWWJqPK4aBclthhxSBHY= sha384-mvQWsSeekaNJvsxZVYkt+yjrj7SeC1mpdtuH3rDEPm29MMu6u0TM7l09gkwsr1+Q sha512-KrKVoQojDXREk1CgmPzb67opIQXHf2GGaCbaxX3MbbWoCRKsBr1SzUtKKejeOXXqEcYgH71C7alqAEAsXv157g=="
|
317
|
+
},
|
318
|
+
"thanks.svg": {
|
319
|
+
"src": "b6c57fb1a28c9b844d80c2731eceff04.svg",
|
320
|
+
"integrity": "sha256-V9gGBEv4x3SCE4rXswydR4vwBJGCDsbP6RVLcEHn20Y= sha384-mTjvU8iI3HzfV2Qwx3GrIBUXEKgeEwHe3ZRDixFJxLiN1NcjtrcbxqeIDRb0yYvH sha512-DaCD05S8s2vE3UkE7rls74qeNwSCbdGYtQXA+Bze4FkjCrWIXxb3shl2TWp93Tc0l5e4WMYE/yimfJ8Av1eLcQ=="
|
321
|
+
},
|
322
|
+
"tutor-background.svg": {
|
323
|
+
"src": "3cc6304df650475b4f10f232ff1a5ef7.svg",
|
324
|
+
"integrity": "sha256-hwlHuLTQur24h28OmJblnn3sxHpriuWag+JZEP0FmwQ= sha384-Znri9p3p0BEVkbUHn6dC/4i4eaEE/vZgo5GY7sB2vQeDQhEjNRGyviKM+n7g+tOm sha512-1pejTCv0JPxfhLQ/YccFsZeFzKNo1rmxM0pG3w/p5C9jAJNgL+8SxQzJ0CDhATrPXEKJAOMQebFjC0Jp0OJQiA=="
|
325
|
+
},
|
326
|
+
"tutor.js": {
|
327
|
+
"src": "tutor-b920eb0be760a7c440bf.min.js",
|
328
|
+
"integrity": "sha256-tUf3KX1QlfRrJ7KJQQ4Ug40ZQS2T5thLAHSQoxbFI88= sha384-jmALLyE5iHUJA6h/FjOiPJT91DkuFM1XFIvo3OI8ZuaPm+ViPRdVwMrx+i5kcchC sha512-BBlxT9ywpOCERkuP0CSu8AKLRCWmd2uNMf7xwxZPTNH7233TGTJrcnClysI6x19gjYfiaC0JAmmfzNJImEjWPQ=="
|
329
|
+
},
|
330
|
+
"tutor.js.map": {
|
331
|
+
"src": "tutor-b920eb0be760a7c440bf.min.js.map",
|
332
|
+
"integrity": "sha256-Zzt45LgnZqL+4u9CJPZkJC12HZSsB7mLGfqAF84sy0M= sha384-CQoX4WqDssFuIHAQWSYjVVypECIxQKFTSUT+NT3Zt34j7/4GnTswEP+4wHgAadWd sha512-7NM8XP+5ZrEaWzLYKcS1CmsLtRQ3o/0Xsfl2UT+H8sGRbo3aaUVagdnPE+ldWrjyKtPqKbb4Z3IrJYBUUzfZzQ=="
|
333
|
+
},
|
334
|
+
"two-step.svg": {
|
335
|
+
"src": "420bd9cd338cbadd717b467652f39972.svg",
|
336
|
+
"integrity": "sha256-aNb0APXZC5Ccskfvym4qLaYuidR8Q/DCdScvaDbY7+A= sha384-S4QxsFZ9BwOHWQf2RjXtXpghVIzss0LkIWxIr/jgjEbDj7UfkY1NNUCnjpi3tGyh sha512-fKvPtm05LtVny66ebvGEuACVH+FZasRDkNym/kbTQoSp0JHBlaGROLDyaIclri3i6/lauJBUR8E0g25hfsyPaw=="
|
337
|
+
},
|
338
|
+
"under-construction.svg": {
|
339
|
+
"src": "3ec1654100b2949e03fe3672d4d11c02.svg",
|
340
|
+
"integrity": "sha256-XYAFrfp93PRK93dmGmyuHwF0Vc8aK607Wa8QaR+d2AU= sha384-0/CAwh8G+ojbqV2jbISPpF8JZz4cM40YhSRB5OOtMDW+oeMTSAFOrydhAYbmTacR sha512-PLHo8+zkC0JqAJC3ZPK5WNZbFiSGHYYHI6XxmaL7yIEX8w5kr4n6i5N/WVpeeyLP3SOo960q1giupV3BqAHSOA=="
|
341
|
+
},
|
342
|
+
"view-analytics.svg": {
|
343
|
+
"src": "9d10bd3d48974cdbf0f331c7feddd248.svg",
|
344
|
+
"integrity": "sha256-vtNdsHjfsjbQk/5oNADgrIAIqURecD9P4ZrZAo6Pfes= sha384-PlIKDJbmktmjRxnOZWLjKXN/ClJryQR2zfPmNrfBMvxl+dku7vumqYFRIfwkoK9j sha512-pwgSXSXsQxdSIN6Jot3GFP2yQTaj3qNDNh7lkhq+w5H2CpdBCEcCV2CS/CHJNZUMymhvbEJFNs4hKASdNkX3Sw=="
|
345
|
+
},
|
346
|
+
"view-textbook-questions.svg": {
|
347
|
+
"src": "08012f03a5268802675536d260cac3f6.svg",
|
348
|
+
"integrity": "sha256-mvsVwamHpST7FAvIQHdMvnTTAY1sBid/C+ezqf+wdmg= sha384-5X7g/jp6BEjbh4fmyRz5OdXYSRQ+GOKCgbxifciG4jsEVZbEOXB80h7veLLcIyqO sha512-ebw6zM2nJ3l3B0x9x7eVWE6cOnAK1os4kKX75JBByp7YE/LV/D8He5a3EBJehUHvMlIIBsD8qqNKClanvp6Jug=="
|
349
|
+
}
|
350
|
+
}
|
351
|
+
http_version:
|
352
|
+
recorded_at: Thu, 13 Sep 2018 17:45:53 GMT
|
353
|
+
recorded_with: VCR 2.9.3
|